本文转载自:FPGA入门到精通
FPGA开发中时序收敛调试是必不可少的一步,在vivado图形界面上,可以直接点击打开时序报告,找到严重影响时序的高扇出信号。
这里分享一下命令report_high_fanout_nets,可方便的排查高扇出网线、解决布线拥塞和时序违例的。
一、核心筛选类参数(精准过滤无效网线,聚焦真正需优化对象)
1、-fanout_greater_than 数值(扇出阈值精准过滤,最核心常用)
核心作用:自定义扇出判定临界阈值,工具仅统计并输出扇出数量大于设定值的网线,自动过滤正常低扇出信号,精准锁定真正影响布线和时序的高扇出风险网线。
示例:仅展示扇出超过64的所有高扇出网线
report_high_fanout_nets - fanout_greater_than 64
2、-max_nets 数量(控制报告输出总量,优先展示高危网线)
核心作用:限制报告最终打印和导出的网线总条数,软件默认仅展示扇出排名前十的网线,该参数可手动扩容或精简,按需控制展示数据量。
示例:报告固定展示扇出排名前50的网线核心信息。
report_high_fanout_nets -max_nets 50,
二、信息详情类参数(细化报告明细,溯源根因更好针对性优化)
1、-load_types(细分负载类型,快速定位扇出过载根源)
不只展示网线总扇出数值,还会细分统计单根高扇出网线的各类负载构成明细,清晰区分驱动对象为寄存器FF、LUT逻辑单元、DSP运算核、BRAM存储核或顶层模块端口。
2、-verbose(输出完整详细日志,全量调试信息无遗漏)
开启详细打印模式,完整输出网线层级路径、驱动单元物理位置、布线关联资源及扇出统计全量明细,不省略任何后端调试关键信息。
三、文件归档类参数(报告离线导出,适配工程复盘与项目交付)
-file ./路径/报告名.rpt(生成独立离线归档报告)
核心作用:告别仅在TCL控制台临时查看数据,可自动将完整高扇出统计结果,导出为独立rpt格式离线报告,保存至工程指定目录,支持永久留存、随时查阅。
示例:
-file ./vivado_report/high_fanout.rpt,
自定义存储文件夹和报告名称,实现工程报告分类规整管理。
四、补充实用辅助参数(进阶物理层级定位,贴合高端FPGA硬件工况)
1、-clock_regions(按时钟区域统计网线分布)
用于统计每根高扇出网线横跨的FPGA时钟区域,快速识别是否存在跨区域长距离布线导致的时序恶化,仅布局布线后调试使用,便于后续物理布局分区优化。
2、-slr(多SLR高端器件专用参数)
针对高端大型FPGA多SLR架构设计,专门统计高扇出网线跨SLR分区布线情况,跨SLR网线延迟大、时序风险高需重点优化,普通单芯片小型工程无需配置。
3、-timing(时序关联高扇出筛选,时序收敛核心必加)
普通参数仅统计扇出数量大小,而 -timing 仅筛选对时序产生实质影响的高扇出网线,工具自动关联网线布线延迟、时序余量、路径负载压力等核心时序数据,自动过滤扇出偏高但低速运行、不影响时序的无关网线,精准聚焦扇出高、时序差的核心风险网线。
示例:仅查看扇出超50且对时序造成负面影响的高危网线。
report_high_fanout_nets -timing -fanout_greater_than 50
五、参数搭配经典组合
整合阈值筛选、负载明细、全量日志、时序过滤、离线归档全部核心需求,一条命令一键生成标准高扇出报告,适配99%FPGA工程时序调试场景:
report_high_fanout_nets -fanout_greater_than 50 -max_nets 50 -load_types -verbose -timing -file ./high_fanout_net.rpt