PYNQ-Z1 > はまった > 自作のbitstreamでLEDを点灯できない > VivadoがRun Connection AutomationのときにLEDのGPIOをOutportからInportに変更する


動作環境
Windows 10 Pro (v1909) 
PYNQ-Z1 (Digilent) (以下、PYNQと表記)
Vivado v2019.1 (64-bit)

概要

  • Vivadoでbitstreamを作成
  • LEDを点灯するだけのもの
    • AXI-GPIOで作成
  • Outportにしていたが、VivadoがInportに変更をしていたため失敗していた

Block Designとポート設定

Block Design

ポート設定。ここがAll Inputsとなっていたため、失敗していた。
Run Connection Automationを実行したときにAll Inputsに強制的に変更される。

Clear Board Parameterを実行して、All InputsからAll Outputsに再設定した。

I/Oポート設定

I/O Ports設定。

https://reference.digilentinc.com/reference/programmable-logic/pynq-z1/reference-manual
の12 Basic I/Oを参考にした。

Jupyter Notebook

Block DesignのtclファイルとBitstreamファイルをアップロードした。
下記でLEDが点灯することを確認した。

#from pynq.overlays.base import BaseOverlay
from pynq import Overlay
from pynq import PL

OL = Overlay("/home/xilinx/pynq/overlays/base/LEDs_2020-06-07_1351.bit")
OL.download()

from pynq import MMIO
mmio=MMIO(int(PL.ip_dict["leds"]["phys_addr"]), 4, True)
mmio.write(0,10)

LED点灯の別の方法

下記のようにしてLEDを点灯できるようだ。

leds = [OL.leds[index] for index in range(4)]
leds[0].off()
leds[1].on()
leds[2].on()

情報感謝です。