はじめてのFPGA設計 VHDLによる回路記述からシミュレーションまで
価格:3,960円 (消費税:360円)
ISBN978-4-501-33070-5 C3055
奥付の初版発行年月:2014年12月 / 発売日:2014年12月上旬
FPGAデバイスを用いたVHDLによるディジタル回路設計を初学者向けに解説。回路設計、VHDL記述の解説だけでなく、シミュレーション結果画面も掲載し、一通りの手順をわかりやすく解説。具体的な設計事例を基にプログラミング言語や回路設計手順を説明することで、効率良く学ぶことができる。また、本書で使用する無料設計ソフトウェアツールの操作方法やプログラムのリスト、その他補足の事例について小局Webより閲覧が可能。
FPGAデバイスは,今日のディジタル電子機器に必須かつ主要な構成要素となっています。そのため,半導体関連の技術者ばかりではなく,電気・電子系,情報系,システム系,制御系などの,ディジタル電子機器開発に関わるあらゆる分野から脚光を浴びています。
このFPGAデバイスを用いると,コンピュータプログラミングと同じように,VHDL言語を用いて希望する回路の使用を記述することにより,ディジタル回路を開発することができます。パソコンが1台あれば,どこでも誰でもが自分専用のオリジナルICを作れる時代が到来したのです。また,FPGAデバイスの開発環境(開発ツールソフト)も充実期に入り,今後も益々期待の寄せられている有望な技術分野といえます。
本書では,VHDL言語によるFPGAデバイスを用いたディジタル回路設計開発を,前知識を一切必要としないレベル(ゼロベース)から,スタートすることができる内容構成としています。回路の動作を実機またはシミュレーションで確認しながらステップアップして行きます。また,関連するトピックスについても,コラムとして紹介しています。
さらに,単にVHDL言語を用いたディジタル回路設計を説明するだけに留まらず,設計した回路の動作検証を行うためのVHDL記述(テストベンチ)についても,解説しています。そのため,確実に動作する回路の設計手順が身につく構成となっています。つまり,VHDL言語による回路記述とテスト記述の両方を,同時に紹介することにより,バランスのよい設計開発技術者に育っていただくことを期待しています。
なお,本書で紹介しているVHDL言語の「文法」に関する記述は,本書の内容を理解する上で必要となる範囲に限定しています。VHDL仕様のすべてを紹介するものではありません。また,正確性よりわかりやすさを重視した表現になっています。そのため,厳密な言語使用が必要となった場合には,VHDL言語の規格書等を別途参照してください。
最後に,本書で使用している無料版開発ツールソフト(QuartusⅡ,ModelSim)の入手法,インストール法および操作手順例などにつきましては,東京電機大学出版局Web(http://www.tdupress.jp/)にて,具体的かつ詳細に紹介してありますので,ご安心ください。また,本書に掲載したVHDLリストについてもダウンロードできます。
2014年12月
著者しるす
目次
Step1 FPGA設計とは?
1 ワープロ感覚でFPGA設計
1-1 なぜ今,FPGA設計をすすめるのか?
1-2 FPGAってどんなIC?
1-3 回路データはどうやって作るのか?
1-4 とりあえずFPGA設計ってこんなもの!
2 FPGA設計環境を整える
2-1 設計ソフトウェアツールの種類
2-2 無料版設計ソフトウェアツールの入手法
2-3 それでは,起動してみよう!
2-4 実装用のFPGAボードについて
3 まずはやってみよう!
3-1 スイッチとLEDによる回路
3-2 回路の具体的な動作
3-3 ディジタル信号の表し方
3-4 FPGAボードでの回路構成
3-5 FPGAを設計する
3-6 設計結果の動作確認
3-7 希望通りの動作に修正する
■コラム1 FPGAは今も発展中
■コラム2 電流制限抵抗やプルアップ抵抗の値の決め方
Step2 VHDLによるFPGA設計の実際
4 VHDLファイルの記述
4-1 VHDL記述の全体構成
4-2 ライブラリとパッケージの指定
4-3 入出力信号の定義
4-4 内部回路の記述
4-5 簡単なVHDL記述例
5 FPGA設計の具体的な手順
5-1 プロジェクトを作る
5-2 VHDLファイルを記述する
5-3 コンパイルする
5-4 ピン割付をする
5-5 未使用ピンの処理
5-6 フィッティングする
5-7 コンフィギレーションして動作を確認
5-8 プロジェクトの終了と再開
■コラム3 QuartusⅡ初期設定の自動化(Tclファイル)
Step3 シミュレーションによる動作検証
6 シミュレーションとは
6-1 機能シミュレーション
6-2 テスト信号と真理値表
6-3 テストベンチはこんなもの
6-4 機能シミュレーションの実施
6-5 シミュレーション結果の表示と動作検証
6-6 タイミング・シミュレーション
7 テストベンチの記述
7-1 テストベンチの考え方
7-2 テスト信号の記述法
7-3 実装回路の扱い方
7-4 具体的なテストベンチの記述
7-5 シミュレーション結果
7-6 タイミング・シミュレーションと時間設定
■コラム4 ModelSimの繰返し操作の自動化(Doファイル)
Step4 組合せ回路の記述
8 ゲート回路の記述
8-1 ディジタル回路の定番といえばTTL-IC
8-2 基本論理ゲートの種類と動作
8-3 基本論理ゲートの記述とシミュレーション
8-4 多入力ゲートと2入力ゲートの組み合わせ
8-5 多入力ゲートの動作確認回路
9 セクレタの記述
9-1 条件を判断する回路
9-2 入力切替回路(2to1セクレタ)
9-3 入力信号が4つあったらどうする
■コラム5 たかがLED点灯,されどLED点灯
10 エンコーダの記述
10-1 エンコーダ(符号化回路)
10-2 プライオリティ・エンコーダ
10-3 多分岐の書き方
10-4 4to1セクレタの別解
10-5 エンコーダの別解
11 デコーダの記述
11-1 デコーダ(複合化回路)
11-2 3to8デコーダ
11-3 7セグメントLEDデコーダ
12 少し複雑な回路の記述
12-1 真理値表から回路を設計する
12-2 論理記述からVHDL記述へ
12-3 実際に試してみよう!
12-4 回路の内部動作を詳しく見たい
■コラム6 組合せ回路は基本論理ゲートで記述できる
■コラム7 ハリティジェネレータ回路の構成と遅延時間
Step5 順序回路の記述
13 順序回路
13-1 組合せ回路と順序回路
13-2 同時処理と順次処理の動作
13-3 順序回路にはProcess文を用いる
13-4 同時処理と順序処理の違い
13-5 Process文を用いた同時処理
14 記憶する回路の記述
14-1 順序回路としての「2to1セクレタ」
14-2 記憶する回路を作る
14-3 '1'や'0'を自由に設定できる記憶回路
14-4 if then else文の応用型
15 数を数える回路の記述
15-1 エッジ検出という定石
15-2 トグル動作がカウンタの基本
15-3 カウンタの原理
15-4 2進4桁のカウンタ
15-5 7セグメントLEDで動作確認
■コラム8 レベルトリガとエッジトリガ
16 いろいろなカウンタの記述
16-1 カウンタの10進化
16-2 リセットのかけ方 その1~非同期型~
16-3 リセットのかけ方 その2~同期型~
16-4 アップ/ダウンするカウンタ
16-5 グレイコードという変わりもの
17 時間を作る回路の記述
17-1 同期回路設計とクロック信号
17-2 一定周期でLEDを点滅させる
17-3 タイマーのシミュレーション
17-4 カウンタ段数を変える工夫
17-5 ロード機能も使い方次第
■コラム9 チャタリングというやっかいな現象と対策
■コラム10 レーシング現象に注意!
Step6 大規模回路の設計
18 階層設計にする
18-1 あらためて部品化とは
18-2 コンポーネントの呼び方
18-3 1つのファイルの中で階層化
18-4 複数のファイルで階層化
18-5 同じコンポーネントを複数個用いる場合
■コラム11 FPGAによる製品開発のメリット
19 IPを利用する
19-1 IPのいろいろ
19-2 QuartusⅡが提供するTTL-ICのパッケージを使う
19-3 10進4桁カウンタへの適用例
20 ステートマシンとして考える
20-1 ステートマシンとは(自販機の動作を例にして)
20-2 ステートマシンのVHDL記述の仕方
20-3 一方向に遷移する
20-4 双方向へ遷移する
■コラム12 パワーオン・リセット回路
Step7 具体的な設計事例
21 シミュレーションの自動化
21-1 波形表示中に文字を表示
21-2 テスト結果をファイルに出力
21-3 ファイル内容の読出し
21-4 テストの自動化
22 ナイトフラッシャーの設計
22-1 ナイトフラッシャーとは
22-2 多分岐制御工文を用いる方法(案①)
22-3 アップ/ダウンカウンタを用いる方法(案②)
22-4 シフト動作を用いる方法(案③)
22-5 ロジックだけで実現する方法(案④)
22-6 ナイトフラッシャーの動作比較テスト
■コラム13 点灯パターンデータを配列としてROM化する方法
参考文献
さくいん