11.Verilog中如何避免Latch

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.Verilog中如何避免Latch相关的知识,希望对你有一定的参考价值。

FPGA教程目录

MATLAB教程目录

---------------------------------------------------------------------------------------

       Latch就是锁存器,是电平触发的存储单元,数据存储的动作取决于输入时钟信号的电平值。仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。
      Latch 的主要危害包括如下几个方面:
      1对毛刺敏感,不能异步复位,所以上电以后处于不确定的状态;
      2Latch会使静态时序分析变得非常复杂;

下面对几种常见的出现Latch的情况进行举例说明:

第一种情况:

不完整的if-else语句导致latch,举例:

module count(
    input [3:0]      i_din,
    input             i_en ,
    output reg[3:0]  o_dout) ;
   
    always @(*) begin
        if (i_en)
         o_dout = i_din ;
    end

endmodule

其对应的testbench如下ÿ

以上是关于11.Verilog中如何避免Latch的主要内容,如果未能解决你的问题,请参考以下文章

standard cell library中的那些功能单元

(待更新)校招Verilog手撕代码(真题)VL16单bit信号毛刺滤除电路设计

竞争冒险毛刺脉冲都是什么呢?

verilog中的latch到底是个啥??简直快疯了!!!!!

重学Veriliog——高级编程语句

[转]STM32正交编码器驱动电机