我在Verilog HDL中找到了两种不同的解释惯性延迟的不同来源。
1)第一条规定,任何小于指定延迟的输入信号都将被忽略。
2)第二种方法说,给定其中一种输入的变化,输出信号将在预定的时间使用当时的输入信号的值来评估。
例如:考虑延迟缓冲区
assign #4 out = in;
initial
begin
in = 0;
#5 in = 1;
#1 in = 0;
#1 in = 1;
end如果我们监测信号,这会导致
0 5 6 7 8 9 10 11
| | | | | | | |
__ _________________
in _________| |__|
_____
out1) XXXXXXX____________________|
___________
out2) XXXXXXX______________|out1)忽略输入(5,6)脉冲在“向上”和(6,7)脉冲处于“下行”状态,因为时间太短,只有一个时间单位。但后来"in“熬夜时间够长(7, 11 ),因此11岁时就变了。
( out2)在时间步骤9安排一个评估,因为输入在时间5处发生变化。同样地,在10和11时,"in“分别在6和7时发生了变化。因此,在9、10和11的时候,"out“在这些时候取" in”的当前值,在这种情况下,这个值总是"up“。
哪种评价是正确的?
发布于 2015-04-21 20:10:01
找到答案的最简单的方法-测试。让我们添加一个简单的行:
$monitor("%g out = %b", $time, out);监视out信号并运行一些模拟器(如Riviera)。结果将会是
0 out = x
4 out = 0
11 out = 1所以你的第一个方法是正确的。
发布于 2015-04-21 21:40:34
我建议您查看以下链接,以便很好地了解如何在Verilog中实现惯性延迟和传输延迟:
1
2
https://stackoverflow.com/questions/29781724
复制相似问题