在后仿真過程中經常會遇到關于setup和hold violation的問題,但是關于setup和hold time的產生原因和由來很多人還比較朦朧,為此本文通過解剖一個邊沿觸發(fā)器簡要說明setup和hold產生原因。
解剖示例
上圖為觸發(fā)器的簡要示意圖(clk和’clk為反向時鐘)。T1和T4同時導通,T2和T3同時導通,且T1、T4和T2、T3導通狀況互反。其中T1、T2、T3、T4均為傳輸門,均為電平敏感,所以所謂的時鐘跳變可以理解為高低電平的相互跳變所致。而電路中實際的延時信息主要由于電信號導通時通過電子器件時耗費的時間。
【注】傳輸門的開關狀態(tài)如下圖所示。
工作過程
clk和’clk互為相反的信號,clk為低電平(’clk為高電平)時,T1和T4導通,此時數(shù)據進入到`D和``D,因為此時T4導通,圖中綠色箭頭線中的數(shù)據保持上一拍的數(shù)據結果。 當clk高電平(’clk為低電平)到來時,T1和T4關斷,T2和T3導通,②中的數(shù)據維持穩(wěn)定,通過T3輸出至Q端,同時B點、’Q和’’Q點的數(shù)據保持一致穩(wěn)定;當?shù)碗娖降絹頃r,T2和T3關斷,T1和T4導通,此時B點、’Q(Q)和’’Q點數(shù)據一直穩(wěn)定,因此可以保證綠色箭頭線部分有穩(wěn)定一致的數(shù)據通過Q端發(fā)送出去。
所以,可以看到在上跳沿采樣的數(shù)據可以保持一個時鐘周期。通過上述分析,我們可以看到一個邊沿觸發(fā)器實際上可以解剖為兩個鎖存器,后續(xù)分析時也會用到這種結構特點。 一般觸發(fā)器setup和hold的產生,就跟上述觸發(fā)器的工作過程密切相關,下面一塊來看看兩者之間的聯(lián)系。
setup和hold蹤跡
下圖為陰影區(qū)域為timing violation區(qū)。
clk上跳沿之前
setup時間(tsu):輸入數(shù)據D在時鐘上升沿之前必須保持不變的時間。為了得到有效的數(shù)據,必須保證A點、`D和``D點的數(shù)據保持一致穩(wěn)定,否則在T2導通時將會形成振蕩電路。當T1打開時,輸入信號經過T1后分別到達A點、`D和``D點,并且保持一致,耗費的時間為Ts,時鐘從低電平跳變到高電平需要耗費時間為Tc,因此,為了保持數(shù)據的有效和電路的穩(wěn)定,輸入數(shù)據需要保持的時間至少應該為Ts,如果不滿足將會在T2導通時,A點、`D和``D點的值不同,從而可能會產生亞穩(wěn)態(tài)。因此,可以這樣理解,所謂的建立時間是指輸入數(shù)據D經過多長時間才能使`D的數(shù)據穩(wěn)定可靠。所以setup指的是數(shù)據從D到達``D的時間。
clk上跳沿之后
hold時間(thold):在時鐘上升沿到達后,輸入數(shù)據需要保持穩(wěn)定的時間。在clk上跳沿發(fā)生之后,T1和T4關閉,T2和T3打開,數(shù)據從Q端輸出。但是需要注意,因為T1關閉需要時間,所以在T1和T4關閉到T2和T3打開輸入數(shù)據必須保持穩(wěn)定,如果A點的數(shù)據受到D點的影響,從而導致A點和D點數(shù)據不一致,也就是在上跳沿發(fā)生后,即T2、T3導通時,②中循環(huán)的數(shù)據不能保持穩(wěn)定一致,從而導致Q端數(shù)據不穩(wěn)定。因此,thold可以理解為D端數(shù)據通過T1,再經過②到達A點,保證A和`D點數(shù)據一致穩(wěn)定的時間。 上面是對setup和hold產生原因的一些簡單介紹,有些朋友可能會問,上文中setup和hold感覺都是正值,為什么我在仿真的時候遇到過setup或者hold為負值的情況呢?為了探討方便,此處以常用到的一種觸發(fā)器(由兩個鎖存器組成)為例進行簡單的說明。
hold time為負值
當data從pin到鎖存數(shù)據的鎖存器的delay時間大于clock從pin到達鎖存器CK端的delay時,那么當D結束于CLK上升沿之前,此時從REGISTER層面觀測到的hold為負值,而實際上在鎖存數(shù)據的鎖存器端,由于之前data延遲大于clock延遲,CLK'對D'進行控制時,D'相對于CLK'一直保持到CLK'為高電平之后,也就是此時hold為正值,出現(xiàn)在上升沿右側。
setup time為負值
當data從pin到鎖存數(shù)據的鎖存器的delay時間小于clock從pin到達鎖存器CK端的delay時,那么當D開始于CLK上升沿之后,此時從REGISTER層面觀測到的setup為負值,而實際上在鎖存數(shù)據的鎖存器端,由于之前data延遲小于clock延遲,CLK'對D'進行控制時,D'出現(xiàn)在了CLK'之前,也就是此時setup為正值,出現(xiàn)在上升沿左側。
審核編輯:劉清
-
鎖存器
+關注
關注
8文章
908瀏覽量
41645 -
觸發(fā)器
+關注
關注
14文章
2003瀏覽量
61349 -
CLK
+關注
關注
0文章
127瀏覽量
17236 -
邊沿觸發(fā)器
+關注
關注
0文章
34瀏覽量
4026
原文標題:說說setup和hold violation
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論