VHDL语言设计智力竞赛抢答器设计Word格式.docx
- 文档编号:17450650
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:17
- 大小:165.77KB
VHDL语言设计智力竞赛抢答器设计Word格式.docx
《VHDL语言设计智力竞赛抢答器设计Word格式.docx》由会员分享,可在线阅读,更多相关《VHDL语言设计智力竞赛抢答器设计Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
四、程序调试;
五、总结;
六、附件(所有程序的原代码,要求对程序写出必要的注释);
¥
1、课题的主要功能1
2、功能模块的划分1
3、主要功能的实现1
、鉴别功能1
、锁存功能1
、转换功能2
、三选一功能2
[
、倒计时功能2
、片选功能2
、显示功能2
4、程序调试3
、调试方法3
、各模块程序的调试3
5、总结6
6、附件7
>
、鉴别模块代码7
、锁存器模块源代码7
、模块源代码8
、三选一模块源代码9
、倒计时模块源代码9
、片选模块源代码11
、显示模块源代码11
、顶层文件源代码12
.
7、评分表15
1、课题的主要功能
设计一个4人参加的智力竞赛抢答计时器。
该系统具有回答问题时间控制的功能,要求回答问题时间小于等于100秒(显示为0~99),时间显示采用倒计时方式。
当达到限定时间时,发出声响以示警告;
当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。
2、功能模块的划分
图1智能抢答器功能模块划分图
该智能抢答器分为七个模块,分别为:
鉴别模块、锁存器模块、转换模块、三选一模块、倒计时模块、偏心模块和显示模块。
3、主要功能的实现
、鉴别功能
鉴别模块jianbie如图2所示,输入信号CLK和CLR,若CLR=“0”,表示无人按键,输出信号Q为0;
若CLR=“1”,表示有人按键,输出信号Q为1。
、锁存功能
锁存器模块suocunqi如图3所示,锁存器对四位答题者的结果进行锁存,并将其赋给输出信号Q1,Q2,Q3,Q4。
、转换功能
转换模块zhuanhuan如图4所示,把抢答结果转化为二进制数。
、三选一功能
三选一模块sanxuanyi如图5所示,用三位二进制数分别表示抢答者的号数及其倒计时,输出信号Q。
、倒计时功能
倒计时模块daojishi如图6所示,用两个四位二进制数表示倒计时,定义变量HH,LL,由时钟CLK和使能信号EN控制。
当HH==0,LL==0时,发出声音停止计时,输出H(XXX),L(XXX)。
、片选功能
片选模块pianxuan如图7所示,对三个七段数码管进行选择。
、显示功能
显示模块xianshi如图8所示,将所有进程中的数值转换成七位二进制数。
图2jianbie模块图3suocunqi模块图4zhuanhuan模块图5sanxuanyi模块
图6daojishi模块图7pianxuan模块图8xiandhi模块
4、程序调试
、调试方法
(1)人工调试。
写好一个程序后不能急于上机调试,而是先进行纸面上的检查,改正错误的地方。
(2)上机调试。
机器提示有多处错误,应先改第一条,后面的错误大多是因第一天错误引起的。
、各模块程序的调试
(1)鉴别模块:
图9鉴别模块仿真波形图
给CLK一个时钟信号,在某一时刻开始赋给CLR一个高电平,则从下一个时钟下降沿开始Q输出高电平。
(2)锁存器模块:
图10锁存器模块仿真波形图
给CLK一个时钟信号,在某一时刻开始赋给CLR一个高电平,则从下一个时钟上升沿开始:
将D1赋给Q1、将D2赋给Q2、将D3赋给Q3、将D4赋给Q4,并输出ALM;
在CLR为低电平时无输出。
(3)转换模块:
图11转换模块仿真波形图
通过此模块将D1D2D3D4的输入结果转换成Q1Q2Q3Q4这种四位二进制数。
(4)三选一模块:
图12三选一模块仿真波形图
由SEL控制Q的输出,当SEL为“000”时将D1赋给Q;
当SEL为“001”时将D2赋给Q;
当SEL为“111”时将D3赋给Q;
其他情况将“1111赋给Q。
(5)倒计时模块:
图13倒计时模块仿真波形图
给CLK一个时钟信号,当EN为“1”且H、L都为“0000”时从这个时钟上升沿开始有声音输出;
当H、L不为“0000”时,即使有EN为“1”也没有声音输出。
当EN为“0”进行倒计时。
(6)片选模块:
图14片选模块仿真波形图
给CLK一个时钟信号,当处于时钟上升沿时输出信号a。
(7)显示模块:
图15显示模块仿真波形图
将输入信号D转变成能在七段数码管上显示的七位二进制数。
(8)顶层文件:
图16顶层文件仿真波形图
(9)各模块连结后的电路图:
图17各模块连结后的电路图
5、总结
一周的《数值系统与逻辑设计》的课程设计终于做完了,在这一周的课设中我感觉我学到了蛮多东西。
首先,我学会了如何对一个大的课题进行分析——将大的整体划分为许多下的部分,直到各个部分容易设计出来。
刚开始接到抢答器这个课设题目时我感到一头雾水,根本不知道从哪下手,然后通过认真阅读课设题目下的算法提示终于有了的眉目,原来要不这个抢答器分成:
鉴别模块、锁存器模块、倒计时模块、转换模块、片选模块、三选一模块和显示模块这七大模块,有了思路剩下的事情就容易多了。
其次,这次课程设计让我感受到了我对所学习的内容是多么的不熟练,在编程的时候还要老是去翻书。
我记忆在深刻的是在编顶层文件时,看了一遍又一遍书但在编写的过程中还是出错了,最后只好对着书编写。
但我觉的出现问题并不是很要紧,这些问题能提醒我那些地方没有学好,只要我重视这些地方将其巩固我想我将能学到许多的知识。
最后,我感觉我对QuartusII软件的使用熟练了许多。
我虽然以前在试验的时候使用过QuartusII这个软件,但用的时间毕竟不长,对其不太熟练,经过这次做课设我对这个软件运用熟练了很多,这对以后的学习一定有很大的帮助。
我想在面对一个问题时不能存在侥幸心理,只要我们认真对待它,我们就能学到东西。
6、附件
、鉴别模块代码
LIBRARYIEEE;
USEjianbieIS
PORT(CLK,CLR:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDjianbie;
ARCHITECTUREjianbie_mkOFjianbieIS
BEGIN
PROCESS(CLK,CLR)
IFCLR='
0'
THEN--利用IF_THEN_ELSE语句
Q<
='
;
ELSIFCLK'
EVENTANDCLK='
THEN--边缘检测信号为低电平
1'
ENDIF;
ENDPROCESS;
ENDjianbie_mk;
、锁存器模块源代码
USEsuocunqiIS
PORT(D1,D2,D3,D4:
--输入端口定义4个变量
CLK,CLR:
Q1,Q2,Q3,Q4,ALM:
ENDsuocunqi;
ARCHITECTUREsuocunqi_mkOFsuocunqiIS
BEGIN
PROCESS(CLK)
BEGIN
THEN
Q1<
Q2<
Q3<
Q4<
ALM<
THEN--检测为高电平,则有人抢答
=D1;
=D2;
=D3;
=D4;
ENDsuocunqi_mk;
、模块源代码
USEzhuanhuanIS
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDzhuanhuan;
ARCHITECTUREzhuanhuan_mkOFzhuanhuanIS
PROCESS(D1,D2,D3,D4)
VARIABLETMP:
STD_LOGIC_VECTOR(3DOWNTO0);
TMP:
=D1&
D2&
D3&
D4;
CASETMPIS--类似于真值表的CASE语句
WHEN"
0111"
=>
Q<
="
0001"
1011"
0010"
1101"
0011"
1110"
0100"
WHENOTHERS=>
1111"
ENDCASE;
ENDzhuanhuan_mk;
、三选一模块源代码
USEsanxuanyiIS
PORT(SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
D1,D2,D3:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDsanxuanyi;
ARCHITECTUREsanxuanyi_mkOFsanxuanyiIS
PROCESS(SEL,D1,D2,D3)
CASESELIS
WHEN"
000"
001"
111"
WHENOTHERS=>
ENDsanxuanyi_mk;
、倒计时模块源代码
USEdaojishiIS
PORT(CLK,EN:
H,L:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
SOUND:
ENDdaojishi;
ARCHITECTUREdaojishi_mkOFdaojishiIS
PROCESS(CLK,EN)
VARIABLEHH,LL:
IFCLK'
IFEN='
IFLL=0ANDHH=0THEN
SOUND<
ELSIFLL=0THEN
LL:
1001"
HH:
=HH-1;
ELSE
=LL-1;
ELSE
SOUND<
H<
=HH;
L<
=LL;
ENDdaojishi_mk;
、片选模块源代码
USE
ENTITYpianxuanIS
PORT(CLK:
a:
OUTINTEGERRANGE0TO7);
ENDpianxuan;
ARCHITECTUREpianxuan_mkOFpianxuanIS
VARIABLEAA:
INTEGERRANGE0TO7;
--定义标准逻辑位矢量类型
IFCLK'
THEN--利用IF_THEN语句
AA:
=AA+1;
ENDIF;
A<
=AA;
ENDPROCESS;
ENDpianxuan_mk;
、显示模块源代码
ENTITYxianshiIS
PORT(D:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDxianshi;
ARCHITECTURExianshi_mkOFxianshiIS
PROCESS(D)
CASEDIS
WHEN"
0000"
0111111"
0000110"
1011011"
1001111"
1100110"
0101"
1101101"
0110"
1111101"
0100111"
1000"
1111111"
1101111"
0000000"
ENDxianshi_mk;
、顶层文件源代码
USEENTITYQDQIS
PORT(CLK,CLR:
D1,D2,D3,D4:
SEL:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDQDQ;
ARCHITECTUREDCWJOFQDQIS
COMPONENTjianbie
ENDCOMPONENT;
COMPONENTpianxuan
A:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
COMPONENTsuocunqi
PORT(D1,D2,D3,D4:
COMPONENTzhuanhuan
COMPONENTsanxuanyi
ENDCOMPONENT;
COMPONENTdaojishi
COMPONENTxianshi
SIGNALC,D,A1,A2,A3,A4,SOUND:
STD_LOGIC;
SIGNALB1,B2,E,F:
SIGNALM:
STD_LOGIC_VECTOR(2DOWNTO0);
U1:
suocunqiPORTMAP(D1=>
D1,D2=>
D2,D3=>
D3,D4=>
D4,CLK=>
C,CLR=>
CLR,
Q1=>
A1,Q2=>
A2,Q3=>
A3,Q4=>
A4,AlM=>
D);
U2:
pianxuanPORTMAP(CLK=>
CLK,A=>
SEL);
U3:
jianbiePORTMAP(CLK=>
CLK,CLR=>
CLR,Q=>
C);
U4:
daojishiPORTMAP(CLK=>
CLK,L=>
B1,H=>
B2,SOUND=>
SOUND,EN=>
U5:
zhuanhuanPORTMAP(D1=>
A1,D2=>
A2,D3=>
A3,D4=>
A4,Q=>
E);
U6:
sanxuanyiPORTMAP(SEL=>
M,D1=>
B1,D2=>
B2,D3=>
E,Q=>
F);
U7:
xianshiPORTMAP(D=>
F,Q=>
Q);
ENDDCWJ;
7、评分表
计算机科学与技术系课程设计评分表
课题名称:
智力竞赛抢答器设计
项目
评价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
教师签名:
日期:
】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 设计 智力 竞赛 抢答