FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Vivado-HLSとAXI4-DMAの試行(2. Vivado-HLSのカスタムIPをVivadoにインポートして接続する)

前回に、Vivado-HLSで作成した浮動小数点行列積回路をAXI4-Streamに対応させた。今度はVivado側で、作成したIPをDMAに接続して、デザインを作成してみよう。

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

参考にしたのは、例によって以下の資料だ。

http://japan.xilinx.com/support/documentation/application_notes/j_xapp1170-zynq-hls.pdf

この資料では、作成したIPをDMAで接続している。さらに接続の詳細については振れられず、スクリプトを使って自動的に接続するように構成されていた。 従って、以下の資料をダウンロードして参照すると手っ取り早いのだと思われる。

https://secure.xilinx.com/webreg/clickthrough.do?cid=343614

以下のようなデザインが作成されている。接続されているのは、作成したカスタムIPと、AXI4-DMA、さらにAXIタイマーが接続されている。 どうやらこのタイマーを使って何かを制御するらしい。ソースコードを参照した限り、このタイマーはサイクル数を計測するのに利用する感じがしている。 今回僕のデザインでは、ARM側で計測するのでこれは必要ない、はず。

f:id:msyksphinz:20161007012120p:plain

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

僕の場合は以下のようなデザインを構築した。

f:id:msyksphinz:20161007012808p:plain

リファレンスデザインと非常に似ている。違っているのはタイマーを利用していないくらいだ。

割り込みを利用したいので、ProcessingSystemで汎用割り込みポートを有効にしている。

f:id:msyksphinz:20161007012641p:plain

割り込みポートは1つだけ用意している。僕のデザインの場合はaxi_timerを利用しないため、2つの割り込みをconcatする必要が無いため、xlconcatモジュールは使用していない。

また、以下で強調表示したポートは手動で接続した。どうやら、Autoではうまい具合に接続してくれないらしい。

f:id:msyksphinz:20161007013054p:plain

これで合成して、次にSDKを使ってプログラムを書いていく。