Intel® Quartus® Prime Pro Edition用户指南: Timing Analyzer

ID 683243
日期 4/13/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

2.2.9. 使用Fitter过约束(Using Fitter Overconstraints)

Fitter过度约束是时序约束,通过调整这些时序约束可以克服建模不准确性,错误关联或逻辑优化中的其他缺陷。 您可以在Fitter中对建立路径(setup path)和保持路径(hold path)进行过约束以强制对特定路径进行更积极的时序优化。

Intel® Stratix® 10设计的过约束

当对 Intel® Stratix® 10器件进行设计时,通过使用Fitter过约束能够以特定节点为目标,以防止Compiler对这些路径进行重定时和优化(节点可能有多个时序要求,Compiler视为“don’t touch”)。如果约束针对特定节点,那么使用is_post_route Tcl函数。此函数使您能够应用过约束,调整Fitter的模块的时序裕量(slack) (Plan, Place, Route),同时允许后布线(post-route)重定时并且不影响签核(sign-off)时序分析。

# Example Fitter overconstraint targeting specific nodes (allows for post-route retiming)
if { ! [is_post_route]} {
  set_max_delay -from ${my_src_regs} -to ${my_dst_regs} 1ns
}
注: is_post_route函数包含在内。如要排除此函数,使用否定语句(!)。

采用所有其他目标器件系列的设计的过约束

您可以指定Fitter过约束(检查当前可执行文件的名称)(quartus_fit或者quartus_sta),对Fitter优化和签核(sign-off)时序分析应用不同的约束。

set fit_flow 0
if { $::TimingAnalyzerInfo(nameofexecutable) == "quartus_fit" } {
   set fit_flow 1
}
if {$fit_flow} {
  # Example Fitter overconstraint targeting specific nodes (restricts retiming)
  set_max_delay -from ${my_src_regs} -to ${my_dst_regs} 1ns
}