为什么D触发器需要建立时间与保持时间
為什么D觸發(fā)器需要建立時(shí)間與保持時(shí)間
定義
建立時(shí)間:時(shí)鐘有效沿到來之前的某段時(shí)間內(nèi),數(shù)據(jù)必須穩(wěn)定,這段時(shí)間稱為建立時(shí)間,用Tsetup或者Tsu表示。
保持時(shí)間:時(shí)鐘有效沿到來之后的某段時(shí)間內(nèi),數(shù)據(jù)必須穩(wěn)定,這段時(shí)間成為保持時(shí)間,用Thold或者Th表示。
時(shí)序圖如下
為什么需要建立時(shí)間和保持時(shí)間
從CMOS到建立時(shí)間和保持時(shí)間這篇文章里作者已經(jīng)講的很詳細(xì)了,我就不再贅述鎖存器的原理了,大家有疑問的話可以先去看看這篇文章,這里我只簡單舉例記錄一下我個(gè)人對(duì)建立時(shí)間和保持時(shí)間的理解。
我們從D觸發(fā)器的門級(jí)電路開始分析,D觸發(fā)器的門級(jí)電路如下:
D觸發(fā)器在時(shí)鐘(上升)邊沿進(jìn)行數(shù)據(jù)的鎖存。我們這里假設(shè)原來的輸出是1,即當(dāng)前從鎖存器鎖存的數(shù)據(jù)為1,要鎖存的數(shù)據(jù)是0,來理解建立時(shí)間和保持時(shí)間。
要讓時(shí)鐘上升沿之后Q輸出為0,即讓從鎖存器的輸出變?yōu)?,也就是要讓主鎖存器在時(shí)鐘上升沿之后穩(wěn)定地鎖存住0。
總結(jié)而言,在上升沿到來及到來之后,主鎖存器負(fù)責(zé)鎖存數(shù)據(jù),而從鎖存器負(fù)責(zé)傳輸主鎖存器所鎖存好的數(shù)據(jù)。這樣一來,我們重點(diǎn)分析主鎖存器即可。
主鎖存器的門級(jí)電路:
1、如果數(shù)據(jù)的建立時(shí)間不足,會(huì)發(fā)生什么?
按我們的假設(shè),也就是數(shù)據(jù)(0)相對(duì)于時(shí)鐘上升沿來的晚了。假設(shè)在T=0ns的時(shí)候,clk從0變成1(為方便分析,假設(shè)時(shí)鐘理想無跳變延時(shí))。我們假設(shè)一個(gè)數(shù)據(jù)D1=0在T=-0.7ns(即比時(shí)鐘上升沿提前0.7s)的時(shí)候到達(dá)數(shù)據(jù)的端口,然后另一個(gè)數(shù)據(jù)D2=0在T=-0.3ns的時(shí)候才來到數(shù)據(jù)端口(即D1來得早,而D2來得比較晚不滿足建立時(shí)間的要求)。我們看看D1的路線,首先經(jīng)過反相器變?yōu)?,然后經(jīng)過與門(此時(shí)時(shí)鐘還是低電平,該與門的另一個(gè)輸入為1)變成1,經(jīng)過或非門之后,將輸出Q變成了0。
但此時(shí)主鎖存器輸出的Q還不穩(wěn)定,需要通過反饋改變或非門的輸入才能保持輸出數(shù)據(jù)的穩(wěn)定。如下圖所示,通過反饋使得自己或非門的輸入為1才能維持Q的穩(wěn)定,需要t1+t2+t3的時(shí)間。
我們?cè)倩剡^頭看D2這個(gè)數(shù)據(jù),它提前于時(shí)鐘沿的時(shí)間不多,剛經(jīng)過與門時(shí)鐘沿就來了,沒有成功通過反饋回路到達(dá)或非門的輸入,不能穩(wěn)定鎖存住從鎖存器要鎖存的0值,這就是建立時(shí)間不足引起的鎖存不住值導(dǎo)致亞穩(wěn)態(tài)的原因。
2、如果數(shù)據(jù)的保持時(shí)間不足,會(huì)發(fā)生什么?
我們看保持時(shí)間仍要從主鎖存器這邊看:
假設(shè)T=0時(shí)刻時(shí)鐘Clk發(fā)生從0->1的上升沿跳變,Clk的高電平信號(hào)首先要經(jīng)過反相器變成0信號(hào)后傳到后面的與門,如上圖綠線所示路徑,假設(shè)該路徑延遲時(shí)間為t2,也就是說t2時(shí)刻與門的輸入就為低電平0,那么在t2時(shí)刻之前,與門的Clk輸入端始終保持高電平。
在t2之前,如果輸入端D發(fā)生跳變(按我們的假設(shè),從0變?yōu)?,即數(shù)據(jù)的保持時(shí)間不足),變換后的數(shù)據(jù)端高電平經(jīng)過t1延遲時(shí)間后(上圖藍(lán)線所示路徑),到達(dá)與門的另一個(gè)輸入端。
一般情況下,由于時(shí)鐘信號(hào)需要經(jīng)過反相器,所以t2>t1,那么與門的輸出在t1~t2時(shí)刻之間的時(shí)候輸出為高電平。也就是SR鎖存器的置位端為1,這會(huì)導(dǎo)致Q=1,這與我們要鎖存的0值不同,導(dǎo)致亞穩(wěn)態(tài)的出現(xiàn)。
總結(jié)
建立時(shí)間:在時(shí)鐘上升沿到來之前主鎖存器將數(shù)據(jù)穩(wěn)定鎖存所需的時(shí)間。
保持時(shí)間:在時(shí)鐘上升沿到來之后主鎖存器傳輸門關(guān)斷至鎖存數(shù)據(jù)的時(shí)間。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的为什么D触发器需要建立时间与保持时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vivado中RTL封装IP流程
- 下一篇: 自己动手写CPU(8)加载存储指令的实现