ARTY Z7をPYNQの環境で動かして遊んでみました

ARTY Z7で「PYNQ」の環境を動かせるとのことなので、どんなものかお試しで挑戦してみました。

 

PYNQとは?

ざっくり簡単に言うと、ArmプロセッサとFPGAが組み合わさったザイリンクス社のSoC「Zynq」を簡単に扱えるようにするオープンソースプロジェクトです。

FPGAの開発に必要なVerilogやVHDLといったハードウェア記述言語での設計を意識することなく、Pythonの言語でZynqを制御するアプリケーションが作れる環境のようです。

PYNQプロジェクトのサイト:http://www.pynq.io

 

・準備

ARTY Z7は「PYNQ-Z1」というPYNQ対応ボードとほぼ同じ仕様なので、PYNQ-Z1用の環境がそのまま使えるようです。

PYNQプロジェクトのサイトからPYNQ-Z1用のイメージファイルがダウンロードできます。

http://www.pynq.io/board.html

・microSDカードにイメージファイルを書き込み&LANケーブル接続

  1. Raspberry pi用のLinuxイメージをSDカードに書き込むのと同じ要領で、ダウンロードしたイメージファイルを書き込みます
  2. 書き込んだSDカードをボードにセットして、SDカードから起動するようにジャンパーピンを設定
  3. LANケーブルで自身のLAN環境に接続(またはPCのLANコネクタに直接続)すれば準備完了です

 

・早速使ってみる

電源を入れると、ボード上でPYNQ環境のLinuxが起動します。

同じネットワーク内にあるPCのWebブラウザからボードのIPアドレスにアクセスすると、「Jupyter Notebook」の画面が開きます。

PythonやJupyter Notebookを使った経験はほとんどなかったのですが、ブラウザだけでZynq搭載ボードのプログラミングが簡単にできるのはちょっと感動しました。

今回はボード上のLEDを光らせてみただけですが、Arduinoのように簡単なAPIでZynqのロジック部のI/Oなどが制御できます。

以前やってみたVGAの画面出力などもこのPYNQ環境でできるかどうかやってみたいですね。

 

・おまけ(iPadからの操作)

Webブラウザからボードにアクセスするということは、「iPad等からでも操作できるのでは?」とふと思い、やってみたら出来ました。

実用的かどうかはわかりませんが、Jupyter Notebookが動作するブラウザであればタブレット端末でもPythonでPYNQ対応ボードの制御ができそうです。