1、语法说明
2、案例解析
always@(*)
begin
case(sel[1:0])
2'b00: data1 = 3'd0 ;
2'b01: data1 = 3'd1 ;
2'b10: data1 = 3'd2 ;
2'b11: data1 = 3'd3 ;
2'b1z: data1 = 3'd4 ;
2'b1x: data1 = 3'd5 ;
default: data1 = 3'd7 ;
endcase
end
always@(*)
begin
casez(sel[1:0])
2'b00: data2 = 3'd0 ;
2'b01: data2 = 3'd1 ;
2'b10: data2 = 3'd2 ;
2'b11: data2 = 3'd3 ;
2'b1z: data2 = 3'd4 ;
2'b1x: data2 = 3'd5 ;
default: data2 = 3'd7 ;
endcase
end
always@(*)
begin
casex(sel[1:0])
2'b00: data3 = 3'd0 ;
2'b01: data3 = 3'd1 ;
2'b10: data3 = 3'd2 ;
2'b11: data3 = 3'd3 ;
2'b1z: data3 = 3'd4 ;
2'b1x: data3 = 3'd5 ;
default: data3 = 3'd7 ;
endcase
end
always@(*)
begin
casez(sel[1:0])
2'b00: data4 = 3'd0 ;
2'b01: data4 = 3'd1 ;
2'b10: data4 = 3'd2 ;
2'b11: data4 = 3'd3 ;
2'b1?: data4 = 3'd4 ;
2'b1x: data4 = 3'd5 ;
default: data4 = 3'd7 ;
endcase
end
always@(*)
begin
casex(sel[1:0])
2'b00: data5 = 3'd0 ;
2'b01: data5 = 3'd1 ;
2'b10: data5 = 3'd2 ;
2'b11: data5 = 3'd3 ;
2'b1?: data5 = 3'd4 ;
2'b1x: data5 = 3'd5 ;
default: data5 = 3'd7 ;
endcase
end
3、Do-not-care values 参考说明
SystemVerilog(IEEE Std 1800-2017)和verilog(IEEE P1364-2005)标准关于casez、casex的描述是一致的:截图如下:
End