徹底理解鎖存器,讓你不再為鎖存器頭疼!
鎖存器(latch):是電平觸發(fā)的存儲(chǔ)單元,數(shù)據(jù)存儲(chǔ)的動(dòng)作(狀態(tài)轉(zhuǎn)換)取決于輸入時(shí)鐘(或者使能)信號(hào)的電平值,盡當(dāng)鎖存器處于使能狀態(tài)時(shí),輸出才會(huì)隨著數(shù)據(jù)輸入發(fā)生變化。
分為普通鎖存器和門控鎖存器,普通鎖存器無(wú)控制信號(hào),輸出狀態(tài)始終直接由輸入決定。在實(shí)際的數(shù)字系統(tǒng)中,為了協(xié)調(diào)各部分的工作,往往需要有一個(gè)特定的控制信號(hào)去控制鎖存器狀態(tài)轉(zhuǎn)換的時(shí)間,在控制信號(hào)無(wú)效時(shí),輸出保持不變,不隨輸入變換;當(dāng)控制信號(hào)有效時(shí),輸出由輸入決定,跟隨輸入變化。
①正是因?yàn)殚T控鎖存器在控制信號(hào)有效的期間內(nèi),都可以接收輸入信號(hào), 所以,激勵(lì)信
號(hào)的任何變化, 都將直接引起鎖存器輸出狀態(tài)的改變。這時(shí)輸入信號(hào)若發(fā)生多次變化,輸出
狀態(tài)也可能發(fā)生多次變化,這一現(xiàn)象稱為鎖存器的空翻。
②其次,當(dāng)門控鎖存器的控制信號(hào)有效時(shí),鎖存器就變成了一個(gè)組合電路,時(shí)序邏輯電
路的模型就等效為兩個(gè)各組合電路互為反饋的反饋系統(tǒng),因此,系統(tǒng)有可能會(huì)因?yàn)樗矐B(tài)特性
不穩(wěn)定而產(chǎn)生振蕩現(xiàn)象。
觸發(fā)器(flip-flop)是邊沿敏感的存儲(chǔ)單元,數(shù)據(jù)存儲(chǔ)的動(dòng)作(狀態(tài)轉(zhuǎn)換)由某一信號(hào)
的上升或者下降沿進(jìn)行同步的(限制存儲(chǔ)單元狀態(tài)轉(zhuǎn)換在一個(gè)很短的時(shí)間內(nèi)) 。(鐘控 D 觸
發(fā)器其實(shí)就是 D 鎖存器,邊沿 D 觸發(fā)器才是真正的 D 觸發(fā)器)
觸發(fā)器分為兩種,一種是主從觸發(fā)器和邊沿觸發(fā)器。主從觸發(fā)器在時(shí)鐘有效期內(nèi) (主觸
發(fā)器) 接收數(shù)據(jù),在時(shí)鐘邊沿輸出狀態(tài)轉(zhuǎn)換。邊沿觸發(fā)器在時(shí)鐘邊沿期間, 觸發(fā)器才接收數(shù)
據(jù)并使輸出狀態(tài)轉(zhuǎn)換。
目前,主從觸發(fā)器基本上已經(jīng)很少見了,實(shí)際使用的大都是邊沿觸發(fā)器。
寄存器(register):用來(lái)暫時(shí)存放參與運(yùn)算的數(shù)據(jù)和運(yùn)算結(jié)果。在實(shí)際的數(shù)字系統(tǒng)中,
通常把能夠用來(lái)存儲(chǔ)一組二進(jìn)制代碼的同步時(shí)序邏輯電路稱為寄存器。
區(qū)別與聯(lián)系:由于觸發(fā)器內(nèi)有記憶功能,因此利用觸發(fā)器可以方便地構(gòu)成寄存器。由于
一個(gè)觸發(fā)器能夠存儲(chǔ)一位二進(jìn)制碼,所以把 n 個(gè)觸發(fā)器的時(shí)鐘端口連接起來(lái)就能構(gòu)成一個(gè)存
儲(chǔ) n 位二進(jìn)制碼的寄存器。
從寄存數(shù)據(jù)的角度來(lái)講,寄存器和鎖存器的功能是相同的;它們的區(qū)別在于寄存器是同
步時(shí)鐘控制,而鎖存器是電位信號(hào)控制。
一般的設(shè)計(jì)規(guī)則是:在絕大多數(shù)設(shè)計(jì)中避免產(chǎn)生鎖存器。它會(huì)讓您設(shè)計(jì)的時(shí)序完蛋,并
且它的隱蔽性很強(qiáng),非老手不能查出。鎖存器最大的危害在于不能過濾毛刺 (使能信號(hào)有效
時(shí),輸出狀態(tài)可能隨輸入多次變化,產(chǎn)生空翻) 。這對(duì)于下一級(jí)電路是極其危險(xiǎn)的。所以,
只要能用 D 觸發(fā)器的地方,就不用鎖存器。
基本概念:
觸發(fā)器是指有時(shí)鐘邊沿觸發(fā)的存儲(chǔ)單元。鎖存器指一個(gè)由信號(hào)而不是時(shí)鐘控制的電平敏
感的設(shè)備。
鎖存器的工作原理:
鎖存器不同于觸發(fā)器,鎖存器在不鎖存數(shù)據(jù)時(shí),輸出端的信號(hào)隨輸入信號(hào)變化,就像信
號(hào)通過一個(gè)緩存器一樣;一旦鎖存信號(hào)起鎖存作用,則數(shù)據(jù)被鎖住,輸入信號(hào)不起作用。因
此鎖存器也稱為透明鎖存器,值得是不鎖存是輸出對(duì)輸入是透明的。
鎖存器具備下列三個(gè)缺點(diǎn):
(1)對(duì)毛刺敏感,不能異步復(fù)位,因此在上電后處于不確定的狀態(tài)。
(2)鎖存器會(huì)使靜態(tài)時(shí)序分析變得非常復(fù)雜,不具備可重用性。(首先, 鎖存器沒有時(shí)
鐘參與信號(hào)傳遞,無(wú)法做 STA;其次,綜合工具會(huì)將 latch 優(yōu)化掉,造成前后仿真結(jié)果不一
致)
(3)在 PLD 芯片中,基本的單元是由查找表和觸發(fā)器組成的,若生成鎖存器反而需要
更多的資源。根據(jù)鎖存器的特點(diǎn)可以看出,在電路設(shè)計(jì)中,要對(duì)鎖存器特別謹(jǐn)慎,如果設(shè)計(jì)
經(jīng)過綜合后產(chǎn)生出和設(shè)計(jì)意圖不一致的鎖存器,則將導(dǎo)致設(shè)計(jì)錯(cuò)誤,包括仿真和綜合。因此,
在設(shè)計(jì)中需要避免產(chǎn)生意想不到的鎖存器。
如果組合邏輯的語(yǔ)句完全不使用 always 語(yǔ)句塊,就可以保證綜合器不會(huì)綜合出鎖存器,
例如:
assign a = din ? x : y;
上述語(yǔ)句不需要保持信號(hào) a 的前一個(gè)狀態(tài),因此肯定不會(huì)產(chǎn)生鎖存器。
在基于 always 的組合邏輯描述語(yǔ)句中容易綜合出鎖存器的地方:1:if 語(yǔ)句的使用中缺
少 else 語(yǔ)句(前提是不是始終邊沿觸發(fā));2:case 語(yǔ)句中沒有給出全部的情況。
從上圖可以看出綜合出來(lái)的是鎖存器。
針對(duì)這種情路可以采用一些措施來(lái)防止生成鎖存器:給輸出變量幅初值;增加 else 語(yǔ)
句;將鎖存器改為帶使能的觸發(fā)器。如下:
此時(shí)綜合出來(lái)的就是選擇器。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7254瀏覽量
91778 -
電平
+關(guān)注
關(guān)注
5文章
367瀏覽量
40559 -
鎖存器
+關(guān)注
關(guān)注
8文章
925瀏覽量
42333
發(fā)布評(píng)論請(qǐng)先 登錄
一文讀懂Allegro先進(jìn)磁性開關(guān)和鎖存器

評(píng)論