鎖存器和觸發器區別

2021-09-24 15:39:53 字數 5189 閱讀 3469

一、鎖存器

鎖存器(latch)---對脈衝電平敏感,在時鐘脈衝的電平作用下改變狀態

鎖存器是電平觸發的儲存單元,資料儲存的動作取決於輸入時鐘(或者使能)訊號的電平值,僅當鎖存器處於使能狀態時,輸出才會隨著資料輸入發生變化。

鎖存器不同於觸發器,它不在鎖存資料時,輸出端的訊號隨輸入訊號變化,就像訊號通過乙個緩衝器一樣;一旦鎖存訊號起鎖存作用,則資料被鎖住,輸入訊號不起作用。鎖存器也稱為透明鎖存器,指的是不鎖存時輸出對於輸入是透明的。

鎖存器(latch):我聽過的最多的就是它是電平觸發的,呵呵。鎖存器是電平觸發的儲存單元,資料儲存的動作取決於輸入時鐘(或者使能)訊號的電平值,當鎖存器處於使能狀態時,輸出才會隨著資料輸入發生變化。

(簡單地說,它有兩個輸入,分別是乙個有效訊號en,乙個輸入資料訊號data_in,它有乙個輸出q,它的功能就是在en有效的時候把data_in的值傳給q,也就是鎖存的過程)。

應用場合:資料有效遲後於時鐘訊號有效。這意味著時鐘訊號先到,資料訊號後到。在某些運算器電路中有時採用鎖存器作為資料暫存器。

缺點:時序分析較困難。

不要鎖存器的原因有二:1、鎖存器容易產生毛刺,2、鎖存器在asic設計中應該說比ff要簡單,但是在fpga的資源中,大部分器件沒有鎖存器這個東西,所以需要用乙個邏輯門和ff來組成鎖存器,這樣就浪費了資源。

優點:面積小。鎖存器比ff快,所以用在位址鎖存是很合適的,不過一定要保證所有的latch訊號源的質量,鎖存器在cpu設計中很常見,正是由於它的應用使得cpu的速度比外部io部件邏輯快許多。

latch完成同乙個功能所需要的門較觸發器要少,所以在asic中用的較多。

二、觸發器

觸發器(flip-flop,簡寫為ff),也叫雙穩態門,又稱雙穩態觸發器。是一種可以在兩種狀態下執行的數字邏輯電路。觸發器一直保持它們的狀態,直到它們收到輸入脈衝,又稱為觸發。

當收到輸入脈衝時,觸發器輸出就會根據規則改變狀態,然後保持這種狀態直到收到另乙個觸發。

觸發器(flip-flops)電路相互關聯,從而為使用記憶體晶元和微處理器的數字積體電路(ic)形成邏輯門。它們可用來儲存一位元的資料。該資料可表示音序器的狀態、計數器的價值、在計算機記憶體的ascii字元或任何其他的資訊。

有幾種不同型別的觸發器(flip-flops)電路具有指示器,如t(切換)、s-r(設定/重置)j-k(也可能稱為jack kilby)和d(延遲)。典型的觸發器包括零個、乙個或兩個輸入訊號,以及時鐘訊號和輸出訊號。一些觸發器還包括乙個重置當前輸出的明確輸入訊號。

第乙個電子觸發器是在2023年由w.h.eccles和f.

w.jordan發明的。

觸發器(flip-flop)---對脈衝邊沿敏感,其狀態只在時鐘脈衝的上公升沿或下降沿的瞬間改變。

t觸發器(toggle flip-flop,or trigger flip-flop)設有乙個輸入和輸出,當時鐘頻率由0轉為1時,如果t和q不相同時,其輸出值會是1。輸入端t為1的時候,輸出端的狀態q發生反轉;輸入端t為0的時候,輸出端的狀態q保持不變。把jk觸發器的j和k輸入點連線在一起,即構成乙個t觸發器。

應用場合:時鐘有效遲後於資料有效。這意味著資料訊號先建立,時鐘訊號後建立。在cp上公升沿時刻打入到暫存器。

三、暫存器

暫存器(register):用來存放資料的一些小型儲存區域,用來暫時存放參與運算的資料和運算結果,它被廣泛的用於各類數字系統和計算機中。其實暫存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含儲存電路。

暫存器的儲存電路是由鎖存器或觸發器構成的,因為乙個鎖存器或觸發器能儲存1位二進位制數,所以由n個鎖存器或觸發器可以構成n位暫存器。工程中的暫存器一般按計算機中位元組的位數設計,所以一般有8位暫存器、16位暫存器等。

對暫存器中的觸發器只要求它們具有置1、置0的功能即可,因而無論是用同步rs結構觸發器,還是用主從結構或邊沿觸發結構的觸發器,都可以組成暫存器。一般由d觸發器組成,有公共輸入/輸出使能控制端和時鐘,一般把使能控制端作為暫存器電路的選擇訊號,把時鐘控制端作為資料輸入控制訊號。

