ネスト処理を使用したパフォーマンスの向上 - 2022.1 日本語

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

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

Tcl コンソールから Tcl コマンドを実行すると、コマンドはまず Tcl インタープリターのレベルで処理されます。構文エラーがない場合、コマンドはその後 C++ レベルで実行されます。コマンドで値が返される場合、C++ コードにより戻り値がソフトウェアのいくつかの層を介して Tcl インタープリターに送信されます。Tcl インタープリターと下位 C++ コードを行き来することが、実行時間に影響します。同じコマンド内でネスト処理を使用すると、ネストされたコマンドは C++ コードから直接呼び出され、コマンド全体が完了してから C++ コードから Tcl インタープリターに戻ります。たとえば、次のようなコードがあるとします。

set nets [get_nets -hier]
set pins [get_pins -of_objects $nets]

次のコードは、上記のコードよりも高速に処理されます。

set pins [get_pins -of_objects [get_nets -hier]]

これは、最初のコードでは中間 Tcl 変数 nets が作成されるからです。

ただし、これらの変数の結果がコードのほかの部分で再利用される場合、中間 Tcl 変数を作成する方が有利なこともあります。