フリーのCPUコアNios II/eと高速ロジックで七変化
FPGAスタータ・キットで初体験!オリジナル・マイコン作り
※
ご注意:当書籍にはFPGA基板は付属しておりません.
FPGA基板DE0は,
ソリトンウェーブで販売しています.
岩田 利王 著
B5判 336ページ
はがき1枚付き
定価7,040円(税込)
JAN9784789848190
2013年5月1日発行
目次
第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