iverilog/ivtest/ivltests/pr1988310.v

47 lines
781 B
Verilog

module top;
localparam A = 0;
reg pass = 1'b1;
generate
if (A < 1) begin: gen
task foo_task;
reg x;
begin
x = 1'b0;
#10;
x = 1'b1;
end
endtask
end else begin: gen
task foo_task;
reg x;
begin
x = 1'b1;
#10;
x = 1'b0;
end
endtask
end
endgenerate
initial begin
gen.foo_task;
end
initial begin
#9
if (gen.foo_task.x !== 1'b0) begin
$display("Failed: expected 1'b0, got %b", gen.foo_task.x);
pass = 1'b0;
end
#2
if (gen.foo_task.x !== 1'b1) begin
$display("Failed: expected 1'b1, got %b", gen.foo_task.x);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule