JPH06290230A - 論理シミュレーション装置 - Google Patents

論理シミュレーション装置

Info

Publication number
JPH06290230A
JPH06290230A JP5073988A JP7398893A JPH06290230A JP H06290230 A JPH06290230 A JP H06290230A JP 5073988 A JP5073988 A JP 5073988A JP 7398893 A JP7398893 A JP 7398893A JP H06290230 A JPH06290230 A JP H06290230A
Authority
JP
Japan
Prior art keywords
circuit
logic
primitive
loop
primitives
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
Application number
JP5073988A
Other languages
English (en)
Inventor
Shozo Isobe
庄三 磯部
Jiro Amamiya
治郎 雨宮
Hirobumi Muratani
博文 村谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP5073988A priority Critical patent/JPH06290230A/ja
Priority to US08/120,220 priority patent/US5572710A/en
Publication of JPH06290230A publication Critical patent/JPH06290230A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【目的】本発明は、レベルソート法を用いた論理シミュ
レーションにおいてループを含む論理回路をシミュレー
ションすることができる論理シミュレーション装置を提
供する。 【構成】シミュレーション対象の論理回路から分離され
る組合せ回路部より複数のプリミティブA、B、Pのル
ープ回路を抽出し、この回路中のプリミティブPの出力
を除去して第1の回路を生成するとともに、プリミティ
ブPの前回の出力信号値を記憶するプリミティブPOを
用意して、第1の回路を複製したプリミティブA´、B
´、P´の第2の回路を用い、第2および第1の回路と
プリミティブPOによる縦続接続回路を構成し、さらに
第2の回路の各プリミティブに対し第1の回路の各プリ
ミティブに対する入力と同じ入力を接続する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラム可能な素子を
用いて論理回路の検証を行なうシミュレーションシステ
ムに関するものである。
【0002】
【従来の技術】LSIの集積度の向上にともない、近年
の計算機の大規模化、複雑化は著しいものがある。従っ
て、このような大規模計算機を開発するについては、そ
の開発に要する期間、コストを低く抑えることが益々重
要になっており、このために、シミュレーションによる
システム機能、システム性能の検証の重要性が一段と高
まっている。
【0003】そこで、論理回路を用いたシステムを設計
する場合も、論理回路をモデル化し、それを論理シミュ
レーションすることにより設計検証することが、システ
ムの開発期間を短縮するため、また設計の完成度を高め
るために必要な工程として用いられている。
【0004】論理回路をソフトウエアで論理シミュレー
ションする場合、回路規模が大きくなるとモデルの記述
量が膨大になるためシミュレーション時間は必然的に膨
大になる。
【0005】そこで、シミュレーションの高速化のため
さまざまな工夫がなされているが、その一つにレベルソ
ート法がある。
【0006】このレベルソート法は、あらかじめゲート
の評価順序を決定しておき、シミュレーション実行時に
はこの静的な順序にしたがって評価を行なうようにして
いる。そして、レベルソート法における評価順序の決定
は、「ゲートgの評価は、gの入力側にあるゲートの評
価を修了した後に行なう」というルールの下に行なうよ
うにしており、同期回路の組合せ回路部に関して、回路
安定時の最終値を計算することを目的としている。
【0007】一方、特開平4−243755号公報によ
り時分割エミュレータの提案もなされているが、このよ
うな時分割エミュレータにおいては、各タイムスライス
に割り当てる論理演算はレベルソートされていることが
必要である。
【0008】しかして、このようなレベルソート法によ
れば、通常、組合せ回路部はループを含まないように設
計され、組合せ回路部のモデルもループを含まないの
で、先ほど述べたルールで評価順序を決めるレベルソー
ト法でシミュレーションするのにほとんどの場合は問題
はないが、実際には組合せ回路部にループが含まれる論
理回路が設計されることがあり、このような回路では先
ほど述べたルールに沿った評価順序が決定できないため
レベルソート法では扱うことができなかった。
【0009】一方、論理回路をシミュレートするシステ
ムの一つに、ハードウェアエミュレータがある。ハード
ウェアエミュレータは、相互接続された複数の論理ブロ
ックからなり、各論理ブロックが、検証対象の回路の動
作と同じ動作をすることにより、回路の論理シミュレー
ションを高速に行なう。論理ブロックとして、例えばF
PGA(Field Programmable Ga
te Array)と呼ばれるプログラム可能なゲート
アレイがある。FPGAは多数のプログラム可能素子か
らなり、それぞれのプログラム可能素子が一つまたは複
数の回路素子の動作をシミュレートする。
【0010】シミュレーション対象回路のプログラム可
能素子への割り付け(マッピング)及びプログラム可能
素子間の接続の決定は、コンパイラが行なう。コンパイ
ラによるマッピングの結果得られたそれらのプログラム
情報は、通常シミュレーションの前にエミュレータ内の
メモリにロードされ、シミュレーション時にエミュレー
タがプログラム可能素子の動作を決定するのに使われ
る。
【0011】ハードウェアエミュレータの欠点の一つは
コンパイル時間が膨大なことである。これは次の理由に
よる。従来のエミュレータアーキテクチャは、隣接する
者同士のみを結ぶメッシュ構造に代表されるようにFP
GA間の配線の自由度が小さい。また、FPGAは組み
込み用途のものが大部分であるため、やはり配線の自由
度が少ない。従って、FPGAの回路充填率を上げるた
めには、自由度の少ない配線手段でいかに対象回路のマ
ッピングを実現するかが重要である。
【0012】このような問題に対する解決策として確率
的アルゴリズム以外に効率のよいものは知られていな
い。通常はシミュレーティッドアニーリング法のよう
に、望ましいマッピングができるまで最適化を繰り返す
確率的方法が採られている。しかし、このような方法で
は回路規模が大きくなるに従い、マッピングに膨大な時
間がかかり、回路が1Mゲート規模と大きい場合、コン
パイルが終了するのに数日かかってしまうこともある。
コンパイル時間の増加はシステム検証のターンアラウン
ドの増加につながるため、マッピングアルゴリズムの高
速化は極めて重要である。
【0013】このように配線自由度が少ないエミュレー
タでは、効率の良いマッピング方式を実現することは容
易でない。このため、上述した特開平4−243755
号公報では、完全クロスバに代表される配線の自由度が
豊富なエミュレータアーキテクチャが開示されている。
このアーキテクチャでは、プログラム可能素子は多段に
結合された構造であり、プログラム可能素子を時分割に
利用できるという特長もある。また、予めシミュレーシ
ョン対象回路をレベルソートしておき、回路素子のうち
入力から数えたレベルの小さいものから大きいものへと
順にエミュレータ中のプログラム可能素子にマッピング
することによって、バックトラックをほとんど必要とし
ない、高速なマッピングが可能であることが示されてい
る。
【0014】しかし、このような単純なアルゴリズムで
は、マッピングが単純な分、「プログラム可能素子の回
路充填率」(プログラム可能素子1個当りに割当てられ
ている平均回路素子数)が不十分になるという傾向があ
る。
【0015】プログラム可能素子を同数有するエミュレ
ータでは、シミュレーション可能な回路規模は回路充填
率に比例するため、回路充填率が低いことは、シミュレ
ーション可能な回路規模が小さいことを意味しており、
従って、多段結合アーキテクチャのエミュレータにおい
ては、マッピング方式の工夫により、回路充填率を向上
させることが重要である。
【0016】
【発明が解決しようとする課題】このように従来のシミ
ュレーションの高速化のために適用されるレベルソート
法によると、組合せ回路部にループが含まれるような論
理回路が設計された場合、このような回路ではレベルソ
ート法によるルールで評価順序が決定できないことから
扱うことができないという問題点があった。
【0017】また、従来の多段に結合されたプログラム
可能素子から構成される論理回路シミュレーションシス
テムでは、論理回路の割り付けにおけるプログラム可能
素子の回路充填率が十分でなく、大規模の回路のシミュ
レーションが難しいと言う問題点があった。
【0018】本発明は、上記事情に鑑みてなされたもの
で、レベルソート法を用いた論理シミュレーションにお
いてループを含む論理回路をシミュレーションすること
ができ、しかも論理回路中のループがシミュレーション
時に発振するか否かも検出できる論理シミュレーション
装置を提供することを目的とする。
【0019】また、本発明は、多段に結合されたプログ
ラム可能素子から構成される論理回路シミュレーション
システムにおいて、論理回路の割り付けにおけるプログ
ラム可能素子の回路充填率の向上させ、より大規模の回
路をシミュレーション可能にした論理エミュレータを提
供することを目的とする。
【0020】
【課題を解決するための手段】本発明は、論理回路をレ
ベルソート法を用いてシミュレーションを行なう論理シ
ミュレーション装置において、シミュレーション対象と
なる論理回路を格納する手段と、前記論理回路を組み合
わせ回路部と状態記憶部とに分離する手段と、この手段
で分離された組合せ回路部より複数の論理素子から構成
されるループからなる回路Aを抽出する手段と、前記回
路A中の論理素子の一つの論理素子Zについてその出力
を取り去った回路Xを作成する手段、前記論理素子Zの
前回の出力信号値を記憶する記憶素子Uを作成する手
段、前記回路Xを複製した回路Yを用いて、前記回路
Y、回路Xおよび記憶素子Uの縦続接続回路を構成する
手段を有する回路変換手段とを具備し、前記回路Yの各
論理素子に対し前記回路Xの各論理素子に対する入力と
同じ入力を接続するようにしている。
【0021】また、本発明は、再プログラム可能な複数
の論理ブロックを多段結合した論理エミュレータにおい
て、入力側からの信号の流れの順にレベルソートされた
プリミティブグラフを入力側から数えて一定のレベルご
とに区切ることで複数の連結成分を生成し、これら連結
成分ごとに論理ブロックに割り付けるようにしている。
【0022】
【作用】この結果、本発明によれば、組合せ回路部にル
ープを含む論理回路モデルに対し、切断したループを二
つ縦続接続して等価回路モデルに変換することによりレ
ベルソート法によるシミュレーションを行うことがで
き、また、変換前の回路のループの発振の検証も可能に
なる。つまり、論理回路モデルにおいて扱う信号値が2
値(例えば“0”、“1”)しかとらないことから、ル
ープを2周分だけ評価することにより、論理回路モデル
のループの評価、すなわちループの発振の検出とループ
が発振しない場合によりループ中の論理素子の評価を行
うことができる。
【0023】また、再プログラム可能な複数の論理ブロ
ックからなる論理エミュレータにおいて、各論理ブロッ
クへの論理回路の割り付けの際に、入力側から数えて一
定のレベルごとに区切って得られる回路の連結成分を単
位として割り付けを行なうことで、接続が内部で閉じて
いる回路部分を同一の論理ブロックに割り付けることが
できるようになり、その結果として、プログラム可能素
子の回路充填率が向上し、より大規模の回路のシミュレ
ーションが可能になる。
【0024】
【実施例】以下、本発明の一実施例を図面に従い説明す
る。
【0025】図1は、実施例の概略構成を示している。
この場合、シミュレーション部11、回路モデルを格納
する回路モデル格納部12、組合せ回路部と状態記憶部
を分離する分離部13、ループからなる回路を検出する
ループ回路検出部14、ループからなる回路を等価な回
路に変換する変換部15から構成されている。
【0026】そして、このように構成した装置は、図2
に示すステップ2001〜ステップ2006の手順に従
って処理が進められる。
【0027】この場合、論理シミュレータへ入力される
論理回路はネットリストによって表現されている。そし
て、これをシステムの内部表現にモデル化する。
【0028】シミュレーション部11は、このようなモ
デル化手段を有している。本実施例ではこのモデル化
は、ネットリスト中の論理素子間接続情報を、プリミテ
ィブのノードとしてそれら間の配線を枝とするプリミテ
ィブグラフに変換することによって行なわれる。ここ
で、プリミティブとは、シミュレーションの1単位であ
り、一つあるいは複数の論理素子の集まりに対応する。
ここでは、信号値は“0”または“1”の2値しか取ら
ないとする。また、外部入力信号端子・外部出力信号端
子は論理素子ではないが、便宜上それらを特別なプリミ
ティブで表現する。以後これらのプリミティブを入力プ
リミティブ・出力プリミティブと呼ぶことにする。ま
た、各プリミティブにはそれぞれ異なるidをつける。
【0029】回路モデル格納部12では、プリミティブ
グラフに関する情報を記憶している。この場合、プリミ
ティブグラフは配列の形で格納される。この場合、プリ
ミティブを表す配列要素は、図3に示すように、そのプ
リミティブのid、そのプリミティブの機能(AND,
OR,NOT,フリップフロップなど)、そのプリミテ
ィブからの出力先のプリミティブのidのリスト、その
プリミティブへの入力元のプリミティブのidのリス
ト、その他入力からのレベルの情報、ループ検出に必要
な情報などを格納するフィールドからなっている。
【0030】そして、組合せ回路と状態記憶部を分離す
る分離部13により回路モデル格納部12に格納された
回路モデル中のフリップフロップそれぞれに対し、新た
に入力ブリミティブと出力プリミティブを作成し、回路
モデルからフリップフロップを強連結成分に分離し、フ
リップフロップへの入力枝を出力プリミティブに、フリ
ップフロップからの入力枝を入力プリミティブにそれぞ
れ接続する。
【0031】ここで、図4(a)(b)に示すように強
連結成分Aは、有向グラフにおいて有向枝を経由して互
いに行き来できる(到達可能である)ようなノードの集
合と、その集合の要素であるノード間を結ぶ有向枝の集
合の対で定義される。ただし自分自身は到達可能である
ので、ノード一つからなる強連結成分も存在し、もし強
連結成分中に複数のノードが含まれればそれはループの
存在を意味する。
【0032】ここで、プリミティブグラフを強連結成分
に分解する方法を簡単に述べる。
【0033】まず、グラフ中のプリミティブPOを選択
しそこから有向枝に沿って探索を開始する。もし、PO
に戻るようなことがあれば探索パスはループになってい
る。この様なループをまとめることにより強連結成分が
得られる。POに戻るパスがなければPOはそれ自身が
強連結成分になる。探索を開始するプリミティブPO
は、それまでに得られたどの強連結成分にも含まれない
プリミティブから選ぶ。そして、選択できるプリミティ
ブがなくなるまで上記操作を行えば、最終的に強連結成
分に分解されたプリミティブグラフが得られることにな
る。
【0034】このような方法は、グラフを強連結成分へ
分解する一例であり、より効率的な手順およびその詳細
は、例えば「アルゴリズムの設計と解析I,II(サイ
エンス社、1977)p.170〜p.177」に開示
されている。
【0035】もし、プリミティブグラフにループがなけ
れば、各強連結成分はプリミティブを一つだけしか含ま
ない。プリミティブグラフがループを含めば、そのルー
プは二つ以上のプリミティブからなる強連結成分が存在
することと同値である。
【0036】従って、各強連結成分に含まれるプリミテ
ィブが一つだけなら、プリミティブグラフはループは含
まないので、そのままプリミティブグラフの交換は行わ
なくて良い。
【0037】問題は、ある強連結成分が複数のプリミテ
ィブを含む場合である。この場合はグラフはループを含
んでいるので、ループからなる回路を等価な回路に変換
する変換部5を用いるようになる。
【0038】ここで、かかる変換部15での変換動作は
次のようになる。
【0039】まず、単純な例として図5に示すようにプ
リミティブA、B、Pからなる一重のループを考える。
このとき回路モデル格納部2においてループLは、図6
に示すように表現されている。
【0040】この状態から、 (1)図7のようにループL中のプリミティブを一つ選
ぶ。選び方は任意であるが、ここではPを選ぶことにす
る。この場合、ループ中でPからの出力を受けているの
はAであるが、ループLを構成する枝の中からプリミテ
ィブPからAへ向かう枝を除去する。
【0041】次に、プリミティブPの前クロックにおけ
る値を出力するようなプリミティブPFを状態記憶部に
加え、PFからの出力を与える入力プリミティブPI
と、PFへの入力を与える出力プリミティブPOを新た
にプリミティブグラフに加える。 図8は回路モデルを
格納する回路モデル格納部12に格納された図7に示す
プリミティブグラフを図3に示すデータ構造で表したも
のである。プリミティブPを表す配列要素の出力先プリ
ミティブのリストからAのidが取り除かれ、Aを表す
配列要素のAへの入力元プリミティブのリストからPの
idが取り除かれる。また、PI、POを表す配列要素
が配列に加えられる。
【0042】(2)次に、図9に示すように、(1)に
よってLから得られるループを含まない部分グラフをL
1とし、部分グラフL1と同一構造の部分グラフL1′
を作る。A′とP′も同様に定義する。
【0043】図10は、図9に示すプリミティブグラフ
を図3に示すデータ構造で表したものである。L1内の
プリミティブを表す配列要素の複製が新たに加えられ
る。L1内での接続関係を保存するように作成した配列
要素の入出力リストにidが加えられる。
【0044】(3)L1′への入力枝として、L1への
入力枝に対応する入力枝を付ける。(図11では、11
01〜1104に対応する2101〜2104を付け
る。)また、L1′のP′からAへの枝と、PIから
A′への枝、PからPOへの枝をプリミティブグラフに
付け加える。
【0045】図10は、図9に示すプリミティブグラフ
を図3に示すデータ構造で表したものである。(2)で
作成した配列要素A´B´P´(idすなわちL1´中
のプリミティブを示す配列要素)の入力リストにS、
T、Uのidが付け加えられる。また、図に記入してい
ないが、S、T、Uの出力リストには、A´、B´、P
´idが付け加えられる。次に、A´の入力リストにP
のidが、PIの出力リストにA´のidがそれぞれ付
け加えられ(すなわち、PIからA´への入力枝が付け
加えられ)、Aの入力リストにP´のid、P´の出力
リストにAのidがそれぞれ付け加えられ(すなわち、
P´からAへの入力枝が付け加えられる)。また、Pの
出力リストにPOのid、POの入力リストにPのid
が付け加えられる。すなわち、PからPOへの枝が付け
加えられる。
【0046】この様にして得られたプリミティブグラフ
がもとのプリミティブグラフと論理的に等価であること
と、ループの発振の検出が可能であることを、図5およ
び図11を用いて説明する。ここでいう発振とは、ルー
プ中に信号値の反転が奇数回現われ、信号値の確定がで
きなくなることをいう。
【0047】図11において、ループを展開した部分E
LへはPIおよびS、T、Uの四つのプリミティブから
の入力がある。プリミティブS、T、Uの評価が行なわ
れた後EL中のプリミティブの評価が行なわれる。図1
1におけるP′、Pの値は、それぞれ図5におけるルー
プの一周目、二周目のPの値に相当する。
【0048】いま、あるクロックでのEL中のプリミテ
ィブの信号値の評価が行なわれたとする。そして、ま
ず、評価の結果P′の信号値とPIの信号値が同じにな
った場合、同じ入力が変換前のプリミティブグラフに与
えられるとPの信号値は変化しないことになる。
【0049】次に、P′の信号値とPIの信号値が異な
るがP′とPの信号値が同じである場合、同じ入力を変
換前のループに与えるとPの信号値は一度だけ変化し確
定する。これは図5においてループを何周か順をおって
評価するとわかりやすい。
【0050】一周目においてPの値は内部状態として持
っていた自分自身の値とS、T、Uからの入力によって
変化する。二周目においてPの値は、一周目において得
られたPの信号値とS、T、Uの信号値によってきまる
が、もし、二周目のPの値が一周目のPの値と等しけれ
ば(図11でP′とPの信号値が等しければ)、二周目
以後のループ評価においてPの値は変化しない。なぜな
ら、二周目以後はPを評価するための入力、すなわち前
の周でのPの信号値とS、T、Uが変化しないからであ
る。よって、ループは発振しない。
【0051】P′の信号値とPFの信号値が異なりP′
とPの信号値も異なる時、同じ入力を変換前のループに
与えるとPの値は定まらないことが同様の説明でわか
る。すなわち、各信号は二値しかとらないのでPとPF
の値は等しいことに注意すれば、三周目のPの信号値は
一周目のP信号値と同じになり、以後、奇数周と偶数周
でPの信号値が異なり、よって、ループは発振する。
【0052】以上より、PとP′が等しいか否かをみる
とループの発振がわかり、発振していなければ、変換後
の回路のシミュレーション結果が論理的に正しいことが
分かる。
【0053】発振の検出を行なうためのモデル変換は次
のように行なう。すなわち、図13に示すように二つの
プリミティブPとP′の出力信号を入力とし比較をする
プリミティブ(例えば二つの入力のXORをとるプリミ
ティブ)Xoと、Xoからの出力を受けるアウトプット
プリミティブをモデルに加える。図14はこのステップ
において変更された回路モデル格納部12のデータを表
している。発振の検出は、その出力値を例えばホスト計
算機などで監視すればよい。以上がループが単純な場合
の回路モデル変換方法である。
【0054】これを具体的な回路に適用すると、図15
(a)(b)に示すようになる。この場合、同図(a)
に示す回路Nは、S、T、Uの値がそれぞれ1の時、ル
ープに沿って1周すると、論理が反転してしまい発振す
る。しかし、S、T、Uの値のうちどれか一つが0なら
ば、信号値の反転は偶数回なので発振は生じない。
【0055】これを上記方法で同図(b)に示す回路N
´に等価変換した際に回路N´の各論理素子の評価を行
ってみると次のようになる。
【0056】PIは前クロックでのPの信号値を入力す
るプリミティブでありクロック0においては不定Xとす
る。
【0057】XoはPとP´の出力のXORを取るプリ
ミティブである。PとP´の出力が等しい時は、Xoの
出力は0であるが、PとP´の出力が異なる時は、Xo
の出力は1である。レベルソート法に従って各クロック
での信号値の評価をA´、B´、P´、A、B、P、X
oの順で行った結果は次のようになる。
【0058】まず、クロック0でのPI、S、T、Uの
入力をそれぞれX、1、1、0とすれば、各素子の出力
信号値はそれぞれX、0、1、1、0、1、0となり、
クロック1でのS、T、Uの入力をそれぞれ1、1、1
とすれば、PIの値は1なので、各素子の出力信号値は
それぞれ1、1、0、0、0、1、1となる。これによ
り発振が起こらない場合には、正しいシミュレーション
結果が得られ、発振が起こる場合は、Xoの出力で発振
を検知できる。
【0059】一般の複数プリミティブからなる強連結成
分は、複数ループから構成される場合もあり(図1
6)、また、複数複数プリミティブからなる強連結成分
は回路全体で一つだけとは限らない。この場合前述の方
法を拡張した次のような処理を繰り返し用いればよい。
【0060】(1)プリミティブを二つ以上含む強連結
成分を一つ選びSPGとする。また、SPG内のプリミ
ティブを一つ選びPとする(図17)。
【0061】(2)プリミティブPに対応するフリップ
フロップPFを新たに状態記憶部に加え、PFの出力を
与える入力プリミティブPIとPFへの入力を与える出
力プリミティブPOを、新たに回路モデルに格納する回
路モデル格納部12のプリミティブグラフに加える。次
に、Pから部分グラフSPGに出力する枝を除去し部分
グラフSPG1を作成する。この操作によりSPG1内
には、Pを含むループは存在しなくなる(図18)。
【0062】(3)SPG1の強連結成分を求め、も
し、二つ以上のプリミティブを含む強連結成分があれ
ば、そのような強連結成分に対し再帰的にこの処理を行
い、ループに含まない部分グラフSPG2を作成する
(図19)。
【0063】(4)この時点ではすでにSPG2にはル
ープは含まれないので、部分グラフSPG2と同一構造
の部分グラフSPG2′を作り、GからSPG2′へ対
応する入力枝を付ける。その際、Pからの出力を受けて
いたプリミティブへの入力にはフリップフロップPFの
出力(すなわちPIからの入力)を割り当てる。また、
複製した部分グラフSPG2′に含まれるPからの出力
を、SPG2に含まれるプリミティブでPからの出力を
受けていたプリミティブへの入力とする(図20)。さ
らに、PFへの出力としてPOへPからの出力を繋ぐ。
【0064】ステップ2で強連結成分に含まれるプリミ
ティブの数が少なくとも一つ以上減るので、もし、残り
のグラフ中にループ(即ち複数のプリミティブを含む強
連結成分)があったとしても、そのループ中のプリミテ
ィブ数はもとの強連結成分より一つ以上少ない。よっ
て、この手順を繰り返すことにより最終的に得られるグ
ラフにおいては、全ての強連結成分中はプリミティブを
1個からなる。すなわち、ループを含まない回路に変換
できる。
【0065】発振を検出するためには、例えば上記手順
におけるPとP′の組に対して、PとP′の信号値を入
力とし比較をするプリミティブを加えて回路外部に出力
し(すなわち出力プリミティブの入力とし)ホスト計算
機などで監視することにより行う。
【0066】ループからなる回路を等価な回路に変換す
る変換部15は、上記の方法で等価変換を施してループ
をなくし、かつ発振を検出できるようになったプリミテ
ィブグラフを記憶装置に格納してシミュレーション部1
に引き渡すようになる。
【0067】なお、上述した発振の検出法はレベルソー
ト法にのみ限定されるものではない。ループを二周だけ
評価すれば発振を検出できるということは、レベルソー
ト法以外のシミュレーションアルゴリズムに適用でき
る。
【0068】例えば、ソフトウエアシミュレータなどで
はモデルの複製を作らずに次のようにシミュレーション
する方法も考えられる。すなわち、図21に示すように
プリミティブグラフに対して、まず、あるクロックにお
けるL′の評価を行ないPの信号値を記憶装置PMに格
納する。次に、PMの値がPFの値と等しければ回路は
発振せずPの評価結果は正しい。PMの値がPFの値と
異なればPFのかわりにPMの値を用いてもう一度L′
の評価すなわちPの評価を行なう。そして、Pの値とP
Mの値が同じなら回路は発振せず、Pの値とPMの値が
異なれば回路は発振する。
【0069】また、上述では、信号値が2値の場合のみ
述べたが、多値の場合への拡張も可能である。
【0070】従って、このようにすれば、従来レベルソ
ート法では原理的にシミュレーションできなかった組合
せ回路部にループを含む論理回路について、これを等価
回路モデルに変換することによりレベルソート法でシミ
ュレーションすることができるようになる。また、変換
前の回路ループの発振の検証も行うことができるように
なる。
【0071】次に、本発明の他の実施例として、ハード
ウェアエミュレータの例を図22、図23により説明す
る。
【0072】図22はハードウェアエミュレータの構成
図である。この場合、エミュレータ221は論理ブロッ
クが専用のFPGA222で実現される。そして、FP
GA222は完全クロスバスイッチ223を介して多段
に結合されており、信号は入力側から出力側へ一方向に
流れる。なお、FPGA222間の結合は部分クロスバ
スイッチで構成されていてもよい。
【0073】図23はFPGA222の構成図である。
ここでのプログラム可能素子は4入力1出力の万能素子
222aからなっている。一般にはM入力N出力型
(M、Nは正の整数)の万能素子であってもよい。そし
て、万能素子222aは完全クロスバスイッチ222b
を介して多段に結合されており、信号は入力側から出力
側へ一方向に流れる。なお、万能素子222a間の結合
は部分クロスバであってもよい。
【0074】FPGA内の万能素子222aは、4入力
1出力単位にまとめあげられた、複数個の回路素子のシ
ミュレーションを担当する(入力数が4を越える回路素
子がある場合は、それらを4入力1出力の制約を満たす
まで分解して、それらを複数の回路素子として扱
う。)。以下、この4入力1出力単位にまとめあげられ
た回路素子集合をプリミティブと呼ぶことにする。
【0075】図24から図26に、回路のプリミティブ
への変換例を示している。図24はシミュレーション対
象の回路例を示すもので、ここでは9入力2出力の回路
としてテキサス・インスツルメント製の9ビットのパリ
ティ生成器(SN74ALS280)を示している。そ
して、図25は、図24の回路を4入力1出力の制約を
満たすプリミティブへまとめあげた例で、図26は、図
25のまとめあげの結果得られたプリミティブグラフで
ある。
【0076】これら図24から図26において、Aから
Iは入力信号、X、Yは出力信号で、1〜37はプリミ
ティブを示している。そして、各プリミティブ1〜37
は、入力側から出力へ向かって数えた最長パスの長さの
順にレベルソートされている。
【0077】レベルソートは、例えば「演算グラフ理論
(コロナ社)」p80およびp320に示された手続き
によって、計算機上で容易に実現できる。また、この手
続きによればレベルソートはグラフの枝数に比例する計
算の手間で高速に行うことができる。
【0078】ここで、万能素子は隣のレベル同士としか
結合されていないため、2レベル以上離れたプリミティ
ブ間での信号値の受渡しは、途中の万能素子にその信号
値を記憶させて実現する。このため、図26に示すプリ
ミティブグラフに、信号の受渡し用のダミープリミティ
ブを挿入する。このようにして変換されたプリミティブ
グラフを図27に示している。図27において38〜4
4が、出力信号10、11、12、22、23、24、
28を保持するダミープリミティブである。これらダミ
ープリミティブ38〜44は図中では陰影をつけて表現
した。
【0079】次に、このような手続きを実行するための
プリミティブグラフを表現するデータ構造例を説明す
る。
【0080】ここで、プリミティブグラフは配列で表さ
れており、各配列要素は、それぞれ一つのプリミティブ
に関する情報を含んでいる。そして、各配列要素は図2
8に示すように、(1)プリミティブid、(2)入力
プリミティブidのリスト、(3)出力先プリミティブ
idのリスト、(4)ダミービット、(5)オリジナル
プリミティブid、(6)レベル、(7)連結成分id
からなっている。
【0081】この場合、上述の(1)〜(3)はグラフ
の接続情報、(4)〜(5)はダミープリミティブ情
報、(6)〜(7)はマッピングに関する情報である。
上記の例では、これらの情報をすべてまとめて一つの配
列として実現したが、それぞれ別々の配列として実現し
ても構わない。ダミービットはプリミティブがダミーの
とき1、そうでないとき0である。オリジナルプリミテ
ィブidは、プリミティブがダミーの場合に、もとのプ
リミティブidを格納する。プリミティブがダミーでな
いときは意味を持たない。
【0082】以下、論理回路をダミープリミティブを含
むプリミティブグラフとして表現する。
【0083】次に、図27に示す回路を、幅方向に4
個、段数方向に3個のプリミティブが並んでいるFPG
Aから構成される多段結合エミュレータにマッピングす
る場合を考える。
【0084】ここでのマッピングは、図29に示すステ
ップ2901〜ステップ2908までの処理に従い実行
される。
【0085】この場合、まず、プリミティブグラフを入
力側からFPGAの段数である3段で区切る。図30に
示す101から104は、このようにして得られた連結
成分を示している。
【0086】なお、グラフによっては、FPGAの段数
以下(例えばこの場合では2段)で区切った方が望まし
い場合もあり、これは適宜使い分けて構わない。また、
レベルで区切るという操作を適用するのは、最初に回路
全体を区切るときだけとは限らない。FPGA一段のマ
ッピングが終了するたびに回路のウェーブフロントから
改めて動的にレベルを計算して、そのレベルソートされ
た回路に対して、レベルで区切りなおしてもよい。
【0087】連結成分の番号づけ(id)は、レベルが
大きいものほど大きい番号になるようにするが、10
1、102、103のように同じレベルに対応する連結
成分どうしは、どのような順番に番号づけしても構わな
い。ここでは101、102、103、104の順にそ
れぞれ連結成分番号1、2、3、4と番号づけがなされ
ていると仮定する。図28は、連結成分101中のプリ
ミティブ15を表現するデータ構造であり、ここでのプ
リミティブ15のレベルは3、連結成分番号は1であ
る。
【0088】マッピングは、番号の小さい連結成分から
順に行なう。図30の回路のマッピングを例にとると、
101、102、103の連結成分はFPGAのサイズ
に収まっており、FPGA一個ずつにそれぞれマッピン
グを適用する。ここで、ある回路がFPGAのサイズよ
り大きいとは、その回路をレベルの順にソートしたとき
に、FPGAの幅を越えてしまうことを指す。
【0089】図31の111から113はそれぞれ、1
01から103の連結成分のマッピングを適用したFP
GAを示している。このように、一段目のレベルのFP
GA(111、112、113)へのマッピングは、レ
ベルで区切った連結成分情報を利用して効率良く行なう
ことができる。
【0090】次に、連結成分104のマッピングを考え
る。104は、FPGAのサイズより大きく、FPGA
一個には収まらない。この場合、104に対しては以下
のいずれかのマッピング方式を適用する。
【0091】 (1)接続するプリミティブを順にマッピング (2)プリミティブの番号順にマッピング (3)レベルの低いプリミティブの順にマッピング (4)プリミティブの複製を作り連結成分を複数の連結
成分に分割し、新しく得られた連結成分ごとにマッピン
グ (1)のマッピング方式では、構成成分104中のプリ
ミティブの中から適当なプリミティブを出発点として、
FPGA114へのマッピングを開始する。出発点とな
るプリミティブは最小レベルのものの中で任意で構わな
い。この例では番号が最も小さいプリミティブ25を選
ぶ。次にプリミティブ25の出力先の一つプリミティブ
29を選び、この入力であるプリミティブ42、43を
マッピングする。プリミティブ25、42、43の出力
先のプリミティブにはまだマッピングされていないもの
が含まれるため、これらはダミープリミティブとしてピ
ンまでつなぐ必要がある。従って、ピン数の制約からも
うこれ以上プリミティブをマッピングはできず、FPG
A114へのマッピングは終了する。同様の操作をFP
GA115、116へと適用する。FPGA116への
マッピングが終了すると次段のFPGAへのマッピング
を行なう。ここでも同様の操作により、図31のような
マッピング結果が得られる。
【0092】(2)のマッピング方式では、構成成分1
04中でまだマッピングされていないプリミティブの中
から、最も番号の小さいものを選ぶ。この例では、FP
GA124へのマッピングは、プリミティブ25から2
8をマッピングして終了する。次のFPGA125に
は、プリミティブ29をマッピングする。そのために2
9への入力であるプリミティブ25、42、43を前段
にマッピングする。このとき、プリミティブ30、3
1、32、33は万能素子及びピンの制約を満たさない
のでマッピングすることはできないが、プリミティブ3
4は制約を満たすため、34をマッピングして、終了す
る。以下同様の操作により図32のようなマッピング結
果が得られる。
【0093】ところで、回路の充填率の向上させるため
には、レベルの小さい順にプリミティブをマッピングす
る方が望ましい。なぜなら、単純にプリミティブの接続
を辿るときに比べて、入力から出力への信号の流れの中
のクリティカルパスを構成する回路素子をできるだけ早
い時期にマッピングするからである。(3)のマッピン
グ方式は、これを実現するものである。
【0094】図33のステップ3301〜ステップ33
06に示すアルゴリズムは、(3)のマッピング方式で
ある。これは図29中の連結成分iのマッピングをさら
に詳細化して示したもので、構成成分104中のプリミ
ティブをレベルの小さい順にマッピングする。FPGA
134にはプリミティブ25から28をマッピングして
終了する。FPGA135には、プリミティブ41から
43をマッピングする。さらに万能素子に余裕があるた
め、プリミティブ29をマッピングして終了する。ここ
で、104中の最小レベルのプリミティブがすべてマッ
ピングできたので、FPGA136には、次の段のプリ
ミティブのうち、まだマッピングされていないプリミテ
ィブ30をマッピングする。同様の操作により、プリミ
ティブ33をマッピングして終了する。この結果を図3
4に示す。
【0095】なお、FPGA136へのプリミティブ3
0、33のマッピングは、次段のFPGAへのマッピン
グ結果をみると、本来不必要なものである。従って、3
のマッピング方式では図30の回路をエミュレータにF
PGA7個でマッピング完了したことになり、(1)あ
るいは(2)のマッピング方式に比べ、FPGAの充填
率が向上していることが分かる。
【0096】このように、FPGAのサイズを越える連
結成分に対しては、単純にレベルの小さい順にマッピン
グするのが望ましい。この方式は計算時間のオーバーヘ
ッドがほとんどないため、マッピングの高速性も保持さ
れる。
【0097】もう一つ、連結成分の大きさがFPGAの
サイズを越えたときに有効であるのは、他のプリミティ
ブとの接続が多いプリミティブの複製を作り、もとの連
結成分をFPGAのサイズ以下の部分回路に分割する方
法である。これは(4)のマッピング方式である。
【0098】次に、図35に示す回路を段数、幅方向に
4個、段数方向に2個のプリミティブが並んでいるFP
GAから構成されたエミュレータにマッピングする場合
を考える。
【0099】FPGAの段数である2段でこの回路を区
切ったとき、図35のように連結成分201〜204に
分割される。ここで、FPGAのサイズを越えている連
結成分203に着目する。連結成分203を番号の順あ
るいはレベルの低い順にマッピングした結果が図36で
ある。使用したFPGAは213から216の4個であ
る。ここで、連結成分203中で最もレベルの低いプリ
ミティブのうち、最も出力先のプリミティブ数が多いも
のを選び、それの複製を作る。この例では、そのような
プリミティブの候補として、プリミティブ15、16、
17の3つがあるが、番号が最も小さいプリミティブ1
5を選ぶ。図37(a)は連結成分203を構成するプ
リミティブグラフである。図37(b)はプリミティブ
15の複製を作成することによって、連結成分203が
新たな3つの連結成分221、222、223に分解さ
れた結果を示している。ここで図37(b)のプリミテ
ィブ151、152はともにプリミティブ15の複製を
表している。
【0100】ここで、15の複製を作成した後も、依然
としてFPGAのサイズを越えているため、連結成分2
21に対して再び上記のプリミティブの複製による分解
を適用する。この結果、プリミティブ16、17の順に
複製を作成して得られた分解を図37(c)に示す。こ
のようにして連結成分203は、231から237のF
PGAのサイズ以下の計7個の連結成分に分解された。
連結成分231から237にそれぞれ連結成分番号3〜
9を付け、連結成分204に連結成分番号10を付ける
と、図35のプリミティブグラフは10個のFPGAの
サイズ以下の連結成分に分けられたことになる。
【0101】以上の複製の作成の際に、プリミティブ1
5に関する情報がどの様に変化するするかを図38と図
39に示す。図38は、複製作成前のプリミティブ情報
であり、図39は、複製作成後のプリミティブ情報であ
る。図39は、プリミティブ15の出力先が1つだけの
3つのプリミティブ15、151,152に分かれる。
ここでは、ダミープリミティブへ出力しているプリミテ
ィブに、元のプリミティブ15と同じidを付けてい
る。
【0102】次に、新たに得られた複数個の連結成分を
FPGAのサイズ以下という条件を満たしながら、適当
に組み合わせてまとめ上げを行なう。まとめあげの方法
として、例えば次のような手続きがある。
【0103】ステップ1 C、Tを空集合、Uを上記の
手続きで得られた連結成分を要素とする集合とする。
【0104】ステップ2 Uが空ならば終了。
【0105】ステップ3 Uの中から最もサイズが大き
いものAを選ぶ。
【0106】ステップ4 TとAをマージしてできたグ
ラフをSとする。
【0107】ステップ5 UがFPGAのサイズ以下な
らば、TをSに置換え、UからAを除き、そうでなけれ
ば、CにTを登録する。
【0108】ステップ6 ステップ2へ行く。
【0109】ステップ4でのマージの結果、上記の手続
きを終了した時、Cには、FPGAの大きさになるまで
まとめあげられた連結成分が要素として含まれる。この
過程で、あるダミープリミティブに対するオリジナルプ
リミティブidと別のプリミティブのidが一致してい
る場合は、プリミティブ同士をまとめることができる。
【0110】図37(c)の複数の連結成分に対して、
上記の手続きを適用する。ステップ3のAとして、サイ
ズが一番大きいものを選ぶことにする(サイズが等しい
ときは、番号が小さい順に選ぶ)。手続きの終了時に
は、図40に示すように連結成分241、242、24
3にまとめあげが行なわれる。このまとめ上げの際のプ
リミティブ情報の書き換えは、連結成分の分解のときと
同様に行えば良い。必要ならば、生成した複製に対応し
たプリミティブ情報を消去する。
【0111】以上で得られた連結成分をもとに、図35
の回路をプリミティブの複製を作り、グラフを再構成し
たのが、図41である。図35での連結成分203が、
図41では、連結成分311、312、313になって
いる。
【0112】図41のグラフをマッピングした結果を図
42に示す。連結成分311、312、313のマッピ
ングに要したFPGAは3個であり、図36に示したよ
うに(3)のマッピング方式を用いた時に、FPGAを
4個要した場合に比べ、改善されたことが分かる。
【0113】従って、(4)のマッピング方式を用いれ
ば、再プログラム可能な複数の論理ブロックからなる論
理エミュレータにおいて、高速性をほとんど失うことな
くFPGAの充填率を向上させることができる。また、
プリミティブの複製によるグラフの連結成分の分割およ
び纏め上げ手続きは、機械化が容易であり、また、それ
に要する計算時間もほぼグラフの探索に要する時間と同
等である。つまり、連結成分のまとめあげも機械的であ
り、ほとんどバックトラックをしないため、同様に短時
間で実行できる。これにより、図43のステップ420
1〜ステップ4205に示すようにプリミティブの複製
による連結成分の割り付けの手続きについても、多段結
合のエミュレータにおけるマッピングの高速性を失うこ
となく、FPGAの充填率を向上を図ることができる。
【0114】なお、プログラム可能素子同士の結合が多
段接続方式以外の接続であるようなエミュレータにも本
発明のアルゴリズムは適用可能である。
【0115】
【発明の効果】本発明によれば、従来、組合せ回路部に
ループを含む論理回路は、レベルソート法では原理的に
シミュレーションできなかったが、このような論理回路
モデルを等価回路モデルに変換することによりレベルソ
ート法でシミュレーションすることができるようにな
る。また、変換前の回路のループの発振の検証も行うこ
とができる。
【0116】また、本発明によれば、再プログラム可能
な複数の論理ブロックからなる論理エミュレータにおい
て、高速性をほとんど失うことなくFPGAの充填率を
向上させるマッピング方式を実現することができ、同時
に、これら分割の手続きの機械化が容易なことから計算
機上のプログラムとして実現することもできる。
【図面の簡単な説明】
【図1】本発明の一実施例の概略構成を示す図。
【図2】一実施例のモデル変換の手続きを示す図。
【図3】配列要素の構成を示す図。
【図4】強連結成分の分解を説明する図。
【図5】ループを含む回路モデルを示す図。
【図6】ループを含む回路モデルを示す図。
【図7】切断点を指定したループを含む回路モデルを示
す図。
【図8】切断点を指定したループを含む回路モデルを示
す図。
【図9】ループを切断した部分回路を二重化した回路モ
デルを示す図。
【図10】ループを切断した部分回路を二重化した回路
モデルを示す図。
【図11】対応する枝を加えた等価回路モデルを示す
図。
【図12】対応する枝を加えた等価回路モデルを示す
図。
【図13】発振検出のためのプリミティブを加えた回路
モデルを示す図。
【図14】発振検出のためのプリミティブを加えた回路
モデルを示す図。
【図15】回路変換の例を示す図。
【図16】強連結成分(複数のループ)を含む回路モデ
ルを示す図。
【図17】切断点を指定して一つのループの切断を行な
った回路モデル1を示す図。
【図18】切断点を指定して一つのループの切断を行な
った回路モデル2を示す図。
【図19】ループ切断後の回路モデルと強連結成分を示
す図。
【図20】等価回路を示す図。
【図21】ソフトウエアシミュレータの場合のシミュレ
ーション法を説明する図。
【図22】本発明の他の実施例のエミュレータの構成を
示す図。
【図23】FPGAの構成を示す図。
【図24】シミュレーション対象回路例を示す図。
【図25】プリミティブへのまとめあげの例を示す図。
【図26】プリミティブグラフを示す図。
【図27】ダミープリミティブの挿入例を示す図。
【図28】プリミティブ情報を表現するデータ構造を示
す図。
【図29】回路割り付け手続きの流れを示す図。
【図30】レベルで区切ったときの連結成分を示す図。
【図31】回路割り付け結果(プリミティブ接続をたど
る方式)を示す図。
【図32】回路割り付け結果(プリミティブ番号順方
式)を示す図。
【図33】連結成分の割り付け手続き(レベルの小さい
順に割り付け)を示す図。
【図34】回路割り付け結果(レベルの小さい順方式)
を示す図。
【図35】プリミティブグラフを示す図。
【図36】回路割り付け結果(レベルの小さい順方式)
を示す図。
【図37】プリミティブの複製による連結成分の分解を
示す図。
【図38】複製作成前のプリミティブ情報を示す図。
【図39】複製作成後のプリミティブ情報を示す図。
【図40】連結成分のまとめあげを示す図。
【図41】プリミティブまとめあげ後のプリミティブグ
ラフを示す図。
【図42】回路割り付け結果(プリミティブまとめあげ
後)を示す図。
【図43】連結成分の割り付け手続き(プリミティブの
複製による連結成分の分割)を示す図。
【符号の説明】
11…シミュレーション部、12…回路モデル格納部、
13…組合せ回路部と状態記憶部を分離する分離部、1
4…ループ回路検出部、15…ループからなる回路を等
価な回路に変換する変換部、221…エミュレータ、2
22…FPGA222a…万能素子、222b…完全ク
ロスバスイッチ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 論理回路をレベルソート法を用いてシミ
    ュレーションを行なう論理シミュレーション装置におい
    て、 シミュレーション対象となる論理回路を格納する手段
    と、 前記論理回路を組み合わせ回路部と状態記憶部とに分離
    する手段と、 この手段で分離された組合せ回路部より複数の論理素子
    から構成されるループからなる回路Aを抽出する手段
    と、 前記回路A中の論理素子の一つの論理素子Zについてそ
    の出力を取り去った回路Xを作成する手段、前記論理素
    子Zの前回の出力信号値を記憶する記憶素子Uを作成す
    る手段、前記回路Xを複製した回路Yを用いて、前記回
    路Y、回路Xおよび記憶素子Uの縦続接続回路を構成す
    る手段を有する回路変換手段とを具備し、 前記回路Yの各論理素子に対し前記回路Xの各論理素子
    に対する入力と同じ入力を接続することを特徴とする論
    理シミュレーション装置。
  2. 【請求項2】 前記回路Xの論理素子Zの出力と前記複
    製された回路Yの前記論理素子Zに相当する論理素子の
    出力を比較する手段を有し、前記ループの発振するか否
    かを検出可能にした請求項1記載の論理シミュレーショ
    ン装置。
  3. 【請求項3】 再プログラム可能な複数の論理ブロック
    を多段結合した論理エミュレータにおいて、 入力側からの信号の流れの順にレベルソートされたプリ
    ミティブグラフを入力側から数えて一定のレベルごとに
    区切ることで複数の連結成分を生成し、これら連結成分
    ごとに論理ブロックに割り付けるようにしたことを特徴
    とする論理エミュレータ。
  4. 【請求項4】 論理ブロックに割り付けられた連結成分
    のサイズが前記論理ブロックのサイズを越えるとき、該
    連結成分中で入力側から数えたレベルが最も小さい回路
    素子の複製を作ることで該連結成分を前記論理ブロック
    のサイズ以下の複数の連結成分に分解するとともに、こ
    れら連結成分を前記論理ブロックのサイズ以下という条
    件の下でまとめて前記論理ブロックに割り付けるように
    したことを特徴とする請求項3記載の論理エミュレー
    タ。
