数字时钟课程设计.docx

上传人:b****6 文档编号:5816535 上传时间:2023-01-01 格式:DOCX 页数:16 大小:457.32KB
下载 相关 举报
数字时钟课程设计.docx_第1页
第1页 / 共16页
数字时钟课程设计.docx_第2页
第2页 / 共16页
数字时钟课程设计.docx_第3页
第3页 / 共16页
数字时钟课程设计.docx_第4页
第4页 / 共16页
数字时钟课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数字时钟课程设计.docx

《数字时钟课程设计.docx》由会员分享,可在线阅读,更多相关《数字时钟课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

数字时钟课程设计.docx

数字时钟课程设计

 

东北石油大学

课程设计

课程硬件课程设计

题目数字时钟设计

院系计算机与信息技术学院

专业班级

学生姓名

学生学号

指导教师

 

 

东北石油大学课程设计任务书

课程硬件课程设计

题目数字时钟设计

专业

主要内容、基本要求等

一、主要内容:

利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言和层次设计方法设计实现数字钟,完成硬件设计设计和功能仿真,最后下载到EL教学实验箱中予以实现。

二、基本要求:

1.具有时,分,秒,计数显示功能,以24小时循环计时。

2.具有清零功能。

三、扩展要求

1.整点报时功能。

四、参考文献

[1]孙富明,李笑盈.基于多种EDA工具的FPGA设计,电子技术应用,2002年1月,第1期

[2]潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2002

[3]卢杰,赖毅.VHDL与数字电路设计.北京:

科学出版社,2001

[4]谭会生,张昌凡.EDA技术及应用[M].西安:

西安电子科技大学出版社,2004.4.

[5]江国强.EDA技术习题与实验[M].北京:

电子工业出版社,2005.1.

 

完成期限2周

指导教师

专业负责人

2012年6月10日

 

目录

 

第1章概述1

1.1EDA的简述1

1.2EDA技术设计方法2

第2章系统工作平台介绍3

2.1EDA的软件工作平台3

2.2QuartusⅡ软件概述3

第3章数字时钟主要设计过程5

3.1数字时钟设计思想5

3.2数字时钟设计流程图5

第4章数字时钟的详细设计过程6

4.1秒模块6

4.2分模块7

4.3时模块8

4.4报时模块9

4.5八段数码管扫描电路10

4.6数码管显示驱动电路11

4.7数字时钟顶层文件12

第5章功能测试13

5.1顶层文件仿真13

5.2引脚设置和下载13

5.3电子数字钟硬件验证14

结论15

参考文献16

第1章概述

1.1EDA的简述

EDA技术是现代电子信息工程领域的一门新技术,EDA主要包括4大要素:

1.大规模可编程逻辑器件2.硬件描述语言3.软件开发工具4.实验。

开发系统但从EDA技术的几个主要方面的内容来看,可以理解为:

EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。

可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。

完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片[2]。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。

大致可以分为三个发展阶段。

20世纪70年代的CAD(计算机辅助设计)阶段:

这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。

20世纪80年代的QAE(计算机辅助工程设计)阶段:

这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能[3]。

20世纪90年代是EDA(电子设计自动化)阶段:

这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成[4]。

EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。

该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。

在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。

特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造[5]。

21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。

1.2EDA技术设计方法

 

(1)前端设计(系统建模RTL级描述)后端设计(FPGAASIC)系统建模。

  

(2)IP复用。

  (3)前端设计。

  (4)系统描述:

建立系统的数学模型。

  (5)功能描述:

描述系统的行为或各子模块之间的数据流图。

  (6)逻辑设计:

通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。

  (7)仿真:

包括功能仿真和时序仿真,主要验证系统功能的正确性及时序特性。

 

第2章系统工作平台介绍

2.1EDA的软件工作平台

PLD(ProgrammableLogicDevice)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。

目前主要有两大类型:

CPLD(ComplexPLD)和FPGA(FieldProgrammableGateArray)。

它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。

生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。

我们采用了QuartusⅡ软件作为开发工具。

2.2QuartusⅡ软件概述

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。

 

第3章数字时钟主要设计过程

3.1数字时钟设计思想

1.时钟计数:

秒——60进制BCD码计数;

分——60进制BCDD码计数;

时——24进制BCDD码计数;

同时整个计数器有清零功能,在接近整数时间能提供报时信号。

2.具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。

3.扬生器在整点时有报时驱动信号产生。

3.2数字时钟设计流程图

图3-1数字时钟流程图

 

第4章数字时钟的详细设计过程

4.1秒模块

秒模块的主要功能是由60进制(由两个10进制的计数器拼凑出来,分别对秒个位以及秒十位进行计数)的计数器实现的,其中设置了两个输入端:

clk和rst做为时钟和使能端;三个输出端:

sec0,sec1和co分别作为秒个位,秒十位和进位端;两个计数变量cnt1和cnt0。

在进程中,当rst为高电平时,则将变量cnt1与cnt0同时清零。

当时钟信号发生改变并且出现上升沿时,如果变量cnt1与cnt0分别为5和9时,则进位输出端高电平有效。

