EDA数字秒表设计.docx

上传人:b****4 文档编号:4219094 上传时间:2022-11-28 格式:DOCX 页数:12 大小:274.92KB
下载 相关 举报
EDA数字秒表设计.docx_第1页
第1页 / 共12页
EDA数字秒表设计.docx_第2页
第2页 / 共12页
EDA数字秒表设计.docx_第3页
第3页 / 共12页
EDA数字秒表设计.docx_第4页
第4页 / 共12页
EDA数字秒表设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

EDA数字秒表设计.docx

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

EDA数字秒表设计.docx

EDA数字秒表设计

北华航天工业学院

《EDA技术综合设计》

课程设计报告

 

"

 

报告题目:

数字秒表设计

作者所在系部:

电子工程系

作者所在专业:

电子信息工程

作者所在班级:

作者姓名:

"

指导教师姓名:

完成时间:

2010年12月12日

 

内容摘要

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

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

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

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

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

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

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

"

关键词:

VHDL、数据选择器、计数器、显示器

一、系统组成框图……………………………………………………5

/

二、各模块原理及其程序……………………………………………5

1、六进制计数器……………………………………………………6

2、十进制计数器…………………………………………………6

3、蜂鸣器………………………………………………………7

4、译码器…………………………………………………………8

5、控制器…………………………………………………………9

三、系统仿真………………………………………………………10

1、:

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

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

4、蜂鸣器………………………………………………………10

5、译码器………………………………………………………10

6、控制器………………………………………………………10

四、心得体会……………………………………………………11

^

 

~

 

课程设计任务书

课题名称

数字秒表设计

完成时间

指导教师

职称

学生姓名

|

班级

总体设计要求和技术要点

总体设计要求:

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

技术要点:

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

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

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

.

工作内容及时间进度安排

工作内容:

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

进度安排;

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

第十六周的周三,周四在实验板上下载调试程序;

周五课设答辩。

课程设计成果

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

2.课程设计报告书

3.成果使用说明书

4.设计工作量要求

设计过程

数字秒表

#

计时控制电路

控制状态机

计时电路

显示电路

分频电路

计数器

六进制计数器

扫描电路

@

七段译码器

十进制计数器

系统组成框图

一.系统组成框图

 

;

 

~

二.各模块及的原理及其程序

(1)六进制计数器

libraryieee;

usecount6is

port(clk,clr,start:

instd_logic;

daout:

outstd_logic_vector(3downto0);

cout:

outstd_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;

endif;

"

endif;

endprocess;

daout<=temp;

endbehave;

(2)十进制计数器

libraryieee;

usecount10is

port(

clr,start,clk:

instd_logic;

cout:

outstd_logic;

daout:

bufferstd_logic_vector(3downto0));

endcount10;

architecturebehaveofcount10is

begin

process(clr,start,clk)

begin

^

ifclr='1'thendaout<="0000";

elsif(clk'eventandclk='1')then

ifstart='1'then

ifdaout="1001"thendaout<="0000";cout<='1';

elsedaout<=daout+1;cout<='0';

endif;

endif;

endif;

;

endprocess;

endbehave;

(3)蜂鸣器

libraryieee;

usealarmis

port(clk,I:

instd_logic;

q:

outstd_logic

);

"

endalarm;

architecturearofalarmis

signaln:

integerrange0to20;

signalq0:

std_logic;

begin

process(clk)

begin

ifclk'eventandclk='1'

~

then

ifi='0'thenq0<='0';

n<=0;

elsifn<=19andi='1'then

q0<=notq0;

n<=n+1;

elseq0<='0';

endif;

:

endif;

endprocess;

q<=q0;

endar;

(4)译码器

libraryieee;

use

entitydeledis

]

port(num:

instd_logic_vector(3downto0);

led:

outstd_logic_vector(6downto0));

enddeled;

architectureaofdeledis

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)控制器

libraryieee;

^

useseltimeis

port(clr,clk:

inbit;

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

instd_logic_vector(3downto0);

sel:

outstd_logic_vector(2downto0);

daout:

outstd_logic_vector(3downto0));

endseltime;

architectureaofseltimeis

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;

三.系统仿真

(1)六进制

 

(2)十进制

(3)蜂鸣器

(4)译码器

(5)控制器

 

四.心得体会

开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。

在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。

在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。

在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。

用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。

 

教师评语及设计成绩

评语

 

 

课程设计成绩:

指导教师:

日期:

年月日

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

当前位置:首页 > 解决方案 > 学习计划

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

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