JP5073988A 1992-09-11 1993-03-31 論理シミュレーション装置 Pending JPH06290230A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5073988A JPH06290230A (ja) 1993-03-31 1993-03-31 論理シミュレーション装置
US08/120,220 US5572710A (en) 1992-09-11 1993-09-13 High speed logic simulation system using time division emulation suitable for large scale logic circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5073988A JPH06290230A (ja) 1993-03-31 1993-03-31 論理シミュレーション装置

Publications (1)

Publication Number Publication Date
JPH06290230A true JPH06290230A (ja) 1994-10-18

Family

ID=13534007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5073988A Pending JPH06290230A (ja) 1992-09-11 1993-03-31 論理シミュレーション装置

Country Status (1)

Country Link
JP (1) JPH06290230A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006318266A (ja) * 2005-05-13 2006-11-24 Nec Electronics Corp 半導体デバイス、半導体設計装置および半導体設計方法
WO2020068988A1 (en) * 2018-09-25 2020-04-02 Synopsys, Inc. Hardware simulation systems and methods for identifying state-holding loops and oscillating loops

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006318266A (ja) * 2005-05-13 2006-11-24 Nec Electronics Corp 半導体デバイス、半導体設計装置および半導体設計方法
WO2020068988A1 (en) * 2018-09-25 2020-04-02 Synopsys, Inc. Hardware simulation systems and methods for identifying state-holding loops and oscillating loops
US11475197B2 (en) 2018-09-25 2022-10-18 Synopsys, Inc. Hardware simulation systems and methods for identifying state-holding loops and oscillating loops

