




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学士学位论文 论文题目: 基于FPGA的数字钟的设计 院(部)名 称: 电气信息工程学院 学 生 姓 名: 专 业: 测控技术与仪器 学 号: 指导教师姓名: 论文提交时间: 2012年4月 25 日 论文答辩时间: 2010年5月 6 日 学位授予时间: 摘 要本设计为一个多功能的数字钟,具有时间日期显示功能,以24小时循环计数;具有校时、跑表以及任意时刻闹钟功能。本设计采用EDA技术,以硬件描述语言VerilogHDL为系统逻辑描述手段设计文件,在Quartus ii工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。系统主要由主分频模块、控制模块、时间及其设置模块、时间显示动态位选模块、显示模块、秒表模块、日期显示与设置模块、闹钟模块等8个模块组成。本系统能够完成日期和时间的分别显示,由按键输入进行数字钟的校时、清零、启停功能。关键词:数字钟,硬件描述语言,VerilogHDL,FPGAABSTRACTThis design for a multi-function digital clock, with time date to show the function to 24 hours cycle count; When PaoBiao and, with the alarm clock function at any time.The use of EDA design technology, hardware-description language VerilogHDL description logic means for the system design documents, in Quartus ii tools environment, a top-down design, by the various modules together build a FPGA-based digital clock.System mainly by the main points frequency module, control module, time and set module, time display dynamic a choose module, display module, a stopwatch module, date display and set module, alarm clock module eight modules. This system can finish date and time display respectively, the key of input of the digital clock, reset, and when the1 stop function.Keywords :digital clock, hardware description language, VerilogHDL, FPGA目 录第一章 前 言11.1 选题的目的、意义11.2 课题研究的内容2第二章 系统总体设计方案32.1 数字钟的顶层电路32.2 数字钟的工作原理4第三章 单元电路设计63.1 分频模块(fidv)63.2 时钟主控制模块(maincontrol)93.3 时间及其设置模块(time_auto_and_set)133.3.1 时间计数模块(timepiece_main)133.3.2 时间设置模块(timeset)153.3.3 时间数据多路选择模块(time_mux)173.4 时间显示动态位选模块(time_disp_select)183.5 显示模块(disp_data_mux)213.6 跑表模块(stopwatch)263.7 日期显示与设置模块(date_main)273.7.1 日期自动工作模块(autodate)283.7.2 日期设置模块(setdate)293.7.3 日期控制模块(datecontrol)293.8 闹钟模块(alarmclock)29第四章 总结与展望364.1 总结364.2 展望36致谢37参考文献38附录一 英文原文39附录二 中文翻译49I北方民族大学学士学位论文 基于FPGA的电子钟的设计第一章 前 言1.1 选题的目的、意义现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。而可编程逻辑器件(如CPLD、FPGA)的应用普及,为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展1-4。本设计采用的VerilogHDL是目前应用最为广泛的硬件描述语言,能支持算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述;Verilog HDL进行设计最大的优点是其工艺无关性,这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点5-10。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础的。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求,因此研究数字钟以及扩大其应用有着非常现实的意义11-12。1.2 课题研究的内容本设计主要研究基于FPGA的数字钟,要求时间可以24小时制或12小时制,显示时间和日期。具有校时以及整点报时、任意时刻闹钟、跑表等功能,可以对时间及日期进行单独校对,使其校正到标准时间。第二章 系统总体设计方案2.1 数字钟的顶层电路将各个主模块综合成数字钟系统,其包括:fidv分频模块,maintrol时钟主控制模块,time_auto_and_set时间及其设置模块,time_disp_select时间显示动态位选模块,disp_data_mux显示模块,stopwatch跑表模块,date_main日期显示与设置模块及 alarmclock闹钟模块,该系统顶层电路Top如图2-1所示。图2-1 数字钟顶层电路图2.2 数字钟的工作原理图2-2 数字钟整体框图功能键SW3用来选择不同的工作模式:时间正常显示功能、时间调整与显示、秒表功能、闹钟设置与查看、日期显示、日期调整与设置。调整键SW1:主要用于闹钟设置、日期显示与调整、秒表、时间调整与设置中的位置选择按钮,与功能键配合使用。2号键功能模式,即时间调整与设置时,用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于在特定位置进行调整;4号键功能模式,即闹钟设置与查看时,同样用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于在特定位置进行调整;6号键功能模式,即日期调整与设置时,用作月、日的移位,按一下,将会实现“月-日”的依次移位,便于在特定位置进行调整。调整键SW2:主要用于闹钟设置、日期显示与调整、秒表、时间调整与设置中的调整按钮,与功能键配合使用。2号键功能模式,即时间调整与设置时,用作时、分、秒的调整,按一下,将会使得当前调整键1选择的位置数字增加1;4号键功能模式,即闹钟设置与查看时,同样用作时、分、秒的调整,按一下,将会使得当前调整键1选择的位置数字增加1;6号键功能模式,即日期调整与设置时,用作月、日的移位,按一下,将会使得当前调整键1选择的位置数字增加1。分频电路将1KHZ的输入信号分频为1HZ的计时模块信号源、60HZ的信号跑表基准时钟信号源和200HZ的数码管动态显示扫描频率。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器满24后向日期进位。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示。计时出现误差时,可以用时间设置和日期设置电路调整时间和日期。在控制信号中除了一般的校时信号外,还有自动走时使能信号。控制信号由按键输入。显示由数码管完成。第三章 单元电路设计3.1 分频模块(fidv)该模块完成全局时钟信号分频输出200Hz、60Hz、1Hz的三种时钟信号。分频电路的流程图如图3-1所示,逻辑框图如图3-2所示。仿真波形图如图3-3所示。图 3-1 分频电路流程图图3-2 分频电路模块逻辑框图该电路的VerilogHDL程序如下:module fdiv(clk,f200hz,f60hz,f1hz);output f200hz,f60hz,f1hz;input clk; /1KHz input reg f200hz,f60hz,f1hz;integer CNT1=0,CNT2=0,CNT3=0; always (posedge clk)begin if(CNT1 4) beginCNT1 = CNT1 + 1;f200hz = 1b0; end else begin CNT1 = 0; f200hz = 1b1; end end always (posedge f200hz)begin if(CNT2 2) beginCNT2 = CNT2 + 1;f60hz = 1b0; end else begin CNT2 = 0; f60hz = 1b1; end end always (posedge f200hz)begin if(CNT3 199) beginCNT3 = CNT3 + 1;f1hz = 1b0; end else begin CNT3 = 0; f1hz = 1b1; end endendmodule图 3-3 分频模块仿真波形图3.2 时钟主控制模块(maincontrol)该模块实现对各个功能模块的整体控制,包括对时间显示与调整、日期显示与调整、闹钟显示与调整、秒表操作等的控制。主控制电路模块的逻辑框图如图3-4所示。仿真波形图如图3-5所示。图3-4 时钟主控制电路模块逻辑框图图3-5 时钟主控制模块仿真波形图该模块的VerilogHDL程序如下:modconule maintrol(SW3, /功能号选择Timepiece_EN, /时间自动显示使能TimeSet_EN, /时间调整与设置使能Stopwatch_EN, /跑表功能使能Alarmclock_EN, /闹钟功能使能Date_EN, /日期显示使能DateSet_EN); /日期调整与设置使能output Timepiece_EN,TimeSet_EN,Stopwatch_EN,Alarmclock_EN,Date_EN,DateSet_EN;input SW3;reg Timepiece_EN,TimeSet_EN,Stopwatch_EN,Alarmclock_EN,Date_EN,DateSet_EN;reg 2:0 Function; /存放功能号always (posedge SW3)begin if(Function 3b101)Function = Function + 3b1; else Function = 3b0; case(Function) /时间自动显示 3b000: begin Timepiece_EN = 1b1; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end /时间调整与设置 3b001: begin Timepiece_EN = 1b0; TimeSet_EN = 1b1; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end /跑表 3b010: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b1; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end/闹钟设置 3b011: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b1; Date_EN = 1b0; DateSet_EN = 1b0; end /日期显示 3b100: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b1; DateSet_EN = 1b0; end/日期调整与设置3b101: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b1; end default: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end endcaseendendmodule3.3 时间及其设置模块(time_auto_and_set)该模块主要完成时间的自动正常运行与显示,以及在相应的功能号下,实现时间的调整与设置。该模块分为三个小模块:时间计数模块、时间设置模块和时间数据多路选择模块。该模块顶层电路如图3-6所示:图3-6 时间及其设置模块顶层电路图该模块逻辑框图如图3-7所示:图3-7 时间及其设置模块逻辑框图3.3.1 时间计数模块(timepiece_main)该模块主要完成时间的自动增加与显示功能,即为正常的自动模式运行。该模块分为三个小模块:秒计数子模块、分计数子模块和时计数子模块。该模块电路图如图3-8所示:图3-8 时间计数模块电路图该模块逻辑框图如图3-9所示。仿真波形图如图3-10所示。图3-9 时间计数模块逻辑框图图3-10 时间计数模块仿真波形图u 秒计数子模块逻辑框图如图3-11所示。图3-11 秒计数子模块框图 EN是时间显示信号,当Timepiece_En=1时有效;clk是秒脉冲输入端口;输出端口second_data03.0是秒时钟的低位,second_data13.0是高位;EO端口是进位输出端口,当秒计数到59时输出高电平,其它时候输出低电平。u 分计数子模块的设计原理与秒模块的类似。逻辑框图如图3-12所示。图3-12 分计数子模块框图u 时计数子模块逻辑框图如图3-13所示。图3-13 时计数模块框图3.3.2 时间设置模块(timeset)该模块主要完成对时间的设置相关的闪烁显示控制以及时间中的小时、分钟、秒等数据的改变,流程图如图3-14所示,逻辑框图如3-15所示,波形仿真图如3-16所示。图3-14 时间设置模块流程图图3-15 时间设置模块框图图3-16 时间设置模块波形仿真图表3-1 时间设置模块的端口说明输入端口功能TimeSet_EN时间设置使能,当其电平为高时,时间设置有效SW1,SW2调整键1与调整键2输入信号hour1,hour0当前时间的小时数输入minute1,minute0当前时间的分钟数输入second0,second1当前时间的秒数输入输出端口功能hour_set1,hour_set0设置时间后的小时数minute_set1,minute_set0设置时间后的分钟数second_set1,second_set0设置时间后的秒数disp_drive设置中的闪烁显示设置当Timeset_EN为1时,即实现时间设置功能。SW1实现时间格式中小时高、低位,分钟高、低位,秒高、低位的位选,即每出现一个SW1上升沿,disp_drive的相应数值加1(选择具体的需要调整的位置)。SW2实现相应得位的数值的调整,即每出现一个SW2上升沿,相应位的数值增加1。3.3.3 时间数据多路选择模块(time_mux)该模块用来选择向显示单元传输所要显示的数据,流程图如图3-17所示,逻辑框图如图3-18所示,波形仿真如图3-19所示。图3-17 多路选择模块的流程图表3-2 多路选择模块的端口说明输入端口功能TimeSet_EN时间设置使能信号hour1,hour0自动模式中当前时间的小时数输入minute1,minute0自动模式中当前时间的分钟数输入second0,second1自动模式中当前时间的秒数输入hour_set1,hour_set0时间设置后的小时数输入minute_set1,minute_set0时间设置后的分钟数输入second_set1,second_set0时间设置后的秒数输入输出端口功能hour_1,hour_0当前需要显示的小时输出minute_1,minute_0当前需要显示的分钟输出second_0,second_1当前需要显示的秒输出图3-18 时间数据多路选择模块框图图3-19 时间数据多路选择模块波形仿真图3.4 时间显示动态位选模块(time_disp_select)该模块用来分时显示时间数据,TimeSet_EN表示时间设置使能,Time_EN表示时间自动显示使能,clk_1kHz用于动态显示时,clk_200Hz用于闪烁显示时间,timeset_disp_drive表示时间设置数据显示的同步信号,time_disp_select表示显示动态位选输出信号。当TimeSet_EN为0,Time_EN为1时,以clk_1kHz为时钟信号,输出自动显示的时间,按位依次显示;当TimeSet_EN为1,Time_EN为0时,则以clk_200Hz为时钟信号,输出以timeset_disp_drive对应的位置。逻辑框图如图3-20所示,波形仿真如图3-21所示。图3-20 时间显示动态位选模块框图图3-21(a)时间显示动态位选模仿真波形图图3-21(b)时间显示动态位选模仿真波形图该模块的VerilogHDL程序如下:module time_disp_select(clk_1khz,clk_200hz,Time_EN,TimeSet_EN,timeset_disp_drive,time_disp_select);output 5:0 time_disp_select;input clk_1khz;input clk_200hz;input Time_EN;input TimeSet_EN;input 2:0 timeset_disp_drive;reg 5:0 time_disp_select;reg 2:0 auto_disp_drive;reg clk;reg 2:0 disp_drive;always (posedge clk_1khz) /*实现自动运行模式中的动态显示“位选的驱动”*/begin if(auto_disp_drive 3b101) auto_disp_drive = auto_disp_drive + 3b1; else auto_disp_drive = 3b0;endalwaysbegin /*实现自动运行模式中时间动态显示位选驱动与时间设置中的时间动态显示位选驱动的二选一*/ if(Time_EN = 1b1) begin clk= clk_1khz; disp_drive = auto_disp_drive; end else if(TimeSet_EN = 1b1) begin clk= clk_200hz; disp_drive = timeset_disp_drive; endendalways (posedge clk)begin case(disp_drive) 3b000: time_disp_select = 6b100000; 3b001: time_disp_select = 6b010000; 3b010: time_disp_select = 6b001000; 3b011: time_disp_select = 6b000100; 3b100: time_disp_select = 6b000010; 3b101: time_disp_select = 6b000001; default: time_disp_select = 6b000000; endcaseendendmodule 3.5 显示模块(disp_data_mux)该模块是时间、日期等数据用数码管显示的控制与数据传输模块,包括数据的传输以及BCD码的译码等。逻辑框图如图3-22所示,仿真波形如图3-23所示。图3-22显示模块逻辑框图 图3-23显示模块波形仿真图该模块的VerilogHDL程序如下:module disp_data_mux(Timepiece_EN,TimeSet_EN,Stopwatch_EN,time_disp_select,Alarmclock_EN,alarmclock_disp_select,hour1,hour0,minute1,minute0,second1,second0,Date_EN,DateSet_EN,date_disp_select,month1,month0,day1,day0,disp_select,disp_data);output 5:0 disp_select;output 6:0 disp_data;input Timepiece_EN,TimeSet_EN,Stopwatch_EN;input 5:0 time_disp_select;input Alarmclock_EN;input 5:0 alarmclock_disp_select;input 3:0 hour1,hour0,minute1,minute0,second1,second0;input Date_EN,DateSet_EN;input 5:0 date_disp_select;input 3:0 month1,month0,day1,day0;reg 5:0 disp_select;reg 6:0 disp_data;reg 3:0 Data;always (Timepiece_EN,TimeSet_EN,Stopwatch_EN,time_disp_select,Alarmclock_EN,alarmclock_disp_select,hour1,hour0,minute1,minute0,second1,second0,Date_EN,DateSet_EN,date_disp_select,month1,month0,day1,day0,disp_select)begin /时钟,秒表显示 if(Timepiece_EN | TimeSet_EN | Stopwatch_EN) = 1b1) begin disp_select = time_disp_select; case(time_disp_select) 6b100000: Data = hour1; 6b010000: Data = hour0; 6b001000: Data = minute1; 6b000100: Data = minute0; 6b000010: Data = second1; 6b000001: Data = second0; default: Data = 4b0; endcase end /闹钟设置显示 else if(Alarmclock_EN = 1b1) begin disp_select = alarmclock_disp_select; case(alarmclock_disp_select) 6b100000: Data = hour1; 6b010000: Data = hour0; 6b001000: Data = minute1; 6b000100: Data = minute0; 6b000010: Data = second1; 6b000001: Data = second0; default: Data = 4b0; endcase end /日期以及日期设置显示 else if(Date_EN | DateSet_EN) = 1b1) begin disp_select = date_disp_select; case(date_disp_select) 6b100000: Data = month1; 6b010000: Data = month0; 6b001000: Data = day1; 6b000100: Data = day0; default: Data = 4b0; endcase end /显示数据译码 case(Data) 4b0000: disp_data = 7b1111110; 4b0001: disp_data = 7b0110000; 4b0010: disp_data = 7b1101101; 4b0011: disp_data = 7b1111001; 4b0100: disp_data = 7b0110011; 4b0101: disp_data = 7b1011011; 4b0110: disp_data = 7b1011111; 4b0111: disp_data = 7b1110000; 4b1000: disp_data = 7b1111111; 4b1001: disp_data = 7b1111011; default: disp_data = 7b0; endcaseendendmodule3.6 跑表模块(stopwatch)该模块实现跑表的功能,在实际中,可以通过改变自动工作模式下的时间的计数时钟的频率来实现秒表的功能,流程图如图3-24所示,逻辑框图如图3-25所示,波形仿真3-26如图所示。图3-24跑表模块流程图图3-25跑表模块逻辑框图图3-26跑表模块波形仿真图该模块的VerilogHDL程序如下:module stopwatch(clk1,clk2,EN,F_out);output F_out;input EN;input clk1,clk2;reg F_out;always (EN,clk1,clk2)begin case(EN)1b0: F_out = clk1;1b1: F_out = clk2;default: F_out = 1b0; endcaseendendmodule3.7 日期显示与设置模块(date_main)该模块实现日期的显示和日期的调整与设置,分为三个小模块:日期自动工作模块、日期设置模块和日期控制模块。该模块顶层电路图如图3-28所示,逻辑框图3-29如图所示。图3-27日期显示与设置模块顶层电路图图3-28日期显示与设置模块逻辑框图3.7.1 日期自动工作模块(autodate)该模块实现的是日期的自动工作功能,逻辑框图如图3-29所示,波形仿真如图3-30所示。图3-29日期自动工作模块逻辑框图图3-30(a)日期自动工作模块仿真波形图图3-30(b)日期自动工作模块仿真波形图3.7.2 日期设置模块(setdate)该模块用于日期设置,逻辑框图如图3-31所示。图3-31 日期设置模块逻辑框图当Date_Set_EN为1时,即实现日期设置功能。SW1实现日期格式中月高、低位,日高、低位的位选,即每出现一个SW1上升沿,disp_drive的相应数值加1(选择具体的需要调整的位置)。SW2实现相应得位的数值的调整,即每出现一个SW2上升沿,相应位的数值增加1。3.7.3 日期控制模块(datecontrol)该模块用来选择向显示单元传输所要显示的数据,Date_Set_EN=1时显示设置后的日期,否则显示自动模式时的日期。逻辑框图如图3-32所示。图3-32 日期控制模块逻辑框图3.8 闹钟模块(alarmclock)该模块实现的功能包括闹钟的设置以及闹钟时间到后的提示。EN为闹钟设置使能,clk_200Hz用于设置中的闪烁显示的时钟,其中还定义了hour_set1,hour_set0,minute_set1,minute_set0,second_set1,second_set0,用来表示已经设置好的闹钟时间。闹钟一直处于工作状态,当前时间(hour1,hour0,minute1,minute0,second1,second0)与设置的闹钟时间相比较,当小时、分钟、秒钟的时间完全相同时,则闹铃响,输出信号alarm为有效信号1。SW1和SW2是调整键,分别控制位选和数值的调整。逻辑框图如图3-33所示,流程图如3-34所示,波形仿真如图3-35所示。图3-33 闹钟模块逻辑框图图3-34 闹钟模块流程图图3-35 闹钟模块波形仿真图该模块的VerilogHDL程序如下:module alarmclock(clk_200hz,EN,SW1,SW2,hour1,hour0,minute1,minute0,second1,second0,alarm,alarmclock_disp_select);output alarm;output 5:0 alarmclock_disp_select;input EN,SW1,SW2,clk_200hz;input 3:0 hour1,hour0,minute1,minute0,second1,second0;reg 5:0 alarmclock_disp_select;reg alarm;reg 3:0 hour_set1,hour_set0; /存放设置的小时reg 3:0 minute_set1,minute_set0; /存放设置的分reg 3:0 second_set1,second_set0; /存放设置的秒reg 2:0 disp_drive; /设置闹钟时间时,数码管显示的动态位选择/闹钟一直工作(设置的闹钟时间与当前时间比较)alwaysbegin if(hour_set1 = hour1)&(hour_set0 = hour0) &(minute_set1 = minute1)&(minute_set0 = minute0) &(second_set1 = second1)&(second_set0 = second0)alarm = 1b1; elsealarm = 1b0;end/闹钟设置中,按SW1一次,将移位一次,显示当前设置位always (posedge SW1)begin if(EN = 1b1)begin if(disp_drive != 3b101)disp_drive = disp_drive + 3b1; else disp_drive = 3b000;endend/当前位的闹钟数字设置,按SW2一次,数字增加1always (posedge SW2)begin case(disp_drive)3b000: begin if(hour_set1 4b0010) hour_set1 = hour_set1 + 4b1; else hour_set1 = 4b0;end3b001: begin if(hour_set1 4b0010)&(hour_set0 4b1001) hour_set0 = hour_set0 + 4b1; else if(hour_set1 = 4b0010)&(hour_set0 4b0100) hour_set0 = hour_set0 + 4b1; else hour_set0 = 4b0;end3b010: begin if(minute_set1 4b0101) minute_set1 = minute_set1 + 4b1; else minute_set1 = 4b0;end3b011: begin if(minute_set0 4b1001) minute_set0 = minute_set0 + 4b1; else minute_set0 = 4b0;end3b100: begin if(second_set1 4b0101) second_set1 = second_set1 + 4b1; else second_set1 = 4b0;end3b101: begin if(second_set0 4b1001) second_set0 = second_set0 + 4b1; else second_set0 = 4b0;enddefault: begin end endcaseend/闪烁显示always (posedge clk_200hz)begin case(disp_drive)/3b000: alarmclock_disp_select = 6b100000;/3b001: alarmclock_disp_select = 6b010000;/3b010: alarmclock_disp_select = 6b001000;/3b011: alarmclock_disp_select = 6b000100;/3b100: alarmclock_disp_select = 6b000010;/3b101: alarmclock_disp_select = 6b000001;default: alarmclock_disp_select = 6b000000; endcase endendmodule第四章 总结与展望4.1 总结在此次的数字钟设计过程中,进一步地熟悉有关数字电路的知识和具体应用。学会了利用Quartus ii软件进行原理图的绘制,硬件描述语言VerilogHDL的编写,并进行程序的仿真等工作。并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的调试和完善。这些加强了我们的分析问题的能力,提高了我们编程的能力,同时还培养了我们独立完成任务和查阅资料删选资料的能力。此次的数字钟设计重在于各个模块代码的编写,虽然能把各个模块的代码编写出来,但对于各个模块的优化设计还有一定的缺陷和不足。总的来说,通过这次的设计实验更进一步地增强了编程能力和软件学习能力,对数字钟的工作原理也有了更加透彻的理解。4.2 展望本设计是采用硬件描述语言VerilogHDL和Quartus ii软件相结合进行的数字钟的研究,从中可以看出EDA技术的发展在一定程度上实现了硬件设计的软件化。设计的过程变的相对简单,容易修改等优点,相信随着电子技术的发展,数字钟的功能会更加多样化,满足人们的各种需要。 致谢在论文完成之际,我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产加工订单管理制度
- 公园庙会活动方案
- 公园重大节日活动方案
- b超诊疗管理制度
- 业主报修管理制度
- 业务扩报管理制度
- 业务考核管理制度
- 业务销量管理制度
- 业绩归属管理制度
- 东方希望管理制度
- GB/T 44757-2024钛及钛合金阳极氧化膜
- 《BOM培训资料》课件
- 2024年广东省公务员录用考试《行测》真题及答案解析
- 【团体标准】TDZJN 77-2022 锂离子电池产品碳足迹评价导则
- 2023日语专四真题专业四级真题
- 2024AI Agent行业研究报告
- 高中物理教学中物理实验的改进与创新
- 华为质量回溯(根因分析与纠正预防措施)模板
- 纺织材料学智慧树知到期末考试答案章节答案2024年武汉纺织大学
- 江西省新余市2023-2024学年八年级下学期期末质量监测物理试题
- 江苏省苏州市吴江区2023-2024学年六年级下学期期末数学试题
评论
0/150
提交评论