mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-09-08 04:20:49 +02:00
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.
191 lines
5.3 KiB
Verilog
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
|