日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Verilog如何避免Latch

發(fā)布時(shí)間:2024/10/14 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Verilog如何避免Latch 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

鎖存器(Latch)產(chǎn)生的原因:

  • 目錄

    1.if結(jié)構(gòu)不完整

    2.case結(jié)構(gòu)不完整

    3.敏感信號(hào)列表不完整


  • Latch的危害:

  • 輸入狀態(tài)可能多次變化,容易在輸入信號(hào)產(chǎn)生毛刺,會(huì)增加電路的不穩(wěn)定性;
  • 使得靜態(tài)時(shí)序變得更難分析。
  • 1.if結(jié)構(gòu)不完整

    例如: module module_Latch1 (input in,en,output reg q );always @(*) beginif (en)?q=in;end? ? ?? endmodule

    由于if語句中缺少else,系統(tǒng)會(huì)默認(rèn)else分支下的輸出q會(huì)保持不變,即具有寄存器的功能,所以寄存器q會(huì)被綜合成Latch。

    避免方法:

    補(bǔ)全if-case結(jié)構(gòu)

    module module_Latch1 (input in,en,output reg q );always @(*) beginif (en)?q=in;elseq=1'b0;end endmodule

    賦初值

    module tmodule_Latch1 (input in,en,output reg q );always @(*) beginq=1'b0;? //給q賦初值0if (en)?q=in;end endmodule

    如果en為真,in賦值給q,否則q會(huì)保持為0。

    2.case結(jié)構(gòu)不完整

    case語句產(chǎn)生Latch的原理和if語句幾乎一致。當(dāng)case列表不完整且沒有在末尾加default,或者有多個(gè)賦值語句不完整時(shí)會(huì)產(chǎn)生Latch。

    例子:

    module module_Latch (input a,b,input [1:0],output reg y);always @(*) begincase(sel)2'b00:y=a;2'b01:y=b;endcaseendendmodule

    避免方法也是兩種:

    補(bǔ)全case列表

    module module_Latch (input a,b,input [1:0],output reg y);always @(*) begincase(sel)2'b00:y=a;2'b01:y=b;2'b10,2'b11:y=1'b0;endcaseendendmodule

    或者在末尾加default

    module module_Latch (input a,b,input [1:0],output reg y);always @(*) begincase(sel)2'b00:y=a;2'b01:y=b;default:y=1'b0;endcaseendendmodule

    建議就算列出所有的case列表,也在末尾加上default關(guān)鍵詞,這樣不僅可以在寫Verilog的時(shí)候避免Latch的出現(xiàn),在修改的時(shí)候也可以避免每次都要驗(yàn)證是否列出了所有case列表。

    3.敏感信號(hào)列表不完整

    如果組合邏輯內(nèi)的always@()括號(hào)內(nèi)的敏感列表沒有列全,該觸發(fā)的時(shí)候會(huì)觸發(fā)不了,那么相關(guān)的寄存器還是會(huì)保存之前的結(jié)果,因而會(huì)產(chǎn)生Latch。

    解決方法也很簡(jiǎn)單,就是直接用always @(*)。

    總結(jié)

    以上是生活随笔為你收集整理的Verilog如何避免Latch的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。