EDA综合课程设计方案数字秒表.docx

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

EDA综合课程设计方案数字秒表.docx

《EDA综合课程设计方案数字秒表.docx》由会员分享,可在线阅读,更多相关《EDA综合课程设计方案数字秒表.docx(15页珍藏版)》请在冰点文库上搜索。

EDA综合课程设计方案数字秒表.docx

EDA综合课程设计方案数字秒表

北华航天工业学院

《EDA技术综合设计》

课程设计报告

报告题目:

数字秒表

作者所在系部:

电子工程系

作者所在专业:

电子信息工程

作者所在班级:

B10211

作者姓名:

指导教师姓名:

完成时间:

2012.12.13

内容摘要

近几年EDA技术发展十分迅速,在未来的三至五年EDA技术会像单片机一样成为社会的主流。

应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。

我们尝试利用VHDL为开发工具设计数字秒表。

秒表的逻辑结构较简单,它主要由十进制分频器、计数器、六进制计数器、数据选择器、和显示译码器等组成。

在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止及启动。

秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。

关键词:

VHDL,数字秒表,QuartusII,时序仿真图。

目录

一、实验目的…………………………………………………………………………1

二、硬件要求…………………………………………………………………………1

三、方案论证……………………………………………………………………1

四、模块说明…………………………………………………………………………1

分频器………………………………………………………………………………1

六进制计数器………………………………………………………………………2

十进制计数器………………………………………………………………………3

控制选择器…………………………………………………………………………4

译码器………………………………………………………………………………5

蜂鸣器模块…………………………………………………………………………6

五、整体连接图………………………………………………………………………7

六、实验步骤…………………………………………………………………………8

七、实验结果…………………………………………………………………………8

八、实验总结………………………………………………………………………8

九、参考文献…………………………………………………………………………8

三课程设计任务书

课题名称

秒表接口设计

完成时间

2012.12.13

指导教师

职称

副教授

学生姓名

班级

B10211

总体设计要求和技术要点

总体设计要求:

通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。

技术要点:

1.秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器的连接。

2.开关设置秒表报警器,每10秒钟,蜂鸣器鸣响1声,发光二极管闪烁。

当计时达60分钟后,蜂鸣器鸣响10声。

工作内容及时间进度安排

工作内容:

在软件上编辑、编译程序,并仿真到达实验要求。

进度安排。

课下编写程序,并要求程序能通过编译仿真;

第十五周在实验箱上下载调试程序;

验收。

课程设计成果

1.与设计内容对应的软件程序

2.课程设计报告书

3.成果使用说明书

4.设计工作量要求

一、实验目的

学习使用VHDL语言设计题目,掌握VHDL语言的编程方法以及EDA芯片的下载仿真。

二、硬件要求

(1)主芯片EPF10K10LC84-4。

(2)蜂鸣器。

(3)8位八段扫描共阴极数码显示管。

(4)二个按键开关(清零,开始/暂停)。

三、方案论证

四、模块说明

秒表的设计共化分为6个模块:

分频器(cfp),六计数器(count6),十计数器(count10),六选一选择器,译码器。

下面具体分析各个模块的原理、内容和功能。

1.分频器(cfp)

能够实现对10MHZ的clk时钟信号进行分频,从而得到0.01秒的计数脉冲信号即100hz的脉冲信号。

图1为分频器的仿真波形图。

libraryieee。

useieee.std_logic_1164.all。

entitycfpis

port(clk:

instd_logic。

q0:

bufferstd_logic)。

endcfp。

architectureaofcfpis

signalcounter:

integerrange0to49999。

begin

process(clk)

begin