否则当变量cnt0小于9时,cnt0计数加1,进位输出端低电平不输出。

当变量cnt0大于等于9时,变量cnt0清零,同时变量cnt1计数加1,进位输出端低电平不输出。

最后再将两个变量cnt1与cnt0分别送给输出端sec1和sec0(如图4-1所示)。

图4-1秒模块

秒模块程序节选:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitySECONDis

port(clk,rst:

instd_logic;----时钟/清零信号

sec1,sec0:

outstd_logic_vector(3downto0);----秒高位/低位

co:

outstd_logic);-------输出/进位信号

endSECOND;

architectureSECofSECONDis

…………

下图为秒模块程序仿真图:

图4-2秒模块仿真图

4.2分模块

同秒模块相似也由60进制(由两个10进制的计数器拼凑出来,分别对分个位以及分十位进行计数)的计数器实现的,其中设置了两个输入端:

clk和clr做为时钟和使能端;三个输出端:

min0,min1和co分别作为分个位,分十位和进位端;两个计数变量cnt1和cnt0。

在进程中,当clr为高电平时,则将变量cnt1与cnt0同时清零。

当时钟信号发生改变并且出现上升沿时,如果变量cnt1与cnt0分别为5和9时,则进位输出端高电平有效。

否则当变量cnt0小于9时,cnt0计数加1,进位输出端低电平不输出。

当变量cnt0大于等于9时,变量cnt0清零,同时变量cnt1计数加1,进位输出端低电平不输出。

最后再将两个变量cnt1与cnt0分别送给输出端min1和min0(如图4-3示)。

图4-3分模块

分模块程序节选:

…………

begin

ifclr='1'then----当clr为1时,高低位均为0

cnt1:

="0000";

cnt0:

="0000";

elsifclk'eventandclk='1'then

ifcnt1="0101"andcnt0="1001"then----当记数为59(即经过59个记时脉冲)

co<='1';----进位

cnt1:

="0000";

cnt0:

="0000";

elsifcnt0<"1001"then----小于9时

cnt0:

=cnt0+1;

co<='0';

else

cnt0:

="0000";

cnt1:

=cnt1+1;

co<='0';

endif;

endif;

…………

分模块仿真图如下:

图4-4分模块仿真图

4.3时模块

秒模块的主要功能是由24进制(同样由两个10进制的计数器拼凑出来,分别对时个位以及时十位进行计数)的计数器实现的,其中设置了两个输入端:

clk和clr做为时钟和使能端;三个输出端:

h1,h0和co分别作为时个位,时十位和报时端;两个计数变量cnt1和cnt0。

在进程中,当clr为高电平时,则将变量cnt1与cnt0同时清零。

当时钟信号发生改变并且出现上升沿时,如果变量cnt1与cnt0分别为2和3,则将变量cnt1与cnt0同时清零。

否则当变量cnt0小于9时,cnt0计数加1,报时输出端高电平有效。

当变量cnt0大于等于9时,变量cnt0清零,同时变量cnt1计数加1,报时输出端高电平有效。

最后再将两个变量cnt1与cnt0分别送给输出端h1,h0(如图4-5所示)。

图4-5时模块

时模块程序节选:

………………

else

cnt1:

=cnt1+1;-----高位记数累加

cnt0:

="0000";

co<='1';

endif;

endif;

h1<=cnt1;

h0<=cnt0;

endprocess;

endhour_arc;

下图为时模块仿真图:

图4-6时模块仿真图

4.4报时模块

报时模块很简单,其输入端:

clk作为时钟,m0、m1、s0、s1作为秒个/十位、分个/十位的信号输入端。

输出端:

qlk作为报时端。

当clk为高电平有效时,如果m0、m1、s0、s1同时有效,则qlk输出‘1’,否则qlk输出‘0’(如图4-7所示)。

图4-7报时模块

报时模块程序节选:

…………

process(clk)

begin

ifm1="0101"andm0="1001"ands1="0101"ands0="1001"then---当秒高位为5,低位为9时且分高位为5,低位为9时,也就是“59分59秒”的时候“报时”

qlk<='1';-----高频输出为1

else

qlk<='0';

endif;

…………

4.5八段数码管扫描电路

该模块是由计数器来实现的。

输入端:

clk,sec0,sec1,min0,min1,h0,h1分别作为扫描时钟,和秒个/十位,分个/十位,时个/十位,输出端:

daout,sel分别作为输出显示和位选信号端。

信号:

count作为计数信号。

在进程中,当clk发生改变并且出现上升沿时,如果信号count大于等于5时,则将其清零,否则计数加1。

通过case语句在计数器中的6种信号状态下将秒个/十位,分个/十位,时个/十位分别送给输出端daout。

最后将信号count送给位选信号端sel(如图4-8所示)。

图4-8八段数码管扫描电路

数码管显示驱动电路程序节选:

…………

casecountis

when"000"=>daout<=sec0;----秒个位

when"001"=>daout<=sec1;----秒十位

when"010"=>daout<=min0;----分个位

when"011"=>daout<=min1;----分十位

