手順 8: デザインのインプリメント - 2022.1 日本語

Vivado Design Suite チュートリアル: Dynamic Function eXchange (UG947)

Document ID
UG947
Release Date
2022-05-31
Version
2022.1 日本語
  1. Flow Navigator で [Run Implementation] を選択し、すべてのコンフィギュレーションで配置配線を実行します。

    まず impl_1 のインプリメンテーション、次に child_0_impl_1 のインプリメンテーションが実行されます。すべての DFX 要件が揃った状態でこの 2 つの run で配置配線が実行されるだけでなく、DFX に特化したタスクがさらに 2、3 実行されます。impl_1 が完了したら、Vivado により次の作業が自動的に実行されます。

    • 配線済みの乗算器 RM のモジュール レベル (OOC) のチェックポイントが生成されます。
    • スタティックのみのデザイン イメージを作成するため、RP のロジックが抜き出されます。この RP インスタンスに update_design -black_box が呼び出されます。
    • デザインのスタティック部分のみの配置配線がすべてロックされます。そのため、lock_design -level routing が呼び出されます。
    • すべての子 run に再利用できるよう、ロックされたスタティックの親イメージが保存されます。

    さらに、子 run が完了すると、モジュール レベルのチェックポイントが配線済みの加算器 RM 用に作成されます。ロックされたスタティック デザインのイメージは、親と同じなので、このステップは不要です。

    Vivado プロジェクトの場合、依存関係は Vivado IDE で管理されます。ソースが変更されると、対象となる run のタイムスタンプが古くなります。つまり、親子関係がある場合は、これらのチェックでその依存関係が理解される必要があります。たとえば、add.v が変更された場合、OOC 合成 run およびその子インプリメンテーション run のみのタイムスタンプが古くなります。

    特定のコンフィギュレーション run のみが必要な場合は、[Design Runs] ウィンドウ内でそれらを個別に選択できます。子 run は親 run からのロックされたスタティック デザインをインポートして開始するため、子 run を起動する前に親 run を完了させておく必要があります。

    図 1. 両方のコンフィギュレーションが配線された状態

  2. インプリメンテーション run が完了したら、Open Implemented Design をクリックし、OK をクリックします。
    図 2. impl_1 コンフィギュレーションを開く
    注意:
    デザインが子インプリメンテーション run まで処理されていても、[Open Implemented Design] を選択すると、デフォルトで親 run が開きます。プルダウン メニューを使用して、目的のインプリメンテーション run を選択します。
    図 3. 配線済み親デザインの [Device] ビュー

    これは乗算器コンフィギュレーションの配線済みデザインです。次に、配置配線エリアのフレームセットを確認します。

  3. Tcl コンソールで、cd コマンドを使用し、現在のプロジェクト ディレクトリに移動します (既にそのディレクトリで作業している場合は次のステップに進みます)。次のコマンドを実行して、可視化スクリプトを実行します。
    source project_1.runs/impl_1/hd_visual/pblock_my_math_Routing_AllTiles.tcl
    highlight_objects -color yellow [get_selected_objects]

    最初の Tcl スクリプトで、デザインのリコンフィギャラブル部分を配線するのに有効なフレームが特定されます。これは、垂直方向に Pblock が配置されているクロック領域の高さまで、水平方向ではプログラマブル ユニット 2 つ分、左右に広げられます (プログラマブル ユニットはリソース列のペア)。

  4. 次のコマンドを実行して、デザインのリコンフィギャラブル部分を配線するのに有効なフレームセットを特定します。
    source project_1.runs/impl_1/hd_visual/pblock_my_math_Placement_AllTiles.tcl
    highlight_objects -color blue [get_selected_objects]

    ハイライトされた領域は Pblock エリアそのものか、または、Pblock がプログラマブル ユニットの境界線に揃えられていない場合は、Pblock よりもやや小さなエリアになります。

    デバイスのビューは次のようになるはずです。

    図 4. 配置 (青) および配線 (黄) の境界を示すためハイライトされた math RP

    スタティック ロジックは、拡張された配線領域 (今は黄色で残っている領域) に配置可能です。スタティックな配線には、デバイスのどのリソースでも使用できます。

  5. Flow Navigator で [Report Timing Summary] を選択し、OK をクリックしてデザインのタイミングを解析します。
  6. [Timing] タブで [Design Timing Summary] を選択し、[Worst Negative Slack (WNS)] の値をクリックして、ワースト パスを上位 10 個表示します。最初のパスをダブルクリックして、そのパスのタイミング サマリを開きます。

    このタイミング レポートの [Clock Paths] および [Data Path] に、[Partition] という新しい列が追加されています。ここには、パスの特定部分がどのパーティション (または境界) にあるのかが示されています。

    注意:
    場合によっては、表のヘッダーを右クリックし、[Partition] をチェックして、[Partition] 列の表示を切り替える必要があります。それから、タイミング レポートのウィンドウを拡大するか、列幅を調整して、最終行の右側に [Partition] 列が表示されるようにします。
    図 5. タイミング レポートでパーティションが表示された状態のパス

  7. File > Close Implemented Design をクリックして、impl_1 のインプリメント済みデザインを閉じます。