课程设计论文.docx

上传人:b****3 文档编号:10521776 上传时间:2023-05-26 格式:DOCX 页数:15 大小:234.12KB
下载 相关 举报
课程设计论文.docx_第1页
第1页 / 共15页
课程设计论文.docx_第2页
第2页 / 共15页
课程设计论文.docx_第3页
第3页 / 共15页
课程设计论文.docx_第4页
第4页 / 共15页
课程设计论文.docx_第5页
第5页 / 共15页
课程设计论文.docx_第6页
第6页 / 共15页
课程设计论文.docx_第7页
第7页 / 共15页
课程设计论文.docx_第8页
第8页 / 共15页
课程设计论文.docx_第9页
第9页 / 共15页
课程设计论文.docx_第10页
第10页 / 共15页
课程设计论文.docx_第11页
第11页 / 共15页
课程设计论文.docx_第12页
第12页 / 共15页
课程设计论文.docx_第13页
第13页 / 共15页
课程设计论文.docx_第14页
第14页 / 共15页
课程设计论文.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课程设计论文.docx

《课程设计论文.docx》由会员分享,可在线阅读,更多相关《课程设计论文.docx(15页珍藏版)》请在冰点文库上搜索。

课程设计论文.docx

课程设计论文

广西工学院

课程设计(论文)说明书

课题名称数字秒表

 

系别信息与计算科学系

专业电子信息科学与技术

班级电科081

学号200800902019

姓名廖玉成

指导教师韦艳霞

2011年9月9日

广西工学院

课程设计任务书

课题名称  数字秒表

 

 

 

系别信息与计算科学系

专业电子信息科学与技术

班级电科081

学号200800902019 

姓名廖玉成

 

 

指导教师韦艳霞

教研室主任李政林

系主任李栋龙

2011年9月9日

一、课题的主要内容和基本要求

设计一块数字秒表,能够精确反映计时时间,并完成复位、计时功能。

要求:

1、秒表计时的最大范围为1小时,精度为0.01秒,并可显示计时时间的分、秒、0.1秒等度量;

2、可进行秒表清零;

3、可设置秒表的启动/停止开关。

按下开关,开始计时,得到并显示计时结果;放开开关,停止计时。

 

二、所需完成的工作

1、完成设计的程序编写和编译工作;

2、至少完成两个模块的波形仿真和硬件调试;

3、完成论文的书写,要求15左右页。

三、主要参考文献、资料

1.1.潘松,黄继业.EDA技术实用教程(第二版)[M].北京:

北京航空航天大学出版社,1990

2.2.刘欲晓,方强,黄宛宁等.EDA技术与VHDL电路开发应用实践[M].北京:

电子工业出版社,2009

3.3.谭会生,瞿遂春等.EDA技术综合应用实例与分析[M].西安:

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

四、完成期限

2011年9月9日前

摘要

秒表是我们日常生活中常用的测时仪器,它能够简单地完成计时、清零等功能,从一年一度的校际运动会到NBA、世界杯、奥运会,都能看到秒表的身影。

本文介绍了用EDA技术和VHDL语言设计的数字秒表,其结构简单,软、硬件相结合可以实现秒表的开始、暂停、复位、清零等功能,具有制作成本低,操作方便,使用寿命长等优点,适用于计时、停车场、火车站等场合。

关键词:

EDA技术、VHDL语言、秒表、数字、计时

Abstract

Stopwatchiswidelyusedinourdailylifeofthetimetestinstrument,whichcannotonlyfinishcountingsimply,butalsoclearingfunction.FromtheannualschoolsportsmeetingtotheNBA,WorldCup,OlympicGames,youcanseethestopwatchhereandthere.ThispaperintroducesthedesignofdigitalstopwatchwhichusestheEDAtechnologyandVHDLlanguage.Itsstructureissimple;alsoitcanachievethestart,pause,resetandclearfunctionasthecombinationofsoftwareandhardware.Withtheadvantagesoflowcost,convenientoperation,longlifeandsoon.Andwhat’smore,itisapplicabletocounting,parkinglot,railwaystationsetc.

