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
Application number
JP10313768A
Other languages
English (en)
Other versions
JP4028107B2 (ja
Inventor
Jawahar Jain
ジェイン ジャワハー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPH11219378A publication Critical patent/JPH11219378A/ja
Application granted granted Critical
Publication of JP4028107B2 publication Critical patent/JP4028107B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 本発明は、ディジタル回路及びシステムのブ
ール空間表現の窓を用いる二分決定グラフベースの検証
技術で検証し得ないディジタル回路及びシステムの評価
方法並びにシステムの提供を目的とする。 【解決手段】 本発明は、ディジタル回路又はシステム
をブール空間の多数の分割で表現し、多数の分割を用い
て検証するシステム及び方法である。決定グラフはディ
ジタル回路又はシステムに対し構築され、グラフサイズ
を縮小するため擬似変数が分解点に導入される。分解後
に残る擬似変数は、ディジタル回路又はシステムをブー
ル空間の多数の分割により表現するため、合成、分割さ
れる。各分割はスケジューリング順に構築され、他の分
割とは別個に取り扱える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にコンピュ
ータ支援設計(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 Funct
ionManipulation”, IEEE Trans. Computer C-35(8), 6
67-691, August 1986に記載されたApply 手続のある種
の変形を用いて構成される。Apply 手続を用いると、ゲ
ートgに対する既約順序付二分決定グラフはゲートgの
入力の既約順序付二分決定グラフの記号操作によって合
成される。所定の回路に対し、回路のゲートは、所望の
出力ゲートの既約順序付二分決定グラフが構成されるま
で、深さ優先(縦型)で処理される。
【0007】VLSIのCAD並びに他のコンピュータ
科学の分野における多数の問題は、ブール関数を用いて
定式化することができる。従って、既約順序付二分決定
グラフは等価性検査を行うため有効である。しかし、コ
ンピュータ支援解法及び等価性検査を行う際の中心的課
題は、等価性検査が効率的に行えるように簡潔なブール
関数の表現法を見つけることである。既約順序付二分決
定グラフは効率的に操作することが可能であり、上記の
如く標準形である。殆どの実際的な関数の場合に、既約
順序付二分決定グラフは、サイズ(メモリ空間)及び計
算時間の両方の点で経済的である。そのため、既約順序
付二分決定グラフは種々のCAD問題を解決するための
選択候補のブール表現法として頻繁に使用される。
【0008】しかし、既約順序付二分決定グラフは常に
経済的であるとは限らない。実際的な関心のある大半の
場合に、ブール関数によって記述された回路又はシステ
ムを表現する既約順序付二分決定グラフは、回路又はシ
ステムへの主入力の数に指数関数的な関係のある空間を
必要とする。このため、等価性の解法はNP困難問題に
なる。メモリ或いは計算時間の両方の面に関して大きい
空間が要求されるため、既約順序付二分決定グラフを用
いて解法することができる問題の複雑さに制約が課され
る。
【0009】種々の方法が既約順序付二分決定グラフの
経済性を改良するため提案されている。その中の一部の
方法は経済性を改良するが、既約順序付二分決定グラフ
の標準性と操作性を維持しない。かかる方法は既約順序
付二分決定グラフの適用可能性を縮小する。標準性及び
操作性を維持する別の方法は、唯一の起点を根元とする
単一グラフとして全ブール空間に亘る関数を表現する。
しかし、単一グラフは、メモリ又は時間のいずれかの制
約が充足されないようなサイズの既約順序付二分決定グ
ラフを必要とする。
【0010】既約順序付二分決定グラフのサイズを縮小
する方法が提案されている。既約順序付二分決定グラフ
のサイズは変数の順序に強く依存する。従って、既約順
序付二分決定グラフのサイズを縮小する変数順序を決定
する多数のアルゴリズムが提案されている。しかし、一
部のブール関数に対し、利用可能な程度に充分に小さい
サイズの既約順序付二分決定グラフが得られる変数順序
が存在しない場合や、そのような変数順序を効率的に見
つけられない場合が起こり得る。
【0011】既約順序付二分決定グラフの空間及び時間
の必要量は、全体的な順序付けの要求条件を緩和するこ
とにより削減してもよい。フリー二分決定グラフ(FB
DD)は、このような解決策の一例である。フリー二分
決定グラフは、変数が起点から終端までの所定の経路内
で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に示されている。ステップ13
0において、カウンタは第1の主入力に設定される。ス
テップ131では、全てのゲート若しくは節点に対し二
分決定グラフBDDの構築が試行されたかどうかが判定
される。ステップ132において、サイズに関して二分
決定グラフBDDの爆発が起こるまで、各ゲート若しく
は節点毎に中間二分決定グラフが構築される。このよう
な爆発が生じたとき、ステップ134において、ゲート
若しくは節点が分解点としてマークされ、ステップ13
5において、分解点としてマークされたゲート若しくは
節点に対する二分決定グラフの擬似変数が挿入される。
【0026】このような処理には少なくとも二つの利点
がある。第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個の中間二分決定グラフよ
りも小さく、中間二分決定グラフを構築する必要はな
い。
【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 , k )} として表され、ここで、
【0033】
【外2】
【0034】は、Xn に関して定義され、以下の条件を
満たす。
【0035】
【外3】
【0036】なお、+及び∧はブール演算子OR及びA
NDを表す。集合{w1 ,...,wk }はWとして表
される。各wi は窓関数と称される。直観的に、窓関数
iは、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 として表現可能であり、f
i の値はwi によって被覆されていないブール空間の部
分に対しドントケアである。既約順序付二分決定グラフ
Fのサイズは、|F|によって示される。そのため、|
f |によって示される全ての分割のサイズの合計は、
【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 Ef
fciently Manipulable Representation of Boolean Fun
ctions", ICCAD, November 1996に記載されているよう
に、f及びgを二つのブール関数とし、
【0064】
【数6】
【0065】が定義1の条件1−3を満たす夫々の分割
既約順序付二分決定グラフである場合を考える。また、
f 及びXg の両方のi番目の分割は同じ変数順序πi
を有すると仮定する。このとき、以下のように表され
る。
【0066】
【外12】
【0067】C. 演算の計算量 二つの既約順序付二分決定グラフF及びGが与えられた
場合、次の演算
【0068】
【外13】
【0069】で実行できる。分割既約順序付二分決定グ
ラフの場合、異なる分割は、別々に操作され、
【0070】
【外14】
【0071】である。メモリ内には同時に1個の分割し
か存在すべきではないので、
【0072】
【外15】
【0073】によって与えられる。また、既約順序付二
分決定グラフと同様に、関数fの充足集合のサイズは、
直交分割既約順序付二分決定グラフに対し、オーダーO
(|X f |)で計算され得る。 D. 存在記号化 基本的なブール演算の他に、順序回路の形式的な検証に
広範囲に使用される別の有用な演算は存在記号(∃
x f)演算である。関数f(∃x f)からの変数xの存
在記号は、
【0074】
【数7】
【0075】によって与えられる。分割既約順序付二分
決定グラフ表現形式において、余因子は、Xに関して、
【0076】
【外16】
【0077】を余因子化すること、即ち、
【0078】
【数8】
【0079】により簡単に得られる。しかし、余因子化
演算を実行した後、正及び負の余因子は異なる窓関数を
有し、論理和は分割に基づいて直接行えない。この問題
は定量化されるべき変数に依存しない窓関数を選択した
場合には生じない。存在記号化は以下の通り行われる。
f ={(wi ,fi )|1≦i≦k}が、1≦i≦k
に対し、∃x i =wiとなるようなfの分割既約順序
付二分決定グラフであるとするならば、 X∃x f={(wi ,∃x i )|1≦i≦k} は、∃x fの分割既約順序付二分決定グラフ表現形式で
ある。
【0080】頻繁に使用される別の重要な演算は、∀x
fと表記されるfからのXの全称記号である。全称記号
の十分条件は、窓関数が限定されるべき変数と独立であ
る上に、直交していることである。全称記号化は以下の
通り行われる。1≦i,j≦k かつ i≠j に対
し、 ∀x i =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:
n →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 に記載され
ているようなピーク中間必要量よりも著しく少ない場合
に、上記ケースは最終的な結果に生じない。
【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 が与えられた場合、
1 =w1 ∧fi を表現する既約順序付二分決定グラフ
がfよりも小さくなるようなfi が望ましい。以下の観
察が適切である。
【0089】観察1: fi =fdwi (Ψ,X)(Ψ←ψbdd ) 及び f=fd (Ψ,X)(Ψ←ψbdd ) を仮定する。wi が主入力上でキューブである場合、f
d 及びfの任意の変数順序に対し、 |fi |≦|f| である。
【0090】証明:
【0091】
【数10】
【0092】を仮定する。wi が主入力だけに依存する
場合、余因子化及び合成の順序は変更することができ
る。したがって、
【0093】
【数11】
【0094】である。この結果として、
【0095】
【数12】
【0096】が得られる。wi がキューブである場合、
【0097】
【数13】
【0098】であり、したがって、 |fi |≦|f| である。次に、
【0099】
【外17】
【0100】によって表現されるとする。
【0101】
【外18】
【0102】を合成することにより、分割関数を作成す
ることができ、
【0103】
【数14】
【0104】が形成される。窓関数wi の集合が与えら
れた場合、fの分割既約順序付二分決定グラフXfは、
【0105】
【数15】
【0106】により与えられる。上記の定義が定義1.
の全ての条件を満たすかどうかは簡単に検査できる。w
i がキューブである場合、fi はfに対する既約順序付
二分決定グラフよりも小さいサイズを有することが保証
される。また、kがwi のリテラルの個数であるとき、
i を表現する既約順序付二分決定グラフはk個の内部
節点を有する。wi
【0107】
【外19】
【0108】は、分離的(ディスジョイント)サポート
を有するので、
【0109】
【数16】
【0110】が得られる。また、fi の構築中の中間結
果は、fの構築中の中間結果よりもサイズが小さいの
で、中間ピークメモリ必要量は削減される。観察1は、
f及びfi が異なる変数順序を有し得るときに動的変数
再配列が行われる場合には成立しないことに注意する必
要がある。しかし、実際上、動的変数再配列は分割の際
に小さいグラフ上で行われるので、非常に効率的である
と考えられる。窓関数がキューブよりも複雑な主入力の
関数である場合でさえ、
【0111】
【数17】
【0112】が使用される。但し、
【0113】
【外20】
【0114】はwi 上のfの一般化余因子である。wi
上のfの一般化余因子は、通常、fよりも遙かに小さ
い、しかし、i番目の分割既約順序付二分決定グラフの
サイズの場合、
【0115】
【外21】
【0116】は、最悪のケースでオーダーO(|wi
|fi |)になり得る。これを避けるため、一般的な窓
関数を使用する間に小さいwi を使用する。 2. 窓関数の選定 優れた窓関数を獲得する方法は、先験的選定及び「爆
発」ベース選定の二つのカテゴリに分類される。
【0117】a. 先験的分割法 先験的分割法は分割のため所定数の主入力を使用する。
そのため、分割がk個の主入力に関して行われる場合、
k 個の分割が上記変数の全ての二値割当に対応して作
成される。例えば、分割がx1 及びx2 に関して行われ
る場合、4個の分割
【0118】
【外22】
【0119】が作成される。これらの分割既約順序付二
分決定グラフはモノリシック既約順序付二分決定グラフ
よりも小さくなることが保証される。所定の時間にメモ
リに存在すべき分割は1個に限られるので、メモリ必要
量は常に少なく、このメモリ削減量は大きいので、全て
の分割を処理するため要する時間も全体的に削減され
る。
【0120】分割のための変数を選定する場合、別の分
割を別々に作成する場合に生ずる冗長性を最小限に抑え
ると共に、実現される分割を最大限にする変数を選定す
ることが望ましい。変数xに関して関数fを分割するコ
ストは、 costx (f)=α[px (f)]+β[r
x (f)] のように定義され、px (f)は、
【0121】
【数18】
【0122】によって与えられる分割ファクタであり、
x (f)は、
【0123】
【数19】
【0124】によって与えられる冗長性ファクタであ
る。分割ファクタは最悪の二つの分割を示すので、分割
ファクタは小さい方がよい。同様に、冗長性ファクタは
二つの分割を作成するため関係する総作業を意味するの
で、冗長性ファクタは小さい方がよい。全体的なコスト
が小さくなる変数xが分割のため選定される。所定の関
数Fのベクトル及び変数xに対し、分割のコストは、
【0125】
【数20】
【0126】のように定義される。主入力PIはfd
びψを分割するコストが増加する順序に並べられる。ユ
ーザによって指定された所定の数kを用いて、最良のk
個の主入力が選定される。類似したコスト関数は、分割
既約順序付二分決定グラフを作成するため、主入力変数
だけではなく、主入力PIに関して表現された
【0127】
【外23】
【0128】のような擬似変数を選定することが可能で
ある。この場合、余因子演算は、非キューブの窓関数に
対する一般化余因子演算になる。このように全ての主入
力PIがfd 及びψを分割するコストに従って格付けさ
れているタイプの選定は、静的分割選定と称される。動
的分割戦略は、最良の主入力PI(即ち、x)がfd
びΨに基づいて選定され、引き続く主入力が、一方の分
割中のfd 及びΨと、別の分割中の
【0129】
【外24】
【0130】に基づいて機能的に選定される分割であ
る。動的分割は、指数関数的な個数の余因子を必要とす
るため、コスト高になり得る。このコストは、関心のあ
る値だけが、
【0131】
【外25】
【0132】のサイズであるという事実を利用すること
によって多少削減できる。
【0133】
【外26】
【0134】の値に関する上限は、fd の既約順序付二
分決定グラフをトラバース(横断)し、xに対応した変
数idを備えた節点を見つけると分枝x=1を選ぶ。こ
のような形で既約順序付二分決定グラフをトラバースす
ることによって獲得された二分決定グラフは既約されな
いので、この方法では正確なカウントが得られない。こ
の方法の利点は、新しい節点を作成する必要がないこ
と、並びに、トラバースが高速に行えることである。
【0135】b. 爆発ベース分割法 爆発ベース分割法の場合、fd 中の
【0136】
【外27】
【0137】は、連続的に合成される。グラフのサイズ
が一部の合成(例えば、ψj )に対して急激に増大する
場合、窓関数wは現在の
【0138】
【外28】
【0139】に基づいて選定される。窓関数は、主入力
PI及びその補集合、或いは、主入力に関して表現さ
れ、非常に小さいサイズをもつある種の
【0140】
【外29】
【0141】及びその補集合のいずれかである。窓関数
wが獲得された後、二つの分割
【0142】
【外30】
【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 _PARTITIO
N (動的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は、
h のように表される。また、PREVIOUS_SIZEは、h−
1個のポイントを合成した後のF(μj )のサイズを表
す。
【0149】分割法が呼び出されるのは以下の場合であ
る。 (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が爆発す
る場合だけに使用され、分解表現の形成中には使用され
ない。
【0150】(C)FINAL _SIZE > PRE_SET _MEMORY
_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にセットされる。
【0151】3.等価点分割法 上記方法は、ネットワーク全体を検証する問題を簡単化
するため構造的かつ機能的技術の組合せを用いる内部対
応関係の抽出及び使用に基づく技術に適用される。上記
の対応関係は、機能的な等価性だけでもよく、或いは、
内部節点間の間接含意でもよい。
【0152】この検証方法のフローは、参考のため引用
した米国特許出願第08/857,916号に記載され
ている。上記技術の一部の大筋は以下のように要約する
ことができる。 1.二つの所与の回路の内部ゲート/出力ゲートの間で
簡単な等価性を判定する。等価的なゲートは併合され
る。より詳細には、共通擬似変数が全ての等価的な(相
補的な)ゲートペアの両方の要素に対し導入される。
【0153】2.シミュレーションを用いて結果として
得られた回路中の潜在的に等価的な節点を計算する。 3.潜在的に等価的なゲートの中で本当に等価性のある
ゲートを決定する。二つの回路の間で等価的なゲートは
併合される。 4.前のステップで決定された内部等価性を用いて出力
の等価性を推定する。
【0154】2個のゲートが等価(反転)であることが
検出されたため併合される毎に、これらのゲートは等価
(反転)ゲートとしてマークされる。このようなゲート
には、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 に記載されているような機能的分解
手続を用いて導入され得る。かくして、分解点には、機
能的分解点と、所与の回路のペアの中で等価(反転)で
あると判定された点とが含まれる。
【0155】IV. 分割操作 A. 合成 分割法が呼び出された後、グラフは以下の通り分解され
たままに維持される。BDDパッケージ内の合成は、if
-then-else文(ITE)演算を用いて行われる。しか
し、最後のITE(合成)演算は行われず、最後の演算
は以下の通り分解される。Ψh 分割法が呼び出された場
合を想定する。以下の説明におけるシンボルを簡単化す
るため、BDDψh (μj )はBj と表記する。合成の
数学的表現は以下の通りである。
【0156】
【数22】
【0157】Bh ∧Fh=1 は所与の関数Fのある分割
(p1 )を表現し、
【0158】
【外31】
【0159】は関数Fの別の分割(p2 )を表現する。
両方の分割は機能的に直交している。上記の各分割は独
立した関数であると考えられ、上記の分解及び分割処理
は再び再帰的に実行されるが、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 、或い
は、その分割記号列が合成される。
【0160】次に、ある種のBDDψq (μj )の合成
に起因して、分解分割記号列に関して分割法が呼び出さ
れるとき、ψq (μj )のBDDとの記号論理積と、ψ
q (μj )の合成が行われた分解分割記号列(論理積ブ
ール表現)も必要とされる。かくして、分解分割記号列
の長さが成長する。任意の分枝に沿った繰り返しの終了
時に、結果的に生じた分解分割記号列は、BDDのアレ
イ(Ad )の要素として記憶される。このアレイの各要
素は、このアレイの他の全ての要素と直交する。
【0161】二つのBDD B1とB2の間の記号論理
積は、実際の論理積を実行するのではなく、将来の先の
ある点まで結果を延期する。このため、B1とB2の間
の実際の論理積である新しいBDD B3を作成する代
わりに、記号論理積アレイsymbolic_conjunction _ar
ray 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)∧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)の
代わりに、
【0164】
【外32】
【0165】と、gが0に一致する場合のDPS α及
び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である。
【0166】アレイAd の中から要素pi が獲得とされ
た後、カットセット(μi )が主入力に対応せず、か
つ、検証問題に対する回答が未だ獲得されていない場
合、動的BDD分割手続DYNAMIC _BDD _PARTITION()
が使用され、p1 が別のカットセット(μt )に合成さ
れる。カットセット(μt )はカットセット(μi )と
主入力との間で選定される。この処理は、分解分割記号
列DPS内のすべてのBDDが主入力変数に関して表現
されるまで続けられる。
【0167】かくして、実質的に上記の処理が図15に
示されている。同図において、分解分割記号列は存在す
るが、主入力に関して表現されていない。ステップ15
0において、分解点の合成が行われる。ステップ151
では、結果として得られた合成BDDが爆発するかどう
かを判定するため検査される。ステップ151及び15
2においてそれぞれ判定されるように、得られた合成B
DDが爆発せず、BDDが不充分である場合、合成の処
理は他の点に対して繰り返される。BDDが満足できる
場合、比較中の回路は等価的ではない。しかし、BDD
が爆発するとき、2個の分解分割記号列がステップ15
3で作成される。ステップ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を並べる。合成の要
素f 1 , 2 ,...,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であるか否かを検出する
ため使用される。
【0171】1. スケジューリングスキーム まず、
【0172】
【数23】
【0173】である場合を考える。また、gi に対応し
たbi と、S={b1 ,b2 ,...,bn }を想定す
る。ここでの目的は、同時に2個ずつ、Sにおいて上記
の如くのBDDの演算を行うことによって既約順序付二
分決定グラフROBDD(f)を計算することである。
以下の全てのスケジューリングスキームは、各ステップ
で、演算結果
【0174】
【数24】
【0175】が小さくなるように、Sから2個のROB
DDのBi 及びBj を選択する点で貪欲である。次に、
i 及びBj はSから削除され、B(i,j)がSに追
加される。このステップは、|S|=1になるまで繰り
返される。BDDのペアbi 、bj と、ブール演算
【0176】
【外33】
【0177】とが与えられた場合、結果として得られる
最悪ケースのサイズのオーダーは、 O(|bi ||bj |) であることが公知である。したがって、サイズベースの
方式は、結果として得られるBDDができるだけ小さく
なるように2個の最小BDDであるbi 及びbjを選択
する。
【0178】ある状況下では、サイズだけに基づくBD
Dの順序付けは十分ではない。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 のサイ
ズ及びエクストラサポートによって格付けされる。最小
ランク(サイズ又はエクストラサポート)を有するBD
Dは、リストの前方にある。次に、非常に少数(例えば
3個)のBDDがLsize及びLsup の先頭から選択され
る。bi との陽的AND演算が上記の各BDD上で実行
される。最小サイズを生じるBDDは所望のbj であ
る。
【0184】2.合成の順序 窓関数を選択し、
【0185】
【外34】
【0186】によって与えられるi番目の分割に対する
分解表現を作成した後、最終ステップで、
【0187】
【外35】
【0188】を合成する。所定の変数順序に対し、最終
的なROBDDのサイズは一定であるが、中間メモリ必
要量及び合成に要する時間は、分解点が合成される順序
の強関数である。fd に合成され得る候補変数毎に、結
果の合成ROBDDのサイズを評価するコストが割り当
てられる。最小コスト評価の変数が合成される。サポー
ト集合サイズに基づく簡単なコスト関数は、実際上巧く
機能する。したがって、合成後に、ROBDDのサポー
ト集合のサイズの増加が最も小さい分解変数が選択され
る。各ステップで、合成の候補は、他の何れのΨbdd
の中に現れない上記の分解点に制限される。これは、参
照のため引用した 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回だけ合成されればよいことを保証する。
【0189】V. アプリケーション A. 組合せ的検証 分割ROBDDは、2個の組合せ回路の等価性を検査す
るため直接適用され得る。二つの回路f及びgの夫々の
出力は、単一の回路を得るためXORゲートによって組
み合わされる。分割ROBDDは、得られた回路が充足
しているかどうかを検査するため使用される。これは、
全ての分割に対し、
【0190】
【数27】
【0191】を検査するだけでよい。実際上、この技術
は、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 において、関数
【0192】
【外36】
【0193】が充足していることが判明した場合、全て
の分割を処理しなくても終了させることが可能である。
二つの回路を検証する別の方法は、等価性を確率的に検
査することである。このような方法は、参考のため引用
した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) が断定される。直和分割の場合、共通の極小項を共有す
る二つの分割は存在しない。したがって、各分割は別々
にハッシュ化することができ、それらのハッシュ符号が
p (f)を獲得するため加算される。これは、H
p (f)=Hp (g)であり、f及びgが分割され、か
つ、別々にされているかどうかを検査することを意味す
る。
【0194】
【外37】
【0195】の両方は、同時にメモりに存在する必要は
ない。また、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’)
は、以下の式:
【0196】
【数28】
【0197】を用いて評価される。次の状態の集合は、
現在の状態の集合に追加され、上記の計算は定点に到達
するまで繰り返される。この定点はシステムの到達可能
な状態の集合を表現する。殆どの場合に、遷移関係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として表
現される。このタイプの分割は論理積形分割既約順序付
二分決定グラフの特殊ケースである。本発明の分割は、
i が必ずしも個別のラッチに対応しなくてもよいの
で、非常に汎用的である。また、論理積形分割遷移関係
の有効性は、存在記号が論理積の全体に亘って拡がって
いないので制限される。最悪の場合、全てのTi が現在
の状態変数だけに依存するならば、論理積形分割遷移は
使用できない。
【0198】存在記号が分割全体に拡がる論理和形分割
の方が興味深い。本発明によれば、所与のシステムに対
する基本的な遷移モデルに制限を加えることなく遷移関
係を論理和形分割することが可能である。本発明の場
合、
【0199】
【数29】
【0200】となるような任意のfi の集合が遷移関係
を表現するため使用され得る。次の状態の集合は以下の
式:
【0201】
【数30】
【0202】を用いて評価され得る。この計算は、1≦
i≦kのとき、メモリ内に1個の
【0203】
【外38】
【0204】だけを保持することにより実行できる。上
記の計算において、fi に対応する窓関数は必要ではな
いことに注意する必要がある。部分検証は、屡々検証不
能になることがある順序回路を検証するために有効であ
る。本発明の方法及びシステムを用いることにより、か
かる順序回路に関する重要な情報が得られる。
【0205】C. 分割を利用する部分検証 一部の回路の又はシステムの表現は分割既約順序付二分
決定グラフを用いてもコンパクトに表現できない場合が
ある。このような場合、関数の重要な部分が全体的に構
築される。例えば、256個の分割中の132個を構築
することができる回路によって、プログラム実行が時間
的資源の制約に起因して中止になる前に、真理値表の薬
52%を解析することが可能になる。一方、モノリシッ
ク既約順序付二分決定グラフを使用する場合、プログラ
ム実行は有用な部分的な情報を少しも与えることなく中
止になる。また、シミュレーション技術は、回路又はシ
ステムの所与の関数表現を被覆する際に不適切である。
設計に過誤が多い場合、誤りのある極小項は2個以上の
分割に分布し、数個の分割を処理するだけで検出され得
る可能性が高い。かくして、殆どの場合に、回路又はシ
ステム中の誤りは、1乃至2個の分割を構築することに
より検出され得る。
【0206】このサンプリング方法は、組合せ形、順序
形、或いは、これらの混合形の信号設計の全ての設計に
適用され得る。一般的に、与えられた回路は、その状態
空間の分割を作成し、分割内の設計の機能性だけを解析
することによって簡単化される。回路は分割ベクトルを
当てはめることにより分割され、設計は各分割ベクトル
毎に検証される。これらのベクトルは、所与の回路又は
システムの入力変数若しくは内部変数での部分割当てで
ある。部分割当てとは、全ての変数ではなく、一部の変
数への割当てを意味する。分割ベクトルは、回路がより
小さい真理値表を有するように回路又はシステムを簡単
化する。かくして、得られた分割システムは、モデル検
査若しくは組合せ検証技術を用いて検証することが容易
になる。
【0207】形式的な方法を用いて検証できない非常に
複雑な設計の場合、選択されるベクトルの個数は、サン
プリングが計算資源に関して非常にコスト高にならない
ように充分に減少される。しかし、分割が実行される変
数の個数は充分にあるので、各分割は所与の回路の形式
的な検証が実現できる程度に充分に小さくなる。一例と
して、1000個のフリップフロップと、100個の入
力変数をもち、じゅうらいのBDDベース法を用いて検
証することが非常に困難である順序回路の場合、100
個の分割が20個の変数を用いて形成される。回路は、
回路のブール空間の分割を検査することによって部分的
に検証される。
【0208】固定数の分割ベクトルは、A. Narayan他に
よる“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個の変数は次の遷移関係の適用中に変化して
も構わない。
【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-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
の範囲内に収まると考えられる。形式的検証は、各回路
i が上記並びに以下に説明する部分割当てを用いて制
限された設計を表す場合に、簡単化された回路C1 ,C
2 ,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 に到達する。状態S
1 に到達後、V1 =0、V3=1が設定され、遷移関係
が適用されて状態S2 に到達する。状態S2 に到達した
後、V2 =1、V1 =1が設定され、状態S3 に到達す
るように遷移関係が適用される。この手続は状態Sn
到達するまで繰り返される。かくして、状態がSN によ
って獲得される状態に対し、システムの全特性が検証で
きる。
【0217】また、一部の遷移関係の適用の際に、状態
空間Si を表現するBDDが爆発した場合、このBDD
は、手動(対話的)により多くの入力変数に値を与える
(拘束する)ことによって、或いは、到達した状態空間
の一部を放棄することによって分割される。このような
分割後に、BDDベース解析をこれ以上続けられない、
或いは、固定点に到達したという理由のため計算を終了
する決定がなされるまで到達性解析が続けられる。
【0218】このような方法で、所与の設計の機能性の
制限された一部だけを検証することによって、非常に大
きい空間状態の中のより大きい部分が処理される。分割
既約順序付二分決定グラフは、空間的/時間的資源、す
なわち、機能性被覆に顕著な制御性が得られる。かくし
て、検証実験の成功は、分解のパラメータ及び作成され
るべき分割の個数を変更することによって保証され得
る。
【0219】D. フィルタアプローチにおける用途 本発明の分割検証技術は、米国特許出願第08/85
7,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】本発明の分解分割記号列組合せ技術を説明す
るフローチャートである。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年12月10日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0076
【補正方法】変更
【補正内容】
【0076】
【外16】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0078
【補正方法】変更
【補正内容】
【0078】
【数8】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0079
【補正方法】変更
【補正内容】
【0079】により簡単に得られる。しかし、余因子化
演算を実行した後、正及び負の余因子は異なる窓関数
【外17】 を有し、論理和は分割に基づいて直接行えない。この問
題は定量化されるべき変数に依存しない窓関数を選択し
た場合には生じない。存在記号化は以下の通り行われ
る。Xf ={(wi ,fi )|1≦i≦k}が、1≦i
≦kに対し、∃x i =wiとなるようなfの分割既約
順序付二分決定グラフであるとするならば、 X∃x f={(wi ,∃x i )|1≦i≦k} は、∃x fの分割既約順序付二分決定グラフ表現形式で
ある。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0099
【補正方法】変更
【補正内容】
【0099】
【外18】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0101
【補正方法】変更
【補正内容】
【0101】
【外19】
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0107
【補正方法】変更
【補正内容】
【0107】
【外20】
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0113
【補正方法】変更
【補正内容】
【0113】
【外21】
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0115
【補正方法】変更
【補正内容】
【0115】
【外22】
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0118
【補正方法】変更
【補正内容】
【0118】
【外23】
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0127
【補正方法】変更
【補正内容】
【0127】
【外24】
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0129
【補正方法】変更
【補正内容】
【0129】
【外25】
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0131
【補正方法】変更
【補正内容】
【0131】
【外26】
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0133
【補正方法】変更
【補正内容】
【0133】
【外27】
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0136
【補正方法】変更
【補正内容】
【0136】
【外28】
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0138
【補正方法】変更
【補正内容】
【0138】
【外29】
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0140
【補正方法】変更
【補正内容】
【0140】
【外30】
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0142
【補正方法】変更
【補正内容】
【0142】
【外31】
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0158
【補正方法】変更
【補正内容】
【0158】
【外32】
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0164
【補正方法】変更
【補正内容】
【0164】
【外33】
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】0176
【補正方法】変更
【補正内容】
【0176】
【外34】
【手続補正21】
【補正対象書類名】明細書
【補正対象項目名】0185
【補正方法】変更
【補正内容】
【0185】
【外35】
【手続補正22】
【補正対象書類名】明細書
【補正対象項目名】0187
【補正方法】変更
【補正内容】
【0187】
【外36】
【手続補正23】
【補正対象書類名】明細書
【補正対象項目名】0192
【補正方法】変更
【補正内容】
【0192】
【外37】
【手続補正24】
【補正対象書類名】明細書
【補正対象項目名】0194
【補正方法】変更
【補正内容】
【0194】
【外38】
【手続補正25】
【補正対象書類名】明細書
【補正対象項目名】0203
【補正方法】変更
【補正内容】
【0203】
【外39】
【手続補正26】
【補正対象書類名】明細書
【補正対象項目名】0216
【補正方法】変更
【補正内容】
【0216】次に、状態空間トラバース検証法の適用中
に、V1 =0、V2 =1と設定することにより、所与の
設計を初期的に制限する。このように制限された場合、
遷移関係の適用後に、ある状態S1 に到達する。状態S
1 に到達後、V 1=0、V3=1が設定され、遷移関係
が適用されて状態S2 に到達する。状態S2 に到達した
後、3 =1、4 =1が設定され、状態S3 に到達す
るように遷移関係が適用される。この手続は状態Sn
到達するまで繰り返される。かくして、状態がSN によ
って獲得される状態に対し、システムの全特性が検証で
きる。

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】 対応した共通主入力及び対応した共通主
    出力の集合を備えた第1の回路及び第2の回路が等価で
    あるかどうかを判定するコンピュータで実現される方法
    において、 上記第1の回路を第1のブール関数として表現し、 上記第2の回路を第2のブール関数として表現し、 上記第1のブール関数と上記第2のブール関数の対応し
    た主出力を排他的論理和することによりブール空間を表
    現し、 上記ブール空間に対し、分解された第1の二分決定グラ
    フを構築し、 分解点の合成中に合成によって得られた二分決定グラフ
    がコンピュータメモリ使用量に関する所定の制約を超え
    たとき、上記ブール空間を第1の分割及び第2の分割に
    分割し、 上記第1の分割を複数の第1の分割部分に分割し、 上記第1の分割部分毎に、メモリ使用量に関する所定の
    制約を超えない限り二分決定グラフを構築し、 上記メモリ使用量に関する所定の制約を超えた少なくと
    も1個の上記第1の分割部分に対する要素を有する分解
    された分割記号列を構築し、 要素の合成が零になるまで上記要素をスケジューリング
    された順番に合成することを特徴とする方法。
  2. 【請求項2】 二分決定グラフが構築された少なくとも
    1個の上記第1の分割部分は第1の主入力の順序を有
    し、 二分決定グラフが構築された少なくとも1個の別の第1
    の分割部分は第2の主入力の順序を有する、請求項1記
    載の方法。
  3. 【請求項3】 二分決定グラフが構築された少なくとも
    1個の上記第1の分割部分は第1のプロセッサによって
    構築され、 二分決定グラフが構築された少なくとも1個の別の第1
    の分割部分は第2のプロセッサによって構築される、請
    求項2記載の方法。
  4. 【請求項4】 二分決定グラフが構築された少なくとも
    1個の上記第1の分割部分、及び、二分決定グラフが構
    築された少なくとも1個の別の第1の分割部分は、上記
    第1のプロセッサ及び上記第2のプロセッサによって並
    行に構築される、請求項3記載の方法。
  5. 【請求項5】 上記メモリ使用量に関する所定の制約は
    コンピュータに利用可能なメモリの量を定数値で分割す
    ることにより決定される、請求項2記載の方法。
  6. 【請求項6】 上記メモリ使用量に関する所定の制約
    は、前の二分決定グラフのサイズを定数値で乗算するこ
    とにより決定される、請求項2記載の方法。
  7. 【請求項7】 上記スケジューリングされた順番は、多
    数の要素を合成する前に、より少ない数の要素をスケジ
    ューリングする、請求項1記載の方法。
  8. 【請求項8】 上記スケジューリングされた順番は、最
    小の共通サポートをもつ要素を合成する前に、最大の共
    通サポートをもつ要素をスケジューリングする、請求項
    1記載の方法。
  9. 【請求項9】 論理ゲートのトポロジーと、対応した主
    入力及び対応した主出力とを有する、予備的ディジタル
    設計と最終的ディジタル設計を検証する方法において、 論理ゲートのトポロジーを有するモノリシック回路を形
    成するため、上記予備的ディジタル設計及び上記最終的
    ディジタル設計の上記対応した主出力を排他的論理和
    し、 上記論理ゲートのトポロジー内の点に対する決定グラフ
    を順番に構築し、 上記決定グラフのサイズがプリセット限界を超えたと
    き、上記トポロジー内の点に対する決定グラフの構築を
    停止し該点を分解点としてマークし、 決定グラフのサイズがプリセット限界を超えたために構
    築されなかった決定グラフの代わりに擬似変数を使用
    し、 上記モノリシック回路の出力を決定グラフ内の少なくと
    も1個の擬似変数に関して表現し、 上記擬似変数の合成処理中に上記決定グラフを第1の分
    割及び第2の分割に分割し、 上記第1の分割又は上記第2の分割がいずれも零に既約
    しないことを判定することを特徴とする方法。
  10. 【請求項10】 上記モノリシック回路の出力は決定グ
    ラフの複数の擬似変数に関して表現される、請求項9記
    載の方法。
  11. 【請求項11】 上記擬似変数の合成処理中に上記決定
    グラフを更なる分割に分割する、請求項10記載の方
    法。
  12. 【請求項12】 上記第1の分割は少なくとも1個の分
    解点を含む、請求項9記載の方法。
  13. 【請求項13】 上記第1の分割は上記少なくとも1個
    の分解点に関して第3の分割及び第4の分割に分割され
    る、請求項12記載の方法。
  14. 【請求項14】 ディジタルシステムを評価する方法に
    おいて、 上記ディジタルシステムをブール関数を形成するブール
    関数として表現し、 上記ブール空間を第1の分割及び第2の分割に分割し、 要素を含み、上記第1の分割を表現する分解された分割
    記号列を形成する段階を有することを特徴とする方法。
  15. 【請求項15】 上記分解された分割記号列の要素をス
    ケジューリングされた順番に順序付ける段階を更に有す
    る請求項14記載の方法。
  16. 【請求項16】 合成された上記要素が零に評価される
    かどうかを判定する段階を更に有する請求項15記載の
    方法。
  17. 【請求項17】 上記要素はサイズによって順序付けら
    れる請求項16記載の方法。
  18. 【請求項18】 上記要素はエクストラサポートによっ
    て順序付けられる請求項16記載の方法。
  19. 【請求項19】 上記要素はサイズ及びエクストラサポ
    ートによって順序付けられる請求項16記載の方法。
  20. 【請求項20】 上記要素は最小サイズ及び最大エクス
    トラサポートによって順序付けられる請求項19記載の
    方法。
  21. 【請求項21】 上記合成された要素が各合成後に零に
    評価されるかどうかを判定する段階を更に有する請求項
    20記載の方法。
  22. 【請求項22】 値を割当て可能であり、可変値が割り
    当てられたときに入力ベクトルを形成する主入力を有す
    る組合せ回路を検証するコンピュータで実現される方法
    において、 上記組合せ回路のブール空間表現を、共通入力ベクトル
    を共用しない複数の窓に分割し、 検証結果が得られるか又はコンピュータメモリ使用量に
    関する所定の制約の集合を超えるまで検証結果を判定す
    るため、各窓上で順序付二分決定グラフベースの検証技
    術を実行し、 上記コンピュータメモリ使用量に関する所定の制約が超
    えられた各窓に対し、要素の合成よりなる分解された分
    割記号列を形成し、 上記要素をスケジューリングされた順序で合成し、各合
    成後に上記分解された分割記号列が零であるかどうかを
    判定することを特徴とする方法。
  23. 【請求項23】 ディジタルシステムを評価する方法に
    おいて、 ブール空間を形成するブール関数として上記ディジタル
    システムを表現し、 上記ブール空間を分割に再帰的に分割し、 要素を含み、少なくとも1個の分割を表現する分解され
    た分割記号列を形成する段階を有することを特徴とする
    方法。
  24. 【請求項24】 分解された分割記号列によって表現さ
    れない少なくとも1個の分割上で順序付二分決定グラフ
    ベースの検証技術を実行する段階を更に有する請求項2
    3記載の方法。
  25. 【請求項25】 上記分解された分割記号列の要素をス
    ケジューリングされた順序で順番に合成する段階を更に
    有する請求項23記載の方法。
  26. 【請求項26】 上記順序付二分決定グラフベースの検
    証技術は、分解された分割記号列によって表現されない
    複数の分割上で実行される請求項24記載の方法。
  27. 【請求項27】 上記分解された分割記号列の要素をス
    ケジューリングされた順序で順番に合成し得られた合成
    が零であるかどうかを判定する段階を更に有する請求項
    26記載の方法。
  28. 【請求項28】 ディジタル回路を評価するシステムに
    おいて、 ブール空間を表現するブール関数として上記ディジタル
    回路を表現する手段と、 上記ブール空間を第1の分割及び第2の分割に分割する
    手段と、 要素を含み、上記第1の分割を表現する分解された分割
    記号列を形成する手段とを含むことを特徴とするシステ
    ム。
  29. 【請求項29】 上記分解された分割記号列の上記要素
    をスケジューリングされた順序で順序付ける手段と、 上記要素を上記スケジューリングされた順序で合成する
    手段とを更に有する請求項28記載のシステム。
  30. 【請求項30】 上記合成された要素が零に評価される
    かどうかを判定する手段を更に有する請求項29記載の
    システム。
  31. 【請求項31】 対応した共通主入力及び対応した共通
    主出力の集合を備えた第1の回路及び第2の回路が等価
    であるかどうかを判定するコンピュータシステムにおい
    て、 上記第1の回路を第1のブール関数として表現する手段
    と、 上記第2の回路を第2のブール関数として表現する手段
    と、 上記第1のブール関数と上記第2のブール関数の対応し
    た主出力を排他的論理和することによりブール空間を表
    現する手段と、 上記ブール空間に対し分解された第1の二分決定グラフ
    を構築する手段と、 分解点の合成中に合成によって得られた二分決定グラフ
    がコンピュータメモリ使用量に関する所定の制約を超え
    たとき、上記ブール空間を複数の分割に再帰的に分割す
    る手段と、 上記複数の分割が零であるかどうかを判定する手段とを
    含むことを特徴とするコンピュータシステム。
  32. 【請求項32】 上記複数の分割が零であるかどうかを
    判定する手段は、複数のプロセッサを含む請求項31記
    載のコンピュータシステム。
  33. 【請求項33】 上記複数のプロセッサは、上記複数の
    分割の中の別々の分割部分が零であるかどうかを並行し
    て判定する請求項32記載のコンピュータシステム。
  34. 【請求項34】 設計に関して回路を評価する方法にお
    いて、 テストスイートの入力ベクトルの解析により分割ベクト
    ルの集合を形成し、 上記分割ベクトルの集合を用いて上記回路の状態空間を
    複数の分割に分割し、 上記分割を評価する方法。
  35. 【請求項35】 上記分割ベクトルの集合を形成する段
    階は、 上記テストスイートの中で最も共通した主入力割当ての
    集合を判定し、 上記分割ベクトルの集合を形成するため、上記最も共通
    した主入力割当てを使用する、請求項34記載の方法。
  36. 【請求項36】 設計に関して回路を評価する方法にお
    いて、 上記回路の状態空間を複数の分割に分割し、 最終的二分決定グラフに先行する中間二分決定グラフを
    構築することにより各分割毎に二分決定グラフを構築
    し、 所定のメモリ制約を超えた中間二分決定グラフを零終端
    頂点と置換し、 少なくとも1個の分割に対する二分決定グラフを評価す
    る、方法。
JP31376898A 1997-11-05 1998-11-04 分解及び分割によるハードウェアの検証並びに表現方法 Expired - Fee Related JP4028107B2 (ja)

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)

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

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

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

Cited By (2)

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