Last Update 2024/02/27

フリーのCPUコアNios II/eと高速ロジックで七変化
FPGAスタータ・キットで初体験!オリジナル・マイコン作り
ご注意:当書籍にはFPGA基板は付属しておりません.  FPGA基板DE0は,ソリトンウェーブで販売しています.

岩田 利王 著
B5判 336ページ
はがき1枚付き
定価7,040円(税込)
JAN9784789848190
2013年5月1日発行
[品切れ重版未定→新版移行2023.8.16] FPGAスタータ・キットで初体験!オリジナル・マイコン作り
こちらの商品は品切れ重版未定となりました.新版の『FPGAスタータ・キットで初体験!オリジナル・マイコン作り【オンデマンド版】』をお求めください.
 本書は,オリジナル・マイコンというよりも,FPGA/Nios IIマイコン・システム設計の入門書です.低価格で高性能なFPGAボードDE0を使用して,PWM制御システムと動画像処理システムの設計方法を詳しく解説しています.
 それぞれの動作を収録した動画をhttps://www.cqpub.co.jp/toragi/nios2/movies/movie.htmで公開しています.これからSOC(System On Chip)に取り組まれる方の最初の足掛かりとして,魅力的な内容と言えるでしょう.

ご注意:当書籍にはFPGA基板は付属しておりません.
 FPGA基板DE0は,ソリトンウェーブで販売しています.

目次


第1部 PWM制御システム編

第1章 PWM発生器1個をFPGAに実装して動かす(1日目)
Quartus IIでプロジェクトを生成する
PWMモジュールをVerilog HDLで書く
Pin Plannerで入出力ピンを割り当てる
Start Compilationボタンでコンパイル
Programmerボタンでプログラム
右端の緑色LEDがゆっくり点滅しているのを確認
補足1:Verilog HDLで記述したPWM回路の詳細

第2章 Nios IIを使って効率良く設計を進める(2日目)
ロジックをつなぐだけの設計には限界が.やはりマイコンも必要
Qsysを使ってNios IIマイコン・システムを構築する
Quartus IIに戻ってNios IIマイコン・システムを組み込む
Nios II EDSでソフトウェアを開発する
動作確認とキャリア周波数/デューティの変更
補足2 エラーが出たときは.トラブル・シューティング

第3章 7セグLEDとボタンでデューティを変える(3日目)
ポートの上げ下げのコンビネーションで数字を表現する
Qsysで7セグ制御用PIOを追加する
Qsysで何かを追加したら必ずQuartus IIに戻ってコンパイル
Nios II EDSでソフトウェアを作ってPIOを制御する

第4章 PWMを8個に増やしてNios IIで制御する(4日目)
QsysでPWM8個を制御するPIOを追加する
Quartus IIでPWMを8個に増やす
Nios II EDSでC言語ソースを記述する

第5章 複雑なステート遷移もNios II+C言語で楽々(5日目)
ステート遷移を考える
Qsysで7セグをさらに3個追加
Quartus IIでVerilog HDLファイルを編集
Nios II EDSで8個のPWMを制御する
作成したPWM制御システムの仕様
C言語コーディングのポイント

第6章 SignalTap IIでPWMの動作確認(6日目)
FPGA内部の信号をロジック・アナライザで当たる
SignalTap II使い方あれこれ

第7章 ハードウェアとソフトウェアをROM化する(7日目)
QsysでEPCSを組み込む
Quartus IIでEPCS関連の処理
Nios II EDSで新規プロジェクトを作ってFlash Programmer

第8章 SDRAMにソフトウェアを置く(8日目)
QsysでSDRAMコントローラを追加する
Quartus IIでSDRAM関連の処理
Nios II EDSでSDRAM用ソフトウェアを作成

第9章 フラッシュ・メモリにソフトウェアを置く(9日目)
Qsysでフラッシュ・メモリ・コントローラを構成する
Quartus IIでフラッシュ・メモリ関連の処理
Nios II EDSでメモリ・テストしてからプログラムする

第10章 フラッシュ・メモリに変数を読み書き(10日目)
Qsysでスライド・スイッチを1個追加しておく
Quartus IIでスライド・スイッチの処理
Nios II EDSでフラッシュの読み書きの記述を追加
作成したPWM制御システムの応用例

第11章 PWM制御システムの論理シミュレーション(11日目)
アルテラが提供する無償の論理シミュレータを使う
シミュレーション結果を見る


第2部 画像処理システム編

