verilog练习三:计数器

一、设计定义

  • 有一个LED,每500ms,状态翻转一次,LED亮灭一次,周期为1s。
  • 由于FPGA中所使用的时钟是50MHz或100MHz,若想得到500ms,就需要对系统时钟进行计数。
  • 系统时钟为50MHz,对应周期为20ns。
  • 计数的次数:N=500ms/20ns=500_000_000ns/20ns=25_000_000次。
  • 位宽计算:由于250000000=25\times 1000\times 1000< 25\times 2^{10}\times 2^{10}=25\times 2^{20},且   2^{4}=16<25<32=2^{5},所以位宽应该为5+20=25。

二、程序编写

  1. counter.v程序

module counter(Clk50M,Rst_n,led)
  input Clk50M; //系统时钟,50MHz
  input Rst_n;  //全局复位,低电平复位
  output led;   //led输出
  reg [24:0] cnt; //定义计数器寄存器
/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值