JP2001022820A - 順序回路の検証方法 - Google Patents

順序回路の検証方法

Info

Publication number
JP2001022820A
JP2001022820A JP2000166564A JP2000166564A JP2001022820A JP 2001022820 A JP2001022820 A JP 2001022820A JP 2000166564 A JP2000166564 A JP 2000166564A JP 2000166564 A JP2000166564 A JP 2000166564A JP 2001022820 A JP2001022820 A JP 2001022820A
Authority
JP
Japan
Prior art keywords
sequential circuit
storage elements
circuit
storage element
sequential
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.)
Pending
Application number
JP2000166564A
Other languages
English (en)
Inventor
Rajarshi Mukherjee
ムカージィー ラージャーシ
Jawahar Jain
ジャイン ジャワハー
Boppana Vamushi
ボッパナ ヴァムシ
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 JP2001022820A publication Critical patent/JP2001022820A/ja
Pending legal-status Critical Current

Links

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/318392Generation of test inputs, e.g. test vectors, patterns or sequences for sequential circuits
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

(57)【要約】 【課題】 本発明は、回路の記憶素子の間の対応関係を
迅速かつ有効に決定し、第1の順序回路と第2の順序回
路の二つの順序回路を検証する方法の提供を目的とす
る。 【解決手段】 記憶素子のペアは選択された記憶素子の
ペアを用いて一方の順序回路から選択される。計算され
たテストベクトルの識別用シーケンスを用いて順序回路
の他の記憶素子が識別される。回路で識別された記憶素
子に基づいて、回路の記憶素子間の対応関係が決定さ
れ、組合せ等価検査によって回路の等価性が判定され、
順序回路が検証される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にコンピュ
ータ援用設計(CAD)システム及び方法の分野に係り、
特に、順序回路のデジタル回路検証用CADシステム及び
方法に関する。
【0002】
【従来の技術】デジタル回路及びその他の複雑なデジタ
ルシステムのコンピュータ援用設計は広範に普及してい
る。回路若しくはシステムの要求条件は、回路若しくは
システムの抽象モデルに定義される。抽象モデルは、次
に、多数の中間ステージに変換される。
【0003】回路若しくはシステムの設計は、一般的な
要求レベルから、より下位の物理的設計の詳細レベルに
進む。それらの間には多数の中間レベルが設けられる。
中間ステージには、屡々、ブロック構造行動設計を表現
するレジスタ・トランスファー・レベル・モデルと、シ
ステムの論理レベル記述である構造的モデルとが含まれ
る。設計の連続的なレベル毎に、回路若しくはシステム
が設計仕様を充たしつづけていることを確認するための
試験若しくは検証が行なわれる。
【0004】これらの回路若しくはシステムは、特に、
組合せ回路及び順序回路に分割される。組合せ回路の出
力は、回路への入力の値に完全に依存する。そのため、
組合せ回路の出力は、回路に先行して与えられた入力の
値には依存しない。これに対し、順序回路の出力は過去
の入力の値に依存し、その出力は、回路への入力と、先
に生成された出力の値、或いは、回路内のあるノードに
依存する。したがって、順序回路は、複数の組合せ論理
回路の一部の出力が記憶素子を介して組合せ論理回路の
一部の入力に帰還される複数の組合せ論理素子としてみ
なされる。
【0005】組合せ論理回路の一例は、ANDゲートの出
力が前のANDゲートに帰還されることのない内部連結さ
れたANDゲートの系列である。記憶素子の一例は、クロ
ック付きフリップフロップである。記憶素子の別の例
は、ラッチ、レジスタ、或いは、その他の類似した記憶
装置である。初期状態で記憶素子に記憶されている値は
不明であり、強制的に特定の既知状態に移す必要があ
る。この既知状態は、回路への入力、すなわち、主入力
と、記憶素子の現在状態とに依存する。かくして、順序
回路は、同じ入力ベクトルの組に対し、記憶素子のブー
ル値に依存して異なる出力値を生成する。したがって、
順序回路の設計検証は複雑になる場合が多い。
【0006】通例的に、設計検証は回路若しくはシステ
ムをシミュレーションすることにより行なわれる。これ
は、適切に選ばれた回路への入力を表現するテストベク
トルの組を用いて回路をシミュレーションし、次に、回
路の出力を検査することによって行なわれる。しかし、
大型かつ複雑な殆どの回路の場合に、大規模な回路のシ
ミュレーションは現実的でない。したがって、順序回路
を検証するため、ブーリアン決定グラフ(BDD)ベースの
状態空間トラバース技術、及び、自動テストパターン生
成(ATPG)ベースのトラバース技術のような別の技術が開
発されている。
【0007】しかし、BDDベースの状態トラバース技術
は、屡々、回路若しくはシステムへの主入力の数の指数
関数である空間、すなわち、メモリ空間を必要とする。
したがって、殆どの大規模回路の場合に、メモリの爆発
が問題になる。同様に、ATPGベースのトラバース技術
は、回路が超大規模である場合に不十分である。
【0008】
【発明が解決しようとする課題】しかし、順序回路の検
証は、二つの回路の記憶素子の間の対応関係を決定する
ことにより簡単化される。もし、このような対応関係が
決定できるならば、検証ステップは、組合せ回路に対す
る検証ステップまで簡単化される。したがって、特に、
大規模回路に対し、回路の記憶素子の間の対応関係を決
めることが望ましい。しかし、記憶素子の間の対応関係
を決める従来技術は有効ではない場合が多い。そのた
め、多数の回路の記憶素子の間の対応関係を迅速かつ有
効に決定する能力が、特に、大規模かつ複雑な回路に対
し重要になり始めている。
【0009】したがって、本発明は、回路の記憶素子の
間の対応関係を迅速かつ有効に決定し、第1の順序回路
と第2の順序回路の二つの順序回路を検証する方法及び
システムの提供を目的とする。
【0010】
【課題を解決するための手段】本発明の一実施例によれ
ば、第1の順序回路と第2の順序回路の二つの順序回路
を検証する方法は、第1の順序回路の記憶素子及び第2
の順序回路の記憶素子を決定するステップと、上記第1
の順序回路の記憶素子のペアを選択するステップと、上
記第1の順序回路の選択された記憶素子のペアから識別
用基準を確定するステップと、上記識別用基準に基づい
て上記第1の順序回路の記憶素子及び上記第2の順序回
路の記憶素子を分類するステップとを含む。一実施例に
おいて、上記識別用基準は、上記選択された記憶素子の
ペアの中の一方の記憶素子の出力が他方の記憶素子の出
力と異なるようにさせるテストベクトルのシーケンスを
計算することである。
【0011】別の実施例によれば、主入力及び主出力を
有する第1の順序回路と第2の順序回路を検証する方法
が提供される。この方法は、第1の順序回路の記憶素子
と第2の順序回路の記憶素子を分類するステップと、上
記第1の順序回路の記憶素子及び上記第2の順序回路の
記憶素子の次期状態を決定するか、或いは、抽象BDD(二
分決定グラフ)若しくは部分BDDを使用して、又は、ハッ
シュ符号の有無に係らず完全ROBDD(既約順序付き二分決
定グラフ)を使用して確率的ハッシュ符号を決定するス
テップと、上記第1の順序回路の上記記憶素子の次期状
態のハッシュ符号若しくはROBDDを上記第2の順序回路
の上記記憶素子の次期状態と比較するステップと、上記
第1の順序回路及び上記第2の順序回路の上記次期状態
の上記ハッシュ符号若しくは上記ROBDDの等価性に基づ
いて上記第1の順序回路及び上記第2の順序回路の上記
記憶素子を再分類するステップとを含む。一形態では、
記憶素子の次期状態を決定するステップは、記憶素子の
次期状態を表現するためサンプリングされたBDD若しく
は抽象BDDを構築する。
【0012】本発明の上記特徴並びにその他の特徴は、
添付図面と共に以下の説明を参照することによって容易
に認められ、より良く理解できるであろう。
【0013】
【発明の実施の形態】I. 概要 本発明は、順序回路及びシステムを検証する方法並びに
システム、特に、二つの順序回路の記憶素子の間の対応
関係を決定する方法並びにシステムを提供する。一実施
例による第1の方法において、状態正当性検証ベース法
は、記憶素子の各ペアを識別するテストベクトルのシー
ケンスを見つけるためATPGツールを用いて一つの順序回
路内の記憶素子のペアを識別する。これらのシーケンス
を用いることにより、別の順序回路の記憶素子が同様に
識別される。
【0014】他の実施例において、第2の方法は、回路
内の記憶素子を識別するためサンプリングベースBDD及
び抽象BDDを使用する。記憶素子の主入力及び現在状態
ラインに基づいてサンプリングベースBDD及び/又は抽
象BDDを構築することにより、第2の方法は等価性の記
憶素子のグループを作成する。各等価性グループは、新
しいグループが作成されなくなるまで、新しいサンプリ
ングベースBDD及び/又は抽象BDDを構築することにより
改良される。
【0015】他の実施例において、第3の方法は、第1
の方法と第2の方法を結合する。第3の方法は、記憶素
子のクラスタを作成するため、サンプリングBDD及び抽
象BDDベースの方法を使用する。新クラスタが作成され
なくなった後、状態正当性検証ベース法は、必要に応じ
て、クラスタを改良する。状態正当性検証ベース法は、
3個以上の記憶素子を含む各グループの記憶素子を検査
し、更に識別する。
【0016】上記3通りのいずれの方法においても、両
方の回路で識別された記憶素子に基づいて、回路の記憶
素子の間の対応関係が決定される。この回路は、完全な
対応関係が二つの回路の記憶素子の間で決定されたと
き、組合せ検証を用いて組合せ回路として検証され、さ
もなければ、獲得された対応関係情報が検証を簡単化す
るため使用される元の回路の順序検証によって簡略化さ
れた順序回路として検証される。
【0017】II. 状態正当性検証ベース記憶対応付け 状態正当性検証ベース記憶対応付けは、2個の順序回路
の記憶素子の間の対応関係を決定する。一方の順序回路
は検証されるべき回路を表わし、もう一方の順序回路は
特定回路を表わす。特定回路は、設計工程の先行段階で
正確であることが検証されたエラーを含まない回路であ
る。
【0018】図1は、状態正当性検証ベース記憶対応付
けを行なう処理を示す。ステップ11において、第1の
回路から記憶素子のペアが選択される。ステップ13に
おいて、テストベクトルの識別用シーケンスを計算す
る。識別用シーケンスは、選択された記憶素子のペアに
異なる論理値を出力させるテストベクトルのシーケンス
である。テストベクトルは回路の主入力に適用される値
の組である。
【0019】ステップ15において、記憶素子のペアが
識別されたことが判定された場合、ステップ17におい
て、第1の回路及び第2回路の更なる記憶素子を識別す
るためテストベクトルの識別用シーケンスが使用され
る。これは、ステップ17において、テストベクトルの
識別用シーケンスを、第1の回路及び第2の回路に適用
することにより実現される。回路内の記憶素子の出力値
は検査され、記憶素子は、その出力値に基づいてグルー
プ若しくはクラスタに分割される。たとえば、記憶素子
の出力が0又は1である場合に、出力が0である記憶素
子は、第1のグループに収容され、出力が1である記憶
素子は第2のグループに収容される。ステップ19にお
いて、第1の回路内で付加的な記憶素子のペアが識別さ
れたかどうかが判定される。付加的な記憶素子のペア
は、記憶素子のいずれかのグループが2個以上の記憶素
子を含む場合に識別される。ステップ19において、こ
れ以上の記憶素子のペアを第1の回路から選択し得ない
と判定された場合、第1の回路内の別の記憶素子のペア
がステップ11で選択され、処理が繰り返される。一実
施例において、異なる記憶素子のペアが同一グループか
ら選択される。
【0020】ステップ15において、記憶素子のペアが
識別不能であると判定された場合、次に、ステップ19
において、他の記憶素子のペアを選択可能かどうかが判
定される。再度、別の記憶素子のペアを第1の回路から
選択できない場合に、処理は終了する。しかし、他の記
憶素子のペアが選択可能であるならば、ステップ11、
13、15及び17が繰り返し続けられる。
【0021】このように、2個の回路内の記憶素子は、
好ましくは、各グループが第1の回路からの唯一の記憶
素子及び第2の回路からの唯一の記憶素子だけを包含す
るようになるまで、反復的に更なるグループに分割され
る。対応した記憶素子のグループが識別用テストベクト
ルの同一シーケンスを用いて形成されると共に、第1の
回路内の記憶素子を第2の回路内の記憶素子と対応付け
ることが可能である。また、識別用テストシーケンスが
テスト生成器を2個の回路の中の一方の回路だけに適用
することによって見つけられ、一方の回路内の2個の記
憶素子からの出力だけが識別用テストシーケンスを決定
するため検査されると共に、識別用テストシーケンスを
決定する際のリソース消費量が削減される。
【0022】他の実施例において、処理は、選択された
記憶素子のペアが第1の回路だけから選択された記憶素
子のペアと、第2の回路だけから選択された記憶素子の
ペアを含むように変更される。たとえば、記憶素子F
1、F2及びF3は、第1の回路にあり、記憶素子S
1、S2及びS3は第2の回路にある。選択された記憶
素子のペアには、F1,F2;F2,F3;F1,F3;S
1,S2;S2,S3;S1,S3が含まれる。したが
って、F1、F2のような両方の回路からのペアが一体
として選択されることはない。本例では、ステップ11
及び19が変更され、選択された記憶素子のペアには、
いずれかの回路から選択された記憶素子のペアが含まれ
る。
【0023】変更されたステップ11において、この処
理は、一方の回路からの記憶素子のペアを選択する。変
更されたステップ19において、一方の回路から選択可
能な他の記憶素子のペアが存在するかどうかが判定され
る。付加的な記憶素子のペアを選択できることが判定さ
れた場合、変更されたステップ11が繰り返され、異な
る記憶素子のペアが選択される。しかし、それ以上付加
的な記憶素子のペアを選択できないことが判定された場
合、処理は終了する。一方の回路から記憶素子のペアを
選択することにより、選択可能な記憶素子のペアの個数
が拡大された場合に、屡々、最適なテストベクトルのシ
ーケンスを決定できる。しかし、同時に両方の回路から
ではなく、一方の回路だけから記憶素子のペアを選択す
ることにより、識別用テストシーケンスを決定する際の
リソース消費量は削減されたままである。
【0024】図2には、テストベクトルの識別用シーケ
ンスを計算する処理が示されている。ステップ131に
おいて、この処理は、検証されるべき順序回路を変更す
る。一実施例において、この処理は、回路のネットリス
トを変更する。ネットリストとは、順序回路の内部連結
及びゲートの表現である。ネットリストは、記憶素子の
ペアの出力が2入力として与えられるXORゲートを作成
するように変更され、XORゲートの出力で「スタック・
アット・ゼロ」障害を試験することができる。ライン上
の「スタック・アット・ゼロ」障害とは、ラインが論理
値0で持続若しくは固定されるような障害である。XOR
ゲートの出力で「スタック・アット・ゼロ」障害を試験
する方法は周知技術であり、記憶素子が識別可能である
かどうかを判定する便利な方法である。
【0025】図3は、ステップ131の処理によって変
更された例示的な回路の簡単化された回路図である。主
入力21Aは、部分回路21への入力を供給する。主出
力21Bは部分回路21の出力を表わす。第1の記憶素
子23及び第2の記憶素子25は、図1のステップ11
の処理によって選択された記憶素子のペアを表わす。両
方の記憶素子23及び25は、部分回路に接続された入
力と、部分回路に接続された出力とを有する。記憶素子
23及び25の出力は、XORゲート27の入力にも接続
される。
【0026】「スタック・アット0(S−A−0)」障
害は、XORゲート27の出力に挿入される。XORゲート2
8に論理値0を出力させるため、XORゲート27への2
入力は一致する必要がある。したがって、XORゲート2
7に接続された記憶素子23及び25の出力は一致しな
ければならない。第1の記憶素子23が全ての入力ベク
トルに対し第2の記憶素子25の出力と一致する出力を
生成する場合、2個の記憶素子は識別不能である。
【0027】再度図2を参照するに、ステップ133に
おいて、挿入された障害が試験される。一実施例におい
て、ATPGツールが挿入された障害を試験するため使用さ
れる。ATPGツールとその用法の一例は、参考のため引用
されているM. Abramovici etal., Digital System Test
ing and Testable Design, Computer Science Press, N
ew York, NY, 1990に記載されている。ステップ135
において、この処理が障害を見つけなかった場合、ステ
ップ137において、この試験を停止するかどうかが判
定される。一実施例において、この処理は、試験のため
の時間が所定の時間制限、たとえば、5分間を超過した
場合に、試験を停止すべきことを決定する。他の実施例
において、ATPGツールがリバース決定の所定の反復回
数、たとえば、1000回の反復を超過したときに試験
を停止すべきことを決める。ステップ137において、
試験が停止されるべきであると判定された場合、障害の
試験は停止され、処理が終了する。ステップ137にお
いて、試験を停止すべきではないと判定された場合、ス
テップ139において障害は試験不能であると判定され
る。障害が試験不能であるならば、記憶素子のペアは識
別不能であるとみなされる。
【0028】図3を参照するに、本発明の一実施例で使
用される通常のATPGツールは、テストベクトルのシーケ
ンスを生成する。テストベクトルのシーケンスは、回路
の入力に供給されたとき、論理値1の出力を図3のXOR
ゲート27の出力に生成する。一実施例において、テス
トベクトルの組は、ランダムな形式で生成され、或い
は、遺伝アルゴリズム若しくは決定グラフに基づくよう
な代替的なATPG技術を用いて生成される。ATPGツールが
「スタック・アット・ゼロ」障害を検出するためテスト
ベクトルのシーケンスを配置できない場合、記憶素子は
識別不能である。しかし、ATPGツールが「スタック・ア
ット・ゼロ」障害を検出するためテストベクトルのシー
ケンスを配置できる場合、記憶素子は識別可能である。
したがって、図3の例に類似した順序回路に変更を加
え、挿入された障害を試験することにより、選択された
記憶素子の中の一部のペアを識別することができる。
【0029】図4は、図1に示されたステップ17の詳
細フローチャートである。ステップ141において、こ
の処理は、テストベクトルの識別用シーケンスを適用す
ることによって、両方の回路をシミュレーションする。
ステップ143において、この処理は、あるクラスの記
憶素子の出力を検査する。記憶素子のクラスとは、これ
から識別されるべき記憶素子のグループである。最初、
回路のシミュレーションが行なわれる前には、全ての記
憶素子が一つのクラスに収容される。ステップ145に
おいて、この処理は、クラス内の記憶素子の出力が等し
いかどうかを判定する。出力の値が一致しない場合、ス
テップ147において、このクラスは新しいクラスタの
組に分割される。
【0030】たとえば、出力値が0,1,1,0である
記憶素子(S1,S2,S3,S4)のクラスは、2個のクラス
に分割される。一方のクラスは、S1及びS4のクラスであ
り、他方のクラスはS2及びS3のクラスである。ステップ
145において、記憶素子のクラスの出力値が一致して
いると判定された場合、ステップ149において、記憶
素子の他のクラスを利用できるかどうかが判定される。
更なる記憶素子のクラスが存在する場合、ステップ14
3及び145が繰り返し行なわれる。しかし、ステップ
149において、検査すべき他の記憶素子のクラスが存
在しないことが判定された場合、処理は終了する。
【0031】状態正当性検証ベース処理が同一回路内の
多数の記憶素子を識別できない旨を示す場合、この回路
は冗長性を含む。これらの識別不能な記憶素子を取り扱
うため、状態正当性検証ベース処理は、初期前提条件の
組を取り入れることによって改良され得る。初期前提条
件の一例は、通例的なATPGツールを用いることによって
識別されない記憶素子を認定するような回路状態空間の
事前評価である。初期前提条件の別の例は、識別不能で
あると考えられる記憶素子の潜在的評価を決めることで
ある。
【0032】状態正当性検証ベース処理が多数の記憶素
子を識別できない場合、この処理法は、得られる順序回
路内で取り扱われるべき記憶素子の総数を最小限に抑え
ることによって順序回路を複雑な問題を非常に簡単化す
る。かくして、順序回路は著しく簡単化され、従来の順
序検証技術を適用することが可能である。
【0033】III. サンプリングベース記憶対応付け法 サンプリングベース法は、2個の順序回路の記憶素子の
グループを識別するため、2個の順序回路の部分を解析
する。1個以上の記憶素子を含む第1の順序回路の部分
は、一実施例によれば、固定値を回路の主入力に割り当
てることによってサンプリングされる。同様に、1個以
上の記憶素子を含む第2の順序回路は、一実施例では、
固定値をこの回路の主入力に割り当てることによってサ
ンプリングされる。第1の順序回路のサンプリングされ
た部分は、等価性について第2の順序回路のサンプリン
グされた部分と比較される。第1の順序回路のサンプリ
ングされた部分が第2の順序回路のサンプリングされた
部分と等価的ではない場合、第1の順序回路はエラーを
含む。逆に、第1の順序回路のサンプリングされた部分
が第2の順序回路のサンプリングされた部分と等価であ
る場合、第1及び第2の順序回路の他の部分がサンプリ
ングされ、比較される。順序回路のサンプリング及び比
較は、エラーが検出されるか、或いは、両方の順序回路
の中の記憶素子を含む全ての部分が完全にサンプリング
され比較されるまで続けられる。
【0034】一実施例において、サンプリングベース処
理法は、2個の回路の部分を解析sるためハッシュ符号
を使用し、記憶素子のグループを区別する。ハッシュ符
号は、ブール代数関数の(算術変換及び二分決定グラフ
を用いて計算される)整数表現である。ブール代数関数
のサンプルのハッシュ符号が計算されたとき、ハッシュ
符号は与えられたブール代数関数の部分空間の整数表現
である。ブール代数部分空間の一部を表現するためハッ
シュ符号を使用することは、参考のため引用されたJ.J
ain et al., Probabilistic Verification of Boolean
Functions, Formal Methods in System Design, vol.1,
1992、並びに、J. Jain, On Analysisof Boolean Func
tions, Ph.D Dissertation, Dept. of Electrical and
Computer Engineering, University of Texas at Austi
n, 1993に記載されている。ブール代数空間の一部の同
一表現は同一ハッシュ符号を有する。したがて、第1の
ブール代数部分空間の一部を表現するハッシュ符号が第
2のブール代数部分空間の一部を表現するハッシュコー
ドと一致するならば、第1及び第2のブール代数部分空
間の一部は等価である。
【0035】他の実施例において、サンプリングベース
処理法は、2個の回路の部分を解析するため決定グラフ
の系列を使用し、記憶素子のグループを識別する。決定
グラフの一例は、サンプリングベースBDDである。一実
施例において、使用されるBDDは、ブール代数部分空間
の一部を表現する部分BDDである。部分BDDについては、
参考のため引用された文献:D. E. Ross, Functional c
alculations using Ordered Partial Multi-Decision E
ngineering, University of Texas at Austin, 1990に
記載されている。他の実施例で使用されるBDDは、参考
のため引用された文献:J. Jain et al., Decompositio
n Techniques for Efficient ROBDD Construction, LNC
S, Formal Methods in CAD 96, Springer-Verlag, Nove
mber, 1996に記載されている。別の実施例において使用
されるBDDは抽象BDDであり、抽象BDDについては、参考
のため引用された文献:S. Jha et al., Equivalence C
hecking Using Abstract BDDs, Proceedings of IEEE I
nternational Conference on Computer Design: VLSI i
n Computers & Processors (1997)に記載されている。
抽象BDDとは、関数に対するブール代数空間の窓又は一
部分を表現するBDDである。したがって、抽象BDDは、本
質的に回路のサンプリングを組み込む。このため、サン
プリングベース処理法を使用すると回路の2重サンプリ
ングが生じるが、これによって性能上の問題は発生しな
い。
【0036】BDDはブール代数関数を表現する。たとえ
ば、図5には、第1及び第2のORゲート51及び53
と、ANDゲート55とを含む回路が示されている。第1
のORゲート51は、入力N1及びN2を有する。第2のORゲ
ートは、入力N2及びN3を有し、入力N2は2個のORゲート
によって共用される。ORゲートの出力はANDゲートに供
給される。ANDゲートは出力N6を有する。ANDゲートの出
力は、ブール代数関数 N6=(N1 or N2) and (N2 or N3) によって表現される。この回路例に対するBDDは図6に
示されている。BDDは、頂点とも称される節点と、枝と
により構成される。更なる枝が伸びていない節点は終端
節点若しくは終端と呼ばれる。BDDは順序付きBDD(OBDD)
であり、各入力はBDDの各経路に1回ずつしか現れない
ように拘束され、全ての経路上で変数は固定順に現れ
る。BDDは、図7に示されるように既約順序付きBDD(ROB
DD)でもよい。OBDDを簡約する規則は公知技術である。R
OBDDの重要性は、所定の関数に対するROBDDが特有(ユニ
ーク)であること、すなわち、サポート変数の所与の順
序に対し標準形であるという点である。かくして、2個
のOBDDが同じROBDDに簡約された場合、これらのOBDDに
よって表現された回路の機能は等価である。
【0037】一般的に、ROBDDは、Applyプロシージャの
ある種の変形を用いて構築される。このApplyプロシー
ジャについては、参考のため引用された文献:R. E. Br
yant,Graph Based Algorithms for Boolean Function M
anipulation, IEEE Trans. Computer C-35(8): 667-69
1, August 1986に記載されている。Applyプロシージャ
を用いることにより、ゲートGに対するROBDDは、ゲート
Gの入力のROBDDの記号操作によって合成される。所与の
回路に対し、回路のゲートは、所望の出力ゲートのROBD
Dが構築されるまで、深さ(縦)優先探索法によって処理
される。
【0038】図8には、サンプリングベース処理法のフ
ローチャートが示される。ステップ81において、この
処理は、第1の回路及び第2の回路について記憶素子の
単一グループ若しくは初期クラスタを作成する。したが
って、第1及び第2の回路の全ての記憶素子は単一クラ
スタ内に収容される。ステップ83において、この処理
は、ブール代数定数の組を回路への主入力の一部に割り
当てる。他の実施例において、ブール代数定数の代わり
に変数が一部の主入力に割り当てられ、割り当てられた
変数を用いてブール代数関数が割り当てられた部分空間
若しくは窓に関して生成される。窓及び窓関数の例は、
参考のため引用された文献:米国特許出願第08/964,904
号明細書に開示されている。ステップ85において、こ
の処理は、BDD変数を全ての記憶素子に割り当てる。同
一クラスタ内の各記憶素子には同じBDD変数が割り当て
られる。別のクラスタ内の他の記憶素子には、異なる特
有のBDD変数が割り当てられる。ステップ87におい
て、全ての固定主入力に適当な固定BDDが割り当てられ
る。
【0039】ステップ89において、BDDが記憶素子の
次期状態ラインに関して両方の回路に対し構築される。
構築されたBDDは、主入力及び現在状態ラインに基づい
ている。たとえば、記憶素子SE1の現在状態ラインに
は、AのようなBDD変数が割り当てられる。同様に、主入
力には、BDD変数X1-Xnが割り当てられ、他の記憶素子の
現在状態ラインには、BDD変数B1-Bnが割り当てられる。
同一クラスタ内の記憶素子の全ての現在状態ラインには
同じBDD変数が割り当てられる。したがって、記憶素子S
E1の次期状態ラインに対するBDDは、A、X1-Xn、B1-Bn
関してブール代数関数を表現するBDDである。別の実施
例の場合に、記憶素子の識別子は、計算され、決定さ
れ、比較される。識別子は、完全ブール代数空間の多数
の部分空間における次期状態関数である。
【0040】ステップ91において、この処理は、構築
されたBDDを検査して、同一クラスタ内の記憶素子が別
の構築されたBDDを有するかどうかを判定する。同一ク
ラスタ内の2個の記憶素子が別々の構築BDDを有すると
判定された場合、ステップ93において、それらの記憶
素子は異なるクラスタに収容される。
【0041】たとえば、記憶素子(S1,S2,S3)のクラ
スタがそれぞれ次期状態ラインに対し構築された構築BD
DのB1,B2,B3を有する場合を考える。B1=B3、かつ、B
2≠B 1であるならば、記憶素子S2は記憶素子S1及びS3
ら識別可能である。これにより、このクラスタは、記憶
素子S1とS3が一方のクラスタに収容され、記憶素子S2
別のクラスタに収容されるように、2個の新しいクラス
タに分割される。ステップ91において、同一クラスタ
内の記憶素子に対し構築されたBDDの中に異なるBDDが存
在しないことがわかった場合、処理は先に進む。ステッ
プ95において、所定の基準に基づいて他の記憶素子を
識別するために他のBDDを構築する必要があるかどうか
が判定される。このような所定の基準の一つは、この処
理の2回の連続した反復処理において新しいクラスタが
作成されないというものである。ステップ95におい
て、処理を継続するよう決定された場合、ステップ8
3、85、87及び89が繰り返し行なわれる。
【0042】サンプリングベース処理法は、構造的処理
方法を組み込むことによってさらに改良される。構造的
処理方法は、記憶素子の過渡的ファンインコーンと過渡
的ファンアウトコーンとを決定する。記憶素子の過渡的
ファンインコーンは、回路の主入力から記憶素子の入力
への全てのゲートを表現する。記憶素子の過渡的ファン
アウトコーンは、記憶素子の出力から回路の主入力への
全てのゲートを表現する。過渡的ファンインコーン及び
過渡的ファンアウトコーンを共用しない記憶素子は識別
可能である。かくして、構造的処理により、クラスタの
組を予め作成できるようになる。構造的処理が終了した
後に決定されたクラスタの組の中のクラスタは、図8に
示された処理のステップ81で作成された初期クラスタ
であるとみなされる。
【0043】状態正当性検証ベース処理法と同様に、サ
ンプリングベース処理法が改良されず、サンプリングベ
ース処理法が多数の記憶素子を識別できないと認定した
場合に、サンプリングベース処理法は、順序回路を検証
する複雑な問題を著しく簡単化する。対応した全ての記
憶素子は主入力として作成される。このようにして生じ
た順序検証問題は著しく簡単化される。
【0044】IV. 状態正当性検証ベース処理法とサン
プリングベース処理法の結合 状態正当性検証ベース処理とサンプリングベース処理が
結合された方法は、上述の方法の特長を組み合わせる。
第1に、サンプリングベース処理法は、新クラスタが作
成できなくなるまで、記憶素子のクラスタを作成するた
め使用される。第2に、3個以上の記憶素子を含むクラ
スタに対し、状態正当性検証ベース処理法は、記憶素子
を識別すべくクラスタを改良するため使用される。した
がって、順序回路の記憶素子の間の対応関係が決定さ
れ、順序回路が検証される。
【0045】図9には、結合された状態正当性検証ベー
ス処理法及びサンプリングベース処理法の概略フローチ
ャートが示される。ステップ191において、この処理
は、図8を参照して説明されたサンプリングベース処理
法を開始する。ステップ193において、この処理は、
サンプリングベース処理法によって作成されたクラスタ
を検査する。ステップ195において、この処理は、ク
ラスタの中の一つが3個以上の記憶素子を含むかどうか
を判定する。クラスタの中の一つが3個以上の記憶素子
を含むことが判定された場合、ステップ197におい
て、上記の状態正当性検証ベース処理が起動される。し
かし、図1のステップ11において、選択された記憶素
子のペアは、2個以上の記憶素子を含むクラスタから選
択される。したがって、ステップ199において、この
処理は、ステップ197で起動された状態正当性検証ベ
ース処理に、サンプリングベース処理法により作成され
3個以上の記憶素子を収容するクラスタからの記憶素子
を与える。状態正当性検証ベース処理法が完了した後、
処理が終了する。一実施例において、フィルタリングベ
ース結合検証技術が使用される。このフィルタリングベ
ース結合検証技術は、参考のため引用された文献:R. M
ukherjee et al., Filtering Oriented Combinational
Verification Approach, 1997 ACM/IEEE International
Workshop on Logic Synthesis, 1997に記載されてい
る。フィルタリングベース結合検証技術は、できる限り
2組以上の記憶素子のペアを含むクラスタ内の記憶素子
の機能的等価性を検証することができる。この処理が、
ステップ195において、各クラスタに、各回路から1
個ずつの合わせて2個の記憶素子が含まれることを判定
した場合、全ての記憶素子が検証されたとみなさせ、処
理は終了する。この処理が、ステップ195において、
クラスタに1個の記憶素子しか残されていないと判定し
た場合、回路内のエラーが自動的に検出される。一実施
例において、エラーは回路に残された1個の記憶素子の
入力コーンを検査することによって位置を割り出され
る。
【0046】別の実施例において、クラスタが2組以上
の記憶素子のペアを含む場合、マッチング状態変数を見
つけるためバイシミュレーション関係が使用される。2
個の順序回路の状態変数の間のバイシミュレーション関
係を検出しようとする際に、2個の順序回路を表現する
2個の所与の状態機械が変数長”I”のテストベクトル
に関して識別不能である状態の組が検出される。一実施
例において、長さ”I”は、小さい整数として静的に選
択され、別の実施例では、長さ”I”はバイシミュレー
ション関係計算中に固定ポイントを計算するときに消費
されるBDDリソースの量を考慮して動的に選択される。
この動的な選択については、参考のため引用された文
献:Moodanos et al., Sequential Redundancy Identif
ication Using Verification Techniques, Internation
al Test Conference, 1992, 197-205に記載されてい
る。2台の機械である状態が等価であると判定された場
合、互いに対応する状態変数への2通りの割り当ては既
知である。したがって、2台の機械に対する2通りの割
当ては、少なくとも長さ”I”の入力シーケンスに対し
等価である。かくして、これらの割当ては、2台の機械
の状態変数の間に更なる相関関係を生ずる。たとえば、
一方のクラスタは記憶素子a1、a2及びa3を収容し、もう
一方のクラスタは記憶素子b1、b2及びb3を収容する二つ
のクラスタが検出された場合を考える。等価状態はa1=
0、a2=1、a3=1及びb1=0、b2=1、b3=1であるの
で、記憶素子a1及びb1は、新しいクラスタに一緒に分類
される。
【0047】V. 対応関係を使用する検証 状態正当性検証ベース処理、サンプリングベース処理、
若しくは、状態正当性検証ベース処理とサンプリングベ
ース処理の結合法を使用することによって、第1の順序
回路からの記憶素子は第2の順序回路からの記憶素子と
グループ化される。すなわち、回路からの記憶素子が識
別された後、作成された各グループは、第1の順序回路
からの一部の記憶素子と、第2の順序回路からの一部の
記憶素子を収容する。一つのグループが各回路からの正
確に1個ずつの記憶素子を収容する場合、上記の2個の
記憶素子は、機能的に等価性であると考えられる。記憶
素子の対応関係若しくはグループ分けを確定することに
よって、等価関係に基づく記憶素子は、エラー源である
可能性は無いと考えられる。したがって、識別不能な記
憶素子を含む第1の順序回路の残りの部分、又は、組合
せ回路は、検証する必要がある。しかし、識別された記
憶素子をそれ以上検証する必要が無い場合、回路の残り
の部分を検証することはより簡単な問題になる。実際
上、有効な従来の組合せ検証技術を用いることによっ
て、第1の順序回路の残りの部分は検証される。
【0048】図10には、上記の方法を使用する検証処
理の動作概要が示されている。ステップ101におい
て、この処理は、第1の順序回路の記憶素子を第2の順
序回路に対応付けるため、状態正当化検証ベース処理、
サンプリングベース処理、若しくは、状態正当化検証ベ
ース処理とサンプリングベース処理の結合処理を選択
し、起動する。ステップ101で起動された処理が完了
した後、ステップ103において、両方の回路の全ての
記憶素子の間の対応関係が確定されたかどうかが判定さ
れる。ステップ103において一部の記憶素子は識別不
能であることが判定された場合、この処理はステップ1
05において順序検証技術を起動する。ステップ105
で起動された順序検証技術が完了した後、ステップ10
9において、順序回路が等価であるかどうかが判定され
る。順序回路が等価ではないと判定された場合、エラー
が第1の順序回路で検出される(ステップ111)。順序
回路が等価であると判定された場合、第1の順序回路で
エラーは検出されず(ステップ113)、第1の順序回路
はエラーを含まないことが検証される。
【0049】全ての記憶素子が対応付けられていること
を判定された場合、二つの回路は組合せ回路の形に簡単
化される。この処理は、簡単化された回路を検証するた
め、ステップ107において組合せ検証技術を起動す
る。ステップ107で起動された組合せ検証技術が完了
した場合、ステップ109において、順序回路は等価で
あるかどうかが判定される。順序回路が等価ではない場
合、エラーが第1の順序回路で検出される(ステップ1
11)。順序回路が等価であると判定された場合、第1
の順序回路でエラーは検出されず(ステップ113)、第
1の順序回路はエラーを含まないことが検証される。
【0050】以上の説明に関して更に以下のような態様
が考えられる。
【0051】(1) 第1の順序回路と第2の順序回路
の二つの順序回路を検証する方法であって、上記第1の
順序回路の記憶素子を決定するステップと、上記第2の
順序回路の記憶素子を決定するステップと、上記第1の
順序回路の記憶素子のペアを選択するステップと、上記
第1の順序回路の選択された記憶素子のペアから識別用
基準を確定するステップと、上記識別用基準に基づいて
上記第1の順序回路の記憶素子及び上記第2の順序回路
の記憶素子を分類するステップとを含む方法。
【0052】(2) 上記識別用基準は、上記選択され
た記憶素子のペアの中の一方の記憶素子の出力が他方の
記憶素子の出力とは異なるようにさせるテストベクトル
のシーケンスを計算することである項1記載の方法。
【0053】(3) 上記第1の順序回路の記憶素子及
び上記第2の順序回路の記憶素子を分類するステップ
は、上記計算されたテストベクトルのシーケンスを使用
して上記第1の順序回路及び上記第2の順序回路をシミ
ュレーションするステップと、上記第1の順序回路の記
憶素子の出力を上記第2の順序回路の記憶素子の出力と
マッチングするステップとを含む、項2記載の方法。
【0054】(4) 記憶素子の全てのペアが選択され
るまで、上記第1の順序回路の記憶素子及び上記第2の
順序回路の記憶素子を選択し、上記識別用基準に基づい
て分類し続けるステップを更に有する項3記載の方法。
【0055】(5) 上記記憶素子は、フリップ・フロ
ップ、ラッチ、レジスタ、及び、その他の類似した記憶
デバイスである項4記載の方法。
【0056】(6) 上記第1の順序回路の記憶素子の
初期状態を計算するステップを更に有する項1記載の方
法。
【0057】(7) 上記第1の順序回路の記憶素子の
間で識別不能な関係を内在的に計算するステップを更に
有する項1記載の方法。
【0058】(8) 上記テストベクトルのシーケンス
を計算するステップは、上記第1の順序回路に所定の障
害を試験することができるテスト回路を付加するステッ
プと、上記所定の障害を試験するため、テストベクトル
を生成し、上記第1の順序回路への主入力に上記テスト
ベクトルを供給するテスト生成器を付加するステップと
を有する、項2記載の方法。
【0059】(9) 上記テスト回路を付加するステッ
プは、上記選択された記憶素子のペアの出力に接続され
た入力を有するXORゲートを含むように上記第1の順序
回路を変更するステップを含む項8記載の方法。
【0060】(10) 上記所定の障害は、ラインが論
理値0に固定される障害である項8記載の方法。
【0061】(11) 第1の順序回路と第2の順序回
路の二つの順序回路を検証する方法であって、上記第1
の順序回路の記憶素子及び上記第2の順序回路の記憶素
子を決定するステップと、上記第1の順序回路の記憶素
子のペアを選択するステップと、選択された記憶素子の
ペアを識別するテストベクトルのシーケンスを計算する
ように自動テストパターン生成器を上記第1の順序回路
に適用するステップと、上記計算されたテストベクトル
のシーケンスに基づいて上記第1の順序回路の記憶素子
及び上記第2の順序回路の記憶素子を分類するステップ
とを含む方法。
【0062】(12) 上記選択された記憶素子のペア
を識別するテストベクトルのシーケンスは、上記選択さ
れた記憶素子のペアの中の一方の記憶素子の出力が他方
の記憶素子の出力とは異なるようにさせるテストベクト
ルのシーケンスである項11記載の方法。
【0063】(13) 記憶素子の全てのペアが選択さ
れるまで、上記第1の順序回路の記憶素子及び上記第2
の順序回路の記憶素子を選択し、上記テストベクトルの
シーケンスを計算するため上記自動テストパターン生成
器を適用し続けることに基づいて上記第1及び上記第2
の順序回路の記憶素子を分類し続けるステップを更に有
する項12記載の方法。
【0064】(14) 上記記憶素子は、フリップ・フ
ロップ、ラッチ、レジスタ、及び、その他の類似した記
憶デバイスである項13記載の方法。
【0065】(15) 主入力及び主出力を有する第1
の順序回路と第2の順序回路を検証する方法であって、
上記第1の順序回路の記憶素子及び上記第2の順序回路
の記憶素子を少なくとも1個のクラスタに分類するステ
ップと、上記第1の順序回路の記憶素子及び上記第2の
順序回路の記憶素子の現在状態を決定するステップと、
上記第1の順序回路の記憶素子及び上記第2の順序回路
の記憶素子の次期状態を決定するステップと、上記第1
の順序回路の記憶素子の上記次期状態を上記第2の順序
回路の対応した記憶素子の上記次期状態と比較するステ
ップと、上記第1の順序回路の記憶素子の上記次期状態
と上記第2の順序回路の記憶素子の上記次期状態の等価
性に基づいて、上記第1の順序回路の記憶素子及び上記
第2の順序回路の記憶素子を新しいクラスタに再分類す
るステップとを含む方法。
【0066】(16) 上記第1の順序回路の上記主入
力の中の少なくとも1入力に固定値を割り当てるステッ
プと、上記第1の順序回路の上記主入力の中の少なくと
も1入力に対応した上記第2の順序回路の上記主入力の
中の少なくとも1入力に固定値を割り当てるステップ
と、同一クラスタに属する上記第1の順序回路の記憶素
子及び上記第2の順序回路の記憶素子に同じ変数を割り
当てるステップと、上記割り当てられた固定値及び変数
から上記第1の順序回路の記憶素子の上記次期状態及び
上記第2の順序回路の記憶素子の上記次期状態を計算す
るステップを更に有する項15記載の方法。
【0067】(17) 記憶素子の新しいクラスタが得
られなくなるまで、上記第1の順序回路並びに上記第2
の順序回路の現在状態及び次期状態を決定し、比較し続
けるステップを更に有する項16記載の方法。
【0068】(18) 上記記憶素子の上記次期状態を
決定するステップは、上記記憶素子の上記次期状態を表
現する決定グラフを構築するステップを含む項17記載
の方法。
【0069】(19) 上記決定グラフはサンプリング
ベース二分決定グラフである項18記載の方法。
【0070】(20) 上記決定グラフは部分二分決定
グラフである項18記載の方法。
【0071】(21) 上記決定グラフは抽象二分決定
グラフである項18記載の方法。
【0072】(22) 上記記憶素子の次期状態の比較
は、上記第1の順序回路の上記記憶素子の上記次期状態
の構築されたサンプリングベース二分決定グラフを、上
記第2の順序回路の上記記憶素子の上記次期状態の構築
されたサンプリングベース二分決定グラフと比較するこ
とにより行なわれる項19記載の方法。
【0073】(23) 上記記憶素子は、フリップ・フ
ロップ、ラッチ、レジスタ、及び、その他の類似した記
憶デバイスである項22記載の方法。
【0074】(24) 構造的な観点に基づいて上記第
1の順序回路及び上記第2の順序回路を分類するステッ
プを更に有する項22記載の方法。
【0075】(25) 上記第1及び第2の順序回路を
分類するステップは、各記憶素子の過渡的ファンインコ
ーンを決定するステップと、上記過渡的ファンインコー
ン内で同じ主入力を有する記憶素子を分類するステップ
とを含む項24記載の方法。
【0076】(26) 上記第1及び第2の順序回路を
分類するステップは、各記憶素子の過渡的ファンアウト
コーンを決定するステップと、上記過渡的ファンアウト
コーン内で同じ主出力を有する記憶素子を分類するステ
ップとを含む項24記載の方法。
【0077】(27) 3個以上の記憶素子を含む記憶
素子のグループから記憶素子のペアを選択するステップ
と、上記第1の順序回路の記憶素子を決定するステップ
と、上記第2の順序回路の記憶素子を決定するステップ
と、上記選択された記憶素子のペアから識別用基準を確
定するステップと、上記識別用基準に基づいて上記第1
及び第2の順序回路の上記記憶素子を再分類するステッ
プとを更に有する項17記載の方法。
【0078】(28) 上記識別用基準は、上記選択さ
れた記憶素子のペアの中の一方の記憶素子の出力が他方
の記憶素子の出力とは異なるようにさせるテストベクト
ルのシーケンスを計算することである項27記載の方
法。
【0079】(29) 上記第1の順序回路の記憶素子
及び上記第2の順序回路の記憶素子を分類するステップ
は、上記計算されたテストベクトルのシーケンスを使用
して上記第1の順序回路及び上記第2の順序回路をシミ
ュレーションするステップと、上記第1の順序回路の記
憶素子の出力を上記第2の順序回路の記憶素子の出力と
マッチングするステップとを含む、項28記載の方法。
【0080】(30) 記憶素子の全てのペアが選択さ
れるまで、上記第1の順序回路の記憶素子及び上記第2
の順序回路の記憶素子を選択し、上記識別用基準に基づ
いて分類し続けるステップを更に有する項29記載の方
法。
【0081】(31) 上記テストベクトルのシーケン
スを計算するステップは、上記第1の順序回路に所定の
障害を試験することができるテスト回路を付加するステ
ップと、上記所定の障害を試験するため、テストベクト
ルを生成し、上記第1の順序回路への主入力に上記テス
トベクトルを供給するテスト生成器を付加するステップ
とを有する、項30記載の方法。
【0082】(32) 上記テスト回路を付加するステ
ップは、上記選択された記憶素子のペアの出力に接続さ
れた入力を有するXORゲートを含むように上記第1の順
序回路を変更するステップを含む項31記載の方法。
【0083】(33) 上記所定の障害は、ラインが論
理値0に固定される障害である項32記載の方法。
【0084】(34) 主入力及び主出力を有する第1
の順序回路と第2の順序回路を検証する方法であって、
上記第1の順序回路及び上記第2の順序回路を分割する
ステップと、上記第1の順序回路の分割部分を上記第2
の順序回路の分割部分と比較するステップと、上記第2
の順序回路の上記分割部分と等価的である上記第1の順
序回路の上記分割部分に基づいて、上記第1の順序回路
及び上記第2の順序回路の分割部分内の記憶素子をクラ
スタに分類するステップとを含む方法。
【0085】(35) 上記第1の順序回路及び上記第
2の順序回路を分割するステップは、決定グラフを構築
するステップを含む項34記載の方法。
【0086】(36) 上記決定グラフはサンプリング
ベース二分決定グラフである項35記載の方法。
【0087】(37) 上記第1の順序回路及び上記第
2の順序回路を分割するステップは、部分二分決定グラ
フを構築するステップを含む項34記載の方法。
【0088】(38) 上記第1の順序回路及び上記第
2の順序回路を分割するステップは、抽象二分決定グラ
フを構築するステップを含む項34記載の方法。
【0089】(39) 主入力及び主出力を有する第1
の順序回路と第2の順序回路を検証する方法であって、
上記第1の順序回路及び上記第2の順序回路を分割する
ステップと、上記第1の順序回路の分割部分を第1のハ
ッシュ符号の組として表現するステップと、上記第2の
順序回路の分割部分を第2のハッシュ符号の組として表
現するステップと、上記第1のハッシュ符号の組を上記
第2のハッシュ符号の組と比較するステップと、各クラ
スタが同じハッシュ符号をもつ記憶素子を収容するよう
に、上記第1の順序回路及び上記第2の順序回路の分割
部分内の記憶素子をクラスタに分類するステップとを含
む方法。
【0090】(40) 3個以上の記憶素子を含む記憶
素子のグループから記憶素子のペアを選択するステップ
と、フィルタリングベース組合せ検証を適用することに
より、上記選択された記憶素子のペアの機能的等価性を
検証するステップとを更に有する項27記載の方法。
【0091】(41) 1個ずつの記憶素子だけが上記
記憶素子のグループに収容されているときに、エラーを
認定するステップを更に有する項27記載の方法。
【0092】(42) 上記記憶素子のグループ内で唯
一の記憶素子の入力コーンを検査することにより認定さ
れたエラーの位置を見つけるステップを更に有する項4
1記載の方法。
【0093】(43) 上記第1の順序回路の一部の主
入力に関数を割り当てるステップと、上記第1の順序回
路の一部の主入力に変数を割り当てるステップと、上記
割り当てられた変数から上記第1の順序回路の部分空間
のための関数を割り当てるステップと、上記第1の順序
回路の上記主入力の少なくとも1入力に対応した上記第
2の順序回路の上記主入力の少なくとも1入力に変数を
割り当てるステップと、上記割り当てられた変数から上
記第2の順序回路の部分空間のための関数を割り当てる
ステップと、同一クラスタに属する上記第1の順序回路
及び上記第2の順序回路の記憶素子に同じ変数を割り当
てるステップと、上記割り当てられた固定値及び固定変
数から、上記第1の順序回路及び上記第2の順序回路の
記憶素子の次期状態のための識別子を計算するステップ
とを更に有する項15記載の方法。
【0094】(44) 記憶素子の新しいクラスタが得
られなくなるまで、上記第1の順序回路及び上記第2の
順序回路の上記記憶素子の上記識別子を決定し、比較し
続けるステップを更に有する項43記載の方法。
【0095】(45) 上記識別子は完全ブール代数空
間の多数の部分空間における次期状態関数である項44
記載の方法。
【0096】(46) 構築された決定グラフは部分空
間に作成された少なくとも1個の部分ブール代数空間で
構築された決定グラフである項45記載の方法。
【0097】(47) 上記記憶素子の次期状態を比較
するステップは、上記第1の順序回路の上記記憶素子の
次期状態の構築された部分空間二分決定グラフを、上記
第2の順序回路の上記記憶素子の次期状態の構築された
部分空間二分決定グラフと比較するステップを含む項4
6記載の方法。
【0098】(48) 上記記憶素子は、フリップ・フ
ロップ、ラッチ、レジスタ、及び、その他の類似した記
憶デバイスである項47記載の方法。
【0099】
【発明の効果】以上の通り、本発明は、二つの順序回路
の記憶素子の間の対応関係を判定するシステム及び方法
を提供する。順序回路の記憶素子の間の対応関係が決定
された後、回路の等価性は、(完全な対応関係が検出さ
れた場合には)組合せ検証ツールを用いて試験され、
(完全な対応関係が検出されなかった場合には)順序検
証ツールを用いて試験され、これにより、回路が検証さ
れる。
【0100】このように本発明によれば、大規模回路に
対し記憶素子の間の対応関係を迅速かつ有効に決定する
ことができるので、大規模かつ複雑な順序回路の設計検
証が行なえるようになる。
【0101】本発明は具体的な実施例に関して説明され
ているが、当業者には多数の付加的な変更及び変形が明
白であろう。したがって、本発明は、上記実施例に記載
されていない形態として実施することができることに注
意する必要がある。このように、本発明の実施例は、あ
らゆる観点から例示的であり、本発明の範囲を限定する
ものではない。本発明の範囲は、上記実施例の説明では
なく、請求項に記載された事項及びそれらの均等物によ
って定められる。
【図面の簡単な説明】
【図1】状態正当性検証ベース処理の概略フローチャー
トである。
【図2】図1の識別用シーケンス計算ステップ13の詳
細フローチャートである。
【図3】状態正当性検証ベース処理によって変更された
回路例の説明図である。
【図4】図1における他の記憶素子を識別するステップ
17の詳細フローチャートである。
【図5】論理設計を概略的に説明するためのデジタル回
路のトポロジーを示す図である。
【図6】図5に示されたデジタル回路の機能性を表わす
二分決定グラフである。
【図7】図6に示された二分決定グラフの既約順序付き
二分決定グラフである。
【図8】サンプリングベース処理の概略フローチャート
である。
【図9】サンプリングベース処理と状態正当性検証ベー
ス処理が結合された方法の概略フローチャートである。
【図10】対応関係を使用する回路検証の概略フローチ
ャートである。
【符号の説明】
21 部分回路 21A 主入力 21B 主出力 23,25 記憶素子 27 XORゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジャワハー ジャイン アメリカ合衆国,カリフォルニア 95051, サンタ・クララ,リーハイ・ドライヴ 3575番 10号 (72)発明者 ヴァムシ ボッパナ アメリカ合衆国,カリフォルニア 95051, サンタ・クララ,グラナダ・アヴェニュ 3500番 230号

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第1の順序回路と第2の順序回路の二つ
    の順序回路を検証する方法であって、 上記第1の順序回路の記憶素子を決定するステップと、 上記第2の順序回路の記憶素子を決定するステップと、 上記第1の順序回路の記憶素子のペアを選択するステッ
    プと、 上記第1の順序回路の選択された記憶素子のペアから識
    別用基準を確定するステップと、 上記識別用基準に基づいて上記第1の順序回路の記憶素
    子及び上記第2の順序回路の記憶素子を分類するステッ
    プとを含む方法。
  2. 【請求項2】 第1の順序回路と第2の順序回路の二つ
    の順序回路を検証する方法であって、 上記第1の順序回路の記憶素子及び上記第2の順序回路
    の記憶素子を決定するステップと、 上記第1の順序回路の記憶素子のペアを選択するステッ
    プと、 選択された記憶素子のペアを識別するテストベクトルの
    シーケンスを計算するように自動テストパターン生成器
    を上記第1の順序回路に適用するステップと、 上記計算されたテストベクトルのシーケンスに基づいて
    上記第1の順序回路の記憶素子及び上記第2の順序回路
    の記憶素子を分類するステップとを含む方法。
  3. 【請求項3】 主入力及び主出力を有する第1の順序回
    路と第2の順序回路を検証する方法であって、 上記第1の順序回路の記憶素子及び上記第2の順序回路
    の記憶素子を少なくとも1個のクラスタに分類するステ
    ップと、 上記第1の順序回路の記憶素子及び上記第2の順序回路
    の記憶素子の現在状態を決定するステップと、 上記第1の順序回路の記憶素子及び上記第2の順序回路
    の記憶素子の次期状態を決定するステップと、 上記第1の順序回路の記憶素子の上記次期状態を上記第
    2の順序回路の対応した記憶素子の上記次期状態と比較
    するステップと、 上記第1の順序回路の記憶素子の上記次期状態と上記第
    2の順序回路の記憶素子の上記次期状態の等価性に基づ
    いて、上記第1の順序回路の記憶素子及び上記第2の順
    序回路の記憶素子を新しいクラスタに再分類するステッ
    プとを含む方法。
  4. 【請求項4】 主入力及び主出力を有する第1の順序回
    路と第2の順序回路を検証する方法であって、 上記第1の順序回路及び上記第2の順序回路を分割する
    ステップと、 上記第1の順序回路の分割部分を上記第2の順序回路の
    分割部分と比較するステップと、 上記第2の順序回路の上記分割部分と等価的である上記
    第1の順序回路の上記分割部分に基づいて、上記第1の
    順序回路及び上記第2の順序回路の分割部分内の記憶素
    子をクラスタに分類するステップとを含む方法。
  5. 【請求項5】 主入力及び主出力を有する第1の順序回
    路と第2の順序回路を検証する方法であって、 上記第1の順序回路及び上記第2の順序回路を分割する
    ステップと、 上記第1の順序回路の分割部分を第1のハッシュ符号の
    組として表現するステップと、 上記第2の順序回路の分割部分を第2のハッシュ符号の
    組として表現するステップと、 上記第1のハッシュ符号の組を上記第2のハッシュ符号
    の組と比較するステップと、 各クラスタが同じハッシュ符号をもつ記憶素子を収容す
    るように、上記第1の順序回路及び上記第2の順序回路
    の分割部分内の記憶素子をクラスタに分類するステップ
    とを含む方法。
