• 正文
  • 相关推荐
申请入驻 产业图谱

【黑金云课堂】FPGA技术教程FPGA基础:流水灯实验

04/17 13:48
263
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本篇流水灯实验,选自 ALINX 黑金云课堂 FPGA 免费直播课。该课程由 ALINX 资深工程师团队倾力打造,从 0 到 1 系统化教学,帮助每位工程师跨过 FPGA 开发门槛。

🔍 ALINX:关注 ALINX,进入视频号即可查看完整黑金云课堂 FPGA 视频教程。

流水灯实验

实验目的

熟悉FPGA完整开发流程
理解时序逻辑工作方式
掌握寄存器、时钟、复位作用
为后续实验(按键消抖、PWM、PLL、串口、VGA等)打基础
培养工程习惯:先仿真、后上板、再在线调试

实验原理

本质:循环移位寄存器
工作机制:
状态保存:LED状态由寄存器保存(每bit对应一个LED)
时钟驱动:时钟信号驱动寄存器内容变化
状态转移:按照代码逻辑进行按位赋值
循环移位示例:0001 → 0010 → 0100 → 1000 → 0001

时钟与分频原理

系统时钟典型频率:50MHz 或 100MHz
人眼可识别频率:约 1~5Hz
问题:直接用系统时钟驱动LED,变化太快,人眼看到“常亮”
解决方案:使用计数器对时钟分频,得到低频节拍信号
分频计算示例:200MHz 系统时钟 → 目标 4Hz → 分频系数 = 200M / 4 = 25,000,000

程序设计思路

模块化设计封装独立Verilog模块,清晰接口
内部结构:
分频计数器(如24位计数器)
LED状态寄存器(4位)
同步时序逻辑:所有状态变化在时钟上升沿触发,避免异步问题

Verilog核心代码(要点)

计数器逻辑:计数到预设值(如10M)产生节拍脉冲
状态更新:按照代码逻辑进行按位赋值
复位逻辑:异步或同步复位,初始化计数器与LED状态

仿真验证

目的:提前发现逻辑错误、时序问题,降低调试成本
Testbench设计要点:
生成周期性时钟(如20ns周期 = 50MHz)
施加复位信号(如100ns)
观察LED输出变化
验证要点:
复位时LED初始化为 0001(或 0000,视设计)
LED按固定周期依次变化
状态变化发生在时钟上升沿
计数器达到阈值时更新LED

ILA在线调试

为什么需要:仿真环境理想,硬件存在时序延迟、噪声等;FPGA内部信号无法直接测量

ILA(Integrated Logic Analyzer):

嵌入FPGA内部的逻辑分析仪,通过JTAG采集信号

调试步骤:

在Vivado/Quartus中添加ILA核,选择待观察信号(led_regcnt等)
生成包含ILA的bit文件,下载到FPGA
连接Hardware Manager,设置触发条件,抓取波形
验证硬件行为
固化到Flash(生成mcs/bin文件)

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

芯驿电子自 2012 年成立以来,旗下 AUMO 与 ALINX 两大品牌,在智能车载与 FPGA 行业解决方案领域持续深耕。 ALINX 聚焦 FPGA 解决方案高端产品市场,并积极参与 FPGA 国产化应用发展。至今已推出 100 多款 FPGA SoM 模组和配套板卡,基本完成对 AMD FPGA 产品、紫光同创 FPGA 产品的全系列覆盖,产品远销海外 40 多个国家。 AUMO 专注智能车载,为自动驾驶技术开发破题。至今已推出车载仿真测试系统、视频数据采集、视频数据旁路采集分流、视频数据注入、车载摄像头、车载后视镜等产品线,满足车企和汽车产业链的车载产品开发需求。

微信公众号