エンベデッドシステムスペシャリスト試験に合格しました!
とはいえ資格だけ持っていても、今の時代FPGAを扱えないと業界で生き残れないですよね(要出典)。
ということでZynqでも触ってみようと思いPYNQ-Z1を購入しました。
Contents
Zynqとは
ZynqとはXilinx社が製造しているFPGAの1種で、ARMコアとFPGAが1チップに搭載されているSoCです。
Xilinx FPGAではFPGA上にMicroBlazeというCPUを実装することも可能です。
しかし、FPGA部は内部クロックが高くない(〜数百MHz)ため、高度な処理を行うことは出来ません。
ZynqではARM Cortex-A9が2コア搭載されているので、ARMコアでLinuxを動かしつつCPUで出来ないことだけをFPGAに任せることが可能です。
当然、Linux無しでベアメタルで動作させることも可能です。
PYNQではZynq上にUbuntu+Python環境を用意することができ、PythonでFPGAと協調した処理ができるようになっています。
必要なもの
初学者ですが、とりあえずこれだけ準備しました。
- PYNQ-Z1 (購入ページ:秋月電子)
- 12V1A以上のACアダプタ(PCからのUSB給電も可能だが、将来的に電流不足になる可能性あり)
- WindowsまたはLinuxのPC (Macは開発環境が用意されていない)
- FPGAプログラミング大全 Xilinx編 第2版
入門書として名高いFPGAプログラミング大全ですが、第2版が1月30日に発売されます。
FPGAの開発環境は移り変わりが激しいので、いらないところで躓かないためにも第2版を購入したほうが良いでしょう。
(私は去年の12月に初版を買ってしまいました…)
なお、この書籍ではZynqについては説明されていますが、PYNQのPython環境については言及されていないので注意。
あくまでFPGAの書籍です。
Vivadoのインストール
Ubuntu 20.04に執筆時点で最新のVivado 2020.2をインストールする。
依存モジュールのインストール
Ubuntu 20.04だとlibtinfo6がデフォルトになっているようなので、バージョン5を指定してインストール。
sudo apt install -y libncurses5 libncurses5-dev libncursesw5-dev
sudo apt install -y libtinfo5 libc6-dev-i386
※ libc6-dev-i386がないとHLSでエラーが出ることがある。
※ libncurses5を入れないとgenerating installed device listの表示で固まる
Vivadoのインストール
ダウンロードページからVivadoをダウンロードする。
「ザイリンクス統合インストーラー 2020.2: Linux 用自己解凍型ウェブ インストーラー」をダウンロード後、下記コマンドを実行。
chmod +x Xilinx_Unified_2020.2_1118_1232_Lin64.bin
sudo ./Xilinx_Unified_2020.2_1118_1232_Lin64.bin
GUIのインストール画面が現れるので、インストールをすすめる。
echo "source /tools/Xilinx/Vivado/2020.2/settings64.sh" >> ~/.bashrc
echo "source /tools/Xilinx/Vitis_HLS/2020.2/settings64.sh" >> ~/.bashrc
source ~/.bashrc
Cable driverのインストール
LinuxではCable driverのインストールを別途実行する必要がある。
cd /tools/Xilinx/Vivado/2020.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers
実行後、PYNQにつながっているUSBは一度抜いて挿し直す。
ボードファイルの追加
このページのリンクからboard fileをダウンロードし、/tools/Xilinx/Vivado/2020.2/data/boards/board_filesに展開する。
上記リンクのドキュメントにかかれているディレクトリだと認識されないので注意。
※2021.1ではインストール時board_filesディレクトリが存在しないが、mkdirで作成すれば正常に認識される。
cd ~ wget https://github.com/cathalmccabe/pynq-z1_board_files/raw/master/pynq-z1.zip
cd /tools/Xilinx/Vivado/2020.2/data/boards/board_files
sudo unzip ~/pynq-z1.zip
正しく作業できれば、Vivadoのプロジェクト作成画面でPYNQが選択可能になる。
XDCファイル
FPGAのI/Oピンをどこに繋げるかを記述するファイル。
documentページのBoard Settings -> XDC constraints fileからダウンロード。
回路図も公開されているので自分で書くことも可能。
あとはFPGAプログラミング大全に書かれている内容をなぞって行けば良い。
その他
‘sys/cdefs.h’ file not found
ERROR: [HLS 207-812] 'sys/cdefs.h' file not found: /usr/include/features.h:461:12
libc6-dev-i386をインストールしないとSynthesisでHLS呼び出し時にエラーが出た。
Export bitstream to Vitis
Vivadoで生成したbitstreamを用いてVitisのプロジェクトを作成する。以下のページを参考。
※include bitstreamを選択する
次にやること
ロボットと電子工作とプログラミング!
女の子は甘いもので出来てる?