- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自动打铃系统设说明书—课程设计
自动打铃系统设计说明书
学 生 姓 名:
学 号:
专 业 班 级:
报告提交日期:201
目录
一、题目及要求简介……………3
1.设计题目…………………3
2.总体要求简介……………3
二、设计方案说明……………3
三、系统采用器件以及模块说明………3
1.系统框图…………4
2.选择的FPGA芯片及配置………4
3.系统端口和模块说明…………5
四、各部分仿真结果………5
五、调试及总结………6
六、参考文献……7
七、附录………7
题目及要求简介
1、设计题目
设计一个多功能自动打铃系统
2、总体要求简介
① 基本计时和显示功能(24小时制显示),包括: 1. 24小时制显示
2. 动态扫描显示;
3. 显示格式:88-88-88
② 能设置当前时间(含时、分)
③ 能实现基本打铃功能,规定:
06:00起床铃,打铃5s
设计方案说明
本次设计主要采用Verilog HDL硬件描述性语言、分模块法设计的自动打铃系统。由于这次用的开发板提供的是50M晶振。首先要对时钟进行分频,当计时到2FA_F07F时完成1s分频,通过计时到60s产生分钟进位信号,再通过60分钟产生时钟进位信号。最后通过6个寄存器对时分秒进行锁存最终输出到8个数码管上完成显示。当显示时钟和默认闹钟时钟相等时,驱动打铃模块。通过key_mode,key_turn,key_change查看闹钟,时钟显示,调整时钟。
系统采用器件以及模块说明
1.系统框图如下:
系统框图如下:
2.选择的FPGA芯片及配置:本次系统设计采用的FPGA芯片是Alter公司生产的Cyclone II EP2C8Q208C8。该芯片是208个管脚,138个IO,并且具有两个内部PLL,而且内嵌乘法器,8K的逻辑门,资源相当丰富。完成这次自动打铃系统的设计总共消耗250个LE单元,22个IO口,131个寄存器。经过综合后,本系统最高能实现145M的运行速度。通过Quartus II 软件观察到内部的RTL图如下
3.系统端口和模块说明
(1)分频部分
分频器的作用是对50Mhz的系统时钟信号进行分频,得到频率为1hz的信号,即为1S的计时信号。
(2)按键部分
按键key_mode--0为显示计时,1为闹钟显示,2为调整时间。
按键key_turn—0为调整小时,1为调整分钟。
按键key_change—每按一次加1
(3)计时部分
通过sec_L,sec_H,min_L,min_H,hour_L,hour_H 6个寄存器对时分秒进行锁存然后送入数码管显示
闹钟模块
当设定的闹钟时间和数码管上显示的时间相等时驱动闹钟,完成打铃,持续时间5s。
(5)数码管显示模块
显示模块是由8个位选8个段选构成的显示模块,利用人眼的余晖效果完成动态扫描,显示时间。
各部分仿真结果
测试文件如下:
module clock_tb;
reg sysclk,rst_b;
reg key_mode,key_turn,key_change;
wire buzzer;
wire [7:0] led_sel,led_data;
clock I_clock(
.sysclk (sysclk),.rst_b (rst_b),.key_mode (key_mode),
.key_change (key_change),.key_turn (key_turn),.buzzer (buzzer),.led_sel (led_sel),.led_data (led_data));
initial
begin
sysclk = 1b1;
rst_b = 1b0; //复位信号
#30
rst_b = 1b1;
end
always #10 sysclk = ~sysclk; //输入的系统时钟,20ns的周期
endmodule
调试及总结
本次课程设计总共花费了四天左右的时间,设计了自动打铃系统。通过这次的设计更加熟悉了对EDA技术的了解和认识,在中也发现许多不足的地方。使用了自顶而下的设计方法,使得设计更加的简单和明了。在调试过程中,有些代码的设计不规范性,导致时序相当缓慢,甚至编译综合都会报错。在不断的修改下,发现时序电路和组合逻
文档评论(0)