文档详情

多功能数字钟的FPGA实现.doc

发布:2017-06-12约1.99万字共31页下载文档
文本预览下载声明
可编程逻辑器件电路设计 课程设计报告 多功能数字钟的FPGA实现 姓 名: 班 级: 学 号: 指导老师: 日期: 2012.12.03~2012.12.12 华南农业大学工程学院 摘 要 FPGA( Field Programmable Gate Array,现场可编程门阵列),是20 世纪70 年代发展起来的一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。它是在PAL、GAL、CPLD等可编程件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 1.方案比较与选择 2 2.底层文件仿真与分析 3 2.1 二选数据选择器模块 3 2.2 1024分频器 3 2.3 24进制计数器模块 4 2.4 60进制计数器模块 4 2.5 10进制转BCD模块 5 2.6 BCD转LED显示码 5 2.7 数码管动态扫描模块 6 3.顶层文件仿真与分析 7 4.硬件验证分析 8 5.课程设计心得 9 参考文献 11 附录(源代码) 12 1.方案比较与选择 方案一:系统用1HZ脉冲作为时钟输入信号。数码管采用静态显示。用具有预置功能的计数器来调整时间。报时为频率512Hz脉冲,并引入1024Hz脉冲进行整点报时。 方案二:系统直接采用1024HZ脉冲作为时钟输入信号。用动态扫描的方式在数码管上显示时间。再用数据选择器来调整时间。用一个按键作为控制端,当按下按键时,选择比较高的频率作为输入信号,加快计数的速度,来达到时间调整的目的。 方案比较:对于方案一,因为系统需要1024Hz和512Hz的脉冲驱动蜂鸣器,并且在快速调整时间是也需要比1Hz快的脉冲,故需要采用另外的脉冲输入,增加外部资源和管脚的开支;数码管的静态显示同样会增加管脚的分配。实现有预置功能的计数器比较复杂,并且需要预置多个输入端端口。对于方案二,因为采用1024Hz的脉冲,能够通过分频直接得到多种频率的脉冲,达到了通过实现单一脉冲信号输入即可完成快速调整时间的目的,对数码管采用动态扫描显示,节省管脚的分配和外部资源。 综上所述,故采用方案二。 2.底层文件仿真与分析 (对所编写的代码进行软件仿真,记录仿真的步骤与出现的结果,要有仿真波形图与仿真分析,题图要明确,全文宋体,小四号,1.5倍行距) 2.1 二选数据选择器模块 图一 数据选择器仿真波形 2.2 1024分频器 本多功能数字钟系统采用的是1024HZ的频率源,通过此分频器输出1HZ频率作为秒信号。同理可产生4Hz和 512Hz的频率。 图二 1024分频器仿真波形 2.3 24进制计数器模块 图三 24进制仿真计数器 2.4 60进制计数器模块 通过这个模块产生以60为周期的计数器来模仿秒和分,向分和时产生进位。 图四 60进制计数器仿真波形 2.5 10进制转BCD模块 通过此模块将计数器产生的10进制信号转换为二进制的BCD码供其他模块使用 图五 10进制转BCD仿真波形 2.6 BCD转LED显示码 通过此模块将对应的时、分、秒转换为数码管的对应码值在数码管上显示。 图六 BCD转LED显示仿真波形 2.7 数码管动态扫描模块 能过此模块,运用138译码器对数码管进行快速扫描将数值显示出来。 图七 数码管动态扫描仿真波形 3.顶层文件仿真与分析 顶层文件将各模块整合在一起实现数字钟功能,clk为1024HZ外部频率源,speak为蜂鸣器输出端(本系统已改为接到LED彩灯上),通过key0,key1,key2可分别调节秒,分,时,rst为清零端,seg4是数码管的段选端口。 图八 顶层文件仿真波形 4.硬件验证分析 将各模块文件进行编译并在maxplus2上进行相应选项的设置,分配好各引脚,将程序下载到FPGA上进行调试,以和个功能行测试,看是否符合课程设计要求,若现象不正确则对程序进行修改,再次进行调试。 我们进行了1小时30分的实际测试,测试结果误差为0.2秒,我们分析是因为硬件问题产生延时,频率源和电路本身都可能存在产生误差的延时,加上实验箱和对照时间的启动不可能做到准确同时。 表1 多功能数字钟的FPGA管脚分配 Node Name Direction Location clk Input Pin=84 key0 Input Pin=21 key1 Input Pin=22 Key2 Input Pin=23 rst Input Pin=29 seg40 Output Pin=5 s
显示全部
相似文档