《VHDL语言设计竞赛抢答器毕业论文.doc》由会员分享,可在线阅读,更多相关《VHDL语言设计竞赛抢答器毕业论文.doc(26页珍藏版)》请在三一办公上搜索。
1、1 引言随着电子技术的发展,现在的抢答器功能越来越强,可靠性和准确性也越来越高。以前的抢答器大部分都是基于传统数字电路组成的。制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。由于近年来电子技术发展迅速,逐渐出现用现场可编程门阵列(简称FPGA)制作抢答器,使得电子系统的设计者利用EDA(电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC)器件。制作过程简单,而且安装、维护简单。1.1 选题的现实意义抢答器控制系统是学校、政府机关、金融单位、广播电视系统或党委、工会、团委、企事业单位等部门举办竞赛问答、各种知识测试、娱乐活动中经常使用的重要基础设备之一,它是一个能
2、准确、公正、直观地判断出抢答者的机器1。通过一些方式如数码管显示抢答成功者的信息,或者通过声音来判别成功抢答的选手。随着现代科学技术的迅猛发展和经济全球化的加强,电子抢答器成为了不可逆转的发展趋势。因此,研究智能电子抢答器及扩大其应用,有着非常现实的意义。2 语言、软件介绍2.1 FPGA2.1.1 FPGA简介FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点
3、2。目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。图1 FPGA内部结构框图现场可编程门阵列FPGA作为集成度和复杂程度最高的可编程ASIC,主要由与阵列、或阵列、输入缓冲电路、输出宏单元等组成,是ASIC的一种新型门类,它建立在创新的发明构
4、思和先进的EDA技术之上。运算器、乘法器、数字滤波器、二维卷积器等具有复杂算法的逻辑单元和信号处理单元的逻辑设计都可选用FPGA实现。它采用SRAM开关元件的FPGA是易失性的,每次重新加电,FPGA都要重新装入配置数据。突出优点是可反复编程,系统上电时,给FPGA加载不同的配置数据,即可令其完成不同的硬件功能。这种配置的改变甚至可以在系统的运行中进行,实现系统功能的动态重构。传统的数字逻辑设计使用TTL电平和小规模的数字集成电路来完成逻辑电路图。使用这些标准的逻辑器件已经被证实是最便宜的手段,但是要求做一些布线和复杂的电路集成板(焊接调试)等工作,如果出现错误,改动起来特别麻烦。因此,采用传
5、统电子设计方案人员的很大一部分工作主要集中在设备器件之间物理连接、调试以及故障解决方面。正是因为FPGA的EDA技术使用了更高级的计算机语言,电路的生成基本上是由计算机来完成,将使用户能较快地完成更复杂的数字电路设计, 由于没有器件之间的物理连接,因此调试及故障排除更迅速、有效3。2.1.2 传统FPGA的不足与改进在现今的数字系统设计中,以“嵌入式微控制器+FPGA”为核心的体系结构因其强大的处理能力和灵活的工作方式而被广泛采用。嵌入式微控制器的优势在于将微处理器内核与丰富多样的外围接口设备紧密结合,在提供强大的运算、控制功能的同时,降低了系统成本和功耗,因而适合作为数字系统的控制核心;FP
6、GA的优势在于超高速、丰富的逻辑资源以及用户可灵活配置的逻辑功能,适用于逻辑接口功能多种多样、灵活可变的场合。将二者结合形成优势互补,如有需要,再配以适当的专用芯片(例如音视频编解码器、数字调制解调器等)。这种体系结构适用于大多数复杂数字系统的设计。如系统中包含可编程器件,就必须考虑其功能配置的问题。然而,传统的FPGA配置方案(例如调试阶段的专用下载电费方式、成品阶段的专用存储器方式)在成本、效率、灵活性等方面都存在着明显的不足。针对这样的实际问题,基于嵌入式微控制器与FPGA广泛共存于复杂数字系统的背景,考虑到大量数字系统要求接入Internet的现状,借鉴软件无线电“一机多能”的思想,提
7、出了一种基于嵌入式系统和Internet的FPGA动态配置方案。该方案的提出,旨在基于系统现有的、通用的软硬件资源,尽可能地提高FPGA配置的效率和灵活性。实践证明,该方案可行、实用,达到了设计目的。2.1.3 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
8、 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白
9、片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 2.1.4 FPGA配置模式FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与P
10、CB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题4。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。2.1.5 FPGA系统设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支
11、持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2-2所示。流程说明:1).工程师按照“自顶向下”的设计方法进行系统划分。2).输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。3).将以上的设计输入编译成标准的VHDL文件。4).进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。5).利用综
12、合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。6).利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。系统划分编译器代码级功能仿真综合器适配前时序仿真适配器CPLD/FPGA实现适配后仿真模型适配后时序仿真适配报告ASIC实现VHDL代码或图形方式输入仿真综合库器件编程文件图2 CPLD/FPGA系统设计流程7).利用适配器将综合后的网络表文件针对某一具体的目标
13、器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。8).在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。2.2 VHDL语言2.2.1 VHDL语言简介VHDL的英
14、文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准
15、的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 5。VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Description Languag
16、e.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开
17、发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点6。2.2.2 VHDL系统设计的特点与其他硬件描述语言相比,VHDL具有以下特点:功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件
18、描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关。设计人
19、员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。 2.2.3 VHDL系统优势(1)与其他的硬件描述语言相比,VHDL具有更强的行
20、为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述
21、具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计8。2.3 EDAEDA( Electronic Design Automation,电子设计自动化)是90年代发展起来的从事电子线路设计与分析的一门技术。EDA技术主要以计算机为工具9。设计者在EDA平台上,用相关软件完成设计工作,然后由计算机自动完成逻辑编译、化简、优化、布局、布线和仿真,直到对目标芯片的适配编译、逻辑映射以及编程下载等工作。传统设计方法的缺点是: 1)复杂电路的设计、调试十分困难。 2)如果某一过程存在错误,查找和修改十分不便。 3)设计过程中产生大量文档,不易管理。 4)对
22、于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差。 5)只有在设计出样机或生产出芯片后才能进行实测。EDA技术有很大不同:1)采用硬件描述语言作为设计输入。 2)库(Library)的引入。 3)设计文档的管理。 4)强大的系统建模、电路仿真功能。 5)适用于高效率大规模系统设计的自顶向下设计方案。 6)全方位地利用计算机自动设计、仿真和测试技术。 7)对设计者的硬件知识和硬件经验要求低。 8)高速性能好。 9)纯硬件系统的高可靠性。图3.EDA设计流程2.4 Quartus II2.4.1 Quartus II 简介Quartus II是Altera公司的综合性PLD开
23、发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点10。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方E
24、DA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartu
25、s II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法11。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGr
26、aphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。2.4.2 Quartus II主要特点1).Quartus II支持其他公司所提供的EDA工具接口。2).提供了与结构无关的可编程逻辑设计环境。3).提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能器件。4).软件支持硬件描述语言设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。
27、3 设计思路与系统结构作为现代集成电路设计的重点与热点,FPGA设计一般采用自顶向下、由粗到细、逐步求精的方法。设计最顶层是指系统的整体要求,最下层是指具体的逻辑电路实现12。自顶向下是将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大则进一步分解为更小的子系统和模块,层层分解,直至整个系统中各子模块关系合理、便于设计实现为止。本文运用EDA中的Ouartus II作为软件开发平台,设计了一款基于FPGA的智力竞赛抢答器。3.1 课题研究的内容1)、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用。 2)、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作
28、用。3)、设置一个主持人“复位”按钮。 4)、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出2-3秒的音响。5)、设置一个计分电路,每组开始预置100分,由主持人记分,答对一次加10分,答错一次减10分。3.2 设计思路本系统设计一个智力竞赛抢答器要求具有四路抢答输入,能够识别最先抢答的信号,显示该台号;对回答问题所用的时间进行计时、显示、超时报警同时具有复位功能和倒计时启动功能。在设计过程中先将系统模块化,然后逐步实现,系统设计原理图如图4。图4 抢答器系统原理图3.3 电子抢答器的设计3.3.1 功能模块划分根据对抢答器的功能要求 ,把要设计的系统
29、划分为六个功能模块:抢答信号判别模块,锁存模块,转换模块,扫描模块,定时与报警模块,译码与显示模块。3.3.2 功能分析判断模块:该模块用以判断各选手抢答的先后,记录最先抢答的选手号码并不再接受其它输入信号。锁存模块:该模块用以锁存最先抢答的选手号码,以便输出显示。转换模块:该模块用来将抢答选手的信息转换为二进制数,以便译码显示。扫描模块:该模块主要用来扫描显示数据,扫描频率可以调整,便于动态显示。该模块主要完成两个任务:扫描信号的建立和数码管的选择13。定时与报警模块:该模块用来对选手进行答题限时,答题时间到后输出报警信号。译码与显示模块:对数据进行译码送出数码管显示。该模块主要任务是完成二
30、进制数到段码的转换。二进制数主要记录最先抢答的选手号码和时间信号,显示结果由3个数码管经过扫描信号依次点亮14,15。3.3.3 模块的设计根据上述分析设计了各功能模块问的结构关系,如图5。各个模块存MAX+PLUS环境下用VHDL语言来实现,顶层文件采用原理图输入。FENG模块是抢答判断模块,在各个选手1,2,3,4抢答操作后,将四路信号相与,并送出高电平Q 给锁存器,锁存当时的按键状态,由于抢答信号是低电平有效,故相与后的结果可以识别最先抢答选手,由于没有时钟同步,所以锁存的延时时间只是硬件延时时间,从而实现锁存错误的概率接近零。LOCKB模块是锁存器模块,在任一选手按下按键后锁存,锁存的
31、同时送出AIM信号。clr信号为0时,d1,d2,d3,d4的输出都为0;当c1r信号为1时,将dl赋给q1,d2赋给q2,d3赋给q3,d4赋给q4,同时将alm输出为高电平。COUNT模块是定时模块,实现答题倒计时,在计满100S后送出报警提示。设计中100S时间用00到99表示,显示分为高位h,底位l,另外还有限时报警sound。设计时先将低位从9开始逐一自减,当到0时高位自减1,也就是低位每减少1O,高位就减少1。当高位从9减少到0时,报警就输出高电平。CH31A模块为扫描模块,轮流送出需要显示的数据。当sel为000时,将d1赋值给q1,同时将01111111赋值给WX选通数码管;当
32、sel为001时,将d2赋值给q2,同时将1011lll1赋值给WX选通数码管;当sel为011时,将d3赋值给q3,同时将11011111 赋值给WX选通数码管。图5 抢答器的顶层原理图CH41A模块是抢答结果转换模块,将抢答结果转换为二进制数。抢答结果低电平有效,当抢答结果dld2d3d4为Olll时,输出q为0001;当抢答结果dld2d3d4为1011时,输出q为0010;当抢答结果dld2d3d4为1l0l时,输出q为0011;当抢答结果dld2d3d4为111O时,输出q为0100。SEL模块为片选模块。产生片选信号。此模块相当一个计数器,在时钟下自加。DISP模块为译码模块,用于
33、将数据转换成段码,以便数码管能正确显示。5 电子抢答器的仿真 采用EDA开发T具MAX+PLUS对各个模块的VHDL源程序及顶层电路进行编译、逻辑综合,并对各个模块以及顶层电路都进行了波形仿真。南于文章篇幅原因,本文给出顶层电路的仿真波形。图3是顶层电路模块整体的仿真波形,CK1为系统时钟,CI K2为动态扫描时钟,h为主持人控制开始键,高电平有效;1、2、3、4表示抢答选手号,低电平有效;sound为100S超时报警;qh 3.0、q13.0为100 S计时显示,qh3.0为十位,ql3.0为个位;q7.O抢答选手的段码。首先由主持人将开始按钮h按下之后,选手1,2,3,4开始抢答,网中是1
34、号选手最先按下,q7.O显示段码结果为06(台号显示为1),此时定时器开始T 作做减计数,qh3.0和ql 3.O依次减小(为截取整张仿真图。ql3.0个位看不清楚),当qh3.O和ql3.O减到0时说明100S的时间已到,sound信号变成高电平报警器报警,选手停止答题。结束后主持人可以复位后将开始按钮h按下重新进行下一轮的抢答。仿真结束后,进行管脚锁定,在pin locationchip中添加输人输m端可用的引脚编号,并编译通过,最后通过Byteblaster编程电缆下载文件,将所设计的内容下载到FI EX10K系列EPF10K10LC844器件进行测试。经实际电路测试验证,达到了设计的要
35、求。仿真图及其功能说明:Ch31a模块:图6 Ch31a模块仿真波形此模块为扫描模块,此时sel相当于一个计数器,当sel为000时,输出d1,sel为001时,输出d2,sel为010到110时,输出1111,sel为111时,输出d3。Ch41a模块:图7 h41a模块仿真波形此模块用二进制显示抢答的结果,抢答结果是低电平有效。由仿真图可见,当d1抢答成功时,显示0001,d2抢答成功时,显示0010,d3抢答成功时显示0011,d4抢答成功时显示0100.,无人抢答时显示1111。Sel模块:图8 Sel模块仿真波形此模块相当于一个计数器,在每个时钟上升沿到来时,输出就自加1。Count
36、模块:图9 Count模块仿真波形此模块实现倒计时功能,初始时为0000,当上升沿到来时低位从1001开始自减1,减到0000时高位开始从1001自减1,知道最后低位、高位都为0。Lockb模块:图10 Lockb模块仿真波形此为锁存模块,主持人按下复位键时,清零。当clk上升沿到来时,将d1赋值给q1,d2赋值给q2,d3赋值给q3,d4赋值给q4。Feng模块:图11 Feng模块仿真波形主持人按下复位键,清零,当有人抢答,即cp为下降沿时,输出高电平。Disp模块:图12 Disp模块仿真波形此为译码模块,将二进制转化成代码段,d为0000时,输出0111111;d为0001时,输出00
37、00110;d为0010时,输出1011011;d为0011时,输出1001111;d为0100时,输出1100110;d为0101时,输出1101101;d为0110时,输出1111101;d为0111时,输出0100111;d为1000时,输出1111111;d为1001时,输出1101111;其他时候为0000000。整个电路的仿真图:图13 顶层电路仿真波形主持人按下复位键,当有人抢答时,锁存其组号,并开始倒计时。扫描模块将这些信息转换成段码段后扫描输出。结 论本文介绍了基于FPGA的智能电子抢答器的设计,本设计使用VHDL语言,对智能抢答器的每一个模块进行分析,设计,编译,并在qua
38、rtersII软件的支持下,对其进行仿真。通过反复的编译、仿真、检查、修改,证明本次设计的抢答器各项功能复合预定标准。但其中仍存在一些不足之处,请多见谅!致 谢本设计是在指导老师 的精心指导下完成的。周老师有着深厚的理论水平,严谨的治学态度,最可贵的是她会不厌其烦的为我们解决她力所能及的问题。就比如我的一个quartersII的软件她就帮我装了差不多有五遍,可从来都没有一丝的不耐烦。在此我首先向周广利老师致以深深的敬意和由衷的感谢!在整个设计过程中,我身边的同学,特别是同组的同学们也给予了我很大的帮助,他们帮我解决了很多细节上的问题,使我能够更好更顺利的完成我的毕业设计,谢谢你们!通过做这次的
39、毕业设计,我学到了很多,无论是理论知识的巩固和进步还是实际操作的掌握,都让我受益匪浅。这些很大程度都得益于曾经帮助过我的老师和同学,请允许我在此向他们表示诚挚的感谢。最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢,谢谢!参 考 文 献1江国强EDA技术与应用M2006,电子工业出版社.2刘开绪可编程逻辑器件在抢答器电路设计中的应用J沈阳工业大学学 报,2007, 29(1):lO31O6.3胡丹基于VHDI 的智力竞赛抢答器的设计与实现J现代机械,2007,(3):54 55.4章忠全电子技术基础实验与课程设计M中国电力出版社,19995高曙光可编程逻辑器件
40、原理、开发与应用M西安:西安电子科技大学出 版社,20026 刘开绪数字式抢答器的设计与实现J1电子工程师2005.9:69717阎石数字电子技术基础M北京:高等教育出版社,19998冯祥可编程逻辑器件在数字系统中的应用J国外电子元器件,2001(5):58 599刘延文,唐庆玉,段玉生EDA技术是实现电工学研究型教学的良好手段J实 验技术与管理,2006(8):65-6810韩芝侠一款工作可靠的智力竞赛抢答器电路的设计与分析J.现代电子技 术,2005,28(20):293111侯伯亨,顾新VHDL硬件描述语言与数字逻辑电路设计西安:西安电子科 技大学出版社,1997.12常青,陈辉煌可变成
41、专用集成电路及其应用与设计实践经验北京:国防工 业出版社,1998.13郭勇EDA技术基础(第2版)M.机械工业出版社,200531432014 Enoch O Hwang.Digital Longic and Microprocessor Design with VHDLM. Thomson-Engineering,2005.15Sudhakar Yalamanchili.Introductory VHDL:from simulation to synthesisM.Prentice Hall,2001.4 电子抢答器源程序各模块VHDL源代码1)、抢答鉴别模块FENG的VHDL源程序-fe
42、ng.vhdLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FENG ISPORT(CP,CLR:IN STD_LOGIC; Q :OUT STD_LOGIC); END FENG; ARCHITECTURE FENG_ARC OF FENG IS BEGINPROCESS(CP,CLR)BEGINIF CLR=0THEN Q=0; ELSIF CPEVENT AND CP=0THEN Q=1; END IF; END PROCESS; END FENG_ARC;2)、片选信号产生模块SEL的VHDL源程序-sel.vhd LIBRARY I
43、EEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SEL IS PORT(CLK:IN STD_LOGIC;a:OUT INTEGER RANGE 0 TO 7); END SEL; ARCHITECTURE SEL_ARC OF SEL IS -片选信号产生模块SEL BEGIN PROCESS(CLK) VARIABLE AA:INTEGER RANGE 0 TO 7; BEGIN IF CLKEVENT AND CLK=1THEN AA:=AA+1; END IF; A=AA; END PROCESS; END SEL_ARC;3)、锁存器模块LOCKB的
44、VHDL源程序-lockb.vhdLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LOCKB ISPORT(D1,D2,D3,D4:IN STD_LOGIC; CLK,CLR:IN STD_LOGIC; Q1,Q2,Q3,Q4,ALM:OUT STD_LOGIC); END LOCKB; ARCHITECTURE LOCK_ARC OF LOCKB IS BEGIN PROCESS(CLK) BEGIN IF CLR=0THEN Q1=0; Q2=0; Q3=0; Q4=0; ALM=0; -模块LOCKB ELSIF CLKEVENT AN
45、D CLK=1THEN Q1=D1; Q2=D2; Q3=D3; Q4=D4; ALM=1; END IF; END PROCESS; END LOCK_ARC;4)、转换模块CH41A的VHDL源程序-ch41a.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY CH41A IS.PORT(D1,D2,D3,D4:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END CH41A; ARCHITECTURE CH41_ARC OF CH41A IS -转换模块CH41ABEGIN PROCESS(D1,D2,D3,D4) VARIABLE TMP:STD_LOGIC_VECTOR(3 DOWNTO