01signal.com

Quartus、 timing closure: 簡潔な multi-corner timing path レポートの取得

序章

FPGA design が timing constraintsを実現できなかった場合、 critical pathsを慎重に検討するのが当然のことです。この検査は、 pathごとにさまざまな logic elements によって引き起こされる delays を示す timing report で行われます。

Intelの FPGAsのヘビー ユーザーでない場合、このレポートを取得する方法を理解するのは簡単ではないかもしれません。さらに悪いことに、無意識のうちに間違ったレポートを参照している可能性があります。

最初に整理したのは、 multi-corner timing analysisのコンセプトです。 timing constraints が 4 つのケースで達成されることを確認することによって、 FPGAの timing の有効性を検証するのが一般的な方法です。 「遅い」および「速い」タイミングモデルと組み合わせた最小温度と最大温度。したがって、分析は 4 つの組み合わせ、またはそれらが参照されるように、 4 つの cornersに対して行われます。

したがって、 critical pathsを調べるときは、4 つの corners すべてで timing reports を確認することが重要です。この事実は見過ごされがちです。たとえば、TimeQuest は通常、1 つの cornerに対して timing report を生成します。

したがって、この投稿では、意味のあるレポートを取得する方法について説明します。例は Quartus Prime 17.1 Liteに関するものです。

関連する他の 2 つの投稿について言及する必要があります。 1 つは input / output constraints と timing reportの関係を考察する投稿、もう 1 つは TimeQuest上の Tcl scripting を少し実験する投稿です。

重要:このページでは、 setup 要件の timing report を取得する方法について説明します。ただし、 hold、 recovery 、 removalを生成する timing reports もあります。これらは、 timing constraintsを達成するための失敗を明らかにすることもできます。

multi-corner reportの作成: scriptsを使って素早く

まず、次の Tcl script を timing.tclなどのファイルにコピーします。

create_timing_netlist
read_sdc
update_timing_netlist

foreach_in_collection op [get_available_operating_conditions] {
  set_operating_conditions $op

  report_timing -setup -npaths 20 -detail full_path -multi_corner \
    -panel_name "Critical paths"
}

timing report は setupのみに限定されていることに注意してください。

"multi_corner" フラグに惑わされないでください: report_timing への各呼び出しは、1 つの cornerをカバーします。このフラグが何かをするかどうかは明らかではありません。

そのため、 script には 4 つのオプションすべて ( foreach_in_collectionを使用) に loop があり、 cornerごとに個別のレポートが生成されます。

今すぐ行動する:

cornerごとに 1 つずつ、同じエントリに 4 つの個別のレポートもあります。 Quartusの以前のバージョンでは、これらのみが表示されます (つまり、 Multi-Corner Summaryは表示されません)。

HTML/テキスト レポートのみを生成する

ツールはきちんとした HTML reportsを生成できます。これは、 TimeQuest自体の GUIよりもかなり読みやすいものです。しかし残念ながら、これらのレポートはそれぞれ 1 つの corner しかカバーしていません。この script は、 corner ごとに 1 つずつ、合計 4 つの個別の HTML reportsを生成します (これは、多数のファイル、 JQuery script ファイル、 CSS などです。ベルとホイッスルですが、 multi-corner reportではありません)。

次の script を timing-html.tclと見なします。

#project_open myproj
create_timing_netlist
read_sdc
update_timing_netlist

foreach_in_collection op [get_available_operating_conditions] {
  set_operating_conditions $op

  report_timing -setup -npaths 20 -detail full_path -multi_corner \
    -file "timing_paths_$op.html" \
    -panel_name "Critical paths for $op"
}

プレーン テキスト レポートの場合は、 -file フラグの引数を変更して、接尾辞を .htmlではなく .rpt または .txt にします。

scriptの上部でコメントアウトされている「project_open」コマンドに注意してください。コメントを外して "myproj" を実際のプロジェクト名に置き換えると、プレーンな shell command line を使用して HTML reports を次のように生成できます。

$ /path/to/quartus/bin/quartus_sta -t timing-html.tcl

ただし、このような multi-corner report を生成する方法は見つかりませんでした。

これらのレポートを各 implementation で生成するには (推奨)、次のような行を QSF ファイルに追加します。

set_global_assignment -name TIMEQUEST_REPORT_SCRIPT relative/path/to/timing-html.tcl

このように QSF ファイルに Tcl script が含まれている場合、 script は project_openを使用すべきではありません

GUIのみ使用

multi-corner report は、ポイントしてクリックするだけで取得できます。

このページは英語から自動翻訳されています。 不明な点は元のページを参照してください。
Copyright © 2021-2024. All rights reserved. (b4b9813f)