JP4418591B2 - 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 - Google Patents

技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 Download PDF

Info

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
Application number
JP2000580131A
Other languages
English (en)
Other versions
JP2003503763A (ja
Inventor
ローゼ イェルク
ヴァルケンティン ペーター
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.)
Onespin Solutions GmbH
Original Assignee
Onespin Solutions GmbH
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 Onespin Solutions GmbH filed Critical Onespin Solutions GmbH
Publication of JP2003503763A publication Critical patent/JP2003503763A/ja
Application granted granted Critical
Publication of JP4418591B2 publication Critical patent/JP4418591B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design 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

【0001】
本発明は、技術システムの予め設定された特性と第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】
Figure 0004418591
【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における基本ステートメント(EA)(時間状態表現;kは0より大きい整数)は
at t+k:EA (2)
の形態の表現である。(n個の時点に亘る)特性は有限に多くの時間付き基本ステートメント
EA ただし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(AA,...,AA) (7)
が原子ステートメントのブーリアン結合(すなわち、基本ステートメント)とする。従って、次式が定義される:
χEA=B (χAA,...,χAA) (8)
次に、複数の状態に関するステートメントを考察する。次式
σ=((s,i),...,(s - ,i - ))∈(S×I) (9)
及び
σ=(s,i) (10)
が成り立ち、Eはn時点に亘る特性とする。特性関数χEは関数
χE:(S×I)→B (11)
であり、ただしここで
E=EA (13)
が基本ステートメントである場合に
χE(σ)=χEA(σ) (12)
であり、さらに、
【0048】
【数2】
Figure 0004418591
【0049】
が基本ステートメントのブーリアン結合である場合に
【0050】
【数3】
Figure 0004418591
【0051】
である。
【0052】
(n時点に亘る)特性はオートマトンの(長さnの)パスを介して解釈される。
【0053】
χT:S×I×S→B (16)
は遷移関係Tの特性関数とする。sk+1がsの次の状態とする場合、すなわち
(s,i,sk+1)∈T (17)
又は
χT(s,i,sk+1)=1 ただし k=0,1,...,n-2(n≧2) (18)
が成り立つ場合、σは長さnのパスを意味する。ここから次式が得られる:
【0054】
【数4】
Figure 0004418591
【0055】
n時点に亘る特性Eは、長さnの全てのパスσに対して
(χPfad⇒χE)(σ)=1 (20)
が成り立つ場合に限り、満たされる。
【0056】
この特性Eに対する反例は割り当てσであり、この結果、
(χPfad∧notχE)(σ)=1 (21)
が成り立つ。
【0057】
以下に挙げる方法は式(11)による任意の関数に適用される。この特性言語は、特性を記述するために、ただ1つの可能なインスタンスを表示する。同様に、より強力な言語を定義するために、定義域(S×I)を、例えば、(S×I)×Sに拡張することができるだろう。
【0058】
次にこの有限オートマトンのバイナリコーディングから出発する。すなわち、S=B、I=B ただしu,v≧0 (22)
従って、検証(verification)は一定の関数1とブール関数との同一性の証明に還元される。
【0059】
特別なケース:組み合わせ比較
組み合わせ比較では出力を有する2つの決定性有限オートマトンが互いに比較される。これらのオートマトンは例えば2つのデジタル回路を表す。出力を有する決定性有限オートマトンは5項組の
(S,I,O,δ,λ) (23)
ただし、
S 状態の有限集合
I 入力シンボルの有限集合
O 出力シンボルの有限集合
δ:S×I→S 遷移関数
λ:S×I→O 出力関数
である。
【0060】
ここで
=(S,I,O,δ,λ)ただしi=1,2 (24)
が出力を有する2つの決定性有限オートマトンとする。M、Mの共通のコーディングを全単射
【0061】
【数5】
Figure 0004418591
【0062】
と解釈する。ただしここで「bij」は全単射を示す。
【0063】
全てのs∈S、i∈Iに対して
【0064】
【数6】
Figure 0004418591
【0065】
が成り立つ場合に限って、これらのオートマトンM、Mは式(25)による共通のコーディングに関して組み合わせ的等価であると呼ぶ。
【0066】
=S=S、I=I=I、O=O=O (28)
の同定の後で、ここから全てのs∈S、i∈Iに対して条件
δ(s,i)=δ(s,i) (29)
及び
λ(s,i)=λ(s,i) (30)
が得られる。S,I,Oのバイナリコーディングはこれをブール関数の間の(有限個の)幾つかの同一性関係に移す。
【0067】
ベリファイア(Beweiser/verifier)
ここで
1j,F2j,j=1,2,...,n (31)
をブール関数とする。
【0068】
「F1j ≡F2j がj=1,2,...,nに対して成り立つか?」 (32)
という問題を処理するためには様々な方法(比較方法)がある。この場合、各方法は固有の長所と短所を有する。このような方法の適切な選択を利用することによって個々の方法の短所が除去され、これにより解決アプローチのロバスト性が明らかに向上される。これらの方法をオーバーラップして適用することによって、各々個別の方法によって可能であるよりも明らかに大きなシステムが比較できる。
【0069】
第1のステップでは式(31)の関数は非巡回的有向グラフによって表示される。このグラフ構造には、部分ベリファイアとも呼ばれる個々の方法が適用される。
【0070】
非巡回的有向グラフは節点の集合K及び有向辺の集合(⊆K×K)であり、これらの有向辺はそれぞれ2つの節点を互いに結びつけている。このグラフは閉路を持たない。有向辺が節点kを節点kに結びつけている場合には、節点kは節点kの子と呼ぶ。葉は、辺が出ていかない節点である。根は、辺が入ってこない節点である。有向辺は上から下へ経過し、この結果、このグラフにおいて根は最上部にあり、葉は最下部にある。
【0071】
グラフのベース(断面(Schnittebene)とも言う)とは、「根から葉への各パスはベースの節点を通過する」という特性を有する節点の部分集合である。例えば、全ての葉の集合はベースを形成する。[5]にはベースを決定できるアルゴリズムが記述されている。
【0072】
kをグラフ構造Gにおける1つの節点とする。いわゆるkの従属円錐(cone of influence)は、節点kはGに所属し、1つの節点k’を有し、k’の全ての子もGに所属する、ということが成り立つGの最小下位構造Gである。
【0073】
次の解釈によって非巡回的有向グラフはブール関数を表す:葉とは異なる節点kの各々にブール演算opを割り当てる。節点kの子はopのオペランドである。葉(根)はブール演算のアーギュメント(値)を表す。葉は値0又は値1を有する定数でもよい。このグラフ構造の各節点はブール関数Booleを表し、このブール関数Booleは1次入力に依存する。ブール関数をグラフとして示すことは標準的ではない。すなわち、一般的には多数の異なる表示が存在するのである。同一のブール関数を表す節点は等価であると呼ぶ。
【0074】
コンパクトに表示するために、辺にマーキングしてもよい。この結果、結合価1の演算、例えばnotをシンボル化することができる。例えば、[1]では結合価2のand演算だけが節点に許可される。この(1価の)not演算は辺のマーキングによって示される。
【0075】
このグラフの構成の際にハッシュ表を介して節点の一意性を保証する。このグラフの各々の変化(つまり2つ又は複数の異なる等価節点の統合)の後で、複数回現れる同一の節点をまとめる。従って、節点の一意性が得られる。このプロセスは再ハッシュ(rehashing)と呼ぶ。
【0076】
ベリファイアの課題は、基礎となるグラフを問題(32)が解けるまで簡略化することである:この方法の異なるフェーズにおいて、同一の関数を表す節点、すなわち等価な節点が決定される。次いでこれらの節点の中から代表点として1つの節点を選択する。他の全ての節点はこの代表点により置き換えられる。このプロセスは冗長節点の除去と呼ぶ。除去のすぐ後でその都度再ハッシュを実施する。
【0077】
例えば、2つの異なる節点k、kに対する同一性
Boolek1=Boolek2 (33)
を検証するための各検証ステップの開始の際に、まず最初に関与する節点の"cone of influence"が決定され、次いでこの"cone of influence"に基づいてさらに計算が行われる。
【0078】
次に、インプリメンテーションにおいて利用される方法/ベリファイアの可能な選択が行われる。これらは、
・完全なシミュレーション、
・(葉に関する)ROBDD法、
・(断面に関する)ROBDD法、
・ATPG法(自動テストパターン生成)、
・SAT法(ブーリアン充足可能性アルゴリズム)、
・内部等価点に対するベリファイア、
である。
【0079】
個々のベリファイア/方法について以下において詳しく説明する。
【0080】
シミュレーション
このシミュレーション([6]を参照)は葉から根へと行われる:まず最初に各葉に値0又は1を割り当てる。節点kの各々の子に値が割り当てられた場合、この節点kの値を演算opを用いて決定する。
【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つの節点k,kが使用される(図1のブロック1参照)。目標は、節点k,kによって表される関数Boolek1,Boolek2が同一であるかどうか、すなわち
Boolek1≡Boolek2 (34)
が成り立つかどうかを判定することである。このグラフGはグローバルなデータ構造を示し、このグローバルなデータ構造に各部分ベリファイア(基本ベリファイア、ブロック102及び図2参照)はアクセスできる。
【0085】
部分ベリファイアは、グラフGを等価節点の統合によって段階的に簡略化することを試み、この結果、最後には完全なシミュレーションを用いて式(34)が検証されるか又は否定される。
【0086】
以下において、グラフGのk,kの"cone of influence"をCOI(k,k)と呼ぶ。
【0087】
図1のブロック102の中の部分ベリファイアが成功に至らない場合には、ブロック103で内部等価点に対する検証方法が行われる(図3参照)。個々のベリファイアは、結果「偽」104、すなわち比較すべき技術システムは異なるを、システムが同一の場合には「真」106を、このベリファイアが結果に至らない場合には「未決」105を送出する。
【0088】
次にハイブリッドベリファイアの個々の実行ステップを示して説明する。
【0089】
ステップ1:完全なシミュレーション、図2、ブロック201及び図4参照:「小さな」COI(k,k)(ブロック401参照)に対して:全ての可能な値割り当てがシミュレートされ、これに基づいて、これらが式(34)を充足するか否かがテストされる(ブロック402)。
【0090】
ステップ2:葉に関するROBDD、ブロック202参照:
ベースとしてCOI(k,k)の全ての葉の集合が選択される。所定の大きさに至るまでCOI(k,k)についてROBDDを計算する。COI(k,k)において冗長節点が存在する場合、すなわち同一のROBDD表示を有する節点が生じる場合、これらの冗長節点が除去される。さらに、ステップ2が繰り返される。
【0091】
ステップ3:断面に関するROBDD、ブロック203及び図5参照:
根の「近傍」の節点k,kの集合をベースとして選択する([5]を参照)。所定の大きさに至るまでCOI(k,k)についてROBDDを計算する(ブロック501参照)。COI(k,k)において冗長節点が存在する場合、すなわち同一の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つの部分類AK、AKに分解される。ただし、AKは、シミュレーションによって値iが割り当てられる全ての節点の集合∈AKを表す。このシミュレーションは葉の値割り当てのために乱数発生器を使用する(ランダムパターンシミュレーション=RPS)。この細分ステップは複数回行われる。
【0098】
同値類は潜在的に同一の関数を表す節点の集合を表す。異なる同値類の中の節点は同一の関数を表し得ない。
【0099】
ステップ6.2:
次々に全ての潜在的に等価な節点対が実際に等価であるか検査される。すなわち、これらが同一のブール関数を表しているか検査される(ブロック302、303及び304参照)。
【0100】
葉の「すぐ近傍」にあるそれぞれまだ処理されていない潜在的に等価な節点対(u,u)が検出される(ブロック305参照)。この節点対(u,u)に対してステップ1〜5が実施される(ブロック306参照)。この後で3つの結果のうちの1つが生じる、すなわち、
a.この節点対(u,u)は実際に等価である:節点は冗長であり、除去されうる(ブロック307参照)。
【0101】
b.この節点対(u,u)は等価ではない:2つの関数booleuとbooleuとが異なっている変数の割り当て(u,uの"cone of influence"の葉)が見出された。グラフGの残りの葉に対する乱数値の割り当ての後で、このグラフGがシミュレートされ、これまでの同値類分解が細分化される。これは潜在的に等価な節点対の個数を減少させる(ブロック308参照)。
【0102】
c.等価検証は複雑性限界のために判定できない:次の節点対が検査される。
【0103】
潜在的に等価な節点対の各々の検査の後で、本来の節点対(k,k)が等価であるかテストされる。そうでない場合には、最後のステップで節点対(k,k)がテストされる。
【0104】
図6にはプロセッサユニットPRZEが図示されている。このプロセッサユニットPRZEはプロセッサCPU、メモリSPE及び入力/出力側インターフェースIOSを含む。この入力/出力側インターフェースIOSはインターフェースIFCを介して様々に利用される:グラフィックインターフェースを介して出力がモニタMONにおいて可視化され及び/又はプリンタPRTに出力される。入力はマウスMAS又はキーボードTASTを介して行われる。またプロセッサユニットPRZEはデータバスBUSを自由に使用できる。このデータバスBUSはメモリMEM、プロセッサCPU及び入力/出力側インターフェースIOS接続を保証する。さらに、データバスBUSには付加的なコンポーネントが接続でき、例えば付加的なメモリ、データメモリ(固定ディスク)又はスキャナが接続できる。
【0105】
【外1】
Figure 0004418591

【図面の簡単な説明】
【図1】 ハイブリッドベリファイアの作動方法に対するフローチャートである。
【図2】 ハイブリッドベリファイアの部分としての基本ベリファイアの選択に対するフローチャートである。
【図3】 内部等価点に対するベリファイアに対するフローチャートである。
【図4】 完全なシミュレーションの実施を示すフローチャートである。
【図5】 ROBDD検証方法のステップを有するフローチャートである。
【図6】 プロセッサユニットである。
【符号の説明】
PRZE プロセッサユニット
CPU プロセッサ
SPE メモリ
MEM メモリ
IOS 入力/出力側インターフェース
IFC インターフェース
MON モニタ
PRT プリンタ
MAS マウス
TAST キーボード
BUS データバス

Claims (15)

  1. 少なくともメモリ(SPE)と、入出力側インタフェース(IOS)と、プロセッサ(CPU)とを備えたプロセッサユニット(PRZE)を用いて、技術システムの予め設定された特性と第1の特性とを比較する方法において、当該第1の特性は、第1の仮定部と第1の証明部を含んでおり、前記予め設定された特性のうちの少なくとも1つは、予め設定された仮定部と予め設定された証明部を含んでおり、
    少なくとも2つの比較方法が設けられており、
    a)前記プロセッサ(CPU)が、該少なくとも2つの比較方法の各々を用いて、前記技術システムの前記予め設定された特性のブール関数と前記第1の特性のブール関数との比較を行うステップと、
    b)前記プロセッサ(CPU)が、該比較の結果が決定されるまで、前記少なくとも2つの比較方法予め設定された順番で処理するステップとを備えた方法。
  2. 比較の結果は、技術システムの特性と第1の特性との同一性又は相違である、請求項1記載の方法。
  3. 少なくとも2つの比較方法は次の比較方法からの少なくとも1つを含んでいる、すなわち、
    a)SAT比較法、
    b)シミュレーション法、
    c)BDD法、
    d)ATPG法、
    e)内部等価点に基づく方法
    からの少なくとも1つを含んでいる、請求項1〜のうちの1項記載の方法。
  4. BDD法はとりわけROBDD法である、請求項記載の方法。
  5. ROBDD法は、ブール関数を表すグラフにおける葉又は断面に関して実施される、請求項記載の方法。
  6. 技術システムは回路である、請求項1〜のうちの1項記載の方法。
  7. 前記回路はデジタル回路である、請求項6記載の方法。
  8. 技術システムは有限オートマトンとして表される、請求項1〜7のうちの1項記載の方法。
  9. 第1の特性はブール関数として表される、請求項1〜8のうちの1項記載の方法。
  10. 第1の特性によって予め設定された時間間隔に亘る技術システムの挙動が記述される、請求項1〜9のうちの1項記載の方法。
  11. 各比較方法に対して、供給すべきリソース及び/又は自由に使用できる時間に対する閾値が設定され、該閾値を上回ることによってその都度の比較方法は不成功として終了される、請求項1〜10のうちの1項記載の方法。
  12. 最も多くの比較を解決することができた比較方法がまず最初に呼び出されることによって、実施すべき比較方法の順番が適合される、請求項1〜11のうちの1項記載の方法。
  13. 比較結果に基づいて少なくとも1つの技術システムの設計、適合又は制御が実施される、請求項1〜12のうちの1項記載の方法。
  14. 既に呼び出された比較方法の副作用によって比較が簡略化される、請求項1〜13のうちの1項記載の方法。
  15. 少なくともメモリ(SPE)と、入出力側インタフェース(IOS)と、プロセッサ(CPU)と、前記プロセッサ(CPU)によって読み取り可能なプログラムを備えた、技術システムの予め設定された特性と第1の特性とを比較するための装置であって、当該第1の特性は、第1の仮定部と第1の証明部を含んでおり、前記予め設定された特性のうちの少なくとも1つは、予め設定された仮定部と予め設定された証明部を含んでおり、少なくとも2つの比較方法が設けられており、
    前記プログラムが、前記プロセッサ(CPU)を、
    a)該少なくとも2つの比較方法の各々を用いて、前記技術システムの前記予め設定された特性のブール関数と前記第1の特性のブール関数との比較をする手段
    b)該比較の結果が決定されるまで、前記少なくとも2つの比較方法予め設定された順番で処理する手段として機能させる装置。
JP2000580131A 1998-11-03 1999-11-02 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置 Expired - Lifetime JP4418591B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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