国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)字電路基礎(chǔ)---鎖存器

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)字電路基礎(chǔ)---鎖存器。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

鎖存器

1、簡介

2、實(shí)驗(yàn)任務(wù)

3、程序設(shè)計(jì)

3.1、缺少 else 分支的鎖存器代碼

3.2、補(bǔ)齊?else 分支

3.3、缺少 default 的 case 語句的鎖存器代碼

3.3、補(bǔ)齊 default 的 case 語句

4、本章總結(jié)


鎖存器

? ? ? ?鎖存器(俗稱 Latch)是數(shù)字電路中的一種具有記憶功能的邏輯元件。鎖存器對脈沖電平敏感的存儲(chǔ)單元電路,它只在輸入脈沖的高電平(或低電平)期間對輸入信號(hào)敏感并改變狀態(tài)。在數(shù)字電路中可以記錄二進(jìn)制數(shù)字信號(hào)“0”和“1”。

1、簡介

? ? ? 鎖存器(latch)是電平觸發(fā)的存儲(chǔ)單元,數(shù)據(jù)存儲(chǔ)的動(dòng)作取決于輸入時(shí)鐘(或者使能)信號(hào)的電平值,盡當(dāng)鎖存器處于使能狀態(tài)時(shí),輸出才會(huì)隨著數(shù)據(jù)輸入發(fā)生變化。

? ? ? 鎖存器不同于觸發(fā)器,鎖存器在不鎖存數(shù)據(jù)時(shí),輸出端的信號(hào)隨輸入信號(hào)變化,就像信號(hào)通過一個(gè)緩存器一樣;一旦鎖存信號(hào)起鎖存作用,則數(shù)據(jù)被鎖住,輸入信號(hào)不起作用。因此鎖存器也稱為透明鎖存器,指的是不鎖存時(shí)輸出對輸入是透明的。

? ? ? ? 鎖存器的分類包括 RS 鎖存器、門控 RS 鎖存器和 D 鎖存,此處我們詳細(xì)介紹下 D 鎖存器。

? ? ? ?那么什么是 D 鎖存器呢?

? ? ? ?所謂的 D 鎖存器,就是能夠?qū)⑤斎氲膯温窋?shù)據(jù) D 存入到鎖存器中的電路,下面是我們給出 D 鎖存器的電路圖,如下圖所示。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

? ? ? ? 從 D 鎖存器的電路圖中我們可以看出,該電路主要是由兩個(gè)部分組成,第一個(gè)部分是由 G1、G2兩個(gè)與非門組成的 RS 鎖存器,第二個(gè)部分是由 G3、G4 兩個(gè)與非門組成的控制電路。C 為控制信號(hào),用來控制 G3 和 G4 的激勵(lì)輸入。

? ? ? ?下面我們來分析下 D 鎖存器的工作原理,當(dāng)控制信號(hào) C=0 時(shí),根據(jù)與非門的邏輯定律,無論 D 輸入什么信號(hào),RD SD 信號(hào)同時(shí)為 1。根據(jù)由與非門組成的 RS 鎖存器的邏輯定律,RD SD 都同時(shí)等于 1 的話,鎖存器的輸出端 Q 將維持原狀態(tài)不變。那么,當(dāng)控制端 C=1 時(shí),如果此時(shí) D=0SD 就等于 1,RD 就等于 0,根據(jù) RS 鎖存器的邏輯規(guī)律,電路的結(jié)果就為 0 狀態(tài);如果 D =1,那么 RD 就等于 1,SD 也就等于 0,鎖存器的結(jié)果就為 1 狀態(tài),也就是說,此時(shí)鎖存器的狀態(tài)是由激勵(lì)輸入端 D 來確定的,并且 D 等于什么,鎖存器的狀態(tài)就是什么,這就是我們前面所說的,將單路數(shù)據(jù) D 存入到鎖存器之中。

? ? ? ?根據(jù)上面的描述,我們可以推出 D 鎖存器的特性表,Qn 是指觸發(fā)器當(dāng)前邏輯狀態(tài)也即觸發(fā)前的狀態(tài),Qn+1 是指觸發(fā)后的狀態(tài)。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

? ? ? ? 通過這個(gè)表格,我們可以看出,當(dāng) C 1 時(shí),D 的狀態(tài)和 Qn+1 的狀態(tài)完全一樣,當(dāng) D=0 時(shí),Qn+1=0,當(dāng) D=1 時(shí),Qn+1=1。

? ? ? ?我們還可以進(jìn)一步畫出 D 鎖存器的波形圖。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

