智能调试与综合技术隔离FPGA设计中的错误浅析
如果您的FPGA设计无法综合或者没能按预期在开发板上正常工作,原因往往不明,要想在数以千计的RTL和约束源文件中找出故障根源相当困难,而且很多这些文件还可能是其他设计人员编写的。考虑到FPGA设计迭代和运行时间的延长,设计人员应该在设计流程的早期阶段就找出可能存在的诸多错误,并想方设法重点对设计在开发板上进行验证。
在特定条件下采用更智能的技术来隔离特定错误,找到问题电路的源头并渐进式修复错误,这很重要。为了节省时间,您可以对时钟、约束和模块级接口进行初步设置检查以确保符合设计规范,这样就不必在综合与布局布线(PR)时浪费大量时间。
Synopsys公司的Synplify Premier 和Synplify ProFPGA设计工具以及Identify RTLDebugger 等产品能帮助设计人员完成上述工作。这些工具的特性使得设计人员能快速隔离错误,有效缩短运行时间,并减少开发板启动所需的迭代次数。
精确找到开发板上的问题
如果开发板出现明显的功能性错误,要缩小查找问题根源的范围可能会相当困难。为了进行设计调试,我们应当创建附加电路并保留某些节点,以便我们对设计运行时得到的数据进行探测、检查和分析。下面我们就看看如何用板级调试软件来查找错误。
按下列四步法并利用RTL调试器,您能精确查找问题,并对信号和关注的条件采样,然后将观察结果关联至原始RTL,从而将问题锁定在RTL规范或约束设置范围内。
第一步:指定探测。在RTL中明确要监控哪些信号和条件。在此要声明您所感兴趣的观察点(要观察的信号或节点)和断点(RTL控制流程声明,如IF、THEN 和CASE 等)。
第二步:通过探测构建设计。利用附加的监控电路——即用于根据您的监控要求捕捉并导出调试数据的智能内部电路仿真器(IICE)——对FPGA设计进行综合。
第三步:分析和调试。设计综合完成之后,运行设计并用RTL调试器观察数据。在开发板上运行测试时,观察点和断点共同触发数据采样,使您能在您所关注的非常明确的条件下观察并调试特定节点的电路的行为。您可将观察到的采样数据写入VCD 文件并将其关联到RTL。
第四步:渐进性修复错误(incrementaLfix)。一旦找到了错误所在,就可以通过分级、渐进式流程在RTL或约束中渐进地进行修复。
- 腔体滤波器智能调试原理流程及智能调试平台的介绍(01-12)
- 如何通过RTL分析、SDC约束和综合向导进行FPGA设计(01-21)
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)