JP4028107B2 - 分解及び分割によるハードウェアの検証並びに表現方法 - Google Patents
分解及び分割によるハードウェアの検証並びに表現方法 Download PDFInfo
- Publication number
- JP4028107B2 JP4028107B2 JP31376898A JP31376898A JP4028107B2 JP 4028107 B2 JP4028107 B2 JP 4028107B2 JP 31376898 A JP31376898 A JP 31376898A JP 31376898 A JP31376898 A JP 31376898A JP 4028107 B2 JP4028107 B2 JP 4028107B2
- Authority
- JP
- Japan
- Prior art keywords
- binary decision
- bdd
- decision graph
- boolean
- circuit
- 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 - Fee Related
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)
- Design And Manufacture Of Integrated Circuits (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、一般的にコンピュータ支援設計(CAD)システム及び方法に係わり、特に、ディジタル回路の設計並びに検証用のコンピュータ支援設計システム及び方法に関する。
【0002】
【従来の技術】
ディジタル回路及び他の複雑なディジタルシステムのコンピュータ支援設計は広く普及している。コンピュータ支援設計において、回路及びシステムは、通常、階層的な形で設計される。回路又はシステムの要求条件は回路又はシステムの抽象モデルに定義される。抽象モデルは、次に多数の中間段階に変換される。中間段階には、屡々、ブロック構造行動設計を表現するレジスタ・トランスファ・レベル・モデルと、システムの論理レベル記述である構造モデルとが含まれる。最終的に、トランジスタ網リスト、並びに、回路又はシステムの物理配置が得られる。
【0003】
回路又はシステムの設計は、概括的な要求条件レベルから下位の詳細な物理設計レベルまで進められ、その間に多数の中間段階が介在する。一連の各設計レベルは、回路又はシステムが設計要求条件に一致し続けていることを保証するため試験或いは検証される。ある設計レベルの誤りが別の設計レベルが終わるまで訂正されない場合、このような誤りを訂正するために要するコストは著しく増加するので、設計レベル毎に検証することが非常に望ましい。そのため、各設計レベルを要求条件に対して試験することが重要である。各設計レベルが要求条件に対して試験される際に、この作業は、各設計レベルを前の設計レベルと比較する作業に分けられる。このような後続のレベルと直前のレベルとの試験が行われると、屡々、後続の各レベルは先行のレベルの最適化に過ぎないことが直観的に分かる。従って、回路設計の試験又は検証は、回路又はシステムの一連の作成の下位互換性の検査と類似していると考えられる。
【0004】
二分決定グラフ(BDD)は、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)
によって表現される。
【0005】
この回路の二分決定グラフBDDは図2に示されている。BDDは、節点とも称される頂点と、分枝とにより構成される。更なる分枝が延びていない頂点は終端頂点と称される。この二分決定グラフは、各入力がBDDの一つのレベルだけに出現するように制限されているので、順序付二分決定グラフ(OBDD)である。この二分決定グラフは、図3に示されるように既約順序付二分決定グラフ(ROBDD)に既約させてもよい。順序付二分決定グラフを既約する規則は従来技術において公知である。この規則は、ある種の節点が節点の分枝を節点若しくは節点の補集合と交換することにより除去できることを認めることによって、冗長若しくは同型節点を除去する。既約順序付二分決定グラフは、ユニーク、即ち、標準形である点が重要である。従って、二つの順序付二分決定グラフが同一の既約順序付二分決定グラフに既約されるとき、これらの順序付二分決定グラフによって表現された回路は等価である。
【0006】
殆どのアプリケーションでは、既約順序付二分決定グラフは、参考のため引用したR. E. Bryantによる論文”Graph-Based Algorithms For Boolean Function Manipulation”, IEEE Trans. Computer C-35(8), 667-691, August 1986に記載されたApply 手続のある種の変形を用いて構成される。Apply 手続を用いると、ゲートgに対する既約順序付二分決定グラフはゲートgの入力の既約順序付二分決定グラフの記号操作によって合成される。所定の回路に対し、回路のゲートは、所望の出力ゲートの既約順序付二分決定グラフが構成されるまで、深さ優先(縦型)で処理される。
【0007】
VLSIのCAD並びに他のコンピュータ科学の分野における多数の問題は、ブール関数を用いて定式化することができる。従って、既約順序付二分決定グラフは等価性検査を行うため有効である。しかし、コンピュータ支援解法及び等価性検査を行う際の中心的課題は、等価性検査が効率的に行えるように簡潔なブール関数の表現法を見つけることである。既約順序付二分決定グラフは効率的に操作することが可能であり、上記の如く標準形である。殆どの実際的な関数の場合に、既約順序付二分決定グラフは、サイズ(メモリ空間)及び計算時間の両方の点で経済的である。そのため、既約順序付二分決定グラフは種々のCAD問題を解決するための選択候補のブール表現法として頻繁に使用される。
【0008】
しかし、既約順序付二分決定グラフは常に経済的であるとは限らない。実際的な関心のある大半の場合に、ブール関数によって記述された回路又はシステムを表現する既約順序付二分決定グラフは、回路又はシステムへの主入力の数に指数関数的な関係のある空間を必要とする。このため、等価性の解法はNP困難問題になる。メモリ或いは計算時間の両方の面に関して大きい空間が要求されるため、既約順序付二分決定グラフを用いて解法することができる問題の複雑さに制約が課される。
【0009】
種々の方法が既約順序付二分決定グラフの経済性を改良するため提案されている。その中の一部の方法は経済性を改良するが、既約順序付二分決定グラフの標準性と操作性を維持しない。かかる方法は既約順序付二分決定グラフの適用可能性を縮小する。標準性及び操作性を維持する別の方法は、唯一の起点を根元とする単一グラフとして全ブール空間に亘る関数を表現する。しかし、単一グラフは、メモリ又は時間のいずれかの制約が充足されないようなサイズの既約順序付二分決定グラフを必要とする。
【0010】
既約順序付二分決定グラフのサイズを縮小する方法が提案されている。既約順序付二分決定グラフのサイズは変数の順序に強く依存する。従って、既約順序付二分決定グラフのサイズを縮小する変数順序を決定する多数のアルゴリズムが提案されている。しかし、一部のブール関数に対し、利用可能な程度に充分に小さいサイズの既約順序付二分決定グラフが得られる変数順序が存在しない場合や、そのような変数順序を効率的に見つけられない場合が起こり得る。
【0011】
既約順序付二分決定グラフの空間及び時間の必要量は、全体的な順序付けの要求条件を緩和することにより削減してもよい。フリー二分決定グラフ(FBDD)は、このような解決策の一例である。フリー二分決定グラフは、変数が起点から終端までの所定の経路内で1回だけ出現し、異なる経路は別の変数順序をもつことができる二分決定グラフである。
【0012】
更に経済的なブール関数の表現を獲得するための別の手法は、節点に関連した機能分割を変更することである。一般的に、二分決定グラフ分割は関数fが、
【0013】
【外1】
【0014】
として表現されるシャノンの展開、又は、シャノンの展開から導かれるApply 法のような方法に基づく。他の分割は、リード・マラーの展開、若しくは、機能決定グラフ(FDD)のような展開のハイブリッド的使用を含み、或いは、順序付きクロネッカー機能分割グラフ(OKFDD)が使用される。しかし、上記の方法は何れも唯一の起点を根元とする単一グラフとして全ブール空間に亘る関数を表現する。そのため、上記の方法はメモリ及び時間の制約の問題が未解決のままである。
【0015】
また、殆どの設計、特に、順序回路の設計は、適切に検証できない。一般的に、テストスイートがこのような設計を試験するため準備される。テストスイートは、設計の主入力に対する割当ての組合せが変更される多数のテストケースを含む。主入力に対する割当ての一つの組合せは入力ベクトルを形成する。フリップフロップのような順序素子を有する設計を試験するため使用される入力ベクトルの系列は、テストベクトルを形成する。
【0016】
【発明が解決しようとする課題】
テストスイートは、屡々、試験中の設計に関する専門知識を備えたエンジニアによって用意される。従って、テストスイートは有用なテストデバイスである。しかし、テストスイートは、設計の状態若しくはブール空間の非常に僅かな部分しか試験しない。相当の数の主入力又は実現可能性のあるテストベクトルを備えた設計に対し、テストスイートは、特定の関心のある入力ベクトル又はテストベクトルの十分な部分の試験を行わない。
【0017】
本発明は、ディジタル回路及びシステムのブール空間表現の窓を用いる二分決定グラフベースの検証技術によって検証することができないタイプのディジタル回路及びシステムを評価する方法並びにシステムの提供を目的とする。
【0018】
【課題を解決するための手段】
本発明の好ましい一実施例において、ディジタル回路又はシステムはブール空間を形成するブール関数として表現される。ブール空間は分割に細分され、分割は再帰的に更なる分割に細分される。二分決定グラフを形成するには非常に大きい分割は、分割を形成するため合成可能な要素又は元を有する分解分割記号列を用いて表現される。これらの要素又は元は予定された順序で合成される。一部の合成の結果が零である場合、分解分割記号列も零になる。かくして、一部の下位組合せが零を生じる場合、全ての要素又は元を合成する必要はないので、分解分割記号列によって表現された分割の評価を行える。
【0019】
従って、本発明は、第1の回路と第2の回路の等価性を検証する方法及びシステムを提供する。第1の回路及び第2の回路は、対応した主入力及び主出力の集合を有する。第1の回路及び第2の回路はブール関数として表現され、ブール空間は対応したブール関数の出力を排他的論理和することによって表現される。ブール空間に対する分解二分決定グラフを構築する際に、合成によって得られた二分決定グラフがコンピュータメモリ使用量に関して所定の制約を超えたとき、ブール空間は分解点の合成中に分割される。合成によって得られた全ての分割が零であるならば、回路は等価であると判定される。
【0020】
また、本発明は、回路、システム並びに回路及びシステムの設計を部分的に検証できるようにする際に使用するサンプリング方法を提供する。回路、システム又は設計の状態空間は、多数の分割に細分される。これらの分割は、回路、システム又は設計用のテストスイートを解析する方法を含む幾つかの方法を用いて形成される。更に、中間二分決定グラフがメモリ使用量に関する所定の制約を超える場合に、この二分決定グラフは評価された状態空間の零終端頂点及び他の分割で置換することが可能である。
【0021】
【発明の実施の形態】
以下、本発明の上記特徴及び他の特徴が容易に認められるように、添付図面を参照して本発明の実施例を詳細に説明する。
I. 概要説明
本発明の回路又はシステムを検証する方法及びシステムによれば、回路又はシステムを表現するブール論理空間の分割が分解点における合成によって行われる。各合成は、ブール空間を二つの別個の分割に細分する。合成は、シャノンの式と、二分決定グラフに関する機能的制約とを用いて行われる。かくして、各分割はブール空間の論理和部分を表現する。
【0022】
第1の回路が第2の回路と等価であるか否かを判定する際に、二つの回路の各主出力は排他的論理和(XOR)演算で合成される。全てのXOR演算の出力が常に零と一致するとき、二つの回路は等価である。従って、完全なブール空間は、第1の回路の表現形式Fと、第2の回路の表現形式Gとにより構成され、両者の主出力はXOR演算で合成される。このように、等価である表現形式FとGとによって表現された回路に対し、F XOR G で表されるブール空間は常に零でなければならない。ブール空間 F XOR G が幾つかの論理和分割に分割されるとき、各分割は、零であるべき完全なブール空間 F XOR G に対し、零に一致しなければならない。このように、順序付二分決定グラフは、別個の分割毎に作成され、各順序付二分決定グラフは、順序付二分決定グラフが零に既約するかどうか、即ち、零に一致する単一の終端頂点だけを含むかどうかを判定すべく検査される。全ての分割が零に既約される場合、F XOR G は零に既約し、表現形式F及び表現形式Gは等価な回路を表現する。
【0023】
或いは、表現形式F及び表現形式Gを別々に操作し、次に、得られた既約順序付二分決定グラフを比較してもよい。
分割された既約順序付二分決定グラフの使用は、一部のブール空間しか表現しない1個の既約順序付二分決定グラフだけが常にメモリに収納されるべきことを意味する。分割された各既約順序付二分決定グラフはモノリシック既約順序付二分決定グラフよりも小さいので、時間及びメモリ空間の制約のために従来技術では解決することが困難な別のクラスの問題を解決できるようになる。また、分割された各既約順序付二分決定グラフは等価である回路に対し零に既約する必要があるので、分割された既約順序付二分決定グラフが零に既約しないことが判明した時点で処理が直ちに停止される。その上、各既約順序付二分決定グラフの変数順序は異なることが許されるので、個別の既約順序付二分決定グラフのサイズが更に縮小される。
【0024】
分割は分解点を合成することによって形成される。分解点は多数の方法で見つけられる。点が既に分かっている等価的な点であるならば、分割は等価的な順序付二分決定グラフを用いて分解点に形成される。
また、分解点は爆発原理に基づいて判定される。モノリシック順序付二分決定グラフは、一般的に、Apply 手続を用いて主出力に向かう主入力から作成される。モノリシック順序付二分決定グラフの作成は、主入力に関して主出力を表現するモノリシック順序付二分決定グラフが得られるまで続けられる。この処理中に、節点に関する順序付二分決定グラフがメモリ使用量に関して爆発する場合、その点は分解点としてマークされ、擬似変数に変わる。主出力に近い方の順序付二分決定グラフを作成する際に、この擬似変数が、元々使用される筈の順序付二分決定グラフの代わりに使用される。擬似変数bを利用する二分決定グラフは図9に示されている。
【0025】
n個のゲート又は節点を有する回路表現形式に対する分解二分決定グラフを構築する過程で分解点を判定する処理が図13に示されている。ステップ130において、カウンタは第1の主入力に設定される。ステップ131では、全てのゲート若しくは節点に対し二分決定グラフBDDの構築が試行されたかどうかが判定される。ステップ132において、サイズに関して二分決定グラフBDDの爆発が起こるまで、各ゲート若しくは節点毎に中間二分決定グラフが構築される。このような爆発が生じたとき、ステップ134において、ゲート若しくは節点が分解点としてマークされ、ステップ135において、分解点としてマークされたゲート若しくは節点に対する二分決定グラフの擬似変数が挿入される。
【0026】
このような処理には少なくとも二つの利点がある。第1に節点に関し二分決定グラフを構築する必要が無くなる。即ち、メモリに関して爆発した中間二分決定グラフは後の処理に必要ではない。一例として、最終的な二分決定グラフよりもサイズの大きい中間二分決定グラフを有する簡単な回路は図4に示されている。この簡単な回路は、ORゲート31とANDゲート33とを含む。ORゲートは入力N10及びN11を有する。ORゲートの出力N12はANDゲートに供給され、ANDゲートの別の入力はN11である。また、ANDゲートの出力はN13である。入力N10に対する二分決定グラフは図5に示されているように、終端頂点への2本の分枝を備えた節点12を含む。入力N11に対する二分決定グラフも同様な形であり、図6に示されている。N12に対する二分決定グラフは図7に示され、2個の節点を含む。しかし、N13に対する二分決定グラフは、図8に示される如く、1個だけの節点を有し、N13=(N10 OR N11) AND N11 と考えられるとき、簡潔に、N13 = N11 である。そのため、回路に対する最終的な二分決定グラフは少なくとも1個の中間二分決定グラフよりも小さく、中間二分決定グラフを構築する必要はない。
【0027】
それにも係わらず、標準形であり、かつ、解析が容易な目的関数(例えば、出力関数)の表現形式を構築する必要がある。この場合に、二分決定グラフの爆発を回避するため、二分決定グラフは分解点の合成中に分割され得る。かくして、図10及び11には、図9の二分決定グラフの擬似変数bを合成することによって得られた二つの分割が示されている。このような分割二分決定グラフは、分割の和である二分決定グラフよりもサイズが小さいので、メモリ又は時間の量を減少させる必要がある。
【0028】
図12には、分割技術を用いた回路1及び回路2の回路検証方法の概要が示されている。同図において、Cは回路1及び回路2の合成を表し、Fは回路Cを表現するブール関数である。ステップ120において、主入力から主出力までの分解集合に対するCの分解が行われる。ステップ122において、関数Fは主入力と擬似変数の合成によって表現される。ステップ124において、関数Fの表現形式が作成され、分割順序付二分決定グラフに分割される。ステップ126において、零に一致しない順序付二分決定グラフが得られたかどうかが判定される。零に一致する順序付二分決定グラフが得られなかった場合、ステップ127において、回路1と回路2は等価ではないことが宣言される。それ以外の場合、ステップ128において、回路1と回路2は等価であることが宣言される。
【0029】
分割毎に二分決定グラフが生成される。分割に別の分解点が含まれる場合、更なる分割を行うことが必要である。各分割自体は、二つの論理和ブール空間に分割してもよく、各サブ分割は論理和ブール空間に更に分割される。かくして、ブール空間は、多数の小規模の順序付二分決定グラフに分割される。
一部の分割は、非常に大規模であるため二分決定グラフを構築できない場合がある。しかし、分割は分解分割記号列によって形成される。分解分割記号列は、論理和された要素又は元の記号列である。特定の分割が多数の上位レベルの分割を再帰的に分割する結果として形成される場合、この記号列は多数の要素を含む。要素が零である結果と論理和された場合、記号列、即ち、分割も零である。
【0030】
従って、分解分割記号列を作成する順序は、予定された順序を用いて実現される。例えば、f=a,b,c,d,eであり、a,b,c,d,eがシステム若しくは回路トポロジーの一部分を表す全てブール関数であるとき、fの分割された既約順序付二分決定グラフを作成する問題を考える。好ましい一実施例において、ブール関数a,b,c,d,eは、(節点の数に関して表現された)サイズと、相互に余分なサポートの最小値を有する程度とに従って格付けされる。この格付けは、最小サイズの要素及び余分なサポートをもつ要素が先に合成される要素の合成スケジュールを決定する。以下、上記の内容、並びに、別の詳細について十分に説明する。
【0031】
II. 分割既約順序付二分決定グラフ
A. 定義
n個の入力Xn ={x1 ,...,xn }に関してブール関数f:Bn →Bが定義された場合を考える。ブール関数fの分割既約順序付二分決定グラフ表現形式Xf は以下の通り定義される。
【0032】
定義1. Xn に関して定義されたブール関数f:Bn →Bが与えられると、fの分割既約順序付二分決定グラフ表現形式Xf は、k個の関数の組の集合
Xf ={(w1 ,f1 )...,(wk , fk )}
として表され、ここで、
【0033】
【外2】
【0034】
は、Xn に関して定義され、以下の条件を満たす。
【0035】
【外3】
【0036】
なお、+及び∧はブール演算子OR及びANDを表す。集合{w1 ,...,wk }はWとして表される。各wi は窓関数と称される。直観的に、窓関数wi は、fが定義されているブール空間の一部を表現する。各ペア
【0037】
【外4】
【0038】
は、関数fの分割を表す。ここで、用語“分割(パーティション)”は、分割が論理和であることを要求する従来の意味とは違う意味で使用される。定義1の条件1−3に加えて、
i≠jに対し、wi ∧wj =0
であるならば、分割は直交し、各
【0039】
【外5】
【0040】
は従来の意味の分割、即ち、直和分割である。
定義1の条件1は、各分割が他の分割の変数順序とは異なる場合、及び、異ならない場合がある関連した変数順序をもつことを意味する。条件2は、wi が全ブール空間を被覆することを意味する。条件3は、
【0041】
【外6】
【0042】
が、wi によって被覆されたブール空間に関するfと同じであることを意味する。一般的に、各
【0043】
【外7】
【0044】
は、wi ∧fi として表現可能であり、fi の値はwi によって被覆されていないブール空間の部分に対しドントケアである。既約順序付二分決定グラフFのサイズは、|F|によって示される。そのため、|Xf |によって示される全ての分割のサイズの合計は、
【0045】
【数1】
【0046】
によって与えられる。条件2及び3から、直ちに、
【0047】
【数2】
【0048】
のように表される。fが
【0049】
【外8】
【0050】
の論理和として表現されるタイプの分割は、論理和分割と称される。論理積分割は、上記の定義の双対形式として定義される。即ち、i番目の分割が、
【0051】
【外9】
【0052】
により与えられるとき、定義1の条件2は、
w1 ∧...∧wk =0
になり、条件3は、
【0053】
【数3】
【0054】
になる。この場合、
【0055】
【数4】
【0056】
である。
B. 分割既約順序付二分決定グラフの標準形
各位置iに関して、集合W={w1 ,...,wk }及び順序πi が与えられたとき、分割既約順序付二分決定グラフ表現形式は標準形である。所定の関数fと、fの所定の分割既約順序付二分決定グラフ表現形式
【0057】
【数5】
【0058】
に対し、
【0059】
【外10】
【0060】
はユニークである。各
【0061】
【外11】
【0062】
は(所定の順序πi に対し)標準形である既約順序付二分決定グラフとして表現されるので、分割既約順序付二分決定グラフ表現形式は標準形である。
ブール空間の分割がW={w1 ,...,wk }の場合に、分割既約順序付二分決定グラフ表現形式に関する基本ブール演算(例えば、NOT,AND,OR)の実行の漸近的計算量は、既約順序付二分決定グラフの場合と同様にオペランドのサイズの多項式である。従って、表現形式の経済性は操作の効率に関して全く負担にならない。実際上、分割既約順序付二分決定グラフは、一般的にモノリシック既約順序付二分決定グラフよりも小さいので、各分割は別々に操作することが可能であり、その操作は非常に効率的である。
【0063】
参考のため引用したA. Narayan他による“Partitioned-ROBDDs -- A Compact, Canonical end Effciently Manipulable Representation of Boolean Functions", ICCAD, November 1996に記載されているように、f及びgを二つのブール関数とし、
【0064】
【数6】
【0065】
が定義1の条件1−3を満たす夫々の分割既約順序付二分決定グラフである場合を考える。また、Xf 及びXg の両方のi番目の分割は同じ変数順序πi を有すると仮定する。このとき、以下のように表される。
【0066】
【外12】
【0067】
C. 演算の計算量
二つの既約順序付二分決定グラフF及びGが与えられた場合、次の演算
【0068】
【外13】
【0069】
で実行できる。分割既約順序付二分決定グラフの場合、異なる分割は、別々に操作され、
【0070】
【外14】
【0071】
である。メモリ内には同時に1個の分割しか存在すべきではないので、
【0072】
【外15】
【0073】
によって与えられる。また、既約順序付二分決定グラフと同様に、関数fの充足集合のサイズは、直交分割既約順序付二分決定グラフに対し、オーダーO(|Xf |)で計算され得る。
D. 存在記号化
基本的なブール演算の他に、順序回路の形式的な検証に広範囲に使用される別の有用な演算は存在記号(∃x f)演算である。関数f(∃x f)からの変数xの存在記号は、
【0074】
【数7】
【0075】
によって与えられる。分割既約順序付二分決定グラフ表現形式において、余因子は、Xに関して、
【0076】
【外16】
【0077】
を余因子化すること、即ち、
【0078】
【数8】
【0079】
により簡単に得られる。しかし、余因子化演算を実行した後、正及び負の余因子は異なる窓関数
【外17】
を有し、論理和は分割に基づいて直接行えない。この問題は定量化されるべき変数に依存しない窓関数を選択した場合には生じない。存在記号化は以下の通り行われる。
Xf ={(wi ,fi )|1≦i≦k}が、
1≦i≦kに対し、∃x wi =wi
となるようなfの分割既約順序付二分決定グラフであるとするならば、
X∃x f={(wi ,∃x fi )|1≦i≦k}
は、∃x fの分割既約順序付二分決定グラフ表現形式である。
【0080】
頻繁に使用される別の重要な演算は、∀x 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の分割既約順序付二分決定グラフ表現形式である。
【0081】
III. 分割既約順序付二分決定グラフを構築するための発見的手法
分割既約順序付二分決定グラフの性能は、関数をコンパクトに表現することができるブール空間の分割の生成に決定的に依存する。このようなブール空間の分割を分割既約順序付二分決定グラフに関して見つける問題は、モノリシック既約順序付二分決定グラフに関して優れた変数順序を見つける問題と同様に中心的な課題である。以下、コンパクトな直交分割既約順序付二分決定グラフを作成する際に効率的なある種の単純な発見的手法を説明する。以下の説明ではブールのネットリストモデルを使用しているが、この技術は汎用的であり、ブール演算の任意のシーケンスに適用することができる。
【0082】
所与の関数Fは最初に分解され、関数Fの分割既約順序付二分決定グラフのための窓関数はFに対する分解された二分決定グラフを解析することによって得られる。窓の個数は先験的若しくは動的に決定される。窓wi が決定された後、窓wi に対応する分割既約順序付二分決定グラフは、窓wi に対応したブール空間内でFを作成することにより獲得される。
【0083】
A. 分解表現の作成
Xn ={x1 ,...,xn }に関してブール関数f:Bn →Bが定義された場合、分解戦略は、既約順序付二分決定グラフ演算のシーケンス中に、既約順序付二分決定グラフのサイズの増加に基づいて新しい変数を導入することである。新しい変数は、ある種の演算に起因して不相応な程度で既約順序付二分決定グラフ・マネージャ内の節点の総数が増加するときに導入される。例えば、既約順序付二分決定グラフR1 及びR2 上で演算R=R1 +R2 を実行するときに、Rが非常に大きくなるならば、この演算は行われない。その代わりに、新しい変数であるψ1 及びψ2 が導入され、Rはψ1 +ψ2 のように表現される。分解点に対応した既約順序付二分決定グラフを収容する別個のアレイが保持される。ψ1 及びψ2 に対応したR1 及びR2 がこのアレイに追加される。このように、困難な関数的操作の手続は、後の段階に延期される。ブールの簡単化に起因して、これらの中の殆どのケースは最終的な結果に生ずることが無く、特に、最終的なメモリ必要量が、参考として引用したJ. Jain 他による文献“Decomposition Techniques for Efficient ROBDD Construnction”, LNCS, Formal Methods in CAD 96, Springer-Verlag, November, 1996 に記載されているようなピーク中間必要量よりも著しく少ない場合に、上記ケースは最終的な結果に生じない。
【0084】
好ましい一実施例において、メモリ爆発の検査は、マネージャ・サイズが所定の閾値よりも大きい場合に限り行われる。また、分解点は、既約順序付二分決定グラフが別の閾値を超えるまで成長したときに追加される。これによって、分解点自体はかなり大きい既約順序付二分決定グラフを有しないことが保証される。たとえ簡単なサイズベースの分解スキームでも、分割既約順序付二分決定グラフの潜在能力を実証するため非常に効果的に働く。
【0085】
分解段階の最後に、分解表現形式が獲得される。関数fの分解表現形式は、
fd (Ψ,X)
のように表され、
Ψ={ψ1 ,...,ψk }
は、回路の分解集合と称され、ψi ∈Ψ は分解点である。
【0086】
Ψbdd ={ψ1bdd,...,ψkbdd}
が分解点の既約順序付二分決定グラフを収容するアレイを表現する場合、即ち、
ψj ≠ψi
であるとき、主入力変数並びに(可能であれば)他のψj ∈Ψ に関して、
ψi ∈Ψ
が対応した既約順序付二分決定グラフ
ψ1bdd∈Ψbdd
を有する場合を想定する。同様に、ψibddw のアレイはΨbddwi によって表現される。fd (Ψ,X)におけるψi の合成は、
fd (Ψ,X).(ψi ←ψibdd)
によって表現され、但し、
【0087】
【数9】
【0088】
である。fd (Ψ,X)におけるΨのベクトル合成は、
fd (Ψ;X).(Ψ←ψbdd )
によって示され、ψi のfd への順次の合成を表現する。
B. 分解表現の分割
1. 所与のwi に対するfの作成
窓関数wi 、分解表現fd (Ψ,X)、及び、fの既約順序付二分決定グラフアレイΨbdd が与えられた場合、f1 =w1 ∧fi を表現する既約順序付二分決定グラフがfよりも小さくなるようなfi が望ましい。以下の観察が適切である。
【0089】
観察1:
fi =fdwi (Ψ,X)(Ψ←ψbdd ) 及び
f=fd (Ψ,X)(Ψ←ψbdd )
を仮定する。wi が主入力上でキューブである場合、fd 及びfの任意の変数順序に対し、
|fi |≦|f|
である。
【0090】
証明:
【0091】
【数10】
【0092】
を仮定する。wi が主入力だけに依存する場合、余因子化及び合成の順序は変更することができる。したがって、
【0093】
【数11】
【0094】
である。この結果として、
【0095】
【数12】
【0096】
が得られる。wi がキューブである場合、
【0097】
【数13】
【0098】
であり、したがって、
|fi |≦|f|
である。次に、
【0099】
【外18】
【0100】
によって表現されるとする。
【0101】
【外19】
【0102】
を合成することにより、分割関数を作成することができ、
【0103】
【数14】
【0104】
が形成される。窓関数wi の集合が与えられた場合、fの分割既約順序付二分決定グラフXfは、
【0105】
【数15】
【0106】
により与えられる。上記の定義が定義1.の全ての条件を満たすかどうかは簡単に検査できる。wi がキューブである場合、fi はfに対する既約順序付二分決定グラフよりも小さいサイズを有することが保証される。また、kがwi のリテラルの個数であるとき、wi を表現する既約順序付二分決定グラフはk個の内部節点を有する。wi と
【0107】
【外20】
【0108】
は、分離的(ディスジョイント)サポートを有するので、
【0109】
【数16】
【0110】
が得られる。また、fi の構築中の中間結果は、fの構築中の中間結果よりもサイズが小さいので、中間ピークメモリ必要量は削減される。
観察1は、f及びfi が異なる変数順序を有し得るときに動的変数再配列が行われる場合には成立しないことに注意する必要がある。しかし、実際上、動的変数再配列は分割の際に小さいグラフ上で行われるので、非常に効率的であると考えられる。窓関数がキューブよりも複雑な主入力の関数である場合でさえ、
【0111】
【数17】
【0112】
が使用される。但し、
【0113】
【外21】
【0114】
はwi 上のfの一般化余因子である。wi 上のfの一般化余因子は、通常、fよりも遙かに小さい、しかし、i番目の分割既約順序付二分決定グラフのサイズの場合、
【0115】
【外22】
【0116】
は、最悪のケースでオーダーO(|wi ||fi |)になり得る。これを避けるため、一般的な窓関数を使用する間に小さいwi を使用する。
2. 窓関数の選定
優れた窓関数を獲得する方法は、先験的選定及び「爆発」ベース選定の二つのカテゴリに分類される。
【0117】
a. 先験的分割法
先験的分割法は分割のため所定数の主入力を使用する。そのため、分割がk個の主入力に関して行われる場合、2k 個の分割が上記変数の全ての二値割当に対応して作成される。例えば、分割がx1 及びx2 に関して行われる場合、4個の分割
【0118】
【外23】
【0119】
が作成される。これらの分割既約順序付二分決定グラフはモノリシック既約順序付二分決定グラフよりも小さくなることが保証される。所定の時間にメモリに存在すべき分割は1個に限られるので、メモリ必要量は常に少なく、このメモリ削減量は大きいので、全ての分割を処理するため要する時間も全体的に削減される。
【0120】
分割のための変数を選定する場合、別の分割を別々に作成する場合に生ずる冗長性を最小限に抑えると共に、実現される分割を最大限にする変数を選定することが望ましい。変数xに関して関数fを分割するコストは、
costx (f)=α[px (f)]+β[rx (f)]
のように定義され、px (f)は、
【0121】
【数18】
【0122】
によって与えられる分割ファクタであり、rx (f)は、
【0123】
【数19】
【0124】
によって与えられる冗長性ファクタである。
分割ファクタは最悪の二つの分割を示すので、分割ファクタは小さい方がよい。同様に、冗長性ファクタは二つの分割を作成するため関係する総作業を意味するので、冗長性ファクタは小さい方がよい。全体的なコストが小さくなる変数xが分割のため選定される。所定の関数Fのベクトル及び変数xに対し、分割のコストは、
【0125】
【数20】
【0126】
のように定義される。主入力PIはfd 及びψを分割するコストが増加する順序に並べられる。ユーザによって指定された所定の数kを用いて、最良のk個の主入力が選定される。類似したコスト関数は、分割既約順序付二分決定グラフを作成するため、主入力変数だけではなく、主入力PIに関して表現された
【0127】
【外24】
【0128】
のような擬似変数を選定することが可能である。この場合、余因子演算は、非キューブの窓関数に対する一般化余因子演算になる。このように全ての主入力PIがfd 及びψを分割するコストに従って格付けされているタイプの選定は、静的分割選定と称される。
動的分割戦略は、最良の主入力PI(即ち、x)がfd 及びΨに基づいて選定され、引き続く主入力が、一方の分割中のfd 及びΨと、別の分割中の
【0129】
【外25】
【0130】
に基づいて機能的に選定される分割である。動的分割は、指数関数的な個数の余因子を必要とするため、コスト高になり得る。このコストは、関心のある値だけが、
【0131】
【外26】
【0132】
のサイズであるという事実を利用することによって多少削減できる。
【0133】
【外27】
【0134】
の値に関する上限は、fd の既約順序付二分決定グラフをトラバース(横断)し、xに対応した変数idを備えた節点を見つけると分枝x=1を選ぶ。このような形で既約順序付二分決定グラフをトラバースすることによって獲得された二分決定グラフは既約されないので、この方法では正確なカウントが得られない。この方法の利点は、新しい節点を作成する必要がないこと、並びに、トラバースが高速に行えることである。
【0135】
b. 爆発ベース分割法
爆発ベース分割法の場合、fd 中の
【0136】
【外28】
【0137】
は、連続的に合成される。グラフのサイズが一部の合成(例えば、ψj )に対して急激に増大する場合、窓関数wは現在の
【0138】
【外29】
【0139】
に基づいて選定される。窓関数は、主入力PI及びその補集合、或いは、主入力に関して表現され、非常に小さいサイズをもつある種の
【0140】
【外30】
【0141】
及びその補集合のいずれかである。窓関数wが獲得された後、二つの分割
【0142】
【外31】
【0143】
が作成される。爆発ベース分割ルーチンは上記の分割毎に再帰的に呼び出される。
等価性検査を行うべき二つの回路A及びBを想定する。回路A及びBは、対応した主出力F1 及びF2 を有する。等価性を示すためには、
【0144】
【数21】
【0145】
が真であることが必要である。この式が真であるか否かを判定するため、Fに対する二分決定グラフが内部等価点のカットセットを用いて構築される。この処理において、多数の出力は、等価ゲートの最近傍カットセットμi ={ψi ,...,ψk }に関してそれらの二分決定グラフを作成するだけで等価であることが宣言され得る。この処理は、Fに関する出力二分決定グラフがμi を用いて容易に作成でき、出力二分決定グラフがブールの0に既約するとき、非常に有効である。即ち、F1 とF2 は機能的に等価であることが示される。しかし、二分決定グラフF(μ1 )が非常に大きく、構築できない場合がある。また、場合によってはF(μ1 )が0に既約しないので、この場合、二分決定グラフは、主入力と先行のカットセットμi の間に収まる別のカットセットμj に関して合成する必要がある。この合成処理中に、二分決定グラフは、F1 、F2 の等価性が解明される前に爆発する可能性がある。二分決定グラフ分割戦略は、基本的に、上記の通り通常の方法では成功し得ない場合に非常に重要な戦略として利用できる点で有利である。
【0146】
二分決定グラフ分割戦略は、一方で、F(μi )をF(μj )に合成し、グラフサイズがある種の合成(例えば、ゲートψj に対応した二分決定グラフ)に対して急激に増大する場合に、合成結果がある制限を超えたとき分割を行う。この制限を選定するため、幾つかのサイズ関連パラメータの知識が二分決定グラフF(μi )のF(μj )への合成の処理中に保存される。これらのパラメータを説明するため、1≦h≦kであり、集合{ψ1 ,...,ψk }からのh個の二分決定グラフが既に合成されている場合を想定する。例えば、二分決定グラフの合成される順序がψ変数の指数の増加順であるとする。即ち、二分決定グラフは、ψ1 ,ψ2 ,...,ψh の順に合成される。カットセットψi に関して作成されたψの二分決定グラフは、ψi (μj )のように表される。二分決定グラフを分割すべきときを動的に決定するルーチンDYNAMIC _BDD _PARTITION (動的BDD分割)を以下に説明する。
【0147】
手続(Procedure: DYNAMIC _BDD _PARTITION)
1.ORIG_SIZEは、カットセットμj に関して表現された最初のF(μj )のBDDサイズである。
2.COMPOSED_ARGUMENT_SIZEは、BDD F(μj )内で合成された各BDD ψ1 (μj ),ψ2 (μj ),...,ψn (μj )の合計である。
【0148】
3.TOTAL _INPUT _SIZE = COMPOSED _ARGUMENT_SIZE + ORIG _SIZE
4.FINAL _SIZEは、h個の各点ψ1 ,ψ2 ,...,ψh が連続的に合成された後、獲得されるBDD F(μj )の「最終的な」サイズである。このBDDは、Fh のように表される。また、PREVIOUS_SIZEは、h−1個のポイントを合成した後のF(μj )のサイズを表す。
【0149】
分割法が呼び出されるのは以下の場合である。
(A)FINAL _SIZE > COMPOSED_ARGUMENT_SIZE * BLOW _UP_FACTOR
ここで BLOW _UP_FACTは、所与の装置で利用可能な空間に従って変更可能であるが、好ましい実施例では10である。
(B)FINAL _SIZE > PREVIOUS_SIZE * BLOW _UP_FACTOR/NUM
好ましい実施例では、NUM は2である。また、好ましい実施例において、この規準は、合成中にBDDが爆発する場合だけに使用され、分解表現の形成中には使用されない。
【0150】
(C)FINAL _SIZE > PRE_SET _MEMORY_LIMIT
さらに、分割法は、FINAL _SIZEが利用可能なメモリのプリセット限界よりも大きい場合に呼び出される。
分割表現を形成中にBDD爆発を判定する手続は、図14に示されている。分解表現を形成する際に、ブール演算ゲートの出力に対するBDDは、ゲートへの入力のBDD上でブール演算を実行することにより形成される。図14の手続に示されているように、B3 はゲートの出力に対するBDDであり、B1 及びB2 はゲートの入力に対するBDDである。ステップ140において、B3 のサイズがメモリ使用量に対するプリセット閾値限界よりも大きいかどうかが判定される。ステップ141において、B3 のサイズがB1 のサイズとB2 のサイズの和の量の定数(BLOW_UP_DECOMPOSITION 定数)倍よりも大きいかどうかが判定される。ステップ140或いはステップ151のいずれかの条件が真であるならば、中間BDD爆発変数INTERMEDIATE_BDD _BLOWUPは、ステップ142において1にセットされる。それ以外の場合、変数INTERMEDIATE_BDD _BLOWUPは、ステップ143において0にセットされる。
【0151】
3.等価点分割法
上記方法は、ネットワーク全体を検証する問題を簡単化するため構造的かつ機能的技術の組合せを用いる内部対応関係の抽出及び使用に基づく技術に適用される。上記の対応関係は、機能的な等価性だけでもよく、或いは、内部節点間の間接含意でもよい。
【0152】
この検証方法のフローは、参考のため引用した米国特許出願第08/857,916号に記載されている。上記技術の一部の大筋は以下のように要約することができる。
1.二つの所与の回路の内部ゲート/出力ゲートの間で簡単な等価性を判定する。等価的なゲートは併合される。より詳細には、共通擬似変数が全ての等価的な(相補的な)ゲートペアの両方の要素に対し導入される。
【0153】
2.シミュレーションを用いて結果として得られた回路中の潜在的に等価的な節点を計算する。
3.潜在的に等価的なゲートの中で本当に等価性のあるゲートを決定する。二つの回路の間で等価的なゲートは併合される。
4.前のステップで決定された内部等価性を用いて出力の等価性を推定する。
【0154】
2個のゲートが等価(反転)であることが検出されたため併合される毎に、これらのゲートは等価(反転)ゲートとしてマークされる。このようなゲートには、BDD構築中に擬似変数が導入される。より詳細には、参考のため引用された米国特許出願第08/857,916号及び米国特許第5,649,165号に記載されているように、このようなゲートのカットセットが作成される。シミュレーション中に、潜在的に等価的な節点の個数は非常に少ないことが判定された場合、或いは、BDDの構築中にBDDの爆発が発生した場合、BDDサイズが検査され続け得るように付加的な分解点が導入される。分解点は、参考のため引用された J. Jain他による“Decomposition Techniques for Efficient ROBDD Construction", LNCS, Formal Methods in CAD 96, Spring-Verlag に記載されているような機能的分解手続を用いて導入され得る。かくして、分解点には、機能的分解点と、所与の回路のペアの中で等価(反転)であると判定された点とが含まれる。
【0155】
IV. 分割操作
A. 合成
分割法が呼び出された後、グラフは以下の通り分解されたままに維持される。BDDパッケージ内の合成は、if-then-else文(ITE)演算を用いて行われる。しかし、最後のITE(合成)演算は行われず、最後の演算は以下の通り分解される。Ψh 分割法が呼び出された場合を想定する。以下の説明におけるシンボルを簡単化するため、BDDψh (μj )はBj と表記する。合成の数学的表現は以下の通りである。
【0156】
【数22】
【0157】
Bh ∧Fh=1 は所与の関数Fのある分割(p1 )を表現し、
【0158】
【外32】
【0159】
は関数Fの別の分割(p2 )を表現する。両方の分割は機能的に直交している。上記の各分割は独立した関数であると考えられ、上記の分解及び分割処理は再び再帰的に実行されるが、F(μi )は、Bh ∧Fh=1 によって置換される。
任意の分割、例えば、分割p1 に対し、BDD Bh ∧Fh=1 が爆発を伴うことなく計算できるならば、合成された順序付BDD(OBDD)が作成される。さもなければ、p1 は、BDD Bh とBDD Fh=1 との間の記号論理積によって表現される。これは、分解分割記号列であり、後続のDYNAMIC _BDD _PARTITION() の再帰的呼出はこの分解分割記号列上で作用する。そこで、p1 から得られたOBDD内の残りのk−h個のBDDψh=1 ,...,ψk 、或いは、その分割記号列が合成される。
【0160】
次に、ある種のBDDψq (μj )の合成に起因して、分解分割記号列に関して分割法が呼び出されるとき、ψq (μj )のBDDとの記号論理積と、ψq (μj )の合成が行われた分解分割記号列(論理積ブール表現)も必要とされる。かくして、分解分割記号列の長さが成長する。任意の分枝に沿った繰り返しの終了時に、結果的に生じた分解分割記号列は、BDDのアレイ(Ad )の要素として記憶される。このアレイの各要素は、このアレイの他の全ての要素と直交する。
【0161】
二つのBDD B1とB2の間の記号論理積は、実際の論理積を実行するのではなく、将来の先のある点まで結果を延期する。このため、B1とB2の間の実際の論理積である新しいBDD B3を作成する代わりに、記号論理積アレイ symbolic_conjunction _array A1 が作成される。A1 には、3個の別々の要素:BDD B1、BDD B2及び論理積演算が含まれる。記号論理積アレイA1 は関数を明示的に表現し、この関数f(A1 )は実際にB1とB2の間でAND演算を実行することにより得られる関数と等価的である。
【0162】
次に、あるBDD B4をA1 =[B1,B2,AND]によって表現された関数と論理積する必要がある場合、A2 =[B1,B2,B4,AND]である結果を生成する。このように、記号論理積アレイの長さは成長する。また、記号論理積アレイA1 にGが含まれる場合、計算結果として記号論理積アレイAnew =[B1(B1内で合成されたG),B2(B2内で合成されたG),AND]が得られ、ここで、B1(B1内で合成されたG)は、BDD B1内でBDDGを合成することを意味する。
【0163】
図16には、分解分割記号列αが既に存在する場合に、分解分割記号列(以下、DPSと略記する場合がある)に対する手続のフローチャートが示されている。分解分割記号列αは、擬似変数g及びBDD(g)を含む。ステップ160において、BDD Ba がBDD(g)と、gが1である場合のDPS αとの記号論理積に一致するとき(Ba =BDD(g)∧DPS(α)g=0 )、BDD Ba が爆発したかどうかが判定される。爆発が発生していないとき、DPS αa は、ステップ161において、BDD Ba と一致するようにセットされる(DPS αa =BDD Ba )。爆発が発生したとき、ステップ162において、DPS αa は、BDD(g)と、gが1である場合のDPS αとの記号論理積に一致するようセットされる(αa =BDD(g)∧DPS(α))。DPS αb は、ステップ163、164及び165において、BDD(g)の代わりに、
【0164】
【外33】
【0165】
と、gが0に一致する場合のDPS α及びgが1に一致する場合のDPS αとを用いて同様に決定される。
記憶された分解分割記号列は、種々のψq (μj )と、部分的に合成されたF(μj )と一致するBDDとの論理積である。関数Fがブールの0に一致するとき、このアレイの各要素は全て0でなければならない。これは、いずれかの分割が合成されたとき、ブールの0を結果的に生ずる必要があることを意味する。各分割はBDDの記号論理積である。そのため、分割pi は、
pi =f1 ∧f2 ∧...fm ∧Fr
のようなm個のBDDの論理積として表現される。各fi は、合成によって爆発を生じたある分解点のBDDである。Fr は、k個全部のBDDが合成された後に残されるBDDである。
【0166】
アレイAd の中から要素pi が獲得とされた後、カットセット(μi )が主入力に対応せず、かつ、検証問題に対する回答が未だ獲得されていない場合、動的BDD分割手続DYNAMIC _BDD _PARTITION() が使用され、p1 が別のカットセット(μt )に合成される。カットセット(μt )はカットセット(μi )と主入力との間で選定される。この処理は、分解分割記号列DPS内のすべてのBDDが主入力変数に関して表現されるまで続けられる。
【0167】
かくして、実質的に上記の処理が図15に示されている。同図において、分解分割記号列は存在するが、主入力に関して表現されていない。ステップ150において、分解点の合成が行われる。ステップ151では、結果として得られた合成BDDが爆発するかどうかを判定するため検査される。ステップ151及び152においてそれぞれ判定されるように、得られた合成BDDが爆発せず、BDDが不充分である場合、合成の処理は他の点に対して繰り返される。BDDが満足できる場合、比較中の回路は等価的ではない。しかし、BDDが爆発するとき、2個の分解分割記号列がステップ153で作成される。ステップ154において、2個の分解分割記号列が主入力に関して表現されているかどうかが判定される。検査によって、主入力に関して表現された分解分割記号列が何れも0に一致しないことが判明した場合、比較中のシステムは等価ではない。処理は、全ての分割が0であると判定されるか、或いは、比較中の回路が等価であると宣言されるまで繰り返される。
【0168】
図17には、主入力に関して記述された分解分割記号列を検査する処理のフローチャートが示されている。ステップ170において、分解分割記号列に合成のスケジュールが立てられる。以下では、多数の適当なスケジューリング技術が説明されるが、要素の合成順序をスケジューリングするため何れの技術を使用してもよい。ステップ171では、分解分割記号列の全ての要素の検査が終了したかどうかが判定される。未だ終了していない場合、ステップ172において、分解分割記号列の別の要素が合成のスケジュールに従って合成される。合成の結果は、結果が零であるか否かを判定するためステップ173において検査される。結果が零である場合、分解分割記号列によって表現された分割は、ステップ174において零であることが宣言される。分解分割記号列の全ての要素が合成され、零の結果が得られなかった場合、分割分解記号列によって表現された分割は、ステップ175において非零であると宣言される。
【0169】
B. 等価性検査
次のステップは、二分決定グラフBDD
pi =f1 ∧f2 ∧...fm ∧Fr
がブールの0であるかどうかを検査するステップである。この判定を行う際に二つの手続が使用される。
【0170】
手続1. SCHEDULING_PROCEDURE(): スケジューリング手続ルーチンは、ブールAND演算をより高速に計算するような形にBDDを並べる。合成の要素f1 , f2 ,...,fm をスケジューリングする方法を以下に説明する。
手続2. LEARNING_METHOD(): 分解分割記号列は、分解分割記号列中のBDDのサイズの合計があまり大きくない場合に回路に割り付けられる。参考のため引用したMukherjee 他による論文“VERIFUL: Verification using Functional Learning”,EDAC 1995及びJ. Jain 他による論文“Advanced Verification Techniques Based on Learning”,DAC 1995 に記載されている方法、或いは、米国特許出願第08/857,916号明細書に記載された技術は、この分割によって表現されるブール関数が0であるか否かを検出するため使用される。
【0171】
1. スケジューリングスキーム
まず、
【0172】
【数23】
【0173】
である場合を考える。また、gi に対応したbi と、S={b1 ,b2 ,...,bn }を想定する。ここでの目的は、同時に2個ずつ、Sにおいて上記の如くのBDDの演算を行うことによって既約順序付二分決定グラフROBDD(f)を計算することである。
以下の全てのスケジューリングスキームは、各ステップで、演算結果
【0174】
【数24】
【0175】
が小さくなるように、Sから2個のROBDDのBi 及びBj を選択する点で貪欲である。次に、Bi 及びBj はSから削除され、B(i,j)がSに追加される。このステップは、|S|=1になるまで繰り返される。
BDDのペアbi 、bj と、ブール演算
【0176】
【外34】
【0177】
とが与えられた場合、結果として得られる最悪ケースのサイズのオーダーは、
O(|bi ||bj |)
であることが公知である。したがって、サイズベースの方式は、結果として得られるBDDができるだけ小さくなるように2個の最小BDDであるbi 及びbj を選択する。
【0178】
ある状況下では、サイズだけに基づくBDDの順序付けは十分ではない。2個の最小BDDのbi 及びbj が
【0179】
【数25】
【0180】
のようになる可能性がある。しかし、僅かに大きく、論理積サポート集合を有するBDD bk 及びbm が選択される場合、更に小さい中間BDDが獲得される。
次のBDDは、演算が実行された後、非常に少ない余分な変数だけを導入するように選択される。換言すると、第1のBDD(bi )は最小サポートを有し、第2のBDD(bj )は、残りの全てのBDDの中で、第1のBDDからの最小エクストラサポートを有する。エクストラサポートは、(bi )と比較して、
【0181】
【数26】
【0182】
のサポートに導入される付加的な変数の個数である。これは、sup(bi )がbi のサポート集合を表す場合に、
|sup(bj )−sup(bi )|
と一致する。
かくして、第1のBDD bi が最小サイズ化BDDであるとき、次のスケジューリング順序が使用される。
【0183】
1.第2のBDD bj はbi と最大サポートを共用するBDDである。
2.第2のBDD bj はbi に関して最小エクストラサポートを有するBDDである。
3.集合Sの残りのBDDは、Lsize及びLsup のサイズ及びエクストラサポートによって格付けされる。最小ランク(サイズ又はエクストラサポート)を有するBDDは、リストの前方にある。次に、非常に少数(例えば3個)のBDDがLsize及びLsup の先頭から選択される。bi との陽的AND演算が上記の各BDD上で実行される。最小サイズを生じるBDDは所望のbj である。
【0184】
2.合成の順序
窓関数を選択し、
【0185】
【外35】
【0186】
によって与えられるi番目の分割に対する分解表現を作成した後、最終ステップで、
【0187】
【外36】
【0188】
を合成する。所定の変数順序に対し、最終的なROBDDのサイズは一定であるが、中間メモリ必要量及び合成に要する時間は、分解点が合成される順序の強関数である。
fd に合成され得る候補変数毎に、結果の合成ROBDDのサイズを評価するコストが割り当てられる。最小コスト評価の変数が合成される。サポート集合サイズに基づく簡単なコスト関数は、実際上巧く機能する。したがって、合成後に、ROBDDのサポート集合のサイズの増加が最も小さい分解変数が選択される。各ステップで、合成の候補は、他の何れのΨbdd sの中に現れない上記の分解点に制限される。これは、参照のため引用した A. Narayan他による“Study of Composition Schemes for Mixed Apply/Compose Based Construction of ROBDDs ”,Intl.Conf. on VLSI Design, January 1996 に記載されているように分解変数がfd 内で1回だけ合成されればよいことを保証する。
【0189】
V. アプリケーション
A. 組合せ的検証
分割ROBDDは、2個の組合せ回路の等価性を検査するため直接適用され得る。二つの回路f及びgの夫々の出力は、単一の回路を得るためXORゲートによって組み合わされる。分割ROBDDは、得られた回路が充足しているかどうかを検査するため使用される。これは、全ての分割に対し、
【0190】
【数27】
【0191】
を検査するだけでよい。実際上、この技術は、ROBDDを採用する殆どの含意ベースの組合せ検証方法の最後の過程として容易に使用され得る。かかる方法は、参考のため引用したJ. Jain 他による“Advanced Verification Techniques Based on Learning”, DAC, p.420-426, 1995 並びに、S. Reddy他による“Novel Verification Framework Combining Structural and OBDD Methods in a Synthesis Environment ”, DAC, p.414-419, 1995に記載されている。検証は、いずれかの窓関数wi において、関数
【0192】
【外37】
【0193】
が充足していることが判明した場合、全ての分割を処理しなくても終了させることが可能である。
二つの回路を検証する別の方法は、等価性を確率的に検査することである。このような方法は、参考のため引用したM. Blum 他による“Equivalance of Free Boolean Graphs Can Be Decided Probabilistically in Polynomial Time”, Information Processing Letters, 10:80-82, March 1980 並びに J. Jain 他による“Probabilistic Verification of Boolean Functions ”, Formal Methods in System Design, 1, July 1992 に記載されている。確率的検証の場合、関数fの極小項毎に、入力変数へのある種のランダム整数割当てpの下で整数値に変換される。次に、全ての整数値は、fに対するハッシュ符号Hp(f)を獲得するため算術的に加算される。無視できる誤識別率で、
f≡g iff Hp (f)=Hp (g)
が断定される。直和分割の場合、共通の極小項を共有する二つの分割は存在しない。したがって、各分割は別々にハッシュ化することができ、それらのハッシュ符号がHp (f)を獲得するため加算される。これは、Hp (f)=Hp (g)であり、f及びgが分割され、かつ、別々にされているかどうかを検査することを意味する。
【0194】
【外38】
【0195】
の両方は、同時にメモりに存在する必要はない。また、f及びgの両方が同じ窓関数を有する必要はない。
B. 順序FSM検証
ROBDDを使用する順序回路検証の重要なステップは、可到達性解析である。可到達性解析は、一般にモデル検査(Model Checking)と称され、モデル検査手続は、参考のため引用したK. L. McMillanによる“Symbolic Model Checking ”, Klumer Academic Publishers 1993 並びに E. M. Clarke他による“Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications ”, 8 TOPLAS 244-263 (1986) に記載されている。可到達性解析は、システムが初期状態から開始して到達し得る状態の集合を計算する。現在の到達した状態の集合をR(s)、現在の状態変数sを次の状態変数s’に関係付けるシステムの遷移関係をT(s,s’)とすると、次の状態の集合N(s’)は、以下の式:
【0196】
【数28】
【0197】
を用いて評価される。次の状態の集合は、現在の状態の集合に追加され、上記の計算は定点に到達するまで繰り返される。この定点はシステムの到達可能な状態の集合を表現する。
殆どの場合に、遷移関係T(s,s’)を表現するROBDDは非常に大きくなる。これらの場合を取り扱うことは、個別のラッチの遷移関係T(s,s’)s2 が(ある種のTi sの可能なクラスタリングを用いて)別々に表現されている分割遷移関係において有用である。分割遷移関係の利用は、参考のため引用したJ. R. Burch 他による“Symbolic Model Checking: 1020 States and Beyond ”, Information and Computation, 98(2):142-170, 1992に記載されている。論理積形及び論理和形の二つのタイプの分割遷移関係について説明されている。かかる分割において、遷移関係は、
T(s,s’)=
T1 (s,s’)∧...∧Ti (s,s’)∧...∧Tm (s,s’)
によって与えられ、各Ti は別個のROBDDとして表現される。このタイプの分割は論理積形分割既約順序付二分決定グラフの特殊ケースである。本発明の分割は、Ti が必ずしも個別のラッチに対応しなくてもよいので、非常に汎用的である。また、論理積形分割遷移関係の有効性は、存在記号が論理積の全体に亘って拡がっていないので制限される。最悪の場合、全てのTi が現在の状態変数だけに依存するならば、論理積形分割遷移は使用できない。
【0198】
存在記号が分割全体に拡がる論理和形分割の方が興味深い。本発明によれば、所与のシステムに対する基本的な遷移モデルに制限を加えることなく遷移関係を論理和形分割することが可能である。本発明の場合、
【0199】
【数29】
【0200】
となるような任意のfi の集合が遷移関係を表現するため使用され得る。次の状態の集合は以下の式:
【0201】
【数30】
【0202】
を用いて評価され得る。この計算は、1≦i≦kのとき、メモリ内に1個の
【0203】
【外39】
【0204】
だけを保持することにより実行できる。上記の計算において、fi に対応する窓関数は必要ではないことに注意する必要がある。
部分検証は、屡々検証不能になることがある順序回路を検証するために有効である。本発明の方法及びシステムを用いることにより、かかる順序回路に関する重要な情報が得られる。
【0205】
C. 分割を利用する部分検証
一部の回路の又はシステムの表現は分割既約順序付二分決定グラフを用いてもコンパクトに表現できない場合がある。このような場合、関数の重要な部分が全体的に構築される。例えば、256個の分割中の132個を構築することができる回路によって、プログラム実行が時間的資源の制約に起因して中止になる前に、真理値表の薬52%を解析することが可能になる。一方、モノリシック既約順序付二分決定グラフを使用する場合、プログラム実行は有用な部分的な情報を少しも与えることなく中止になる。また、シミュレーション技術は、回路又はシステムの所与の関数表現を被覆する際に不適切である。設計に過誤が多い場合、誤りのある極小項は2個以上の分割に分布し、数個の分割を処理するだけで検出され得る可能性が高い。かくして、殆どの場合に、回路又はシステム中の誤りは、1乃至2個の分割を構築することにより検出され得る。
【0206】
このサンプリング方法は、組合せ形、順序形、或いは、これらの混合形の信号設計の全ての設計に適用され得る。一般的に、与えられた回路は、その状態空間の分割を作成し、分割内の設計の機能性だけを解析することによって簡単化される。
回路は分割ベクトルを当てはめることにより分割され、設計は各分割ベクトル毎に検証される。これらのベクトルは、所与の回路又はシステムの入力変数若しくは内部変数での部分割当てである。部分割当てとは、全ての変数ではなく、一部の変数への割当てを意味する。分割ベクトルは、回路がより小さい真理値表を有するように回路又はシステムを簡単化する。かくして、得られた分割システムは、モデル検査若しくは組合せ検証技術を用いて検証することが容易になる。
【0207】
形式的な方法を用いて検証できない非常に複雑な設計の場合、選択されるベクトルの個数は、サンプリングが計算資源に関して非常にコスト高にならないように充分に減少される。しかし、分割が実行される変数の個数は充分にあるので、各分割は所与の回路の形式的な検証が実現できる程度に充分に小さくなる。一例として、1000個のフリップフロップと、100個の入力変数をもち、じゅうらいのBDDベース法を用いて検証することが非常に困難である順序回路の場合、100個の分割が20個の変数を用いて形成される。回路は、回路のブール空間の分割を検査することによって部分的に検証される。
【0208】
固定数の分割ベクトルは、A. Narayan他による“Partitioned-ROBDDs -- A Compact, Canonical and Efficiently Manipulable Representation of Boolean Fuctions ”, ICCAD, November 1996 に記載されるような冗長性及び平衡性の規準に基づく分割(splitting) 変数選択法を用いて自動的に選定してもよい。特に、R個(例えば、20個)の変数に関する分割を行いたい場合、分割変数選択法は、所与の順序回路の組合せ表現に適用され、R個の最良の変数が冗長性及び平衡性のコスト関数に基づいて自動的に得られる。換言すると、望ましい個数Z個の分割は、上記のR個の変数上でZ(但し、Z≦2R )回のブール割当てを(例えば、ランダムに)生成することによって作成することができる。これらのR回の部分割当ては遷移関係の適用毎に繰り返されるか、又は、Z回の割当ては、所定のR個の変数に関する異なる若しくはランダムな割当てを生成することによって次の遷移関係の適用中に変更してもよい。これらのR個の変数は次の遷移関係の適用中に変化しても構わない。
【0209】
別の実施例において、ユーザは、所与の設計を検証するため使用される手動生成されたテストスイートから入力ベクトルを選択してもよい。殆どの設計にはこのようなテストスイートが設けられる。入力ベクトルの部分集合のある種の割当ては、設計に重大であることが分かっている。しかし、テストスイートは、残りの割り当てられていない変数の可能性のある全部の組合せを含むとは限らないので、一部の変数に対する割当てが与えられた場合に、設計の正しさを検証できない。本発明のシステム及び方法は、本明細書中に開示した分割技術を用いることによってこのような検証が行える。
【0210】
試験中の設計分野のエンジニアの専門知識が直接又は間接に利用される。エンジニア又は設計者の知識は、設計者のような明示的なガイダンスに従ってテストベクトルを選択することによって直接使用することができる。明示的なガイダンスは、遷移関係の適用若しくはBDD爆発時にサンプリング陽に使用するベクトルの選択の形を取る場合がある。設計者はQ個の入力変数、典型的に検証用のサンプルを作成する制御変数を与える。ある数Zに対し、所望の個数の分割は、Q個の変数上でZ(但し、Z≦2Q )回のブール割当てを(例えば、ランダムに)生成することによって作成することができる。
【0211】
エンジニア又は設計者の知識は間接的に利用してもよい。手動生成された設計用テストスイートは分割ベクトルを決定するため解析され得る。特に、テストスイート内の全てのテストベクトルは、ファイル中に順序付きの形式で書き込まれ得る。k個の最も一般的な部分割当てのシーケンスをテストスイート中に使用し、これらをサンプリングのため利用することができる。この場合、ある“部分割当てのシーケンス”が異なるテストベクトルの間で共通している場合、かかるシーケンスはサンプリング法のための優れた候補である。説明の便宜上、部分割当てのシーケンスである記号列STRは、入力変数に割り当てられた入力組合せから得られ、以下の通り記述されることに注意する必要がある。
【0212】
partial _i がi番目の部分割当てを示すとき、
STR = partial _1 <from-time-frame-1>; partial _2 <from-time-frame-2>; ...; partial _m <from-time-frame-m>
上記のpartial _1 は、(次節で説明するように)回路を第1の遷移関係の適用に制限するため使用され、partial _2 は、第2の遷移関係の適用の際に使用され、以下同様である。N個のこのような記号列をSTR _1, STR_2, STR_3, ..., STR _N を集める。個数Nの選定は、対話的、かつ、所与のシステムの複雑さに完全に依存してもよい。例えば、1000個のフリップフロップをもつ殆どの現在のシステムの場合、Nは5乃至100の範囲内に収まると考えられる。形式的検証は、各回路Ci が上記並びに以下に説明する部分割当てを用いて制限された設計を表す場合に、簡単化された回路C1 ,C2 ,C3 ,...,CN の集合を検証するN回の異なる形式的検証をN回別個に実行することにより行われる。
【0213】
テストスイートが最初に入力変数の部分集合上の部分割当てだけに含まれる状況では、所与のテストスイート内で最も頻繁に現れる変数を見つけることができる。P個(例えば、20個)の変数に関する分割が望まれる場合、テストスイート内でP個の最も共通に出現する変数が探索される。ある数Zに対し、所望の個数の分割は、P個の変数上でZ(但し、Z≦2P )回のブール割当てを(例えば、ランダムに)生成することによって作成することができる。したがって、ユーザの望み次第で、選択された“部分割当てのシーケンス”のシーケンス長を、kが1でもよい整数を表す場合に、第1のk個の時間フレームに制限することが可能である。
【0214】
また、設計及び設計の階層の再帰的な試験が屡々行われる。このため、設計の前のテストで誤りを生じたことが判明したベクトルは適当な分割ベクトルを形成する。
N個のベクトルのシーケンスが以下のように表される場合を考える。
[V1=0, V2=1]; [V1=0, V3=1]; [V3=1; V4=1]; ...;[ N番目のシーケンス]
また、順序回路Mは数個の同一の組合せ回路Cの連結である場合を想定する。
【0215】
この連結が連結順に順番に回路Cの次の状態変数を回路Cの現在の状態変数に接続することによって行われることは公知である。すなわち、順序回路Mは、各Ci が同一の組合せ回路のコピーを表すとき、
M = C1 <connected-to> C2 <connected-to> C3 ...
のように表現される。かくして、時間フレーム3の回路は回路C3 として参照される。
【0216】
次に、状態空間トラバース検証法の適用中に、V1 =0、V2 =1と設定することにより、所与の設計を初期的に制限する。このように制限された場合、遷移関係の適用後に、ある状態S1 に到達する。状態S1 に到達後、V 1=0、V3 =1が設定され、遷移関係が適用されて状態S2 に到達する。状態S2 に到達した後、V 3 =1、V 4 =1が設定され、状態S3 に到達するように遷移関係が適用される。この手続は状態Sn に到達するまで繰り返される。かくして、状態がSN によって獲得される状態に対し、システムの全特性が検証できる。
【0217】
また、一部の遷移関係の適用の際に、状態空間Si を表現するBDDが爆発した場合、このBDDは、手動(対話的)により多くの入力変数に値を与える(拘束する)ことによって、或いは、到達した状態空間の一部を放棄することによって分割される。このような分割後に、BDDベース解析をこれ以上続けられない、或いは、固定点に到達したという理由のため計算を終了する決定がなされるまで到達性解析が続けられる。
【0218】
このような方法で、所与の設計の機能性の制限された一部だけを検証することによって、非常に大きい空間状態の中のより大きい部分が処理される。分割既約順序付二分決定グラフは、空間的/時間的資源、すなわち、機能性被覆に顕著な制御性が得られる。かくして、検証実験の成功は、分解のパラメータ及び作成されるべき分割の個数を変更することによって保証され得る。
【0219】
D. フィルタアプローチにおける用途
本発明の分割検証技術は、米国特許出願第08/857,916号明細書に記載されたフィルターアプローチにも適用される。フィルタアプローチは、回路又はシステムを検証するため通信試験/検証技術の組合せを利用する。本質的に、より簡単かつ高速である技術の方が回路を検証又は変更するため最初に使用される。簡単かつ高速である技術の方がこの回路を検証できない場合、この技術の適用結果がより複雑かつコスト高である検証技術に渡される。最も巧妙な技術とは、充分な時間及びメモりが与えられた場合に、他の検証技術の助けを借りることなく回路を検証することができる技術である。このような枠組みにおいて、本発明の分割二分決定グラフ技術はコア技術である。
【0220】
E. 既約順序付二分決定グラフパッケージの並列実装
本発明のシステム及び方法は、既約順序付二分決定グラフを構築するため必要とされる資源を超1次的(若しくは指数関数的)に減少させる。また、各分割は独立であり、極小の計算オーバーヘッドで異なるプロセッサ上にスケジューリングすることができる。各分割は別々に順序付けられ、動的再配列の全能力を利用することができる。
【0221】
【発明の効果】
上記説明した通り、本発明によれば、ブールの回路及びシステムの検証の際に多数の零点が得られる。従来検証できなかった多数の回路及びシステムの等価性を検査することができる。
上記の通り、幾つかの特定の実施例を参照して本発明の説明を行ったが、当業者は種々の付加的な変形及び変更をなし得ることは明らかである。そこで、本発明は実施例に記載された態様以外の態様でも実施できることに注意する必要がある。したがって、本発明の実施例は全ての点に関して制限ではなく例示であり、本発明の範囲は上記実施例の説明ではなく特許請求の範囲の記載によって示されるていると考えられるべきである。
【図面の簡単な説明】
【図1】ディジタル論理回路のトポロジーを説明する論理設計図である。
【図2】図1に示された回路の二分決定グラフである。
【図3】図2に示された二分決定グラフの既約二分決定グラフである。
【図4】ディジタル論理回路のトポロジーを説明する論理設計図である。
【図5】図4に示された回路の入力ワイヤN10に対する二分決定グラフである。
【図6】図4に示された回路の入力ワイヤN11に対する二分決定グラフである。
【図7】図4に示された回路の入力ワイヤN12に対する二分決定グラフである。
【図8】図4に示された回路の出力ワイヤN13に対する二分決定グラフである。
【図9】擬似変数を組み込む二分決定グラフである。
【図10】図9の二分決定グラフの第1の分割二分決定グラフである。
【図11】図9の二分決定グラフの第2の分割二分決定グラフである。
【図12】本発明の分割検証技術の上位レベルフローチャートである。
【図13】本発明の分解点の判定方法を説明するフローチャートである。
【図14】本発明の分解表現を構築する間に二分決定グラフの爆発を判定する技術を説明するフローチャートである。
【図15】本発明の検証及び分解分割記号列形成技術を説明するフローチャートである。
【図16】本発明の分解分割記号列検査技術を説明するフローチャートである。
【図17】本発明の分解分割記号列組合せ技術を説明するフローチャートである。
Claims (15)
- 対応した共通主入力及び対応した共通主出力の集合を備えた第1及び第2の回路が等価であるかどうかを判定するコンピュータで実現される方法であって、
上記第1の回路を第1のブール関数として表現し、
上記第2の回路を第2のブール関数として表現し、
排他的論理和演算された第1及び第2のブール関数の対応する主出力により、第1及び第2のブール関数で形成されるブール空間を表現し、
上記ブール空間に対する二分決定グラフを用意し、上記二分決定グラフは少なくともいくつかのノードのブール空間を表現する擬似変数を有し、上記いくつかのノードは擬似変数で表現され、上記擬似変数は分解点に1対1に対応し、
各分解点について構築しようとする二分決定グラフのサイズが、コンピュータのメモリ使用量に関するプリセット限界を超える場合、上記ブール空間を第1の分割部分 (p1) 及び第1の分割部分に直交する第2の分割部分 (p2) で表現し、上記第1の分割部分 (p1) は分解点に関する第1の二分決定グラフ (Bh) と複数の二分決定グラフの合成後に得られた第2の二分決定グラフ (F h=1 ) との合成で表現され、
上記第1の分解部分 (p1) についての二分決定グラフのサイズが、上記プリセット限界を越えない場合、合成された順序付二分決定グラフ (OBDD) を作成し、上記第 1 の分割部分 (p1) の二分決定グラフのサイズが、上記プリセット限界を超える場合、上記第 1 の分割部分 (p1) の二分決定グラフを上記第1及び第2の二分決定グラフの記号論理積による記号列で表現し、該記号列をメモリに記憶し、上記第1及び第2の二分決定グラフの記号論理積は、該第1及び第2の二分決定グラフについての論理積を実際には実行しないが該論理積と等価な結果をもたらす関数を表現し、
記憶された上記記号列に含まれる二分決定グラフを順に合成し、
合成結果の表現するブール空間がゼロとして評価される場合に、上記第1及び第2の回路が等価であることを判定する
ことを特徴とする方法。 - 二分決定グラフが構築された少なくとも1個の上記第1の分割部分は第1の主入力の順序を有し、
二分決定グラフが構築された少なくとも1個の上記第2の分割部分は第2の主入力の順序を有する、請求項1記載の方法。 - 二分決定グラフが構築された少なくとも1個の上記第1の分割部分は第1のプロセッサによって構築され、
二分決定グラフが構築された少なくとも1個の上記第2の分割部分は第2のプロセッサによって構築される、請求項2記載の方法。 - 二分決定グラフが構築された少なくとも1個の上記第1の分割部分、及び、二分決定グラフが構築された少なくとも1個の上記第2の分割部分は、上記第1のプロセッサ及び上記第2のプロセッサによって並行に構築される、請求項3記載の方法。
- 上記メモリ使用量に関するプリセット限界はコンピュータに利用可能なメモリの量を定数値で分割することにより決定される、請求項2記載の方法。
- 上記メモリ使用量に関するプリセット限界は、前の二分決定グラフのサイズに定数値を乗算することにより決定される、請求項2記載の方法。
- 上記記号列に含まれる二分決定グラフを合成する順番は、多数の要素を合成する前に、より少ない数の要素を合成するようにスケジューリングする、請求項1記載の方法。
- 上記記号列に含まれる二分決定グラフを合成する順番に従って、最小の共通サポート要素を合成する前に、最大の共通サポート要素を合成するようにスケジューリングされる請求項1記載の方法。
- 論理ゲートのトポロジーと対応した主入力及び対応した主出力とを有する、予備的及び最終的なディジタル設計内容を検証する、コンピュータで実現される方法であって、
論理ゲートのトポロジーを有するモノリシック回路を形成するため、上記予備的及び上記最終的なディジタル設計内容に関する上記対応した主出力を排他的論理和演算し、
上記論理ゲートのトポロジー内の点に対する二分決定グラフを順番に構築し、
上記二分決定グラフのサイズがコンピュータのメモリ使用量に関するプリセット限界を超えたとき、上記トポロジー内の点に対する二分決定グラフの構築を停止し該点を分解点としてマークし、
二分決定グラフのサイズが上記プリセット限界を超えたために構築されなかった二分決定グラフの代わりに、分岐点に1対1に対応する擬似変数を用意し、上記モノリシック回路の出力を、少なくとも1つの擬似変数を含む二分決定グラフで表現し、
上記少なくとも1つの擬似変数を含む二分決定グラフを、第1の分割部分 (P1) 及び第1の分割部分に直交する第2の分割部分 (P2) で表現し、上記第1の分割部分は分解点に関する第1の二分決定グラフ (Bh) と複数の二分決定グラフの合成後に得られた第2の二分決定グラフ (F h=1 ) との合成として表現され、
上記第1の分割部分 (p1) の二分決定グラフのサイズがプリセット限界を超えなかった場合、上記第1の分割部分 (p1) について順序付二分決定グラフ (OBDD) を作成し、上記第 1 の分割部分の二分決定グラフのサイズが上記プリセット限界を超えた場合、上記第1の分割部分 (p1) を上記第1及び上記第2の二分決定グラフの記号論理積による記号列で表現し、該記号列をメモリに記憶し、上記第1及び第2の二分決定グラフの記号論理積は、該第1及び第2の二分決定グラフについての論理積を実際には実行しないが該論理積と等価な結果をもたらす関数を表現し、
記憶された上記記号列に含まれる二分決定グラフを順に合成し、
合成結果の表現するブール空間がゼロとして評価される場合に、上記第1及び第2の回路が等価であることを判定する
ことを特徴とする方法。 - 上記モノリシック回路の出力は二分決定グラフの複数の擬似変数により表現される請求項9記載の方法。
- 上記擬似変数を含む二分決定グラフを更なる分割に分割する請求項10記載の方法。
- 上記第1の分割部分は少なくとも1個の分解点を含む請求項9記載の方法。
- 対応した共通主入力及び対応した共通主出力の集合を備えた第1及び第2の回路が等価であるかどうかを判定するコンピュータシステムであって、
上記第1の回路を第1のブール関数として表現する手段と、
上記第2の回路を第2のブール関数として表現する手段と、
上記第1及び第2のブール関数の対応した主出力を排他的論理和演算することによりブール空間を表現する手段と、
上記ブール空間に対する二分決定グラフを構築する手段であって、上記二分決定グラフは少なくともいくつかのノードのブール空間を表現する擬似変数を有し、上記いくつかのノードは擬似変数で表現され、擬似変数は分解点に1対1に対応する手段と、
構築しようとする二分決定グラフのサイズがコンピュータのメモリ使用量に関するプリセット限界を超える場合に、上記ブール空間を第1の分割部分(p1)及び第2の分割部分(p2)で表現する手段であって、上記第1の分割部分 (p1) は、分解点に関する第1の二分決定グラフ (Bh) と複数の二分決定グラフの合成後に得られた第2の二分決定グラフ (F h=1 ) との合成により表現される手段と、
上記第1の分割部分(p1)についての二分決定グラフのサイズが上記プリセット限界を越えなかった場合、上記第1の分割部分 (p1) についての順序付二分決定グラフ (OBDD) を作成し、上記第1の分割部分 (p1) についての二分決定グラフのサイズが上記プリセット限界を超える場合、上記第 1 の分割部分の二分決定グラフを、上記第1及び第2の二分決定グラフの記号論理積による記号列で表現し、該記号列をメモリに記憶する手段であって、上記第1及び第2の二分決定グラフの記号論理積は、該第1及び第2の二分決定グラフについての論理積を実際には実行しないが該論理積と等価な結果をもたらす関数を表現する手段と、
上記記号列に含まれる二分決定グラフを順に合成し、合成結果の表現するブール空間がゼロとして評価される場合に、上記第1及び第2の回路が等価であることを判定する手段と、
を含むことを特徴とするコンピュータシステム。 - 上記判定する手段は、複数のプロセッサを含む請求項13記載のコンピュータシステム。
- 上記複数のプロセッサは、上記第1及び第2の分割部分がゼロとして評価されるか否かを並行して判定する請求項14記載のコンピュータシステム。
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 JPH11219378A (ja) | 1999-08-10 |
JP4028107B2 true 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) |
Families Citing this family (77)
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 | 株式会社東芝 | 部品配置支援装置、方法およびプログラム |
US20080109201A1 (en) * | 2006-10-31 | 2008-05-08 | Fujitsu Limited | Disjunctive transition relation decomposition based verification |
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 |
US8812943B2 (en) * | 2011-09-23 | 2014-08-19 | Fujitsu Limited | Detecting data corruption in medical binary decision diagrams using hashing techniques |
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
Also Published As
Publication number | Publication date |
---|---|
US6560758B1 (en) | 2003-05-06 |
US7673263B2 (en) | 2010-03-02 |
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 |
JPH11219378A (ja) | 1999-08-10 |
US7028278B2 (en) | 2006-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4028107B2 (ja) | 分解及び分割によるハードウェアの検証並びに表現方法 | |
JP3441645B2 (ja) | フィルタリング型アプローチを使用する組合せ回路の検証方法 | |
US7280993B2 (en) | Reachability-based verification of a circuit using one or more multiply rooted binary decision diagrams | |
US6957404B2 (en) | Model checking with layered localization reduction | |
Brayton et al. | Multilevel logic synthesis | |
US6415430B1 (en) | Method and apparatus for SAT solver architecture with very low synthesis and layout overhead | |
JP2001142937A (ja) | 回路のスケジューリング正当性チェック方法及びスケジュール検証方法 | |
US8799838B2 (en) | Equivalence checking method, equivalence checking program, and equivalence checking device | |
JP4334061B2 (ja) | サンプリングベースの順序付き二分決定グラフの変数順序決定方法 | |
US5491639A (en) | Procedure for verifying data-processing systems | |
JP2001022820A (ja) | 順序回路の検証方法 | |
Touati et al. | Testing language containment for ω-automata using BDDs | |
US7308657B2 (en) | Method for generating hints for program analysis | |
Chen et al. | Don’t-care-based node minimization for threshold logic networks | |
Ashar et al. | Verification of scheduling in the presence of loops using uninterpreted symbolic simulation | |
Tahar et al. | Three approaches to hardware verification: HOL, MDG, and VIS compared | |
Lee | Contemporary Logic Synthesis: with an Application to AQFP Circuit Optimization | |
JP3582849B2 (ja) | 論理型プログラム検証方法 | |
Mendias et al. | Efficient verification of scheduling, allocation and binding in high-level synthesis | |
JP2001056828A (ja) | 定義集合解析方法 | |
Thornton et al. | IMPLEMENTATION OF SWITCHING CIRCUIT MODELS AS VECTOR SPACE TRANSFORMATIONS | |
Houngninou | Implementation of Switching Circuit Models as Vector Space Transformations | |
Iyer | Research Proposal: Efficient and Effective Symbolic Model Checking | |
Macedo et al. | Logic Synthesis of Digital Systems from Petri Net Descriptions | |
Villa et al. | Efficient Solution of Language Equations Using Partitioned Representations |
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 |