Last Update 2013/10/08

定本 ASICのシステム設計
論理回路の記述からステート・マシンの設計まで

小林 芳直 著
A5判 272ページ
定価2,670円(税込)
JAN9784789830454
1995年10月31日発行
[絶版2007.7.10] 定本 ASICのシステム設計
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 ASICを設計することは難しいことではありません.軸足を回路設計の原点にしっかり促えるだけのことです.本書は回路設計の原点をステート・マシンとして促え,具体的に多くの設計事例を示しながらノウハウを開示しています.もちろん,これから主流となるハードウェア記述言語HDLによる事例です.

目次

第1章 ようこそASIC新時代
 1.1 ASIC化を考えよう
    ASICは製品開発の常識だ
    マイクロプロセッサ(MPU)との共存
    ASICとMPUの大きな違い
    MPUがASICより遅い理由
    ASICの真のメリット
    ASICのリスク
    リスクをカバーするEPGA
    1,000個でもASICの時代
 1.2 ASIC設計の勘どころ
    大規模なASICを効率良く設計するには
    ASICの中は自由設計の世界
    イージーオーダのためのマクロ・メニュー
    ソフト・マクロが使いやすい
    テスト設計がとくに重要
    動作速度に興味があるなら
    非同期式回路は忘れよう

第2章 ASICの新しい設計法
 2.1 設計はコンピュータ処理の時代に
    コンピュータに読める回路ファイルをつくる
    回路図からRTLへ
    再現性を期待するなら完全同期式回路で
 2.2 ASIC設計には高級言語を使おう
    動作を定義できる高級言語 HDL
    HDLでも効果は使い方次第
    HDLを使いこなすとスキルアップする

第2章 APPENDIX 74シリーズTTLをHDLで表現すると
 * 基本ゲート回路
    TTL00(4回路2入力NANDゲート)
    TTL02(4回路2入力NORゲート)
    TTL04(6回路インバータ)
    TTL08(4回路2入力ANDゲート)
    TTL10(3回路3入力NANDゲート)
    TTL20(2回路4入力NANDゲート)
    TTL27(3回路3入力NORゲート)
    TTL30(8入力NANDゲート)
    TTL32(4回路2入力ORゲート)
    TTL133(13入力NANDゲート)
    TTL260(2回路5入力NORゲート)
 * コンビネーション回路
    TTL49(BCD-7セグメント・デコーダ)
    TTL49X(BCD-7セグメント・デコーダ)
    TTL51(2回路2W-2/3入力AND-ORインバータ・ゲート)
    TTL54(4W-2/3入力AND-ORインバータ・ゲート)
    TTL55(2W-4入力AND-ORインバータ・ゲート)
    TTL85(4ビット・マグニチュード・コンパレータ)
    TTL86(4回路2入力EX-ORゲート)
    TTL135(4回路2入力EX-OD/NORゲート)
    TTL138(3-8デマルチプレクサ)
    TTL139(2回路2-4デマルチプレクサ)
    TTL148(8-3プライオリティ・エンコーダ)
    TTL151(8-1データ・セレクタ)
    TTL153(2回路4-1データ・セレクタ)
    TTL157(2-1データ・セレクタ)
    TTL283(4ビット・バイナリ・フルアダー)
    TTL283X(4ビット・バイナリ・フルアダー)
    TTL688(8ビット・イコール・コンパレータ)
 * ラッチ/フリップフロップ
    TTL74(2回路Dフリップフロップ,プリセット/クリア付き)
    TTL112(2回路jkフリップフロップ,プリセット/クリア付き)
    TTL376(4回路jkフリップフロップ)
    TTL164(8ビット・シフトレジスタ)
    TTL166(8ビット・シフトレジスタ)
    TTL399(4ビット2入力マルチプレクス・レジスタ)
    TTL162(同期式プリセッタブルBCDカウンタ/クリア付き)
    TTL162X(同期式プリセッタブルBCDカウンタ/クリア付き)
    TTL163X(同期式プリセッタブル・バイナリ・カウンタ/クリア付き)
    TTL163(同期式プリセッタブル・バイナリ・カウンタ/クリア付き)
    TTL169(同期式プリセッタブルUP/DOWNバイナリ・カウンタ)
    TTL169X(同期式プリセッタブルUP/DOWNバイナリ・カウンタ)

第3章 ASICのテスト設計
 3.1 ASICテスト・システムの重要性
    テスト・システムがやろうとしていること…不良のチップの除去
    スタック・フォールトとテスト・パターン
    テスタビリティの値をつかんでおこう
    テストできない回路…論理圧縮が不十分なとき
    テスタビリティを高めるには…同期式設計+スキャン方式テスト設計
    テストしやすくする工夫
    スキャン・テストを実現するには
    テスト設計の目的はスタック・フォールト・テスト
    ほかにもあるテスト設計の方法
    シフトレジスタ方式はほんとに有効か
 3.2 テスト設計の実際
    実際のテスト・パターン
    実際のASICには予備実験があると効果的
    複雑なASICには専用テスト回路を

