diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/verilog/typedef_across_files.ys | 23 | ||||
-rw-r--r-- | tests/verilog/typedef_legacy_conflict.ys | 37 |
2 files changed, 60 insertions, 0 deletions
diff --git a/tests/verilog/typedef_across_files.ys b/tests/verilog/typedef_across_files.ys new file mode 100644 index 000000000..ca9bba736 --- /dev/null +++ b/tests/verilog/typedef_across_files.ys @@ -0,0 +1,23 @@ +read_verilog -sv <<EOF +typedef logic T; +EOF + +read_verilog -sv <<EOF +typedef T [3:0] S; +EOF + +read_verilog -sv <<EOF +module top; + T t; + S s; + always @* begin + assert ($bits(t) == 1); + assert ($bits(s) == 4); + end +endmodule +EOF + +proc +opt -full +select -module top +sat -verify -seq 1 -tempinduct -prove-asserts -show-all diff --git a/tests/verilog/typedef_legacy_conflict.ys b/tests/verilog/typedef_legacy_conflict.ys new file mode 100644 index 000000000..8dff4ec5f --- /dev/null +++ b/tests/verilog/typedef_legacy_conflict.ys @@ -0,0 +1,37 @@ +read_verilog -sv <<EOF +typedef logic T; +typedef T [3:0] S; +EOF + +read_verilog -sv <<EOF +module example; + // S and T refer to the definitions from the first file + T t; + S s; + always @* begin + assert ($bits(t) == 1); + assert ($bits(s) == 4); + end +endmodule + +typedef byte T; +typedef T S; + +module top; + // S and T refer to the most recent overrides + T t; + S s; + always @* begin + assert ($bits(t) == 8); + assert ($bits(s) == 8); + end + example e(); +endmodule +EOF + +hierarchy +proc +flatten +opt -full +select -module top +sat -verify -seq 1 -tempinduct -prove-asserts -show-all |