EDA课程设计抢答器Word格式文档下载.docx
《EDA课程设计抢答器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA课程设计抢答器Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
![EDA课程设计抢答器Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/5699cb8a-4f38-4b7c-9459-067f6d12b887/5699cb8a-4f38-4b7c-9459-067f6d12b8871.gif)
5.1译码显示模块的功能7
5.2译码显示模块的源程序8
5.3译码显示模块的时序仿真图9
6抢答器的其他功能模块9
6.1犯规功能模块9
6.2犯规功能模块的源程序10
6.3犯规功能模块的时序仿真图11
7抢答器的顶层原理图设计12
7.1顶层原理图的源文件12
7.2顶层原理图的时序仿真图13
8课程设计的总结14
参考文献14
1抢答器的设计要求
设计一个可容纳四组参赛者同时抢答的数字抢答器,可判断第一抢答者并报警指示抢答成功,其他组抢答均无效。
给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。
2抢答器的设计分析
系统设计方案:
整个系统至少有两个主要模块——抢答鉴别模块、抢答计时模块;
其他功能模块(犯规警告模块,输出显示模块)。
按照要求,我们可以将整个系统分为四个主要模块:
抢答鉴别模块;
抢答计时模块;
犯规功能模块;
译码显示模块。
3抢答器的抢答鉴别模块
3.1抢答鉴别模块的功能
该模块主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余的抢答信号封锁的功能,并有四个抢答信号s0、s1、s2、s3;
抢答状态显示信号states;
抢答与警报时钟信号clk2;
系统复位信号rst;
警报信号warm。
图3-1抢答器鉴别元件图
Figure3-1responderidentificationcomponentdiagram
3.2抢答鉴别模块的源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjianbeiis
port(rst,clk2:
instd_logic;
s0,s1,s2,s3:
states:
bufferstd_logic_vector(3downto0);
light:
warm:
outstd_logic);
endjianbei;
architectureoneofjianbeiis
signalst:
std_logic_vector(3downto0);
begin
p1:
process(s0,rst,s1,s2,s3,clk2)
begin
ifrst='
0'
then
warm<
='
;
st<
="
0000"
elsifclk2'
eventandclk2='
1'
if(s0='
orst(0)='
)andnot(st
(1)='
orst
(2)='
orst(3)='
)
thenst(0)<
endif;
if(s1='
orst
(1)='
)andnot(st(0)='
thenst
(1)<
if(s2='
thenst
(2)<
if(s3='
thenst(3)<
warm<
=st(0)orst
(1)orst
(2)orst(3);
endif;
endprocessp1;
p2:
process(states(0),states
(1),states
(2),states(3),light)
if(st="
)thenstates<
elsif(st<
0001"
0010"
0100"
0011"
1000"
endif;
light<
=st;
endprocessp2;
endone;
3.3抢答鉴别模块的时序仿真图
图3-2抢答鉴别模块的时序仿真图
Figure3-2viestoanswerfirstidentifymoduletimingsimulationdiagram
抢答时需要一个允许开始抢答信号,设为states,该信号输入后,指示灯亮,信号为light,提示选手开始抢答,为了鉴别抢答者,设置s0,s1,s2,s3为了使系统重新进入抢答状态,还需要一个复位信号,设置为rst。
在图中可以看出,s0的速度最快,但明显有一点抢先,紧随其后的依次是s1,s2,s3,这3人均没有抢先,而且可以看出,抢答开始后,灯light[1]亮。
4抢答器的抢答计时模块
4.1抢答计时模块的功能
该模块主要实现抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警,抢答时钟信号clk1;
抢答使能信号start;
无人抢答警报信号warn;
计时中止信号stop;
计时十位和个位信号tb,ta。
图4-1抢答计时元件图
Figure4-1figureviestoanswerfirsttimecomponents
4.2抢答计时模块的源程序
entityjsis
port(clk1,rst,start,stop:
ta,tb:
bufferstd_logic_vector(3downto0));
Endjs;
architectureoneofjsis
signalco:
std_logic;
process(clk1,rst,start,stop,ta)
orstop='
then
ta<
elsifclk1'
eventandclk1='
co<
ifstart='
ifta="
1001"
co<
elseta<
=ta-1;
endif;
process(co,rst,start,stop,tb)
tb<
elsifco'
eventandco='
iftb="
thentb<
elsetb<
=tb-1;
endone;
4.3抢答计时模块的时序仿真图
图4-2抢答计时模块时序仿真图
Figure4-2viestoanswerfirsttimermoduletimingsimulationdiagram
计时信号设为十位和个位信号tb,ta以及抢答时钟信号clk1;
计时中止信号stop。
从图中可以看出,每10个ta使tb改变1,stop时停止计时。
5抢答器的译码显示模块
5.1译码显示模块的功能
该模块中主要实现抢答过程中将BCD码转换成7段的功能。
图5-1译码显示元件图
Figure5-1decodingdisplaycomponentinfigure
5.2译码显示模块的源程序
entityymis
port(bcd:
instd_logic_vector(3downto0);
dout:
outstd_logic_vector(6downto0));
endym;
architecturertlofymis
process(bcd)
casebcdis
when"
=>
dout<
1000000"
when"
1111001"
0100100"
0110000"
0011001"
0101"
0010010"
0110"
0000010"
0111"
1111000"
0000000"
0010000"
whenothers=>
1111111"
endcase;
endprocess;
endrtl;
5.3译码显示模块的时序仿真图
图5-2译码显示模块时序仿真图
Figure5-2decodingdisplaymoduletimingsimulationdiagram
6抢答器的其他功能模块
6.1犯规功能模块
该模块主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内,人抢答或是计数到时蜂鸣器开始报警,计数停止信号stop;
状态输出信号alm;
计数脉冲clk。
图6-1犯规功能元件图
Figure5-1foulfunctioncomponentdiagram
6.2犯规功能模块的源程序
entityshengyinis
port(rst:
warn:
clk:
inintegerrange0to9;
stop:
alm:
outstd_logic);
end;
architecturebhvofshengyinis
process(warn,ta,tb,stop,clk)
then
alm<
elsifstop='
elsifta=0andtb=0then
=clk;
elsifwarn='
elsealm<
6.3犯规功能模块的时序仿真图
图6-2犯规功能模块时序仿真图
Figure6-2foulsfunctionmoduletimingsimulationdiagram
当主持人按下控制键,有限时间内无人抢答或是计数到时蜂鸣器开始报警,计数停止信号stop;
7抢答器的顶层原理图设计
7.1顶层原理图的源文件
图7-1顶层原理图
Figure7-1thetopprinciplediagram
7.2顶层原理图的时序仿真图
图7-2顶层时序仿真图
Figure7-2toptimingsimulationdiagram
顶层模块是以上几个模块综合起来,并且实现整个系统的功能。
由图可以看出,当抢答开始后,如果限制时间,即20s内无人抢答,则输出超时报警信号。
超前抢答时,也会报警。
如图,s0明显有些抢先,虽然他的速度最快,然后依次是s2,s1,s3,所以s2才是有效的最快抢答成功者,并且可以看到,灯在选手抢答时亮起,声音信号也在抢答时响起。
8课程设计的总结
本次的EDA课程设计虽然只有短暂的一周时间,但是通过实践,使我对EDA技术有了更进一步的了解。
同时,大致懂得了一个课题制作的具体流程和实施方法。
另外,课程设计对QuartusⅡ软件的使用要求较高,从而使我能较为熟练的运用此软件。
在设计时,采用模块化的设计思路使得问题变的简单明了,大大缩短了时间,降低了发生错误的机侓,也便于修改和更新。
课程设计中,需要找很多资料,在当今的信息化环境中,虽然资料很多,但需要仔细斟酌才能找到所要的。
这次的课程设计很好的锻炼了这种能力。
此外,与同学和老师的交流必不可少,我从中也学到了不少东西。
课程设计是一次很好的锻炼机会,我从中学的很多知识对将来的学习和工作都有很大的帮助。
参考文献
[1]潘松,黄继业.EDA技术与VHDL(第3版).清华大学出版社.2009.
[2]马建国,孟宪元.FPGA现代数字系统设计.清华大学出版社.2010.