您的当前位置:首页2021年度基于FPGA的电子抢答器的程序设计设计

2021年度基于FPGA的电子抢答器的程序设计设计

来源:小侦探旅游网



基于FPGA电子抢答器程序设计

摘 要

伴随科学技术日新月异,文化生活日渐丰富,在各类竞赛、抢答场所电子抢答器已经作为一个工具得到了较为广泛应用。顾名思义,电子抢答器是一个经过抢答者指示灯显示、数码显示和警示显示等手段正确、 公正、直观地判定出最先取得讲话权选手设备。

此次设计有4组抢答输入,每组设置一个抢答按钮供抢答者使用。电路含有第一抢答信号判别和锁存功效。 当第一抢答者按下抢答开关时,

确保能够实现在一路成功抢答有效后,其它三路均不能抢答。
该组指示灯亮以示抢答成功。同时, 电路也含有自锁功效,

该四路抢答器使用VHDL硬件描述语言进行编程,分为七个模块: 判定模块,
锁存模块, 转换模块,扫描模块, 片选模块,定时报警模块和译码模块。
编程完成后,使用QuartersII工具软件进行编译仿真验证。

关键词:VHDL,FPGA, 四路抢答器,仿真





目录

1概述................................................1

1.1设计背景................................................11.2 抢答器现实状况..........................................11.3 本论文关键完成工作......................................11.4 设计心得................................................2

2开发工具介绍........................................3

2.1VHDL语言介绍............................................32.2 FPGA开发过程和应用......................................4

2.2.2 FPGA工作原理......................................4
2.2.1FPGA发展历程及现实状况............................4

3系统设计.............................................8

3.1系统设计要求............................................83.2 系统设计方案............................................83.2.1 系统硬件设计方案..................................83.2.2 系统软件设计方案..................................83.3.3 系统原理详述.....................................10

4电旅程序设计及仿真.................................12

4.1 抢答锁存模块设计.......................................12 4.1.1 VHDL源程序.......................................12 4.1.2 抢答锁存电路模块.................................134.2仿真...................................................14



总结.................................................15

致谢.................................................17

参考文件.............................................18

郑州轻工业学院

课程 设 计 任 务 书

题目基于FPGA电子抢答器程序设计

专业班级电子信息工程10-1学号 姓名

关键内容、基础要求、 关键参考资料等:

抢答器是在竞赛、 文体娱乐活动(抢答活动)中,能正确、 公正、
关键内容:

设计一个四路抢答器;在一路成功抢答有效后,其它三路均不能抢答,
而且将抢答成功一路用指示灯显示出来。

基础要求:
1 学会quartusII使用,掌握FPGA程序设计方法。

2、掌握硬件描述语言语法。

4、程序设计完成后要求在quartusII中实现功效仿真。

关键参考资料:
1、褚振勇. FPGA设计及应用(第三版)[M].西安电子科技大学出版社.,4 2、陈怀琛.MATLAB及在电子信息课程中应用[M].北京: 电子工业出版社.,1



完 成 期 限:.6.21—.6.25
指导老师署名:
课程责任人署名:
618







1概述

1.1设计背景

现场可编程门阵列(简称FPGA)20世纪80年代中期出现高密度可编程逻辑器件,采取SRAM开关元件FPGA是易失性,每次重新加电,

FPGA

突出优点是可反复编程,系统上电时,FPGA加载不一样配置数据,即可令其完成

这种配置改变甚至能够在系统运行中进行,实现系统功效动态重构。

(

ISP)

电路或整个电子系统逻辑功效可随时进行修改或重构能力,支持ISP技术可编程

利用计算机接口和一根下载电缆就能够对器件编程了。
逻辑器件称为在系统可编程逻辑器件,它不需要专门编程器,

1.2抢答器现实状况

在进行智力竞赛抢答题比赛时,各参赛者考虑后全部想抢先答题。假如没有适宜设备,有时难以分清她们前后,使主持人感到为难。为了使比赛能顺利进行,需要有一个能判定抢答前后设备,我们将它称为智力竞赛抢答器。在很多抢答竞赛、文体娱乐活动,为了正确、公正、直观地判定出第一抢答者,通常需要设置一台这么抢答器,经过指示灯显示出第一抢答者。

1.3 本论文关键完成工作



本课程设计基于VHDL语言, 采取FPGA为控制关键, 并结合动手实践完成,



含有电路简单、操作方便、灵敏可靠等优点。设计四路抢答器使用VHDL硬件描述语言进行编程,分为七个模块:判定模块,锁存模块,转换模块,扫描模块,片选模块,定时报警模块和译码模块。编程完成后,使用QuartersII工具软件进行编译仿真验证。系统达成要求:在一路成功抢答有效后,其它三路均不能抢答,而且将抢答成功一路用指示灯显示出来。

