JP3858000B2 - フィルタリング型アプローチを使用する組合せ回路の検証方法 - Google Patents

フィルタリング型アプローチを使用する組合せ回路の検証方法 Download PDF

Info

Publication number
JP3858000B2
JP3858000B2 JP2003131457A JP2003131457A JP3858000B2 JP 3858000 B2 JP3858000 B2 JP 3858000B2 JP 2003131457 A JP2003131457 A JP 2003131457A JP 2003131457 A JP2003131457 A JP 2003131457A JP 3858000 B2 JP3858000 B2 JP 3858000B2
Authority
JP
Japan
Prior art keywords
circuit
verification
data structure
analysis
technique
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003131457A
Other languages
English (en)
Other versions
JP2003345850A (ja
Inventor
ジャイン ジャワハー
ムカージィー ラージャーシ
浩一郎 ▲高▼山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2003345850A publication Critical patent/JP2003345850A/ja
Application granted granted Critical
Publication of JP3858000B2 publication Critical patent/JP3858000B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318371Methodologies therefor, e.g. algorithms, procedures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318385Random or pseudo-random test pattern
    • 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

Description

【0001】
【発明の属する技術分野】
本発明は、一般的にコンピュータ支援設計(CAD)システム及び方法に係わり、特に、ディジタル回路設計及び検証のため使用される方法に関する。
【0002】
【従来の技術】
複雑なディジタルシステムを巧く設計するためには、意図された機能性に関して実装の正しさを検証することが必要である。従来、設計検証の作業はシミュレーションによって行われる。シミュレーションベース方式の場合、設計者はシステムへの全ての実現可能な入力を表わす完全なテストベクトル集合を作成する必要がある。上記の各テストベクトルに対する出力は設計の正確さを保証するため解析される。この処理は中央処理装置(CPU)の時間を著しく集約するので、殆どの実際の状況で設計の正しさを保証するため設計を徹底的にシミュレーションすることは不可能である。
【0003】
シミュレーションベース方式に起因して、種々の形式的な検証戦略が普及し始めている。これらの方式を利用することにより、全ての実現可能な入力の組合せの元で設計の正確さを保証することが可能になる。
【0004】
複雑なシステムを設計する処理は、通常、システムの抽象的モデルから始まる。このモデルは、多数のシミュレーションを受けた後、設計の“最高の仕様”になる。この抽象的モデルから、詳細な実装が階層的な手法で導き出される。最初に、抽象的モデルは、設計のブロック構造行動を表わす合成可能な行動レジスタ・トランスファ・モデル(RTL)モデルに変換される。この行動RTLモデルは、次に、システムの論理レベル記述である構造的モデルに変換される。構造的RTLモデルから、トランジスタのネットリスト及び設計の物理的レイアウトが導出される。
【0005】
巧く働く設計方法論において、設計過誤を設計サイクルの早期に見つけることが不可欠である。この目標を達成するため、設計の機能性は、前のレベルからの設計仕様に対し設計サイクル階層のあらゆるレベルで検証される。同一設計の異なる実装が等価性を検査するため比較されるこの種の形式的な検証は、実装上の検証として知られている。図1は、従来技術による典型的な検証作業のフローチャートである。検証作業は設計作業と並行している点に注意する必要がある。典型的な検証作業は原仕様に対し第1の実装を検証することにより開始される。実装が成功であると検証された後、その実装は典型的に前の実装を最適化することにより得られる次の実装のための仕様になる。最初又は原設計は、RTL設計10として示され、最適化RTL設計14を生産するため最適化される(ステップ12)。最適化RTLは検証1によって最初のRTLに対し検証される(ステップ16)。最適化RTLはゲートレベルネットリスト20を生成するため合成される(ステップ18)。ゲートレベルネットリスト20は検証2によって最適化RTLに対し検証される(ステップ22)。ゲートレベルネットリスト20は最適化ネットリスト26を生成するため最適化される(ステップ24)。最適化ネットリスト26は検証3によってゲートレベルネットリスト20に対し検証される。次に、テスト論理が修正ネットリスト32を作成するため最適化ネットリスト26に追加される(ステップ30)。修正ネットリスト32は、最終ネットリスト38を生成するため配置及び経由される(ステップ36)。最後に、最終ネットリスト38は検証5によって修正ネットリスト32に対し検証される(ステップ40)。
【0006】
実装検証は、典型的に二つのフェーズで進行する。第1フェーズにおいて、原設計を表わすブールネットワークはRTL記述又はゲートレベルネットリストから抽出される。第2フェーズにおいて、このブールネットワークの正確さは形式的な方法を用いて検証される。
【0007】
最近の研究は、2個のブールネットワークの等価性を検証する分野の発展に集中している。より詳しく言うと、研究は、出力が現在の入力だけではなく過去の入力のシーケンスにも依存する順序回路ではなく、組合せ回路、即ち、出力が現在の入力だけに依存する回路の検証に集中している。例えば、二つの設計の対応するラッチが識別され得るとき、ある種の順序検証問題は組合せ検証問題に軽減され得る。一般的な順序回路を検証する方式は存在するが、現在の技術の場合に上記方法を用いて大規模で複雑な回路設計を検証することは実際的ではない。
【0008】
以下に組合せ照合問題を説明する。2個のブールネットリストが存在する場合、2個の回路の対応した出力が全ての可能な入力に対し一致するか否かが検査される。この問題はNP困難であるので、任意のブール関数を取り扱い得る一般的な解法は存在しそうにない。しかし、実際に回路設計に実装された関数は、ランダムブール関数ではないので、大規模設計を巧く検証し得る種々の方式が開発された。
【0009】
組合せ等価性検査の作業は、二つの主要なカテゴリに分類され得る。第1のアプローチは、特有の表現(即ち、正準表現)を用いて2個のネットワークの出力関数を表わすことによる。2個の回路は、対応する出力の正準表現が一致する時に限り等価である。最も普及している正準表現は2進決定図(BDD)に基づいている。最悪の場合に、上記方法は入力の個数に対し指数関数的に空間を必要とする。
【0010】
第2のアプローチは、2個の回路の間で等価ポイント及び含意を同定することからなる。この情報を用いることにより、等価性検査の処理は簡単化される。典型的な設計は一連の局部変更により進められるので、殆どの場合に、検証されるべき2個の回路の間に多数の含意がある。上記の含意ベースの方式は、大規模回路を検証する際に巧くゆき、殆どの組合せ検証システムの基礎をなす。
【0011】
殆どの組合せ検証用の方法は、OBDD、自動テストパターン発生(ATPG)、学習などの単一の“コア”検証方式に基づいている。コア検証方式は、十分な時間及び空間が与えられた場合、単独で回路を検証し、又は、ある種のブール式の恒真性又は充足可能性を証明することができる。コア検証方式は、完全解析方式、即ち、十分な時間及び空間が与えられた場合に単独である種のブール式の恒真性又は充足可能性を証明し得る方式としても知られている。一方、補助解析方式は、単独で使用された場合、十分な時間及び空間が与えられたとしても、全てのブール式ではなく、一部のブール式の恒真性又は充足可能性しか検出できない方式である。
【0012】
検証問題のNP困難複合性に起因して、単一コア検証方式は広範囲の回路において巧く動作しないと予想される。更に、検証問題の性質は先見的には分からない。この不確実性は、ある種の検証方式において全ての検証問題が(小さいが)より多数の検証問題に分割されるので更に悪化する。
【0013】
【発明が解決しようとする課題】
従って、一方の検証方式から他方の検証方式に切り替える際のオーバーヘッドを最低限に抑えると共に、先に適用された検証方式の結果を共有しながら種々のコア検証方式を自動的に利用し、かつ、一つ以上の検証方式が成功したときに検証結果が得られる方法が必要である。
【0014】
【課題を解決するための手段】
本発明は、順番に配置され、検証の結果を判定、又は、回路データ構造を変更し、コンピュータメモリ使用量及び/又はコンピュータ実行時間使用量に関する所定の制約条件集合を超えるまで実行される完全な検証技術集合並びに補助技術集合を有し、回路検証の結果が判定されるまで、最終的な検証結果、又は、結果的に変更された回路データ構造を次の完全な検証技術又は補助技術に提供するフィルタベースド組合せ回路検証システムである。
【0015】
本発明において、フィルタ集合はディジタル回路設計の検証のため順番に配置される。フィルタは、回路設計の検証に直接的に係る能動フィルタ(例えば、2進決定図(BDD)ベースド検証器若しくは自動テストパターン発生(ATPG)ベースド検証器、又は、検証問題を簡単化するため回路に関する情報を収集し若しくは回路構造を変換する受動フィルタ(例えば、ランダムパターンシミュレーション又は回路分割)である。一対の回路を検証する必要がある場合、フィルタアプローチは、最初、メモリ使用必要量が非常に少なく非常に簡単かつ高速な技術を回路に適用する。このステップの後に、消費時間が増加し、その動作のためにより多量のコンピュータメモリを必要とし、能力が徐々に高まる一連の方法が続く。より簡単化した能動フィルタと、より複雑化された能動フィルタとの間において、回路内の潜在的な等価ノードに関する情報が集められ、回路を分割すべきか否かに関し決定がなされる。検証方法論は、検証しやすい回路設計に対し、高価な技術が決して誤用されないように構造化される。この方法は、検証問題が複雑化すると共に適用される検証技術の複雑さを増大させる。
【0016】
本発明の一実施例において、システムは、(A)製造されたディジタル回路に欠陥が在るか否かの決定、(B)“タイミング”に関する制約条件の決定、(C)最小コスト“エンジニアリングチェンジ”解、(D)(モデル検査方法への応用を含む)順序(時間依存形)回路の正確さの決定、又は、(E)ディジタル回路特性のようなブール表現のブール充足可能性又はブール恒真性のテストに依存する回路特性の分析を行う。
【0017】
本発明の一実施例は、順番に配置され、解析結果を判定、又は、回路データ構造を変更する完全な検証技術の集合並びに補助技術の集合を有し、回路解析の結果が判定されるまで、最終的な解析結果、又は、結果的に変更された回路データ構造を次の完全な解析技術に提供するフィルタベースド組合せ回路解析システムである。
【0018】
本発明は容易に拡張し得る利点があることに注意する必要がある。フィルタ構造は、新しい検証技術を追加することにより拡張又は増強され得る。新しい技術は、新しい技術の強さ、並びに、既にフィルタに収容されている他の技術に関する相対的な強さ又は弱さに依存してフィルタ構造の適当な場所に付加される。例えば、ブール表現図(BED)のような技術は、検証コアのマイクロフィルタ内で自動テストパターン発生(ATPG)検証の後にBED技術を追加することにより本発明のフィルタ配置を拡張するため包含される。或いは、BED技術は、マイクロフィルタのスマートカットセットベースド検証の後に実行しても良い。同様に、別の新しい技術が提案又は開発された場合、新しい技術はフィルタ配置の適当な場所に挿入され得る。かくして、検証ソフトウェアシステムの全体を再開発する必要はない。かかる本発明の拡張性は、フィルタ志向型アプローチに対する重要な利点である。
【0019】
以下の詳細な説明には、本発明を実施するため考えられたベストモードの実例を用いて本発明の実施例が開示、記載されているので、以下の詳細な説明から、本発明の他の実施例が当業者には明らかになる。本発明は他の種々の実施例が可能であり、本発明の細部は、本発明の精神及び範囲を逸脱することなく、種々の明瞭な観点から変更することが可能である。従って、添付図面及び詳細な説明は、本質的に例示的に過ぎず、制限として捉えるべきではない。
【0020】
【発明の実施の形態】
I. 検証に対するフィルタ志向型アプローチ
A. 定義
カットセット(Cutset):ネットワークNのノードvの推移的ファンイン(TFI) のカットセットはノードの集合S={v1 ,v2 ,...vk }であり、主入力からvへのあらゆるパスは集合Sのノードvi を通過しなければならない。
【0021】
直接含意(Direct Implication):回路Nのノードにブール値が初期割当てされた場合、ノードの接続性及びその対応した真理表だけを使用して回路Nの他のノードでブール値を決定する処理は、直接含意と称される。
【0022】
間接含意(Indirect Implication):間接含意は、対偶則を用いない限り直接含意だけでは得られない二つのノードのブール値の間の関係である。間接含意を得る処理は学習と称される。
【0023】
弱い技術(Weaker Technique):コンピュータシステムにおいて、技術Aは技術Bよりも弱い技術と称される。検証手続の性能をベンチマークテストするため使用され、本発明による検証のため与えられた回路に類似した回路のサンプル集合を表わすと考えられる回路の経験的試験は、技術Aの時間的/空間的必要量が技術Bの時間的/空間的必要量よりも少なく、技術Aは技術Bよりも多数のケースを解決し得ることを明かす。
【0024】
完全検証技術(Complete Verification Technique) :十分な時間及び空間が与えられた場合に単体で一対の回路を検証し得る技術である。
【0025】
完全解析技術(Complete Analysis Technique) :十分な時間及び空間が与えられた場合にある種のブール式の恒真性及び充足可能性を証明し得る技術である。補助検証技術(Supporting Verification Technique) :単独で使用された場合に、合理的な時間及び空間が与えられるならば、一対の回路におけるブール式の全部ではなく一部の検証を検出し得る技術である。
【0026】
補助解析技術(Supporting Analysis Technique) :単独で使用された場合に、十分な時間及び空間が与えられるならば、全部ではなく一部のブール式の恒真性又は充足可能性を検出し得る技術である。
【0027】
回路特性(Circuit Property):製造されたディジタル回路の欠陥の有無の決定、タイミングに関する制約条件の決定、最小コストエンジニアリングチェンジ解、順列(時間依存形)回路の正確さの決定、又は、ブール表現のブール充足可能性又はブール恒真性のテストに依存するようなあらゆるディジタル回路特性を表わす。
【0028】
用語ネットワーク及び回路、ゲート及びノード、並びに、(順序付きの2進決定図を表わす)OBDD及びBDDは交換して使用してもよい。
【0029】
B.概要
本発明は順番に配置されたフィルタの集合により構成される。フィルタには、(1)回路設計の検証に直接的に関連する能動フィルタ(例えば、BDDベースド検証器又はATPGベースド検証器)と、(2)回路に関する情報を収集し、検証問題を単純化するため回路構造を変換する能動フィルタ(例えば、ランダムパターンシミュレーション若しくは回路分割)の2タイプがある。
【0030】
1対の回路N1 、N2 を検証すべき場合、本発明のフィルタアプローチは、最初に、非常に僅かなメモリ使用量しか必要としない非常に簡単、高速な技術をその回路の対に適用する。これらのステップの後に、動作のためより多くの時間を消費し、屡々より多くのコンピュータメモリを必要とし、徐々に能力が高くなる一連の方法が続けられる。簡単な方の能動フィルタと、複雑な方の能動フィルタとの間に、回路内の潜在的な等価ノードに関する情報を収集し、回路を分割すべきか否かを決定する段が存在する。本発明の検証方法は、学習のような高価な技術を検証しやすい回路設計に決して誤って適用しない。本発明の構造は、検証問題の複雑さに応じて、適用された検証技術の複雑さ(従って、計算コスト)を徐々に増大させる。このように、本発明は全体的な検証性能の緩やかな劣化を許容する。
【0031】
図2は本発明のフィルタアプローチのフローチャートである。二つのネットワークN1 及びN2 が与えられた場合、複合ネットワークNc は、N1 及びN2 の対応した主入力を連結することにより作成される。検証器全体は回路の内部ノードの対を検証することにより進行する。全ての等価ノードは併合される。検証器内の最初の2個のフィルタ、即ち、構造フィルタ及び機能フィルタは、計算コストの小さい高速フィルタである。上記フィルタは、非常に少ない計算コストでNc 内の簡易な内部等価性を認定する。かかる内部等価性は、次のフィルタによって同様に認定され得る。しかし、次のフィルタを用いてこの内部等価性を識別することは、必要とされる計算資源の点で実質的にコスト高である。次に、機能的に等価であるノードの対を認定するためランダムパターンシミュレーションが使用される。このような候補の数が少ない場合、回路は、より多数の候補を作成し、検証作業を単純化するため分割される。次に、BDDベースドフィルタ及びATPGベースドフィルタが大半の候補を検証するため呼び出される。これらのフィルタは、検証器の検証コア(VC)により構成される。残りの全ての検証段階は困難であると考えられる。回路を再合成し、全ての大きいBDDを分割する二つのフィルタは、それ自体の検証のため利用される。以下、提案した検証方法論における各フィルタを詳細に説明する。
【0032】
スタートステップ100の後、検証されるべきネットワークは、目標とする標的分解を用いてテクノロジー分解される(ステップ102)。
【0033】
分解処理の目的は、多数の等価物の候補が作成されるように回路内の複雑なゲートを単純な原始的(プリミティブ)ゲートの集合に分解することである。問題は連続した別個のフィルタに送られる。各フィルタは異なる検証方法により構成されている。各フィルタは、一部の問題を解法し、系列内の連続的な各フィルタは、典型的に、先行フィルタよりも少ない数の検証問題の解決に取り組む。系列内の最後のフィルタは、残りの全ての問題を解法する。全ての問題が解法された場合、検証処理は系列内のあらゆるポイントで停止される。従来のシステムの場合に、1個、2個、若しくは、高々3個の検証技術(即ち、フィルタ)が検証問題を解法するため使用される。本発明は、検証解を得るために必要に応じて検証問題を多数のフィルタに通す。系列内の検証技術の特定の配置は、最適性能のため非常に重要である。
【0034】
ステップ104において、構造フィルタがネットワークに適用される。ステップ106において、機能フィルタがネットワークに適用される。次に、ランダムパターン発生器がネットワークをシミュレーションするため使用される(ステップ108)。ステップ109において、検証のための内部ゲートの候補リストが枝刈りされる。ステップ110において、検証用の候補が非常に少ない場合、YES側のパス112が選択され、ステップ114に進む。ステップ114において、検証される回路はK個の区分に分割される。このステップの目標は、回路設計の各区分内のゲート間に、より多くの等価物を作成することである。ステップ118乃至136が各区分毎に実行される。テストステップ110において、検証用の十分な候補が存在する場合、NO側のパス116が選択され、ステップ118に進む。処理は各区分毎に検証コアで続けられる(ステップ118)。検証コアは、“マクロフィルタ”と称される3個の別々のフィルタにより構成される。これらのフィルタは、ナイーブカットセットベースド検証120と、スマートカットセットベースド検証122と、ATPGベースド検証124とを含む。スマートカットセットベースド検証122及びATPGベースド検証124は、解に集まるより効率的な検証を行うためループ配置で処理される。
【0035】
検査フェーズ126の後、ネットワークは検証用再合成により処理される(ステップ128)。このステップは、ODC及び学習ベースド再合成130を含む。ネットワークは次に検証コア132の中に送られる。最後に、ネットワークは、BDD分割136を含む修正検査フェーズ134により処理され、検証処理はエンドステップ138で終了する。
【0036】
図4に示された別の実施例において、修正検査フェーズ134は、改良型修正検査フェース135によって置換される。修正検査フェーズ134は、検査フェーズ126と同一の処理に関与するが、BDDが爆発する場合、BDDはBDD分割136を用いて小さいBDDに細分される。別の有用な実施例として、回路分割(図示しない)は、処理のこの段階でBDD分割136と共に導入しても良い。この組合せは、図4に示される如く改良型修正検査フェーズ135と称される。改良型修正検査フェーズ135において、修正検査フェーズ134に与えられた各検証問題に対し、回路は入力変数又は内部変数を用いる分割によって数個の区分に分割される。次に分割されたかかる回路に対し、ステップ108からステップ136までの全てのステップが適用される。
【0037】
図2には、フィルタベースド検証システムの一実施例が記載されているが、数通りの別の構成を実現することができる。例えば、ODC及び学習ベースド再合成130又は検証フィルタ用再合成128を省いても良い。或いは、構造フィルタ104及び/又は機能フィルタ106は、フィルタ毎に後に適用しても良い。同様に、検証コアフィルタ128内の構造を変更し、スマートカットセットベースド検証122及びATPGベースド検証124だけを使用するように、又は、ナイーブカットセットベースド検証120と、後続したATPGベースド検証124と、後続したスマートカットセットベースド検証122とを使用するように選択することが可能である。別の方法は、スマートカットセットベースド検証122と、ATPGベースド検証124との間のループを省略する。回路分割は、回路再合成の後に、BDD分割と共に使用してもよい。各回路分割毎に、ステップ118からステップ138までの全てのステップが実行される。修正検査フェーズ134は、改良型修正検査フェーズ135により置換してもよい。上記フィルタアプローチの幾つかの別の実施例が図3乃至9に記載されている。上記変形例の他に、当業者は成功の程度が変化する種々の明らかな組合せの形でフィルタアプローチの基本ステップを使用する。
【0038】
充足可能性(SAT)の解決は多くのCADの領域で主要な問題であることは公知である。CADの殆どの問題はSAT問題としてモデル化することができる。本発明は、エンジニアリングチェンジ、合成、配置、及び、強力なSAT解決器が必要とされる場面に適用可能である。
【0039】
本発明は、図10に示される如く、SAT問題を解法する解析ツールとして使用することができる。同図に示す如く、スタートステップ200に続いて、解放されるべきCAD問題は、ステップ204において、図2乃至4に示されたフィルタアプローチを使用して解法される。処理はステップ206で終了する。
【0040】
II.標的分解(targeted decomposition)
A.各回路毎に使用する単一分解
ディジタル回路の多レベル最適化の間に、消去、分解、抽出、簡略化及び置換のような数種類の変換が行われる。ある種の変換は、種々のノードを併合又は分離させることにより回路構造に局所的な変化を生じさせる。その結果として、原ネットワークと最適化されたネットワークとの間の多数の対応ポイントは消失する。この内部的対応関係の欠如は、検証問題を非常に困難にする。従って、多くの内部的対応関係が見えるようにネットワークの高速再合成が行われる。この目的のため、単純なテクノロジー分解技術102が組み込まれる。5入力以上を有する二つのネットワーク内の複雑なゲートは2レベルのアンド・オア論理ネットワークに分解される。また、11入力以上を有するアンドゲート及びオアゲートは、夫々アンド木及びオア木に分解される。既存のゲートのグループは、回路内に新しい原始的ゲートを作成するため既存のライブラリに基づいて標的を変更される。この方法は大規模かつ複雑な回路に対し非常に効果的であることが分かっている。
【0041】
B.各回路毎に使用する多重分解
二つの回路C1 とC2 の間の“類似性”を増大させ、より検証し易くさせる方法を説明する。この処理は、最初に、与えられた回路の複雑な論理ゲート又は論理ゲートの集合を種々のテクノロジー分解と関連付けることにより動作する。各テクノロジー分解毎に、ある複雑なゲートg又はあるゲートの集合を表す原始的ゲートの集合が得られる。あるテクノロジー分解に対応する論理回路は、ローカルゲートマップと称される。多数のローカルゲートマップgM1,...,gMkはゲートgと関連している。このテクノロジー分解処理は所定の回路の対の各回路の全てのゲートに対し繰り返し行われ、多数のローカルゲートマップを各回路の各ゲートと関連付け、かくして得られた回路は多重マップ回路と称される。次に、多重マップ回路の各ゲートはシミュレーションにより評価される。即ち、所定のテクノロジーマップされた両方の回路の各ゲートの各テクノロジー分解はシミュレーションされる。このシミュレーションは、主入力変数に対し行われたブール割り当て(ベクトル)の共通集合を用いることにより行われ、ローカルゲートマップ内の所定のゲートに関する対応するシミュレーション結果(シグネチャー)は、その論理ゲートに格納される。
【0042】
主入力から始めて、第1の回路の複雑なゲートgのあるシミュレーションから得られた結果(シグネチャー)は、第2の回路の別の複雑なゲートhのシミュレーションと比較される。この比較において、回路C1 のゲートgのある主のローカルゲートマップgMi内のゲートに格納されたシミュレーションは、回路C2 のある種のゲートhのローカルゲートマップhMjに格納されたシグネチャーと一致するようなシミュレーションである。ローカルゲートマップgMi及びhMjが最大個数の等価/相補形シグネチャーの対を有する場合を想定する。一定のゲートg及びhは対応したテクノロジー分解gMi及びhMjで置換される。かくして、回路は原始的論理ゲートに関して作成される。同一処理は、所定の各ゲートが対応したテクノロジー分解で置換されるまで、又は、適当な置換は不可能であるとの結論が得られるまで残りのゲートに対し繰り返し行われる。従って、2個の変換された回路は、原回路の複雑な各ゲート又はゲートの集合を上記の処理で選択されたような適当なテクノロジー分解で置換することにより原回路C1 、C2 から作成される。
【0043】
フィルタの効率的な性能のため、かかる巧みなテクノロジー分解処理は、以下の条件(1)及び(2)の一方又は両方の条件下で実行することが好ましい。
(1)2個の回路C1 及びC2 は多数の等価/相補形候補対を含まない、及び、(2)等価/相補形候補対が含まれない与えられた2個の回路内に連続的な内部ゲートの大きい集合が存在する。
【0044】
フィルタベースド検証処理内にある多重分解ベースドテクノロジー分解処理について説明したが、多重分解テクノロジー分解処理はシミュレーション処理が実行された後だけに使用されることを意図している。
【0045】
III.サブグラフ同型ベースド構造フィルタ
合成ツールの適用後に回路の構造に生じた変化は屡々局在する。このような場合に、原回路の主要部分はその合成された回路の部分と構造的に一致したままである。直接的な態様で同一構造の情報を利用し得る方法は、モノリシックOBDDを構築するような明示的な検証方法よりも効率的である。この目的のため、サブグラフの同型の認知に基づく高速方法が構造フィルタ104として使用される。フィルタは主入力から主出力までNc を処理し、同型であるネットワークの部分を識別し、識別された部分はネットワークNc1を生成するため併合される。
【0046】
ネットワークの構造的に同型部分を識別するため、以下の方法が使用される。ゲートgに対し、構造的に同型である候補ノードが識別される。これは以下の通り行われる。F={n1 ,...,nk }をゲートgに供給する側のゲートの集合とする。C={p1 ,...,pj }は隣接したファンインとして集合F内の全ゲートを有するゲートの集合とする。また、集合C内の全てのゲートは他のゲートからの供給を受けないとする。集合Cはゲートgとの等価性を検査される候補ゲートの集合を形成する。ゲートh∈Cがgと同一の関数を実現するならば、g≡hである。ゲートg及びhは併合され、処理はネットワーク内の他の全てのゲートに対し繰り返される。このステップの時間的な複雑さは、O(|Nc |)のオーダである。
【0047】
IV.OBDDハッシングベースド機能フィルタ
このフィルタは、局部OBDDに基づく簡単な機能フィルタ106である。ネットワーク内のノードに対するOBDDは他の内部ノードを構成するカットセットに関して構築される。このフェーズは、Nc1内の内部的な等価ノードを識別する。Nc1の主入力はネットワーク内のノードに対しBDDを構築する第1のカットセットを形成する。独立したBDD変数は主入力に割り当てられ、BDDはNc1内の内部ノードに対し構築される。好ましい実施例において、ノードは幅優先順に処理される。ノードを処理する他の順序を選択してもよい。ノードは、キーとしてBDDへのポインタを使用してハッシュ表BDDハッシュにハッシュされる。共有BDDデータ構造が予めセットされた限界に達したとき、別のBDDは現在のカットセットに基づいて構築されない。全ての等価及び相補ゲートは併合され、併合されたノード及び主入力からなる新しいカットセットが深さ優先トラバーサルにより主入力から選択される。この処理は新しいカットセットに基づいて繰り返される。かくして、回路の各ゲート毎に典型的に、重複するBDDの集合が種々の回路に基づいて構築される。
【0048】
図11はBDD用のハッシング機構を説明する図である。カットセット1はネットワークへの主入力からなる。ノードn3、n4及びn5用のBDDはカットセット1に関して構築される。ノードn4及びn5は、カットセット1に関して同一のBDDを有するので、BDDハッシュの同一衝突チェーンにハッシュする。
【0049】
2種類の発見的方法、即ち、
(1)共有BDDデータ構造のサイズに基づく発見的方法、及び、
(2)任意のカットセットを用いてBDDが構築された回路の構造的レベルの数に基づく発見的方法
がいつでもBDDのサイズを制限するため使用される。これらは、既に発見された等価ノードに基づいて新しいカットセットを導入するためにも使用される。等価ノードはネットワークNc2を生成するため併合される。典型的に、任意の所定の時点に維持される50,000個のノードの制限は共有BDDデータベースに加えられる。任意のカットセットを用いて処理された回路レベルの最大個数は典型的に5である。この技術のフローチャートは図12に示されている。最大のBDDがSlimit 個のノード未満であるならば、このステップの時間的複雑さは、固定のSlimit に対する回路のサイズに線形的な項O(Slimit ・Nc1)よりも少ない。BDDハッシュ処理は、スタートステップ300で始まる。ステップ302において、複合ネットワークが作成される。次に、ステップ306で、主入力に基づく内部ゲートに対するBDDが構築される。テストステップ308において、BDDサイズ限界が超えられないならば、NO側のパス310が選択されステップ306に戻る。そうではない場合、YES側のパス312が選択されステップ314に進み、内部ノードがそのBDDポインタに基づいてハッシュされる。次に、ステップ316で、ハッシュ表が等価ノード及び反転ノードを識別並びに併合するため使用される。ステップ318において、回路内の全ノードが処理された場合、YES側のパス320が選択され、処理はエンドステップ322で終了する。そうではない場合、NO側のパス324が選択されステップ326へ進み、併合されたノード又は主入力の新しいカットセットが選択される。ステップ328において、内部ノード用のBDDが新しいカットセットを用いて構築される。ステップ330で、BDDサイズ限界が超えられた場合、処理はステップ314へ進む。そうではない場合、処理はステップ328に進む。
【0050】
このフィルタは、ランダムパターンシミュレーションベースド候補収集ステップ及び逐次合成技術と組み合わされた場合に単独で検証ツールとして使用され得る。かかる検証アプローチのフローチャートは図13に示されている。スタートステップ350に続いて、複合ネットワークがステップ352で作成される。次に、ステップ354において、ランダムパターンシミュレーションが候補ゲートの全ての対を収容するハッシュ表を作成するため使用される。次に、ステップ356において、主入力に基づく内部ゲート用のBDDは構築、ハッシュされる。全ての等価ゲート及び反転ゲートは併合される。テストステップ358において、全ての出力(PO)が検証されたならば、YES側のパス360が選択され、BDDハッシュを用いた検証はエンドステップ362で終了する。そうではない場合、NO側のパス366が選択され、逐次合成を用いて偽陰性が除去される。処理はエンドステップ362で終了する。
【0051】
V.ランダムパターンシミュレーション
このフェーズでは、並列ランダムパターンシミュレーション108が機能的に等価である候補ノードを決定するためNc2上で行われる。各ノードには、シミュレーションの結果を格納するため長さkのビットベクトル(シグネチャーとも称される)Bが割り当てられる。典型的なkの値は32である。これは、典型的な32ビットコンピュータ上の1ワードの記憶容量に対応する。このステップの時間的な複雑さはO(k・|Nc2|)である。回帰ベースドシミュレーションの後、同一シグネチャーを有するノードが機能的等価物の候補として選択される。
【0052】
内部ゲート対は、両方の回路の各ゲートを各ゲートが到達又は影響する対応した主出力と関連付けることにより、機能的等価性又は機能的相補性が検査される。即ち、各ゲートの推移的ファンアウトコーンに存在する回路出力が決定される。次に、ランダムパターンシミュレーションは、所定の適用されたランダムシミュレーションベクトルの集合に対し各ゲートのシグネチャーを決定するため適用される。同一シグネチャー又は相補シグネチャーのいずれかを有し、かつ、出力リストが交差する各ゲート対は、少なくとも1個の共通対応主出力が推移的ファンアウトコーン内に含まれるように一つに集められる。
【0053】
VI.回路は分割されるべきか?
参考として引用した Dr. J. Jain他:“Functional Partitioning For Verification And Related Problems ”, MIT VLSI Conference 1992 には、検証問題は、n変数関数Fの2n ブール空間を分割することにより著しく単純化され得ることが記載されている。この分割は、Fの充足可能性集合の互いに素な分割とみなすことができる。かくして、関数Fは、少なくとも1個の分割が充足可能で有る場合に限り充足可能である。かかる分割は機能的分割と呼ばれる。回路構造の分割及びBDD分割に基づくような機能的分割技術の一部は既に開発されている。回路分割は縮小された回路の集合を作成し、BDD分割は小さいBDDの集合を作成し、典型的に非常に大形のBDDだけに対して適用される。例えば、変数xi =0、xi =1に関して回路Cをシミュレーションすることにより、2個の回路分割Cxi=0及びCxi=1が作成される。各回路は別々に解析できるようになる。原ネットワークN1 、N2 を検証するため、Nc2の各区分がブール値0に減少するか否かを検証する。
【0054】
回路分割は、検証される回路のサイズを縮小するだけではなく、以下の数種類の利点を有する。
(1)新しい条件付き等価物が作成される。例えば、あるゲートga 、gb は変数xi =0の場合に限り等価である。一方、あるゲートgc 、gd はxi =1の場合に限り等価である。
(2)新しい条件付き学習が作成される。この学習は所定の区分だけに保持される含意である。かかる簡略化は検証問題を著しく容易化し、屡々、検証処理を劇的に高速化させる。
【0055】
所定の回路Nc2に対し機能的区分を作成すべきか否かの決定は、このポイントで行われる。フィルタ構造内のこのステップで考量されるのは、BDD分割ではなく回路分割だけであり、BDD分割は、現在のアプローチが巨大なBDDを構築することなく二つの所定の回路を検証し得ない場合に限り行われる。
【0056】
回路を分割すべきか否かを決定するため使用される規準は、潜在的な機能的等価物の候補の密度に基づいている。機能的等価物の個数がNc2内のゲート総数よりも著しく少ないことが判明した場合、或いは、主出力に最も近い候補の限界が主出力から構造的距離に関して非常に離れている場合、即ち、膨大なノードのバンドが(計算上コスト高の間接含意の抽出を伴うことなく)容易に関連付けられない2個のネットワークに残される場合、2個の回路はブール定数を少数の主入力に割り当てることにより分割される。一般的に、2個の回路の間に充分な数の潜在的等価物が作成されるまで、又は、分割の個数に関する予めセットされた最大限界(典型的に約8)が超過されるまで、分割が行われる。最大の推移的ファンアウトコーンに影響を与える主入力は回路を分離する変数として選択される。
【0057】
VII.検証コア(VC)
所定のノード対(n1 ,n2 )に対し、システムがn1 ≡n2 かどうかを解法できない場合、以下の2通りのシナリオを考えることができる。
シナリオ(A):n1 ≡n2 の場合に、関係を見つけるため、(n1 ,n2 )のコーン内の内部(入力)ノード(変数)の間の機能的依存性を解析する必要がある。
シナリオ(B):n1 ≠n2 の場合に、関係を見つけるため、主入力に関する関数
【0058】
【外1】
Figure 0003858000
に対する充足ベクトルを表現する必要がある。BDDベースド技術又はATPGベースド方法のいずれか一方は、より複雑な解析を実行し、n1 ≡n2 であるか否かを証明するため使用することができる。ATPGベースド方法は空間枝刈り方法論であるとみなすことができ、OBDDベースド方法は空間コンパクション(関数表現)技術であるとみなされる。そのため、逆の場合があるとしても、ATPGベースド方法はn1 ≠n2 の場合に最も良く動作し、OBDDベースド方法はn1 ≡n2 である場合に最も効率的であると考えられる。厳密な回帰ベースドシミュレーションに起因して、大半の候補対(n1 ,n2 )は実際上機能的に等価であると期待される。従って、検証コアの初期フィルタはOBDDベースド技術であり、その後にATPGベースドアプローチが続く。
【0059】
A.マクロフィルタの構造
検証プログラムのコアは、有効なタイムアウト及びスペースアウト機構によって厳しく制限された3通りの別々の技術により構成される。その中の二つの技術はループ状に結合され、非常に有効な内部フィルタを構成する。上位レベルフィルタはマクロフィルタと称され、内部フィルタはミクロフィルタと称される。ノードの対は、ランダムパターンシミュレーション108により作成された候補リストから取り上げられ、検証コア118はノード対が機能的に等価であるか否かを検証するため適用される。等価であることが判明した場合、下位構造レベルを有するノードはネットワークに保持され、もう一方のノードを機能的に置換するため使用される。保持されたノードにはEQノードのマークが付けられる。
【0060】
検証コアは、(1)ナイーブカットセット(Naive Cutset)ベースド検証120、(2)スマートカットセットベースド検証122、及び、(3)ATPGベースド検証124の3通りの技術からなる。各技術は固有のタイムアウト限界と関連付けられる。特定の技術が呼び出されてからの経過時間を追跡し、プリセット時間が経過した後、割込を発生するアラーム機構が実装されている。最初の2つの方法は、BDDベースの技術であり、固有のスペースアウト限界と関連付けられる。BDD管理下のノードの総数が予め指定された限界を超過した場合に、割込が発生され、BDDベースド機構が打ち切られる。ATPGベースド方法はバックトラックの回数に制限を設定することにより制御される。バックトラックのプリセット数が超過した場合にATPGベースド方法は打ち切られる。スマートカットセットベースド技術及びATPGベースド技術はループ状に配置される(マイクロフィルタ)。このループへの連続的な各エントリは、上記二つの技術を大きいタイムアウト及びスペースアウト限界、即ち、高い強度で呼び出す。かくして、検証されるべきノードの対が与えられた場合、二つのコア方法の中の各方法は、もう一方の方法により多くの計算資源を消費する前に、問題を解法するための公平なチャンスを与えられるべきである。この技術は、特に大規模、複雑な回路に関して非常に有効であることが実験により分かった。
【0061】
B.ローカルナイーブカットセットベースド検証(NCV)
ランダムパターンシミュレーションによって機能的等価物の候補であると判定された2個のノードn1 及びn2 が与えられた場合、最初に内部ノードのナイーブカットセットλが選択される。n1 ∈λなる各ノードは、主入力又はEQノードである。次に、このカットセットは、λ内のノード間の相互機能的依存性を最小限に抑えるため安定化される。λ内の各ノードは、カットセットの他のメンバによって完全にカバーされているか否かを判定するため順番に調べられる。完全にカバーされている場合に、そのノードはカットセットから除去される。例えば、図14において、初期カットセットλがノード{p7,p2,p1,p3,p5,p6}からなる場合を想定する。ノードp5は、ノードp3及びp6によって完全にカバーされている。従って、ノードp5はカットセットから除去しても構わない。また、カットセット内のノードがカットセットの1個以上のメンバに機能的に依存し、その依存性が除去されるように別のノードで置換できるならば、置換が行われる。図14のノードp1は機能的にノードp2及びp3に依存している。ノードp1はλの他のいかなるメンバにも依存していないノードp4により置換され得る。従って、安定化されたカットセットλは、ノード{p7,p2,p4,p3,p6}により構成される。次に、2個のOBDD、B1 及びB2 がλs に関して夫々n1 及びn2 に対し構築される。B1 ≡B2 である場合、ノードn1 及びn2 は機能的に等価であることが証明される。このフェーズは、ユーザが指定し得るタイムアウト及びスペースアウト限界によって制限される。タイムアウト限界及びスペースアウト限界の典型的な値は、5秒(CPU実行時間)及び10,000ノードである。
【0062】
C.マイクロフィルタ:ローカルスマートカットセットベースド検証(SCV)
参考のため引用したMatsunaga,“An Efficient Equivalence Checker For Combinational Circuits", Design Automation Conference (DAC), 1996に記載されているように、ノードn1 及びn2 が等価であり、ナイーブカットセットλN を用いてBDDを構築することによりその等価を証明できない場合、カットλN 上のカットセット変数間の機能的依存性(ドントケア)はNCVによって適切に説明できないので、このアプローチは失敗する(即ち、偽陰性に到達する)。かかる偽陰性の可能性を低下させるため、カットセットλは、λ内のノードが最小相互機能的依存性を有するように選択される。一方、n1 ≠n2 であり、関係を見つけることができない場合、上記の如く、少なくとも関数
【0063】
【外2】
Figure 0003858000
の一部を主入力変数に関して表現する必要がある。これは、ATPGフィルタに適当であり、かつ、機能的依存性を最小限に抑えるため使用されたフィルタ技術が失敗したときにATPGフィルタに自動的に渡される作業である。
【0064】
ノードの集合Sが与えられた場合、スマートカットセットを選択する方法は以下の手順で行われる。TFIs はS内の全ノードの推移的ファンイン(TFI)のノードの集合を表すことにする。2個のカウンタC1 及びC2 はTFIs の各ノードと関連付けられる。ni ∈TFIs なる各ノード毎に、カウンタci は、TFIにni が存在するS内のノードの個数をカウントする。全ての主入力に対するc2 の値は、そのc1 の値と一致する。隣接したファンインノードであるfaninnjを備えたTFIs 内のnj である全ての他のノードに対し、c2 が以下の通り計算される。
【0065】
【数1】
Figure 0003858000
次に、スマートカットセットは、集合Sから始まり、主入力に向かって進む簡単な深さ優先探索手続によって選択される。深さ優先探索は、c1 ≡c2 なるノードで停止する。初期カットセットλが選択された後、λs を獲得するため安定化される。
【0066】
次に、OBDDはλs に関してS内のノードに対し構築される。二つのノードn1 及びn2 がスマートカットセットを用いて検証されるとき、最初に、n1 及びn2 のOBDDの排他的論理和(XOR)が構築される。このBDDが0に縮小する場合、ノードn1 及びn2 は機能的に等価であることが証明される。そうではない場合、逐次合成と称される技術が使用される。現在のXOR形BDDが組み立てられるという点で新しい安定化スマートカットセットを検出する。この逐次合成の処理は、一定回数(典型的に3回)繰り返される。BDDが0に減少する場合、n1 ≡n2 である。一方、BDDが主入力変数に関して充足可能になるならば、n1 ≠n2 である。また、スマートカットセットベースド検証はタイムアウト及びスペースアウト機構によって制御される。タイムアウト限界及びスペースアウト限界の典型的な値は、夫々、20秒(CPU実行時間)及び100,000ノードである。タイムアウト限界はSCVの次のパスで増加される。スマートカットセットベースド検証がタイムアウト又はスペースアウトに起因して停止する場合、或いは、n1 ≡n2 又は n1 ≠n2 のいずれであるかを証明できない場合、ATPGベースド検証が行われる。
【0067】
D.マイクロフィルタ:ATPGベースド検証(AV)
ATPGを用いてn1 及びn2 を検証するため、最初に、n1 及びn2 を使用してマイタが作成される。マイタとは、二つの回路の対応する出力の排他的論理和(XOR)を取ることにより作成された回路
【0068】
【外3】
Figure 0003858000
である。図16にはマイタの一例が示されている。同図において、破線は元の回路接続を表わす。新しいXORゲートが導入され、XORゲートの出力は元々ノードn1 から給電されていたノードに給電する。次に、ATPGツールは、図16に示される如く、故障スタック・アット・ゼロ(s−a−0)をテストするため使用される。故障が冗長である場合、n1 はn2 に機能的に一致するか、又は、両者は可観測性ドントケア条件(ODC)の下で相互に一致する。このフェースで消費される時間は、ATPG処理で許容されたバックトラックの回数を制限し、タイムアウト機構を作動することにより制御される。AVの最初のパスに対し、バックトラック限界は典型的に50にセットされる。この限界は後続のパスで増大される。タイムアウト限界は典型的に50秒にセットされ、同様に後続のパスで増大される。
【0069】
第1のパスがSCV及びAVを通過した後、n1 及びn2 が機能的に等価である、若しくは、機能的に等価ではないのいずれも証明されなかった場合、SCV及びAVは、より大きいタイムアウト、スペースアウト、及び、バックトラック限界を用いて(マイクロフィルタ内で)繰り返される。かくして、VCはネットワークNc2を容認し、ネットワークNc3を生成する。この変換の時間的複雑さは、OBDD及びATPGルーチンに設定された空間的限界及び時間的限界に依存するので、完全に制御することができる。
【0070】
VIII.検査フェーズ
検査フェーズ126において、主出力の対応する対は、それらの等価性を検証しようとして解析される。ネットワークNc3において、全ての機能的に等価なノードは既に併合され、多数の主出力の等価性ができるだけ先に識別されている。そのため、先行フェーズは、二つの回路を検証するため充分である場合が多い。しかし、VC単独では検証できない回路が存在する。二つの原回路の間の多数の(容易な)等価ノードは既に得られているので、完全BDD構成の問題はかなり簡単化されている。このフェーズにおいて、出力BDDを構成するため、本発明は、主入力に到達するまで、若しくは、関数が零に達するまで、内部等価ポイントのカットセットに関して出力
【0071】
【外4】
Figure 0003858000
のOBDDを順番に組み立てる。しかし、本発明のフィルタの原理、及び、計算困難な関数のOBDD爆発の留意により示されるように、BDD構成は、大きい予めセットされたスペースアウト/タイムアウト限界が超過された後に停止される。
【0072】
IX.ODC等価性及びODC学習ベースド再合成
このステップにおいて、残りの未検証主出力の各対は別々に目標とされる。かかる出力対毎に、新しいネットワークNhardがその推移的ファンインコーンに対し作成される。このフェーズの目的は、Nhardのノードの間でより複雑な関係を見つけ、検証問題が単純化されるように、この関係をNhardを再合成するため使用することである。選択された出力対に最も近いEQノードのカットセットは配置されている。この境界の前方のノードは、アヘッドオフフロンティア(AOF)集合を構成する。AOFの全てのノードは、Nc の他のノードと機能的に等価であることが分かっているノードが含まれないようなノードである。このフェーズの目的は、ネットワークのODCの下で等価又は他のノードと学習関係を有するノードを抽出することである。
【0073】
A.ODC等価性及びODC学習候補の同定
最初に、回路は各ノードのシグネチャーを獲得するためランダムにシミュレーションされる。ノードの対は、シミュレーションによって得られたシグネチャーがk1 ビットよりも多数のビットで異なるならば、ODC等価性の候補である。本例ではk1 =1である。この数字は、入力スペースの非常に小さい部分に亘る2個のノードの間の機能的な差異が可観測性ドントケアによって屡々マスクされ、主出力で現れないので選択された。ODC学習に対する候補の場合、以下の4通りの動作がni ,nj ∈AOFなるノードの各対のシグネチャーの間で行われる。
【0074】
【数2】
Figure 0003858000
ここで、signiはノードni のシグネチャーを表わす。掲記の最初の演算の結果は、
【0075】
【外5】
Figure 0003858000
である場合に、恒真である。同様に、他の三つの演算は他の3通りの学習の場合に該当する。ODC学習のための候補を同定するため、上記の各演算の合成シグネチャーは、全数1のシグネチャー、即ち、各ビットがブール値1であるシグネチャーと比較される。合成シグネチャーがk2 個よりも多数のビットで全数1シグネチャーと相違するならば(但し、k2 =1が選択されている)、二つのノードはODC学習の候補であると考えられる。ODC等価性及びODC学習に対する候補が見つけられた後、それらの関係を抽出するルーチンが始動される。
【0076】
B.ODC等価性及びODC学習の抽出
ODC等価性の抽出はATPGベースド検証と同一である。ODC学習の抽出は以下に詳説する。ノードn1 及びn2 がODCの下で、学習
【0077】
【外6】
Figure 0003858000
の候補であることが分かっている場合を考える。次に、マイタが図16に示される如く作成される。続いて、ATPGツールは、Yにおける故障s−a−0をテストするため始動される。故障が冗長である場合、
【0078】
【外7】
Figure 0003858000
及び、n1 ∨n2 が回路内でn2 を機能的に置換するため使用される。
【0079】
他の3タイプのODC学習は同様な方法で抽出される。かかる再合成は2個の回路の併合を補助し、潜在的に検証問題を単純化し得る。また、再合成は、屡々、AOFのノード間により多くの機能的等価物を作成する。これらの機能的等価物は検証を更に単純化するため利用され得る。再合成が終了した後、VC及び検査フェーズは、主出力の単一の対を含むNhard上で再起動される。検査フェーズの間にBDDサイズが爆発した場合、BDD分割が上記の如く起動される。
【0080】
X.2進決定図(BDD)分割
BDD分割は、Fの2n ブール空間を互いに素の部分空間に分割し、各部分空間を別々に表現することにより、(非常に大きいモノリシックBDDを有する)困難な関数FのBDDを構成する。BDDの各区分には新しいBDDマネージャが割り当てられるので、個別に記録することが可能である。更なる区分は、BDDサイズ上の限界に依存して逐次合成の間に動的に作成される。分割はBDD爆発の問題を著しく解消する。各区分が別個のBDDによって表現されるとき、各BDDは独立に作成してもよく、与えられた関数の合成表現は“分割”OBDD表現と称される。
【0081】
A.分割ROBDDの意味:定義
n個の入力Xn ={x1 ,...,xn }に関して定義されたブール関数
【0082】
【外8】
Figure 0003858000
を考える。関数fの分割ROBDD表現Xf は以下の通り定義される。
【0083】
Xn に関して定義されたブール関数
【0084】
【外9】
Figure 0003858000
が与えられた場合、関数fの分割ROBDD表現Xf はk個の関数対の集合
【0085】
【数3】
Figure 0003858000
であり、式中、
【0086】
【外10】
Figure 0003858000
はXn に関して定義され、以下の条件を充たす。
・条件1. wi 及び
【0087】
【外11】
Figure 0003858000
は、変数順序πi 、但し、1≦j≦kの場合にROBDDとして表現される。
・条件2. w1 +w2 +...+wk =1
・条件3.
【0088】
【数4】
Figure 0003858000
式中、+又は∧は、夫々ブール論理オア及びアンドを表わす。集合{w1 ,...,wk }はWにより示される。
【0089】
各wi はウィンドウ関数と称される。直観的に、ウィンドウ関数wi は関数fが定義されているブール空間の一部を表わす。各対
【0090】
【外12】
Figure 0003858000
は、関数fの区分を表わす。ここで、用語“区分”は、区分が互いに素であるという従来の意味では使用されていない。条件1乃至3に加えて、
wi ∧wj =0、但し、i≠j
なる条件がある場合、区分は直交している。このとき、明らかに
【0091】
【外13】
Figure 0003858000
は従来の意味での区分に相当する。
【0092】
B.分割ROBDDを構成する方法
分割された縮小順序付き2進決定図(ROBDD)の性能は、関数がコンパクトに表現されたブール空間の良好な区分を生成する能力に決定的に依存する。ブール空間の良い区分を見つける問題は、分割ROBDD表現の中心である。以下に、コンパクトな直交した分割ROBDDを生成する際に非常に効果的な簡単な発見的方法を説明する。ブールネットリストは本アプローチで使用されているが、この技術は汎用的であり、任意のブール演算の系列に適用することが可能である。
【0093】
本BDD分割アプローチにおいて、ウィンドウの個数は、先見的又は動的に決定される。ウィンドウwi が決定された後、ウィンドウに対応する分割ROBDDは、ウィンドウwi に対応したブール空間内でFを組み立てることにより得られる。
【0094】
ある関数Fに対しBDDを分割する際に、分解されたBDD表現(即ち、入力変数の意味ではなく、所定のターゲット関数Fに対するBDDを構築する過程で作成された疑似入力変数の意味でのBDD)に基づいて作業が行われる。Fに対する分割BDDを作成する必要があるならば、区分を生じさせるため分解されたBDDが解析される。分解ポイントψ1 ,...,ψk に関してFに対する分解されたBDDを組み立てることができないので、区分決定が典型的に行われる。Fに対し分解されたBDDから分割BDDを作成し得る3通りの方法があることに注意する必要がある。
(1)入力変数を使用する分割。入力変数の個数は動的に変更してもよく、又は、所定の定数に設定してもよい。
(2)“内部”変数、即ち、入力変数ではない変数を使用する分割。かかる変数は内部ゲートに取り込まれた疑似変数でも構わない。
(3) 上記(1)と(2)の組合せを用いる分割。
【0095】
本フィルタリングベースド検証処理における時間的なあるポイントで、Fの分解された表現fd (Ψ,X)が得られる。ここで、Ψ={ψ1 ,...,ψk }は、ナイーブカット又はスマートカット処理により分解集合と称され、ψi ∈Ψなる各ψi は分解ポイントである。
【0096】
【数5】
Figure 0003858000
が分解ポイントのROBDDを含む配列を表わす、即ち、ψi ∈Ψなる各ψi が主入力変数、並びに、(できる限り)ψj ≠ψi なる他のψj ∈Ψなるψj に関して、
【0097】
【外14】
Figure 0003858000
と表される対応したROBDDを有する場合を想定する。同様に、
【0098】
【外15】
Figure 0003858000
の配列は、
【0099】
【外16】
Figure 0003858000
によって表される。fd (Ψ,X)におけるψi の合成は、
【0100】
【外17】
Figure 0003858000
によって表され、但し、
【0101】
【数6】
Figure 0003858000
である。
【0102】
fd (Ψ,X)におけるΨのベクトル合成は、
【0103】
【外18】
Figure 0003858000
により表され、ψi のfd への逐次合成を表現する。
【0104】
C.分解表現の分割
ウィンドウ関数wi 、分解表現fd (Ψ,X)、fのROBDD配列Ψbdd が与えられ、
【0105】
【数7】
Figure 0003858000
を表わすROBDDがfよりも小さくなるようなfi を見つける場合を考える。キューブに他ならない全てのwi はこの要求を充たす。
【0106】
fd 、Ψbdd 及びwi が与えられた場合、共通係数
【0107】
【外19】
Figure 0003858000
を作成する。次に、
【0108】
【外20】
Figure 0003858000
において、
【0109】
【外21】
Figure 0003858000
を組み立てることにより、分割関数
【0110】
【数8】
Figure 0003858000
が得られる。ウィンドウ関数wi の集合が与えられた場合、fの分割ROBDDxf は、
【0111】
【数9】
Figure 0003858000
により与えられる。上記定義が上記条件1.乃至条件3.を充たすことは容易に確かめられる。
【0112】
wi がキューブの場合、fi はfに対するROBDDよりも小さいサイズを有することが保証される。また、wi を表わすROBDDは、kがwi 内の文字数であるとき、k個の内部ノードを有する。wi 及び
【0113】
【外22】
Figure 0003858000
は、互いに素のサポートを有するため、
【0114】
【数10】
Figure 0003858000
である。また、fi 構築の各中間結果はf構築の中間結果よりも小さくなると共に、中間ピークメモリ要求量が低減される。
【0115】
上記考察は、f及びfi が異なる変数順序を有するとき、動的変数再整列がある場合に成り立たないことに注意する必要がある。しかし、実際上、動的変数再整列は分割の場合により小さいグラフ上で動作するので、おそらくより効率的である。
【0116】
ウィンドウ関数がキューブよりも複雑なPIの関数である場合でも、
【0117】
【数11】
Figure 0003858000
が使用される。ここで、
【0118】
【外23】
Figure 0003858000
は、wi 上のfの汎用共通係数である。wi 上のfの汎用共通係数は、一般的にfよりもかなり小さい。しかし、i番目の分割ROBDD
【0119】
【外24】
Figure 0003858000
は、最悪の場合では
【0120】
【外25】
Figure 0003858000
になる可能性がある。これを回避するため、一般的なウィンドウ関数を使用すると共に、小さいwi を使用する。
【0121】
D.ウィンドウ関数の選定
与えられたウィンドウ関数から分割関数を構成する方法を決定した後、より優れたウィンドウ関数を得るために方法を検査する。上記の方法は、先見的選定と“爆発”ベースド選定の二つのカテゴリに分類される。
【0122】
1.先見的分割
この方法において、所定数の主入力(PI)を分割のため選択する。k個のPI上で分割する場合、この変数の全ての2進割当てに対応した2k 個の区分を作成する。例えば、x1 及びx2 上で分割することに決めた場合、4個の区分
【0123】
【外26】
Figure 0003858000
が作成される。前節で行った考察から、この種のウィンドウ関数が与えられた場合、モノリシックROBDDよりも小さい分割ROBDDを作成し得ることが分かる。ある時点でメモリに存在すべき区分は1個しかないので、空間的に優れている。メモリの削減量は大きく、同時に全ての区分を処理するため要する時間が全体的に短縮される。
【0124】
異なる区分を独立に作成する際に生じる冗長性を最小限に抑えると同時に、実現される分割を最大化する変数、即ち、任意の分割及び獲得アプローチの基本原理の選択を目標とする。このため、変数x上で関数fを分割するコストを
【0125】
【数12】
Figure 0003858000
として定義する。式中px (f)は分割係数を表し、
【0126】
【数13】
Figure 0003858000
によって与えられ、rx (f)は冗長性係数を表し、
【0127】
【数14】
Figure 0003858000
によって与えられる。
【0128】
小さい分割係数は最悪の二つの区分が小さいということを意味するので分割係数は小さいほど優れ、同様に、小さい冗長性係数は二つの区分を作成する際に含まれる全作業が少ないということを意味するので冗長性係数は小さいほど優れていることに注意する必要がある。比較的少ない総コストを有する変数xが分割のため選定される。
【0129】
関数F及び変数xの所定のベクトルに対し、分割のコストは、
【0130】
【数15】
Figure 0003858000
のように定義される。
【0131】
全てのPIをfd 及びΨを分割するコストが増加する順序に並べ、最良のkを選定する(kはユーザによって指定された所定の数値である)。類似したコスト関数を使用することにより、分割ROBDDを作成するため、PI変数だけではなく、PIに関して表現された
【0132】
【外27】
Figure 0003858000
のような疑似変数を選定することができる。この場合、共通係数演算は、非キューブ形のウィンドウ関数に対する汎用共通係数動作になる。fd 及びΨを分割するコストに従ってランク付けされたこのタイプの選定は、静的分割選定と称される。一方、最良のPI(即ち、x)がfd 及びΨに基づいて選定され、後続のPIが一方の分割において
【0133】
【外28】
Figure 0003858000
に、他方の分割において
【0134】
【外29】
Figure 0003858000
に基づいて再帰的に選定される動的分割戦略をとることも可能である。動的分割方法は指数関数的な数の共通係数を必要とし、コスト高になる。このコストは、関心のある値が
【0135】
【外30】
Figure 0003858000
の共通係数の値だけであるという事実を利用することにより幾分削減され得る。
【0136】
【外31】
Figure 0003858000
の値の上限は、fd のROBDDをトラバースし、xに対応した変数idを有するノードが見つけられる毎に、x=1の分岐を取ることにより計算される。ROBDDをこのようにトラバースして得られるBDDは削減されないので、この方法は正確なカウントを与えない。この方法は、新しいノードを作成する必要が無く、かつ、トラバースが高速にできる利点がある。
【0137】
また、分割の個数が動的に選定されるような区分の作成を選択することが可能である。この場合、BDDが爆発する毎に(BDD爆発を定量化する方法に関する詳細は戦略2の説明を参照のこと)、BDD爆発が回避できると考えられるまで、1ずつインクリメントして選択された分解変数を用いてBDDを動的に分割する。
【0138】
2.爆発ベースド分割
この方法では、fd の
【0139】
【外32】
Figure 0003858000
を逐次的に組み立てる。グラフサイズがある構成(例えば、ψj )に対し著しく増大する場合、現在の
【0140】
【外33】
Figure 0003858000
に基づいてウィンドウ関数wを選定する。ウィンドウ関数は、PI及びその相補形、若しくは、ある
【0141】
【外34】
Figure 0003858000
及び、PIだけに関して表現されたその相補形であり、非常にサイズが小さい。ウィンドウ関数wが得られた後、二つの区分
【0142】
【外35】
Figure 0003858000
を作成し、各区分毎にルーチンを再帰的に呼び出す。
【0143】
典型的に、合成後に得られたBDDが、既に合成された全ての先行した分解BDDの合計と、元の分解されたBDDのサイズとの和よりも10倍以上大きい場合、爆発ベースド分割の実行が選択される。
【0144】
3.先見的変数選択並びに爆発ベースド分割
この戦略では、一定数の分解変数を決定し、爆発ベースド分割を実行し、次に、一定数の主入力変数ベースド分割が行われ、或いは、その逆順の処理が行われる。爆発ベースド分割は主入力並びに疑似変数/分解ポイントの両方を使用することができる。
【0145】
E.合成の順序
ウィンドウ関数を選定し、
【0146】
【外36】
Figure 0003858000
によって与えられたi番目の分割に対する分解された表現を作成した後、最終的なステップは、
【0147】
【外37】
Figure 0003858000
における
【0148】
【外38】
Figure 0003858000
即ち、
【0149】
【外39】
Figure 0003858000
を合成する。最終的なROBDDサイズは所定の変数順序に対し一定ではあるが、中間メモリ必要量及び合成のための時間は、分解ポイントが合成される順番の強い関数であることが分かる。
【0150】
fd に合成され得るあらゆる候補変数に対し、結果として合成されたROBDDのサイズを評価するコストが割り当てられる。最小コストを伴う変数が合成される。サポート集合サイズに基づく簡単なコスト関数は、巧く働くことが分かる。従って、合成後にROBDDのサポート集合のサイズの増加量が最も少ない分解変数を選定する。各ステップ毎に、合成用の候補ψを他のいずれのψbdd にも存在しない分解ポイントに制限する。これにより、分解変数はfd において1回だけ合成されれば足りることが保証される。
【0151】
本発明の種々の実施例を具体的に示したが、本発明の範囲及び精神を逸脱することなく形式及び詳細に関する種々の変更をなし得ることは当業者によって認められる。
【0152】
本発明の種々の実施例を具体的に示したが、本発明の範囲及び精神を逸脱することなく形式及び詳細に関する種々の変更をなし得ることは当業者によって認められる。
【0153】
以上の説明に関して更に以下のような態様が考えられる。
【0154】
(付記1) 回路データ構造により表現された組合せ回路を検証するシステムにおいて、
上記組合せ回路に対し、順番に並べられ検証結果を決定又は上記回路データ構造を変更する複数の完全検証技術及び複数の補助検証技術を実行し、
上記検証結果又は上記変更された回路データ構造を、上記順番の後側の完全検証技術又は補助検証技術の中の一つに送り、
最終的な検証結果又は結果として変更された回路データ構造を提供する手段からなるシステム。
【0155】
(付記2) 上記手段は、所定のコンピュータメモリ使用量又はコンピュータ実行時間使用量に関する制約集合を超えるまで、若しくは、上記最終的な検証結果が決定されるまで上記完全検証技術及び補助検証技術を実行する付記1記載のシステム。
【0156】
(付記3) 回路データ構造により表現された組合せ回路を検証するコンピュータ実装された方法において、
上記組合せ回路に対し、順番に並べられ検証結果を決定又は上記回路データ構造を変更する複数の完全検証技術及び複数の補助検証技術を実行する段階と、
上記検証結果又は上記変更された回路データ構造を、後続の完全検証技術又は補助検証技術の中の一つに供給する段階と、
最終的な検証結果又は結果として変更された回路データ構造が決定されるまで、上記実行する段階及び上記供給する段階を繰り返す段階とからなるコンピュータ実装された方法。
【0157】
(付記4) 上記実行する段階及び上記供給する段階は、所定のコンピュータメモリ使用量又はコンピュータ実行時間使用量に関する制約集合を超えるまで、若しくは、上記最終的な検証結果が決定されるまで繰り返される付記3記載のコンピュータ実装された方法。
【0158】
(付記5) 上記補助検証技術の中の一つの技術は、ナイーブカットセットに基づく検証技術である付記3記載のコンピュータ実装された方法。
【0159】
(付記6) 上記完全検証技術の中の一つの技術は、スマートカットセットに基づく検証技術である付記3記載のコンピュータ実装された方法。
【0160】
(付記7) 上記完全検証技術の中の一つの技術は、自動テストパターン生成に基づく検証技術である付記3記載のコンピュータ実装された方法。
【0161】
(付記8) 上記完全検証技術の中の第1番目はスマートカットセットに基づく検証技術であり、
上記完全検証技術の中の第2番目は自動テストパターン生成に基づく検証技術であり、
上記スマートカットセットに基づく検証技術を実行し、
引き続き自動テストパターン生成技術を実行し、
最終的な検証結果が決定されるまで、又は、空間、時間、若しくは、上記自動テストパターン生成技術において使用されるバックトラックの回数に関して定められた資源の所定の最大値集合を超えるまで、上記スマートカットセットに基づく検証技術及び上記自動テストパターン生成技術の実行を繰り返す段階を更に有する付記3記載のコンピュータ実装された方法。
【0162】
(付記9) 上記順番内の第1の技術は上記順番内の後続の第2の技術よりも弱い技術であり、
技術の強弱は、上記組合せ回路に類似したベンチマーク回路のサンプル集合について経験的に決定され、
上記第1の技術による上記ベンチマーク回路のサンプル集合の検証のための計算時間及びメモリ空間の必要量は、上記第2の技術における必要量よりも少ない付記3記載のコンピュータ実装された方法。
【0163】
(付記10) 上記組合せ回路は別の組合せ回路である複数の区分に分割され、
上記実行する段階及び上記供給する段階は、上記組合せ回路の個別の区分について動作する付記3記載のコンピュータ実装された方法。
【0164】
(付記11) 上記補助検証技術の中の一つの技術はサブグラフ同型に基づく構造フィルタ技術である付記3記載のコンピュータ実装された方法。
【0165】
(付記12) 上記補助検証技術の中の一つの技術はハッシングに基づく機能フィルタ技術である付記3記載のコンピュータ実装された方法。
【0166】
(付記13) 上記補助検証技術の中の一つの技術はランダムパターン生成技術である付記3記載のコンピュータ実装された方法。
【0167】
(付記14) 上記補助検証技術の中の一つの技術は2分決定図(BDD)分割技術である付記3記載のコンピュータ実装された方法。
【0168】
(付記15) 上記補助検証技術の中の一つの技術は可観測性ドントケア(ODC)及び学習に基づく再合成技術である付記3記載のコンピュータ実装された方法。
【0169】
(付記16) 回路データ構造により表現された組合せ回路を解析するシステムにおいて、
上記組合せ回路に対し、順番に並べられ解析結果を決定又は上記回路データ構造を変更する複数の完全解析技術及び複数の補助解析技術を実行し、
上記解析結果又は上記変更された回路データ構造を、上記順番内の後続の完全解析技術又は補助解析技術の中の一つに送り、
最終的な解析結果又は結果として変更された回路データ構造を提供する手段からなるシステム。
【0170】
(付記17) 上記手段は、所定のコンピュータメモリ使用量、コンピュータ実行時間使用量、又は、少なくとも一つの上記完全解析技術が自動テストパターン生成技術である場合にバックトラックの回数に関する制約集合を超えるまで上記完全解析技術及び補助解析技術を実行する付記16記載のシステム。
【0171】
(付記18) 上記手段は、上記組合せ回路の欠陥の有無を決定する手段を更に有する付記16記載のシステム。
【0172】
(付記19) 上記手段は、上記組合せ回路のタイミング制約条件を決定する手段を更に有する付記16記載のシステム。
【0173】
(付記20) 上記手段は、上記組合せ回路に対する最小コストエンジニアリングチェンジ解を決定する手段を更に有する付記16記載のシステム。
【0174】
(付記21) 上記手段は、順序回路の正確さを決定する手段を更に有する付記16記載のシステム。
【0175】
(付記22) 回路データ構造によって表現された組合せ回路を解析するコンピュータ実装された方法において、
上記組合せ回路に対し、順番に並べられ解析結果を決定又は上記回路データ構造を変更する複数の完全解析技術及び複数の補助解析技術を実行する段階と、
上記解析結果又は上記変更された回路データ構造を、後続の上記完全解析技術又は補助解析技術の中の一つに供給する段階と、
最終的な解析結果又は結果として変更された回路データ構造が決定されるまで、上記実行する段階及び上記供給する段階を繰り返す段階とからなるコンピュータ実装された方法。
【0176】
(付記23) 上記実行する段階及び上記供給する段階は、所定のコンピュータメモリ使用量又はコンピュータ実行時間使用量に関する制約集合を超えるまで、若しくは、上記最終的な解析結果が決定されるまで繰り返される付記22記載のコンピュータ実装された方法。
【0177】
(付記24) 上記順番内の第1の技術は上記順番内の後続の第2の技術よりも弱い技術であり、
技術の強弱は上記組合せ回路に類似したベンチマーク回路のサンプル集合について経験的に決定され、
上記第1の技術による上記ベンチマーク回路のサンプル集合の解析のための計算時間及びメモリ空間の必要量は、上記第2の技術に対する必要量よりも少ない付記22記載のコンピュータ実装された方法。
【0178】
(付記25) 回路データ構造によって表現された一対の組合せ回路を検証するコンピュータ実装された方法において、
(a)候補リストを生成するため、ランダムパターンシミュレーションを用いて、上記回路データ構造をシミュレーションし、
(b)上記回路の一部の上記候補リストを枝刈りし、
(c)上記枝刈りされた候補リストに基づいて、上記組合せ回路を複数の区分に分割し、
(d)少なくともスマートカットセットに基づく検証技術と、自動テストパターン生成検証技術とを含むマクロフィルタを、上記回路データ構造の選択された区分に適用し、
(e)可観測性ドントケア(ODC)及び学習に基づく再合成技術を用いて、上記回路データ構造の上記選択された区分を再合成し、
(f)等価性検査用の候補を選択するため上記ランダムパターンシミュレーションを上記回路データ構造の上記再合成された区分に適用し、上記マクロフィルタを上記回路データ構造の上記再合成された区分に適用し、
(g)2分決定図(BDD)分割を用いて、上記回路データ構造の上記再合成され選択された区分を検査し、
(h)上記選択された区分に対し、最終的な検証結果又は結果として得られた回路構造データが決定されるまで上記段階(d)、(e)、(f)及び(g)を繰り返し、
(i)上記組合せ回路の全ての区分に対し上記段階(d)、(e)、(f)、(g)及び(h)を繰り返す段階からなるコンピュータ実装された方法。
【0179】
(付記26) 上記シミュレーションする段階(a)を行う前に、機能フィルタを上記回路データ構造に適用する段階を更に有する付記25記載のコンピュータ実装された方法。
【0180】
(付記27) 上記機能フィルタを適用する前に、構造フィルタを上記回路データ構造に適用する段階を更に有する付記26記載のコンピュータ実装された方法。
【0181】
(付記28) 上記構造フィルタを適用する前に、上記回路データ構造の標的分解を実行する段階を更に有する付記27記載のコンピュータ実装された方法。
【0182】
(付記29) 上記マクロフィルタを適用する段階(f)は、
スマートカットセットに基づく検証技術を実行し、
引き続き自動テストパターン生成技術を実行し、
最終的な検証結果が上記選択された区分に対し決定されるまで上記スマートカットセットに基づく検証技術及び上記自動テストパターン生成技術の実行を繰り返す段階を有する付記25記載のコンピュータ実装された方法。
【0183】
(付記30) 上記枝刈りする段階(b)は、
上記回路の各ゲートに対し、各ゲートが影響を与える対応した主出力を関連づける段階と、
適用されたランダムシミュレーションベクトル集合に対し各ゲートのシグネチャーを決定するためランダムパターンシミュレーションを適用する段階と、
上記枝刈りされた候補リストがゲート対のグループを表現するように、同一又は相補的なシグネチャーを有し出力リストが交差する各ゲート対を、機能的等価性又は機能的相補性の次の検査のためのグループに割り当てる段階を有する付記25記載のコンピュータ実装された方法。
【0184】
(付記31) 回路データ構造によって表現された一対の組合せ回路を解析するコンピュータ実装された方法において、
(a)候補リストを生成するため、ランダムパターンシミュレーションを用いて、上記回路データ構造をシミュレーションし、
(b)上記回路の一部の上記候補リストを枝刈りし、
(c)上記枝刈りされた候補リストに基づいて、上記組合せ回路を複数の区分に分割し、
(d)回路解析技術からなるマクロフィルタを、上記回路データ構造の選択された区分に適用し、
(e)可観測性ドントケア(ODC)及び学習に基づく再合成技術を用いて、上記回路データ構造の上記選択された区分を再合成し、
(f)等価性検査用の候補を選択するため上記ランダムパターンシミュレーションを上記回路データ構造の上記再合成された区分に適用し、上記マクロフィルタを上記回路データ構造の上記再合成された区分に適用し、
(g)2分決定図(BDD)分割を用いて、上記回路データ構造の上記再合成され選択された区分を検査し、
(h)上記選択された区分に対し、最終的な解析結果又は結果として得られた回路構造データが決定されるまで上記段階(d)、(e)、(f)及び(g)を繰り返し、
(i)上記組合せ回路の全ての区分に対し上記段階(d)、(e)、(f)、(g)及び(h)を繰り返す段階からなるコンピュータ実装された方法。
【0185】
(付記32) 上記シミュレーションする段階(a)を行う前に、機能フィルタを上記回路データ構造に適用する段階を更に有する付記31記載のコンピュータ実装された方法。
【0186】
(付記33) 上記機能フィルタを適用する前に、構造フィルタを上記回路データ構造に適用する段階を更に有する付記32記載のコンピュータ実装された方法。
【0187】
(付記34) 上記構造フィルタを適用する前に、上記回路データ構造の目標とされた分解を実行する段階を更に有する付記33記載のコンピュータ実装された方法。
【0188】
(付記35) 上記枝刈りする段階(b)は、
上記回路の各ゲートに対し、各ゲートが影響を与える対応した主出力を関連づける段階と、
適用されたランダムシミュレーションベクトル集合に対し各ゲートのシグネチャーを決定するためランダムパターンシミュレーションを適用する段階と、
上記枝刈りされた候補リストがゲート対のグループを表現するように、同一又は相補的シグネチャーを有し出力リストが交差する各ゲート対を、機能的等価性又は機能的相補性の次の検査のためのグループに割り当てる段階と、
を有する付記31記載のコンピュータ実装された方法。
【0189】
(付記36) 複数の論理ゲートからなる一対の回路の間の類似性を増加させ、上記回路を新しい回路を作成することによってより検証し易くさせる方法において、
(i) 各論理ゲートを上記回路の各対の各ゲート毎に対応するテクノロジー分解の集合と関連付ける段階と、
(ii)上記関連したテクノロジー分解毎に各ゲートのシグネチャーを生成するため、上記関連した各テクノロジー分解に対する上記回路の各論理ゲートを上記回路の主入力変数になされた共通ブール集合割当てによってシミュレーションする段階と、
(iii) 各回路の各論理ゲートを備えた上記テクノロジー分解の一つを、上記二つの分解回路のゲートのシグネチャーが比較されたとき等価性又は相補性シグネチャーを備えた最大個数のゲートの対が獲得されるように、上記テクノロジー分解の適用後に上記二つの回路の原始的論理ゲートが関連したシグネチャーを有するように選択された各テクノロジー分解と関連付ける段階と、
(iv)上記回路の対の各論理ゲートを上記関連付ける段階(iii) で関連付けられたテクノロジー分解で置換することにより、上記原始的論理ゲートに関して上記新しい回路を作成する段階とからなる方法。
【0190】
(付記37) ワイヤと相互接続された論理ゲートの集合と相互接続された主入力ゲートの集合及び主出力ゲートの集合を有するディジタル回路のトポロジー内で、一つの論理ゲートとの間でアサートされた信号を伝達するワイヤ上の場所であるポイント間で論理的等価性及び反転性を決定するコンピュータ支援設計システムにおいて、
上記ディジタル回路内のゲートのランダムパターンシミュレーションと、各ゲートに格納されたランダムパターンシミュレーション結果のビットベクトルを用いて上記ディジタル回路内のゲートを第1のハッシュ表にハッシングすることとにより、機能的等価性及び機能的反転性状態を検査するため候補ゲートを識別する段階と、
上記主入力ゲートの集合からなる第1のカットを含む上記ディジタル回路内のゲートのカットを選択する段階と、
上記ディジタル回路のカットの前方のゲートに対するカットに関して2分決定図(BDD)を構築する段階と、
上記カットのBDDへのポインタを用いて上記ゲートを第2のハッシュ表にハッシングする段階と、
上記第2のハッシュ表の同一場所にハッシュする全てのゲートによって識別されるように、全ての機能的に等価性のゲート及び反転性のゲートを併合する段階とからなるディジタル回路のトポロジー内のポイント間で論理的等価性及び反転性を決定するコンピュータ実装された方法。
【0191】
(付記38) 共有データ構造のサイズに関する所定の限界を超えた場合、又は、単一のカットを用いてBDDが構築された上記ディジタル回路のレベルの数に関する所定の限界に達した場合に、単一のカットに基づいてBDDの構築を停止する段階と、
新しいカットは上記ディジタル回路の上記主出力ゲートから始まり、上記ディジタル回路の上記主入力ゲート又は他の機能的に等価性若しくは機能的に反転性のゲートと既に併合されているゲートのいずれかで終わる上記ディジタル回路の深さ先行トラバーサルにより選択される、カットを選択する段階を繰り返す段階と、
上記カットに関して上記カットの前方のゲートに対するBDDを構築する段階を繰り返す段階と、
上記ゲートのBDDポインタを上記ハッシュ表へのキーとして用いて、上記ディジタル回路の上記ゲートを上記第2のハッシュ表にハッシングする段階を繰り返す段階とを更に有する付記37記載のコンピュータ実装された方法。
【0192】
(付記39) 上記識別、等価性検査、及び、ハッシングを行う段階は、 未検証主出力ゲートの推移的ファンインコーンを決定する段階と、
等価性又は反転性検査のための候補であって未だ検査されていない上記推移的ファンインコーン内の全てのゲートの対を決定する段階と、
上記未だ検査されていないゲートの対を選択し、選択された未検査ゲートの対から始まり、主入力ゲート又は他の等価性若しくは反転性ゲートと既に併合されているゲートのいずれかで終わる上記回路の深さ先行トラバーサルによりカットを選定する段階と、
上記カットに関して上記選択された未検査ゲートの対に対するBDDを構築する段階と、
排他的論理和BDDを形成するため、上記BDDの排他的論理和を作成する段階と、
上記排他的論理和BDDがブール値0に減少するかどうかを検査し、上記排他的論理和BDDがブール値0に減少しないとき、別のカットを選定し、排他的論理和BDDがブール値0に減少するか、又は、カットセットに主入力ゲートだけが含まれるようになるまで、新しい各カットに関して排他的論理和BDDを逐次的に合成する段階と、
上記排他的論理和BDDのサイズが予めセットされた限界を超えた場合に上記排他的論理和を逐次的に合成する段階を打ち切る段階と、
偽陰性検証結果を解法するため、上記主入力ゲートに対応する主出力ゲートの対の排他的論理和BDDを逐次的に合成する段階とからなる付記37記載のコンピュータ実装された方法。
【0193】
【発明の効果】
本発明は容易に拡張し得る利点があることに注意する必要がある。フィルタ構造は、新しい検証技術を追加することにより拡張又は増強され得る。新しい技術は、新しい技術の強さ、並びに、既にフィルタに収容されている他の技術に関する相対的な強さ又は弱さに依存してフィルタ構造の適当な場所に付加される。例えば、ブール表現図(BED)のような技術は、検証コアのマイクロフィルタ内で自動テストパターン発生(ATPG)検証の後にBED技術を追加することにより本発明のフィルタ配置を拡張するため包含される。或いは、BED技術は、マイクロフィルタのスマートカットセットベースド検証の後に実行しても良い。同様に、別の新しい技術が提案又は開発された場合、新しい技術はフィルタ配置の適当な場所に挿入され得る。かくして、検証ソフトウェアシステムの全体を再開発する必要はない。かかる本発明の拡張性は、フィルタ志向型アプローチに対する重要な利点である。
【図面の簡単な説明】
【図1】従来技術による典型的な検証作業のフローチャートである。
【図2】本発明のフィルタアプローチのフローチャートである。
【図3】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図4】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図5】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図6】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図7】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図8】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図9】本発明のフィルタアプローチの別の実施例のフローチャートである。
【図10】充足可能性(SAT)問題を解法する解析ツールとして本発明のフィルタアプローチを使用する方法のフローチャートである。
【図11】BDD用ハッシュ機構の説明図である。
【図12】BDDハッシュ技術のフローチャートである。
【図13】BDDハッシュ技術を使用する検証のフローチャートである。
【図14】カットセット安定化の説明図である。
【図15】マイクロフィルタの説明図である。
【図16】マイタ(miter) の説明図である。
【図17】ODC学習の獲得の説明図である。
【符号の説明】
102 標的分解
104 構造フィルタ
106 機能フィルタ
108 ランダムパターンシミュレーション
109 候補リスト枝刈り
114 回路分割
118,132 検証コア
120 ナイーブカットセットベースド検証
122 スマートカットセットベースド検証
124 ATPGベースド検証
126 検査フェーズ
128 検証用再合成
130 ODC及び学習ベースド再合成
134 修正検査フェーズ
136 BDD分割

Claims (8)

  1. 一対の回路の全体の等価性を検証し得る性能を有する複数の完全検証技術および一対の回路の一部の等価性を検証し得る性能を有する複数の補助検証技術を含む複数の検証技術を用いて、回路データ構造により表現された組合せ回路を検証するコンピュータ支援回路検証システムであって、
    上記複数の検証技術の中から、所要時間及び所要メモリ空間が所定の制約条件に収まる範囲内で回路の等価性を検証し得る能力が低いものからいものへの順番で検証技術を選択する手段と、
    上記回路データ構造の検証結果を決定するか、又は、上記回路データ構造を変更するため、選択された一つの検証技術を実行し、最終的な検証結果を決定するか、又は変更された回路データ構造を次に選択された検証技術へ送る手段と、
    所要時間若しくは所要メモリ空間が所定の制限に到達したときに、最終的な検証結果が決定されていれば該最終的な検証結果を提供し、そうでなければ変更された回路データ構造を提供する手段と、
    を有するコンピュータ支援回路検証システム。
  2. 一対の回路の全体の等価性を検証し得る性能を有する複数の完全検証技術および一対の回路の一部の等価性を検証し得る性能を有する複数の補助検証技術を含む複数の検証技術を用いて、回路データ構造により表現された組合せ回路を検証するコンピュータ支援回路検証システムにおいて、
    上記複数の検証技術の中から、所要時間及び所要メモリ空間が所定の制約条件に収まる範囲内で回路の等価性を検証し得る能力が低いものからいものへの順番に検証技術を順序付ける手順と、
    上記回路データ構造の検証結果を決定するか、又は、上記回路データ構造を変更するため、順序付けられた順番に一つの検証技術を実行する手順と、
    所要時間若しくは所要メモリ空間が所定の制限に到達するか、又は、最終的な検証結果が決定されるまで、上記変更された上記回路データ構造を次に実行される検証技術へ渡す手順と、
    最終的な検証結果又は変更された回路データ構造を提供する手順と、
    を有するコンピュータ支援回路検証方法。
  3. 所要時間と所要メモリ空間の制限が無い場合に一対の回路の等価性を検証し得る完全検証技術、及び、一対の回路の一部だけの等価性を検証し得る補助検証技術を利用し、回路データ構造により表現された組合せ回路を検証するコンピュータ支援回路検証システムにおいて、
    上記回路データ構造の検証結果を決定するか、又は、上記回路データ構造を変更するため、上記組合せ回路に対し、上記組合せ回路に類似したベンチマーク回路のサンプル集合についての所要時間及び所要メモリ空間が少ないものから多いものへの順に予め決定された順番に複数の完全検証技術及び複数の補助検証技術を実行し、
    最終的な検証結果を決定するか、又は上記変更された回路データ構造を次に実行されるべき完全検証技術又は補助検証技術へ送り、
    最終的な検証結果又は結果として変更された回路データ構造を提供する手段を有するコンピュータ支援回路検証システム。
  4. 上記手段は、所定のコンピュータメモリ使用量若しくはコンピュータ実行時間使用量に関する制約に達するか、又は、上記最終的な検証結果が決定されるまで上記完全検証技術及び補助検証技術を順番に実行する、請求項3記載のコンピュータ支援回路検証システム。
  5. ブール式の全部又は一部の恒真性又は充足可能性を証明し得る性能を有する複数の解析技術を用いて、回路データ構造により表現された組合せ回路を解析するコンピュータ支援回路解析システムであって、
    上記複数の解析技術の中から、所要時間及び所要メモリ空間が所定の制約条件に収まる範囲内でブール式の恒真性又は充足可能性を証明し得る能力が低いものからいものへの順番で解析技術を選択する手段と、
    上記回路データ構造の解析結果を決定するか、又は、上記回路データ構造を変更するため、選択された一つの解析技術を実行し、最終的な解析結果を決定するか、又は変更された上記回路データ構造を次に選択された解析技術へ送る手段と、
    所要時間若しくは所要メモリ空間が所定の制限に到達するか、又は、最終的な解析結果が決定されたときに、最終的な検証結果が決定されていれば該最終的な検証結果を提供し、そうでなければ変更された回路データ構造を提供する手段と、
    を有するコンピュータ支援回路解析システム。
  6. ブール式の全部又は一部の恒真性又は充足可能性を証明し得る性能を有する複数の解析技術を用いて、回路データ構造により表現された組合せ回路を解析するコンピュータ支援回路解析システムにおいて、
    上記複数の解析技術の中から、所要時間及び所要メモリ空間が所定の制約条件に収まる範囲内でブール式の恒真性又は充足可能性を証明し得る能力が低いものからいものへの順番に解析技術を順序付ける手順と、
    上記回路データ構造の解析結果を決定するか、又は、上記回路データ構造を変更するため、順序付けられた順番に一つの解析技術を実行する手順と、
    所要時間若しくは所要メモリ空間が所定の制限に到達するか、又は、最終的な解析結果が決定されるまで、上記解析結果又は変更された上記回路データ構造を次に実行される解析技術へ渡す手順と、
    最終的な解析結果又は変更された回路データ構造を提供する手順と、
    を有するコンピュータ支援回路解析方法。
  7. 所要時間と所要メモリ空間の制限が無い場合にブール式の恒真性又は充足可能性を証明し得る完全解析技術、及び、ブール式の一部だけの恒真性又は充足可能性を証明し得る補助解析技術を利用し、回路データ構造により表現された組合せ回路を解析するコンピュータ支援回路解析システムであって、
    上記回路データ構造の解析結果を決定するか、又は、上記回路データ構造を変更するため、上記組合せ回路に対し、上記組合せ回路に類似したベンチマーク回路のサンプル集合についての所要時間及び所要メモリ空間が少ないものから多いものへの順に予め決定された順番に複数の完全解析技術及び複数の補助解析技術を実行し、
    最終的な解析結果を決定するか、又は上記変更された回路データ構造を次に実行されるべき完全解析技術又は補助解析技術へ送り、
    最終的な解析結果又は結果として変更された回路データ構造を提供する手段を有するコンピュータ支援回路解析システム。
  8. 上記手段は、所定のコンピュータメモリ使用量若しくはコンピュータ実行時間使用量に関する制限に達するか、又は、上記完全解析技術のうちの少なくとも一つが自動パターン生成技術である場合に、バックトラックの回数に関する制限に達するまで、上記完全解析技術及び補助解析技術を順番に実行する、請求項7記載のコンピュータ支援回路解析システム。
JP2003131457A 1997-05-16 2003-05-09 フィルタリング型アプローチを使用する組合せ回路の検証方法 Expired - Lifetime JP3858000B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/857,916 US6086626A (en) 1997-05-16 1997-05-16 Method for verification of combinational circuits using a filtering oriented approach
US857916 1997-05-16

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP13069098A Division JP3441645B2 (ja) 1997-05-16 1998-05-13 フィルタリング型アプローチを使用する組合せ回路の検証方法

Publications (2)

Publication Number Publication Date
JP2003345850A JP2003345850A (ja) 2003-12-05
JP3858000B2 true JP3858000B2 (ja) 2006-12-13

Family

ID=25327028

Family Applications (2)

Application Number Title Priority Date Filing Date
JP13069098A Expired - Lifetime JP3441645B2 (ja) 1997-05-16 1998-05-13 フィルタリング型アプローチを使用する組合せ回路の検証方法
JP2003131457A Expired - Lifetime JP3858000B2 (ja) 1997-05-16 2003-05-09 フィルタリング型アプローチを使用する組合せ回路の検証方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP13069098A Expired - Lifetime JP3441645B2 (ja) 1997-05-16 1998-05-13 フィルタリング型アプローチを使用する組合せ回路の検証方法

Country Status (3)

Country Link
US (2) US6086626A (ja)
EP (1) EP0878769A3 (ja)
JP (2) JP3441645B2 (ja)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9720648D0 (en) * 1997-09-29 1997-11-26 Sgs Thomson Microelectronics Method and apparatus for proving system properties
US6212669B1 (en) * 1997-11-05 2001-04-03 Fujitsu Limited Method for verifying and representing hardware by decomposition and partitioning
US6247165B1 (en) * 1998-03-31 2001-06-12 Synopsys, Inc. System and process of extracting gate-level descriptions from simulation tables for formal verification
US6389374B1 (en) * 1998-06-03 2002-05-14 Fujitsu Limited OBDD variable ordering using sampling based schemes
US6308299B1 (en) * 1998-07-17 2001-10-23 Cadence Design Systems, Inc. Method and system for combinational verification having tight integration of verification 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
JP4418591B2 (ja) * 1998-11-03 2010-02-17 ワンスピン ソリューションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置
WO2000026825A1 (de) * 1998-11-03 2000-05-11 Siemens Aktiengesellschaft Verfahren und anordnung zum vergleich technischer systeme untereinander
US6292916B1 (en) * 1998-12-10 2001-09-18 Lucent Technologies Inc. Parallel backtracing for satisfiability on reconfigurable hardware
JP2000242672A (ja) * 1999-02-23 2000-09-08 Mitsubishi Electric Corp 形式的論理検証装置および形式的論理検証方法
US7216306B1 (en) * 1999-03-24 2007-05-08 Zhe Li Checkpoint restart method using condensed partial results by determining boolean constant subsets
US6446243B1 (en) * 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
US6321186B1 (en) * 1999-05-03 2001-11-20 Motorola, Inc. Method and apparatus for integrated circuit design verification
US6282694B1 (en) * 1999-06-18 2001-08-28 Chung-Kuan Cheng IC design floorplan generation using ceiling and floor contours on an O-tree structure
US6415430B1 (en) * 1999-07-01 2002-07-02 Nec Usa, Inc. Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
US6662323B1 (en) * 1999-07-07 2003-12-09 Nec Corporation Fast error diagnosis for combinational verification
US6389376B1 (en) * 1999-07-26 2002-05-14 Sun Microsystems, Inc. Method and apparatus for generating n-segment steiner trees
JP2001067384A (ja) * 1999-08-26 2001-03-16 Matsushita Electric Ind Co Ltd 集積回路装置の設計用データベース及び集積回路装置の設計方法
JP2001195441A (ja) * 2000-01-13 2001-07-19 Nec Ic Microcomput Syst Ltd 出力ドントケア指定方法並びにこれを用いた処理装置、処理方法及び処理プログラムを記録した記録媒体
US6714902B1 (en) * 2000-03-02 2004-03-30 Cadence Design Systems, Inc. Method and apparatus for critical and false path verification
US6473884B1 (en) * 2000-03-14 2002-10-29 International Business Machines Corporation Method and system for equivalence-checking combinatorial circuits using interative binary-decision-diagram sweeping and structural satisfiability analysis
US6993740B1 (en) * 2000-04-03 2006-01-31 International Business Machines Corporation Methods and arrangements for automatically interconnecting cores in systems-on-chip
US20050192789A1 (en) * 2000-06-30 2005-09-01 Jin Yang Methods for formal verification on a symbolic lattice domain
US7031896B1 (en) 2000-06-30 2006-04-18 Intel Corporation Methods for performing generalized trajectory evaluation
US6725431B1 (en) 2000-06-30 2004-04-20 Intel Corporation Lazy symbolic model checking
US6560755B1 (en) * 2000-08-24 2003-05-06 Cadence Design Systems, Inc. Apparatus and methods for modeling and simulating the effect of mismatch in design flows of integrated circuits
US6591400B1 (en) * 2000-09-29 2003-07-08 Intel Corporation Symbolic variable reduction
US6643827B1 (en) * 2000-09-30 2003-11-04 Intel Corporation Symbolic model checking with dynamic model pruning
US6618841B1 (en) * 2000-11-06 2003-09-09 Verplex Systems, Inc. Non-assignable signal support during formal verification of circuit designs
US6938223B2 (en) * 2001-02-15 2005-08-30 Zenasis Technologies, Inc. Logic circuit having a functionally redundant transistor network
US7149675B2 (en) * 2001-03-09 2006-12-12 Intel Corporation System and method for automatically mapping state elements for equivalence verification
US6567959B2 (en) * 2001-03-30 2003-05-20 Intel Corporation Method and device for verification of VLSI designs
US6877146B1 (en) 2001-06-03 2005-04-05 Cadence Design Systems, Inc. Method and apparatus for routing a set of nets
US20040250223A1 (en) * 2001-06-15 2004-12-09 Quiroga Jose Luis L Optimal circuit verification method
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
US6782514B2 (en) * 2002-01-24 2004-08-24 Zenasis Technologies, Inc. Context-sensitive constraint driven uniquification and characterization of standard cells
US6854098B2 (en) * 2002-01-31 2005-02-08 Cadence Design Systems, Inc. Method and apparatus for performing technology mapping
US7383524B2 (en) * 2002-01-31 2008-06-03 Cadence Design Systems, Inc Structure for storing a plurality of sub-networks
US20030217026A1 (en) * 2002-01-31 2003-11-20 Steven Teig Structure for storing a plurality os sub-networks
US6848086B2 (en) * 2002-01-31 2005-01-25 Cadence Design Systems, Inc. Method and apparatus for performing technology mapping
US7076760B2 (en) * 2002-01-31 2006-07-11 Cadence Design Systems, Inc. Method and apparatus for specifying encoded sub-networks
US7024639B2 (en) * 2002-01-31 2006-04-04 Cadence Design Systems, Inc. Method and apparatus for specifying encoded sub-networks
US6854097B2 (en) * 2002-01-31 2005-02-08 Cadence Design Systems, Inc. Method and apparatus for performing technology mapping
US7100143B2 (en) 2002-01-31 2006-08-29 Cadence Design Systems, Inc. Method and apparatus for pre-tabulating sub-networks
US6990650B2 (en) * 2002-01-31 2006-01-24 Cadence Design Systems, Inc. Method and apparatus for performing technology mapping
US7003743B2 (en) * 2002-02-01 2006-02-21 Freescale Semiconductor, Inc. Method and system of data processor design by sensitizing logical difference
US6842884B2 (en) * 2002-08-28 2005-01-11 Verplex Systems, Inc. Combinational equivalence checking methods and systems with internal don't cares
DE10239782A1 (de) * 2002-08-29 2004-03-18 Infineon Technologies Ag Verfahren und Vorrichtung zur Verifikation von digitalen Schaltungen
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
US7144739B2 (en) * 2002-11-26 2006-12-05 Cem Corporation Pressure measurement and relief for microwave-assisted chemical reactions
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7266790B2 (en) * 2003-03-07 2007-09-04 Cadence Design Systems, Inc. Method and system for logic equivalence checking
US7168014B2 (en) * 2003-04-01 2007-01-23 Fujitsu Limited Propagating an error through a network
US6877141B2 (en) * 2003-04-01 2005-04-05 Fujitsu Limited Evaluating a validation vector for validating a network design
US7139929B2 (en) * 2003-04-01 2006-11-21 Fujitsu Limited Generating a test environment for validating a network design
US7571403B2 (en) * 2003-05-23 2009-08-04 Fujitsu Limited Circuit verification
US7627842B1 (en) 2003-06-03 2009-12-01 Cadence Design Systems, Inc. Method and system for verification of circuits with encoded signals
US7512912B1 (en) * 2003-08-16 2009-03-31 Synopsys, Inc. Method and apparatus for solving constraints for word-level networks
US7623894B2 (en) * 2003-10-09 2009-11-24 Freescale Semiconductor, Inc. Cellular modem processing
EP1679627A4 (en) * 2003-10-31 2009-07-22 Fujitsu Microelectronics Ltd VERIFICATION SUPPORT DEVICE, METHOD AND PROGRAM, AND RECORDING MEDIUM
US8428928B1 (en) 2003-11-13 2013-04-23 Cadence Design Systems, Inc. System and method for dynamically representing repetitive loads of a circuit during simulation
US7409328B1 (en) 2003-11-13 2008-08-05 Cadence Design Systems, Inc. System and method for communicating simulation solutions between circuit components in a hierarchical data structure
US7269541B1 (en) 2003-11-13 2007-09-11 Cadence Design Systems, Inc. System and method for supporting multi-rate simulation of a circuit having hierarchical data structure
US7392170B1 (en) * 2003-11-13 2008-06-24 Cadence Design Systems, Inc. System and method for dynamically compressing circuit components during simulation
US7039883B2 (en) * 2003-12-05 2006-05-02 Freescale Semiconductor, Inc. Derivation of circuit block constraints
US7636655B1 (en) * 2003-12-08 2009-12-22 Altera Corporation Extracting synchronous secondary signals by functional analysis
US7146589B1 (en) * 2004-08-23 2006-12-05 Synplicity, Inc. Reducing equivalence checking complexity using inverse function
US7373289B2 (en) * 2004-11-19 2008-05-13 Cadence Design Systems, Inc Electrical isomorphism
US7380226B1 (en) * 2004-12-29 2008-05-27 Cadence Design Systems, Inc. Systems, methods, and apparatus to perform logic synthesis preserving high-level specification
US7260799B2 (en) * 2005-02-10 2007-08-21 International Business Machines Corporation Exploiting suspected redundancy for enhanced design verification
US7346862B2 (en) * 2005-08-19 2008-03-18 Synopsys, Inc. Method and apparatus for optimizing a logic network in a digital circuit
US7363603B2 (en) * 2005-09-13 2008-04-22 International Business Machines Corporation Method and system for case-splitting on nodes in a symbolic simulation framework
US7555733B1 (en) * 2005-09-18 2009-06-30 Infinisim, Inc. Hierarchical partitioning
US7437690B2 (en) * 2005-10-13 2008-10-14 International Business Machines Corporation Method for predicate-based compositional minimization in a verification environment
US20070168372A1 (en) * 2006-01-17 2007-07-19 Baumgartner Jason R Method and system for predicate selection in bit-level compositional transformations
US7356792B2 (en) * 2006-01-26 2008-04-08 International Business Machines Corporation Method and system for enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver
US7571299B2 (en) * 2006-02-16 2009-08-04 International Business Machines Corporation Methods and arrangements for inserting values in hash tables
US7360181B2 (en) * 2006-05-10 2008-04-15 International Business Machines Corporation Enhanced structural redundancy detection
US7398488B2 (en) * 2006-05-17 2008-07-08 International Business Machines Corporation Trace equivalence identification through structural isomorphism detection with on the fly logic writing
US7546561B2 (en) * 2006-05-25 2009-06-09 International Business Machines Corporation System and method of state point correspondence with constrained function determination
US7349792B2 (en) * 2006-05-31 2008-03-25 Caterpillar Inc. System for a virtual liquid sensor
US7913208B2 (en) * 2007-10-11 2011-03-22 International Business Machines Corporation Optimal simplification of constraint-based testbenches
US7882473B2 (en) * 2007-11-27 2011-02-01 International Business Machines Corporation Sequential equivalence checking for asynchronous verification
US20090188753A1 (en) * 2008-01-30 2009-07-30 Feng Chia Liang Rope climbing device
US8117576B2 (en) * 2008-03-05 2012-02-14 Rambus Inc. Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US7934180B2 (en) * 2008-05-27 2011-04-26 International Business Machines Corporation Incremental speculative merging
US8495546B1 (en) 2008-05-28 2013-07-23 Altera Corporation Method for simplifying RTL schematic by grouping nodes into a cloud
US8799837B2 (en) * 2008-08-25 2014-08-05 International Business Machines Corporation Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting
US8195439B1 (en) 2008-09-02 2012-06-05 Infinisim, Inc. Real-time adaptive circuit simulation
US8898618B2 (en) * 2009-03-26 2014-11-25 Altera Corporation Interactive simplification of schematic diagram of integrated circuit design
US8418093B2 (en) * 2009-05-15 2013-04-09 International Business Machines Corporation Method and system for design simplification through implication-based analysis
US20110055221A1 (en) * 2009-08-26 2011-03-03 Sovio Sampo Juhani Method and apparatus for obtaining decision diagrams from unknown hash identifiers
US8332624B2 (en) * 2009-08-26 2012-12-11 Nokia Corporation Method and apparatus for encoding decision diagrams
US8572528B1 (en) * 2009-11-25 2013-10-29 Xilinx, Inc. Method and apparatus for analyzing a design of an integrated circuit using fault costs
US8689069B2 (en) * 2011-06-09 2014-04-01 Mentor Graphics Corporation Multi-targeting boolean satisfiability-based test pattern generation
US9003346B1 (en) 2012-05-17 2015-04-07 Cypress Semiconductor Corporation Stability improvements for timing-driven place and route
US8869080B2 (en) * 2012-09-26 2014-10-21 Apple Inc. Automatically identifying resettable flops for digital designs
US8671375B1 (en) * 2012-11-09 2014-03-11 National Taiwan University Functional timing analysis method for circuit timing verification
JP6044410B2 (ja) * 2013-03-25 2016-12-14 富士通株式会社 論理検証プログラム、論理検証方法および論理検証装置
US9293450B2 (en) * 2014-07-22 2016-03-22 Freescale Semiconductor, Inc. Synthesis of complex cells
US10325050B2 (en) * 2016-04-14 2019-06-18 Oracle International Corporation User-defined partitions for logical and physical circuit syntheses
US10706181B1 (en) * 2017-12-19 2020-07-07 National Technology & Engineering Solutions Of Sandia, Llc Randomization of dangling nodes in a digital circuit design to mitigate hardware trojans
US10726178B1 (en) 2019-07-23 2020-07-28 International Business Machines Corporation Functional logic cone signature generation for circuit analysis
CN111737858B (zh) * 2020-05-29 2024-03-08 西安理工大学 一种堆石混凝土中随机堆石的生成方法

Family Cites Families (9)

* 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
US5331568A (en) * 1991-06-18 1994-07-19 Microelectronics & Computer Technology Corporation Apparatus and method for determining sequential hardware equivalence
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
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
US5638381A (en) * 1995-07-21 1997-06-10 Motorola, Inc. Apparatus and method for deriving correspondence between storage elements of a first circuit model and storage elements of a second circuit model
US5787006A (en) * 1996-04-30 1998-07-28 Micron Technology, Inc. Apparatus and method for management of integrated circuit layout verification processes
US5937183A (en) * 1996-11-05 1999-08-10 Nec Usa, Inc. Enhanced binary decision diagram-based functional simulation
US5754454A (en) * 1997-03-03 1998-05-19 Motorola, Inc. Method for determining functional equivalence between design models

Also Published As

Publication number Publication date
JPH1173448A (ja) 1999-03-16
JP2003345850A (ja) 2003-12-05
JP3441645B2 (ja) 2003-09-02
US6301687B1 (en) 2001-10-09
EP0878769A2 (en) 1998-11-18
US6086626A (en) 2000-07-11
EP0878769A3 (en) 2000-06-21

Similar Documents

Publication Publication Date Title
JP3858000B2 (ja) フィルタリング型アプローチを使用する組合せ回路の検証方法
JP4028107B2 (ja) 分解及び分割によるハードウェアの検証並びに表現方法
Cortadella et al. Deriving Petri nets from finite transition systems
JP3361224B2 (ja) ディジタル回路トポロジーベースのコンピュータ支援設計方法及び装置
US6957404B2 (en) Model checking with layered localization reduction
Mishchenko et al. Improvements to combinational equivalence checking
Jyu et al. Statistical timing analysis of combinational logic circuits
US6035107A (en) Method for performing functional comparison of combinational circuits
US8413090B1 (en) Temporal decomposition for design and verification
US20070226664A1 (en) Method and system for verifying the equivalence of digital circuits
Krishnaswamy et al. Signature-based SER analysis and design of logic circuits
Kuehlmann et al. Combinational and sequential equivalence checking
Wu et al. A robust functional ECO engine by SAT proof minimization and interpolation techniques
Mishchenko et al. A new enhanced constructive decomposition and mapping algorithm
Corzilius et al. Virtual substitution for SMT-solving
JP2001312530A (ja) イメージ計算方法、前イメージ計算方法、プルーニング方法
Huang et al. AQUILA: An equivalence checking system for large sequential designs
Plaza et al. Node mergers in the presence of don't cares
Rice et al. A survey of static variable ordering heuristics for efficient BDD/MDD construction
Nalla et al. The art of semi-formal bug hunting
Brayton et al. A toolbox for counter-example analysis and optimization
Parthasarathy et al. Safety property verification using sequential SAT and bounded model checking
Zhang et al. Simulation and satisfiability in logic synthesis
Tibebu et al. Augmenting all solution SAT solving for circuits with structural information
Case et al. Cut-based inductive invariant computation

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060915

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: 20090922

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

EXPY Cancellation because of completion of term