您的当前位置:首页EDA课程设计24制数字钟数字钟设计论文

EDA课程设计24制数字钟数字钟设计论文

2024-06-15 来源:小侦探旅游网


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

因篇幅问题不能全部显示,请点此查看更多更全内容