シミュレーション工学

Nr. 9





小堀

「論理回路のシミュレーション」

1.概要


目的と歴史
 カット&トライ方式の回路設計における時間やコストを節約する
  ・回路論理の検証
  ・タイミングの検証 

 1950年代後半 論理シミュレータが考案,コンパイル方式
 1960年代後半 インタプリタ方式が考案,処理速度も向上
 1970年代初頭 記憶容量の増大により回路規模が大きくなる
 1970年代後半 MOS回路の設計用が出現
 1980年代以降 専用のハードウェア(シミュレーション・エンジン)の開発

2.理論


シミュレーション単位
 どのような単位でシミュレーションするか
 ・ゲート・レベル論理シミュレータ
  AND,OR,NOTなどの論理ゲートを単位とする
  出力の端子数は1個に限定される
 ・機能シミュレータ
  フリップフロップ,カウンタ,レジスタなどの機能素子を単位とする
  単位素子の出力数は1個とは限らない
 ・機能ブロック・シミュレータ
  ユーザがハードウェア記述言語を使用して自由に機能素子を定義できる

回路の記述方式
 ・ブール代数記法
  ブール代数式による記述
 ・ネットワーク記法
  素子間の接続の記述

信号値
 定常状態HおよびL
 ハイインピーダンスZ
 不定状態X
 過渡状態U

遅延
 タイミングの検証のためには素子の遅延時間の扱いは不可欠
 ・ゼロ遅延モデル
  遅延がないものとする
  論理の検証しかできないので有効ではない



 ・単位遅延モデル
  回路中のすべての素子は同一の遅延時間をもつものとする
  実用的でない
 ・標準遅延モデル
  各ゲートレベルよび機能レベルでその素子固有の遅延時間を割り当てる
  ことができるもの
  最も広く使用されている
 ・最大-最小遅延モデル
  素子に割り当てる遅延時間に幅を持たせる
  実際の素子の遅延時間のばらつきを考慮
 ・慣性遅延モデル
  素子に指定された遅延時間よりも短いパルスに対しては応答しない

シミュレーションの手法
 ・コンパイル方式(コード生成方式)
  対象となる回路を構成する論理素子群に対し,それぞれ対応した一連の
  直接実行可能なサブプログラム群にコンパイルする
  高速な処理が可能だが,遅延モデルの処理が困難
 ・インタプリタ方式(表駆動方式)
  対象となる回路を,その接続関係を忠実に表現するテーブル形式のデータ
  構造に変換し,実行時にそのテーブルをたどりながら解釈,実行していく
  テーブル検索のオーバヘッドが大きいが,遅延時間の変更が容易

3.シミュレーション例


マスタースレーブ型JKフリップフロップの動作解析

[IMAGE image/sim9-1.gif][IMAGE image/sim9-2.gif]

[IMAGE image/sim9-3.gif][IMAGE image/sim9-4.gif]

参考文献
 阿部英志著:「論理回路シミュレーション」,CQ出版社(1990)


講義概要に戻る