EDA课程设计报告书 数字钟设计
设计者: 指导老师: 学 号: 专业班级: 学 院
目录
1. 摘要,关键字………………………………………………………3 2. 正文…………………………………………………………………3
2.1设计任务及要求……………………………………………………3 2.2方案选择与论证……………………………………………………3 2.3方案的原理框图及其说明……………………………………………4 2.4硬件选择……………………………………………………………4 2.5系统设计详述………………………………………………………4 2.6系统仿真及分析…………………………………………………… 6 2.7下载测试及分析……………………………………………………9 2.8收获体会、存在问题和进一步的改进意见等…………………………10
3.参考文献……………………………………………………………10
2
VHDL语言实现数字电子钟的设计
[摘要]:随着基于PLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。本文详细介绍EDA课程设计任务——数字钟的设计的详细设计过程及结果,并总结出心得体会。 [关键字]:EDA技术;VHDL语言;数字钟
EDA技术作为现代电子设计技术的核心,它依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑简化、逻辑分割、逻辑综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。笔者详细介绍在QUARTUS II软件环境下开发基于VHDL语言数字钟的设计。
1.设计任务及要求
1、设计内容
选用合适的可编程逻辑器件及外围电子元器件,设计一个数字电子钟,利用EDA软件(QUARTUS Ⅱ)进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法和原理图输入法,并下载到EDA实验开发系统,连接外围电路,完成实际测试。
2、设计要求
(1)具有时、分、秒计数显示功能。
(2)具有清零的功能,且能够对计时系统的小时、分钟进行调整。 (3)小时为十二小时制。
2.方案选择与论证
数字系统的设计采用自顶向下、由粗到细, 逐步分解的设计方法, 最顶层电路是指系统的整体要求, 最下层是具体的逻辑电路的实现。自顶向下的设计方法将一个复杂的系统逐渐分解成若干功能模块, 从而进行设计描述, 并且应用EDA 软件平台自动完成各功能模块的逻辑综合与优化, 门级电路的布局, 再下载到硬件中实现设计。
因此对于数字钟来说首先是时分秒的计数功能,然后能显示,附带功能是清零、调整时分。通过参考EDA课程设计指导书,有以下方案:
1. 作为顶层文件有输入端口:时钟信号,清零按键,调时按键,调分按键;输
出端口有:用于接数码管的八段码输出口,扫描用于显示的六个数码管的输出口。
2.
底层文件分为:○1时间计数模块。分秒计数模块计数为60计数,时计数模块为12计数。○2显示模块。显示模块由一个六进制计数器模块和一个七段译码器组成。六进制计数器为六选一选择器的选择判断端提供输入信号, 六
3
选一选择器的选择输出端分别接秒个位、秒十位、分个位、分十位和时个位、时十位的选通位用来完成动态扫描显示,同时依次输出秒个位、秒十位、分个位、分十位和时个位、时十位数向给译码模块。○3报警模块(为指导书自带)。当时间到整点时就报时。输入有时分秒计数,时钟脉冲。
3.方案的原理框图及其说明
秒脉冲 秒计数 秒计数 分脉冲 分计数 分计数 传数 时脉冲 时计数 整点报警 扬声器 秒脉冲 时计数 送数及六选一选择器 译码 扫描 数码管 以上为方案原理图,秒计数、分计数模块为60计数,计满后分别产生分脉冲、时脉冲,用于分计数、时计数。各计数器同时将计数值送报时模块和送数及六选一选择器模块。送数及六选一选择器模块依次将秒分时数送往译码模块译码,同时产生扫描信号用于数码管扫描显示。整点报警在整点时刻将秒脉冲信号送扬声器声音报警。
4.硬件选择
本次选用cyclone系列EP1C3T144C8芯片。外部需接2个不同频率的时钟信号,及几个上升沿按键,并接扬声器和不许译码器的数码管。以上均由EDA试验箱提供。
5.系统设计详述
整个系统的构成如下图所示。其中输入端口有:
clk1——用于送数及六选一选择器和整点报警的时序脉冲; Stop——用于整点报时的停止控制;
clk——作为秒脉冲和整点报警的信声音号; reset——用于各个模块复位; setmin——调整分钟,接按键; sethour——调整小时,接按键; 输出端口:
speak——接扬声器,用于报时; led——接数码管,送字型码;
dp——接数码管的小数点为,隔开时分秒位;
4
sel——位选扫描信号输出口,接数码管位选接口;
Second模块为秒计数模块。Clk作为秒脉冲,reset复位,setmin用于调整分钟,接按键,enmin是当秒计数记到59后产生分脉冲,秒计数重新从0开始计数。Daout为秒计数。
秒计数模块
Minute模块为分计数模块。Clk作为分脉冲,接second模块的enmin,reset用于复位,sethour用于调整小时,接按键,enhour是当分计数记到59后产生时脉冲,分计数重新从0开始计数。Daout为分计数。
分计数模块 Hour模块为时计数模块,clk为时脉冲,接minute模块的enhour,reset复位,daout为时计数。
时计数模块
5
Alert模块为整点报时模块。其中clk1用于在其上升沿判断是否为整点时刻,若是则加clk秒脉冲从speak端口输出到扬声器作为声音信号,报时10秒。Stop为停止报时控制,接按键,按动按键时若在报时则报时停止。Reset复位端。dainsh和dianm分别接分计数和秒计数,用于判断整点和报时。
报时模块
Settime模块为送数及六选一选择器,clk作为其时序脉冲,reset用于复位,sec接second模块的daout端,秒计数输入端;min接minute模块的daout端,分计数输入端,hour接hour模块的daout端,时计数的输入端。Daout用于分别
输出秒个位,秒十位,分个位,分十位,时个位,时十位,送到deled
送数及六选一选择器
译码;sel输出扫描信号,六选一多 路选择,dp输出小数位给数码管小 数位,用于隔开时分秒位。
Deled用于译码显示。Num用于接收settime模块daout端送来的数,经译码生成七段码从led输出接数码管的七段码输入口。
译码模块
6.系统仿真及分析
1.各模块仿真及分析。 ○
1 Second模块 6
从仿真图形上来看,daout从0加到59后enmin有进位,setmin有脉冲时,enmin也会出现脉冲,说明秒计数,分调整,分脉冲都是正确的。 ○2minute模块
从仿真图形上来看,daout从0加到59后enhour有进位,说明分计数,时脉冲都是正确的。 3hour模块 ○
7
从仿真图看,daout从0加到B即0到11后重新从0开始加,说明十二小时计数正确。 ○4settime模块
从仿真波形看,sec、min、hour分别设置数为09、08、1时,daout也依次输出0、9、0、8、0、1,将时分秒的每一位输出,同时sel输出正确扫描信号,dp小数点输出也正确。 5alert模块 ○
从仿真波形来看,当stop=0和damin=0时,可看出speak有脉冲输出,stop=1停止。说明报时是正确的。
8
6deled模块 ○
从仿真波形来看,num输入0~9,而led分别输出相应正确字型码。
7.下载测试及分析
下载测试后的效果如下图所示,按复位键后数码管显示0时0分0秒开始计数,分秒时
计数都正确。按动调分键或调小时键后,分位或小时位开始自加,再按键后停止。当时间到整点时会有十秒报时,按动停止键停止报时,不按此键时自动到十秒后停止报时。设计结果达到要求。
9
8.收获体会、存在问题和进一步的改进意见等。
此次设计虽然指导书上有参考程序,但经本组同学仿真后仿真波形与理论值差别很大,
因而遇到很大困难,使进度大大减慢。“梅花香自苦寒来,宝剑锋从磨砺出”,经过本组同学齐心协力,我们从程序发现分秒时计数上出了问题。参考程序分秒时计数采用十六进制表示,即用BCD码来表示计数值,便于后面译码输出。但不足是在计数时,加一运算时按十六进制来计算,本来控制加到59或11(均采用BCD码表示),实际上计数超过60或12.,是问题根本所在。认识到这一方面,本人通过将所有计数值数据类型改为整型,并在其它方面做了较大改进。经过全组成员努力和老师的认真指导,多次仿真结果正确,硬件测试显示正确。报时模块起先报时时间不准,经最后修改也正确报时。这次设计圆满完成任务。
从这次EDA设计中,可以看我们的动手能力还有待提高。另一方面,我们更加对EDA从实践上更有深刻认识。从实践中发现问题,分析问题,解决问题在这次设计中很大的体现出来,提高了我们的能力和自信。同时,成功与团队合作十分不开的。
[参考文献]
[1] 潘松, 黄继业. EDA 技术实用教程[M] 第2版 北京: 科学出版社, 2006
[2] 曹昕燕 ,周凤臣,聂春燕.EDA技术实验与课程设计 北京:清华大学出版社,2006.5
10
因篇幅问题不能全部显示,请点此查看更多更全内容