case
case (<expression>)
case_item1 : <single statement>
case_item2,
case_item3 : <single statement>
case_item4 : begin
<multiple statements>
end
default : <statement>
endcasemodule mux_(input [2:0] a, b, c, input [1:0] sel, output reg [2:0] out);
always @(*) begin
case(sel)
2'b00 : out = a;
2'b01 : out = b;
2'b10 : out = c;
2'bz : out = 3'bz;
2'bx : out = 3'bx;
default : out = 0;
endcase
end
endmodule
module case_tb;
reg [2:0] aa, bb, cc, d;
reg [1:0] sel;
mux_ mux(aa, bb, cc, sel, d);
initial begin
$display("Time\t a \t b \t c \tout\tsel");
$monitor("[%2t]\t%b\t%b\t%b\t%b\t%b", $time, aa, bb, cc, d, sel);
#10 bb = 0; cc = 1;
#10 sel = 0;
#10 aa = 1;
#10 sel = 1;
#10 sel = 2;
#10 cc = 2'bz;
#10 sel = 5;
#10 sel = 2;
#10 sel = 2'bz;
#10 sel = 2'bx;
end
endmodulecasex/casez
casex/casezРезультат исполнения case
Результат исполнения casex
Результат исполнения casez
unique/priority
unique/priorityLast updated