数字式竞赛抢答器VHDL
「基于VHDL的智力竞赛抢答器完全设计」
「基于VHDL的智力竞赛抢答器完全设计」智力竞赛抢答器是一种常见的比赛辅助设备,它可以帮助比赛主持人快速确定哪位选手按下抢答器按钮,并且在一定的时间内限制其他选手抢答。
本文将基于VHDL(Very High Speed Integrated Circuit Hardware Description Language)对智力竞赛抢答器进行完全设计。
首先,我们需要确定抢答器的基本功能。
智力竞赛抢答器应该具备以下功能:1.按下按钮时抢答器需要发出信号,主持人可以通过这个信号来确认哪位选手抢答。
2.如果已经有选手抢答,其他选手不能再次抢答,抢答器需要提供信号以阻止其他选手抢答。
基于上述功能需求,我们可以进行如下设计。
首先,我们需要使用VHDL语言定义抢答器所需要用到的模块和信号。
```entity 抢答器 isportStart_Button : in std_logic; -- 抢答器按钮输入信号Response : out std_logic; -- 抢答信号Busy : out std_logic -- 抢答器忙碌信号end entity 抢答器;```在抢答器模块中,我们需要定义两个重要的信号:Start_Button,表示抢答器按钮的输入信号;Response,表示抢答信号的输出;Busy,表示抢答器忙碌信号的输出。
接下来,我们需要定义这些信号的行为。
根据抢答器的功能需求,我们可以进行如下行为定义。
```architecture 抢答器行为 of 抢答器 issignal isPressed : std_logic := '0'; -- 按钮按下信号signal isBusy : std_logic := '0'; -- 抢答器忙碌信号beginprocess(Start_Button)beginif Start_Button = '1' and isBusy = '0' then -- 按钮按下,且抢答器没有被占用isPressed <= '1'; -- 设置按钮按下信号为1isBusy <= '1'; -- 设置抢答器忙碌信号为1end if;if isPressed = '1' then -- 如果按钮被按下Response <= '1'; -- 输出抢答信号else -- 如果按钮未被按下Response <= '0'; -- 不输出抢答信号end if;end process;--重置抢答器状态reset_process : processbeginif Start_Button = '0' thenisPressed <= '0'; -- 标记按钮未被按下isBusy <= '0'; -- 标记抢答器未被占用end if;end process;--根据抢答器的状态设置忙碌信号busy_signal_process : process(response, isBusy) beginif isBusy = '1' thenBusy <= '1'; -- 输出忙碌信号elseBusy <= '0'; -- 不输出忙碌信号end if;end process;end architecture 抢答器行为;```以上代码定义了抢答器的行为,通过进程的方式处理输入信号,并根据当前的状态输出相应的信号。
VHDL抢答器
VHDL抢答器的设计一.VHDL抢答器要求:1.抢答器同时供4名选手,分别用4个按钮S0~ S3表示。
2.设置一个系统“开始复位”开关S,该开关由主持人控制(当主持人按下该开关后以前的状态复位并且开始计时抢答)。
3.抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4. 抢答器具有定时抢答功能,且一次抢答的时间(0-99S)。
当主持人启动“开始复位”键后,定时器进行减计时。
5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
二.程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK ISPORT( CLK,CLEAR:IN STD_LOGIC;WARN:IN STD_LOGIC;S0,S1,S2,S3:IN STD_LOGIC;STATES:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);STOP:OUT STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END LOCK;ARCHITECTURE ONE OF LOCK ISSIGNAL G:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLEAR,CLK,S0,S1,S2,S3)BEGINIF CLEAR='1' THEN G<="0000";LED<="0000";STOP<='0';ELSIF CLK'EVENT AND CLK='1' THENIF WARN='0' THENIF( S3='1')AND NOT(G(0)='1' OR G(1)='1' OR G(2)='1') THENG(3)<='1';LED(3)<='1';ELSIF( S2='1')AND NOT(G(0)='1' OR G(1)='1' OR G(3)='1') THENG(2)<='1';LED(2)<='1';ELSIF( S1='1')AND NOT(G(0)='1' OR G(2)='1' OR G(3)='1') THENG(1)<='1';LED(2)<='1';ELSIF( S0='1')AND NOT(G(1)='1' OR G(2)='1' OR G(3)='1') THENG(0)<='1';LED(3)<='1';END IF;STOP<=G(0) OR G(1) OR G(2) OR G(3);END IF;END IF;CASE G ISWHEN "0001"=>STATES<="0001"; WHEN "0010"=>STATES<="0010"; WHEN "0100"=>STATES<="0011"; WHEN "1000"=>STATES<="0100"; WHEN OTHERS=>STATES<="0000"; END CASE;END PROCESS;END ARCHITECTURE ONE;VHDL抢答器的设计学院:水利电力学院班级: 08电机姓名:王富德学号:0803505034。
预备抢答抢答器的VHDL实现
预备抢答抢答器的 VHDL 实现
黄政辉
(湖北轻工职业技术学院机电系,湖北 武汉 430070)
摘要:抢答器是知识竞赛中的一种常用装置。结合知识竞赛中的实际抢答过程,给出了具有预备抢答功能的抢答器的 vhdl 设计,并给 出了 vhdl 语言中信号锁存的一种方法和改变分频器分频信号占空比的一种方案。 关键词:抢答器;预备抢答;vhdl;信号锁存;占空比;调整
如图 3 所示:
图 3 第一信号检测与违例判断模块仿真结果
图中第六队抢答信号 team6 最先产生,故输出信号 result6 为 1,其余为 0;此外,抢答在 start 到达之后,因此没有违规, nopre 输出为 1,违规信号 pre 输出为 0。
(3)秒脉冲发生模块。此模块输入时钟信号为 10MHz,经 10 分频器 7 次分频得 1Hz 信号。此 1Hz 信号除作计数脉冲控 制 93s 倒计时进程外,还将作为提示音的控制信号使用。本装 置控制声音要求秒脉冲的占空比为 1:2,而一般十进制计数器 的占空比为 1:10,设计时针对这一点,作了占空比调整。此模 块 vhdl 程序如下:
if tmp="0110" or tmp="0111" or tmp="1000" or tmp="1001" then — ——占空比调整为 1:2
DIV<='1'; else div<='0'; END IF; end if; end if; END PROCESS; end a;
程序中语句“if tmp="0110" or tmp="0111" or tmp="1000" or tmp="1001" then DIV<='1';”将占空比由 1:20 调整为 1:2。占 空比调整仿真结果如图 4 所示:
数字式竞赛抢答器的VHDL设计
实验报告实验名称:VHDL实验实验日期:2012年3月7日学院:信息工程学院班级:2009级通信工程一班姓名:沈晶晶学号:2009550607数字式竞赛抢答器的VHDL设计1、设计任务及要求:设计任务:(1)设计一个可容纳8组参赛的数字式抢答器,每组设一个按钮,供抢答使用。
(2)抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
(3)设置一个主持人“复位”按钮。
(4)主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,由指示灯显示抢答组的编号,同时扬声器发出2~3秒的音响。
扩展功能:(5)设置一个计分电路,每组开始预制100分,由主持人计分,答对一次加10分,答错一次减10分。
设计要求:(1)采用VHDL语言编写程序,并在QUARTUS II平台中进行仿真,下载到EDA实验箱进行验证。
(2)编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。
(3)设计时间和地点:两个星期,信息楼4楼EDA实验室。
定时抢答器的总体框图如图1所示,它由主体电路和扩展电路两部分构成,主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。
扩展电路完成各选手的得分显示功能。
定时抢答器的工作过程是:接通电源时,主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯;抢答开始时,主持人将控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,这时,抢答器完成以下工作:(1)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号;(2)扬声器发出短暂声响,提醒主持人注意;(3)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;(4)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加/减计数器、数码管显示。
本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。
(完整)EDA课程设计——数字抢答器
数字式竞赛抢答器设计要求1、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用.2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3、设置一个主持人“复位”按钮。
4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出 2~3 秒的音响。
5、设置一个计分电路,每组开始预置 100 分,由主持人记分,答对一次加 10 分,答错一次减 10 分。
1、总体方案设计原理及分析1.1、方案原理按照设计要求,设计一个4组参赛的抢答器,所以这种抢答器要求有四路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数码显示和蜂鸣报警等方式提示主持人并显示出组别;同时该系统还应有复位功能。
主持人按下系统复位键(RST),系统进入抢答状态,计分模块输出初始信号给数码显示模块并显示出初始值。
当某参赛组抢先将抢答键按下时,系统将其余三路抢答信号封锁,同时扬声器发出2-3秒的声音提示,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。
主持人对抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。
计时至0时,停止计时,扬声器发出超时报警信号,以中止未回答完问题。
当主持人给出倒计时停止信号时,扬声器停止鸣叫.若参赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。
主持人按下复位键,即RST 为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。
此抢答器的设计中采用自顶向下的设计思路,运用VHDL 硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。
1。
2、方案设计框图主电路 扩展功能电路图1 方案系统结构图1.3、方案各路功能分析此方案是由主体电路和扩展电路两部分构成,整个系统包括这样几个主要模块:抢答鉴别模块、抢答计时模块、抢答计分模块、译码显示模块、报警模块。
VHDL四路抢答器的设计
VHDL四路抢答器的设计第一篇:VHDL四路抢答器的设计VHDL四路抢答器的设计设计要求:1.抢答器同时供N名选手,(此处假设4个)分别用4个按钮S0~S3表示。
2.设置一个系统“开始复位”开关S,该开关由主持人控制(当主持人按下该开关后以前的状态复位并且开始计时抢答)。
3.抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4.抢答器具有定时抢答功能,且一次抢答的时间(0-99S)。
当主持人启动“开始复位”键后,定时器进行减计时。
5.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
一、概述抢答器的逻辑结构主要由抢答鉴别lock模块、定时模块、译码模块和报警器模块组成。
在整个抢答器中最关键的是如何实现抢答封锁,在控制键按下的同时计数器倒计时显示有效剩余时间。
除此之外,整个抢答器还需有一个“复位开始”信号,以便抢答器能实现清零和开始。
抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。
当主持人按下控制键、选手按下抢答键蜂鸣器短暂响起。
•方案设计与论证嘿嘿!将该任务分成N个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、译码模块、报警模块,最后是综合。
1.抢答器鉴别模块:在这个模块中主要实现抢答过程中的抢答功能,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
在这个模块输入端有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按钮状态(控制计时器停止)。
最全课程设计智力竞赛抢答器VHDL
Shaanxi University of Tecnology 通信工程专业课程设计Ⅱ题目竞赛抢答器的设计与实现学生姓名蒋清洋学号0613024047所在院(系)陕西理工学院电信工程系专业班级通信工程专业0 7 3 班指导教师侯宝生完成地点陕西理工学院电信工程系实验室2010 年 3 月 19 日通信工程专业课程设计Ⅱ任务书院(系) 电信工程系专业班级通信工程专业073班学生姓名蒋清洋一、课程设计Ⅱ题目竞赛抢答器的设计与实现二、课程设计Ⅱ工作自 2010 年 3 月 1 日起至 2010 年 3 月 19 日止三、课程设计Ⅱ进行地点: 电信工程系实验室四、课程设计Ⅱ的内容要求:设计一竞赛抢答器的设计与实现(方法要求:EDA)1、设计一个可容纳6组(或4组)参赛的数字式抢答器,每组设一个按钮,供抢答使用。
2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3、设置一个主持人“复位”按钮。
4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出2~3秒的音响。
5、设置一个计分电路,每组开始预置100分,由主持人记分,答对一次加10分,答错一次减10分。
指导教师侯宝生系(教研室)通信工程教研室接受任务开始执行日期2010年3月1日学生签名蒋青洋目录摘要-------------------------------------------------------------------------------- 4 绪论--------------------------------------------------------------------------------- 6 第一章方案及原理----------------------------------------------------------------- 7 一方案提出与分析---------------------------------------------------------- 71.0总体方案框图 ----------------------------------- 71.1方案一 ------------------------------------- 71.2 方案二 -------------------------------------- 71.3 方案分析 -------------------------------------- 7二系统的设计方案 ------------------------------------ 7 三.设计原理-------------------------------------------------------- 93.1总体结构设计------------------------------------------------- 93.2 FPGA简介------------------------------------------------ 9 第二章单元模块设计-------------------------------------------------------- 12一、抢答鉴别单元-------------------------------------------------- 12二、计分器电路单元---------------------------------------------------------- 13三、计时器电路单元--------------------------------------------------------- 14四、译码单元-------------------------------------------------------- 16五、模块的打包:-------------------------------------------------------- 17 第三章硬件测试-------------------------------- 18 外接电路器件------------------------------------------------ 20参考文献------------------------------------------------- 23 课程总结--------------------------------------------------- 24 致谢---------------------------------------------------- 25 附录A ----------------------------------------------------- 26[摘要]抢答器在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答者的机器。
VHDL语言设计四路抢答器
一、设计要求:在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等各种功能。
本设计的具体功能是:1.可容纳四组参赛者进行抢答,每组设置一个抢答按钮供抢答者使用。
2.电路具有第一抢答信号的鉴别和锁存功能。
在主持人交系统复位并发出抢答指令后,若有一组先按下抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别,同时扬声器发出“嘀嘟”的双音音响,且持续2~3秒。
此时,电路具备自锁功能,使他组的抢答开关不起作用。
3.具有计分功能,使每组在开始时的分数预置成100分,抢答后由主持人计分,答对一次加10分。
二、系统方案论证与模块划分:根据系统设计要求可知:1.系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;2.系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LED_A、LES_B、LED_C、LED_D,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
3.本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能。
根据以上的分析,我们可将整个系统分为三个主要模块:抢鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ;对于需显示的信息,需增加或外接译码器,进行显示译码。
考虑到FPGA、CPLD的可用接口及一般EDA实验开发系统的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。
整个系统的组成框图如图2-1所示:系统的工作原理如下:当主持人按下使能端EN1时,抢答器开始工作,A、B、C、D四个抢答者谁最先抢答成功则此选手的台号灯(LED_A—LED_D)将点亮,并且组别显示数码管将显示出抢答成功者的台号,并由蜂鸣器发出抢答成功的警报;接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块JFQ将给对应的组加分,并将该组的总分显示在对应的选手计分数码管JF2_A-JF0_A、JF2_B-JF0_B、JF2_C-JF0_C、JF2_D-JF0_D、上。
毕业设计(论文)-基于vhdl的数字是竞赛抢答器的设计与实现[管理资料]
基于VHDL的数字式竞赛抢答器的设计与实现--抢答、计分和报警完成日期:指导教师签字:答辩小组成员签字:基于VHDL的数字式竞赛抢答器的设计与实现——抢答、计分和报警摘要抢答器作为一种电子产品,早已广泛应用于各种智力竞赛和知识竞赛场合,是竞赛问答中一种常用的必备装置电路结构形式多种多样。
本设计使用VHDL语言设计一个四路数字竞赛抢答器系统。
VHDL是一种全方位的硬件描述语言,几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。
本文阐述了EDA 的概念和发展、VHDL 语言的优点和语法结构并分析讲解了四路数字竞赛的各模块的功能要求、基本原理以及实现方法。
本系统的设计就是采用VHDL硬件描述语言编程,,其采用的模块化、逐步细化的设计方法有利于系统的分工合作,并且能够及早发现各子模块及系统中的错误,提高系统设计的效率。
抢答器的主要功能模块是是:1、对第一抢答信号的鉴别和锁存功能;2、计分功能。
3、数码显示;4、答题限时功能。
在本设计主要讲述抢答、计分和警告的功能。
关键词: 抢答器;EDA ;VHDLBased on VHDL for Digital Competition Vies to Answer First theDesign andImplementation-Vies to AnswerFirst, Scoring and Call the PoliceAbstractResponder is a kind of electronic products, has been widely used in all kinds of intelligence competition and knowledge contests occasions, is contest answers must have a common device circuit structure forms.The design of the use of VHDL language design a four way race responder digital is a full range of hardware description language, covering almost the past various hardware description language function, the top-down or bottom-up circuit design process can use VHDL to paper expounds the concept and the development of EDA, VHDL language advantages and grammatical structure and Analysis on the four digital competition each module functional requirements, principle and implementation design of this system is the use of VHDL hardware description language, based on platform compilation and simulation to achieve, the modular, stepwise refinement design method is helpful for system of division of labour, and early identification of each module and the system error, improve the efficiency of system to answer first the main function module is: 1, the first vies to answer first the differential signal and latch function; 2, score 3, a digital display; 4, the answer time limit this design is mainly about answering, scoring and warning function.Key words: responder; EDA; VHDL目录1 绪论 02 总体设计方案 (1)3 设计平台的描述 (2)EDA的概述 (2)VHDL语言特点描述 (3)设计平台Q UARTUS II (4)4 抢答器各部分的设计描述及仿真波形 (6)抢答鉴别、计分和报警模块的设计 (6)抢答鉴别模块设计 (6)报警模块设计 (7)计分模块的设计 0其他模块的设计 0译码模块的设计 0定时模块的设计 0动态显示模块的设计: (2)5 总结 (3)参考文献 (4)致谢 (4)附录源代码 (5)1 绪论随着集成技术的发展,尤其是中、大规模和超大规模集成电路的发展,数字电子技术的应用越来越多地渗透到国民经济的各个部门,目前数字电子技术已经广泛应用于计算机、自动控制、电子测量仪表、电视、雷达、通信等各个领域。
基于VHDL语言的数字智能抢答器设计
126
if clr='0' then --清零 q<='0';
elsif cp'event and cp='1' then q<='1';
模块四:实现从选手按键号码到对应二进制数的转换,运 用VHDL的”case”语句编程,部分代码如下:
tmp:=d1&d2&d3&d4; case tmp is when"0111"=>q<="0001";when"1011"=>
失去了回答问题的机会。 模块二:在每次电路时钟信号clk的上升沿实现“q1<=d1;q2<=d2;
q3<=d3;q4<=d4”,并发出alm发声有效信号(alm<='1')。 模块三:当cp信号上升沿时,q端置高电平,代表其中有选手了
回答。当主持人按下clr按钮将其置零时,q端置低电平,系统复位。 部分代码如下:
q<="0010"; when"1101"=>q<="0011";when"1110"=>
q<="0100"; 模块五:实现接收到抢答信号后的99s倒计时,倒
计时时间到则发出一个发声命令。 主要运用了循环思想编程,部分代 码如下:
if clk'event and clk='1'then if en='1'then --开始计数
4. 总结
ASM对JAVA字节码的动态修改可以将业务代码和非业务代码进 行了很好的解耦,彼此之间相互独立,互不影响,而且可以根据需要 动态植入和卸载。但是这也产生了一个问题,由于是动态修改字节 码,这样代码出现问题时将给分析问题带来一定的麻烦,而且在性能 上也有一定的牺牲,因此对于要求响应效率较高的应用不适合使用这 种动态修改字节码得方式。总之,正确的场合去使用ASM还是可以给 我们带来很好的收益,不正确的场合可能就会有事倍功半的效果。
基于VHDL的四路抢答器报告
前言 (3)一、项目名称 (3)二、设计目的 (3)三、设计任务与要求3.1 设计任务: (4)3.2 设计要求 (4)四、四人智力竞赛抢答器设计4.1 基本功能 (4)4.2 扩展框图 (4)4.3 系统框图 (4)五、总模块图 (5)六、仿真图 (5)七、结论 (7)八、管脚绑定 (7)九、源代码 (8)前言进入21世纪越来越来多的电子产品出现在人们的日常生活中,例如企业、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。
过去在举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
人们于是开始寻求一种能不依人的主观意愿来判断的设备来规范比赛。
因此,为了克服这种现象的惯性发生人们利用各种资源和条件设计出很多的抢答器,从最初的简单抢答按钮,到后来的显示选手号的抢答器,再到现在的数显抢答器,其功能在一天的趋于完善不但可以用来倒计时抢答,还兼具报警,计分显示等等功能,有了这些更准确地仪器使得我们的竞赛变得更加精彩纷呈,也使比赛更突显其公平公正的原则。
今天随着科技的不断进步抢答器的制作也更加追求精益求精,人们摆脱了耗费很多元件仅来实现用指示灯和一些电路来实现简单的抢答功能,使第一个抢答的参赛者的编号能通过指示灯显示出来,避免不合理的现象发生。
但这种电路不易于扩展,而且当有更高要求是酒无法实现,例如参赛人数的增加。
随着数字电路的发展,数字抢答器诞生了,它易于扩展,可靠性好,集成度高,而且费用低,功能更加多样话,是一种高效能的产品。
而如今在市场上销售的抢答器大多采用可编程逻辑元器件,或利用单片机技术进行设计,本次设计主要通过划分功能模块进行各个部分的设计,最后完成了四路智力竞赛抢答器的设计。
一.项目名称基于FPGA的四路抢答器二、设计目的1、掌握四人智力竞赛抢答器电路的设计。
2、熟悉数字集成电路的设计和使用方法。
数字系统设计(智力竞赛抢答器Verilog HDL建模)
(此文档为word格式,下载后您可任意编辑修改!)课程设计报告课程名称现代数字系统设计设计题目智力竞赛抢答器Verilog HDL建模系别机械与电子工程系班级学生姓名学号任课教师完成时间南湖学院教务办目录一、设计任务与要求 (1)二、方案设计与论证 (1)2.1方案论证 (1)2.2 综合分析 (3)三、模块设计及程序清单 (4)3.1 抢答模块 (4)3.2 锁存模块 (5)3.3 计数模块 (7)3.4 声音警报模块 (9)3.5 声音信号产生模块 (11)四、仿真过程与仿真结果 (12)4.1 仿真过程 (12)4.2 仿真分析 (14)五、结果分析与结论 (16)六、设计心得 (16)七、参考文献 (16)致谢 (17)设计任务起至日期:第17周周一~第19周周一设计题目:智力竞赛抢答器Verilog HDL建模设计要求:1、5组参赛者进行抢答;2、当抢先者按下按钮时,抢答器能准确判断,并以声、光标志(模拟)。
要求声响、光亮时间为3s后自动结束;3、抢答器应具有互锁功能,某组抢答后能自动封锁其他各组进行抢答;4、具有限时功能,分5s、10s、15s三档时间,时间到自动发出声响,且计时时间通过数码管显示(以7段译码输出、动态扫描方式);5、犯规、违章警告信号(如主持人未说“开始抢答”,抢答者按下按钮),以指示灯闪烁标志;6、系统具有一个总复位开关;7、用Verilog HDL对此抢答器进行建模,并在Modelsim SE或Quartus II平台进行仿真测试,给出仿真结果。
智力竞赛抢答器的Verilog HDL建模一、设计任务与要求智力竞赛抢答器Verilog HDL要求有5组参赛者进行抢答,有五个抢答信号进行抢答。
当有抢答选手按下抢答键后系统能够快速准确的判断是那一组选手按下了抢答信号,由于系统比较小,速度比较快一般不会有同时按下的可能,所以只有五种状态,然后系统能够根据这五种状态进行适时的显示和提示。
VHDL语言设计竞赛抢答器
1 引言随着电子技术的发展,现在的抢答器功能越来越强,可靠性和准确性也越来越高。
以前的抢答器大部分都是基于传统数字电路组成的。
制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。
由于近年来电子技术发展迅速,逐渐出现用现场可编程门阵列(简称FPGA)制作抢答器,使得电子系统的设计者利用EDA(电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC)器件。
制作过程简单,而且安装、维护简单。
1.1选题的现实意义抢答器控制系统是学校、政府机关、金融单位、广播电视系统或党委、工会、团委、企事业单位等部门举办竞赛问答、各种知识测试、娱乐活动中经常使用的重要基础设备之一,它是一个能准确、公正、直观地判断出抢答者的机器[1]。
通过一些方式如数码管显示抢答成功者的信息,或者通过声音来判别成功抢答的选手。
随着现代科学技术的迅猛发展和经济全球化的加强,电子抢答器成为了不可逆转的发展趋势。
因此,研究智能电子抢答器及扩大其应用,有着非常现实的意义。
2 语言、软件介绍2.1 FPGA2.1.1 FPGA简介FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点[2]。
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
图1 FPGA内部结构框图现场可编程门阵列FPGA作为集成度和复杂程度最高的可编程ASIC,主要由与阵列、或阵列、输入缓冲电路、输出宏单元等组成,是ASIC的一种新型门类,它建立在创新的发明构思和先进的EDA技术之上。
基于vhdl智力竞赛抢答器的设计与实现说明书
摘要本课程设计主要内容是利用EDA技术设计一个可容纳四组选手的智力竞赛抢答器,全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的组合逻辑电路和时序逻辑电路编程。
本课程设计的开发仿真工具是MAX+plus II,采用自顶向下、逐层细化的设计方法设计整套系统,顶层模块用图形描述,底层文件用VHDL语言描述。
通过波形仿真,实现了智力竞赛抢答器的基本功能,达到了设计要求。
关键字智力竞赛抢答器;EDA技术;VHDL;MAX+plus II;自顶向下1 引言20世纪90年代,引进数字系统设计方法发生突破性变革的技术是VHDL (Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)。
它是一种IEEE-1076标准所规范的硬件描述语言,主要用于算法级、寄存器级到门级的多种抽象设计层次的数字系统建模,已成为电子设计自动化(EDA)的一种重要手段。
本课程设计的主要目的是:全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养设计综合电路的能力,养成编写文档资料的习惯和规范编程的思想。
2 智力竞赛抢答器的主要功能设计一个4人参加的智力竞赛抢答计时器。
该系统具有回答问题时间控制的功能,要求回答问题时间小于等于100秒(显示为0~99),时间显示采用倒计时方式。
当达到限定时间时,发出声响以示警告;当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。
智力竞赛抢答器的功能分块如图2-1所示。
图2-1智力竞赛抢答器功能模块划分图该智力竞赛抢答器分为七个模块,分别为:鉴别模块、锁存器模块、转换模块、选择输出模块、倒计时模块、片选模块和显示模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字系统设计与硬件描述语言期末考试作业题目:数字式竞赛抢答器设计学院:电子信息工程专业:电子信息工程学号:姓名:一、选题设计描述1.功能介绍此设计用于竞赛的四人抢答,有如下的功能:(1)具有多路抢答功能,台数设计为四;(2)具有抢答器开始后30秒倒计时,30秒后无人抢答显示超时,并报警;(3)能显示超前抢答犯规,并警报;(4)能显示各组得分,大队加分,答错扣分;当系统复位,主持人按下抢答开始按键,处于使能状态,抢答开始,某路抢答键按下时,该路信号将其他路信号锁存,同时抢答铃声响起,直至此路按键松开,显示该路组号。
2.算法简介本设计采用分层设计思想,分为:信号鉴别模块、计时模块、计分模块、BCD译码模块、分频器,还有顶层模块。
信号鉴别模块。
此模块主要实现抢答器的抢答功能,并能够分辨是正常抢答还是提前抢答,选取最先按下的一路信号,锁存其余信号,实现信号选取功能。
在此模块中,用到的信号为抢答信号a、b、c、d;抢答使能信号en;抢答结果信号states;警报时钟信号clk2;复位信号rst;提前抢答信号fangui。
计时模块。
此模块主要实现抢答过程中的计时功能,在抢答开始后进行30秒的倒计时,且在30秒后显示无人抢答报警信号。
其中有抢答时钟信号clk;系统复位信号rst;抢答使能信号en;无人抢答警报信号warn;计时中止信号stop;计时十位个位信号tb,ta。
计分模块。
此模块主要实现给四个抢答器计分的功能,初始条件下,为每个抢答器信号预制5分,当某组抢答且回答正确时加一分,答错减一分,未获答题机会时保持不变。
其中设有时钟信号clk;复位信号rst;抢答使能信号en;抢答结果显示信号states;记分加减信号add(add=‘1’时为加,add=‘0’时为减);四个信号的得分显示信号a_out,b_out,c_out,d_out。
BCD译码模块。
此模块主要实现将抢答结果信号显示在bcd七段译码器上。
其中输入信号a;输出译码结果信号q。
分频器。
此模块主要实现时钟分频功能。
在开头对时钟信号进行一次千分频。
其中时钟输入信号clkin,输出信号clk。
顶层模块。
将前几个模块综合在一起,形成一个整体。
分频器输出作为其他模块所需的时钟信号,使整个系统正常运转。
二、程序源代码及说明抢答信号鉴别模块的程序:library ieee;use qdjb isport(clk2,en,rst:in std_logic;a,b,c,d:in std_logic;fangui:out std_logic;states:out std_logic_vector(3 downto 0));end qdjb;architecture one of qdjb issignal sinor,fanguif,tmp:std_logic;signal cnt:std_logic_vector(5 downto 0);beginsinor<=a or b or c or d;p1:process(a,rst,b,c,d,tmp)beginif rst='1' then --复位信号有效,系统复位。
tmp<='1';states<="0000";elsif tmp='1' thenif a='1' then --判断哪路信号变化,进行选取states<="0001";tmp<='0'; --对states进行置数elsif b='1' thenstates<="0010";tmp<='0';elsif c='1' thenstates<="0011";tmp<='0';elsif d='1' thenstates<="0100";tmp<='0';else tmp<='1';states<="0000";end if ;end if;end process p1;p2:process(clk2,en,rst,cnt) --判断是否提前抢答并报警 beginif rst='1' thencnt<="000000";fanguif<='0'; --初始化提前抢答犯规信号 elsif clk2'event and clk2='1' thenif en='0' and sinor='1' thenif cnt<"111111" thenfanguif<=not fanguif;cnt<=cnt+1;else fanguif<='0';end if;end if;end if;end process p2;fangui<=fanguif;end one;计时模块的程序:library ieee;use js isport(clk,rst,en,stop:in std_logic;warn:buffer std_logic;ta,tb:buffer std_logic_vector(3 downto 0));end js;architecture one of js issignal co:std_logic;beginp1:process(clk,rst,en,stop,ta) --个位计时信号进行0到9循环计数 beginif rst='1' or stop='1' thenta<="0000";elsif clk'event and clk='1' thenco<='0';if en='1' thenif ta="0000" thenta<="1001";co<='1';else ta<=ta-1;end if;end if;end if;end process p1;p2:process(co,rst,en,stop,tb) --十位计时信号0到3变化beginif rst='1' or stop='1' thentb<="0011";elsif co'event and co='1' thenif en='1' thenif tb="0000" then tb<="0011";else tb<=tb-1;end if;end if;end if;end process p2;p3:process(rst,ta,tb) --计时时间到达,报警beginif rst='1' thenwarn<='0';elsif ta="0000" and tb="0000" thenwarn<='1';else warn<='0';end if;end process p3;end one;计分模块的程序:library ieee;use jf isport(clk,rst,en,add:in std_logic;states:in std_logic_vector(3 downto 0);a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0)); end jf;architecture one of jf isbeginp1:process(clk,rst,add,states,a_out,b_out,c_out,d_out)beginif (rst='1') thena_out<="0101";b_out<="0101";c_out<="0101";d_out<="0101"; --初始化置5分 elsif en='1'thenif clk'event and clk='1' thencase states iswhen "0001"=>if add='1' then --add信号为高时,加1分 if a_out="1111" then --最多15分a_out<="0000";else a_out<=a_out+1;end if;elsif add='0' then --add信号为0,减1分 if a_out="0000" thena_out<="0000";else a_out<=a_out-1;end if;end if;when "0010"=>if add='1' thenif b_out="1111" thenb_out<="0000";else b_out<=b_out+1;end if;elsif add='0' thenif b_out="0000" thenb_out<="0000";else b_out<=b_out-1;end if;end if;when "0011"=>if add='1' thenif c_out="1111" thenc_out<="0000";else c_out<=c_out+1;end if;elsif add='0' thenif c_out="0000" thenc_out<="0000";else c_out<=c_out-1;end if;end if;when "0100"=>if add='1' thenif d_out="1111" thend_out<="0000";else d_out<=d_out+1;end if;elsif add='0' thenif d_out="0000" thend_out<="0000";else d_out<=d_out-1;end if;end if;when others=>a_out<=a_out;b_out<=b_out;c_out<=c_out;d_out<=d_out;end case;end if;end if;end process p1;end one;抢答器顶层模块程序:library ieee;use qiangda isport(clkin,clk2,en,a,b,c,d,add,stop,rst:in std_logic;fangui,alarm:out std_logic;ta,tb:buffer std_logic_vector(3 downto 0);states:buffer std_logic_vector(3 downto 0);statesout:out std_logic_vector(0 to 6);a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0)); end qiangda;architecture bhv of qiangda iscomponent qdjb isport(clk2,en,rst:in std_logic;a,b,c,d:in std_logic;fangui:out std_logic;states:out std_logic_vector(3 downto 0));end component;component js isport(clk,rst,en,stop:in std_logic;warn:buffer std_logic;ta,tb:buffer std_logic_vector(3 downto 0));end component;component jf isport(clk,rst,en,add:in std_logic;states:in std_logic_vector(3 downto 0);a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0)); end component;component BCD7 isport(a:in std_logic_vector(3 downto 0);q:out std_logic_vector(0 to 6));end component BCD7;component divf isport(clk: IN STD_LOGIC;q : OUT STD_LOGIC;qn: OUT std_logic_vector(9 downto 0));end component divf;signal cnt:std_logic_vector(3 downto 0);signal clk: STD_LOGIC;signal divqn: std_logic_vector(3 downto 0);beginu1:qdjb port map(clk2,en,rst,a,b,c,d,fangui,states);u2:js port map(clk,rst,en,stop,alarm,ta,tb);u3:jf port map(clk,rst,en,add,states,a_out,b_out,c_out,d_out); u4:BCD7 port map(states,statesout);u5:divf port map(clkin,clk,divqn);end bhv;BCD7段译码器模块程序:LIBRARY IEEE;USE BCD7 ISPORT(a: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --数据输入q : OUT STD_LOGIC_VECTOR(0 TO 6) ); --7段输出END BCD7;ARCHITECTURE behav OF BCD7 ISBEGINPROCESS (a)BEGINcase a(3 downto 0) is -- BCD 7段译码表when "0000" => q<="1111110";when "0001" => q<="0110000";when "0010" => q<="1101101";when "0011" => q<="1111001";when "0100" => q<="0110011";when "0101" => q<="1011011";when "0110" => q<="1011111";when "0111" => q<="1110000";when "1000" => q<="1111111";when "1001" => q<="1111011";when others => q<="0000000";END case;END PROCESS;END behav;一千分频器模块程序:LIBRARY IEEE;USE divf ISPORT(clk: IN STD_LOGIC;q : OUT STD_LOGIC;qn: OUT std_logic_vector(9 downto 0)); END divf;ARCHITECTURE behav OF divf ISsignal rst: std_logic;signal qn1:std_logic_vector(9 downto 0); BEGINPROCESS (clk,rst)BEGINif rst='1' thenqn1<= "000";elsif clk'event and clk='1' thenqn1<=qn1+1;end if;END PROCESS;rst<='1' when qn1=1000 else '0';qn<=qn1; --计数q<=qn1(9); --分频输出,1000分频END behav;三、仿真结果及分析系统总体框图:对于各个模块的仿真测试所得结果,仿真波形分析如下:1、信号鉴别模块:仿真结果:本模块主要实现抢答功能。