通常我們?cè)谟?jì)算時(shí)序問(wèn)題時(shí),一般重點(diǎn)遵循以下兩個(gè)條件以保證足夠的Timing Margin:
1. Tflightmax + Driver(Tcomax) + Skew + Jitter + Crosstalk + Receiver(Setup)< Clock Period
2. Tflightmin + Driver(Tcomin) - Receiver(Hold) - Skew - Crosstalk > 0
其中Driver的Tco一般可以從器件的Datasheet上查到。
Tco其實(shí)包括器件的內(nèi)部邏輯延時(shí)和I/O緩沖延時(shí)(Buffer delay),一般通過(guò)加一個(gè)測(cè)試負(fù)載(通常為50ohm)來(lái)測(cè)量,即時(shí)鐘信號(hào)到Driver開(kāi)始至測(cè)量點(diǎn)信號(hào)上升到測(cè)量電平(Vms)的時(shí)延。[器件datasheet上查到的Tco就是這個(gè)值]
我們通常想通過(guò)仿真工具,是得到最大/最小 Flight time. 在Cadence SpecctraQuest里面:
Tflightmax一般被稱為 Final settle delay
而 Tflightmin 也稱為 First switch delay
分別指器件經(jīng)過(guò)Buffer的輸出波形達(dá)到Vms開(kāi)始到接收端到達(dá)最大/小閾值電壓的時(shí)間。
盡管Cadence也是這樣定義的,但是在實(shí)際仿真中,如果默認(rèn)仿真參數(shù)Buffer delay選From library的話,通常計(jì)算出的Final settle delay/First switch delay是從零時(shí)刻開(kāi)始到接收端到達(dá)最大/小閾值電壓的時(shí)間,也就是說(shuō)里面已經(jīng)包含了緩沖延時(shí)(是Tco的一部分),這樣,如果我們?cè)偈褂蒙厦嫣岬降墓?/span>1,2來(lái)計(jì)算時(shí)許的時(shí)候就會(huì)造成Tco中的Buffer delay被重復(fù)計(jì)算。
解決的方法就是要修正仿真出來(lái)的Tflightmax和Tflightmin,減去一個(gè)Buffer delay.
有兩種可能:
1.如果IBIS的測(cè)試負(fù)載和器件手冊(cè)上注明的Tco的測(cè)試負(fù)載相同的話,我們可以通過(guò)Cadence工具直接計(jì)算出來(lái),只要將Buffer delay設(shè)置為On-the-Fly模式下,這時(shí)仿真結(jié)果會(huì)自動(dòng)計(jì)算出減去Buffer delay后的真正的最大/最小Flight Time,也可以在其模型編輯器直接看器件的上升波形,測(cè)量其上升到Vms的時(shí)間,就可以大致確定Buffer Delay的時(shí)間,經(jīng)過(guò)試驗(yàn),發(fā)現(xiàn)兩者計(jì)算出來(lái)的偏差在0.01ns左右。
2.如果IBIS的測(cè)試負(fù)載和器件手冊(cè)上注明的Tco的測(cè)試負(fù)載不同的話,則可以用Cadence模型編輯器修改IBIS的端接負(fù)載和測(cè)量Tco的一致,然后從仿真出來(lái)的波形中得出Tco中的測(cè)量Buffer delay。
幾點(diǎn)疑問(wèn):
1. 選用On-the-fly模式除了在計(jì)算buffer delay上,其他方面和選From Library有何不同?好像對(duì)仿真結(jié)果沒(méi)有什么影響(除了Help文檔上說(shuō)的On-the-fly時(shí)Driver只能加Pulse激勵(lì))。
2. 如果IBIS模型中沒(méi)有提供Vms ,Cadence將如何計(jì)算?其默認(rèn)值是多少?
3. 上面對(duì)時(shí)序以及Cadence工具的理解是否有誤?