1.4设计心得

经过这次课程设计,帮助我们加深了解FPGA程序设计方法,学会quartusII软件使用,了解简单多功效抢答器组成原理,掌握在quartusII中实现功效仿真方法,对应地提升动手能力和排障能力,而且良好地巩固已学理论知识,将硬件描述语言语法和实践相结合。

计算定时计数各个单元电路。经过分析多功效抢答器各单元电路之间关系及相互影响,从而能正确设计、





2开发工具介绍

2.1VHDL语言介绍

VHDL英文全名是Very-High-SpeedIntegrated Circuit HardwareDescription

Language,

1982

1987

,

VHDLIEEE和美国国防部确定为标准硬件描述语言。

IEEE 布了 VHDL 版本 , IEEE-1076 ,

EDA 自己 VHDL ,

VHDL

IEEE 1076-1993 ,

VHDLVerilog作为IEEE工业标准硬件描述语言,又得到众多EDA企业支持,

在电子工程领域,已成为实际上通用硬件描述语言。有教授认为,在新世纪中,

VHDLVerilog语言将负担起大部分数字系统设计任务。

VHDL关键用于描述数字系统结构,行为,功效和接口。

,

VHDL语言形式和描述风格和句法是十分类似于通常计算机高级语言。

VHDL程序结构特点是将一项工程设计,或称设计实体(能够是一个元件,

一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可


视部分),既包含实体内部功效和算法完成部分。




在对一个设计实体定义了外部界面后,一旦其内部开发完成后,

这种将设计实体分成内外部分概念是VHDL系统设计基础点
VHDL语言现在在数字设计领域已为广大设计者所接收,众多CAD厂商纷纷使自己新开发电子设计软件和VHDL兼容,VHDL语言成了电子设计工程师必需掌握工具。在现在,CPU和可编程逻辑器件已经成为数字系统硬件基础,从事数字系统设计必需掌握可编程逻辑器件设计方法,VHDL语言作为可编程逻辑器件设计时最关键输入方法,为全部可编程逻辑器件厂商所支持。应用VHDL进行工程设计优点是多方面。

一、和其它硬件描述语言相比,VHDL含有更强行为描述能力,从而决定了她成为系统设计领域最好硬件描述语言。

从逻辑行为上描述和设计大规模电子系统关键确保。大 能器 ,

随时可对设计进行仿真模拟。


VHDL语句行为描述能力和程序结构决定了她含有支持大规模设计分解和已经有设计再利用功效。符合市场需求大规模系统高效,高速完成必需有多人甚至多个代发组共同并行工作才能实现。

VHDL

,

EDA

,

并自动把VHDL描述设计转变成门级网表。

五、 VHDL对设计描述含有相对独立性,设计者能够不懂硬件结构,也无须管理最终设计实现目标器件是什么,而进行独立设计。



2.2FPGA开发过程和应用

伴随现场可编程逻辑器件越来越高集成度,加上不停出现I/O标准、嵌入功效、高级时钟管理支持,使得现场可编程逻辑器越来越广泛。

2.2.1FPGA发展历程及现实状况

Xilinx企业推出了世界上第一片FPGA(现场可编程逻辑芯片),FPGA已经历几十年发展。从最初一千多可利用门,

90

,

到十一世纪又陆续推出了几千万门单片FPGA芯片。FPGA使用灵活,适用性强,尤其适适用于复杂逻辑设计,有利用电子系统小型化,而且其开发周期短、开发投入少、芯片价格不停降低,促进FPGA越来越多地替换了ASIC市场。

2.2.2 FPGA工作原理
输出输入模块IOBInputOutput Block)和内部连线(Interconnect)三个部分。

FPGA基础特点关键有:
1)采取FPGA设计ASIC电路,用户不需要投片生产,就能得到适用芯片。

2FPGA可做其它全定制或半定制ASIC电路中试样片。

3FPGA内部有丰富触发器和IO引脚。

4FPGAASIC电路中设计周期最短、开发费用最低、风险最小器件之一。

5) FPGA采取高速CHMOS工艺,功耗低, 能够和CMOS TTL电平兼容。




能够说,FPGA芯片是小批量系统提升系统集成度、可靠性最好选择之一。

FPGA是由存放在片内RAM中程序来设置其工作状态,所以,工作时需要对片内RAM进行编程。用户能够依据不一样配置模式,采取不一样编程方法。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,所以,FPGA能够反复使用。FPGA编程无须专用FPGA编程器,只须用通用EPROMPROM编程器即可。当需要修改FPGA功效时,只需换一片EPROM即可。这么,同一片FPGA,不一样编程数据,能够产生不一样电路功效。所以,FPGA使用很灵活。