? ? ? ? 從 D 鎖存器的波形圖圖中我們可以看出,D 是鎖存器的輸入信號(hào),C 是鎖存器的控制信號(hào),Q 是鎖存器的輸出信號(hào),當(dāng)控制信號(hào) C 為高電平時(shí),輸出信號(hào) Q 將跟隨輸入信號(hào) D 的變化而變化,大家看虛線內(nèi),Q 的波形等于 D 的波形。當(dāng)控制信號(hào) C 從高電平變?yōu)榈碗娖綍r(shí),輸入信號(hào) D 的狀態(tài)將會(huì)決定鎖存器將要鎖存的狀態(tài)。大家可以看到,C 由高變低的那兩條虛線內(nèi),所對應(yīng)的輸入信號(hào) D 為低電平,那么輸出信號(hào) Q 也將會(huì)鎖存低電平。最后面的那兩條虛線也同理,D 為高電平,Q 鎖存高電平。

? ? ?? D 鎖存器的介紹就到這里,下面我們來從實(shí)際的邏輯設(shè)計(jì)里面看下鎖存器的壞處。

? ? ? ?在絕大多數(shù)設(shè)計(jì)中我們要避免產(chǎn)生鎖存器。它會(huì)讓您設(shè)計(jì)的時(shí)序出問題,并且它的隱蔽性很強(qiáng),新人很難查出問題。鎖存器最大的危害在于不能過濾毛刺和影響工具進(jìn)行時(shí)序分析。這對于下一級(jí)電路是極其危險(xiǎn)的。所以,只要能用觸發(fā)器的地方,就不用鎖存器。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

? ? ? ?由上圖示意圖我們可以看到,鎖存器沒有時(shí)鐘信號(hào),只有數(shù)據(jù)輸入和使能以及輸出 q 端,沒有時(shí)鐘信號(hào)也就說明我們沒有辦法對這種器件進(jìn)行時(shí)序分析,這個(gè)在時(shí)序電路里面是非常危險(xiǎn)的行為,因?yàn)榭赡芤饡r(shí)序不滿足導(dǎo)致電路功能實(shí)現(xiàn)有問題。

2、實(shí)驗(yàn)任務(wù)

設(shè)計(jì)一個(gè)鎖存器電路。

3、程序設(shè)計(jì)

? ? ? ?代碼里面出現(xiàn) latch 的兩個(gè)原因:在組合邏輯中,if 或者 case 語句不完整的描述,比如 if 缺少 else 分支,case 缺少 default 分支,導(dǎo)致代碼在綜合過程中出現(xiàn)了 latch。解決辦法就是 if 必須帶 else 分支,case 必須帶 default 分支。

? ? ? ?大家需要注意下,只有不帶時(shí)鐘的 always 語句的 if 或者 case 語句不完整才會(huì)產(chǎn)生 latch,帶時(shí)鐘的語句 if 或者 case 語句不完整描述不會(huì)產(chǎn)生 latch。

3.1、缺少 else 分支的鎖存器代碼

? ? ? 根據(jù)程序設(shè)計(jì)的思路,我們來設(shè)計(jì)一個(gè) if 語句,但缺少 else 分支的鎖存器代碼(latch.v),代碼編寫如下:

//實(shí)驗(yàn)任務(wù):設(shè)計(jì)一個(gè)鎖存器電路
//程序設(shè)計(jì):
//代碼里面出現(xiàn) latch 的兩個(gè)原因:在組合邏輯中,if 或者 case 語句不完整的描述,
//比如 if 缺少 else 分支,case 缺少 default 分支,導(dǎo)致代碼在綜合過程中出現(xiàn)了 latch。
//解決辦法就是 if 必須帶 else 分支,case 必須帶 default 分支。
//大家需要注意下,只有不帶時(shí)鐘的 always 語句的 if 或者 case 語句不完整才會(huì)產(chǎn)生 latch,
//帶時(shí)鐘的語句 if 或者 case 語句不完整描述不會(huì)產(chǎn)生 latch。

module latch(
     //input          clk,  //system clk
     input          a,
     input          b,
     output  reg    y    // output signal
    );

//*******************************************
//**          main code
//*******************************************

always @(*) begin
    if(a==1)
        y=b;
    //else
    //    y=0;
end

endmodule

? ? ? 程序中的一個(gè)組合邏輯電路使用了 if 語句,但是這個(gè)語句沒有 else 分支,我們可以使用 Vivado查看 RTL 視圖。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

從 RTL ANALSIS 視圖中可以看出,模塊下面顯示了 RTL_LATCH,可以看出這個(gè)電路就是 latch

