JP4044732B2 - 電気回路の比較方法 - Google Patents
電気回路の比較方法 Download PDFInfo
- Publication number
- JP4044732B2 JP4044732B2 JP2000541610A JP2000541610A JP4044732B2 JP 4044732 B2 JP4044732 B2 JP 4044732B2 JP 2000541610 A JP2000541610 A JP 2000541610A JP 2000541610 A JP2000541610 A JP 2000541610A JP 4044732 B2 JP4044732 B2 JP 4044732B2
- Authority
- JP
- Japan
- Prior art keywords
- automaton
- state
- variables
- decomposition
- variable
- 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.)
- Expired - Lifetime
Links
Images
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
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property 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)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、電気回路を互いに比較する方法に関する。
【0002】
ディジタル回路の設計においては、製造開始前の品質保証のために開発時間全体の30%〜70%が必要とされる。品質保証において集中的なシミュレーションにより、回路内のエラーを発見するようにしている。シミュレーション完了後もディジタル回路の動作特性の一部分だけが検査されるので、誤った設計が製造に入るのを常に考慮しなければならない。製造を開始してから気がつく電気回路の矛盾ないしは間違いや、それに続いて行われる補正のためには、時間およびコストのかかるセットアップ作業が必要となる。
【0003】
品質保証によって、1つの回路のための回路設計の種々のフェーズの記述フォームが同じ入出力特性をもつようにすべきである。この場合、(ディジタル)回路をブール入出力値と状態値をもつ有限オートマトンとして表すのが一般的である(文献[1]参照)。回路設計の種々のフェーズにおける記述フォームを互いに比較すると、それにより記述フォームの基礎となっている回路が比較される。
【0004】
モデル生成において、個々の設計ステップにより生じる回路が有限オートマトンにマッピングされる。次に、オートマトンの入出力がどのように対応づけられているが求められる(インプット/アウトプットマッチング)。この対応づけに関して、オートマトンにおいて等しい入力値が同じ出力へ導かれているかが調べられる。これが該当しなければ、ユーザに対しエラーの分析を行わせることのできる診断が行われる。
【0005】
文献[2]から、1つの製造機械つまり2つのオートマトンの組み合わせを簡単にすることを目的とした方法が知られている。この場合、すべての状態遷移関数の集合が調べられ、達成可能な状態の集合で同じ動作をする関数の部分集合に分解される。互いに類似したオートマトンの場合、それらの部分集合は2つのオートマトンから等しい個数の部分集合を有しており、しかも2元であり、したがってそこから状態変数の対応づけが生じることになる。この方法の欠点は、両方のオートマトン間の差によって使用可能な結果が得られなくなってしまうことである。論理的に互いに結びついている2つの状態遷移関数が異なっていると、適正な対応づけができない。
【0006】
状態符号化とは、オートマトンのかたちで回路を表現することであり、そのオートマトンは状態および状態遷移関数を有している。
【0007】
2つの回路の構造的な比較とは、両方の回路の状態符号化が同じ形式で行われていることを前提として、回路を表す結合ロジックを比較することである。
【0008】
シーケンシャルな比較にあたって、2つの回路の同じ入出力動作が照合され、その際、個々の回路はそれぞれ異なる状態符号化を有する可能性がある。
【0009】
構造的に同じオートマトンは等しい状態符号化を有しており、構造的に類似したオートマトンはほぼ等しい状態符号化を有している。
【0010】
分解(Zerlegung, Decomposition)とは以下では、互いに共通の要素のない複数の集合から成る1つの集合のことである。グループは分解ないしディコンポジションの1つのエレメントの要素であって、さらにこの要素は1つの集合を表している。部分分解は1つの分解の部分集合である。(1つの分解の)精密化とはその字句から、分解の「いっそう細かい分割」であることがわかる。個々で示した関係を手短な実例に基づき説明する。
【0011】
基本集合: {a,b,c,d,e}
分解: {{a,b},{c,d},{e}}
グループ {a,b}または{c,d}または{e}
部分分解: たとえば{{a,b}{e}}または
{{a,b}}または
{{c,d}{e}}
精密化: {{a},{b},{c,d},{e}}
本発明の課題は、電気回路の比較方法において、設計プロセスを完全には成し遂げる必要がなく、電気回路を記述するオートマトンの状態遷移関数の抽象化に基づき、それぞれ異なるが構造的に類似したオートマトンにおいて効率的な比較を行えるようにすることである。
【0012】
この課題は、独立請求項に記載の特徴により解決される。
【0013】
本発明は電気回路を比較する方法に関するものであり、この場合、第1の回路は第1のオートマトンにより表され、第2の回路は第2のオートマトンにより表される。第1のオートマトンの入力変数と出力変数は、第2のオートマトンの対応する入力変数と出力変数にマッピングされる。基本集合には、第1のオートマトンと第2のオートマトンの状態変数が含まれている。この基本集合の分解に基づき、
(1)分解の各状態変数ごとに、状態変数と入力変数と出力変数との間にどのようなデータの依存性が存在するのかについて調べるステップ(この場合、1つのグループの状態変数は区別できない)と、
(2)ステップ(1)に従い同じデータ依存性により定められている状態変数を、分解における1つのグループにまとめるステップと、
(3)すべての状態変数についてステップ(2)を実行し、分解の精密化を求めるステップ
が実行される。
【0014】
精密化の1つのグループにおける状態変数が互いに対応づけられ、オートマトンの基礎を成す電気回路の比較が求められた対応づけに基づき実行される。
【0015】
それぞれ有限オートマトンにより表される互いに比較するステップは、両方のオートマトンにおけるそれぞれ1つの状態変数を互いにペアとして対応づけることにあり、これによってどの状態遷移関数を比較すべきであるか、およびどの状態変数を比較にあたり照合すべきであるかについて定められる(構造的な比較)。
【0016】
シーケンシャルな比較のためには所定の変数順序が必要であり、つまり状態変数を表記して処理する順番が必要であるが、この順番によってシーケンシャルな比較の煩雑さがかなり決まってしまう。本発明による方法を用いて変数の順序を決めると、シーケンシャルな比較にかかる実行時間が劇的に低減されるし、用意すべきメモリスペースに対する要求が著しく小さくなる。
【0017】
本発明の1つの実施形態によれば、この方法の反復は、分解の精密化を新たな分解としてセットし、次の反復によっても分解の精密化がもはや求められなくなるまでステップ(1)を続けることによって実行される。
【0018】
有利には1つのグループ内に、第1および第2のオートマトンの同じ個数の状態変数が設けられている。このグループはその場合、バランスがとれていると呼ばれる。マッチンググループは2要素のバランスのとれたグループである。有利には反復的なこの方法の適用の最後に複数のマッチンググループが得られたならば、その結果として個々のマッチンググループ内に含まれている状態変数の一義的な対応づけが得られるようになる。
【0019】
さらに別の実施形態によれば、分解の精密化が以下の可能性のうち少なくとも1つによって達成される。すなわち、
a)サポート法によって各状態変数xごとに、状態変数xの状態遷移関数が依存している状態変数と入力変数を求める。
【0020】
b)逆サポート法によって各状態変数ごとに、状態変数に依存している状態変数と出力変数を求める。
【0021】
ここで付言しておくと、基本集合は有利には両方のオートマトンのすべての状態変数を含んでいる。個々のオートマトンに関して、各状態変数xごとにそのオートマトンにおける他の状態変数との依存性が求められる。データ依存図に基づき可能な表示が行われる。このデータ依存図は、個々のオートマトンの各状態変数のためのノードと、ノードuがノードvのサポート内にあるとき、ノードuからノードvへの矢印を有している。これとは逆に、ノードvはノードuの逆サポート内にある。
【0022】
さらに本発明の1つの実施形態によれば、付加的にシミュレーション法に基づき精密化が形成され、これは有利には偶然に形成される入力変数と出力変数の値の割り当てに基づき、状態変数の基礎を成す状態遷移関数の同じ値の割り当てが求められる。
【0023】
本発明の別の実施形態によれば、粗野化法に基づき分解の誤った特定の精密化が補正され、この場合、第1のオートマトンと第2のオートマトンのそれぞれ異なる個数の状態変数をもつグループが1つのグループにまとめられる。
【0024】
一般に粗野化法により、分解におけるバランスのとれていないグループ(そこでは比較すべき2つのオートマトンの状態変数の対応づけを行えない)に対し反対に作用する。
【0025】
本発明の付加的な実施形態の枠内で、両方のオートマトンが互いにシーケンシャルに比較される。まさにこのようなシーケンシャルな比較において有利であるのは、比較すべきオートマトンが構造的に類似していることである。シーケンシャルな比較は、第1および第2のオートマトンを互いに結合して1つの生成オートマトンを形成することによって行われる。第1のオートマトンにも第2のオートマトンにも入力信号が加えられ、第1および第2のオートマトンにおいて結果として生じた出力信号が互いに比較される。有利には、この種の比較はEXOR結合によって実行され、これによれば両方のオートマトンの出力信号の異なることが出力値「0」(つまり「偽」)によって表される。
【0026】
シーケンシャルな比較にあたり、有利には2進の決定図(Binary Decision Diagramms = BDD)が用いられる(文献[3]も参照)。変数の順序によってBDD内において、どのような順番で変数が出されるかが決定される。変数の順序により、BDDがメモリをどの程度要求するのか、およびどのくらいの期間でそれを処理可能であるのかがかなり決まってしまう。
【0027】
変数の順序を求めるために本発明による方法を適用することができる。したがって状態変数の求められた対応づけに応じて変数の順序が求められ、その際、互いに対応づけられた状態変数が相前後して配置される。
【0028】
従属請求項には本発明の実施形態が示されている。
【0029】
次に、図面を参照しながら本発明の実施例について詳しく説明する。
【0030】
図1は、回路設計の様々なステップを表すブロック図である。
【0031】
図2は、2つの回路を比較するステップを示すブロック図である。
【0032】
図3は、2つの状態依存図をもつ第1の略図である。
【0033】
図4は、2つの状態依存図をもつ第2の略図である。
【0034】
図5は、第1および第2のオートマトンをもつ生成オートマトンを表す略図である。
【0035】
図1には、回路設計の様々な段階(フェーズとも称する)を表すブロック図が描かれている。1つの回路は様々なかたちで記述することができる。ステップ101において、レジスタ平面に回路が記述される(英語:Register-Transfer-Level = RTL)。第1の合成ステップ104において第1のネットリスト102が、第2の合成ステップにおいて第2のネットリストが生成される。このようなネットリストは様々な記号で表現される。ファイナルネットリスト103において、製品における回路が与えられる。
【0036】
ステップ104,105,109には有利にはロジックの最適化が含まれており、この場合、最適化後のフリップフロップの個数は最適化前のフリップフロップの個数と等しい。さらに有利にはいわゆる「スキャンパス」が回路に挿入され、これによりあとで生成されるコンポーネント(チップ)のテストが可能になる。また、一般にコンポーネントのためのベースクロックが相応に分割され、したがってコンポーネントの様々な個所でベースクロックを良好な品質で得ることができる("Clock-Tree)。
【0037】
設計プロセス中、回路は複数のフェーズを経ることになり、その際、RTL記述101からそれ相応のファイナルネットリスト103が生成されるまでに、数ヶ月が経過する。たとえばエラーが突然発生したなどの理由で、設計プロセス中にRTL記述に対し変更がなされると、それによってネットリスト102,108に対したいていは重大な影響が及ぼされ、つまりはファイナルネットリスト103にも重大な影響を及ぼされる。本発明によれば殊に、設計プロセス全体を新たに実行しなおすのを避けることができるようになり、ひいては莫大な時間の浪費を最小限に抑えることができるようになる。
【0038】
RTL記述101、ネットリスト102,108もファイナルネットリスト103も、ただ1つの回路における独自の記述を成す。実際に同じ回路を個々の記述によってきちんと表すことができるようにする目的で、各記述が互いに比較される。RTL記述101とネットリスト102,108との間ではいわゆる合成比較106が実行され、ネットリスト102と108の間または102と103の間ではいわゆるネットリスト比較107が実行される。個々の記述の基礎を成す回路が互いに比較され、形式上の照合に基づき相違点がみつけられる。
【0039】
基本的に、個々のプロセスステップ各々を他のプロセスステップと比較することができ、つまり各記述フォームを他の各々の記述フォームと比較することができる。
【0040】
各記述は、入力変数と出力変数をもつ類似のブールオートマトン(Boolesche Automaten)を基礎としている。それらのオートマトンのうちの2つを互いに比較する場合、第1のオートマトンの入力変数を第2のオートマトンの入力変数にマッピングし、相応に第1のオートマトンの出力変数を第2のオートマトンの出力変数にマッピングすることである。さらに各オートマトンには多数の状態変数が存在し、それらの動作が状態遷移関数によって記述される。さらに本発明の別の目的は、第1のオートマトンの状態変数を第2のオートマトンの状態変数に対応づけることであり、その際、第1のオートマトンの個々の状態変数各々ができるかぎり第2のオートマトンの状態変数に対応づけられるようにする。状態変数の一対の比較により、2つのオートマトンの照合が可能となる。
【0041】
ブール有限オートマトンはその動作に関して、種々の記述101,102,108または103において大きな差を有していない。その理由は、(理想的な状況では)たしかに同じ回路が記述されているからである。本発明では殊に、状態変数の意味を推定できるようにし、各オートマトン間の状態変数の対応づけを確立できるようにする目的で、状態依存図が用いられる。実例として図3および図4には、このような状態依存図が示されている。
【0042】
ここでは記号と記述が採用されており、それらは本発明の説明のために以下で重要なものである。
【0043】
2つの集合AとBについて、
A+Bは和集合
A*Bは交差(積集合)
A−Bは差集合
{}は空集合
を表す。
【0044】
互いに共通の要素のない空でない集合を集合Mの分解Zと称し、互いに共通の要素のない空でないそれらの集合の合同によりMが得られる。Zから成る1つの要素を以下では、Zから成るグループと称する。集合Mにおける分解Zの精密化Z′は、Z′の各エレメントがZから成るグループの(場合によっては仮の)部分集合である、という特性をもつMの分解である。
【0045】
Mの分解Zの部分集合Uに関するMの部分集合Aのファクタリング化A/Uとは、Aの要素を含むUから成るグループの集合である。
【0046】
実例:
Z={{1,2},{3,4,5},{6,7,8}}
U={{1,2}、{3,4,5}}
A={1,6,7}
これにより、
A/U={{1,2}}が得られる。
【0047】
ブール有限オートマトンは以下のことにより特徴づけられている。すなわち、−その入力変数(供給変数とも称する)の集合I
−その状態変数の集合S
−集合Sに属するブール状態遷移関数、これにより集合B**(S*I)がB**Sに従いマッピングされる
−その出力変数(送出変数とも称する)の集合O
−集合Oに属するブール出力関数、これにより集合B**(S+I)がB**Oに従いマッピングされる
−初期状態の集合INIT、これはB**Sの部分集合である。
【0048】
以下では、2つのオートマトンの状態変数、入力変数および出力変数がそれぞれ異なるかたちで既知であることを前提とする。ここでSは、2つのオートマトンの状態変数の集合のものである。変数の集合は、オートマトンの各々から同じ数の変数が得られるとき、バランスがとられているという。マッチンググループは、バランスのとれた2要素の集合である。
【0049】
本発明によれば、2つのオートマトンにおけるすべての状態の集合Sの連続的な精密化が行われる。その際、個々の分解は、対応づけられる可能性のある状態変数が常に同じグループ内に位置するように構成すべきである。一義的な対応づけは、マッチンググループにより定められる。
【0050】
まずはじめに、両方のオートマトンの入力変数と出力変数が互いに対応づけられる。一方のオートマトンにおいて入力変数と出力変数が、他方のオートマトンにおけるそれぞれ対応づけられた入力変数と出力変数と置き換えられる。
【0051】
この方法は、Sからの適切な初期分解Z0で始められる。有利にはこの目的で、慣用的な分解{S}が用いられる。この方法により、一連の分解Z0,Z1,Z2,...が定められる。その際、Zi+1は一般にZiの精密化であり、これはあとで説明する方法に基づき計算される。
【0052】
精密化方法はサポート法(Suportmethode)、逆サポート法(inverse Supportmethode)ならびにシミュレーション法(Simulationsmethode)である。どの精密化法をどの順序で用いるかは、個々の適用事例に依存する。分解Ziがマッチンググループだけから成るか、またはさらに後続の精密化ステップを行っても真の精密化が得られなければ、この方法は終了する。
【0053】
サポート法の場合には各状態変数xについて、それらの状態遷移関数がどの状態変数と入力変数に依存しているのかが求められる。この集合D(x)をxのサポートD(x)と称する。サポートD(x)は、その中で1つのグループの変数が区別できなくなるように修正され、これは分解Ziにおける各グループについて正確に1つの代表を求め、サポートD(x)内の各変数をそれらの代表により置き換えることによって行われる。新たな分解において2つの状態変数は、それらの修正されたサポートが等しく、かつそれらが分解Ziの同じグループ内で得られたたときに、正確に同じグループ内に入る。
【0054】
逆サポート法はサポート法と類似しており、ここでは状態変数xのサポートD(x)の代わりに状態変数xの逆サポートR(x)を求めるだけである。これは、状態変数xに依存する関数をもつようなすべての状態変数および出力変数の集合に対応する。
【0055】
シミュレーション法により、有利には偶然に、1つのグループの要素が常に同じ値をもつようなすべての入力変数と状態変数のための複数の値の割り当てが求められる。その際、各状態変数ごとにこの値の割り当てのもとでそれらの状態遷移関数の結果が計算される。新たな分解において2つの状態変数は、この結果が等しく、すでに事前に同じグループ内にあったならば、正確に同じグループに入る。
【0056】
すべての精密化法に共通するのは、それらが各状態変数ごとになんらかの情報を計算し、その計算においてZiのグループの各要素の区別がないことである。したがって、構造的に等価である2つのオートマトンからの互いに対応する2つの状態変数は引き離されない。
【0057】
次に、分解Ziからどのようにしてそれぞれ次の分解Zi+1を計算するのかについて詳しく説明する。
【0058】
サポート法
Iがすべての入力変数の集合であり、IMが入力変数のマッピングに対応するI(= Inputmatching)の分解であるとき、Y=IM+ZiはI+Sの分解である。
【0059】
UはYの部分集合を表す。さらにGは、マッチンググループではないZiのグループである。各状態変数xごとに、その状態遷移関数のサポートDが求められる。この場合、Gは次のようにして分割される。すなわち、ファクタリングD/Uが同じである状態変数が同じサブグループ内にあり、ファクタリングD/Uの異なる状態変数が異なるサブグループ内にあるように分割される。これは、マッチンググループではないZiの各グループGについて実行される。Zi+1は、このようにして得られたすべてのサブグループと、Ziのすべてのマッチンググループから成る。
【0060】
Uの正確な選定は、有利にはユーザの手に委ねたままである。Uを選定するための可能性は、Yのマッチンググループの部分集合、バランスのとれたYのグループの部分集合、または集合Y全体である。
【0061】
逆サポート法
Oはすべての出力変数の集合を表し、OMは出力変数の対応づけに相応するマッチンググループの分解を表す(= Outputmatching)。さらにX=OM+ZiはO+Sの分解である。UはXの部分集合である。Oの選定のために上述の判定基準が有効である。
【0062】
Gは、マッチンググループではないZiのグループである。Gから成る各状態変数xごとに、サポートxの現れる状態変数と出力変数の集合Rが求められる。Gは次のようにして分割される。すなわち、ファクタリングR/Uの同じ状態変数が同じサブグループ内にあり、ファクタリングR/Uの異なる状態変数が異なるサブグループ内にあるように分割される。これは、マッチンググループではないZiから成るすべてのGについて実行される。Zi+1は、これにより得られるすべてのサブグループと、Ziのマッチンググループから成る。
【0063】
代表によるインプリメント
サポート方法のインプリメントによれば、ファクタリングD/Uは集合の集合により表されるのではなく、代表の集合により表される。この目的でUに対し代表集合Vが求められ、すなわちUの各グループから正確に1つの要素を含む集合が求められる。D/Uの代表表現を得るためには、サポートDから各要素aを調べれば十分である。aを含むグループがUの中にあれば、aはこのグループの代表により置き換えられ、そうでなければ消去される。
【0064】
この方法を以下で形式的に記述するために、プログラム言語PASCLに類似した擬似コードを利用する。この場合、有利には以下の言語構造が用いられる:
:= 変数の割り当て
for each x in M do 集合Mの全要素を処理するループ命令
exists v such that Cond(v) vについて Cond (v) を満たす値が存在すれば真となり、その値がvに割り当てられる
choose any y from M 集合Mの任意の要素をyに割り当てる
choose_subset 分解の部分集合Uを選出するための関数
choose_representant グループの代表を決める
is_matching_group(G) マッチンググループGに対して真、そうでなければ偽
{} 空集合を表す
support(x) 状態変数xのサポートを求める
【0065】
【外1】
【0066】
【外2】
【0067】
これと同じようにして逆サポート法がインプリメントされる。
【0068】
択一的なインプリメンテーション
逆サポート法に関して以下で説明する択一的なインプリメンテーションによれば、逆サポートの明示的な決定が避けられる。Uの各グループごとに、サポートD(M)がMの要素のサポートの結合として求められる。マッチンググループではないZiの各グループは、Uの各MについてxとyがともにD(M)内にあるかまたはそれらの一方がその中にないことが成り立つとき、Gの2つの要素xとyが同じサブグループ内に入るように分割される。そうでなければ、それらが異なるサブグループに含まれているようにする。やはりZi+1には、そのようにして生じたすべてのサブグループとZiのマッチンググループが含まれる。
【0069】
プログラム2には、この方法の実現可能なインプリメンテーションが示されている。この場合、上述の同じ表記が有効である。ただし、
matching_groups(Z) Zのマッチンググループの集合を表す
【0070】
【外3】
【0071】
この択一的なインプリメンテーションは、状態変数xが逆サポートR(y)内にあるとき、yが正確に状態変数xのサポートD(x)内にあることを基礎としている。これによりUの各Mについて、D(M)のxはR(X)/UのMと同等である。択一的なインプリメンテーションによれば2つの状態変数xとyは、それらがZiの同じグループ内にあり、各D(M)がそれらのうち両方を含むかまたは1つも含まないとき、すなわちR(x)/UとR(y)/UがともにMを含んでいるかまたはMを含んでいないとき、Zi+1の同じグループ内にとどまる。したがってR(x)とR()/Uも等しい。なぜならば、それらはUの部分集合でなければならないからである。これとは逆に、少なくとも1つのMが存在していればZiのグループのxとyが分離され、その結果、これら2つの状態変数のうち一方がD(M)内にあり他方はないようになる。このときMはファクタ集合R(x)/UとR(y)/Uの一方にしか含まれておらず、R(x)/UないしR(y)/Uはそれぞれ異なる。このため分割Zi+1は、やはり逆サポート法を適用して得られたものと同じである。
【0072】
このインプリメンテーションと同じようにして、逆サポートを用いたサポート法もインプリメントできる。
【0073】
シミュレーション法
上述の取り決めのように、Y=IM+ZiはI+Sの分解とみなされる。xは状態変数であり、fxは対応する状態遷移関数である。Pは状態変数と入力変数の値の割り当ての集合であり、これはyの同じグループからの変数に同じ値が割り当てられるように選定される。Pは一般に、すべての可能な割り当ての小さい選択だけになる。殊に、集合Pはランダムに求めることができる。
【0074】
マッチンググループでないZiの各グループGはサブグループに分割され、その結果、Gの2つの要素xとyは、それらの状態遷移関数fxとfyがPのすべての値の割り当てについて同じ値を供給するとき、正確に同じサブグループ内に入るようになる。Zi+1はやはり、このようにして得られたサブグループとZiのマッチンググループにより形成される。
【0075】
プログラム3には、シミュレーション法のインプリメンテーションが示されている。ここでも上述の表現があてはまるが付加的に以下のことを表す。すなわち、
P シミュレーション刺激つまりほとんど任意のテスト割り当ての集合を表す
fx(v) xの状態遷移関数を値割り当てvに適用することを表す
generate_patterns(Y) 集合Pを定める、ただし、Yのグループのすべての変数について値の割り当てを等しくすべきであるため、Yがパラメータして渡される
【0076】
【外4】
【0077】
粗野化法
粗野化法により、オートマトンが構造的にはたしかに類似しているが同じではないときに生じる可能性のある誤りのある分割が補正される。ここでは基本的に、先行の精密化ステップで生じたバランスのとれていないグループを再びまとめるようにする。この目的で、事前に計算された分解Zk、ただしk≦i、を求める必要があり、これは基準分解として用いられる。そして粗野化法によりZkの各グループGごとに、Gの部分集合であるZi内のバランスのとれていないサブグループが求められる。バランスのとれていないこれらのサブグループが統合されて、Zi+1の1つのグループが形成される。しかもZi+1には、Ziのバランスのとれたすべてのグループが含まれているようにする。ここで望ましいのは、バランスのとれた付加的なグループあるいはそれどころかマッチンググループが統合により生じることである。
【0078】
どの基準分解を選択するかは、個々の事例に任されている。とはいうものの、できるかぎり小さいグループを含むとともに対応する状態変数が同じグループ内にあることを前提とすることのできる分解を選択すべきである。有利には分解Zkとして、先行の粗野化方法の結果が求められる。
【0079】
結果
理想的な事例では、最後に計算された分解Zがはっきりしたマッチンググループからの分解Zから成り、それらから状態変数の対応づけがじかに判明する。
【0080】
バランスのとれていないグループまたは2つよりも多い要素をもつグループが残されたままになる可能性がある。その原因は一方では、分割に用いられる方法が実際の状態遷移関数と出力関数を度外視する点にあるかもしれない。このような抽象化によって、正確な対応づけ(英語:Matching)のために必要とされる情報が失われる。他方、回路に冗長性が生じている可能性がある。たとえば2つのオートマトンが、理想的な状態遷移関数をもつそれぞれ2つの互いに対応づけられるべき状態変数x、yおよびx′,y′をもち、x、yないしはx′,y′が共通に存在するかまたは他方の変数のサポート内にまったく存在しない場合、この方法はすべての4つの状態変数を含むグループの存在する分解によって終了する。なぜならば、状態遷移関数は分割のためにいかなる情報も供給しないからである。
【0081】
考えられる3番目の原因は、オートマトンはたしかに類似しているけれども、いくつかの状態を対応づけることができないと識別される点にある。
【0082】
シーケンシャルな比較に関して、結果の分解Zがマッチンググループでないグループを含んでいれば、障害を受けない。比較的小さいオートマトンのための変数の順序ないしはオーダとほぼ一致している比較的大きなオートマトンのために新たな変数の順序ないしはオーダを求めるために、Zはたいてい十分に精緻である。精確には求められないこの変数の順序へ置き換えることによっても、比較的大きいオートマトンはたいてい小さくなる。
【0083】
構造的な比較にあたり、障害を及ぼすグループ内の状態変数を比較から排除する必要があり、あるいは分解をさらに調べる必要がある。このようにしてさらに調べることは、ユーザが付加的な入力をしたり状態変数の名前に基づき対応づけを下したりすることによって行うことができる。
【0084】
図2には、2つの回路を比較するステップを有するブロック図が示されている。
【0085】
ステップ201において、2つの回路が有限オートマトンによって表される。有利にはこのためにブールオートマトンが使用される。
【0086】
ステップ202において、第1のオートマトンの入力変数が第2のオートマトンの入力変数にマッピングされ(Inputmatching)、第1のオートマトンの出力変数が第2のオートマトンの出力変数にマッピングされる(Outputmatcing)(入力変数と出力変数の対応づけ)。
【0087】
ステップ203において、初期分解S0がまえもって定められる。ステップ204において、この初期分解の精密化が行われる。さらに問い合わせによって(ステップ205参照)、分解の別の精密化を求めることができるかが判定される。これが該当しなければ、求められた精密化に基づき精密化により求められた分解の特定のグループに従って状態変数が対応づけられ(ステップ206参照)、ステップ207において該当する対応づけに基づき回路が比較される。ステップ205における問い合わせにおいて、別の精密化を求めることができると判明したならば、この方法は反復的にステップ204によって続けられ、したがって次の精密化が求められる。
【0088】
実例:
サポート法および逆サポート法の例
図3には、2つの状態依存図301,302が示されており、これらは2つの回路を比較する方法に従い相違点について調べられる。
【0089】
状態依存図301は、各状態変数のためのノードと、uがvのサポート内にあるときのノードuからノードvへの矢印を有している。以下では、
i1,i2 第1のオートマトンの入力変数
i1′,i2′ 第2のオートマトンの入力変数
s1,s2,s3,s4 第1のオートマトンの状態変数
s1′,s2′,s3′,s4′ 第2のオートマトンの状態変数
o1,o2 第1のオートマトンの出力変数
o1′,o2′ 第2のオートマトンの出力変数
サポート法を使用することで、状態依存図から以下のサポートを読み取ることができる:
D1={i1},D2={i1,i2},D3={s1,s2},D4={s1,s2}
(第2のオートマトンについて類似)
この場合、状態変数の分解
Z0={{s1,s2,s3,s4,s1′,s2′,s3′,s4′}}
から出発し、すなわち、
Y0={{i1,i1′},{i2,i2′},{s1,s2,s3,s4,s1′,s2′,s3′,s4′}}
U0=Y0が成り立ち、{i1,i2,s1}はU0の代表集合となる。その際、
D1/U0=D1 ′/U0={i1},
D2/U0=D2 ′/U0={i1,i2},
D3/U0=D3 ′/U0={s1},
D4/U0=D4 ′/U0={s1}
となる。
【0090】
新たな分解Z1により、
Z1={{s1,s1′},{s2,s2′},{s3,s4,s3′,s4′}}
サポート法を新たに適用して、
Y1={{i1,i1′},{i2,i2′},{s1,s1′},{s2,s2′},{s3,s4,s3′,s4′}}
およびU1=Y1および代表集合{i1,i2,s1,s2,s3}によって、
D1/U1=D1 ′/U1={i1},
D2/U1=D2 ′/U1={i1,i2},
D3/U1=D3 ′/U1={s1,s2},
D4/U1=D4 ′/U1={s1,s2}
となる。
【0091】
その結果、Z1の付加的な精密化は生じない。すでにサポート法の第2の適用によっても付加的な精密化が行われない点が、この実例の特殊性である。
【0092】
Z1から出発して逆サポート法に基づきさらに精密化を行うことができる。この場合、
R1={s3,s4},
R2={s3,s4},
R3={o1}
R4={o2}
が成り立つ。
【0093】
Z1について、状態変数の分解と出力変数は、
X1={{o1,o1′},{o2,o2′},{s1,s1′},{s2,s2′},{s3,s4,s3′,s4′}}
となる。
【0094】
代表集合V={o1,o2,s1,s2,s3}について、
R1/X1=R1 ′/X1={s3},
R2/X1=R2 ′/X1={s3},
R3/X1=R3 ′/X1={o1},
R4/X1=R4 ′/X1={o2}
となり、その結果、Z1が精密化されて、
Z2={{s1,s1′},{s2,s2′},{s3,s3′},{s4,s4′}}
となる。
【0095】
これにより対応づけが一義的に定められ、マッチンググループが生じる。
【0096】
粗野化法の実例
次に、粗野化法の実例として図4を参照する。図4には2つの状態依存図401,402が描かれており、これらは構造的に等価ではない。
【0097】
サポート法の第1の適用は、上述の図3の実例のように進行する。たしかにここではD4 ′={s2′}(上述のように{s1′,s2′}ではない)が成り立つが、この相違点はU0によるファクタリングによって補償される。これにより、上述のようにZ1が生じる。しかしサポート法が新たに適用されると、
D1/U1=D1 ′/U1={i1},
D2/U1=D2 ′/U1={i1,i2},
D3/U1=D2 ′/U1={s1,s2},
D4/U1={s1,s2}しかしD4 ′/Y1={s2}
が成り立ち、その結果、Z2のためのグループ{s3,s3′,s4,s4′}はまずはじめにサブグループ{s3,s3′,s4}および{s4′}に分割されるようことになる。しかし粗野化法(ただしk=1)によって、サブグループが再びまとめられる。これにより、もともと対応関係にある状態変数s4とs4′が分離されてしまうのが避けられる。逆サポート法の適用後、再び一義的な対応づけを下すことができる。
【0098】
インプリメント例
先に定義した表記に加えて以下が適用される:
Support_Methode(Z,X)
Inverse_Support_Methode(Z,X)
Simulations_Methode(Z)
Vergroeberungsschritt(Z,Z_Ref)
これらは(上記にて詳述したような)個々の方法の適用を表す。サポート法と逆サポート法の場合、Uをどのように求めるかがXで表される:
X=total 分解のすべてのグループを使うようにする;
X=matcing マッチンググループだけを用いるようにする
さらにプログラム4では以下の表記が用いられる:
Z_Ref 粗野化ステップ(粗野化法)において、どの分解を基準分解Zkとして定めるかを表す
completely_matched(Z) Zのすべてのグループがマッチンググループであるかまたは1つのオートマトンの状態変数だけしか含まないとき、真となる。
【0099】
プログラム4に示したインプリメンテーションは大きいループであって、これは 'completely_matched' が満たされたとき、またはこの大きいループにおいてもはや分割(さらに別の分解)を行えないとき、中止される。
【0100】
個々の方法の適用は、固定点に到達するまで繰り返される。
【0101】
【外5】
【0102】
【外6】
【0103】
図5には、第1のオートマトンと第2のオートマトンを有する生成オートマトンが示されている。
【0104】
それぞれ基礎を成す電気回路を表現している2つのオートマトンのシーケンシャルな比較を実行できるようにする目的で、両方のオートマトン1,2(図5の504,505参照)が互いに結線され、入力変数が互いに対応づけられ、結果として生じる出力値502,503が互いに比較されるようにされる。この比較は有利にはEXOR結合によって行われ、これは出力値502と503が等しくないことを論理値「1」で表す。
【0105】
シーケンシャルな比較のためには変数のオーダないしは順序[3]が必要とされ、これは本発明による方法のマッチンググループによって得られる。有利には、有限オートマトンの機能はBDD(文献[3]参照)を用いて表される。
【0106】
本明細書においては以下の刊行物を引用した。
【0107】
[1] Prof. Dr. Hans-Jochen Schneider (編集者): "Lexikon der Informatik und Datenverarbeitung", R. Oldenbourg Verlag Muenchen, 1986, ISBN 3-486-22662-2 51〜54頁
[2] T. Filkorn: Symbolische Methoden fuer die Verfikation endlicher Zustandssysteme, Dissertation, Institut fuer Informatik an der Technischen Universitaet Muenchen, 1992 82〜97頁
[3] R. Bryant: Graph-Based Algorithms for Boolean Function Manipulation, IEEE Trans. on Computers, Vol. C-35, No. 8, 1996年8月、677〜691頁
【図面の簡単な説明】
【図1】 回路設計の様々なステップを表すブロック図である。
【図2】 2つの回路を比較するステップを示すブロック図である。
【図3】 2つの状態依存図をもつ第1の略図である。
【図4】 2つの状態依存図をもつ第2の略図である。
【図5】 第1および第2のオートマトンをもつ生成オートマトンを表す略図である。
Claims (6)
- 電気回路の比較方法において、
a)オートマトン形成手段により、第1の回路の表現が第1のオートマトンによりまえもって与えられ、
b)該オートマトン形成手段により、第2の回路の表現が第2のオートマトンによりまえもって与えられ、
c)入出力変数対応づけ手段により、第1のオートマトンの入力変数と第2のオートマトンの入力変数との対応づけ、および第1のオートマトンの出力変数と第2のオートマトンの出力変数との対応づけがまえもって与えられ、
d)前記入出力変数対応づけ手段により、前記の第1のオートマトンと第2のオートマトンの状態変数が含まれている基本集合が形成され、
e)分解手段により、該基本集合におけるまえもって定められた分解に基づき、
(1)該分解の各状態変数ごとに、状態変数と入力変数と出力変数との間にどのようなデータ依存性が存在するのかについて調べるステップが実行され、各状態変数ごとに状態変数の状態遷移関数が依存する状態変数と入力変数が求められ、各状態変数ごとに状態変数に依存する状態変数と出力変数が求められ、
(2)前記分解手段により、ステップ(1)に従い同じデータ依存性により定められている状態変数を、前記分解における1つのグループにまとめるステップと、
(3)すべての状態変数についてステップ(2)が実行され、前記分解における1つのグループを反復的にさらに別のサブグループに分けることにより前記分解の精密化を求めるステップが実行されて、
f)状態変数対応づけ手段により、個々のグループの状態変数が互いに対応づけられ、
g)比較手段により、オートマトンの基礎を成す両方の回路が、求められた対応づけに基づき比較されることを特徴とする、
電気回路の比較方法。 - 前記分解手段により、
a)分解の精密化が新たな分解としてセットされ、
b)さらに反復を行ってももはや精密化が得られなくなるまで、前記ステップ(1)が続けられるようにして、
反復が実行される、請求項1記載の方法。 - 前記入出力変数対応づけ手段により、入力変数と状態変数の所定の値の割り当てのために、状態変数の基礎を成す状態遷移関数に基づき状態変数の同じ値の割り当てが得られたときには、付加的に複数の状態変数が1つのグループにまとめられる、請求項1または2記載の方法。
- 前記分解手段により、第1のオートマトンと第2のオートマトンのそれぞれ異なる個数の状態変数をもつ2つのグループを1つのグループにまとめることにより、誤りのある精密化が補正される、請求項1から3のいずれか1項記載の方法。
- 前記比較手段により、第1のオートマトンと第2のオートマトンが結合されて1つの生成オートマトンが形成され、互いに対応づけられている状態変数を順番に配置することで変数の順序が求められる、請求項1から4のいずれか1項記載の方法。
- 前記比較手段により、前記変数の順序によって2進の決定図における状態変数の順番を求めることで、両方の回路のシーケンシャルな比較が実行される、請求項5記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19814109 | 1998-03-30 | ||
DE19814109.2 | 1998-03-30 | ||
PCT/DE1999/000674 WO1999050766A1 (de) | 1998-03-30 | 1999-03-11 | Verfahren zum vergleich elektrischer schaltungen |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002510091A JP2002510091A (ja) | 2002-04-02 |
JP4044732B2 true JP4044732B2 (ja) | 2008-02-06 |
Family
ID=7862924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000541610A Expired - Lifetime JP4044732B2 (ja) | 1998-03-30 | 1999-03-11 | 電気回路の比較方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6557146B1 (ja) |
EP (1) | EP1068580B1 (ja) |
JP (1) | JP4044732B2 (ja) |
DE (1) | DE59900770D1 (ja) |
WO (1) | WO1999050766A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE50000769D1 (de) * | 1999-05-10 | 2002-12-19 | Siemens Ag | Verfahren, anordnung und computerprogramm zum vergleich einer ersten spezifikation mit einer zweiten spezifikation |
WO2002021344A2 (de) * | 2000-09-05 | 2002-03-14 | Infineon Technologies Ag | Verfahren und anordnung zum vergleich technischer systeme unter verwendung von systemersetzungen |
DE10304569B4 (de) * | 2003-02-05 | 2007-05-10 | Melexis Gmbh | Verfahren zum Nachweis von Eigenschaften eines aus analogen und digitalen Teilsystemen bestehenden technischen Systems |
JP4702357B2 (ja) * | 2007-12-12 | 2011-06-15 | 日本電気株式会社 | 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム |
KR20100125375A (ko) * | 2008-03-26 | 2010-11-30 | 솔렉슨트 코포레이션 | 기판 구조의 태양 전지의 개선된 접합 |
US9189581B2 (en) | 2012-07-30 | 2015-11-17 | Synopsys, Inc. | Equivalence checking between two or more circuit designs that include division circuits |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668756B2 (ja) * | 1985-04-19 | 1994-08-31 | 株式会社日立製作所 | 回路自動変換方法 |
JPS6274158A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 回路変換方式 |
US4792909A (en) * | 1986-04-07 | 1988-12-20 | Xerox Corporation | Boolean logic layout generator |
US5243538B1 (en) | 1989-08-09 | 1995-11-07 | Hitachi Ltd | Comparison and verification system for logic circuits and method thereof |
DE59201155D1 (de) | 1991-04-17 | 1995-02-16 | Siemens Ag | Verfahren zur verifikation datenverarbeitender systeme. |
US5331568A (en) * | 1991-06-18 | 1994-07-19 | Microelectronics & Computer Technology Corporation | Apparatus and method for determining sequential hardware equivalence |
US5481717A (en) * | 1993-04-12 | 1996-01-02 | Kabushiki Kaisha Toshiba | Logic program comparison method for verifying a computer program in relation to a system specification |
-
1999
- 1999-03-11 JP JP2000541610A patent/JP4044732B2/ja not_active Expired - Lifetime
- 1999-03-11 WO PCT/DE1999/000674 patent/WO1999050766A1/de active IP Right Grant
- 1999-03-11 EP EP99916779A patent/EP1068580B1/de not_active Expired - Lifetime
- 1999-03-11 US US09/647,210 patent/US6557146B1/en not_active Expired - Fee Related
- 1999-03-11 DE DE59900770T patent/DE59900770D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE59900770D1 (de) | 2002-03-14 |
WO1999050766A1 (de) | 1999-10-07 |
EP1068580B1 (de) | 2002-01-23 |
JP2002510091A (ja) | 2002-04-02 |
EP1068580A1 (de) | 2001-01-17 |
US6557146B1 (en) | 2003-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4028107B2 (ja) | 分解及び分割によるハードウェアの検証並びに表現方法 | |
US5475605A (en) | Timing analysis for logic optimization using target library delay values | |
JP3858000B2 (ja) | フィルタリング型アプローチを使用する組合せ回路の検証方法 | |
US20030009731A1 (en) | Digital circuit layout techniques | |
US20030200073A1 (en) | Partitioning a model into a plurality of independent partitions to be processed within a distributed environment | |
JP2693913B2 (ja) | Vlsi回路の構成方法および設計方法 | |
US20020010899A1 (en) | Digital circuit layout techniques | |
JP4927717B2 (ja) | 動作合成ツールにおけるループ操作 | |
Mishchenko et al. | A new enhanced constructive decomposition and mapping algorithm | |
US9916407B2 (en) | Phase algebra for analysis of hierarchical designs | |
US20230289502A1 (en) | Recovery of a hierarchical functional representation of an integrated circuit | |
US5491639A (en) | Procedure for verifying data-processing systems | |
JP2001022820A (ja) | 順序回路の検証方法 | |
US7024345B1 (en) | System and method for testing parameterized logic cores | |
JP4044732B2 (ja) | 電気回路の比較方法 | |
JP2689908B2 (ja) | 初期化可能非同期回路設計を合成する方法 | |
US20030149945A1 (en) | Method and system of data processor design | |
JP2009205523A (ja) | プロパティ自動生成装置 | |
EP4386614A1 (en) | Verification of a logic circuit | |
US7082589B2 (en) | Method of generating a schematic driven layout for a hierarchical integrated circuit design | |
JPH1091677A (ja) | シミュレーション/エミュレーションの効率を増すための論理変換方法 | |
US6968523B2 (en) | Design method of logic circuit using data flow graph | |
Crews et al. | Controller optimization for protocol intensive applications | |
US6035112A (en) | Cell library generating method and apparatus | |
JP2004280279A (ja) | トップダウン設計装置およびトップダウン設計プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050316 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20051125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070223 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070327 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070823 |
|
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: 20071018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071116 |
|
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: 20101122 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111122 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131122 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |