当前位置: 首页 > news >正文

流水灯 FPGA 设计 Verilog Vivado

名称:流水灯 FPGA 设计 Verilog Vivado

软件:Vivado

语言:Verilog

功能介绍

本设计实现一个 8 位 LED 流水灯控制系统,顶层模块为 led_top,输入包括系统时钟 clk 和低有效复位 rst_n,输出为 8 位 led 信号。系统通过分频模块产生固定节拍 tick,再由 LED 控制模块根据 tick 推动灯效状态变化,实现按节奏步进的流水灯显示效果。 工程采用模块化 Verilog 结构,适合用于 FPGA 入门实验、时钟分频练习、LED 外设控制以及 Vivado 工程流程学习。设计重点覆盖顶层例化、参数化分频、复位控制、时序逻辑状态更新和 Testbench 仿真验证,便于学习者理解从 RTL 编写到仿真观察的完整过程。 顶层参数 DIVIDE 默认设置为 50_000_000,用于将输入时钟转换为约 1Hz 的单周期 tick 脉冲。实际使用时可根据板载时钟频率或仿真速度调整该参数,从而改变 LED 流水切换速度。

运行环境

开发软件:Vivado 设计语言:Verilog 工程类型:Vivado FPGA 工程 主要文件包括 led_top.v、clk_divider.v、led_controller.v 和 led_top_tb.v,工程中包含行为仿真相关文件,可用于查看整体仿真、分频模块和 LED 控制模块的运行效果。

设计思路

系统采用“时钟分频 + LED 花型控制”的设计思路。顶层 led_top 只负责端口组织和子模块连接,将时钟节拍生成与 LED 输出控制拆分为两个独立模块,降低模块耦合度,也方便单独理解和调试。 clk_divider 模块根据参数 DIVIDE 对输入时钟进行计数,当计数达到设定周期后输出一个单周期 tick 脉冲。该 tick 不直接替代系统时钟,而是作为 LED 控制模块的节拍使能信号,这种写法能让核心逻辑仍然工作在同一个 clk 时钟域下,结构更清晰,也更符合常见 FPGA 同步设计习惯。 led_controller 模块在复位后初始化 LED 状态,并在每次 tick 到来时更新 led[7:0] 输出。通过将 LED 状态变化集中在控制模块中,后续若需要调整流水方向、增加花型或扩展显示模式,只需要修改控制逻辑,不影响分频器和顶层连接。

模块结构

顶层模块:led_top 分频模块:clk_divider,负责将输入时钟转换为周期性 tick 脉冲。 LED 控制模块:led_controller,负责根据 tick 节拍更新 8 位 LED 输出花型。 测试模块:led_top_tb,用于对顶层设计进行行为仿真。

演示视频

包含流水灯效果演示视频,可用于直观看到 LED 按节拍变化的运行表现。

演示视频请关注公众号后获取对应资料查看。

仿真图/仿真说明/设计文档图片

设计文档包含工程文件、程序文件、程序编译、RTL 图、Testbench、整体仿真图、分频模块仿真说明以及 LED 控制模块相关内容。仿真部分可用于观察 tick 节拍产生过程、复位后的 LED 输出变化,以及顶层模块中分频器与 LED 控制器之间的连接关系。

部分代码

以下展示顶层模块led_top的部分代码,完整代码可关注下方公众号卡片获取。

module led_top #(parameter DIVIDE = 50_000_000) ( input clk, input rst_n, output [7:0] led ); // 分频器输出的 1Hz 单周期脉冲 wire tick; // 实例化分频器:将 clk 转换为 1Hz tick clk_divider #(.DIVIDE(DIVIDE)) u_div ( .clk(clk), .rst_n(rst_n), .tick(tick) ); // 实例化 LED 控制器:根据 tick 触发花型步进 led_controller u_led_ctrl ( .clk(clk), .rst_n(rst_n), .tick(tick), .led(led) ); endmodule

代码获取:点击下方公众号卡片

http://www.jsqmd.com/news/967565/

相关文章:

  • 抖音批量下载助手:3分钟搞定创作者所有作品下载
  • 终极Windows清理指南:三分钟解决C盘爆红问题
  • AutoCAD 2016与2014二次开发关键差异
  • 2026年南通SCMP资料试听课怎么问?众智商学院官网400冯老师班期 - 众智商学院职业教育
  • BetterJoy终极指南:在Windows上完美使用Switch手柄的完整解决方案
  • 遗传算法实操:种群多样性监控与自适应参数调节
  • 如何用Python自动化抢票脚本告别演唱会门票秒光烦恼
  • 流量卡代理加盟平台:浩卡联盟官方邀请码16888注册一级合伙人(佣金全网置顶0抽成) - 流量卡代理招商
  • 朋友圈内容源:一个老板的朋友圈,也可以成为GEO内容源 - 招财兔数字员工
  • VC6环境下运行的圆心亚像素定位小工具,带多轮廓识别与结果导出功能
  • 2026年盐城软考中级系统集成报名咨询入口怎么确认?众智商学院官网400冯老师 - 众智商学院官方
  • MuleSoft+LLM企业级AI编排:从模型调用到智能流程落地
  • WebPlotDigitizer终极指南:3步从图表中智能提取科研数据的免费工具
  • 多场景沐浴露实测评测:成分、清洁力与适配性横向对比 - 奔跑123
  • 从《Two Heroes for the Price of One》看技术文档的“人性化”翻译:如何用Python和NLTK分析情感与关键词
  • 如何实现OBS多平台同步直播的突破性效能
  • Multi-Agent时代的数据底座重构:Data Fabric实战指南
  • 如何在碎片时间悄悄变身单词达人?ToastFish的5个隐藏玩法大揭秘
  • Azure实时语音翻译原理与工业级落地实践
  • 2026大湾区EMBA深度测评:科学选型指南与优质项目横向对比 - 品牌2026推荐
  • 2026年济南四害消杀行业痛点与专业品牌技术方案解析 - 优质品牌推荐商
  • 终极Windows系统清理指南:如何用开源工具WindowsCleaner三分钟解决C盘爆红问题
  • 51单片机直驱200颗WS2812B灯珠的可烧录工程包(含Keil源码与hex文件)
  • 2026 届毕业季线上投票评选全流程方案 从策划到落地实操手册 - 投票评选活动
  • Alpaca API实盘工程指南:从REST+WebSocket双通道到金融级订单状态机
  • 为什么你的Minecraft世界数据难以管理?NBTExplorer的三大解决方案
  • Windows下开箱即用的APK逆向分析工具集:解包、反编译、改代码、重签名一站式搞定
  • LenovoLegionToolkit自动化配置:3大核心功能打造智能游戏本管家
  • 2026 淮安厨卫屋面地下室漏水测评靠谱防水商家对比参考 - 吉修匠
  • 2026年新疆乌鲁木齐汽车贴膜全流程避坑指南:从选型到售后一站式权威攻略 - GrowthUME