blob: 8b07917acfaba6f1fb839daa6b03f90bd3cd9fd4 [file] [log] [blame]
module mcve(i_clk, i_value, o_value);
input wire i_clk;
input wire [1:0] i_value;
output reg [3:0] o_value;
initial o_value = 0;
always @(posedge i_clk)
case(i_value)
2'b00: begin end
`ifndef BUG
2'b01: o_value <= 4'h2;
`else
2'b01: o_value <= 4'h3;
`endif
2'b10: o_value <= 4'h4;
2'b11: o_value <= 4'h8;
default: o_value <= 4'h1;
endcase
always @(*)
case(o_value)
4'h0: begin end
4'h1: assert(o_value == 4'h1);
`ifndef BUG
4'h2: assert(o_value == 4'h2);
`else
4'h2: assert(o_value == 4'h3);
`endif
4'h4: assert(o_value == 4'h4);
4'h8: assert(o_value == 4'h8);
default: assert(0);
endcase
endmodule
module top (
input clk,
input [1:0] I,
output [3:0] O
);
mcve u_mcve (
.i_clk(clk),
.i_value(I),
.o_value(O)
);
endmodule