Dynamic Function eXchange は、複数のリコンフィギャラブル モジュール (RM) を入れ替えるのでなければ、使用する意味がありません。この手順では、存在する RP 用に新しい RM を作成します。
次の手順に従うか、これらの手順を自動化した create_rp1rm2.tcl を実行します。
- rp1 インスタンスを右クリックし、Create
Reconfigurable Module をクリックします。開いたダイアログ ボックスで RM の名前として rp1rm2 を入力し、OK をクリックします。
新しいブロック デザインが作成されて開きます。この図には、3 つの入力ピンがありますが、これは rp1 パーティションの最初の RM と同じポート リストです。特定の RP の各 RM のポート リストは、各 RM ですべてのポートが使用されない場合でも、同じになるようにしてください。ログ (およびスクリプト) では、
create_bd_design
コマンドで-boundary_from_container
オプションを使用して、ブロック デザイン コンテナーからポート リストがコピーされています。 - [+] ボタンをクリックし、検索フィールドで AXI GPIO IP を検索して、新しい IP をキャンバスに追加します。キャンバスに追加したら、ダブルクリックしてカスタマイズします。GPIO の All Inputs チェック ボックスをオンにし、GPIO Width が 32 に設定されていることを確認して、OK をクリックしてキャンバスに戻ります。
- もう一度 [+] ボタンをクリックし、検索フィールドで Constant IP を検索して、キャンバスに追加します。ダブルクリックしてカスタマイズします。Const
Width を 32、Const Val を 0xFACEFEED に変更します。OK をクリックして変更を確定します。
- もう一度 [+] ボタンをクリックし、検索フィールドで AXI SmartConnect IP を検索して、キャンバスに追加します。ダブルクリックしてカスタマイズします。Number
of Slave Interfaces を 1 に変更します。すべての値が 1 になります。OK をクリックして変更を確定します。
- 最後にもう一度 [+] ボタンをクリックし、検索フィールドで AXI NoC IP を検索して、キャンバスに追加します。ダブルクリックしてカスタマイズします。General タブで、Number of AXI Slave Interfaces を 0 に、Number of Inter-NOC Slave Interfaces を 1 に設定します。[Connectivity] タブで、M00_AXI と S00_INI を接続するシングル ボックスをオンにします。OK をクリックして変更を確定します。
NoC 間インターフェイス (INI) は、2 つ NoC インスタンスを接続します。INI リンクは、物理的な NoC 内の論理接続を表し、NoC コンパイラが呼び出されたときに解決されます。NoC のスタティック セクションとリコンフィギャラブル セクション間の境界には、INI ポートを使用する必要があります。スタティック デザインには、対応する AXI NoC IP と NoC 間マスター インターフェイスがあることに注意してください。
- 次の図に示すようにピンを接続します。 注記: GPIO ポートを展開して 32 ビット入力バスを表示し、Constant の dout バスのタイプに一致させる必要があります。レイアウトを再描画します。
- Address Editor ウィンドウを開き、アドレスが割り当てられていないことを確認します。/axi_gpio_0/S_AXI の行を右クリックし、Assign をクリックします。これで、アドレス 0x0000_0202_0000_0000 から開始する 64K の範囲が設定されます。
-
Master Base Address を 0x0201_8001_0000 から開始するように変更し、Range は 64K のままにします。
- ブロック デザインに戻り、Validate
Design をクリックし、Save をクリックして rp1rm2 ブロック デザインを保存します。
この単純なデザインでは、rp1rm1 と rp1rm2 の違いは 2 点のみです。
- S_AXI のベース アドレスが異なります。
- GPIO を介して読み出す定数値が異なります。
最初の違いは、リコンフィギャラブル モジュール間で異なる要件を持つ可能性のあるデザインに対して、デバイス ツリー オーバーレイを作成して管理する必要があることを示すために使用されます。2 つ目の違いは、ハードウェアでのダイナミック リコンフィギュレーションが正常に実行されたことを確認するために使用されます。