Last Update 2022/07/11

Verilog HDL 論理合成入門
RTL記述&ネットリストのリファレンス

Jayaram Bhasker 著
佐々木 尚 訳
B5変型判 204ページ
定価3,080円(税込)
JAN9784789833547
2001年5月1日発行
[絶版2006.7.16] Verilog HDL 論理合成入門
大変恐縮ですが,こちらの商品は品切れ絶版となりました.
 本書は,Verilog HDLのRTL(レジスタ・トランスファ・レベル)合成に関する実用的なリファレンス・ブックです.論理合成可能なVerilog HDL記述例と,その記述から合成されるネットリストを数多く紹介します.また,設計モデルとネットリスト間の機能的ミスマッチについて,その発生原因と回避方法について解説しています.例題として取り上げているのは,組み合わせ論理,順序論理,レジスタやラッチ,有限ステートマシン,算術論理ユニットなどシンプルでわかりやすいものです.
 本書の著者は,論理合成のエキスパートで,Verilog RTL合成標準化(PAR 1364.1)を行うIEEEワーキング・グループの議長であるJayaram Bhasker氏です.
  原題:Verilog HDL Synthesis, A Practical Primer

目次

第1章 基礎
1.1 論理合成とはなにか?
1.2 設計プロセスにおける論理合成
1.3 論理値システム
1.4 ビット幅
 1.4.1 データ・タイプ
 1.4.2 定数
 1.4.3 パラメータ
1.5 ハードウェア・モデリングで値を保持するもの(バリュー・ホルダ)

第2章 ゲートへのVerilog HDL構文
2.1 継続的代入文
2.2 手続き的代入文
 2.2.1 ブロッキング手続き的代入文
 2.2.2 ノンブロッキング手続き的代入文
 2.2.3 代入のターゲット
 2.2.4 代入の制限
2.3 論理演算子
2.4 算術演算子
 2.4.1 符号なし算術演算
 2.4.2 符号付き算術演算
 2.4.3 キャリをモデリングする
2.5 関係演算子
2.6 等号演算子
2.7 シフト演算子
2.8 ベクタ演算
2.9 部分選択
2.10 ビット選択
 2.10.1 定数インデックス
 2.10.2 式の中での非定数インデックス
 2.10.3 ターゲット中での非定数インデックス
2.11 条件式
2.12 always文
2.13 if文
 2.13.1 If文からのラッチ推定
2.14 case文
 2.14.1 casez文
 2.14.2 casex文
 2.14.3 case文からのラッチ推定
 2.14.4 フル・ケース
 2.14.5 パラレル・ケース
 2.14.6 case項目としての非定数
2.15 ラッチ推定に関してさらに
 2.15.1 非同期プリセット,非同期クリアつきラッチ
2.16 ループ文
2.17 フリップフロップをモデリングする
 2.17.1 複数個のクロック
 2.17.2 多相クロック
 2.17.3 非同期プリセット,非同期クリアつきフリップフロップ
 2.17.4 同期プリセット,同期クリアつきフリップフロップ
2.18 さらにブロッキング代入対ノンブロッキング代入について
2.19 関数
2.20 タスク
2.21 値xとzの利用
 2.21.1 値x
 2.21.2 値z
2.22 ゲート・レベル・モデリング
2.23 モジュール・インスタンス化文
 2.23.1 定義済みブロックの使用
2.24 パラメータ化された設計

第3章 モデリング例
3.1 組み合わせ論理をモデリングする
3.2 順序論理をモデリングする
3.3 メモリをモデリングする
3.4 ブール方程式を書く
3.5 有限ステート・マシン(FSM)をモデリングする
 3.5.1 ムーア型有限ステート・マシン
 3.5.2 ミーリ型有限ステート・マシン
 3.5.3 エンコーディング状態
3.6 汎用シフト・レジスタをモデリングする
3.7 ALUをモデリングする
 3.7.1 パラメータ化されたALU
 3.7.2 簡単なALU
3.8 カウンタをモデリングする
 3.8.1 バイナリ・カウンタ
 3.8.2 Modulo-N カウンタ
 3.8.3 ジョンソン・カウンタ
 3.8.4 グレイ・カウンタ
3.9 パラメータ化された加算器をモデリングする
3.10 パラメータ化された比較器をモデリングする
3.11 デコーダをモデリングする
 3.11.1 簡単なデコーダ
 3.11.2 バイナリ・デコーダ
 3.11.3 ジョンソン・デコーダ
3.12 マルチプレクサをモデリングする
 3.12.1 簡単なマルチプレクサ
 3.12.2 パラメータ化されたマルチプレクサ
3.13 パラメータ化されたパリティ生成器をモデリングする
3.14 3ステート・ゲートをモデリングする
3.15 3個の1をカウントするモデリング
3.16 累乗のモデル
3.17 UARTモデル
3.18 ブラックジャックのモデル

第4章 モデル最適化
4.1 資源割り付け
4.2 共通部分式
4.3 コードの移動
4.4 共通因子化
4.5 交換性と結合性
4.6 そのほかの最適化
4.7 フリップフロップとラッチの最適化
 4.7.1 フリップフロップの回避
 4.7.2 ラッチの回避
4.8 設計サイズ
 4.8.1 小規模の設計が論理合成を速くする
 4.8.2 階層
 4.8.3 構造としてのマクロ
4.9 カッコの使用

第5章 検証
5.1 テストベンチ
5.2 代入文での遅延
5.3 未接続ポート
5.4 ラッチ消失
5.5 さらに遅延について
5.6 イベント・リスト
5.7 論理合成命令
5.8 変数による非同期プリセット
5.9 ブロッキング代入対ノンブロッキング代入
 5.9.1 組み合わせ論理
 5.9.2 順序論理回路