VHDL语言设计智力竞赛抢答器设计.docx

上传人:b****5 文档编号:4516243 上传时间:2022-12-01 格式:DOCX 页数:17 大小:165.77KB
下载 相关 举报
VHDL语言设计智力竞赛抢答器设计.docx_第1页
第1页 / 共17页
VHDL语言设计智力竞赛抢答器设计.docx_第2页
第2页 / 共17页
VHDL语言设计智力竞赛抢答器设计.docx_第3页
第3页 / 共17页
VHDL语言设计智力竞赛抢答器设计.docx_第4页
第4页 / 共17页
VHDL语言设计智力竞赛抢答器设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

VHDL语言设计智力竞赛抢答器设计.docx

《VHDL语言设计智力竞赛抢答器设计.docx》由会员分享,可在线阅读,更多相关《VHDL语言设计智力竞赛抢答器设计.docx(17页珍藏版)》请在冰豆网上搜索。

VHDL语言设计智力竞赛抢答器设计.docx

VHDL语言设计智力竞赛抢答器设计

《数字系统与逻辑设计》课程设计任务书

一、设计目的

全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。

二、设计要求

1、设计正确,方案合理。

2、界面友好,使用方便。

3、程序精炼,结构清晰。

4、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5、上机演示。

6、有详细的文档。

文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。

三、进度安排

第十九周星期一:

课题讲解,查阅资料

 星期二:

总体设计,详细设计

星期三:

编程,上机调试、修改程序

星期四:

上机调试、完善程序

星期五:

答辩

星期六-星期天:

撰写课程设计报告

 

附:

课程设计报告装订顺序:

封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

正文的格式:

一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

/

正文的内容:

一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释);

 

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)

BEGIN

IFCLR='0'THEN--利用IF_THEN_ELSE语句

Q<='0';

ELSIFCLK'EVENTANDCLK='0'THEN--边缘检测信号为低电平

Q<='1';

ENDIF;

ENDPROCESS;

ENDjianbie_mk;

、锁存器模块源代码

LIBRARYIEEE;

USEsuocunqiIS

PORT(D1,D2,D3,D4:

INSTD_LOGIC;--输入端口定义4个变量

CLK,CLR:

INSTD_LOGIC;

Q1,Q2,Q3,Q4,ALM:

OUTSTD_LOGIC);

ENDsuocunqi;

ARCHITECTUREsuocunqi_mkOFsuocunqiIS

BEGIN

PROCESS(CLK)

BEGIN

IFCLR='0'THEN

Q1<='0';

Q2<='0';

Q3<='0';

Q4<='0';

ALM<='0';

ELSIFCLK'EVENTANDCLK='1'THEN--检测为高电平,则有人抢答

Q1<=D1;

Q2<=D2;

Q3<=D3;

Q4<=D4;

ALM<='1';

ENDIF;

ENDPROCESS;

ENDsuocunqi_mk;

、模块源代码

LIBRARYIEEE;

USEzhuanhuanIS

