手順 5: 新規リコンフィギャラブル モジュールの追加 - 2022.1 日本語

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

Document ID
UG947
Release Date
2022-05-31
Version
2022.1 日本語

Dynamic Function eXchange は、複数のリコンフィギャラブル モジュール (RM) を入れ替えるのでなければ、使用する意味がありません。この手順では、存在する RP 用に新しい RM を作成します。

次の手順に従うか、これらの手順を自動化した create_rp1rm2.tcl を実行します。

  1. rp1 インスタンスを右クリックし、Create Reconfigurable Module をクリックします。開いたダイアログ ボックスで RM の名前として rp1rm2 を入力し、OK をクリックします。
    図 1. rp1 RP インスタンス用の 2 つ目の RM を作成

    新しいブロック デザインが作成されて開きます。この図には、3 つの入力ピンがありますが、これは rp1 パーティションの最初の RM と同じポート リストです。特定の RP の各 RM のポート リストは、各 RM ですべてのポートが使用されない場合でも、同じになるようにしてください。ログ (およびスクリプト) では、create_bd_design コマンドで -boundary_from_container オプションを使用して、ブロック デザイン コンテナーからポート リストがコピーされています。

  2. [+] ボタンをクリックし、検索フィールドで AXI GPIO IP を検索して、新しい IP をキャンバスに追加します。キャンバスに追加したら、ダブルクリックしてカスタマイズします。GPIO の All Inputs チェック ボックスをオンにし、GPIO Width が 32 に設定されていることを確認して、OK をクリックしてキャンバスに戻ります。
    図 2. RM2 の GPIO IP をカスタマイズ
  3. もう一度 [+] ボタンをクリックし、検索フィールドで Constant IP を検索して、キャンバスに追加します。ダブルクリックしてカスタマイズします。Const Width を 32、Const Val を 0xFACEFEED に変更します。OK をクリックして変更を確定します。
    図 3. RM2 の Constant IP のカスタマイズ
  4. もう一度 [+] ボタンをクリックし、検索フィールドで AXI SmartConnect IP を検索して、キャンバスに追加します。ダブルクリックしてカスタマイズします。Number of Slave Interfaces を 1 に変更します。すべての値が 1 になります。OK をクリックして変更を確定します。
    図 4. RM2 の AXI SmartConnect IP のカスタマイズ
  5. 最後にもう一度 [+] ボタンをクリックし、検索フィールドで AXI NoC IP を検索して、キャンバスに追加します。ダブルクリックしてカスタマイズします。[General] タブで Number of AXI Slave Interfaces を 0 に、Number of Inter-NOC Slave Interfaces を 1 に設定します。[OK] をクリックして変更を確定します。
    図 5. RM2 の AXI NoC IP のカスタマイズ

    NoC 間インターフェイス (INI) は、2 つ NoC インスタンスを接続します。INI リンクは、物理的な NoC 内の論理接続を表し、NoC コンパイラが呼び出されたときに解決されます。NoC のスタティック セクションとリコンフィギャラブル セクション間の境界には、INI ポートを使用する必要があります。スタティック デザインには、対応する AXI NoC IP と NoC 間マスター インターフェイスがあることに注意してください。

  6. 次の図に示すようにピンを接続します。
    注記: GPIO ポートを展開して 32 ビット入力バスを表示し、Constant の dout バスのタイプに一致させる必要があります。レイアウトを再描画します。
    図 6. 完成した RM2 ブロック デザイン
  7. [Address Editor] ウィンドウを開き、アドレスが割り当てられていないことを確認します。/axi_gpio_0/S_AXI の行を右クリックし、Assign をクリックします。これで、アドレス 0x0000_0202_0000_0000 から開始する 64K の範囲が設定されます。
  8. Master Base Address を 0x0000_0201_8001_0000 から開始するように変更し、Range は 64K のままにします。
    図 7. GPIO の最終的なアドレス範囲割り当て
  9. Validate を実行し、save をクリックして rp1rm2 ブロック デザインを保存します。

    この単純なデザインでは、rp1rm1 と rp1rm2 の違いは 2 点のみです。

    1. S_AXI のベース アドレスが異なります。
    2. GPIO を介して読み出す定数値が異なります。

    最初の違いは、リコンフィギャラブル モジュール間で異なる要件を持つ可能性のあるデザインに対して、デバイス ツリー オーバーレイを作成して管理する必要があることを示すために使用されます。2 つ目の違いは、ハードウェアでのダイナミック リコンフィギュレーションが正常に実行されたことを確認するために使用されます。