Quartus® Prime プロ・エディションのユーザーガイド: デザイン最適化

ID 683641
日付 7/08/2024
Public
ドキュメント目次

5.5.3.1. Report Timing

タイミング・アナライザーの Reports > Timing Slack > Report Timing… コマンドを使用すると、デザイン内の任意のパスまたはクロックドメインのタイミングレポートに関する設定を指定することができます。同等のスクリプトコマンドは report_timing です。

図 37. Report Timing レポート

さまざまなオプションを指定してレポートをカスタマイズすることができます。Clocks および Targets により、レポートに表示するクロックとターゲットを指定します。Analysis Type では実行する解析タイプ、Extra Info では追加情報をレポートに表示するか、また、Output ではレポートの出力オプションを指定します。例えば、報告するパスの数を増やしたり、Target フィルターの追加や、From Clock を追加したりすることができます。

図 38. Report Timing ダイアログボックス (上部)
図 39. Report Timing ダイアログボックス (下部)
表 15.  Report Timing の設定
オプション 説明
Clocks From Clock および To Clock でレポートのパスをフィルタリングし、指定した起動クロックまたはラッチクロックのみを表示します。
Targets From Clock および To Clock のターゲットノードを指定し、それらのエンドポイントのみのパスを報告します。このオプションには、I/O またはレジスター名、もしくは I/O ポートを指定します。このフィールドは、ワイルドカード文字もサポートします。例えば、特定の階層内のパスのみを報告するには、次のようになります。
report_timing -from *|egress:egress_inst|* \
-to *|egress:egress_inst|* -(other options)
FromTo、または Through ボックスが未記入の場合は、タイミング・アナライザーはデバイス内の考えられるすべてのターゲットを想定します。Through オプションにより、組み合わせロジックまたはセル上の特定のピンを通過するパスにレポートを制限します。
Analysis type Analysis type オプションには、SetupHoldRecoveryRemoval があります。タイミング・アナライザーは、選択した解析タイプの結果を報告します。
Paths エンドポイントおよびスラックレベルごとに表示するパスの数を指定します。Report number of paths のデフォルト値は 10 です。それ以外の場合は、レポートが非常に長くなる可能性があります。Pairs only を有効にすると、ソースとデスティネーションの各ペアに対して 1 つのパスのみが表示されます。Maximum number of paths per endpoints により、さらに制限します。パスのフィルタリングも可能で、Maximum slack limit フィールドに値を入力します。
Extra Info タイミングエラーの根本的な原因の診断に関連する追加データを提供します。これには、セットアップ・スラックの内訳、輻輳やホールド時間の修正によって引き起こされる予期しない配線の迂回などが含まれます。NoneBasicAll を指定し、レポートに含める追加情報を指定します。Extra Info タブのデータは、潜在する不必要な配線の迂回、およびパスの fMAX パフォーマンスを制限する配置または回路の問題の特定に役立ちます。Extra Info タブにおけるセットアップ・スラックの内訳 を参照してください。
  • All - レポートには Extra Info タブが含まれ、RAM または DSP ブロックの未登録出力を通過するソースのタイミング・エンドポイント、または、DSP ブロックの未登録入力を通過するデスティネーション・タイミング・エンドポイントに関する追加情報が報告されます。Data Path タブには、ホールドの推定追加遅延、および配線ステージの輻輳に対する影響についてのデータが含まれます。
  • Basic - レポートには Extra Info タブが含まれますが、Data Path タブの追加情報はありません。
  • None - レポートには Extra Info タブが含まれません。また、Data Path タブの追加情報もありません。
Output 解析で Detail level の出力に含めるパスのタイプを指定します。
  • Summary - レベルには、基本的な概要レポートが含まれます。Summary レポートの Clock Skew 列を確認します。スキューが +/-150ps 未満であれば、クロックツリーはソースとデスティネーションの間でバランスが取れています。
  • Path only - すべての詳細情報を表示します。ただし、Data Path タブには、クロックツリーが 1 行の項目として表示されます。
  • Path and Clock - クロックに関して、Path only と同じように表示します。
  • Full path - 大きなクロックスキューが存在する場合は、Full path オプションを有効にします。このオプションはクロックツリーをより詳細に分割し、すべてのセルを表示します。これには、入力バッファー、PLL、グローバルバッファー (CLKCTRL_ と呼ばれる)、およびロジックが含まれます。このデータを確認し、デザインのクロックスキューの原因を特定します。I/O 解析には、Full path オプションを使用します。FPGA にはソースクロックまたはデスティネーション・クロックのみがあるため、遅延はタイミングを満たすための重要な要素となります。
Show routing レポートに配線データを表示します。
Split the report by operating conditions タイミングコーナーの動作条件に関して、データを動作条件ごとに細分化します。
Report panel name レポートパネルの名前を指定します。オプションで File name を有効にして、情報をファイルに書き込むことができます。.htm または .html をサフィックスとして追加すると、タイミング・アナライザーはレポートを HTML として生成します。File name を有効にすると、最新のデータでファイルを上書き (Overwrite) または追加 (Append) することができます。
Tcl command 選択した GUI オプションに対応する Tcl 構文を表示します。コマンドは、Console から Tcl ファイルにコピーすることができます。
図 40. Extra Info タブ

Extra Info タブにおけるセットアップ・スラックの内訳

Extra Info タブには、タイミング・ クロージャーの問題の診断に役立つその他のタイミングメトリクスが含まれます。それには、パスのセットアップ・スラックの内訳を示す Setup Slack Breakdown などがあります。

パスのスラックは、パスがタイミング要件を満たしているマージンを指定します。セットアップ・スラックの内訳は、タイミング・アナライザーが次のタイミング要件とパス要素の遅延から計算する数値です。

図 41.  Setup Slack Breakdown の計算

パスがタイミング要件を満たさない理由には、さまざまなものが考えられます。例えば、クロック関係が実現不可能なほど厳密な場合や、過剰な配線遅延が存在する場合は、それだけでタイミングパスの失敗につながることがあります。タイミングパス固有のマージンを計算し、そのマージンをパスの他の遅延と比較することは、パスでタイミング要件が満たされない特定の理由を診断するのに役立ちます。

Extra Info タブは、輻輳やホールド時間の修正によって発生する重大または予期しない潜在的な配線の迂回の特定に役立ちます。Extra Info タブでは、RAM または DSP ブロックのレジスターなし出力を通過する送信元タイミング・エンドポイント、または、DSP ブロックのレジスターなし入力を通過する送信先タイミング・エンドポイントに関する追加情報を報告することもできます。

Extra Info のデータ、Chip Planner の Locate Path または Locate Chip Area、Technology Map Viewer、もしくは Resource Property Viewer を確認し、変更を加えて配置配線を改善するかを決定します。

遅延要素には、他の要素よりもパスの配置と配線に影響を受けやすいものがあります。Setup Slack Breakdown の一部である固有遅延は配置配線の影響を受けにくく、RTL およびタイミング要件に内在するものです。非固有遅延は、配置配線の影響を受けやすいその他の遅延です。

表 16.  Extra Info タブのデータ
Extra Info のデータ 説明
Intrinsic Margin

タイミングパスのスラック値を構成する固有および非固有のタイミング要素を報告します。固有マージンは、タイミング・アナライザーがタイミング要件とパス要素の遅延から算出する数値です。タイミング・アナライザーは、同じ要件と遅延からパスのスラックも導出しますが、計算方法は異なります。固有遅延は、配置配線の影響を受けにくく、RTL およびタイミング要件に内在するものです。非固有遅延は、配置配線の影響を受けやすいその他の遅延です。

From Node Info From Node のノードタイプ、リタイミング制約、パワーアップ時の「Don't Care」属性を指定します。リタイミング制約を解除してリタイミングを許可し、タイミング・クロージャーのパフォーマンスを向上させることを検討します。
To Node Info To Node のノードタイプ、リタイミング制約、パワーアップ時の「Don't Care」属性を指定します。リタイミング制約を解除してリタイミングを許可し、タイミング・クロージャーのパフォーマンスを向上させることを検討します。
Max Fanout

パス内のレジスターノードと組み合わせノードの最大ファンアウトを報告します。

