基于FPGA的数字抢答器的设计.docx

上传人:b****8 文档编号:10329145 上传时间:2023-02-10 格式:DOCX 页数:15 大小:582.17KB
下载 相关 举报
基于FPGA的数字抢答器的设计.docx_第1页
第1页 / 共15页
基于FPGA的数字抢答器的设计.docx_第2页
第2页 / 共15页
基于FPGA的数字抢答器的设计.docx_第3页
第3页 / 共15页
基于FPGA的数字抢答器的设计.docx_第4页
第4页 / 共15页
基于FPGA的数字抢答器的设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于FPGA的数字抢答器的设计.docx

《基于FPGA的数字抢答器的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字抢答器的设计.docx(15页珍藏版)》请在冰豆网上搜索。

基于FPGA的数字抢答器的设计.docx

基于FPGA的数字抢答器的设计

摘要

EDA技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。

许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设计、科学研究和产品开发等EDA技术的综合应用实践环节。

相关的工程技术人员也特别重视学习EDA技术,并渴望提高其工程应用能力。

  对于迅猛发展的EDA技术的综合应用,从EDA技术的综合应用系统的深度来分,可分为3个层次:

①功能电路模块的设计;②算法实现电路模块的设计;③片上系统/嵌入式系统/现代DSP系统的设计。

  从EDA技术的综合应用系统的最终主要硬件构成来分,已出现6种形式:

  ①CPLD/FPGA系统;②"CPLD/FPGA+MCU"系统;③"CPLD/FPGA+专用DSP处理器"系统;④基于FPGA实现的现代DSP系统;⑤基于FPGA实现的SOC片上系统;⑥基于FPGA实现的嵌入式系统。

  从EDA技术的综合应用系统的完善层次来分,可分为3个层次:

①"EDA综合系统"主体电路的设计、仿真及硬件验证;②"EDA综合系统"主体电路的设计、仿真、硬件验证+系统外围电路PCB的设计与制作;③"EDA综合系统"主体电路的设计、仿真、硬件验证+系统整体电路PCB的设计与制作及系统的组装、调试。

一、系统设计要求

在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。

同时,还可以设置计分、犯规及奖惩记录等各种功能。

本设计的具体要求是:

1.设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。

2.电路具有第一抢答信号的鉴别和锁存功能。

在主持人交系统复位并发出抢答指令后,若抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别,同时扬声器发出“嘀嘟”的双音音响,且持续2~3秒。

此时,电路应具备自锁功能,使别组的抢答开关不起作用。

3.设置计分电路。

每组在开始时预置成100分,抢答后由诗人计分,答对一次加10分,否则减10分。

4.设置犯规电路。

对提前抢答和超时抢答的组别鸣喇叭示警,并由组别显示电路显示出犯规组别。

二、系统设计方案

根据系统设计要求可知,系统的输入信号有:

各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:

四个组抢答成功与否的指示灯控制信号输出口LEDA、LESB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。

本系统应具有的功能有:

第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能;抢答犯规记录功能。

根据以上的分析,我们可将整个系统分为三个主要模块:

抢鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ;对于需显示的信息,需增加或外接译码器,进行显示译码。

考虑到FPGA、CPLD的可用接口及一般EDA实验开发系统的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。

整个系统的组成框图如图1所示:

图1智力抢答器的组成框图

系统的工作原理如下:

当主持人按下使能端EN时,抢答器开始工作,A、B、C、D四个抢答者谁最先抢答成功则此选手的台号灯(LEDA—LEDD)将点亮,并且主持人前的组别显示数码将显示出抢答成功者的台号;接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块JFQ将给对应的组加分,并将该组的总分显示在对应的选手计分数码管JF2_A~JF0_A、JF2_B~JF0_B、JF2_C~JF0_C、JF2_D~JF0_D、上。

在此过程中,主持人可以采用计时手段(JSQ),打开计时器使计时预置控制端LDN有效,输入限制的时间,使计时使能端EN有效,开始计时。

完成第一轮抢答后,主持人清零,接着重新开始,步骤如上。

三、主要VHDL源程序与系统模块

1.抢答鉴别电路QDJB的VHDL源程序和模块

--QDJB.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYQDJBIS

