JP4418591B2 - 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 - Google Patents
技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 Download PDFInfo
- Publication number
- JP4418591B2 JP4418591B2 JP2000580131A JP2000580131A JP4418591B2 JP 4418591 B2 JP4418591 B2 JP 4418591B2 JP 2000580131 A JP2000580131 A JP 2000580131A JP 2000580131 A JP2000580131 A JP 2000580131A JP 4418591 B2 JP4418591 B2 JP 4418591B2
- Authority
- JP
- Japan
- Prior art keywords
- comparison
- characteristic
- preset
- technical system
- methods
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Tests Of Electronic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本発明は、技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置に関する。
【0002】
モデルチェッキング((model checking) MC)は、技術システムの特性を所定の方法で検証する(verify)ための技術である。これまでは技術システムにおける使用の際には折に触れて大きな複雑性問題(状態爆発問題(state explosion problem))が生じてきた。この問題のために、検証すべきシステムから分析にとって重要でありかつ実際的に検証可能な部分を取り出して解決するために非常な努力が払われている。この場合でさえもしばしば検証は既存のリソースリミット(計算パワー、メモリ所要面積)により挫折する。
【0003】
[1]から2分決定グラフ(binary decision diagram BDD)を用いて2つの回路の比較が実施されることが公知である。とりわけ、この場合、高い複雑性のデジタル回路に焦点を合わせ、これらのデジタル回路が互いに比較され乃至は構造的な類似性がもとめられる(組み合わせ回路検証)。
【0004】
組み合わせ回路検証の第1のアプローチは、テストパターンを生成し比較すべき回路に適用することによって関数的な含意(implication)を発生しようと試みる(ATPG法)。この場合、2つの比較すべき出力値の間の排他的論理和関数に論理1が割り当てられないことを証明するという目的が追求される。
【0005】
組み合わせ回路検証のための他のアプローチはブール関数の標準記述に基づく。このような標準記述はBDD又はBDDの特別な変形、例えば既約順序付きBDD(reduced ordered BDD)(ROBDD)、特に[2]を参照、によって示される。BDDの特別な問題はその指数関数的に増大するメモリ所要面積である。
【0006】
いわゆるSAT比較方法(SAT比較器;SAT="充足可能性(Satisfiability)")が[3]、[4]又は[7]から公知である。このSAT比較方法は次のことによって優れている。すなわち、
【0007】
【数1】
【0008】
の形式の任意のブール記法に対してシステマティックに解を探索する。全探索空間の探索をし尽くし、解が見つからない場合には、この基礎となるブール問題は解けない。
【0009】
本発明の課題は、技術システムの予め設定された特性と第1の特性とを比較し、とりわけこの比較問題の自動的な解決が保証されることである。
【0010】
上記の課題は独立請求項の構成により解決される。本発明の実施形態は従属請求項から得られる。
【0011】
上記課題の解決のために、技術システムの予め設定された特性と第1の特性とを比較するための方法が示され、少なくとも2つの比較方法が設けられており、これら少なくとも2つの比較方法の各々が技術システムの予め設定された特性と第1の特性との比較を実施する。この比較の結果が決定されるまで、これら少なくとも2つの比較方法は予め設定された順番で処理される。
【0012】
この場合、とりわけ有利には、自動的に異なる比較方法が処理される。
【0013】
本発明の実施形態では、比較の結果は技術システムの特性と第1の特性との同一性又は相違である。
【0014】
とりわけただ1つの相違が発見されるやいなや、比較は中断される。
【0015】
本発明の他の実施形態では、同一性に基づいて第1の特性が技術システムによって検証される。
【0016】
少なくとも2つの比較方法はとりわけ次の比較方法のうちの2つである、すなわち、
a)SAT比較法、
b)シミュレーション法、
c)BDD法、
d)ATPG法、
e)内部等価点(interne Aequivalenzpunkte)に基づく方法、
のうちの2つである。
【0017】
とりわけ、BDD法はとりわけROBDD法である。さらに、ROBDD法はその葉又は断面(Schnittebene)に関して実施される。
【0018】
技術システムは回路、とりわけ電気的デジタル回路である。
【0019】
さらに、比較の少なくとも一部分を実施することができ、中間結果が比較全体の複雑性を低減する。このように低減された複雑性によって、本来は比較全体においては挫折した比較方法によって結果が得られる。
【0020】
さらに、最後まで実施できなかった比較方法の中間結果はさらに別の比較方法において利用することができる(副作用の利用)。よって、中断されたBDD比較法が(この場合には比較全体の)解決すべき問題を示すための端緒を提供する。これは他の比較方法において中間結果として取り上げられる。このことは計算時間及び/又はメモリ占有面積の節減を結果的に生じる。
【0021】
比較が非同一性という結果を出した場合、有利にはユーザが非同一性の理由をもとめることができるための診断情報が示される。
【0022】
実施形態の枠内では、技術システムは有限オートマトンとして記述される。さらに、第1の特性はブール関数として示される。付加的に、この第1の特性によって技術システムの挙動は予め設定された時間間隔に亘って記述される。
【0023】
デジタル回路はますます大きくなる。従って、正確な挙動のテストはより複雑になり、より時間コストが高くなり、さらにより高価になる。よって、実際の大きさの回路に対するMCは重要な経済的なファクタである。本発明の方法及び所属の装置によってこの技術の操作性はユーザにとって大幅に簡素化される。ここで記述するアプローチはハードウェア設計には限定されず、ソフトウェアの検証のためにも使用できる。ただしこのソフトウェアの挙動は有利には有限オートマトンによって記述可能である(例えばSDLプログラム、プロトコル)。
【0024】
本発明のアプローチにおいてはハイブリッドベリファイア(ein hybrider Beweiser)、すなわち複数の比較方法を有するプロセスが、検証課題を解決するために使用される。ハイブリッドベリファイアは多数の部分ベリファイア(個々の比較方法)を含むフレームである。ハイブリッドベリファイアは部分ベリファイアの作動方法を調整する。目的は、様々なベリファイアを使用することによって1つのベリファイアだけでは解決できないであろう検証課題を解決することである。いずれの部分ベリファイアも与えられた検証課題を解決できない場合には、この検証課題は分解される。このため、各部分ベリファイアに下位課題が委ねられる。これらの下位課題を各部分ベリファイアはリソースの設定の下で処理することができる。所属のリソースの割り当てに対する閾値を上回る場合には、ベリファイアはその処理を中断する。ハイブリッドベリファイアは、この場合下位課題が他の部分ベリファイアによって処理されるべきか、リソースを高めるべきか又は他の下位課題を続行するべきかを判定する。
【0025】
他の実施形態の枠内において、各比較方法に対して、供給すべきリソース(例えばメモリ所要面積又は計算パワー)及び/又は比較方法の実施のために使用できる時間に対する閾値が設定され、この閾値を上回るとその都度の比較方法は不成功として終了される。
【0026】
また、実施形態では、実施すべき比較方法の順番がダイナミックに適合される。これは、有利には、どの比較方法が最も多くの結果を決定したかが記録され、この「最良」の比較方法が未来の比較に対して最初に使用されることによって行われる。相応して、「2番目に最良の」比較方法、「3番目に最良の」比較方法等々を有する順番のソートが行われる。
【0027】
技術システムの設計、適合又は制御を実施するために、比較結果が使用される。
【0028】
とりわけ、回路シミュレーションにおいて、上記の比較の結果がポジティブであるならば、予め設定された記述形式がこの回路の製造プロセスを開始することによって、この上記の比較の結果が直接的に置換される。
【0029】
さらに、本発明の課題を解決するために、技術システムの予め設定された特性と第1の特性とを比較するための装置が示され、この装置はプロセッサユニットを有し、プロセッサユニットは次のように構成されている、すなわち、
a)少なくとも2つの比較方法が設けられており、これらの少なくとも2つの比較方法の各々が技術システムの予め設定された特性と第1の特性との比較を実施でき、
b)この比較の結果が決定されるまで、これらの少なくとも2つの比較方法は予め設定された順番で処理される。
【0030】
この装置は、とりわけ本発明の方法又は前述の実施形態を実施するのに適している。
【0031】
本発明の実施例を次に図面に基づいて図示し、説明する。
【0032】
図1は、ハイブリッドベリファイアの作動方法に対するフローチャートである。
【0033】
図2は、ハイブリッドベリファイアの部分としての基本ベリファイアの選択に対するフローチャートである。
【0034】
図3は、内部等価点に対するベリファイアに対するフローチャートである。
【0035】
図4は、完全なシミュレーションの実施を示すフローチャートである。
【0036】
図5は、ROBDD検証方法のステップを有するフローチャートである。
【0037】
図6は、プロセッサユニットである。
【0038】
モデルチェッキングにおける方法はとりわけ次のようなものである:
・技術システムは有限オートマトンとして表される;
・特性は有限時間間隔に亘るこの技術システムの挙動を記述する;
・この特性はブール関数として表される;
・検証課題はブール関数の同一性の証明に還元される;
・2つのブール関数の同一性はハイブリッド比較器によって解かれる。
【0039】
特性
特性は予め設定された有限個の時点に亘る技術システムの挙動を記述する(=有限時間間隔に亘る不変性)。
【0040】
原子ステートメント(AA)の集合から出発して、可能な特性言語が定義される。基本ステートメント(EA)(状態表現)はAAの任意のブーリアン結合である。
【0041】
次にtは任意の固定時点とする。特性はこの時点を基準にして定式化される。
【0042】
時点t+kにおける基本ステートメント(EAk)(時間状態表現;kは0より大きい整数)は
at t+k:EA (2)
の形態の表現である。(n個の時点に亘る)特性は有限に多くの時間付き基本ステートメント
EAk ただしk<n (3)
のブーリアン結合である。特性を(より良好に)構造化するために、仮定部(assume)及び証明部(prove)に分ける。これは含意
assume⇒prove (4)
と同じ意味である。
【0043】
特性の例:
assume: at t+0: not reset and at t+1: not reset;
prove : at t+0: request implies at t+1: acknowledge
この場合、" reset "、" request "、" acknowledge "が原子ステートメントである。この特性は、前提" not reset "の下で、(時点0における)" request "が1タイムステップ後で" acknowledge "と応えられることを表現している。
【0044】
セマンティクス
次に、とりわけ有限オートマトンとして示すことができる技術システムが考察される。このようなシステムは、例えば(VHDLプログラム又はEDIFネットワークリストの形式の)回路である。決定性有限オートマトンは
(S,I,T,MAA,P) (5)
形式の5項組である。ただしここで、
S 状態の有限集合
I 入力シンボルの有限集合
T⊆S×I×S 遷移関係
MAA 原子ステートメント(AA)の有限集合
P:S×I→べき集合(MAA) 評価関数
である。
【0045】
評価関数Pは、どの原子ステートメント(AA)が1つの状態において充足されているかを示す。
【0046】
特性Eの特性関数χEを取り決める。この特性関数χEは、特性Eの妥当性を決定するために使用される。
【0047】
AAは原子ステートメントとし、B={0,1}はブール集合とする。特性関数χEは
χAA:S×I→B (6)
により定義され、ただしここで、AA∈P(s,i)の場合、すなわちAAが(s,i)において充足されている場合に限ってχAA(s,i)=1である。さらに、
EA=B(AA1,...,AAm) (7)
が原子ステートメントのブーリアン結合(すなわち、基本ステートメント)とする。従って、次式が定義される:
χEA=B (χAA1,...,χAAm) (8)
次に、複数の状態に関するステートメントを考察する。次式
σ=((s0,i0),...,(sn - 1,in - 1))∈(S×I)n (9)
及び
σk=(sk,ik) (10)
が成り立ち、Eはn時点に亘る特性とする。特性関数χEは関数
χE:(S×I)n→B (11)
であり、ただしここで
E=EAk (13)
が基本ステートメントである場合に
χE(σ)=χEA(σk) (12)
であり、さらに、
【0048】
【数2】
【0049】
が基本ステートメントのブーリアン結合である場合に
【0050】
【数3】
【0051】
である。
【0052】
(n時点に亘る)特性はオートマトンの(長さnの)パスを介して解釈される。
【0053】
χT:S×I×S→B (16)
は遷移関係Tの特性関数とする。sk+1がskの次の状態とする場合、すなわち
(sk,ik,sk+1)∈T (17)
又は
χT(sk,ik,sk+1)=1 ただし k=0,1,...,n-2(n≧2) (18)
が成り立つ場合、σは長さnのパスを意味する。ここから次式が得られる:
【0054】
【数4】
【0055】
n時点に亘る特性Eは、長さnの全てのパスσに対して
(χPfad⇒χE)(σ)=1 (20)
が成り立つ場合に限り、満たされる。
【0056】
この特性Eに対する反例は割り当てσ0であり、この結果、
(χPfad∧notχE)(σ0)=1 (21)
が成り立つ。
【0057】
以下に挙げる方法は式(11)による任意の関数に適用される。この特性言語は、特性を記述するために、ただ1つの可能なインスタンスを表示する。同様に、より強力な言語を定義するために、定義域(S×I)nを、例えば、(S×I)n×Sに拡張することができるだろう。
【0058】
次にこの有限オートマトンのバイナリコーディングから出発する。すなわち、S=Bu、I=Bv ただしu,v≧0 (22)
従って、検証(verification)は一定の関数1とブール関数との同一性の証明に還元される。
【0059】
特別なケース:組み合わせ比較
組み合わせ比較では出力を有する2つの決定性有限オートマトンが互いに比較される。これらのオートマトンは例えば2つのデジタル回路を表す。出力を有する決定性有限オートマトンは5項組の
(S,I,O,δ,λ) (23)
ただし、
S 状態の有限集合
I 入力シンボルの有限集合
O 出力シンボルの有限集合
δ:S×I→S 遷移関数
λ:S×I→O 出力関数
である。
【0060】
ここで
Mi=(Si,Ii,Oi,δi,λi)ただしi=1,2 (24)
が出力を有する2つの決定性有限オートマトンとする。M1、M2の共通のコーディングを全単射
【0061】
【数5】
【0062】
と解釈する。ただしここで「bij」は全単射を示す。
【0063】
全てのs∈S1、i∈I1に対して
【0064】
【数6】
【0065】
が成り立つ場合に限って、これらのオートマトンM1、M2は式(25)による共通のコーディングに関して組み合わせ的等価であると呼ぶ。
【0066】
S1=S2=S、I1=I2=I、O1=O2=O (28)
の同定の後で、ここから全てのs∈S1、i∈I1に対して条件
δ1(s,i)=δ2(s,i) (29)
及び
λ1(s,i)=λ2(s,i) (30)
が得られる。S,I,Oのバイナリコーディングはこれをブール関数の間の(有限個の)幾つかの同一性関係に移す。
【0067】
ベリファイア(Beweiser/verifier)
ここで
F1j,F2j,j=1,2,...,n (31)
をブール関数とする。
【0068】
「F1j ≡F2j がj=1,2,...,nに対して成り立つか?」 (32)
という問題を処理するためには様々な方法(比較方法)がある。この場合、各方法は固有の長所と短所を有する。このような方法の適切な選択を利用することによって個々の方法の短所が除去され、これにより解決アプローチのロバスト性が明らかに向上される。これらの方法をオーバーラップして適用することによって、各々個別の方法によって可能であるよりも明らかに大きなシステムが比較できる。
【0069】
第1のステップでは式(31)の関数は非巡回的有向グラフによって表示される。このグラフ構造には、部分ベリファイアとも呼ばれる個々の方法が適用される。
【0070】
非巡回的有向グラフは節点の集合K及び有向辺の集合(⊆K×K)であり、これらの有向辺はそれぞれ2つの節点を互いに結びつけている。このグラフは閉路を持たない。有向辺が節点k1を節点k2に結びつけている場合には、節点k2は節点k1の子と呼ぶ。葉は、辺が出ていかない節点である。根は、辺が入ってこない節点である。有向辺は上から下へ経過し、この結果、このグラフにおいて根は最上部にあり、葉は最下部にある。
【0071】
グラフのベース(断面(Schnittebene)とも言う)とは、「根から葉への各パスはベースの節点を通過する」という特性を有する節点の部分集合である。例えば、全ての葉の集合はベースを形成する。[5]にはベースを決定できるアルゴリズムが記述されている。
【0072】
kをグラフ構造Gにおける1つの節点とする。いわゆるkの従属円錐(cone of influence)は、節点kはGkに所属し、1つの節点k’を有し、k’の全ての子もGkに所属する、ということが成り立つGの最小下位構造Gkである。
【0073】
次の解釈によって非巡回的有向グラフはブール関数を表す:葉とは異なる節点kの各々にブール演算opkを割り当てる。節点kの子はopkのオペランドである。葉(根)はブール演算のアーギュメント(値)を表す。葉は値0又は値1を有する定数でもよい。このグラフ構造の各節点はブール関数Boolekを表し、このブール関数Boolekは1次入力に依存する。ブール関数をグラフとして示すことは標準的ではない。すなわち、一般的には多数の異なる表示が存在するのである。同一のブール関数を表す節点は等価であると呼ぶ。
【0074】
コンパクトに表示するために、辺にマーキングしてもよい。この結果、結合価1の演算、例えばnotをシンボル化することができる。例えば、[1]では結合価2のand演算だけが節点に許可される。この(1価の)not演算は辺のマーキングによって示される。
【0075】
このグラフの構成の際にハッシュ表を介して節点の一意性を保証する。このグラフの各々の変化(つまり2つ又は複数の異なる等価節点の統合)の後で、複数回現れる同一の節点をまとめる。従って、節点の一意性が得られる。このプロセスは再ハッシュ(rehashing)と呼ぶ。
【0076】
ベリファイアの課題は、基礎となるグラフを問題(32)が解けるまで簡略化することである:この方法の異なるフェーズにおいて、同一の関数を表す節点、すなわち等価な節点が決定される。次いでこれらの節点の中から代表点として1つの節点を選択する。他の全ての節点はこの代表点により置き換えられる。このプロセスは冗長節点の除去と呼ぶ。除去のすぐ後でその都度再ハッシュを実施する。
【0077】
例えば、2つの異なる節点k1、k2に対する同一性
Boolek1=Boolek2 (33)
を検証するための各検証ステップの開始の際に、まず最初に関与する節点の"cone of influence"が決定され、次いでこの"cone of influence"に基づいてさらに計算が行われる。
【0078】
次に、インプリメンテーションにおいて利用される方法/ベリファイアの可能な選択が行われる。これらは、
・完全なシミュレーション、
・(葉に関する)ROBDD法、
・(断面に関する)ROBDD法、
・ATPG法(自動テストパターン生成)、
・SAT法(ブーリアン充足可能性アルゴリズム)、
・内部等価点に対するベリファイア、
である。
【0079】
個々のベリファイア/方法について以下において詳しく説明する。
【0080】
シミュレーション
このシミュレーション([6]を参照)は葉から根へと行われる:まず最初に各葉に値0又は1を割り当てる。節点kの各々の子に値が割り当てられた場合、この節点kの値を演算opkを用いて決定する。
【0081】
ROBDDS
ROBDD(reduced ordered binary decision diagrams、( [2]を参照)はブール関数を非巡回的グラフとして表示する。アーギュメントの所与の置換、変数順序付けのためにこの表示は一意的である。この変数順序付けは多くのケースにおいてグラフの大きさに対して重要である。ブール関数をROBDDとして(メモリとランタイムの既存の制約を考慮しつつ)表示することが可能であるならば、この表示の一意性の理由から、異なる技術システムの同一性の問題はすぐに解決される。この方法の成功はブール関数及び選択された変数順序付けに依存する。
【0082】
グラフGの根に対するROBDDの計算はグラフGのベース(断面)から出発し、根の方向に進む。まず最初に、各ベース節点にBDD変数を割り当てる。これは重要な意味を持つ。なぜなら、とりわけこの割り当てによって変数順序付けが決まってしまうからである。ROBDDが節点kの全ての子に対して計算されると、節点kのROBDDが発生される。ROBDDの大きさが予め設定された制限を上回ると、このROBDD生成は中断される。( [1]では節点に新たな変数を割り当て、さらに計算する。)
ROBDDはブール関数に対する一連の類似の表示の代表格である(例えば[2]を参照)。そこで引用された表示の各々はここでも使用できる。
【0083】
ハイブリッドベリファイア
ステートメント(32)を判定するために、ブール関数(31)が非巡回的有向グラフGによって表示される。各関数FijにはこのグラフGにおいて1つの節点kijが存在し、この節点kijがFijを表現する。式F1j ≡F2jは、このグラフGの葉と相応の節点対(k1j,k2j)との間隔に関してソートされる。ハイブリッドベリファイアが、葉の近傍の節点対から初めて次々と各節点対(k1j,k2j)に対して呼び出される。
【0084】
図1にはハイブリッドベリファイアが図示されている。ベリファイアへの入力としてグラフGの2つの節点k1,k2が使用される(図1のブロック1参照)。目標は、節点k1,k2によって表される関数Boolek1,Boolek2が同一であるかどうか、すなわち
Boolek1≡Boolek2 (34)
が成り立つかどうかを判定することである。このグラフGはグローバルなデータ構造を示し、このグローバルなデータ構造に各部分ベリファイア(基本ベリファイア、ブロック102及び図2参照)はアクセスできる。
【0085】
部分ベリファイアは、グラフGを等価節点の統合によって段階的に簡略化することを試み、この結果、最後には完全なシミュレーションを用いて式(34)が検証されるか又は否定される。
【0086】
以下において、グラフGのk1,k2の"cone of influence"をCOI(k1,k2)と呼ぶ。
【0087】
図1のブロック102の中の部分ベリファイアが成功に至らない場合には、ブロック103で内部等価点に対する検証方法が行われる(図3参照)。個々のベリファイアは、結果「偽」104、すなわち比較すべき技術システムは異なるを、システムが同一の場合には「真」106を、このベリファイアが結果に至らない場合には「未決」105を送出する。
【0088】
次にハイブリッドベリファイアの個々の実行ステップを示して説明する。
【0089】
ステップ1:完全なシミュレーション、図2、ブロック201及び図4参照:「小さな」COI(k1,k2)(ブロック401参照)に対して:全ての可能な値割り当てがシミュレートされ、これに基づいて、これらが式(34)を充足するか否かがテストされる(ブロック402)。
【0090】
ステップ2:葉に関するROBDD、ブロック202参照:
ベースとしてCOI(k1,k2)の全ての葉の集合が選択される。所定の大きさに至るまでCOI(k1,k2)についてROBDDを計算する。COI(k1,k2)において冗長節点が存在する場合、すなわち同一のROBDD表示を有する節点が生じる場合、これらの冗長節点が除去される。さらに、ステップ2が繰り返される。
【0091】
ステップ3:断面に関するROBDD、ブロック203及び図5参照:
根の「近傍」の節点k1,k2の集合をベースとして選択する([5]を参照)。所定の大きさに至るまでCOI(k1,k2)についてROBDDを計算する(ブロック501参照)。COI(k1,k2)において冗長節点が存在する場合、すなわち同一のROBDD表示を有する節点が生じる場合、これらの冗長節点が除去される(ブロック502参照)。
【0092】
選択されたベースが葉だけから成るのではない場合(ブロック503)、見出された否定は偽でありうる。なぜなら、ベース節点は互いに依存しうるからである(偽の否定(false negatives))。
【0093】
ベースを葉の方向にシフトすることによってステップ3を繰り返す(ブロック504参照)。
【0094】
ROBDDの計算があまりにも大きくなり、式(34)が検証されるか又はこのベースが完全に葉から構成されて初めて、ステップ3が終了される(ブロック505及び506を参照)。
【0095】
ステップ4:ATPG、ブロック204参照:
ブール関数が値0をとるか又は値1をとるかの問い乃至は2つのブール関数の同一性の問いが自動テストパターン生成(automatic test pattern generation=ATPG)の領域における問題として定式化される。
【0096】
ステップ5:SAT、ブロック205参照:
ステートメント(34)を連言標準形(conjunctive normal form)に変え、SATベリファイア(例えば[3]又は[4])に委ねる。
【0097】
ステップ6;内部等価点に対するベリファイア、ブロック103及び図3参照:
ステップ6.1:(RPS=ランダムパターンシミュレーション):
グラフ構造Gの節点が同値類に分割される(ブロック301参照):分割{K}から出発してシミュレーションステップによって既存の分割を細分する。この場合、類AKは2つの部分類AK0、AK1に分解される。ただし、AKiは、シミュレーションによって値iが割り当てられる全ての節点の集合∈AKを表す。このシミュレーションは葉の値割り当てのために乱数発生器を使用する(ランダムパターンシミュレーション=RPS)。この細分ステップは複数回行われる。
【0098】
同値類は潜在的に同一の関数を表す節点の集合を表す。異なる同値類の中の節点は同一の関数を表し得ない。
【0099】
ステップ6.2:
次々に全ての潜在的に等価な節点対が実際に等価であるか検査される。すなわち、これらが同一のブール関数を表しているか検査される(ブロック302、303及び304参照)。
【0100】
葉の「すぐ近傍」にあるそれぞれまだ処理されていない潜在的に等価な節点対(u1,u2)が検出される(ブロック305参照)。この節点対(u1,u2)に対してステップ1〜5が実施される(ブロック306参照)。この後で3つの結果のうちの1つが生じる、すなわち、
a.この節点対(u1,u2)は実際に等価である:節点は冗長であり、除去されうる(ブロック307参照)。
【0101】
b.この節点対(u1,u2)は等価ではない:2つの関数booleu1とbooleu2とが異なっている変数の割り当て(u1,u2の"cone of influence"の葉)が見出された。グラフGの残りの葉に対する乱数値の割り当ての後で、このグラフGがシミュレートされ、これまでの同値類分解が細分化される。これは潜在的に等価な節点対の個数を減少させる(ブロック308参照)。
【0102】
c.等価検証は複雑性限界のために判定できない:次の節点対が検査される。
【0103】
潜在的に等価な節点対の各々の検査の後で、本来の節点対(k1,k2)が等価であるかテストされる。そうでない場合には、最後のステップで節点対(k1,k2)がテストされる。
【0104】
図6にはプロセッサユニットPRZEが図示されている。このプロセッサユニットPRZEはプロセッサCPU、メモリSPE及び入力/出力側インターフェースIOSを含む。この入力/出力側インターフェースIOSはインターフェースIFCを介して様々に利用される:グラフィックインターフェースを介して出力がモニタMONにおいて可視化され及び/又はプリンタPRTに出力される。入力はマウスMAS又はキーボードTASTを介して行われる。またプロセッサユニットPRZEはデータバスBUSを自由に使用できる。このデータバスBUSはメモリMEM、プロセッサCPU及び入力/出力側インターフェースIOS接続を保証する。さらに、データバスBUSには付加的なコンポーネントが接続でき、例えば付加的なメモリ、データメモリ(固定ディスク)又はスキャナが接続できる。
【0105】
【外1】
【図面の簡単な説明】
【図1】 ハイブリッドベリファイアの作動方法に対するフローチャートである。
【図2】 ハイブリッドベリファイアの部分としての基本ベリファイアの選択に対するフローチャートである。
【図3】 内部等価点に対するベリファイアに対するフローチャートである。
【図4】 完全なシミュレーションの実施を示すフローチャートである。
【図5】 ROBDD検証方法のステップを有するフローチャートである。
【図6】 プロセッサユニットである。
【符号の説明】
PRZE プロセッサユニット
CPU プロセッサ
SPE メモリ
MEM メモリ
IOS 入力/出力側インターフェース
IFC インターフェース
MON モニタ
PRT プリンタ
MAS マウス
TAST キーボード
BUS データバス
Claims (15)
- 少なくともメモリ(SPE)と、入出力側インタフェース(IOS)と、プロセッサ(CPU)とを備えたプロセッサユニット(PRZE)を用いて、技術システムの予め設定された特性と第1の特性とを比較する方法において、当該第1の特性は、第1の仮定部と第1の証明部を含んでおり、前記予め設定された特性のうちの少なくとも1つは、予め設定された仮定部と予め設定された証明部を含んでおり、
少なくとも2つの比較方法が設けられており、
a)前記プロセッサ(CPU)が、該少なくとも2つの比較方法の各々を用いて、前記技術システムの前記予め設定された特性のブール関数と前記第1の特性のブール関数との比較を行うステップと、
b)前記プロセッサ(CPU)が、該比較の結果が決定されるまで、前記少なくとも2つの比較方法を予め設定された順番で処理するステップとを備えた方法。 - 比較の結果は、技術システムの特性と第1の特性との同一性又は相違である、請求項1記載の方法。
- 少なくとも2つの比較方法は次の比較方法からの少なくとも1つを含んでいる、すなわち、
a)SAT比較法、
b)シミュレーション法、
c)BDD法、
d)ATPG法、
e)内部等価点に基づく方法
からの少なくとも1つを含んでいる、請求項1〜2のうちの1項記載の方法。 - BDD法はとりわけROBDD法である、請求項3記載の方法。
- ROBDD法は、ブール関数を表すグラフにおける葉又は断面に関して実施される、請求項4記載の方法。
- 技術システムは回路である、請求項1〜5のうちの1項記載の方法。
- 前記回路はデジタル回路である、請求項6記載の方法。
- 技術システムは有限オートマトンとして表される、請求項1〜7のうちの1項記載の方法。
- 第1の特性はブール関数として表される、請求項1〜8のうちの1項記載の方法。
- 第1の特性によって予め設定された時間間隔に亘る技術システムの挙動が記述される、請求項1〜9のうちの1項記載の方法。
- 各比較方法に対して、供給すべきリソース及び/又は自由に使用できる時間に対する閾値が設定され、該閾値を上回ることによってその都度の比較方法は不成功として終了される、請求項1〜10のうちの1項記載の方法。
- 最も多くの比較を解決することができた比較方法がまず最初に呼び出されることによって、実施すべき比較方法の順番が適合される、請求項1〜11のうちの1項記載の方法。
- 比較結果に基づいて少なくとも1つの技術システムの設計、適合又は制御が実施される、請求項1〜12のうちの1項記載の方法。
- 既に呼び出された比較方法の副作用によって比較が簡略化される、請求項1〜13のうちの1項記載の方法。
- 少なくともメモリ(SPE)と、入出力側インタフェース(IOS)と、プロセッサ(CPU)と、前記プロセッサ(CPU)によって読み取り可能なプログラムを備えた、技術システムの予め設定された特性と第1の特性とを比較するための装置であって、当該第1の特性は、第1の仮定部と第1の証明部を含んでおり、前記予め設定された特性のうちの少なくとも1つは、予め設定された仮定部と予め設定された証明部を含んでおり、少なくとも2つの比較方法が設けられており、
前記プログラムが、前記プロセッサ(CPU)を、
a)該少なくとも2つの比較方法の各々を用いて、前記技術システムの前記予め設定された特性のブール関数と前記第1の特性のブール関数との比較をする手段、
b)該比較の結果が決定されるまで、前記少なくとも2つの比較方法を予め設定された順番で処理する手段として機能させる装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19850669.4 | 1998-11-03 | ||
DE19850669 | 1998-11-03 | ||
PCT/DE1999/003486 WO2000026824A1 (de) | 1998-11-03 | 1999-11-02 | Verfahren und anordnung zum vergleich einer ersten eigenschaft mit vorgegebenen eigenschaften eines technischen systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003503763A JP2003503763A (ja) | 2003-01-28 |
JP4418591B2 true JP4418591B2 (ja) | 2010-02-17 |
Family
ID=7886553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000580131A Expired - Lifetime JP4418591B2 (ja) | 1998-11-03 | 1999-11-02 | 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6581026B2 (ja) |
EP (1) | EP1127323A1 (ja) |
JP (1) | JP4418591B2 (ja) |
WO (1) | WO2000026824A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1679627A4 (en) * | 2003-10-31 | 2009-07-22 | Fujitsu Microelectronics Ltd | VERIFICATION SUPPORT DEVICE, METHOD AND PROGRAM, AND RECORDING MEDIUM |
US7346486B2 (en) * | 2004-01-22 | 2008-03-18 | Nec Laboratories America, Inc. | System and method for modeling, abstraction, and analysis of software |
US7093218B2 (en) * | 2004-02-19 | 2006-08-15 | International Business Machines Corporation | Incremental, assertion-based design verification |
US8359561B2 (en) * | 2007-12-06 | 2013-01-22 | Onespin Solutions Gmbh | Equivalence verification between transaction level models and RTL at the example to processors |
US8874607B2 (en) | 2010-08-17 | 2014-10-28 | Fujitsu Limited | Representing sensor data as binary decision diagrams |
US8930394B2 (en) | 2010-08-17 | 2015-01-06 | Fujitsu Limited | Querying sensor data stored as binary decision diagrams |
US8583718B2 (en) | 2010-08-17 | 2013-11-12 | Fujitsu Limited | Comparing boolean functions representing sensor data |
US8572146B2 (en) | 2010-08-17 | 2013-10-29 | Fujitsu Limited | Comparing data samples represented by characteristic functions |
US8495038B2 (en) | 2010-08-17 | 2013-07-23 | Fujitsu Limited | Validating sensor data represented by characteristic functions |
US8645108B2 (en) * | 2010-08-17 | 2014-02-04 | Fujitsu Limited | Annotating binary decision diagrams representing sensor data |
US9002781B2 (en) | 2010-08-17 | 2015-04-07 | Fujitsu Limited | Annotating environmental data represented by characteristic functions |
US9138143B2 (en) | 2010-08-17 | 2015-09-22 | Fujitsu Limited | Annotating medical data represented by characteristic functions |
US9176819B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Detecting sensor malfunctions using compression analysis of binary decision diagrams |
US8909592B2 (en) | 2011-09-23 | 2014-12-09 | Fujitsu Limited | Combining medical binary decision diagrams to determine data correlations |
US8719214B2 (en) | 2011-09-23 | 2014-05-06 | Fujitsu Limited | Combining medical binary decision diagrams for analysis optimization |
US8838523B2 (en) | 2011-09-23 | 2014-09-16 | Fujitsu Limited | Compression threshold analysis of binary decision diagrams |
US9177247B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US8781995B2 (en) | 2011-09-23 | 2014-07-15 | Fujitsu Limited | Range queries in binary decision diagrams |
US8620854B2 (en) | 2011-09-23 | 2013-12-31 | Fujitsu Limited | Annotating medical binary decision diagrams with health state information |
US8812943B2 (en) | 2011-09-23 | 2014-08-19 | Fujitsu Limited | Detecting data corruption in medical binary decision diagrams using hashing techniques |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754454A (en) * | 1997-03-03 | 1998-05-19 | Motorola, Inc. | Method for determining functional equivalence between design models |
US6086626A (en) * | 1997-05-16 | 2000-07-11 | Fijutsu Limited | Method for verification of combinational circuits using a filtering oriented approach |
US6308299B1 (en) * | 1998-07-17 | 2001-10-23 | Cadence Design Systems, Inc. | Method and system for combinational verification having tight integration of verification techniques |
-
1999
- 1999-11-02 WO PCT/DE1999/003486 patent/WO2000026824A1/de active Application Filing
- 1999-11-02 EP EP99959229A patent/EP1127323A1/de not_active Ceased
- 1999-11-02 JP JP2000580131A patent/JP4418591B2/ja not_active Expired - Lifetime
-
2001
- 2001-05-03 US US09/848,584 patent/US6581026B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2000026824A1 (de) | 2000-05-11 |
US6581026B2 (en) | 2003-06-17 |
EP1127323A1 (de) | 2001-08-29 |
US20020013680A1 (en) | 2002-01-31 |
JP2003503763A (ja) | 2003-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4418591B2 (ja) | 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 | |
US5483470A (en) | Timing verification by successive approximation | |
Berman et al. | Functional comparison of logic designs for VLSI circuits | |
EP0445942A2 (en) | Analytical development and verification of control-intensive systems | |
US7409377B2 (en) | Accelerated solution of constraint satisfaction problems by partitioning of the variable space | |
US5513122A (en) | Method and apparatus for determining the reachable states in a hybrid model state machine | |
US20040015799A1 (en) | Method of verifying and representing hardware by decomposition and partitioning | |
US8799838B2 (en) | Equivalence checking method, equivalence checking program, and equivalence checking device | |
US7065726B1 (en) | System and method for guiding and optimizing formal verification for a circuit design | |
JP2003345850A (ja) | フィルタリング型アプローチを使用する組合せ回路の検証方法 | |
JP5471432B2 (ja) | 検証支援プログラム、および検証支援装置 | |
WO2007066319A1 (en) | Conversion of switching signals of a circuit simulation into a transaction model | |
JP2019075035A (ja) | ソフトウェアテスト装置および方法 | |
JP4334061B2 (ja) | サンプリングベースの順序付き二分決定グラフの変数順序決定方法 | |
US6564358B2 (en) | Method and system for formal verification of a circuit model using binary decision diagrams | |
JP2001022820A (ja) | 順序回路の検証方法 | |
CN112199913A (zh) | 一种基于Coq的超大规模集成电路RTL漏洞形式化分析方法 | |
US6099577A (en) | Logic circuit conversion method and logic circuit design support device | |
US8266573B2 (en) | Method and system for test point insertion | |
US20120290282A1 (en) | Reachability analysis by logical circuit simulation for providing output sets containing symbolic values | |
JP2006139729A (ja) | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 | |
JPH04246776A (ja) | タイミング情報を編成し解析する方法及び装置 | |
US7257786B1 (en) | Method and apparatus for solving constraints | |
JPH1063537A (ja) | プロパティ検証方法および装置 | |
Sahoo et al. | A partitioning methodology for BDD-based verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051125 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090430 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090730 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090806 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090831 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090930 |
|
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: 20091030 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4418591 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131204 Year of fee payment: 4 |
|
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 |
|
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 |