EDA课设 四路抢答器武汉理工.docx
- 文档编号:24855585
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:18
- 大小:326.16KB
EDA课设 四路抢答器武汉理工.docx
《EDA课设 四路抢答器武汉理工.docx》由会员分享,可在线阅读,更多相关《EDA课设 四路抢答器武汉理工.docx(18页珍藏版)》请在冰豆网上搜索。
EDA课设四路抢答器武汉理工
目录
摘要1
1.课程设计目的3
2.系统功能及要求3
3.系统设计思路3
4.各模块芯片展示及说明4
4.1抢答模块4
4.2计分模块5
4.3计时模块5
4.4译码模块6
5.各模块程序及波形图6
5.1抢答器6
5.2计分模块8
5.3计时模块13
5.4译码模块14
6.总电路图及仿真波形图16
7.总结与体会17
参考文献19
摘要
EDA及电子设计自动化,是指使用计算机自动完成电子系统的设计,应用EDA技术进行电子产品的设计已成为当今电子工程师的一项基本技。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
VHDL语言:
超高速集成电路硬件描述语言,是IEEE的一项标准设计语言。
它源于美国国防部提出的超高速集成电路计划,是ASIC设计和PLD设计的一种主要输入工具。
本次课程设计的目的是在学习完EDA课程的基础上,运用EDA的知识即VHDL语言,编写程序来实现此次我设计的电子抢答器所要实现的功能,不仅会编写程序,还要能够在实验室中检测我所编写的程序是否能够达到预期的目的。
关键词:
EDA技术;VHDL语言;多路抢答器;功能模块
基于EDA的多功能音乐抢答器
1.课程设计目的
(1)通过课程设计使学生能熟练掌握一种EDA软件的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程,为以后进行工程实际问题的研究打下设计基础。
(2)通过课程设计使学生能利用EDA软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或VHDL硬件描述语言输入法。
(3)通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。
(4)通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
2.系统功能及要求
(2)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号;
(3)扬声器发出短暂声响,提醒主持人注意;
(4)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;
(5)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加/减计数器、数码管显示。
本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。
3.系统设计思路
主持人
控制开关
控制电路
优先编
码电路
指示灯显示
抢答按钮
锁存器
报警电路
预制
计分电路
译码电路
显示电路
图3.1流程图
因为该课程实现的是多人抢答功能,由主持人通过抢答者的亮灯情况来选择回答者,回答对了加10分,回答错了减10分,不过在这之前要提前预置给每个人100分。
达到这些要求就需要设计抢答模块与计分模块,抢答模块中涉及一个锁存,这样就可以进行优选选择,先抢到的人先回答,屏蔽掉其他人的抢答信号,这时候对应这个人的指示灯就亮了,报警器也发出声响,计分电路里每个人都拥有一个计分电子牌,通过主持人控制加分还是减分按钮,通过计分电路与译码电路就把加减分的结果显示出来,这样任务要求也就达到了。
4.各模块芯片展示及说明
4.1抢答模块
图4.1抢答器芯片图
四名抢答者各有一个抢答按钮,就是芯片里的输入S0,S1,S2,S3,主持人按下清零信号clear时,所有人的灯都不能亮且无法抢答,直到主持人复位后,可以开始抢答,抢答者就可以抢答,锁存器就是先有人抢答后阻碍其他抢答者的信号,接着抢答成功者所对应的输出states就将信号输出到下一个模块,同时灯也就亮了,还有控制的sound信号也有报警输出到下一个报警模块。
4.2计分模块
图4.2计分器芯片图
在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减,因为本次课题所做的得为先预置100分,所以我设计了rest,当它为高电平的时候就进行预置,然后为低电平的时候,由主持人控制ADD与ACC两个开关对抢答者做出的回答进行加减分判断。
预置数100分,就由AA0、AA1、AA2控制个、十、百位信号,因为各位一直为零,所以就将它一直设置成低电平,然后当十位为“9”的时候,向百位进位,百位就加“1”,减分的时候,当十位为“0”的时候,就向百位借“1”,其他情况就是直接进行,没有特殊情况,这样就实现了计分功能。
4.3计时模块
图4.3计时器芯片图
计时模块所要实现的就是对报警声音的时间控制,因为课题要求报警声有2到3秒的时间,所以我就做了这个计时模块,随主持人按下可以开始抢答,报警声开始响到结束时间就有这一部分控制,这段时间可以通过译码器显示出来。
4.4译码模块
图4.4译码器芯片图
本译码器用于将抢答鉴别模块抢答成功的组别加分和计时器的报警时间进行显示,AIN4[3..0]端输入需显示的二进制数组,QOUT7[6..0]端输出显示在数码管,显示显示范围为0~9。
这是最简单的一部分,功能的实现是数电里的知识。
5.各模块程序及波形图
5.1抢答器
设计程序如下:
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYLOCKIS
PORT(CLK,CLEAR:
INSTD_LOGIC;
TIM:
INSTD_LOGIC_VECTOR(2DOWNTO0);
S0,S1,S2,S3:
INSTD_LOGIC;
STATES:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
SOUND:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
LED:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDLOCK;
ARCHITECTUREONEOFLOCKIS
SIGNALG:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLEAR,CLK,S0,S1,S2,S3,TIM)
BEGIN
IFCLEAR='1'THENG<="0000";LED<="0000";SOUND<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IF(S3='1')ANDNOT(G(0)='1'ORG
(1)='1'ORG
(2)='1')THEN
G(3)<='1';LED(3)<='1';SOUND(3)<='1';
ELSIF(S2='1')ANDNOT(G(0)='1'ORG
(1)='1'ORG(3)='1')THEN
G
(2)<='1';LED
(2)<='1';SOUND
(2)<='1';
ELSIF(S1='1')ANDNOT(G(0)='1'ORG
(2)='1'ORG(3)='1')THEN
G
(1)<='1';LED
(1)<='1';SOUND
(1)<='1';
ELSIF(S0='1')ANDNOT(G
(1)='1'ORG
(2)='1'ORG(3)='1')THEN
G(0)<='1';LED(0)<='1';SOUND(0)<='1';
ENDIF;
IFTIM="010"THEN
SOUND<="0000";
ENDIF;
ENDIF;
CASEGIS
WHEN"0001"=>STATES<="0001";
WHEN"0010"=>STATES<="0010";
WHEN"0100"=>STATES<="0011";
WHEN"1000"=>STATES<="0100";
WHENOTHERS=>STATES<="0000";
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREONE;
波形图如下:
图5.1抢答器波形图
5.2计分模块
程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJFQIS
PORT(RST:
INSTD_LOGIC;
ADD:
INSTD_LOGIC;
ACC:
INSTD_LOGIC;
CHOS:
INSTD_LOGIC_VECTOR(3DOWNTO0);
AA2,AA1,AA0,BB2,BB1,BB0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CC2,CC1,CC0,DD2,DD1,DD0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYJFQ;
ARCHITECTUREFOUROFJFQIS
BEGIN
PROCESS(RST,ADD,ACC,CHOS)
VARIABLEPOINTS_A2,POINTS_A1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEPOINTS_B2,POINTS_B1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEPOINTS_C2,POINTS_C1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEPOINTS_D2,POINTS_D1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
POINTS_A2:
="0001";POINTS_A1:
="0000";
POINTS_B2:
="0001";POINTS_B1:
="0000";
POINTS_C2:
="0001";POINTS_C1:
="0000";
POINTS_D2:
="0001";POINTS_D1:
="0000";
IFRST='1'THEN
POINTS_A2:
="0001";POINTS_A1:
="0000";
POINTS_B2:
="0001";POINTS_B1:
="0000";
POINTS_C2:
="0001";POINTS_C1:
="0000";
POINTS_D2:
="0001";POINTS_D1:
="0000";
ELSIF(ADD='1')THEN
IFCHOS="0001"THEN
IFPOINTS_A1="1001"THEN
POINTS_A1:
="0000";
IFPOINTS_A2="1001"THEN
POINTS_A2:
="0000";
ELSE
POINTS_A2:
=POINTS_A2+'1';
ENDIF;
ELSE
POINTS_A1:
=POINTS_A1+'1';
ENDIF;
ELSIFCHOS="0010"THEN
IFPOINTS_B1="1001"THEN
POINTS_B1:
="0000";
IFPOINTS_B2="1001"THEN
POINTS_B2:
="0000";
ELSE
POINTS_B2:
=POINTS_B2+'1';
ENDIF;
ELSE
POINTS_B1:
=POINTS_B1+'1';
ENDIF;
ELSIFCHOS="0100"THEN
IFPOINTS_C1="1001"THEN
POINTS_C1:
="0000";
IFPOINTS_C2="1001"THEN
POINTS_C2:
="0000";
ELSE
POINTS_C2:
=POINTS_C2+'1';
ENDIF;
ELSE
POINTS_C1:
=POINTS_C1+'1';
ENDIF;
ELSIFCHOS="1000"THEN
IFPOINTS_D1="1001"THEN
POINTS_D1:
="0000";
IFPOINTS_D2="1001"THEN
POINTS_D2:
="0000";
ELSE
POINTS_D2:
=POINTS_D2+'1';
ENDIF;
ELSE
POINTS_D1:
=POINTS_D1+'1';
ENDIF;
ENDIF;
ELSIF(ACC='1')THEN
IFCHOS="0001"THEN
IFPOINTS_A1="0000"THEN
POINTS_A1:
="1001";
IFPOINTS_A2="0000"THEN
POINTS_A2:
="0000";
ELSE
POINTS_A2:
=POINTS_A2-'1';
ENDIF;
ELSE
POINTS_A1:
=POINTS_A1-'1';
ENDIF;
ELSIFCHOS="0010"THEN
IFPOINTS_B1="0000"THEN
POINTS_B1:
="1001";
IFPOINTS_B2="0000"THEN
POINTS_B2:
="0000";
ELSE
POINTS_B2:
=POINTS_B2-'1';
ENDIF;
ELSE
POINTS_B1:
=POINTS_B1-'1';
ENDIF;
ELSIFCHOS="0100"THEN
IFPOINTS_C1="0000"THEN
POINTS_C1:
="1001";
IFPOINTS_C2="0000"THEN
POINTS_C2:
="0000";
ELSE
POINTS_C2:
=POINTS_C2-'1';
ENDIF;
ELSE
POINTS_C1:
=POINTS_C1-'1';
ENDIF;
ELSIFCHOS="1000"THEN
IFPOINTS_D1="0000"THEN
POINTS_D1:
="1001";
IFPOINTS_D2="1001"THEN
POINTS_D2:
="0000";
ELSE
POINTS_D2:
=POINTS_D2-'1';
ENDIF;
ELSE
POINTS_D1:
=POINTS_D1-'1';
ENDIF;
ENDIF;
ENDIF;
AA2<=POINTS_A2;AA1<=POINTS_A1;AA0<="0000";
BB2<=POINTS_B2;BB1<=POINTS_B1;BB0<="0000";
CC2<=POINTS_C2;CC1<=POINTS_C1;CC0<="0000";
DD2<=POINTS_D2;DD1<=POINTS_D1;DD0<="0000";
ENDPROCESS;
ENDARCHITECTUREFOUR;
图5.2计分器波形图
5.3计时模块
程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNTIS
PORT(EN:
INSTD_LOGIC_VECTOR(3DOWNTO0);
CLK,CLEAR:
INSTD_LOGIC;
TIM:
BUFFERSTD_LOGIC_VECTOR(2DOWNTO0));
ENDCOUNT;
ARCHITECTURETHREEOFCOUNTIS
SIGNALTIMS:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
PROCESS(CLK,CLEAR,EN)
BEGIN
IFCLEAR='1'ANDEN="0000"THEN
TIMS<="000";
ELSIFCLK'EVENTANDCLK='1'THEN
TIMS<=TIMS+1;
ENDIF;
TIM<=TIMS;
ENDPROCESS;
ENDARCHITECTURETHREE;
5.4译码模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYMQ;
ARCHITECTUREARTOFYMQIS
BEGIN
PROCESS(AIN4)
BEGIN
CASEAIN4IS
WHEN"0000"=>DOUT7<="0111111";--0
WHEN"0001"=>DOUT7<="0000110";--1
WHEN"0010"=>DOUT7<="1011011";--2
WHEN"0011"=>DOUT7<="1001111";--3
WHEN"0100"=>DOUT7<="1100110";--4
WHEN"0101"=>DOUT7<="1101101";--5
WHEN"0110"=>DOUT7<="1111101";--6
WHEN"0111"=>DOUT7<="0000111";--7
WHEN"1000"=>DOUT7<="1111111";--8
WHEN"1001"=>DOUT7<="1101111";--9
WHENOTHERS=>DOUT7<="0000000";
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREART;
图5.4译码器波形图
6.总电路图及仿真波形图
图6.1总电路图
图6.2总仿真波形图
这是一个四人组抢答器仿真图,其中四位抢答者分别为S0、S1、S2、S3,他们控制这个输入实现抢答功能,当主持人按下clear为高电平时,就是清零信号,每个人抢答都无效,随着主持人按起清零信号让它为低电平时,各位抢答者都可以抢答,有抢答者先抢到时,其他人的抢答信号就被锁存器屏蔽掉,就不能实现抢答。
抢答者按下抢答器时,相对应的灯也就亮了,且译码显示器上也会显示该抢答者对应的号码,主持人可以进行检测,其中的报警声音要持续2到3秒,所以我通过一个计时器实现时间限制,当主持人按下可以开始抢答的按钮,抢答者按下抢答按钮时,报警声响起,2秒后结束。
当回答者回答错或回答对时,主持人要进行加减分,这样分数的显示就用百、十、个位,因为个位一直都为零,所以直接把它定为低电平,十位就设定每按一次,自动加1,百位不变,直到十位为“9”时,下一次加时,就让十位变为“0”,百位加“1”;减计数是没按一次减,就自动减“1”,直到个位为“0”的时候,百位减“1”,其他三个人的分数设置也是这样,因为要有提前预置100,所以设置一个Rest,当它为高电平的时候,预置100,为低电平就可以加减分。
7.总结与体会
通过本次实践,掌握了EDA的基本方法,提高了自身的思维水平,增强了动手实践的能力,将可编程器件及运用的知识运用于实践中。
使我对EDA技术有了更进一步的了解。
同时,大致懂得了一个课题制作的具体流程和实施方法。
另外,课程设计对QuartusⅡ软件的使用要求较高,从而使我能较为熟练的运用此软件。
在设计时,采用模块化的设计思路使得问题变的简单明了,大大缩短了时间,降低了发生错误的机侓,也便于修改和更新。
此次实践让我了解到在头脑中抽象地记忆、理解那些课本上的理论知识,都是不够的,因为有些理论知识晦涩难懂,甚至要靠自己死记硬背。
而这次的实践就提供机会让我们在实践中灵活运用知识。
我们通过在实践中发现问题,进而去书本中找相关的知识去解决问题,从而巩固了理论知识,同时也增强了我们以后的学习兴趣,为以后的工作积累了一定的经验。
写报告时,整个布局的安排,格式的规划都会遇到各种小问题,直到整个实验做结束,收获很大,主要提高了自己的动手能力,仔细思考去做自己的东西,因为别人也帮不了全部,吸取了教训,掌握了知识,收益大,希望这些时间总结出来的经验能够在以后的学习生活中帮到自己。
通过这次设计,把理论与实践信结合起来,在老师的指导下和视频学习下,有些关键的问题才得以解决,锻炼了自己的能力,对以后走的路有了更清楚的认识,同时有了更多的信心。
参考文献
[1]赵辉,电子设计工程,2012年第2期
[2]符兴昌,微计算机信息,2006年第14期
[3]徐志军、王金明编著,EDA技术与VHDL设计,北京:
电子工业出版社,2009年
[4]孙富明,电子技术应用,北京:
电子工业出版社,2007年
[5]徐彦凯,EDA课程设计课题的开发和体会,2011年第2期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA课设 四路抢答器武汉理工 EDA 四路 抢答 武汉理工