関連性を使用したオブジェクトの検索 - 2023.2 日本語

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

Document ID
UG894
Release Date
2023-11-17
Version
2023.2 日本語

デザインのほかのオブジェクトに関連するオブジェクトを検索する必要がある場合があります。たとえば、特定のセルのピンに接続されているすべてのネットや、特定のネットに接続されているすべてのセルを選択する場合などです。Vivado Design Suite では、デザインのエレメントをそれらの関連性を利用して検索できます。これには、get_* コマンドで -of_objects オプションを使用します。関連性を使用したオブジェクトの検索 に、インメモリ デザインのオブジェクト間の関連性を示します。

図 1. Vivado Design Suite オブジェクトの関係

注記: これは概念的に図示したものであり、Vivado Design Suite データベース内のすべてのオブジェクトとその関連性をすべて表すものではありません。

get_* オプションをサポートする -of_objects コマンドのヘルプに、関連性のあるオブジェクトがリストされます。

get_cells -of_objects {pins, timing paths, nets, bels or sites}
get_clocks -of_objects {nets, ports, or pins}
get_nets -of_objects {pins, ports, cells, timing paths or clocks}
get_pins -of_objects {cells, nets, bel pins, timing paths or clocks}
get_ports -of_objects {nets, instances, sites, clocks, timing paths, io standards, io 
banks, package pins}

-of_objects オプションを使用すると、ネット オブジェクトのリストに接続されているピン オブジェクトのリストを簡単に取得できます。

get_pins -of_objects [get_nets -hier]

これらのネットのドライバーのリストのみを取得する場合は、-filter オプションを使用します。

get_pins -of [get_nets -hier] -filter {DIRECTION == OUT}
注記: -of_objects で渡されるオブジェクトのリストが空の場合、get_* コマンドで空の Tcl リストが返されます。

また、セルのリストからピンのリストを取得したり、ネットのリストからセルのリストを取得したりできます。

図 2. 関連性を使用したオブジェクトの検索

次の例では、関連性を使用したオブジェクトの検索 に示すように、インスタンス a1 からクロック ピンを取得し、そのクロック ピンに接続されているネットを取得して、そのネットに接続されているピンを取得して、さらにそのピンに接続されているネットを取得して、最後にそれらのネットに接続されているピンを取得しています。

get_pins -of [get_nets -of [get_pins -of [get_nets -of [get_pins A/a1/clk]]]]
A/a2/clk A/clk A/a1/clk B/clk

最後の get_pins コマンドにより、それまでに返されたピンに加え、階層モジュール B のクロック ピン B/clk が返されます。階層をまたいでクロック ネット オブジェクトのプリミティブ ピンを取得するには、-leaf コマンドの get_pins オプションを使用できます。次の例では、-leaf を使用した場合の結果を示します。

get_pins -leaf -of [get_nets -of [get_pins -of [get_nets -of [get_pins A/a1/clk]]]]
B/b1/data_reg/C A/a2/data_reg/C A/a1/data_reg/C B/b2/data_reg/C