FPGA实验 计时器和倒计时的系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 计时器和倒计时的系统设计
一、实验目的
①掌握用Verilog HDL 文本输入法设计计时电路的方法,并通过电路仿真和硬件验证,进一步了解计时器的功能和特性。
②掌握用Verilog HDL 文本输入法设计倒计时电路的方法,并通过电路仿真和硬件验证,进一步了解倒计时电路的功能和特性。
二、实验原理
1. 计时器
24小时计时器的电路框图如图8.1所示。
图8.1 24 小时计时器的电路框图
24小时计时器由2个60进制加计数器和1个24进制加计数器构成,输入
CLK 为1Hz(秒)的时钟,经过60进制加计数后产生1分钟的进位时钟信号,再经过60进制加计数后产生1小时的进位时钟信号送给24进制加计数器进行加计数,当加计数到达23: 59: 59后,再来一个秒脉冲,产生时的进位输出。
将两个60进制加计数器和一个24进制加计数器的输出送数码管显示,得到计时器的显示结果。
其中,秒脉冲由EDA 实训仪上的20MHz 晶振分频得到。
2. 侧计时器
24小时倒计时器的电路框图如图8.2所示。
图8.2 24 小时倒计时器的电路框图
24小时倒计时器由2个60进制减计故器和1个24进制减计数器构成,输入CLK 为1Hz(秒)的时钟,经过60进制减计数后产生1分钟的借位时钟信号,再经过60进制减计数后产生1小时的借位时钟信号送给24进制减计数器进行减计数,当减计数到达00: 00: 00后,产生时的借位输出,同时24小时倒计时器停止倒计时,并发出提醒信号。
将两个60进制减计数器和一个24进制减计数器的输出送数码管显示,得到倒计时的显示结果。
其中,秒脉冲由EDA 实训仪上的20MHz 晶振分频得到。
三、实验设备
秒脉冲
①EDA实训仪1台。
②计算机1台(装有QuartusⅡ软件)。
四、实验内容
1. 计时器
在QurtusⅡ软件中,按照实验原理中24小时计时器的电路框图,用Verilog HDL编程设计计时器电路,然后进行编辑、编译(综合)、仿真,引脚的锁定,并下载到EDA实训仪中进行验证。
注:用EDA实训仪上的20MHz晶振作为计时器的时钟输入端,按键S8-S6分别作为计时器的校时、校分、校秒输入蹦,拨动开关S0作为计时器的清零输入端,拨动开关S1作为计时器的暂停输入端,用数码管SEG5-SEG0分别作为时、分、秒的输出端,用发光二极管L0作为进位输出端COUT。
2. 侧计时器
在QuartusⅡ软件中,按照实验原理中24小时倒计时器的电路框图,用Verilog HDL编程设计倒计时器电路,然后进行编辑、编译(综合)、仿真,引脚的锁定,并下载到EDA实训仪中进行验证。
注:用EDA实训仪上的20MHz晶振作为倒计时器的时钟输入端,按键S8-S6分别作为倒计时器的校时、校分、校秒输入端,拨动开关S0作为倒计时器的复位输入端,拨动开关S1作为倒计时器的暂停输入端,用数码管SEG5-SEG0分别作为时、分、秒的输出端,用发光二极管L0作为借位输出端COUT。
五、实验预习要求
①复习理论课本有关计数器及分频器的内容,并认真阅读实验指导书,分析、掌握实验原理,熟悉理论课本中QuartusⅡ软件的使用方法。
②按照实验内容的要求,编写相应的实验程序和画出相应的项层电路连线图,写出相应的实验步骤。
实验步骤如下:
1、建立工程文件jishiqi。
新建Verilog HDL文件编写60进制和24进制加减计时器;
2、建立波形仿真;
3、编译下载。
(1)源程序
(2)计时器逻辑电路原理图(3)引脚锁定图:
(2)实验结果截图如下:
六、实验总结
①总结用Verilog HDL进行分频器和计数器电路设计的方法。
此次实验为计时器。
Clk是秒时钟输入端;clmn是清除输入端,低电平有效。
Jm,jf,js 是校正秒,分,时的输入端。
下降沿有效,qm[7..0]、q([7..]、q[..]1分别是秒、分、时的输出端,当sel为1时,为计时器,当sel为0时,为到计时器。
Cout是脉冲输出端。
②对本次实验进行总结并完成思考题。
由仿真结果得知clrn为高电平时,输出为0。
当clrn为低电平时,sel为1时,qm[7..0]、f[7..0]进行从0到59加法计数;qs[7..0]进行从0到23加法计数。
sel为0的时候,qm[7..0]、qf[7..0]进行从0到59减法计数;qs[7..0]进行从0到23减法计数。
这次的实验在完成程序仿真调试过程中,出现了很多小问题,这些问题虽然简单,但真正解决起来还是比较棘手的。
例如,数码管显示时、分、秒的位置错乱,或者是某一位数码管不亮,后来发现原来是pin设置错误,为了解决这个问题,又重新设置pin。