iverilog/ivtest/ivltests/blocking_repeat_ec.v

42 lines
919 B
Coq
Raw Normal View History

module top;
reg pass = 1'b1;
integer count;
reg clk = 0, in = 0;
reg result;
always #10 clk = ~clk;
always #20 in = ~in;
initial begin
count = 3;
result = repeat(count) @(posedge clk) in;
if ($simtime != 30 && result != 1'b0) begin
$display("Failed blocking repeat(3) at %0t, expected 1'b0, got %b",
$simtime, result);
pass = 1'b0;
end
#15;
count = 0;
result = repeat(count) @(posedge clk) in;
if ($simtime != 45 && result != 1'b1) begin
$display("Failed blocking repeat(0) at %0t, expected 1'b1, got %b",
$simtime, result);
pass = 1'b0;
end
#20;
count = -1;
result = repeat(count) @(posedge clk) in;
if ($simtime != 55 && result != 1'b0) begin
$display("Failed blocking repeat(0) at %0t, expected 1'b0, got %b",
$simtime, result);
pass = 1'b0;
end
if (pass) $display("PASSED");
$finish;
end
endmodule