オブジェクト名と NAME プロパティ - 2022.1 日本語

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

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

デザイン オブジェクトを必要とする Tcl コマンドと、文字列入力を必要とする Tcl コマンドがあります。Vivado Design Suite では、文字列引数を必要とする Tcl コマンドであっても、デザイン オブジェクトを直接渡すことができます。この場合、デザイン オブジェクトの階層名が文字列として Tcl コマンドに渡されます。オブジェクトの NAME プロパティを取得して Tcl コマンドに渡す必要はありません。

たとえば、次の regexp コマンドでは、2 つの if 文は同等で、オブジェクトの名前が渡されます。

if {[regexp {.*enable.*} $MyObject]} { ... }
if {[regexp {.*enable.*} [get_property NAME $MyObject]]} { ... }

上記の例では、最初のコードの方が読みやすいだけでなく、オブジェクトのプロパティを取得する必要がないので実行時間も短くなります。Vivado ツールでは、2 番目の例の get_property コマンドにより、オブジェクト プロパティを取得するため、Tcl インタープリターと下位 C++ アプリケーション コードの間にアクセスが発生します。これを複数のオブジェクトに対してループで実行すると、Tcl スクリプトの実行時間が大幅に増加します。