基于FPGA的四路抢答器
- 格式:doc
- 大小:259.50 KB
- 文档页数:17
北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:竞赛抢答器作者所在系部:电子工程系作者所在专业:电子信息工程作者所在班级:B10212作者姓名:郭思华指导教师姓名:胡辉完成时间:2012-12-16内容摘要EDA技术是现代电子信息工程领域的一门新技术,他是先进的计算机工作平台上开发出来的一套电子系统设计的软硬件工具,并设计先进的电子系统设计方法。
本文介绍了以FPGA为基础的四路抢答器的设计,此次设计是一个有4组抢答输入,并具有抢答计时控制,到时报警以及时间显示等功能的通用型抢答器。
此次设计它以VHDL硬件描述为平台,结合动手实践完成。
该抢答器分为五个模块:抢答模块、计时模块、选择模块,位循环模块和译码模块。
利用QuartusⅡ工具软件完成率编译仿真验证。
关键词EDA、可编程逻辑器件、计数器、显示器目录一概述 (1)二方案设计与论证 (1)三单元电路程序设计及其功能验证 (2)(一)抢答锁存模块的设计 (2)(二)计时模块的设计 (4)(三)数据选择模块的设计 (5)(四)译码模块的设计 (6)(五)位循环模块的设计 (8)四完整电路设计与分析 (9)(一)主电路图 (9)(二)时序仿真图 (9)(三)芯片引脚分布图 (10)五性能测试与分析 (10)六实验设备 (10)七心得体会 (10)八参考文献 (11)课程设计任务书一、概述抢答器主要由抢答模块、计时模块、选择模块,位循环模块和译码模块组成。
在整个抢答器中主持人在抢答前设置好抢答时间,在复位开始按键按下后,抢答器开始倒计时,若在计时时间内无人抢答,则抢答器报警提示,若在计时过程中有人抢答,则数码管显示第一个抢答的人的编号,同时停止计时。
抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。
二、方案设计与论证将该任务分成五个模块进行设计,分别为:抢答器抢答模块、抢答器计时模块、位循环模块、译码模块和选择模块。
课程设计报告专业班级_______________________________课程FPGA/CPLD原理及应用题目四路电子抢答器设计学号__________________________________姓名__________________________________同组人_________________________________成绩__________________________________i2013年5月一、设计目的1.进一步掌握QUARTUS软件的使用方法;2.会使用VHDL语言设计小型数字电路系统;3.掌握应用QUARTUS软件设计电路的流程;4.掌握电子抢答器的设计方法。
二、设计要求1.系统总体设计(1)设计一个可以容纳四组参赛队进行比赛的电子抢答器。
(2)具有第一抢答信号的鉴别和锁存功能。
在主持人发出抢答指令后,若有参赛者按抢答器按钮,则该组指示灯亮,显示器显示出抢答者的组别。
同时,电路处于自锁存状态,使其他组的抢答器按钮不起作用。
(3)具有计时功能。
在初始状态时,主持人可以设置答题时间的初始值。
在主持人对抢答组别进行确认,并给出倒计时记数开始信号以后,抢答者开始回答问题。
此时,显示器从初始值开始倒计时,计到0时停止计数,同时扬声器发出超时警报信号。
若参赛者在规定的时间内回答完问题,主持人可以给出计时停止信号,以免扬声器鸣叫。
(4)具有计分功能。
在初始状态时,主持人可以给每组设置初始分值。
每组抢答完毕后,由主持人打分,答对一次加1分,答错一次减1分。
(5)设置一个系统清除开关,该开关由主持人控制。
(6)具有犯规设置电路。
超时抢答者,给予鸣喇叭警示,并显示规范组别。
2.设计方案系统的输入信号有:各组的抢答按钮A、B、C、D,系统允许抢答信号STA 系统清零信号RST计分时钟信号CLK加分按钮端ADD en,减分端SUB sta,计时使能端en时钟信号elk,复位rst ;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口可用a1、b1、c1、d1表示,四个组抢答时的计时数码显示控制信号,抢答成功组别显示的控制信号,各组计分显示的控制信号。
摘要本文介绍了以FPGA为基础的四路抢答器的设计,此次设计是一个有4组抢答输入,并具有抢答计时控制,按键消抖以及积分显示等功能的通用型抢答器。
主持人有4个按键控制,可以进行开始抢答,对各抢答小组成绩进行相应加减操作以及所有积分重置。
此次设计程序使用verilog语言编写,并且使用modelsim进行相关仿真,最后在FPGA开发板上烧录程序进行实际操作演示实现了相应功能,达到了此次设计的目的。
本设计采用FPGA 来做增强了时序控制的灵活性,同时由于FPGA的IO端口资源丰富,可以再本设计基础上稍加修改可以重复设计出具有多组输入的抢答器。
关键字:按键消抖;显示;仿真;四路抢答;AbstractIn this paper, the design of four channel responder based on FPGA is proposed. The design contains four channel input, and also it has timing function, button-stop-shaking function, score display function. And the result of the design is a universal responder. The host has four buttons to control, in order to start response, add or sub the scores for each group and clear all group scores. The design program uses verilog language to write software. And modelsim is used to simulate the function on computer. At last the actual design results are demonstrated on the FPGA development board, and the functions are well veified. The result achieves the purpose of the design. The design uses FPGA to enhance the flexibility of timing control. At the same time because of IO port resoures in FPGA are much rich, if you want to design more channels responder, you just only repeat design on the basic of the design which is slightly modified.Keywords: button-stop-shaking; display; simulate; four channel responder;目录1引言 (4)2FPGA原理及其相关工具软件的介绍 (4)2.1FPGA开发过程与应用 (4)2.1.1FPGA发展历程及现状 (5)2.1.2FPGA工作原理 (5)2.1.3FPGA开发流程 (5)2.2Quartus II软件 (6)2.3Simulink软件 (7)2.3.1代码仿真 (7)2.3.2门级仿真和时序仿真 (8)3实验步骤及仿真调试结果 (8)3.1功能描述及设计架构 (8)3.2抢答器程序流程图和各模块软件代码分析 (9)3.2.1抢答器程序结构及主程序流程图 (9)3.2.2主控制及按键输入模块 (11)3.2.3计时模块 (13)3.2.4BCD显示模块 (13)3.3顶层模块连线及开发板硬件配置 (14)3.4modelsim仿真 (18)4结论 (20)谢辞.............................................................................................................. 错误!未定义书签。
现代电子系统设计综合题目——抢答器班级:电子信息工程(4)班姓名:尹燕宁学号:07090403日期:2011-12-14合作者:王启俊按照抢答器的设计要求,本设计主要实现以下基本功能:(1) 抢答器可以容纳四组参赛队进行抢答。
(2)系统复位后进入抢答状态,抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警。
(3)能显示抢答台号,且一组抢答后,则不接纳其他组抢答。
根据其设计要求,经过仔细试验和比较开始时所设想的两种方案,采用了以下方案以满足要求:倒计时模块应用动态显示方法显示两位变化的数字,倒计时过程中无人抢答则在计时结束后触发bell 信号发出报警声表示超时,有人抢答时则首先按下按钮的人通过一个stop信号屏蔽掉其他人的抢答信号,且不再计时。
在具体实现方案时,根据给定的电子综合设计实验箱的模块和已有元件的限制,对方案进行了如下调整和补充:首先是进行时钟信号分频,由给定的50MHz的时钟分成1Hz,以实现按秒倒计时;其次是倒计时显示的两位数字,由于只有一个静态显示数码管且被用于显示抢答台号,所以必须运用动态显示来进行两位数字的显示和控制;最后是复位后的初值设定,以使上一次抢答的结果不会影响下一次的抢答过程,增加电路的稳定性。
经过仿真以及实验,本设计能够圆满完成设计要求,且具有电路简洁、方案易懂、操作方便、抗干扰性强等特点,经过适当的轻微改造即可作为实际比赛时的四组抢答器,效果良好。
第一章方案的论证与设计第二章理论计算第三章电路图及相关设计文件第四章仿真与测试分析第五章设计总结第六章参考文献第七章附件(含完整电路图、VHDL设计文件)第一章方案的论证与设计为便于进行电路的方案设计和模块化设计,首先根据要求画出实现抢答器功能的系统框图如下所示:根据其设计要求,按照现有的知识水平和实验设备,提出了以下两种实现抢答器的方案:(一)倒计时部分采用静态显示,方便简单。
四人抢答部分根据抢答信号的高低来判断是否继续倒计时并且屏蔽掉其他后来的抢答信号。
基于FPGA的抢答器的工作原理一、引言随着现代科技的快速发展,FPGA(现场可编程门阵列)技术在各个领域中得到了广泛的应用。
其中,基于FPGA的抢答器是教育领域中常见的一种应用。
通过FPGA技术,抢答器可以实现高速、灵活的响应机制,为教学和培训活动提供了便利。
本文将对基于FPGA的抢答器的工作原理进行详细的介绍。
二、FPGA概述1. FPGA的定义FPGA是一种集成数字电路的器件,其内部由大量的可编程逻辑单元、存储单元和I/O接口组成。
FPGA具有现场可编程的特性,可以在设计完成后进行现场编程,从而实现灵活的功能定制。
2. FPGA的特点FPGA具有高度集成、灵活性强、功耗低、工作速度快等特点,适用于数字信号处理、通信、控制系统等领域。
三、抢答器的结构1. 抢答器的硬件结构基于FPGA的抢答器通常由按键、显示屏、FPGA芯片和外围电路组成。
按键用于参与者进行抢答操作,显示屏用于显示抢答结果,FPGA 芯片负责控制抢答器的运行和逻辑处理,外围电路用于提供电源和信号输入输出。
2. 抢答器的工作原理当参与者按下抢答器上的按键时,按键输入信号经过FPGA芯片的控制和逻辑处理,判断哪个参与者首先按下了按键,并将结果显示在显示屏上。
四、FPGA在抢答器中的应用1. FPGA的并行计算能力FPGA芯片具有丰富的逻辑单元和存储单元,可以实现高度并行的计算和处理。
在抢答器中,FPGA可以同时响应多个按键输入信号,并快速进行逻辑判断,实现高效的抢答功能。
2. FPGA的灵活编程特性FPGA芯片可以根据具体应用的需求进行灵活的编程,实现各种功能和算法的定制。
在抢答器中,通过FPGA的灵活编程,可以实现不同的抢答规则和显示效果,满足不同教学活动的需求。
3. FPGA的快速响应速度由于FPGA芯片具有优秀的并行计算能力和高速的内部数据传输通道,因此抢答器可以实现快速的按键响应和结果显示,确保抢答活动的顺利进行。
五、基于FPGA的抢答器的优势1. 高速响应基于FPGA的抢答器具有快速的响应速度,可以实现毫秒级的按键响应和结果显示,为教学和培训活动提供了高效便利的抢答环境。
FPGA期末结业论文基于FPGA&VerilogHDL的四路抢答器院系:物理与电子学院专业:电子信息科学与技术任课教师:学号:姓名:2013年12月目录(0)摘要 (2)(1)引言 (3)1.1关于课程设计 (3)1.1.1课程设计目的 (3)1.1.2课程设计内容 (3)1.2开发工具简介 (4)1.2.1 EDA技术 (4)1.2.2 硬件描述语言-Verilog HDL (4)1.2.3 Verilog HDL设计流程 (5)1.2.4 FPGA基本特点 (5)1.2.5 FPGA工作原理 (5)(2)概述 (5)2.1 设计过程 (5)2.1.1系统设计要求 (5)2.1.2系统设计方案 (6)(3)系统设计 (6)3.1系统组图 (6)3.2系统主源程序 (8)(4)仿真综合 (10)(5)结论 (13)(6)参考文献 (13)(7)附录 (13)0摘要抢答器是在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答者的机器。
电子抢答器的中心构造一般都是由抢答器由单片机以及外围电路组成。
本设计是以四路抢答为基本概念。
从实际应用出发,利用电子设计自动化( EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。
它以Verilog HDL硬件描述语言作为平台,结合动手实验而完成的。
它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。
本抢答器的电路主要有四部分组成:鉴别锁存电路、FPGA主芯片EP1C3T144C8电路、计分电路以及扫描显示模块的电路,并利用Quartus II工具软件完成了Verilog HDL源程序编写和硬件下载。
这个抢答器设计基本上满足了实际比赛应用中的各种需要。
在实际中有很大的用途。
关键词:抢答器 Quartus II Verilog HDL EP1C3T144C81引言硬件描述语言 Hardware Description Language 是硬件设计人员和电子设计自动化 EDA 工具之间的界面。
数字电子技术课程设计报告--基于 FPGA的四位智能抢答器专业:xxx班级:xxx姓名:xxx学号:xxx一、设计任务及要求基于EDA/SOPC系统开发平台,运用QuartusⅡ可编程逻辑器件开发软件,设计一个4位智能抢答器。
要求如下:1、可以同时供4名选手抢答,其编号分别为1、2、3、4,各用抢答按键S1、S2、S3、S4,按键编号与选手编号对应。
主持人设置有一个开始按键S5,一个清零按键S6,用于控制抢答的开始和系统的清零;2、抢答器具有定时抢答的功能,一次抢答的时间为10秒。
当主持人启动“开始”按键后,用4 位LED 数码管左边两位显示10s 的倒计时;3、抢答器具有数据锁存和显示的功能,抢答开始后,如果有选手按动按键,其编号立即锁存并显示在数码管上(显示在右边的两个数码管上),同时封锁输入电路,禁止其他选手抢答;优先选手的编号一直保持到主持人将系统清零为止;4、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示抢答时刻的时间(左边两个数码管上)和参赛选手的编号(显示在右边的两个数码管上),并保持到主持人将系统清零为止;如果定时抢答的时间已到而没有选手抢答,本次抢答无效,封锁输入电路,禁止抢答,定时器显示“00”并闪烁,闪烁频率为0.5H Z;一直保持到主持人将系统清零为止;5、在主持人未按下开始按键时,如果有人抢答则犯规,在显示器上右边两位闪烁犯规选手的编号,闪烁频率为0.5H Z;一直保持到主持人将系统清零为止;6、说明:系统上电和按下清零按键后显示“0000”,设计中的时钟脉冲频率为1000赫兹;7、附加:加入按键软件消抖功能及加减分数显示计分功能;能够设置不同的抢答时间,以便应用于不同的抢答系统。
二、设计原理及方案本次设计主要采用verilog HDL 语言,总体编程思路采用模块化设计方式,主要分为3个模块,一个主控制及按扭输入模块,一个LED计时提示模块,一个抢答组号显示模块,分别对这3个子模块进行独立编程设计,并生成元件,并在顶层使用原理图的方式将3个模块连接起来完成整个设计。
基于XILINX FPGA的抢答器设计电子科技大学微电子与固体电子学院吴洪天2603001018目录一、摘要 (2)二、任务要求 (3)三、总体设计方案 (4)四、各模块实现过程与仿真结果 (6)(一)选手编码锁存器模块 (6)(二)分频器模块 (9)(三)蜂鸣器模块 (11)(四)定时器模块 (15)(五)显示译码模块 (18)(六)顶层模块 (21)五、下载和调试 (26)六、总结 (27)一、摘要FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,通过它可以实现各种数字逻辑电路。
随着微电子技术的发展,FPGA内部集成了越来越多的门电路单元,利用FPGA可实现的系统也越来越复杂。
为了实现对FPGA 的编程配置,需要使用硬件描述语言,最常用的硬件描述语言有VHDL和Verilog hdl两种,由于Verilog语法简单,且接近于C语言,使用也相对较灵活,因此这里选择使用Verilog进行编程。
在这里,我们要用FPGA实现一个四个选手的抢答器。
抢答器是一种典型的异步时序逻辑电路,因此整个系统不受同步时钟的控制。
在进行系统设计时,采用自顶而下的设计思路,先根据系统的整体功能构思出顶层模块的功能,再根据具体的功能分成各种子模块进行设计。
在用硬件描述语言进行描述时,可以有两种描述方式,一种是行为描述,另一种是结构描述。
行为描述方式按照模块要实现功能用描述性语句描述模块输入对模块输出的影响,这种描述方式简单灵活,可以不用过多考虑具体的电路结构,然而,这样也可能存在所描述的电路无法实现的情况,造成综合工具无法综合;结构描述方式类似于传统构建电路的方法,利用各种已经构造好的模块或元件直接相连形成新的模块,这种描述方式需要考虑电路的具体结构,因此设计起来也相对较麻烦,但可综合率较高。
在这个系统的设计中,各个子模块采用行为描述方式进行构造,以提高效率,但需要时刻考虑所描述的语句是否可综合,顶层模块采用结构描述语句,由于顶层模块只需简单地将各个子模块连接在一起,无需考虑电路的工作的过程和原理,因此采用结构描述方式也很容易。
基于FPGA的多路竞赛抢答器设计冀云【摘要】基于ISE软件开发环境,运用VHDL硬件描述语言,设计了一款4路竞赛抢答器,给出了抢答器系统的系统功能模块;对设计工程进行了综合、编译、仿真,并下载到FPGA芯片xc3s700a-5fg484进行测试;结果表明设计能实现系统预期的功能.【期刊名称】《重庆工商大学学报(自然科学版)》【年(卷),期】2014(031)003【总页数】6页(P62-67)【关键词】竞赛抢答器;VHDL;仿真波形;硬件测试【作者】冀云【作者单位】重庆电子工程职业学院应用电子学院,重庆401331【正文语种】中文【中图分类】TN421抢答器在各种竞赛性质的场合有非常广泛的应用,它由组合逻辑电路进行状态判断与选择,消除了原来由于人眼的误差而未能正确判断最先抢答的选手的情况,从而避免了竞赛场合出现不必要的争执。
现行的抢答器设计方案主要有两种:采用触发器和小规模组合逻辑芯片实现;用单片机配合外围电路实现。
方法一的优点是思路简单且存在比较成熟的设计范例,但具体电路复杂,元器件较多;相对来说使用单片机实现比较灵活,但如果选手人数较多则会出现I/O口不足的问题。
设计采用FPGA现场可编程技术,完全由HDL硬件描述语言实现抢答功能,避免了硬件电路的焊接调试,同时由于FPGA的可编程资源及I/O端口丰富,可以在设计的基础上进行自由改进。
抢答器的原理比较容易理解,首先必须设置一个抢答允许标志位,目的就是用于允许或禁止抢答者按键;如果允许抢答位有效,那么第一位按键的抢答者按下按键的就会将其清除,同时记录下按键者的编号并显示,达到后面的抢答者按键都无效化的效果。
系统设计一个多路竞赛抢答器,具有4路抢答输入,每人可通过按键手动申请抢答,要求能够识别第一个抢答的信号,点亮对应的LED表示抢答成功,同时其他选手按键失效;七段数码管对选手序号和抢答所剩的时间进行计时、显示。
系统设计结构如图1。
FPGA(现场可编程门阵列)是一种SRAM生产工艺的复杂可编程逻辑器件,基于查找表(LUT)结构技术,当用户描述了一个逻辑电路之后,设计软件会自动计算其所有可能存在的结果,并优先写入RAM。
北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:竞赛抢答器作者所在系部:电子工程系作者所在专业:电子信息工程作者所在班级:B10212作者姓名:郭思华指导教师姓名:胡辉完成时间:2012-12-16内容摘要EDA技术是现代电子信息工程领域的一门新技术,他是先进的计算机工作平台上开发出来的一套电子系统设计的软硬件工具,并设计先进的电子系统设计方法。
本文介绍了以FPGA为基础的四路抢答器的设计,此次设计是一个有4组抢答输入,并具有抢答计时控制,到时报警以及时间显示等功能的通用型抢答器。
此次设计它以VHDL硬件描述为平台,结合动手实践完成。
该抢答器分为五个模块:抢答模块、计时模块、选择模块,位循环模块和译码模块。
利用QuartusⅡ工具软件完成率编译仿真验证。
关键词EDA、可编程逻辑器件、计数器、显示器目录一概述 (1)二方案设计与论证 (1)三单元电路程序设计及其功能验证 (2)(一)抢答锁存模块的设计 (2)(二)计时模块的设计 (4)(三)数据选择模块的设计 (5)(四)译码模块的设计 (6)(五)位循环模块的设计 (8)四完整电路设计与分析 (9)(一)主电路图 (9)(二)时序仿真图 (9)(三)芯片引脚分布图 (10)五性能测试与分析 (10)六实验设备 (10)七心得体会 (10)八参考文献 (11)课程设计任务书一、概述抢答器主要由抢答模块、计时模块、选择模块,位循环模块和译码模块组成。
在整个抢答器中主持人在抢答前设置好抢答时间,在复位开始按键按下后,抢答器开始倒计时,若在计时时间内无人抢答,则抢答器报警提示,若在计时过程中有人抢答,则数码管显示第一个抢答的人的编号,同时停止计时。
抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。
二、方案设计与论证将该任务分成五个模块进行设计,分别为:抢答器抢答模块、抢答器计时模块、位循环模块、译码模块和选择模块。
设计过程:在本次设计中,我先对整体要求进行了了解,然后根据要求将整个电路划分为 5个模块,并对这5个模块的功能进行了划分,然后依据各模块功能编写程序,并对编写出的程序进行了编译以及时序仿真,若结果正确则继续进行下一个模块的编写,若错误就进行修改直到结果正确。
将5个模块都编写完成之后,让这5个模块生成对应的器件,然后连接出完整的电路进行编译及仿真,在没有错误后在实验箱上进行功能验证。
方案论证:1、抢答锁存模块;在这个模块中主要实现抢答过程中的抢答功能。
在抢答开始后,当任意一路抢答器按下后,信号输入并进行锁存,这时其它抢答按键再按下也不起作用。
此模块有A、B、C、D四路抢答输入信号;复位信号R;输出报警信号BJ;数据输出信号Y。
2、抢答器计时模块:在这个模块中主要实现抢答过程中的计时功能。
在抢答开始主持人按下复位键后进行60秒的倒计时,并且在60秒倒计时后无人抢答显示超时并报警,若有选手抢答则计时停止,主持人也可以手动设置计时时间。
此模块包含时钟信号CLK;系统复位信号R;修改时间使能信号EN;无人抢答警报信号BJ;有人抢答停止计时信号ST;时间设置输入十位和个位信号cg,cs;计时十位和个位输出信号SW,GW。
3、数据选择模块:在这个模块中主要实现抢答过程中的数据循环显示功能,通过SEL信号的循环输入,从而控制数码管的循环显示,利用人眼的视觉停留使人感觉数码管是同时常亮的。
此模块包含输入显示位控制信号SEL;数据输入信号H,G,S;数据输出信号Z 。
4、译码模块:在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
在本次课设中主要用于对时间的个位、十位的数值进行相应的译码,使其在数码管上能显示出正常数字。
此模块包含输入信号SJ,输出信号Y。
5、位循环模块:实现抢答过程中对数码管扫描显示位的控制。
在本次课设中共利用了三个数码管,所以将SEL设置在000,001,010三个数之间循环,使得数码管仅显示后三位。
此模块包含CLK控制信号,复位控制信号R,输出信号SEL。
三、单元电路程序设计及其功能验证(一)抢答锁存模块1、VHDL源程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY QDMK ISPORT(A,B,C,D:IN std_logic;R:IN std_logic;SIGNAL CLK:IN std_logic;BJ:OUT std_logic;Y:buffer std_logic_vector(6 DOWNTO 0));END QDMK;ARCHITECTURE behave OF QDMK ISBEGINPROCESS(A,B,C,D,R,CLK)BEGINIF R='1'THENY<="0000000";BJ<='0';ELSIF CLK'event AND CLK='1'THENIF Y<="0000000" THENIF A='1' THENY<="0110000";ELSIF B='1' THENY<="1101101";ELSIF C='1' THENY<="1111001";ELSIF D='1' THENY<="0110011";END IF;ELSE NULL;END IF;BJ<=A OR B OR C OR D;END IF;END PROCESS;END behave;2、仿真图由图中可看出在复位信号R从高电平降到低电平后,抢答器开始正常工作,A最先抢答,这时开始报警,数码管输出显示1,说明A最先抢答。
(二)计时模块1、VHDL源程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY JS ISPORT(R,ST,EN,CLK:IN std_logic;cg,cs:IN std_logic_vector(3 DOWNTO 0);GW,SW:BUFFER std_logic_vector(3 DOWNTO 0);BJ:OUT std_logic);END JS;ARCHITECTURE behave OF JS ISBEGINPROCESS(R,EN,ST,CLK)BEGINIF ST='0'THENIF R='1'THENIF EN='1'THENGW<=cg;SW<=cs;BJ<='0';ELSE GW<="0000";SW<="0110";BJ<='0';END IF;ELSIF CLK'EVENT AND CLK='1'THENIF GW<="0000"THENGW<="1001";IF SW="0000"THENSW<="0110";ELSE SW<=SW-1;END IF;ELSE GW<=GW-1;END IF;IF GW="0000"AND SW<="0000"THENGW<="0000";SW<="0110";BJ<='1';END IF;END IF;ELSE BJ<='0';END IF;END PROCESS;END behave;2、仿真图从图中可看出,在复位信号为1时,始能信号EN为1,这时计时时间改变为cs,cg中输入的06秒,在复位信号变为0后开始计时,在计时时间到达0时由于无人抢答(由停止信号ST控制),故产生报警信号开始报警。
在停止信号为1后,停止计时,在停止信号为0时,计时再次开始。
(三)数据选择模块1、VHDL源程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY XZMK ISPORT(SEL:IN std_logic_vector(2 DOWNTO 0);H,S,G:IN std_logic_vector(6 DOWNTO 0);Z:OUT std_logic_vector(6 DOWNTO 0));END XZMK;ARCHITECTURE behave OF XZMK ISBEGINWITH SEL SELECTZ<=H when"000",G when"001",S when"010","0000000" when others;END behave;2、仿真图从图中可看出,在SEL信号为2时,输出计时时间的十位(S信号),在SEL信号为1时,输出计时时间的个位(G信号),在SEL信号为0时,输出最先抢答的抢答器的编号(H信号)。
(四)译码模块1、VHDL源程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY YMMK ISPORT(SJ:IN std_logic_vector(3 DOWNTO 0);Y:OUT std_logic_vector(6 DOWNTO 0));END ENTITY;ARCHITECTURE behave OF YMMK ISBEGINPROCESS(SJ)BEGINCASE SJ ISWHEN"0000"=>Y<="1111110";WHEN"0001"=>Y<="0110000";WHEN"0010"=>Y<="1101101";WHEN"0011"=>Y<="1111001";WHEN"0100"=>Y<="0110011";WHEN"0101"=>Y<="1011011";WHEN"0110"=>Y<="1011111";WHEN"0111"=>Y<="1110000";WHEN"1000"=>Y<="1111111";WHEN"1001"=>Y<="1110011";WHEN OTHERS=>Y<="0000000";END CASE;END PROCESS;END behave;2、仿真从图中可看出,本模块对输入的BCD码信号(SJ信号)进行了编译,输出信号Y,使其能在数码管上对应显示出相应的数值。