網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

觸發器和鎖存器的區別

欄目: IT科技 / 發佈於: / 人氣:2.74W

觸發器和鎖存器的區別

區別為:latch同其所有的輸入信號相關,當輸入信號變化時latch就變化,沒有時鐘端;flip-flop受時鐘控制,只有在時鐘觸發時才採樣當前的輸入,產生輸出。當然因為latch和flip-flop二者都是時序邏輯,所以輸出不但同當前的輸入相關還同上一時間的輸出相關。

1、latch由電平觸發,非同步控制。在使能信號有效時latch相當於通路,在使能信號無效時latch保持輸出狀態。DFF由時鐘沿觸發,同步控制。

2、latch對輸入電平敏感,受佈線延遲影響較大,很難保證輸出沒有毛刺產生;DFF則不易產生毛刺。

3、如果使用門電路來搭建latch和DFF,則latch消耗的門資源比DFF要少,這是latch比DFF優越的地方。所以,在ASIC中使用 latch的集成度比DFF高,但在FPGA中正好相反,因為FPGA中沒有標準的latch單元,但有DFF單元,一個LATCH需要多個LE才能實現。latch是電平觸發,相當於有一個使能端,且在激活之後(在使能電平的時候)相當於導線了,隨輸出而變化。在非使能狀態下是保持原來的信號,這就可以看出和flip-flop的差別,其實很多時候latch是不能代替ff的。

4、latch將靜態時序分析變得極為複雜。

5、目前latch只在極高端的電路中使用,如intel 的P4等CPU。 FPGA中有latch單元,寄存器單元就可以配置成latch單元,在xilinx v2p的手冊將該單元配置成為register/latch單元,附件是xilinx半個slice的結構圖。其它型號和廠家的FPGA沒有去查證。——個人認為xilinx是能直接配的而altera或許比較麻煩,要幾個LE才行,然而也非xilinx的器件每個slice都可以這樣配置,altera的只有DDR接口中有專門的latch單元,一般也只有高速電路中會採用latch的設計。altera的LE是沒有latch的結構的,又查了sp3和sp2e,別的不查了,手冊上説支持這種配置。有關altera的表述wangdian説的對,altera的ff不能配置成latch,它使用查找表來實現latch。

一般的設計規則是:在絕大多數設計中避免產生latch。它會讓您設計的時序完蛋,並且它的隱蔽性很強,非老手不能查出。latch最大的危害在於不能過濾毛刺。這對於下一級電路是極其危險的。所以,只要能用D觸發器的地方,就不用latch。

有些地方沒有時鐘,也只能用latch了。比如現在用一個clk接到latch的使能端(假設是高電平使能),這樣需要的setup時間,就是數據在時鐘的下降沿之前需要的時間,但是如果是一個DFF,那麼setup時間就是在時鐘的上升沿需要的時間。這就説明如果數據晚於控制信號的情況下,只能用latch,這種情況就是,前面所提到的latch TIming borrow。基本上相當於借了一個高電平時間。也就是説,latch借的時間也是有限的。

在if語句和case不全很容易產生latch,需要注意。VIA題目這兩個代碼哪個綜合更容易產生latch: 代碼1

always@(enable or ina or inb)

begin

begin

data_out = ina;

end

else

begin

data_out = inb;

end

end

代碼2

input[3:0] data_in;

always@(data_in)

begin

case(data_in)

0 : out1 = 1‘b1;

1,3 : out2 = 1’b1;

2,4,5,6,7 : out3 = 1‘b1;

default: out4 = 1’b1;

endcase

end

答案是代碼2在綜合時更容易產生latch。

對latch進行STA的分析其實也是可以,但是要對工具相當熟悉才行,不過很容易出錯。當前PrimeTIme是支持進行latch分析的,現在一些綜合工具內置的STA分析功能也支持,比如RTL compiler, Design Compiler。除了ASIC裏可以節省資源以外,latch在同步設計裏出現的可能還是挺小的,現在處理過程中大都放在ff裏打一下。

鎖存器電平觸發會把輸入端的毛刺帶入輸出;而觸發器由於邊沿作用可以有效抑制輸入端干擾。

在 CMOS 芯片內部經常使用鎖存器, 但是在PCB板級結構上, 建議用觸發器在時鐘邊沿上鎖存數據。這是因為在鎖存器閘門開啟期間數據的變化會直接反映到輸出端, 所以要注意控制閘門信號的脈衝寬度,而對於觸發器,只考慮時鐘的邊沿。

門電路是構建組合邏輯電路的基礎,而鎖存器和觸發器是構建時序邏輯電路的基礎。門電路是由晶體管構成的,鎖存器是由門電路構成的,而觸發器是由鎖存器構成的。也就是晶體管-》門電路-》鎖存器-》觸發器,前一級是後一級的基礎。鎖存器和觸發器它們的輸出都不僅僅取決於目前的輸入,而且和之前的輸入和輸出都有關係。

它們之間的不同在於:鎖存器沒有時鐘信號,而觸發器常常有時鐘觸發信號。 鎖存器是異步的,就是説在輸入信號改變後,輸出信號也隨之很快做出改變非常快。而另外一方面,今天許多計算機是同步的,這就意味着所有的時序電路的輸出信號隨着全局的時鐘信號同時做出改變。觸發器是一個同步版鎖存器。 觸發器泛指一類電路結構,它可以由觸發信號 (如: 時鐘、置位、復位等) 改變輸出狀態, 並保持這個狀態直到下一個或另一個觸發信號來到時。觸發信號可以用電平或邊沿操作,鎖存器是觸發器的一種應用類型。

寄存器與鎖存器的功能是提供數據寄存和鎖存。

寄存功能是指把數據暫時保存,需要時取出。鎖存功能是指總線電路中,鎖定數據輸出,使輸出端不隨輸入端變化。

以上就是觸發器和鎖存器的區別了,希望大家對此能有更加深入的瞭解。

Tags:觸發器 存器