电子线路设计课程设计报告24小时时钟电路设计_第1页
电子线路设计课程设计报告24小时时钟电路设计_第2页
电子线路设计课程设计报告24小时时钟电路设计_第3页
电子线路设计课程设计报告24小时时钟电路设计_第4页
电子线路设计课程设计报告24小时时钟电路设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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®isters: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 结 论经过各模块和整体程序的仿真,达到了设计的要求。从秒的个位开始自加一,加到九时,在下一个时钟来临是个位清零又开始自加一,并向秒的十位进一,秒的十位加到六就向分的个位进一,秒的十位清零又开始计数,分的个位加到十就向分的十位进一,分的十位清零又开始计数,分的十位加到六就向时进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论