JPH11219378A - 分解及び分割によるハードウェアの検証並びに表現方法 - Google Patents
分解及び分割によるハードウェアの検証並びに表現方法Info
- Publication number
- JPH11219378A JPH11219378A JP10313768A JP31376898A JPH11219378A JP H11219378 A JPH11219378 A JP H11219378A JP 10313768 A JP10313768 A JP 10313768A JP 31376898 A JP31376898 A JP 31376898A JP H11219378 A JPH11219378 A JP H11219378A
- Authority
- JP
- Japan
- Prior art keywords
- bdd
- circuit
- partition
- boolean
- decomposed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- 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)
- Design And Manufacture Of Integrated Circuits (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
ール空間表現の窓を用いる二分決定グラフベースの検証
技術で検証し得ないディジタル回路及びシステムの評価
方法並びにシステムの提供を目的とする。 【解決手段】 本発明は、ディジタル回路又はシステム
をブール空間の多数の分割で表現し、多数の分割を用い
て検証するシステム及び方法である。決定グラフはディ
ジタル回路又はシステムに対し構築され、グラフサイズ
を縮小するため擬似変数が分解点に導入される。分解後
に残る擬似変数は、ディジタル回路又はシステムをブー
ル空間の多数の分割により表現するため、合成、分割さ
れる。各分割はスケジューリング順に構築され、他の分
割とは別個に取り扱える。
Description
ータ支援設計(CAD)システム及び方法に係わり、特
に、ディジタル回路の設計並びに検証用のコンピュータ
支援設計システム及び方法に関する。
ルシステムのコンピュータ支援設計は広く普及してい
る。コンピュータ支援設計において、回路及びシステム
は、通常、階層的な形で設計される。回路又はシステム
の要求条件は回路又はシステムの抽象モデルに定義され
る。抽象モデルは、次に多数の中間段階に変換される。
中間段階には、屡々、ブロック構造行動設計を表現する
レジスタ・トランスファ・レベル・モデルと、システム
の論理レベル記述である構造モデルとが含まれる。最終
的に、トランジスタ網リスト、並びに、回路又はシステ
ムの物理配置が得られる。
条件レベルから下位の詳細な物理設計レベルまで進めら
れ、その間に多数の中間段階が介在する。一連の各設計
レベルは、回路又はシステムが設計要求条件に一致し続
けていることを保証するため試験或いは検証される。あ
る設計レベルの誤りが別の設計レベルが終わるまで訂正
されない場合、このような誤りを訂正するために要する
コストは著しく増加するので、設計レベル毎に検証する
ことが非常に望ましい。そのため、各設計レベルを要求
条件に対して試験することが重要である。各設計レベル
が要求条件に対して試験される際に、この作業は、各設
計レベルを前の設計レベルと比較する作業に分けられ
る。このような後続のレベルと直前のレベルとの試験が
行われると、屡々、後続の各レベルは先行のレベルの最
適化に過ぎないことが直観的に分かる。従って、回路設
計の試験又は検証は、回路又はシステムの一連の作成の
下位互換性の検査と類似していると考えられる。
連した問題を解法するため使用される。上記問題の中に
は、合成問題、ディジタルシステム検証、プロトコル検
証、及び、回路の正当性の概括的な検証が含まれる。例
えば、図1には、第1のORゲート11、第2のORゲ
ート13及びANDゲート15を含む回路が示されてい
る。第1のORゲート11は入力N1及びN2を有す
る。第2のORゲート13は入力N2及びN3を有し、
入力N2は二つのORゲートの間で共用される。ORゲ
ート11及び13の出力はANDゲート15に供給され
る。このとき、ANDゲート15の出力は、ブール関数 N6=(N1 OR N2) AND (N2 OR N3) によって表現される。
示されている。BDDは、節点とも称される頂点と、分
枝とにより構成される。更なる分枝が延びていない頂点
は終端頂点と称される。この二分決定グラフは、各入力
がBDDの一つのレベルだけに出現するように制限され
ているので、順序付二分決定グラフ(OBDD)であ
る。この二分決定グラフは、図3に示されるように既約
順序付二分決定グラフ(ROBDD)に既約させてもよ
い。順序付二分決定グラフを既約する規則は従来技術に
おいて公知である。この規則は、ある種の節点が節点の
分枝を節点若しくは節点の補集合と交換することにより
除去できることを認めることによって、冗長若しくは同
型節点を除去する。既約順序付二分決定グラフは、ユニ
ーク、即ち、標準形である点が重要である。従って、二
つの順序付二分決定グラフが同一の既約順序付二分決定
グラフに既約されるとき、これらの順序付二分決定グラ
フによって表現された回路は等価である。
二分決定グラフは、参考のため引用したR. E. Bryantに
よる論文”Graph-Based Algorithms For Boolean Funct
ionManipulation”, IEEE Trans. Computer C-35(8), 6
67-691, August 1986に記載されたApply 手続のある種
の変形を用いて構成される。Apply 手続を用いると、ゲ
ートgに対する既約順序付二分決定グラフはゲートgの
入力の既約順序付二分決定グラフの記号操作によって合
成される。所定の回路に対し、回路のゲートは、所望の
出力ゲートの既約順序付二分決定グラフが構成されるま
で、深さ優先(縦型)で処理される。
科学の分野における多数の問題は、ブール関数を用いて
定式化することができる。従って、既約順序付二分決定
グラフは等価性検査を行うため有効である。しかし、コ
ンピュータ支援解法及び等価性検査を行う際の中心的課
題は、等価性検査が効率的に行えるように簡潔なブール
関数の表現法を見つけることである。既約順序付二分決
定グラフは効率的に操作することが可能であり、上記の
如く標準形である。殆どの実際的な関数の場合に、既約
順序付二分決定グラフは、サイズ(メモリ空間)及び計
算時間の両方の点で経済的である。そのため、既約順序
付二分決定グラフは種々のCAD問題を解決するための
選択候補のブール表現法として頻繁に使用される。
経済的であるとは限らない。実際的な関心のある大半の
場合に、ブール関数によって記述された回路又はシステ
ムを表現する既約順序付二分決定グラフは、回路又はシ
ステムへの主入力の数に指数関数的な関係のある空間を
必要とする。このため、等価性の解法はNP困難問題に
なる。メモリ或いは計算時間の両方の面に関して大きい
空間が要求されるため、既約順序付二分決定グラフを用
いて解法することができる問題の複雑さに制約が課され
る。
経済性を改良するため提案されている。その中の一部の
方法は経済性を改良するが、既約順序付二分決定グラフ
の標準性と操作性を維持しない。かかる方法は既約順序
付二分決定グラフの適用可能性を縮小する。標準性及び
操作性を維持する別の方法は、唯一の起点を根元とする
単一グラフとして全ブール空間に亘る関数を表現する。
しかし、単一グラフは、メモリ又は時間のいずれかの制
約が充足されないようなサイズの既約順序付二分決定グ
ラフを必要とする。
する方法が提案されている。既約順序付二分決定グラフ
のサイズは変数の順序に強く依存する。従って、既約順
序付二分決定グラフのサイズを縮小する変数順序を決定
する多数のアルゴリズムが提案されている。しかし、一
部のブール関数に対し、利用可能な程度に充分に小さい
サイズの既約順序付二分決定グラフが得られる変数順序
が存在しない場合や、そのような変数順序を効率的に見
つけられない場合が起こり得る。
の必要量は、全体的な順序付けの要求条件を緩和するこ
とにより削減してもよい。フリー二分決定グラフ(FB
DD)は、このような解決策の一例である。フリー二分
決定グラフは、変数が起点から終端までの所定の経路内
で1回だけ出現し、異なる経路は別の変数順序をもつこ
とができる二分決定グラフである。
ための別の手法は、節点に関連した機能分割を変更する
ことである。一般的に、二分決定グラフ分割は関数f
が、
シャノンの展開から導かれるApply 法のような方法に基
づく。他の分割は、リード・マラーの展開、若しくは、
機能決定グラフ(FDD)のような展開のハイブリッド
的使用を含み、或いは、順序付きクロネッカー機能分割
グラフ(OKFDD)が使用される。しかし、上記の方
法は何れも唯一の起点を根元とする単一グラフとして全
ブール空間に亘る関数を表現する。そのため、上記の方
法はメモリ及び時間の制約の問題が未解決のままであ
る。
は、適切に検証できない。一般的に、テストスイートが
このような設計を試験するため準備される。テストスイ
ートは、設計の主入力に対する割当ての組合せが変更さ
れる多数のテストケースを含む。主入力に対する割当て
の一つの組合せは入力ベクトルを形成する。フリップフ
ロップのような順序素子を有する設計を試験するため使
用される入力ベクトルの系列は、テストベクトルを形成
する。
々、試験中の設計に関する専門知識を備えたエンジニア
によって用意される。従って、テストスイートは有用な
テストデバイスである。しかし、テストスイートは、設
計の状態若しくはブール空間の非常に僅かな部分しか試
験しない。相当の数の主入力又は実現可能性のあるテス
トベクトルを備えた設計に対し、テストスイートは、特
定の関心のある入力ベクトル又はテストベクトルの十分
な部分の試験を行わない。
ブール空間表現の窓を用いる二分決定グラフベースの検
証技術によって検証することができないタイプのディジ
タル回路及びシステムを評価する方法並びにシステムの
提供を目的とする。
例において、ディジタル回路又はシステムはブール空間
を形成するブール関数として表現される。ブール空間は
分割に細分され、分割は再帰的に更なる分割に細分され
る。二分決定グラフを形成するには非常に大きい分割
は、分割を形成するため合成可能な要素又は元を有する
分解分割記号列を用いて表現される。これらの要素又は
元は予定された順序で合成される。一部の合成の結果が
零である場合、分解分割記号列も零になる。かくして、
一部の下位組合せが零を生じる場合、全ての要素又は元
を合成する必要はないので、分解分割記号列によって表
現された分割の評価を行える。
路の等価性を検証する方法及びシステムを提供する。第
1の回路及び第2の回路は、対応した主入力及び主出力
の集合を有する。第1の回路及び第2の回路はブール関
数として表現され、ブール空間は対応したブール関数の
出力を排他的論理和することによって表現される。ブー
ル空間に対する分解二分決定グラフを構築する際に、合
成によって得られた二分決定グラフがコンピュータメモ
リ使用量に関して所定の制約を超えたとき、ブール空間
は分解点の合成中に分割される。合成によって得られた
全ての分割が零であるならば、回路は等価であると判定
される。
路及びシステムの設計を部分的に検証できるようにする
際に使用するサンプリング方法を提供する。回路、シス
テム又は設計の状態空間は、多数の分割に細分される。
これらの分割は、回路、システム又は設計用のテストス
イートを解析する方法を含む幾つかの方法を用いて形成
される。更に、中間二分決定グラフがメモリ使用量に関
する所定の制約を超える場合に、この二分決定グラフは
評価された状態空間の零終端頂点及び他の分割で置換す
ることが可能である。
特徴が容易に認められるように、添付図面を参照して本
発明の実施例を詳細に説明する。 I. 概要説明 本発明の回路又はシステムを検証する方法及びシステム
によれば、回路又はシステムを表現するブール論理空間
の分割が分解点における合成によって行われる。各合成
は、ブール空間を二つの別個の分割に細分する。合成
は、シャノンの式と、二分決定グラフに関する機能的制
約とを用いて行われる。かくして、各分割はブール空間
の論理和部分を表現する。
かを判定する際に、二つの回路の各主出力は排他的論理
和(XOR)演算で合成される。全てのXOR演算の出
力が常に零と一致するとき、二つの回路は等価である。
従って、完全なブール空間は、第1の回路の表現形式F
と、第2の回路の表現形式Gとにより構成され、両者の
主出力はXOR演算で合成される。このように、等価で
ある表現形式FとGとによって表現された回路に対し、
F XOR G で表されるブール空間は常に零でなけ
ればならない。ブール空間 F XOR G が幾つか
の論理和分割に分割されるとき、各分割は、零であるべ
き完全なブール空間 F XOR Gに対し、零に一致
しなければならない。このように、順序付二分決定グラ
フは、別個の分割毎に作成され、各順序付二分決定グラ
フは、順序付二分決定グラフが零に既約するかどうか、
即ち、零に一致する単一の終端頂点だけを含むかどうか
を判定すべく検査される。全ての分割が零に既約される
場合、F XOR Gは零に既約し、表現形式F及び表
現形式Gは等価な回路を表現する。
に操作し、次に、得られた既約順序付二分決定グラフを
比較してもよい。分割された既約順序付二分決定グラフ
の使用は、一部のブール空間しか表現しない1個の既約
順序付二分決定グラフだけが常にメモリに収納されるべ
きことを意味する。分割された各既約順序付二分決定グ
ラフはモノリシック既約順序付二分決定グラフよりも小
さいので、時間及びメモリ空間の制約のために従来技術
では解決することが困難な別のクラスの問題を解決でき
るようになる。また、分割された各既約順序付二分決定
グラフは等価である回路に対し零に既約する必要がある
ので、分割された既約順序付二分決定グラフが零に既約
しないことが判明した時点で処理が直ちに停止される。
その上、各既約順序付二分決定グラフの変数順序は異な
ることが許されるので、個別の既約順序付二分決定グラ
フのサイズが更に縮小される。
される。分解点は多数の方法で見つけられる。点が既に
分かっている等価的な点であるならば、分割は等価的な
順序付二分決定グラフを用いて分解点に形成される。ま
た、分解点は爆発原理に基づいて判定される。モノリシ
ック順序付二分決定グラフは、一般的に、Apply 手続を
用いて主出力に向かう主入力から作成される。モノリシ
ック順序付二分決定グラフの作成は、主入力に関して主
出力を表現するモノリシック順序付二分決定グラフが得
られるまで続けられる。この処理中に、節点に関する順
序付二分決定グラフがメモリ使用量に関して爆発する場
合、その点は分解点としてマークされ、擬似変数に変わ
る。主出力に近い方の順序付二分決定グラフを作成する
際に、この擬似変数が、元々使用される筈の順序付二分
決定グラフの代わりに使用される。擬似変数bを利用す
る二分決定グラフは図9に示されている。
式に対する分解二分決定グラフを構築する過程で分解点
を判定する処理が図13に示されている。ステップ13
0において、カウンタは第1の主入力に設定される。ス
テップ131では、全てのゲート若しくは節点に対し二
分決定グラフBDDの構築が試行されたかどうかが判定
される。ステップ132において、サイズに関して二分
決定グラフBDDの爆発が起こるまで、各ゲート若しく
は節点毎に中間二分決定グラフが構築される。このよう
な爆発が生じたとき、ステップ134において、ゲート
若しくは節点が分解点としてマークされ、ステップ13
5において、分解点としてマークされたゲート若しくは
節点に対する二分決定グラフの擬似変数が挿入される。
がある。第1に節点に関し二分決定グラフを構築する必
要が無くなる。即ち、メモリに関して爆発した中間二分
決定グラフは後の処理に必要ではない。一例として、最
終的な二分決定グラフよりもサイズの大きい中間二分決
定グラフを有する簡単な回路は図4に示されている。こ
の簡単な回路は、ORゲート31とANDゲート33と
を含む。ORゲートは入力N10及びN11を有する。
ORゲートの出力N12はANDゲートに供給され、A
NDゲートの別の入力はN11である。また、ANDゲ
ートの出力はN13である。入力N10に対する二分決
定グラフは図5に示されているように、終端頂点への2
本の分枝を備えた節点12を含む。入力N11に対する
二分決定グラフも同様な形であり、図6に示されてい
る。N12に対する二分決定グラフは図7に示され、2
個の節点を含む。しかし、N13に対する二分決定グラ
フは、図8に示される如く、1個だけの節点を有し、N1
3=(N10 OR N11) AND N11 と考えられるとき、簡潔に、
N13 = N11 である。そのため、回路に対する最終的な二
分決定グラフは少なくとも1個の中間二分決定グラフよ
りも小さく、中間二分決定グラフを構築する必要はな
い。
解析が容易な目的関数(例えば、出力関数)の表現形式
を構築する必要がある。この場合に、二分決定グラフの
爆発を回避するため、二分決定グラフは分解点の合成中
に分割され得る。かくして、図10及び11には、図9
の二分決定グラフの擬似変数bを合成することによって
得られた二つの分割が示されている。このような分割二
分決定グラフは、分割の和である二分決定グラフよりも
サイズが小さいので、メモリ又は時間の量を減少させる
必要がある。
回路2の回路検証方法の概要が示されている。同図にお
いて、Cは回路1及び回路2の合成を表し、Fは回路C
を表現するブール関数である。ステップ120におい
て、主入力から主出力までの分解集合に対するCの分解
が行われる。ステップ122において、関数Fは主入力
と擬似変数の合成によって表現される。ステップ124
において、関数Fの表現形式が作成され、分割順序付二
分決定グラフに分割される。ステップ126において、
零に一致しない順序付二分決定グラフが得られたかどう
かが判定される。零に一致する順序付二分決定グラフが
得られなかった場合、ステップ127において、回路1
と回路2は等価ではないことが宣言される。それ以外の
場合、ステップ128において、回路1と回路2は等価
であることが宣言される。
割に別の分解点が含まれる場合、更なる分割を行うこと
が必要である。各分割自体は、二つの論理和ブール空間
に分割してもよく、各サブ分割は論理和ブール空間に更
に分割される。かくして、ブール空間は、多数の小規模
の順序付二分決定グラフに分割される。一部の分割は、
非常に大規模であるため二分決定グラフを構築できない
場合がある。しかし、分割は分解分割記号列によって形
成される。分解分割記号列は、論理和された要素又は元
の記号列である。特定の分割が多数の上位レベルの分割
を再帰的に分割する結果として形成される場合、この記
号列は多数の要素を含む。要素が零である結果と論理和
された場合、記号列、即ち、分割も零である。
は、予定された順序を用いて実現される。例えば、f=
a,b,c,d,eであり、a,b,c,d,eがシス
テム若しくは回路トポロジーの一部分を表す全てブール
関数であるとき、fの分割された既約順序付二分決定グ
ラフを作成する問題を考える。好ましい一実施例におい
て、ブール関数a,b,c,d,eは、(節点の数に関
して表現された)サイズと、相互に余分なサポートの最
小値を有する程度とに従って格付けされる。この格付け
は、最小サイズの要素及び余分なサポートをもつ要素が
先に合成される要素の合成スケジュールを決定する。以
下、上記の内容、並びに、別の詳細について十分に説明
する。
ル関数f:Bn →Bが定義された場合を考える。ブール
関数fの分割既約順序付二分決定グラフ表現形式Xf は
以下の通り定義される。
関数f:Bn →Bが与えられると、fの分割既約順序付
二分決定グラフ表現形式Xf は、k個の関数の組の集合 Xf ={(w1 ,f1 )...,(wk , fk )} として表され、ここで、
満たす。
NDを表す。集合{w1 ,...,wk }はWとして表
される。各wi は窓関数と称される。直観的に、窓関数
wiは、fが定義されているブール空間の一部を表現す
る。各ペア
“分割(パーティション)”は、分割が論理和であるこ
とを要求する従来の意味とは違う意味で使用される。定
義1の条件1−3に加えて、 i≠jに対し、wi ∧wj =0 であるならば、分割は直交し、各
る。定義1の条件1は、各分割が他の分割の変数順序と
は異なる場合、及び、異ならない場合がある関連した変
数順序をもつことを意味する。条件2は、wi が全ブー
ル空間を被覆することを意味する。条件3は、
関するfと同じであることを意味する。一般的に、各
i の値はwi によって被覆されていないブール空間の部
分に対しドントケアである。既約順序付二分決定グラフ
Fのサイズは、|F|によって示される。そのため、|
Xf |によって示される全ての分割のサイズの合計は、
直ちに、
は、論理和分割と称される。論理積分割は、上記の定義
の双対形式として定義される。即ち、i番目の分割が、
は、 w1 ∧...∧wk =0 になり、条件3は、
び順序πi が与えられたとき、分割既約順序付二分決定
グラフ表現形式は標準形である。所定の関数fと、fの
所定の分割既約順序付二分決定グラフ表現形式
既約順序付二分決定グラフとして表現されるので、分割
既約順序付二分決定グラフ表現形式は標準形である。ブ
ール空間の分割がW={w1 ,...,wk }の場合
に、分割既約順序付二分決定グラフ表現形式に関する基
本ブール演算(例えば、NOT,AND,OR)の実行
の漸近的計算量は、既約順序付二分決定グラフの場合と
同様にオペランドのサイズの多項式である。従って、表
現形式の経済性は操作の効率に関して全く負担にならな
い。実際上、分割既約順序付二分決定グラフは、一般的
にモノリシック既約順序付二分決定グラフよりも小さい
ので、各分割は別々に操作することが可能であり、その
操作は非常に効率的である。
“Partitioned-ROBDDs -- A Compact,Canonical end Ef
fciently Manipulable Representation of Boolean Fun
ctions", ICCAD, November 1996に記載されているよう
に、f及びgを二つのブール関数とし、
既約順序付二分決定グラフである場合を考える。また、
Xf 及びXg の両方のi番目の分割は同じ変数順序πi
を有すると仮定する。このとき、以下のように表され
る。
場合、次の演算
ラフの場合、異なる分割は、別々に操作され、
か存在すべきではないので、
分決定グラフと同様に、関数fの充足集合のサイズは、
直交分割既約順序付二分決定グラフに対し、オーダーO
(|X f |)で計算され得る。 D. 存在記号化 基本的なブール演算の他に、順序回路の形式的な検証に
広範囲に使用される別の有用な演算は存在記号(∃
x f)演算である。関数f(∃x f)からの変数xの存
在記号は、
決定グラフ表現形式において、余因子は、Xに関して、
演算を実行した後、正及び負の余因子は異なる窓関数を
有し、論理和は分割に基づいて直接行えない。この問題
は定量化されるべき変数に依存しない窓関数を選択した
場合には生じない。存在記号化は以下の通り行われる。
Xf ={(wi ,fi )|1≦i≦k}が、1≦i≦k
に対し、∃x wi =wiとなるようなfの分割既約順序
付二分決定グラフであるとするならば、 X∃x f={(wi ,∃x fi )|1≦i≦k} は、∃x fの分割既約順序付二分決定グラフ表現形式で
ある。
fと表記されるfからのXの全称記号である。全称記号
の十分条件は、窓関数が限定されるべき変数と独立であ
る上に、直交していることである。全称記号化は以下の
通り行われる。1≦i,j≦k かつ i≠j に対
し、 ∀x wi =wi かつ wi ∧wj =0 となるようなfの分割既約順序付二分決定グラフ表現形
式を Xf ={(wi ,fi )|1≦i≦k} とする。このとき、 x∀x f={(wi ,fi )|1≦i≦k} は、∀x fの分割既約順序付二分決定グラフ表現形式で
ある。
築するための発見的手法 分割既約順序付二分決定グラフの性能は、関数をコンパ
クトに表現することができるブール空間の分割の生成に
決定的に依存する。このようなブール空間の分割を分割
既約順序付二分決定グラフに関して見つける問題は、モ
ノリシック既約順序付二分決定グラフに関して優れた変
数順序を見つける問題と同様に中心的な課題である。以
下、コンパクトな直交分割既約順序付二分決定グラフを
作成する際に効率的なある種の単純な発見的手法を説明
する。以下の説明ではブールのネットリストモデルを使
用しているが、この技術は汎用的であり、ブール演算の
任意のシーケンスに適用することができる。
分割既約順序付二分決定グラフのための窓関数はFに対
する分解された二分決定グラフを解析することによって
得られる。窓の個数は先験的若しくは動的に決定され
る。窓wi が決定された後、窓wi に対応する分割既約
順序付二分決定グラフは、窓wi に対応したブール空間
内でFを作成することにより獲得される。
Bn →Bが定義された場合、分解戦略は、既約順序付二
分決定グラフ演算のシーケンス中に、既約順序付二分決
定グラフのサイズの増加に基づいて新しい変数を導入す
ることである。新しい変数は、ある種の演算に起因して
不相応な程度で既約順序付二分決定グラフ・マネージャ
内の節点の総数が増加するときに導入される。例えば、
既約順序付二分決定グラフR1 及びR2 上で演算R=R
1 +R2 を実行するときに、Rが非常に大きくなるなら
ば、この演算は行われない。その代わりに、新しい変数
であるψ1 及びψ2 が導入され、Rはψ1 +ψ2 のよう
に表現される。分解点に対応した既約順序付二分決定グ
ラフを収容する別個のアレイが保持される。ψ1 及びψ
2 に対応したR1 及びR2 がこのアレイに追加される。
このように、困難な関数的操作の手続は、後の段階に延
期される。ブールの簡単化に起因して、これらの中の殆
どのケースは最終的な結果に生ずることが無く、特に、
最終的なメモリ必要量が、参考として引用したJ. Jain
他による文献“Decomposition Techniques for Efficie
nt ROBDD Construnction”, LNCS, Formal Methods in
CAD 96, Springer-Verlag, November, 1996 に記載され
ているようなピーク中間必要量よりも著しく少ない場合
に、上記ケースは最終的な結果に生じない。
検査は、マネージャ・サイズが所定の閾値よりも大きい
場合に限り行われる。また、分解点は、既約順序付二分
決定グラフが別の閾値を超えるまで成長したときに追加
される。これによって、分解点自体はかなり大きい既約
順序付二分決定グラフを有しないことが保証される。た
とえ簡単なサイズベースの分解スキームでも、分割既約
順序付二分決定グラフの潜在能力を実証するため非常に
効果的に働く。
れる。関数fの分解表現形式は、 fd (Ψ,X) のように表され、 Ψ={ψ1 ,...,ψk } は、回路の分解集合と称され、ψi ∈Ψ は分解点であ
る。
を表現する場合、即ち、 ψj ≠ψi であるとき、主入力変数並びに(可能であれば)他のψ
j ∈Ψ に関して、 ψi ∈Ψ が対応した既約順序付二分決定グラフ ψ1bdd∈Ψbdd を有する場合を想定する。同様に、ψibddw のアレイは
Ψbddwi によって表現される。fd (Ψ,X)における
ψi の合成は、 fd (Ψ,X).(ψi ←ψibdd) によって表現され、但し、
トル合成は、 fd (Ψ;X).(Ψ←ψbdd ) によって示され、ψi のfd への順次の合成を表現す
る。 B. 分解表現の分割 1. 所与のwi に対するfの作成 窓関数wi 、分解表現fd (Ψ,X)、及び、fの既約
順序付二分決定グラフアレイΨbdd が与えられた場合、
f1 =w1 ∧fi を表現する既約順序付二分決定グラフ
がfよりも小さくなるようなfi が望ましい。以下の観
察が適切である。
d 及びfの任意の変数順序に対し、 |fi |≦|f| である。
場合、余因子化及び合成の順序は変更することができ
る。したがって、
ることができ、
れた場合、fの分割既約順序付二分決定グラフXfは、
の全ての条件を満たすかどうかは簡単に検査できる。w
i がキューブである場合、fi はfに対する既約順序付
二分決定グラフよりも小さいサイズを有することが保証
される。また、kがwi のリテラルの個数であるとき、
wi を表現する既約順序付二分決定グラフはk個の内部
節点を有する。wi と
を有するので、
果は、fの構築中の中間結果よりもサイズが小さいの
で、中間ピークメモリ必要量は削減される。観察1は、
f及びfi が異なる変数順序を有し得るときに動的変数
再配列が行われる場合には成立しないことに注意する必
要がある。しかし、実際上、動的変数再配列は分割の際
に小さいグラフ上で行われるので、非常に効率的である
と考えられる。窓関数がキューブよりも複雑な主入力の
関数である場合でさえ、
上のfの一般化余因子は、通常、fよりも遙かに小さ
い、しかし、i番目の分割既約順序付二分決定グラフの
サイズの場合、
|fi |)になり得る。これを避けるため、一般的な窓
関数を使用する間に小さいwi を使用する。 2. 窓関数の選定 優れた窓関数を獲得する方法は、先験的選定及び「爆
発」ベース選定の二つのカテゴリに分類される。
そのため、分割がk個の主入力に関して行われる場合、
2k 個の分割が上記変数の全ての二値割当に対応して作
成される。例えば、分割がx1 及びx2 に関して行われ
る場合、4個の分割
分決定グラフはモノリシック既約順序付二分決定グラフ
よりも小さくなることが保証される。所定の時間にメモ
リに存在すべき分割は1個に限られるので、メモリ必要
量は常に少なく、このメモリ削減量は大きいので、全て
の分割を処理するため要する時間も全体的に削減され
る。
割を別々に作成する場合に生ずる冗長性を最小限に抑え
ると共に、実現される分割を最大限にする変数を選定す
ることが望ましい。変数xに関して関数fを分割するコ
ストは、 costx (f)=α[px (f)]+β[r
x (f)] のように定義され、px (f)は、
rx (f)は、
る。分割ファクタは最悪の二つの分割を示すので、分割
ファクタは小さい方がよい。同様に、冗長性ファクタは
二つの分割を作成するため関係する総作業を意味するの
で、冗長性ファクタは小さい方がよい。全体的なコスト
が小さくなる変数xが分割のため選定される。所定の関
数Fのベクトル及び変数xに対し、分割のコストは、
びψを分割するコストが増加する順序に並べられる。ユ
ーザによって指定された所定の数kを用いて、最良のk
個の主入力が選定される。類似したコスト関数は、分割
既約順序付二分決定グラフを作成するため、主入力変数
だけではなく、主入力PIに関して表現された
ある。この場合、余因子演算は、非キューブの窓関数に
対する一般化余因子演算になる。このように全ての主入
力PIがfd 及びψを分割するコストに従って格付けさ
れているタイプの選定は、静的分割選定と称される。動
的分割戦略は、最良の主入力PI(即ち、x)がfd 及
びΨに基づいて選定され、引き続く主入力が、一方の分
割中のfd 及びΨと、別の分割中の
る。動的分割は、指数関数的な個数の余因子を必要とす
るため、コスト高になり得る。このコストは、関心のあ
る値だけが、
によって多少削減できる。
分決定グラフをトラバース(横断)し、xに対応した変
数idを備えた節点を見つけると分枝x=1を選ぶ。こ
のような形で既約順序付二分決定グラフをトラバースす
ることによって獲得された二分決定グラフは既約されな
いので、この方法では正確なカウントが得られない。こ
の方法の利点は、新しい節点を作成する必要がないこ
と、並びに、トラバースが高速に行えることである。
が一部の合成(例えば、ψj )に対して急激に増大する
場合、窓関数wは現在の
PI及びその補集合、或いは、主入力に関して表現さ
れ、非常に小さいサイズをもつある種の
wが獲得された後、二つの分割
上記の分割毎に再帰的に呼び出される。等価性検査を行
うべき二つの回路A及びBを想定する。回路A及びB
は、対応した主出力F1 及びF2 を有する。等価性を示
すためには、
であるか否かを判定するため、Fに対する二分決定グラ
フが内部等価点のカットセットを用いて構築される。こ
の処理において、多数の出力は、等価ゲートの最近傍カ
ットセットμi ={ψi ,...,ψk }に関してそれ
らの二分決定グラフを作成するだけで等価であることが
宣言され得る。この処理は、Fに関する出力二分決定グ
ラフがμi を用いて容易に作成でき、出力二分決定グラ
フがブールの0に既約するとき、非常に有効である。即
ち、F1 とF2 は機能的に等価であることが示される。
しかし、二分決定グラフF(μ1 )が非常に大きく、構
築できない場合がある。また、場合によってはF
(μ1 )が0に既約しないので、この場合、二分決定グ
ラフは、主入力と先行のカットセットμi の間に収まる
別のカットセットμj に関して合成する必要がある。こ
の合成処理中に、二分決定グラフは、F1 、F2 の等価
性が解明される前に爆発する可能性がある。二分決定グ
ラフ分割戦略は、基本的に、上記の通り通常の方法では
成功し得ない場合に非常に重要な戦略として利用できる
点で有利である。
(μi )をF(μj )に合成し、グラフサイズがある種
の合成(例えば、ゲートψj に対応した二分決定グラ
フ)に対して急激に増大する場合に、合成結果がある制
限を超えたとき分割を行う。この制限を選定するため、
幾つかのサイズ関連パラメータの知識が二分決定グラフ
F(μi )のF(μj )への合成の処理中に保存され
る。これらのパラメータを説明するため、1≦h≦kで
あり、集合{ψ1 ,...,ψk }からのh個の二分決
定グラフが既に合成されている場合を想定する。例え
ば、二分決定グラフの合成される順序がψ変数の指数の
増加順であるとする。即ち、二分決定グラフは、ψ1 ,
ψ2 ,...,ψh の順に合成される。カットセットψ
i に関して作成されたψの二分決定グラフは、ψi (μ
j )のように表される。二分決定グラフを分割すべきと
きを動的に決定するルーチンDYNAMIC _BDD _PARTITIO
N (動的BDD分割)を以下に説明する。
た最初のF(μj )のBDDサイズである。 2.COMPOSED_ARGUMENT_SIZEは、BDD F(μj )
内で合成された各BDD ψ1 (μj ),ψ
2 (μj ),...,ψn (μj )の合計である。
ARGUMENT_SIZE + ORIG _SIZE 4.FINAL _SIZEは、h個の各点ψ1 ,ψ2 ,...,
ψh が連続的に合成された後、獲得されるBDD F
(μj )の「最終的な」サイズである。このBDDは、
Fh のように表される。また、PREVIOUS_SIZEは、h−
1個のポイントを合成した後のF(μj )のサイズを表
す。
る。 (A)FINAL _SIZE > COMPOSED_ARGUMENT_SIZE * B
LOW _UP_FACTORここで BLOW _UP_FACTは、所与の装
置で利用可能な空間に従って変更可能であるが、好まし
い実施例では10である。 (B)FINAL _SIZE > PREVIOUS_SIZE * BLOW _UP_
FACTOR/NUM 好ましい実施例では、NUM は2である。また、好ましい
実施例において、この規準は、合成中にBDDが爆発す
る場合だけに使用され、分解表現の形成中には使用され
ない。
_LIMIT さらに、分割法は、FINAL _SIZEが利用可能なメモリの
プリセット限界よりも大きい場合に呼び出される。分割
表現を形成中にBDD爆発を判定する手続は、図14に
示されている。分解表現を形成する際に、ブール演算ゲ
ートの出力に対するBDDは、ゲートへの入力のBDD
上でブール演算を実行することにより形成される。図1
4の手続に示されているように、B3 はゲートの出力に
対するBDDであり、B1 及びB2はゲートの入力に対
するBDDである。ステップ140において、B3 のサ
イズがメモリ使用量に対するプリセット閾値限界よりも
大きいかどうかが判定される。ステップ141におい
て、B3 のサイズがB1 のサイズとB2 のサイズの和の
量の定数(BLOW_UP_DECOMPOSITION 定数)倍よりも大
きいかどうかが判定される。ステップ140或いはステ
ップ151のいずれかの条件が真であるならば、中間B
DD爆発変数INTERMEDIATE_BDD _BLOWUPは、ステップ
142において1にセットされる。それ以外の場合、変
数INTERMEDIATE_BDD _BLOWUPは、ステップ143にお
いて0にセットされる。
するため構造的かつ機能的技術の組合せを用いる内部対
応関係の抽出及び使用に基づく技術に適用される。上記
の対応関係は、機能的な等価性だけでもよく、或いは、
内部節点間の間接含意でもよい。
した米国特許出願第08/857,916号に記載され
ている。上記技術の一部の大筋は以下のように要約する
ことができる。 1.二つの所与の回路の内部ゲート/出力ゲートの間で
簡単な等価性を判定する。等価的なゲートは併合され
る。より詳細には、共通擬似変数が全ての等価的な(相
補的な)ゲートペアの両方の要素に対し導入される。
得られた回路中の潜在的に等価的な節点を計算する。 3.潜在的に等価的なゲートの中で本当に等価性のある
ゲートを決定する。二つの回路の間で等価的なゲートは
併合される。 4.前のステップで決定された内部等価性を用いて出力
の等価性を推定する。
検出されたため併合される毎に、これらのゲートは等価
(反転)ゲートとしてマークされる。このようなゲート
には、BDD構築中に擬似変数が導入される。より詳細
には、参考のため引用された米国特許出願第08/85
7,916号及び米国特許第5,649,165号に記
載されているように、このようなゲートのカットセット
が作成される。シミュレーション中に、潜在的に等価的
な節点の個数は非常に少ないことが判定された場合、或
いは、BDDの構築中にBDDの爆発が発生した場合、
BDDサイズが検査され続け得るように付加的な分解点
が導入される。分解点は、参考のため引用された J. Ja
in他による“Decomposition Techniques for Efficient
ROBDD Construction", LNCS, Formal Methods in CAD
96, Spring-Verlag に記載されているような機能的分解
手続を用いて導入され得る。かくして、分解点には、機
能的分解点と、所与の回路のペアの中で等価(反転)で
あると判定された点とが含まれる。
たままに維持される。BDDパッケージ内の合成は、if
-then-else文(ITE)演算を用いて行われる。しか
し、最後のITE(合成)演算は行われず、最後の演算
は以下の通り分解される。Ψh 分割法が呼び出された場
合を想定する。以下の説明におけるシンボルを簡単化す
るため、BDDψh (μj )はBj と表記する。合成の
数学的表現は以下の通りである。
(p1 )を表現し、
両方の分割は機能的に直交している。上記の各分割は独
立した関数であると考えられ、上記の分解及び分割処理
は再び再帰的に実行されるが、F(μi )は、Bh ∧F
h=1 によって置換される。任意の分割、例えば、分割p
1 に対し、BDD Bh ∧Fh=1 が爆発を伴うことなく
計算できるならば、合成された順序付BDD(OBD
D)が作成される。さもなければ、p1 は、BDD B
h とBDD Fh=1 との間の記号論理積によって表現さ
れる。これは、分解分割記号列であり、後続のDYNAMIC
_BDD _PARTITION() の再帰的呼出はこの分解分割記号
列上で作用する。そこで、p1 から得られたOBDD内
の残りのk−h個のBDDψh=1 ,...,ψk 、或い
は、その分割記号列が合成される。
に起因して、分解分割記号列に関して分割法が呼び出さ
れるとき、ψq (μj )のBDDとの記号論理積と、ψ
q (μj )の合成が行われた分解分割記号列(論理積ブ
ール表現)も必要とされる。かくして、分解分割記号列
の長さが成長する。任意の分枝に沿った繰り返しの終了
時に、結果的に生じた分解分割記号列は、BDDのアレ
イ(Ad )の要素として記憶される。このアレイの各要
素は、このアレイの他の全ての要素と直交する。
積は、実際の論理積を実行するのではなく、将来の先の
ある点まで結果を延期する。このため、B1とB2の間
の実際の論理積である新しいBDD B3を作成する代
わりに、記号論理積アレイsymbolic_conjunction _ar
ray A1 が作成される。A1 には、3個の別々の要素:
BDD B1、BDD B2及び論理積演算が含まれ
る。記号論理積アレイA1 は関数を明示的に表現し、こ
の関数f(A1 )は実際にB1とB2の間でAND演算
を実行することにより得られる関数と等価的である。
B2,AND]によって表現された関数と論理積する必
要がある場合、A2 =[B1,B2,B4,AND]で
ある結果を生成する。このように、記号論理積アレイの
長さは成長する。また、記号論理積アレイA1 にGが含
まれる場合、計算結果として記号論理積アレイAnew=
[B1(B1内で合成されたG),B2(B2内で合成
されたG),AND]が得られ、ここで、B1(B1内
で合成されたG)は、BDD B1内でBDDGを合成
することを意味する。
する場合に、分解分割記号列(以下、DPSと略記する
場合がある)に対する手続のフローチャートが示されて
いる。分解分割記号列αは、擬似変数g及びBDD
(g)を含む。ステップ160において、BDD Ba
がBDD(g)と、gが1である場合のDPS αとの
記号論理積に一致するとき(Ba =BDD(g)∧DP
S(α)g=0 )、BDDBa が爆発したかどうかが判定
される。爆発が発生していないとき、DPS α a は、
ステップ161において、BDD Ba と一致するよう
にセットされる(DPS αa =BDD Ba )。爆発
が発生したとき、ステップ162において、DPS α
a は、BDD(g)と、gが1である場合のDPS α
との記号論理積に一致するようセットされる(αa =B
DD(g)∧DPS(α))。DPS αb は、ステッ
プ163、164及び165において、BDD(g)の
代わりに、
びgが1に一致する場合のDPS αとを用いて同様に
決定される。記憶された分解分割記号列は、種々のψq
(μj )と、部分的に合成されたF(μj )と一致する
BDDとの論理積である。関数Fがブールの0に一致す
るとき、このアレイの各要素は全て0でなければならな
い。これは、いずれかの分割が合成されたとき、ブール
の0を結果的に生ずる必要があることを意味する。各分
割はBDDの記号論理積である。そのため、分割p
i は、 pi =f1 ∧f2 ∧...fm ∧Fr のようなm個のBDDの論理積として表現される。各f
i は、合成によって爆発を生じたある分解点のBDDで
ある。Fr は、k個全部のBDDが合成された後に残さ
れるBDDである。
た後、カットセット(μi )が主入力に対応せず、か
つ、検証問題に対する回答が未だ獲得されていない場
合、動的BDD分割手続DYNAMIC _BDD _PARTITION()
が使用され、p1 が別のカットセット(μt )に合成さ
れる。カットセット(μt )はカットセット(μi )と
主入力との間で選定される。この処理は、分解分割記号
列DPS内のすべてのBDDが主入力変数に関して表現
されるまで続けられる。
示されている。同図において、分解分割記号列は存在す
るが、主入力に関して表現されていない。ステップ15
0において、分解点の合成が行われる。ステップ151
では、結果として得られた合成BDDが爆発するかどう
かを判定するため検査される。ステップ151及び15
2においてそれぞれ判定されるように、得られた合成B
DDが爆発せず、BDDが不充分である場合、合成の処
理は他の点に対して繰り返される。BDDが満足できる
場合、比較中の回路は等価的ではない。しかし、BDD
が爆発するとき、2個の分解分割記号列がステップ15
3で作成される。ステップ154において、2個の分解
分割記号列が主入力に関して表現されているかどうかが
判定される。検査によって、主入力に関して表現された
分解分割記号列が何れも0に一致しないことが判明した
場合、比較中のシステムは等価ではない。処理は、全て
の分割が0であると判定されるか、或いは、比較中の回
路が等価であると宣言されるまで繰り返される。
解分割記号列を検査する処理のフローチャートが示され
ている。ステップ170において、分解分割記号列に合
成のスケジュールが立てられる。以下では、多数の適当
なスケジューリング技術が説明されるが、要素の合成順
序をスケジューリングするため何れの技術を使用しても
よい。ステップ171では、分解分割記号列の全ての要
素の検査が終了したかどうかが判定される。未だ終了し
ていない場合、ステップ172において、分解分割記号
列の別の要素が合成のスケジュールに従って合成され
る。合成の結果は、結果が零であるか否かを判定するた
めステップ173において検査される。結果が零である
場合、分解分割記号列によって表現された分割は、ステ
ップ174において零であることが宣言される。分解分
割記号列の全ての要素が合成され、零の結果が得られな
かった場合、分割分解記号列によって表現された分割
は、ステップ175において非零であると宣言される。
る。この判定を行う際に二つの手続が使用される。
ケジューリング手続ルーチンは、ブールAND演算をよ
り高速に計算するような形にBDDを並べる。合成の要
素f 1 , f2 ,...,fm をスケジューリングする方
法を以下に説明する。手続2. LEARNING_METHOD():
分解分割記号列は、分解分割記号列中のBDDのサイ
ズの合計があまり大きくない場合に回路に割り付けられ
る。参考のため引用したMukherjee 他による論文“VERI
FUL: Verification using Functional Learning”,EDA
C 1995及びJ. Jain 他による論文“Advanced Verificat
ion Techniques Based on Learning”,DAC 1995 に記載
されている方法、或いは、米国特許出願第08/85
7,916号明細書に記載された技術は、この分割によ
って表現されるブール関数が0であるか否かを検出する
ため使用される。
たbi と、S={b1 ,b2 ,...,bn }を想定す
る。ここでの目的は、同時に2個ずつ、Sにおいて上記
の如くのBDDの演算を行うことによって既約順序付二
分決定グラフROBDD(f)を計算することである。
以下の全てのスケジューリングスキームは、各ステップ
で、演算結果
DDのBi 及びBj を選択する点で貪欲である。次に、
Bi 及びBj はSから削除され、B(i,j)がSに追
加される。このステップは、|S|=1になるまで繰り
返される。BDDのペアbi 、bj と、ブール演算
最悪ケースのサイズのオーダーは、 O(|bi ||bj |) であることが公知である。したがって、サイズベースの
方式は、結果として得られるBDDができるだけ小さく
なるように2個の最小BDDであるbi 及びbjを選択
する。
Dの順序付けは十分ではない。2個の最小BDDのbi
及びbj が
に大きく、論理積サポート集合を有するBDD bk 及
びbm が選択される場合、更に小さい中間BDDが獲得
される。次のBDDは、演算が実行された後、非常に少
ない余分な変数だけを導入するように選択される。換言
すると、第1のBDD(bi )は最小サポートを有し、
第2のBDD(bj )は、残りの全てのBDDの中で、
第1のBDDからの最小エクストラサポートを有する。
エクストラサポートは、(bi )と比較して、
数である。これは、sup(bi )がbi のサポート集
合を表す場合に、 |sup(bj )−sup(bi )| と一致する。かくして、第1のBDD bi が最小サイ
ズ化BDDであるとき、次のスケジューリング順序が使
用される。
ートを共用するBDDである。 2.第2のBDD bj はbi に関して最小エクストラ
サポートを有するBDDである。 3.集合Sの残りのBDDは、Lsize及びLsup のサイ
ズ及びエクストラサポートによって格付けされる。最小
ランク(サイズ又はエクストラサポート)を有するBD
Dは、リストの前方にある。次に、非常に少数(例えば
3個)のBDDがLsize及びLsup の先頭から選択され
る。bi との陽的AND演算が上記の各BDD上で実行
される。最小サイズを生じるBDDは所望のbj であ
る。
分解表現を作成した後、最終ステップで、
的なROBDDのサイズは一定であるが、中間メモリ必
要量及び合成に要する時間は、分解点が合成される順序
の強関数である。fd に合成され得る候補変数毎に、結
果の合成ROBDDのサイズを評価するコストが割り当
てられる。最小コスト評価の変数が合成される。サポー
ト集合サイズに基づく簡単なコスト関数は、実際上巧く
機能する。したがって、合成後に、ROBDDのサポー
ト集合のサイズの増加が最も小さい分解変数が選択され
る。各ステップで、合成の候補は、他の何れのΨbdd s
の中に現れない上記の分解点に制限される。これは、参
照のため引用した A. Narayan他による“Study ofComp
osition Schemes for Mixed Apply/Compose Based Cons
truction of ROBDDs ”,Intl.Conf. on VLSI Design, J
anuary 1996 に記載されているように分解変数がfd
内で1回だけ合成されればよいことを保証する。
るため直接適用され得る。二つの回路f及びgの夫々の
出力は、単一の回路を得るためXORゲートによって組
み合わされる。分割ROBDDは、得られた回路が充足
しているかどうかを検査するため使用される。これは、
全ての分割に対し、
は、ROBDDを採用する殆どの含意ベースの組合せ検
証方法の最後の過程として容易に使用され得る。かかる
方法は、参考のため引用したJ. Jain 他による“Advanc
ed Verification Techniques Based on Learning”, DA
C, p.420-426, 1995 並びに、S. Reddy他による“Nove
l Verification Framework Combining Structural and
OBDD Methods in a Synthesis Environment ”, DAC,
p.414-419, 1995に記載されている。検証は、いずれか
の窓関数wi において、関数
の分割を処理しなくても終了させることが可能である。
二つの回路を検証する別の方法は、等価性を確率的に検
査することである。このような方法は、参考のため引用
したM. Blum 他による“Equivalance of FreeBoolean G
raphs Can Be Decided Probabilistically in Polynomi
al Time”, Information Processing Letters, 10:80-8
2, March 1980 並びに J. Jain 他による“Probabili
stic Verification of Boolean Functions ”, Formal
Methodsin System Design, 1, July 1992 に記載されて
いる。確率的検証の場合、関数fの極小項毎に、入力変
数へのある種のランダム整数割当てpの下で整数値に変
換される。次に、全ての整数値は、fに対するハッシュ
符号Hp(f)を獲得するため算術的に加算される。無視で
きる誤識別率で、 f≡g iff Hp (f)=Hp (g) が断定される。直和分割の場合、共通の極小項を共有す
る二つの分割は存在しない。したがって、各分割は別々
にハッシュ化することができ、それらのハッシュ符号が
Hp (f)を獲得するため加算される。これは、H
p (f)=Hp (g)であり、f及びgが分割され、か
つ、別々にされているかどうかを検査することを意味す
る。
ない。また、f及びgの両方が同じ窓関数を有する必要
はない。 B. 順序FSM検証 ROBDDを使用する順序回路検証の重要なステップ
は、可到達性解析である。可到達性解析は、一般にモデ
ル検査(Model Checking)と称され、モデル検査手続は、
参考のため引用したK. L. McMillanによる“Symbolic M
odel Checking ”, Klumer Academic Publishers 1993
並びに E. M. Clarke他による“Automatic Verificati
on of Finite-State Concurrent Systems Using Tempor
al Logic Specifications ”, 8 TOPLAS 244-263 (198
6) に記載されている。可到達性解析は、システムが初
期状態から開始して到達し得る状態の集合を計算する。
現在の到達した状態の集合をR(s)、現在の状態変数
sを次の状態変数s’に関係付けるシステムの遷移関係
をT(s,s’)とすると、次の状態の集合N(s’)
は、以下の式:
現在の状態の集合に追加され、上記の計算は定点に到達
するまで繰り返される。この定点はシステムの到達可能
な状態の集合を表現する。殆どの場合に、遷移関係T
(s,s’)を表現するROBDDは非常に大きくな
る。これらの場合を取り扱うことは、個別のラッチの遷
移関係T(s,s’)s2 が(ある種のTi sの可能な
クラスタリングを用いて)別々に表現されている分割遷
移関係において有用である。分割遷移関係の利用は、参
考のため引用したJ. R. Burch 他による“Symbolic Mod
el Checking: 1020 States and Beyond”, Information
and Computation, 98(2):142-170, 1992に記載されて
いる。論理積形及び論理和形の二つのタイプの分割遷移
関係について説明されている。かかる分割において、遷
移関係は、 T(s,s’)=T1 (s,s’)∧...∧T
i (s,s’)∧...∧Tm (s,s’) によって与えられ、各Ti は別個のROBDDとして表
現される。このタイプの分割は論理積形分割既約順序付
二分決定グラフの特殊ケースである。本発明の分割は、
Ti が必ずしも個別のラッチに対応しなくてもよいの
で、非常に汎用的である。また、論理積形分割遷移関係
の有効性は、存在記号が論理積の全体に亘って拡がって
いないので制限される。最悪の場合、全てのTi が現在
の状態変数だけに依存するならば、論理積形分割遷移は
使用できない。
の方が興味深い。本発明によれば、所与のシステムに対
する基本的な遷移モデルに制限を加えることなく遷移関
係を論理和形分割することが可能である。本発明の場
合、
を表現するため使用され得る。次の状態の集合は以下の
式:
i≦kのとき、メモリ内に1個の
記の計算において、fi に対応する窓関数は必要ではな
いことに注意する必要がある。部分検証は、屡々検証不
能になることがある順序回路を検証するために有効であ
る。本発明の方法及びシステムを用いることにより、か
かる順序回路に関する重要な情報が得られる。
決定グラフを用いてもコンパクトに表現できない場合が
ある。このような場合、関数の重要な部分が全体的に構
築される。例えば、256個の分割中の132個を構築
することができる回路によって、プログラム実行が時間
的資源の制約に起因して中止になる前に、真理値表の薬
52%を解析することが可能になる。一方、モノリシッ
ク既約順序付二分決定グラフを使用する場合、プログラ
ム実行は有用な部分的な情報を少しも与えることなく中
止になる。また、シミュレーション技術は、回路又はシ
ステムの所与の関数表現を被覆する際に不適切である。
設計に過誤が多い場合、誤りのある極小項は2個以上の
分割に分布し、数個の分割を処理するだけで検出され得
る可能性が高い。かくして、殆どの場合に、回路又はシ
ステム中の誤りは、1乃至2個の分割を構築することに
より検出され得る。
形、或いは、これらの混合形の信号設計の全ての設計に
適用され得る。一般的に、与えられた回路は、その状態
空間の分割を作成し、分割内の設計の機能性だけを解析
することによって簡単化される。回路は分割ベクトルを
当てはめることにより分割され、設計は各分割ベクトル
毎に検証される。これらのベクトルは、所与の回路又は
システムの入力変数若しくは内部変数での部分割当てで
ある。部分割当てとは、全ての変数ではなく、一部の変
数への割当てを意味する。分割ベクトルは、回路がより
小さい真理値表を有するように回路又はシステムを簡単
化する。かくして、得られた分割システムは、モデル検
査若しくは組合せ検証技術を用いて検証することが容易
になる。
複雑な設計の場合、選択されるベクトルの個数は、サン
プリングが計算資源に関して非常にコスト高にならない
ように充分に減少される。しかし、分割が実行される変
数の個数は充分にあるので、各分割は所与の回路の形式
的な検証が実現できる程度に充分に小さくなる。一例と
して、1000個のフリップフロップと、100個の入
力変数をもち、じゅうらいのBDDベース法を用いて検
証することが非常に困難である順序回路の場合、100
個の分割が20個の変数を用いて形成される。回路は、
回路のブール空間の分割を検査することによって部分的
に検証される。
よる“Partitioned-ROBDDs -- ACompact, Canonical
and Efficiently Manipulable Representation of Bool
eanFuctions ”, ICCAD, November 1996 に記載される
ような冗長性及び平衡性の規準に基づく分割(splittin
g) 変数選択法を用いて自動的に選定してもよい。特
に、R個(例えば、20個)の変数に関する分割を行い
たい場合、分割変数選択法は、所与の順序回路の組合せ
表現に適用され、R個の最良の変数が冗長性及び平衡性
のコスト関数に基づいて自動的に得られる。換言する
と、望ましい個数Z個の分割は、上記のR個の変数上で
Z(但し、Z≦2R )回のブール割当てを(例えば、ラ
ンダムに)生成することによって作成することができ
る。これらのR回の部分割当ては遷移関係の適用毎に繰
り返されるか、又は、Z回の割当ては、所定のR個の変
数に関する異なる若しくはランダムな割当てを生成する
ことによって次の遷移関係の適用中に変更してもよい。
これらのR個の変数は次の遷移関係の適用中に変化して
も構わない。
計を検証するため使用される手動生成されたテストスイ
ートから入力ベクトルを選択してもよい。殆どの設計に
はこのようなテストスイートが設けられる。入力ベクト
ルの部分集合のある種の割当ては、設計に重大であるこ
とが分かっている。しかし、テストスイートは、残りの
割り当てられていない変数の可能性のある全部の組合せ
を含むとは限らないので、一部の変数に対する割当てが
与えられた場合に、設計の正しさを検証できない。本発
明のシステム及び方法は、本明細書中に開示した分割技
術を用いることによってこのような検証が行える。
が直接又は間接に利用される。エンジニア又は設計者の
知識は、設計者のような明示的なガイダンスに従ってテ
ストベクトルを選択することによって直接使用すること
ができる。明示的なガイダンスは、遷移関係の適用若し
くはBDD爆発時にサンプリング陽に使用するベクトル
の選択の形を取る場合がある。設計者はQ個の入力変
数、典型的に検証用のサンプルを作成する制御変数を与
える。ある数Zに対し、所望の個数の分割は、Q個の変
数上でZ(但し、Z≦2Q )回のブール割当てを(例え
ば、ランダムに)生成することによって作成することが
できる。
用してもよい。手動生成された設計用テストスイートは
分割ベクトルを決定するため解析され得る。特に、テス
トスイート内の全てのテストベクトルは、ファイル中に
順序付きの形式で書き込まれ得る。k個の最も一般的な
部分割当てのシーケンスをテストスイート中に使用し、
これらをサンプリングのため利用することができる。こ
の場合、ある“部分割当てのシーケンス”が異なるテス
トベクトルの間で共通している場合、かかるシーケンス
はサンプリング法のための優れた候補である。説明の便
宜上、部分割当てのシーケンスである記号列STRは、
入力変数に割り当てられた入力組合せから得られ、以下
の通り記述されることに注意する必要がある。
とき、 STR = partial _1 <from-time-frame-1>; partial _
2 <from-time-frame-2>; ...; partial _m <from-ti
me-frame-m> 上記のpartial _1 は、(次節で説明するように)回路
を第1の遷移関係の適用に制限するため使用され、part
ial _2 は、第2の遷移関係の適用の際に使用され、以
下同様である。N個のこのような記号列をSTR _1, STR
_2, STR_3, ..., STR _N を集める。個数Nの選定
は、対話的、かつ、所与のシステムの複雑さに完全に依
存してもよい。例えば、1000個のフリップフロップ
をもつ殆どの現在のシステムの場合、Nは5乃至100
の範囲内に収まると考えられる。形式的検証は、各回路
Ci が上記並びに以下に説明する部分割当てを用いて制
限された設計を表す場合に、簡単化された回路C1 ,C
2 ,C3 ,...,CN の集合を検証するN回の異なる
形式的検証をN回別個に実行することにより行われる。
合上の部分割当てだけに含まれる状況では、所与のテス
トスイート内で最も頻繁に現れる変数を見つけることが
できる。P個(例えば、20個)の変数に関する分割が
望まれる場合、テストスイート内でP個の最も共通に出
現する変数が探索される。ある数Zに対し、所望の個数
の分割は、P個の変数上でZ(但し、Z≦2P )回のブ
ール割当てを(例えば、ランダムに)生成することによ
って作成することができる。したがって、ユーザの望み
次第で、選択された“部分割当てのシーケンス”のシー
ケンス長を、kが1でもよい整数を表す場合に、第1の
k個の時間フレームに制限することが可能である。
が屡々行われる。このため、設計の前のテストで誤りを
生じたことが判明したベクトルは適当な分割ベクトルを
形成する。N個のベクトルのシーケンスが以下のように
表される場合を考える。 [V1=0, V2=1]; [V1=0, V3=1]; [V3=1; V4=1]; ...;[ N番目のシーケンス] また、順序回路Mは数個の同一の組合せ回路Cの連結で
ある場合を想定する。
態変数を回路Cの現在の状態変数に接続することによっ
て行われることは公知である。すなわち、順序回路M
は、各Ci が同一の組合せ回路のコピーを表すとき、 M = C1 <connected-to> C2 <connected-to> C3 ... のように表現される。かくして、時間フレーム3の回路
は回路C3 として参照される。
に、V1 =0、V2 =1と設定することにより、所与の
設計を初期的に制限する。このように制限された場合、
遷移関係の適用後に、ある状態S1 に到達する。状態S
1 に到達後、V1 =0、V3=1が設定され、遷移関係
が適用されて状態S2 に到達する。状態S2 に到達した
後、V2 =1、V1 =1が設定され、状態S3 に到達す
るように遷移関係が適用される。この手続は状態Sn に
到達するまで繰り返される。かくして、状態がSN によ
って獲得される状態に対し、システムの全特性が検証で
きる。
空間Si を表現するBDDが爆発した場合、このBDD
は、手動(対話的)により多くの入力変数に値を与える
(拘束する)ことによって、或いは、到達した状態空間
の一部を放棄することによって分割される。このような
分割後に、BDDベース解析をこれ以上続けられない、
或いは、固定点に到達したという理由のため計算を終了
する決定がなされるまで到達性解析が続けられる。
制限された一部だけを検証することによって、非常に大
きい空間状態の中のより大きい部分が処理される。分割
既約順序付二分決定グラフは、空間的/時間的資源、す
なわち、機能性被覆に顕著な制御性が得られる。かくし
て、検証実験の成功は、分解のパラメータ及び作成され
るべき分割の個数を変更することによって保証され得
る。
7,916号明細書に記載されたフィルターアプローチ
にも適用される。フィルタアプローチは、回路又はシス
テムを検証するため通信試験/検証技術の組合せを利用
する。本質的に、より簡単かつ高速である技術の方が回
路を検証又は変更するため最初に使用される。簡単かつ
高速である技術の方がこの回路を検証できない場合、こ
の技術の適用結果がより複雑かつコスト高である検証技
術に渡される。最も巧妙な技術とは、充分な時間及びメ
モりが与えられた場合に、他の検証技術の助けを借りる
ことなく回路を検証することができる技術である。この
ような枠組みにおいて、本発明の分割二分決定グラフ技
術はコア技術である。
ジの並列実装 本発明のシステム及び方法は、既約順序付二分決定グラ
フを構築するため必要とされる資源を超1次的(若しく
は指数関数的)に減少させる。また、各分割は独立であ
り、極小の計算オーバーヘッドで異なるプロセッサ上に
スケジューリングすることができる。各分割は別々に順
序付けられ、動的再配列の全能力を利用することができ
る。
ールの回路及びシステムの検証の際に多数の零点が得ら
れる。従来検証できなかった多数の回路及びシステムの
等価性を検査することができる。上記の通り、幾つかの
特定の実施例を参照して本発明の説明を行ったが、当業
者は種々の付加的な変形及び変更をなし得ることは明ら
かである。そこで、本発明は実施例に記載された態様以
外の態様でも実施できることに注意する必要がある。し
たがって、本発明の実施例は全ての点に関して制限では
なく例示であり、本発明の範囲は上記実施例の説明では
なく特許請求の範囲の記載によって示されるていると考
えられるべきである。
理設計図である。
グラフである。
理設計図である。
る二分決定グラフである。
る二分決定グラフである。
る二分決定グラフである。
る二分決定グラフである。
グラフである。
グラフである。
ャートである。
チャートである。
ラフの爆発を判定する技術を説明するフローチャートで
ある。
説明するフローチャートである。
フローチャートである。
るフローチャートである。
演算を実行した後、正及び負の余因子は異なる窓関数
題は定量化されるべき変数に依存しない窓関数を選択し
た場合には生じない。存在記号化は以下の通り行われ
る。Xf ={(wi ,fi )|1≦i≦k}が、1≦i
≦kに対し、∃x wi =wiとなるようなfの分割既約
順序付二分決定グラフであるとするならば、 X∃x f={(wi ,∃x fi )|1≦i≦k} は、∃x fの分割既約順序付二分決定グラフ表現形式で
ある。
に、V1 =0、V2 =1と設定することにより、所与の
設計を初期的に制限する。このように制限された場合、
遷移関係の適用後に、ある状態S1 に到達する。状態S
1 に到達後、V 1=0、V3=1が設定され、遷移関係
が適用されて状態S2 に到達する。状態S2 に到達した
後、V3 =1、V4 =1が設定され、状態S3 に到達す
るように遷移関係が適用される。この手続は状態Sn に
到達するまで繰り返される。かくして、状態がSN によ
って獲得される状態に対し、システムの全特性が検証で
きる。
Claims (36)
- 【請求項1】 対応した共通主入力及び対応した共通主
出力の集合を備えた第1の回路及び第2の回路が等価で
あるかどうかを判定するコンピュータで実現される方法
において、 上記第1の回路を第1のブール関数として表現し、 上記第2の回路を第2のブール関数として表現し、 上記第1のブール関数と上記第2のブール関数の対応し
た主出力を排他的論理和することによりブール空間を表
現し、 上記ブール空間に対し、分解された第1の二分決定グラ
フを構築し、 分解点の合成中に合成によって得られた二分決定グラフ
がコンピュータメモリ使用量に関する所定の制約を超え
たとき、上記ブール空間を第1の分割及び第2の分割に
分割し、 上記第1の分割を複数の第1の分割部分に分割し、 上記第1の分割部分毎に、メモリ使用量に関する所定の
制約を超えない限り二分決定グラフを構築し、 上記メモリ使用量に関する所定の制約を超えた少なくと
も1個の上記第1の分割部分に対する要素を有する分解
された分割記号列を構築し、 要素の合成が零になるまで上記要素をスケジューリング
された順番に合成することを特徴とする方法。 - 【請求項2】 二分決定グラフが構築された少なくとも
1個の上記第1の分割部分は第1の主入力の順序を有
し、 二分決定グラフが構築された少なくとも1個の別の第1
の分割部分は第2の主入力の順序を有する、請求項1記
載の方法。 - 【請求項3】 二分決定グラフが構築された少なくとも
1個の上記第1の分割部分は第1のプロセッサによって
構築され、 二分決定グラフが構築された少なくとも1個の別の第1
の分割部分は第2のプロセッサによって構築される、請
求項2記載の方法。 - 【請求項4】 二分決定グラフが構築された少なくとも
1個の上記第1の分割部分、及び、二分決定グラフが構
築された少なくとも1個の別の第1の分割部分は、上記
第1のプロセッサ及び上記第2のプロセッサによって並
行に構築される、請求項3記載の方法。 - 【請求項5】 上記メモリ使用量に関する所定の制約は
コンピュータに利用可能なメモリの量を定数値で分割す
ることにより決定される、請求項2記載の方法。 - 【請求項6】 上記メモリ使用量に関する所定の制約
は、前の二分決定グラフのサイズを定数値で乗算するこ
とにより決定される、請求項2記載の方法。 - 【請求項7】 上記スケジューリングされた順番は、多
数の要素を合成する前に、より少ない数の要素をスケジ
ューリングする、請求項1記載の方法。 - 【請求項8】 上記スケジューリングされた順番は、最
小の共通サポートをもつ要素を合成する前に、最大の共
通サポートをもつ要素をスケジューリングする、請求項
1記載の方法。 - 【請求項9】 論理ゲートのトポロジーと、対応した主
入力及び対応した主出力とを有する、予備的ディジタル
設計と最終的ディジタル設計を検証する方法において、 論理ゲートのトポロジーを有するモノリシック回路を形
成するため、上記予備的ディジタル設計及び上記最終的
ディジタル設計の上記対応した主出力を排他的論理和
し、 上記論理ゲートのトポロジー内の点に対する決定グラフ
を順番に構築し、 上記決定グラフのサイズがプリセット限界を超えたと
き、上記トポロジー内の点に対する決定グラフの構築を
停止し該点を分解点としてマークし、 決定グラフのサイズがプリセット限界を超えたために構
築されなかった決定グラフの代わりに擬似変数を使用
し、 上記モノリシック回路の出力を決定グラフ内の少なくと
も1個の擬似変数に関して表現し、 上記擬似変数の合成処理中に上記決定グラフを第1の分
割及び第2の分割に分割し、 上記第1の分割又は上記第2の分割がいずれも零に既約
しないことを判定することを特徴とする方法。 - 【請求項10】 上記モノリシック回路の出力は決定グ
ラフの複数の擬似変数に関して表現される、請求項9記
載の方法。 - 【請求項11】 上記擬似変数の合成処理中に上記決定
グラフを更なる分割に分割する、請求項10記載の方
法。 - 【請求項12】 上記第1の分割は少なくとも1個の分
解点を含む、請求項9記載の方法。 - 【請求項13】 上記第1の分割は上記少なくとも1個
の分解点に関して第3の分割及び第4の分割に分割され
る、請求項12記載の方法。 - 【請求項14】 ディジタルシステムを評価する方法に
おいて、 上記ディジタルシステムをブール関数を形成するブール
関数として表現し、 上記ブール空間を第1の分割及び第2の分割に分割し、 要素を含み、上記第1の分割を表現する分解された分割
記号列を形成する段階を有することを特徴とする方法。 - 【請求項15】 上記分解された分割記号列の要素をス
ケジューリングされた順番に順序付ける段階を更に有す
る請求項14記載の方法。 - 【請求項16】 合成された上記要素が零に評価される
かどうかを判定する段階を更に有する請求項15記載の
方法。 - 【請求項17】 上記要素はサイズによって順序付けら
れる請求項16記載の方法。 - 【請求項18】 上記要素はエクストラサポートによっ
て順序付けられる請求項16記載の方法。 - 【請求項19】 上記要素はサイズ及びエクストラサポ
ートによって順序付けられる請求項16記載の方法。 - 【請求項20】 上記要素は最小サイズ及び最大エクス
トラサポートによって順序付けられる請求項19記載の
方法。 - 【請求項21】 上記合成された要素が各合成後に零に
評価されるかどうかを判定する段階を更に有する請求項
20記載の方法。 - 【請求項22】 値を割当て可能であり、可変値が割り
当てられたときに入力ベクトルを形成する主入力を有す
る組合せ回路を検証するコンピュータで実現される方法
において、 上記組合せ回路のブール空間表現を、共通入力ベクトル
を共用しない複数の窓に分割し、 検証結果が得られるか又はコンピュータメモリ使用量に
関する所定の制約の集合を超えるまで検証結果を判定す
るため、各窓上で順序付二分決定グラフベースの検証技
術を実行し、 上記コンピュータメモリ使用量に関する所定の制約が超
えられた各窓に対し、要素の合成よりなる分解された分
割記号列を形成し、 上記要素をスケジューリングされた順序で合成し、各合
成後に上記分解された分割記号列が零であるかどうかを
判定することを特徴とする方法。 - 【請求項23】 ディジタルシステムを評価する方法に
おいて、 ブール空間を形成するブール関数として上記ディジタル
システムを表現し、 上記ブール空間を分割に再帰的に分割し、 要素を含み、少なくとも1個の分割を表現する分解され
た分割記号列を形成する段階を有することを特徴とする
方法。 - 【請求項24】 分解された分割記号列によって表現さ
れない少なくとも1個の分割上で順序付二分決定グラフ
ベースの検証技術を実行する段階を更に有する請求項2
3記載の方法。 - 【請求項25】 上記分解された分割記号列の要素をス
ケジューリングされた順序で順番に合成する段階を更に
有する請求項23記載の方法。 - 【請求項26】 上記順序付二分決定グラフベースの検
証技術は、分解された分割記号列によって表現されない
複数の分割上で実行される請求項24記載の方法。 - 【請求項27】 上記分解された分割記号列の要素をス
ケジューリングされた順序で順番に合成し得られた合成
が零であるかどうかを判定する段階を更に有する請求項
26記載の方法。 - 【請求項28】 ディジタル回路を評価するシステムに
おいて、 ブール空間を表現するブール関数として上記ディジタル
回路を表現する手段と、 上記ブール空間を第1の分割及び第2の分割に分割する
手段と、 要素を含み、上記第1の分割を表現する分解された分割
記号列を形成する手段とを含むことを特徴とするシステ
ム。 - 【請求項29】 上記分解された分割記号列の上記要素
をスケジューリングされた順序で順序付ける手段と、 上記要素を上記スケジューリングされた順序で合成する
手段とを更に有する請求項28記載のシステム。 - 【請求項30】 上記合成された要素が零に評価される
かどうかを判定する手段を更に有する請求項29記載の
システム。 - 【請求項31】 対応した共通主入力及び対応した共通
主出力の集合を備えた第1の回路及び第2の回路が等価
であるかどうかを判定するコンピュータシステムにおい
て、 上記第1の回路を第1のブール関数として表現する手段
と、 上記第2の回路を第2のブール関数として表現する手段
と、 上記第1のブール関数と上記第2のブール関数の対応し
た主出力を排他的論理和することによりブール空間を表
現する手段と、 上記ブール空間に対し分解された第1の二分決定グラフ
を構築する手段と、 分解点の合成中に合成によって得られた二分決定グラフ
がコンピュータメモリ使用量に関する所定の制約を超え
たとき、上記ブール空間を複数の分割に再帰的に分割す
る手段と、 上記複数の分割が零であるかどうかを判定する手段とを
含むことを特徴とするコンピュータシステム。 - 【請求項32】 上記複数の分割が零であるかどうかを
判定する手段は、複数のプロセッサを含む請求項31記
載のコンピュータシステム。 - 【請求項33】 上記複数のプロセッサは、上記複数の
分割の中の別々の分割部分が零であるかどうかを並行し
て判定する請求項32記載のコンピュータシステム。 - 【請求項34】 設計に関して回路を評価する方法にお
いて、 テストスイートの入力ベクトルの解析により分割ベクト
ルの集合を形成し、 上記分割ベクトルの集合を用いて上記回路の状態空間を
複数の分割に分割し、 上記分割を評価する方法。 - 【請求項35】 上記分割ベクトルの集合を形成する段
階は、 上記テストスイートの中で最も共通した主入力割当ての
集合を判定し、 上記分割ベクトルの集合を形成するため、上記最も共通
した主入力割当てを使用する、請求項34記載の方法。 - 【請求項36】 設計に関して回路を評価する方法にお
いて、 上記回路の状態空間を複数の分割に分割し、 最終的二分決定グラフに先行する中間二分決定グラフを
構築することにより各分割毎に二分決定グラフを構築
し、 所定のメモリ制約を超えた中間二分決定グラフを零終端
頂点と置換し、 少なくとも1個の分割に対する二分決定グラフを評価す
る、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/964,904 US6212669B1 (en) | 1997-11-05 | 1997-11-05 | Method for verifying and representing hardware by decomposition and partitioning |
US964904 | 1997-11-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11219378A true JPH11219378A (ja) | 1999-08-10 |
JP4028107B2 JP4028107B2 (ja) | 2007-12-26 |
Family
ID=25509142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31376898A Expired - Fee Related JP4028107B2 (ja) | 1997-11-05 | 1998-11-04 | 分解及び分割によるハードウェアの検証並びに表現方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US6212669B1 (ja) |
EP (1) | EP0917073B1 (ja) |
JP (1) | JP4028107B2 (ja) |
DE (1) | DE69838835T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008117398A (ja) * | 2006-10-31 | 2008-05-22 | Fujitsu Ltd | 選言的遷移関係分解に基づく検証 |
JP2013069293A (ja) * | 2011-09-23 | 2013-04-18 | Fujitsu Ltd | ハッシュ技法を使用した医療向け二分決定図におけるデータ破壊の検出 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212669B1 (en) | 1997-11-05 | 2001-04-03 | Fujitsu Limited | Method for verifying and representing hardware by decomposition and partitioning |
US6389374B1 (en) * | 1998-06-03 | 2002-05-14 | Fujitsu Limited | OBDD variable ordering using sampling based schemes |
US6360352B2 (en) * | 1998-07-17 | 2002-03-19 | David E. Wallace | Digital circuit layout techniques |
US6473885B1 (en) * | 1998-07-17 | 2002-10-29 | Mentor Graphics Corporation | Digital circuit layout techniques using circuit decomposition and pin swapping |
US6532440B1 (en) * | 1998-10-16 | 2003-03-11 | Fujitsu Limited | Multiple error and fault diagnosis based on Xlists |
US6397370B1 (en) * | 1998-12-18 | 2002-05-28 | Candence Design Systems, Inc. | Method and system for breaking complex Boolean networks |
US6408424B1 (en) * | 1999-06-04 | 2002-06-18 | Fujitsu Limited | Verification of sequential circuits with same state encoding |
US6484134B1 (en) * | 1999-06-20 | 2002-11-19 | Intel Corporation | Property coverage in formal verification |
GB2398901A (en) * | 1999-06-20 | 2004-09-01 | Intel Corp | Coverage measurement of a formal verification property in which covered states cause the property to fail if the value of an observed signal is changed |
US6959272B2 (en) * | 1999-07-23 | 2005-10-25 | Synopsys, Inc. | Method and system for generating an ATPG model of a memory from behavioral descriptions |
US6519660B1 (en) * | 1999-09-28 | 2003-02-11 | International Business Machines Corporation | Method, system and program products for determining I/O configuration entropy |
US6986137B1 (en) * | 1999-09-28 | 2006-01-10 | International Business Machines Corporation | Method, system and program products for managing logical processors of a computing environment |
US6745160B1 (en) * | 1999-10-08 | 2004-06-01 | Nec Corporation | Verification of scheduling in the presence of loops using uninterpreted symbolic simulation |
US6536016B1 (en) * | 2000-07-27 | 2003-03-18 | Lsi Logic Corporation | Method and apparatus for locating constants in combinational circuits |
US6643827B1 (en) * | 2000-09-30 | 2003-11-04 | Intel Corporation | Symbolic model checking with dynamic model pruning |
US6587990B1 (en) * | 2000-10-01 | 2003-07-01 | Lsi Logic Corporation | Method and apparatus for formula area and delay minimization |
US6820244B2 (en) * | 2001-02-09 | 2004-11-16 | Sri International | Methods for testing and programming nanoscale electronic devices |
US6938223B2 (en) * | 2001-02-15 | 2005-08-30 | Zenasis Technologies, Inc. | Logic circuit having a functionally redundant transistor network |
US6567959B2 (en) * | 2001-03-30 | 2003-05-20 | Intel Corporation | Method and device for verification of VLSI designs |
US6912700B1 (en) * | 2001-06-06 | 2005-06-28 | The United States Of America As Represented By The National Security Agency | Method and system for non-linear state based satisfiability |
US7110525B1 (en) | 2001-06-25 | 2006-09-19 | Toby Heller | Agent training sensitive call routing system |
US6609234B2 (en) * | 2001-06-29 | 2003-08-19 | Intel Corporation | Ordering binary decision diagrams used in the formal equivalence verification of digital designs |
CA2355974C (en) * | 2001-08-24 | 2004-07-13 | Wayne Biao Liu | Space reduction in compositional state systems |
US6698003B2 (en) * | 2001-12-06 | 2004-02-24 | International Business Machines Corporation | Framework for multiple-engine based verification tools for integrated circuits |
US20030115559A1 (en) * | 2001-12-13 | 2003-06-19 | International Business Machines Corporation | Hardware validation through binary decision diagrams including functions and equalities |
US6668362B1 (en) * | 2002-01-09 | 2003-12-23 | Synopsys, Inc. | Hierarchical verification for equivalence checking of designs |
US6701499B2 (en) * | 2002-06-13 | 2004-03-02 | Lsi Logic Corporation | Effective approximated calculation of smooth functions |
US8214421B2 (en) * | 2002-06-17 | 2012-07-03 | Ibm International Group Bv | Conformance testing without reference implementation of an XML standard |
US7058910B2 (en) * | 2002-06-27 | 2006-06-06 | The United States Of America As Represented By The Secretary Of The Navy | Invariant checking method and apparatus using binary decision diagrams in combination with constraint solvers |
US6792581B2 (en) * | 2002-11-07 | 2004-09-14 | Intel Corporation | Method and apparatus for cut-point frontier selection and for counter-example generation in formal equivalence verification |
US6904578B2 (en) * | 2002-11-13 | 2005-06-07 | Fujitsu Limited | System and method for verifying a plurality of states associated with a target circuit |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US7111270B2 (en) * | 2003-02-26 | 2006-09-19 | Intel Corporation | Method and apparatus to adaptively validate a physical net routing topology of a substrate design |
US7139929B2 (en) * | 2003-04-01 | 2006-11-21 | Fujitsu Limited | Generating a test environment for validating a network design |
US6877141B2 (en) * | 2003-04-01 | 2005-04-05 | Fujitsu Limited | Evaluating a validation vector for validating a network design |
US7168014B2 (en) * | 2003-04-01 | 2007-01-23 | Fujitsu Limited | Propagating an error through a network |
US7047510B1 (en) * | 2003-04-23 | 2006-05-16 | Cadence Design Systems, Inc. | Method and system for partitioning an integrated circuit design |
US7444274B1 (en) | 2003-04-23 | 2008-10-28 | Cadence Design Systems, Inc. | Method and system for verifying circuit designs through propagation of assertions |
US7571403B2 (en) * | 2003-05-23 | 2009-08-04 | Fujitsu Limited | Circuit verification |
US20050060790A1 (en) * | 2003-09-24 | 2005-03-24 | Chang Cho | Three position headpiece |
US7844924B2 (en) * | 2003-11-19 | 2010-11-30 | Kitakyushu Foundation For The Advancement Of Industry, Science And Technology | Device for reducing the width of graph and a method to reduce the width of graph, and a device for logic synthesis and a method for logic synthesis |
US7281225B2 (en) * | 2003-11-20 | 2007-10-09 | Fujitsu Limited | Circuit verification using multiple engines |
US7231615B2 (en) * | 2003-12-08 | 2007-06-12 | Cadence Design Systems, Inc. | Methods and apparatus for transforming sequential logic designs into equivalent combinational logic |
US7093218B2 (en) * | 2004-02-19 | 2006-08-15 | International Business Machines Corporation | Incremental, assertion-based design verification |
US7231619B1 (en) * | 2004-03-03 | 2007-06-12 | Marvell Semiconductor Israel Ltd. | Extended model checking hardware verification |
US7275224B2 (en) * | 2004-04-02 | 2007-09-25 | International Business Machines Corporation | Method for providing an area optimized binary orthogonality checker |
US7146589B1 (en) * | 2004-08-23 | 2006-12-05 | Synplicity, Inc. | Reducing equivalence checking complexity using inverse function |
US20060058989A1 (en) * | 2004-09-13 | 2006-03-16 | International Business Machines Corporation | Symbolic model checking of generally asynchronous hardware |
US7322016B2 (en) * | 2005-01-11 | 2008-01-22 | International Business Machines Corporation | Impact checking technique |
US7143374B1 (en) * | 2005-03-01 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | System and method for achieving analysis capacity for circuit analysis tools |
US7506278B1 (en) | 2005-03-08 | 2009-03-17 | Xilinx, Inc. | Method and apparatus for improving multiplexer implementation on integrated circuits |
US7818793B2 (en) * | 2005-03-23 | 2010-10-19 | The Board Of Regents, University Of Texas System | System and method of firewall design utilizing decision diagrams |
US7343573B2 (en) | 2005-06-02 | 2008-03-11 | International Business Machines Corporation | Method and system for enhanced verification through binary decision diagram-based target decomposition |
US7350169B2 (en) * | 2005-06-02 | 2008-03-25 | International Business Machines Corporation | Method and system for enhanced verification through structural target decomposition |
US7454738B2 (en) * | 2005-06-10 | 2008-11-18 | Purdue Research Foundation | Synthesis approach for active leakage power reduction using dynamic supply gating |
US7302655B2 (en) * | 2005-06-14 | 2007-11-27 | National Tsing Hua University | Method for verifying a circuit design by assigning numerical values to inputs of the circuit design |
US7340704B2 (en) * | 2005-06-23 | 2008-03-04 | International Business Machines Corporation | Method and system for optimized automated case-splitting via constraints in a symbolic simulation framework |
US7509597B1 (en) * | 2005-06-30 | 2009-03-24 | Altera Corporation | Method and apparatus for performing post-placement functional decomposition on field programmable gate arrays using binary decision diagrams |
US7693690B2 (en) * | 2005-08-09 | 2010-04-06 | Nec Laboratories America, Inc. | Disjunctive image computation for sequential systems |
US7555733B1 (en) * | 2005-09-18 | 2009-06-30 | Infinisim, Inc. | Hierarchical partitioning |
US7890896B2 (en) * | 2005-11-18 | 2011-02-15 | Synopsys, Inc. | Method and apparatus for distinguishing combinational designs |
US7877711B2 (en) * | 2006-03-01 | 2011-01-25 | Nangate A/S | Methods of deriving switch networks |
US7650579B2 (en) * | 2006-05-25 | 2010-01-19 | Freescale Semiconductor, Inc. | Model correspondence method and device |
US8171438B2 (en) * | 2006-08-25 | 2012-05-01 | International Business Machines Corporation | Verification of a program partitioned according to the control flow information of the program |
US7448008B2 (en) * | 2006-08-29 | 2008-11-04 | International Business Machines Corporation | Method, system, and program product for automated verification of gating logic using formal verification |
JP4241802B2 (ja) * | 2006-10-27 | 2009-03-18 | 株式会社東芝 | 部品配置支援装置、方法およびプログラム |
US7882473B2 (en) | 2007-11-27 | 2011-02-01 | International Business Machines Corporation | Sequential equivalence checking for asynchronous verification |
US8214780B2 (en) * | 2008-08-27 | 2012-07-03 | Intel Corporation | Optimization of verification of chip design |
US8195439B1 (en) | 2008-09-02 | 2012-06-05 | Infinisim, Inc. | Real-time adaptive circuit simulation |
US8862439B1 (en) * | 2009-06-25 | 2014-10-14 | Cadence Design Systems, Inc. | General numeric backtracking algorithm for solving satifiability problems to verify functionality of circuits and software |
US9075908B2 (en) * | 2011-09-23 | 2015-07-07 | Fujitsu Limited | Partitioning medical binary decision diagrams for size optimization |
US9177247B2 (en) * | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US20130290919A1 (en) * | 2012-04-27 | 2013-10-31 | Synopsys, Inc. | Selective execution for partitioned parallel simulations |
US9275012B2 (en) | 2013-06-11 | 2016-03-01 | International Business Machines Corporation | Multi-way number partitioning using weakest link optimality |
CN107809235B (zh) * | 2017-10-18 | 2021-03-26 | 浙江万里学院 | 用于转换规范rm逻辑电路的方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5243538B1 (en) | 1989-08-09 | 1995-11-07 | Hitachi Ltd | Comparison and verification system for logic circuits and method thereof |
US5128871A (en) * | 1990-03-07 | 1992-07-07 | Advanced Micro Devices, Inc. | Apparatus and method for allocation of resoures in programmable logic devices |
US5555201A (en) * | 1990-04-06 | 1996-09-10 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information |
US5598344A (en) * | 1990-04-06 | 1997-01-28 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
US5377201A (en) | 1991-06-18 | 1994-12-27 | Nec Research Institute, Inc. | Transitive closure based process for generating test vectors for VLSI circuit |
US5349659A (en) | 1992-01-23 | 1994-09-20 | Cadence Design Systems, Inc. | Hierarchical ordering of logical elements in the canonical mapping of net lists |
US5528508A (en) | 1993-02-19 | 1996-06-18 | International Business Machines Corporation | System and method for verifying a hierarchical circuit design |
US5497334A (en) | 1993-02-19 | 1996-03-05 | International Business Machines Corporation | Application generator for use in verifying a hierarchical circuit design |
US5481473A (en) | 1993-02-19 | 1996-01-02 | International Business Machines Corporation | System and method for building interconnections in a hierarchical circuit design |
US5522063A (en) | 1993-09-27 | 1996-05-28 | Nec Usa, Inc. | Method of finding minimum-cost feedback-vertex sets for a graph for partial scan testing without exhaustive cycle enumeration |
US5485471A (en) | 1993-10-15 | 1996-01-16 | Mitsubishi Electric Research Laboratories, Inc. | System for testing of digital integrated circuits |
US5469367A (en) * | 1994-06-06 | 1995-11-21 | University Technologies International Inc. | Methodology and apparatus for modular partitioning for the machine design of asynchronous circuits |
US5526514A (en) | 1994-06-21 | 1996-06-11 | Pradhan; Dhiraj | Method for circuit verification and multi-level circuit optimization based on structural implications |
DE4423367A1 (de) | 1994-07-04 | 1996-07-25 | Siemens Ag | Verfahren zur hierarchischen Logik-Verifikation hochintegrierter Schaltungen |
US5649165A (en) * | 1995-01-31 | 1997-07-15 | Fujitsu Limited | Topology-based computer-aided design system for digital circuits and method thereof |
JPH096821A (ja) | 1995-04-21 | 1997-01-10 | Hitachi Ltd | 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法 |
US5805462A (en) * | 1995-08-18 | 1998-09-08 | Vlsi Technology, Inc. | Automatic synthesis of integrated circuits employing boolean decomposition |
US5680332A (en) * | 1995-10-30 | 1997-10-21 | Motorola, Inc. | Measurement of digital circuit simulation test coverage utilizing BDDs and state bins |
US5787006A (en) | 1996-04-30 | 1998-07-28 | Micron Technology, Inc. | Apparatus and method for management of integrated circuit layout verification processes |
US6086626A (en) * | 1997-05-16 | 2000-07-11 | Fijutsu Limited | Method for verification of combinational circuits using a filtering oriented approach |
US6212669B1 (en) | 1997-11-05 | 2001-04-03 | Fujitsu Limited | Method for verifying and representing hardware by decomposition and partitioning |
US6026222A (en) * | 1997-12-23 | 2000-02-15 | Nec Usa, Inc. | System for combinational equivalence checking |
-
1997
- 1997-11-05 US US08/964,904 patent/US6212669B1/en not_active Expired - Lifetime
-
1998
- 1998-10-28 DE DE69838835T patent/DE69838835T2/de not_active Expired - Lifetime
- 1998-10-28 EP EP98308814A patent/EP0917073B1/en not_active Expired - Lifetime
- 1998-11-04 JP JP31376898A patent/JP4028107B2/ja not_active Expired - Fee Related
-
2000
- 2000-11-09 US US09/709,680 patent/US6560758B1/en not_active Expired - Fee Related
-
2003
- 2003-05-05 US US10/430,901 patent/US7028278B2/en not_active Expired - Fee Related
-
2006
- 2006-02-13 US US11/352,852 patent/US7673263B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008117398A (ja) * | 2006-10-31 | 2008-05-22 | Fujitsu Ltd | 選言的遷移関係分解に基づく検証 |
JP2013069293A (ja) * | 2011-09-23 | 2013-04-18 | Fujitsu Ltd | ハッシュ技法を使用した医療向け二分決定図におけるデータ破壊の検出 |
Also Published As
Publication number | Publication date |
---|---|
US6560758B1 (en) | 2003-05-06 |
US7673263B2 (en) | 2010-03-02 |
JP4028107B2 (ja) | 2007-12-26 |
DE69838835D1 (de) | 2008-01-24 |
US6212669B1 (en) | 2001-04-03 |
EP0917073A3 (en) | 2003-06-04 |
US20040015799A1 (en) | 2004-01-22 |
EP0917073A2 (en) | 1999-05-19 |
EP0917073B1 (en) | 2007-12-12 |
DE69838835T2 (de) | 2008-11-27 |
US20060129953A1 (en) | 2006-06-15 |
US7028278B2 (en) | 2006-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4028107B2 (ja) | 分解及び分割によるハードウェアの検証並びに表現方法 | |
JP3441645B2 (ja) | フィルタリング型アプローチを使用する組合せ回路の検証方法 | |
US6957404B2 (en) | Model checking with layered localization reduction | |
Minato | Zero-suppressed BDDs and their applications | |
US7280993B2 (en) | Reachability-based verification of a circuit using one or more multiply rooted binary decision diagrams | |
US8418101B1 (en) | Temporal decomposition for design and verification | |
Akutsu et al. | Finding a periodic attractor of a Boolean network | |
JP2009505227A (ja) | 順序システムのための離接イメージ計算 | |
US7475371B2 (en) | Method and system for case-splitting on nodes in a symbolic simulation framework | |
JP2000181939A (ja) | 論理装置の検証方法、検証装置及び記録媒体 | |
Riener et al. | Boolean rewriting strikes back: Reconvergence-driven windowing meets resynthesis | |
Touati et al. | Testing language containment for ω-automata using BDDs | |
JP2001022820A (ja) | 順序回路の検証方法 | |
US7308657B2 (en) | Method for generating hints for program analysis | |
Nagayama et al. | Minimization of average path length in BDDs by variable reordering | |
Lyu | Improved pseudorandom generators for AC⁰ circuits | |
Tahar et al. | Three approaches to hardware verification: HOL, MDG, and VIS compared | |
Bayless | SAT modulo monotonic theories | |
Pinho | A Two level approximate logic synthesis method based on insertion and removal of cubes | |
Bathla et al. | A Memory Constrained Approximate Bayesian Inference Approach Using Incremental Construction of Clique Trees | |
JP3582849B2 (ja) | 論理型プログラム検証方法 | |
Tabajara | Synthesis of boolean functions through binary decision diagrams | |
JP2001056828A (ja) | 定義集合解析方法 | |
Mendias et al. | Efficient verification of scheduling, allocation and binding in high-level synthesis | |
Meinel et al. | Data Structures for Boolean Functions BDDs—Foundations and Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041216 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050425 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050517 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050819 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071011 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
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: 20101019 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121019 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121019 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131019 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |