FC2カウンター FPGAの部屋 AXI Master インターフェースを含む IP を DFX する1
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

AXI Master インターフェースを含む IP を DFX する1

DFX CouplerDFX Shutdown Manager をブログで勉強してきたが、その内の DFX Coupler を使用して、前回 DFX に失敗した DMA_pow2 IP と DMA_square_root8 IP の DFX をやっていこう。

DFX に失敗した DMA_pow2 IP と DMA_square_root8 IP の DFX については、以下のブログ記事にまとまっている。
DFX をやってみよう1(DFX を調べる1)
DFX をやってみよう2(チュートリアル例の説明)
DFX をやってみよう2(DMA_pow2 IP の作成)
”DFX をやってみよう3(DMA_square_root8 IP の作成1)
DFX をやってみよう4(DMA_square_root8 IP の作成2)
DFX をやってみよう5(Vivado 2021.1 で DFX_test プロジェクトを作成)”
DFX をやってみよう6(ブロック・デザイン・コンテナと DFX イネーブル)
DFX をやってみよう7(2 つ目の RM を設定)
DFX をやってみよう8(Generate Output Products と Dynamic Function eXchange Wizard)
”DFX をやってみよう9(Pblock の設定)”
”DFX をやってみよう10(インプリメンテーションとビット・ファイル、パーシャル・ビット・ファイルの生成)”
”DFX をやってみよう11(ハードウェアのエクスポートとフル・ビット・ファイルの動作確認)”
”DFX をやってみよう12(DMA_square_root8 の実行)”

2 が 2 つあるな。タイトル付けに失敗した。

さて、 DFX Coupler を使用して DFX を行う RM を構成していく。

DFX_test_211 を削除して作り直した。
DFX2_10_210804.png

作成した DFX_test ブロック・デザインを示す。
DFX2_11_210804.png

DMA_pow2 の AXI4 Master インターフェースの m_axi_gmem に dfx_decoupler_0 を接続している。
DMA_pow2 のリセット端子 ap_rst_n は専用のリセット用 IP の proc_sys_reset_0 を使用している。
proc_sys_reset_0 の aux_reset_in には、 dfx_decoupler_0 の decouple_status を入力した。つまり RM をリコンフィギュレーションの間リセットするようにした。
DMA_pow2 の s_axi_control には、 dfx_decoupler を接続しなかった。それは、スレーブの応答する IP なので、自律的にトランザクションを始めることができず、影響がないと思ったからだ。

dfx_decuopler_0 の AXI インターフェースの設定画面を示す。
DFX2_4_210802.png

DMA_pow2 DFX モジュールをダブルクリックして設定を確認する。
Customize Block Design Container ダイアログが表示された。
DFX2_12_210804.png

RM として DMA_circuit.bd (DMA_pow2)と DMA_square_root8_0.bd が選択されている。
Enable Dynamic Function eXchange on this container にチェックが入っている。

Addressing タブを示す。
DMA_square_root8_0.bd のアドレスを 0x40010000 に変更したが、その IP だけリコンフィギュレーションして、アドレスに関係する AXI Interconnect は RM モジュールに入っていないので、DMA_circuit.bd と同じアドレスでも良かったかも知れない?
DFX2_13_210804.png

Address Map を示す。
DFX2_14_210804.png

ビットストリームを生成した。
DFX2_15_210804.png

最初に DMA_square_root8_0.bd の DMA_square_root8 IP でタイミング・エラーがでてしまった。
そこで、Vitis HLS に戻って、100 MHz で動作するのではなく、もっと速い周波数で動作する IP に作り直した。

ハードウェアをエクスポートした。

この記事には結果しか書いていないが、DFX のチュートリアルを見たかったら、上にあるブログリンクを順番にクリアしていくと良いと思う。ただし、ブロック・デザインはこの記事のブロック・デザインに変更して欲しい。
  1. 2021年08月04日 04:33 |
  2. Dynamic Function eXchange
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5315-c3a14a32
この記事にトラックバックする(FC2ブログユーザー)