Add regression test for scalar and 1-bit parameters

Check that scalar typed parameters are handled correctly. Make sure the
width of the parameter only depends on the type and not on the value
assigned to the parameter.

Same for parameters with a 1-bit range specification.

Signed-off-by: Lars-Peter Clausen <[email protected]>
This commit is contained in:
Lars-Peter Clausen
2022-05-02 14:33:31 +02:00
parent 37f9cde49f
commit 37392383b5
4 changed files with 54 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
// Check that parameters with a implicit and 1-bit range type are handled correctly
module test #(
// This should get truncated to 1'b1
parameter [0:0] P = 2'b11
);
reg failed = 1'b0;
`define check(expr, val) \
if (expr !== val) begin \
$display("FAILED: `%s`, expected %0d, got %0d", `"expr`", val, expr); \
failed = 1'b1; \
end
initial begin
`check($bits(P), 1);
`check(P + 1'b1, 1'b0);
`check(P, 1'b1);
if (!failed) begin
$display("PASSED");
end
end
endmodule
+26
View File
@@ -0,0 +1,26 @@
// Check that parameters with a scalar type are handled correctly
module test #(
// This should get truncated to 1'b1
parameter bit P = 2'b11
);
bit failed = 1'b0;
`define check(expr, val) \
if (expr !== val) begin \
$display("FAILED: `%s`, expected %0d, got %0d", `"expr`", val, expr); \
failed = 1'b1; \
end
initial begin
`check($bits(P), 1);
`check(P + 1'b1, 1'b0);
`check(P, 1'b1);
if (!failed) begin
$display("PASSED");
end
end
endmodule
+1
View File
@@ -374,6 +374,7 @@ parameter_no_default_fail2 CE ivltests
parameter_no_default_toplvl normal,-g2005-sv ivltests parameter_no_default_toplvl normal,-g2005-sv ivltests
parameter_override_invalid7 CE,-g2005-sv ivltests parameter_override_invalid7 CE,-g2005-sv ivltests
parameter_override_invalid8 CE,-g2005-sv ivltests parameter_override_invalid8 CE,-g2005-sv ivltests
parameter_scalar normal,-g2005-sv ivltests
parameter_type2 normal,-g2009 ivltests parameter_type2 normal,-g2009 ivltests
parpkg_test normal,-g2009 ivltests parpkg_test normal,-g2009 ivltests
parpkg_test2 normal,-g2009 ivltests parpkg_test2 normal,-g2009 ivltests
+1
View File
@@ -712,6 +712,7 @@ param_test2 normal ivltests gold=param_test2.gold
param_test3 normal ivltests gold=param_test3.gold # PR#293 param_test3 normal ivltests gold=param_test3.gold # PR#293
param_test4 normal ivltests param_test4 normal ivltests
param_times normal ivltests # param has multiplication. param_times normal ivltests # param has multiplication.
parameter_1bit normal ivltests
parameter_type normal ivltests gold=parameter_type.gold parameter_type normal ivltests gold=parameter_type.gold
parameter_in_generate1 CE ivltests parameter_in_generate1 CE ivltests
parameter_no_default CE ivltests parameter_no_default CE ivltests