ug1292第二页的主题是时序收敛基线流程。该流程如下图所示。可以看到该流程要求在实现(Implementation)过程中的每一个子步骤结束之后都要检查WNS是否大于0,只有当WNS大于0时,才可以进行下一个子步骤。同时,在布局之后,还要检查WHS是否大于-0.5ns。此外,只有当WNS小于0时,执行phys_opt_design才有意义,毕竟phys_opt_design的目的是修复建立时间违例。由此可见,在实现的前期,更多关注的是建立时间违例。
图片来源page 2, ug1292
基线流程是UltraFast设计方法学的重要组成部分,其目的是尽可能早地发现设计存在的问题,并在早期解决这些问题。对于opt_design生成的dcp,如果发现WNS小于0,则要根据设计初期检查结果找出原因(具体操作看这里);对于place_design生成的dcp,如果WNS小于0,可能的原因包括过高的资源利用率、过重的逻辑互联导致的布局拥塞、逻辑级数不合理、过高的时钟歪斜或时钟不确定性。可尝试执行phys_opt_design(-directive设置为Explore或AgressiveExplore),如果无效,则要将焦点放在改善布局质量上;对于route_design生成的dcp,通过report_route_status可检查是否有布线错误。如果WNS或WHS依然小于0,则需进一步分析(后续会介绍)。如果WNS小于0且大于-0.2ns,可尝试执行phys_opt_design。
基线流程的一个重要方面是设计分析。这里列出常用的用于设计分析的Tcl命令:
- report_timing_summary
- report_design_analysis
- report_methodology
- report_failfast (需要在Xilinx Tcl Store中先安装)
这些命令的具体使用方法可参考ug835或在Vivado Tcl Console中执行<命令名 -help>查看。同时,也可采用图形界面方式。