8.3 上板故障排查清单


8.3 上板故障排查清单

本节摘要:上板故障的排查讲究顺序与章法。本节给出一条"电源时钟复位输入输出"的总排查线,展开 LED 不亮、数码管乱码、按键无反应、下载失败四类经典故障的定位路径,并收束全教程的方法论。

总排查线:从供电往输出走

现场排障最大的敌人是"上来就改代码"。正确的动作是沿硬件链路顺序排查:电源 → 时钟 → 复位 → 输入 → 输出。电源不正常则一切免谈;时钟停振则设计整体冻结;复位没释放则全部寄存器停在初值;输入异常则逻辑再对也没用;最后才轮到输出与设计本身。这个顺序的原理与第 6 章逆向回溯一脉相承——先确认"环境正常",再怀疑"逻辑有错"。多数现场问题在前三步就现形,真正需要改代码的只是少数。

图:四类经典故障的定位路径

图:四类经典故障的定位路径

两个真实案例走一遍

案例一:心跳 LED 纹丝不动。 现象:下载成功,电源灯正常,心跳不闪。按总排查线走:电源正常(灯亮)→ 示波器量时钟脚,五十兆方波干净 → 量复位脚,电平死死压在有效电平上!回查发现按键一直处于按下状态(键帽卡住)。松开按键,心跳立刻起搏。根因在"环境"不在设计——这就是顺序排查的价值:如果第一步就去改代码,改到天黑也修不好一颗卡住的键帽。案例二:数码管显示乱码。 现象:数字八显示成"B"形。按定位路径:段码位序第一条命中——代码里段 a 定义在最高位,原理图网络里段 a 接的是段选最低位,八位错位。把段码表整体位序反转(或改约束映射),一次修好。这两个案例的共性:修复动作很小,定位思路很值钱

排障的元方法:三分法与替换法

清单之外,两条元方法放之四海。三分法:把怀疑范围一刀切两半,先验证"哪一半"有问题——心跳 LED 就是三分法的具象化(全局活不活一翻两瞪眼)。替换法:用已知好的东西替换怀疑对象——把出问题的设计换成一个最简点灯程序下载,若点亮则板子与工具链无辜、问题在原设计;若同样不亮,问题在环境。替换法在软件排障里叫"最小复现",在硬件里就是"最小系统验证",思想完全同源。

收束:这套方法论带走什么

教程到这里收线。回头看整条路线:从第 1 章的思维切换、第 2 章的类型地基,到第 5 章的状态机、第 6 章的自校验测试台,再到本章的排障清单——贯穿始终的是同一套方法论:先想清楚再动手(实体先行、先画状态图)、先仿真再上板(断言守夜)、报告说话(日志与时序报告逐条过目)、环境优先于逻辑(排障先查电源时钟复位)。VHDL 的语法会随标准演进,工具的界面会随版本更迭,这套方法论在下一个设计、下一块板子上依然成立。

⚠️ 常见坑:反复盲目重新综合下载,指望"多跑几次就好了"。硬件问题不会因为重跑而消失,无规律的"偶尔能跑"反而提示接触不良或供电不稳——这时候该拿万用表,不是拿鼠标。

💡 关键直觉:排障的本质是"缩小怀疑空间"。清单是前人踩坑压缩成的路径图,三分法与替换法是缩小空间的通用刀法;两者叠加,任何故障都逃不出"电源时钟复位输入输出"这张网。

本节要点回顾

  • 总排查线:电源 → 时钟 → 复位 → 输入 → 输出,环境先于逻辑;
  • 四类故障各有路径图:不亮查全局、乱码查位序、按键查电平与抖动、下载查驱动与占用;
  • 心跳 LED 是三分法的具象:任何复杂设计都该留一个呼吸灯;
  • 替换法定位环境还是设计:最小点灯程序是常备参考设计;
  • 方法论可迁移:想清楚再动手、先仿真后上板、报告说话、环境优先——下一个项目直接复用。

实战延伸:上板 5 大常见故障

故障 1:电源/时钟异常

症状:板子完全没反应,LED 全灭。
排查:用万用表测电源,用示波器看时钟。FPGA 的 VCCINT(内核电压)必须稳定在标称值(如 1.0V),纹波 < 5%。
工具:万用表、示波器。

故障 2:JTAG 链不通

症状:找不到设备 ID,Vivado 报"no devices found"。
排查:

  • 检查 JTAG 连接器是否插反
  • 检查 TCK/TMS/TDO/TDI 顺序
  • 测 JTAG 链路上的 3.3V 上拉
  • 用 Vivado Hardware Server 单独连接
    工具:示波器(看 TCK 时钟)。

故障 3:bit 文件下载成功但功能异常

症状:板子识别到,但运行结果与仿真不一致。
排查:

  • 用 ILA(Vivado 内置逻辑分析仪)抓内部信号
  • 检查引脚约束是否与原理图一致
  • 检查时序是否违例(用 report_timing_summary
    工具:ILA、示波器。

故障 4:温度过高

症状:板子能工作但摸起来烫手,长时间运行死机。
排查:

  • 检查散热片是否安装
  • 检查功耗(Vivado report_power
  • 降低时钟频率或减少资源使用
    工具:温度计、红外热像仪。

故障 5:长期运行偶发错误

症状:系统运行几小时/几天偶发崩溃。
排查:

  • 内存接口的 training 是否完成(DDR/LPDDR)
  • 异步复位信号是否稳定
  • 信号完整性问题(串扰、反射)—— 用示波器看波形眼图
    工具:示波器、误码率测试仪。

工程建议

  • 上板前用仿真+综合+时序分析三关通过
  • 留 debug 接口(UART/JTAG)方便现场打印
  • 用 ILA 抓关键信号,不要靠 LED 调试

实战延伸:ILA 抓波形的 4 个技巧

技巧 1:条件触发——别用 always trigger,用条件触发(如"data_in = xxxx 且 valid = 1"),避免波形窗口被噪声淹没。

技巧 2:分级触发——先抓 100ms 看粗粒度,找到感兴趣区段后改 trigger 抓 1us。

技巧 3:同时抓相关信号——不要只抓一个信号,状态机问题必须同时看 state、input、output 三个。

技巧 4:保存 trigger setup——调试完一个问题后保存 trigger 设置,下次同类问题能快速复用。

JTAG 调试速度

JTAG 抓波形速度慢(数十 KHz 采样率),不能抓高频信号。Vivado 的 IBERT(集成误码率测试仪)支持 SERDES 高速度调试,速率可达数 Gbps。

实战补充:5 个必看信号的优先级

上板调试时,示波器或 ILA 抓到关键信号,按这个优先级排查:时钟 > 复位 > 关键握手 > 数据通路 > 状态机状态。时钟异常一切免谈;复位没释放等于没启动;握手失败数据无法传输;数据通路出错结果不对;状态机卡死需长期监测。记住:先确认时钟与复位,再看数据流——这是上板调试的两先原则。

反例

不要上来就抓所有信号(100+ 信号会拖慢 ILA 到无法使用)。先抓 3-5 个核心信号:时钟、复位、状态机当前态、关键输入、关键输出。确认这 5 个对了,再扩大范围。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U