基于 FPGA 的 Verilog HDL 语言数字钟(含秒表)设计
最近利用 Xilinx 的开发板做了一个基于 FPGA 的 Verilog HDL 语言数字钟(含秒表)设计
一、 功能说明
已完成功能:
1. 时钟功能:完成分/时的正确计数并显示,秒由于数码管数目的限制,采取发光二极
管做提示;
2. 闹钟定时:实现定时提醒及定时报时,利用二极管发光代替扬声器发出报时声音;
3. 时钟校时:当认为时钟不准确时,可以分别对分/时钟进行调整;
4. 秒表功能:利用 4 个数码管完成秒表显示:A、精度达 100ms;B、可以清零;C、可
暂停,并可随时记时、暂停后记录数据,最大计时为 999.9s。
待改进功能:
闹铃不能报时 00:00。
二、 设计方案
时钟模块:
作用:实现时钟,时间校时,闹铃定时,秒表计时功能
方案:50MHz 分频到 1Hz(用于时钟)和 10Hz(用于秒表计时)。
选择:用于选择此时数码管显示的时哪个状态,mode=00 时为普通时钟状态,mode=01
时为闹铃定时状态,mode=10 时为时钟校时状态,mode=11 时为秒表计时状态;
时钟:利用 count,smin0,smin1,shour0,shour1 的计数来实现,具体情况见程序;
校时:当 turn=1 时,调整分位;当 turn=0 时,调整小时位;
闹铃:当 turn=1 时,调整分位;当 turn=0 时,调整小时位;
秒表:当 pause=0 时,开始计时;当 pause=1 时,暂停;
附带码:
分频模块:fdiv.v
fdiv_ms.v
时钟模块:clock.v
显示模块:
作用:显示时钟的小时(两位),分钟(两位)
器件:4 位 7 段共阳数码管
方案:扫描输出
【1】4 位 7 段共阳数码管管脚说明:
7 个段控制端口:a,b,c,d,e,f,g,决定每位数码管显示的数字
4 个位控制端口:决定显示哪一位数码管
1 个公共的引脚,接 VCC
【2】方案设计:
使用同步扫描电路,对 4 个位控制端口进行扫描,使得同一个时刻只有一个数码管亮,每
隔 0.5ms 扫描一次,由于眼睛的视觉停留效应,会使得显示结果达到 4 位同时亮的效果。这
样可以节省 3/4 的电能消耗。
代码设计:
评论10