2.2.3FPGA开发步骤

FPGA开发步骤能够分为以下几步:
仿 ,
功效仿真就是利用相关仿真工具对相关电路进行功效等级仿真,
也就是说对你输入设计逻辑功效进行相关模拟测试。

在功效上面来了解电路是否能够达成预期要求。这里功效仿真纯粹是模拟性质,不会设计任何具体器件硬件特征。

,

综合就是行为或功效层次表示电子系统转换成低层次门级电路网表。

线

,

就是将综合后网表文件针对某一个具体目标器件进行逻辑映射。

此时应该使用FPGA厂商提供实现和布局布线工具,依据所选芯片型号,



进行芯片内部功效单元实际连接和映射。

时序验证,就是要使得时序仿真过程中,建立和保持时间要符合相关制约,方便数据能被正确传输。使仿真既包含门延时,又包含线延时信息。能很好地反应芯片实际工作情况。

生成SOF等文件,此文件能够经过调试器把它下载到系统中间去。而FPGA设计步骤其它步骤基础上由相关工具去完成,所以只要自己设置好相关参数,不要人为干预太多。而验证话就需要用户花费大量时间去完成。

2.3Quartus II软件

Quartus II Altera FPGA/CPLD ,
Altera是世界最大可编程逻辑器件供给商之一。Quartus II在二十一世纪初推出,
Altera前一代FPGA/CPLD集成开发环境MAX+plusII更新换代产品,
快速处理和器件编程。

AlteraQuartus II 提供了完整多平台设计环境,能满足多种特定设计需要,也是单芯片可编程系统(SOPC)设计综合性环境和SOPC开发基础设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDLVerylog设计步骤,其内部嵌有VHDLVerilog逻辑综合器。Quartus II也能够利用第三方综合工具,Leonardo SpectrumSynplify ProFPGAComplier II, 并能直接调用这些工具。一样,Quartus II含有仿真功效,同时也支持第三方仿真工具,ModelSim。另外,Quartus IIMATLABDSPBuilder结合, 能够进行基于FPGADSP系统开发, DSP硬件系统实现关键EDA工具。




Quartus

II

编译器包含功效模块有分析/综合器(Analysis& Synthesis)、

适配器(Filter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、

设计辅助模块(DesignAssistant)、EDA网表文件生成器(EDA Netlist

Writer)和编辑数据接口(ComplierDatabase Interface)等。能够经过选择Start

Complication来运行全部编译器模块,也能够经过选择Start单独运行各个模块。

还能够经过选择ComplierToolTools菜单),ComplierTool

窗口中运行该模块来开启编辑器模块。在ComplierTool 窗口中,

能够打开该模块设置文件或汇报文件,或打开其它相关窗口。


Quartus II 设计 界面 示了 Quartus

II自动设计各关键处理步骤和设计步骤,包含设计输入编辑、设计分析和综合、

适配、编程文件汇编(装配)、时序参数提取和编程下载多个步骤。

1Quartus II设计步骤





3系统设计

3.1系统设计要求

抢答器是在竞赛、文体娱乐活动(抢答活动)中,能正确、公正、

本设计使用硬件描述语言VHDL设计基于FPGA电子抢答器源程序。要求实现以下功效:设计一个四路抢答器;在一路成功抢答有效后,其它三路均不能抢答,而且将抢答成功一路用指示灯显示出来。

3.2 系统设计方案
本设计分为硬件设计和软件设计,这二者相互结合, 不可分离;从时间上看,
硬件设计绝大部分工作量是在最初阶段,到后期往往还要做部分修改。

只要技术准备充足,硬件设计大返工是比较少,软件设计任务落实一直,到中后期基础上全部是软件设计任务。





2硬件设计步骤

3.2.2系统软件设计方案

软件设计和硬件电路设计应结合进行,哪些功效由硬件完成,

软件任务分析步骤是为软件设计做一个总体计划。
哪些任务由软件完成,在硬件电路设计基础定型后,也就基础上决定下来了。

它在系统软件中充当组织调度角色软件。这两类软件设计方法各有特色,
实施软件设计偏重算法效率,和硬件关系亲密, 千变万化。

软件任务分析时,应将各实施模块一一列出,并为每一个实施模块进行功效定义和接口定义(输入输出定义)。在各实施模块进行定义时,将要牵扯到数据结构和数据类型问题也一并计划好。

