(海裝裝備采購中心, 北京 100097)
在高速實(shí)時處理系統(tǒng)中,對數(shù)據(jù)吞吐量,CPU處理能力等要求越來越高,因此經(jīng)常會使用到各種各樣的高速時鐘電路,如SDRAM接口,DDR接口,高速的CPU數(shù)據(jù)接口以及芯片之間的并行互連接口等。這些高速的數(shù)據(jù)接口基本工作在100 MHz頻率以上,每個時鐘周期小于10 ns(10-9s)。在這么高的速度下,數(shù)據(jù)線上每一個時鐘周期內(nèi)要求數(shù)據(jù)被正確地讀出和寫入,保證這一過程需要對數(shù)據(jù)傳輸時序的理解和精確的計(jì)算。如果發(fā)生時序錯誤,會導(dǎo)致不可預(yù)測的災(zāi)難性后果[1]。因此,為使數(shù)據(jù)正確地進(jìn)行傳輸,數(shù)據(jù)輸出芯片必須滿足數(shù)據(jù)輸入芯片對數(shù)據(jù)建立時間和數(shù)據(jù)保持時間的要求。
SDRAM是典型的高速并行總線結(jié)構(gòu)。圖1所示為SDRAM的源同步工作方式,在這種方式下,由SDRAM控制器產(chǎn)生時鐘,并將這個時鐘經(jīng)過PCB上的走線分配給各個SDRAM芯片。因此也可稱作SDRAM控制器分配時鐘工作方式。通過對SDRAM在這種方式下的時序分析,我們可以理解相關(guān)的一些時序參數(shù)的具體含義。比如Tco、建立時間、保持時間、建立時間裕量、保持時間裕量、傳輸時延、時鐘抖動、時鐘偏移等。
圖1 SDRAM控制器源同步工作方式
Tco是指時鐘觸發(fā)開始到輸出有效數(shù)據(jù)的器件內(nèi)部所有延時的總和??偩€時序如圖2所示,由圖2可以看出,當(dāng)SDRAM控制器輸出數(shù)據(jù)時,在時鐘上升沿之后發(fā)出數(shù)據(jù),上升沿到數(shù)據(jù)在數(shù)據(jù)總線上有效的時間稱為時鐘到數(shù)據(jù)的延時,即Tco。SDRAM在下一個時鐘的上升沿去鎖存數(shù)據(jù)總線上的數(shù)據(jù)。假設(shè)此數(shù)據(jù)需要的最大值為Tcomax及最小值為Tcomin。
圖2 總線時序圖
信號經(jīng)過數(shù)據(jù)線到達(dá)接收端后,就牽涉到建立時間和保持時間這兩個時序參數(shù),他們是接收器件本身的特性[2]。所謂建立時間(Tsu)就是指芯片作為輸入時,數(shù)據(jù)所需的建立時間(時鐘上升沿前數(shù)據(jù)維持的時間),建立時間的滿足永遠(yuǎn)以最小值來計(jì)算。而保持時間(Th)指的是芯片作為輸入時,數(shù)據(jù)所需的保持時間(時鐘上升沿后維持的時間),保持時間的滿足也永遠(yuǎn)以最小值來計(jì)算。一般來說,時鐘信號來的時候,要求數(shù)據(jù)必須已經(jīng)存在一段時間,這就是器件需要的建立時間。時鐘邊沿觸發(fā)之后,數(shù)據(jù)還必須要繼續(xù)保持一段時間,以便能穩(wěn)定的讀取,這就是器件需要的保持時間[3]。如果數(shù)據(jù)信號在時鐘沿觸發(fā)前后持續(xù)的時間均超過建立和保持時間,那么超過量就分別被稱為建立時間裕量和保持時間裕量。
因此,通過以上分析可知,SDRAM控制器的輸出必須滿足SDRAM的輸入條件。
從輸入的Tsu考慮:Tsu=Tclk-Tcomax;為了滿足Tsu的條件,Tsu必須:Tclk-Tcomax>Tsu=>Tclk>Tsu+Tcomax
從上面式子,我們還可以推算出,在給定的時鐘頻率下,輸入的建立時間的時序裕量:
Setup Time Margin=Tclk-Tsu-Tcomax
(1)
從輸入的Th考慮:Tcomin>Th;從上面的式子我們可以推算出輸入保持時間的時序裕量:
Hold Time Margin=Tcomin-Th
(2)
在實(shí)際應(yīng)用中,由于系統(tǒng)時鐘頻率很高,在計(jì)算時序裕量時還要考慮數(shù)據(jù)和時鐘在PCB上的傳輸延時以及信號完整性對時序的影響。下面介紹另外一些時序參數(shù):
Tflight: 這個參數(shù)定義數(shù)據(jù)信號在PCB傳輸線上到達(dá)輸入點(diǎn)所需的時間,就是平時所說的傳輸時延或飛行時間。
Tskew: 這個參數(shù)定義時鐘信號到達(dá)發(fā)送IC和接收IC時鐘引腳的時間差異。在源同步工作方式下,即為時鐘從SDRAM控制器到SDRAM的延時。
Tcrosstalk:由于串?dāng)_引起的數(shù)據(jù)沿變化,導(dǎo)致數(shù)據(jù)到達(dá)時間發(fā)生輕微的搖擺。
Tjitter:由于時鐘抖動引起的時鐘周期的變化。
考慮這些因素后,建立時間和保持時間的裕量就會相應(yīng)的發(fā)生變化,如下公式所示:
Setup Margin=Tclk-Tcomax-Tsu-
Tflight+Tskew-Tjitter-Tcrosstalk
(3)
Hold Margin=Tcomin-Th+Tflight-Tskew-Tcrosstalk
(4)
由于輸入的建立時間裕量和保持時間裕量必須大于零,所以:
Tclk-Tcomax-Tsu-Tflight+Tskew-Tjitter-Tcrosstalk>0
Tcomin-Th+Tflight-Tskew-Tcrosstalk>0
從上面的式子,就可以得出數(shù)據(jù)總線所能走的最大距離和最小距離的定量公式:
Tflight (5) Tflight>Th-Tcomin+Tskew+Tcrosstalk (6) 這兩個公式考慮了Tskew,Tjitter,Tcrosstalk對時序裕量的影響,為PCB的布線計(jì)算提供了理論依據(jù)[4]。但這些信號在很多情況下設(shè)計(jì)者無法預(yù)測是帶來正的影響還是負(fù)的影響,因此要遵循以下的原則來使時序計(jì)算達(dá)到最嚴(yán)格的指標(biāo)。 (1) 在計(jì)算公式(5)中,也就是計(jì)算最長布線時,這些指標(biāo)所取的正負(fù)號應(yīng)該使布線長度值達(dá)到最??; (2) 在計(jì)算公式(6)中,也就是計(jì)算最短布線時,這些指標(biāo)所取的正負(fù)號應(yīng)該使布線長度值達(dá)到最大。 下面以實(shí)際使用中出現(xiàn)問題的SDRAM總線為例說明總線時序裕量計(jì)算方法及原則。和上面介紹的基本原理稍有不同,SDRAM總線是雙向總線,還應(yīng)該考慮讀SDRAM數(shù)據(jù)的情況,即讀數(shù)據(jù)的時序要滿足SDRAM控制器的輸入要求,才能確定時序裕量[5]。 圖3、 圖4是SDRAM控制器讀寫數(shù)據(jù)時的時序圖,表1、表2分別是SDRAM,SDRAM控制器的時序指標(biāo),我們以這些時序指標(biāo)為依據(jù)進(jìn)行SDRAM在源同步工作方式下時序裕量計(jì)算。 圖3 SDRAM控制器寫時序圖 圖4 SDRAM控制器讀時序圖 表1 SDRAM控制器時序指標(biāo) 表2 SDRAM時序指標(biāo) 在這種情況下,SDRAM控制器出來的時鐘,經(jīng)過PCB后到達(dá)SDRAM芯片所需的時間為Tdelay??芍@個Tdelay肯定是正的,并且在PCB上走了約2.8 inch,則: Tdelay=2.8×0.18 ns≈0.5 ns 其中,單位inch的時延由PCB材質(zhì)所決定,在本例中為0.18 ns/inch。 SDRAM控制器輸出數(shù)據(jù)的同時也輸出時鐘,此時: Tskew=Tdelay=0.5 ns 根據(jù)表1時序指標(biāo)得出其他參數(shù): Tclk=7.52 ns,Tcomin=Toh=1.5 ns, Tcomax=Tclk-Tos=6.02 ns,Tos=1.5 ns, Tjitter=±0.1 ns,Tcrosstalk=±0.1 ns, Tsu=1.5 ns,Th=0.8 ns 故根據(jù)式(5)、式(6): Tflight =Tclk-Tcomax-Tsu+Tdelay-Tjitter-Tcrosstalk =Tos-Tsu+Tdelay-Tjitter-Tcrosstalk =0.3 ns Tflight>Th-Tcomin+Tskew+Tcrosstalk =Th-Tcomin+Tdelay+Tcrosstalk =0 ns 飛行時間肯定是大于零的,因此沒有最小時延限制。 綜合上兩式得出:Tflight<0.3 ns,Data Trace Length<1.67 inch,明顯這對于PCB板布線是很苛刻的要求。 當(dāng)SDRAM輸出數(shù)據(jù),而SDRAM控制器作為輸入時,由于始終依然是從SDRAM控制器輸出到達(dá)SDRAM,然后SDRAM根據(jù)這個時鐘送出數(shù)據(jù),所以時鐘到SDRAM比時鐘到SDRAM控制器落后了Tdelay,因此: Tskew=-Tdelay=-0.5 ns 根據(jù)表2時序指標(biāo)得出其他參數(shù): Tclk=7.52 ns,Tcomin=2.7 ns,Tcomax=5.4 ns, Tjitter=±0.1 ns,Tcrosstalk=±0.1 ns, Tsu=2 ns,Th=2 ns 故同樣根據(jù)式(5)、式(6): Tflight =Tclk-Tcomax-Tsu-Tdelay-Tjitter-Tcrosstalk =-0.58 ns Tflight>Th-Tcomin+Tskew+Tcrosstalk =Th-Tcomin-Tdelay+Tcrosstalk =-1.1 ns 綜合約束條件可以看出,PCB板布線已經(jīng)無法滿足要求。因?yàn)轱w行時間不可能小于零。 通過對以上讀寫時序的計(jì)算分析,以這種時鐘方案工作的SDRAM控制器芯片,其速度很難達(dá)到133 MHz,一般只能宣稱工作在100 MHz或更低。如果工作在100 MHz,則Tclk變?yōu)?0 ns。相應(yīng)給輸入建立時間,增加了近2.5 ns的裕量,也就是增加了近13.8 inch的布線余量。 通過以上計(jì)算對于原理和案例的分析,可以得到以下的結(jié)論:保持時間裕量是和時鐘頻率無關(guān)的[6]。在源同步方式下的寫操作,時鐘是滯后到達(dá)SDRAM,因此延長了建立時間裕量。而從SDRAM讀操作的時序裕量會更小,因?yàn)樽x操作時,時鐘到SDRAM控制器比到SDRAM更超前,因此縮短了SDRAM控制器的建立時間[7]。這樣PCB布線就受到了時鐘線絕對長度(時延)的限制。只要時鐘線的絕對長度超過一定的數(shù)值,在某種頻率下,布線就不可能實(shí)現(xiàn)。因?yàn)樵谧xSDRAM時,Tdelay這個指標(biāo)可以把所有建立時間消耗完,導(dǎo)致最大布線長度小于零,也就是不可能實(shí)現(xiàn)的布線方式。因此,在源同步方式下,最優(yōu)化的布線方案的前提就是使時鐘線的長度盡可能的短。 參考文獻(xiàn): [1]呂霆,祝亮.高速時鐘電路的信號完整性設(shè)計(jì)[J].電子工藝技術(shù),2004,25(1):39-41. [2]王曉東,楊功立,劉春紅.高速時鐘電路設(shè)計(jì)[J].應(yīng)用科技,2003,30(12):5-6. [3]張艷麗,安琪,王硯方.基于PCB仿真的高速時鐘電路設(shè)計(jì)研究[J].計(jì)算機(jī)仿真,2004,21(9):175-178. [4]Howard Johnson.High-Speed Digital Design[M].北京:電子工業(yè)出版社,2004. [5]謝力華,蘇彥民.正弦波逆變電源的數(shù)字控制技術(shù)[J].電力電子技術(shù),2001,35(6):51-55. [6]游志青,陳宏,胡育文.UPS逆變單元的幣復(fù)控制器參數(shù)的仿真分析[J].電源技術(shù)應(yīng)用,2002,5(4):10-13. [7]郭衛(wèi)農(nóng),陳堅(jiān).電壓型逆變單元輸出波形控制技術(shù)[J].通信電源技術(shù),2001,(3):5-9.2 源同步方式下的案例
2.1 SDRAM控制器及SDRAM的時序指標(biāo)
2.2 從寫路徑考慮
2.3 從讀路徑考慮
3 結(jié)論