自动打铃系统设计说明书—课程设计

上传人:人*** 文档编号:554971339 上传时间:2023-09-08 格式:DOC 页数:12 大小:1.83MB
返回 下载 相关 举报
自动打铃系统设计说明书—课程设计_第1页
第1页 / 共12页
自动打铃系统设计说明书—课程设计_第2页
第2页 / 共12页
自动打铃系统设计说明书—课程设计_第3页
第3页 / 共12页
自动打铃系统设计说明书—课程设计_第4页
第4页 / 共12页
自动打铃系统设计说明书—课程设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《自动打铃系统设计说明书—课程设计》由会员分享,可在线阅读,更多相关《自动打铃系统设计说明书—课程设计(12页珍藏版)》请在金锄头文库上搜索。

1、自动打铃系统设计说明书 学 生 姓 名: 学 号: 专 业 班 级: 报告提交日期:201 目录一、题目及要求简介31.设计题目32.总体要求简介3二、设计方案说明3三、系统采用器件以及模块说明31.系统框图42.选择的FPGA芯片及配置43.系统端口和模块说明5四、各部分仿真结果5五、调试及总结6六、参考文献7七、附录7 一、 题目及要求简介1、设计题目设计一个多功能自动打铃系统 2、总体要求简介 基本计时和显示功能(24小时制显示),包括: 1. 24小时制显示2. 动态扫描显示;3. 显示格式:88-88-88 能设置当前时间(含时、分) 能实现基本打铃功能,规定: 06:00起床铃,打

2、铃5s二、 设计方案说明本次设计主要采用Verilog HDL硬件描述性语言、分模块法设计的自动打铃系统。由于这次用的开发板提供的是50M晶振。首先要对时钟进行分频,当计时到2FA_F07F时完成1s分频,通过计时到60s产生分钟进位信号,再通过60分钟产生时钟进位信号。最后通过6个寄存器对时分秒进行锁存最终输出到8个数码管上完成显示。当显示时钟和默认闹钟时钟相等时,驱动打铃模块。通过key_mode,key_turn,key_change查看闹钟,时钟显示,调整时钟。三、 系统采用器件以及模块说明1.系统框图如下:系统框图如下:2.选择的FPGA芯片及配置:本次系统设计采用的FPGA芯片是A

3、lter公司生产的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_turn0为调整小时,1为调

4、整分钟。按键key_change每按一次加1(3)计时部分通过sec_L,sec_H,min_L,min_H,hour_L,hour_H 6个寄存器对时分秒进行锁存然后送入数码管显示(4) 闹钟模块当设定的闹钟时间和数码管上显示的时间相等时驱动闹钟,完成打铃,持续时间5s。 (5)数码管显示模块显示模块是由8个位选8个段选构成的显示模块,利用人眼的余晖效果完成动态扫描,显示时间。四、 各部分仿真结果测试文件如下:moduleclock_tb;regsysclk,rst_b;regkey_mode,key_turn,key_change;wirebuzzer;wire7:0led_sel,led

5、_data;clockI_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);initialbeginsysclk = 1b1;rst_b = 1b0;/复位信号#30rst_b = 1b1;endalways #10 sysclk = sysclk;/输入的系统时钟,20ns的周期endmodule五、 调试及总结本次课程设计总共花费了四天

6、左右的时间,设计了自动打铃系统。通过这次的设计更加熟悉了对EDA技术的了解和认识,在中也发现许多不足的地方。使用了自顶而下的设计方法,使得设计更加的简单和明了。在调试过程中,有些代码的设计不规范性,导致时序相当缓慢,甚至编译综合都会报错。在不断的修改下,发现时序电路和组合逻辑最好分开写,这样便于查错,和修改代码。毕竟Verilog HDL语言不同于C语言,不能以软件的思想来设计,而是要利用电路的思想来编程,这样可以更好的节省资源,使得时序也比较的简单明了。在以后的学习及程序设计当中,我们一定要倍加小心,在程序出现不正常运行的情况下要耐心调试,尽量做到精益求精。最后通过这次EDA方面的课程设计,

7、 提高了我们对EDA领域及通信电路设计领域的认识,有利于培养我们在通信电路EDA方面的设计能力。有利于锻炼我们独立分析问题和解决问题的能力。六、 文献参考1 . 王金明、左自强 编,EDA技术与Verilog设计科学出版社 2008.82 . 杜慧敏、李宥谋、赵全良 编,基于Verilog的FPGA设计基础 西安电子科技大学出版社 2006.23 . 韩彬 编,从零开始走进FPGA世界杭州无线电爱好者协会出版社 2011.8.20七、 附录(实物图及源码)moduleclock(/Input sysclk,rst_b,key_mode,key_change,key_turn, /Output

8、buzzer,led_sel,led_data );inputsysclk,rst_b;/sysclk-global system clock,rst_b-global reset signalinputkey_mode;/mode choose .0-Timing function.1-Alarm clock function.2-adjust functioninputkey_turn;/choose adjust minute or hourinputkey_change;/count add 1outputbuzzer;/device buzzeroutput7:0led_sel;/l

9、ed tube bit chooseoutput7:0led_data;/led_tube 8 bit data chooseparameterinit_hour = 8h12;parameterinit_min = 8h59;parameterinit_sec = 8h50;/initial time :12:59:50parameterinit_alarm_hour = 8h06;parameterinit_alarm_min = 8h30;/initial alarm time : 06:30:0parameterCount_1s = 28h2FA_F07F; /count time 1

10、s;reg7:0sec;reg7:0min;reg7:0hour;reg3:0min_L;/minute low 4 bitreg3:0min_H; /minute high 4 bitreg3:0hour_L;/hour low 4 bitreg3:0hour_H;/hour high 4 bitreg23:0key_time;/press key away shake regkey_mode_n;/press key_mode next stateregkey_change_n;/press key_change next state regkey_turn_n;/press key_tu

11、rn next statewirekey_mode_press;/sure Button press key_modewirekey_turn_press;/sure button press key_turnwirekey_change_press;/sure button press key_changealways (posedge sysclk )key_mode_n = key_mode;assignkey_mode_press = (!key_mode) & (key_mode_n);always (posedge sysclk )key_turn_n = key_turn;ass

12、ignkey_turn_press = (!key_turn) & (key_turn_n);always (posedge sysclk )key_change_n = key_change;assignkey_change_press = (!key_change) & (key_change_n);always (posedge sysclk or negedge rst_b)beginif(!rst_b) key_time = 24h0;else if(key_time != 24h0) key_time = key_time + 24h1;else if(key_time = 24h

13、0) & (key_mode_press | key_change_press | key_turn_press) key_time = key_time + 24h1;endreg1:0mode_num;/key mode .0-Timing function.1-Alarm clock function.2-adjust functionalways (posedge sysclk or negedge rst_b)beginif(!rst_b)mode_num = 2b00;else if(mode_num = 2h3)mode_num = 2h0;else if(key_mode_press & (key_time = 24h0)mode_num = mode_num + 2h1;endalways (*)beginif(mode_num = 2h1)beginmin = init_alarm_min;hour = init_alarm_hour;endelsebeginmin = min_H,min_L;hour = hour_H,hour_L;endendregfm;/choose turn hour or minu

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号