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

FPGA結(jié)構(gòu):LATCH(鎖存器)和 FF(觸發(fā)器)介紹

這篇具有很好參考價(jià)值的文章主要介紹了FPGA結(jié)構(gòu):LATCH(鎖存器)和 FF(觸發(fā)器)介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

FPGA 系列文章

  • 如果你想學(xué)習(xí)有關(guān)FPGA的專業(yè)術(shù)語,可以參考這一篇:FPGA專業(yè)術(shù)語介紹


一、LATCH(鎖存器)是什么

一句話概括,能夠存儲一個狀態(tài)的數(shù)字電路叫做鎖存器。

以下是最為基本的一個RS鎖存器的具體結(jié)構(gòu):

fpga ff是什么資源,fpga開發(fā)

以下是它的真值表,其中X表示不確定/無效:

R {R} R(清零) S {S} S(置位) Q ( t ) {Q(t)} Q(t) (上一時(shí)刻的輸出 ) Q ( t + 1 ) {Q(t+1)} Q(t+1) (這一時(shí)刻的輸出A) Q  ̄ \overline{Q} Q?(這一時(shí)刻的輸出B)
0 0 Q Q !Q
1 0 Q 0 1
0 1 Q 1 0
1 1 X X X

這張真值表的前三行如下圖所示,能夠使得輸出的結(jié)果和定義一致。
第一種情況,電路能夠維持輸出為Q:
fpga ff是什么資源,fpga開發(fā)
第二種情況,上面的NOR門輸出一定為0,進(jìn)而使得整個電路達(dá)到穩(wěn)態(tài):

fpga ff是什么資源,fpga開發(fā)
第三種情況,下面的NOR門輸出一定為0,進(jìn)而使得整個電路達(dá)到穩(wěn)態(tài):
fpga ff是什么資源,fpga開發(fā)
唯獨(dú)這張真值表的第四行輸出結(jié)果和定義不一致:
fpga ff是什么資源,fpga開發(fā)
看起來這張電路圖是一個穩(wěn)定的狀態(tài),但當(dāng)我們把這個狀態(tài)切換到S=R=0的狀態(tài)時(shí),就會產(chǎn)生兩種可能的穩(wěn)態(tài):

1.上面R對應(yīng)的或非門電路延遲較低,這時(shí)候Q先被置為1:

fpga ff是什么資源,fpga開發(fā)

2.下面S對應(yīng)的或非門電路延遲較低,這時(shí)候!Q先被置為1:

fpga ff是什么資源,fpga開發(fā)

在這種情況下,輸出結(jié)果完全隨機(jī)(與電路延遲相關(guān)),由于這種現(xiàn)象很玄學(xué)。因此我們在使用RS鎖存器時(shí),一般不會將R和S同時(shí)置1。

為了解決RS鎖存器帶來的問題(RS不能同時(shí)為1),我們需要在它的輸入之前添加一些邏輯電路,進(jìn)化版本的RS鎖存器被叫做D鎖存器。

D鎖存器的具體結(jié)構(gòu)如下:

fpga ff是什么資源,fpga開發(fā)

D鎖存器在RS鎖存器的輸入之前添加了一個非門,排除了RS同時(shí)為1的情況。同時(shí),上圖中的D鎖存器將使能輸入(E)設(shè)置為clock,使得該電路只有在時(shí)鐘信號為1的時(shí)候才能夠工作(設(shè)置為時(shí)鐘信號為0時(shí)工作也很簡單)

D鎖存器的真值表如下:

D {D} D(置位) E {E} E(使能) Q ( t ) {Q(t)} Q(t) (上一時(shí)刻的輸出 ) Q ( t + 1 ) {Q(t+1)} Q(t+1) (這一時(shí)刻的輸出A) Q  ̄ ( t + 1 ) \overline{Q}(t+1) Q?(t+1)(這一時(shí)刻的輸出B)
0 0 Q Q !Q
1 0 Q Q !Q
0 1 Q 1 0
1 1 Q 0 1

D鎖存器足夠完美了嗎?

當(dāng)然不,D鎖存器同樣存在問題,那就是無法去除輸入的毛刺/抖動。當(dāng)E為1的時(shí)候,D 和 !Q 的值永遠(yuǎn)是相等的 (哪怕輸入存在毛刺/抖動)。為了進(jìn)一步的改進(jìn),人們在D鎖存器的基礎(chǔ)上提出了觸發(fā)器的概念。觸發(fā)器的具體結(jié)構(gòu)會在第二章進(jìn)行介紹。

二、FF(觸發(fā)器)是什么

