FPGA设计实践报告 抢答器设计设计.docVIP

  • 29
  • 0
  • 约9.11千字
  • 约 14页
  • 2018-03-27 发布于河南
  • 举报
FPGA设计实践报告 抢答器设计设计

课程设计报告 课程设计名称: FPGA设计实践 设计课题名称: 抢答器设计设计 抢答器设计设计QuartusII9.0。 设计内容: (1)抢答器可容纳四组12位选手,每组设置三个抢答按钮供选手使用。 (2)电路具有第一抢答信号的鉴别和锁存功能。在主持人将系统复位并发出抢答指令后,蜂鸣器提示抢答开始,时显示器显示初始时间并开始倒计时,若参赛选手按抢答按钮,则该组指示灯亮并用组别显示器显示选手的组别,同时蜂鸣器发出“嘀嘟”的双音频声。此时,电路具备自锁功能,使其它抢答按钮不起作用。 (3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答失败提示,主持人可以按复位键,开始新一轮的抢答。 (4)设置犯规功能。选手在主持人按开始键之前抢答,则认为犯规,犯规指示灯亮和显示出犯规组号,且蜂鸣器报警,主持人可以终止抢答执行相应惩罚。 (5)抢答器设置抢答时间选择功能。为适应多种抢答需要,系统设有10秒、15秒、20秒和3O秒四种抢答时间选择功能 。 设计具体步骤: 具体的功能模块的实现: 组别判断电路模块 (1)实现功能:实现四组十二位选手的组别判断功能,每组设置三个抢答按钮。若选手成功抢答,则输出选手所在组别。同时电路自锁功能,使其它抢答按钮不起作用。如下图所示: (2)端口说明 1)输入端 a[2..0]:外接第一组三位选手的抢答按钮; b[2..0]:外接第二组三位选手的抢答按钮; c[2..0]:外接第三组三位选手的抢答按钮; d[2..0]:外接第四组三位选手的抢答按钮; clk:外接模块时钟信号; clr:外接模块复位按钮。 2)输出端 s[3..0]:抢答四组输出端。 3)内部信号 h:存放小组抢答信号。 reset:复位功能。 (3)原理:在每次时钟上升沿时判断按键,将扫描到的组别赋给内部信号“h”,若没有按键被按下,则h=“0000”;当复位按钮按下时,即clr=‘1’,则输出s=“0000”并且将另一内部信号reset置1;当复位后,即reset=‘1’,则当有按键按下时将h的值给输出信号s,并且将标志信号reset清零,完成按键组别的输出与组别锁存功能。 (4)用VHDL语言实现如下: 组别判断电路模块oro LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY oro IS PORT(a,b,c,d:IN STD_LOGIC_VECTOR(2 DOWNTO 0); --四组十二人输入端 s :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --四组输出端 clk,clr :IN STD_LOGIC ); END oro; ARCHITECTURE behave_oro OF oro IS SIGNAL h : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL reset :STD_LOGIC; BEGIN h=0000 WHEN (a=000 AND b=000 AND c=000 AND d=000) ELSE 0001 WHEN (a/=000 AND b=000 AND c=000 AND d=000) ELSE 0010 WHEN (a=000 AND b/=000 AND c=000 AND d=000) ELSE 0100 WHEN (a=000 AND b=000 AND c/=000 AND d=000) ELSE 1000 WHEN (a=000 AND b=000 AND c=000 AND d/=000) ELSE 0000; --判断选中小组 PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN IF clr=1 THEN reset=1; s=0000; --复位清零 END IF; IF h/=0000 THEN IF reset=1 THEN s=h; --选中小组输出

文档评论(0)

1亿VIP精品文档

相关文档