EDA课设实验报告.docx

上传人:b****5 文档编号:3237558 上传时间:2022-11-20 格式:DOCX 页数:9 大小:398.79KB
下载 相关 举报
EDA课设实验报告.docx_第1页
第1页 / 共9页
EDA课设实验报告.docx_第2页
第2页 / 共9页
EDA课设实验报告.docx_第3页
第3页 / 共9页
EDA课设实验报告.docx_第4页
第4页 / 共9页
EDA课设实验报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

EDA课设实验报告.docx

《EDA课设实验报告.docx》由会员分享,可在线阅读,更多相关《EDA课设实验报告.docx(9页珍藏版)》请在冰豆网上搜索。

EDA课设实验报告.docx

EDA课设实验报告

北华航天工业学院

综合实践总结报告

 

综合实践名称:

EDA技术与实践

数字秒表设计

综合实践地点、时间:

专业班级:

 

一、概述

秒表的逻辑结构主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。

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

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

当计时达60分钟后,蜂鸣器报警。

二、综合实践目的

1.掌握多位计数器相连的设计方法

2.掌握十进制、六进制计数器的设计方法

3.巩固多位共阴极扫描显示数码管的驱动及编码

4.掌握扬声器的驱动

5.掌握EDA技术的层次化设计方法

三、综合实践具体内容和记录

1、硬件电路设计

计数器设计

这里需要四个十进制计数器(分别作为数字秒表的百分之一秒、十分之一秒、秒和分)和两个六进制计数器(分别作为数字秒表的十秒和十分),当要停止计数时,START端置0;当要计数器清零时,CLR端置0.

2.程序设计及仿真波形

十进制计数器(count10.vhd)

四个10进制计数器:

用来分别对百分之一秒、十分之一秒、秒和分进行计数,其程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entitycount10is

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;

六制计数器(count6vhd)

两个6进制计数器:

用来分别对十秒和十分进行计数,其程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycount6is

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;

 

蜂鸣器(alarm.vhd)

其程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityalarmis

port(clk,I:

instd_logic;

q:

outstd_logic

);

endalarm;

architecturebehaveofalarmis

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;

endbehave;

显示译码器(deled.vhd)

显示译码器:

完成对显示的控制。

其程序如下:

libraryieee;

useieee.std_logic_1164.all;

entitydeledis

port(num:

instd_logic_vector(3downto0);

led:

outstd_logic_vector(6downto0));

enddeled;

architecturebehaveofdeledis

begin

process(num)

begin

casenumis

when"0000"=>led<="1111110";

when"0001"=>led<="0110000";

when"0010"=>led<="1001101";

when"0011"=>led<="1111001";

when"0100"=>led<="0110011";

when"0101"=>led<="1011011";

when"0110"=>led<="1011111";

when"0111"=>led<="1110000";

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

when"1001"=>led<="1111011";

whenothers=>led<="1111111";

endcase;

endprocess;

endbehave;

选择器(seltime.vhd)

其程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityseltimeis

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;

architecturebehaveofseltimeis

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;

endbehave;

四:

数字秒表的原理图

系统仿真结果:

五:

心得体会:

通过这次课程设计,我对用EDA技术设计简单器件有了进一步的了解,在设计过程中,计数器的设计让我对数字电路加深了了解,在一开始时总是会出现多多少少的错误,通过课本、翻阅资料,对照教材上类似的秒表设计的相关文件,对模块的结构及原理有了更深的认识,所以编程的时候才能得心应手。

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

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

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

课设对于我们来说是锻炼,是成长,短短的几天,虽然忙碌,却很充实。

虽然这并不是什么伟大的设计,但是我们了解软件的元件管理深层含义,以及模块元件之间的连接概念,熟悉了FPGA设计的调试过程中手段的多样化,看着自己的成果,让我们感到一种小小的成就感,对电子系统的设计有了浓厚的兴趣。

这次课设带给我锻炼一定会有更深的意义和影响。

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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