Warning (10199): Verilog HDL Case Statement warning at modula.v(57): case item expression is ignored because it never applies
所对应的程序:
module modula(clk,rst,din,dout);
input clk;
input rst;
input din;
output dout;
reg dout;
reg[1:0] q;
reg[1:0] x;
reg[1:0] y;
reg[3:0] f; always@(posedge clk)
begin
if(rst==1)
begin
q<=0;
x<=0;
end
else
begin
case(q)
0:
begin
q<=1;
f[1]<=1;
f[3]<=0;
x[1]<=din;
y<=x;
end
1:
begin
q<=2;
f[0]<=1;
f[2]<=0;
end
2:
begin
q<=3;
f[1]<=0;
f[3]<=1;
x[0]<=din;
end
3:
begin
q<=0;
f[0]<=0;
f[2]<=1;
end
endcase
end
end always@(f or y)
begin
case(y)
00:dout=f[0];
01:dout=f[1];
10:dout=f[3];
default:dout=f[2];
endcase
end
endmodule
当出现这个编译warning 对应的仿真也出现Warning: Ignored node in vector source file. Can't find corresponding node name "f[3]" in design.请问是什么问题?
always@(posedge clk)
begin
if(rst==1)
begin
q <= 2'd0;
x <= 2'd0;
f <= 4'd0;
x <= 2'd0;
end
else
begin
case(q)
0:
begin
q <= 2'd1;
f[1] <= 1'b1;
f[3] <= 1'b0;
x[1] <= din;
y <= x;
end
1:
begin
q <= 2'd2;
f[0] <= 1'b1;
f[2] <= 1'b0;
end
2:
begin
q <= 2'd3;
f[1] <= 1'b0;
f[3] <= 1'b1;
x[0] <= din;
end
3:
begin
q <= 2'd0;
f[0] <= 1'b0;
f[2] <= 1'b1;
end
endcase
end
end
always@(*)
begin
case(y)
2'b00:dout = f[0];
2'b01:dout = f[1];
2'b10:dout = f[3];
default:dout = f[2];
endcase
end