各实施模块计划好后,就能够监控程序了。首先依据系统功效和键盘设置选择一个最适合监控程序结构。相对来讲,实施模块任务明确单纯,比较轻易编程,而监控程序较易出问题。

这如同当一名操作工人比较轻易,而当一个厂长就比较难了。





4 含有完整抢答器功效结构图




依据对系统设计要求分析可知,系统输入信号有:各组抢答按钮S0,S1, S2, S3输入,复位信号CLEAR用于控制整个系统清0,按下该复位键系统清0,抬起该复位键抢答开始。在主持人将系统复位并使抢答有效开始后,S0, S1, S2, S3任何第一抢答者按下抢答按钮,对应输入引脚接高电位1,电路记忆下第一抢答者身份,并封锁其它各组按钮,即其它任何一组按键全部不会使电路响应,完成抢答过程。系统输出信号有:四组抢答成功是否指示灯控制信号输出口LEDALESBLEDCLEDD,当任何第一抢答者成功抢答后指示灯亮起。本系统应含有功效有:第一抢答信号判别和锁存功效,指示灯显示第一抢答者功效。

依据分析我们能够把该四路抢答器设计分为判定模块,锁存模块,
扫描模块等部分,依据各模块功效编写对应源程序,
并对对应程序进行编译以立即序仿真。若正确就进行到下一个模块编写,
若错误就修改直至编译成功。 系统具体工作原理以下:抢答锁存模块关键实现抢答过程中抢答功效,
一个和时间控制系统公用CLEAR端、4人抢答输入信号端S0,S1, S2,
S3和一个时钟信号端CLK,这个时钟信号是个高频信号,用以扫描S0, S1, S2,
S3是否有信号输入。输出端有对应于S0,S1, S2,
S3编号4个指示灯LED4线2进制输出端STATES(用于锁存目前状态),
还有一个STOP端用于指示S0,S1, S2, S3按钮状态。

,

,

若主持人按下CLEAR即为开始抢答信号,全部输出端全部自动清零。在 围内只要 ,STOP就有高电平输出至时间控制系统STOP端以控制时间停止,而且对应LED指示灯点亮,STATES锁存输出以显示优先抢答人组号,

并锁定输入端S以阻止系统响应其它抢答者信号。





4电旅程序设计及仿真

4.1抢答锁存模块设计

该模块关键实现抢答过程中抢答功效。在系统复位并使抢答有效开始后,

S0, S1, S2, S3任意一路第一抢答者按下抢答按钮,对应输入引脚接高电位1,

电路记忆下第一抢答者身份,信号输入并进行锁存,



其它任何一组按键全部不会使电路响应,完成抢答过程。