when"100"=>daout<=h0;----时个位

when"101"=>daout<=h1;----时十位

whenothers=>daout<=sec0;

endcase;

…………

4.6数码管显示驱动电路

该模块的输入端为d,它与八段数码管扫描电路相连,输出端为q,是段选信号输出端。

通过case语句将0到9的每个数字用7段译码管表示出来并送给输出端q(如图4-9所示)。

4-9数码管显示驱动电路

数码管显示驱动电路程序节选:

…………

casedis

when"0000"=>q<="0111111";--显示0

when"0001"=>q<="0000110";--显示1

when"0010"=>q<="1011011";--显示2

when"0011"=>q<="1001111";--显示3

when"0100"=>q<="1100110";--显示4

when"0101"=>q<="1101101";--显示5

when"0110"=>q<="1111101";--显示6

when"0111"=>q<="0100111";--显示7

when"1000"=>q<="1111111";--显示8

whenothers=>q<="1101111";--显示9

endcase;

…………

4.7数字时钟顶层文件

顶层文件的输入端有跟秒模块时钟端相连的clk1端,与秒、分、时模块使能端相连的reset,与八段数码管扫描电路的时钟端相连的clkdsp。

输出端有与报时模块相连的喇叭speaker,与数码管显示驱动电路相连的dp,与八段数码管扫描电路相连的sel1。

在内部连线中,秒模块的个/十位的输出端、分模块的个/十位的输出端、时模块的个/十位的输出端通过信号分别与数码管显示驱动电路的输入端sec0,sec1,min0,min1,h0,h1和报时模块的m0、m1、s0、s1相连。

秒模块的进位输出端与分模块的时钟输入端相连,分模块的进位输出端与时模块的时钟输入端相连,时模块的报时输出端与报时模块的时钟输入端相连,数码管显示驱动电路的输入端为与八段数码管扫描电路的输出端相连。

顶层文件程序节选:

…………

COMPONENTHOUR

port(clk,clr:

instd_logic;----输入时钟/高电平有效的使能信号

h1,h0:

outstd_logic_vector(3downto0);

co:

outstd_logic);----时高位/低位

endCOMPONENT;

COMPONENTALERT

port(clk:

instd_logic;------高频声控制

qlk:

outstd_logic);----低频声控制

endCOMPONENT;

…………

 

第5章功能测试

5.1顶层文件仿真

对顶层文件进行仿真得出下图:

图5-1顶层文件仿真图

5.2引脚设置和下载

图5-2图形式引脚锁定对话框

图5-3配置文件下载窗口

5.3电子数字钟硬件验证

将电子数字钟的sof下载文件下载到EL试验箱的MAX7000芯片中,运行结果见图5-4所示。

从图5-4中可见,秒、分、时电路均按60进制和24进制进行计数。

本次设计达到了任务书中规定的任务。

5-4EL教学实验箱显示图

 

结论

 

通过这段时间的学习,使我初步的掌握了EDA技术的应用,在此同时也掌握了其相关的应用软件QuartusII的安装及基本使用方法。

在本次的课程设计中,利用微机和QuartusII软件系统,在老师的帮助下我完成了数字时钟的设计。

并且通过多次的认证,确认实验结果与理论相一致,实验的设计和结果均为正确。

在数字时钟的设计过程中我掌握了EDA技术的VHDL文本输入的设计方法,这种方法让设计更加的简洁和方便。

同时也非常牢固了掌握了数字时钟的设计原理,包括计数器、数码管显示驱动电路、八段数码管扫描电路、报警器。

在这次的设计中我初步的掌握了常用的硬件描述语言VHDL语言。

应用VHDL进行工程实际的优点有许多方面。

例如它有很强的行为描述能力,具有丰富的仿真语句和库函数,对设计的描述具有相随独立性等等。

EDA技术有着非常好的发展前景,是进几年电子工业的发展趋向,中国的EDA行业发展十分迅速,有着很大的潜力,同时也激起了我对EDA学习的极大兴趣。

 

参考文献

[1]孙富明,李笑盈.基于多种EDA工具的FPGA设计,电子技术应用,2002年1月,第1期

[2]潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2002

[3]卢杰,赖毅.VHDL与数字电路设计.北京:

科学出版社,2001

[4]谭会生,张昌凡.EDA技术及应用[M].西安:

西安电子科技大学出版社,2004.4.

[5]江国强.EDA技术习题与实验[M].北京:

电子工业出版社,2005.1.

 

东北石油大学课程设计成绩评价表

课程名称

硬件课程设计

题目名称

数字时钟设计

学生姓名

李洋

学号

100702140617

指导教师姓名

梁吉胜

职称

讲师

序号

评价项目

指标(优秀)

满分

评分

1

选题难度

选题难度较高,或者对原题目进行了相当程度的改进。

10

2

工作量、工作态度和出勤率

工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。

10

3

课程设计质量

按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。

40

4

报告质量

问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。

30

5

回答问题

在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。

10

6

创新(加分项)

工作中有创新意识,对前人工作有改进或有应用价值。

在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。

+5

总分

评语:

 

指导教师:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1