概念
對於乙個數字系統而言,建立時間和保持時間可以說是基礎中的基礎,這兩個概念就像是數位電路的地基,整個系統的穩定性絕大部分都取決於是否滿足建立時間和保持時間。但是對於絕大部分包括我在內的初學者來說,建立時間和保持時間的理解一直都是乙個很大的困擾,儘管概念背得住,但是卻沒有理解這其中的精髓。這篇文章主要是討論一下我對於這兩個時間的理解。
首先我們先來看看維基百科中對建立時間(setup time)和保持時間(hold time)的解釋:
假設資料是在上公升沿被取樣,那麼建立時間就是時鐘上公升沿來臨之前資料需要保持穩定的最小時間,保持時間就是時鐘上公升沿來臨之後資料需要保持穩定的最小時間。那麼問題來了,我們都知道資料是在時鐘訊號上公升沿的那一瞬間被打進觸發器從而被取樣的,那麼我們只需要在時鐘上公升沿的那一瞬間或者那一小段時間保持穩定不就行了?理論上這麼想是沒問題的,但對於實際工程來講,這是幾乎不可能達到的。常規來講,資料在傳送端通過乙個d觸發器在時鐘訊號的控制下將資料傳送出去,在接收端通過乙個d觸發器在時鐘訊號的同步下進行取樣。圖一是乙個最簡單的兩線單工通訊系統大致框圖:
要分析這個問題,我們不妨先看一下d觸發器裡面到底長啥樣,圖二是經典上公升沿d觸發器的內部結構圖:
與非門g1到g4是維持阻塞電路,g5和g6構成乙個rs觸發器用於資料的鎖存。如有不明白rs觸發器的真值表和工作機理的可以在網上找到資料,這裡不再累述。
圖中可以看到,時鐘訊號直接作用在了g2和g3上面,也就意味著g2和g3是真正的取樣傳輸閘電路,輸入訊號應該要正確的被g2和g3取樣後傳輸至後面的rs觸發器。我們注意到,資料在傳輸到g3之前經過了g4,傳輸至g2之前經過了g4和g1。我們知道,實際情況中訊號經過閘電路是有延遲的。所以輸入訊號在到達g2和g3之前經過了g1和g4的延遲,因此就引入了建立時間的概念:建立時間就是為了補償訊號在g1和g4上的延遲。也就是資料在時鐘沿來臨之前,需要足夠的建立時間讓訊號經過g1和g4到達g2和g3。觸發器的建立時間主要取決於g1和g4.
那麼保持時間呢?一樣的,上公升沿來臨時,資料通過g2和g3傳輸至後面的rs觸發器,但g2和g3也會存在延時。因此又引入了保持時間的概念:保持時間就是為了補償訊號在g2和g3上的延遲。也就是資料在時鐘沿來臨之後,需要足夠的保持時間讓訊號正確的從g2和g3傳輸至rs觸發器。觸發器的保持時間主要取決於g2到g3,進而可以推斷出,一般d觸發器的保持時間比建立時間要長。
也許有人問,如果不滿足建立時間和保持時間會怎樣?很簡單,因為在傳輸的過程中資料並不是處於穩定狀態而處於亞穩態區,則會導致取樣的資料可能會出錯。
約束條件
上面我們已經理解了建立時間和保持時間了,下面我們就結合乙個比較經典的模型來看看我們在進行電路設計的時候要如何去滿足建立時間和保持時間。
圖三是乙個典型的雙線單工通訊模型的框圖,其中comb表示組合邏輯電路,clock skew表示由於時鐘線存在長度而導致的時鐘偏移,兩個d觸發器均為上公升沿觸發。
假設d觸發器的建立時間為tsetup,保持時間為thold,則存在如下關係式:
tclk+tskew-tdq-tcomb>=tsetup (1)
tdq+tcomb-tskew>=thold (2)
其中:tclk : 時鐘週期
tskew : 時鐘線上的延時
tdq : d觸發器從d端到q端的時延
tcomb : 資料訊號經過組合邏輯電路的延時(例如緩衝器)
圖四是這個模型的時序圖,結合圖四我們可以推導出這兩個約束關係式。
建立時間約束:
(1)式的思想其實就是在第二個時鐘沿來臨之前,資料穩定的時間一定要大於等於建立時間。因此在乙個時鐘週期內,資料穩定的時間為tclk-tdq-tcomb,因為時鐘也存在偏移,因此要把這個時鐘偏移加上,於是最後資料穩定的時間為tclk+tskew-tdq-tcomb,滿足這個穩定時間大於建立時間即可,因此推導出了(1)式,進而可以推導出在已知建立時間、組合邏輯延時、d觸發器延時、時鐘偏移的情況下,理論上能夠承載的最大時鐘頻率為:
f_max = 1/(tsetup+tdq+tcomb-tskew)
這個關係式對於電路設計和晶元選型方面都有著非常大的幫助。當然,在實際工程中還要根據實際情況留有一定的設計餘量以應對短暫的非常規情況。
保持時間約束:
(2)式的思想為在第二個時鐘沿來臨之後,資料穩定的時間一定要大於等於保持時間。因此在時鐘沿來臨之後,資料穩定的時間為tdq+tcomb,再減去時鐘偏移則為tdq+tcomb-tskew,滿足這個穩定時間大於等於保持時間即可。
最後聯立(1)(2)式我們可以推導得出:
組合邏輯延時範圍:
thold+tskew-tdq<=tcomb<=tclk-tdq+tkew-tsetup
時鐘偏移範圍:
tsetup-tclk+tdq+tcomb<=tskew<=tdq+tcomb-thold
**----
我自己的理解:假定tskew為0,在clk1上公升沿觸發後,d1需要經過tdq到q1,再經過tcomb到d2,此時週期內剩餘時間為tclk - tdq - tcomb,應大於tsetup,再考慮上tskew,即ckl2上公升沿觸發時間延遲tskew,得到tclk - tdq - tcomb + tskew > tsetup;
建立時間和保持時間
一 概念 建立時間和保持時間都是針對觸發器的特性說的。時序圖如下 建立時間 tsu set up time 是指在觸發器的時鐘訊號上公升沿到來以前,資料穩定不變的時間,如果建立時間不夠,資料將不能在這個時鐘上公升沿被穩定的打入觸發器,tsu就是指這個最小的穩定時間。保持時間 th hold time...
建立時間和保持時間
1 模型分析 理解建立時間保持時間需要乙個模型,如下圖所示。圖 觸發器時鐘和資料模型 時鐘沿到來時取樣資料d,將採到的資料寄存下來,並輸出到q端,所以如果沒有新的時鐘沿到來,則q端輸出的一直是上次取樣的資料,每來乙個時鐘沿,取樣一次資料d。那麼分析這個建立時間和保持時間,我們分兩種情況,一種是clk...
建立時間和保持時間概念
一 概念 建立時間和保持時間都是針對觸發器的特性說的。時序圖如下 建立時間 tsu set up time 是指在觸發器的時鐘訊號上公升沿到來以前,資料穩定不變的時間,如果建立時間不夠,資料將不能在這個時鐘上公升沿被穩定的打入觸發器,tsu就是指這個最小的穩定時間。保持時間 th hold time...