LoginSignup
2
1

More than 3 years have passed since last update.

PYNQ > FIFO loopbackを含むDMA転送のBlock Design (Vivado v2019.1) > v2017.2の方法から変更

Last updated at Posted at 2020-07-18
動作環境
Windows 10 Pro (v1909) 
PYNQ-Z1 (Digilent) (以下、PYNQと表記)
Vivado v2019.1 (64-bit)

概要

  • DMAを使ったPS<->PLの転送を行うBlock Designを作成する
  • AXI DMAを使う
  • AXI FIFOを使ってループバックする
  • Tutorialに従うがVivado v2019.1になった変更に対応する
    • 旧: AXI Interconnect
    • 今回: AXI Smart Connect
    • 実際にはVivadoが自動でしてくれる。AXI Interconnectがなく、AXI Smart Connectがあるようになる。

Tutorial

Vivado v2019.1での操作

  • Part: cv7z020clg400-1
  • ZYNQ Processing System追加
  • ZYNQ Processing Systemダブルクリック
    • Presets > Apply Configuration
      • pynq_revC.tcl 読み込み (PYNQ-Z1用のプリセット)
    • PS-PL Configuration
      • M AXI GP0 interfaceチェック
        • ( AXI Non Secure Enablement > GP Master AXI Interface以下にある )
      • S AXI HP0 interfaceチェック
        • ( HP Slave AXI Interface 以下にある)
        • High performanceだそうな (要確認)

プリセット読み込み
コメント 2020-07-18 110405.png

図. M AXI GP0 interfaceチェック
コメント 2020-07-18 110635.png

図. S AXI HP0 interfaceチェック
コメント 2020-07-18 110605.png

  • AXI Direct Memory Access 追加
  • AXI4-Stream Data FIFO追加
  • Run Block Automation実行
    • 設定そのまま OK
  • Run Connection Automation実行
    • S_AXI_LITE選択
    • S_AXI_HP0選択
      • Master: /axi_dma_0/M_AXI_MM2S を選択
  • AXI4-Stream Data FIFOとAXI Direct Memory Accessを接続
    • S_AXIS <-> M_AXIS_MM2S
      • M_AXI_MM2Sではなく、M_AXIS_MM2S
    • M_AXIS <-> S_AXIS_S2MM

図. S_AXIS <-> M_AXIS_MM2S接続
コメント 2020-07-18 111143.png

図. M_AXIS <-> S_AXIS_S2MM接続
コメント 2020-07-18 111158.png

  • Run Connection Automation
    • M_AXI_S2MM チェック
    • M_AXI_SG チェック
    • s_axix_aclkチェック

あとは「Create HDL Wrapper」をしてRun Synthesisを実施して、それ以降を逐次実施するとbistreamが完成する。
Core i7-6700K 4.00GHzで15分はかかる。

Warningがいくつか出る。このあたりは今後学習する項目。

完成したBlock Design

コメント 2020-07-18 112321.png

今後

PYNQでDMA関連の処理を実装する予定。

問題はallocateがPYNQのv2.5でないと動かないこと。
PYNQのバージョンを上げるか、別の方法を探すことになる。

DigilentにあるPYNQ-Z1 Imageはv2.4?。

関連

情報整理で見つけた気になる記事。AXI DMAでなくBRAMを使う。

その後 (2020-08-08)

上記で生成したBlock Designではうまく動作しなかった。
代わりに下記を参考にしたものではうまく動作した。

https://github.com/Xilinx/PYNQ_Workshop/blob/master/Session_4/6_dma_tutorial.ipynb
https://github.com/Xilinx/PYNQ_Workshop/tree/master/Session_4/bitstream

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1