下面是我们老师写的一段程序,实现计数功能
module mycount(clk,count);
input clk;
output[31:0]count;
reg[31:0]count;
always@(posedge clk)
count<=count+1;
endmodule
上面count并没有赋初值,那么count+1怎么给count?
count32位计满又会如何?
用这个实现流水灯却没有任何问题,但是两个问题又一直困扰我,希望懂的人帮我解释一下!
FPGA内的寄存器,如果不赋初值,默认为0;
但是在仿真软件中(如modelsim),寄存器如果不赋初值,默认为不定态(x),仿真是无法进行的,count+1仍然为x,你就会看到count一直是红色的,没有结果;
之所以实现流水灯没有问题,是因为你下载到FPGA内部了,count被默认为32'b0,如果程序要下载到FPGA中,而且你希望count的初值是0的时候,是可以不赋初值的,FPGA上电后,寄存器默认为0;
count计满后,值会变成0。
希望我的回答能帮到你!
那么我设置为count-1,当count减为0时count会自动补满吗?