Keywords:

EDAtechnology;VHDLlanguage;stopwatch;digital;timing

1绪论

21世纪,EDA技术在电子领域发挥的作用重大,成为了现代电子设计的核心。

利用EDA技术,大量的设计工作都可以通过计算机虚拟完成,大大了提高了设计效率。

目前,EDA技术已在电子产品企业、企事业单位和科研教学单位广泛地使用。

大部分高校的电子类相关专业也都开设了EDA的相关课程。

EDA的一些工具软件,如multisim7、PSPICE、CAD、Protel、Graphics、Synopsis、Microseism等在教学和实际生产中都得到了广泛的应用。

尤其是EDA的仿真技术能打破专业教学上的一些局限性,在激发学生学习兴趣的同时保证了良好的教学效果。

数字秒表是采用数字电路实现对分、秒,数字显示的计时装置,广泛用于体育竞赛中。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字秒表的精度,远远超过老式秒表,秒表的数字化给人们生产生活带来了极大的方便。

本文设计一块数字秒表,能够精确反应计时时间,并完成复位、计时功能。

秒表计时的最大范围为1小时,精度为0.01秒。

秒表可得到计时时间的分、秒、0.1秒等多量,且各多量单位可以正确进位。

当复位清零有效时,秒表清零并做好计时准备。

在任何情况下,只要按下复位开关,秒表都要无条件地进行复位操作,即使在计时过程中也要无条件地清零。

设置秒表启动/停止开关。

按下该开关,秒表即刻开始计时,并得到计时结果;放开该开关时,计时停止。

2系统总体设计

2.1总体设计思路

根据系统设计要求,可以预先设计若干个不同进制的计数器单元模块,然后将其进行例化组合来得到数字秒表系统。

要满足数字秒表的精度,首先要获得精确的计时基准信号,这里的系统精度要求为0.01秒,因此必须设置周期为0.01秒的时钟脉冲。

1/100秒、秒、分等计时单位之间的进位转换可以通过不同进制的计数器实现,现在分别设计十进制计数器和六进制计数器,每位计数器均能输出相应计时单位计数结果,其中,十进制计数器可以实现0.01秒、0.1秒、1秒和1分为单位的计数,六进制计数器可以实现以10秒、10分为单位的计数。

把各计数器级联,即可同时显示白分秒,秒和分钟。

停止和启动功能可以通过计时使能信号完成。

信号有效时正常计时,否则没有脉冲输入到计数器,从而停止计时。

因为一旦按下复位清零开关数字秒表就无条件清零,因此其优先级必须高于计时使能信号。

2.2系统框图

数字秒表的系统框图如图1所示。

Clk0是周期为0.01秒的时钟脉冲,clr0为复位清零信号,en为计时使能信号,dataout[23…0]为输出信号,以不同的时钟周期为单位的计数器所对应的输入信号如表1所示。

Stopwatch

inst

图1数字秒表系统框图

表1计数单位及对应的输出单位

计数时钟周期

对应的输出信号

Dataout[3…0]

0.01秒

Dataout[7…4]

0.1秒

Dataout[11…8]

1秒

dataout[15…12]

10秒

Dataout[19…16]

1分

Dataout[23…20]

10分

2.2.1十进制模块

图2十进制计数器示意图

其中,clk为时钟脉冲信号,计数器的状态在时钟上升沿发生改变:

clr为复位清零信号,高电平有效;ena为计数使能信号,高电平有效;q[3…0]为计数输出信号,输出计数器当前的值;co为进位输出信号,当计数器满时,产生进位,高电平有效。

2.2.2六进制模块

图3六进制示意图

六进制除了计数的进制不同之外,其余输入和输出信号和十进制的相同。

3硬件设计原理

3.1系统逻辑图

数字秒表的实现主要是依赖于两个计数器模块的设计:

十进制计数器和六进制计数器。

