FC2カウンター FPGAの部屋 AXI4-Stream を AXI4-Lite インターフェースに変換する1
fc2ブログ

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

FPGAの部屋

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

AXI4-Stream を AXI4-Lite インターフェースに変換する1

前回までは、AXI4-Lite インターフェースを AXI4-Stream に変換する Vitis HLS 2022.1 で作った axilw2Stream IP を作成した。今回は、AXI4-Stream を AXI4-Lite インターフェースに変換する stream2axilr IP を作成する。ソースコードとテストベンチを貼って、Vits HLS 2022.1 で stream2axilr プロジェクトを作成した。

最初にソースコードの stream2axilr.cpp を貼っておく。

// stream2axilr.cpp
// 2022/04/20 by marsee
//

#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>

void stream2axilr(hls::stream<ap_uint<8> >& ins, ap_uint<8>& outs){
#pragma HLS INTERFACE mode=s_axilite port=outs
#pragma HLS INTERFACE mode=axis register_mode=both port=ins register
#pragma HLS INTERFACE mode=s_axilite port=return

    outs = ins.read();
}


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

// stream2axilr_tb.cpp
// 2022/04/20 by marsee
//

#include <stdint.h>
#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>

void stream2axilr(hls::stream<ap_uint<8> >& ins, ap_uint<8>& outs);

int main(){
    hls::stream<ap_uint<8> > ins;
    ap_uint<8> outs;
    int errflag = 0;

    for(ap_uint<8> i=0; i<10; i++){
        ins.write(i);
        stream2axilr(ins, outs);
        if(outs != i){
            printf("i = %d, outs = %d\n");
            errflag = 1;
        }
    }

    if(errflag == 0){
        printf("No Error\n");
        return 0;
    } else {
        return 1;
    }
}


Vitis HLS 2022.1 で stream2axilr プロジェクトを作成した。
axil2stream_9_220508.png
  1. 2022年05月08日 11:59 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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