第4章 ASICにはステート・マシン
 4.1 小さなステート・マシン
    ステート・マシンとは
    JKラッチはステート・マシン
    ステート・マシンの制御テクニック…ストップ・モーション
    状態を作るには…ジョンソン・カウンタがベスト
    文字を表示するHELLO(ハロー)ステート・マシンの設計
    HELLOステート・マシンの詳細設計
 4.2 ステート・マシンからシーケンサに
    ベース・カウントを選ぼう
    シーケンサ=ステート・マシン+デコーダ
    ステート・マシンと真理値表をつなぐ…デコーダ
    ステート・マシン以前…ヒューリスティックな設計だと
    ナイト・ライダーのステート・マシン
    ダイスもステート・マシンに
    ダイス・マシンの詳細設計

第5章 非同期式から同期式へ
 5.1 同期式回路設計にこだわる理由
    同期式回路とは…すべてのラッチのクロック・ラインを共通にする
    同期式…回路サイズが小さくなる…EMIや発熱/コストでもメリット
    同期式…回路の移植性がよい
    名人芸で作る非同期式回路
    CADは同期式回路しか扱えない
    処理速度は非同期式回路のほうが上か?
 5.2 同期式回路の設計テクニック
    クロックをゲートしてはいけない
    多相クロックの回路を同期式回路にするには
    微分回路は使わない
    出力ラッチは使わない
    リセットもかけない
    異常状態から脱出するためにも
    外部信号はステート・マシンに直接入力する

第6章 ステート・マシンの高信頼性設計
 6.1 高信頼性ステート・マシンを構成するには
    入力信号によって内部状態が変化する…ステート・マシン
    ムーア・マシンがノイズに強い
    ステート・マシンの状態定義の割り当てが悪いと
    カウンタがシーケンサの母体
    誤動作…イントリンシック・ハザードを理解しておこう
    消せないメタステーブル
    それでも外部の非同期信号が加わるとき
    違ったクロックの回路を複数動かすときのギア・トレーン
    発熱を抑えるためにはハーモニック・クロック
    より高速化したいとき…シングル・ラッチ・システム
 6.2 ジョンソン・カウンタを使う高信頼性ステート・マシン
    不要なステートの割り当てはしない
    誤動作しないジョンソン・カウンタを使おう
    ストップ・モーションもかけることができる
    ジョンソン・カウンタを使えば同期式回路のメリットが出てくる

第7章 ステート・マシンのある回路設計
 7.1 ステート・マシンのボトル・ネック
    ビット記述だと効率はあがるが
    ボトル・ネックを突き詰めよう
    7進カウンタの悪夢
    悪夢は続く
 7.2 ステート・マシンの設計を熱す
    ステート・マシンのネスティング
    トラフィックのステート・マシン
    アービタ機能をもつエレクトリック・キー・ステート・マシン
    外部の非同期信号とつきあうときはメタステーブル対策を
    メタステーブルを解決するには入力ラッチ
    同じステート・マシンを3ビットと4ビットで設計すると
    ちょっと複雑16状態ステート・マシン
    ワンボット・ステート・マシンのメリット/デメリット
 7.3 高度なステート・マシンの設計
    ブラック・ジャック・マシンの設計
    ブラック・ジャック・ステート・マシンの詳細構成
    マイクロ・チャネル用バス・マスタの設計例
    バス・マスタ・ステート・マシンの詳細設計
    習うより慣れろ

第8章 回路をプログラムのように書く
 8.1 ソフトウェアとハードウェアの関係
    論理回路はプログラムを書くように
    ソフトウェアとハードウェアの特性を比較すると
    ハードウェアの優位性
 8.2 ソフトウェアをハードウェアにする方法
    論理演算の表現
    テーブルをハードウェアにする
    メモリを使わないテーブル
    真理値表を論理式にするには
    プロセスをハードウェアにする
    SWITCHをハードウェアにする
    DO〜WHILEをハードウェアにする
    FORをハードウェアにする
    プロセスの中のプロセスをハードウェア化する
    一般的なプログラムのハードウェア化
    GOTOをハードウェアにする
    BREAKをハードウェアにする

第9章 プログラムで書くハードウェアの設計例
 9.1 ソフトウェアをハードウェアにする演習
    ビット数を数えるには
    ビット・スライス・アダー
    任意のパルスを作る回路
    引き数付きのハードウェア・サブルーチン・コール
    任意のパルスを作る回路[別解]
 9.2 DRAMインターフェース回路設計への適用
    リフレッシュ・カウンタをどうするか
    MPUと喧嘩しないためのアービタとは
    同時アクセスが発生したときは
    センス・リカバリ・タイムの確保
    ソフトウェアとハードウェアのトレードオフ