case(din)
2'b00: dout <= 2'b00;
2'b01: dout <= 2'b01;
default: dout <= 2'b11;
endcase
在always@(posedge clk)块中,当din为2'bxx时,dout输出值为2'b11。如图:
注意:modelsim仿真在最开始处,rst_n有一个下降沿(rst_n初值为0)或上升沿(若rst_n初值为1)。
当din为2‘bzz时,dout输出值为2’b11。如图:
在always@(*)块中,当din为2'bxx时,dout输出值为2'bxx。如图:
当din为2‘bzz时,dout输出值为2‘b11。如图:
因而,在always@(*)块中,dout最好初始化。
dout = 2'b11;
case(din)
2'b00: dout = 2'b00;
2'b01: dout = 2'b01;
default: dout = 2'b11;
endcase
以上均为modelsim功能仿真结果,上板子之后的结果没有试过。
补充:如果没有default:则dout输出值为2'bxx,不管是在always@(posedge clk)块中还是在always@(*)块中。