设计题目:简易数字电子钟专业班级:电子信息工程二班学号:201323040344201362040040姓名:王雪巩军霞指导教师:张玉茹赵明引言目录第一章数字电子钟计内容及要求·······································1.1设计内容····························································1.2功能说明····························································第二章数字电子钟系统框图及工作原理·································2.1系统框图···················································2.2电子钟总体工作原理与设计·····································第三章各功能模块的设计3.1正常计时模块3.2分频模块产生电路3.3分时模块产生电路3.4秒模块产生电路3.5分模块产生电路3.6时模块产生电路3.7扫描模块产生电路第四章系统调试与分析··············································4.1系统调试·····················································4.1.1调试方法·················································4.1.2调试故障及解决方法········································4.2结果分析······················································第五章课程设计感想·············································引言数字时钟是一种用数字电路技术实现时、分、秒计时的装置,数字时钟走时精度高,稳定性好,使用方便,不需要经常调校,数字式时钟用秒脉冲发生器的精度稳定保证了数字钟的质量电子设计自动化(EDA)技术发展越来越迅速,利用计算机辅助设计已成为发展趋势。VHDL语言具有强大的电路描述和建模能力,用VHDL开发的数字电路与开发平台以及硬件实现芯片无关,可移植性、可重用性好。VHDL语言能够在系统级、行为级、寄存器传输级、门级等各个层次对数字电路进行描述,并可以在不同层次进行不同级别的仿真,能极大得保证设计的正确性和设计指标的实现。QuartusⅡ设计软件提供了一个完整的、多平台的设计环境,它可以轻易满足特定设计项目的要求。数字时钟是一种用数字电路技术实现时、分、秒计时的装置,数字时钟走时精度高,稳定性好,使用方便,不需要经常调校,数字式时钟用秒脉冲发生器的精度稳定保证了数字钟的质量第一章数字电子钟计内容及要求1.1设计内容1.学习ALTERA公司的FPGA/CPLD的结构、特点和性能。2.学习集成开发软件MAX+plusII/QuartusII的使用及设计过程。3.熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。4.根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。1.2功能要求说明1.在所选择器件内完成简易时钟的设计,要求设计完成后芯片具有时、分、秒的计时;译码;输出七段码;最大计时23时59分59秒;秒闪功能。2.简易时钟要求具有对时功能,具体对时的实现方式自行决定,要求设计合理,以操作简单为原则(根具具体的工作进度,可以考虑增加整点报时等附加功能)。3.在相应的器件平台上完成设计的输入、编译、综合或适配通过。第二章数字电子钟系统框图及工作原理2.1工作原理系统主要由振荡器、分频器、计数器、译码显示电路和校时电路组成。振荡器产生稳定的分频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60分向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照二十四进制计数。计数器的输出分别由译码器送显示器显示。2.2设计内容数字电子钟由振荡器、分频器、计数器、译码显示电路和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。1)时钟产生电路。将开发板上的时钟信号经过分频得到不同频率的时钟,分别作用于定时计数、LED扫描。2)控制逻辑电路。完成电子钟的系统逻辑控制。3)计时电路。主要按照时钟模式完成计时功能。4)译码电路。根据计时模块的状态输出值来确定对应位的数据,从而驱动显示电路。5)显示控制电路。主要执行选择所对应位的数据功能,显示正确的时间。第三章各功能模块的设计顶层电路设计libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityzongisport(cp,rst:instd_logic;out1:outstd_logic_vector(7downto0);out2:outstd_logic_vector(7downto0));endzong;architecturertlofzongiscomponentfenpin//调用分频电路port(clk1:instd_logic;clk:outstd_logic);endcomponent;componentfenshi//调用分时电路port(clks,rst:instd_logic;sl,sh,ml,mh,hl,hh:instd_logic_vector(3downto0);num:outstd_logic_vector(3downto0);outbit:outstd_logic_vector(7downto0));endcomponent;componentsecond//调用秒电路port(clk,rst:instd_logic;enmin:outstd_logic;sh:outstd_logic_vector(3downto0);sl:outstd_logic_vector(3downto0));endcomponent;componentminute//调用分电路port(clk1,rst:instd_logic;enhor:outstd_logic;mh:outstd_logic_vector(3downto0);ml:outstd_logic_vector(3downto0));endcomponent;componenthour//调用小时电路port(clk2,rst:instd_logic;hh:outstd_logic_vector(3downto0);hl:outstd_logic_vector(3downto0));endcomponent;componentclks//调用扫描脉冲电路port(clk1:instd_logic;clks:outstd_logic);endcomponent;componentsaomiao//调用扫描电路port(clk1:instd_logic;clks:outstd_logic);endcomponent;componentsaomiao2//调用翻译电路port(clks:instd_logic;num:instd_logic_vector(3downto0);outled:outstd_logic_vector(7downto0));endcomponent;signalclk,clk2,enmin,enhor:std_logic;signals0,s1,m0,m1,h0,h1,num:std_logic_vector(3downto0);beginu0:fenpinportmap(cp,clk);u1:fenshiportmap(clk2,rst,s0,s1,m0,m1,h0,h1,num,out1);u2:secondportmap(clk,rst,enmin,s1,s0);u3:minuteportmap(enmin,rst,enhor,m1,m0);u4:hourportmap(enhor,rst,m1,m0);u5:clksportmap(cp,clk2);u6:saomiaoportmap(cp,clk2);u7:saomiao2portmap(clk2,num,out2);endrtl;3.1正常扫描(分时复用脉冲)模块产生电路libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityclksisport(clk1:instd_logic;clks:outstd_logic);endclks;Architecturea_counterofclksissignalhm:std_logic_vector(24downto0);signalfpb:std_logic;beginprocess(clk1)beginif(clk1'eventandclk1='1')thenifhm=50thenhm=0000000000000000000000000;fpb=notfpb;elsehm=hm+1;endif;endif;endprocess;enda_counter;3.2分频模块电路设计(产生秒脉冲)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpinisport(clk1:instd_logic;clk:outstd_logic);endfenpin;Architecturea_counteroffenpinissignallm:std_logic_vector(24downto0);signalfpa:std_logic;beginprocess(clk1)beginif(clk1'eventandclk1='1')theniflm=24999999thenlm=0000000000000000000000000;fpa=notfpa;elselm=lm+1;endif;endif;endprocess;enda_counter;3.2分时模块电路电路(分时复用)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenshiisport(clks,rst:instd_logic;sl,sh,ml,mh,hl,hh:instd_logic_vector(3downto0);num:outstd_logic_vector(3downto0);outbit:outstd_logic_vector(7downto0));endfenshi;Architecturea_counteroffenshiissignalst:std_logic_vector(2downto0);beginprocess(clks)beginif(clks'eventandclks='1')thenst=st+1;endif;endprocess;process(st)begincasestiswhen000=num=sl;outbit=00000010;when001=num=sh;outbit=00100000;when010=num=ml;outbit=00010000;when011=num=mh;outbit=00001000