”
ZYBO Z7-20 の PYNQ 2.7 上で Jupyter Notebook に画像を表示する7”の続き。
Jupyter Notebook にカメラ画像を表示しようということで、前回は、デバッグをしたところ、axis2DMA4dwc IP のアドレスが 64 ビットアドレスだったため、AXI4 Master のアドレスの上 32 ビットだけアドレスを書き込んでいたので、DMA でアドレスが 0 番地になっていたのがバグの原因だった。今回は、axis2DMA4dwc IP のアドレスを 32 ビット・アドレスに変更し、Vivado で論理合成、インプリメンテーション、ビットストリームの生成を行った。その後 Jupyter Notebook で動作を確認したところ、Jupyter Notebook に画像を表示できたが、色が違っていた。
Vitis HLS 2021.2 の axis2DMA4dwc プロジェクトで Solution メニューから Solution Settings... を選択し、ダイアログを表示された。
config_interface を展開して、m_axi_addr64 のチェックを外して、AXI4-Master のアドレス幅を 32 ビットに変更した。
C コードの合成を行った。結果を示す。

S_AXILITE Registgers の最後の out_r が 32 ビット幅 1 個のみになっている。これで問題ない。
Export RTL を行って、IP にした。
Vitis HLS 2021.2 の axis2DMA4dwc IP を Vivado 2022.1 の cam_disp プロジェクトのディレクトリにある axis2DMA4dwc ディレクトリのファイルを削除して、コピー&ペーストした。
現在のブロック・デザインを示す。

Vivado で論理合成、インプリメンテーション、ビットストリームの生成を行った。
ホスト・パソコンのブラウザで http://192.168.3.35:9090/tree/my_project を表示した。
cam_disp.bit と cam_disp.hwh を削除した。
cam_disp/cam_disp.runs/impl_1/cam_disp_bd_wrapper.bit と cam_disp/cam_disp.gen/sources_1/bd/cam_disp_bd/hw_handoff/cam_disp_bd.hwh をアップロードした。
cam_disp_bd_wrapper.bit と cam_disp_bd.hwh の名前を cam_disp.bit と cam_disp.hwh に変更した。
cam_disp.ipynb を コピー & ペーストして、cam_disp_org.ipynb と名前を変更した。
Jupyte Notebook を実行していくと、カメラ画像を表示することはできた。
しかし、色がおかしい。左上のオレンジ色は私の T シャツなのだが、その色は水色だ。R と B が入れ替わっているのかな?

axis2DMA4dwc の AXI4 Master トランザクション波形を見ても、0x16f00000 番地からアクセスしているようだ。

ただし、画像を表示できるのは 1 回だけだった。再度、カメラ画像をキャプチャして、Jupyte Notebook に表示しようとしたらカーネルがリセットされてしまう。
axis2dma.register_map.CTRL = 0x1
sobel1.register_map.CTRL = 0x1
dma2axis31.register_map.CTRL = 0x1
cam_image = Image.fromarray(buffer3)
print("Image size: {}x{} pixels.".format(width, height))
plt.figure(figsize=(12, 10));
_ = plt.imshow(cam_image)
- 2022年08月30日 04:26 |
- PYNQ
-
| トラックバック:0
-
| コメント:0