iverilog/ivtest/ivltests/types1.v

42 lines
772 B
Verilog

/*
* This is a simplified version of the test program for issue 1323691
* from the iverilog bugs database.
*/
`timescale 1ns/1ns
module main;
parameter early_empty=1;
reg re;
reg rc_isEmpty, rc_willBeEmpty;
wire empty;
assign empty = (early_empty!=0) ?
rc_willBeEmpty && re || rc_isEmpty :
rc_isEmpty;
initial begin
rc_isEmpty <= 1'bx;
rc_willBeEmpty <= 1'b1;
re <= 1'b0;
rc_isEmpty <= 1'b0;
#1 if (empty !== 1'b0) begin
$display("FAILED -- empty == %b (s.b. 0)", empty);
$finish;
end
rc_isEmpty <= 1;
#1 if (empty !== 1'b1) begin
$display("FAILED -- empty == %b (s.b. 1)", empty);
$finish;
end
$display("PASSED");
end
endmodule