この記事は数年前に書いた記事そのままです。いまでは ISE を使うという選択肢はありませんね。いずれ、完全 Vivado 版で書き直したいと思っています。
2014年11月15日。ついに念願の本を出版しました。そして、2015年2月1日には重版もされました。一時はアマゾンのコンピュータ関係で1位を獲得したこともありました。現在では40位前後を行き来しており、思った以上に順調に売れています。
僕がこの本を書くにあたって、注意した点をちょっと書こうと思います。裏話や技術的な点については、改めて別途書きます。
ストリー性を重視
この本は連載でもなく完全書下ろしとなっています。本の目次には FPGA マガジン No.1 に加筆修正と書かれていますが、実際にはFPGA マガジンが出版開始される前にこの本はほぼ完成していました。理由は定かでないのですが、とにかく出版は遅れ、あわただしくVivado の項を追加することになり、足掛け3年もかかりましたが、なんとか出版することができました。結果としては Vivado の章を追加することができたのでよかったのではないかと思っています。
構成としては 「1.4 本書の章構成」に詳しいのですががザクッと書くと2章以降は次のようになります。
- 第2章 まずはZedBoardを動かしてみよう
ZedBoard をとにかく使ってみることに焦点 - 第3章 開発ツールPlanAheadのインストールと実践
例をあげ手順とおりやれば一通りの開発が経験 - 第4章 次世代ツール Vivado を使ってみよう
- 第5章 Xylon社のリファレンス・デザインを使う
- 第6章 Linux のカスタマイズ手順
Zynq Linux のディープな世界へ- Zynq の初期化の詳細
- Linux の再構築
- デバイス・ツリー
- クロスコンパイル
- root ファイル・システムの構築
- 第7章 ハードウェア・ロジックの追加
- 第8章 AXI バスの概要とIPコアのインタフェース
- 第9章 IDCT 処理をハードウェア化して高速化する
本を最初から試していくと、最初は深い知識を必要とせずに Linux が立ち上がり、FPGA とは関連のないところで、Linux を通して LED チカチカができるようになります。Vivado の項では Linux とは関係なく FPGA だけで、LED チカチカができようになります。そして、Linux の詳細に入っていき、最後は AXI バスを理解してIDCT の IP コアを作る。と、段階的に理解できるように工夫したつもりです。
特にデバイスツリーに関しては文献も少なく、書籍として残せたのには意味があったのではないかと思っています。
成功のコツは先人の成功したその通りに実行すること(写経的実行)
PlanAhead は 14.7 で Windows 7 対応で終了のようで、今後はVivado が中心になっていくでしょう。しかし、Vivado のコンセプトは PlanAhead を引き継いだ形となっているので、是非、上の手順で実行してみてほしいと思います。
体験することが習得の一番の早道だと信じます。
実行時のコツはツールのバージョンをすべて本と合わせ、順番も含めてその通りに実行すること。バージョンをちょっと変えたり、IP コアをちょっと変えたり、順番を変えない方がよいでしょう。"はまる"と脱出するのにはそれなりのスキルが必要になります。
はまらずに最後まで実行できることが重要。
おそらく、今後は Yocto なり SDSoC なりで"詳細な理解を必要とせずに"システムが出来上がる環境が整ってくるでしょう。それはそれで市場に対応する一つの手ではありますが、「普通のやつらの上を行」きたい人は、Linux の詳細であったり FPGA の開発の詳細であったりの、中身を深く理解する必要があると思います。
この本がそういった"上を目指す技術者"の一助になれば幸いです。
Yocto を使う
興味のある人は Yocto を使った本サイトの記事を参考にしてください。