Similar Documents

Publication Publication Date Title
JP3441645B2 (ja) フィルタリング型アプローチを使用する組合せ回路の検証方法
JP3119646B2 (ja) 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法
US6957404B2 (en) Model checking with layered localization reduction
US6473885B1 (en) Digital circuit layout techniques using circuit decomposition and pin swapping
US5574893A (en) Computer logic simulation with dynamic modeling
JP3857961B2 (ja) ディジタル回路論理ネットワークベースのコンピュータ支援設計方法及び装置
US5572710A (en) High speed logic simulation system using time division emulation suitable for large scale logic circuits
US6321363B1 (en) Incremental simulation using previous simulation results and knowledge of changes to simulation model to achieve fast simulation time
US7865346B2 (en) Instruction encoding in a hardware simulation accelerator
US7712059B1 (en) Coverage metric and coverage computation for verification based on design partitions
WO1996004608A1 (en) System and method for simulating discrete functions using ordered decision arrays
US20020010899A1 (en) Digital circuit layout techniques
EP1769407A2 (en) Loop manipulation in a behavioral synthesis tool
Pelz et al. Pattern matching and refinement hybrid approach to circuit comparison
Nagayama et al. Minimization of average path length in BDDs by variable reordering
JPH06290230A (ja) 論理シミュレーション装置
US20030046649A1 (en) Model-based logic design
Mishchenko et al. A semi-canonical form for sequential AIGs
JPH1091677A (ja) シミュレーション/エミュレーションの効率を増すための論理変換方法
US6898562B2 (en) Method and system for efficiently overriding net values in a logic simulator machine
Singh et al. SIS: A system for sequential circuit synthesis
JP3037263B2 (ja) ブールの充足可能性を実現する構成可能ハードウェアシステム及びそのための方法
Biliński et al. An efficient verification algorithm for parallel controllers
EP0592076B1 (en) Compilation mechanism for a simulation model
Sedaghat Routability estimation of FPGA-based fault injection