verilog数字钟设计fpga资料

上传人:E**** 文档编号:94907569 上传时间:2019-08-13 格式:DOC 页数:14 大小:70KB
返回 下载 相关 举报
verilog数字钟设计fpga资料_第1页
第1页 / 共14页
verilog数字钟设计fpga资料_第2页
第2页 / 共14页
verilog数字钟设计fpga资料_第3页
第3页 / 共14页
verilog数字钟设计fpga资料_第4页
第4页 / 共14页
verilog数字钟设计fpga资料_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《verilog数字钟设计fpga资料》由会员分享,可在线阅读,更多相关《verilog数字钟设计fpga资料(14页珍藏版)》请在金锄头文库上搜索。

1、1、 课程设计目标 1. 熟悉并掌握verilog 硬件描述语言2. 熟悉quartus 软件开发环境3. 学会设计大中规模的数字电路,并领会其中的设计思想 二、课程设计实现的功能(1) 设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2) 可以调节小时,分钟。(3) 能够进行24小时和12小时的显示切换。(4) 可以设置任意时刻闹钟,并且有开关闹钟功能。(5) 有整点报时功能,几点钟LED灯闪亮几下。(6) 有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。3、 设计原理:1、总原理框图:译码显示模块切换12进制显示复位分钟校正小时校正分频模块计数模块是输出整点报时信

2、号到达整点输出闹钟信号是否到闹钟时间设置闹钟分钟设置闹钟小时模式选择模块是 附全部代码:总模块:module clock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signal,nao_signal); input clk;/50MHz input reset,MODE,Alarm_ctr,BT2,H12_24;/复位键,模式选择按钮,闹钟开关档,调节按 钮 ,1224小时切换档 output 7:0DMH,DML,DHH,DHL; /4个数码管显示输入信号 output dian,bao_sign

3、al,nao_signal; /时分间隔点,报时信号,闹钟信号 output 3:0DSH,DSL; /秒钟输出信号 wire 3:0 SH,SL,MH,ML,HH,HL; wire 3:0 LED_mode; wire 3:0 HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24; wire 3:0 set_HH,set_HL,set_MH,set_ML; wire _1HZ,_10ms,_250ms,_500ms; wire Keydone1; wire Keydone2; wire co1,co11,co111,co2,co22,co222,set_co2; w

4、ire 3:0mode_flag; assign dian=1b0; devide_f u1(_1HZ,_10ms,_250ms,_500ms,reset,clk); /分频,得到4种不同频率的时钟信号key_press u2(_10ms,MODE,Keydone1); /模式档按钮去抖动key_press u20(_10ms,BT2,Keydone2); /调节按钮去除抖动mode u3(Keydone1,mode_flag); /通过模式按钮产生不同模式second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1); /秒计时minute u5

5、(co11,reset,MH24,ML24,co2); /分计时hour u6(co22,reset,HH24,HL24); /小时计时 SEG7_LUT u7(DML,ML); /4个数码管显示SEG7_LUT u8(DMH,MH);SEG7_LUT u9(DHL,HL);SEG7_LUT u10(DHH,HH);display_LED u11(DSL,SL); /LED灯显示秒或模式灯display_LED u12(DSH,SH);mode_choose u13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222)

6、; /选择模式进行不同操作 hour12_24 u14(HH24,HL24,HH12,HL12); /12-24小时切换boshi u15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal); /整点报时set_naozhong u16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2); /设置闹钟时间Naozhong u17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal); /任意闹钟响应LUT_mode u18(mode

7、_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML,MH,ML,HH,HL);/通过模式选择数码管显示 LED_mode u19(mode_flag,SH24,SL24,SH,SL); 模式选择LED灯显示Endmodule分频模块 :分频模块的作用主要是要获得各种频率的时钟信号。输入信号为50MHZ的信号,要想获得1HZ的信号作为秒脉冲计时,则要对50MHZ信号分频。通过计数的方式,当计数从0开始到24 999999时,1HZ信号取反一次,计数又从0开始,如此循环,就可以得到1HZ脉冲信号。对于其他信号

8、也是如此,只是计数值不一样,得到的分频信号不同。module devide_f(_1HZ,_10ms,_250ms,_500ms,nCR,_50MHZ); input _50MHZ,nCR; output _1HZ,_10ms,_250ms,_500ms; reg _1HZ,_10ms,_250ms,_500ms; reg31:0Q1,Q2,Q3,Q4; always(posedge _50MHZ or negedge nCR)begin if(nCR) begin Q1=32d0; Q2=32d0; Q3=32d0; Q4=32d24999999) begin Q1=32d249999) b

9、egin Q2=32d6299999) begin Q4=32d12499999) begin Q3=32d0; _500ms=_500ms; end else begin Q1=Q1+1d1; Q2=Q2+1d1; Q3=Q3+1d1; Q4=Q4+1d1; end end endmodule计时模块: 秒计数:在1HZ脉冲下进行秒计时,当计时达到59秒后,在下一个脉冲来临变0,并发出一个脉冲信号,可供下面分钟计数作为输入脉冲信号计时。分钟计数:在输入脉冲下,分钟开始计时,当计时达到59后,在下一个脉冲来临变0,并发出一个脉冲,供小时计数的输入脉冲新号。小时计数:脉冲信号来临时,计数加1,达

10、到23后在下一个脉冲的作用下清零,从新计时。如果有复位信号,则时分秒全部清零。module second(cp,reset,mode_flag,BT2,SH,SL,co);input cp,reset,BT2;input3:0mode_flag;output co=1b0;reg co;output 3:0SL,SH;reg3:0SH,SL;reg7:0cnt;always(posedge cp or negedge reset )beginif(!reset) begin SL=4b0;SH=4b0;cnt=8b0;endelse if(mode_flag=4b0010)&(!BT2) be

11、gin SL=4b0;SH=4b0;cnt=8b0;endelsebegin if(cnt=8d59) begin cnt=8d0; SH=4d0; SL=4d0; co=1b1; end else begin co=1b0; cnt=cnt+8d1; SL=cnt%10; SH=cnt/10; end end end endmodule module minute (cp,reset,MH,ML,co);input cp ,reset;output co=1b0;output 3:0ML,MH;reg3:0MH,ML;reg7:0cnt;reg co;always(posedge cp or negedge reset)beginif(!reset) begin ML=4b0;MH=4b0;cnt=8b0;endelsebegin if(cnt=8d59) begin cnt=8d0; MH=4d0; ML=4d0; co=1b1; end else begin co=1b0; cnt=cnt+8d1; ML=cnt%10; MH=cnt/10; end end end endmodule modul

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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