11.Verilog中如何避免Latch
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.Verilog中如何避免Latch相关的知识,希望对你有一定的参考价值。
---------------------------------------------------------------------------------------
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的主要内容,如果未能解决你的问题,请参考以下文章
(待更新)校招Verilog手撕代码(真题)VL16单bit信号毛刺滤除电路设计