このＰＤＦは，ＣＱ出版社発売の「改訂版 FPGAボードで学ぶ論理回路設計」の一部分の見本です．
内容・購入方法などにつきましては以下のホームページをご覧下さい．
<http://shop.cqpub.co.jp/hanbai/books/31/31501.htm>
6目

次

まえがき ……………………………………………………………………………………………………………3
本書の構成 …………………………………………………………………………………………………………4
使用する設計環境 …………………………………………………………………………………………………5

第 1 章 HDL による回路設計を始めるにあたって ------------------------------------------------------------------------------------------------------------------------- 91.1

システム設計と仕様策定 …………………………………………………………………………………9

1.1.1
1.1.2
1.1.3

システム・レベルの設計 ………………………………………………………………………………10ボード・レベルの設計 …………………………………………………………………………………10LSI レベルの設計…………………………………………………………………………………………111.2
ASIC と FPGA ……………………………………………………………………………………………111.2.1 ASIC とは …………………………………………………………………………………………………121.2.2 プログラマブル・デバイスとは ………………………………………………………………………121.2.3 ASIC と PLD の使い分け ………………………………………………………………………………141.2.4 プログラマブル・デバイスの魅力 ……………………………………………………………………151.3
LSI 設計の流れと開発環境 ……………………………………………………………………………16
1.3.1 デザイン・エントリ ……………………………………………………………………………………16
1.3.2 シミュレーション ………………………………………………………………………………………17
1.3.3 論理合成と配置配線 ……………………………………………………………………………………18
1.3.4 設計ツールの選定 ………………………………………………………………………………………19

第 2 章 FPGA 開発を体験する ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 21
2.1
2.2

Quartus Ⅱによる FPGA 開発の流れ …………………………………………………………………21
Quartus Ⅱの基本操作 ……………………………………………………………………………………22

2.2.1
2.2.2
2.2.3
2.2.4
2.2.5

Quartus Ⅱの起動 ………………………………………………………………………………………22
プロジェクトの作成 ……………………………………………………………………………………23
デザイン・エントリ ……………………………………………………………………………………27
コンパイル ………………………………………………………………………………………………29
ダウンロード ……………………………………………………………………………………………34
2.3
Quartus Ⅱを使いこなす …………………………………………………………………………………35
2.3.1 既存のプロジェクトを修正する ………………………………………………………………………35
2.3.2 既存の設計データを利用する …………………………………………………………………………36

第 3 章 VHDL による論理回路設計の基本テクニック ------------------------------------------------------------------------------------------------------- 37
3.1
3.1.1
3.1.2
3.1.3
3.1.4

3.2

practice1 ： LED の点灯と消灯 …………………………………………………………………………37
ライブラリ宣言 …………………………………………………………………………………………39
パッケージ呼び出し ……………………………………………………………………………………39
エンティティ宣言 ………………………………………………………………………………………39
アーキテクチャ宣言 ……………………………………………………………………………………40
practice2 ：複数の LED でバイナリ値を表示する …………………………………………………40

73.3

practice3 ： 7 セグメント LED に 16 進数を表示する ………………………………………………41
3.3.1
3.3.2
3.3.3
3.3.4

デコーダ …………………………………………………………………………………………………42
process 文 …………………………………………………………………………………………………44
case 文 ……………………………………………………………………………………………………44
ハードウェアの基本は同時処理 ………………………………………………………………………44
3.4
practice4 ： 7 セグメント LED に表示する数字を変化させる ……………………………………453.4.1 クロック …………………………………………………………………………………………………45
3.4.2 if 文…………………………………………………………………………………………………………45
3.4.3 バイナリ・カウンタ ……………………………………………………………………………………47
3.4.4 算術パッケージ …………………………………………………………………………………………47
3.5
practice5 ：スイッチの ON/OFF に合わせて LED を点灯/消灯する ……………………………48
3.5.1 チャタリング除去回路 …………………………………………………………………………………48
3.5.2 generic 文 …………………………………………………………………………………………………50
3.6practice6 ：ルーレットを作る …………………………………………………………………………50
3.6.1 ステート・マシンによる設計 …………………………………………………………………………53
3.6.2 ミーリ型とムーア型 ……………………………………………………………………………………55
3.7practice7 ：スロットマシンを作る ……………………………………………………………………56
3.7.1 階層設計 …………………………………………………………………………………………………60
3.7.2 component 宣言 …………………………………………………………………………………………60
3.7.3 ポートのマッピング ……………………………………………………………………………………61