暫存器的應用

1.可以完成資料的並串、串並轉換;

2.可以用做顯示資料鎖存器:許多裝置需要顯示計數器的記數值,以8421bcd碼記數,以七段顯示器顯示,如果記數速度較高,人眼則無法辨認迅速變化的顯示字元。

在計數器和解碼器之間加入乙個鎖存器,控制資料的顯示時間是常用的方法。

3.用作緩衝器;

4.組成計數器:移位暫存器可以組成移位型計數器,如環形或扭環形計數器。

四、移位暫存器

移位暫存器:具有移位功能的暫存器稱為移位暫存器。

暫存器只有寄存資料或**的功能。有時為了處理資料,需要將暫存器中的各位資料在移位控制訊號作用下,依次向高位或向低位移動1位。移位暫存器按數碼移動方向分類有左移,右移,可控制雙向(可逆)移位暫存器;按資料輸入端、輸出方式分類有序列和並行之分。

除了d邊沿觸發器構成移位暫存器外,還可以用諸如jk等觸發器構成移位暫存器。

五、匯流排收發器/緩衝器

緩衝暫存器:又稱緩衝器緩衝器(buffer):多用在匯流排上,提高驅動能力、隔離前後級,緩衝器多半有三態輸出功能。

當負載不具有非選通輸出為高阻特性時,將起到隔離作用;當匯流排的驅動能力不夠驅動負載時,將起到驅動作用。由於緩衝器接在資料匯流排上,故必須具有三態輸出功能。

它分輸入緩衝器和輸出緩衝器兩種。前者的作用是將外設送來的資料暫時存放,以便處理器將它取走;後者的作用是用來暫時存放處理器送往外設的資料。有了數控緩衝器,就可以使高速工作的cpu與慢速工作的外設起協調和緩衝作用,實現資料傳送的同步。

buffer:緩衝區,乙個用於在初速度不同步的裝置或者優先順序不同的裝置之間傳輸資料的區域。通過緩衝區,可以使程序之間的相互等待變少,從而使從速度慢的裝置讀入資料時,速度快的裝置的操作程序不發生間斷。

緩衝器主要是計算機領域的稱呼。具體實現上,緩衝器有用鎖存器結構的電路來實現,也有用不帶鎖存結構的電路來實現。一般來說,當收發資料雙方的工作速度匹配時,這裡的緩衝器可以用不帶鎖存結構的電路來實現;而當收發資料雙方的工作速度不匹配時,就要用帶鎖存結構的電路來實現了(否則會出現資料丟失)。

緩衝器在數字系統中用途很多:

(1)如果器件帶負載能力有限,可加一級帶驅動器的緩衝器;

(2)前後級間邏輯電平不同,可用電平轉換器加以匹配;

(3)邏輯極性不同或需要將單性變數轉換為互補變數時,加帶反相緩衝器;(4)需要將緩變訊號變為邊沿陡峭訊號時,加帶施密特電路的緩衝器

(5)資料傳輸和處理中不同裝置間溫度和時間不同時,加一級緩衝器進行彌補等等。

鎖存器與觸發器的區別

鎖存器和觸發器是具有記憶功能的二進位制存貯器件,是組成各種時序邏輯電路的基本器件之一。區別為: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:

**1always@(enable or ina or inb)

begin

if(enable)

begin

data_out = ina;

endelse

begin

data_out = inb;

endend

**2input[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裡打一下。

第章鎖存器和觸發器

5.2 鎖存器 5.2.1 解 由邏輯電路圖,可以得到q端和 altimg w 18 h 28 端得邏輯表示式 根據上面兩式,可以得到該鎖存器的功能表,如表題解5.2.1所示。5.2.2 用cmos電路74hct02或非門構成消除機械開關抖動影響的電路如圖題5.2.2所示,試畫出在開關s由位置a到b...

暫存器,觸發器,鎖存器區別與聯絡

1.1 暫存器 在實際的數字系統中,通常把能夠用來儲存一組二進位制 的同步時序邏輯電路稱為暫存器 由於觸發器內有記憶功能,因此利用觸發器可以方便地構成暫存器。由於乙個觸發器能夠儲存一位二進位製碼,所以把n個觸發器的時鐘埠連線起來就能構成乙個儲存n位二進位製碼的暫存器。1.2 鎖存器 由若干個鐘控d觸...

訓練六 觸發器

一 訓練目的 1 熟悉基本rs觸發器 d觸發器 jk觸發器 門控制鎖存器的邏輯功能與特點。2 掌握各功能端的作用。3 學會使用雙蹤示波器波形和比較相位。二 儀器及材料 a tds 4數電實驗箱 雙蹤示波器 數字萬用表。b 參考元件 與非門74ls00 d觸發器74ls74 jk觸發器74ls112。...