JP2000166564A 1999-06-04 2000-06-02 順序回路の検証方法 Pending JP2001022820A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/325,886 US6408424B1 (en) 1999-06-04 1999-06-04 Verification of sequential circuits with same state encoding
US325886 1999-06-04

Publications (1)

Publication Number Publication Date
JP2001022820A true JP2001022820A (ja) 2001-01-26

Family

ID=23269890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000166564A Pending JP2001022820A (ja) 1999-06-04 2000-06-02 順序回路の検証方法

Country Status (3)

Country Link
US (1) US6408424B1 (ja)
EP (1) EP1065609A2 (ja)
JP (1) JP2001022820A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043431A (ja) * 2010-08-17 2012-03-01 Fujitsu Ltd 特性関数によって表現されたデータ・サンプルの比較

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490708B2 (en) * 2001-03-19 2002-12-03 International Business Machines Corporation Method of integrated circuit design by selection of noise tolerant gates
US6567959B2 (en) * 2001-03-30 2003-05-20 Intel Corporation Method and device for verification of VLSI designs
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
US7266790B2 (en) * 2003-03-07 2007-09-04 Cadence Design Systems, Inc. Method and system for logic equivalence checking
US7216318B1 (en) 2003-04-29 2007-05-08 Cadence Design Systems, Inc. Method and system for false path analysis
US7587690B1 (en) 2003-04-29 2009-09-08 Cadence Design Systems, Inc. Method and system for global coverage analysis
US7032192B2 (en) * 2003-05-22 2006-04-18 Fujitsu Limited Performing latch mapping of sequential circuits
US7093218B2 (en) * 2004-02-19 2006-08-15 International Business Machines Corporation Incremental, assertion-based design verification
JP4733935B2 (ja) * 2004-06-29 2011-07-27 富士通セミコンダクター株式会社 試験パターン生成装置、テスト回路試験装置、試験パターン生成方法、テスト回路試験方法、試験パターン生成プログラム、テスト回路試験プログラム、および記録媒体
US7360183B2 (en) * 2004-12-08 2008-04-15 Freescale Semiconductor, Inc. Design analysis tool and method for deriving correspondence between storage elements of two memory models
US20060135190A1 (en) * 2004-12-20 2006-06-22 Drouet Francois X Dynamic remote storage system for storing software objects from pervasive devices
TWI316787B (en) * 2005-04-13 2009-11-01 Via Tech Inc Method for optimizing critical path timing in a logic synthesis flow and data processing system
US8554522B2 (en) * 2009-12-16 2013-10-08 International Business Machines Corporation Detection of design redundancy
US9477805B2 (en) * 2015-01-30 2016-10-25 Mentor Graphics Corporation Logical equivalency check with dynamic mode change
US10726178B1 (en) 2019-07-23 2020-07-28 International Business Machines Corporation Functional logic cone signature generation for circuit analysis
CN111797588B (zh) * 2020-07-03 2022-11-11 深圳国微芯科技有限公司 一种形式验证比较点匹配方法、系统、处理器及存储器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257268A (en) * 1988-04-15 1993-10-26 At&T Bell Laboratories Cost-function directed search method for generating tests for sequential logic circuits
US5230001A (en) * 1991-03-08 1993-07-20 Crosscheck Technology, Inc. Method for testing a sequential circuit by splicing test vectors into sequential test pattern
US5677915A (en) * 1993-08-18 1997-10-14 Texas Instruments Incorporated Customized method and apparatus for streamlined testing a particular electrical circuit
JPH1063707A (ja) * 1996-08-15 1998-03-06 Nec Corp 論理回路検証装置および論理回路検証方法
JP2917969B2 (ja) * 1997-06-06 1999-07-12 日本電気株式会社 論理等価性検証方法および論理等価性検証装置
US6212669B1 (en) * 1997-11-05 2001-04-03 Fujitsu Limited Method for verifying and representing hardware by decomposition and partitioning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043431A (ja) * 2010-08-17 2012-03-01 Fujitsu Ltd 特性関数によって表現されたデータ・サンプルの比較

