- 1回目: 開発環境の準備 <--- 今回の内容
- 2回目: Hello Worldプロジェクト
- 3回目: PSのGPIOでLチカ
- 4回目: PLのAXI GPIOでPSからLチカ
- 5回目: PLだけでLチカ
- 6回目: 自作IPでLチカ
- 7回目: ブートイメージを作る
- 8回目: Linux起動する
- 9回目: Linuxカーネルを少しカスタマイズする
- 10回目: LinuxのRootFSをカスタマイズする / PythonでHello World
- 11回目: LinuxユーザアプリケーションでLチカ
- 12回目: LinuxカーネルモジュールでLチカ
- 13回目: LAN(Ethernet 0)を使う
- 14回目: Linuxユーザアプリをデバッグする / RootFSに取り込む
- 15回目: Linux起動時にアプリケーションを自動実行させる
- 16回目: Linuxから自作IPをUIOで制御する
- 17回目: Linuxで自作IPのデバイスドライバを作る
- 18回目: IoT化してスマホからLチカ
この記事について
2018年になったので、何か新しいことをやろうと思い、ZYBO(Z7-20)を購入しました。自分のメモ代わりにやったことをまとめていこうと思います。初心者用のガイド記事ではなく、初心者によるガイド記事です。
まずは、開発環境の準備です。
簡単な事前説明
こんな記事を見ているということは、既に事前知識がある程度あると思うのですが、簡単に用語説明です。
- Zynq
- Xilinxから販売されているFPGA SoC。Programmable Logic部(FPGA)とProcessing System部(CPUと、UART/GPIOなどのペリフェラルIP) から成る
- Zybo
- Digilentから販売されている、Zynqを搭載した開発ボード
- Zybo Z7-20
- ZYNQ-7020を搭載した開発用ボード。CPUはCortex-A9 x 2個
- Vivado Design Suite
- 複数のツールから構成される、Xilinxの設計開発環境。主に使うのは、以下の2つ
- Vivado: RTLを書いたり、配置配線をする。これでハードウェアを作る
- Xilinx SDK: Vivadoが吐き出したハードウェア情報を基に、CPU上で動作するソフトウェアを作る (EclipseベースのIDE)
環境
- 開発用PC: Windows 10 64-bit
- Vivado 2017.4 WebPACKライセンス
- Xilinx SDK 2017.4
- ターゲットボード: ZYBO (Z7-20)
- DIGILENT (http://store.digilentinc.com/zybo-z7-zynq-7000-arm-fpga-soc-development-board/)
- せっかくなのでケチらずに「Zybo Z7-20 with SDSoC Voucher」にしました
- SDSoCは、C/C++/OpenCLで開発が出来るツールのようです。直近は使いません。ただし、無印の「Zybo Z7-20」を購入した時に、Vivado WebPackのライセンスがついてくるかは不明
- 秋月でも購入できます。秋月だと、SDSoCのライセンス付きのようです
- DIGILENT (http://store.digilentinc.com/zybo-z7-zynq-7000-arm-fpga-soc-development-board/)
購入後の確認
ボードの動作確認
購入時点で、動作確認用のプログラムが書き込まれています。ジャンパやスイッチもデフォルトでOKなのですが、念のため以下設定を確認してください。
- JP5: QSPI (QSPIからコンフィギュレーションする)
- JP6: VV5VD-USB (電源はUSB給電)
HDMI TXにHDMIケーブルを接続する。J12(電源スイッチの下)のマイクロUSB端子にUSBケーブルを接続する。これは電源供給のためなので、USBチャージャでもPCでもOK。電源スイッチをONにして、HDMIを接続した先のディスプレイに以下のように出力されればOKです。
動作確認が出来たら、インストール前にUSBケーブルは抜いておいてください
ライセンス番号の書かれたバウチャーを確認する
以下のような紙が同梱されているはずです。ここに、ライセンス番号が記載されています。数字4桁、ハイフン、数字6桁、ハイフン、英語4桁、ハイフン、数字9桁。
バウチャーの見た目や配布方法は変わるかもしれませんが、ライセンス付きを買ったにもかかわらず、ライセンス情報がどこにもなかったら、販売元に確認してください。
Vivadoのインストール
ツールのダウンロード
Xilinxのサイト(https://japan.xilinx.com/support/download.html )から、開発ツール(Vivado Design Suite)をダウンロードします。ダウンロードしようとしたら、ユーザ登録や会社情報の入力を求められると思いますが、素直に入力しましょう。個人の場合、会社名は「Individual」で良いと思います。ウェブインストーラとイメージ全部入り(16GByte)がありますが、ひとまずイメージ全部入りがおすすめです。
追記(2018/1/23)
将来的にSDSoCを使用する可能性がある方は、下記インストーラを使用して、SDSoCもまとめてインストールした方が楽だと思います。Vivado、Xilinx SDK、Vivadl HLSに加えて、SDSoCもセットになったインストーラです。
https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/sdx-development-environments.html
ライセンスのアクティベート
ダウンロードを待っている間にでも、ライセンスのアクティベートを行います。まず、Xilinxのサイト(http://www.xilinx.com/getlicense )に行きます。再度ログインを求められて、以下のようなページに飛ばされます。
「enter voucher code」の所に、先ほど確認したライセンスをハイフン付きで入力して「Redeem Now」をクリックします。その後、Certificate Based Licensesのリストから「Vivado Design Suite: HL WebPACK...」をチェックします。そして、「Generate Node-Locked License」をクリックします。すると、画面が変わり、ライセンスファイルをメールしたという旨のメッセージが表示されます。
1分後くらいにメールが届き、ライセンスファイル(Xilinx.lic)が添付されているので、それをダウンロードしておきます。次に、Vivado License Managerを起動します。Windowsだと、基本的にツールは全部、スタートメニュー->Xilinx Design Toolsの下にあります。
Load Licenseを選択し、Copy Licenseをクリックします。そして、先ほど入手したラインセンスファイル(Xilinx.lic)を選択すれば、ライセンス設定が完了します。
SDSoCもインストールする場合
SDSoCを使うレベルにまで達せるか分かりませんが、せっかくライセンス付きを買ったので、こちらのライセンスも有効にしようと思います。Certificate Based Licensesのリストから「Vivado Design Suite: HL WebPACK...」と「SDSoC Environment,...」をチェックしてください。この場合は、固定のノード(パソコン)でしかツールを起動できないようになります。そのため、パソコンを特定するための情報を設定する必要があります。下記の図はハードディスクのシリアル番号にする場合の例です。Host ID TypeにDisk Serial Numberを選択します。入力するシリアル番号は、コマンドプロンプトからvol c:
で確認できます。後は、先ほどと同じです。
ライセンスの対象製品と有効期限について
何故か分かりませんが、Certificate Based Licenses上では、Vivado WebPACKは2015かそれ以前、SDSoCが評価期間60日、のように表示されていました。しかし、実際には以下のように、SDSoCのライセンスは無期限だし、Vivado 2017.4に対してもライセンスを使うことが出来ています。ただし、2019.1以降のバージョンに対しては使えないっぽいです。
インストール
全イメージダウンロードしたとして説明します。ダウンロードしたXilinx_Vivado_SDK_2017.4_1216_1.tar.gzを解凍してxsetup.exeを実行します。基本的には全部デフォルト設定でOKです。エディションは「Vivado HL WebPACK」を選択します。インストール内容で、SDKもちゃんと選択されていることを確認してください(デフォルトでチェックついていると思いますが)。
Vivadoを起動してみる
インストール後、デスクトップにVivadoのアイコンが作られるので、ダブルクリックして起動します。以下のような画面が出ればOKです。Vivado HLSのアイコンも同時に作られますが、直近は使わないので無視してOKです。(Vivado HLSはC等の高級言語からハードウェアを作る、高位合成ツールというものらしいです)
ZYBOボードファイルの取得
今回は、ZYBOのボードを使用して開発を行います。そのため、ボード固有の接続情報等が必要になります。例えば、どのピンがLEDにつながっているか、等です。LEDくらいなら自分で設定することもできそうですが、DDRなんかは自分でやるのは厳しいです。そこらへんの情報をxmlで定義してあるものがボードファイルです。クロック設定なんかも入っていると思います。ZYBOはDigilentから販売されているため、DigilentのGithub(https://github.com/Digilent/vivado-boards/archive/master.zip )から取得できます。
標準のインストール先だと、ボードファイルはC:\Xilinx\Vivado\2017.4\data\boards\board_files
に保存されています。先ほどダウンロードしたファイルを解凍し、new
というフォルダの中にあるboard_files
をコピーします。すると、後でVivado上でZYBOボードを使った開発が出来るようになります。
参考
おわりに
この記事は、組み込みソフトウェアエンジニアである自分がZynqを勉強した形跡です。ZynqもFPGAも素人です。調べながらやった内容を、自分のメモ代わりにほぼノータイムで、推敲なしに記載しています。そのため、間違いがあったり、後から記事の内容が修正される可能性がありますので、ご容赦ください。もしも間違っている内容等ありましたら、ぜひご指摘ください。