EDA课设实验报告文档格式.docx
《EDA课设实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课设实验报告文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
![EDA课设实验报告文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/20/aa3359cd-8c40-4a2c-ae2e-3cb3cf2c136a/aa3359cd-8c40-4a2c-ae2e-3cb3cf2c136a1.gif)
三、综合实践具体内容和记录
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)
ifclr='
1'
thendaout<
="
0000"
;
elsif(clk'
eventandclk='
)then
ifstart='
then
ifdaout="
1001"
cout<
='
elsedaout<
=daout+1;
0'
endif;
endif;
endprocess;
endbehave;
六制计数器(count6vhd)
两个6进制计数器:
用来分别对十秒和十分进行计数,其程序如下:
libraryieee;
entitycount6is
port(clk,clr,start:
outstd_logic_vector(3downto0);
outstd_logic);
endcount6;
architecturebehaveofcount6is
signaltemp:
std_logic_vector(3downto0);
process(clk,clr)
begin
ifclr='
thentemp<
cout<
elsifclk'
then
iftemp>
0101"
elsetemp<
=temp+1;
endprocess;
daout<
=temp;
endbehave;
蜂鸣器(alarm.vhd)
其程序如下:
entityalarmis
port(clk,I:
q:
outstd_logic
);
endalarm;
architecturebehaveofalarmis
signaln:
integerrange0to20;
signalq0:
std_logic;
process(clk)
begin
ifclk'
ifi='
thenq0<
n<
=0;
elsifn<
=19andi='
q0<
=notq0;
=n+1;
elseq0<
q<
=q0;
显示译码器(deled.vhd)
显示译码器:
完成对显示的控制。
entitydeledis
port(num:
instd_logic_vector(3downto0);
led:
outstd_logic_vector(6downto0));
enddeled;
architecturebehaveofdeledis
process(num)
begin
casenumis
when"
=>
led<
1111110"
0001"
0110000"
0010"
1001101"
0011"
1111001"
0100"
0110011"
1011011"
0110"
1011111"
0111"
1110000"
1000"
1111111"
1111011"
whenothers=>
endcase;
endprocess;
选择器(seltime.vhd)
entityseltimeis
port(clr,clk:
inbit;
dain0,dain1,dain2,dain3,dain4,dain5:
instd_logic_vector(3downto0);
sel:
outstd_logic_vector(2downto0);
outstd_logic_vector(3downto0));
endseltime;
architecturebehaveofseltimeis
signaltemp:
integerrange0to5;
process(clk)
if(clr='
)then
daout<
sel<
000"
temp<
elsif(clk='
andclk'
event)then
iftemp=5thentemp<
=temp+1;
casetempis
when0=>
sel<
=dain0;
when1=>
001"
=dain1;
when2=>
010"
=dain2;
when3=>
011"
=dain3;
when4=>
100"
=dain4;
when5=>
101"
=dain5;
四:
数字秒表的原理图
系统仿真结果:
五:
心得体会:
通过这次课程设计,我对用EDA技术设计简单器件有了进一步的了解,在设计过程中,计数器的设计让我对数字电路加深了了解,在一开始时总是会出现多多少少的错误,通过课本、翻阅资料,对照教材上类似的秒表设计的相关文件,对模块的结构及原理有了更深的认识,所以编程的时候才能得心应手。
对VHDL语言的使用也有了进一步的加强,对所用到的软件有了更加深刻的了解,这对我们以后的学习和工作有很大的帮助。
本实验综合性较高,让我们学习到了怎么去下载程序,也懂得了分频原理,懂得LED灯的显示原理,使得我们的知识更加丰富与实用。
课设期间也发现了自己的很多不足,但是通过自己动手动脑,既增加了知识,又对专业知识得到了提升。
课设对于我们来说是锻炼,是成长,短短的几天,虽然忙碌,却很充实。
虽然这并不是什么伟大的设计,但是我们了解软件的元件管理深层含义,以及模块元件之间的连接概念,熟悉了FPGA设计的调试过程中手段的多样化,看着自己的成果,让我们感到一种小小的成就感,对电子系统的设计有了浓厚的兴趣。
这次课设带给我锻炼一定会有更深的意义和影响。