JPH08503794A - 改善された精度を有する電子回路シミュレーションモデル発生システム及び方法 - Google Patents
改善された精度を有する電子回路シミュレーションモデル発生システム及び方法Info
- Publication number
- JPH08503794A JPH08503794A JP6504435A JP50443594A JPH08503794A JP H08503794 A JPH08503794 A JP H08503794A JP 6504435 A JP6504435 A JP 6504435A JP 50443594 A JP50443594 A JP 50443594A JP H08503794 A JPH08503794 A JP H08503794A
- Authority
- JP
- Japan
- Prior art keywords
- code
- circuit
- level
- register
- asynchronous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Variable-Direction Aerials And Aerial Arrays (AREA)
Abstract
(57)【要約】
複雑な論理回路を記述する構造データファイル(30)をシミュレータ(42)により実行しうるシミュレーションモデルファイル(40)に精密に翻訳するシステム及び方法である。ネットリスト(34)を走査し、得られたモデル記述を、同期サブ回路及び非同期サブ回路間の境界を識別するWHEN−CONDITION区分(WC)を含む構造区分にコンパイルする。更にシミュレーションモデルを区分別レベル化方法により実行時間レベルに区分する。レベル化の失敗を通常まねく非同期帰還ループを、帰還ループモデル内に時間遅延”レベラ”(254、262)を挿入することにより正しくモデル化する。得られたシミュレーションモデルの実行はシミュレーションモデルの正しい機能及びタイミング評価をもたらす再評価ステップ及び評価安定検査ステップ(152、230、232、276)を含む。
Description
【発明の詳細な説明】
改善された精度を有する電子回路シミュレーションモデル発生システム
及び方法
技術分野
本発明は電子回路設計の自動化に関するものであり、特に論理回路設計データ
から論理回路の精密なシミュレーションモデルを自動的に開発する方法に関する
ものである。
発明の背景
広範の資源を多量生産する前に電子回路の価値ある設計を与える種々の方法が
既知である。伝統的な方法では、回路の複数のプロトタイプを作製し、次いでこ
れらを研究所内試験する。この方法は時間と費用がかかるとともに、多くの場合
現在の技術状態では容易に入手しえない電子部品の使用を必要とする。回路の欠
陥が発見されると、プロトタイプの補正に時間がかかるとともに誤りを生じやす
い。電子回路の市場の変遷が速いためにこのような回路を用いる製品のもっと迅
速な開発方法が要求されている。
コンピュータを用いて回路設計をシミュレータするのが有利であることが電子
回路の設計者により長年に亘り認められている。シミュレーションは高速で安価
な回路設計プロセスを約束する。これは、実際の回路を製造する前に設計の欠陥
を発見し取り除くことができるためである。実際には、シミュレーションにより
回路のプロトタイプ化工程がしばしば除去され、シミュレーションは実際上集積
回路の開発に不可欠である。
しかし、シミュレーションはボードレベル回路及び複雑な集積回路の価値ある
設計を常にもたらすとは限らない。このような回路の設計は、同期論理機能及び
非同期論理機能の混在に特徴があり、且つ代表的には多数の複雑な回路を含み、
その幾つかはシミュレーション中まだ開発途上にある。このような設計のシミュ
レーションは多大のコンピュータ時間を必要とするとともに、シミュレーション
結果の精度がしばしば疑わしいものとなる。シミュレーションをプログラムする
のに必要とされるコンピュータ時間及びエンジニアリング時間の費用と疑わしい
結果を生ずる恐れのために多くの回路設計者がプロトタイプを実際に形成する代
わりにシミュレーションを行うことを簡単に”断念”している。
上述のシミュレーションの実現が高度に複雑な論理回路を精密にシミュレート
しうる高速で容易に使用しうるシミュレータの市場を生成している。代表的なシ
ミュレータには、カリフォルニア、サンホセ所在のCadence Design Systems社か
ら市販されているVerilog-XL(商品名);オレゴン、ウイルソンヴィレ所在のMe
ntor Graphics Corporationから市販されているQuickSim及びQuickSim II(商品
名)及びマサチュセッツ、マールボロ所在のViewlogic Systems社から市販され
ているVewSim(商品名)がある。
図1は代表的な従来の回路開発プロセス10とこのプロセスの各ステップに対
応する回路設計の精度又は仕様との関係を示す。
最上位の最低精度レベルでは、回路はこの回路を使用する製品の設計仕様又は
アーキテクチャ記述12の項でのみ記述される。
動作レベル14の記述はもっと具体的であり、回路を例えばカウンタ、プロセ
ッサ又はレジスタのような機能ブロック図の項で記述する。
レジスタトランスファロジックレベル16は機能ブロックの相互接続による回
路設計をプロセッサ命令、カウンタ値、バスビット幅及びブール論理式のような
項で記述する。
ゲートレベル18は各機能ブロックを論理機能記号の詳細な相互接続として記
述する。
スイッチレベル20はゲートレベルの論理記号をトランジスタレベル回路設計
の項で記述する。
レイアウトレベル22は上述の回路設計素子の位相又は物理的位置及び電気的
接続を記述する。回路設計をエッチングした回路ボードに実現する場合には、レ
イアウトレベルが最下位の設計レベルになる。
回路設計を集積回路に実現する場合には、レイアウトレベルが更に集積回路の
製造工程を記述する多数のマスクを具えるシリコン設計レベル24に細分される
。
設計精度は一般に回路開発プロセスの下位レベルに向かって増大する。しかし
、所定の設計に対し、下位レベルでのシミュレーションは下位レベルに固有の増
大した複雑度を解析するために追加のコンピュータ時間を必要とする。従って、
設計精度とシミュレーション性能とのトレードオフが行われる。
代表的な回路設計は良くわかっているサブ回路とまだ試験してないサブ回路と
が混在するため、“ミックスモード”シミュレーションとして知られている技術
が開発されている。ミックスモードシミュレーションは代表的には市販の部品の
ような良くわかっているサブ回路の動作レベルモデルと、未試験サブ回路のゲー
トレベルモデルを設計精度とシミュレーション性能とのトレードオフとして用い
る。
市販の論理部品の動作レベル14のシミュレーションモデルは代表的には大き
な回路のシミュレーション時に設計者により手動的にプログラムされる。手動プ
ログラミングは時間がかかるとともに誤りを生じやすい作業である。
最近では、市販の論理部品の動作レベル14のモデルが入手可能である。例え
ば、Logic Modeling Corporationから、論理自動化記述言語(“LADL”)で
記述された、種々の市販の部品に対する精密なシミュレーションモデルのライブ
ラリーが入手可能である。回路設計者はLADLモデルを用いることにより、慣
例の論理部品の手動プログラミングから開放され、それらのプロプリエタリ回路
設計及び関連するシミュレーションモデルプログラムの開発に集中することがで
きる。その結果モデルプログラミング時間が減少し、相当精密なシミュレーショ
ン結果を生する。
市販のシミュレーションモデルの市場は周辺コントローラ、マイクロプロセッ
サ及びメモリのようなもっと複雑な部品のシミュレーションモデルの開発を要求
している。更に、回路設計者は複雑回路のシミュレーションに必要とされる精度
を得るために動作レベルモデル14に加えてゲートレベルモデル18を要求して
いる。確かに、幾つかのシミュレータはミックスモードで動作する。複雑部品の
ゲートレベルシミュレーションモデル18を精密に開発するには自動モデル開発
ツールを必要とする。
図2は従来の自動モデル生成プロセスを例示する。回路設計は標準のエレクト
ロニック デザイン インターチェンジ フォーマット(”EDIF”)のよう
な構造データファイル30に記憶される。構造データファイル30は代表的には
シミュレーションモデルに必要とされないデータを含むため、構造データファイ
ル30はデータトランスレータ32により、シミュレーションモデルコンパイラ
36が読み取り可能なネットリスト34に変換される。シミュレーションモデル
コンパイラ36はネットリスト34に種々のステップ、即ち構造区分化及び実行
時間レベルの割り振り(“レベル化”と称す”)を実行する。モデルコンパイラ
36が終了すると、出力トランスレータ38がコンパイルされたモデルを特定の
シミュレータ42の要件と適合するモデルファイル40に変換する。
このようなシミュレーション自動化ツールの開発は電子設計自動化分野におい
て開発努力が注がれている。例えば、Wang,Hoover,Porter,et al,“SSIM:A
Software Levelized Compiled-Code Simulator”,Proceedings of the 24th AC
M/IEEE Design Automation Conference,1987,に、同期論回路のシミュレーシ
ョン性能を増大するレベル化及びシミュレーション技術が開示されている。これ
には帰還ループを有する回路はレベル化できないことも記載されている。
Maurer and Wang,“LECSIM:A Leverixed Event Driven Compiled Logic Sim
ulator”,Proceedings of the 27th ACM/IEEE Design Automation Conference
,1990,に、論理回路の時間遅延のシミュレーション性能及び精度の改善方法が
開示されている。しかし、これは非同期論理回路に適用できない。
Maurer and Wang,“Techniques for Unit-Delay Compiled Simulation”,Pr
oceedings of the 27th ACM/IEEE Design Automation Conference,1990,に、
帰還ループを含む回路モデルをレベル化する技術が開示されている。しかし、帰
還ループと関連する機能評価問題については何の記載もない。
上述の作業はモデル化回路が完全に同期形であるときはいつでも成功する。し
かし、慣例の技術でシミュレーションモデルに変換するする場合、集積回路のよ
うな高度に複雑な回路に対するネットリストはタイミングエラー及び機能評価エ
ラーを示す。このことは予期しえないことではない。その理由は、集積回路は多
くの場合システムバス制御され且つ分配クロック動作され非同期動作を示す多数
のサブ回路を有するためである。技術の趨勢は、集積回路を非同期、“セルフタ
イムド”サブ回路の広範の使用を実際上必要とす”システム オン チップ”
化することにある。
ミヨシ氏の米国特許第4342093号;“ディジタル論理シミュレーション
の方法”に、別の自動化シミュレーションモデル生成方法が開示されている。こ
のシミュレーションシステムは、シミュレータが部品の機能評価を必要とすると
き、実際の部品の機能を大きな回路のシミュレーションモデルに代入する。この
技術は、複雑な集積回路のソフトウェアモデルが得られない場合に有効である。
しかし、このようなシミュレーションモデル化を支援するのに必要とされるハー
ドウェアは高価であり、モデル化する部品が入手不可能なもの又はまだ開発中で
あり適正に機能しないものである場合には役に立たない。
従って、必要なのは、回路の構造データ記述から複雑な同期/非同期論理回路
の精密なシミュレーションモデルを生成するシステム及び自動化方法である。
発明の概要
従って、本発明の目的は、ゲートレベル設計データを精密であり且つ高いシミ
ュレーション性能を有する動作レベルシミュレーションモデルに変換するシステ
ム及び方法を提供することにある。
本発明の他の目的は、回路の使用前に複雑な集積回路の精密なシミュレーショ
ンモデルを提供することにある。
本発明の更に他の目的は、同期及び非同期機能の混在動作を示す複雑な論理回
路と関連するモデル化問題を除去することにある。
本発明の更に他の目的は、種々の市販の論理シミュレータにより実行しうるシ
ミュレーションモデルを生成することにある。
本発明は、複雑な論理回路を記述するゲートレベルネットリストを“C”言語
のような可搬言語で表したシミュレーションモデルに変換するシステム及び方法
を提供する。モデル開発データのソースをゲートレベルに移すことによりシミュ
レーションモデルの機能評価が改善される。ネットリストのモデルへの変換はネ
ットリストを追跡しこれを複数の構造区分に分割するステップを含む。これらの
区分は、同期及び非同期サブ回路間の境界を識別するのに有用なホエン−コンデ
ィション(WHEN−CONDITION)区分を含む。ネットリストは更に構
造区分化に基づき区分ごとに解析され、実行時間レベルにコンパイルされる。通
常レベル化できない非同期帰還ループは、帰還ループ内に“レベラ”と称す時間
遅延素子のような素子を挿入することにより正しくモデル化する。
得られたシミュレーションモデルの評価は再評価及ステップ及び評価安定性検
査ステップを含み、非同期帰還ループの正しい機能評価を与える。
本発明の追加の目的及び利点は図面を参照して以下に説明する本発明の好適実
施例の詳細な説明から明らかになる。
図面の簡単な説明
図1は従来の回路開発プロセスにおける設計仕様と種々のステップにおけるモ
デル精度との間に存在するトレードオフをグラフ的に示す図である。
図2は従来の自動化シミュレーションモデル開発プロセスを示す簡略ブロック
図である。
図3Aは従来のROMアレイ及びトライステート出力段と関連するメモリアク
セス時間パス及び出力エネーブル伝搬時間パスのゲートレベル表現を示す。
図3Bは図3Aの従来回路表現の信号間の正しいタイミング関係を示す波形図
である。
図3Cは、図3Aの回路表現を従来のモデル化方法を用いてシミュレートする
際に生ずる誤ったタイミング関係を示す波形図である。
図4は各入力信号ライン内に従来の伝搬時間遅延モデル素子を更に含む図3A
の回路表現のゲートレベル表現である。
図5Aはクロック制御レジスタ及びトライステート出力段を有する従来のRO
Mアレイ回路表現と関連するメモリアクセス時間パス及び出力エネーブル伝搬時
間パスを示す。
図5Bはず5Aの従来の回路表現の信号間の正しいタイミング関係を示す波形
図である。
図6Aは各入力信号ライン内に従来の伝搬時間遅延モデル素子を更に含む図5
Aの回路表現のゲートレベル表現である。
図6Bは、図5Aの回路表現を図6Aに示すように配置された従来の時間遅延
モデル素子を用いてシミュレートする際に生ずる誤ったタイミング関係を示す波
形図である。
図7は従来の伝搬時間遅延モデル素子が正しく挿入された図5Aの回路のゲー
トレベル表現である。
図8は回路素子の上に対応する従来の回路モデル素子を重ねて示す図7の回路
表現を示すブロック図である。
図9は従来のシミュレーションモデルの汎用ブロック図である。
図10は図9の従来のシミュレーションモデルのシミュレータによる実行のフ
ローチャートである。
図11A,11B及び図11Cは2段シフトレジスタでトライステート制御出
力端を有する第2の2段シフトレジスタを駆動する回路の簡略回路図を示すとと
もに、それぞれAFTERコード区分、WHENコード区分及びWHEN−CO
NDITIONコード区分を強調表示する図である。
図11Dは図11Aの回路の完全な構造区分化を示す。
図12Aは従来のレベル化方法によるレベル化初期状態を示す排他的OR(“
XOR”)ゲート回路の回路図である。
図12B,12C及び12Dは従来のレベル化方法により“レベル−1”が付
された状態、“レベル−2”が付された状態及び完全にレベル化された状態をそ
れぞれ示す図12AのXOR回路の回路図である。
図13は従来のレベル化方法により完全にレベル化された図11の回路図を示
す。
図14は非同期相互接続を有する2つの同期回路に分割した図11Aの回路図
を示す。
図15は本発明による同期レベル化ステップ後に存在するレベル化状態を示す
図11の回路図を示す。
図16は本発明による非同期レベル化ステップ後に存在ずるレベル化状態を示
す図11の回路図を示す。
図17は本発明による区分別レベル化方法後に存在するレベル化状態を示す図
11の回路図を示す。
図18は本発明による改善シミュレーションモデルの汎用ブロック図である。
図19は図18のシミュレーションモデルのシミュレータによる実行のフロー
チャートである。
図20Aは同期帰還ループのレベル化の失敗を示す交差結合ラッチ回路の簡略
回路図である。
図20Bは本発明に従って帰還ループ内に“レベラ”を挿入することにより同
期レベル化を補正した図20Aの回路を示す。
図21Aは非同期レベル化失敗を発生する帰還ループを含む図11Aの回路を
示す。
図21Bは本発明に従って帰還ルーブ内に“ラベラ”を挿入することにより非
同期レベル化を補正した図11Aの回路を示す。
図22は本発明に従ってレベル化帰還再評価及び安定検査により更に改善され
た図19のシミュレーションモデルの機能評価プロセスのフローチャートである
。
好適実施例の詳細な説明
論理回路及びそのタイミングをシミュレートするにはその論理回路のシミュレ
ーションモデルをプログラミングする必要がある。実際には、シミュレータが論
理状態変化(以後“変化”と言う)によりトリガされ、回路のシミュレーション
モデルを呼び出す。このような技術は“イベント駆動シミュレーション”と呼ば
れ、公知である。変化に応答してモデル化された回路機能をシミュレータが評価
する。評価に続いて、適切な回路タイミングが回路に対する遅延表から選択され
る。次いでモデルコードがポスト評価用の論状態セット及び関連する遅延時間を
シミュレータに戻す。
論理回路のシミュレーションの精度は回路のシミュレーションモデルの精度以
上にできない。遅延時間のモデル化は特にエラーを生じやすい処理であり、自動
モデル開発プロセスの種々のステップにおいて生ずる。これらのステップは回路
を記述するネットリストを追跡して種々の回路素子を機能区分及び実行時間レベ
ルに分類するステップを含む。本発明は区分化及びレベル化に関連する時間遅延
誘発モデル化エラーを除去する方法を含むものである。
遅延時間を正しくモデル化することの困難性は多数の例を用いて強調すること
ができる。各例を、異なるタイプのタイミング問題、このタイプの問題に対する
従来の解決方法及びこの解決方法の欠点について説明する。これらの例は次第に
遅延時間モデル化問題の複雑性が増し、これらの例について従来のモデル開発に
おける評価を説明し、次に本発明のモデル開発方法を説明する。これらの例を以
下の図群を参照して説明する。
図3A,3B,3C及び4は従来の非同期ROMアレイのゲートレベル表現例
及びそのタイミング問題を説明するためのものである。
図5A,5B,6A,6B及び7は従来の同期ROMアレイのゲートレベル表
現例及びそのタイミング問題を説明するためのものである。
図8、9及び10は区分化した従来のゲートレベルモデル及びシミュレータに
おけるこのモデルの実行を説明するためのものである。
図11A,11B,11C及び11Dは同期及び非同期サブ回路が混在する回
路に適用した本発明の改善されたモデル区分化プロセスを説明するためのもので
ある。
図12A,12B,12C及び12Dは同期XOR回路に適用した従来のレベ
ル化方法を説明するためのものである。
図13、14、15、16及び17は同期及び非同期混在回路に適用した本発
明の区分化したレベル化方法を説明ずるためのものである。
図18及び19は本発明による改善された区分化回路モデル及びシミュレータ
におけるこのモデルの実行を説明するためのものである。
図20A,20B,21A,21B及び22は非同期帰還ループを有する回路
及びこのような回路に生ずる時間遅延問題に対する本発明の解決方法を説明する
ためのものである。
図3Aに示す第1の例はトライステートドライバ50に接続されたリードオン
リーメモリ(“ROM”)48を含む回路46Aのゲートレベル表現である。A
DDRライン54に供給されるアドレス信号に応答してトライステート出力信号
がDATA出力端子52に現れる。トライステートドライバ50のようなトライ
ステートデバイスにより発生される3つの状態は論理1状態(“ハイ”)、論理
0状態(“ロウ”)、又は高インピーダンス状態(“ディセーブル”)である。
ハイ及びロウ状態は、デバイスがエネーブル状態のときにのみ発生する。トライ
ステートドライバ50のDATA出力52は出力エネーブル信号OE56に応答
してエネーブル及びディセーブルされる。回路46Aは2つの非同期伝搬遅延パ
ス、即ちADDRライン54の状態変化からDATA出力端子52の状態変化ま
での時間を表すメモリアクセス時間(“tacc”)58及びエネーブル信号O
E56の変化からDATA出力52がエネーブルされるまでの時間を表す出力エ
ネーブル時間(“toen”)60を有する。
図3BはADDRライン54、DATA出力端子52、OE56,tacc5
8及びtoen60の代表的なタイミング関係を表し、ほぼ同時の信号変化が発
生ずると複雑なタイミング動作が生ずることを示す。図3Bは、ADDRライン
5が瞬時TAにおいてOLDアドレス66からNEWアドレス68へ変化するこ
と、及びOE56がtaac58の終了前に変化してトライステートドライバ5
0をエネーブルすることを示す。最初にROM48からのOLDデータ値70が
DATA出力端子52に現れ、次いでtaac58の終了時にNEWデータ値7
2が現れる。回路46Aの正しく実現されたシミュレーションモデルはOLDデ
ータ値70及びNEWデータ値72の両方を発生する必要がある。
図3Cに示すように、回路46Aの慣例のモデル化は次のような誤ったシミュ
レーション結果を生ずる。瞬時TAにおけるNEWアドレス68へのADDRラ
イン54の変化がモデルの評価を生じさせ、ROM48の新しくアドレスされた
データ値をトライステートドライバ50の入力端子に発生せしめる。このときO
E56はロウであるため、トライステートドライバ50はディセーブルであり、
DATA出力端子52の変化を阻止する。OE56がエネーブル瞬時TEにおい
てハイになるとき、トライステートドライバ50がエネーブルされ、DATA出
力端子52から現在のNEWアドレス68によりアドレスされたROM50の現
在のNEWデータ値72がシミュレータに早く戻されすぎることになる。
このようにtoen60及びtacc58間の遅延時間差が不注意に無視さ
れ、OLDデータ値70がDATA出力端子52に現れることが阻止される。慣
例のシミュレーションモデルは回路46Aが実際にそれを許す前にNEWデータ
値72を使用可能にするという誤った印象を与え、シミュレーション失敗を生ず
る。
この問題は、シミュレーションモデルに異なるタイミングを与えることにより
除去しうる。図4は、ADDRライン54に付加したtaac遅延80及びOE
56に付加したtoen遅延82を有する回路46Bのゲートレベル表現を示す
。アドレスライン54は瞬時TAにおいて変化し、ROM48はNEWアドレス
68をtaac遅延80後に受信し、この瞬時にシミュレータが回路46Bを評
価する。同様に、OE56が瞬時TEにおいてハイになるとき、その変化がトラ
イステートドライバ50ではtoen遅延82だけ遅延され、その後にシミュレ
ータが回路46Bを再び評価する。toen遅延82はtaac遅延80より短
いので、トライステートドライバ50をOLDアドレス66がROM48に供給
されOLDデータ値70を出力端子52に正しく発生する前にエネーブルする。
taac遅延80後に、回路46Bが再び評価され、DATA出力端子52がO
LDデータ値70からNEWデータ値72へ正しく変化する。
上述の例では、伝搬遅延をシミュレーションモデルの入力端子に付加すること
により一層精密なシミュレーションモデル評価を生じさせている。しかし、図5
Aは別のタイミング問題を示すクロック制御アドレスレジスタ90を有する回路
46Cのゲートレベル表現を示す。図5Bは回路46Cの正しいタイミング関係
を下ず。回路46Bと異なり、taac58はADDR入力54が変化する瞬時
TAではなくクロック信号CK94が論理状態を変化する瞬時Tcにおいて開始す
る。
前述の例に従って、図6Aは回路46Cの入力端子にtacc遅延96及びt
oen遅延82を付加したものを示す。しかし、図6Bは回路46Cの評価にお
いて生ずる誤ったタイミング関係を示す。タイミング評価問題は、ADDR入力
54が瞬時Tc後であるがtacc58の終了前にNEWアドレス100からN
EWIアドレス102へ変化するときに起こる。ROM48の評価は、CK94
が瞬時Tcにおいて変化する瞬時に起こらないで、CK94がtacc58だけ
遅延されるまで待つ。この評価前に、OE56が瞬時TEで変化し、toen6
0だけ遅延された後に回路46Cの評価を生ぜしめる。toen60はtacc
58より短いため、OLDアドレス66が依然としてROM48に供給され、O
LDデータ106の値が正しくDATA出力端子52に与えられる。tacc5
8の終了時においては、回路46Cが再び評価されるとともに、NEWIアドレ
ス102がクロックアドレスレジスタ90に記憶され、ROM48に供給される
ため、NEWIデータ108の値が誤ってDATA出力端子52に現れる。
入力への伝搬遅延の付与は回路46Bに示すように非同期遅延をモデル化する
のに有効であるが、回路46Cに示すように同期(クロック)遅延をモデル化す
るには不適切であること明らかである。
図7は、tacc遅延96をクロック制御アドレスレジスタ90の後に挿入す
ることにより上述の同期遅延モデル化問題を解決した回路46Cを示す。図5B
を再び参照して、CK94が変化するとき、クロック制御アドレスレジスタ90
がNEWアドレス100を記憶し、このアドレスをtacc58後にROM48
に供給する。信号OEが瞬時TEで変化し、トライステートドライバ50をto
en60後にエネーブルするので、OLDデータ106が正しい時間にDATA
出力端子52に発生する。tacc58後に、NEWアドレス100がROM4
8に与えられ、NEWデータ100の値が正しくDATA出力端子52に現れる
。
先に述べたように、回路46Cのような論理回路をシミュレーションモデルに
変換するには、種々の回路素子を区分化するとともに、これらの素子を実行時間
レベルに分類する必要かある。図8は従来の区分化方法を示し、回路46Cのク
ロック制御アドレスレジスタ90はホエン(WHEN)ブロック120内に含ま
れ、ROM48及びトライステートドライバ50はtacc96及びtoen8
2により分離されたアフター(AFTER)ブロック122内に含まれる。AD
DRライン54、CK94及びOE56入力はそれぞれ“ホエン(WHEN)”
入力,“ホエン−コンディション(WHEN−condition)”入力及び
“アフター(AFTER)”入力と言う。クロック制御アドレスレジスタ90は
“トランスポートレジスタ”と言う。WHENブロック120は、入力信号が変
化する”時”(WHEN)に駆動される全ての回路素子を含み、AFTERブロ
ック122は信号変化が論理回路を伝搬した“後”(AFTER)に論理回路の
出力を駆動する全ての回路素子を含む。回路素子の伝搬遅延時間を表す一組のト
ランスポート遅延124をWHENブロック120とAFTERブロック122
との間に介挿する。
図8を図9へ変化させ、図9は回路46Cのような同期論理回路を評価するた
めに使用する、LADLモデルのような従来のシミュレーションモデル125を
示す。シミュレーションモデル125において、WHENブロック120は同期
入力が変化するときに発生する対応する回路機能を表す実行可能コードを含む。
同期入力はWHEN−condition制御入力126であり、WHEN入力
128はデータ入力である。トランスポートレジスタ130は出力を直接的に駆
動し、又は間接的に、例えばROMアレイを介して駆動する。出力を直接的に又
は間接的に駆動する入力をAFTER入力132と言う。トランスポートレジス
タ130又はAFTER入力端子132に付加する遅延素子をトランスポート遅
延134と言う。AFTERブロック122は上述の信号に応答して生ずる回路
機能を表す実行可能コードを含む。
図10は従来のシミュレーションモデル125の実行ステップ及び代表的な論
理シミュレータとの相互作用を示すフローチャートである。ここでは図10のプ
ロセスを参考のために示すだけとする。このプロセスの改善の必要性及びこれら
の改善をどのように達成するかについては追加の例について後に説明する。
従来のシミュレーションモデル125を同期及び非同期サブ回路が混在する論
理回路に適用すると、追加のタイミング評価問題が生じ、回路素子を非同期サブ
回路の回路素子区分を含む種々の区分のメンバーとして分類する必要がある。
図11Aは、フリップフロップ160及び162からなる2段同期シフトレジ
スタ、トライステート出力ドライバ164、及び非同期遅延クロック信号170
を発生するフリップフロップ166及び168からなる第2同期シフトレジスタ
を有する同期及び非同期混在論理回路159を示す。バッファ172、174、
176、178、180及び182を回路に付加してあり、これらのバッファは
区分分類プロセスのための”プレースホルダ”として作用する。
回路159に対するネットリストを下に示す。
G1:Sbuf(D2,G10ut);
G2:Sbuf(R10ut, G20ut);
G3:Sbuf(R20ut,G30ut);
G4:Sinv(ENB,G40ut);
G5:Sbuf(D1,G50ut);
G6:Sbuf(R30ut,G60ut);
G7:Stsbuf(R40ut,G40ut,OUT);
R1:Sdff(CK,G10ut,S0,S0,R10ut);
R2:Sdff(CK,G20ut,S0,R,R20ut);
R3:Sdff(G30ut,G50ut,S0,S0,R30ut);
R4:Sdff(G30ut,G60ut,S0,S0,R40ut);
ここで、“Sbuf”はバッファ、“Stsbuf”はトライステートバッファ
、”Sdff”はD形フリップフロップ(レジスタ)であり、且つ“S0”はD
形フリップフロップのセット又はリセット入力端子の接地接続のような一定の零
論理状態を示す。
区分化プロセスステップは、(1)AFTER区分Aに属する素子を分類する
ステップ、(2)WHEN区分Wに属する素子を分類するステップ、及び(3)
非同期WHEN−CONDITION区分WCに属する素子を分類するステップ
を含む。
図IIAはAFTER区分Aの素子を強調表示した回路159を示す。AFT
ER区分A内の素子は、追跡パス、即ち各出力ポートから入力ポート又はレジス
タ出力端子に達するまで各駆動素子及びその直前の素子を逆方向に辿る信号パス
に沿ってネットリストを追跡することにより識別する。この区分に含まれる各素
子にはラベル“A”を付す。追跡終点はAFTER区分A又はトランスポートレ
ジスタ信号”T”の入力端子である。AFTER区分Aの追跡は“OUT”ポー
トで開始し、トライステートドライバ164を経て逆方向に追跡する。追跡はト
ライステートドライバ164で分岐しここから連続してバッファ172を経て入
力ポート“ENB”で終了する。他方のブランチはトライステートドライバ16
4から連続してフリップフロップ162の出力端子で終了する。ENB入力及び
フリップフロップ162の出力はトランスポート値(AFTER入力)である。
図11BはWHEN区分Wの素子を強調表示した回路159を示す。WHEN
区分W内の素子は、追跡パス、即ち各レジスタの同期データ入力端子から入力ポ
ート又はレジスタ出力端子に達するまで関連する各駆動素子及びその直前の素子
を逆方向に辿る信号パスに沿ってネットリストを追跡することにより識別する。
この区分に含まれる各素子にはラベル“W”を付す。追跡終点はWHEN区分W
への入力端子になる。ラベルが付された素子に加えて、WHEN区分W内のデー
タ入力端子及び出力端子を有する全てのレジスタ(トランスポート値とラベル付
けされた出力端子を有するレジスタも含む)にもラベル“W”を付ける。WHE
N区分Wの追跡はフリップフロップ166、168、160及び162において
順に開始する。バッファ174、176、178及び182はWHEN区分Wの
メンバーとしてラベル付けする。入力ポートD1及びD2はWHEN入力端子で
あり、フリップフロップ166、160及び162はWHENレジスタである。
フリップフロップ168はWHEN区分Wから駆動される入力を有するが、その
出力はWHEN区分Wの一部分でもなければ、“トランスポート”値でもない。
図11CはWHEN−CONDITION区分WCを強調表示した回路159
を示す。WHEN−CONDITION区分WCは、追跡パス、即ちレジスタの
非同期制御入力端子(例えばクロック、セット、及びリセット)から入力ポート
又はレジスタ出力端子に達するまで各駆動素子及びその直前の素子を逆方向に辿
る信号パスに沿ってネットリストを追跡することにより識別する。WHEN−C
ONDITION区分に含まれる各素子にはラベル“WC”を付し、追跡終点は
WHEN−CONDITION区分WCへの入力端子である。ラベル付けされた
素子に加えて、WHEN−CONDITION区分WC内の制御入力端子及び出
力端子を有する全てのレジスタもWHEN−CONDITIONレジスタとして
ラベル付けする。WHEN−CONDITION区分WCの追跡はフリップフロ
ップ166、168、160、及び162において順に開始する。バッファ17
8はWHEN−CONDITION区分WCのメンバーとしてラベル付けする。
入力ポート”CK“及び”R”はWHEN−CONDITION入力であり、フ
リップフロップ168はWHEN−CONDITIONレジスタである。
図11Dは全ての区分にラベルを付した回路159を示す。
区分化後に、シミュレーションモデルを完成する次のステップはレベル化、即
ち各回路素子をその正しい実行時間レベルに位置させ、シミュレータによるモデ
ル評価の実行時に正しい順序の評価を生ぜしめる処理である。慣例の技術は同期
論理回路をレベル化し、このレベル化は入力ポートから出力ポート又はレジスタ
入力端子までこの論理回路に対するネットリスト内のデータフローを追跡するこ
とにより各レベルを識別することからなる。各レベルの論理素子は独立の評価順
序である。
図12A−12DはXORゲート回路190及びその構造を従来のレベル化方
法に従ってレベル化するのに必要なデータフロ一処理を示す。回路190は2入
力ANDゲート200)インバータ202、2入力NANDゲート204及び2
06、及び3入力NORゲート208を含む。
図12Aは初期レベル化状態を示す。入力11及び12及びNORゲート20
8の一つの入力(接地接続されている)がレベル−0として初期設定される。各
素子は、その入力が定められたレベルを有するか否かを決定することによりレベ
ル化される。素子の全ての入力が定められたレベルを有する場合には、その素子
かレベル処理のメンバーになり、ネットリストにマークされる。
第1レベル化処理パスは回路190のレベル−1素子を識別する。ANDゲー
ト200への両入力がレベル−0として定められると、このゲートはネットリス
トにレベル−1としてマークされる。インバータ202の入力はまだ定まらない
。NANDゲート204及び206は一方の入力のみが定まる。各素子の入力を
検査した後に、このとき定まっている入力のレベルを次の入力端子に準方向に伝
搬させ、次の処理パスに対するレベル化状態を設定する。
図12Bはレベル−1とマークされたANDゲート200及びその出力端子へ
のレベル−1の伝搬を示す。
図12Cは次のレベル化処理パスを示す。ANDゲート200は、そのレベル
が既に決定されているため、処理しない。ここではインバータ202の入力がレ
ベル−1として定まるため、インバータ202はネットリストにレベル−2とし
てマークされる。NANDゲート204及び206及びNORゲート208は一
つの入力が定まるだけであり、スキップされる。レベル−2をインバータ202
の出力端子に伝搬させ、次の処理パスを初期設定する。
次のレベル化パスにおいて、NANDゲート204及び206の2つの入力が
定まる(レベル−0及びレベル−2)が、NORゲート208の2つの入力は未
定のままである。次のレベル化パスでNORゲート208に対する処理が完了す
る。
図12Dは全ての素子をレベル化処理した回路190を示す。任意の回路のレ
ベル化処理には必要な数の処理パスが使用される。
レベル化されたXORゲート回路190は次のC−擬似コードで表すことがで
きる。
G1Out=I1&I2; /★レベル−1★/
G2Out=G1Outの反転; /★レベル−2★/
G3Out=I1&G2Out; /★レベル−3★/
G4Out=I2&G2Out; /★レベル−3★/
OUT =G3Out|0|G4Out; /★レベル−4★/
上述の従来のレベル化方法を同期及び非同期混在回路159に適用すると、著
しいモデル化の失敗が生じ、この回路を図13に再び示す。レベル化の初期状態
(レベル−0)は全ての入力ポート(ENB,D1,D2,CK,R)及び全て
のレジスタ出力端子(フリップフロップ166、168、160、162)に示
してある。慣例のレベル化方法を回路159に適用すると、図13に示すように
誤ったレベル化が生ずる。不正にレベル化された回路159は次のC−擬似コー
ドで表すことができる。
G1Out=D2; /★レベル−1★/
G2Out=R1Out; /★レベル−1★/
G3Out=R2Out; /★レベル−1★/
G4Out=ENB反転; /★レベル−1★/
G5Out=D1; /★レベル−1★/
G6Out=R3Out; /★レベル−1★/
OUT =TSBUF(G4Out,R4Out);/★レベル−2★/
R1Out=DFF(CK,G1Out,) /★レベル−2★/
R2Out=DFFR(CK,G2Out,R); /★レベル−2★/
R3Out=DFF(G3Out,G5Out); /★レベル−2★/
R4Out=DFF(G3Out,G6Out); /★レベル−2★/
上記のコードをシミュレータにより評価すると、次の機能誤りを生ずる。バッ
ファ178が常にフリップフロップ168より先に評価され、フリップフロップ
160が遅延されたクロック信号170を受け取れない。特に、CKが論理0か
ら論理1へ変化するとき、フリップフロップ168の出力が論理0から論理1へ
変化する。評価はフリップフロップ168の前の状態0をバッファ178を経て
伝搬するとともにフリップフロップ168を論理1に更新する。フリップフロッ
プ160のクロック入力端子は論理0から論理1への変化を受信しないため、バ
ッファ180の状態を記憶することを失敗する。次にCKが論理0から論理1へ
変化するとき、生ずるシミュレータ評価がフリップフロップ168に記憶されて
いる論理1をバッファ178を経て伝搬するので、フリップフロップ160のク
ロッキングが1クロック周期遅れる。入力D1がこの遅延中に変化ずると、D1
の先の値がフリップフロップ160に記憶され、シミュレーション失敗を生ずる
。
上述のシミュレーション失敗は驚くべきことではなく、その理由は、慣例のレ
ベル化方法は論理回路が完全に同期型であることを前提にするものであるからで
ある。
図14は非同期信号、即ち遅延クロック信号170で電気的に接続された2つ
の同期サブ回路210及び212に分割した回路159を示す。回路159は複
雑な集積回路に見られる代表的な回路である。同期及び非同期混在回路は周辺コ
ントローラ、システムバスコントローラ、及び分離クロッキング回路を含む。現
在の技術の傾向は集積回路をこのような混在回路の広範な使用を必要とする“シ
ステム オン チップ”化することにある。
同期及び非同期混在回路の精密なシミュレーションは改善されたレベル化方法
を必要とする。サブ回路210及び212は慣例の同期レベル化方法により独立
に正しくレベル化することができる。しかし、更に非同期相互接続(遅延クロッ
ク信号170)をレベル化する方法を必要とする。このような方法を以下に説明
する。
図11Dに戻り説明すると、同期WHEN区分W及び非同期非同期WHEN−
CONDITION区分WCへの論理回路の区分化は以後“区分別レベル化”と
称す所要のレベル化方法を実行するための所要の構造”データブック”を提供す
る。
区分別レベル化は2つのステップで適用される。ステップ1ではWHEN区分
W及びAFTER区分Aに同期レベル化を適用し、ステップ2ではWHEN−C
ONDITION区分WCに非同期レベル化方法(後述する)を適用する。区分
化情報をシミュレーションモデルコードに付加すると、正しいシミュレーション
が生ずる。
図15はステップ1、即ち同期レベル化を回路159に適用した結果を示す。
WHEN−CONDITION区分WC内の回路素子(フリップフロップ168
及びバッファ178)は無視する。バッファ178の出力をフリップフロップ1
60及び162の”入力”とみなし、従ってレベル−0初期状態を割り当てる。
図16は区分別レベル化方法のステップ2をWHEN−CONDITION区
分WCに適用した結果を示す。ステップ2、即ち非同期レベル化は初期レベル化
状態を変更する必要がある。同期レベル化と異なり、非同期レベル化はレジスタ
(フリップフロップ)出力をレベル−0に初期設定しない。これによりフリップ
フロップ168をバッファ178より先にレベル化させる。
図17は区分別レベル化により生ずるレベル化値を示す。WHEN−COND
ITION区分WC及びAFTER区分Aに属する回路素子を破線ボックスで囲
んで示し、他の全ての回路素子はWHEN区分Wに属するものである。シミュレ
ータがモデルを評価するとき、WHEN−CONDITION区分WCがWHE
NレジスタWの更新前に評価するので、従来の方法で認められた非同期順序問題
が補正される。もっと詳しく言うと、論理素子の評価順序が166、176、1
68及び178ではなく168、178、166及び176になるため、正しい
非同期動作を生ずる。
図18は非同期WHEN−CONDITIONコードブロック220を含む改
善されたシミュレーションモデル219のブロック図を示す。図19はシミュレ
ーションモデル219の実行フローと、代表的な論理シミュレータとの相互作用
とを表すフローチャートを示す。WHENコードブロック120の評価は、非同
期WHEN−CONDITIONコードブロック220に機能評価ステップを付
加ずることにより改善される。図19に示すように、シミュレータによるモデル
219の実行は次のステップに従って進む。
シミュレーションモデル219が入力信号変化150により呼び出される。
判断ブロック151は入力信号変化150の特定の性質に関する問い合わせを
実行する。
入力信号変化150がWHEN−CONDITION信号変化である場合には
、トランスポートレジスタ130と関連しない全てのWHENコード機能が処理
ブロック152、230及び232により示されるように評価される。処理ブロ
ック230は全てのWHEN−CONDITIONコード機能の評価を実行し、
WHEN−CONDITIONレジスタを更新する。処理ブロック232はトラ
ンスポートレジスタ130の評価及び更新されたトランスポートレジスタ130
及びWHEN−CONDITIONレジスタ値の処理ブロック234への復帰を
実行する。処理ブロック234は、判断ブロック151のWHEN−CONDI
TION信号変化の問い合わせに対するNO応答時又はYES応答の完了時にト
ランスポートレジスタ、AFTER入力、及びWHENレジスタの状態の記憶を
実行する。
リスケジューングブロック236は、モデル実行の一時的中止及びモデル実行
のリスケジューリングを実行し、リスケジューリングがトランスポートレジスタ
130に付加されたトランスポート遅延時間134の経過後にモデル実行を再開
させる。シミュレータは、リスケジューリングがモデル実行を再開させるまで、
他のタスクを実行し、記憶されたトランスポートレジスタ130及びAFTER
入力132の値の評価を実行する。
処理ブロック238は、リスケジューリング時間の経過後にAFTERコード
122を評価し、論理回路信号変化を表す出力値をシミュレータに戻すことを実
行する。
改善された評価モデル219は複雑な論理回路の論理回路機能及び伝搬遅延の
精密な表現を提供する。
図17に示すように本発明に従って区分化しレベル化した、回路159を表す
シミュレーションモデルコードはC−擬似コードで下記のように表すことができ
る。
/★WHENコード★/
G1Out=D2; /★WHENレベル-1★/
G2Out=R1Out; /★WHENレベル-1★/
G5Out=D1; /★WHENレベル-1★/
G6Out=R3Out; /★WHENレベル-1★/
/★WHEN-CONDITIONコード★/
R2Out=DFFR(CK,G2Out,R) /★WHEN-CONDITION
レジスタレベル-1★/
G3Out=R2Out; /★WHEN-CONDITIONレベル-2★/
R1Out=DFF(CK,G1Out,); /★WHENレジスタ レベル-2★/
R3Out=DFF(G3Out,G5Out); /★WHENレジスタ レベル-2★/
R4Out=DFF(G3Out,G6Out); /★WHENレジスタ レベル-2★/
/★AFTERコード★/
G4Out=ENB(反転); /★AFTERレベル-1★/
Out=TSBUF(G4Out,R4Out); /★AFTERレベル-2★/
局部非同期帰還ループを有する論理回路は依然として区分別レベル化方法を失
敗させ、回路の誤った機能評価を生じうる。このような失敗は、局部的タイミン
グ遅延の考慮の失敗により生じるとともに、レベル化処理は回路素子への全ての
入力が最初に定められたレベルを有している必要かあるという事実から生ずる。
図20Aは1対の交差結合NANDゲート250及び252を有するセット−
リセット(“SR”)ラッチ回路249を示す。1対の入力IN1及びIN2は
レベル−0に初期設定され、1対の出力OUT1及びOUT2は未定である。N
ANDゲート250はOUT2に接続された未定の入力を有するため、レベル化
できない。同様に、NANDゲート252もOUT1に接続された未定の入力を
有するためにレベル化できない。実際上、SRラッチ回路は帰還ループ内の伝搬
遅延のために正しく機能するが、レベル化方法は遅延を無視する。
図20Bに示すように、レベル化失敗はSRラッチシミュレーションモデルに
遅延素子のような素子を挿入することにより解決することができる。以後レベラ
254と言う記憶素子を帰還ループ内に、NANDゲート250の出力端子の位
置に挿入する。レベラ254はその入力値を評価ステップ間保持する機能を有す
る。レベラ254はレジスタのように動作するが、レジスタと異なり、レベラ2
54の出力が常にレベル化方法のための初期レベル−0状態を提供する。レベラ
254は時間遅延素子でなく、シミュレータに追加の評価反復を行わせ、時間遅
延の機能評価と同様の機能評価効果を生じさせるものである。
ここで、レベル化方法進めると、NANDゲート252への両入力はレベル−
0であるから、このゲートはレベル−1にする。NANDゲート250への入力
IN1はレベル−0であり、他方の入力はレベル−1のOUT2に電気的に接続
されているため、NANDゲート250はレベル−2にする。レベラ254への
入力はレベル−2であるため、レベラ254はレベル−3にする。
図21Aはフリップフロップ168にリセット論理回路259が付加された同
期及び非同期混在論理回路159を示す。フリップフロップ168に接続された
2入力ORゲート260を含むリセット論理回路259はレベル化失敗を生ずる
別の回路である。動作中、ORゲート260の出力端子がフリップフロップ16
8のリセット入力端子261に電気的に接続される。ORゲート260の一方の
入力端子が入力Rを受信し、他方の入力端子がフリップフロップ168の出力端
子に電気的に接続され、非同期”自己クリア”機能が得られる。
図17につき述べたように、フリップフロップ168はWHEN−CONDI
TION区分WCに属し、その出力はレベル−2にする必要かある。しかし、図
21Aに示すように、レベル化方法を回路259に適用するときは、フリップフ
ロップ168のクロック及びデータ入力をレベル−0に初期設定するが、ORゲ
ート260のリセット入力はフリップフロップ168の出力状態に依存する。従
って、ORゲート260からなる非同期帰還ループのためにレベル化が失敗する
。
図21Bはレベル化失敗を補正するために帰還ループ内にレベラ262を挿入
した回路259を示す。レベラ262は初期レベル−0状態を提供するため、フ
リップフロップ168の全ての入力がレベル−0に定まり、ループをレベル化す
ることができる。レベル化方法を進めると、フリップフロップ168はレベル−
1、ORゲート260はレベル−2、及びレベラ262はレベル−3になる。
図20B及び21Bの例には、それぞれのレベラ254及び262を帰還ルー
ブ内に、未定入力の好適位置に挿入することが示されている。実際上、レベラは
帰還ループ内の任意の位置に位置させ、その所望の機能を生じさせることができ
る。しかし、非同期帰還ループ内へのレベラの挿入はモデルの誤った機能評価を
生じうる。図20AにはSRラッチ回路の正しい機能動作を表す論理状態が、図
20Bに示すレベラ付加ラッチ回路の機能動作と比較して示されている。
図20Aにおいて、入力IN1が論理1から論理0へ変化し、入力IN2が一
定の論理1であるものとする。OUT1が最初論理0であり、OUT2が最初論
1である。SRラッチはIN1の論理1から論理0への変化に正しく応答してO
UT1を論理1に、OUT2を論理0に変化させる。
図20Bにおいて、シミュレータが最初にレベラ254からの論理0及びIN
2の論理1を用いてNANDゲート252を評価し、OUT2に論理1を発生す
る。次に(レベル−2)、IN1の論理0を用いてNANDゲート250を評価
し、論理1を発生する。次に(レベル−3)、レベラ254を評価し、論理1を
OUT1へ伝搬する。この機能評価はOUT2に誤った論理1状態を生ずる。
この機能評価誤りは、それ以上評価変化か起こらなくなるまで非同期ループを
繰り返し評価することにより補正することができる。再評価がレベラ254への
入力の論理状態変化によりトリガされ、次の結果、即ちNANDゲート252が
レベラ254から論理1を受信し、OUT2に論理0を発生する。NANDゲー
ト250も再評価されるが、レベラ254又はOUT1に何の追加の変化も生じ
ないので、安定且つ論理的に正しいループ状態を示す。
図22はシミュレーションモデル219の実行フロ0及び代表的な論理シミュ
レータとの相互作用を表すフローチャートを示す。図22のプロセスは図19の
プロセスと同様に進むが、それぞれの処理ブロック152、230、232及び
238の後に判断ブロック270、272、274及び276を付加することに
より改善されている。これらの判断ブロックにより実行される処理はほぼ同一で
あるため、一つのブロックについて説明する。
処理ブロック152はモデル化された回路を表すコードの機能評価を実行する
。
判断ブロック270はレベラ入力の変化(一つあれば)について検査し、変化
が検出された場合に処理ブロック152に再評価を実行させる。そうでない場合
は評価結果を処理ブロック230に与える。
本発明の論理回路モデル化方法は上述の如き種々の改善をもたらし、同期及び
非同期サブ回路及び/又は局部非同期遅延が混在する複雑な論理回路の機能及び
タイミングを精密にモデル化するシステム及び方法を提供する。これらの改善は
、同期及び非同期サブ回路間の境界を識別するWHEN−CONDITION区
分、同期及び非同期混在回路をレベル化する区分別レベル化方法、及び非同期局
部時間遅延を評価するための”レベラ”素子を含む。シミュレーションモデル実
行プロセスは、シミュレーションモデルの正しい機能及びタイミング評価を提供
する再評価ステップ及び評価安定検査ステップを含む。全ての論理回路に同期及
び非同期サブ回路及び/又は局部非同期遅延が混在するわけではなく、当業者で
あれば、上述の種々の改善を論理回路モデルにそれらの個々の回路の要求に応じ
て選択的に適用することができることが理解される。更に、同期及び非同期サブ
回路間の界面に挿入したレベラは、シミュレーション性能を犠牲にするが、混在
回路の正しい評価を生ぜしめることが理解される。従って、同期及び非同期混在
回路のモデル化方法の上述の区分別レベル化及び再評価は好適であり、レベラ方
法も本発明の範囲に含まれる。
回路159及び259のシミュレーションモデルを表す擬似コードの例を以下
に示す。このコードは上述した全ての改善;WHEN−CONDITION区分
化、区分別レベル化、“レベラ”及びループ再評価を生じさせる“Reeval
”(再評価)フラグアドレスを含む”レベラコール”を含む。
/★WHENコード★/
G1Out=D2; /★WHENレベル-1★/
G2Out=R1Out; /★WHENレベル-1★/
G5Out=D1; /★WHENレベル-l★/
G6Out=R3Out; /★WHENレベル-1★/
/★WHEN-CONDITIONコード★/
Reeval=True;
while(Reeval)
Reeval=False;
R2Out=DFFR(DK,G2Out,LOut);
/★WHEN-CONDITIONレジスタ レベル-1★/
R3Out=R2Out; /★WHEN-CONDITIONレベル-2★/
G8Out=R|R2Out; /★WHEN-CONDITIONレベル-2★/
/★If LOut changes,set the Re-evaluation Flag★/
LOut=レベラ(LOut,G8Out and Reeval);
★WHEN-CONDITIONレベル-3★/
R1Out=DFF(CK,G1Out); /★WHENレジスタ レベル-2★/
R3Out=DFF(G3Out,G5Out);
/★WHENレジスタ レベル-2★/
R4Out=DFF(G3Out,G6Out);
/★WHENレジスタ レベル-2★/
/★AFTER コード★/
G4Out=ENB (反転); /★AFTERレベル-1★/
Out=TSBUF(G4Out,R4Out); /★AFTERレベル-2★/
当業者であれば、本発明の上述した実施例の細部に種々の変更を加えることが
できる。従って、本発明は集積回路開発に見られる以外の他の論理回路のモデル
化用途に適用することもできる。従って本発明の範囲は請求の範囲によってのみ
決まる。
Claims (1)
- 【特許請求の範囲】 1.同期サブ回路及び非同期サブ回路を有し、各サブ回路が一以上の素子を含む 論理回路のシミュレーションモデルを作製する方法において、 論理回路を、回路内の素子及びこれら素子間の関連する相互接続を記入した ネットリストで記述するステップと、 ネットリストを追跡し、論理回路をAFTERコード、WHENコード、及 びWHEN−CONDITIONコードに区分化するステップと、 区分化がシミュレーションモデル化コードに維持されるようにシミュレーシ ョンモデルをコンパイルするステップとを具え、 論理回路の正しいシミュレーションを生じることを特徴とするシミュレーシ ョンモデルの作製方法。 2.ネットリストが一以上の前置素子を含む追跡パスと関連する出力ポートのリ ストを含み、且つ追跡ステップが、 ネットリストを、リストされた出力ポートから各前置素子を経て、入力ポー ト又はレジスタ出力端子において追跡パスの終点に達するまで逆方向に追跡する ステップ、 追跡パスに沿う各素子をAFTERコード区分のメンバーとして識別するス テップ、及び 各追跡パスの終点をAFTERコード区分への入力端子又はトランスポート レジスタ出力端子として識別するステップを具えることを特徴とする請求の範囲 1記載の方法。 3.ネットリストが一以上の前置素子を含む追跡パスと関連するレジスタ同期デ ータ入力端子のリストを含み、且つ追跡ステップが、 ネットリストを、リストされたレジスタ同期データ入力端子から各前置素子 を経て、入力ポート又はレジスタ出力端子において追跡パスの終点に達するまで 逆方向に追跡するステップ、 追跡パスに沿う各素子をWHENコード区分のメンバーとして識別するステ ップ、及び 各追跡パスの終点をWHENコード区分への入力端子として識別するステッ プを具えることを特徴とする請求の範囲1記載の方法。 4.ネットリストが一以上の前置素子を含む追跡パスと関連するレジスタ非同期 データ入力端子のリストを含み、且つ追跡ステップが、 ネットリストを、リストされたレジスタ非同期データ入力端子から各前置素 子を経て、入力ポート又はレジスタ出力端子において追跡パスの終点に達するま で逆方向に追跡するステップ、 追跡パスに沿う各素子をWHEN−CONDITIONコード区分のメンバ ーとして識別するステップ、及び 各追跡パスの終点をWHEN−CONDITIONコード区分への入力端子 として識別するステップを具えることを特徴とする請求の範囲1記載の方法。 5.同期サブ回路及び非同期サブ回路を有し、各サブ回路が一以上の素子を含む 論理回路のシミュレーションモデルを作製する方法において、 論理回路を、回路内の素子及びこれら素子間の関連する相互接続を記入した ネットリストで記述するステップと、 ネットリストを追跡し、論理回路をAFTERコード、WHENコード、及 びWHEN−CONDITIONコードに区分化するステップと、 AFTERコード及びWHENコード区分内の素子を同期的にレベル化する ステップと、 WHEN−CONDITIONコード区分内の素子を非同期的にレベル化す るステップと、 論理回路のシミュレーションモデルを各素子の区分化及びレベル化情報を含 むようにコンパイルするステップとを具え、 シミュレーションモデルを実行するシミュレータが論理回路を正しく評価す るようにしたことを特徴とするシミュレーションモデルの作製方法。 6.非同期レベル化ステップは、 WHEN−CONDITION区分の入力端子をレベル−0に初期設定する ステップ、及び 初期設定ステップ中レジスタ素子出力を無視するステップを具えることを特 徴とする請求の範囲5記載の方法。 7.WHENレジスタコードを含むWHENコード、WHEN−CONDITI ONレジスタコードを含むWHEN−CONDITIONコード、及びAFTE R入力コードを含むAFTERコードに区分化された論理回路のシミュレーショ ンモデルをシミュレータで実行する方法において、 WHEN−CONDITION入力コード変化がシミュレータから受信され たときシミュレーションモデルを呼び出すステップと、 WHENコードを評価し、WHENレジスタコードを評価しないステップと 、 WHEN−CONDITIONコード及びWHEN−CONDITIONレ ジスタコードを評価するステップと、 WHENレジスタコードを評価するステップと、 AFTER入力コード及びWHENレジスタコードを更新するステップと、 AFTERコードをトランスポート遅延時間が経過した後に評価するステッ プと、 AFTERコード値をシミュレータに送出するステップとを具えることを特 徴とする論回路のシミュレーション実行方法。 8.各評価ステップはコードの評価をその評価が安定するまで繰り返すステップ を含むことを特徴とする請求の範囲7記載の方法。 9.非同期論理回路のシミュレーションモデルを評価する方法において、 非同期論理回路のシミュレーションモデル内のモデル化された相互接続内に 入力値及び出力レベルを有するレベラモデルを挿入するステップと、 レベラを有するシミュレーションモデルを、その入力値の逐次評価が安定す るまで繰り返し評価するステップと、 安定なモデル評価結果をシミュレータに送出するステップとを具えることを 特徴とする非同期論理回路の評価方法。 10.レベラは、出力レベルがレベル化時に最初レベル−0であり且つ入力値が 評価間中一定に維持される記憶素子モデルを具えることを特徴とする請求の範囲 9記載の方法。 11.非同期論理回路が帰還ループ具えることを特徴とする請求の範囲9記載の 方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/920,118 | 1992-07-24 | ||
| US07/920,118 US5392227A (en) | 1992-07-24 | 1992-07-24 | System and method for generating electronic circuit simulation models having improved accuracy |
| PCT/US1993/005155 WO1994002906A1 (en) | 1992-07-24 | 1993-06-01 | System and method for generating electronic circuit simulation models having improved accuracy |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08503794A true JPH08503794A (ja) | 1996-04-23 |
Family
ID=25443198
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6504435A Pending JPH08503794A (ja) | 1992-07-24 | 1993-06-01 | 改善された精度を有する電子回路シミュレーションモデル発生システム及び方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5392227A (ja) |
| EP (1) | EP0651901B1 (ja) |
| JP (1) | JPH08503794A (ja) |
| AT (1) | ATE171288T1 (ja) |
| DE (1) | DE69321124T2 (ja) |
| WO (1) | WO1994002906A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6813598B1 (en) | 2000-02-04 | 2004-11-02 | Renesas Technology Corp. | Logic simulation method and logic simulation apparatus |
Families Citing this family (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5530841A (en) * | 1990-12-21 | 1996-06-25 | Synopsys, Inc. | Method for converting a hardware independent user description of a logic circuit into hardware components |
| JP3082987B2 (ja) * | 1991-10-09 | 2000-09-04 | 株式会社日立製作所 | ミックスモードシミュレーション方法 |
| US5559715A (en) * | 1992-03-11 | 1996-09-24 | Vlsi Technology, Inc. | Timing model and characterization system for logic simulation of integrated circuits which takes into account process, temperature and power supply variations |
| JP3099310B2 (ja) * | 1993-03-15 | 2000-10-16 | 株式会社東芝 | 回路解析装置 |
| US5812431A (en) * | 1994-06-13 | 1998-09-22 | Cadence Design Systems, Inc. | Method and apparatus for a simplified system simulation description |
| US5581489A (en) * | 1994-01-05 | 1996-12-03 | Texas Instruments Incorporated | Model generator for constructing and method of generating a model of an object for finite element analysis |
| US5650947A (en) * | 1994-01-31 | 1997-07-22 | Fujitsu Limited | Logic simulation method and logic simulator |
| GB9406931D0 (en) * | 1994-04-07 | 1994-06-01 | Philips Electronics Uk Ltd | Data processing apparatus |
| US5673420A (en) * | 1994-06-06 | 1997-09-30 | Motorola, Inc. | Method of generating power vectors for cell power dissipation simulation |
| GB9413127D0 (en) * | 1994-06-30 | 1994-08-24 | Philips Electronics Uk Ltd | Data processing apparatus |
| US5752000A (en) * | 1994-08-02 | 1998-05-12 | Cadence Design Systems, Inc. | System and method for simulating discrete functions using ordered decision arrays |
| US5539680A (en) * | 1994-08-03 | 1996-07-23 | Sun Microsystem, Inc. | Method and apparatus for analyzing finite state machines |
| US5638291A (en) * | 1994-10-14 | 1997-06-10 | Vlsi Technology, Inc. | Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew |
| US6053948A (en) * | 1995-06-07 | 2000-04-25 | Synopsys, Inc. | Method and apparatus using a memory model |
| US5953519A (en) * | 1995-06-12 | 1999-09-14 | Fura; David A. | Method and system for generating electronic hardware simulation models |
| US5809283A (en) * | 1995-09-29 | 1998-09-15 | Synopsys, Inc. | Simulator for simulating systems including mixed triggers |
| US6212668B1 (en) | 1996-05-28 | 2001-04-03 | Altera Corporation | Gain matrix for hierarchical circuit partitioning |
| US5867395A (en) * | 1996-06-19 | 1999-02-02 | Lsi Logic Corporation | Gate netlist to register transfer level conversion tool |
| US5857093A (en) * | 1996-09-20 | 1999-01-05 | Allen-Bradley Company, Llc | Cross-compiled simulation timing backannotation |
| US6301694B1 (en) | 1996-09-25 | 2001-10-09 | Altera Corporation | Hierarchical circuit partitioning using sliding windows |
| US6023567A (en) * | 1996-10-07 | 2000-02-08 | International Business Machines Corporation | Method and apparatus for verifying timing rules for an integrated circuit design |
| US6304836B1 (en) * | 1996-10-28 | 2001-10-16 | Advanced Micro Devices | Worst case design parameter extraction for logic technologies |
| US5987238A (en) * | 1996-11-29 | 1999-11-16 | Cadence Design Systems, Inc. | Method and system for simulating and making a phase lock loop circuit |
| US6028993A (en) * | 1997-01-10 | 2000-02-22 | Lucent Technologies Inc. | Timed circuit simulation in hardware using FPGAs |
| US6049662A (en) * | 1997-01-27 | 2000-04-11 | International Business Machines Corporation | System and method for model size reduction of an integrated circuit utilizing net invariants |
| FR2759826B1 (fr) * | 1997-02-14 | 1999-12-17 | Sgs Thomson Microelectronics | Procede de simulation precise de circuits logiques |
| US6099579A (en) * | 1997-10-02 | 2000-08-08 | Hewlett-Packard Company | Method and apparatus for checking asynchronous HDL circuit designs |
| US6311146B1 (en) * | 1997-12-05 | 2001-10-30 | Lucent Technologies Inc. | Circuit simulation with improved circuit partitioning |
| US6295517B1 (en) * | 1998-04-07 | 2001-09-25 | Synopsis, Inc. | Method and apparatus for adaptively or selectively choosing event-triggered cycle-based simulation or oblivious-triggered cycle-based simulation on a cluster-by-cluster basis |
| WO2002101597A1 (fr) * | 2001-06-12 | 2002-12-19 | Tops Systems Corporation | Procede de planification pour simuler un circuit sequentiel par procede sur base cyclique |
| US6611949B2 (en) * | 2001-11-08 | 2003-08-26 | Sun Microsystems, Inc. | Path filtering for latch-based systems |
| US6701498B2 (en) | 2001-11-08 | 2004-03-02 | Sun Microsystems, Inc. | Black box timing model for latch-based systems |
| US6657500B1 (en) | 2002-01-08 | 2003-12-02 | Taiwan Semiconductor Manufacturing Company | Method and system of characterization and behavioral modeling of a phase-locked loop for fast mixed signal simulation |
| US7039887B2 (en) * | 2002-10-15 | 2006-05-02 | Cadence Design Systems, Inc. | Method and apparatus for enhancing the performance of event driven dynamic simulation of digital circuits based on netlist partitioning techniques |
| US7283942B1 (en) * | 2002-11-26 | 2007-10-16 | Altera Corporation | High speed techniques for simulating circuits |
| US20050197807A1 (en) * | 2004-03-04 | 2005-09-08 | Jerimy Nelson | System and method for maintaining homogeneity between a model in a computer-aided modeling system and corresponding model documentation |
| US20060203581A1 (en) * | 2005-03-10 | 2006-09-14 | Joshi Rajiv V | Efficient method and computer program for modeling and improving static memory performance across process variations and environmental conditions |
| US20070098020A1 (en) * | 2005-10-27 | 2007-05-03 | Yee Ja | Methods and arrangements to model an asynchronous interface |
| US7424691B2 (en) * | 2006-04-11 | 2008-09-09 | International Business Machines Corporation | Method for verifying performance of an array by simulating operation of edge cells in a full array model |
| US8594988B1 (en) | 2006-07-18 | 2013-11-26 | Cadence Design Systems, Inc. | Method and apparatus for circuit simulation using parallel computing |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55153054A (en) * | 1979-05-15 | 1980-11-28 | Hitachi Ltd | Logic circuit simulation system |
| US5067091A (en) * | 1988-01-21 | 1991-11-19 | Kabushiki Kaisha Toshiba | Circuit design conversion apparatus |
| EP0437491B1 (en) * | 1988-10-05 | 1995-12-13 | Quickturn Systems Inc | Method of using electronically reconfigurable gate array logic and apparatus formed thereby |
| US5062067A (en) * | 1989-03-15 | 1991-10-29 | Vlsi Technology, Inc. | Levelized logic simulator with fenced evaluation |
| US5068812A (en) * | 1989-07-18 | 1991-11-26 | Vlsi Technology, Inc. | Event-controlled LCC stimulation |
-
1992
- 1992-07-24 US US07/920,118 patent/US5392227A/en not_active Expired - Lifetime
-
1993
- 1993-06-01 WO PCT/US1993/005155 patent/WO1994002906A1/en not_active Ceased
- 1993-06-01 JP JP6504435A patent/JPH08503794A/ja active Pending
- 1993-06-01 DE DE69321124T patent/DE69321124T2/de not_active Expired - Fee Related
- 1993-06-01 EP EP93915169A patent/EP0651901B1/en not_active Expired - Lifetime
- 1993-06-01 AT AT93915169T patent/ATE171288T1/de active
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6813598B1 (en) | 2000-02-04 | 2004-11-02 | Renesas Technology Corp. | Logic simulation method and logic simulation apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0651901B1 (en) | 1998-09-16 |
| DE69321124T2 (de) | 1999-05-06 |
| DE69321124D1 (de) | 1998-10-22 |
| ATE171288T1 (de) | 1998-10-15 |
| EP0651901A1 (en) | 1995-05-10 |
| US5392227A (en) | 1995-02-21 |
| WO1994002906A1 (en) | 1994-02-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5392227A (en) | System and method for generating electronic circuit simulation models having improved accuracy | |
| US5933356A (en) | Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models | |
| US5282146A (en) | Test assistant system for logical design process | |
| US6763505B2 (en) | Apparatus and method for automated use of phase abstraction for enhanced verification of circuit designs | |
| US20050055675A1 (en) | Generation of software objects from a hardware description | |
| US6301553B1 (en) | Method and apparatus for removing timing hazards in a circuit design | |
| US7076416B2 (en) | Method and apparatus for evaluating logic states of design nodes for cycle-based simulation | |
| JP2003526149A (ja) | クリティカルパス及びフォールスパスの検証方法及び検証装置 | |
| Cherry | Pearl: A CMOS timing analyzer | |
| US5819072A (en) | Method of using a four-state simulator for testing integrated circuit designs having variable timing constraints | |
| US6748573B2 (en) | Apparatus and method for removing effects of phase abstraction from a phase abstracted trace | |
| US8346527B2 (en) | Simulating an operation of a digital circuit | |
| US12073159B2 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
| US6550041B1 (en) | Method and apparatus for evaluating the design quality of network nodes | |
| US6745377B2 (en) | Apparatus and method for representing gated-clock latches for phase abstraction | |
| US6305003B1 (en) | System and method for propagating clock nodes in a netlist of circuit design | |
| US7254793B2 (en) | Latch modeling technique for formal verification | |
| US6848090B2 (en) | Mechanism for recognizing and abstracting pre-charged latches and flip-flops | |
| US6301691B1 (en) | System and method for detecting NFETs that pull up to VDD and PFETs that pull down to ground | |
| Meyer et al. | Active timing multilevel fault-simulation with switch-level accuracy | |
| US7983891B1 (en) | Receiver dependent selection of a worst-case timing event for static timing analysis | |
| US6990643B1 (en) | Method and apparatus for determining whether an element in an integrated circuit is a feedback element | |
| Butler et al. | LAMP: Application to Switching‐System Development | |
| KR100965856B1 (ko) | 순차 실행 고급 프로그래밍 언어를 이용한 디지털 집적 회로 설계, 시뮬레이션 및 검증 방법 및 시스템 | |
| Bening | Developments in computer simulation of gate level physical logic |