0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)字IC設(shè)計(jì)中為什么要避免鎖存器呢?

冬至子 ? 來(lái)源:TrustZone ? 作者:皮皮寬 ? 2023-11-09 12:28 ? 次閱讀

前言

數(shù)字IC設(shè)計(jì)中為什么要避免鎖存器(Latches)?

上學(xué)時(shí),老師說(shuō)判斷語(yǔ)句要把條件寫全, 不然會(huì)生成鎖存器,做項(xiàng)目時(shí)又說(shuō)多比特寄存器信號(hào)的賦值一定要加if條件,不讓出現(xiàn)else的賦值 。就很矛盾,本文主要講下什么是鎖存器,什么情況下會(huì)出現(xiàn)鎖存器,以及鎖存器的危害。

基本邏輯門電路圖形符號(hào)

image.png

零、鎖存器,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】。換句話說(shuō),如果一個(gè)模塊的只有在特定電平的作用下,才會(huì)將輸入信息更新到他的輸出引腳,否則該模塊的輸出將保持不變,那么這個(gè)模塊就可以被看成是一個(gè)鎖存器。

舉個(gè)例子:

image.png

二、鎖存器構(gòu)建D觸發(fā)器

image.png

如圖是一個(gè)D觸發(fā)器的示意圖,當(dāng)CLK輸入一個(gè)上升沿時(shí),D端的輸入被傳輸?shù)絈。而CLK未輸入上升沿時(shí),Q保持不變。

image.png

如圖所示,當(dāng)CLK = 0時(shí),Q1=D;當(dāng)CLK=1時(shí),Q=Q1;也就是說(shuō),當(dāng)CLK上升沿來(lái)臨時(shí),D信號(hào)被傳輸?shù)絈端,因此這兩個(gè)鎖存器組成了一個(gè)D觸發(fā)器;

三、什么是寄存器?

寄存器,是集成電路中非常重要的一種存儲(chǔ)單元,通常由觸發(fā)器組成 , 寄存器是有限存貯容量的高速存貯部件 ,它們可用來(lái)暫存指令、數(shù)據(jù)和地址【2】。也就是說(shuō), 擁有緩存數(shù)據(jù)功能的,都可以被稱為寄存器 ,而寄存器常被用于CPU中,因此屬于邊沿信號(hào)敏感器件。

D觸發(fā)器具有緩存數(shù)據(jù)的功能 ,當(dāng)CLK輸入上升沿時(shí),D被傳輸?shù)絈,之后Q將在CLK下一個(gè)上升沿到來(lái)前保持不變。因此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】。

換句話說(shuō), 如果一個(gè)模塊的只有在特定電平的作用下,才會(huì)將輸入信息更新到他的輸出引腳 ,否則該模塊的輸出將保持不變,那么這個(gè)模塊就可以被看成是一個(gè)鎖存器。

常見的S-R寄存器的結(jié)構(gòu)如下所示:

image.png

真值表為

由于S,R為00時(shí),可以使輸出Q保持不變,從而達(dá)到用組合邏輯來(lái)實(shí)現(xiàn)存儲(chǔ)的目的;

image.png

二、什么情況下會(huì)出現(xiàn)鎖存器?

時(shí)序邏輯由于寄存器的存在 ,因此不需要鎖存器來(lái)存儲(chǔ)數(shù)據(jù); 而組合邏輯的條件未給全時(shí)則會(huì)出現(xiàn)鎖存器

always@(*)    if(vld)        a = b;

這時(shí)由于沒(méi)有寫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è)問(wèn)題嗎?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598981
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    37

    文章

    1287

    瀏覽量

    103439
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    903

    瀏覽量

    41317
  • D觸發(fā)器
    +關(guān)注

    關(guān)注

    3

    文章

    164

    瀏覽量

    47738
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    17040
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA的設(shè)計(jì)為什么避免使用

    前言 在FPGA的設(shè)計(jì),避免使用是幾乎所有FPGA工程師的共識(shí),Xilinx和Altera也在手冊(cè)中提示大家
    的頭像 發(fā)表于 11-16 11:42 ?8186次閱讀
    FPGA的設(shè)計(jì)<b class='flag-5'>中</b>為什么<b class='flag-5'>避免</b>使用<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>

    的工作原理

    的處理時(shí)間,消耗了處理的處理能力,還浪費(fèi)了處理的功耗。 的使用可以大大的緩解處理在這
    發(fā)表于 03-26 20:41

    的作用

    數(shù)碼管的動(dòng)態(tài)顯示截取了部分程序,使用了74hc573,但是我覺(jué)得去掉程序照樣可以執(zhí)行
    發(fā)表于 03-11 16:59

    數(shù)字時(shí)鐘程序

    就用C語(yǔ)言編程的數(shù)字時(shí)鐘程序
    發(fā)表于 10-10 21:32

    寫FPGA代碼時(shí),產(chǎn)生了有什么影響嗎

    經(jīng)??吹礁鞣N寫HDL代碼時(shí)說(shuō)避免生成,但是在某些情況,我不關(guān)心那種情況即使它生成了
    發(fā)表于 01-08 23:54

    寄存、和觸發(fā)的區(qū)別

    暫存。缺點(diǎn):時(shí)序分析較困難。不要的原因:1、
    發(fā)表于 07-03 11:50

    的缺點(diǎn)和優(yōu)點(diǎn)

    ASIC設(shè)計(jì)應(yīng)該說(shuō)比f(wàn)f簡(jiǎn)單,但是在FPGA的資源,大部分器件沒(méi)有這個(gè)東西,所以需要
    發(fā)表于 04-23 03:35

    的作用是什么?

    數(shù)碼管的動(dòng)態(tài)顯示截取了部分程序,使用了74hc573,但是我覺(jué)得去掉程序照樣可以執(zhí)行
    發(fā)表于 10-26 07:18

    ,是什么意思

    ,是什么意思
    發(fā)表于 03-09 09:44 ?1.2w次閱讀

    的工作原理

    的工作原理? (latch)是一種用于存儲(chǔ)和記憶
    的頭像 發(fā)表于 12-08 11:18 ?4964次閱讀

    什么是?數(shù)字IC設(shè)計(jì)為什么避免

    數(shù)字IC設(shè)計(jì)里,常會(huì)出現(xiàn),D觸發(fā)和寄存,很
    的頭像 發(fā)表于 02-17 15:04 ?1613次閱讀
    什么是<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>?<b class='flag-5'>數(shù)字</b><b class='flag-5'>IC</b>設(shè)計(jì)<b class='flag-5'>中</b>為什么<b class='flag-5'>要</b><b class='flag-5'>避免</b><b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>?

    電路的中間是什么元件

    電路概述 定義與功能 (Latch)是數(shù)字
    的頭像 發(fā)表于 07-23 11:29 ?220次閱讀

    的組成、功能及應(yīng)用

    (Latch)是一種具有記憶功能的數(shù)字電路元件,用于存儲(chǔ)和保持數(shù)字信號(hào)的狀態(tài)。
    的頭像 發(fā)表于 07-23 11:32 ?823次閱讀

    d解決了sr的什么問(wèn)題

    D(Data Latch)和SR(Set-Reset Latch)是
    的頭像 發(fā)表于 08-28 09:16 ?223次閱讀

    電壓監(jiān)控(復(fù)位IC)

    電子發(fā)燒友網(wǎng)站提供《電壓監(jiān)控(復(fù)位IC).pdf》資料免費(fèi)下載
    發(fā)表于 09-18 10:34 ?0次下載
    <b class='flag-5'>鎖</b><b class='flag-5'>存</b>電壓監(jiān)控<b class='flag-5'>器</b>(復(fù)位<b class='flag-5'>IC</b>)