Tcl フック スクリプトの定義 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: Tcl スクリプト機能の使用 (UG894)

Document ID
UG894
Release Date
2022-06-08
Version
2022.1 日本語

非プロジェクト フローでは、synth_design コマンド実行の前後など、フローのどの時点でも Tcl スクリプトを読み込むことができます。プロジェクト ベース フローでも、Vivado IDE を使用するか、set_property コマンドを使用して合成 run またはインプリメンテーション run にプロパティを設定することにより、これを実行できます。Tcl フック スクリプトを使用すると、合成 run またはインプリメンテーション run、あるいはインプリメンテーションの任意の段階の前 (tcl.pre) および後 (tcl.post) にカスタム Tcl スクリプトを実行できます。

合成 run またはインプリメンテーション run を起動すると、Vivado で定義済みの Tcl スクリプトが使用され、選択したストラテジに基づいて標準デザイン フローが処理されます。Tcl フック スクリプトによりこの標準フローをカスタマイズできます。任意の段階で Tcl スクリプトを実行できるので、有益です。デザイン フローの各段階の前後でフック スクリプトを実行できます。一般的に、次のような使用法があります。

  • カスタム レポート: タイミング、消費電力、リソース使用率、またはユーザー定義の Tcl レポート。
  • フローの一部でのみタイミング制約を変更。
  • ネットリスト、制約、またはデバイス プログラムを変更。

GUI では、デザイン run を右クリックして Change Run Settings をクリックすると、Tcl フック スクリプトを指定できます。Design Runs ウィンドウで run を右クリックして Change Run Settings をクリックし、Design Run Settings ダイアログ ボックスを開きます。[tcl.pre] および [tcl.post] オプションを使用して Tcl フック スクリプトを指定します。

Tcl フック スクリプトの定義 に示すように、Vivado IDE は合成またはインプリメンテーション run のプロパティを設定して、実行前または実行後に適用する tcl.pre スクリプトまたは tcl.post スクリプトを指定します。Tcl コンソールまたは Tcl スクリプトの一部として、合成 run またはインプリメンテーション run に直接このプロパティを設定することも可能です。

図 1. 実行前および実行後の Tcl スクリプトの定義
Page-1 Sheet.2

合成 run に設定するプロパティは、次のとおりです。

STEPS.SYNTH_DESIGN.TCL.PRE
STEPS.SYNTH_DESIGN.TCL.POST

たとえば、合成前に report.tcl スクリプトを実行するには、次のように設定します。

set_property STEPS.SYNTH_DESIGN.TCL.PRE {C:/Data/report.tcl} [get_runs synth_1]

インプリメンテーション run では、インプリメンテーション プロセスの各段階 (最適化、消費電力最適化、配置、配置後の消費電力最適化、物理最適化、配線、ビットストリーム生成) の前後に Tcl スクリプトを実行できます。これらのプロパティは、次のとおりです。

STEPS.OPT_DESIGN.TCL.PRE
STEPS.OPT_DESIGN.TCL.POST
STEPS.POWER_OPT_DESIGN.TCL.PRE
STEPS.POWER_OPT_DESIGN.TCL.POST
STEPS.PLACE_DESIGN.TCL.PRE
STEPS.PLACE_DESIGN.TCL.POST
STEPS.POST_PLACE_POWER_OPT_DESIGN.TCL.PRE
STEPS.POST_PLACE_POWER_OPT_DESIGN.TCL.POST
STEPS.PHYS_OPT_DESIGN.TCL.PRE
STEPS.PHYS_OPT_DESIGN.TCL.POST
STEPS.ROUTE_DESIGN.TCL.PRE
STEPS.ROUTE_DESIGN.TCL.POST
STEPS.WRITE_BITSTREAM.TCL.PRE
STEPS.WRITE_BITSTREAM.TCL.POST
重要: tcl.pre および tcl.post スクリプト内のパスは、プロジェクトの関連する run ディレクトリ <project>/<project.runs>/<run_name> を基準とします。現在のプロジェクトまたは現在の run の DIRECTORY プロパティを使用して、Tcl フック スクリプト内の相対パスを定義できます。
get_property DIRECTORY [current_project] 
get_property DIRECTORY [current_run]