aboutsummaryrefslogtreecommitdiffstats
path: root/tests/verilog/unbased_unsized.sv
diff options
context:
space:
mode:
authorZachary Snow <zach@zachjs.com>2021-03-03 14:36:19 -0500
committerZachary Snow <zachary.j.snow@gmail.com>2021-03-06 15:20:34 -0500
commitb1a8e73a609d3065f1caf7a230529443b54295bc (patch)
treee682f44ba07bf036005113e0dc5def403e8dc163 /tests/verilog/unbased_unsized.sv
parentd245e2bae59d18eb641aa6b324eef1bbbfa13c38 (diff)
downloadyosys-b1a8e73a609d3065f1caf7a230529443b54295bc.tar.gz
yosys-b1a8e73a609d3065f1caf7a230529443b54295bc.tar.bz2
yosys-b1a8e73a609d3065f1caf7a230529443b54295bc.zip
sv: fix some edge cases for unbased unsized literals
- Fix explicit size cast of unbased unsized literals - Fix unbased unsized literal bound directly to port - Output `is_unsized` flag in `dumpAst`
Diffstat (limited to 'tests/verilog/unbased_unsized.sv')
-rw-r--r--tests/verilog/unbased_unsized.sv40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/verilog/unbased_unsized.sv b/tests/verilog/unbased_unsized.sv
new file mode 100644
index 000000000..1d0c5a72c
--- /dev/null
+++ b/tests/verilog/unbased_unsized.sv
@@ -0,0 +1,40 @@
+module pass_through(
+ input [63:0] inp,
+ output [63:0] out
+);
+ assign out = inp;
+endmodule
+
+module top;
+ logic [63:0]
+ o01, o02, o03, o04,
+ o05, o06, o07, o08,
+ o09, o10, o11, o12,
+ o13, o14, o15, o16;
+ assign o01 = '0;
+ assign o02 = '1;
+ assign o03 = 'x;
+ assign o04 = 'z;
+ assign o05 = 3'('0);
+ assign o06 = 3'('1);
+ assign o07 = 3'('x);
+ assign o08 = 3'('z);
+ pass_through pt09('0, o09);
+ pass_through pt10('1, o10);
+ pass_through pt11('x, o11);
+ pass_through pt12('z, o12);
+ always @* begin
+ assert (o01 === {64 {1'b0}});
+ assert (o02 === {64 {1'b1}});
+ assert (o03 === {64 {1'bx}});
+ assert (o04 === {64 {1'bz}});
+ assert (o05 === {61'b0, 3'b000});
+ assert (o06 === {61'b0, 3'b111});
+ assert (o07 === {61'b0, 3'bxxx});
+ assert (o08 === {61'b0, 3'bzzz});
+ assert (o09 === {64 {1'b0}});
+ assert (o10 === {64 {1'b1}});
+ assert (o11 === {64 {1'bx}});
+ assert (o12 === {64 {1'bz}});
+ end
+endmodule