Files
iverilog/ivtest/ivltests/wild_cmp_const.v
T
Stephen Williams cea237b407 Add ivtest to the iverilog source tree
By adding ivtest to the iverilog source tree, it is easier to keep
the regression test synchronized with the source that is being tested.
This should be especially helpful for PRs that add a new feature, and
have a matching ivtest PR with the regression test for that feature.
2022-01-15 10:18:50 -08:00

191 lines
5.3 KiB
Verilog

module top;
parameter weq1 = 2'b01 ==? 2'b01;
parameter weq2 = 2'b01 ==? 2'b00;
parameter weq3 = 2'b0x ==? 2'b00;
parameter weq4 = 2'b00 ==? 2'b0x;
parameter weq5 = 2'b01 ==? 2'b0x;
parameter weq6 = 2'b0z ==? 2'b0x;
parameter weq7 = 2'b0x ==? 2'b0x;
parameter weq8 = 2'b00 ==? 2'b0z;
parameter weq9 = 2'b01 ==? 2'b0z;
parameter weqa = 2'b0z ==? 2'b0z;
parameter weqb = 2'b0x ==? 2'b0z;
parameter weqc = 2'bx0 ==? 2'b00;
parameter weqd = 2'bx1 ==? 2'b00;
parameter weqe = 2'b1x ==? 2'b00;
parameter weqf = 3'b100 ==? 2'b00;
parameter wneq1 = 2'b01 !=? 2'b01;
parameter wneq2 = 2'b01 !=? 2'b00;
parameter wneq3 = 2'b0x !=? 2'b00;
parameter wneq4 = 2'b00 !=? 2'b0x;
parameter wneq5 = 2'b01 !=? 2'b0x;
parameter wneq6 = 2'b0z !=? 2'b0x;
parameter wneq7 = 2'b0x !=? 2'b0x;
parameter wneq8 = 2'b00 !=? 2'b0z;
parameter wneq9 = 2'b01 !=? 2'b0z;
parameter wneqa = 2'b0z !=? 2'b0z;
parameter wneqb = 2'b0x !=? 2'b0z;
parameter wneqc = 2'bx0 !=? 2'b00;
parameter wneqd = 2'bx1 !=? 2'b00;
parameter wneqe = 2'b1x !=? 2'b00;
parameter wneqf = 3'b100 !=? 2'b00;
reg pass;
initial begin
pass = 1'b1;
if (weq1 !== 1'b1) begin
$display("Failed: parameter 2'b01 ==? 2'b01 returned 1'b%b not 1'b1", weq1);
pass = 1'b0;
end
if (weq2 !== 1'b0) begin
$display("Failed: parameter 2'b01 ==? 2'b00 returned 1'b%b not 1'b0", weq2);
pass = 1'b0;
end
if (weq3 !== 1'bx) begin
$display("Failed: parameter 2'b0x ==? 2'b00 returned 1'b%b not 1'bx", weq3);
pass = 1'b0;
end
if (weq4 !== 1'b1) begin
$display("Failed: parameter 2'b00 ==? 2'b0x returned 1'b%b not 1'b1", weq4);
pass = 1'b0;
end
if (weq5 !== 1'b1) begin
$display("Failed: parameter 2'b01 ==? 2'b0x returned 1'b%b not 1'b1", weq5);
pass = 1'b0;
end
if (weq6 !== 1'b1) begin
$display("Failed: parameter 2'b0x ==? 2'b0x returned 1'b%b not 1'b1", weq6);
pass = 1'b0;
end
if (weq7 !== 1'b1) begin
$display("Failed: parameter 2'b0z ==? 2'b0x returned 1'b%b not 1'b1", weq7);
pass = 1'b0;
end
if (weq8 !== 1'b1) begin
$display("Failed: parameter 2'b00 ==? 2'b0z returned 1'b%b not 1'b1", weq8);
pass = 1'b0;
end
if (weq9 !== 1'b1) begin
$display("Failed: parameter 2'b01 ==? 2'b0z returned 1'b%b not 1'b1", weq9);
pass = 1'b0;
end
if (weqa !== 1'b1) begin
$display("Failed: parameter 2'b0x ==? 2'b0z returned 1'b%b not 1'b1", weqa);
pass = 1'b0;
end
if (weqb !== 1'b1) begin
$display("Failed: parameter 2'b0z ==? 2'b0z returned 1'b%b not 1'b1", weqb);
pass = 1'b0;
end
if (weqc !== 1'bx) begin
$display("Failed: parameter 2'bx0 ==? 2'b00 returned 1'b%b not 1'bx", weqc);
pass = 1'b0;
end
if (weqd !== 1'b0) begin
$display("Failed: parameter 2'bx1 ==? 2'b00 returned 1'b%b not 1'b0", weqd);
pass = 1'b0;
end
if (weqe !== 1'b0) begin
$display("Failed: parameter 2'b1x ==? 2'b00 returned 1'b%b not 1'b0", weqe);
pass = 1'b0;
end
if (weqf !== 1'b0) begin
$display("Failed: parameter 3'b100 ==? 2'b00 returned 1'b%b not 1'b0", weqf);
pass = 1'b0;
end
if (wneq1 !== 1'b0) begin
$display("Failed: parameter 2'b01 !=? 2'b01 returned 1'b%b not 1'b0", wneq1);
pass = 1'b0;
end
if (wneq2 !== 1'b1) begin
$display("Failed: parameter 2'b01 !=? 2'b00 returned 1'b%b not 1'b1", wneq2);
pass = 1'b0;
end
if (wneq3 !== 1'bx) begin
$display("Failed: parameter 2'b0x !=? 2'b00 returned 1'b%b not 1'bx", wneq3);
pass = 1'b0;
end
if (wneq4 !== 1'b0) begin
$display("Failed: parameter 2'b00 !=? 2'b0x returned 1'b%b not 1'b0", wneq4);
pass = 1'b0;
end
if (wneq5 !== 1'b0) begin
$display("Failed: parameter 2'b01 !=? 2'b0x returned 1'b%b not 1'b0", wneq5);
pass = 1'b0;
end
if (wneq6 !== 1'b0) begin
$display("Failed: parameter 2'b0x !=? 2'b0x returned 1'b%b not 1'b0", wneq6);
pass = 1'b0;
end
if (wneq7 !== 1'b0) begin
$display("Failed: parameter 2'b0z !=? 2'b0x returned 1'b%b not 1'b0", wneq7);
pass = 1'b0;
end
if (wneq8 !== 1'b0) begin
$display("Failed: parameter 2'b00 !=? 2'b0z returned 1'b%b not 1'b0", wneq8);
pass = 1'b0;
end
if (wneq9 !== 1'b0) begin
$display("Failed: parameter 2'b01 !=? 2'b0z returned 1'b%b not 1'b0", wneq9);
pass = 1'b0;
end
if (wneqa !== 1'b0) begin
$display("Failed: parameter 2'b0x !=? 2'b0z returned 1'b%b not 1'b0", wneqa);
pass = 1'b0;
end
if (wneqb !== 1'b0) begin
$display("Failed: parameter 2'b0z !=? 2'b0z returned 1'b%b not 1'b0", wneqb);
pass = 1'b0;
end
if (wneqc !== 1'bx) begin
$display("Failed: parameter 2'bx0 !=? 2'b00 returned 1'b%b not 1'bx", wneqc);
pass = 1'b0;
end
if (wneqd !== 1'b1) begin
$display("Failed: parameter 2'bx1 !=? 2'b00 returned 1'b%b not 1'b1", wneqd);
pass = 1'b0;
end
if (wneqe !== 1'b1) begin
$display("Failed: parameter 2'b1x !=? 2'b00 returned 1'b%b not 1'b1", wneqe);
pass = 1'b0;
end
if (wneqf !== 1'b1) begin
$display("Failed: parameter 3'b100 !=? 2'b00 returned 1'b%b not 1'b1", wneqf);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule