scope1でreg宣言だけをするとSyntax Error
module Test;
reg [7:0] tmp0, tmp1;
initial begin
tmp1 = 0;
#10;
tmp1 = 1;
#10;
$finish;
end
always@* begin: scope0
reg [7:0] tmp0;
begin: scope1
reg [7:0] tmp0;
end
tmp0 = tmp1 + 1;
end
endmodule
$ iverilog test.v
test.v:20: syntax error
test.v:21: Syntax in assignment statement l-value.
test.v:23: syntax error
I give up.
scope1でreg宣言に加えて代入をするとOK
module Test;
reg [7:0] tmp0, tmp1;
initial begin
tmp1 = 0;
#10;
tmp1 = 1;
#10;
$finish;
end
always@* begin: scope0
reg [7:0] tmp0;
begin: scope1
reg [7:0] tmp0;
tmp0 = tmp1;
end
tmp0 = tmp1 + 1;
end
endmodule