可容纳四组参赛者的数字智力抢答器VHDL代码Quartus仿真

本文详细描述了一个使用VHDL语言在Quartus平台上设计的数字智力抢答器,包括抢答鉴别、计分控制、LED指示和数码管显示等功能,展示了关键组件如加分/减分键、抢答控制模块和显示模块的代码片段。
摘要由CSDN通过智能技术生成

名称:可容纳四组参赛者的数字智力抢答器VHDL代码Quartus仿真(文末获取)

软件:Quartus

语言:VHDL

代码功能:

设计制作一个可容纳四组参赛者的数字智力抢答器。

1.电路具有第一抢答信号的鉴别和锁存功能。在主持人发出抢答指令后,若抢答成功,则该组指示灯亮。此时,电路应具备自锁功能,使别组的抢答开关不起作用。

2.设置计分电路。每组在开始时预置成50分,抢答后由主持人计分,答对一次加5分,否则减5分。每组选手分值由数码管进行显示。

3.系统主要外设:自恢复式按键5个、蜂鸣器1个、系统时钟(50MH2)、LED灯若

干、7段数码管若干。

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

状态图

5. Testbench(TB文件)

6. 仿真图

整体仿真图

抢答控制模块

分数控制模块

显示模块

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY qiangdaqi IS
   PORT (
      clk            : IN STD_LOGIC;
      reset_n        : IN STD_LOGIC;--复位
      start_p        : IN STD_LOGIC;--主持人
      
      add_score_1    : IN STD_LOGIC;--加分键
      sub_score_1    : IN STD_LOGIC;--减分键
      add_score_2    : IN STD_LOGIC;--加分键
      sub_score_2    : IN STD_LOGIC;--减分键
      add_score_3    : IN STD_LOGIC;--加分键
      sub_score_3    : IN STD_LOGIC;--减分键
      add_score_4    : IN STD_LOGIC;--加分键
      sub_score_4    : IN STD_LOGIC;--减分键
      
      key_1          : IN STD_LOGIC;--抢答键
      key_2          : IN STD_LOGIC;--抢答键
      key_3          : IN STD_LOGIC;--抢答键
      key_4          : IN STD_LOGIC;--抢答键
      
      led_1      : OUT STD_LOGIC;--抢答指示led灯,高亮
      led_2      : OUT STD_LOGIC;--抢答指示led灯,高亮
      led_3      : OUT STD_LOGIC;--抢答指示led灯,高亮
      led_4      : OUT STD_LOGIC;--抢答指示led灯,高亮
      
  --数码管
      HEX1           : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--抢答者
      HEX2           : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--分数十位
      HEX3           : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--分数个位
   );
END qiangdaqi;
ARCHITECTURE behavioral OF qiangdaqi IS
--分数控制模块
   COMPONENT score_crtl IS
      PORT (
         clk            : IN STD_LOGIC;
         add_score_1    : IN STD_LOGIC;
         sub_score_1    : IN STD_LOGIC;
         add_score_2    : IN STD_LOGIC;
         sub_score_2    : IN STD_LOGIC;
         add_score_3    : IN STD_LOGIC;
         sub_score_3    : IN STD_LOGIC;
         add_score_4    : IN STD_LOGIC;
         sub_score_4    : IN STD_LOGIC;
         score_1        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         score_2        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         score_3        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         score_4        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
   
   --显示模块
   COMPONENT display IS
      PORT (
         clk            : IN STD_LOGIC;
         HEX1           : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         HEX2           : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         HEX3           : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         qiangda        : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
         score_1        : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         score_2        : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         score_3        : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         score_4        : IN STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
--抢答控制模块
COMPONENT qiandda_ctrl IS
   PORT (
      clk        : IN STD_LOGIC;
reset_n        : IN STD_LOGIC;
      start_p   : IN STD_LOGIC;--主持人按键
      key_1      : IN STD_LOGIC;--抢答按键,所有key都是高电平有效
      key_2      : IN STD_LOGIC;--抢答按键,所有key都是高电平有效
      key_3      : IN STD_LOGIC;--抢答按键,所有key都是高电平有效
      key_4      : IN STD_LOGIC;--抢答按键,所有key都是高电平有效
   qiangda    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--正常抢答
      led_1      : OUT STD_LOGIC;--抢答指示led灯,高亮
      led_2      : OUT STD_LOGIC;--抢答指示led灯,高亮
      led_3      : OUT STD_LOGIC;--抢答指示led灯,高亮
      led_4      : OUT STD_LOGIC--抢答指示led灯,高亮
   );
END COMPONENT;
   
   SIGNAL qiangda             : STD_LOGIC_VECTOR(3 DOWNTO 0);
   
   SIGNAL score_1             : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL score_2             : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL score_3             : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL score_4             : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
--调用抢答控制模块
   i_qiandda_ctrl : qiandda_ctrl
      PORT MAP (
         clk             => clk,
         start_p         => start_p,
         reset_n         => reset_n,
         key_1           => key_1,
         key_2           => key_2,
         key_3           => key_3,
         key_4           => key_4,
    
源代码

 扫描文章末尾的公众号二维码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值