电子线路设计课程设计报告24小时时钟电路设计.doc

上传人:文库蛋蛋多 文档编号:4150122 上传时间:2023-04-07 格式:DOC 页数:21 大小:729.50KB
返回 下载 相关 举报
电子线路设计课程设计报告24小时时钟电路设计.doc_第1页
第1页 / 共21页
电子线路设计课程设计报告24小时时钟电路设计.doc_第2页
第2页 / 共21页
电子线路设计课程设计报告24小时时钟电路设计.doc_第3页
第3页 / 共21页
电子线路设计课程设计报告24小时时钟电路设计.doc_第4页
第4页 / 共21页
电子线路设计课程设计报告24小时时钟电路设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《电子线路设计课程设计报告24小时时钟电路设计.doc》由会员分享,可在线阅读,更多相关《电子线路设计课程设计报告24小时时钟电路设计.doc(21页珍藏版)》请在三一办公上搜索。

1、XXXXXX课程设计报告电子线路设计课程设计报告24小时时钟电路设计小组成员: XXXXXXXXXXXXXX 院 (系): 电气信息工程学院 年级专业: 20XX级电子信息工程 指导老师: XX XX XX 联系电话: XXXXXXXXX 二XX年XX月摘 要本设计为24小时时钟设计,具有时、分、秒计数显示功能,以24小时循环计时的时钟电路;具有时、分校准以及清零的功能。本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计文件,在QUARTUS工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。系统由主控模块、分频模块、译码模块以及显示组成。

2、经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,由按键输入进行数字钟的清零功能。关键词 时钟,QUARTUS,VHDL,FPGAAbstractThe design for the 24-hour clock design, with hours, minutes, seconds count display, a 24-hour cycle of the clock timing circuit; with hours, minutes, and cleared the calibration function.This design uses ED

3、A technology to hardware description language VHDL description of the means for the system logic design documents, software tools in QUARTUS environment, using top-down design approach, from the various modules together to build a basic FPGA-based digital clock.System by the control module, frequenc

4、y module, decoding module and display components. The compilation and simulation of the design process, in the download validation of programmable logic devices, the system can complete the hours, minutes, seconds, respectively, indicated by the key input for clear digital clock function.Keywords cl

5、ock,QUARTUS,VHDL,FPGA目 录摘 要ABSTRACT1 绪 论1 1.1 题目意义1 1.2 设计要求12 设计的基本原理2 2.1 设计原理2 2.2 设计流程33 设计方案4 3.1 设计思路4 3.2 模块图和功能43.2.1 分频模块43.2.2 主控模块53.2.3 译码模块83.2.4 顶层模块104 测 试11 4.1 模块仿真114.1.1 分频模块124.1.2 主控模块134.1.3 译码模块14 4.2 顶层模块仿真155 结 论 166 参考文献171 绪 论1.1 题目意义现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异

6、。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。1.2 设计要求本设计主要研究基于FPGA的数字钟,要求时间以24小时为一个周期,显示时、分、秒。采用10K

7、HZ的基准信号产生1S的基准时间,秒的个位加到10就向秒的十位进一,秒的十位加到6就向分的个位进一,分的个位加到10就向分的十位进一,分的十位加到6就向时进一。该时钟具有清零功能,可以对时、分及秒进行清零,为了保证计时的稳定及准确须由晶体振荡器提供时间基准信号。该系统是基于FPGA的设计,采用VHDL进行系统功能描述,采用自顶向下的设计方法,用QUARTUS软件进行仿真测试。2 设计的基本原理2.1 设计原理振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒的个位到9时,十位加1,同时个位归零,若十位为5时,则十位也归零;分和秒一致;时的个位到9时,十位小于2

8、时加1,同时个位归零,若个位到3,十位为2时,则个位和十位都归零。一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2.1所示。图2.1 CPLD/FPGA系统设计流程2.2 设计流程工程按照“自顶向下”的设计方法进行系

9、统划分。输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。将以上的设计输入编译成标准的VHDL文件。进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。利用产生

10、的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设

11、计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。3 设计方案3.1 设计思路采用分模块设计的方法,再用一个顶层文件将各模块联系起来如图3.1所示。图3.1 结构图将晶振通过分频器分频后产生1HZ(1S)的基本频率,然后进入主控模块,此时计秒的个位,满十后向秒的十位进一,秒十位采用六进制计数器,计满后向分的个位进一,分个位采用十进制计数器,计满后向分十位进一,分十位采用六进制计数器,计满后向时进一,时采用二十四进制计数器,计满后清零,最后将秒的个、十位,分的个、十位,时的个、十位,用译码器译为数码管显示的七段译码数。3.2 模块图和功能3.2.1 分

