FC2カウンター FPGAの部屋 DMA_pow2 を Kria-PYNQ の jupyter Notebook で動作させる3(Jupyter Notebook で動作確認する)
fc2ブログ

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

FPGAの部屋

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

DMA_pow2 を Kria-PYNQ の jupyter Notebook で動作させる3(Jupyter Notebook で動作確認する)

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

前回は、Vivado 2021.2 で DMA_pow2_test32 プロジェクトを作成する。 DMA_pow2 IP を使用して DMA_pow2_test32 ブロック・デザインを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行って、ビットファイルと hwh ファイルを生成した。今回は、Jupyter Notebook にビットファイルと hwh ファイルをアップロードして、動作確認を行って成功した。また、System ILA を使って、波形を観察した。

Jupyter Notebook で my_notebook/DMA_pow2_test32 ディレクトリを作成し、DMA_pow2_test32.hwh と DMA_pow2_test32_wrapper.bit をアップロードした。
名前を DMApow2.hwh, DMApow2.bit に変更した。

DMApow2.ipynb ファイルを新規作成した。
コードを作って、実行したところ成功した。
Kria-PYNQ_133_220302.png
Kria-PYNQ_134_220302.png

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

from pynq import allocate, Overlay

DMApow2i = Overlay("DMApow2.bit")

DMA_pow2 = DMApow2i.DMA_pow2_0

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

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

print(data)
DMA_pow2.write(0x18,data.physical_address) # in_r
DMA_pow2.write(0x20,result.physical_address) # out_r

DMA_pow2.write(0x00,0x01) # start
while True:
    status = DMA_pow2.read(0x00)
    if status == 0xe:
        break
print(result)

del data
del result


allocate された data と result バッファの物理アドレスは、physical_address で参照できる。(Python productivity for Zynq (Pynq) v2.5 の Allocate を参照

System ILA を使用して、波形を観察した。
まずは、MM2S の DMA Read 波形を示す。
Kria-PYNQ_135_220302.png

ARLEN は 0x09 なので、10 バーストだった。

次に S2MM の DMA Write を示す。
こちらも AWLEN が 0x09 で 10 バーストで正常だ。
Kria-PYNQ_136_220302.png

データ転送部分を拡大した。データは正しい。
Kria-PYNQ_137_220302.png
  1. 2022年03月05日 04:43 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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