3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-11-11 00:22:07 +00:00
yosys/tests/verilog/unbased_unsized.sv
Krystine Sherwin e4c5900acd
tests/verilog: Unsized params in cell
Non-zero case fails with `read_verilog`, but passes with `verific` and `read_slang`.
2025-11-07 17:13:12 +13:00

65 lines
1.7 KiB
Systemverilog

module pass_through(
input [63:0] inp,
output [63:0] out
);
assign out = inp;
endmodule
module set_param #(
parameter logic [63:0] VALUE
) (
output logic [63:0] out
);
assign out = VALUE;
endmodule
module top;
localparam logic [63:0]
l01 = '0,
l02 = '1,
l03 = 'x,
l04 = 'z;
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);
set_param #('0) sp13(o13);
set_param #('1) sp14(o14);
set_param #('x) sp15(o15);
set_param #('z) sp16(o16);
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}});
assert (l01 === {64 {1'b0}});
assert (l02 === {64 {1'b1}});
assert (l03 === {64 {1'bx}});
assert (l04 === {64 {1'bz}});
assert (o13 === {64 {1'b0}});
assert (o14 === {64 {1'b1}});
assert (o15 === {64 {1'bx}});
assert (o16 === {64 {1'bz}});
end
endmodule