VerilogHDL的always过程中IF语句判断的表达式是不是不能包含事件列表以外的量?

来源:百度知道 编辑:UC知道 时间:2024/05/18 11:16:57
初学Verilog HDL, 有一事不解.
写在always@(...)过程中的IF判断语句是不是只能包含写进事件敏感列表中的量? 比如写在always@(posedge CLK or posedge RST)中的IF语句只能对CLK或RST或其它非端口也非连线类型的量来进行判断?

我在这里提供解决了:
http://hi.baidu.com/sex%5Fappeal/blog/item/44dbc450b3a7fe5f1038c289.html

不是的,如果ALWAYS后有时钟信号,那么这一部分是一时序电路,下面出现的IF后面的信号就不用加进去.

如果想产生组合逻辑,那么下面用到的所有信号必须全部添加到敏感列表中.

如下面两个例子:

1.时序:

always @ ( posedge clock )
begin
if ( reset )
wadd [ 3 : 0 ] <= 4'b0 ;
else
if ( wen )
wadd [ 3 : 0 ] <= wadd [ 3 : 0 ] + 1'b1 ;

end

2.逻辑

always @ ( A )
begin
case ( A )
4'h0 : B [ 3 : 0 ] = 4'd1 ;
4'h1 : B [ 3 : 0 ] = 4'd12 ;
4'h2 : B [ 3 : 0 ] = 4'd7 ;
4'h3 : B [ 3 : 0 ] = 4'd2 ;
4'h4 :