PORT(D1,D2,D3,D4:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDzhuanhuan;

ARCHITECTUREzhuanhuan_mkOFzhuanhuanIS

BEGIN

PROCESS(D1,D2,D3,D4)

VARIABLETMP:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

TMP:

=D1&D2&D3&D4;

CASETMPIS--类似于真值表的CASE语句

WHEN"0111"=>Q<="0001";

WHEN"1011"=>Q<="0010";

WHEN"1101"=>Q<="0011";

WHEN"1110"=>Q<="0100";

WHENOTHERS=>Q<="1111";

ENDCASE;

ENDPROCESS;

ENDzhuanhuan_mk;

、三选一模块源代码

LIBRARYIEEE;

USEsanxuanyiIS

PORT(SEL:

INSTD_LOGIC_VECTOR(2DOWNTO0);

D1,D2,D3:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDsanxuanyi;

ARCHITECTUREsanxuanyi_mkOFsanxuanyiIS

BEGIN

PROCESS(SEL,D1,D2,D3)

BEGIN

CASESELIS

WHEN"000"=>Q<=D1;

WHEN"001"=>Q<=D2;

WHEN"111"=>Q<=D3;

WHENOTHERS=>Q<="1111";

ENDCASE;

ENDPROCESS;

ENDsanxuanyi_mk;

、倒计时模块源代码

LIBRARYIEEE;

USEdaojishiIS

PORT(CLK,EN:

INSTD_LOGIC;

H,L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SOUND:

OUTSTD_LOGIC);

ENDdaojishi;

ARCHITECTUREdaojishi_mkOFdaojishiIS

BEGIN

PROCESS(CLK,EN)

VARIABLEHH,LL:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFLL=0ANDHH=0THEN

SOUND<='1';

ELSIFLL=0THEN

LL:

="1001";

HH:

=HH-1;

ELSE

LL:

=LL-1;

ENDIF;

ELSE

SOUND<='0';

HH:

="1001";

LL:

="1001";

ENDIF;

ENDIF;

H<=HH;

L<=LL;

ENDPROCESS;

ENDdaojishi_mk;

、片选模块源代码

LIBRARYIEEE;

USE

ENTITYpianxuanIS

PORT(CLK:

INSTD_LOGIC;

a:

OUTINTEGERRANGE0TO7);

ENDpianxuan;

ARCHITECTUREpianxuan_mkOFpianxuanIS

BEGIN

PROCESS(CLK)

VARIABLEAA:

INTEGERRANGE0TO7;--定义标准逻辑位矢量类型

BEGIN

IFCLK'EVENTANDCLK='1'THEN--利用IF_THEN语句

AA:

=AA+1;

ENDIF;

A<=AA;

ENDPROCESS;

ENDpianxuan_mk;

、显示模块源代码

LIBRARYIEEE;

USE

ENTITYxianshiIS

PORT(D:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDxianshi;

ARCHITECTURExianshi_mkOFxianshiIS

BEGIN

PROCESS(D)

BEGIN

CASEDIS

WHEN"0000"=>Q<="0111111";

WHEN"0001"=>Q<="0000110";

WHEN"0010"=>Q<="1011011";

WHEN"0011"=>Q<="1001111";

WHEN"0100"=>Q<="1100110";

WHEN"0101"=>Q<="1101101";

WHEN"0110"=>Q<="1111101";

WHEN"0111"=>Q<="0100111";

WHEN"1000"=>Q<="1111111";

WHEN"1001"=>Q<="1101111";

WHENOTHERS=>Q<="0000000";

ENDCASE;

ENDPROCESS;

ENDxianshi_mk;

、顶层文件源代码

LIBRARYIEEE;

USEENTITYQDQIS

PORT(CLK,CLR:

INSTD_LOGIC;

D1,D2,D3,D4:

INSTD_LOGIC;

SEL:

OUTSTD_LOGIC_VECTOR(2DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDQDQ;

ARCHITECTUREDCWJOFQDQIS

COMPONENTjianbie

PORT(CLK,CLR:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTpianxuan

PORT(CLK:

INSTD_LOGIC;

A:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDCOMPONENT;

COMPONENTsuocunqi

PORT(D1,D2,D3,D4:

INSTD_LOGIC;

CLK,CLR:

INSTD_LOGIC;

Q1,Q2,Q3,Q4,ALM:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTzhuanhuan

PORT(D1,D2,D3,D4:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

COMPONENTsanxuanyi

PORT(SEL:

INSTD_LOGIC_VECTOR(2DOWNTO0);

D1,D2,D3:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

COMPONENTdaojishi

PORT(CLK,EN:

INSTD_LOGIC;

H,L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SOUND:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTxianshi

PORT(D:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDCOMPONENT;

SIGNALC,D,A1,A2,A3,A4,SOUND:

STD_LOGIC;

SIGNALB1,B2,E,F:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALM:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

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=>D);

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、评分表

计算机科学与技术系课程设计评分表

课题名称:

智力竞赛抢答器设计

 

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

答辩陈述与回答问题情况

课程设计周表现情况

综合成绩

 

教师签名:

日期:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1