はじめに iii |
第1章 序論 1 |
1-1 コンピュータによる設計自動化 2 |
1-2 Verilog-HDLとVHDLとの出現 4 |
1-3 HDL適用分野 5 |
1-4 ハイレベル設計のメリット 7 |
1-5 簡単な導入記述例 9 |
1-5-1 デザイン・ユニット 10 |
1-5-2 信号代入文 11 |
1-5-3 順次処理文 12 |
1-5-4 サブプログラム15 |
1-5-5 構造記述 16 |
1-5-6 テストベンチ 18 |
1-5-7 コンフイグレーション 19 |
1-6 第1章のまとめ 20 |
第2章 VHDLの基本構文 21 |
2-1 VHDL基本構文要素 21 |
2-2 エンティティ 23 |
2-3 アーキテクチャ 25 |
2-4 データタイプ 26 |
2-4-1 整数タイプ 27 |
2-4-2 定義済みデータタイプ 27 |
2-4-3 std_logicデータタイプ 29 |
2-5 オブジェクト 31 |
2-5-1 定数 31 |
2-5-2 信号 31 |
2-5-3 変数 33 |
2-5-4 信号と変数の差異 34 |
2-5-5 条件信号代入文 34 |
2-6 演算子 35 |
2-6-1 論理演算子 36 |
2-6-2 関係演算子 36 |
2-6-3 算術演算子 37 |
2-6-4 連接演算子 37 |
2-6-5 単項(符号)演算子 37 |
2-7 順次処理文 38 |
2-7-1 プロセス文 38 |
2-7-2 if文 39 |
2-7-3 case文 40 |
2-7-4 ループ文 42 |
2-7-5 next文 43 |
2-7-6 exit文 44 |
2-7-7 waitの文 45 |
2-7-8 assert文 46 |
2-8 階層構造 47 |
2-8-1 コンポーネント宣言 47 |
2-8-2 コンポーネント・インスタンス 48 |
2-8-3 コンフイグーション 50 |
2-9 第2章のまとめ 51 |
第3章 VHDLの高度な構文 53 |
3-1 データタイプ 53 |
3-1-1 列挙タイプ 54 |
3-1-2 配列タイプ 55 |
3-1-3 サブタイプ 56 |
3-2 オペランド 56 |
3-2-1 定数 57 |
3-2-2 識別子 58 |
3-2-3 配列要素名 58 |
3-2-4 スライス名 59 |
2-2-5 集合体 59 |
3-3 属性 59 |
3-3-1 配列属性 61 |
3-3-2 遅延属性 61 |
3-4 階層設計 63 |
3-4-1 generic文 63 |
3-4-2 generate文 64 |
3-5 サブプログラム 65 |
3-5-1 ファンクション定義 66 |
3-5-2 ファンクション呼び出し 67 |
3-5-3 プロシージャ定義 68 |
3-5-4 プロシージャ呼び出し 70 |
3-5-5 オーバーロード 71 |
3-6 パッケージ 72 |
3-6-1 パッケージ宣言部 73 |
3-6-2 パッケージ本体 74 |
3-7 第3章のまとめ 75 |
第4章 VeriIog-HDL構文 77 |
4-1 字句に関する規約 77 |
4-1-1 コメント 78 |
4-1-2 定数 78 |
4-1-3 識別子 79 |
4-1-4 文字列 79 |
4-1-5 テキストマクロ 80 |
4-2 モジュール 80 |
4-3 データタイプ 82 |
4-3-1 論理値 82 |
4-3-2 レジスタとネット 83 |
4-3-3 ストレングス 85 |
4-3-4 ベクタ 85 |
4-3-5 メモリ 86 |
4-3-6 整数と実数 85 |
4-3-7 パラメータ 87 |
4-4 式 88 |
4-4-1 演算子 88 |
4-4-1-1 算術演算子 88 |
4-4-1-2 関係演算子 89 |
4-4-1-3 論理演算子 90 |
4-4-1-4 ビット演算子 90 |
4-4-1-5 リダクション演算子 90 |
4-4-1-6 シフト演算子 91 |
4-4-1-7 連接演算子 91 |
4-4-1-8 条件演算子 92 |
4-4-2 オペランド 92 |
4-5 代入文 93 |
4-5-1 継続代入文 93 |
4-5-2 手続き的代入文 94 |
4-6 順次処理モデル 95 |
4-6-1 手続き文 95 |
4-6-2 ブロック文 96 |
4-6-2-1 順序ブロック 97 |
4-6-2-2 並行ブロック 97 |
4-6-2-3 ブロックの消去 98 |
4-6-3 if文 99 |
4-6-4 case文 100 |
4-6-5 ループ文 101 |
4-6-5-1 for文 101 |
4-6-5-2 while文 102 |
4-6-5-3 repeat文 102 |
4-5-5-4 forever 103 |
4-6-6 手続き的タイミング制御 103 |
4-6-6-1 遅延制御 104 |
4-6-6-2 イベント制御 105 |
4-7 サブプログラム 105 |
4-7-1 ファンクション 106 |
4-7-2 タスク 107 |
4-8 階層構造 108 |
4-8-1 モジュールのインスタンス化 108 |
4-8-2 モジュール・パラメータ 109 |
4-9 ゲートレベルのモデル化 110 |
4-9-1 組み込みプリミティブ 110 |
4-9-2 ユーザ定義プリミティブ 112 |
4-9-2-1 組み合わせプリミティブ 113 |
4-9-2-2 レベル・センシティブ順次プリミティブ 114 |
4-9-2-3 エッジ・センシティブ順次プリミティブ 114 |
4-10 組み込みサブプログラムとコンパイル指示子 115 |
4-10-1 組み込みタスクとファンクション 116 |
4-10-2 コンパイル指示子 117 |
4-11 第4章のまとめ 119 |
第5章 HDLによる基本モデリング 121 |
5-1 基本モデリング 121 |
5-1-1 フリップ・フロップ 121 |
5-1-2 ラッチ 123 |
5-1-3 スリーステート 125 |
5-1-4 デコーダ/エンコーダ 125 |
5-1-5 加算器 128 |
5-1-6 シフトレジスタ 129 |
5-2 カウンタ 130 |
5-3 状態遷移マシン 132 |
5-5 波形生成モジュール 135 |
5-6 テストベンチ記述 137 |
5-6-1 時間と論理値によるテストベクタ 137 |
5-6-2 テストデータの読み込みによるテストベクタ 140 |
5-6-3 プログラム的な記述 144 |
5-7 第5章のまとめ 149 |
第6章 HDL記述に関する考慮事項 151 |
6-1 非同期合成 152 |
6-2 センシティビティ・リスト 160 |
6-3 初期化 163 |
6-4 論理回路の制御例 168 |
6-5 論理最適化についてのポイント 176 |
6-6 VHDLとVerilog-HDL 181 |
6-6-1 全体的な特徴 181 |
6-6-2 構文比較 182 |
6-7 第6章のまとめ 185 |
第7章 ハイレベル設計に関連した用語 187 |
7-1 設計レベルの定義 187 |
7-1-1 動作レベル 189 |
7-1-2 RTL 192 |
7-1-3 論理レベル 192 |
7-2 合成に関わる用語の紹介 192 |
7-2-1 分割化 193 |
7-2-2 パイプライン化 194 |
7-2-3 スケジューリング 195 |
7-2-4 リタイミング 197 |
7-2-5 レジスタ割り付け 197 |
7-2-6 リソースの割り付け、共有化、モジュール結合 200 |
7-2-7 レジスタ・インファレンス 201 |
7-2-8 状態マシン合成 203 |
7-2-9 多段論理最適化 205 |
7-2-10 段論理最適化 205 |
7-2-11 冗長論理の削除 206 |
7-2-12 テクノロジ・マッピング 206 |
7-2-13 テクノロジ変換 208 |
7-3 検証に関する用語の紹介 209 |
7-3-1 イベントドリブン・シミュレータ 209 |
7-3-2 ハードウェア・アクセラレ 210 |
7-3-3 サイクルベース・シミュレータ 210 |
7-3-4 エミュレータ 211 |
7-3-5 ソフトウェア/ハードウェア・コシミュレーション 212 |
7-4 第7章のまとめ 213 |
第8章 設計制約条件とタイミング解析 215 |
8-1 設計制約条件 215 |
8-2 小規模な組み合わせ回路例 217 |
8-2-1 制約を与えていない回路 218 |
8-2-2 負荷属性 219 |
8-2-3 ドライブ属性 220 |
8-2-4 入力到達時間 222 |
8-2-5 出力到達時間 223 |
8-2-6 配線負荷 223 |
8-2-7 動作条件 224 |
8-2-8 制約を与えた最適化 226 |
8-3 順序回路例 227 |
8-3-1 クロック属性 228 |
8-3-2 セットアップ・チェック 229 |
8-3-3 ホールド・チェック 230 |
8-3-4 負荷とドライブ 231 |
8-3-5 クロック・スキュー 232 |
8-4 階層設計に対する時間の見積り 232 |
8-5 第8章のまとめ 233 |
付録 235 |
あとがき 245 |
索引 247 |
はじめに iii |
第1章 序論 1 |
1-1 コンピュータによる設計自動化 2 |
1-2 Verilog-HDLとVHDLとの出現 4 |
1-3 HDL適用分野 5 |
1-4 ハイレベル設計のメリット 7 |