我有谷歌但仍然了解它。 如果我写下面的代码:
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;
将触发始终阻止或仅在块中使用的输入将触发始终阻止?
2。 但它不会写posedge或negedge,所以这两个边缘都会触发始终阻塞?
提前谢谢。答案 0 :(得分:15)
(*)
表示“为我建立敏感度列表”。
例如,如果您有一个声明a = b + c;
,则每次a
或b
更改时您都希望c
更改。换句话说,a
对b
& c
。所以要设置它:
always @( b or c ) begin
a = b + c;
end
但是想象一下你有一个对信号负载敏感的大always
块。编写敏感度列表需要很长时间。事实上,如果你不小心留下信号,行为也可能会改变!所以(*)
是解决这些问题的简写。
答案 1 :(得分:0)
它认为所有变量都将在灵敏度列表中。因此,您不必担心将它们添加到灵敏度列表中。
答案 2 :(得分:-1)
它的行为就像组合逻辑。