verilog中always块语句中的寄存器变量自加问题

verilog中always块语句中的寄存器变量自加问题

f = f + 1 ;

当我们使用always块语句时,必须要在敏感信号列表里列出来所有需要的量,
比如

input a,b,c;
reg f;
always@(a,b,c)
begin
f = a+b+c;
end

可是如果我想在always块里实现对中间变量的自加,
比如

input a,b,rst;
reg f;
reg y;

always@(b,rst)
begin
	if (rst)
		f = f ;
	else
		f = f+1 ;
	y = b + f ;
end

仿真软件便会给出以下警告:
Signal < f > missing in the sensitivity list is added for synthesis purposes.
HDL and post-synthesis simulations may differ as a result.

虽然只是一个警告,不影响我们继续综合和实现,但是这个警告:
“HDL和合成后模拟可能有所不同。”
还是令人心忧不已。不知道这对以后的硬件实现有什么影响。
有待解决。

你可能感兴趣的:(verilog中always块语句中的寄存器变量自加问题)