インテル® Quartus® Primeプロ・エディションのユーザーガイド: タイミング・アナライザー

ID 683243
日付 1/31/2023
Public
ドキュメント目次

2.6.9. フィッターの過剰制約の使用

フィッターの過剰制約は、モデリングの不正確さ、誤相関、またはロジックの最適化におけるその他の欠陥を克服するために調整するタイミング制約です。 フィッターでセットアップおよびホールドパスを過剰制約することで、特定のパスでタイミングをより積極的に最適化することができます。

インテル® Stratix® 10 デザインでの過剰制約

インテル® Stratix® 10 デバイスに向けた設計時に、フィッターの過剰制約で特定のノードをターゲットにし、コンパイラーによってこれらのパスがリタイミングおよび最適化されないようにすることができます (場合によっては、ノードには複数のタイミング要件があります。コンパイラーはそれらを「don’t touch」として扱います)。制約が特定のノードをターゲットにしている場合は、is_post_route Tcl 関数を使用します。この関数により、過剰制約を適用し、フィッターのモジュール (Plan、Place、Route) のスラックを調整することが可能になります。また、配線後のリタイミングが可能で、サインオフのタイミング解析に影響を与えません。

# 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 関数は包括的です。関数を除外するには、否定構文 (!) を使用します。

他のすべてのデバイスファミリーをターゲットとする場合のデザインの過剰制約

フィッターの過剰制約を割り当て、現在の実行可能ファイルの名前を確認することで (quartus_fit もしくは quartus_sta)、フィッターによる最適化とサインオフのタイミング解析に異なる制約を適用することができます。

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
}