EDA数字秒表设计Word文档格式.docx
- 文档编号:20624970
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:12
- 大小:166.86KB
EDA数字秒表设计Word文档格式.docx
《EDA数字秒表设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA数字秒表设计Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
(4)分频器…………………………………………………9
(5)控制器…………………………………………………10
(6)译码器…………………………………………………11
3.系统仿真…………………………………………………12
(1)六进制计数器…………………………………………12
(2)十进制计数器…………………………………………13
(3)蜂鸣器…………………………………………………13
(4)分频器…………………………………………………13
(5)控制器…………………………………………………13
(6)译码器…………………………………………………13
四、实验心得…………………………………………………14
五、参考资料…………………………………………………14
一、综合实践的目的
1.了解各种器件的基本结构,掌握MAX+PLUSII的使用方法。
2.用图形输入法和VHDL语言完成完成一个数字系统设计题的设计、仿真、下载。
3通过课程设计使我们能熟练掌握MAX+PLUSII的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
4.培养我们分析、寻找和排除电子电路中常见故障的能力。
二、综合实践理论基础和核心内容
1.理论基础
使用VHDL语言描述一个秒表电路,利用MAX+PLUSII软件进行源程序设计、编译、仿真,最后形成下载文件下载至装有FPGA芯片的实验箱,进行硬件测试,要求实现秒表功能。
2.核心内容
秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器和6进制计数器组成。
在整个秒表中最关键的是如何获得一个精确的1MHZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
秒有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器(七段数码管驱动译码器)的连接,当计时达30分钟后,蜂鸣器鸣响10声。
四个10进制计数器:
用来分别对百分之一秒、十分之一秒、秒和分进行计数;
两个6进制计数器:
用来分别对十秒和十分进行计数;
分频器:
用来产生1MHZ计时脉冲;
显示译码器:
完成对显示的控制。
选定实验箱产生的频率送入分频器,输出1MHz频率,驱动显示百分秒的十进制计数器,此计数器进位端接显示时分秒的十进制计数器。
依次接下去,分别是秒,十秒,分,十分。
最后设计一个驱动蜂鸣器的模块
三、综合实践具体内容和记录
1.系统组成框图及原理图
2.各模块的原理及其程序
(1)六进制计数器
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='
then
ifstart='
then
iftemp>
0101"
elsetemp<
=temp+1;
endif;
endprocess;
daout<
=temp;
endbehave;
(2)十进制计数器
useieee.std_logic_arith.all;
entitycount10is
port(
clr,start,clk:
outstd_logic;
bufferstd_logic_vector(3downto0));
endcount10;
architecturebehaveofcount10is
process(clr,start,clk)
ifclr='
thendaout<
elsif(clk'
)then
ifdaout="
1001"
cout<
elsedaout<
=daout+1;
endif;
endprocess;
endbehave;
(3)蜂鸣器
entityalarmis
port(clk,I:
q:
outstd_logic
);
endalarm;
architecturearofalarmis
signaln:
integerrange0to20;
signalq0:
std_logic;
process(clk)
begin
ifclk'
ifi='
thenq0<
n<
=0;
elsifn<
=19andi='
q0<
=notq0;
=n+1;
elseq0<
q<
=q0;
endar;
(4)分频器
entityFENPIN100is
port(clr,clk:
instd_logic;
bufferstd_logic);
endFENPIN100;
architectureoneofFENPIN100is
signalcounter:
integerrange0to12499;
process(clr,clk)
if(clk'
counter<
elsifcounter=12499then
q<
=notq;
else
=counter+1;
endone;
(5)控制器
entity
seltimeis
port(clr,clk:
inbit;
dain0,dain1,dain2,dain3,dain4,dain5:
instd_logic_vector(3downto0);
sel:
outstd_logic_vector(2downto0);
outstd_logic_vector(3downto0));
endseltime;
architectureaofseltimeis
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;
endcase;
enda;
(6)译码器
entitydeledis
port(num:
instd_logic_vector(3downto0);
led:
outstd_logic_vector(6downto0));
enddeled;
architectureaofdeledis
process(num)
begin
casenumis
when"
=>
led<
0111111"
0001"
0000110"
0010"
1011011"
0011"
1001111"
0100"
1100110"
1101101"
0110"
1111101"
0111"
0100111"
1000"
1111111"
1101111"
whenothers=>
0000000"
3.系统仿真
(1)六进制
(2)十进制
四、实验心得
整个设计过程中遇到很多问题。
一个问题就是发现秒走得太快,不符合实际。
发现是分频器有问题。
分频器的频率对秒表的准确度至关重要!
一是在教学实验箱上的硬件连接错误导致的,二是语言上的语言逻辑错误。
避免这些错误需要认真仔细的检查对逻辑错误逐步排错!
通过本次课设,我不仅学到了关于EDA的许多专业知识,同时也让我感觉到团队合作的重要性。
其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。
另外,与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系也可以扩展自己的思维。
通过思考、发问、自己解惑并动手、改进的过程,才能真正的完成课题。
经过这次课程设计的过程,我相信在以后的课程设计中我们会吸取经验教训,做出更好的设计来。
五、参考资料
[1]《可编程器件EDA技术与实践》——李国洪沈明山著机械工业出版社
[2]《EDA技术与数字系统设计》———尹常永著西安电子科技大学出版社
[3]《EDA工程实践技术》——————付家才著化学工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 数字 秒表 设计