第 4 章 野球ゲームの設計----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 63
4.1
4.1.1
4.1.2

野球ゲームの仕様策定 …………………………………………………………………………………63

動作仕様を考える ………………………………………………………………………………………63
ボードの仕様を考える …………………………………………………………………………………64
4.2
機能分割 ……………………………………………………………………………………………………66
4.3
各モジュールの仕様策定 ………………………………………………………………………………68
4.3.1 トップ・モジュール（baseball̲top） ……………………………………………………………………68
4.3.2 ルーレット管理モジュール（batting）…………………………………………………………………68
4.3.3 ルーレットの出目パルス発生モジュール（batlatch）…………………………………………………70
4.3.4 ルーレット状態出力モジュール（batter̲led̲dec）……………………………………………………71
4.3.5 アウト・カウント管理モジュール（outcount） ………………………………………………………71
4.3.6 出塁状態管理モジュール（base） ………………………………………………………………………71
4.3.7 加点パルス発生モジュール（score）……………………………………………………………………71
4.3.8 得点/出塁状態管理モジュール（baseball̲led̲out） …………………………………………………72
4.4
再利用性の高い機能ブロックの関数化 ………………………………………………………………73
4.5
得点/出塁状態管理モジュールの設計 ………………………………………………………………75
4.6
ルーレット状態出力モジュールの設計 ………………………………………………………………78
4.7
アウト・カウント管理モジュールの設計 ……………………………………………………………79

84.8
4.9
4.10
4.11
4.12
4.13
4.14

ルーレット管理モジュールの設計 ……………………………………………………………………82
ルーレットの出目パルス発生モジュールの設計 …………………………………………………84
加点パルス発生モジュールと出塁状態管理モジュールの設計 …………………………………88
クロック分周モジュールの設計 ………………………………………………………………………94
トップ・モジュールの設計 ……………………………………………………………………………95
FPGA ボードで動作させる ……………………………………………………………………………100
機能の拡張 ………………………………………………………………………………………………100

付録A FPGA 設計環境のセットアップ ------------------------------------------------------------------------------------------------------------------------------------------------------- 102
A.1
A.2
A.3
A.4

開発環境として要求されるパソコン ………………………………………………………………102
Quartus Ⅱのインストール方法 ………………………………………………………………………103
Quartus Ⅱの初期設定 …………………………………………………………………………………104
Windows Vista で使うためのドライバ ………………………………………………………………105

付録B トラブル・シューティング ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- 106
B.1

プロジェクトの作成，または開くことができない ………………………………………………106
日本語のフォルダを使用していませんか？ …………………………………………………………………106
B.2
ダウンロードしてもデバイスの動作が変わらない ………………………………………………106
Programmer を開いたままではありませんか？ ……………………………………………………………106
B.3
ダウンロードが行えない ………………………………………………………………………………106
電源を接続していますか？ ……………………………………………………………………………………107
パラレル・ケーブルで接続していますか？ …………………………………………………………………107
ご利用中のパソコンの LPT ポートは有効ですか？ ………………………………………………………107
パラレル・ポートは LPT1 または LPT2 に設定されていますか？ ………………………………………107
別のパソコンでも試してみましたか？ ………………………………………………………………………107

付録 C 付属 FPGA ボードの概要 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 108
C.1
C.2
C.3
C.4
C.5
C.6
C.7
C.8
C.9

概要…………………………………………………………………………………………………………108
電源回路 …………………………………………………………………………………………………109LED 回路 …………………………………………………………………………………………………109
スイッチ入力回路 ………………………………………………………………………………………110
ダウンロード用回路 ……………………………………………………………………………………111
クロック発振器 …………………………………………………………………………………………111
拡張ヘッダ（オプション）………………………………………………………………………………111全回路図 …………………………………………………………………………………………………111
使用にあたってのご注意 ………………………………………………………………………………111参考文献 …………………………………………………………………………………………………………115索引 ………………………………………………………………………………………………………………116