【Basking Rootwalla】真正理解setup time/hold time(一)


什么叫做真正的理解setup time/hold time呢?

聽我道來。

就是要講明白的setup time和hold time,都知道setup time的公式是

Tclk > Tcq + Tcomb + Tsetup - Tskew

hold time的公式是

Thold < Tcq + Tcomb - Tskew

那么這兩個公式是怎么來的呢?就是我要說明的問題

在我下面所舉的例子中,Tsetup和Thold都是針對DFF2而言的,而符號含義如下

Tclk    = Frequency of clock
Tcq     = Flop clock to Flop q delay
Tcomb   = Delay on the combinational logic between the Flops
Tsetup  = Required setup time of a Flop
Thold   = Required hold time of a Flop
Tskew   = Delay between clock edges of two adjacent flops(本例中,是CLK2落后於CLK1的時間)

方便說明時序圖給上

(1)setup time

先來看setup time,這時其實要看的是由於p1導致的DFF1的Q端變化在DFF2的D端需要提前Tsetup時間穩定下來

就是以DFF1的p1時刻為基准,數據需要在DFF2的p3時刻采的時候滿足Tsetup的要求

那么以DFF1的p1時刻為基准的話,從p1時刻DFF1的值傳到DFF2的D端需要的時間就是(Tcq + Tcomb)

那么對於DFF2而言,下一個上升沿來臨的時刻相對於p1時刻而言是(Tclk + Tskew),得到如下式子

(Tclk + Tskew) - (Tcq + Tcomb) > Tsetup

化簡即得到平日所見的公式

Tclk > Tcq + Tcomb + Tsetup - Tskew

(2)hold time

對於hold time,即是相對於DFF2的D端而言,p2時鍾沿來了之后,不要立刻影響到p3采到的數據,使得p3能正常的采得數據,而p2來臨之后,傳遞到D端時間還是(Tcq + Tcomb)

而這就是要求變化的慢一點,要在p3這個沿之后來才好,那么算上要求的Thold,則需要D端至少保持(Thold + Tskew)這么長的時間,即是

Tcq + Tcomb > Thold + Tskew

經過化簡,得到平日里所用的公式

Thold < Tcq + Tcomb - Tskew

 

這就是setup time/ hold time的公式的由來,理解起來還算不太難,但是就是一開始都是沒有很深刻的理解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM