微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 中always 问题

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(……)
   ……
    ……
那么这里的敏感列表有哪些?谢谢

是这个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块里所有的输入信号都是敏感信号吧~



    是的



    换成什么时候呢,请问你想得到什么?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top