基于VHDL的四路抢答器Word下载.docx
- 文档编号:16343773
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:12
- 大小:67.09KB
基于VHDL的四路抢答器Word下载.docx
《基于VHDL的四路抢答器Word下载.docx》由会员分享,可在线阅读,更多相关《基于VHDL的四路抢答器Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
指导
教师
崔瑞雪
职称
副教授
学生
姓名
张宏昌
班级
B08221
总体设计要求和技术要点
设计要求:
1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。
2.设置一个系统清除和抢答控制开关S,该开关由主持人控制。
3.抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
技术要点:
1、实现封锁功能;
3、总程序的编译、仿真、打包并下载到实验箱。
工作内容及时间进度安排
(1)做出概括的总框架,作出具体的课设安排。
11月17号
(2)根据要求分成几个模块,分别用VHDL语言进行程序的编写,然后编译,仿真,实现功能并进行修改。
11月20号
(3)将设计出来的模块进行组合,编译仿真,实现功能并进行修改。
11月25号
(4)对硬件进行学习,并进行软硬件的结合。
11月29号
(5)实验成果验收。
11月30号
课程设计成果
1.与设计内容对应的软件程序2.课程设计报告书
一、概述
抢答器的逻辑结构较简单,它主要由抢答鉴别模块、计时模块、选择控制和报警器组成。
在整个抢答器中最关键的是如何实现抢答封锁,在控制键按下的同时计数器倒计时显示有效剩余时间。
除此之外,整个抢答器还需有一个使能信号和一个归零信号,以便抢答器能实现公平抢答和停止。
抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。
当主持人按下控制键、选手按下抢答键或倒计时到时蜂鸣器按时钟脉冲周期响起。
二、方案设计与论证
将该任务分成五个模块进行设计,分别为:
抢答器鉴别模块、抢答器计时模块、译码模块、数选模块、报警模块,最后是手工连接电路制作顶层文件。
1、抢答器鉴别模块:
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是超前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余各路抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;
抢答使能信号s;
抢答状态显示信号states;
抢答与警报时钟信号clk2;
系统复位信号rst;
警报信号tmp。
2、抢答器计时模块:
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;
无人抢答警报信号warn;
计时中止信号stop;
计时十位和个位信号tb,ta。
3、数据选择模块:
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];
计数输出信号s;
数据输出信号y;
计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
4、报警模块:
在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;
状态输出信号q;
计数脉冲clk2。
5、译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
6、顶层文件:
在这个模块中是对前五个模块的综合编写的顶层文件。
三、单元电路设计
(一)抢答鉴别模块
VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityqdjb1is
port(rst,clk2:
instd_logic;
s0,s1,s2,s3:
states:
bufferstd_logic_vector(3downto0);
tmp:
outstd_logic);
endqdjb1;
architectureoneofqdjb1is
signalst:
std_logic_vector(3downto0);
begin
p1:
process(s0,rst,s1,s2,s3,clk2)
begin
ifrst='
0'
then
tmp<
='
;
st<
="
0000"
elsifclk2'
eventandclk2='
1'
then
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)<
tmp<
=st(0)orst
(1)orst
(2)orst(3);
endif;
endprocessp1;
p2:
process(states(0),states
(1),states
(2),states(3))
if(st="
)thenstates<
elsif(st<
0001"
0010"
0100"
0011"
1000"
endif;
endprocessp2;
endone;
(二)计时模块
VHDL源程序
entityjs1is
port(clk,rst,s:
ta,tb:
warn:
endjs1;
architectureoneofjs1is
signalco:
std_logic;
process(clk,rst,s,ta)
ta<
elsifclk'
eventandclk='
co<
ifs='
ifta="
1001"
co<
elseta<
=ta-1;
endif;
process(co,rst,s,tb)
tb<
elsifco'
eventandco='
iftb="
thentb<
elsetb<
=tb-1;
if(ta="
andtb="
)then
warn<
elsewarn<
ENDONE;
(三)数据选择模块
VHDL源程序
useieee.std_logic_arith.all;
entitysjxzis
port(a,b,c:
instd_logic_vector(3downto0);
clk2,rst:
instd_logic;
s:
outstd_logic_vector(1downto0);
y:
outstd_logic_vector(3downto0));
endsjxz;
architecturechooserofsjxzis
signalcount:
std_logic_vector(1downto0);
s<
=count;
process(clk2,rst)
if(rst='
)thencount<
00"
elsif(clk2'
)then
if(count>
10"
count<
elsecount<
=count+1;
casecountis
when"
=>
y<
=a;
01"
=b;
=c;
whenothers=>
null;
endcase;
endPROCESS;
endchooser;
(四)报警模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYALARMIS
PORT(CLK,I:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDALARM;
ARCHITECTUREBEHAVEOFALARMIS
BEGIN
PROCESS(I,CLK)
IFI='
THEN
q<
ELSIFI='
THEN
q<
=clk;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
(五)译码模块
ENTITYYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYMQ;
ARCHITECTUREARTOFYMQIS
BEGIN
PROCESS(AIN4)
CASEAIN4IS
WHEN"
DOUT7<
1111110"
--0
0110000"
--1
1101101"
--2
1111001"
--3
0110011"
--4
0101"
1011011"
--5
0110"
1011111"
--6
0111"
1110000"
--7
1111111"
--8
1111011"
--9
WHENOTHERS=>
0000000"
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREART;
(六)控制模块
ENTITYkongzhiIS
PORT(c,p:
o:
outstd_logic
);
endkongzhi;
architectures_1ofkongzhiis
process(p,c)
begin
ifp='
theno<
elsifp='
endprocess;
ends_1;
说明:
本模块类似三态门的性质,作用是控制时间停止,当有选手抢答时,抢答鉴别模块输出一高电平,用它来封锁时钟信号,进而让时钟停止
(七)主电路连线图
(1)电路图
(2)功能仿真图
(八)将程序下载到芯片FLEX—EPF10LC84-4上,引脚图如下
四、器件编程与下载
将编译好的模块程序下载到CPLD中(注:
device选取要与硬件对应,否则会导致实验失败),连线做硬件实验。
五、性能测试与分析
按下rst键清零,按下s键,观察数码管是否开始倒计时,扬声器是否发出报警声,按下s0,观察数码管是否显示1和抢答的时间,再按s1,s2.s3均不改变显示,按下rst键,观察是否清零,再按s键,不按别的,直到计时时间到,观察是否显示00,扬声器是否发出报警。
六、实验设备
计算机,EL教学实验箱
七、心得体会
经历这次实验,我体会颇多:
首先,对知识的理解上有了很大的提高,知道了自己所学跟应用是怎么回事,并且综合自己所有所学过的知识来做这次课设,让我切实感受到了“书到用时方恨少”,知识需要的是积累的过程。
然后,团队能动性,我们三人在实验过程中各有分工,都能保证完成自己的任务,进而保证了课设题目我们能最早的完成。
其次,教训也是有的,这次课设我们也走了弯路,最初设计的电路没有考虑到数码管的显示问题,等到真正上机试验的时候才知道,当时只好重新制作程序,可谓是真吃了会不懂得亏,给我以后做设计的时候提了个醒,一定要知道要做的完整设计。
最后,感谢老师的指导,没有老师悉心的指导我们不可能有如此的进步,短短两个月的时间,老师让我们从零变到了自己搞小设计,而且在这么短的时间内。
八、参考文献
李国洪,沈明山:
《可编程逻辑器件EDA技术与实践》,机械工业出版社
指导教师评语及设计成绩
评语
课程设计成绩:
指导教师:
日期:
年月日
忽略此处..
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 四路 抢答