一句話概括:觸發(fā)器是能在指定的事件發(fā)生時(shí)存儲狀態(tài)的數(shù)字電路。

觸發(fā)器是時(shí)序邏輯電路的基本單元,用來存儲1位2進(jìn)制信息,具有記憶和存儲功能。常見的觸發(fā)器包括D觸發(fā)器,J-K觸發(fā)器等。

D觸發(fā)器

D觸發(fā)器可以由兩個D鎖存器級聯(lián)構(gòu)成,它的具體結(jié)構(gòu)如下,其中FF1和FF2都代表上文提到的D鎖存器:
fpga ff是什么資源,fpga開發(fā)
以下是兩個D鎖存器級聯(lián)構(gòu)成的D觸發(fā)器的真值表:

D {D} D C L K {CLK} CLK Q ( t ) {Q(t)} Q(t) (上一時(shí)刻的輸出 ) Q ( t + 1 ) {Q(t+1)} Q(t+1) (這一時(shí)刻的輸出A) Q  ̄ ( t + 1 ) \overline{Q}(t+1) Q?(t+1)(這一時(shí)刻的輸出B)
0 0 Q Q !Q
1 0 Q Q !Q
0 0->1 Q 0 1
1 0->1 Q 1 0
0 1 Q Q !Q
1 1 Q Q !Q
0 1->0 Q Q !Q
1 1->0 Q Q !Q

從真值表中可以看出,輸出的改變只可能發(fā)生在時(shí)鐘信號的上升沿。接下來讓我們按CLK依次分析這四種情況:

  • 第一種情況,CLK為0,這時(shí)候FF2的CLK輸入為0,因此電路的輸出保持不變。

  • 第二種情況,CLK處于上升沿(0->1)到達(dá)的瞬間,由于電路內(nèi)部的延遲,這時(shí)候FF1會先取上升沿到達(dá)之前瞬間D的狀態(tài),之后將該狀態(tài)保存。

  • 第三種情況,CLK為1,這時(shí)候FF1的CLK輸入為0,因此Q1的輸出保持不變,進(jìn)而使整個電路的輸出保持不變。

  • 第四種情況,CLK處于下降沿(1->0)到達(dá)的瞬間,由于電路內(nèi)部的延遲,這時(shí)候FF2會先取下降沿到達(dá)之前瞬間Q1的狀態(tài),之后將該狀態(tài)保存。

JK觸發(fā)器

JK觸發(fā)器彌補(bǔ)了RS鎖存器的缺陷,能夠在輸入為1時(shí)將狀態(tài)翻轉(zhuǎn)。JK觸發(fā)器的具體結(jié)構(gòu)如下圖:

fpga ff是什么資源,fpga開發(fā)

藍(lán)框中的電路結(jié)構(gòu)將或非門換為了與非門,同樣也是RS鎖存器的一種表現(xiàn)方式。感興趣的同學(xué)可以自己推導(dǎo)一下真值表。

這里先直接給出與非門實(shí)現(xiàn)RS鎖存器的真值表:

S {S} S(置位) R {R} R(清零) Q ( t ) {Q(t)} Q(t) (上一時(shí)刻的輸出 ) Q ( t + 1 ) {Q(t+1)} Q(t+1) (這一時(shí)刻的輸出A) Q  ̄ \overline{Q} Q?(這一時(shí)刻的輸出B)
0 0 X X X
0 1 Q 1 0
1 0 Q 0 1
1 1 Q Q !Q

JK觸發(fā)器通過紅框?qū)崿F(xiàn)上升沿讀取數(shù)據(jù)。當(dāng)CLK處于上升沿(0->1)時(shí),由于非門的延遲,會有一瞬間出現(xiàn)CLK變?yōu)?的情況,這時(shí)候讀取數(shù)據(jù),剩下的時(shí)候CLK均為0。

在時(shí)鐘上升沿信號未到來時(shí),與非門G3和G4將J與K端的輸入信號屏蔽,觸發(fā)器狀態(tài)不受輸入信號的影響,維持不變。在時(shí)鐘上升沿信號到來時(shí),觸發(fā)器的狀態(tài)將會隨著J與K的輸入產(chǎn)生相應(yīng)的變化。

  • 時(shí)鐘上升沿信號到來時(shí),J=0,K=0,觸發(fā)器狀態(tài)維持不變。

  • 時(shí)鐘上升沿信號到來時(shí),J=1,K=0,這時(shí)候S和R的值分別為Q和1,JK觸發(fā)器會將這一時(shí)刻的輸出A置為1。(無論Q為0或1,根據(jù)上面的真值表,這一時(shí)刻的輸出A都一定為1)

  • 時(shí)鐘上升沿信號到來時(shí),J=0,K=1,這時(shí)候S和R的值分別為1和!Q,JK觸發(fā)器會將這一時(shí)刻的輸出A置為0。(無論Q為0或1,根據(jù)上面的真值表,這一時(shí)刻的輸出A都一定為0)

  • 時(shí)鐘上升沿信號到來時(shí),J=K=1,這時(shí)候S和R的值分別為Q和!Q,根據(jù)上面的真值表,這一時(shí)刻的輸出A與這一時(shí)刻的輸出B一定為!Q和Q,實(shí)現(xiàn)翻轉(zhuǎn)。

