許小華
(上海廣電電子有限公司,中國 上海200233)
保證信號完整性,是DDR 設計中具有舉足輕重的作用。信號不完整, 會使系統不穩定, 甚至導致系統不工作。 主要有以下因素決定:PCB 疊層、阻抗、互聯拓撲、時延匹配、串擾、電源完整性和時序。
對于一塊PCB 來說, 一個好的PCB 疊層設計對PCB 線路的阻抗,信號完整性是很重要的。 比如四層板,所有信號線都走在頂層,底層。 內層是GND 平面,VCC 平面。 六層板以上的PCB,信號層與電源,地層是參差疊層的。每個有高速信號的信號層必須有一個完整的參考平面與之相對應。 對于DDR 來說,單端阻抗必須控制在50-60 Ohm,而且是要恒定連續的。 對于差分線,差分阻抗必須控制在100 Ohm。比如CLK,DQS 信號。
一般拓撲結構有:1 .菊花鏈;2.樹形;3.fly-by
在這幾種拓撲結構中, 菊花鏈式拓撲結構在SI 方面有很大的優勢。 在仿真當中,能明顯看出菊花鏈拓撲結構比其它拓撲結構有更好的波形完整性。
Fly-By 拓撲結構是一種特殊的菊花鏈,它不需要很長的連線,甚至有時不需要短線(Stub)。 Fly-By 拓撲結構在處理噪聲方面,具有很好的波形完整性。
現在我們運用Cadence SI 仿真軟件進行一下仿真,就菊花鏈拓撲與樹形拓撲結構,看看這兩種拓撲結構對信號質量的影響。
我們此次仿真的實例有兩個DDR3 芯片。頻率為800M,時鐘是在上升沿及下降沿都采樣數據。相當于是一個1600M 的頻率。我們就提取其中一個地址線來進行一下仿真。此次仿真我們用來驗證菊花鏈拓撲結構相比于其它拓撲結構的優勢。
先來看看樹形拓撲結構的仿真波形。
在提取拓撲仿真模型時,我們導入能表現芯片各項參數的真實的IBIS 模型。 主控芯片及DDR 的IBIS 模型,可以在相關的芯片廠商網站下載得到。 其中導線的阻抗我們控制在55 Ohm+/-10%。 我們此次的信號的端接匹配采用的是主控芯片及DDR3 芯片內部自有的ODT端接匹配。 故我們就不再在外部再加端接匹配電路。 然后我們開始進行仿真激勵參數的設置,頻率設置為800M,隨機輸入1024 個碼元,時鐘上升沿下降沿都采集數據。

圖1
仿真結果圖如圖1, 我們截取了其中一個DDR 地址線管腳的仿真眼圖。從此眼圖可以看出,信號質量不是很好。有過沖,下降沿太緩,振鈴等問題,眼睛掙得不是很圓。
再來看看菊花鏈拓撲結構仿真波形。
我們一樣導入主控芯片及DDR 芯片IBIS 模型。 一樣設置好導線阻抗為55 Ohm+/-10%。 激勵信號跟上面同樣的設置。 頻率設置為800M,隨機輸入1024 個碼元,時鐘上升沿下降沿都采集數據。 然后開始仿真,同樣看的是上面同一個DDR 地址線管腳的仿真圖。

