51 lines
874 B
Coq
51 lines
874 B
Coq
|
|
// Check that the var keyword is supported for variable declarations in modules
|
||
|
|
|
||
|
|
`define check(val, exp) \
|
||
|
|
if (val !== exp) begin \
|
||
|
|
$display("FAILED(%0d). '%s' expected %b, got %b", `__LINE__, `"val`", val, exp); \
|
||
|
|
failed = 1'b1; \
|
||
|
|
end
|
||
|
|
|
||
|
|
module test;
|
||
|
|
|
||
|
|
var x;
|
||
|
|
var [7:0] y;
|
||
|
|
var signed [8:0] z;
|
||
|
|
var logic [9:0] w;
|
||
|
|
|
||
|
|
bit failed = 1'b0;
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
x = 1'b1;
|
||
|
|
y = 8'd10;
|
||
|
|
z = -8'sd1;
|
||
|
|
w = 8'd20;
|
||
|
|
|
||
|
|
`check(x, 1'b1)
|
||
|
|
`check(y, 10)
|
||
|
|
`check(z, -1)
|
||
|
|
`check(w, 20)
|
||
|
|
|
||
|
|
// var should default to logic and allow x state
|
||
|
|
x = 1'bx;
|
||
|
|
y = 8'hxx;
|
||
|
|
z = 8'hxx;
|
||
|
|
w = 8'hxx;
|
||
|
|
|
||
|
|
`check(x, 1'bx)
|
||
|
|
`check(y, 8'hxx)
|
||
|
|
`check(z, 8'hxx)
|
||
|
|
`check(w, 8'hxx)
|
||
|
|
|
||
|
|
`check($bits(x), 1)
|
||
|
|
`check($bits(y), 8)
|
||
|
|
`check($bits(z), 9)
|
||
|
|
`check($bits(w), 10)
|
||
|
|
|
||
|
|
if (!failed) begin
|
||
|
|
$display("PASSED");
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
endmodule
|