eda数字时钟设计报告.docx
- 文档编号:2808339
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:16
- 大小:396.87KB
eda数字时钟设计报告.docx
《eda数字时钟设计报告.docx》由会员分享,可在线阅读,更多相关《eda数字时钟设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
eda数字时钟设计报告
数字时钟的设计
学院信息与控制工程学院
专业电子信息工程
学号080640121
学生姓名伍建琪
学生姓名:
伍建琪指导老师:
魏蕊
摘要系统使用EDA技术设计了数字钟,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。
利用VHDL语言完成了数字钟的设计。
该数字钟能实现时、分、秒计数的显示功能,且以12小时循环计时。
整个系统结构简单,使用方便,功能齐全,精度高。
关键字数字钟;EDA;VHDL;
1引言
随着社会的发展,科学技术也在不断的进步。
特别是计算机产业,可以说是日新月异,数字钟作为计算机的一个组成也随之逐渐进入人们的生活,从先前的采用半导体技术实现的数字钟到现在广泛应用的采用高集成度芯片实现的数字钟。
数字钟正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言VHDL对数字钟中显示电路进行编程实现。
近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:
(1)电子器件及其技术的发展将更多地趋向于为EDA服务;
(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规范的EDA工具和硬件描述语言VHDL的运用;(4)数字系统的芯片化实现手段已成主流。
因此利用计算机和大规模复杂可编程逻辑器件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。
1.1课题的背景、目的
本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,加深对计算机体系结构的理解。
通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。
通过对实用数字钟的设计,巩固和综合运用计算机原理的基本理论和方法,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
通过课程设计深入理解计算机的组成原理,达到课程设计的目标。
1.2设计的内容
利用VHDL设计数字钟显示电路的各个模块,并使用EDA工具对各模块进行仿真验证。
数字钟显示电路的设计分为下面几个模块:
秒计数模块、分计数模块、小时计数模块.。
完成以后把各个模块整合后,显示相应的输出状态。
2EDA、VHDL简介
2.1EDA技术
EDA是电子设计自动化(ElectronicDesignAutomation)缩写,EDA是以计算机为工具,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。
综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。
综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。
2.2硬件描述语言——VHDL
VHDL语言的特点
1.用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。
2.VHDL元件的设计与工艺u无关,与工艺独立,方便工艺转换。
3.VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。
4.可以进行从系统级到逻辑级的描述,即混合描述。
5.VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。
3数字钟设计
3.1总体结构
整个电路有三大主体结构:
1)控制电路,2)脉冲电路,3)功能电路
时钟电路首先要有输入脉冲,由于平台提供了脉冲发生器,就省去了脉冲发生器的设计,这里我们只需要设计一个分频器,得到我们需要的频率。
时钟的计时范围是00:
00:
00——11:
59:
59,所以我们需要设计模六十和模十二的计数器组成时钟计时电路。
为了显示当前时钟时间,我们需要一个显示电路。
另外清零电路只需输入一些控制信号给时钟计时电路即可。
通过以上分析我们可以得到以下框图:
3.2数字时钟电路的工作原理
时标信号的频率由振荡器产生,由于及时最小单位是0.1s,所以时标信号经分频器后输出频率为10Hz的秒脉冲clk。
在无校准信号作用时,整个电路处于正常的计数状态。
时,分,秒计数器采用同步计数方式,其时钟脉冲端均接由分频器输出地时钟信号clk。
en为计数使能端,高电平有效。
秒计数的端en始终为高电平,所以每来一个秒脉冲clk,秒计数器计一个数,当秒计数器到六十时,其进位输出端co输出高电平产生进位,使分计数器的使能端en有效,每来一个分脉冲clk,分计数器计一个数,这就意味着满60s进1min;当秒计数器和分计数器到60,其相应的秒计数器的进位co和分计数器的进位co同时输出高电平使小时计数器的使能端en有效时,每来一个计数脉冲,小时计数器计一个数。
4各子模块的设计原理
4.1晶体振荡器
晶体振荡电路是构成数字式时钟的核心,它保证了时钟走时准确及稳定。
晶体振荡器它的作用是产生时间标准信号。
数字钟的精度主要取决于时间标准信号的频率及其稳定度。
因此,一般采用石英晶体振荡器经过分频得到这一信号。
晶体振荡器电路给数字钟提供一个频率稳定准确的1Khz的方波信号,可保证数字钟的走时准确及稳定。
不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。
如图4.1所示晶体振荡电路框图。
图4.1晶体振荡电路
4.2分频器电路
分频器是一种十分应用十分广泛的基本电路。
涉及具体的数字电路时,可能需要多种不同频率的时钟,但实际电路往往只需要一种单一频率的外部时钟输入,此时可通过分频电路得到所需时钟频率。
本实验分频器电路将1Khz的高频方波信号经100次分频后得到10Hz的方波信号供秒计数器进行计数,分频器实际上也就是计数器。
电路代码如下:
libraryieee;
useieee.std_logic_1164.all;
entityfenis
port(clk:
instd_logic;
q:
outstd_logic);
endfen;
architecturefen_arcoffenis
begin
process(clk)
variablecnt:
integerrange49downto0;
variablex:
std_logic;
begin
ifclk'eventandclk='1'then
ifcnt<49then
cnt:
=cnt+1;
else
cnt:
=0;
x:
=notx;
endif;
endif;
q<=x;
endprocess;
endfen_arc;
生成逻辑器件:
4.3时、分、秒计数器电路
(1)原理
时、分、秒计数器电路有相似的地方,本实验都是同文本编写。
十进制是调用软件自带芯片。
十二进制电路代码如下:
LIBRARYIEEE;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYWcounter12IS
PORT(CLC:
INSTD_LOGIC;
EN,CLEAR:
INSTD_LOGIC;
QH:
bufferSTD_LOGIC_VECTOR(3DOWNTO0);
QL:
bufferSTD_LOGIC_VECTOR(3DOWNTO0);
C:
OUTSTD_LOGIC);
ENDWcounter12;
ARCHITECTUREZQ12OFWcounter12IS
BEGIN
C<='1'WHEN((QH="0001")and(QL="0001")and(EN='1'))else'0';
PROCESS(CLC,CLEAR)
BEGIN
IF(CLEAR='0')THEN
QH<="0000";
QL<="0000";
ELSEIF(CLC'EVENTANDCLC='1')THEN
IF(EN='1')THEN
IF((QL<9ANDQH=0)OR(QL<1ANDQH=1))THEN
QL<=QL+1;
ELSE
QL<="0000";
IF(QH<1)THEN
QH<=QH+1;
ELSEQH<="0000";
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDZQ12;
六十进制电路代码如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYCOUNTER60IS
PORT(CLC:
INSTD_LOGIC;
EN,CLEAR:
INSTD_LOGIC;
QH:
bufferSTD_LOGIC_VECTOR(3DOWNTO0);
QL:
bufferSTD_LOGIC_VECTOR(3DOWNTO0);
C:
OUTSTD_LOGIC);
ENDCOUNTER60;
ARCHITECTURECOUNTOFCOUNTER60IS
BEGIN
C<='1'WHEN((QH="0101")and(QL="1001")and(EN='1'))else'0';
PROCESS(CLC,CLEAR)
BEGIN
IF(CLEAR='0')THEN
QH<="0000";
QL<="0000";
ELSEIF(CLC'EVENTANDCLC='1')THEN
IF(EN='1')THEN
IF(QL<9)THEN
QL<=QL+1;
ELSE
QL<="0000";
IF(QH<5)THEN
QH<=QH+1;
ELSEQH<="0000";
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDCOUNT;
(2)生成逻辑器件
4.4显示电路
显示电路程序
(1)LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYxianmaguanIS
PORT(A3,A2,A1,A0:
INBIT;
Y:
OUTBIT_VECTOR(0DOWNTO6));
ENDxianmaguan;
ARCHITECTUREdateflowOFxianmaguanIS
SIGNALA:
BIT_VECTOR(3DOWNTO0);
BEGIN
A<=A3&A2&A1&A0;
PROCESS(A)
BEGIN
CASEAIS
WHEN"0000"=>Y<="1111111";
WHEN"0001"=>Y<="0110000";
WHEN"0010"=>Y<="1101101";
WHEN"0011"=>Y<="1111001";
WHEN"0100"=>Y<="0110011";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 数字 时钟 设计 报告