第1章 ともかくCMOSカメラの映像をVGAに映す(1日目)
CMOSカメラの概要
カメラとVGAとの同期を考える
CMOSカメラ・モジュールをDE0につなぐ
ハードウェアをFPGAに実装する

第2章 ライン・バッファで同期をとる回路の詳細(2日目)
画像処理コアVideoProcCore
CMOSカメラからの信号を受け取るCAM_CTRL
VGAに同期信号を出すVGA_CTRL
ライン・バッファを制御するLINEIN_CTRL
ライン・バッファで水平同期の時間差を吸収

第3章 Nios IIでCMOSカメラのレジスタ設定(3日目)
Qsysを使ってNios IIマイコン・システムを構築する
Quartus IIに戻ってNios IIマイコン・システムを組み込む
Nios II EDSでソフトウェアを開発する
Nios IIでカメラのレジスタ設定して1歩前進

第4章 外部SDRAMを使ってフル画像表示する(4日目)
DE0に実装されたSDRAMを使う
8個のフレーム領域をうまく使う
外部SDRAMを使うように外部ハードウェアを変更
フル画像が見られるのはSDRAMを使っているから

第5章 SDRAMの使い方(5日目)
SDRAMのインターフェース
SDRAMの初期化シーケンス
本書ではCAS Latency=2,Burst Length=4で使う

第6章 SDRAMコントローラのしくみ(6日目)
シーケンス制御用にステート・マシンを作る
全体的な処理の流れ
SDRAM書き込みラインと読み出しラインの関係
SDRAMの書き込み回路の詳細
SDRAMの読み出し回路の詳細
SDRAM内部のフレーム・マッピング
具体的なアドレスの出し方

第7章 静止画モードとリピート・モードを実現(7日目)
静止画/リピート対応のためにSDRAMコントローラを変更する
Qsysでモード切り替え用PIOを追加
Nios II EDSでモード切り替え用ソフトウェアを開発する
モード切り替え用ソフトウェアの詳細

第8章 動き成分を表示する(8日目)
カメラ画像を使った動き検出のメリット
二つのフレームを読み出して差分をとる
ハードウェアで動き成分を計算する
Nios II EDSでソフトウェアを1ヵ所だけ変更する
動き成分表示回路の詳細

第9章 動き検出してモニタをON/OFF(9日目)
QsysでVGAをON/OFFする制御線を追加
Quartus IIで動き検出回路を追加
Nios II EDSでVGAをON/OFFするソフトウェアを開発
動き検出回路の詳細
Nios IIはMDETを見てDISPOFFを制御する

第10章 SDメモリーカードに静止画を保存する(10日目)
SDメモリーカード(広義)の詳細
Qsysで静止画の通り道を作る
Quartus IIで静止画の授受が出来るように変更
Nios IIがSDメモリーカードの読み書きをする

第11章 SDメモリーカード⇔SDRAMのしくみ(11日目)
SDRAM→SDメモリーカード転送のシーケンス
SDメモリーカード→SDRAM転送のシーケンス
SDRAM→SDメモリーカード転送回路の動作
SDメモリーカード→SDRAM転送回路の動作

第12章 SDメモリーカードをNios IIで読み書き(12日目)
SDメモリーカードはSPIモードで使用する
SDメモリーカードの初期化ルーチン
SDメモリーカードへのデータの送信
SDメモリーカードからのデータの受信
各フレームのアドレスの割り当て方
1ライン書き込む関数と読み出す関数
3フレーム書いて3フレーム読むmain関数

第13章 動きに合わせてブザーを鳴らすシステム(13日目)
QsysでPWM制御用PIOを追加する
Quartus IIでPWMを制御できるように変更を加える
Nios IIは動きの回数によりPWMの周期を変える

第14章 動きの方向を振動モータで伝えるシステム(14日目)
左右独立した動き検出ハードウェア
Quartus IIで動き検出の部分に変更を加える
Nios IIがモータの振動の強さを決める
高速画像処理のロジックと全体制御のNios IIは最強コンビ

第15章 画像処理システムの論理シミュレーション(15日目)
1日目に使ったプロジェクトのシミュレーション
SDRAMを含めたシミュレーション


Appendix

Appendix A LCDを使って効率的で確実なデバッグ
Appendix B RS-232-Cポートを使ってパソコンと通信
Appendix C FPGA開発ツールのセットアップ
Appendix D USB-Blasterドライバのインストール
Appendix E ModelSim-Altera Starter Editionのセットアップ
Appendix F 第1部のVHDLと第2部のVerilog HDL