4.1.1VHDL源程序

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LOCKIS
PORT( CLK,CLEAR:IN STD_LOGIC;
WARN:INSTD_LOGIC;
S0,S1,S2,S3:IN STD_LOGIC;
STATES:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
STOP:OUTSTD_LOGIC;
LED:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
ENDLOCK;
PROCESS(CLEAR,CLK,S0,S1,S2,S3)
BEGIN
IF CLEAR='1' THEN G<="0000";LED<="0000";STOP<='0';
ELSIF CLK'EVENT AND CLK='1' THEN
IF WARN='0' THEN
IF( S3='1')AND NOT(G(0)='1' OR G(1)='1' OR G(2)='1') THEN
G(3)<='1';LED(3)<='1';
ELSIF( S2='1')ANDNOT(G(0)='1' OR G(1)='1' OR G(3)='1') THEN
G(2)<='1';LED(2)<='1';

ELSIF(S1='1')AND NOT(G(0)='1' OR G(2)='1' OR G(3)='1') THEN



G(1)<='1';LED(2)<='1';
ELSIF( S0='1')ANDNOT(G(1)='1' OR G(2)='1' OR G(3)='1') THEN
G(0)<='1';LED(3)<='1';
END IF;
STOP<=G(0) OR G(1) OR G(2) OR G(3);
END IF;
ENDIF;
CASE G IS
WHEN "0001"=>STATES<="0001";
WHEN "0010"=>STATES<="0010";
WHEN"0100"=>STATES<="0011";
WHEN"1000"=>STATES<="0100";
WHENOTHERS=>STATES<="0000"; END CASE;

4.1.2抢答锁存电路模块

在这个模块中关键实现抢答过程中抢答功效,

,

绿

在这个模块输入端有WARN输入(以时间控制系统WARN输出信号为信号源)、一个和时间控制系统公用CLEAR端、4人抢答输入信号端S0,S1, S2, S3和有一个时钟信号端CLK,这个时钟信号是个高频信号,用以扫描S0, S1, S2, S3是否有信号输入。输出端有对应于S0, S1, S2, S3编号4个指示灯LED 4线2进制输出端STATES(用于锁存目前状态),还有一个STOP



端用于指示S0,S1, S2, S3按钮状态。
5抢答锁存电路模块

4.2仿真



6仿真图

由图中可看出在复位信号CLEAR从高电平降到低电平后,抢答器开始正常工作,此时抢答开始。在此之前S0抢答无效。而S2作为第一抢答者最先抢答,这时开始报警,数码管输出显示1,说明A最先抢答。





总结

一周FPGA课程设计很快就过去了,其中真是有苦更有甜,苦是我在第一次独自设计一个应用型设备时不熟悉和不知所措,

问询同学老师和上网学习收获到了很多专业方面知识愈加锻炼了我动手能力和

专业技能。

记得大二下学期第一次上EDA程序设计课时候,我对硬件设计语言是那么难以上手,经过杜老师一学期细致讲解,配合试验课程让我对EDA相关知识、VHDL编程、quartusII软件、MAX_PLUS软件有了更深了解和更熟练掌握。

此次我课程设计为四路竞赛抢答器,依据电路特点,
我采取层次化结构化设计,将此项设计任务分成部分模块,分别对各个模块进行编程,然后再将各模块合起来编译,
到自己不能处理时候就和同小组同学研究讨论,或向指导老师请教。

这么经历不仅提升了我们独立发觉问题、分析问题、处理问题能力,又很好地培养了交流合作精神。

经过这次课程设计,深入加深了我对EDA技术了解,让我愈加明确VHDL设计步骤,并产生了愈加浓厚爱好。

尤其是当每一个模块程序调试成功时,内心满足感真无法形容。

这次经历更让我知道了理论和实际相结合是十分关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,使理论服务于实际,才能真正为社会服务。

在设计过程中我们不可避免碰到多种问题,因为这毕竟第一次做,难免会不尽善尽美。同时在设计过程中发觉了自己不少不足之处,



对以前所学过知识了解得不够深刻,掌握得不够牢靠,以后一定加强基础知识学习。在这次课程设计种我积累了很多宝贵经验,这对于未来出身社会我无疑是一笔巨大财富。

没有谁是天生就知道那个该怎么做,全部是要靠自己慢慢去探索、学习、尝试。我深刻知道用VHDL硬件描述语言形式来进行数字系统设计方便灵活,利用EDA软件进行编译优化仿真极大地降低了电路设计时间和可能发生错误,降低了开发成本。这些课程知识学习我们电子信息工程同学提供了莫大帮助,我们理当认真学习这些语言和算法。

总体来说,这次有意义课程设计让我们全部收获颇丰。

在学习了EDA技术一学期后我们接着跟随杜老师学习了单片机,
在这个知识融会贯通节骨眼上开展了基于FPGA课程设计无疑帮助我们愈加
好了解软件设计方法,培养了我们独立完成一个项目设计能力,
深入加深了对EDA技术相关课程了解,增强了以后专业学习爱好,为以后深入学习甚至是工作全部积累了宝贵经验,





致谢

此次课程设计是在我导师杜老师和耿老师悉心指导和耐心帮助之下才得以

这些专业基础知识正是我EDA技术兼单片机任课老师杜海明老师和FPGA

高级应用任课老师耿鑫老师在一节又一节富含激情而且充满了专业前沿知识课

两位恩师那严谨治学态度和渊博专业知识时时刻刻激励着我不停前行,中点 滴我


为我们补课做试验仍然如日常教学通常认真。

老师们诲人不倦作风和扎实认真地品格无不深深影响着我,受益无穷,

,

借此课程设计结束之际特向这些勤勤恳恳专业课老师们表示我最深最真挚敬意,

谢谢你们!

同时,我还要感谢我同学们和全部给这次课程设计帮助老师们,

,

调试成功时我们欢呼雀跃为了一点点成功激动不已,不积跬步无以成千里,

相信经过这一点一滴进步我们一定能够成为像各位老师一样富有专业技能为社

会做出贡献有为之士!

最终, 再一次真诚感谢各位老师和同学们,也谢谢这次答辩老师们,



感谢您百忙之中抽出时间为我们提出宝贵意见和提议,谢谢你们!



[]董玉冰.Multsim9在电工电子技术中应用[M].北京:清华大学出版社,

[]陈振官.数字电路及制作实例[M].北京:国防工业出版社,
[]褚振勇.FPGA设计及应用(第三版)[M].西安电子科技大学出版社.,4 []陈怀琛.MATLAB及在电子信息课程中应用[M].北京:电子工业出版社.,1









显示全文