以下是一个7段译码器的测试程序:
module tb_bin27seg;
reg [3:0] din;
wire [6:0] dout;
wire en=1;
bin27seg tb(din, en, dout);
assign en=1;
assign #35 en=0;
always
begin
if(din<=4'b1111)
#4 din<=din+1;
else
din<=4'b0;
end
endmodule
仿真的时候en的值是“X”,为什么?是不是assign不能用作数值赋值?困扰……
谢谢你的回答,搞吓米飞机!嗯,我是初学的,这个测试程序我自己也会改正,我不明白的是为什么assign不能这样用呢?你的程序好详细啊,应该是这行的工程师了。
请问为什么要写成这样,有什么好处?
always #4 Clk=~Clk;
always@(posedge clk)
路人花小白,我知道以上两句的意思,但不明白有什么好处?
#4 din<=din+1;这种写法是我参考过一些教程提供的例子,它们也这样写。或者always #4 clk=~clk这种产生时钟的写法更易理解吧,用时钟源去驱动下面的仿真代码。