通过例化这两个模块和模块之间特定形式的级联就可得到数字秒表,电路原理图如图4所示,其中,单元模块U4、U6为六进制计数器,实现以10秒和1分为单位的计时进位,其余单元模块均为十进制计数器。

图4数字秒表逻辑图

3.2.引脚分配

3.2.1十进制计数器的引脚分配

图5十进制计数器的引脚分配图

3.2.2六进制计数器的引脚分配

图6六进制计数器的引脚分配图

3.3系统硬件要求

1.时钟信号为1HZ;

2.FPGA芯片型号EP1K30TC144—3;

3.8个7段扫描共阴极数码显示管;

4.按键开关(清零、复位、暂停、计时等);

3.4硬件调试

将时序仿真正确的文件下载到实验箱中的EP1K30TC144—3中,通过合适的管脚分配,将相应的管脚连接起来,验证设计是否完成设计要求:

按下计时键时,开始计时,个位数满9向十位进1,十位数满6向前进1,计时的最大范围为1小时,精度为0.01秒;按下清零位开始无条件清零;按下复位键开始复位;按下暂停键计时暂停。

4系统仿真与分析

4.1十进制计数器产生的仿真波形

图7-a十进制计数器产生的仿真波形

图7-b六进制计数器产生的仿真波形

从图7-a可以看出,当复位信号clr高电平有效时,计数输出信号无条件清零,

被赋值为0(低电平);而从图7-b可以看出,当计数使能信号ena有效时,计数

器允许计数,每一个时钟周期的上升沿到达时,计数器都进行加1操作,当计数

器计满10个数时,输出进位信号,同时计数器清零并重新计数。

4.2六进制计数器产生的仿真波形

图8六进制计数器产生的仿真波形

六进制计数器与十进制计数器输入输出信号的定义完全相同,唯一不同的是计数器容量的大小差别。

当计数使能信号ena有效时,计数器允许计数,

每一个时钟周期的上升沿到达时,计数器都进行加1操作,当计数器计满6个数

输出进位信号,同时计数器清零并重新计数。

结论

两周过去了,数字秒表的课程设计已经完成,论文也已经写好,总算是有了最终结果。

通过这次课程设计,让我收获很多,也深有体会。

在整个课程设计过程中,不仅老师为我提供很好的指导,而且同学们给予我热情的帮助,没有他们的援手我就做不成这个课程设计。

设计过程中,我的时间主要用在仿真这一步,之前很少用过这个软件,很多地方都得自己慢慢摸索。

在这个实践过程中,我深刻的体会到掌握基础知识的重要性,掌握了知识,发现问题和解决问题才成为可能。

还有,我们必须要有耐心和毅力。

致谢

我要感谢韦艳霞老师的认真指导和宝贵意见。

感谢刘青正老师为我提供的DSP试验箱,使我很快的完成硬件的试验。

感谢罗承旺同学衷心热情的帮助。

感谢电科081班的给过我帮助的同学。

如果没有认真负责的老师和热情的同学提供的帮助,我就难以完成这个课程设计,所以我要感谢他们。

参考文献

1.潘松,黄继业.EDA技术实用教程(第二版)[M].北京:

北京航空航天大学出版社,1990

2.刘欲晓,方强,黄宛宁等.EDA技术与VHDL电路开发应用实践[M].北京:

电子工业出版社,2009

3.谭会生,瞿遂春等.EDA技术综合应用实例与分析[M].西安:

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

附录

十进制计数器模块的VHDL实现如下:

LIBRARYIEEE;-------加载库文件

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcnt10IS-----定义实体

PORT(

clk:

INSTD_LOGIC;------时钟信号

clr:

INSTD_LOGIC;------复位信号

ena:

INSTD_LOGIC;------计数信号

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);---计数输出信号

co:

OUTSTD_LOGIC----进位输出信号

);

ENDcnt10;

ARCHITECTURErtlOFcnt10IS----定义结构体

SIGNALtmp:

STD_LOGIC_VECTOR(3DOWNTO0);----定义计数器

BEGIN

PROCESS(clk,clr,ena)---当clk、clr、ena信号发生变化时,启动计数进程

