Using the RTL Kernel Wizard をやってみる
2021-11-20 19:16 JST

xilinx の RTL Kernel なるものをやってみることにした。Vitis で環境を作って、Vivado を立ち上げて、Vitis に戻って評価する。ターゲットは U50。

ここでやっていることは Using the RTL Kernel Wizard。謎の部分はいっぱいある。

注意点は KVAdd (A, B, Res) とかいいながら、A, B, Res に 1 たしているだけ。Res <= A + B をしているわけではない。

Vitis の起動

まずは Vitis の起動から入る。Vitis から RTL Kernel Wizard が呼べる。このウィザード。便利なのか、便利じゃないのか、、、複雑なプログラムを複雑に作ってくれるので、後から Verilog のソースをいじる気にならない。

とにかく、このページの通り作業を進めていくことにする。

途中、Vivado が立ち上がって、Elaborate から回路図を見ろという風に書いてある。しかし、それ以上、の説明はない。

どうみても、ただ単に 1 足しているだけ。その後、Verilog のソースをみる。

どうみても、ただ単に 1 足しているだけ。ここでは掲載しないが、host のプログラムも各引数 A, B, Res に1 足されることを確認している。どうなってるんだ。scalar なるパラメタは設定されるが使われていない。

Vitis で確認

HW エミューレーションまで進むと、実際に HW が無くてもxsim でシミュレーションしてくれる。ちょっと便利ポイのが Timeline Trace。

AWS で実行した訳ではないのでちょっと結果が違っている。U50 は HBM2 だからかな?

XPM_FIFO_AXIS

自動生成してくれるソースの中で AXIS I/F の FIFO を使っている。これこれ。これがないと、真ん中の RTL が生きてこない。ug974 をみると "ファミリ: 7 シリーズ、UltraScale、UltraScale+"と書いてあるので、まぁ最近のチップは全部使えるみたい。

今後これを使うといいよね。

RTL Kernel って、今までの自分の資産をここに持ってこようと思っているのだから、Wizard で中途半端にソースを自動生成してもらっても、役に立たないよ!!