iverilog/ivtest/ivltests/pr533.v

37 lines
915 B
Verilog

module example;
reg r, c, e;
reg [4:0] a, b;
wire d;
assign d = ( r | ( a == b ) ) ? 1'b0 : 1'b1;
// Change inputs at time n*100
initial begin
#100 r = 1'bx; a = 5'bxxxxx; b = 5'bxxxxx;
#100 r = 1'b1; a = 5'bxxxxx; b = 5'bxxxxx;
#100 r = 1'b1; a = 5'b00000; b = 5'b00000;
#100 r = 1'b0; a = 5'b00000; b = 5'b00000;
#100 $finish(0);
end
// Store c and e at time n*100 + 25.
// Note that the value assigned to c is exactly the same as
// the continuous assignment RHS for d (assigned to e).
initial #25 forever begin
#100
c = ( r | ( a == b ) ) ? 1'b0 : 1'b1;
e = d;
end
// Display all values at time n*100 + 50
initial #50 forever begin
#100
$display( "%b,%b,%b = ( %b | ( %b == %b ) ) ? 0 : 1",
c, d, e, r, a, b );
end
endmodule