書籍概要

FPGAボードで学ぶ組込みシステム開発入門
Altera編~

著者
発売日
更新日

概要

市販されている数種類のFPGAボード(たとえばTerasic社のDE0,1万1,000円前後)を例として,FPGAの基礎から応用(7セグLEDの駆動回路からLinuxの搭載まで)を解説します。紹介しているボード類を使えば,電源やケーブル類も付属しており,半田付けやブレッドボードは不要です。解説されている技術やノウハウは,設計の現場でも役に立つものであり,初心者FPGAエンジニア向けのハンドブックにもなり得ます。

こんな方におすすめ

  • FPGAに興味はあるが,なかなか踏み出せなかった方
  • ハード・ソフトを含めて組み込み技術全般を習得したい方
  • PICマイコンなどの経験があり,もう一歩踏み込んでみたい方

目次

第1章 FPGAの内部といろいろなFPGAボード

  • 1-1 FPGAとは
  • コラムA FPGAってどんなCPUですか?
  • 1-2 各種FPGAボードの紹介
  • コラムB その気になったらボードを発注
  • 1-3 回路情報のダウンロード方法
  • 1-4 第1章のまとめ

第2章 FPGAの回路設計を体験

  • 2-1 開発ソフトQuartus II
  • 2-2 回路図による回路設計
  • 2-3 コンフィグレーションと回路の拡張
  • コラムC 各操作の目的とアウトプットとは何か? それを意識して操作しよう
  • 2-4 HDLによる回路設計
  • 2-5 第2章のまとめ

第3章 もう少し進んだ回路設計

  • 3-1 カウンタを用いた時計
  • 3-2 状態遷移を回路で実現
  • 3-3 時刻合わせ機能付き時計の設計
  • 3-4 第3章のまとめ
  • コラムD 他のボードで試すときの変更点概要

第4章 波形観測による回路デバッグ

  • 4-1 ロジックアナライザとは
  • 4-2 SignalTap IIを組み込んで波形観測
  • 4-3 第4章のまとめ
  • コラムE ピンアサイン・ファイルを自分なりにアレンジ

第5章 FPGA内蔵CPUを試す

  • 5-1 Nios IIプロセッサとは
  • 5-2 Nios IIシステムの構築
  • 5-3 プログラムの作成と実行
  • 5-4 第5章のまとめ
  • コラムF プログラムをROM化する

第6章 自作周辺回路の接続

  • 6-1 Nios IIのバスに付いて
  • 6-2 自作周辺回路の接続方法
  • コラムG SOPC Builderは「一方通行」のツール?
  • 6-3 バス形式による動作の違い
  • 6-4 第6章のまとめ

第7章 いろいろな周辺回路を設計

  • 7-1 キーボード&マウス接続回路
  • 7-2 画面への文字表示回路
  • 7-3 第7章のまとめ
  • コラムH 開発ソフトウェアでトラブルが発生したら生成ファイルをバッサリ捨てる

第8章 メモリコントローラの設計

  • 8-1 SDRAMの制御仕様
  • 8-2 SDRAMコントローラの設計
  • コラムI タイミング解析も必要
  • 8-3 第8章のまとめ

第9章 μClinuxの搭載

  • 9-1 μClinuxと開発環境の構築
  • 9-2 カーネルのビルドとμClinuxの起動
  • 9-3 アプリケーションの作成
  • 9-4 デバイスドライバの組込みとテスト
  • 9-5 第9章のまとめ

Appendix I 開発環境の構築

  • I-1 FPGA開発ソフトウェアのインストール
  • I-2 USB-Blasterドライバのインストール
  • I-3 仮想化ソフトウェアとLinuxのインストール

Appendix II ハードウェア記述言語「Verilog HDL」の読み方

  • II-1 回路記述の構造と宣言
  • II-2 定数の表現と演算子
  • II-3 組み合わせ回路の記述
  • II-4 if文とcase文
  • II-5 FF(フリップフロップ)を含む回路の記述
  • II-6 下位階層の接続
  • II-7 補足

Appendix III 新しいシステム統合ツールQsys

  • III-1 SOPC Builderとの相違点概略
  • III-2 クロック,リセット,バスの接続とアドレスの修正
  • III-3 自作周辺回路の接続
  • III-4 後工程での変更点

サポート

ダウンロード

DE0とDE1用の設計データ

本書で解説している設計データです。2種類のシステム統合ツール(SOPC BuilderとQsys)用と,2種類のFPGAボード(Terasic社のDE0とDE1)用のデータを用意してあります。ダウンロードしてご使用ください。

SOPC Builder版(Quartus II Web Edition v11.0で作成)

本書を初めて読む方は,こちらをお使いください。その際に使用する開発ソフトウェアはv11.0を使うことをお勧めします。Altera社のサイトでは旧バージョンをダウンロードでき,新旧のバージョンを混在してインストールすることも可能です。

Qsys版(Quartus II Web Edition v13.0で作成)

開発ソフトウェアのQuartus IIは,v13.0からSOPC Builderが廃止になりQsysだけになりました。SOPC Builderの操作に慣れた方で,Qsysを使ってみたい方は,こちらをお使いください。本書のAppendix IIIではQsysについて簡単に説明していますが,これの補足も用意してあります。

μClinux関連データ

本書で構築しているμClinux関連のデータです。本書第1刷および第2刷で示したダウンロード先のサイトが閉鎖されたようなので,本サポートページで公開します。解凍方法などは本書を参考にしてください。なお公開におけるライセンスはGPLです。

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2013年6月12日更新)

P.186 2行目

16ビットの読み書きでも2回のアクセスを行うので~
16ビットの読み出しでも2回のアクセスを行うので~

P.188 見出し

6-2-1 オリジナルのPIOを作成し7セグメント・デコーダとスイッチを接続
6-2-1 オリジナルのPIOを作成し7セグメントLEDとスイッチを接続

P.246 図7-18(b) 表示終了部分

vdispen波形の1と0が逆でした。正しい波形はこちらをご参照ください。

zu7-18b.jpg

P.247 リスト7-4 VGA文字表示回路(vga.v)内のコメント


/* HCNとVCNTを文字とドットのカウンタとして分けて考える */


/* HCNTとVCNTを文字とドットのカウンタとして分けて考える */

P.327 図9-15 LEDデバイスドライバの追加

以下のように手順を1つ追加します。筆者の環境では確認できなかったのですが,このようにしないとuClinux起動時に停止してしまうとのご報告をいただきました。この場を借りてお礼申し上げます。

  • 「図9-15(b) Device Driversを選択」の画面で、「Enable loadable module support」をスペースキーで選択し[*]にしておく
  • さらにEnterキーで下階層に入り、「Module unloading」「Forced module unloading」をスペースキーで選択して[*]にする

    uclinux.jpg

  • Exitで図9-15(b)の画面に戻り、これ以降は本文に示した通り「Device Drivers」選択から実施

P.363 図II-11(b) イネーブル,桁上げ出力付き10進カウンタ の吹き出し説明

このifに対するesleはない
このifに対するelseはない

商品一覧