摘要:本文通過對(duì)源同步時(shí)序公式的推導(dǎo),結(jié)合對(duì)SPECCTRAQuest時(shí)序仿真方法的分析,推導(dǎo)出了使用SPECCTRAQuest進(jìn)行時(shí)序仿真時(shí)的計(jì)算公式,并對(duì)公式的使用進(jìn)行了說明。
一、前言
通常我們?cè)跁r(shí)序仿真中,首先通過時(shí)序計(jì)算公式得到數(shù)據(jù)信號(hào)與時(shí)鐘信號(hào)的理論關(guān)系,在cadence仿真中,我們也獲得了一系列的仿真結(jié)果,怎樣把仿真結(jié)果正確的運(yùn)用到公式中,仿真結(jié)果的具體含義是什么,是我們正確使用Cadence仿真工具的關(guān)鍵。下面對(duì)時(shí)序計(jì)算公式和仿真結(jié)果進(jìn)行詳細(xì)分析。
二.時(shí)序關(guān)系的計(jì)算
電路設(shè)計(jì)中的時(shí)序計(jì)算,就是根據(jù)信號(hào)驅(qū)動(dòng)器件的輸出信號(hào)與時(shí)鐘的關(guān)系(Tco——時(shí)鐘到數(shù)據(jù)輸出有效時(shí)間)和信號(hào)與時(shí)鐘在PCB上的傳輸時(shí)間(Tflytime)同時(shí)考慮信號(hào)驅(qū)動(dòng)的負(fù)載效應(yīng)、時(shí)鐘的抖動(dòng)(Tiitter)、共同時(shí)鐘的相位偏移(Tskew)等,從而在接收端滿足接收器件的建立時(shí)間(Tsetup)和保持時(shí)間(Thold)要求。通過這些參數(shù),我們可以推導(dǎo)出滿足建立時(shí)間和保持時(shí)間的計(jì)算公式。
時(shí)序電路根據(jù)時(shí)鐘的同步方式的不同,通常分為源同步時(shí)序電路(Source-synchronous timing)和共同時(shí)鐘同步電路(common-clock timing)。這兩者在時(shí)序分析方法上是類似的,下面以源同步電路來說明。
源同步時(shí)序電路也就是同步時(shí)鐘由發(fā)送數(shù)據(jù)或接收數(shù)據(jù)的芯片提供。圖1中,時(shí)鐘信號(hào)是由CPU驅(qū)動(dòng)到SDRAM方向的單向時(shí)鐘,數(shù)據(jù)線Data是雙向的。
圖2是信號(hào)由CPU向SDRAM驅(qū)動(dòng)時(shí)的時(shí)序圖,也就是數(shù)據(jù)與時(shí)鐘的傳輸方向相同時(shí)的情況。
圖中參數(shù)解釋如下:
- Tft_clk:時(shí)鐘信號(hào)在PCB板上的傳輸時(shí)間;
- Tft_data:數(shù)據(jù)信號(hào)在PCB板上的傳輸時(shí)間;
- Tcycle:時(shí)鐘周期
- Tsetup':數(shù)據(jù)到達(dá)接收緩沖器端E1時(shí)實(shí)際的建立時(shí)間;
- Thold':數(shù)據(jù)到達(dá)接收緩沖器端E1時(shí)實(shí)際的保持時(shí)間;
- Tco_max/Tco_min:時(shí)鐘到數(shù)據(jù)的輸出有效時(shí)間。
由圖2的時(shí)序圖,我們可以推導(dǎo)出,為了滿足接收芯片的Tsetup和Thold時(shí)序要求,即Tsetup'>Tsetup和Thold'>Thold,所以Tft_clk和Tft_data應(yīng)滿足如下等式:
Tft_data_min>Thold-Tco_min+Tft_clk (公式1)
Tft_data_max<Tcycle-Tsetup-Tco_max+Tft_clk (公式2)
當(dāng)信號(hào)與時(shí)鐘傳輸方向相反時(shí),也就是圖1中數(shù)據(jù)由SDRAM向CPU芯片驅(qū)動(dòng)時(shí),可以推導(dǎo)出類似的公式:
Tft_data_min>Thold-Tco_min-Tft_clk (公式3)
Tft_data_max<Tcycle-Tsetup-Tco_max-Tft_clk (公式4)
如果我們把時(shí)鐘的傳輸延時(shí)Tft_clk看成是一個(gè)帶符號(hào)的數(shù),當(dāng)時(shí)鐘的驅(qū)動(dòng)方向與數(shù)據(jù)驅(qū)動(dòng)方向相同時(shí),定義Tft_clk為正數(shù),當(dāng)時(shí)鐘驅(qū)動(dòng)方向與數(shù)據(jù)驅(qū)動(dòng)方向相反時(shí),定義Tft_clk為負(fù)數(shù),則公式3和公式4可以統(tǒng)一到公式1和公式2中。
三.Cadence的時(shí)序仿真
在上面推導(dǎo)出了時(shí)序的計(jì)算公式,在公式中用到了器件手冊(cè)中的Tco參數(shù),器件手冊(cè)中Tco參數(shù)的獲得,實(shí)際上是在某一種測(cè)試條件下的測(cè)量值,而在實(shí)際使用上,驅(qū)動(dòng)器的實(shí)際負(fù)載并不是手冊(cè)上給出的負(fù)載條件,因此,我們有必要使用一種工具仿真在實(shí)際負(fù)載條件下的信號(hào)延時(shí)。Cadence提供了這種工具,它通過仿真提供了實(shí)際負(fù)載條件下和測(cè)試負(fù)載條件下的延時(shí)相對(duì)值。
我們先來回顧一下CADENCE的仿真報(bào)告形式。仿真報(bào)告中涉及到三個(gè)參數(shù):FTSmode、SwitchDelay和SettleDelay。其中Cadence時(shí)序仿真的結(jié)果是通過SwitchDelay和SettleDelay兩個(gè)參數(shù)反映出來的。
在解釋FTSmode、SwitchDelay和SwitchDelay前先解釋一下BufferDelay曲線的含義。BufferDelay曲線是Cadence仿真器斷開實(shí)際負(fù)載,帶上驅(qū)動(dòng)芯片器件手冊(cè)提供的測(cè)試負(fù)載條件下獲得的一條曲線。測(cè)試負(fù)載是在IBIS仿真模型庫中設(shè)置的。Cadence仿真報(bào)告中的延時(shí)測(cè)量是以BufferDelay為基準(zhǔn)曲線,以V Measure為起始測(cè)量點(diǎn)獲得的相對(duì)延時(shí)值。
- FTSmode:定義了當(dāng)前仿真驅(qū)動(dòng)器的特性,分為Fast、Type和Slow。該三種特性是在IBIS模型中定義的,F(xiàn)ast是驅(qū)動(dòng)器沿最快的模式,Slow是驅(qū)動(dòng)器沿最慢的模式,從而定義了驅(qū)動(dòng)器在正常工作條件下的兩種極限特性。
- SwitchDelay: 定義為SwitchDelayFall和SwitchDelayRise兩者的最小值。圖3給出了SwitchDelayFall和SwitchDelayRise的圖形解釋。
- SwitchDelayFall:是從BufferDelay下降沿的Vmeasure點(diǎn)開始到接收波形下降曲線第一次穿過高電平閾值時(shí)的延時(shí)值。
- SwitchDelayRise:是從BufferDelay上升沿的Vmeasure點(diǎn)開始到接收波形上升曲線第一次穿過低電平閾值時(shí)的延時(shí)值。
- SettleDelay:是SettleDelayFall和SettleDelayRise兩者的最大值。圖3給出了SettleDelayFall和settleDelayRise的圖形解釋。
- SettleDelayFall:是從BuferDelay下降沿的Vmeasure點(diǎn)開始到接收波形上升曲線最后一次穿過高電平閾值時(shí)的延時(shí)值。
從SwitchDelay和SettleDelay的定義我們可以看出,SettleDelay是一個(gè)與輸入端的建立時(shí)間(Tsetup)有關(guān)的量,SwitchDelay是一個(gè)與輸入端保持時(shí)間有關(guān)的量(Thold)。
公式1和公式2中的Tft_data與Tft_clk在Cadenee仿真工具中是通過仿真獲得的數(shù)據(jù),它與Cadence仿真中fast和slow狀態(tài)下的SwitchDelay與SettleDelay參數(shù)有關(guān)。
為了了解Cadence仿真中的SwitchDelay和SettleDelay與時(shí)序公式中參數(shù)的關(guān)系,我們重新分析一下包含有BufferDelay曲線的時(shí)序圖。
在圖4中,時(shí)鐘輸出和數(shù)據(jù)輸出使用的是BufferDelay曲線,此時(shí)Tco是時(shí)鐘BuferDelay曲線和數(shù)據(jù)BufferDelay曲線之間的延時(shí)關(guān)系,這種定義符合“手冊(cè)中的Tco是在特定負(fù)載下測(cè)得的”說法。
在圖4中,CPU CLK OUT(BuferDelay)和CPU Signals OUT(Buferdelay)是在測(cè)試負(fù)載條件下的信號(hào)輸出波形(對(duì)應(yīng)于圖3中的BuferDelay曲線,而不是驅(qū)動(dòng)端輸出曲線),SDRAM CLK IN和SDRAM Signals IN是在實(shí)際負(fù)載條件下輸入端口的仿真波形。
在器件手冊(cè)中給出時(shí)序關(guān)系時(shí),對(duì)于時(shí)鐘信號(hào),通常以某一測(cè)量電壓為時(shí)間測(cè)量點(diǎn),如圖4中的Vmeas1和Vmeas2,對(duì)于驅(qū)動(dòng)端測(cè)量電壓點(diǎn)為驅(qū)動(dòng)器件手冊(cè)中定義的測(cè)量點(diǎn),對(duì)于接收端測(cè)量電壓點(diǎn)為接收器件手冊(cè)中定義的測(cè)量點(diǎn)。在Cadence仿真時(shí),對(duì)于接收端電壓測(cè)量點(diǎn)的設(shè)置,通常在接收器件模型中,把輸人高低門限電平定義成Vmeas2來實(shí)現(xiàn)。對(duì)于驅(qū)動(dòng)端電壓測(cè)量點(diǎn)的設(shè)置,是在驅(qū)動(dòng)器件模型參數(shù)中設(shè)置的。此時(shí)對(duì)于時(shí)鐘仿真的結(jié)果是,時(shí)鐘信號(hào)的SettleDelay和SwitchDelay值相等。
對(duì)于數(shù)據(jù)信號(hào)的測(cè)量點(diǎn)就稍微有點(diǎn)復(fù)雜了,這要根據(jù)手冊(cè)中Tco的測(cè)量方式來確定,有的器件手冊(cè)Tco是從時(shí)鐘的Vmeas到數(shù)據(jù)的Vmeas來測(cè)量的,有的手冊(cè)是從時(shí)鐘的Vmeas到數(shù)據(jù)的門限電平來測(cè)量的。如果采用從時(shí)鐘的Vmeas到數(shù)據(jù)的門限電平來測(cè)量的,則在Cadence仿真中,要對(duì)高低電平門限分別作為測(cè)量點(diǎn)仿真,然后取最惡劣的仿真結(jié)果。
對(duì)于公式中數(shù)據(jù)的延時(shí)Tft_data,從Cadence仿真中對(duì)SettleDelay和SwitchDelay的定義和圖4中的時(shí)序關(guān)系可以看出,Tft_data就是仿真結(jié)果中的SettleDelay和SwitchDelay參數(shù),并且SettleDelay是與建立時(shí)間(Tsetup)有關(guān),SwitchDelay是與保持時(shí)間(Thold)有關(guān),因此公式中的Tft_data_min對(duì)應(yīng)仿真結(jié)果中的SwitchDelay,Tft_data_max對(duì)應(yīng)仿真結(jié)果中的SettleDelay,考慮到通常Slow狀態(tài)的延時(shí)比Fast狀態(tài)的延時(shí)要大,因此,公式中的Tft_data_min對(duì)應(yīng)仿真結(jié)果中Fast狀態(tài)的SwitchDelay,Tft_data_max對(duì)應(yīng)仿真結(jié)果中Slow狀態(tài)的SettleDelay。
對(duì)于公式中時(shí)鐘的延時(shí),從測(cè)量方式中可以看出Tft_clk=SettleDelay=SwitchDelay,考慮到同一公式中仿真狀態(tài)的一致,因此,公式中與Thold有關(guān)的不等式中的Tfl_clk對(duì)應(yīng)于Fast狀態(tài)的仿真值,與Tsetup有關(guān)的不等式中的Tft_clk對(duì)應(yīng)Slow狀態(tài)的仿真值。寫成公式就是:
Tft_data_fast_switchdelay>Thold口Tco_min+Tft_clk_fast (公式5)
Tff_data_slow_settledelay<Tcycle-Tsetup 口Tco_max+Tft_clk_slow (公式6)
在實(shí)際仿真中,我們只要保證仿真結(jié)果滿足公式5和公式6的時(shí)鐘和數(shù)據(jù)關(guān)系,也就保證了單板工作時(shí)序的正確性。
四.總結(jié)
Cadence公司的Allegro SI和SigXplor設(shè)計(jì)工具為硬件開發(fā)工程師提供了一個(gè)功能強(qiáng)大的高速PCB仿真手段,通過仿真設(shè)計(jì),可以設(shè)計(jì)出符合要求的信號(hào)時(shí)序和信號(hào)完整性,從而提高單板和系統(tǒng)的工作穩(wěn)定性,降低開發(fā)風(fēng)險(xiǎn)和開發(fā)成本。