《EDA设计II实验报告数字电子钟.doc》由会员分享,可在线阅读,更多相关《EDA设计II实验报告数字电子钟.doc(22页珍藏版)》请在三一办公上搜索。
1、EDA设计(II)实验报告 奚睿智EDA设计(II)实验报告院系:自动化学院学号:姓名: 指导老师: 完成时间:2011年5月24日数字电子钟目录1摘要和关键字 - 22设计要求 - 33方案论证 - 43.1 工作原理 - 43.2整体结构 - 43.3方案论证 - 44各电路设计原理 - 54.1分频电路 - 54.2计时电路 - 74.3动显电路 - 94.4防颤电路 - 114.5报时电路 - 134.6闹钟功能 - 144.7总电路图 - 175方案调试 - 186结论 - 197参考文献 - 208致谢 - 20摘要本实验基于Quartus软件设计,并采用VHDL语言及组合电路等方
2、法,并下载到SmartSOPC实验系统中实现“多功能数字电子钟”。数字电子钟钟完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、校时、校分、报时、闹钟等功能。该系统的组成模块分别为:分频电路、计时电路、动显电路、报时电路和闹钟电路。关键字Quartus 数字电子钟 分频 计时 动显 报时 闹钟AbstractThis experiment is based on using the Quartus software with VHDL language and composition of circuits, which is downloaded to t
3、he SmartSOPC experimental system to complete “a multifunction digital clock”. The digital clock achieved the timing function from 00:00:00 to 23:59:59, and included the function that is maintaining, clearing, hour-checking, minute-checking, clocking and alarming in control circuit. The system is bui
4、lt in: frequency circuit, counting circuit, dynamic circuit, timing circuit and alarming circuit.KeywordQuartus,digital clock, frequency, counting, dynamic, timing, alarming设计要求利用QuartusII软件设计一个可以实现00:00:00到23:59:59的具有计时功能并在控制电路的作用下可以保持、清零、校时、校分、报时及闹钟的数字电子钟,并下载到SmartSOPC实验系统中进行功能测试。设计基本要求如下:1.数字钟能够进
5、行正常的时、分、秒计时功能;2.数字钟分别由六个LED数码管完成时、分、秒的显示功能。3.时钟整点报时功能:当时钟计到5953”时开始报时,在5953”、5955”和5957”时报时频率为512Hz,,5959”时报时频率为1KHz;4.闹钟切换设定功能:该数字钟能够切换显示屏并且进行闹钟时间的设定,在到达设定时间发出频率为500Hz的声音。设计控制部分说明:1.K1是系统的使能开关(K1=0时钟工作,K1=1时钟保持);2.K2是系统的清零开关(K2=0时钟工作,K2=1时钟清零);3.K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);4.K4是系统的校时开关(K4=0正常工
6、作,K4=1时可以快速校时);5.K5是闹钟的调分开关(K5=0正常工作,K5=1时闹钟快速调分);6.K6是闹钟的调时开关(K6=0正常工作,K6=1时闹钟快速调时);7.K8是动显的切换开关(K8=0显示计时电路,K8=1时显示闹钟设定电路);方案论证1.工作原理数字电子钟用集成电路进行计时,用译码代替机械传动,用LED显示器代替指针显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对。片选的灵活性好。数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重
7、新开始计时。时、分、秒的计时结果通过6个数码管来动态显示。数字钟除了能够正常计时外,还应能够对时间进行调整,即可以校时校分,另通过外加门电路可实现清零、保持、整点报时和闹钟的功能。2.整体结构3.方案论证数字系统的设计采用自顶向下、由粗到细, 逐步分解的设计方法, 最顶层电路是指系统的整体要求, 最下层是具体的逻辑电路的实现。自顶向下的设计方法将一个复杂的系统逐渐分解成若干功能模块, 从而进行设计描述, 并且应用EDA 软件平台自动完成各功能模块的逻辑综合与优化, 门级电路的布局, 再下载到硬件中实现设计。因此对于数字钟来说首先是时分秒的计数功能,然后能显示,附带功能是清零、校时校分、整点报时
8、、闹钟。通过参考EDA设计实验指导书,有以下方案:作为顶层文件有输入端口:时钟信号,清零开关,校时开关,校分开关、屏幕切换开关;输出端口有:用于接数码管的七段码输出口,扫描用于显示的六个数码管的输出口,接通蜂鸣器的输出口。底层文件分为:时间计数模块。分秒计数模块为60计数,时计数模块为24计数。显示模块。显示模块由四个六进制计数器模块和一个七段译码器组成。六进制计数器为六选一选择器的选择判断端提供输入信号, 六选一选择器的选择输出端分别接秒个位、秒十位、分个位、分十位和时个位、时十位的选通位用来完成动态扫描显示,同时依次输出秒个位、秒十位、分个位、分十位和时个位、时十位数向给译码模块。整点报时
9、模块。当时间到整点时就报时。输入有时分计数,时钟脉冲。闹钟模块。通过校时校分电路确定闹钟时间,经过比较语句,当计时电路时间与闹钟时间一致时,连接蜂鸣器进行报时。各电路设计原理1.分频电路实验平台给定脉冲频率是48MHz,而本次实验需要多种频率的脉冲,如1KHz、500Hz、1Hz,则需设计分频电路,对48MHz进行分频。实现方法是对48MHz先进行48分频,再进行1000分频最后分别进行1000分频和2分频得到需要的频率。模48分频电路图模1000分频电路图模2分频电路图电路说明:以模48分频器设计为例。在模48分频器电路中,选择74160为基本元件。当计数到47时,模48的q_ge3、q_s
10、hi2接与非门加至同步置数端LDN,从而实现正常计数。合成模块分别如下: 仿真波形:模48分频仿真图 模1000分频仿真图模2分频仿真图分频电路如下: 分频电路合成模块如下:2.计时电路由于计时电路要实现时分秒的计时,故我们需要设计模六十、模二十四计数器用来表示时间。实现方法:由2个模60计数器和1个模24计数器构成秒、分、时位的计数。模60电路实现分秒计时,模24实现时计时。分时清零端分别接入校分、校时开关,选择接通1HZ校对或正常计时;各清零端接入清零开关,实现立即清零。模60计时电路图模24计时电路图电路说明:以模24计数器为例。在24小时计时电路中,选择74160为基本元件。当60分钟
11、计时电路计数至59秒时,模60的q_ge0、q_ge3、q_shi0、q_shi2接与非门产生的进位信号接CLK;当24小时计时电路计数到23的时候,qh_ge0、qh_ge1、qh_shi1接与非门加至同步置数LDN,从而实现正常计数。其中的CLRN是清零端,以实现清零功能。合成模块分别如下: 仿真波形:模60计时仿真图模24计时仿真图计时电路如下:计时电路合成模块如下:3.动显电路译码显示部分采用了动态显示,即每个时刻只有1个数码管在工作,各个数码管依次轮流工作,故需要轮流选通六组数据(时分秒各两位),这样需要一个模六的序列发生器,根据clk的频率快速扫描产生的地址值作为使能控制信号,依次
12、按照000,001,010,011,100,101顺序循环,由这三位地址码选出4位BCD码,并对应地进行输出至显示译码(三-八译码器)中去。与此同时,将模六序列发生器产生的地址值送到LED管上去,此时只有一个数码管在工作,所以工作数码管显示正确数据。由于数码管依次显示的频率较高,而人眼存在视觉暂留,分辨不出数码管是闪烁的。显示译码电路模块的结构框图动显电路如下:动显电路合成模块如下:4.防颤电路由于校分、校时由机械开关控制,不可避免地产生抖动,使得在实际调整过程中产生跳位退位等不理想效果,为此在设计过程中除考虑基本功能外还需考虑加入防抖动部分。防颤功能:设计加入一个锁存器来防止抖动干扰。使得只
13、有时钟脉冲来临时的信号被读入锁存器,其非平稳状态无法读入。防颤电路如下:防颤电路合成模块如下:保持功能:由于在调校过程中需要把其他位置上的信号锁住,故还需要提供保持功能。因为停住了秒钟信号其他时钟信号就无法跳动了,故保持电路只需要收到调校信号后让秒钟使能无效即可,故利用AND模块,使得K1=0正常工作,K1=1时钟保持不变。保持电路如下:校分校时功能:由于校分和校时内部功能一样,只有正常情况下的进位信号不同,故设计同一个模块进行控制,通过2选1选择器,当K=0正常工作,K=1时可以快速校分。校分电路如下:清零功能:由于清零信号只需要对各时钟模块进行清零,不存在抖动影响控制效果的情况故不需要防抖
14、动装置,故设计中把清零开关直接接到各模块的清零端。5.报时模块报时电路要实现以下功能:当时钟计到5953”时开始报时,在5953”, 5955”,5957” 时报时频率为512Hz,5959”时报时频率为1KHz。为实现该功能,需要判断分钟秒钟的十位和个位。由于分钟只有一个状态:59,而秒钟有53、55、57和59四个状态,故设计时把两模块分开制作。 根据上述功能列出逻辑表达式:F =5953”f3+5955”f3+5957”f3+5959”f4=5951”(2”f3+4”f3+6”f3+8”f4)=整点报时总电路图如下:电路说明:qm_shi3、qm_shi1、qs_ge4、qs_ge3、q
15、s_ge2、qs_ge1分别为秒钟十位的第三位、第一位,秒钟个位的第四、第三、第二、第一位(从高位到低位),输出为频率信号。 整点报时总电路图合成模块如下:6.闹钟电路闹钟功能的描述:可对闹钟进行设定,仅设定小时和分钟,调校时不显示秒钟。调校过程不影响时钟正常工作。当显示时间与闹钟设定的时间(即时钟和分钟一致)时,进行报时。闹钟具有清零、使能功能。对于上述功能,做如下描述:首先要实现一屏双显功能,即是一组LED管在不同的控制信号下分别显示数据。这样我们就需要一个数据选择器,控制选择显示闹钟时间或现实时间。切换电路VHDL语言描述如下: architecture behave of QieHua
16、nDianLu isbeginbeep=beep_cnt or beep_naozhg;process(key8)beginif(key8=0)thendisp_out(0)=jishi_out(0);dig_out(0)=dig_cnt(0);disp_out(1)=jishi_out(1);dig_out(1)=dig_cnt(1);disp_out(2)=jishi_out(2);dig_out(2)=dig_cnt(2);disp_out(3)=jishi_out(3);dig_out(3)=dig_cnt(3);disp_out(4)=jishi_out(4);dig_out(4)=
17、dig_cnt(4);disp_out(5)=jishi_out(5);dig_out(5)=dig_cnt(5);disp_out(6)=jishi_out(6);elsedisp_out(0)=naozhong_out(0);dig_out(0)=dig_nzhg(0);disp_out(1)=naozhong_out(1);dig_out(1)=dig_nzhg(1);disp_out(2)=naozhong_out(2);dig_out(2)=dig_nzhg(2);disp_out(3)=naozhong_out(3);dig_out(3)=dig_nzhg(3);disp_out(
18、4)=naozhong_out(4);dig_out(4)=dig_nzhg(4);disp_out(5)=naozhong_out(5);dig_out(5)=dig_nzhg(5);disp_out(6)=naozhong_out(6);end if;end process;end behave;切换电路合成模块如下:为了设定闹钟,可按如上述校分校时一样的思路,通过1Hz脉冲来自动控制其运行。同样该开关可能带来抖动影响设定,所以同样要加上一个防抖动装置。这样我们需要一个模六十计数器、模二十四计数器、防抖动装置。这三个模块上述设计中已经描述过,故不再讨论。闹设电路如下:闹设电路合成模块如下:
19、 要实现显示时钟与闹钟时间一致时进行报时,则需要响闹电路且对于分或时都需要比较十位和个位。响闹电路VHDL语言描述如下:architecture behave of XiangNaoDianLu issignal temp:std_logic;beginbeep=temp;process(data_sm1,data_sm2,data_sh1,data_sh2)beginif(key5=0 and key6=0) thenif(data_m1=data_sm1 and data_m2=data_sm2 and data_h1=data_sh1 and data_h2=data_sh2)thent
20、emp=clk_500;else temp=0;end if;end if;end process;end behave;响闹电路合成模块如下:7.总电路图方案调试1.编译当编译某个文件时,先将这个文件置顶,然后按 键,若有错误,修改软件指出的错误;若无错误,即编译成功。2.仿真新建“Vector waveform file”文件,然后选择“insert”,改变输入信号的值,保存文件,点击processing里面的simulating tool。当进行timing仿真时,在simulation input里面选择刚刚建立的vwf文件,勾选overwrite simulation input f
21、ile with simulation results,点击Start,即开始仿真,再点击open,即可观察波形;当进行functional仿真时,在Start前,需先点击generate functional simulation netlist,形成功能文件,然后再重复timing仿真的动作即可。3.下载首先对置顶文件进行编译,选择assignments里面的device里面的device & pin options,修改unused pins为as input tri-stated。然后选择assignments里面的pins,在对应地引脚的location中输入适当的引脚号(管脚分配)
22、,输入完成后,对刚才的文件再编译一次。最后点击,勾选program/configure后即可start。下载测试后,按复位键后数码管显示0时0分0秒开始计数,分秒时计数都正确。按动调分键或调小时键后,分位或小时位开始自加,再按键后停止。当时间到整点时会有报时,按动停止键停止报时,不按此键时自动到十秒后停止报时。设计结果达到要求。管脚分配图结论经过本次实验加深了对EDA的了解,掌握了一定的VDHL语言编写和逻辑电路的设计方法,学会了QuartusII的基本使用方法,包括设计较复杂电路设计、调试、仿真及使用FPGA实现电路功能等。同时对实际设计电路有了更进一步的认识,理论上正确的东西在实验上不一定
23、能很好实现,只有根据实际情况做出调整才能得到较好的结果。电路设计时不仅要着眼与细节的斟酌和布局更要看到整体模块的拼接。不是各模块都是完美的拼接起来就一定是完美的,只有当各模块能很好的协调工作才算成功,因为有时候单独设计好的电路与其他部分匹配不佳则反而起不到好效果,有时候为整体运行可靠牺牲某个部分的精简性是必要的。其次,设计电路一般不能一步到位,设计某模块时无法想到以后的情况,所以要经常性地回过头来检验,看看已设计好的电路是否满足现在情况下的要求,不满足则要做出一定的调整甚至是重做。其次即是已经设计好且完全达到设计要求,也要来检查是否能更精简更有效更人性化。总的来说,这次设计的数字钟还是比较成功
24、的,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。参考文献1 EDA 设计实验指导书 南京理工大学 电子技术中心2 数字逻辑电路与系统设计 电子工业出版社 蒋立平编3 电子线路实践教程 科学出版社 姜萍编4 VHDL数字系统设计教程 北京航天航空大学出版社 夏宇闻编致谢EDA设计实验(II)实验报告能够顺利完成,作者在这里诚挚地向南京理工大学电子技术中心姜萍老师、南京理工大学电子工程与光电技术学院谭雪琴老师两位指导教师致谢。对我的实验搭档白骏同学也表示感谢。对于实验中给予我帮助的同学,作者在此一并感谢。第 21 页/共20页