基于BASYS3开发板Verilog的计时器实验

基于BASYS3开发板Verilog的计时器实验

因为Basys3开发板只有4位数码管,而且中间的那个冒号无法显示。所以我们做4位的时间显示,min:sec或者hour:min
然后我们如何去实现这个呢?首先需要利用系统时钟来计时,每秒或者每分钟变换一次,需要进位时进位,以及将数字显示出来。

1. 分频模块

因为时钟是动态的所以需要动态刷新,而人眼在每秒26帧以上时,会因为视觉暂留效应认为是连续变换的。也就是一个数码管至少一秒应该刷新26次以上,4位数码管至少应该是102Hz以上的刷新频率。
而BASYS3开发板的系统时钟的频率为50MHz或者100MHz。所以应该高频率的系统时钟分为低频的刷新时钟。而分频方式有2分频还有整数分频等方式。
这里使用整数分频,即系统时钟变换N次时,让输出脉冲变化一次。
注意:因为Verilog语言中 if 必须和 else 配对,不能只有if,不然会报错。

module clkdiv(
    input clk,
    input pau,
    input res,
    output reg clk100
    );
    parameter update_interval = 50000000 / 100 - 1;     
    integer selcnt;
    reg state; 
   always @(posedge clk,posedge pau,posedge res)  //100Hz
       begin
       if(res)
       begin
         state<=0;
 
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值