FC2カウンター FPGAの部屋 DMA_pow2 を Kria-PYNQ の jupyter Notebook で動作させる1(DMA pow2 IP を Vitis HLS で作成する)
fc2ブログ

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

FPGAの部屋

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

DMA_pow2 を Kria-PYNQ の jupyter Notebook で動作させる1(DMA pow2 IP を Vitis HLS で作成する)

”PYNQ を使って Python で手軽に FPGA を活用 (5)”を手順通りにやってみる”で、Vitis HLS 2021.2 で作成した DMA_pow2_axis IP を元々の stream_double.v に変更したら、Jupyter Notebook で動作した。今回は、Xilinx 社の AXI DMA IP を使用せずに、Vitis HLS で作成した AXI4 Master インターフェースの DMA_pow2 IP だとJupyter Notebook で動作するのか?を確認する。今回は、Vitis HLS 2021.2 で DMA_pow2 IP を作成する。

今までも作っていると思うが、Vitis HLS 2021.2 で DMA_pow2 プロジェクトを作成した。KV260 用だ。Part Selection の Part は xck26-sfvc784-2LV-c だ。
Kria-PYNQ_110_220228.png

64 ビットアドレスの DMA を禁止して、 32 ビットアドレスの DMA にする。
Vitis HLS の Solution メニューから Solution Settings... を選択する。
Solution Settings (solution1) ダイアログが開く。
config_interface を展開して、m_axi_addr64 の Value のチェックボックスのチェックを外した。
Kria-PYNQ_111_220228.png

ソースコードのDMA_pow2.cpp を貼っておく。

// DMA_pow2.cpp
// 2021/11/17 by marsee

#include <stdint.h>

int DMA_pow2(int32_t *in, int32_t *out){
#pragma HLS INTERFACE mode=m_axi depth=10 port=out offset=slave
#pragma HLS INTERFACE mode=m_axi depth=10 port=in offset=slave
#pragma HLS INTERFACE mode=s_axilite port=return
    for(int i=0; i<10; i++){
        out[i] = in[i] * in[i];
    }
    return(0);
}


テストベンチの DMA_pow2_tb.cpp を貼っておく。

// DMA_pow2_tb.cpp
// 2021/11/17 by marsee
//

#include <iostream>
#include <stdint.h>

int DMA_pow2(int32_t *in, int32_t *out);

int main(){
    int32_t data[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int32_t result[10];

    DMA_pow2(data, result);

    for(int i=0; i<10; i++){
        std::cout << "data[" << i << "]= " << data[i] <<
                ", result[" << i << "] = " <<
                result[i] << std::endl;
    }
}


C シミュレーションを行った。
Kria-PYNQ_112_220228.png

C コードの合成を行った。
Kria-PYNQ_113_220228.png
Kria-PYNQ_114_220228.png

C/RTL 協調シミュレーションを行った。
Kria-PYNQ_115_220228.png

C/RTL 協調シミュレーション波形を示す。
Kria-PYNQ_116_220228.png

AXI4-Lite の波形を確認した。
終了条件は 0x00 番地を Read した時に 0x0e が読めたときのようだ。
Kria-PYNQ_117_220228.png

Export RTL を行った。
DMA_pow2/solution1/impl ディレクトリに export.zip が生成された。これに IP が圧縮されている。
  1. 2022年03月03日 04:09 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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