总是阻止@(*)表示?

Jas*_*son 5 verilog

我有谷歌,但仍然了解它.如果我写下面的代码:

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;
Run Code Online (Sandbox Code Playgroud)

然后使用它.

always @(*)
begin
.........
end
Run Code Online (Sandbox Code Playgroud)

1.是否意味着input CLK,RESET_n,IN_VALID;input [ 3:0] IN;将触发始终阻止或仅在块中使用的输入将触发始终阻止?

2.但它不会写posedge或negedge,所以两个边缘都会触发始终阻塞?

Thx提前.

Mar*_*rty 16

(*)意思是"打造我的敏感列表".

例如,如果您有一个声明,a = b + c;那么您a每次都要更改bc更改.换句话说,ab&是"敏感的" c.所以要设置它:

always @( b or c ) begin
    a = b + c;
end
Run Code Online (Sandbox Code Playgroud)

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