verilog 中always 问题
时间:10-02
整理:3721RD
点击:
在verilog 中,always @(*)的敏感列表有哪些?是所有的输入信号吗?
比如:input a, b , c ,d;
output out_a, out_b;
reg out_a, out_b;
//中间变量
reg buf_1, buf2;
always @(*)
if(……)
……
……
那么这里的敏感列表有哪些?谢谢
比如:input a, b , c ,d;
output out_a, out_b;
reg out_a, out_b;
//中间变量
reg buf_1, buf2;
always @(*)
if(……)
……
……
那么这里的敏感列表有哪些?谢谢
是这个always里面用到的所有信号。
是这样啊。我再试试
谢谢rice973
现在用个*就可以了,不用全列了
对只是想确定它的功能。
always @( *)
begin
if( ~a)
dout <= 0;
else
if( b )
dout <= { c, d }
end
在这个always中,若改掉*,是always @( a or b or c or d or dout )吗?
上面用always @( a or b or c or d),没有dout,出来的波型是一样的,为什么?
dout是输出,当然不用放在敏感列表里!一个always描述的是一个电路,只有输入变化才会引起输出变化,所以敏感列表里值需要列出这个组合逻辑的输入就行!
对,我2了,谢谢各位的解惑!
正解
是的,对的
没有DOUT,因为它是always块的输出
换个阻塞赋值语句试试。
always块里所有的输入信号都是敏感信号吧~
是的
换成什么时候呢,请问你想得到什么?
