diff options
Diffstat (limited to 'tests/various')
-rw-r--r-- | tests/various/const_arg_loop.v | 20 | ||||
-rw-r--r-- | tests/various/const_func_block_var.v | 9 |
2 files changed, 26 insertions, 3 deletions
diff --git a/tests/various/const_arg_loop.v b/tests/various/const_arg_loop.v index 85318562f..3bfff4acd 100644 --- a/tests/various/const_arg_loop.v +++ b/tests/various/const_arg_loop.v @@ -23,6 +23,22 @@ module top; end endfunction + function automatic [31:0] operation3; + input [4:0] rounds; + input integer num; + reg [4:0] rounds; + integer i; + begin + begin : shadow + integer rounds; + rounds = 0; + end + for (i = 0; i < rounds; i = i + 1) + num = num * 2; + operation3 = num; + end + endfunction + wire [31:0] a; assign a = 2; @@ -34,11 +50,15 @@ module top; wire [31:0] x2; assign x2 = operation2(A, a); + wire [31:0] x3; + assign x3 = operation3(A, a); + // `define VERIFY `ifdef VERIFY assert property (a == 2); assert property (A == 3); assert property (x1 == 16); assert property (x2 == 4); + assert property (x3 == 16); `endif endmodule diff --git a/tests/various/const_func_block_var.v b/tests/various/const_func_block_var.v index 98e83aa5b..cb60844ab 100644 --- a/tests/various/const_func_block_var.v +++ b/tests/various/const_func_block_var.v @@ -1,15 +1,18 @@ module top(out); function integer operation; input integer num; + localparam incr = 1; + localparam mult = 1; begin operation = 0; begin : op_i integer i; - for (i = 0; i < 2; i = i + 1) + for (i = 0; i * mult < 2; i = i + incr) begin : op_j integer j; - for (j = i; j < i * 2; j = j + 1) - num = num + 1; + localparam other_mult = 2; + for (j = i; j < i * other_mult; j = j + incr) + num = num + incr; end num = num * 2; end |