1、 数字式竞赛抢答器 摘要:抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛 者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下 抢答按键回答问题。 当第一个人按下按键后, 则在显示器上显示该组的号码, 对应的灯亮, 同时电路将其他各组按键封锁,使其不起作用。若抢答时间内无人抢答,则报警灯亮。回 答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。 此次课程设计的内容是设计一个可容纳四组参赛者同时抢答的数字抢答器,可判断 第一抢答者并报警指示抢答成功,其他组抢答均无效。若提前抢答则对相应抢答组发出警 报。给出系统总体组成框图,设计思路,完成以
2、上模块的VHDL实现及功能仿真,顶层文件 及整体仿真。 关键词: VHDL ;抢答器 ;设计仿真 目 录 1 抢答器的设计要求 . 1 2 抢答器的设计分析. 1 3 抢答器的抢答鉴别模块 1 3.1 抢答鉴别模块的功能 . 1 3.2 抢答鉴别模块的源程序 2 3.3 抢答鉴别模块的时序仿真图 . 3 4 抢答器的抢答计时模块 4 4.1 抢答计时模块的功能 . 4 4.2 抢答计时模块的源程序 4 4.3 抢答计时模块的时序仿真图 . 6 5 抢答器的译码显示模块 6 5.1 译码显示模块的功能 . 6 5.2 译码显示模块的源程序 7 5.3 译码显示模块的时序仿真图 . 8 6 抢答器
3、的其他功能模块 8 6.1 犯规功能模块 8 6.2 犯规功能模块的源程序 9 6.3 犯规功能模块的时序仿真图 10 7 抢答器的顶层原理图设计 .11 7.1 顶层原理图的源文件 11 7.2 顶层原理图的时序仿真图 .12 8 课程设计的总结 .13 参考文献 .13 1 1 抢答器的设计要求 设计一个可容纳四组参赛者同时抢答的数字抢答器,可判断第一抢答者并报警指示抢 答成功,其他组抢答均无效。若提前抢答则对相应抢答组发出警报。 给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件 及整体仿真。 2 抢答器的设计分析 系统设计方案:整个系统至少有两个主要模块抢答
4、鉴别模块、抢答计时模块;其 他功能模块(犯规警告模块,输出显示模块) 。 按照要求,我们可以将整个系统分为四个主要模块:抢答鉴别模块;抢答计时模块; 犯规功能模块;译码显示模块。 3 抢答器的抢答鉴别模块 3.1 抢答鉴别模块的功能 该模块主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是 正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将 其余的抢答信号封锁的功能,并有四个抢答信号 s0、s1、s2、s3;抢答状态显示信号 states; 抢答与警报时钟信号 clk2;系统复位信号 rst;警报信号 warm。 图 3-1 抢答器鉴别元件图 Fi
5、gure 3-1 responder identification component diagram 2 3.2 抢答鉴别模块的源程序 library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity jianbei is port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0); light:buffer std_logic_vector(3 downto 0
6、); warm:out std_logic); end jianbei ; architecture one of jianbei is signal st:std_logic_vector(3 downto 0); begin p1:process(s0,rst,s1,s2,s3,clk2) begin if rst=0 then warm=0;st=“0000“; elsif clk2event and clk2=1 then if (s0=1 or st(0)=1)and not( st(1)=1 or st(2)=1 or st(3)=1 ) then st(0)=1; end if ; if (s1=1 or st(1)=1)and not( st(0)=1 or st(2)=1 or st(3)=1 ) then st(1)=1; end if ; if (s2=1 or st(2)=1)and not( st(0)=1 or st(1)=1 or st(3)=1 ) th