if(clk='1'andclk'event)then

ifcounter=49999thencounter<=0。

q0<=notq0。

elsecounter<=counter+1。

endif。

endif。

endprocess。

enda。

图1.分频器的仿真波形

2.六计数器(COUNT601)

能够实现6进制循环计数,功能是秒到分和分到时的进制计数。

图2为六计数器的仿真波形图

libraryieee。

useieee.std_logic_1164.all。

useieee.std_logic_unsigned.all。

entitycount6is

port(clk,clr,start:

instd_logic。

daout:

outstd_logic_vector(3downto0)。

cout:

bufferstd_logic)。

endcount6。

architecturebehaveofcount6is

signaltemp:

std_logic_vector(3downto0)。

begin

process(clk,clr)

begin

ifclr='1'thentemp<="0000"。

cout<='0'。

elsifclk'eventandclk='1'then

ifstart='1'then

iftemp="0101"thentemp<="0000"。

cout<='1'。

elsetemp<=temp+1。

cout<='0'。

endif。

elsifstart='0'thentemp<=temp。

cout<=cout。

endif。

endif。

endprocess。

daout<=temp。

endbehave。

图2.六进制计数器的仿真波形

3.十进制计数器(COUNT24)

能够实现10进制循环计数,实现0.01秒到0.1秒、0.1秒到1秒、1秒到10秒、一分到10分的进制计数,图3为十计数器的仿真波形图。

libraryieee。

useieee.std_logic_1164.all。

useieee.std_logic_unsigned.all。

entitycount6is

port(clk,clr,start:

instd_logic。

daout:

outstd_logic_vector(3downto0)。

cout:

bufferstd_logic)。

endcount6。

architecturebehaveofcount6is

signaltemp:

std_logic_vector(3downto0)。

begin

process(clk,clr)

begin

ifclr='1'thentemp<="0000"。

cout<='0'。

elsifclk'eventandclk='1'then

ifstart='1'then

iftemp="0101"thentemp<="0000"。

cout<='1'。

elsetemp<=temp+1。

cout<='0'。

endif。

elsifstart='0'thentemp<=temp。

cout<=cout。

endif。

endif。

endprocess。

daout<=temp。

endbehave。

图3.十进制计数器的仿真波形

4.控制选择器

能够实现六路计数的循环选通即数码管将显示的数被循环选通,每一路对应一个数码管。

其中的sel为位选输出。

图4为其仿真波形。

libraryieee。

useieee.std_logic_1164.all。

useieee.std_logic_unsigned.all。

entitykonhzhiis

port(clr,clk:

inbit。

dain0,dain1,dain2,dain3,dain4,dain5:

instd_logic_vector(3downto0)。

sel:

outstd_logic_vector(2downto0)。

daout:

outstd_logic_vector(3downto0))。

endkonhzhi。

architectureaofkonhzhiis

signaltemp:

integerrange0to5。

begin

process(clk)

begin

if(clr='1')then

daout<="0000"。

sel<="000"。

temp<=0。

elsif(clk='1'andclk'event)then

iftemp=5thentemp<=0。

elsetemp<=temp+1。

endif。

casetempis

when0=>sel<="000"。

daout<=dain0。

when1=>sel<="001"。

daout<=dain1。

when2=>sel<="010"。

daout<=dain2。

when3=>sel<="011"。

daout<=dain3。

when4=>sel<="100"。

daout<=dain4。

when5=>sel<="101"。

daout<=dain5。

endcase。

endif。

endprocess。

enda。

图4.控制选择器仿真波形

5

5.译码器

能够实现将每路信号计数输出转换为数码管的段码。

图5为其仿真波形。

libraryieee。

useieee.std_logic_1164.all。

entityymis

port(num:

instd_logic_vector(3downto0)。

led:

outstd_logic_vector(6downto0))。

endym。

architectureaofymis

begin

process(num)

begin

casenumis

when"0000"=>led<="0111111"。

when"0001"=>led<="0000110"。

when"0010"=>led<="1011011"。

when"0011"=>led<="1001111"。

when"0100"=>led<="1100110"。

when"0101"=>led<="1101101"。

when"0110"=>led<="1111101"。

when"0111"=>led<="0100111"。

when"1000"=>led<="1111111"。

when"1001"=>led<="1101111"。

whenothers=>led<="0000000"。

endcase。

endprocess。

enda。

图5.译码器的仿真波形

6.蜂鸣器控制模块

能够实现蜂鸣器的十声报警和十秒报警。

libraryieee。

useieee.std_logic_1164.all。

useieee.std_logic_unsigned.all。

entityfengmingis

port(clk,I:

instd_logic。

q:

outstd_logic

)。

endfengming。

architecturearoffengmingis

signaln:

integerrange0to20。

signalq0:

std_logic。

begin

process(clk)

begin

ifclk'eventandclk='1'then

ifI='0'thenq0<='0'。

n<=0。

elseifn<=19thenq0<=not(q0)。

n<=n+1。

elseq0<='0'。

n<=0。

endif。

endif。

endif。

endprocess。

q<=q0。

endar。

五、数字秒表的整体连接图

最将上述的模块综合到一起就可以实现功能。

综合可以用一个元件例化,也可以用原理图连接。

为了简单我就直接连图了。

图6.综合连接示意图

六、实验步骤

(1)安装QuartusⅡ软件,为本项设计建立文件夹。

(2)输入设计工程的各个模块,存盘检查,编译并仿真至无误。

(3)调用底层文件的各个模块,连接整体原理图,进行存盘检查,编译仿真至无误。

(4)将PC机与实验箱进行连接选择器件并锁定引脚,然后进行编译下载。

(5)按照锁定好的引脚进行连线,进行硬件测试,验证仿真和测试结果。

七、实验结果

通过硬件测试,得到如下测试结果:

(1)秒表能够正确的计时,数码管能够正确显示时钟数字。

(2)每十秒钟蜂鸣器响一声和led灯闪一下,1小时后蜂鸣器响十声。

八、总结

通过这次课设,对VHDL语言的使用有了进一步的加强,对所用到的软件有了更加深刻的了解,这对我们以后的学习和工作有很大的帮助。

本实验综合性较高,让我们学习到了怎么去下载程序,也懂得了时钟源的产生和时钟源的分频原理,懂得LED灯的循环显示原理,使得我们的知识更加丰富与实用。

课设期间也发现了自己的很多不足,但是通过自己动手动脑,既增加了知识,有给了专业知识的提升。

九、参考文献

[1]李国洪、胡辉、沈明山.EDA技术与实验.机械工业出版社,2009

[2]阎石.数字电子技术基础(第五版).高等教育出版社,2006

指导教师评语及设计成绩

评语

课程设计成绩:

指导教师:

日期:

年月日

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

当前位置:首页 > 工程科技 > 材料科学

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

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