JK觸發(fā)器的真值表如下圖:

J {J} J K {K} K C L K {CLK} CLK Q ( t ) {Q(t)} Q(t) (上一時(shí)刻的輸出 ) Q ( t + 1 ) {Q(t+1)} Q(t+1) (這一時(shí)刻的輸出1) Q  ̄ ( t + 1 ) \overline{Q}(t+1) Q?(t+1)(這一時(shí)刻的輸出2)
0 0 0 Q Q !Q
0 1 0 Q Q !Q
1 0 0 Q Q !Q
1 1 0 Q Q !Q
0 0 0->1 Q Q !Q
0 1 0->1 Q 0 1
1 0 0->1 Q 1 0
1 1 0->1 Q !Q Q
0 0 1 Q Q !Q
0 1 1 Q Q !Q
1 0 1 Q Q !Q
1 1 1 Q Q !Q
0 0 1->0 Q Q !Q
0 1 1->0 Q Q !Q
1 0 1->0 Q Q !Q
1 1 1->0 Q Q !Q

將J和K合并成一個信號,它就有了一個新名稱:T觸發(fā)器。

三、牛刀小試:避免使用Verilog綜合出LATCH

因?yàn)長ATCH的種種缺點(diǎn),它是我們在寫Verilog代碼的時(shí)候唯恐避之不及的。然而,我們常常會遇到由于邏輯定義不完整綜合出LATCH的情況。在代碼包含always@(*)時(shí),一般情況下會綜合出LUT,但假如沒有將if/else中所有case的賦值情況寫完整,編譯器就會綜合出LATCH,以下是一段綜合出LATCH的Verilog代碼:

module top_module (
    input [15:0] scancode,
    output reg left,
    output reg down,
    output reg right,
    output reg up  ); 
    always @(*) begin 
       case(scancode)
           16'he06b:
                left=1;
           16'he072:
                down=1;
           16'he074:
                right=1;
           16'he075:
                up=1;
       endcase
    end
endmodule

這段代碼與人物上下左右移動有關(guān)。例如16’he06b這個case,如果我們在其中沒有指定down,right和up的值,那么它就會自動保存原來的值(信號接收之前的值),綜合出鎖存器。

如何讓上面的電路不綜合出LATCH呢?

非常簡單,只要在每一次 always @(*) begin 的最開始指定left,down,right和up的值就可以了,更改后的代碼如下所示:

module top_module (
    input [15:0] scancode,
    output reg left,
    output reg down,
    output reg right,
    output reg up  ); 
    always @(*) begin 
    left=0;down=0;right=0;up=0;// 給up,down,left,right賦初始值
       case(scancode)
           16'he06b:
                left=1;
           16'he072:
                down=1;
           16'he074:
                right=1;
           16'he075:
                up=1;
       endcase
    end
endmodule

需要注意的是,對于always@(posedge clk),即使case不完整,也不會綜合出LATCH,綜合器會將這些不執(zhí)行的情況視為不需要進(jìn)行任何操作。

參考文檔

FPGA中LUT、LATCH、FF的概念

RS鎖存器,D鎖存器、D觸發(fā)器簡介

數(shù)字電路學(xué)習(xí)筆記(九):初識鎖存器

D觸發(fā)器 (D-FF)詳解

數(shù)字電路中的鎖存器(latch)和各種觸發(fā)器(flip-flop)

從CMOS到觸發(fā)器(二)文章來源地址http://www.zghlxwxcb.cn/news/detail-823748.html

