FPGAことはじめ(開発環境編) / Vivado on Ubuntu 20.04

投稿者: | 2021年1月17日

エンベデッドシステムスペシャリスト試験に合格しました!
とはいえ資格だけ持っていても、今の時代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と協調した処理ができるようになっています。

必要なもの

初学者ですが、とりあえずこれだけ準備しました。

入門書として名高い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-devsudo 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のインストール画面が現れるので、インストールをすすめる。

  • Vivadoを選択
    ※2019.2からXilinx SDKがVitisに統合されたようです。ZynqやMicroblazeを用いた開発ではVivadoではなくVitisを選択する必要があります
  • 無償で使えるVivado HL WebPACKを選択
  • インストール完了後、以下コマンドを実行
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を選択する

次にやること

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です