名称:可容纳四组参赛者的数字智力抢答器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,
源代码
扫描文章末尾的公众号二维码