名称:24led流水灯程序设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
24led流水灯程序设计
一共24个led灯,流水灯流水模块分为5种,每种模式下灯变化方式不同。其中流水灯的变化快慢可以通过按键控制,按下按键速度变快。模块分为分频模块和流水灯控制模块,再通过顶层模块将两个模块连接起来。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 功能描述
流水灯程序设计,一共24个led灯,流水灯流水模块分为5种,每种模式下灯变化方式不同。其中流水灯的变化快慢可以通过按键控制,按下按键速度变快。模块分为分频模块和流水灯控制模块,再通过顶层模块将两个模块连接起来。
2. 工程文件
3. 程序文件
4. 程序编译
5. RTL图
6. 仿真文件
Testbench
7. 仿真图
一共5种不同的流水灯变化模块式
控制模块仿真
分频模块
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; --流水灯控制 ENTITY?caideng?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC;--输入时钟 ??????reset_p??:?IN?STD_LOGIC;--复位信号高电平复位 ??????key??????:?IN?STD_LOGIC;--speed ??????led??????:?OUT?STD_LOGIC_VECTOR(23?DOWNTO?0)--输出24个灯 ???); END?caideng; ARCHITECTURE?top_module?OF?caideng?IS --例化控制模块 component?caideng_ctrl?IS ???PORT?( ??????clk_div??:?IN?STD_LOGIC; ??????reset_p??:?IN?STD_LOGIC; ??????led??????:?OUT?STD_LOGIC_VECTOR(23?DOWNTO?0) ???); END?component; --例化分频模块 component?div_2Hz?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC; ??????key??????:?IN?STD_LOGIC;--speed ??????reset_p??:?IN?STD_LOGIC; ??????clk_div??:?OUT?STD_LOGIC ???); END?component; ???--定义中间中间信号 ???SIGNAL?clk_div???:?STD_LOGIC; BEGIN ??? ???--调用分频模块 ???i_div_2Hz?:?div_2Hz ??????PORT?MAP?( ?????????clk??????=>?clk, ?????????reset_p??=>?reset_p, ?????????key??????=>?key, ?????????clk_div??=>?clk_div ??????); ??? ??? ???--调用控制模块 ???i_caideng_ctrl?:?caideng_ctrl ??????PORT?MAP?( ?????????clk_div??=>?clk_div, ?????????reset_p??=>?reset_p, ?????????led??????=>?led ??????); ??? END?top_module;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=986