请教高手if(c)和if(b-a)为什么会不同?(其中c=b-a)
本帖最后由 lanpad 于 2011-8-9 23:31 编辑……
reg a, b;
regflag;
wire c;
assign c = b - a;
always@(posedge rst or posedge clk)
if(rst)
begin
a <= 0;
b <= 0;
flag <= 0;
end
else
begin
if(b-a==8)/////////////////////////////////////////////////////////////////////////////
flag <= 1;
else
begin
a <= a + 1;
b <= b + 2;
end
end
endmodule
关键在if(b-a==8)这一句
上面写法的仿真结果显示flag无法按照设计发生跳变。
如果写成if(b-a==4'b1000),则flag可以正常按设计跳变
或者另外指定一个变量 assign c=b-a ,再写成if(c==8),也可以
请问为什么会出现上述结果?b-a的数据类型变化了么? 好帖,学习一下!!!!!!!!!!!!!!
页:
[1]