mirror of
https://github.com/YosysHQ/yosys
synced 2025-11-11 00:22:07 +00:00
65 lines
1.7 KiB
Systemverilog
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
|