圖2
仿真眼圖如圖2,此眼圖與上面的眼圖比起來,有明顯的改善。 說明菊花鏈拓撲結構相比于樹形拓撲結構來說信號質量更好。
信號完整性除了要保證信號質量還需要保證DDR 信號的時序問題。 信號經過傳輸線到達接收端之后,必須滿足建立時間和保持時間這兩個時序參數。他們可以從芯片的數據手冊中獲得。時鐘沿有效時,要求數據必須已經存在一段時間,這就是器件需要的建立時間(Setup Time);而時鐘邊沿觸發之后,數據還必須要繼續保持一段時間,以便能穩定的讀取,這就是器件需要的保持時間(Hold Time)。
根據芯片間信號傳遞方式的不同信號類型可分為同步和異步兩種。
同步信號是通過時鐘來同步數據傳輸的,有嚴格的時序關系, 時序仿真主要針對是同步信號。 根據時鐘傳遞方式不同,同步信號可以分為外同步、內同步、 源同步。
異步信號。 沒有時鐘作為基準,而且工作頻率較低,時序容易滿足,一般不需要時序仿真。 主要關注信號質量,如'"單調性.過沖、噪聲容限。 但異步信號的各個信號間,也是有時序的。 如片選、讀寫、地址、數據等,可以確定一個合適的信號作為基準,用相同的方法進行時序仿真。
我們現在來分析一下物聯網中用到的一款OTT 產品。 其中主芯片是一款MAVELL 控制芯片,DDR3 采用南亞系列1600Mbps 的DDR3 芯片。 我們通過分析其數據與時鐘DQS 的時序,指導制定PCB設計規則。DDR3 數據由選通信號DQS 作為時鐘來采樣。 它們采用的是源同步。 從數據手冊上查到相關參數如下。
MARVELL 主芯片參數 南亞DDR3 芯片參數
Tmarvellco 105 ps Tddrco 102ps
Tmarvellsetup 43 ps Tddrsetup 45ps
Tmarvellhold 8 ps Tddrhold 10ps
Tmarvellclk 1250ps Tddrclk 1250ps
Tclkjitter 10ps Tclkjitter 10ps
其中Tco 為第一個時鐘沿來時數據達到有效信號所需要的時間;Tsetup 為建立時間; Thold 為保持時間; Tclk 為一個時鐘周期;Tclkjitter 為時鐘的抖動。
我們現在開始計算從MAVEL 芯片寫入DDR3 數據時序. 首先先假定DQS 信號是同步的.對于源同步信號,輸入端時序計算如下。
建立時間的時序計算公式為:
(1)Tclk/2-Tmarvellco-Tfly-Tclkjitter>=Tddrsetup
保持時間的時序計算公式為:
(2)Tfly+Tmarvellco-Tclkjitter>=Tddrhold
其中Tfly 為信號在PCB 線上傳輸時延。
由(1)式變換代入數據得
(3)Tfly<=1250/2-105-45-10=465ps
由(2)式變換代入數據得
(4)Tfly>=10-105-10=-105ps
然后再考慮時鐘的延遲。 于是Tfly=Tdq-Tdqs,
假設Tdq>Tdqs
其中Tdq 為數據信號在PCB 上傳輸時的延時; Tdqs 為DQS 信號在PCB 上傳輸時的延時
式(3)Tflt 代入Tdq-Tdqs 得
(5)Tdq-Tdqs<=1250/2-105-45-10=465ps
式(4)Tflt 代入Tdq-Tdqs 得
(6)Tdq-Tdqs>=10-105-10=-105ps
假設Tdq<Tdqs
建立時間的時序計算公式為:
(7) Tclk/2-Tmarvellco +Tfly-Tclkjitter>=Tddrsetup
變換Tflt 代入Tdq-Tdqs 及數據得
(8)Tdqs-Tdq>=45+105+10-625=-465;
保持時間的時序計算公式為:
(9)Tmarvellco-Tfly-Tclkjitter >=Tddrhold
變換Tflt 代入Tdq-Tdqs 及數據得
Tdqs-Tdq<=105-10-10=85ps;即Tdq-Tdqs>=-85
最終我們得到
-85<=(Tdq-Tdqs)<=465;
再來分析一下MARVELL 讀取DDR 芯片的時序。 因數據在讀寫時,DDR 與主控芯片各自都有個DQS 信號來控制數據的讀與寫。因此上面的公式(1),(2),(7),(9)一樣適用。
故照上面公式(5),(9)代入數據計算得到最終結果:
Tdq-Tdqs<=Tclk/2-Tddrco-Tmarvellsetup-Tclkjitter=1250/2-102-43-10=470ps
Tdqs-Tdq<=Tddrco-Tmarvellhold-Tclkjitter=102-8-10=84
即-84<=(Tdq-Tdqs)<=470
綜上所述,兩種情況都分析后得到
-84<=(Tdq-Tdqs)<=465
我們在設計PCB 走線規則時可以設計數據線DQ 參照DQS 信號+/-84ps,或更嚴格+/-50ps。 然后通過仿真,把延時轉換成PCB 上的走線長度。 上面是數據線的時序。 地址的時序也可以通過上述的步驟進行仿真。 然后得出PCB 設計規則。