iverilog/ivtest/ivltests/pr1367855.v

48 lines
797 B
Verilog

// test.v program starts here
// This program is based on iverilog report [ 1367855 ] vvp simulation error
module test();
reg [3:0] S;
mux m( .SEL(S) );
initial begin
S=3; #100;
S=2; #100;
$display("PASSED");
$finish;
end
endmodule
module mux(SEL);
input [3:0] SEL;
wire [3:0] SEL;
integer offset;
always @(SEL) begin
offset = SEL[3] + SEL[0]*128 + SEL[2:1]*2;
$display("MUX: SEL=%d offset=%b", SEL, offset);
case (SEL)
'bxxxx: begin
end
2: if (offset !== 'b00000000000000000000000000000010) begin
$display("FAILED");
$finish;
end
3: if (offset !== 'b00000000000000000000000010000010) begin
$display("FAILED");
$finish;
end
default: begin
$display("FAILED -- SEL=%b", SEL);
$finish;
end
endcase
end
endmodule