FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

yuki-sato.comの「LinuxからFPGAを使ってみる」をやってみる (ZedBoard版 #1)

ZedBoard上で動作するLinuxで、ZynqのPL部を制御する方法について調査していたところ、以下のページを発見した。

yuki-sato.com

Vivadoの立ち上げから、Linuxのビルド、そしてデバイスドライバの記述まで丁寧に解説してある。早速やってみよう。 このページでは対象としてZyboを使っているが、私はZyboを持っていないのでZedBoardに置き換えてやってみよう。

やりたいこと

  • ZedBoardのARM上でLinuxを動作させ、PL上に自分で作成したハードウェアを制御したい。
    • Vivadoでハードウェアプロジェクトの作成
    • カスタムハードウェアの追加
    • デバイスドライバの作成
    • ソフトウェアの記述

となるだろう。一つずつ、チュートリアルを見ながらやっていこう。

今回は、日記を執筆時点の最新ビルド環境であるVivado 2017.1を利用する。

Vivado 2017.1でZedBoardのハードウェアプロジェクトを作成する

まずはZedBoardで動作するハードウェアを作成しなければならないのだが、チュートリアルではZyboのプロジェクトを引っ張ってきている。

今回は、ZedBoardのプロジェクトが必要なので以下から取得してくる。

github.com

ただし、このプロジェクトはIPのバージョンなど2017.1には対応していないので、対応するバージョンに上げた手前味噌のリポジトリを利用しよう。

github.com

ビルドのVivado 2017.1でのプロジェクトのビルド方法は過去の日記を参照のこと。

adv7511のプロジェクトをビルドしてVivado 2017.1で開くと、以下のようになった。

f:id:msyksphinz:20170520014958p:plain

Project Settingから、IP Vendorの名前を"Digilent”に設定する。これは何の意味があるんだろう?

f:id:msyksphinz:20170520015014p:plain

Projectから、"Create and Package New IP" を選択する。

f:id:msyksphinz:20170520015026p:plain

IP作成ウィザードの開始

ここから、ZedBoardに接続されているLEDを制御するためのIPを作成する。

f:id:msyksphinz:20170520015036p:plain

AXI4のPeripheral Interfaceを作成するので、「Create AXI4 Peripheral」を選択する。

f:id:msyksphinz:20170520015046p:plain

IPの名前は適当に決めた。

f:id:msyksphinz:20170520015057p:plain

ポートの名前はS_AXI、TypeはAXI-Liteを利用することにする。データ幅は32bitだ。

f:id:msyksphinz:20170520015106p:plain

次のステップとして、「Edit IP」を選択し、ウィザードを終了する。

f:id:msyksphinz:20170520015116p:plain

関連記事

msyksphinz.hatenablog.com