12、频模块晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频率段的信号均会被它所衰减,而且,振荡信号的频率与振荡电路中的R、C元件的数值无关。因此,这种振荡电路输出的是准确度极高的信号。然后再利用分频电路,将其输出信号转变为秒信号,其组成框图如图3.2。图3.2 1HZ信号产生框图本系统使用的晶体振荡器电路给数字钟提供一个频率稳定准确的10MHz的方波信号,其输出至分频电路。分频模块的逻辑框图如图3.3所示:图3.3 分频模块分频模块VHDL程序文件名:FREQ-功能

13、:将石英晶振产生的10MHZ的信号分频为1HZ的信号USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FREQ IS PORT(CLK10MHZ:IN STD_LOGIC; -10MHZ输入 CLK1HZ:OUT STD_LOGIC); -1HZ时钟输出END FREQ;ARCHITECTURE ART OF FREQ IS SIGNAL TOUT:INTEGER RANGE 0 TO 4999999; SIGNAL CLK:STD_LOGIC; BEG

14、IN PROCESS(CLK10MHZ) BEGIN IF CLK10MHZ=1 AND CLK10MHZEVENT THEN IF TOUT=4999999 THEN CLK=NOT CLK;TOUT=0; ELSE TOUT=TOUT+1; END IF; END IF; END PROCESS; CLK1HZ=CLK;END ART;3.2.2 主控模块当复位信号RST=0时,时钟输出时、分、秒全部归零;当校准信号S1=0时,时加1;当校准信号S2=0时,分加1;秒的个位到9时,十位加1,同时个位归零,若十位为5时,则十位也归零;分和秒一致;时的个位到9时,十位小于2时加1,同时个位归零

15、,若个位到3,十位为2时,则个位和十位都归零。主控模块的逻辑框图如图3.4所示:图3.4 主控模块主控模块VHDL程序文件名:CONTROL-功能:输出时、分、秒(十进制),具有复位和校准的功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL IS PORT(CLK1HZ:IN STD_LOGIC; -1S时钟输入 RST:IN STD_LOGIC; -复位输入 S1,S2:IN STD_LOGIC; -时间调节

16、输入 SEC1_OUT,SEC10_OUT:OUT INTEGER RANGE 0 TO 9; MIN1_OUT,MIN10_OUT:OUT INTEGER RANGE 0 TO 9; HOUR1_OUT,HOUR10_OUT:OUT INTEGER RANGE 0 TO 9);END CONTROL;ARCHITECTURE ART OF CONTROL IS SIGNAL SEC1,SEC10:INTEGER RANGE 0 TO 9; SIGNAL MIN1,MIN10:INTEGER RANGE 0 TO 9; SIGNAL HOUR1,HOUR10:INTEGER RANGE 0 T

17、O 9;BEGIN PROCESS(CLK1HZ,RST) BEGIN IF(RST=0) THEN -系统复位 SEC1=0; SEC10=0; MIN1=0; MIN10=0; HOUR1=0; HOUR10=0; ELSIF(CLK1HZEVENT AND CLK1HZ=1) THEN -正常运行 IF(S1=0) THEN -调节小时 IF(HOUR1=9) THEN HOUR1=0;HOUR10=HOUR10+1; ELSIF(HOUR10=2 AND HOUR1=3) THEN HOUR1=0;HOUR10=0; ELSE HOUR1=HOUR1+1; END IF; ELSIF(

18、S2=0) THEN -调节分钟 IF(MIN1=9) THEN MIN1=0; IF(MIN10=5) THEN MIN10=0; ELSE MIN10=MIN10+1; END IF; ELSE MIN1=MIN1+1; END IF; ELSIF(SEC1=9) THEN SEC1=0; IF(SEC10=5) THEN SEC10=0; IF(MIN1=9) THEN MIN1=0; IF(MIN10=5) THEN MIN10=0; IF(HOUR1=9) THEN HOUR1=0;HOUR10=HOUR10+1; ELSIF(HOUR1=2 AND HOUR10=3) THEN H

19、OUR1=0;HOUR10=0; ELSE HOUR1=HOUR1+1; END IF; ELSE MIN10=MIN10+1; END IF; ELSE MIN1=MIN1+1; END IF; ELSE SEC10=SEC10+1; END IF; ELSE SEC1=SEC1+1; END IF; END IF; END PROCESS; SEC1_OUT=SEC1;SEC10_OUT=SEC10; MIN1_OUT=MIN1;MIN10_OUT=MIN10; HOUR1_OUT=HOUR1;HOUR10_OUTDISPLAYDISPLAYDISPLAYDISPLAYDISPLAYDIS

20、PLAYDISPLAYDISPLAYDISPLAYDISPLAYDISPLAY=0000000; -全灭 END CASE; END PROCESS;END ART;3.2.4 顶层模块将各个模块连接起来,实现整个时钟功能。顶层文件的逻辑框图如图3.6所示:图3.6 顶层模块4 测 试4.1 模块仿真工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。以顶层模块为例,步骤如下:建立仿真测试波形文件。选择Quartus II主窗口的Fil

