ZYBO-Z7を用いたLチカ(PythonからFPGAのLEDを叩く)
ZYBO-Z7上でUbuntuが走るようになり、もう少し高級な言語で制御したくなったので、 Pythonの勉強も兼ねて PYNQ のコードから必要そうなところだけ抜き出してLチカを行った。
基本的には mmio.py
と同じことを、led.json
の設定を読み込んで実行するだけです。
下記のように led.json
では前回まで使用したGPIOのベースアドレス、サイズと
pg144 のp.10に記載されているレジスタ名とアドレスを記載します。
{ "baseaddr" : "0x41200000", "length": "0x8", "registars" : [ { "offset" : "0x0", "name" : "gpio", "rwtype" : "RW" }, { "offset" : "0x4", "name" : "tri", "rwtype" : "RW" } ] }
led.json
を元に生成したled
には、レジスタtri
と レジスタgpio
が作成されているので、
あとは、下記のように led.tri(0)
と led.gpio(1)
を実行することで、LD0
が点灯する。
import fpga # LED GPIOの設定を読み込み led = fpga.ip('led.json') # 3-state を出力(0) に設定 led.tri(0) # LD0 を ON led.gpio(1)
なお、PYNQのOverlayについては以前参加したPYNQ祭りのtodotaniさんの資料に記載されています。
www.slideshare.net
ソースコードは下記に置いています。 github.com