iverilog/ivtest/ivltests/pr1570451.v

48 lines
903 B
Verilog

module test;
reg [1:0] bus;
reg [1:0] skewed_bus;
integer delay0; initial delay0 = 5;
integer delay1; initial delay1 = 10;
/* attempt to model skew across the bus using transport delays */
always @( bus[0] )
begin
skewed_bus[0] <= #delay0 bus[0];
end
always @( bus[1] )
begin
skewed_bus[1] <= #delay1 bus[1];
end
initial begin
#1 bus = 2'b00;
#11 if (skewed_bus !== 2'b00) begin
$display("FAILED -- setup failed.");
$finish;
end
bus = 2'b11;
#4 if (skewed_bus !== 2'b00) begin
$display("FAILED -- changed far too soon");
$finish;
end
#2 if (skewed_bus !== 2'b01) begin
$display("FAILED -- partial change not right.");
$finish;
end
#5 if (skewed_bus !== 2'b11) begin
$display("FAILED -- final change not right");
$finish;
end
$display("PASSED");
end
endmodule