到了這里,關(guān)于FPGA結(jié)構(gòu):LATCH(鎖存器)和 FF(觸發(fā)器)介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(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)文章

  • 鎖存器、D觸發(fā)器、寄存器理解

    鎖存器、D觸發(fā)器、寄存器理解

    1、鎖存器 ? ? ? ?鎖存器對脈沖的電平敏感,也就是電平觸發(fā),在有效的電平下,鎖存器處于使能狀態(tài),輸出隨著輸入發(fā)生變化,此時(shí)它不鎖存信號,就像一個緩沖器一樣;在鎖存器沒有使能時(shí),則數(shù)據(jù)被鎖住,輸入信號不起作用,此時(shí)輸出一直為鎖存的狀態(tài)信息(鎖存最后

    2024年02月09日
    瀏覽(28)
  • FPGA之鎖存器(Latch)

    FPGA之鎖存器(Latch)

    latch 是指鎖存器,是一種對脈沖 電平 敏感的存儲單元電路。鎖存器和寄存器都是基本存儲單元,鎖存器是電平觸發(fā)的存儲器,寄存器是邊沿觸發(fā)的存儲器。兩者的基本功能是一樣的,都可以存儲數(shù)據(jù)。鎖存器是組合邏輯產(chǎn)生的,而寄存器是在時(shí)序電路中使用,由時(shí)鐘觸發(fā)產(chǎn)

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

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

    2023.8.15 信號高電平有效 R :復(fù)位端 S :置位端 表達(dá)式: Q = S + R\\\' Qn 約束條件:SR=0,也就是SR不能同時(shí)為1 信號低電平有效 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)
  • 數(shù)字電子技術(shù)之鎖存器和觸發(fā)器

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

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

    2024年02月06日
    瀏覽(18)
  • 【IC設(shè)計(jì)】時(shí)序邏輯的基礎(chǔ)—鎖存器、觸發(fā)器

    【IC設(shè)計(jì)】時(shí)序邏輯的基礎(chǔ)—鎖存器、觸發(fā)器

    波形圖中,表達(dá)時(shí)序邏輯時(shí)如果時(shí)鐘和數(shù)據(jù)是對齊的,則默認(rèn)當(dāng)前時(shí)鐘沿采集到的數(shù)據(jù)位在該時(shí)鐘上升沿前一時(shí)刻的值。表達(dá)組合邏輯時(shí)如果時(shí)鐘和數(shù)據(jù)是對齊的,則默認(rèn)當(dāng)前時(shí)鐘沿采集到的數(shù)據(jù)為該始終上升沿同一時(shí)刻的值。 組合邏輯和時(shí)序邏輯的區(qū)別 : 主要是看 數(shù)據(jù)工

    2024年02月03日
    瀏覽(50)
  • educoder數(shù)字邏輯實(shí)訓(xùn):鎖存器和觸發(fā)器設(shè)計(jì)(Logisim)

    educoder數(shù)字邏輯實(shí)訓(xùn):鎖存器和觸發(fā)器設(shè)計(jì)(Logisim)

    第1關(guān):基本SR鎖存器的設(shè)計(jì) 任務(wù)描述 本關(guān)任務(wù):在Logisim中,構(gòu)建由兩個或非門構(gòu)成的基本SR鎖存器。 第2關(guān):門控SR鎖存器的設(shè)計(jì)? 任務(wù)描述 本關(guān)任務(wù):在Logisim中,在基本鎖存器的基礎(chǔ)上構(gòu)建門控SR鎖存器。 第3關(guān):與非門構(gòu)成的門控SR鎖存器的設(shè)計(jì)? 任務(wù)描述 本關(guān)任務(wù):在

    2024年02月04日
    瀏覽(40)
  • 傳輸門、D 鎖存器、D觸發(fā)器、建立時(shí)間與保持時(shí)間

    傳輸門、D 鎖存器、D觸發(fā)器、建立時(shí)間與保持時(shí)間

    在了解setup time和hold time之前,我們應(yīng)該了解D鎖存器 D latch 和 D觸發(fā)器 DFF 。D鎖存器和DFF是由傳輸門 transmission gate 和反相器 inverters 組成。 The transmission gate is consists of a parallel connection of PMOS NMOS. Two gate voltage of PMOS and NMOS are the complement of each other. The effective resistance of the trans

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

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

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

    2024年01月16日
    瀏覽(24)
  • 什么是好的FPGA編碼風(fēng)格?(3)--盡量不要使用鎖存器Latch

    什么是好的FPGA編碼風(fēng)格?(3)--盡量不要使用鎖存器Latch

    在FPGA設(shè)計(jì)中,幾乎沒人會主動使用 鎖存器Latch ,但有時(shí)候不知不覺中你的設(shè)計(jì)莫名其妙地就生成了一堆Latch,而這些Latch可能會給你帶來巨大的麻煩。 Latch,鎖存器,一種可以存儲電路狀態(tài)信息的組合邏輯元件,和同樣可以保存電路狀態(tài)的時(shí)序邏輯元件–觸發(fā)器(Flip-Flop,

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

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

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

    2024年02月01日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包