Rs觸發(fā)器與鎖存器在數(shù)據(jù)鎖存的方式上有所區(qū)別,rs觸發(fā)器是在時(shí)鐘的沿進(jìn)行數(shù)據(jù)的鎖存的,而鎖存器是用電平使能來鎖存數(shù)據(jù)的。所以rs觸發(fā)器的Q輸出端在每一個(gè)時(shí)鐘沿都會(huì)被更新,而鎖存器只能在使能電平有效器件才會(huì)被更新。
需要注意的是,在一些教科書當(dāng)中,rs觸發(fā)器實(shí)際是鎖存器。在FPGA設(shè)計(jì)中建議如果不是必須那么應(yīng)該盡量使用rs觸發(fā)器而不是鎖存器。鐘控D觸發(fā)器其實(shí)就是D鎖存器,邊沿D觸發(fā)器才是真正的D觸發(fā)器,鐘控D觸發(fā)器在使能情況下輸出隨輸入變化,邊沿rs觸發(fā)器只有在邊沿跳變的情況下輸出才變化。兩個(gè)D鎖存器可以構(gòu)成一個(gè)D觸發(fā)器,歸根到底還是dff是邊沿觸發(fā)的,而latch是電平觸發(fā)的。鎖存器的輸出對輸入透明的,輸入是什么,輸出就是什么,這就是鎖存器不穩(wěn)定的原因,而rs觸發(fā)器是由兩個(gè)鎖存器構(gòu)成的一個(gè)主從rs觸發(fā)器,輸出對輸入是不透明的,必須在時(shí)鐘的上升/下降沿才會(huì)將輸入體現(xiàn)到輸出,所以能夠消除輸入的毛刺信號。
rs觸發(fā)器與鎖存器的比較:
1、latch由電平觸發(fā),非同步控制。在使能信號有效時(shí)latch相當(dāng)于通路,在使能信號無效時(shí)latch保持輸出狀態(tài)。DFF由時(shí)鐘沿觸發(fā),同步控制。
2、latch對輸入電平敏感,受布線延遲影響較大,很難保證輸出沒有毛刺產(chǎn)生;DFF則不易產(chǎn)生毛刺。
3、如果使用門電路來搭建latch和DFF,則latch消耗的門資源比DFF要少,這是latch比DFF優(yōu)越的地方。所以,在ASIC中使用latch的集成度比DFF高,但在FPGA中正好相反,因?yàn)镕PGA中沒有標(biāo)準(zhǔn)的latch單元,但有DFF單元,一個(gè)LATCH需要多個(gè)LE才能實(shí)現(xiàn)。latch是電平觸發(fā),相當(dāng)于有一個(gè)使能端,且在激活之后(在使能電平的時(shí)候)相當(dāng)于導(dǎo)線了,隨輸出而變化。在非使能狀態(tài)下是保持原來的信號,這就可以看出和flip-flop的差別,其實(shí)很多時(shí)候latch是不能代替ff的。
4、latch將靜態(tài)時(shí)序分析變得極為復(fù)雜。
5、目前l(fā)atch只在極高端電的路中使用,如intel的P4等CPU。FPGA中有l(wèi)atch單元,寄存器單元就可以配置成latch單元,在xilinxv2p的手冊將該單元成為register/latch單元,附件是xilinx半個(gè)slice的結(jié)構(gòu)圖。
一般的設(shè)計(jì)規(guī)則是:在絕大多數(shù)設(shè)計(jì)中避免產(chǎn)生latch。它會(huì)讓您設(shè)計(jì)的時(shí)序無效,并且它的隱蔽性很強(qiáng),非老手不能查出。latch最大的危害在于不能過濾毛刺。這對于下一級電路是極其危險(xiǎn)的。所以,只要能用Drs觸發(fā)器的地方,就不用latch。
有些地方?jīng)]有時(shí)鐘,也只能用latch了。比如現(xiàn)在用一個(gè)clk接到latch的使能端(假設(shè)是高電平使能),這樣需要的setup時(shí)間,就是數(shù)據(jù)在時(shí)鐘的下降沿之前需要的時(shí)間,但是如果是一個(gè)DFF,那么setup時(shí)間就是在時(shí)鐘的上升沿需要的時(shí)間。這就說明如果數(shù)據(jù)晚于控制信號的情況下,只能用latch,這種情況就是,前面所提到的latchtimingborrow。基本上相當(dāng)于借了一個(gè)高電平時(shí)間。也就是說,latch借的時(shí)間也是有限的。
對latch進(jìn)行STA的分析其實(shí)也是可以,但是要對工具相當(dāng)熟悉才行。不過很容易出錯(cuò)。當(dāng)前PrimeTime,是支持進(jìn)行l(wèi)atch分析的。現(xiàn)在一些綜合工具內(nèi)置的STA分析功能也支持,比如RTLcompiler,DesignCompiler.除了ASIC里可以節(jié)省資源以外。latch在同步設(shè)計(jì)里出現(xiàn)的可能還是挺小的,現(xiàn)在處理過程中大都放在ff里打一下。
本篇文章主要對rs觸發(fā)器與鎖存器之間的區(qū)分進(jìn)行了頗為細(xì)致的講解。相信在看過本篇文章之后,此前對兩種區(qū)別有所困惑的朋友一定能夠舉得豁然開朗,希望大家在閱讀過本篇文章之后,能夠吸收其中的知識。
相關(guān)閱讀:
從根部了解:Rs觸發(fā)器當(dāng)中的電壓波形圖
施密特觸發(fā)器技術(shù)細(xì)節(jié)詳解——可自調(diào)閾值
基于CMOS雙D觸發(fā)器的脈沖寬度檢測電路設(shè)計(jì)