Also Published As

Publication number Publication date
US6408424B1 (en) 2002-06-18
EP1065609A2 (en) 2001-01-03

Similar Documents

Publication Publication Date Title
JP4028107B2 (ja) 分解及び分割によるハードウェアの検証並びに表現方法
US6301687B1 (en) Method for verification of combinational circuits using a filtering oriented approach
Chakradhar et al. A transitive closure algorithm for test generation
Berman et al. Functional comparison of logic designs for VLSI circuits
US5249133A (en) Method for the hierarchical comparison of schematics and layouts of electronic components
US5377201A (en) Transitive closure based process for generating test vectors for VLSI circuit
JP2001022820A (ja) 順序回路の検証方法
US6473884B1 (en) Method and system for equivalence-checking combinatorial circuits using interative binary-decision-diagram sweeping and structural satisfiability analysis
US7222317B1 (en) Circuit comparison by information loss matching
US5491639A (en) Procedure for verifying data-processing systems
Krieger et al. A BDD-based algorithm for computation of exact fault detection probabilities
Jain et al. Formal verification of combinational circuits
US5493505A (en) Initializable asynchronous circuit design
KR100966010B1 (ko) 하나 이상의 중복 테스트 제거 및 하나 이상의 비효율적테스트 재배열 방법
Jain et al. A survey of techniques for formal verification of combinational circuits
US7117463B2 (en) Verification of digital circuitry using range generators
US7308657B2 (en) Method for generating hints for program analysis
Wehbeh et al. Initialization of Sequential Circuits and its Application to ATPG
Chakradhar et al. Redundancy removal and test generation for circuits with non-Boolean primitives
US20030188273A1 (en) Simulation-based technique for contention avoidance in automatic test pattern generation
Krieger et al. OBDD-based optimization of input probabilities for weighted random pattern generation
JP2901442B2 (ja) 論理回路のテストベクトル生成方法
Saluja et al. Efficient SAT-based combinational ATPG using multi-level don't-cares
Chandran et al. Formal Verificationof of Finite State Machines
Mukherjee et al. Efficient combinational verification using overlapping local BDDs and a hash table

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090616