• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

4路倒计时抢答器设计VHDL代码Quartus DE2-115开发板

06/30 08:20
168
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2401111523593E.doc

共1个文件

名称:4路倒计时抢答器设计VHDL代码Quartus? DE2-115开发板

软件:Quartus

语言:VHDL

代码功能:

4路抢答器设计

要求:

1、具有复位和开始按键;

2、主持人按下开始按键后,开始倒计时9~0秒;

3、倒计时为0时开始抢答,通过led指示抢答者;

4、提前抢答对应的led闪烁报警。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:

DE2-115开发板.png

演示视频:

设计文档:

1. 工程文件

2 .程序文件

3 . 程序编译

4. RTL图

5. Testbench

6. 仿真图

整体仿真图

图中,复位后,主持人按下开始按键,开始倒计时9~0秒,倒计时结束前按下key1,表示1号提前抢答,蜂鸣器间隔响,led1闪烁。复位后,主持人重新按下开始键,开始倒计时,倒计时结束后先按下key3,3号抢答成功,led3亮,蜂鸣器响。此时再按下key4不响应。

注:LED低电平亮,蜂鸣器低电平响。

分频模块

系统时钟分频为1Hz和2Hz信号,1Hz用于倒计时,一次1秒。2Hz用于控制LED闪烁和蜂鸣器间隔响。

控制模块

控制模块通过状态机控制提前抢答,正常抢答,倒计时等功能。

显示模块

数码管显示倒计时和台号。

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--抢答器
ENTITY?qiangdaqi?IS
???PORT?(
??????clk??????????:?IN?STD_LOGIC;--时钟
??????rst_n????????:?IN?STD_LOGIC;--复位--SW0
??????start_n??????:?IN?STD_LOGIC;--开始--SW1
??????key_1????????:?IN?STD_LOGIC;--按键1--key0
??????key_2????????:?IN?STD_LOGIC;--按键2--key1
??????key_3????????:?IN?STD_LOGIC;--按键3--key2
??????key_4????????:?IN?STD_LOGIC;--按键4--key3
??????LED1?????????:?OUT?STD_LOGIC;--LED0
??????LED2?????????:?OUT?STD_LOGIC;--LED1
??????LED3?????????:?OUT?STD_LOGIC;--LED2
??????LED4?????????:?OUT?STD_LOGIC;--LED3
??????beep?????????:?OUT?STD_LOGIC;--蜂鸣器--LED4
dis1:?out?std_logic_vector(7?downto?0);--台号1显示
dis2:?out?std_logic_vector(7?downto?0);--台号2显示
dis3:?out?std_logic_vector(7?downto?0);--台号3显示
dis4:?out?std_logic_vector(7?downto?0);--台号4显示
??????HEX??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管
???);
END?qiangdaqi;
ARCHITECTURE?behave?OF?qiangdaqi?IS
--控制模块
???COMPONENT?control?IS
??????PORT?(
?????????clk??????:?IN?STD_LOGIC;
?????????rst_n????:?IN?STD_LOGIC;
?????????start_n??:?IN?STD_LOGIC;
?????????key_1????:?IN?STD_LOGIC;
?????????key_2????:?IN?STD_LOGIC;
?????????key_3????:?IN?STD_LOGIC;
?????????key_4????:?IN?STD_LOGIC;
?????????clk_1Hz??:?IN?STD_LOGIC;
?????????clk_2Hz??:?IN?STD_LOGIC;
?????????LED1?????:?OUT?STD_LOGIC;
?????????LED2?????:?OUT?STD_LOGIC;
?????????LED3?????:?OUT?STD_LOGIC;
?????????LED4?????:?OUT?STD_LOGIC;
?????????beep?????:?OUT?STD_LOGIC;
?????????down_time?:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)
??????);
???END?COMPONENT;
?--分频器??
???COMPONENT?div?IS
??????PORT?(
?????????clk??????:?IN?STD_LOGIC;
?????????clk_1Hz??:?OUT?STD_LOGIC;
?????????clk_2Hz??:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
???
--数码管译码
COMPONENT?LED7S?is
Port(
din:?in?std_logic_vector(3?downto?0);
dis1:?out?std_logic_vector(7?downto?0);--台号1显示
dis2:?out?std_logic_vector(7?downto?0);--台号2显示
dis3:?out?std_logic_vector(7?downto?0);--台号3显示
dis4:?out?std_logic_vector(7?downto?0);--台号4显示
y:?out?std_logic_vector(7?downto?0));
end?COMPONENT;
???
???
???SIGNAL?clk_1Hz????:?STD_LOGIC;
???SIGNAL?clk_2Hz????:?STD_LOGIC;
???SIGNAL?down_time??:?STD_LOGIC_VECTOR(3?DOWNTO?0);
BEGIN
--调用分频模块
???i_div?:?div
??????PORT?MAP?(
?????????clk??????=>?clk,
?????????clk_1Hz??=>?clk_1Hz,
?????????clk_2Hz??=>?clk_2Hz
??????);
--调用控制模块???
???i_control?:?control
??????PORT?MAP?(
?????????clk????????=>?clk,
?????????rst_n??????=>?rst_n,
?????????start_n????=>?start_n,
?????????key_1??????=>?key_1,
?????????key_2??????=>?key_2,
?????????key_3??????=>?key_3,
?????????key_4??????=>?key_4,
?????????clk_1Hz????=>?clk_1Hz,
?????????clk_2Hz????=>?clk_2Hz,
?????????LED1???????=>?LED1,
?????????LED2???????=>?LED2,
?????????LED3???????=>?LED3,
?????????LED4???????=>?LED4,
?????????beep???????=>?beep,
?????????down_time??=>?down_time
??????);

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=539

  • 2-2401111523593E.doc
    下载

相关推荐