3.2、補(bǔ)齊?else 分支

下面我們把 else 補(bǔ)充完整再來看下電路結(jié)構(gòu),代碼如下:

//實(shí)驗(yàn)任務(wù):設(shè)計(jì)一個(gè)鎖存器電路
//程序設(shè)計(jì):
//代碼里面出現(xiàn) latch 的兩個(gè)原因:在組合邏輯中,if 或者 case 語句不完整的描述,
//比如 if 缺少 else 分支,case 缺少 default 分支,導(dǎo)致代碼在綜合過程中出現(xiàn)了 latch。
//解決辦法就是 if 必須帶 else 分支,case 必須帶 default 分支。
//大家需要注意下,只有不帶時(shí)鐘的 always 語句的 if 或者 case 語句不完整才會(huì)產(chǎn)生 latch,
//帶時(shí)鐘的語句 if 或者 case 語句不完整描述不會(huì)產(chǎn)生 latch。

module latch(
     //input          clk,  //system clk
     input          a,
     input          b,
     output  reg    y    // output signal
    );

//*******************************************
//**          main code
//*******************************************

always @(*) begin
    if(a==1)
        y=b;
    else
        y=0;
end

endmodule

這個(gè)代碼中,添加了 else 分支,我們可以使用 RTL ANALSIS 視圖再看一下綜合的電路結(jié)構(gòu)。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

上圖所示的電路結(jié)構(gòu)是一個(gè) mux 選擇電路,可以看出,加了 else 分支的電路就不會(huì)有 latch 電路。

3.3、缺少 default 的 case 語句的鎖存器代碼

下面我們來寫一個(gè)不帶 default case 語句,代碼如下:

//
//實(shí)驗(yàn)任務(wù):設(shè)計(jì)一個(gè)鎖存器電路
//程序設(shè)計(jì):
//代碼里面出現(xiàn) latch 的兩個(gè)原因:在組合邏輯中,if 或者 case 語句不完整的描述,
//比如 if 缺少 else 分支,case 缺少 default 分支,導(dǎo)致代碼在綜合過程中出現(xiàn)了 latch。
//解決辦法就是 if 必須帶 else 分支,case 必須帶 default 分支。
//大家需要注意下,只有不帶時(shí)鐘的 always 語句的 if 或者 case 語句不完整才會(huì)產(chǎn)生 latch,
//帶時(shí)鐘的語句 if 或者 case 語句不完整描述不會(huì)產(chǎn)生 latch。

module latch(
     //input          clk,  //system clk
     input          a,
     input          b,
     
     output  reg    y    // output signal
    );

//*******************************************
//**          main code
//*******************************************

always @(*) begin
//    if(a==1)
//        y=b;
//    //else
//    //    y=0;
     case(a)
         0:y = b;
     endcase
end

endmodule

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

從 RTL ANALSIS 視圖中可以看出,模塊下面顯示了 RTL_LATCH,可以看出這個(gè)電路就是 latch

3.3、補(bǔ)齊 default 的 case 語句

下面我們把 case 語句的 default 補(bǔ)充完整再來看下電路結(jié)構(gòu),代碼如下:

//
//實(shí)驗(yàn)任務(wù):設(shè)計(jì)一個(gè)鎖存器電路
//程序設(shè)計(jì):
//代碼里面出現(xiàn) latch 的兩個(gè)原因:在組合邏輯中,if 或者 case 語句不完整的描述,
//比如 if 缺少 else 分支,case 缺少 default 分支,導(dǎo)致代碼在綜合過程中出現(xiàn)了 latch。
//解決辦法就是 if 必須帶 else 分支,case 必須帶 default 分支。
//大家需要注意下,只有不帶時(shí)鐘的 always 語句的 if 或者 case 語句不完整才會(huì)產(chǎn)生 latch,
//帶時(shí)鐘的語句 if 或者 case 語句不完整描述不會(huì)產(chǎn)生 latch。

module latch(
     //input          clk,  //system clk
     input          a,
     input          b,
     
     output  reg    y    // output signal
    );

//*******************************************
//**          main code
//*******************************************

always @(*) begin
//    if(a==1)
//        y=b;
//    //else
//    //    y=0;
     case(a)
         0:y = b;
     default:y = 0;
     endcase
end

endmodule

可以看出,這個(gè)語句有 case default 分支,我們使用 vivado RTL ANALSIS 來看下綜合的電路結(jié)構(gòu)。

鎖存器,Verilog數(shù)字電路與邏輯設(shè)計(jì),fpga開發(fā),嵌入式硬件,硬件工程,dsp開發(fā),算法

