1.1. コンパイルの概要
1.2. Compilation Dashboardの使用
1.3. デザイン・ネットリストのインフラストラクチャー (ベータ版)
1.4. デザインの合成
1.5. デザインの配置配線
1.6. インクリメンタル最適化フロー
1.7. Fast Forwardコンパイルフロー
1.8. フルコンパイル・フロー
1.9. コンパイル結果のエクスポート
1.10. 他のEDAツールの統合
1.11. 合成言語のサポート
1.12. コンパイラーの最適化手法
1.13. 合成設定のリファレンス
1.14. フィッター設定のリファレンス
1.15. デザインのコンパイルの改訂履歴
1.3.3.1. DNI Tclコマンドを使用してのルーチンタスクのスクリプティング
次の例では、一部のルーチンタスク (属性ベースのオブジェクト・フィルタリング、名前ベースの検索、オブジェクト関係の走査など) を簡単にスクリプト化する方法を説明します。ここでは、get コマンドのさまざまな機能を使用します。
最上位入力ポートの取得 (回路図では強調表示される)
一部のシナリオでは、最上位ポートのリストが必要になることがあります。例えば、すべての入力ポートが set_input_delay で制約されていることを確認するには、デザインのすべてのポートを取得し、direction に基づいてフィルタリングする必要があります。それには、次のように dni::get_ports Tclコマンドを使用します。
dni::get_ports -filter direction==input
Tclコマンドは、デザイン内の入力ポートのコレクション (PI_1、PI_2、PI_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