在網(wǎng)絡(luò)通訊領(lǐng)域,ATM交換機(jī)、核心路由器、千兆以太網(wǎng)以及各種網(wǎng)關(guān)設(shè)備中,系統(tǒng)數(shù)據(jù)速率、時(shí)鐘速率不斷提高,相應(yīng)處理器的工作頻率也越來越高;數(shù)據(jù)、語(yǔ)音、圖像的傳輸速度已經(jīng)遠(yuǎn)遠(yuǎn)高于500Mbps,數(shù)百兆乃至數(shù)吉的背板也越來越普遍。數(shù)字系統(tǒng)速度的提高意味著信號(hào)的升降時(shí)間盡可能短,由數(shù)字信號(hào)頻率和邊沿速率提高而產(chǎn)生的一系列高速設(shè)計(jì)問題也變得越來越突出。當(dāng)信號(hào)的互連延遲大于邊沿信號(hào)翻轉(zhuǎn)時(shí)間的20%時(shí),板上的信號(hào)導(dǎo)線就會(huì)呈現(xiàn)出傳輸線效應(yīng),這樣的設(shè)計(jì)就成為高速設(shè)計(jì)。高速問題的出現(xiàn)給硬件設(shè)計(jì)帶來了更大的挑戰(zhàn),有許多從邏輯角度看來正確的設(shè)計(jì),如果在實(shí)際PCB設(shè)計(jì)中處理不當(dāng)就會(huì)導(dǎo)致整個(gè)設(shè)計(jì)失敗,這種情形在日益追求高速的網(wǎng)絡(luò)通信領(lǐng)域更加明顯。專家預(yù)測(cè),在未來的硬件電路設(shè)計(jì)開銷方面,邏輯功能設(shè)計(jì)的開銷將大為縮減,而與高速設(shè)計(jì)相關(guān)的開銷將占總開銷的80%甚至更多。高速問題已成為系統(tǒng)設(shè)計(jì)能否成功的重要因素之一。
因高速問題產(chǎn)生的信號(hào)過沖、下沖、反射、振鈴、串?dāng)_等將嚴(yán)重影響系統(tǒng)的正常時(shí)序,系統(tǒng)時(shí)序余量的減少迫使人們關(guān)注影響數(shù)字波形時(shí)序和質(zhì)量的各種現(xiàn)象。由于速度的提高使時(shí)序變得苛刻時(shí),無論事先對(duì)系統(tǒng)原理理解得多么透徹,任何忽略和簡(jiǎn)化都可能給系統(tǒng)帶來嚴(yán)重的后果。在高速設(shè)計(jì)中,時(shí)序問題的影響更為關(guān)鍵,本文將專門討論高速設(shè)計(jì)中的時(shí)序分析及其仿真策略。
1 公共時(shí)鐘同步的時(shí)序分析及仿真
在高速數(shù)字電路中,數(shù)據(jù)的傳輸一般都通過時(shí)鐘對(duì)數(shù)據(jù)信號(hào)進(jìn)行有序的收發(fā)控制。芯片只能按規(guī)定的時(shí)序發(fā)送和接收數(shù)據(jù),過長(zhǎng)的信號(hào)延遲或信號(hào)延時(shí)匹配不當(dāng)都可能導(dǎo)致信號(hào)時(shí)序的違背和功能混亂。在低速系統(tǒng)中,互連延遲和振鈴等現(xiàn)象都可忽略不計(jì),因?yàn)樵谶@種低速系統(tǒng)中信號(hào)有足夠的時(shí)間達(dá)到穩(wěn)定狀態(tài)。但在高速系統(tǒng)中,邊沿速率加快、系統(tǒng)時(shí)鐘速率上升,信號(hào)在器件之間的傳輸時(shí)間以及同步準(zhǔn)備時(shí)間都縮短,傳輸線上的等效電容、電感也會(huì)對(duì)信號(hào)的數(shù)字轉(zhuǎn)換產(chǎn)生延遲和畸變,再加上信號(hào)延時(shí)不匹配等因素,都會(huì)影響芯片的建立和保持時(shí)間,導(dǎo)致芯片無法正確收發(fā)數(shù)據(jù)、系統(tǒng)無法正常工作。
所謂公共時(shí)鐘同步,是指在數(shù)據(jù)的傳輸過程中,總線上的驅(qū)動(dòng)端和接收端共享同一個(gè)時(shí)鐘源,在同一個(gè)時(shí)鐘緩沖器(CLOCK BUFFER)發(fā)出同相時(shí)鐘的作用下,完成數(shù)據(jù)的發(fā)送和接收。圖1所示為一個(gè)典型的公共時(shí)鐘同步數(shù)據(jù)收發(fā)工作示意圖。圖1中,晶振CRYSTAL產(chǎn)生輸出信號(hào)CLK_IN到達(dá)時(shí)鐘分配器CLOCK BUFFER,經(jīng)CLOCK BUFFER分配緩沖后發(fā)出兩路同相時(shí)鐘,一路是CLKB,用于DRIVER的數(shù)據(jù)輸出;另一路是CLKA,用于采樣鎖存由DRIVER發(fā)往RECEIVER的數(shù)據(jù)。時(shí)鐘CLKB經(jīng)Tflt_CLKB一段飛行時(shí)間(FLIGHT TIME)后到達(dá)DRIVER,DRIVER內(nèi)部數(shù)據(jù)由CLKB鎖存經(jīng)過TCO_DATA時(shí)間后出現(xiàn)在DRIVER的輸出端口上,輸出的數(shù)據(jù)然后再經(jīng)過一段飛行時(shí)間Tflt_DATA到達(dá)RECEIVER的輸入端口;在RECEIVER的輸入端口上,利用CLOCK BUFFER產(chǎn)生的另一個(gè)時(shí)鐘CLKA(經(jīng)過的延時(shí)就是CLKA時(shí)鐘飛行時(shí)間,即Tflt_CLKA)采樣鎖存這批來自DRIVER的數(shù)據(jù),從而完成COMMON CLOCK一個(gè)時(shí)鐘周期的數(shù)據(jù)傳送過程。
以上過程表明,到達(dá)RECEIVER的數(shù)據(jù)是利用時(shí)鐘下一個(gè)周期的上升沿采樣的,據(jù)此可得到數(shù)據(jù)傳送所應(yīng)滿足的兩個(gè)必要條件:①RECEIVER輸入端的數(shù)據(jù)一般都有所要求的建立時(shí)間Tsetup,它表示數(shù)據(jù)有效必須先于時(shí)鐘有效的最小時(shí)間值,數(shù)據(jù)信號(hào)到達(dá)輸入端的時(shí)間應(yīng)該足夠早于時(shí)鐘信號(hào),由此可得出建立時(shí)間所滿足的不等式;②為了成功地將數(shù)據(jù)鎖存到器件內(nèi)部,數(shù)據(jù)信號(hào)必須在接收芯片的輸入端保持足夠長(zhǎng)時(shí)間有效以確保信號(hào)正確無誤地被時(shí)鐘采樣鎖存,這段時(shí)間稱為保持時(shí)間,CLKA的延時(shí)必須小于數(shù)據(jù)的無效時(shí)間(INVALID),由此可得出保持時(shí)間所滿足的不等式。
1.1 數(shù)據(jù)建立時(shí)間的時(shí)序分析
由第一個(gè)條件可知,數(shù)據(jù)信號(hào)必須先于時(shí)鐘CLKA到達(dá)接收端,才能正確地鎖存數(shù)據(jù)。在公共時(shí)鐘總線中,第一個(gè)時(shí)鐘周期的作用是將數(shù)據(jù)鎖存到DRIVER的輸出端,第二個(gè)時(shí)鐘周期則將數(shù)據(jù)鎖存到RECEIVER的內(nèi)部,這意味著數(shù)據(jù)信號(hào)到達(dá)RECEIVER輸入端的時(shí)間應(yīng)該足夠早于時(shí)鐘信號(hào)CLKA。為了滿足這一條件,必須確定時(shí)鐘和數(shù)據(jù)信號(hào)到達(dá)RECEIVER的延時(shí)并保證滿足接收端建立時(shí)間的要求,任何比需要的建立時(shí)間多出來的時(shí)間量即為建立時(shí)間時(shí)序余量Tmargin。在圖1的時(shí)序圖中,所有箭頭線路表示數(shù)據(jù)信號(hào)和時(shí)鐘信號(hào)在芯片內(nèi)部或傳輸線上產(chǎn)生的延時(shí),在下面的箭頭線路表示從第一個(gè)時(shí)鐘邊沿有效至數(shù)據(jù)到達(dá)RECEIVER輸入端的總延時(shí),在上面的箭頭線路表示接收時(shí)鐘CLKA的總延時(shí)。從第一個(gè)時(shí)鐘邊沿有效至數(shù)據(jù)到達(dá)RECEIVER輸入端的總延時(shí)為:
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA
接收時(shí)鐘CLKA下一個(gè)周期的總延時(shí)為:
TCLKA_DELAY=TCYCLE+TCO_CLKA+Tflt_CLKA
要滿足數(shù)據(jù)的建立時(shí)間則必須有:
TCLKA_DELAY_MIN-TDATA_DELAY_MAX-Tsetup-Tmargin》0
展開并考慮時(shí)鐘的抖動(dòng)Tjitter等因素整理后得到:
TCYCLE+(TCO_CLKA_MIN-TCO_CLKB_MAX)+ (Tflt_CLKA_MIN-Tflt_CLKB_MAX)-TCO_DATA_MAX-Tflt_DATA_SETTLE_DELAY_MAX-Tjitter-Tsetup-Tmargin》0 (1)
式(1)中TCYCLE為時(shí)鐘的一個(gè)時(shí)鐘周期;第一個(gè)括號(hào)內(nèi)是時(shí)鐘芯片CLOCK BUFFER輸出時(shí)鐘CLKA、CLKB之間的最大相位差,即手冊(cè)上稱的OUTPUT-output skew;第二個(gè)括號(hào)內(nèi)則是CLOCK BUFFER芯片輸出的兩個(gè)時(shí)鐘CLKA、CLKB分別到達(dá)RECEIVER和DRIVER的最大延時(shí)差。式(1)中TCO_DATA是指在一定的測(cè)試負(fù)載和測(cè)試條件下,從時(shí)鐘觸發(fā)開始到數(shù)據(jù)出現(xiàn)在輸出端口并到達(dá)測(cè)試電壓Vmeas(或VREF)閾值的時(shí)間間隔,TCO_DATA的大小與芯片內(nèi)部邏輯延時(shí)、緩沖器OUTPUT BUFFER特性、輸出負(fù)載情況都有直接關(guān)系,TCO可在芯片數(shù)據(jù)手冊(cè)中查得。
由公式(1)可知,可調(diào)部分實(shí)際只有兩項(xiàng):Tflt_CLKB_MIN-Tflt_CLKB_MAX和Tflt_DATA_SETTLE_DELAY_MAX。單從滿足建立時(shí)間而言,Tflt_CLKA_MIN應(yīng)盡可能大,而Tflt_CLKB_MAX和Tflt_DATA_SETTLE_DELAY_MAX則要盡可能小。實(shí)質(zhì)上,就是要求接收時(shí)鐘來得晚一點(diǎn),數(shù)據(jù)來得早一點(diǎn)。
1.2 數(shù)據(jù)保持時(shí)間的時(shí)序分析
為了成功地將數(shù)據(jù)鎖存到器件內(nèi)部,數(shù)據(jù)信號(hào)必須在接收芯片的輸入端保持足夠長(zhǎng)時(shí)間有效以確保信號(hào)正確無誤地被時(shí)鐘采樣鎖存,這段時(shí)間稱為保持時(shí)間。在公共時(shí)鐘總線中,接收端緩沖器利用第二個(gè)時(shí)鐘邊沿鎖存數(shù)據(jù),同時(shí)在驅(qū)動(dòng)端把下一個(gè)數(shù)據(jù)鎖存到數(shù)據(jù)發(fā)送端。因此為了滿足接收端保持時(shí)間,必須保證有效數(shù)據(jù)在下一個(gè)數(shù)據(jù)信號(hào)到達(dá)之前鎖存到接收端觸發(fā)器中,這就要求接收時(shí)鐘CLKA的延時(shí)要小于接收數(shù)據(jù)信號(hào)的延時(shí)。
TCLKA_DELAY=TCO_CLKA+Tflt_CLKA
而數(shù)據(jù)延時(shí):
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA_SWITCH_DELAY
若要滿足數(shù)據(jù)的保持時(shí)間,則必須有:
TDATA_DELAY_MIN-TCLKA_DELAY_MAX-Thold-Tmargin》0
展開、整理并考慮時(shí)鐘抖動(dòng)Tjitter等因素,可得如下關(guān)系:
?。═CO_CLKB_MIN-TCO_CLKA_MAX)+(Tflt_CLKB_MIN-Tflt_CLKA_MAX)+TCO_DATA_MIN+Tflt_DATA_SWITCH_DELAY_MIN-Thold-Tmargin-Tjitter》0 (2)
式(2)中,第一個(gè)括號(hào)內(nèi)仍然是時(shí)鐘芯片CLOCK BUFFER輸出時(shí)鐘之間的最大相位差;第二個(gè)括號(hào)內(nèi)繼續(xù)可以理解為時(shí)鐘芯片輸出的兩個(gè)時(shí)鐘CLKA、CLKB分別到達(dá)RECEIVER和DRIVER的最大延時(shí)差;要滿足數(shù)據(jù)的保持時(shí)間,實(shí)際可調(diào)整的部分也只有兩項(xiàng),即Tflt_CLKB_MIN-Tflt_CLKA_MAX和Tflt_DATA_SWITCH_DELAY_MIN。單從滿足保持時(shí)間的角度而言,Tflt_CLKB_MIN和Tflt_DATA_SWITCH_DELAY_MIN應(yīng)盡可能大,而Tflt_CLKA_MAX則要盡可能小。也就是說,若欲滿足保持時(shí)間,就要使接收時(shí)鐘早點(diǎn)來,而數(shù)據(jù)則要晚點(diǎn)無效(invalid)。
為了正確無誤地接收數(shù)據(jù),必須綜合考慮數(shù)據(jù)的建立時(shí)間和保持時(shí)間,即同時(shí)滿足(1)式和(2)式。分析這兩個(gè)不等式可以看出,調(diào)整的途徑只有三個(gè):發(fā)送時(shí)鐘延時(shí)、接收時(shí)鐘延時(shí)和數(shù)據(jù)的延時(shí)。調(diào)整方案可這樣進(jìn)行:首先假定發(fā)送時(shí)鐘延時(shí)嚴(yán)格等于接收時(shí)鐘延時(shí),即?Tflt_CLKA_MIN-Tflt_CLKB_MAX =0和?Tflt_CLKB_MIN-Tflt_CLKA_MAX =0(后文將對(duì)這兩個(gè)等式的假設(shè)產(chǎn)生的時(shí)序偏差進(jìn)行考慮),然后通過仿真可以得出數(shù)據(jù)的延時(shí)范圍,如果數(shù)據(jù)延時(shí)無解則返回上述兩個(gè)等式,調(diào)整發(fā)送時(shí)鐘延時(shí)或接收時(shí)鐘延時(shí)。下面是寬帶網(wǎng)交換機(jī)中GLINK總線公共時(shí)鐘同步數(shù)據(jù)收發(fā)的例子:首先假定發(fā)送時(shí)鐘延時(shí)嚴(yán)格等于接收時(shí)鐘延時(shí),然后確定數(shù)據(jù)的延時(shí)范圍,代入各參數(shù),(1)和(2)式分別變?yōu)椋?/p>
1.5-Tflt_DATA_SETTLE_DELAY_MAX-Tmargin》0
0.5+Tflt_DATA_SWITCH_DELAY_MIN-Tmargin》0
在不等式提示下,結(jié)合PCB布局實(shí)際,確定Tflt_DATA_SETTLE_DELAY_MAX《1.1;tflt_data_switch_delay_min》-0.1,剩下0.4ns的余量分配給了兩個(gè)時(shí)鐘的時(shí)差和Tmargin。在SPECCTRAQUEST中提取拓?fù)洳⑦M(jìn)行信號(hào)完整性仿真,進(jìn)而確定各段線長(zhǎng)及拓?fù)浣Y(jié)構(gòu)。對(duì)此結(jié)構(gòu)(共12種組合)進(jìn)行全掃描仿真,得到?Tflt_DATA_SETTLE_DELAY_MAX=1.0825? Tflt_DATA_SWITCH_DELAY_MIN =-0.0835004,符合確定的1.1和-0.1的范圍指標(biāo)。由此可以得出GLINK總線數(shù)據(jù)線的約束規(guī)則:①匹配電阻到發(fā)送端的延時(shí)不應(yīng)大于0.1ns;②數(shù)據(jù)線必須以0.1ns進(jìn)行匹配,即每個(gè)數(shù)據(jù)線都必須在0.65ns~0.75ns之間。有了上述的約束規(guī)則就可以指導(dǎo)布線了。
下面再考慮硬性規(guī)定 Tflt_CLKA_MIN-Tflt_CLKB_MAX=0和Tflt_CLKB_MIN-Tflt_CLKA_MAX=0帶來的影響。事先約束發(fā)送時(shí)鐘和接收時(shí)鐘完全等長(zhǎng)(在實(shí)際操作中以0.02ns進(jìn)行匹配)?在CADENCE環(huán)境下,進(jìn)行時(shí)鐘仿真,得到結(jié)果:|Tflt_CLKA_MIN-Tflt_CLKB_MAX|《0.2和|tflt_clkb_min-tflt_clka_max|《0.2??梢娏艚otmargin的余量為0.2ns。
最終的仿真結(jié)果是:① 匹配電阻到發(fā)送端的延時(shí)不應(yīng)大于0.1ns;②數(shù)據(jù)線以0.1ns進(jìn)行匹配,即每個(gè)數(shù)據(jù)線都必須在0.65ns~0.75ns之間;③發(fā)送時(shí)鐘和接收時(shí)鐘以0.02ns匹配等長(zhǎng);④Tmargin=0.2ns。有了上述拓?fù)浣Y(jié)構(gòu)樣板和約束規(guī)則就可以將SPECCTRAQUEST或ALLEGRO導(dǎo)入到CONSTRAINS MANAGER中。當(dāng)這些設(shè)計(jì)約束規(guī)則設(shè)置好后,就可以利用自動(dòng)布線器進(jìn)行規(guī)則驅(qū)動(dòng)自動(dòng)布線或人工調(diào)線。
2 源同步時(shí)序關(guān)系及仿真實(shí)例
所謂源同步就是指時(shí)鐘選通信號(hào)CLK由驅(qū)動(dòng)芯片伴隨發(fā)送數(shù)據(jù)一起發(fā)送,它并不象公共時(shí)鐘同步那樣采用獨(dú)立的時(shí)鐘源。在源同步數(shù)據(jù)收發(fā)中,數(shù)據(jù)首先發(fā)向接收端,經(jīng)稍短時(shí)間選通時(shí)鐘再發(fā)向接收端用于采樣鎖存這批數(shù)據(jù)。其示意圖如圖2所示。源同步的時(shí)序分析較公共時(shí)鐘同步較為簡(jiǎn)單,分析方法很類似,下面直接給出分析公式:
建立時(shí)間:Tvb_min+(Tflt_clk_min-Tflt_data_settle_delay_max)-Tsetup-Tmargin》0
保持時(shí)間:Tva_min+(Tflt_data_switch_delay min-Tflt_clk _max)-Thold-Tmargin》0
其中,Tvb為驅(qū)動(dòng)端的建立時(shí)間,表示驅(qū)動(dòng)端數(shù)據(jù)在時(shí)鐘有效前多少時(shí)間有效;Tva為發(fā)送端的保持時(shí)間,表示驅(qū)動(dòng)端數(shù)據(jù)在時(shí)鐘有效后保持有效的時(shí)間;其他參量含義同前。下面以通信電路中很常見的TBI接口為例介紹源同步時(shí)序分析及仿真過程。TBI接口主要包括發(fā)送時(shí)鐘和10bit的發(fā)送數(shù)據(jù)、兩個(gè)接收時(shí)鐘和10bit接收數(shù)據(jù)。RBC0、RBC1為兩個(gè)接收時(shí)鐘,在千兆以太網(wǎng)中,這兩個(gè)時(shí)鐘頻率為62.5MHz,相差為180°,兩個(gè)時(shí)鐘的上升沿輪流用于鎖存數(shù)據(jù)。根據(jù)數(shù)據(jù)手冊(cè)的時(shí)序參數(shù),代入上式可得:
2.5+?Tflt_clk _min-Tflt_data__settle_delay_max -1-Tmargin》0
1.5+?Tflt_data__switch_delay min-Tflt_clk _max -0.5-Tmargin》0
仿照前述分析方法:假設(shè)時(shí)鐘、數(shù)據(jù)信號(hào)線的飛行時(shí)間嚴(yán)格相等,即時(shí)鐘和數(shù)據(jù)完全匹配,然后分析它們不匹配帶來的影響。上式變?yōu)?
1.5-Tmargin》0
1-Tmargin》0
可見,無論是建立時(shí)間還是保持時(shí)間都有很大的余量。經(jīng)過仿真,發(fā)現(xiàn)數(shù)據(jù)和時(shí)鐘完全匹配等長(zhǎng)(以0.02ns匹配為例),仍有0.3ns的差別,即
?Tflt_clk_min-Tflt_data_settle_delay_max《0.3
?Tflt_data_switch_delay min-Tflt_clk_max《0.3
取Tmargin=0.5ns得到時(shí)鐘和數(shù)據(jù)的匹配為0.2ns,即數(shù)據(jù)和時(shí)鐘的長(zhǎng)度匹配不應(yīng)超過0.2ns。
在實(shí)際仿真中首先就時(shí)鐘和數(shù)據(jù)的信號(hào)完整性進(jìn)行分析仿真,通過適當(dāng)?shù)亩私悠ヅ涞玫捷^好的接收波形。圖3是一組無源端匹配和有源端匹配時(shí)鐘線的不同仿真波形比較,從中可以看出首先進(jìn)行信號(hào)完整性仿真的必要性。
在公共時(shí)鐘同步中,數(shù)據(jù)的發(fā)送和接收必須在一個(gè)時(shí)鐘周期內(nèi)完成。同時(shí)器件的延時(shí)和PCB走線的延遲也限制了公共時(shí)鐘總線的最高理論工作頻率。故公共時(shí)鐘同步一般用于低于200MHz~300MHz的傳輸速率,高于這個(gè)速率的傳輸,一般應(yīng)引入源同步技術(shù)。源同步技術(shù)工作在相對(duì)的時(shí)鐘系統(tǒng)下,采用數(shù)據(jù)和時(shí)鐘并行傳輸,傳輸速率主要由數(shù)據(jù)和時(shí)鐘信號(hào)間的時(shí)差決定,這樣可以使系統(tǒng)達(dá)到更高的傳輸速率。筆者通過對(duì)寬帶以太網(wǎng)交換機(jī)主機(jī)和子卡板進(jìn)行信號(hào)完整性分析、時(shí)序分析及其仿真,大大縮短了產(chǎn)品的設(shè)計(jì)周期,通過分析仿真有效地解決了高速設(shè)計(jì)中出現(xiàn)的信號(hào)完整性、時(shí)序等方面的問題,充分保證了設(shè)計(jì)的質(zhì)量和設(shè)計(jì)速度,真正做到了PCB板的一次通過。主板和子卡板目前已經(jīng)通過調(diào)試,并順利轉(zhuǎn)產(chǎn)。
評(píng)論
查看更多