時(shí)間:2023-06-21 14:32:42來源:芯片設(shè)計(jì)進(jìn)階之路
建立時(shí)間(setup time)和保持時(shí)間(hold time)是時(shí)序分析中最重要的概念之一,深入理解建立時(shí)間和保持時(shí)間是進(jìn)行時(shí)序分析的基礎(chǔ)。
在介紹建立時(shí)間和保持時(shí)間之前,我們從CMOS電路開始。
1. CMOS晶體管簡介
金屬-氧化物-半導(dǎo)體(Metal-Oxide-Semiconductor)結(jié)構(gòu)的晶體管簡稱MOS晶體管,有P型MOS管和N型MOS管之分。由MOS管構(gòu)成的集成電路稱為MOS集成電路,而由PMOS管和NMOS管共同構(gòu)成的互補(bǔ)型MOS集成電路即為 CMOS-IC( Complementary MOS Integrated Circuit)
MOS管就相當(dāng)于一個(gè)開關(guān),如下圖所示。
所以,NMOS需要輸入高電壓(邏輯1)才能導(dǎo)通,PMOS需要輸入低電壓(邏輯0)才能導(dǎo)通??梢哉J(rèn)為NMOS是“正開關(guān)”,PMOS是“反開關(guān)”。
現(xiàn)在的工藝中,主要使用的就是CMOS工藝,就是把PMOS和NMOS這兩類晶體管構(gòu)成一個(gè)單元,稱為CMOS單元或者反相器單元。
所以很多文章都在分析CMOS反相器,是因?yàn)镃MOS反相器就是CMOS電路的基本單元,或者說可以看作最小單元。
所以從CMOS反相器開始。
1.1 CMOS 反相器
反相器就算輸入位1.輸出位0;輸入為0.輸出為1. 實(shí)際的反相器沒有這么理想。
CMOS 反相器電路如下:
當(dāng)左邊vI=0V時(shí),vGND=0V,VTN截止,∣vGSP∣=VDD ,VTP導(dǎo)通,vO≈VDD,門電路輸出輸出高電平;在這個(gè)過程中,從VDD到接地GND這一個(gè)供電回路都沒有導(dǎo)通,因此理論上不存在電流從VDD流到GND,因此功耗為0.
當(dāng)左邊vI=VDD時(shí),VGND=VDD ,VTN導(dǎo)通,NMOS打開,∣VGSP∣=0V,VTP截止,PMOS關(guān)閉,vO≈0V,門電路輸出低電平,但是從VDD到接地GND這一個(gè)供電回路也沒有導(dǎo)通,因此理論上也不存在電流從VDD流到GND,因此功耗也為0.
如果將0V定義為邏輯0.VDD定義為邏輯1.將實(shí)現(xiàn)邏輯“非”功能。
所以理論上,CMOS進(jìn)行傳輸?shù)臅r(shí)候是沒有功耗的,但是實(shí)際情況肯定不可能沒有功耗,但是功耗會很小。所以在低功耗如此重要的今天,為什么CMOS能稱為主流就不奇怪了。
2. CMOS邏輯電路
2.1 CMOS 門電路
CMOS反相器就是一個(gè)非門,由非門可以組成與非門和或非門。
CMOS與非門(NAND)
CMOS 與非門電路及行為如下面圖所示:
a = 0. b=0時(shí),上面并聯(lián)的PMOS導(dǎo)通,下面串聯(lián)的NMOS截止,輸出X=Vdd=1;
a = 0. b=1時(shí),上面并聯(lián)的PMOS導(dǎo)通,下面串聯(lián)的NMOS截止,輸出X=Vdd=1;
a = 1. b=0時(shí),上面并聯(lián)的PMOS導(dǎo)通,下面串聯(lián)的NMOS截止,輸出X=Vdd=1;
a = 1. b=1時(shí),上面并聯(lián)的PMOS截止,下面串聯(lián)的NMOS截止,輸出X=Vdd=0;
可見,這個(gè)電路實(shí)現(xiàn)了與非功能。
CMOS或非門(NOR)
CMOS 或非門電路及行為如下面圖所示:
a = 0. b=0時(shí),上面串聯(lián)的PMOS導(dǎo)通,下面并聯(lián)的NMOS截止,輸出X=Vdd=1;
a = 0. b=1時(shí),上面串聯(lián)的PMOS截止,下面并聯(lián)的NMOS導(dǎo)通,輸出X=Vdd=0;
a = 1. b=0時(shí),上面串聯(lián)的PMOS截止,下面并聯(lián)的NMOS導(dǎo)通,輸出X=Vdd=0;
a = 1. b=1時(shí),上面串聯(lián)的PMOS截止,下面并聯(lián)的NMOS導(dǎo)通,輸出X=Vdd=0;
可見,這個(gè)電路實(shí)現(xiàn)了或非功能。
2.2 雙穩(wěn)態(tài)器件
雙穩(wěn)態(tài)器件是指穩(wěn)定狀態(tài)有兩種,一種是0.一種是1的器件;雙穩(wěn)態(tài)器件是存儲器件的基本模塊,雙穩(wěn)器件的的一種電路結(jié)構(gòu)是:交叉耦合反相器 結(jié)構(gòu),如下圖所示:
連個(gè)反相器連在一起,這就構(gòu)成了一個(gè)雙穩(wěn)態(tài)器件,為什么是雙穩(wěn)態(tài)呢?我們現(xiàn)在就來分析一下:
由于沒有輸入,于是我們就假設(shè)I1的輸出先為1.即Q=1;那么I2的輸入為1.Q’就為0.于是反饋給Q的輸入,導(dǎo)致Q的輸出為1.也就是使得Q的狀態(tài)穩(wěn)定為1.因此這個(gè)器件有一個(gè)穩(wěn)定的狀態(tài)為1.如下圖所示:
我們再假設(shè)I1的輸出先為0.即Q=0;那么I2的輸入為0.Q’就為1.于是反饋給Q的輸入,導(dǎo)致Q的輸出為0.也就是使得Q的狀態(tài)穩(wěn)定為0.因此這個(gè)器件還有一個(gè)穩(wěn)定的狀態(tài)為0.如下圖所示:
由此可見,這種交叉耦合反相器的器件是雙穩(wěn)態(tài)器件。但是需要注意的是,電路有可能存在第三種狀態(tài),也就是前面文章介紹過的亞穩(wěn)態(tài)。
為什么介紹雙穩(wěn)態(tài)器件呢?那是因?yàn)殒i存器、寄存器都是雙穩(wěn)態(tài)器件,它們都有兩個(gè)穩(wěn)定狀態(tài)1和0.正是因?yàn)樗鼈冇袃蓚€(gè)穩(wěn)定的狀態(tài),因此才可以拿它們來存儲數(shù)據(jù),也就是說雙穩(wěn)態(tài)電路(比如交叉耦合反相器、鎖存器和寄存器)可以存儲數(shù)據(jù)。
下面我們來看一下鎖存器和觸發(fā)器。
2.3 鎖存器(latch)
很顯然,上面的那種交叉耦合反相器沒有輸入,是存儲不了輸入的數(shù)據(jù)的了,因此就需要有輸入的類似“交叉耦合反相器”結(jié)構(gòu)的雙穩(wěn)態(tài)電路,這就是鎖存器。
鎖存器:不需要觸發(fā)信號,由輸入信號直接完成置0或置1操作。
最常見最基本的鎖存器是SR鎖存器,常用的鎖存器是D鎖存器。這里只介紹RS觸發(fā)器和D觸發(fā)器。
2.3.1 SR鎖存器
SR(Set-Reset)鎖存器,也叫基本RS觸發(fā)器是各種觸發(fā)器構(gòu)成的基本部件,也是最簡單的一種觸發(fā)器。SR鎖存器電路結(jié)構(gòu)和符號如下圖所示:
這里用的或非門搭建的SR鎖存器,同樣也可以用與非門搭建SR鎖存器,只需要把或非門換成與非門就可以了。
工作原理:
S端是置位端,S=1的時(shí)候把輸出Q置為1;
R端是復(fù)位端,R=1的時(shí)候把輸出Q復(fù)位成0;
當(dāng)S=0. R=0的時(shí)候,輸出Q的值就保持前一個(gè)狀態(tài)的值,也就是把原理的狀態(tài)鎖存了。
當(dāng)S=1. R=1的時(shí)候,根據(jù)與非門的特性,Q=0. Q=0. 這樣Q=Q;不符合輸出Q`=~Q的邏輯。所以S=1. R=1是不允許的狀態(tài)。這也是SR鎖存器的一個(gè)限制。
工程中,為了解除這個(gè)限制,一般都是把一個(gè)信號A接到S端同時(shí)把A通過一個(gè)反相器(非門)輸入到R端,這樣S,R就不可能同時(shí)為1了。
雖然SR鎖存器電路簡單,但是在應(yīng)用中有兩個(gè)缺點(diǎn):
S,R不能同時(shí)為1;不夠方便;
鎖存的時(shí)間點(diǎn)不清楚,任何時(shí)刻,輸入都能直接改變輸出的狀態(tài)。也就是不知道什么時(shí)候鎖存了什么數(shù)據(jù),沒有一個(gè)參考的時(shí)刻來確切的知道電路的狀態(tài)。
下面我們分析一下SR鎖存器的傳輸延時(shí):
假設(shè)SR鎖存器的初始狀態(tài)是Q=0. Q`=1.與非門的傳輸延時(shí)是tpd。輸入信號波形如下圖所示:
S的下降沿到達(dá)后,經(jīng)過G1的傳輸延遲時(shí)間tpd,Q端變?yōu)楦唠娖?
Q端高電平加到門G2的輸入端,再經(jīng)過門G2的傳輸延遲時(shí)間tpd, 使Q`變?yōu)榈碗娖?
當(dāng)Q`的低電平反饋到G1的輸入端以后,即使S=0變成S=1.觸發(fā)器被置成q=1狀態(tài)也將保持下去。
可見,為保證觸發(fā)器可靠地翻轉(zhuǎn),必須等到Q`=0的狀態(tài)反饋到G1的輸入端以后,S=0的信號才可以取消。
因此,S輸入的低電平信號寬度tw應(yīng)滿足tw≥2tpd。
同理,如果從R端輸入置0信號,其寬度也必須大于、等于2tpd。
可見,如果S,R端輸入的信號寬度很小,比如毛刺,那么輸出是不會改變的。SR鎖存器的結(jié)構(gòu),在門控時(shí)鐘切換防毛刺中很有用,后面會寫一篇文章專門講一下這個(gè)電路。
2.3.2 D 鎖存器
為了解決SR鎖存器的缺點(diǎn),改進(jìn)的結(jié)構(gòu)就是D鎖存器。
D鎖存器最大的特點(diǎn)是,引入了一個(gè)特殊信號——時(shí)鐘信號。
注意:時(shí)鐘信號首先是一個(gè)信號,它只是一個(gè)特殊的信號,由于它的特殊性和重要性,所以他才有了一個(gè)名字叫做時(shí)鐘信號, 同樣的還有復(fù)位信號。在分析時(shí)鐘的時(shí)候,請不要忘記,時(shí)鐘信號首先是一個(gè)信號。
引入時(shí)鐘信號的作用是,作為參考和同步。因?yàn)闀r(shí)鐘是一個(gè)特殊的,高低電平循環(huán)的信號,它的行為是確定的, 而且送給不同電路的時(shí)鐘信號是同一個(gè)。所以就能以它作為參考。
比如,引入時(shí)鐘信號后,D鎖存器就只能在時(shí)鐘有效的時(shí)候,S和R才能起作用,也就是給SR加了一個(gè)前提條件,這樣對照周期性的時(shí)鐘信號,就能明確知道鎖存的時(shí)間點(diǎn)了。
D鎖存器常見結(jié)構(gòu)和電路符號圖如下所示:
可以看到,D鎖存器可以分為前級門電路(兩個(gè)與門和一個(gè)非門)和后級SR鎖存器組成。
下面我們就來分析一下它的功能:
輸入是Clk和D,也就是輸入有四種可能:
·當(dāng)clk=0時(shí),紅S紅R都為0.也就是SR鎖存器的輸入為00.根據(jù)SR鎖存器的功能,輸出Q和Q’將保持原來的狀態(tài);因此clk=0時(shí),不管D是什么,輸出Q和Q’都不隨D變化,只與原來的狀態(tài)有關(guān),也就是保持。
·當(dāng)clk=1時(shí),R=(1·D’)=D’;S=(1·D)=D。
也就是說,當(dāng)clk=1的時(shí)候,SR鎖存的輸入是互補(bǔ)的,不會出現(xiàn)S和R同時(shí)有效的情況。當(dāng)D=1時(shí),S=1.置位有效,輸出Q=1;當(dāng)D=0時(shí),R=1.復(fù)位有效,輸出Q=0;因此就可以知道,在clk=1時(shí),輸出Q=D,也就是輸出等于輸入。
通過上面的分析,上面的D鎖存器結(jié)構(gòu)功能為:在clk=1時(shí),數(shù)據(jù)通過D鎖存器流到了Q;在Clk=0時(shí),Q保持原來的值不變。這樣的鎖存器也稱為透明鎖存器或者電平敏感鎖存器。
注意:這里說的電平敏感是指時(shí)鐘電平為1的時(shí)候,輸入才能引起輸出變化。
2.4 觸發(fā)器(Flip-Flop)
雖然鎖存器結(jié)構(gòu)簡單面積小,速度快,但是鎖存器是電平敏感的,在時(shí)鐘為高的時(shí)候,輸入信號的任何改變都會隨時(shí)引起輸出的改變,一個(gè)時(shí)鐘高電平期間可能會有多次改變。而且受布線延遲影響較大,很難保證輸出沒有毛刺產(chǎn)生。
為了改進(jìn)這個(gè)缺點(diǎn),就發(fā)明了邊沿觸發(fā)器,邊沿觸發(fā)器最大的特點(diǎn)是邊沿敏感的,也就是僅取決于CLK的下降沿(或上升沿)到來時(shí)的輸入信號狀態(tài),與在此前、后輸入的狀態(tài)沒有關(guān)系。這樣就提高可靠性,增強(qiáng)抗干擾能力。
最常見最簡單的觸發(fā)器就是D觸發(fā)器。
2.4.1 D 觸發(fā)器
D觸發(fā)器的結(jié)構(gòu)和電路符號圖如下所示:
D觸發(fā)器可以由兩個(gè)D鎖存器構(gòu)成,驅(qū)動時(shí)鐘的相位相反,前面的D鎖存器稱為主鎖存器,后面的D鎖存器稱為從鎖存器,因此D觸發(fā)器也可以稱為主從觸發(fā)器。
下面我們分析一下D觸發(fā)的功能(注意主鎖存器的時(shí)鐘是clock取反):
假設(shè)要傳輸?shù)臄?shù)據(jù)D=D1:
在時(shí)鐘clk=0的時(shí)候,主鎖存打開進(jìn)行傳輸數(shù)據(jù),把輸入傳送到從到從鎖存器的輸入端,即Qm = D1.然后clk從0→1的時(shí)候,主鎖存器準(zhǔn)備關(guān)閉,保持原來的值D1.與此同時(shí)從鎖存器準(zhǔn)備打開,把Qm的值傳輸?shù)捷敵鯭s,也就是Qs=Qm=D1.
在clk=1的時(shí)候,主鎖存器是關(guān)閉的,Qm保持D1不變,即Qm=D1;從鎖存器是打開的,Qs=Qm=D1.接著clk從1→0的時(shí)候,主鎖存器準(zhǔn)備打開,準(zhǔn)備傳輸數(shù)據(jù);而從鎖存器準(zhǔn)備關(guān)閉。在clk=0的時(shí)候,主鎖存打開進(jìn)行傳輸數(shù)據(jù),把輸入傳送到從到從鎖存器的輸入端,即Qm *= D2;與此同時(shí),從鎖存器關(guān)閉,由于新的Qm即Qm*還沒有到達(dá)從鎖存器的D端,因此在從鎖存器關(guān)閉的時(shí)候,從鎖存器鎖存的是原來的值即D1.因此輸出Qs =D1.然后接下來上升沿就傳輸D2....
從上面的分析可以找到,D觸發(fā)器在時(shí)鐘上升沿的時(shí)候鎖存在時(shí)鐘上升沿采到的值,并且保持一個(gè)時(shí)鐘周期。這種在時(shí)鐘上升沿鎖存數(shù)據(jù)的觸發(fā)器稱為正邊沿觸發(fā)器,與此對應(yīng)的還有負(fù)邊沿觸發(fā)的觸發(fā)器,這里就不進(jìn)行介紹了。
由D觸發(fā)器延伸出去的知識點(diǎn)還有很多,比如寄存器:
寄存器(Register)由多個(gè)D觸發(fā)器構(gòu)成(一個(gè)D觸發(fā)器可以看做1位的寄存器);寄存器可以看成是多位的DFF。
比如帶使能的觸發(fā)器:
再比如帶復(fù)位的觸發(fā)器:
3. 建立時(shí)間和保持時(shí)間
3.1 建立時(shí)間和保持時(shí)間的定義
下面我們通過分析D觸發(fā)器來理解建立時(shí)間和保持時(shí)間。
如果想深入理解一個(gè)概念,那么我們一定要知道這個(gè)概念的清晰的定義。
建立時(shí)間和保持時(shí)間都是針對觸發(fā)器的特性說的,比如對于一個(gè)D觸發(fā)器:
時(shí)序圖如下:
建立時(shí)間(Tsu:set up time):
是指在觸發(fā)器的時(shí)鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時(shí)間。如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被穩(wěn)定的打入觸發(fā)器,Tsu就是指這個(gè)最小的穩(wěn)定時(shí)間。
保持時(shí)間(Th:hold time):
是指在觸發(fā)器的時(shí)鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時(shí)間。如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被穩(wěn)定的打入觸發(fā)器,Th就是指這個(gè)最小的保持時(shí)間。
建立時(shí)間和保持時(shí)間其實(shí)就是數(shù)據(jù)在時(shí)鐘上升沿前后的一個(gè)時(shí)間窗口內(nèi)必須保持穩(wěn)定,不然數(shù)據(jù)就不能正確的存到觸發(fā)器。
3.2 為什么需要建立時(shí)間和保持時(shí)間
那么為什么會有建立時(shí)間和保持時(shí)間的要求呢?
D觸發(fā)器的門級電路如下:
我們知道D觸發(fā)器是在(上升)邊沿進(jìn)行鎖存數(shù)據(jù)的,也就是clk從在0→1的時(shí)候鎖存數(shù)據(jù),那我們就看看這個(gè)上升沿的時(shí)候發(fā)生了什么:
假設(shè)原來的數(shù)據(jù)是1(也就是從鎖存器鎖存的數(shù)據(jù)是1),然后我們要鎖存的數(shù)據(jù)是0.
要讓D端的輸入0在Q端輸出,那么需要主鎖存器穩(wěn)定的鎖定輸入的0.而從鎖存器則負(fù)責(zé)傳輸主鎖存器鎖存的數(shù)據(jù)。所以我們重點(diǎn)分析主鎖存器。
為了簡化分析假設(shè)反相器,與門,或非門這些門的延時(shí)都是tpd, 我們分析SR鎖存器的輸入端。假設(shè)輸入D從0->1相對于CLK上升沿的延時(shí)是tdd, 那么輸入端S的波形如下:
可以看到,CLK取反有tpd的延時(shí),S端輸入相對于D端也有tpd的延時(shí)。這樣S=~Clk & D后第一個(gè)脈沖的寬度就是tw=tdd。
同樣分析R端也可以得到相同的結(jié)論。
也就是說,輸入數(shù)據(jù)D在時(shí)鐘上升沿到來之前穩(wěn)定的時(shí)間就表現(xiàn)為SR鎖存器的S/R端信號的脈沖寬度。
參考2.3.1的分析,SR鎖存器對輸入信號的脈沖寬度是有要求的。
S輸入的低電平信號寬度tw應(yīng)滿足tw≥2tpd
所以,我們可以得到tw=tdd≥2tpd.
也就是說,數(shù)據(jù)在時(shí)鐘上升沿到來之前,穩(wěn)定時(shí)間必須要不小于2tpd(tpd為門電路延時(shí)), 才能被正確的采樣到。
這就是建立時(shí)間:Tsu ≥2tpd
同樣的分析,我們可以得到保持時(shí)間: Th≥2tpd
所以,我們的結(jié)論就是,由于門電路的延時(shí)和觸發(fā)器的電路結(jié)構(gòu),建立時(shí)間和保持時(shí)間是一定存在的,否則就不能滿足觸發(fā)器的功能要求。
4. 后記
建立時(shí)間和保持時(shí)間是時(shí)序分析最基礎(chǔ)的概念,很多工程師只知道這兩個(gè)概念的定義,但是未必知道需要建立時(shí)間和保持時(shí)間真正的原因。本文從CMOS門電路的結(jié)構(gòu)和特性,逐步分析了為什么需要建立時(shí)間和保持時(shí)間的原因,為深入理解這兩個(gè)概念提供了幫助。
上一篇:PLC故障常見原因及處理方法
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-06-09
從外觀到內(nèi)核的「超進(jìn)化」!NK550M五軸...
2025-06-06
2025-05-19
2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11