21、e菜单的New选项,在弹出的文件类型编辑对话框中,选择Other Files中的Vector Weaveform File项,单击OK按钮,即出现如图4.1所示的波形文件编辑窗口。图4.1 波形文件编辑窗口设置仿真时间区域。对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。设计中整个仿真时间区域设为80s、时间轴周期为500ms,其设置步骤是在Edit菜单中选择End Time,在弹出的窗口中Time处填入80,单位选择s,同理在Gride Size中Time period输入500ms,单击OK按钮,设置结束。输入工程信号节点选

22、择View菜单中的Utility Windows项的Node Finder,即可弹出如图4.1.2所示的对话框,在此对话框Filter项中选择Pins:all&Registers:Post-fitting,然后单击List按钮,于是在下方的Nodes Found窗口中出现设计中的SZSJ工程的所有端口的引脚名。用鼠标将时钟信号节点CLK10MHZ,RET,S1,S2,SEC1,SEC10,MIN1,MIN10,HOUR1,HOUR10分别拖到波形编辑窗口,如图4.2所示,此后关闭Nodes Found窗口即可。图4.2 SZSJ波形编辑器输入信号窗口设计信号波形。单击图4.2左侧的全屏显示按钮

23、,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。单击图4.2窗口的时钟信号CLK10MHZ使之变成蓝色条,再单击右键,选择Value设置中的Count Value项,设置CLK10MHZ为连续变化的二进制值,初始值为“0”,周期为100ns;RST,S1,S2均设为1。文件存盘选择File中的Save as项,将波形文件以默认名SZSJ.vwf存盘即可。 所有设置完成后,即可启动仿真器ProcessingStart Simulation直到出现Simulation was successful,仿真结束。4.1.1 分频模块仿真

24、 设置End time为2s进行仿真,结果如图4.3所示。图4.3 分频模块仿真4.1.2 主控模块仿真1.设仿真时间为100s,仿真结果如图4.4所示。图4.4 主控模块仿真2.设仿真时间为100s,设置S1,调节时,如图4.5所示。图4.5 时调节仿真3.设仿真时间为100s,设置S2,调节分,如图4.6所示。图4.6 分调节仿真4.设仿真时间为100s,设置RST,测试清零,如图4.7所示。图4.7 清零仿真4.1.3 译码模块仿真设置该模块输入为0到9,进行仿真,仿真结果如图4.8所示。图4.8 译码模块仿真4.2 顶层模块仿真图4.9 顶层模块仿真5 结 论经过各模块和整体程序的仿真

25、,达到了设计的要求。从秒的个位开始自加一,加到九时,在下一个时钟来临是个位清零又开始自加一,并向秒的十位进一,秒的十位加到六就向分的个位进一,秒的十位清零又开始计数,分的个位加到十就向分的十位进一,分的十位清零又开始计数,分的十位加到六就向时进一,时加到二十四自清零。在此次设计过程中,最大的优点是采用了自顶向下的模块化设计,使程序清晰易懂,在秒和分的计数器的设计时,考虑到分秒都是六十进制,而分秒的显示都是个位和十位分开显示,为了译码方便,采用了六进制和十进制计数器套用的设计方法,看起麻烦实际使程序更易设计。虽然在设计程序时具备一定的有点,同时也有一定的缺点,比如说延时的问题,这使得时钟在实际运

26、行时并不十分精确。在用Quartus进行仿真时,当显示数据较大较长时可能出现乱码,我一直也没有将这个问题解决掉,自己水平还有限,还需要不断努力,对于延时,则将时钟信号调大一点,延时就会减小,在译码器的仿真时,因为输出的是七段数码管点亮时的代码,会让人误以为是二进制数表示的十进制数,在这里要更加认真仔细,不然很容易出错。在此次的数字钟设计过程中,我更进一步地熟悉有关数字电路的知识和具体应用。学会了利用QuarterII软件进行原理图的绘制,硬件描述语言VHDL的编写,程序的仿真等工作。并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的调试和完善。在此,特别感谢指导我设计的刘老师,在这次的

27、设计中,刘老师给了我许多建议,让我的设计更加完善,在仿真时,刘老师给了我许多帮助,每当仿真出问题时,刘老师总是悉心得给我讲解出问题的地方和原因,我也从中学到了许多分析问题的方法,也从中学到了不少其他的东西。再次感谢刘老师的指导!参 考 文 献1 刘爱荣,王振成.EDA技术与CPLD/FPGA开发应用简明教程M.清华大学出版社,2010.2 陈忠平,高金定,高见芳.基于Quuartus的FPGA/CPLD设计与实践M.电子工业出版社,2010.3 刘君,常明,秦娟.基于硬件描述语言(VHDL)的数字时钟设计J.天津理工大学学报,2007:第23卷 第4期,40-41.4 王开军,姜宇柏.面向CPLD/FPGA的VHDL设计M.机械工业出版社,2006:28-65.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号