FC2カウンター FPGAの部屋 axi_dma と DMA_pow2_axis を Kria-PYNQ で動作させる3(Jupyter Notebook で動作確認、波形を確認)
fc2ブログ

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

FPGAの部屋

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

axi_dma と DMA_pow2_axis を Kria-PYNQ で動作させる3(Jupyter Notebook で動作確認、波形を確認)

axi_dma と DMA_pow2_axis を Kria-PYNQ で動作させる2(Vivado でビットファイルと hwh ファイルを生成)”の続き。

TKEEP と TSTRB は、入力された信号を出力するか、オール 1 にする必要がありそうだ。それを踏まえて、再度 axi_dma と DMA_pow2_axis を Kria-PYNQ で動作させてみようということで、前回は、DMA_pow2_axis IP を使用して、Vivado 2021.2 の DMA_pow2_axis_i プロジェクトを再度、論理合成、インプリメンテーション、ビットストリームの生成を行って、ビットファイルと hwh ファイルを生成した。今回は、Jupyter Notebook で動作を確認し、ILA ダッシュボードで波形を確認する。

Jupyter Notebook に DMA_pow2_wrapper.bit をアップロードして、名前を DMA_pow2.bit に変更した。
また、DMA_pow2.hwh もアップロードした。
これで Python3 コードを動作させたところ、動作した。。。良かった。
result には data の値を 2 乗した値が入っている。
Kria-PYNQ_153_220305.png
Kria-PYNQ_154_220305.png

python3 のコード部分のみを示す。

from pynq import allocate, Overlay

DMA_pow2_axis_i = Overlay("./DMA_pow2.bit")

dma = DMA_pow2_axis_i.axi_dma_0
pow2 = DMA_pow2_axis_i.DMA_pow2_axis_0

import numpy as np
data = allocate(shape=(10), dtype=np.uint32)
result = allocate(shape=(10), dtype=np.uint32)

for i in range(10):
    data[i] = i
print(data)
print(result)

def run_kernel():
    dma.sendchannel.transfer(data)
    dma.recvchannel.transfer(result)    
    pow2.write(0x00,0x01) # start
    dma.sendchannel.wait()
    dma.recvchannel.wait()
    
run_kernel()
print(result)

del data
del result


ILA ダッシュボードを起動して波形を観察する。
最初に、axi_dma_0 の MM2S の ARVALID の立ち上がりでトリガーを掛けた。
Kria-PYNQ_155_220305.png

10 バーストで 0 〜 9 まで DMA Read している。問題ない。

AXI4-Stream 部分を見たが、全く問題ない。うまく行っている。
Kria-PYNQ_156_220305.png

axi_dma_0 の S2MM の AWVALID の立ち上がりでトリガーを掛けた。
きちんと 10 バーストで DMA Write が終了している。これが正常の波形だ。
Kria-PYNQ_157_220305.png

結論として、Xilinx 社の DMA IP に AXI4-Stream で入力する時は、少なくとも TKEEP をケアする必要がある。入力した値を返すか、オール 1 にする。できれば、TSTRB も TKEEP と同様にケアしておいて損はない。
  1. 2022年03月09日 04:00 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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