iverilog/ivtest/ivltests/casesynth7.v

31 lines
605 B
Verilog

// Incomplete case statements in asynchronous logic are dangerous in
// synthesisable code, as in real hardware the inferred latch will be
// sensitive to glitches as the case select value changes. Check that
// the compiler outputs a warning for this.
module mux(
input wire [2:0] sel,
input wire [2:0] i1,
input wire [2:0] i2,
input wire [2:0] i3,
input wire [2:0] i4,
output reg [2:0] o
);
(* ivl_synthesis_on *)
always @* begin
case (sel)
0 : o = 0;
1 : o = i1;
2 : o = i2;
3 : o = i3;
4 : o = i4;
endcase
end
(* ivl_synthesis_off *)
initial $display("PASSED");
endmodule