FC2カウンター FPGAの部屋 ”PYNQ を使って Python で手軽に FPGA を活用 (5)”をやってみる2(Jupyter Notebook で確認)
fc2ブログ

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

FPGAの部屋

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

”PYNQ を使って Python で手軽に FPGA を活用 (5)”をやってみる2(Jupyter Notebook で確認)

”PYNQ を使って Python で手軽に FPGA を活用 (5)”をやってみる1(Vivado で DMA_pow2_axis_i プロジェクトを作成する)”の続き。

(2022/03/01:追記)TKEEP と TSTRB (TSTRB は必要ないかも?)は、入力された信号を出力するか、オール 1 にする必要がありました。詳しくは”axi_dma と DMA_pow2_axis を Kria-PYNQ で動作させる3(Jupyter Notebook で動作確認、波形を確認)”を参照ください。

PYNQ を使って Python で手軽に FPGA を活用 (5)”を KV260 でやってみるということで、前回は、DMA_pow2_axis IP を使用して、Vivado 2021.2 の DMA_pow2_axis_i プロジェクトを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行って、成功した。今回は、できあがったビットファイルと hwh ファイルを KV260 のアップロードし、Jupyter Notebook のコードを用意して KV260 で実行した。結果は実行することができなかった。

前回作成した DMA_pow2.hwh と DMA_pow2_wrapper.bit を KV260 の Jupyter Notebook の Upload Files ボタンからアップロードした。
DMA_pow2_wrapper.bit は DMA_pow2.bit に名前を変更した。
Jupyter Notebook で新しい Notebook を作成し、DMA_pow2.ipynb に名前を変更した。
Kria-PYNQ_78_220223.png
Kria-PYNQ_79_220223.png
Kria-PYNQ_80_220223.png

run_kernel() を実行したが、DMA が終了しなかったので、手動で停止した。
dma.recvchannel.wait() で待っているようだ。
次にはデバックしてみよう。

コードのみを貼っておく。

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)

data[:] = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(data)
print(result)

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

run_kernel()
print(result)

del data
del result


  1. 2022年02月24日 04:36 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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