7

我有谷歌它,但仍然了解它。如果我编写以下代码:

module POLY(CLK,RESET_n,IN_VALID,IN,OUT_VALID,OUT);

input         CLK,RESET_n,IN_VALID;
input  [ 3:0] IN;
output        OUT_VALID;
output [12:0] OUT;

然后使用它。

always @(*)
begin
.........
end

1. 这是否意味着input CLK,RESET_n,IN_VALID;input [ 3:0] IN;将触发always块或只有在块中使用过的输入才会触发always块?

2.但是它不写posedge或negedge,所以两个边都会触发always块?

提前谢谢。

4

3 回答 3

22

意思是“(*)为我建立敏感度列表”。

例如,如果您有一个语句,a = b + c;那么您希望a每次都更改bc更改。换句话说,对&a是“敏感的” 。所以要设置这个:bc

always @( b or c ) begin
    a = b + c;
end

但是想象一下,你有一个对大量always信号敏感的大块。编写敏感度列表需要很长时间。事实上,如果你不小心遗漏了一个信号,行为也可能会改变!(*)解决这些问题的速记也是如此。

于 2013-03-16T14:16:56.947 回答
0

它认为所有变量都将在敏感列表中。因此,您无需担心将它们添加到敏感度列表中。

于 2018-11-12T17:46:47.157 回答
-1

它将表现得像组合逻辑。

于 2013-03-17T03:08:31.160 回答