發表於 2018-04-18 14:10:10
鎖存器(Latch)是一種對脈衝電平敏感的存儲單元電路,它們可以在特定輸入脈衝電平作用下改變狀態。鎖存,就是把信號暫存以維持某種電平狀態。鎖存器的最主要作用是緩存,其次完成高速的控制器與慢速的外設的不同步問題,再其次是解決驅動的問題,最後是解決一個I/O口既能輸出也能輸入的問題。鎖存器是利用電平控制數據的輸入,它包括不帶使能控制的鎖存器和帶使能控制的鎖存器。
鎖存器Latch結構latch:鎖存器,是由電平觸發,結構圖如下:
鎖存器latch的優缺點 優點:
1、面積比ff小
門電路是構建組合邏輯電路的基礎,而鎖存器和觸發器是構建時序邏輯電路的基礎。門電路是由電晶體構成的,鎖存器是由門電路構成的,而觸發器是由鎖存器構成的。也就是電晶體-》門電路-》鎖存器-》觸發器,前一級是後一級的基礎。latch完成同一個功能所需要的門較觸發器要少,所以在asic中用的較多。
2、速度比ff快
用在地址鎖存是很合適的,不過一定要保證所有的latch信號源的質量,鎖存器在CPU設計中很常見,正是由於它的應用使得CPU的速度比外部IO部件邏輯快許多。
缺點:1、電平觸發,非同步設計,受布線延遲影響較大,很難保證輸出沒有毛刺產生
2、latch將靜態時序分析變得極為複雜
觸發器Flip-flop結構lip-flop:觸發器,是時鐘邊沿觸發,可存儲1bitdata,是register的基本組成單位,結構圖如下:
flip-flop的優缺點 優點:
1、邊沿觸發,同步設計,不容易受毛刺的印象
2、時序分析簡單
缺點:1、面積比latch大,消耗的門電路比latch多
鎖存器Latch和觸發器flipflop的區別 1、鎖存器Latch和觸發器flipflop鎖存器能根據輸入端把結果自行保持;觸發器是指由時鐘邊沿觸發的存儲器單元;由敏感信號(電平,邊沿)控制的鎖存器就是觸發器;
2、寫電路時,產生鎖存器的原因if語句中,沒有寫else,默認保持原值,產生鎖存器,可能不是想要的結果;
case語句中,沒有寫完整default項,也容易產生鎖存器;
例子:
always@(aorb)
begin
if(a)q=b;
end
產生了鎖存器,如下
沒有鎖存器的情況
always@(aorb)
begin
if(a)q=b;
elseq=0;
end
3、避免使用D鎖存器,儘量使用D觸發器
D鎖存器
moduletest_latch(y,a,b);
outputy;inputa;inputb;regy;
always@(aorb)begin
if(a==1』b1)
y=b;
endendmodule
D觸發器
moduletest_d(y,clk,a,b);
outputy;inputclk;inputa;inputb;regy;
always@(posedgeclk)begin
if(a==1『b1)
y=b;
endendmodule
從圖8可知,例10對應的電路是D觸發器。信號a被綜合成D觸發器的使能端,只有在時鐘上沿到來且a為高時,b信號的值才能傳遞給a;只要在時鐘上升沿期間信號b是穩定,即使在其他時候b還有毛刺,經過D觸發器後數據是穩定的,毛刺被濾除。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