Route Stage Congestion Impact 配線が輻輳におよぼす影響を LowMedium、または High のいずれかで報告します。値が Low の場合、タイミングの問題と輻輳には関係がないことを示しています。値が High の場合は、不十分な配線リソースをめぐる競合が原因でタイミングが悪化していると考えることができます。
Estimated Delay Added for Hold ホールドを満たすために最速の遅延ルートに追加される推定遅延量を報告します。この値は、遅延が配線の輻輳に関連するのかホールドに関連するのかを判断するのに役立ちます。
Sufficient Setup Margin for Hold セットアップ・マージンがホールドタイミングに対して適切かを報告します。Yes は、セットアップ・マージンが十分であることを示しています。No は、セットアップ・マージンがホールドタイミングに対して不足していることを示しています。
Source/Destination Bounding Box ソースレジスターとデスティネーション・レジスターを囲む境界ボックスの左下と右上の座標を報告します。

理想的なケースでは、Source/Destination Bounding BoxCell Bounding Box、および Interconnect Bounding Box の値はほぼ同じで、相対面積は約 1.0 です。セルのバウンディング・ボックス・サイズが Source/Destination Bounding Box に対して大きくなる場合は、パス上に不要な配線の迂回が潜在することを示している可能性があります。

Source/Destination Area Covered LAB の観点でカバーされる総面積を報告します。
Source/Destination Relative Area Source/Destination Bounding Box に対するソースとデスティネーションの面積を報告します。値は常に 1.0 で、同じサイズであることを意味します。
Cell Bounding Box パス内のソースレジスターとデスティネーション・レジスター、およびセルを囲む境界ボックスの左下と右上の座標を報告します。
Cell Area Covered Source/Destination Bounding Box に対するセルの面積を報告します。値の 1.0 は、同じサイズであることを意味します。1.0 より大きい値は、パス内のレジスター間のスペース外部にセルがあることを示している可能性があります。

次に、Setup Slack Breakdown で示されるタイミング条件の解釈を説明します。

  • Setup Slack Breakdown が 0 未満である - パスのタイミング関係が非常に厳しい、マイクロ・パラメーターに大きな差がある、またはクロックソースの不確実性が非常に大きいため、遅延を追加する前にパスが不合格になります。SDC 制約を確認し、タイミング関係が正しいことを確認します。不正確な関係は、適切なタイミング切断が行われていない、関係のないクロック間に存在する場合があります。パラメーター化が可能なハードブロック (20K RAM および DSP ブロックなど) が完全にレジスターされていることを確認します。クロックソースを見直し、クロックが配線にグローバル信号を使用していることを確認します。
  • クロックスキューが Setup Slack Breakdown を上回っている - クロック転送を見直し、パスでタイミングを満たすようにします。場合によっては、クロック領域の割り当てを作成する必要があります。また、クロックが交差する転送を再デザインし、同期から非同期の実装に切り替えが必要になることもあります。その場合は、FIFO やその他のハンドシェイクなどを使用します。
  • セル遅延が固有マージンより大きい - セル遅延を小さくします。クロックが完全で、配線ワイヤーを使用していない場合でも、パスでタイミングが不合格になることがあります。RTL を再度記述してロジック深度を減らし、ロジックを再構築してコンパイラーでより高速な LUT 入力を使用できるようにします。もしくは、リタイミング最適化のブロックを解除します。コンパイラーでは、レジスターを自動的にリタイミングしてロジック深度を減らすことができますが、機能を維持し、デバイスのアーキテクチャーがサポートする方法でのみ可能です。Hyper-Retimer のブロックを解除するには、非同期リセットと初期条件を削除します。
  • インターコネクト遅延が固有のマージンより大きい - クロックが完全で、ロジックがない場合でも、パスでタイミングが不合格になることがあります。これは、レジスターが離れすぎている場合、またはタイミングパスが輻輳しているチップエリアを迂回している場合に発生します。離れているレジスターのファンインとファンアウトを確認します。Logic Lock 領域を適用すると、フィッターでレジスターがより近くに配置されるようになります。Logic Lock 領域は、最初の配置が良いものにならなかった理由を特定してから使用します。