《EDA电子钟实验报告.doc》由会员分享,可在线阅读,更多相关《EDA电子钟实验报告.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 华北水利水电学院 EDA课程设计(电子钟)报告名 称: EDA综合实验设计 题 目: 电子钟 院 系: 信息工程 班 级: 学 号: 学生姓名: 宋月 指导教师: 段美霞 袁胜 2013年 1月 7日-18日一、课程设计(综合实验)任务设计一个综合性的计时系统,要求能实现时、分、秒计数等综合计时功能,同时将计时结果通过6个七段数码管显示。能够对时和分进行设置,并能一键复位,重新计数。1 计秒电路:以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。注:本组实验所用的计秒时钟是用实验箱上1KHZ信号经分频器产生的。2 计
2、分电路、计时电路:其设计思想与计秒电路类似。计时电路是24进制的,计满24产生进位。3 时间设置电路:负责对时分秒进行调整,并能够产生进位。4 显示控制电路的设计,本设计显示需要使用的是6个七段显示数码管。注:本组实验在EDA6000上运行时,所用的是内部含有4-16译码器的八段数码管。二、 试验目的1 掌握时十进制、六十进制和二十四进制计数器的设计方法。2 掌握多位计数器相连的设计方法。3 掌握多位共阴极扫描显示数码管的驱动及编码。三、总体设计方案1 问题分析:11 计时及显示功能:计时模块实际为对一个标准1Hz时钟脉冲进行计数。秒计数器满60后向分计数器进位,分计数器满60向时计数器进位,
3、时计数器为24进制。6个七段显示数码管分别显示时、分、秒的十位和个位。12 时间设置电路:对于系统中的时间调整电路,可以通过三个外部按键“set”,“chang”,“rst”来完成。“rst“为复位键,按下之后时钟清零,重新开始计数。“set”为时间设置控制键,按第一下对分进行设置(用min发光二极管亮标示);按第二下对时进行设置,(用hour发光二极管亮标示);按第三下,重新开始计数。 “chang”键为在“set”键按下对时间进行设置时,对时或分进行加1操作,直至到达满意时间。2 层次化设计具体方案:2.1时分秒计数器模块本数字钟的实现可分为以下几个模块:(1) 频率产生模块:用EDA60
4、00实验箱产生1kHz的计数频率 ,通过分频得到1Hz信号;(2) 秒计数模块:秒计数,在频率为1Hz的时钟下以60次为循环计数,并产生进位信号影响分计数; (3) 分计数模块:分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数;(4) 时计数模块:时计数,在分进位信号为高电平时,计数一次,以24次为一个循环计数;(5) 时间显示模块:数码管通过动态显示,同时进行一定频率的扫描显示时,分,秒。(6) 时间设置模块:设置调试使能端,可以调时,分。基本功能是在使能端chang为高电平时,可以使时和分循环计数; 2.2 电路组成:一个基本的数字钟电路主
5、要由译码显示器、“时”,“分”,“秒”计数器组成。干电路系统由秒信号发生器(分频器)、“时”,“分”,“秒”计数器、译码器显示器电路组成。分频器电路:通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频。通常实现分频器的电路是计数器电路,当计数满时则产生相应的跳变,从而得到想要的的分频后频率。 时间计数单元:时间计数单元有时计数、分计数和秒计数等几个部分。时计数单元一般为12进制计数器或24进制计数器。译码驱动及显示单元:计数器实现了对时间的累计以8421BCD码形式输出,为了将计数器输出的8421BCD码显示出来。试验箱上有几种模式可供选择,选择自
6、带有4-16译码器的显示器,代码中就可以直接送四位bcd码给相应端口就行。 本设计的总体设计原理结构框图如下:分显示器秒显示器时显示器秒计数器分计数器时计数器 时间设置EDA60001KH信号分频器产生1HZ 四 实验程序:顶层模块用的原理图输入法,剪切图如下:各功能模块程序:module div(clk1k,clk); /分频模块,用1 kHZ的信号产生1HZ的计数(秒)时钟input clk1k;output clk;reg clk;integer n;always(posedge clk1k)if(n500) /每计满500个输入时钟时,clk取反一次,即产生1HZ的信号n=n+1;el
7、sebeginclk=clk;n=0;endEndmodulemodule ctr(set,so); /时间设置有效信号“set”的产生模块input set;output 1:0so;reg 1:0so;always(posedge set) /set有两个值,1和2;set为1时对“分”进行设置,为2时对“时”进行设置;上升沿触发if(so2)so=so+1;elseso=0;Endmodulemodule mux2(in,so,co1,co2); /二选一模块,用于区分对“分”和“时”的设置input in;input 1:0 so;output co1,co2;reg co1,co2;
8、always(so)case(so)1:co1=in; /当set输出s0为1时,将in(chang输入)给co1,对分进行设置;2:co2=in; /当set输出s0为2时,将in(chang输入)给co2,对时进行设置;default:beginco1=0;co2=0;endendcaseendmodulemodule cnt60(clr,clk,clken,upclk,a,b,cen); /分和秒的计数模块,60进制input clk,clr,clken,upclk; /clr为清零信号,低电平有效;upclk为“分”的时间设置信号 /clken为使能信号output 3:0a,b; /
9、a为个位,b为十位output cen;reg 3:0a,b;reg CenInside;wire ClkInside,cen;assign ClkInside = (clken & clk)|upclk; /当使能信号与clk同时有效,或时间设置信/号有效时,触发计数程序,开始计数assign cen = CenInside & clken; /cen为高一级计数的时钟信号,由CenInside(本级计数/计满)和clken(上级计数计满)同时有效时产生 always (posedge ClkInside or negedge clr) /计数语句块,同时用于时间设置时的时间加操作 begi
10、n if(!clr) begin a=0; b=0; end else if(a=9) begina=0; if(b=5) b=0;else b=b+1; end else begin a=a+1; b=b; end endalways (negedge clk or negedge clr) /此程序块产生本级计数计满信号CenInside beginif(!clr) CenInside=0;elseif(a=9)&(b=5) CenInside=1;else CenInside=0;endendmodulemodule cnt24(clr,clk,clken,clkup,a,b); /“时
11、”的计时为24进制,计满24小时复位为零input clk,clr,clken,clkup;output 3:0a,b; /a为“时”显示的个位,b为“时”显示的十位reg 3:0a,b;wire clkinside;assign clkinside = (clken & clk) | clkup;always (posedge clkinside or negedge clr) /产生24进制计数输出 begin if(!clr) begin a=0; b=0; end else begin if(b2) if(a=9) begina=0;b=b+1; end else begin a=a+
12、1; b=b; endelseif(a=3) begin a=0;b=0;endelse begin a=a+1; b=b;endend endEndmodule五、Quartus调试仿真与EDA6000上下载运行1、时序仿真1.1对时分设置的仿真原理:“set”高电平有效,其第一个脉冲有效时,S0为1开始对“分”进行设置,“chang”键执行分设置的加1操作,上升沿有效;同理,“set”的第二个有效脉冲来了之后,S0为2,开始对“时”进行设置;“set”的第三个脉冲到来之后,S0清零,退出时间设置开始正常计数。仿真图中,“set”第一个脉冲之后,来一个“chang”有效脉冲“分”加1,四个“
13、chang”脉冲之后,将“分”计数设置为4分。分设置仿真正确。“set”第二个脉冲之后,来一个“chang”有效脉冲“时”加1,四个“chang”脉冲之后,将“分”计数设置为4时。时设置仿真正确。1.2对计数模块的仿真原理:来一个有效的CLK1HZ脉冲(高电平有效),“秒”加1,秒计满60向“分”进1,“分”计满60向“时”进1。 仿真图中,时间宽度我们设置为70S,加上先前设置的四4时4分,时间显示为4时5分09秒,显示正确,故时间仿真正确1.3总程序RTL图2.在EDA6000上下载运行2.1管脚分配2.2将.sof文件下载到试验箱注:本次实验用的Alter公司的FPGA芯片,型号为ACE
14、X1P1K30TC144-32.3装入模式2.4连接试验箱开始运行对“分”进行设置时,“min”发光二极管亮,按一下“chang”分加1,加满60后自动复位为零,然后重新计数,运行正确。对“时”进行设置时,“hour”发光二极管亮,按一下“chang”分加1,加满24后自动复位为零,然后重新计数,运行正确。六、 课程设计通过这次课程设计,我觉得学到了很多东西,对Quartus的了解更多了,因为EDA的学习是这个学期,面临着考研的压力,所以对软件的操作很不熟悉,很多东西都不知道怎么做,这次课程设计,我觉得自己的进步好大,知道了一整套的步骤,也学会了编写程序,调试,综合,波形仿真,建立顶层模块,作
15、图等等。这种亲眼看着自己在书本上学到的知识被运用到了具体的事务上,而且结果还挺不错,EDA结课也有一段时间了,好多知识都有点生疏了,用到了得重新再看,不看的话这个报告写不下去,慢慢地也巩固了知识。我觉得EDA这门课程很实用,以后工作的时候用处也会挺大的,所以在以后的时间里我会好好掌握这门软件,现在也知道了段老师对我们的严格要求了,正是因为段老师的严格要求,同学们才可以做的这么顺利,真是严师出高徒,在这里很感谢段老师。我做的电子钟的设计,功能不是太全,老师要求的功能没有加进去完,有很多不完整的地方需要改进。尽管功能不全,但的确我也花费了很长时间的努力,看到自己的程序在实验板上显示出来我觉得很有成就感。我知道我还有很多的地方需要努力,我也会继续努力。参考文献:(五号,宋体加粗)1 潘松,EDA实用教程,科学出版社,2004年