FC2カウンター FPGAの部屋 自作回路を cocotb でシミュレーションする1(Vitis HLS で multiplier を作成1)
fc2ブログ

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

FPGAの部屋

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

自作回路を cocotb でシミュレーションする1(Vitis HLS で multiplier を作成1)

cocotb でサンプルをやってきたが、自作回路を cocotb でシミュレーションしてみようと思う。
AXI4 インターフェースの回路をシミュレーションしてみたいと思って、検索してみたところ、”AXI interface modules for Cocotb”を見つけた。これを使用すれば、AXI4 インターフェースのシミュレーションができそうだ。AXI4 Slave Bus Functional Model も作ってあるので、スレーブも問題ない。
AXI4 インターフェースの cocotb を使ったシミュレーションをしたいのだが、何分にも Makefile の書き方がよく分かっていないので、簡単な回路から cocotb でシミュレーションをしてみよう。
今回は、Vitis HLS 2022.1 で乗算器(mulitplier)を作成する。なお、ZYBO Z7-20 用とした。この乗算器を cocotb でシミュレーションしてみたい。

multiplier のソースコードとテストベンチを示す。
ソースコードの multiplier.cpp を示す。

// multiplier.cpp
// 2022/09/13 by marsee
//

#include <stdint.h>

int multiplier(int16_t a, int16_t b, int32_t *c){

    *c = a * b;

    return(0);
}


テストベンチの multiplier_tb.cpp を示す。

// multiplier_tb.cpp
// 2022/09/13 by marsee
//

#include <stdio.h>
#include <stdint.h>

int multiplier(int16_t a, int16_t b, int32_t *c);

int main(){
    int16_t a, b;
    int32_t c;

    a = 3;
    b = 4;

    multiplier(a, b, &c);
    printf("a = %d, b = %d, c = (a*b) = %d\n", a, b, c);

    return(0);
}


ZYBO Z7-20 用の Vitis HLS 2022.1 プロジェクトの multiplier を示す。
cocotb_22_220913.png
  1. 2022年09月13日 04:48 |
  2. シミュレーション
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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