在時序電路設計中,建立時間/保持時間可以說是出現頻率最高的幾個詞之一了,人們對其定義已經耳熟能詳,對涉及其的計算(比如檢查時序是否正確,計算最大頻率等)網上也有很多。但拋開這些表面,建立時間/保持時間到底是如何產生的,了解的人卻不是很多。本篇文章就透過現象看本質,打開觸發器的“黑盒子”,來了解一下到底什么是建立時間/保持時間。
01
先來看一下建立時間/保持時間的定義:
建立時間(setup time):觸發器的時鐘信號上升沿到來以前,數據需要保持穩定的時間。
保持時間(hold time):觸發器的時鐘信號上升沿到來之后,數據需要保持穩定的時間。
值得注意的是,建立/保持時間的概念是針對觸發器的特性來說的。但是不僅觸發器有建立/保持時間,鎖存器也有,而且觸發器的建立/保持時間還是基于鎖存器的特性得來的。為此,先來了解一下鎖存器。
圖1 鎖存器的符號表示
典型的鎖存器如圖1所示,包括三個端口:數據輸入端D,使能輸入端G和數據輸出端Q。當使能端為高電平時,輸出Q隨輸入D變化;當使能端為低電平時,輸出保持不變。鎖存器的時序如圖2所示。
圖2 鎖存器的時序特性
在使能端由高電平向低電平變化過程中,為了使鎖存器正確鎖存住數據,需要對輸入數據的時間加以約束,因此便有了鎖存器的建立時間和保持時間,即圖2中的T_setup 和T_hold 。鎖存器的這兩個時序特性定義跟觸發器很相似,不同的是在鎖存器上這兩個時序約束條件發生在使能端由高電平向低電平轉化時。圖2中的T_dGQ為使能端到輸出端的延時。
鎖存器在使能信號為高電平時相當于透明,而如何組合鎖存器,使其變成只在使能信號邊沿鎖存數據的觸發器呢?答案是兩個鎖存器串聯。如圖3(a)所示,串聯的前一個鎖存器使能端為低電平觸發(即反向使能),稱為主鎖存器,后一個鎖存器稱為從鎖存器。在clk為低電平時,使能主鎖存器,主鎖存器的輸出信號m隨輸入d變化,此時因為從鎖存器未被使能,所以輸出信號q無變化;在clk從低電平變為高電平時,m采樣輸入信號d并且保持,與此同時從鎖存器打開,輸出端輸出被主鎖存器鎖存的信號值。觸發器的符號表示如圖3(b)。
圖3 (a)兩個鎖存器組成的觸發器 (b)觸發器符號表示
為了進一步了解主從鎖存器的工作原理,示例的波形圖如圖4所示。可以看到,當clk為低時,m跟隨d變化;當clk由低變高,主鎖存器鎖存輸入值,中間m停止變化,此時從鎖存器打開,經過一段延遲后將中間信號送至輸出。
圖4 兩個鎖存器組成的觸發器時序波形
為了不引起混淆,圖4在重畫的波形圖上給出觸發器的時序特性表示。其中T_dCQ為觸發器從clk端到Q端的延遲。需要注意的是,在clk上升后到Q端穩定以前,Q端可能會變化多次,T_dCQ 則是取從clk變化到穩定輸出之間的延遲。
圖5 觸發器的時序特性表示
鎖存器的時序特性和觸發器的時序特性該如何對應呢?仔細一想就會得到答案:觸發器的建立時間和保持時間其實就是主鎖存器的建立時間和保持時間,而觸發器的clk到q端的延遲T_dCQ就是從鎖存器的延遲T_dGQ。
到這里我們已經打開了觸發器的第一層“黑盒子”,但是建立時間和保持時間究竟是如何產生的呢?這就需要打開第二層“黑盒子”——觸發器的門電路表示。
02
構成鎖存器的電路多種多樣,這里我們選擇使用傳輸門和三態門構建的CMOS鎖存器,電路如圖6所示。
圖6 鎖存器電路
當G為高電平時,傳輸門Ug打開,信號從D端輸入,經過Ug、U2、U4到達輸出端Q,此時三態反相器為關閉狀態;當G端變為低電平時,傳輸門關閉,U3打開,此時U2、U3構成雙穩態器件將輸入信號保持,輸出端Q也穩定輸出雙穩態器件保持的信號。
現在來探討鎖存器的建立時間和保持時間。在G為高電平時,輸入D變化后為了能輸出正確的值,存儲器——即雙穩態器件必須存儲到正確的輸入值。這意味著要想使輸出正確,在G下降前輸入值必須經過U2。由此得出建立時間
T_setup = Tg + T2
其中Tg和T2分別為傳輸門和反相器U2的延遲。
當G變為低電平后,輸入值需要在傳輸門關閉之前保持不變,否則輸入值就會穿過傳輸門,從而無法鎖存正確的值。傳輸門的關閉信號需要經過U1,所以得出保持時間
T_hold = T1
其中T1為反相器U1的延遲。
接下來算一下T_dGQ。G由高變低后,G的變化經過反相器U1到達傳輸門Ug,使傳輸門關閉,輸入的信號再經過Ug、U2、U4到達輸出端。所以
T_dGQ = T1 + Tg + T2 + T4
從輸入端到輸出端,信號經過了Ug、U2、U4,所以輸入到輸出的延遲
T_dDQ = Tg + T2 + T4
因為在觸發器中T_dDQ意義不大,所以在此也不做過多贅述。
有了單個鎖存器的基礎,接下來進行觸發器的探討也會變得容易很多。
03
由第一段分析可知,觸發器是由兩個鎖存器串聯而組成的,由傳輸門和三態反相器構成的觸發器如圖7所示:
圖7 觸發器電路
可以看到在觸發器電路中,Ug1、U2、U3構成了主鎖存器,Ug2、U4、U5構成了主鎖存器。為了更直觀的展示觸發器的原理,將圖7中的時鐘信號用彩色的連線代替,得到圖8:
圖8 觸發器的原理圖的直觀表示
在圖8中,主鎖存器和從鎖存器分別用虛線框出,紅色連線為clk信號,藍色連線為經過反相器U1后的clk信號。
觸發器的建立時間和保持時間與主鎖存器的相同:
T_setup = Tg1 + T2
T_hold = T1
觸發器的clk到Q端延遲則為從鎖存器的延遲,分析方法與鎖存器的分析方法相同:
T_dCQ = T1 + Tg2 + T4
-
反相器
+關注
關注
6文章
314瀏覽量
43527 -
時序電路
+關注
關注
1文章
114瀏覽量
21746 -
鎖存器
+關注
關注
8文章
914瀏覽量
41667 -
門電路
+關注
關注
7文章
199瀏覽量
40271 -
觸發器
+關注
關注
14文章
2018瀏覽量
61380
發布評論請先 登錄
相關推薦
芯片設計進階之路—從CMOS到建立時間和保持時間
![芯片設計進階之路—從CMOS到<b class='flag-5'>建立時間</b>和<b class='flag-5'>保持</b><b class='flag-5'>時間</b>](https://file1.elecfans.com/web2/M00/8A/6D/wKgaomSSY9CAOGbgAAB6_fQ89e0849.jpg)
FPGA時序分析-建立時間和保持時間裕量都是inf怎么解決呢?
![FPGA時序分析-<b class='flag-5'>建立時間</b>和<b class='flag-5'>保持</b><b class='flag-5'>時間</b>裕量都是inf怎么解決呢?](https://file1.elecfans.com/web2/M00/8E/62/wKgZomTFysCAFyHEAAAI0sCfRug819.jpg)
建立時間和保持時間討論
FPGA實戰演練邏輯篇51:建立時間和保持時間
保持時間與建立時間
數字 IC 筆試面試必考點(9)建立時間以及保持時間 精選資料分享
為什么觸發器要滿足建立時間和保持時間
PCB傳輸線建立時間、保持時間、建立時間裕量和保持時間裕量
![PCB傳輸線<b class='flag-5'>建立時間</b>、<b class='flag-5'>保持</b><b class='flag-5'>時間</b>、<b class='flag-5'>建立時間</b>裕量和<b class='flag-5'>保持</b><b class='flag-5'>時間</b>裕量](https://file1.elecfans.com/web2/M00/A1/85/wKgZomT1hAKAfngVAABCtmMub98605.png)
關于建立時間和保持時間的測量方法
![關于<b class='flag-5'>建立時間</b>和<b class='flag-5'>保持</b><b class='flag-5'>時間</b>的測量方法](https://file1.elecfans.com/web2/M00/B2/A0/wKgaomVuly2AKUf4AAAnu2GISIw952.png)
評論