はじめに
Ultra96 v2 でロジックのハードウェア化にトライします。まずは、Ultra V2 に PYNQ 環境を作り、SSH と Jupyter Notebook でアクセスするところまで。
まずは、Xilinx のプロセッサーの概観です。-> Xilinx 製品情報
Getting started は、CPU を使っているだけで、FPGA っぽいことは全くしていない様子。FPGA が使えたらと思い方法を調べたところ以下の方法があるらしい。
-
PYNQ (Python for Zynq)
Python(Jupyter Notebook)ハードウェア化できる。JTAG で接続しなくてもよさそうで、お手軽な印象。 -
Vivado
生々しい感じでハードウェアを設計できる。ハードウェアエンジニア向けっぽい。 -
Vitis(SDSoC)
C/C++ で任意の処理をハードウェア化できる。お手軽かもしれない。
Tutorials
PYNQ を試してみる。
やってみる
ダウンロード
PYNQ - boards info のページを開く。
Community boards の Avnet Ultra96-V2: v2.5 PYNQ image(1,790,291,697 bytes) をダウンロードする。
ダウンロードがとても遅い。待っている間にドキュメントなどを読んだ。
展開するとこんな感じ。
$ unzip ultra96v2_v2.5.zip
$ ls -l ultra96*
-rw-r--r-- 1 root root 6604447744 10月 12 17:38 ultra96v2_v2.5.img
-rw-r--r-- 1 root root 1790291697 12月 22 21:54 ultra96v2_v2.5.zip
インストール
- SD カードに書き込み
$ sudo dd if=ultra96v2_v2.5.img of=/dev/sdc bs=1MB
6604+1 レコード入力
6604+1 レコード出力
6604447744 bytes (6.6 GB, 6.2 GiB) copied, 502.998 s, 13.1 MB/s
SD カードを抜き差しして、SD カードをマウント。
マウント先は、/media/user/root/ のつもり。
- WiFi 設定
$ wpa_passphrase your_ssid
passphrase
network={
ssid="your_ssid"
# psk="passphrase"
psk=0123456789abcdef0123456789abcdef0123456789abcdef
}
$ sudo vi /media/user/root/etc/wpa_supplicant.conf
network={
ssid="your_ssid"
psk=0123456789abcdef0123456789abcdef0123456789abcdef
}
$ sudo vi /media/user/root/etc/network/interfaces.d/wlan0
auto wlan0 # <-- 一行目に追加
iface wlan0 inet dhcp
wireless_mode managed
wireless_essid any
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
参考:Technooooootes - Ultra96v2 で PYNQ イメージを動かす
- 起動
SD カードを入れて電源スイッチ(SW4)をON。
- ログイン
DHCP サーバーのログを確認し、見慣れない MAC アドレスの IP アドレスを確認する。
うちのは、「F8:F0:05:xx:xx:xx」だった。
$ ssh xilinx@<ip address>
xilinx@192.168.***.***'s password:
Welcome to PYNQ Linux, based on Ubuntu 18.04 (GNU/Linux 4.19.0-xilinx-v2019.1 aarch64)
Last login: Sat Oct 12 01:30:36 2019
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
xilinx@pynq:~$
利用
- Jupyter Notebook にアクセス
ブラウザで以下にアクセスする。
http://<ip address>/
- 認証
パスワード欄に、xilinx を入力してログイン。
- サンプルコード
サンプルコードを動かしたり読んだりする。
まとめ
無事に Jupyter Notebook にアクセスできた!
16 GB の SD カードでは問題なかったけど、32 GB の SD カードだとうまく焼けなかった様子。