我有谷歌,但仍然了解它.如果我写下面的代码:
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每次都要更改b或c更改.换句话说,a对b&是"敏感的" c.所以要设置它:
always @( b or c ) begin
a = b + c;
end
Run Code Online (Sandbox Code Playgroud)
但想象一下,你有一个对大量always信号敏感的大块.编写敏感度列表需要很长时间.事实上,如果你不小心留下信号,行为也可能会改变!这(*)是解决这些问题的简写.