BEGIN

IFclr='1'THEN---复位清零信号有效

tmp<="0000";---任何时刻均将计数器清零

ELSIFclk'EVENTANDclk='1'THEN---时钟上升沿

IFena='1'THEN-----允许计数

IFtmp="1001"THEN-----计数器满

tmp<="0000";

ELSE

tmp<=tmp+'1';----计数器加1

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(tmp)---当计数器发生变化时,启动输出进程

BEGIN

IFtmp="0000"THEN---计数器状态为0时

co<='1';----进位输出信号有效

ELSE

co<='0';----否则,为0

ENDIF;

ENDPROCESS;

q<=tmp;----输出计数器的值

ENDrtl;

六进制计数器模块的VHDL实现如下:

LIBRARYIEEE;-------加载库文件

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcnt6IS-----定义实体

PORT(

PORT(

clk:

INSTD_LOGIC;------时钟信号

clr:

INSTD_LOGIC;-----复位信号

ena:

INSTD_LOGIC;-----计数信号

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);---计数输出信号

co:

OUTSTD_LOGIC----进位输出信号

);

ENDcnt6;

ARCHITECTURErtlOFcnt6IS----定义结构体

SIGNALtmp:

STD_LOGIC_VECTOR(3DOWNTO0);----定义计数器

BEGIN

PROCESS(clk,clr,ena)---当clk、clr、ena信号发生变化时,启动计数进程

BEGIN

IFclr='1'THEN---复位清零信号有效

tmp<="0000";-----计数器清零

ELSIFclk'EVENTANDclk='1'THEN---到达时钟上升沿

IFena='1'THEN---允许计数

IFtmp="0101"THEN-----计数器满

tmp<="0000";

ELSE

tmp<=tmp+'1';----计数器加1

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(tmp)---当计数器发生变化时,启动输出进程

BEGIN

IFtmp="0000"THEN----进位输出信号有效

co<='1';

ELSE

co<='0';----否则,为0

ENDIF;

ENDPROCESS;

q<=tmp;---输出计数器的值

ENDrtl;

数字秒表顶层模块的VHDL实现如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYstopwatchIS-----定义实体

PORT(

clk0:

INSTD_LOGIC;----定义时钟信号,周期为0.01秒

clr0:

INSTD_LOGIC;---定义复位信号

en:

INSTD_LOGIC;---定义计时使能信号

dataout:

OUTSTD_LOGIC_VECTOR(23DOWNTO0)---输出计时结果

);

ENDstopwatch;

ARCHITECTURErtlOFstopwatchIS---定义结构体

COMPONENTcnt6IS---定义六进制计数器元件

PORT(

clk:

INSTD_LOGIC;

clr:

INSTD_LOGIC;

ena:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

co:

OUTSTD_LOGIC

);

endcomponentcnt6;

COMPONENTcnt10IS---定义十进制计数器元件

PORT(

clk:

INSTD_LOGIC;

clr:

INSTD_LOGIC;

ena:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

co:

OUTSTD_LOGIC

);

ENDCOMPONENTcnt10;

SIGNALco1:

STD_LOGIC;---定义计数器元件的进位输出信号

SIGNALco2:

STD_LOGIC;

SIGNALco3:

STD_LOGIC;

SIGNALco4:

STD_LOGIC;

SIGNALco5:

STD_LOGIC;

BEGIN---元件例化语句,通过计数器的级联实现数字秒表

U1:

cnt10PORTMAP(clk0,clr0,en,dataout(3downto0),co1);

U2:

cnt10PORTMAP(co1,clr0,en,dataout(7downto4),co2);

U3:

cnt10PORTMAP(co2,clr0,en,dataout(11downto8),co3);

U4:

cnt6PORTMAP(co3,clr0,en,dataout(15downto12),co4);

U5:

cnt10PORTMAP(co4,clr0,en,dataout(19downto16),co5);

U6:

cnt6PORTMAP(co5,clr0,en,dataout(23downto20));

ENDrtl;

 

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

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2