FPGA工程为什么仿真正确、上板却不工作?用SignalTap或ILA逐层定位 | 明德扬FPGA
仿真环境中的时钟、复位和输入波形通常很理想,真实板卡却存在异步输入、抖动、延迟和接口时序。上板后没有现象时,应把问题拆成“输入是否到达、状态机是否运行、输出是否发出”。
仿真环境中的时钟、复位和输入波形通常很理想,真实板卡却存在异步输入、抖动、延迟和接口时序。上板后没有现象时,应把问题拆成“输入是否到达、状态机是否运行、输出是否发出”。
上板前后分别检查三类信号
- 时钟、复位与锁定状态
- 模块入口的有效、就绪和数据
- 模块出口的帧边界、错误和计数
*图:仿真断言、约束检查、在线抓取、外部测量。*

*图:MP802 Kintex-7 FPGA学习验证平台,用于了解板卡与主要接口形态。*
仿真先验证边界情况
除正常流程外,还要测试复位中断、FIFO满空、突发数据和非法输入。只看一条顺利波形,无法证明模块能应对真实环境。
关键状态可加入断言或错误计数。
上板先看时钟与复位
PLL/MMCM是否锁定、各时钟频率是否正确、复位释放是否同步,是在线调试的第一层。
若时钟或复位不稳定,后续状态机波形没有参考价值。
SignalTap或ILA怎样布点
优先抓取模块边界,而不是一次塞入大量内部信号。有效、就绪、帧开始、帧结束、状态和错误计数通常最有价值。
设置明确触发条件,并保留异常发生前后的采样窗口。
内部抓取与示波器如何配合
在线逻辑分析仪看到数字内部状态,示波器观察真实引脚、电源和时钟,两者不能互相替代。MP802包含PCIe、千兆网、DA/AD及摄像头接口,适合逐步练习复杂链路调试。
每次定位后把观察信号和触发条件写入工程说明。
总结
仿真正确但上板失败时,应从时钟复位、模块边界、在线抓取和外部测量四层交叉验证。