一、设计定义
- 有一个LED,每500ms,状态翻转一次,LED亮灭一次,周期为1s。
- 由于FPGA中所使用的时钟是50MHz或100MHz,若想得到500ms,就需要对系统时钟进行计数。
- 系统时钟为50MHz,对应周期为20ns。
- 计数的次数:N=500ms/20ns=500_000_000ns/20ns=25_000_000次。
- 位宽计算:由于
,且
,所以位宽应该为5+20=25。
二、程序编写
- counter.v程序
module counter(Clk50M,Rst_n,led)
input Clk50M; //系统时钟,50MHz
input Rst_n; //全局复位,低电平复位
output led; //led输出
reg [24:0] cnt; //定义计数器寄存器
/