PORT(CLR:

INSTD_LOGIC;

A,B,C,D:

INSTD_LOGIC;

A1,B1,C1,D1:

OUTSTD_LOGIC;

STATES:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDENTITYQDJB;

ARCHITECTUREARTOFQDJBIS

CONSTANTW1:

STD_LOGIC_VECTOR:

="0001";

CONSTANTW2:

STD_LOGIC_VECTOR:

="0010";

CONSTANTW3:

STD_LOGIC_VECTOR:

="0100";

CONSTANTW4:

STD_LOGIC_VECTOR:

="1000";

BEGIN

PROCESS(CLR,A,B,C,D)IS

BEGIN

IFCLR='1'THENSTATES<="0000";

ELSIF(A='1'ANDB='0'ANDC='0'ANDD='0')THEN

A1<='1';B1<='0';C1<='0';D1<='0';STATES<=W1;

ELSIF(A='0'ANDB='1'ANDC='0'ANDD='0')THEN

A1<='0';B1<='1';C1<='0';D1<='0';STATES<=W2;

ELSIF(A='0'ANDB='0'ANDC='1'ANDD='0')THEN

A1<='1';B1<='0';C1<='1';D1<='0';STATES<=W3;

ELSIF(A='0'ANDB='0'ANDC='0'ANDD='1')THEN

A1<='0';B1<='0';C1<='0';D1<='1';STATES<=W4;

ENDIF;

ENDPROCESS;

ENDARCHITECTUREART;

图2抢答鉴别电路的模块

2.计分器电路JFQ的VHDL源程序

--JFQ.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYJFQIS

PORT(RST:

INSTD_LOGIC;

ADD:

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;

ARCHITECTUREARTOFJFQIS

BEGIN

PROCESS(RST,ADD,CHOS)IS

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

IF(ADD'EVENTANDADD='1')THEN

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";

ELSIFCHOS="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;

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;

ENDARCHITECTUREART;

图3计分器电路JFQ的模块

3.计时器电路JSQ的VHDL源程序

--JSQ.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYJSQIS

PORT(CLR,LDN,EN,CLK:

INSTD_LOGIC;

TA,TB:

INSTD_LOGIC;

QA:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

QB:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDENTITYJSQ;

ARCHITECTUREARTOFJSQIS

SIGNALDA:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALDB:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(TA,TB,CLR)IS

BEGIN

IFCLR='1'THEN

DA<="0000";

DB<="0000";

ELSE

IFTA='1'THEN

DA<=DA+'1';

ENDIF;

IFTB='1'THEN

DB<=DB+'1';

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CLK)IS

VARIABLETMPA:

STD_LOGIC_VECTOR(3DOWNTO0);

VARIABLETMPB:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFCLR='1'THENTMPA:

="0000";TMPB:

="0110";

ELSIFCLK'EVENTANDCLK='1'THEN

IFLDN='1'THENTMPA:

=DA;TMPB:

=DB;

ELSIFEN='1'THEN

IFTMPA="0000"THEN

TMPA:

="1001";

IFTMPB="0000"THENTMPB:

="0110";

ELSETMPB:

=TMPB-1;

ENDIF;

ELSETMPA:

=TMPA-1;

ENDIF;

ENDIF;

ENDIF;

QA<=TMPA;QB<=TMPB;

ENDPROCESS;

ENDARCHITECTUREART;

图4计时器电路JSQ的模块

4.译码器电路YMQ的VHDL源程序

--YMQ.VHD

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译码器电路YMQ的模块

 

5.智力抢答器在CYCLONE中所用的框图

注:

由于集成板的差别,该框图与原来设计的框图有一定的出入

图5智力抢答器在设计中所用的框图

注:

图中的引脚号是本次在CYCLONE的EP1C12Q240C8中所用的引脚接口

四、系统仿真

1、系统的有关仿真

系统仿真后的结果分别如图6、图7、图8、图9所示。

 

图6抢答鉴别电路QDJB仿真图

 

图7计分器电路JFQ仿真图

 

图8计时器电路JSQ仿真图

 

图9译码器电路YMQ仿真图

五、设计技巧分析

1.在抢答鉴别电路设计中,A、B、C、D四组抢答,理论上应该有16种可能情况,但实际上由于芯片反应速度快到一定程度时,两组以上同时抢答成功的可能性非常不,因此我们可设计成只有四种情况,这大大简化了电路的设计复杂性。

2.在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减即可,但是随着计数数目的增加,要将计数数目分解成十进制并进行译码显示分变得越来越麻烦。

因此为了减少译码显示的麻烦,一般是将一个大的进制数分解成数个十进制以内的时制数,计数器串级连接。

但随着位数的增加,电路的接口增加因此本设计采用IF语句从低往高判断是否有进位,以采取相应的操作,既减少了接口,又大大地简化了设计。

3.本系统中的计时器电路既有计时初始值的预置功能,又有减计数功能,功能比较齐全。

其中初始值的预置功能是将两位数分解成两个数分别进行预置,每个数的预置则采用高电平计数的方式进行。

减计数的功能与上述的加法计数类似,非常简洁。

六、系统扩展思路

1.设计外围电路:

系统用方波信号源、直流工作电源。

2.可将系统扩展为8组抢答器,同时当抢答错误时,具备扣分功能。

3.若为课程设计,除可要求设计调试程序、外围电路外,还可要求设计制作整个系统,包括PCB的制作。

七、设计心得

在这次设计中,我花了不少的时间,其中有苦也有泪。

苦的是我付出了不少的汗水,乐的是在付出的过程中我得到了许多,也学会了许多。

因为一个人的能力毕竟有限,在设计方面难免会出现这样那样的错误,但正是这些错误促进了我的进步。

根据电路的特点,我用层次化结构化设计概念,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试,这培养了我们合作的精神,同时加深了层次化设计的概念。

在这次课程设计中,我真正体会到了知识的重要性。

在设计的过程中,遇到问题我会先独立思考,到自己不能解决的时候我就会和同学讨论,实在解决不了我就会向指导老师请教,应该说从功能的实现到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚着大家对我的帮助。

最后,在设计的过程中我进一步养成了软件设计的方法,完成一个项目的的程序,进一步了解了设计的步骤,进一步加深了对《EDA技术实用教程》这门课的理解,增强了以后学习的兴趣,为以后的工作积累了一定的经验,感谢石老师给我们提供这次设计的机会。

参考文献:

[1]沈明山. EDA技术及可编程器件应用实训. 科学出版社

[2]曾繁泰,陈美金. VHDL程序设计. 北京:

清华大学出版社

[3]谭会生,张昌凡. EDA技术及应用. 西安:

西安电子科技大学出版社

[4]李国丽,朱维勇. EDA与数字系统设计. 北京:

机械工业出版社

[5]苏光大. 图像并行处理技术. 北京:

清华大学出版社

 

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

当前位置:首页 > 小学教育 > 英语

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

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