?上圖所示的電路結(jié)構(gòu)是一個(gè) mux 選擇電路,可以看出,加了 case default 分支的電路就不會(huì)有 latch電路。

4、本章總結(jié)

? ? ? ?本章需要掌握的重點(diǎn)是代碼里面出現(xiàn) latch 在組合邏輯中出現(xiàn)的原因:if 語句或者 case 語句不完整的描述,比如 if 缺少 else 分支,case 缺少 default 分支,導(dǎo)致代碼在綜合過程中出現(xiàn)了latch。解決辦法就是 if 必須帶 else 分支,case 必須帶 default 分支。

? ? ? ?大家需要注意下,只有不帶時(shí)鐘的 always 語句的 if 或者 case 語句不完整才會(huì)產(chǎn)生 latch,帶時(shí)鐘的語句 if 或者 case 語句不完整描述不會(huì)產(chǎn)生 latch。 文章來源地址http://www.zghlxwxcb.cn/news/detail-689398.html

到了這里,關(guān)于數(shù)字電路基礎(chǔ)---鎖存器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 「FPGA」基本時(shí)序電路元件——鎖存器和觸發(fā)器

    「FPGA」基本時(shí)序電路元件——鎖存器和觸發(fā)器

    FPGA是一種數(shù)字電路實(shí)現(xiàn)的方式,它是基于小型查找表(16X1)設(shè)計(jì)的,它的兄弟CPLD是基于高密度復(fù)雜組合邏輯設(shè)計(jì)的。FPGA的一個(gè)優(yōu)點(diǎn)是觸發(fā)器資源豐富,適合實(shí)現(xiàn)復(fù)雜的時(shí)序設(shè)計(jì)。本文將從 門級(jí)電路 的角度來介紹時(shí)序電路的基本結(jié)構(gòu),鎖存器(Latch)和觸發(fā)器(flip-flop)。

    2024年02月11日
    瀏覽(22)
  • verilog學(xué)習(xí)筆記6——鎖存器和觸發(fā)器

    verilog學(xué)習(xí)筆記6——鎖存器和觸發(fā)器

    2023.8.15 信號(hào)高電平有效 R :復(fù)位端 S :置位端 表達(dá)式: Q = S + R\\\' Qn 約束條件:SR=0,也就是SR不能同時(shí)為1 信號(hào)低電平有效 R :復(fù)位端 S :置位端 表達(dá)式: Q = S\\\' + R Qn 約束條件:S+R=1,也就是SR不能同時(shí)為0 E = 0 :鎖存器保持不變,鎖住 E = 1 :相當(dāng)于正常得SR鎖存器 把S取反接到

    2024年02月12日
    瀏覽(16)
  • 二、8【FPGA】Verilog中鎖存器(Latch)原理、危害及避免

    二、8【FPGA】Verilog中鎖存器(Latch)原理、危害及避免

    學(xué)習(xí)說明此文檔為本人的學(xué)習(xí)筆記,對一下資料進(jìn)行總結(jié),并添加了自己的理解。 ????????如果拿到了數(shù)字電路技術(shù)基礎(chǔ)的書,翻開書本的目錄你會(huì)發(fā)現(xiàn),關(guān)于鎖存器的章節(jié)與內(nèi)容非常少,也就是在觸發(fā)器前面有一小節(jié)進(jìn)行了簡單說明。但是真的就這么簡單么? 答案是否

    2024年01月16日
    瀏覽(25)
  • 數(shù)字電子技術(shù)之鎖存器和觸發(fā)器

    數(shù)字電子技術(shù)之鎖存器和觸發(fā)器

    一、組合電路設(shè)計(jì)的一般步驟: ????????邏輯抽象=列出真值表=邏輯表達(dá)式=邏輯電路圖 Notes: ????????a、可以先對邏輯表達(dá)式進(jìn)行化簡得到最簡與或式、最簡或與式、與非、或非,再對電路進(jìn)行建模,從而提高電路的運(yùn)行效率和可讀性; ? ? ? ? b、最基本的邏輯化簡

    2024年02月06日
    瀏覽(18)
  • 硬件基礎(chǔ)——鎖存器

    硬件基礎(chǔ)——鎖存器

    在電子電路中。雙穩(wěn)態(tài)電路的特點(diǎn)是:在沒有外來觸發(fā)信號(hào)的作用下,電路始終處于原來的穩(wěn)定狀態(tài)。在外加輸入觸發(fā)信號(hào)作用下,雙穩(wěn)態(tài)電路從一個(gè)穩(wěn)定狀態(tài)翻轉(zhuǎn)到另一個(gè)穩(wěn)定狀態(tài)。由于它具有兩個(gè)穩(wěn)定狀態(tài),故稱為雙穩(wěn)態(tài)電路。雙穩(wěn)態(tài)電路在自動(dòng)化控制中有著廣泛的應(yīng)用

    2024年02月06日
    瀏覽(27)
  • 數(shù)字世界的積木-從MOS管搭反相器,與非門,鎖存器,觸發(fā)器

    數(shù)字世界的積木-從MOS管搭反相器,與非門,鎖存器,觸發(fā)器

    NMOS管的結(jié)構(gòu)示意圖和表示符號(hào)如圖所示,在P型襯底上制作兩個(gè)摻雜N型區(qū),形成MOS管的源極S 和漏極D ,中間電極稱為柵極G,柵極和襯底之間通過SiO2 絕緣層隔開。 下圖為NMOS輸出特性曲線,采用共源極接法,漏極特性曲線可分為三個(gè)工作區(qū),截止區(qū),可變電阻區(qū),飽和區(qū) 當(dāng)

    2024年02月01日
    瀏覽(23)
  • verilog 學(xué)習(xí)筆記 —— 時(shí)序邏輯 Sequential Logics (Latches and Flip-Flops 鎖存器和觸發(fā)器)

    verilog 學(xué)習(xí)筆記 —— 時(shí)序邏輯 Sequential Logics (Latches and Flip-Flops 鎖存器和觸發(fā)器)

    1.?D flip-flop D觸發(fā)器 2.?D flip-flop? D觸發(fā)器 3.?DFF with reset? 帶復(fù)位的D觸發(fā)器? 4. 帶復(fù)位值的D觸發(fā)器 5. DFF with asynchronous reset 帶異步復(fù)位功能的 D觸發(fā)器 6.?DFF with byte enable? ?帶位啟動(dòng)的觸發(fā)器 7.?D Latch? D鎖存器 8.?DFF ?9.?DFF ? 10.?DFF+gate ? 11.?Mux and DFF ? 12.?DFFs and gates ? 13

    2024年02月04日
    瀏覽(14)
  • 【FPGA】Verilog:鎖存器 Latch | RS Flip-Flop 與 D Flip-Flop 的實(shí)現(xiàn)

    【FPGA】Verilog:鎖存器 Latch | RS Flip-Flop 與 D Flip-Flop 的實(shí)現(xiàn)

    ?? 寫在前面: 本章將理解 RS/D 鎖存器的概念,了解 RS/D/JK 觸發(fā)器的概念,使用 Verilog 實(shí)現(xiàn)各種鎖存器 (Latch) 和翻轉(zhuǎn)器 (Flip-Flop),并通過 FPGA 驗(yàn)證用 Verilog 的實(shí)現(xiàn)。 ?? 本章目錄: Ⅰ. 前置知識(shí)回顧 0x00 鎖存器(Latch)

    2024年02月05日
    瀏覽(18)
  • SR鎖存器與D鎖存器設(shè)計(jì)與建模

    SR鎖存器與D鎖存器設(shè)計(jì)與建模

    ?本專欄針對FPGA進(jìn)行入門學(xué)習(xí),從數(shù)電中常見的邏輯代數(shù)講起,結(jié)合Verilog HDL語言學(xué)習(xí)與仿真,主要對組合邏輯電路與時(shí)序邏輯電路進(jìn)行分析與設(shè)計(jì),對狀態(tài)機(jī)FSM進(jìn)行剖析與建模。 ??文章和代碼已歸檔至【Github倉庫:hardware-tutorial】,需要的朋友們自取?;蛘吖娞?hào)【AISha

    2024年02月02日
    瀏覽(26)
  • FPGA之 寄存器、觸發(fā)器、鎖存器

    FPGA之 寄存器、觸發(fā)器、鎖存器

    每個(gè)slice有8個(gè)存儲(chǔ)元素,每個(gè)存儲(chǔ)元素如下圖所示: ?其中四個(gè)為DFF/LATCH,可以配置為邊沿觸發(fā)D型觸發(fā)器或電平敏感鎖存器輸入上圖。D輸入可以通過AFFMUX, BFFMUX, CFFMUX或DFFMUX的LUT輸出直接驅(qū)動(dòng),也可以通過AX, BX, CX或DX輸入繞過函數(shù)發(fā)生器的 BYPASS slice輸入直接驅(qū)動(dòng)。當(dāng)配置為鎖存

    2024年01月18日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包