JPH1091677A - シミュレーション/エミュレーションの効率を増すための論理変換方法 - Google Patents
シミュレーション/エミュレーションの効率を増すための論理変換方法Info
- Publication number
- JPH1091677A JPH1091677A JP9147736A JP14773697A JPH1091677A JP H1091677 A JPH1091677 A JP H1091677A JP 9147736 A JP9147736 A JP 9147736A JP 14773697 A JP14773697 A JP 14773697A JP H1091677 A JPH1091677 A JP H1091677A
- Authority
- JP
- Japan
- Prior art keywords
- phase
- block
- logic
- original
- output
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
Abstract
フェーズ論理設計に変換しておくことにより、シュミレ
ーション/エミュレーションの高速化を実現する。 【解決手段】 最初にNフェーズの各フェーズに対応す
る論理ブロックとそれに接続されその出力を各フェーズ
のうちのm個(1〜N)のフェーズでサンプリングする
フリップフロップ(FF)とを認識する。次に各論理ブ
ロックについてm>1であればその分だけ複製13をつ
くる。さらに、各FFに1から連続番号をふった後、ブ
ロックの再接続を行う。複製ブロックIの出力が、FF
Iの入力および論理プロック1と複製ブロックJ(I<
J≦N)の入力に接続されるようにし、FFIの出力が
複製ブロックJ(2≦J≦I)の入力に接続されるよう
にする。また、すべてのFFをフェーズ1のFFとする
(フェーズ2のFF14が削除され、再接続に従って所
定位置に新しいフェーズ1のFFが挿入される)。
Description
ミュレート/エミュレートするプログラムのためのコン
ピュータの実行効率を大幅に増加する方法を開示するも
のである。「シミュレーション」および「エミュレーシ
ョン」という用語は、当技術分野では交換して使用され
る傾向があり、その区別は不明確である。したがって、
本明細書では、どちらの用語も同じことを意味するもの
として使用する。
プに製造した後では変更することができない。多くの現
行VLSI設計は、単一のハードウェア・チップにパッ
ケージ化された数百万個の論理ゲート回路を含んでい
る。このような製造の前に回路設計に含まれるすべての
エラーを除去する高速かつ絶対確実な方法を見つけるこ
とは、現在の業界の能力にとって過大な負担であった。
最終パッケージ後は変更不能なので、パッケージ化した
論理回路設計には「バグ」がまったくないことが不可欠
である。数百万個の論理回路を含む現行シリコン・チッ
プ論理設計の例としては、IBMのPowerPCチッ
プや、IntelのPentiumチップがある。
つける現在の方法は、コンピュータ・システム上または
特殊な論理システム内でその設計をシミュレートまたは
エミュレートし、既知の結果を有するシミュレート済み
/エミュレート済みの設計と照らし合わせて処理する方
法である。うまくいけば、製造前にすべてのバグが見つ
かるが、最新の履歴によれば、必ずそうなるわけではな
い。
ータ/エミュレータ動作用に設計された特殊なコンピュ
ータ・システムと、汎用コンピュータ・システムで実行
されるソフトウェアとを含む。
たは層)の論理回路を含み、各レベルは次の論理レベル
への入力になる出力を供給する。一般に各論理レベルは
次のレベルが使用するためにその出力を生成するが、ど
のレベルも外部データを受け取ることができる。設計内
の論理ゲートの出力は、他の上位または下位の論理レベ
ルにあるゲートに入力される前に1つまたは複数の論理
レベルをスキップすることができる。論理ゲートによっ
ては、外部データ入力しか受け取らないものもあれば、
設計内の1つまたは複数の他のレベルにある1つまたは
複数の他のゲートからの出力である入力を受け取るもの
もある。このため、論理ゲートは、それが入力を受け取
るレベルの数によって分類することができる。
レベルの論理ゲートで機能する。論理レベルは論理設計
内のゲート間の入出力依存関係を制御するので、設計内
の各種レベルは複数フェーズ・クロックの各種フェーズ
によってクロックする必要がない。
を格納するためにラッチ回路を使用する。というのは、
ラッチは、製造したハードウェア、たとえば、シリコン
・チップで最も経済的な格納を行えるからである。フリ
ップフロップは、ハードウェアとして製造するには高価
なものであるが、コンピュータ・システム上でシミュレ
ート/エミュレートするにはラッチほど高価ではない。
フリップフロップは、クロック・サイクルの立上りまた
は立下りエッジで設定され、その設定状態をその出力に
ただちに転送し、その後のクロック・サイクルの立上り
または立下りエッジで変更されるまで、この出力状態を
保持する。これに対して、ラッチは、各クロック・パル
スが終了したときにどのような入力状態を受け取っても
それを保持し、しかも次のクロック・パルスの終了まで
その状態を変更することができない。
ート済み論理設計では、それぞれの論理レベルでその内
部ゲートの出力を格納するためにフリップフロップを使
用する。各種論理レベル用のフリップフロップは、論理
設計内のレベル間で信号を伝播するための時間を見込ん
だ複数フェーズ動作で1つのクロックの各種フェーズに
よって制御される。
内の論理ゲートおよびフリップフロップの表現を使用す
る。しかし、シミュレータ/エミュレータは、想定入力
データを使用する論理設計表現について一度に1つのフ
ェーズしか実行しない。各論理レベルの実行によって結
果が生成されるが、これは論理回路設計のそのレベル用
のフリップフロップ表現に一時的に格納される。すべて
のフリップフロップ出力表現の現行状態は、複数フェー
ズ動作のあらゆるフェーズによる使用のために使用可能
になっている。
ルの開始時にそれぞれ設定(セット)されるフリップフ
ロップからなるそれぞれのグループについて複数フェー
ズ・クロックを使用する従来の組合せ論理設計を非常に
単純化して表している。図3は、1つの論理設計で使用
するNフェーズ・クロックのそれぞれのフェーズによっ
て設定されるフリップフロップからなる個別のグループ
を示しているが、実際には、1つの論理設計内に任意の
フェーズ・グループのフリップフロップを分散すること
ができる。従来の論理設計用の複数フェーズ・クロック
は図4に示す。各フェーズは同じサイクル期間を備えて
いるが、各種フェーズの期間は互いにずらした時点から
始まる。
論理回路設計内の各フェーズに割り当てられたフリップ
フロップの設定を計算するために個別のコンピュータ実
行パスを作成するが、一般にこれはシミュレーション/
エミュレーションを実行するための最も効率のよいやり
方であることが判明している。すなわち、1つのフェー
ズ用の各コンピュータ・パスは、そのフェーズ用の次の
サイクルの開始時にそのフェーズのフリップフロップ表
現を設定することにより、関連の論理回路用の出力デー
タを生成する。
とに異なるので、クロック・フェーズの数も異なる。し
かし、所与の論理回路設計内では、クロック・フェーズ
の数とレベルの数は一定である。
理回路設計内のクロック・フェーズと同じ数だけ、その
論理回路設計を通過するコンピュータ実行パスを作成す
る。このような従来のコンピュータ・シミュレーション
/エミュレーション動作は、図1に示す棒グラフで表さ
れる。この棒グラフのY軸はコンピュータ資源の使用の
割合(%)を表す。X軸は時間を表す。X軸に沿ったそ
れぞれの棒は、コンピュータ資源が1つの動作を実行す
るための時間を表している。棒のY軸方向の高さが「全
容量」に達する場合、その棒によって表されるコンピュ
ータ動作は、その論理設計のシミュレーション/エミュ
レーションに使用可能なコンピュータ・システムのすべ
ての資源を使用している。
れぞれの動作フェーズ1、2、・・・Nに分割されてい
る。図1の各フェーズの動作は、設計内のフリップフロ
ップおよび論理回路用の入出力状態を表すためのコンピ
ュータの計算を必要とする。各フェーズの計算は、その
設計内の論理全体のうち、割り当てられたフェーズの開
始時に設定されるフリップフロップだけに入力されるサ
ブセット用の計算のみを含むことができる。しかし、1
つのフェーズ用のこのような論理回路計算(その1つの
フェーズに割り当てられたフリップフロップのみに入力
を供給する)は、(すべてのフェーズについて)いずれ
かのフリップフロップの出力を表すデータ入力状態を受
け取ることができる。
路の一部または全部に外部データを入力することができ
る。
が製造される)はクロック・フェーズ・サイクル1、
2、・・・N(図4ではずらした状態で示す)で順次動
作するが、コンピュータ・シミュレータ/エミュレータ
資源はこのような時差方式では動作しない。論理設計の
シミュレーション/エミュレーションの場合、コンピュ
ータは、その設計用の次の動作フェーズのためのコンピ
ュータの実行を開始する前に、各フェーズごとに別々に
動作を計算する。
作用のフリップフロップが多すぎる論理設計を想定して
いる。すなわち、多数のフリップフロップを論理回路へ
の入力として使用することができ、その論理回路がフェ
ーズ1の計算用の出力を生成する。この場合、その設計
用に実行されるシミュレーション/エミュレーションに
使用可能なコンピュータ資源による1つのコンピュータ
動作でアクセスし処理すべきフリップフロップ状態が多
すぎる可能性があるが、これはシミュレータ/エミュレ
ータに関する一般的な問題である。たとえば、従来の論
理設計のフェーズ1が120個のフリップフロップに格
納された入力データを必要とし、それがコンピュータ・
システムの主記憶装置に格納された2進データによって
表されるものと想定する。論理ゲートの動作を処理する
ためにこのフェーズ1のデータを使用するには、コンピ
ュータ・システムの主記憶装置から120通りのフリッ
プフロップ表現データ状態を取り出す必要があり、この
場合、単一コンピュータ実行動作で使用可能なコンピュ
ータ資源によって実行されるアクセスが多すぎる可能性
がある。たとえば、単一コンピュータ動作では、40通
りのフリップフロップ表現からなるサブセット用のデー
タしか得られないものと想定する。その場合、図1の3
つのフリップフロップ棒のそれぞれは1つの想定コンピ
ュータ内部動作を表し、40通りのフリップフロップ表
現用のそれぞれを総計すると、フェーズ1の実行動作で
使用する120通りのフリップフロップ表現になるはず
である。
フロップ表現データは、記憶域から取り出され、関連の
フリップフロップに関連してタグが付けられる。次に、
フェーズ1の動作用に表現された論理がこのデータを使
って実行され、シミュレータ/エミュレータによるこの
ような論理演算は図1に一連の9個の「論理」棒によっ
て表される(フェーズ1用の3つのフリップフロップ棒
に続く)。各論理棒の高さは、設計内の1つの論理レベ
ルを表すそれぞれのサブグループの論理回路によってそ
のデータに関する論理演算をシミュレートするためにコ
ンピュータ動作中に使用するコンピュータ資源の割合を
表す。
理棒によって表される)を実行すると、コンピュータ
は、フェーズ1のそれぞれのフリップフロップ用の新し
い状態を表すために、論理演算の結果を格納する。この
ようなフェーズ1のフリップフロップ用に格納されたデ
ータは、N個のフェーズのうちの他のフェーズ中に動作
する論理回路用の入力として(他のフリップフロップ用
に格納された状態とともに)使用可能になる。
レート/エミュレートするためのコンピュータ動作は、
1つまたは複数のフリップフロップ棒から始まり、フリ
ップフロップ・データを選択的に受け取るそれぞれのサ
ブグループの論理回路による実行も表す9個の論理棒が
続く。したがって、図1の各フェーズごとに、図示の各
論理棒用のコンピュータ動作は、設計内の各種レベルの
ゲート回路用のものである。各フェーズの開始時にアク
セスされるフリップフロップ・データ状態はそれぞれの
フェーズ中に必要なデータであり、表されるフリップフ
ロップは各種フェーズごとに同じである場合もあれば、
異なる場合もある。
化し、コンピュータ動作の各フェーズ内で左から右に減
少する。この変化は、一般にゲート論理のレベルの上昇
につれて(それぞれの動作フェーズ用のフリップフロッ
プ・データを生成する)論理ゲートの数が減少すること
によるが、これに対応して、それぞれの論理演算を実行
するために使用するコンピュータ資源が減少する。
コンピュータ論理回路動作中に使用しないもの)は、論
理設計のシミュレーション/エミュレーション動作に予
約されている場合、他のどのコンピュータ動作にも使用
不能である。未使用のコンピュータ資源は、図1のN個
のフェーズのそれぞれについて示した論理棒の上の空間
によって図1に表され、使用可能資源のうちの未使用資
源を表している。
れぞれについて1回のコンピュータ実行を必要とする従
来のコンピュータ動作を表しているが、各コンピュータ
実行では、1つのシミュレート済みクロック・サイクル
分の動作の結果を計算するためにシミュレート済み/エ
ミュレート済み設計内のすべての論理を使用する。すな
わち、各動作フェーズの結果を計算するためにN個のフ
ェーズのそれぞれについて個別のコンピュータ実行が行
われる。本発明では、各シミュレートされるクロック・
サイクルの動作ごとにN個のフェーズのすべてのシミュ
レーション/エミュレーション動作を単一コンピュータ
実行に圧縮する方法を発見した。
ーズ1の動作に必要なものと同じコンピュータ資源が割
り当てられる。各フェーズは、そのデータを格納するた
めにそれ専用のフリップフロップを使用する。すなわ
ち、各フェーズ用のフリップフロップは他のフェーズ用
のフリップフロップとは異なる。各フェーズのフリップ
フロップの数は、他のフェーズのフリップフロップの数
と同じである場合もあれば、異なる場合もある(図1で
は数が異なると想定している)。
ップによって格納されたデータを取り出すことによって
始まるものと想定されている。したがって、フェーズ2
は、フェーズ2のフリップフロップによって格納された
データを取り出すことによって始まり、以下同様であ
る。
・データを受け取る論理回路は、他のフェーズ用のフリ
ップフロップ・データを受け取る論理回路と同じである
場合もあれば、異なる場合もある。任意のフェーズが使
用する論理回路の数も、他のフェーズに使用する数と同
じ場合もあれば、異なる場合もある(各フェーズごとに
9個の論理棒の場合)。
レーションにおけるフェーズ動作の数は、シミュレート
/エミュレート中の論理設計内のハードウェア・クロッ
ク用のフェーズと同数になる。
フリップフロップ棒の間に論理棒を散在させることがで
きるので、必要なフリップフロップ状態(フリップフロ
ップ棒によって表される)は論理演算(論理棒によって
表される)中に後でアクセスすることができ、フリップ
フリップ状態は、論理回路の計算動作によって使用され
る時点により接近した時点で取り出すことができる。
エミュレーション動作によって使用されるコンピュータ
時間は、ハードウェア設計で提供されるクロック・フェ
ーズの数に依存する。しかし、シミュレーション/エミ
ュレーションの実行に必要な全時間は、シミュレーショ
ン/エミュレーションを実行するコンピュータ・システ
ムの速度や資源などの多くの変数によって決まる。従来
のシステムでは、複雑なプロセッサ用の完全なシミュレ
ーション/エミュレーション動作は、数カ月分のコンピ
ュータ時間を要することが分かっている。
動作において所与の設計用の論理表現全体を処理するに
は不十分なメモリと入出力空間)しか備えていないコン
ピュータでは、複数のコンピュータ動作で処理すべき設
計内の初期論理レベルが少なくとも必要である可能性が
ある。従来のシミュレータ/エミュレータ動作は、コン
ピュータの効率に限界があるために、論理ゲート回路が
100万個よりかなり少ない設計の処理に制限されてい
た。ハードウェア設計内の論理ゲート回路の数がシミュ
レータ/エミュレータの容量を上回る場合、そのハード
ウェア設計を別々にシミュレート/エミュレートされた
セクションに分割することが必要であり、各セクション
の個別のシミュレーションまたはエミュレーションの結
果を統合して、ハードウェア設計全体の正確さを判定し
ようと試みると、問題が検出されていた。この統合動作
の結果、特定の設計については間違った結論になってい
た。したがって、数百万個の論理回路を含む論理回路設
計全体について単一のシミュレーション/エミュレーシ
ョンを実行できる場合は相当な利点が得られるので、従
来のセクションごとのシミュレーション/エミュレーシ
ョンでは監視不能な動作障害も監視できることに留意さ
れたい。
ン・システムの実行は比較的低速であった。すなわち、
そのシステムは、シミュレート/エミュレートしている
最終的にパッケージ化したハードウェアより6〜8桁分
遅い速度で動作する。これは、実世界の時間的制約内で
数百万個の回路を有する設計について実行可能なシミュ
レーションの量を大幅に低減した特性の1つである。し
たがって、本発明は、既存のシミュレータ/エミュレー
タの変更を必要とせずに、既存のシミュレータ/エミュ
レータの使用速度を大幅に上げるという利点をもたらす
ものである。
08/253881号(PO9−93−046)により
構築されたエミュレータ・システムに非常に有利に適用
され、その従来のシミュレータ/エミュレータより2〜
3桁分速い速度で動作し、1000万個以上の2入力論
理ゲートを含む設計など、かなり大きい論理設計を処理
することができる。
/エミュレーション中に各動作フェーズを処理するに
は、特定の量のコンピュータ処理時間Pが必要であるこ
とが分かる。その場合、従来の論理設計用のシミュレー
ション/エミュレーション動作のN個のフェーズすべて
からなる1つのサイクルを処理するための全時間Tは、
T=N*Pになる。
めの手段】図2は、本発明を使用する論理設計用のシミ
ュレーション/エミュレーション動作の一例を表す棒グ
ラフを示している。図2に使用するシミュレータ/エミ
ュレータは、図1のものと同じであってもよい。
レータにあるのではなく、シミュレーション/エミュレ
ーションのためにコンピュータにそれを提示する前に論
理設計を変更するための方法である。本発明による変更
済みの論理設計は、元の複数フェーズ論理設計の代わり
に、変更済みの論理設計のシミュレーション/エミュレ
ーションのためにコンピュータに提示される。
は、シミュレータ/エミュレータを変更せずにシミュレ
ーション/エミュレーション動作の大幅な速度上昇を可
能にし、コンピュータ化したシミュレータ/エミュレー
タが、論理設計が変更されていない場合に得られたはず
のものと同じシミュレーション/エミュレーション結果
を出力できるようにする。
レーションの速度を最高N倍まで上げることができる。
ただし、Nは、複数フェーズ・クロック式の所与の論理
回路設計内のフェースの数である。たとえば、5フェー
ズ論理設計の従来のシミュレーション/エミュレーショ
ンが5週間分のコンピュータ動作を要していた場合、本
発明を使用すると、1週間分のコンピュータ動作で済む
可能性がある。すなわち、同一シミュレータ/エミュレ
ータで本発明を使用することにより、最高4週間分のコ
ンピュータ時間の節約になる。
ック式論理設計を同等の単一フェーズ・クロック式論理
設計に変更する方法を提供するものであり、後者は以下
の利点を得るためにコンピュータ化したシミュレーショ
ン/エミュレーション動作に提示される。すなわち、
A.コンピュータ動作コストの大幅な節約と、B.米国
特許出願第08/253881号(PO9−93−04
6)に記載されたタイプの高速大容量エミュレータにお
いてもシミュレーション/エミュレーション動作の速度
上昇が可能である。
ズ・クロック式論理ゲートを使用する同等のハードウェ
ア設計について得られるパフォーマンスに比べ、ハード
ウェア論理ゲート設計をモデル化する際のシミュレーシ
ョン/エミュレーション動作のパフォーマンスを大幅に
増加することにある。
ート論理設計を、その複数フェーズ論理設計と論理的に
同一の単一フェーズ論理設計に変換し、シミュレータ/
エミュレータ・パフォーマンスの改善を可能にする方法
を提供することにある。変換した論理設計は、元の複数
フェーズ設計をシミュレート/エミュレートするのに必
要と思われる時間の何分の1かの間にシミュレート/エ
ミュレートすることができる。
ト論理設計を単一フェーズ・ゲート論理設計に変換する
方法を提供することにある。この方法は、複数フェーズ
と単一フェーズ両方の同等の設計において同じ記憶回路
(たとえば、フリップフロップ)を有効に使用し、両方
の設計の同じ状態を格納する。複数フェーズ設計内の各
論理ブロックでは、クロック・サイクル中にその論理ブ
ロックに関連する1つまたは複数の記憶回路にその出力
状態が捕捉されている。複数フェーズ設計を単一フェー
ズ設計に変換するには、回路変更が必要である。このよ
うな回路変更は、複数の関連記憶回路を有する論理ブロ
ックの複製を必要とする。論理ブロックの複製は、元の
複数フェーズ設計内の各論理ブロックに対応する論理ブ
ロック構成内の異なるが同一の論理ブロック(元の論理
ブロックまたは複製した論理ブロック)と各記憶回路と
の1対1の関係をもたらすために単一フェーズ・バージ
ョンで必要な場合に行われる。この1対1の関係によ
り、すべての同一論理ブロックは、複数フェーズ論理設
計内の複数フェーズ・クロックの各サイクルの順次フェ
ーズで行われるように順次ではなく、単一フェーズ・ク
ロックの同一サイクル中に並行して、それぞれの出力を
記憶回路に格納することができる。
計をシミュレート/エミュレートするのに必要と思われ
る時間の何分の1かの間にシミュレート/エミュレート
することができる。
計を、論理的に同等で、かなり少ないコンピュータ時間
を使用する複数フェーズ設計と同じシミュレーション/
エミュレーション結果を生成するために同じ外部印加デ
ータを使用できる単一フェーズ論理設計に変換すること
にある。
計をその入力として受け取る。一般にこの設計は、AN
Dゲート、ORゲート、排他ORゲート、反転ゲートな
どの論理ゲート回路の形式になる。
接続済みゲート回路のグループ(本明細書では「論理ブ
ロック」と呼ぶ)を識別することによって始まる。論理
ブロックは、本明細書では、複数のフェーズ・クロック
時間の1つでその入力がトリガされるフリップフロップ
に単一信号出力を供給するようにまとまって動作する1
つまたは複数のゲート回路を含むものとして定義する。
論理設計によっては、このような論理ブロックとそれに
対応するフリップフロップを数十万個含むものもある。
別々のフェーズで動作するクロック・サイクルの開始時
に関連論理ブロックの出力を格納するために、別々のフ
リップフロップがトリガされる。入力信号の2進状態は
フリップフロップの出力に現れ、トリガ後のサイクルの
何分の1かのわずかな時間にフリップフロップの状態を
表す。次に、フリップフロップの新しい出力状態は、フ
リップフロップの出力に接続されたすべての回路の入力
にただちに提示される。
明の次のステップは、それぞれのクロック・フェーズ
(複数も可)の開始時にブロックの出力をサンプリング
する1つまたは複数のフリップフロップ(FF)を識別
することである。mは、それぞれの論理ブロックに接続
されたFFに関連するサンプリング・クロック・フェー
ズ(複数も可)の数である。一部のFFはN個のすべて
のクロック・フェーズでサンプリングし、他のFFは全
フェーズ(N個のフェーズのうちの一部であってもよ
い)のうちの1つだけでサンプリングし、他のFFはm
個のフェーズでサンプリングする(mは1〜Nの数であ
る)。1つのブロックに接続されたm個のFFのフェー
ズは、1〜Nの数値のうちの1つまたは複数をスキップ
することができる。このため、このようなm個のFF
は、そのフェーズ番号の順序で連続して番号が付けられ
ていない可能性がある。番号付け順序は数値1から始ま
らない場合があり、mで終わらない場合もある。ブロッ
クによっては単一フリップフロップのみでサンプリング
されるものもあれば、複数のフリップフロップによって
サンプリングされるものもある。
を有する元の各論理ブロックを複製する(すなわち、ブ
ロック出力は、複数のフェーズで動作する複数のFFに
よってサンプリングされる)。m=1個の元のブロック
はそれぞれ、任意のフェーズにすることができる1つの
フェーズのみでサンプリングされ、複製されない。した
がって、mは、元の各ブロックとその複製ブロック(複
数も可)を含むブロックの総数である。
ず(1つのサンプリングしたフェーズのみ)、m>1の
場合はブロック複製が行われる。mの最大値はNであ
り、これはその論理設計で使用するフェーズの総数であ
る。
を供給することにより、元の論理ブロックをm−1回複
写することを含む。すなわち、元の各ブロックがm>1
である場合、そのブロックはm−1個の複製を有するこ
とになる。
ズのサンプリングFFのフェーズ番号が割り当てられ
る。この最初に割り当てられる番号は1〜Nの数値にな
る。元の論理設計内の元の各論理ブロックとその最低フ
ェーズFFはブロック/FF対と見なすことができ、そ
のブロックとFFにはそれぞれそのFFのサンプリング
・フェーズで番号が付けられる。番号が大きいフェーズ
を使用する他のサンプリングFFは、それぞれの複製論
理ブロック(複数も可)の1つにそれぞれ関連付けら
れ、このブロックには最初に関連FFの番号が与えられ
る。各複製ブロックとその関連FFは、元の各ブロック
用に用意されたm−1対の複製対のそれぞれに関する複
製ブロック/FF対と見なすことができる。
は、新しいFFと見なすか、または変換した論理設計用
に別のやり方で接続されている古いサンプリングFFと
見なすことができる。
は、最低番号の対(元の対)からその複製対(より大き
い番号を有する)までそれぞれの関連フェーズに応じて
順序付けられる。というのは、これらの対は、その関連
サンプリング・フェーズの順に番号が付けられているか
らである。m>1の元の各ブロック用の一連の対に割り
当てられた初期フェーズ番号は連続番号を有する必要は
なく、この番号付けは1から始まる必要もない。m=1
の元の各ブロックには1つの対しかないので、最初に番
号1が付いている必要がない。
が行われ、必ず1から始まり、必ず連続番号を使用し、
mが最高番号になるような新しい番号になる。したがっ
て、m=1の各対はブロック1として番号が付け直さ
れ、そのサンプリングFFはFF1として番号が付け直
される(これらはその後、フェーズ1でのみ動作するこ
とになる)。m>1の元の各対用の順序では、元のブロ
ックはブロック1として番号が付け直され、そのFFは
FF1として番号が付け直される。また、その複製対
(複数も可)は連続して番号が付け直され、2から始ま
り、mで終わる。このため、最低フェーズの元の対はブ
ロック1/FF1として番号が付け直され、その順序の
次の対はブロック2/FF2として番号が付け直され、
Nを超えない番号mが付く、その順序の最後の対まで以
下同様となる。
ーズ2、4、7で動作する3つのFFによってサンプリ
ングされている場合、その元のブロックはm=3にな
る。そのブロックの2つの複製ブロックはm−1=2に
よって決定される。元のブロックと2つの複製ブロック
は、最初に2、4、7という番号が付けられた3つの対
からなる順序を形成する。その後、これらの対2、4、
7は、連続番号1、2、3(必ず番号1から始まる)を
それぞれ割り当てることにより、番号が付け直される。
このため、これらの対は、ブロック1/FF1、ブロッ
ク2/FF2、ブロック3/FF3として番号が付け直
される。番号が付け直されたFFは新しいFFと見なす
ことができる(または変換した論理設計内で再接続され
ている古いFFと見なすことができる)。
ブロック複製について前述したそれぞれの初期番号順序
に見られる低から高への順序付けが維持される。最終的
な番号の付け直しは、それぞれの「元のブロック/元の
FF」(元の設計で最低番号のフェーズでサンプリング
された対である)に1を割り当てる。各順序の対は、従
来のフェーズ番号順序を維持しながら、1・・・mの連
続番号が付け直される。その順序では、FF1でサンプ
リングされるブロック1は、元のブロックとその関連F
Fである。また、その順序の各複製ブロックIは2から
mの番号が付け直されるが、これは2≦I≦Nという式
によって表される値の範囲内にある。
る。すなわち、論理ブロック1の出力はフェーズ1でF
F1の入力にサンプリングされ、FF1の出力はブロッ
ク1の入力に接続され、各複製ブロックIに接続される
(すなわち、2≦I≦N)。各複製ブロックIの出力は
FFIの入力に接続される。また、複製ブロックIの出
力は論理ブロック1の入力に接続され、Iより大きい番
号を有する各論理ブロックJの入力に接続される(すな
わち、I<J≦N)。FFIの出力は、I以下の番号を
有する各複製論理ブロックJへの入力に接続される(す
なわち、2≦J≦I)。最後に、すべてのFF用のトリ
ガ・クロック・フェーズはクロック・フェーズ1にな
る。
この方法を適用すると、シミュレータ/エミュレータの
パフォーマンスを増加するような変換済み論理設計が得
られる。
プロセス(metamorphosis process)を提供するもので
あるが、このプロセスは、このような回路からなる論理
設計のシミュレータ/エミュレータに入力を供給する際
に有用であることが判明している。この変態は、ハード
ウェアにパッケージ化すべき論理設計の複数フェーズ形
式と同一論理設計の単一フェーズ形式との間の論理設計
の同等性を保持する。この単一フェーズ形式は、論理設
計を完璧にするために必要な資源と時間を大幅に低減す
るために論理設計のシミュレータおよびエミュレータの
パフォーマンスを大幅に増加することができると本発明
により判明しているものである。
論理設計を含む電気回路を大幅に変更するが、論理設計
の変換済み単一フェーズ・バージョンは、論理設計の評
価をシミュレーションまたはエミュレーション資源をよ
り効率よく使用して実行できるようにするために、元の
設計と同じ論理演算を実行する。
の各サイクル中に変換済み単一フェーズ論理設計による
コンピュータ資源の使い方を示している。それぞれの1
フェーズ・サイクル(図2で期間1として示されてい
る)中では、それぞれのNフェーズ・サイクル(図1で
も期間1として示されている)中に実行されるのと同じ
論理関数が実行される。
のNフェーズ・サイクル内の各フェーズ・サブサイクル
よりいくらか長くなっている。しかし、各単一フェーズ
・サイクルは、図1のNフェーズ・サイクル1つ分の動
作を含むN個のすべてのサブサイクルよりかなり短い。
これは、図2では各単一フェーズ・サイクル中に変換済
み論理設計内のすべてのフリップフロップ(FF)の状
態がアクセスされるが、これに対して図1では、図1の
Nフェーズ・サイクルのそれぞれのサブサイクル中に元
の論理設計内のすべてのFFからなる1つのサブセット
のみの状態にアクセスする必要があるからである。した
がって、シミュレータ/エミュレータのそれぞれのフェ
ーズの動作のために、それぞれのフェーズ中に使用する
FFの状態だけにアクセスすればよいことになる。
ュレート中のすべての論理レベルの論理回路およびFF
について、各単一フェーズ・サイクル中の実行が示され
ている。この実行は複製ブロック回路を含む。変換済み
論理設計内の全体的な回路の数は複製ブロックの追加に
よって増加しているが、図1および図2の両方により、
9通りのレベルの論理ブロック実行に関する9個の棒は
100%未満のコンピュータ資源が使用されることを表
し、それは、複製によってコンピュータの動作速度が低
下していないことを示していることに留意されたい。
ちの7つが100%のコンピュータ資源レベルで動作し
ているが、図1では、それより少ない数のフリップフロ
ップ棒が各動作フェーズに示されている。これは、複数
フェーズ動作ではそれぞれのフェーズ中に使用するFF
のみが示されており、各フェーズの動作のサブサイクル
はそれぞれのサブサイクル・フェーズ動作中にブロック
出力によってトリガされるFFとブロックに入力される
FFを含むからである。複数フェーズ・サイクル当たり
のすべてのフェーズについてグラフで示したすべてのF
F棒の合計は、使用したすべてのFFを表す単一フェー
ズ・サイクル内のFF棒の総数と等しいかまたはそれを
上回ることになる。この結果、シミュレーション/エミ
ュレーションの各単一フェーズ・サイクル用の処理時間
は、複数フェーズ動作のN個のサブサイクルのうちのい
ずれか1つよりわずかに長くなる可能性がある。しか
し、各複数フェーズ・サイクル内のN個の複数フェーズ
・サブサイクルのすべてのための全体的な処理時間は単
一フェーズ・サイクルよりかなり長くなるが、必ずしも
N倍(上限近似値である)も長くする必要はない。たと
えば、5フェーズ論理設計の単一フェーズ変換は、元の
5フェーズ論理設計に基づいて、複数フェーズ・シミュ
レーション/エミュレーションより3〜4倍(5倍では
ない)高速でシミュレータ/エミュレータを動作させる
ことができる。
複数フェーズ論理設計(図5に示す)を同一論理設計の
単一フェーズ形式(図9に示す)に変換するために本発
明のプロセスで行われる回路変更の単純例を示してい
る。この単純例は、本発明の動作を理解しやすくするた
めのものである。本発明の一般的な方法については図1
0に表すが、それは好ましい実施例である。
ジョン(図5に表す)から同一論理設計の単一フェーズ
・バージョン(図9に表す)への変態を行うものであ
る。複数フェーズ・バージョンがハードウェアにパッケ
ージ化された形式(たとえば、シリコン・チップ内に形
成される回路)で使用するバージョンの論理設計になる
としても、本発明では、その動作速度が大幅に上昇する
ようにコンピュータ操作のシミュレータ/エミュレータ
に対して論理設計を表すために単一フェーズ形式(図9
に示す)を使用する。しかし、単一フェーズ・バージョ
ンによって行われたシミュレーションまたはエミュレー
ションで得られる結果が論理設計内の問題を示す場合、
このような結果により、複数フェーズ・バージョンに加
えた変更を示すことができる。
ョンを表すことによって、回路変態を開始する。これ
は、2つのクロック・フェーズ1および2によってフリ
ップフロップ12および14に出力がクロックされる論
理ブロック11を有する。すなわち、論理ブロック11
の出力はクロック・フェーズ1でサンプリングされ、そ
の時点でその出力Cがクロック・フェーズ1のフリップ
フロップ12に格納される。フェーズ2では、ブロック
11からの別の出力C2がクロック・フェーズ2のフリ
ップフロップ14に格納される。
に示す変更済み複数フェーズ回路への初期変換である第
1の変態を示している。図7は、フェーズ1のFF14
aを挿入する、次の複数フェーズ回路変換を示してい
る。図8は、単一フェーズ・バージョンを得るためのフ
ェーズ2のFFの削除を示している。さらに図9は、フ
ェーズ1のFFのみを含む、図8の単一フェーズ・バー
ジョンを示している。本明細書で前述したように、複数
フェーズ・バージョンから単一フェーズ・バージョンへ
のこの回路変換の効果により、本発明で変換した単一フ
ェーズ・モデルは、同じ入出力データを使用する場合に
シミュレーション/エミュレーション・コンピュータ内
で、受け取った複数フェーズ・モデルより高速で動作で
きるようになる。回路変更プロセスが図5から図9まで
の順序で進行するにつれて、この回路変態は、複製論理
ブロックを追加することと、非フェーズ1のFFにフェ
ーズ1を再割当てすることと、それらの接続とを含む。
図10は、この変態中に行われる再接続を示している。
路バージョンの論理回路の同等性を理解しやすくするた
め、図5から図9までに発生する各種回路バージョンに
ついて、その同等性の例を示す。ここでは単純にするた
め、図5の論理ブロック11はANDゲートであると想
定するが、実際の論理設計の論理ブロック11は、かな
り複雑で、多くのタイプの組合せ論理ゲートの接続を表
す場合もある。同等性分析は以下の通りである。
A、B、Eを有する。Eは外部入力である。AとBは、
それぞれクロック・フェーズ1のFF12とクロック・
フェーズ2のフリップフロップ14の初期出力状態であ
る。クロック・フェーズ1では、以下のように、FF1
2がブロック11から出力される出力Cを格納する。 C=A&B&E FF12がクロック・フェーズ1で値Cをトリガ・イン
した後、その直後に値Cがフリップフロップ12に格納
され、そこから出力される。ただし、フェーズ1による
FF12のトリガはフェーズ2のFF14の出力Bに影
響しないことに留意されたい。その後、次のクロック・
フェーズ2が起こる前に、以下のように、ゲート11の
出力がC2になる。 C2=C&B&E 次のフェーズ2では、FF14がブロック11から出力
C2をトリガ・インし、その直後にFF14の出力がC
2に変わる。ただし、フェーズ2のトリガ中、FF12
内の出力Cは影響を受けないことに留意されたい。
ート13が設けられ、図示のように接続されている。フ
ェーズ1後、図5に示すように、ゲート11の出力Cが
FF12にトリガ・インされる。 C=A&B&E しかし、図6では、次のクロック・フェーズ2の前に、
ゲート13の出力がC2になる。 C2=C&B&E 次のフェーズ2サイクルでは、ゲート13の出力C2が
FF14にトリガ・インされ、FF14の出力をBから
C2に変更する。ただし、フェーズ2中、フリップフロ
ップ12の出力Cは影響を受けないことに留意された
い。
のFF14aがフェーズ2のFF14の出力とブロック
13の入力との間に置かれている。図6に示すように、
ブロック11の出力CはFF12内に設定される。 C=A&B&E 第1のフェーズ1サイクルも、FF14からの信号Bを
FF14a内に設定する。その直後に出力Bはブロック
13への入力としてFF14aによって供給され、Cも
FF12からブロック13に入力される。次にブロック
13はC2を出力する。 C2=C&B&E 次のフェーズ2サイクルでは、ブロック13の出力C2
がFF14内に設定される。
14aに格納されるように、フェーズ2のFF14の除
去を示している。値Bはゲート13から図7のFF14
にトリガ・インされる先行出力だったので、図8では次
のフェーズ1サイクルでブロック13からFF14aに
トリガ・インされる。
ているが、除去されたFF14を含まずに示されてい
る。ブロック13からの初期出力Bがブロック11への
直接入力なので、FF12がブロック11からの出力A
を格納すると、その直後にブロック11がCを出力する
ことを理解しておくことは重要である。 C=A&B&E ブロック13からの出力Bは、CがFF12に格納され
るのと同時にFF14aに格納されるので、その直後に
FF14aは、同一フェーズ1サイクルの後半でC2を
出力する。 C2=C&B&E 次のフェーズ1サイクルでは、FF14aがブロック1
3からのC2を格納し、C2は、そのフェーズ1サイク
ルの残りの期間中、ブロック13の出力にとどまってい
る。
ズ内の状態と論理設計の変換済み単一フェーズ・バージ
ョン内の状態との同等性を認識することは、本発明の不
明確な属性の1つである。
を示している。そのステップ101は、設計を検証して
その回路の論理構造内の問題を検出するためにシミュレ
ート/エミュレートすべき複数フェーズ論理設計を用意
することを含む。このような論理設計は、FFにトリガ
・インされる出力を有する論理ブロックを形成する、A
ND、OR、排他OR、反転などの論理ゲート回路を含
む。
論理設計内でのそれらの相互接続およびそれぞれの複数
フェーズ・クロック・フェーズへの接続とを示すコンピ
ュータ表現を生成することを含む。
て本明細書で「論理ブロック」と呼ばれるゲート回路の
グループを識別する。「論理ブロック」は、本明細書で
は、接続され、事前定義クロック・フェーズで単一フリ
ップフロップにその状態が格納される単一出力信号を供
給するようにまとまって動作する1つまたは複数のゲー
ト回路を含むものとして定義する。論理設計によって
は、このような論理ブロックとそれに対応するフリップ
フロップを数十万個含むものもある。別々のフェーズで
動作するクロック・サイクル中の様々な時点で関連論理
ブロックの出力を格納するために、別々のクロック・フ
ェーズによって別々のフリップフロップをトリガするこ
とができる。各FFは1つのクロック・フェーズの立上
り(または立下り)で2進信号状態を格納し、その直後
にその信号をFF出力に渡し、その出力からその状態を
一部の論理ブロックへの入力として提示することができ
る。このFF出力状態は、少なくとも同一フェーズの次
のサイクルの開始後までにその接続論理ブロックの入力
に提示される。また、フェーズの数Nが識別される。
複製する必要があるかを判定するが、その複製は、1つ
のブロックのコンピュータ表現のコピーを作成すること
によって行われる。どのブロックの複製が必要か、なら
びにいずれかのブロックの複製がいくつ必要かを判定す
るために、論理設計内の各ブロックの出力をサンプリン
グするためにFFが使用するフェーズの数をカウントす
ることにより、各ブロックごとに数値「m」が決定され
る。どのブロックも、任意の数Nのフェーズによってサ
ンプリングすることができる。たとえば、8つのクロッ
ク・フェーズを使用する論理設計内のクロック・フェー
ズ2、4、7で動作するFFによって、ブロック出力を
サンプリングすることができる。したがって、ブロック
によってはN個のクロック・フェーズすべてでサンプリ
ングできるものもあれば、全フェーズ(N個のフェーズ
のうちの一部であってもよい)のうちの1つだけでサン
プリングできるものもあるが、すべてのブロックはm個
のフェーズでサンプリングされる(mは1〜Nの数であ
る)。それにより、各ブロックには、1〜Nの範囲内の
1つまたは複数の番号からなる順序が割り当てられる。
フェーズ論理設計内の各ブロックごとに、値mが1と等
しい(m=1)か、またはmが1より大きい(m>1)
かを判定する。受け取った複数フェーズ論理設計内のブ
ロックは、論理設計の単一フェーズ・バージョン内にの
み含まれる「複製ブロック」と区別するために、本明細
書では「元のブロック」と呼ぶ。元のブロックだけがm
個の値を有する。m=1の場合、その元のブロックにつ
いて複製は一切行われない。m>1の場合、その元のブ
ロックについてm−1回の複製が行われる。元のブロッ
クとその複製ブロックのそれぞれにはフェーズ番号が割
り当てられるが、そのうち、元の各ブロックにはその最
低番号のサンプリング・フェーズ(その出力を受け取る
FFが使用するもの)の番号が割り当てられる。m=1
の場合、元のブロックには(その唯一の接続FFの)そ
の唯一のサンプリング・フェーズの番号が割り当てられ
る。m>1の場合、そのm個のサンプリングFFすべて
のフェーズ番号が使用されるが、最低サンプリング・フ
ェーズ番号は元のブロックに割り当てられ、残りのm−
1個のサンプリング・フェーズ番号はそのm−1個の複
製ブロックに割り当てられる。このような割当て済み番
号は、m>1の元の各ブロックをサンプリングするすべ
てのフェーズを含む順序を形成する。(すべてのFFが
最終的にそのフェーズがフェーズ1に変更されるとして
も、元のブロックおよびその複製ブロックと関連FFと
の間の相互接続を制御するために次のステップでこの順
序を使用する。最終的に、順序内のm個のブロックは、
番号1から始まり、mで終わるそれぞれの関連フェーズ
番号からなる順序に連続して番号が付け直される。)
は、そのブロックの最低番号サンプリングFFのサンプ
リング・フェーズで番号が付けられたブロック/FF対
と見なすことができる。他の各サンプリングFFは(m
>1の元の各ブロックごとに)、それぞれの複製論理ブ
ロックに関連付けられ、この複製ブロックと同様に番号
が付けられたFFは、元の各ブロック用に表されたm−
1対の複製対のうちの複製ブロック/FF対と見なすこ
とができる。(この最低番号対は、後でブロック1およ
びFF1として番号が付け直される。)
計内のFFの1つであると見なすことができる。しか
し、このようなFFは、フェーズ1でのみ動作する新し
いサンプリングFFであると見なすことができ、これ
は、論理設計の単一フェーズ・バージョンで古いサンプ
リングFFに置き換わるものである。
序の番号が付け直され、新しい番号付けは番号1から各
順序を開始する。m=1の各順序は単一対を有し、その
うちのブロックはブロック1として番号が付け直され、
FFはFF1として番号が付け直される。m>1の各順
序は1として番号が付け直された元の対を有し、各複製
対は、既存の対の順序を維持しながら、連続して番号が
付け直される。次の対は最低番号複製対として番号2か
ら始まり、事前に決定したフェーズ順序で以下同様に番
号が付けられる。したがって、最低フェーズの元の対は
ブロック1/FF1として番号が付け直され、順序内の
最低複製対はブロック2/FF2として番号が付け直さ
れ、Nを超えない番号を有することになる順序内のm番
目の対まで同様に番号が付け直される。
ーズ2、4、7で動作する3つのFFによってサンプリ
ングされる場合、その元のブロックは、3というm値を
有することになる。そのブロックは、m−1=2によっ
て決定された2つのブロック複製を有する。元のブロッ
クと2つの複製ブロックは、それぞれ元のFF2、4、
7を有する3つの対からなる順序を形成し、その3つの
対は最初に2、4、7という番号が付けられる。次にこ
の3つの対は、連続番号1、2、3によってそれぞれ番
号が付け直され、ブロック1/FF1、ブロック2/F
F2、ブロック3/FF3という対を提供する。番号が
付け直されたFFは新しいFFと見なすことができる
か、または、本発明用の次の動作の定義を可能にするた
めに単に1〜mに番号が付け直されただけの古いFFと
見なすことができる。順序内の各複製ブロックIは2〜
mの番号が付け直された値を有するが、これは2≦I≦
Nという式によって表される値の範囲内にある。その順
序では、FF1によってサンプリングされたブロック1
は元のブロックとその関連FFである。
れたブロックと関連FFが本発明の論理設計の単一フェ
ーズ・バージョンになるように再位置決めされ再接続さ
れる。この番号付け直しにより、最後に説明した1〜m
の連続番号付けが得られるが、これは次に、元の論理回
路設計と論理的に同じである変換済み論理構成内でブロ
ックと関連FFを固有に再接続するために使用される。
ブロック接続は以下の通りである。すなわち、論理ブロ
ック1の出力はFFIのフェーズトリガ入力に接続され
る。FF1の出力はブロック1の入力に接続され、さら
に各複製ブロックの入力に接続される。ブロックIの出
力はFFIのフェーズトリガ入力に接続される。また、
論理ブロックIの出力は論理ブロック1の入力に接続さ
れ、さらにIより大きい各複製論理ブロックJの入力に
接続される(すなわち、I<J≦N)。FFIの出力は
各論理ブロックJへの入力になる(すなわち、2≦J≦
I)。
同じクロック・フェーズ(好ましい実施例のフェーズ1
である)に変更するような最終的なクロック・フェーズ
再接続が行われる。論理設計内の任意のFFのトリガ・
フェーズがフェーズ1に変更されていない場合、そのF
Fは除去されるかまたは迂回される。論理設計の変換済
み単一フェーズ・バージョンは持続し、シミュレータ/
エミュレータに入力すべき論理表現を生成するための基
礎として使用される。
詳細に説明してきたが、当業者であれば、本発明につい
て多くの修正および変更を実施することができる。した
がって、特許請求の範囲は、本発明の真の精神および範
囲に該当するようなすべての修正および変更を含むもの
とする。
の事項を開示する。
ュレーション/エミュレーション・プログラムを実行す
るために用意されたコンピュータ化システム内のシミュ
レーション/エミュレーションの効率を高めるための論
理変換方法において、複数フェーズ論理設計が元の論理
ブロックと元のFFとを含み、複数フェーズ論理回路設
計内の元の各論理ブロックを識別し、複数フェーズ論理
設計内の各論理ブロックの出力をサンプリングする元の
各フリップフロップ(FF)を識別し、複数のクロック
・フェーズで出力をサンプリングする複数のFFを有す
る元の各論理ブロックを識別するステップと、元の各F
Fを、複数フェーズのうちでそのFFの入力をトリガす
る1つのフェーズに関連付けるステップと、複数の元の
FFによってサンプリングされたものとして識別された
各論理ブロックを1回または複数回複製するステップで
あって、複製の回数が複数の関連FFより1つ少ない数
に等しいステップと、元の各論理ブロックを複製論理ブ
ロック(複数も可)および関連の元のFFに接続して、
関連FFの数に等しい複数のブロック出力を有する論理
ブロック構成にし、関連FFの複数フェーズ・クロック
・トリガを論理ブロック構成用の単一フェーズ・クロッ
ク・トリガに変更し、複数フェーズ論理設計内のすべて
の動作フェーズの出力と同等の出力を単一の動作フェー
ズで供給するような単一フェーズ論理設計を得るステッ
プとを含むことを特徴とする、論理変換方法。 (2)複数フェーズ論理設計が元の論理ブロックと元の
FFとを含み、前記接続ステップが、各論理ブロック構
成内の論理ブロックの出力を格納するために関連FFの
1つに各複製論理ブロックの出力を接続するステップを
さらに含むことを特徴とする、上記(1)に記載のコン
ピュータ化システム内のシミュレーション/エミュレー
ションの効率を高めるための論理変換方法。 (3)複数フェーズ論理設計が元の論理ブロックと元の
FFとを含み、前記複製ステップが、1〜Nの範囲内の
値を有する数値mを得るために元の論理ブロックの出力
を受け取るすべてのFF(複数も可)に接続されたすべ
てのクロック・フェーズをカウントし、Nが複数フェー
ズ論理設計内のクロック・フェーズの総数であり、数値
mが元の各論理ブロックに関連付けられ、元の各論理ブ
ロックがm=1またはm>1の値mを有するステップ
と、m>1という値を有する元の各論理ブロックと同一
の複製論理ブロックを供給するために元の各論理ブロッ
クをm−1回複製するのであって、1と等しい数値m
(m=1)を有する元の論理ブロックを複製するわけで
はないステップとをさらに含むことを特徴とする、上記
(2)に記載のコンピュータ化システム内のシミュレー
ション/エミュレーションの効率を高めるための論理変
換方法。 (4)複数フェーズ論理設計が元の論理ブロックと元の
FFとを含み、前記複製ステップが、元の各論理ブロッ
クと任意の複製ブロック(複数も可)とからなるm個の
ブロックごとに昇順でフェーズ番号を割り当て、そのフ
ェーズ番号が元の論理ブロックの出力を受け取るFF
(複数も可)に接続されたそれぞれのクロック・フェー
ズであり、そのFF(複数も可)がそれぞれのクロック
・フェーズによって最初に番号が付けられるステップ
と、m=1タイプのブロック/FFの順序とm>1タイ
プのブロック/FFの順序とを提供するために前記割当
てステップによって割り当てられたフェーズ番号をそれ
ぞれ置き換えるように、1〜mの連続接続番号を順番に
再割当てするステップと、各順序が、各順序内の最低番
号として番号1が割り当てられた元の論理ブロック/F
Fを含むステップとをさらに含むことを特徴とする、上
記(3)に記載のコンピュータ化システム内のシミュレ
ーション/エミュレーションの効率を高めるための論理
変換方法。 (5)前記再接続ステップが、1〜mの各ブロック/F
F順序内で各論理ブロックの出力を同じ割当て番号を有
するFFの入力に接続し、そのFFの出力をその論理ブ
ロックの入力に接続するステップと、各論理ブロックI
の出力を、m>1の各順序内で1より大きい同じ割当て
番号を有するFFの入力に接続するステップと、論理ブ
ロックIの出力を論理ブロック1の入力に接続し、さら
にm>1の各順序内でIより大きい各論理ブロックJ
(すなわち、I<J≦N)の入力に接続するステップ
と、FFIの出力を、m>1の各順序内で2≦J≦Iで
ある各論理ブロックJに入力として接続するステップと
をさらに含むことを特徴とする、上記(4)に記載のコ
ンピュータ化システム内のシミュレーション/エミュレ
ーションの効率を高めるための論理変換方法。 (6)前記再接続ステップが、同じクロック・フェーズ
を、論理設計内の各順序の各FFのクロック入力に接続
するステップをさらに含むことを特徴とする、上記
(5)に記載のコンピュータ化システム内のシミュレー
ション/エミュレーションの効率を高めるための論理変
換方法。 (7)前記再接続ステップが、論理設計内で動作するす
べてのFFに接続されたクロック・フェーズとしてクロ
ック・フェーズ1を選択するステップをさらに含むこと
を特徴とする、上記(6)に記載のコンピュータ化シス
テム内のシミュレーション/エミュレーションの効率を
高めるための論理変換方法。 (8)前記再接続ステップが、シミュレータ/エミュレ
ータへの入力用として論理設計内の論理ブロックおよび
FFのコンピュータ化表現を生成するステップをさらに
含むことを特徴とする、上記(6)に記載のコンピュー
タ化システム内のシミュレーション/エミュレーション
の効率を高めるための論理変換方法。 (9)論理回路設計のシミュレーション/エミュレーシ
ョンを実行するコンピュータ化システム用の論理変換方
法において、複数フェーズ・クロック・サイクル中にブ
ロック出力がフリップフロップ(FF)に格納される複
数フェーズ・クロック式論理設計の論理ブロック(元の
ブロック)を識別し、元の各ブロックからの出力を受け
取るFFに印加されるクロック・フェーズ(複数も可)
を元の各ブロックに関連付け、数値mが元の各ブロック
用のクロック・フェーズの数のカウントであり、元の各
ブロックのFF(複数も可)に印加されるフェーズ(複
数も可)用のフェーズ番号(複数も可)が元の各ブロッ
クに関連する一連のm個のフェーズ番号であるステップ
と、複数のフェーズ番号(m>1)からなる関連の順序
を有する各論理ブロックごとにm−1個の論理ブロック
(複数も可)を複製するが、m=1を有する元のブロッ
クを複製するわけではなく、複数フェーズ論理設計内の
元のブロックからの出力を受け取るFF(複数も可)の
うちの1つに出力を供給するために元の各ブロックと各
複製ブロックが割り当てられるステップと、FFの出力
(複数も可)を元の各ブロックとその複製論理ブロック
(複数も可)の入力に接続し、そのブロックの出力をF
Fおよびその他のブロックに接続し、各クロック・サイ
クルの複数フェーズ中に複数フェーズ論理設計で設定さ
れると思われるものと同じ値に同じクロック・サイクル
内のFFを設定するステップとを含むことを特徴とす
る、論理変換方法。 (10)前記接続ステップが、元の論理ブロックに関連
する論理ブロック構成内のFFの入力に元の各ブロック
とその複製ブロック(複数も可)を並行してそれぞれ接
続し、論理ブロック構成内の各FFのクロック・フェー
ズを単一フェーズ・クロックに変更し、同一論理格納環
境をシミュレートまたはエミュレートするための複数フ
ェーズ論理設計の複数フェーズ・サイクル中に設定され
たFFの状態と同等の状態に元の各ブロックに関連する
すべてのFFを同じサイクル中に設定する単一フェーズ
論理設計を得るステップをさらに含むことを特徴とす
る、上記(9)に記載の論理回路設計のシミュレーショ
ン/エミュレーションを実行するコンピュータ化システ
ム用の論理変換方法。
ュータ・シミュレータ/エミュレータの動作を表す先行
技術の棒グラフを示す図である。図1は、コンピュータ
による複数動作フェーズのそれぞれについて、シミュレ
ータ/エミュレータによるコンピュータ資源の使い方を
時間の関数として示している。
レータ/エミュレータの動作を表す新規の棒グラフを示
す図である。割り当てられたコンピュータ資源は、時間
の関数として示された単一の動作フェーズ内でスケジュ
ーリングされる。
ハードウェア論理設計を示す単純表現である。これは、
本発明を適用するための開始点として使用することがで
きる。
る。
始点として本明細書で使用する従来の2フェーズ論理設
計の単純な例を示す図であって、シミュレート/エミュ
レート・プロセスのパフォーマンスを大幅に増加するよ
うにシミュレータ/エミュレータに入力を供給するため
の同等の単一フェーズ論理設計に従来の論理設計を変換
するためのものである。
の初期変更形式を示す図であって、図5の論理設計を本
発明によって提供される同等の単一フェーズ論理設計に
変換するためのものである。
を示す図であって、図6の論理設計を中間回路形式に変
換するためのものである。
を示す図であって、図7の論理設計をその論理設計の拡
張形式に変換するためのものである。
る図5の複数フェーズ回路設計の最終的な単一フェーズ
形式を示す図であって、その複数フェーズ論理設計を、
その論理設計のシミュレータ/エミュレータ用の単一フ
ェーズタイプの動作を可能にする形式に変換するための
ものである。
る。
Claims (10)
- 【請求項1】複数フェーズ論理回路設計用のシミュレー
ション/エミュレーション・プログラムを実行するため
に用意されたコンピュータ化システム内のシミュレーシ
ョン/エミュレーションの効率を高めるための論理変換
方法において、複数フェーズ論理設計が元の論理ブロッ
クと元のFFとを含み、 複数フェーズ論理回路設計内の元の各論理ブロックを識
別し、複数フェーズ論理設計内の各論理ブロックの出力
をサンプリングする元の各フリップフロップ(FF)を
識別し、複数のクロック・フェーズで出力をサンプリン
グする複数のFFを有する元の各論理ブロックを識別す
るステップと、 元の各FFを、複数フェーズのうちでそのFFの入力を
トリガする1つのフェーズに関連付けるステップと、 複数の元のFFによってサンプリングされたものとして
識別された各論理ブロックを1回または複数回複製する
ステップであって、複製の回数が複数の関連FFより1
つ少ない数に等しいステップと、 元の各論理ブロックを複製論理ブロック(複数も可)お
よび関連の元のFFに接続して、関連FFの数に等しい
複数のブロック出力を有する論理ブロック構成にし、関
連FFの複数フェーズ・クロック・トリガを論理ブロッ
ク構成用の単一フェーズ・クロック・トリガに変更し、
複数フェーズ論理設計内のすべての動作フェーズの出力
と同等の出力を単一の動作フェーズで供給するような単
一フェーズ論理設計を得るステップとを含むことを特徴
とする、論理変換方法。 - 【請求項2】複数フェーズ論理設計が元の論理ブロック
と元のFFとを含み、前記接続ステップが、 各論理ブロック構成内の論理ブロックの出力を格納する
ために関連FFの1つに各複製論理ブロックの出力を接
続するステップをさらに含むことを特徴とする、請求項
1に記載のコンピュータ化システム内のシミュレーショ
ン/エミュレーションの効率を高めるための論理変換方
法。 - 【請求項3】複数フェーズ論理設計が元の論理ブロック
と元のFFとを含み、前記複製ステップが、 1〜Nの範囲内の値を有する数値mを得るために元の論
理ブロックの出力を受け取るすべてのFF(複数も可)
に接続されたすべてのクロック・フェーズをカウント
し、Nが複数フェーズ論理設計内のクロック・フェーズ
の総数であり、数値mが元の各論理ブロックに関連付け
られ、元の各論理ブロックがm=1またはm>1の値m
を有するステップと、 m>1という値を有する元の各論理ブロックと同一の複
製論理ブロックを供給するために元の各論理ブロックを
m−1回複製するのであって、1と等しい数値m(m=
1)を有する元の論理ブロックを複製するわけではない
ステップとをさらに含むことを特徴とする、請求項2に
記載のコンピュータ化システム内のシミュレーション/
エミュレーションの効率を高めるための論理変換方法。 - 【請求項4】複数フェーズ論理設計が元の論理ブロック
と元のFFとを含み、前記複製ステップが、 元の各論理ブロックと任意の複製ブロック(複数も可)
とからなるm個のブロックごとに昇順でフェーズ番号を
割り当て、そのフェーズ番号が元の論理ブロックの出力
を受け取るFF(複数も可)に接続されたそれぞれのク
ロック・フェーズであり、そのFF(複数も可)がそれ
ぞれのクロック・フェーズによって最初に番号が付けら
れるステップと、 m=1タイプのブロック/FFの順序とm>1タイプの
ブロック/FFの順序とを提供するために前記割当てス
テップによって割り当てられたフェーズ番号をそれぞれ
置き換えるように、1〜mの連続接続番号を順番に再割
当てするステップと、 各順序が、各順序内の最低番号として番号1が割り当て
られた元の論理ブロック/FFを含むステップとをさら
に含むことを特徴とする、請求項3に記載のコンピュー
タ化システム内のシミュレーション/エミュレーション
の効率を高めるための論理変換方法。 - 【請求項5】前記再接続ステップが、 1〜mの各ブロック/FF順序内で各論理ブロックの出
力を同じ割当て番号を有するFFの入力に接続し、その
FFの出力をその論理ブロックの入力に接続するステッ
プと、 各論理ブロックIの出力を、m>1の各順序内で1より
大きい同じ割当て番号を有するFFの入力に接続するス
テップと、 論理ブロックIの出力を論理ブロック1の入力に接続
し、さらにm>1の各順序内でIより大きい各論理ブロ
ックJ(すなわち、I<J≦N)の入力に接続するステ
ップと、 FFIの出力を、m>1の各順序内で2≦J≦Iである
各論理ブロックJに入力として接続するステップとをさ
らに含むことを特徴とする、請求項4に記載のコンピュ
ータ化システム内のシミュレーション/エミュレーショ
ンの効率を高めるための論理変換方法。 - 【請求項6】前記再接続ステップが、 同じクロック・フェーズを、論理設計内の各順序の各F
Fのクロック入力に接続するステップをさらに含むこと
を特徴とする、請求項5に記載のコンピュータ化システ
ム内のシミュレーション/エミュレーションの効率を高
めるための論理変換方法。 - 【請求項7】前記再接続ステップが、 論理設計内で動作するすべてのFFに接続されたクロッ
ク・フェーズとしてクロック・フェーズ1を選択するス
テップをさらに含むことを特徴とする、請求項6に記載
のコンピュータ化システム内のシミュレーション/エミ
ュレーションの効率を高めるための論理変換方法。 - 【請求項8】前記再接続ステップが、 シミュレータ/エミュレータへの入力用として論理設計
内の論理ブロックおよびFFのコンピュータ化表現を生
成するステップをさらに含むことを特徴とする、請求項
6に記載のコンピュータ化システム内のシミュレーショ
ン/エミュレーションの効率を高めるための論理変換方
法。 - 【請求項9】論理回路設計のシミュレーション/エミュ
レーションを実行するコンピュータ化システム用の論理
変換方法において、 複数フェーズ・クロック・サイクル中にブロック出力が
フリップフロップ(FF)に格納される複数フェーズ・
クロック式論理設計の論理ブロック(元のブロック)を
識別し、元の各ブロックからの出力を受け取るFFに印
加されるクロック・フェーズ(複数も可)を元の各ブロ
ックに関連付け、数値mが元の各ブロック用のクロック
・フェーズの数のカウントであり、元の各ブロックのF
F(複数も可)に印加されるフェーズ(複数も可)用の
フェーズ番号(複数も可)が元の各ブロックに関連する
一連のm個のフェーズ番号であるステップと、 複数のフェーズ番号(m>1)からなる関連の順序を有
する各論理ブロックごとにm−1個の論理ブロック(複
数も可)を複製するが、m=1を有する元のブロックを
複製するわけではなく、複数フェーズ論理設計内の元の
ブロックからの出力を受け取るFF(複数も可)のうち
の1つに出力を供給するために元の各ブロックと各複製
ブロックが割り当てられるステップと、 FFの出力(複数も可)を元の各ブロックとその複製論
理ブロック(複数も可)の入力に接続し、そのブロック
の出力をFFおよびその他のブロックに接続し、各クロ
ック・サイクルの複数フェーズ中に複数フェーズ論理設
計で設定されると思われるものと同じ値に同じクロック
・サイクル内のFFを設定するステップとを含むことを
特徴とする、論理変換方法。 - 【請求項10】前記接続ステップが、 元の論理ブロックに関連する論理ブロック構成内のFF
の入力に元の各ブロックとその複製ブロック(複数も
可)を並行してそれぞれ接続し、論理ブロック構成内の
各FFのクロック・フェーズを単一フェーズ・クロック
に変更し、同一論理格納環境をシミュレートまたはエミ
ュレートするための複数フェーズ論理設計の複数フェー
ズ・サイクル中に設定されたFFの状態と同等の状態に
元の各ブロックに関連するすべてのFFを同じサイクル
中に設定する単一フェーズ論理設計を得るステップをさ
らに含むことを特徴とする、請求項9に記載の論理回路
設計のシミュレーション/エミュレーションを実行する
コンピュータ化システム用の論理変換方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/662383 | 1996-06-13 | ||
US08/662,383 US5761488A (en) | 1996-06-13 | 1996-06-13 | Logic translation method for increasing simulation emulation efficiency |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1091677A true JPH1091677A (ja) | 1998-04-10 |
JP3905951B2 JP3905951B2 (ja) | 2007-04-18 |
Family
ID=24657490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14773697A Expired - Fee Related JP3905951B2 (ja) | 1996-06-13 | 1997-06-05 | シミュレーション/エミュレーションの効率を増すための論理変換方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5761488A (ja) |
JP (1) | JP3905951B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009503749A (ja) * | 2005-08-02 | 2009-01-29 | シンプリシティー インコーポレイテッド | 複製されたロジックを使用するデバッグ及びテスト方法並びにシステム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7778814B2 (en) * | 2004-03-30 | 2010-08-17 | Siemens Aktiengesellschaft | Method and device for simulating an automation system |
US7739093B2 (en) * | 2004-06-01 | 2010-06-15 | Quickturn Design System, Inc. | Method of visualization in processor based emulation system |
CN100370466C (zh) * | 2006-03-01 | 2008-02-20 | 华为技术有限公司 | 逻辑电路仿真测试方法和系统 |
US7650267B1 (en) | 2006-03-31 | 2010-01-19 | Rockwell Automation Technologies, Inc. | Distribution of DES replications in a simulation |
US8756557B2 (en) * | 2007-05-09 | 2014-06-17 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7984400B2 (en) * | 2007-05-09 | 2011-07-19 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4527249A (en) * | 1982-10-22 | 1985-07-02 | Control Data Corporation | Simulator system for logic design validation |
US4769817A (en) * | 1986-01-31 | 1988-09-06 | Zycad Corporation | Concurrent fault simulation for logic designs |
EP0248268B1 (de) * | 1986-06-06 | 1993-03-31 | Siemens Aktiengesellschaft | Verfahren zur Simulation eines Verzögerungsfehlers in einer Logikschaltung und Anordnungen zur Durchführung des Verfahrens |
US4787061A (en) * | 1986-06-25 | 1988-11-22 | Ikos Systems, Inc. | Dual delay mode pipelined logic simulator |
US5014234A (en) * | 1986-08-25 | 1991-05-07 | Ncr Corporation | System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software |
JPH07114348B2 (ja) * | 1987-12-11 | 1995-12-06 | 日本電気株式会社 | 論理回路 |
US5081601A (en) * | 1989-09-22 | 1992-01-14 | Lsi Logic Corporation | System for combining independently clocked simulators |
JP2638385B2 (ja) * | 1992-05-29 | 1997-08-06 | 川崎製鉄株式会社 | 平鋼の圧延方法および圧延設備 |
US5355321A (en) * | 1992-06-12 | 1994-10-11 | Digital Equipment Corporation | Static timing verification |
EP0591593A1 (en) * | 1992-10-09 | 1994-04-13 | International Business Machines Corporation | Device and method of managing asynchronous events in a finite state machine |
US5302866A (en) * | 1993-03-18 | 1994-04-12 | Xilinx, Inc. | Input circuit block and method for PLDs with register clock enable selection |
US5394443A (en) * | 1993-12-23 | 1995-02-28 | Unisys Corporation | Multiple interval single phase clock |
-
1996
- 1996-06-13 US US08/662,383 patent/US5761488A/en not_active Expired - Lifetime
-
1997
- 1997-06-05 JP JP14773697A patent/JP3905951B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009503749A (ja) * | 2005-08-02 | 2009-01-29 | シンプリシティー インコーポレイテッド | 複製されたロジックを使用するデバッグ及びテスト方法並びにシステム |
Also Published As
Publication number | Publication date |
---|---|
JP3905951B2 (ja) | 2007-04-18 |
US5761488A (en) | 1998-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2018203563B2 (en) | Reciprocal quantum logic (RQL) circuit synthesis | |
US7865346B2 (en) | Instruction encoding in a hardware simulation accelerator | |
JP4994393B2 (ja) | 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法 | |
JPH03156572A (ja) | 論理回路比較検証システムおよび方法 | |
JPH11353357A (ja) | 再コンフュギュレ―ション可能なハ―ドウェアの評価装置及び評価方法 | |
US20020152061A1 (en) | Data processing system and design system | |
EP0774139A1 (en) | System and method for simulating discrete functions using ordered decision arrays | |
US5491639A (en) | Procedure for verifying data-processing systems | |
US6557150B1 (en) | Method of extracting timing characteristics of transistor circuits, storage medium storing timing characteristic library, LSI designing method, and gate extraction method | |
US6847927B2 (en) | Efficient array tracing in a logic simulator machine | |
JP3905951B2 (ja) | シミュレーション/エミュレーションの効率を増すための論理変換方法 | |
CN107844678B (zh) | 包含IP/Memory时序路径的spice仿真方法 | |
JPH04246776A (ja) | タイミング情報を編成し解析する方法及び装置 | |
US7257786B1 (en) | Method and apparatus for solving constraints | |
WO2000036532A1 (en) | Latch inference using dataflow analysis | |
Shang et al. | Asynchronous system synthesis based on direct mapping using VHDL and Petri nets | |
US7093224B2 (en) | Model-based logic design | |
US7197445B1 (en) | Atomic transaction processing for logic simulation | |
Bensalem et al. | A Simplified Approach for Testing Real-Time Systems Based on Action Refinement. | |
US10409624B1 (en) | Data array compaction in an emulation system | |
Voss et al. | The analysis of modeling styles for system level VHDL simulations | |
US6898562B2 (en) | Method and system for efficiently overriding net values in a logic simulator machine | |
CN116911219A (zh) | 用于逻辑系统设计的仿真的方法、电子设备和存储介质 | |
JPS6311715B2 (ja) | ||
Yakovlev et al. | Petri nets and asynchronous circuit design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040512 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070115 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100119 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |