インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザインのコンパイル

ID 683236
日付 6/26/2023
Public
ドキュメント目次

1.3.3.1. DNI Tclコマンドを使用してのルーチンタスクのスクリプティング

次の例では、一部のルーチンタスク (属性ベースのオブジェクト・フィルタリング、名前ベースの検索、オブジェクト関係の走査など) を簡単にスクリプト化する方法を説明します。ここでは、get コマンドのさまざまな機能を使用します。

最上位入力ポートの取得 (回路図では強調表示される)

一部のシナリオでは、最上位ポートのリストが必要になることがあります。例えば、すべての入力ポートが set_input_delay で制約されていることを確認するには、デザインのすべてのポートを取得し、direction に基づいてフィルタリングする必要があります。それには、次のように dni::get_ports Tclコマンドを使用します。
dni::get_ports -filter direction==input

Tclコマンドは、デザイン内の入力ポートのコレクション (PI_1PI_2PI_3 など) を返します。返されたコレクションを使用して、他の get_object コマンドに渡したり、チェーンにしたりすることができます。コレクションのメンバーにアクセスするには、コレクション反復子 (foreach_in_collection など) を使用します。次に例を示します。

foreach_in_collection p [dni::get_ports -filter direction=input] { puts $p }
port::top::PI_1
port::top::PI_2
port::top::PI_3

inst_1 インスタンスの取得

デザイン内で、特定のオブジェクト (インスタンスなど) を名前で検索することができます。インスタンスを検索するには、次に示すように、 dni::get_cells Tclコマンドを使用します。
dni::get_cells inst_1

Tclコマンドは、デザインの inst_1 インスタンスを返します。返されたインスタンスを使用して、他の get_object コマンドに渡したり、チェーンにしたりすることができます。次に例を示します。

foreach_in_collection p [dni::get_ports -filter direction=input] { puts [dni::get_property -name name -object $p] }
inst_1

inst_1 インスタンスの in_1 インスタンス・ポートの取得

接続の走査時に、インスタンスの特定のインスタンス・ピンの検索が必要になる場合があります。このようなシナリオでは、次に示すように、 dni::get_pins コマンドの -of_object インターフェイスを使用して、インスタンス間のピンの関係を走査します。
dni::get_pins -of_objects [dni::get_cells inst_1] -filter name==in_1

Tclコマンドは、デザインの inst_1 インスタンスの in_1 インスタンス・ポートを返します。返されたインスタンス・ポートを使用して、他の get_object コマンドに渡したり、チェーンにしたりすることができます。次に例を示します。

foreach_in_collection p [dni::get_pins -of_objects [dni::get_cells inst_1] -filter name==in_1] { puts $p] }
inst_port::top::inst_1|in_1

inst_1|out1 インスタンスのネットの取得

接続のトレース時に、インスタンスに接続されているすべてのネットの走査が必要になる場合があります。このようなシナリオでは、 dni::get_nets コマンドの -of_objects インターフェイスを使用して、インスタンスに接続しているネットを走査します。次に例を示します。

dni::get_nets -of_objects [dni::get_cells inst_1|out_1]

Tclコマンドは、デザインの inst_1|out1 インスタンスのネットを返します。返されたコレクションを使用して、他のコマンドに渡したり、チェーンにしたりすることができます。次に例を示します。

foreach_in_collection p [dni::get_nets -of_objects [dni::get_cells inst_1|out_1] ] { puts $p] }
inst_port::top::inst_1|out_1|Net_7
inst_port::top::inst_1|out_1|Net_6
inst_port::top::inst_1|out_1|Net_8

net オブジェクト・タイプで利用可能なプロパティーのリスト

DNI Tclインターフェイスを使用すると、 dni::list_properties Tclコマンドを介してオブジェクト構造へのアクセスが可能になります。次のようにこのコマンドを使用して、任意のオブジェクト・タイプのアクセス可能なプロパティーを一覧にすることができます。
dni::list_properties -type net
name parent_name number_of_ports ports net_bus_name source_file source_line is_user_declared