Skip to content

Commit 4197899

Browse files
author
MoritzScherer
authored
lzc: Fix edge case of WIDTH==0 (#266)
* [CIRCT] Fix edge case of WIDTH == 0 routed into degenerate case * Move assert to before case distinction, remove redundant assert
1 parent c9d3cc2 commit 4197899

1 file changed

Lines changed: 5 additions & 9 deletions

File tree

src/lzc.sv

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ module lzc #(
3232
output logic empty_o
3333
);
3434

35-
if (WIDTH == 1) begin : gen_degenerate_lzc
35+
`ifndef COMMON_CELLS_ASSERTS_OFF
36+
`ASSERT_INIT(width_0, WIDTH > 0, "input must be at least one bit wide")
37+
`endif
38+
39+
if (WIDTH <= 1) begin : gen_degenerate_lzc
3640

3741
assign cnt_o[0] = !in_i[0];
3842
assign empty_o = !in_i[0];
@@ -41,10 +45,6 @@ module lzc #(
4145

4246
localparam int unsigned NumLevels = $clog2(WIDTH);
4347

44-
`ifndef COMMON_CELLS_ASSERTS_OFF
45-
`ASSERT_INIT(width_0, WIDTH > 0, "input must be at least one bit wide")
46-
`endif
47-
4848
logic [WIDTH-1:0][NumLevels-1:0] index_lut;
4949
logic [2**NumLevels-1:0] sel_nodes /* verilator split_var */;
5050
logic [2**NumLevels-1:0][NumLevels-1:0] index_nodes /* verilator split_var */;
@@ -104,8 +104,4 @@ module lzc #(
104104

105105
end : gen_lzc
106106

107-
`ifndef COMMON_CELLS_ASSERTS_OFF
108-
`ASSERT_INIT(width_0, WIDTH >= 1, "The WIDTH must at least be one bit wide!")
109-
`endif
110-
111107
endmodule : lzc

0 commit comments

Comments
 (0)