PYNQ-Z1全然触っていませんでした。。。

前にPYNQ-Z1を始めますという記事を書いたんですが、
それ以降全然PYNQを触っていませんでした。(時間がなかったというのはただの言い訳)

そうこうしているうちに転職したりして、手元にWindowsPCがなくなっちゃったりしたので、
心機一転Macで開発していくことを書くことにしました。

ただFPGAプログラミング大全 Xilinx編とか買ったりしてみたんですが、
開発ツールがWindowsかLinuxしかないというね。。。
これは後で何とかするとして、とりあえずPYNQをPYNQらしく使うことから始めようかと。

それではセットアップ。

またセットアップしちゃいます。Macで。

このページは押さえておいた方がいいですね。
PYNQ - Python productivity for Zynq - Home
ここのGetting Startedを読むととりあえずのことはできるようになっています。

イメージをダウンロード。

思った通りイメージが新しくなっていますね。2018/03/16時点で2018/2/21 Releaseでした。
1.2GBあるので、コーヒーでも飲みながら待ちます。:coffee:
ファイル名はpynq_z1_v2.1.img.zipでした。

イメージをmicroSDカードに書き込む。

ダウンロードしたイメージをunzipして、microSDカードに書き込みます。
前も書きましたがmicroSDはFAT32でフォーマットする必要があります。手順は

  1. diskutilでmicroSDのフォーマットをする。ディスクユーティリティで見えてないパーティションもあるので要注意。
$ diskutil list # デバイスファイルを確認。external, physicalって書いてあると思う。
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.6 GB    disk3
   1:                 DOS_FAT_32 UNTITLED                104.9 MB   disk3s1
   2:                      Linux                         15.5 GB    disk3s2
# disk3s2がディスクユーティリティでは見えてなかった。

$ diskutil eraseDisk FAT32 PYNQ MBR /dev/disk3 # PYNQとか付けてもあとで上書きされる。
Started erase on disk3
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk3s1 as MS-DOS (FAT32) with name PYNQ
512 bytes per physical sector
/dev/rdisk3s1: 30518128 sectors in 1907383 FAT32 clusters (8192 bytes/cluster)
bps=512 spc=16 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=2 drv=0x80 bsec=30547966 bspf=14902 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk3

2. ddコマンドでイメージを書き込む。

デバイスファイルが/dev/disk3の時
diskutil unmountDisk /dev/disk3
$ sudo dd bs=1m if=pynq_z1_v2.1.img of=/dev/rdisk3 # disk3s1とかしてハマった。。。rについては後述。
Password:
4719+1 records in
4719+1 records out
4948463616 bytes transferred in 461.288801 secs (10727474 bytes/sec)

また時間がかかるのでドーナツでも食べながら待ちます。:doughnut:
ちなみにddする時に/dev/disk3s1を/dev/rdsik3にすると早くなるらしい。知らなかった。
以下はdisk3(rなし)でやった結果。

rなしでdd実行
sudo dd bs=1m if=pynq_z1_v2.1.img of=/dev/disk3
4719+1 records in
4719+1 records out
4948463616 bytes transferred in 653.400986 secs (7573395 bytes/sec)

まぁ確かに早いといえば早い。。か。。。約30%減。

ボードのセットアップ。

ジャンパーピンとかなんとかのセットアップをします。
詳細はGetting Startedを参照。
ただし、この日のためにACアダプタを買ったので、
JP5/PowerはUSBではなくて、REGにしています。
PYNQで使えるACアダプタのコネクタ形状は、外径5.5mm/内径2.1mmみたいです。(これがわからなくて苦労した。)

xilinxのサイトには7V-15Vって書いてったので、12V1Aのものを買ってみました。
ACアダプター 12V 1A スイッチング式 最大出力12W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品
今見たらセールで680円になってる・・・。800円で買ったのに。。。

あとはまずシリアル接続をしてみるので、Ethernetはあとでつなぎます。逆にUSBは繋いでおきます。電源はアダプタだけど。

電源を入れる。

ここまで準備出来たら電源ONです。
起動するとLD13が赤く光ったり、LD12が緑に光ったりします。
その後はLD4と5が光ったり、LD0-3がチカチカしたりして、LD0-3が点灯したら起動OKです。

シリアル接続で見てみる。

macでserial接続する時はscreenコマンドを使います。
Getting StartedのOpening a USB Serial Terminalに色々書いてあります。

$ ls -1 /dev/tty.usbserial*
/dev/tty.usbserial-00001214A
/dev/tty.usbserial-00001214B # こちらを使います。名前は環境により異なります
$ screen /dev/tty.usbserial-00001214B 115200 # ボーレートは115200です。
# 一回enterを押すとプロンプトが返ってきます。
xilinx@pynq:~$ 

screenコマンドを終了するときは、control + a -> kのあと、
Really kill this window [y/n]と聞かれるのでyで答えます。
あとこの状態でsudo rebootをすると起動状況が見えます。デフォルトのパスワードはそのままxilinxです。

前はあったupdate_pynq.shがなくなっています。。。
一体どうやってupdateすれば。。。

ネットワークに繋ぐ。

ネットワークに繋がないとJupyter Notebookに繋がらないので、ethernetに繋ぎます。
なぜこれの前にシリアル接続をするかというと、DHCPでどのIPが取ったのかわからないからです。

ethernetを繋いだらifconfigを実行して、IPアドレスを確認してください。
そうすれば、PYNQにどのIPアドレスが割り振られたかわかると思います。

Jupyter Notebookにアクセスする。

ブラウザでhttp://<さっき調べたIPアドレス>:9090にアクセスすると、
ログイン画面が表示されます。デフォルトのパスワードは先程同様xilinxです。

上位階層にWelcome to Pynq.ipynbなるものがあって、
まずはgetting_startedから始めたら良いのかなと思うので、今度はそれをやっていこうかと思います。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.