”
DFX をやってみよう12(DMA_square_root8 の実行)”で DMA_pow2 IP と DMA_square_root8 IP を DFX で入れ替えようとしたら、DMA_square_root8 IP のパーシャル・ビットファイルをコンフィギュレーションしたところで、ソフトウェアの動作が止まってしまった。これは、パーシャル・リコンフィギュレーション中に AXI インターフェースの信号が出力されていしまうからだということで、 DFX Decuopler を使うということをツィッターで IDA さんに教えていただいた。いつもありがとうございます。
それで、今回のブログでは、 DFX Decuopler について学んでいこう。
DFX Decuopler のマニュアルは、”
Dynamic Function eXchange Decoupler v1.0 LogiCORE IP Product Guide Vivado Design Suite PG375 (v1.0) June 3, 2020”のようだ。これを勉強していこう。
DFX Decuopler の機能は基本的にハンドシェーク信号をパーシャル・リコンフィギュレーションの間、非アクティブにしておくことだ。
セレクタを使用して、ハンドシェーク信号に非アクティブなロジック・レベルを入力する。例えば AXI インターフェースでは 0 を入れる。
”
Dynamic Function eXchange Decoupler v1.0 LogiCORE IP Product Guide Vivado Design Suite PG375 (v1.0) June 3, 2020”の 16 ページの”Figure 3: Default Decoupling for AXI4-Stream Interfaces”を引用する。

これは AXI4-Stream の場合だが、DFX 側の rp_... 信号と、スタティック・ロジック側の s_... 信号の間に片方の入力が 0 のセレクタが入っているのが分かる。そしてそのセレクタの切り替えは decuope 信号になっている。
シンプルな AXI4-Stream では、 tvalid と tready でハンドシェーク指定しているので、その信号だけにセレクタが入っていて、t_data はスルーとなっている。
それでは、実際に Vivado の iP インテグレターで使用する DFX_Decuopler を見てみよう。
もう、AXIインターフェースの DFX は動作しているのだが、そのブロック・デザインに使用した DFX Decuopler だ。

ダブルクリックして設定を見ていこう。

Enable the AXI Lite interface にチェックが入っているので、 AXI-Lite の DFX Decuopler の設定用ポートが追加されている。
この設定用ポートのアドレス・マップを
”
Dynamic Function eXchange Decoupler v1.0 LogiCORE IP Product Guide Vivado Design Suite PG375 (v1.0) June 3, 2020”の 11 ページの”Table 8: Control Register (Offset 00h)”と 12 ページの”Table 9: Status Register (Offset 00h)”を引用する。


つまり、0x00 番地に 1 を書くとデカップリングがイネーブルになる。つまり、制御信号に 0 を入力するわけだ。パーシャル・リコンフィギュレーションの間は 0x00 番地を 1 にしておく。
次に、Enable the Decuople Status Signal にチェックが入っているので、ステータス出力が出力されている。これは、私のデザインでは、Processor_System_Reset IP のリセット入力に入っている。
次に、 Interface Options タブを見ていこう。

ここではデカップリングが必要なインターフェースを指定する。現在は、 aximm_rtl:1.0 が指定されていて、AXI Master インターフェースが指定されている。
DMA_pow2 と DMA_square_root8 IP にはその他に AXI4-Lite Slave の設定用ポートがあるが、こちらはマスタとなってトランザクションを開始することが無いからなのか? デカップリングしなくても大丈夫だった。
Interface VLNV で使用するインターフェースを指定するのだが、たくさんのインターフェースを選択することができる。
- 2021年08月02日 04:54 |
- Dynamic Function eXchange
-
| トラックバック:0
-
| コメント:0