前言
數(shù)字IC設(shè)計(jì)中為什么要避免鎖存器(Latches)?
上學(xué)時(shí),老師說判斷語句要把條件寫全, 不然會(huì)生成鎖存器,做項(xiàng)目時(shí)又說多比特寄存器信號(hào)的賦值一定要加if條件,不讓出現(xiàn)else的賦值 。就很矛盾,本文主要講下什么是鎖存器,什么情況下會(huì)出現(xiàn)鎖存器,以及鎖存器的危害。
基本邏輯門電路圖形符號(hào)
零、鎖存器,D觸發(fā)器和寄存器的關(guān)系與區(qū)別
前言
數(shù)字IC設(shè)計(jì)里,常會(huì)出現(xiàn)鎖存器,D觸發(fā)器和寄存器,很多人(比如我)老傻傻分不清,搞不懂他們的區(qū)別是什么。這篇博客主要解釋鎖存器,D觸發(fā)器和寄存器的工作原理以及他們的關(guān)系和區(qū)別。
一、鎖存器
鎖存器(Latch)是一種對(duì)脈沖電平敏感的存儲(chǔ)單元電路,它們可以在特定輸入脈沖電平作用下改變狀態(tài)【1】。換句話說,如果一個(gè)模塊的只有在特定電平的作用下,才會(huì)將輸入信息更新到他的輸出引腳,否則該模塊的輸出將保持不變,那么這個(gè)模塊就可以被看成是一個(gè)鎖存器。
舉個(gè)例子:
二、鎖存器構(gòu)建D觸發(fā)器
如圖是一個(gè)D觸發(fā)器的示意圖,當(dāng)CLK輸入一個(gè)上升沿時(shí),D端的輸入被傳輸?shù)絈。而CLK未輸入上升沿時(shí),Q保持不變。
如圖所示,當(dāng)CLK = 0時(shí),Q1=D;當(dāng)CLK=1時(shí),Q=Q1;也就是說,當(dāng)CLK上升沿來臨時(shí),D信號(hào)被傳輸?shù)絈端,因此這兩個(gè)鎖存器組成了一個(gè)D觸發(fā)器;
三、什么是寄存器?
寄存器,是集成電路中非常重要的一種存儲(chǔ)單元,通常由觸發(fā)器組成 , 寄存器是有限存貯容量的高速存貯部件 ,它們可用來暫存指令、數(shù)據(jù)和地址【2】。也就是說, 擁有緩存數(shù)據(jù)功能的,都可以被稱為寄存器 ,而寄存器常被用于CPU中,因此屬于邊沿信號(hào)敏感器件。
D觸發(fā)器具有緩存數(shù)據(jù)的功能 ,當(dāng)CLK輸入上升沿時(shí),D被傳輸?shù)絈,之后Q將在CLK下一個(gè)上升沿到來前保持不變。因此D觸發(fā)器可以作為寄存器使用,即(D觸發(fā)器∈寄存器),鎖存器狀態(tài)的變化和特定電平有關(guān)(高電平和低電平),而寄存器的狀態(tài)變化往往需要邊沿信號(hào)(上升沿和下降沿),因此鎖存器notin寄存器,由于兩個(gè)鎖存器可以構(gòu)建一個(gè)邊沿信號(hào)敏感的觸發(fā)器(如上節(jié)所示),因此鎖存器可以搭建寄存器。
四、總結(jié)
- 鎖存器為電平敏感器件,而D觸發(fā)器和寄存器為邊沿信號(hào)敏感器件;
- 兩個(gè)鎖存器可以搭建一個(gè)D觸發(fā)器;
- D觸發(fā)器屬于寄存器;
一、什么是鎖存器?
鎖存器(Latch)是一種對(duì)脈沖電平敏感的存儲(chǔ)單元電路 ,它們可以在特定輸入脈沖電平作用下改變狀態(tài)【1】。
換句話說, 如果一個(gè)模塊的只有在特定電平的作用下,才會(huì)將輸入信息更新到他的輸出引腳 ,否則該模塊的輸出將保持不變,那么這個(gè)模塊就可以被看成是一個(gè)鎖存器。
常見的S-R寄存器的結(jié)構(gòu)如下所示:
真值表為
由于S,R為00時(shí),可以使輸出Q保持不變,從而達(dá)到用組合邏輯來實(shí)現(xiàn)存儲(chǔ)的目的;
二、什么情況下會(huì)出現(xiàn)鎖存器?
時(shí)序邏輯由于寄存器的存在 ,因此不需要鎖存器來存儲(chǔ)數(shù)據(jù); 而組合邏輯的條件未給全時(shí)則會(huì)出現(xiàn)鎖存器 ;
always@(*) if(vld) a = b;
這時(shí)由于沒有寫vld為0的情況,因此不會(huì)例化成二選一的選擇器,而是會(huì)例化出鎖存器,達(dá)到當(dāng)vld為0時(shí),保持?jǐn)?shù)據(jù)不變的存儲(chǔ)功能;
三、為什么要避免出現(xiàn)鎖存器?
鎖存器有以下缺點(diǎn):
- 不能異步復(fù)位,在上電后處于不確定的狀態(tài)。
- 鎖存器會(huì)使靜態(tài)時(shí)序分析變得非常復(fù)雜;
- 如果是FPGA上的搭建電路的話,由于FPGA中基本的單元是由查找表和觸發(fā)器組成的,若生成鎖存器反而需要更多的資源;
- 鎖存器對(duì)毛刺敏感,會(huì)造成電路的不穩(wěn)定
例化成選擇器就能解決這個(gè)問題嗎?
-
FPGA
+關(guān)注
關(guān)注
1630文章
21783瀏覽量
605006 -
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1299瀏覽量
104166 -
鎖存器
+關(guān)注
關(guān)注
8文章
907瀏覽量
41586 -
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
164瀏覽量
47980 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17199
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論