FPGA Debug经验之谈-FPGA常见问题社区-FPGA CPLD-ChipDebug

FPGA Debug经验之谈

cdc679bebb094700

 

这段时间由于在FPGA调试上蛮心累,编译一把要3个小时左右,工程逻辑资源多且复杂,不得不通过调整思路来提高Debug效率:
f3ccdd27d2094709

 

本人基本要求按文档、仿真、调试来贯穿整个项目,最终上板调试基本几把就能搞定,前期设计全局考虑占比80%,后面上板调试占比20%。

1. 文档记录

文档记录分设计文档、工程文件夹和版本管理:
设计文档以图文为主,记录构思整个设计的框图;
工程文件夹要求从始至终按要求放置相关内容(这个一般由公司管理者制定);
156005c5ba094719

 

版本管理要求文档代码所有相关改动都有时间、项目、修改内容详细记录。
799bad5a3b094727

 

2. 仿真平台

仿真平台,初级的用EDA软件自带的仿真,中级的用Modesim等第三方软件仿真,高级的用脚本搭建自动化测试平台。不管怎样,这里面比较重要的是激励模块的复用,每次仿真时拖过来用,大大节省时间和效率。
d0096ec6c8094735

 

一般使用仿真平台,可以解决代码中90%以上的Bug,而不用在线逻辑分析仪浪费太多时间和精力。本人一般用在线逻辑分析仪去定位硬件问题,用仿真平台去解决逻辑问题、异常问题、bug复现。
逻辑问题:就是逻辑没有考虑前面导致的bug;
异常问题:指未正确初始化,溢位等bug;
bug复现:就是将实际的输入加入后的输出与硬件对比。

3. 调试思路

本人调试思路,遵循功能验证、时序验证到关联验证的顺序,可以很好的防止调试的时候进入死区:
功能验证:验证基本的功能是否存在问题;
时序验证:加入时序扰动等,验证异常情况,可将bug放大后定位解决;
关联验证:各个模块之间的逻辑关联导致特定bug出现,这个是最常见的bug,比如:图像算法中每20帧出现1行数据出错。

请登录后发表评论

    没有回复内容