六路按键模式流水灯控制 Verilog Gowin
名称:六路按键模式流水灯控制 Verilog Gowin
软件:Gowin
语言:Verilog
功能介绍
这是一个基于 Verilog 的六路流水灯控制工程,支持通过 4 个模式选择按键切换 LED 灯效,并通过独立按键进行复位。顶层设计以 27 MHz 时钟为输入,提供 6 路低电平点亮的 LED 输出。 工程将节拍生成和灯效控制分开实现:分频逻辑产生灯光移动节拍,控制逻辑根据节拍及按键模式更新 LED 状态。分频参数 CNT_MAX 可配置,默认值对应约 0.5 秒计数间隔,也便于仿真时缩短运行时间。运行环境
硬件描述语言:Verilog 开发软件:Gowin 系统时钟:27 MHz 顶层模块:water_led_top 输入:5 个低电平有效按键,其中 1 个用于复位、4 个用于模式选择 输出:6 路低电平点亮 LED设计思路
设计采用分频与灯效控制相结合的结构。顶层模块接收 27 MHz 系统时钟、复位按键及 4 路模式选择按键,并将复位和模式信号拆分后连接到对应控制模块。 时钟分频模块根据 CNT_MAX 参数产生周期性移动脉冲,默认计数值对应约 0.5 秒的节拍;仿真时可调整参数以缩短等待时间。流水灯控制模块使用该节拍和模式输入更新 6 路 LED 输出,按键与 LED 均为低电平有效。模块结构
顶层模块为 water_led_top,负责连接时钟分频模块 clk_div 与流水灯控制模块 led_ctrl,并将按键输入拆分为复位信号和模式选择信号。clk_div 根据 CNT_MAX 产生移动脉冲 tick;led_ctrl 接收 tick、复位和 4 位模式输入,驱动 6 路 LED 输出。工程还包含 tb_water_led 仿真测试模块。开发板验证
工程包含管脚约束文件,可用于 Gowin 工程中的引脚分配与开发板验证。顶层接口使用 27 MHz 时钟、5 个低电平有效按键和 6 路低电平点亮 LED 输出。演示视频
工程提供流水灯演示视频,可直观看到 LED 控制效果。仿真图/仿真说明/设计文档图片
工程包含 tb_water_led 仿真测试模块,并提供设计文档图片,展示工程文件、程序文件、编译及管脚分配相关内容。






部分代码
以下展示顶层模块 water_led_top 的部分代码,完整源码请下载压缩包查看。
module water_led_top #
(
// 通过参数可以方便地在仿真时加快速度
// 实际硬件使用默认值即可
parameter integer CNT_MAX = 27_000_000 / 2 // 0.5秒计数值
)
(
input wire clk, // 27MHz系统时钟
input wire [4:0] key, // 5个按键:key[0]为复位,其余4个为模式选择,低电平有效
output wire [5:0] led // 6个LED输出,低电平点亮
);
// 把按键拆分出来,便于理解
wire rst_n; // 异步复位信号,低电平有效
wire [3:0] key_mode; // 4个模式选择按键信号,低电平有效
assign rst_n = key[0]; // 复位按键,按下为0,松开为1
assign key_mode = key[4:1]; // 其余4个按键用来选择模式
// 分频产生的移动脉冲
wire tick;
// 实例化分频模块
clk_div #
(
.CNT_MAX (CNT_MAX)
) u_clk_div
(
.clk (clk),
.rst_n(rst_n),
.tick (tick)
);
// 实例化流水灯控制模块
led_ctrl u_led_ctrl
(
.clk (clk),
.rst_n (rst_n),
.tick (tick),
.key_mode(key_mode),
.led (led)
);
endmodule
代码文件(付费下载)
📥
付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 六路按键模式流水灯控制 Verilog Gowin
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 六路按键模式流水灯控制 Verilog Gowin