SigXplorer中兩種Buffer Delays 模式詳解
In SigXplorer, Buffer Delays Specifies how the simulator o^ains buffer delays for the simulation. We can select one of the following options from the drop-down liST:
From Library: Specifies that the simulator o^ain buffer delays stored with the model in the library. This is the default.
On-the-fly: Specifies that the simulator measure buffer delays during circuit simulation and use these delays in the remaining calculations.
那么,在時序仿真過程中,究竟該怎樣設(shè)置這項參數(shù)?這兩種模式有什么區(qū)別和聯(lián)系呢?讓我們看看下面的仿真實例。
圖2和圖3分別顯示了Buffer Delay模式設(shè)為From Library和On-the-fly時Switch Delay和Settle Delay的仿真數(shù)值。以Switch Delay為例,從這兩個仿真圖中可以看出二者的數(shù)值相差很大,差值為ns級別。通過觀察仿真波形及仿真結(jié)果,可看出在From Library模式下,Switch Delay是從驅(qū)動器件輸出Buffer上電開始測量的;而在On-the-fly模式下,是從驅(qū)動器件輸出Buffer電壓上升到Vmeas開始測量的。后者與我們所熟悉的常規(guī)定義相同,我們的時序公式也是基于此種定義推導(dǎo)的。所以在做時序仿真時應(yīng)該選擇On-the-fly模式。
如果我們將From Library模式下的FIRst Switch Delay和Final Settle Delay分別記為Tswtich_lib和Tsettle_lib,On-the-fly模式下的First Switch Delay和Final Settle Delay分別記為Tswtich_fly和Tsettle_fly,則有Tswtich_lib = Tswtich_fly + Buffer Delay,Tsettle_fly = Tsettle_fly + Buffer Delay。即From Library模式下Switch Delay實際為On-the-fly模式下的Switch Delay + Buffer Delay。
我們再來看看時序仿真過程中,Buffer Delays選擇From Library模式會出現(xiàn)什么問題。
對于源同步來說,其理論時序計算公式如下:
Tflight_time_min > Thold-Tva_min +Tflt_clk@fast + Design Margin fast 式(1-1)
Tflight_time_max < Tvb_min - Tsetup + Tflt_clk@slow -Tjitter - Design Margin Slow 式(1-2)
由前面推導(dǎo)知道,F(xiàn)rom Library模式下Switch Delay實際為On-the-fly模式下Switch Delay + Buffer Delay。以式(1-1)為例,F(xiàn)rom Library模式下,則其變化為:
Tflight_time_min + Tbuffer_delay > Thold-Tva_min +Tflt_clk@fast + Tbuffer_delay_clk + Design Margin Fast
可寫為:
Tflight_time_min > Thold-Tva_min +Tflt_clk@fast + ( Tbuffer_delay_clk - Tbuffer_delay ) + Design Margin Fast
由上式得出,如果參考時鐘和待仿真信號的輸出Buffer模型相同,則它們的Buffer Delays相同,從而Tbuffer_delay_clk - Tbuffer_delay 為零,選擇From Library模式對公式并沒有影響,所計算結(jié)果也是正確的。所以對源同步來說,只要參考時鐘和待仿真信號的模型相同,設(shè)置Buffer Delays為On-the-fly和From Library模式?jīng)]有區(qū)別。但是如果參考時鐘和待仿真信號的輸出Buffer模型不同,則Tbuffer_delay和Tbuffer_delay_clk不同,這時所計算出的Tflight_time_min就有了誤差,誤差值為兩個Buffer Delay之差值,可能為正也可能為負(fù)。雖然這個誤差值不是很大,但是對于時序要求嚴(yán)格的網(wǎng)絡(luò)還是會產(chǎn)生一定的影響。
對于共同時鐘同步來說,由于其時鐘由外部時鐘提供,所以一般情況下公式兩邊的Buffer Delay值不會相同,因此選擇From Library也會產(chǎn)生誤差。
Tflight_time_min > Thold - Tcomin+Tflt_clk@fast(p_in_sd) + Tskew + Design Margin Fast 式(1-3)
Tflight_time_max < Clock Cycle Time - Tsetup - Tco max + Tflt_clk@slow(p_in_sd) - Tjitter - Tskew - Design Margin Slow 式(1-4)
終上所述,在做時序仿真時,應(yīng)該注意選擇Buffer Delays為On-the-fly模式。From Library模式只有在少數(shù)情況下可以應(yīng)用。