許小華
(上海廣電電子有限公司,中國 上海200233)
保證信號(hào)完整性,是DDR 設(shè)計(jì)中具有舉足輕重的作用。信號(hào)不完整, 會(huì)使系統(tǒng)不穩(wěn)定, 甚至導(dǎo)致系統(tǒng)不工作。 主要有以下因素決定:PCB 疊層、阻抗、互聯(lián)拓?fù)?、時(shí)延匹配、串?dāng)_、電源完整性和時(shí)序。
對(duì)于一塊PCB 來說, 一個(gè)好的PCB 疊層設(shè)計(jì)對(duì)PCB 線路的阻抗,信號(hào)完整性是很重要的。 比如四層板,所有信號(hào)線都走在頂層,底層。 內(nèi)層是GND 平面,VCC 平面。 六層板以上的PCB,信號(hào)層與電源,地層是參差疊層的。每個(gè)有高速信號(hào)的信號(hào)層必須有一個(gè)完整的參考平面與之相對(duì)應(yīng)。 對(duì)于DDR 來說,單端阻抗必須控制在50-60 Ohm,而且是要恒定連續(xù)的。 對(duì)于差分線,差分阻抗必須控制在100 Ohm。比如CLK,DQS 信號(hào)。
一般拓?fù)浣Y(jié)構(gòu)有:1 .菊花鏈;2.樹形;3.fly-by
在這幾種拓?fù)浣Y(jié)構(gòu)中, 菊花鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu)在SI 方面有很大的優(yōu)勢(shì)。 在仿真當(dāng)中,能明顯看出菊花鏈拓?fù)浣Y(jié)構(gòu)比其它拓?fù)浣Y(jié)構(gòu)有更好的波形完整性。
Fly-By 拓?fù)浣Y(jié)構(gòu)是一種特殊的菊花鏈,它不需要很長的連線,甚至有時(shí)不需要短線(Stub)。 Fly-By 拓?fù)浣Y(jié)構(gòu)在處理噪聲方面,具有很好的波形完整性。
現(xiàn)在我們運(yùn)用Cadence SI 仿真軟件進(jìn)行一下仿真,就菊花鏈拓?fù)渑c樹形拓?fù)浣Y(jié)構(gòu),看看這兩種拓?fù)浣Y(jié)構(gòu)對(duì)信號(hào)質(zhì)量的影響。
我們此次仿真的實(shí)例有兩個(gè)DDR3 芯片。頻率為800M,時(shí)鐘是在上升沿及下降沿都采樣數(shù)據(jù)。相當(dāng)于是一個(gè)1600M 的頻率。我們就提取其中一個(gè)地址線來進(jìn)行一下仿真。此次仿真我們用來驗(yàn)證菊花鏈拓?fù)浣Y(jié)構(gòu)相比于其它拓?fù)浣Y(jié)構(gòu)的優(yōu)勢(shì)。
先來看看樹形拓?fù)浣Y(jié)構(gòu)的仿真波形。
在提取拓?fù)浞抡婺P蜁r(shí),我們導(dǎo)入能表現(xiàn)芯片各項(xiàng)參數(shù)的真實(shí)的IBIS 模型。 主控芯片及DDR 的IBIS 模型,可以在相關(guān)的芯片廠商網(wǎng)站下載得到。 其中導(dǎo)線的阻抗我們控制在55 Ohm+/-10%。 我們此次的信號(hào)的端接匹配采用的是主控芯片及DDR3 芯片內(nèi)部自有的ODT端接匹配。 故我們就不再在外部再加端接匹配電路。 然后我們開始進(jìn)行仿真激勵(lì)參數(shù)的設(shè)置,頻率設(shè)置為800M,隨機(jī)輸入1024 個(gè)碼元,時(shí)鐘上升沿下降沿都采集數(shù)據(jù)。
圖1
仿真結(jié)果圖如圖1, 我們截取了其中一個(gè)DDR 地址線管腳的仿真眼圖。從此眼圖可以看出,信號(hào)質(zhì)量不是很好。有過沖,下降沿太緩,振鈴等問題,眼睛掙得不是很圓。
再來看看菊花鏈拓?fù)浣Y(jié)構(gòu)仿真波形。
我們一樣導(dǎo)入主控芯片及DDR 芯片IBIS 模型。 一樣設(shè)置好導(dǎo)線阻抗為55 Ohm+/-10%。 激勵(lì)信號(hào)跟上面同樣的設(shè)置。 頻率設(shè)置為800M,隨機(jī)輸入1024 個(gè)碼元,時(shí)鐘上升沿下降沿都采集數(shù)據(jù)。 然后開始仿真,同樣看的是上面同一個(gè)DDR 地址線管腳的仿真圖。
圖2
仿真眼圖如圖2,此眼圖與上面的眼圖比起來,有明顯的改善。 說明菊花鏈拓?fù)浣Y(jié)構(gòu)相比于樹形拓?fù)浣Y(jié)構(gòu)來說信號(hào)質(zhì)量更好。
信號(hào)完整性除了要保證信號(hào)質(zhì)量還需要保證DDR 信號(hào)的時(shí)序問題。 信號(hào)經(jīng)過傳輸線到達(dá)接收端之后,必須滿足建立時(shí)間和保持時(shí)間這兩個(gè)時(shí)序參數(shù)。他們可以從芯片的數(shù)據(jù)手冊(cè)中獲得。時(shí)鐘沿有效時(shí),要求數(shù)據(jù)必須已經(jīng)存在一段時(shí)間,這就是器件需要的建立時(shí)間(Setup Time);而時(shí)鐘邊沿觸發(fā)之后,數(shù)據(jù)還必須要繼續(xù)保持一段時(shí)間,以便能穩(wěn)定的讀取,這就是器件需要的保持時(shí)間(Hold Time)。
根據(jù)芯片間信號(hào)傳遞方式的不同信號(hào)類型可分為同步和異步兩種。
同步信號(hào)是通過時(shí)鐘來同步數(shù)據(jù)傳輸?shù)模袊?yán)格的時(shí)序關(guān)系, 時(shí)序仿真主要針對(duì)是同步信號(hào)。 根據(jù)時(shí)鐘傳遞方式不同,同步信號(hào)可以分為外同步、內(nèi)同步、 源同步。
異步信號(hào)。 沒有時(shí)鐘作為基準(zhǔn),而且工作頻率較低,時(shí)序容易滿足,一般不需要時(shí)序仿真。 主要關(guān)注信號(hào)質(zhì)量,如'"單調(diào)性.過沖、噪聲容限。 但異步信號(hào)的各個(gè)信號(hào)間,也是有時(shí)序的。 如片選、讀寫、地址、數(shù)據(jù)等,可以確定一個(gè)合適的信號(hào)作為基準(zhǔn),用相同的方法進(jìn)行時(shí)序仿真。
我們現(xiàn)在來分析一下物聯(lián)網(wǎng)中用到的一款OTT 產(chǎn)品。 其中主芯片是一款MAVELL 控制芯片,DDR3 采用南亞系列1600Mbps 的DDR3 芯片。 我們通過分析其數(shù)據(jù)與時(shí)鐘DQS 的時(shí)序,指導(dǎo)制定PCB設(shè)計(jì)規(guī)則。DDR3 數(shù)據(jù)由選通信號(hào)DQS 作為時(shí)鐘來采樣。 它們采用的是源同步。 從數(shù)據(jù)手冊(cè)上查到相關(guān)參數(shù)如下。
MARVELL 主芯片參數(shù) 南亞DDR3 芯片參數(shù)
Tmarvellco 105 ps Tddrco 102ps
Tmarvellsetup 43 ps Tddrsetup 45ps
Tmarvellhold 8 ps Tddrhold 10ps
Tmarvellclk 1250ps Tddrclk 1250ps
Tclkjitter 10ps Tclkjitter 10ps
其中Tco 為第一個(gè)時(shí)鐘沿來時(shí)數(shù)據(jù)達(dá)到有效信號(hào)所需要的時(shí)間;Tsetup 為建立時(shí)間; Thold 為保持時(shí)間; Tclk 為一個(gè)時(shí)鐘周期;Tclkjitter 為時(shí)鐘的抖動(dòng)。
我們現(xiàn)在開始計(jì)算從MAVEL 芯片寫入DDR3 數(shù)據(jù)時(shí)序. 首先先假定DQS 信號(hào)是同步的.對(duì)于源同步信號(hào),輸入端時(shí)序計(jì)算如下。
建立時(shí)間的時(shí)序計(jì)算公式為:
(1)Tclk/2-Tmarvellco-Tfly-Tclkjitter>=Tddrsetup
保持時(shí)間的時(shí)序計(jì)算公式為:
(2)Tfly+Tmarvellco-Tclkjitter>=Tddrhold
其中Tfly 為信號(hào)在PCB 線上傳輸時(shí)延。
由(1)式變換代入數(shù)據(jù)得
(3)Tfly<=1250/2-105-45-10=465ps
由(2)式變換代入數(shù)據(jù)得
(4)Tfly>=10-105-10=-105ps
然后再考慮時(shí)鐘的延遲。 于是Tfly=Tdq-Tdqs,
假設(shè)Tdq>Tdqs
其中Tdq 為數(shù)據(jù)信號(hào)在PCB 上傳輸時(shí)的延時(shí); Tdqs 為DQS 信號(hào)在PCB 上傳輸時(shí)的延時(shí)
式(3)Tflt 代入Tdq-Tdqs 得
(5)Tdq-Tdqs<=1250/2-105-45-10=465ps
式(4)Tflt 代入Tdq-Tdqs 得
(6)Tdq-Tdqs>=10-105-10=-105ps
假設(shè)Tdq<Tdqs
建立時(shí)間的時(shí)序計(jì)算公式為:
(7) Tclk/2-Tmarvellco +Tfly-Tclkjitter>=Tddrsetup
變換Tflt 代入Tdq-Tdqs 及數(shù)據(jù)得
(8)Tdqs-Tdq>=45+105+10-625=-465;
保持時(shí)間的時(shí)序計(jì)算公式為:
(9)Tmarvellco-Tfly-Tclkjitter >=Tddrhold
變換Tflt 代入Tdq-Tdqs 及數(shù)據(jù)得
Tdqs-Tdq<=105-10-10=85ps;即Tdq-Tdqs>=-85
最終我們得到
-85<=(Tdq-Tdqs)<=465;
再來分析一下MARVELL 讀取DDR 芯片的時(shí)序。 因數(shù)據(jù)在讀寫時(shí),DDR 與主控芯片各自都有個(gè)DQS 信號(hào)來控制數(shù)據(jù)的讀與寫。因此上面的公式(1),(2),(7),(9)一樣適用。
故照上面公式(5),(9)代入數(shù)據(jù)計(jì)算得到最終結(jié)果:
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
我們?cè)谠O(shè)計(jì)PCB 走線規(guī)則時(shí)可以設(shè)計(jì)數(shù)據(jù)線DQ 參照DQS 信號(hào)+/-84ps,或更嚴(yán)格+/-50ps。 然后通過仿真,把延時(shí)轉(zhuǎn)換成PCB 上的走線長度。 上面是數(shù)據(jù)線的時(shí)序。 地址的時(shí)序也可以通過上述的步驟進(jìn)行仿真。 然后得出PCB 設(shè)計(jì)規(guī)則。