(57)【特許請求の範囲】
【請求項１】
アナログ信号素子または混合信号素子のブロックから成る集積回路のために試験プランを自動的に生成させるために、コンピュータを使用する方法であって、未知の回路電圧及び電流の数が利用可能な回路方程式の数より大きい場合、
前記集積回路のブロック機能記述をコンピュータにロードするステップと、
前記集積回路の各ブロックのため予め定義されたブロック試験モデルを前記コンピュータにロードするステップと、
各機能ブロックの入力を、前記予め定義されたブロック試験モデルによって特定された値にセットするステップと、
前記未知の回路電圧及び電流の数が利用可能な回路方程式の数と同じになるように、ブロック入力の充分な数が前記セットするステップによってセットされるか否かを前記コンピュータによって自動的に判定するステップと、
もし、入力の数が充分でなければ、既知の電圧値でセットされるべき回路ピンをコンピュータによって自動的に識別するステップと、
前記識別するステップ中に、識別された各回路ピンをコンピュータによってある電圧値で自動的にセットするステップと、
未知の変数が前記識別ステップで識別されなかったそれらの回路ピンにおける電圧を含む回路方程式のマトリックスを前記コンピュータによって自動的に形成するステップと、
前記未知の変数を求めるため前記マトリックスを前記コンピュータによって自動的に解くステップと、
前記解くステップによって得られた値を、前記ブロックの試験中に印加されるべき回路の入力値としてリスト化するステップと、
を有することを特徴とする方法。
【請求項２】
前記識別するステップは、試験中のブロックから最も遠い回路入力の位置を突き止めることにより実行されることを特徴とする請求項１に記載の方法。
【請求項３】
更に、前記ブロックの試験中に測定されるべき回路の出力を識別するステップを有することを特徴とする請求項１に記載の方法。
【請求項４】
前記マトリックスは未知の回路の出力を含み、更に、前記解くステップにより得られた値を、前記ブロックの試験中に期待されるべき回路の出力値としてリスト化するステップを有することを特徴とする請求項１に記載の方法。
【請求項５】
更に、前記解くステップの前に前記回路のパワー・ピンに値をセットするステップを有することを特徴とする請求項１に記載の方法。
【請求項６】
前記セットするステップにおいてセットされた値を有する入力の数が回路の入力の数より少ない場合に前記識別ステップが実行されることを特徴とする請求項４に記載の方法。
【請求項７】
更に、前記回路中の混合信号ブロックを識別するステップと、前記混合信号ブロックの少なくとも一つの入力及び少なくとも一つの出力の値をセットするステップを有することを特徴とする請求項５に記載の方法。
【請求項８】
更に、前記回路中のディジタルブロックを識別して、マスクするステップを有することを特徴とする請求項１に記載の方法。
【請求項９】
マトリックスを形成する前記ステップは、前記回路についてのＫＣＬ方程式と前記回路の各ブロックに対する少なくとも一つの機能方程式を生成することによって達成されることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
この発明は、集積回路の試験に関し、特にアナログ信号素子及び混合信号素子を有する集積回路のための試験プラン（試験フォーマット）を自動的に発生させる方法に関する。
【０００２】
【発明の背景】
半導体チップ上に集積することのできる素子の数は急速に増大した。同時に、集積可能な素子の種類の数も増大した。今日の集積回路（ＩＣ）は、アナログ信号素子、デジタル信号素子、又は混合信号素子、又はこれらの種類の何らかの組み合わせを有することが出来る。
アナログ信号ＩＣ及び混合信号ＩＣを試験することには、デジタル集積回路の試験で遭遇する問題とは異なる問題がある。アナログ信号ＩＣ及び混合信号ＩＣはアナログ信号を処理し、トランジスタ及びその他の素子は線型に動作することも、しないことも、ある。
アナログ回路試験は、回路中の欠陥を、意図する機能を実行し得ない回路の故障と関連付けようとするので、一般に『機能的』である。機能的試験への一つのアプローチは、回路を機能モジュールの集合として概念化することである。これにより、回路の各々の基本的素子を試験するのに比べて、試験操作の煩雑さが少なくなる。
回路が集積されていないときは、ブロック機能試験は特に困難ではない。各ブロックは、入力信号値を印加して出力を測定することによって別々に試験される。
【０００３】
ＩＣについては、入力信号を印加して出力を測定するために回路の入力及び出力を使用できるので、機能試験は回路全体の『終わりから終わりまで』の試験（“end to end”testing)で容易に実現される。しかし、ブロック・レベル試験では、回路の入力や出力とは同じでない１つ以上の入力又は出力をブロックが持っており、試験値をブロック入力に物理的に印加することはできず、ブロック出力を物理的に測定することはできない。
ブロック機能試験に対する１つの解決策は、ブロック入力及び出力を回路入力及び出力へ手操作で伝えることである。過去において、これは手操作で行われたが、複雑な回路については、その計算の負担は大きい。逆方向及び順方向の伝達のための自動化技術も記述されている。テキサス・インスツルメンツ・インコーポレーテッドに譲渡された『アナログ試験プランを発生させる方法』と題した米国特許第970,973 号は、順方向径路及び逆方向径路の伝達を使用する、アナログ試験回路を試験する方法を記述している。ブロック入力に印加されるべき試験値と、ブロック出力における期待される値とが回路入力及び出力に伝達されるべく試みられる。
【０００４】
既存の試験プラン発生方法は、ある条件下では試験を提供し得ない。例えば、それらは、電流セッティング、ａｃ分析、又は過渡分析を必要とする試験を提供しない。それらはフィードバックを伴う回路のための試験を提供しない。あらゆる種類のアナログ回路のための、あらゆる種類の試験を発生させる方法に対する需要が存在する。
【０００５】
【発明の概要】
本発明の第１の特徴はアナログ、デジタル、又は混合信号素子のブロック、又はこれらの素子の何らかの組み合わせから成る回路のための試験プランを発生させるために回路シミュレーション技術を使う方法である。この方法は各ブロックを別々に処理し、試験、試験の方法、及び発見的解決策を試みる反復プロセスを実行する。従って、第１のステップは、回路のブロックを、試験される現在のブロックとして選択することである。次に、このブロックに対して実行されるべき第１の試験が選択される。その試験は、所定の試験値でセットされるべき或る入力と、測定されて期待値と比較されるべき或る出力とを指定する。ブロックの入力は、その試験値をそれらに割り当てることによりセットされる。解くことのできるマトリックスを形成できるように未知の変数の数を減らすために、何らかの回路入力を発見的に識別してセットする必要があるか否か判定される。若しそうならば、これらの入力は、発見的規則を使うことにより識別され、或る値にセットされる。回路方程式のマトリックスが形成されるが、それは、ブロック入力における試験値を結果することになる回路入力値について解くことのできるものである。今、試験中に回路入力に印加されるべき値を決定するためにそのマトリックスを解くことが出来る。マトリックスの解は、期待される回路出力をも包含する。試験プランは、これらの回路入力値と、測定されるべき回路出力とをリストする。
【０００６】
本発明の方法は、その回路入力が所望のブロック入力を結果することになるという意味でブロック入力と『矛盾しない』回路入力値の集合を提供する。同時に、期待されるブロック出力と矛盾しない少なくとも１つの回路出力が提供される。回路ピンに印加され測定されるべきこれらの矛盾しない値は、試験モデルによりブロック・ピンに対して指定される値とは異なることがある。
本発明の技術的利点は、集積回路内の線型及び非線型のアナログ副回路のための試験を自動的に発生させることにある。それは、ＤＣ、ＡＣ、及び過渡応答分析を含む種々の機能試験に用いることが出来る。平均で、試験プランの発生にかかる時間は、従来の自動的方法に比べると短い。これは、少なくとも部分的にはトランジスタ・レベル・モジュールではなくて、試験プラン発生のための基礎として機能ブロック・モデルを使用したためである。それは、ブロック入力においてセットされるべき電流値を有するものなどの、従来方法では発生され得なかった試験を発生させる。
この特許文献の開示内容の一部分は、著作権保護の対象となるものを含んでいる。著作権所有者は、特許商標庁の特許ファイルに見られる通りの特許開示内容の複写に異議を唱えないけれども、それ以外では全ての著作権を留保する。
【０００７】
【実施例】
Ｉ．試験プラン発生
図１は、本発明に従って試験プログラムを発生させるプロセスの基本的ステップを示す。図１のステップの各々について、この第１部において一般的用語で説明する。第２部において、同じステップを、単純な例としての回路の見地から説明する。
以下の記述から明らかなように、この方法はコンピューターのための試験ジェネレータ・プログラムで実施し得るものであるが、それは、或る所定のデータ・ファイル及びライブラリーにアクセスして試験プランを発生させる。回路記述、機能モデル、及び試験プラン・ジェネレータのための入力として使われる試験モデルの多くは、コンピューター・データベースの形の既存のライブラリーから導出できるものである。これらのライブラリー中のデータを試験プラン・ジェネレータの構文法に順応させるために種々の分解ルーチンを使うことがことが出来る。
一般に、本方法はアナログ又は部分的アナログモジュラー回路に当てはまるものであり、その回路では副回路が機能ブロックの用語で定義される。コンピューターに基づく方法の実施のために、回路記述、そのブロックのための機能モデルの集合、及びこれらのブロックのための試験モデルの集合が試験プラン・ジェネレータに入力される。ブロック毎に、各ブロックについて既知の入力と期待される出力との間の関係を決定するためにその機能モデル及び試験モデルが使われる。各ブロックについて、試験プラン・ジェネレータは、これらのブロック入力を生じさせるために回路入力にどのような値を入力するべきか、またブロック出力から生じる回路出力における値を決定する。換言すると、回路入力は、ブロックにおける試験モデルにリストされる値を生じさせる。このようにして、試験プラン・ジェネレータは、ブロックが試験されているときに回路レベルで印加され測定されるべき矛盾のない回路値の集合を生じさせる。回路値の計算は、回路方程式のマトリックスを使って、回路シミュレーションにより行われる。その結果は試験プランであり、それでは既知の回路入力をＩＣに印加することができ、その結果として生じる出力を、その回路について期待される結果と比較することが出来る。
【０００８】
前記の概説に従って、試験されるべき回路はモジュラー・デザインを持っていて、各モジュールを高レベル機能モデルで記述できるということが仮定される。これらのモジュールは、ここでは『ブロック』と呼ばれる。その機能モデルは、電子デザイン・ソフトウェア・パッケージから導出又は利用され得るものである。
ステップ１１に示されている様に、試験されるＩＣは、コンピューターが解釈できる概略記述という用語で表現される。概略捕捉ソフトウェア(schematic capturesoftware) 、回路統合ソフトウェア(circuit synthesis software)、或いはハードウェア記述言語(hardware description languages)などの、そのような記述を発生させる既知の方法を使用できる。
回路は『ブロック』という用語で表現される。１つのブロックは『回路ブロック』であり、これは回路全体を表すものである。他のブロックは副回路を表す。各副回路ブロックは、それ自身のブロック入力及びブロック出力を特定するので、ブロック入力に試験電圧及び電流セットで回路シミュレーションを行うことが出来る。後述するように、回路シミュレーションは、回路と、その回路における未知の電流及び電圧とを表す方程式のマトリックスの形である。そのマトリックスは、その未知の値について解かれる。
【０００９】
この記述の目的で、ブロックの入力及び出力ノードと、回路のそれとを『ピン』と称する。しかし、回路の全てのピンは物理的にアクセス可能であるけれども、ブロックのそれは内部のものであるか又は回路のそれと同一であるということが理解されるべきである。
ステップ１２において、回路の各ブロックは、その動作の機能モデルで記述されるが、それはその入力及び出力の間でのそのブロックの挙動を記述するものである。内部的に同一である、即ち同種の素子を持っている、回路中の２つのブロックは、そのモデルのパラメータに関連付けられるべき異なる値と同じ機能モデルを有するという意味において、機能モデルは、試験されるブロックからは独立しているものである。例えば、２つの抵抗は同じ機能モデルを持つが、異なる抵抗値を持つことができる。或いは、他の例として、回路中の全ての演算増幅器『オペアンプ』は類似の入力対出力特性を持つことがあるが、異なるＣＭＲＲ、オープンループ利得、等々のパラメータを持つことができる。
機能モデルは、電子回路解析技術の分野で知られている技術を使って作ることのできるものである。それらは一般的にブロックの特性を記述する数学的パラメータ及び方程式の集合である。例えば、ダイオードの動作を記述するためにショックレー方程式を使うことが出来る。本発明においてコンピュータに用いるために、既知のモデル化言語を用いることが出来る。市販されているモデルの例としては、スパイス（ＳＰＩＣＥ）回路シミュレーション・プログラムにより提供されるものや、セーバー（ＳＡＢＥＲ）シミュレーターのために使われるマスト（ＭＡＳＴ）アナログ挙動記述言語で書かれたものなどがある。
【００１０】
典型的には、特定の回路のブロックについての機能モデルは機能モデルのライブラリーに既に格納されている。よって、実際には、ステップ１２は、このライブラリーにアクセスしてデータを分解して各ブロックについての機能モデル・データ構造を形成することにより実施される。
ステップ１３において、回路の各ブロックについての試験モデルが作られる。ブロックの試験モデルは、そのブロックで実行され得る試験に関する情報を与える。機能モデルの場合と同じく、どの２つ以上の同一のブロックも同じ試験モデルを有する。それらの試験モデルは、そのブロックが独立型回路であり、全ての入力及び出力が試験電圧及び電流の印加のためにアクセス可能であると仮定している。
ブロックの種類により、その試験モデルは２つ以上の試験を有することがある。更に、各試験は２つ以上の方法を有することがある。各方法の中で、或るブロック・パラメーターは『セット値』であり、他のパラメーターは『測定値』である。セット値は、それらに特別の電圧及び電流の値を割り当てることによりセットされる。測定値は、ブロックが動作している間に測定される値を表す。測定値は、期待される出力値と比較され、或いは期待される出力値と比較される他の何らかの値を計算するために使用される。若し比較が好都合であるならば、ブロックは正しく動作していると仮定することが出来る。試験の種類は、ｄｃ、ａｃ、又は過渡である。ａｃ試験については、試験方法は周波数値をも指定することが出来る。
【００１１】
機能モデルの場合と同じく、試験モデルは、各ブロックについて試験モデル・データ構造を作るために分解され、又はその他の方法で処理される。
ステップ１４は、回路中の各ブロックについて試験の発生中にいずれかの回路入力が識別されセットされるべきか否か発見的に判定するための規則の集合を作る。若しそのような回路入力があるならば、それらは識別されセットされる。このステップは、回路マトリックスを解くために充分な方程式を使用できることを保証する。このステップの詳細を、図２と関連させて次に説明する。
ステップ１５において、試験プラン・ジェネレータは、反復的な、ブロック毎の試験発生プロセスを実行する。それは、各ブロックについての試験を回路の実際の入力ピン及び出力ピンにどのように関連させるかを決定する。非発見的に識別された回路入力から、試験値でセットされるべきブロック入力への径路が識別される。また、試験出力のために測定されるべきブロック出力からの径路が識別される。若しその径路中に混合信号ブロックがあれば、適切なピンが識別されセットされる。このステップにおいては、異なるマトリックスで回路をシミュレートするために異なる変数を各ブロックが有するのであるが、このステップの詳細については図２と関連させて次に説明をする。
【００１２】
ステップ１６において、試験プラン・ジェネレータの出力は、アナログ信号又は混合信号を有する回路中の各ブロックについての試験の集合である。各試験は、回路ピンにセットされるべき電流、電圧及び周波数の値と、測定されるべき値とを、リストする。この試験プランは、使用できる試験装置に特有の試験プログラムに変換できるものである。
ここで図２を参照すると、試験プランを発生させるプロセスは反復的であって、試験される回路の各ブロックが別々に解析されるようになっている。各ブロックについて、異なる試験と、各試験内の異なる方法とを試みることが出来る。
図２のプロセスは、コンピュータ処理装置で走らせるべきコンピュータ・プログラムで実施され得る。コンピュータ・プログラムは、図１と関連して上記したデータ構造、特に回路記述、機能モデルの集合、及び試験モデルの集合、に適しているものと仮定する。
ステップ２１において、回路の第１のブロックが分析されるために回路記述から選択される。この発明の方法はアナログ試験のために設計されているので、完全にデジタル的な入力及び出力を有するブロックは考慮されない。しかし、デジタル入力及び出力に高電圧値又は低電圧値が割り当てられる限りは、混合信号ブロックは試験されることが出来る。
【００１３】
ステップ２２ａにおいて、そのブロックについての第１の試験が選択される。ステップ２２ｂにおいて、その試験から方法が選択される。
ステップ２３において、試験されるブロックについて試験入力値の集合を提供するために試験モデルが使われる。これらの値は適切なブロック入力ノードに割り当てられる。
試験値が割り当てられたブロック入力は、ＩＣの入力及び出力により直接にアクセス可能であることもないこともある。換言すると、若しブロックが『内部』であれば、そのブロック入力又は出力のうちの１つ以上が回路の入力ピン又は出力ピンと同一ではない。しばしば、回路の入力及び出力の数はブロックの入力及び出力の数より多い。ブロック入力の与えられた集合について、ステップ２７ａ〜２７ｃのマトリックス計算によって回路入力における矛盾のない値を計算できる。しかし、普通はブロック・ピンより多数の回路ピンがあるので、マトリックスを解くことが出来る前に幾つかのピンをセットしなければならない。本発明の特徴は、最良の回路シミュレーションを提供するためにこれらのピンが発見的に識別されることである。
【００１４】
また、ステップ２３の一部として、回路のパワー・ピンが識別されてセットされる。これらのピンのための値は、回路データ・ベースにより提供されることが出来る。
ステップ２４において、回路の径路がシミュレーションの目的で『敏感化』される。このために、試験モデルからの各々の測定値が適切な出力ノードに割り当てられ、選択された回路出力に径路が割り当てられる。ブロック出力に結合された全ての回路出力のリスト、即ち『出力ピン・リスト』が発生される。
本発明の特徴は、混合信号ブロックを包含する径路も敏感化され得ることである。回路ピンへの径路中の混合信号ブロックを発見して、回路シミュレーションを実行し得るように混合信号ブロックのあるピンをセットしなければならない。より詳しく言えば、径路を選択するために、ステップ２４は、試験されるブロックの各ピンに作用する。若しピンが回路入力であれば、それ以上の動作は行われない。若しそのピンが回路出力であれば、それは出力ピン・リストに含まれる。
若しブロック・ピンが回路ピンでなければ、それに結合されている全てのブロックが識別される。すると、これらのブロックの各々について、そのブロックのピンが『制御』型のピンであるか否かが判定され、若しそうであればそのブロックは混合信号ブロックとして識別される。若しこのピンが出力ピンであれば、１つの入力ピンとこの出力ピンとが起動される。若しこのピンが入力ピンであれば、１つの出力ピンとこの入力ピンとが敏感化される。若しいずれかの敏感化されたピンが回路ピンであれば、ここでステップ２４は停止する。このブロックのいずれのピンも制御型のピンでなければ、そのブロックは混合信号ブロックではなくて、若しその結合されたピンが回路ピンであるならば、その出力は出力ピン・リストに含まれる。
【００１５】
試験されるブロックの各入力ピンについて、各ブロック出力のために上記のルーチンが１回ずつ行われる。試験されるブロックの各出力ピンについて、各ブロック入力のためにその機能が１回ずつ呼び出される。
ステップ２４の結果として、純粋にアナログ的なブロックを通して試験されるブロックに結合された全ての回路出力が測定される。この場合、出力ピン・リストは全ての回路出力を包含する。回路中のいずれの混合信号ブロックについても、そのブロックを通る特定の径路だけが起動されるとともに、出力値を測定するために重要である。
ステップ２５は、ステップ２４で判定されたように、試験されるブロックへの径路又はそのブロックから回路入力または出力への径路の中に混合信号ブロックがあるならば、適用される。若しそうならば、その径路がシミュレーション中に活動状態となるように、ハイの値又はローの値がデジタル・ピンにセットされる。
ステップ２６は、マトリックスの解の前にセットされるべき回路ピンが、若しあるならば、どの回路ピンであるかを発見的に決定する。そのような回路ピンがあるか否か決定するために、セット値を有するブロック入力の数ｍが回路ピンの数ｎから差し引かれる。差は、発見的にセットされるべき回路ピンの数である。セット値の数ｍは、試験モデルにより又はパワー・ピンのセッティング時に、ステップ２４においてセットされるブロック入力の総数である。
【００１６】
１つ以上の回路ピンが発見的にセットされるべきであると一旦判定されたならば、それらを識別するために種々のアプローチを用いることが出来る。１つのアプローチは、各回路ピンと、試験されるブロックとの間の距離を発見することを含む『距離』アプローチである。最も遠い回路ピンがセットされるべきである。
この距離発見手続きのアルゴリズムの、より精しい説明は、後記の第III 部で行う。
発見的に識別された回路ピンに、入力値が割り当てられる。この明細書の場合と同じく、マトリックスのためにＫＣＬ方程式が使われる場合には、この値は入力電圧を表す。発見的に決定された入力に対してセットする値は、入力ピンの範囲内の如何なる値でもよい。この範囲は、試験ブロック・モデルなどにおいて指定され得る。例えば、若しその範囲が−4.５Ｖから4.５Ｖまであるとすれば、０を含むこの範囲内の何処にでもセットされ得る。
【００１７】
ステップ２６の結果として、発見的回路ピンの数はセット値を有する。残りの回路ピンは、マトリックス計算によりセットされた値を受け取る回路ピンである。これは、充分な数の回路方程式の形成がうまく解かれることを可能にする、即ち、未知数の数は方程式の数を越えない。
ステップ２６は、回路入力又は出力を発見的に識別しセットするために使われ得る。例えば、或る出力がブロックから最も遠いとすると、それにマトリックスを解く目的で値が割り当てられ得る。しかし、試験プラン発生の目的のためには、若しこれが測定された出力であるならば、それは、セットされるのではなくて測定されるべき値として指定されることになる。
ステップ２７ａにおいて、回路を解くための方程式のマトリックスが形成される。一般に、マトリックスは、普通の回路シミュレーション・マトリックスに似ている。しかし、求める変数は、普通のシミュレーションのそれとは異なる。或る既知の変数は発見的にセットされ、他の変数はマトリックスにおいてブロック入力により表される。マトリックスを解くことにより、試験されるブロックにおける所望の試験入力値を生じることになる矛盾のない回路入力値が計算される。
【００１８】
マトリックスを形成するために、径路及びノードの回路グラフからＫＣＬ方程式が抽出される。これらの方程式はマトリックスの形で記憶される。回路グラフにより記述されるように、このマトリックスの各行はノードに対応し、各列は径路に対応する。マトリックスの項は−１、０、又は１であり得る。若し径路がノードに結合されていなければ、項は０である。径路上の電流がノードに入っていれば、項は１である。若し径路上の電流がノードから出てゆくのであれば、項は−１である。回路入力ピンでもグランド・ピンでもない各ノードについてＫＣＬ方程式が使用可能である。ブロックについての機能モデルにより追加の方程式が供給される。
数学的に言うと、ｎ個の未知数を有するｎ個の方程式の系が形成される。ステップ２６において説明したように、使える方程式の数が回路の未知数より少ないときには、未知数の数が使える方程式の数と同じになるように幾つかの未知数が発見的にセットされる。よって、マトリックス中の方程式の数はＫＣＬ方程式の数と、回路のブロックから導出された方程式の数との和である。
ステップ２７ｂにおいて、マトリックスを解く試みが行われる。マトリックスを解くために使われる技術は、伝統的な数値方法を含む。一般的に、列マトリックスＧ（ｘ（ｋ））が組み立てられ、その微分正方行列Ｊが計算される。ニュートン−ラフソン手順（Newton-Raphson procedure) の各反復時に、Ｇマトリックス及びＪマトリックスは、試験されるブロックの機能モデルを解くことにより、更新される。
【００１９】
若しマトリックスを解くことができなければ、異なる発見的規則又は発見的に導出された異なるピンで、又は発見的に導出された同じピン上の異なる値で、ステップ２６が反復される。ステップ２７ａが新しいマトリックスを形成するために反復され、ステップ２７ｂがそれを解く試みを行うために反復される。若しプログラムがブロックのために如何なる試験を作ることもできないならば、それは、デザイン技術者が回路を試験可能になるように設計し直せるように、メッセージをユーザーに対して出力する。
ステップ２７ｂの結果としてマトリックスの解が得られたときにはステップ２８が実行される。マトリックスの解は、ブロック試験モデルにより提供されるブロック入力値と矛盾しない回路入力値を提供する。それは、試験モデルにより提供される期待されるブロック出力値と矛盾しない少なくとも１つの回路出力値をも提供する。換言すると、ブロック電圧、回路電圧、及び回路ブロック中の全ての電流が回路マトリックスの一部を形成するので、これらの全ての値が決定される。試験方法は、測定された回路出力、及びステップ２６で発見的にセットされ又はステップ２７ｂで計算された回路入力を伴って、試験プランに加えられる。
【００２０】
ステップ２９ａにおいて、他の試験方法がそのブロックについてなお試みられるべきか否か決定される。若しそうならば、その方法についてステップ２３〜２８を反復することが出来る。若し１つの試験方法が成功すれば、そのブロックについて追加の試験があるか否か判定するために直ちにステップ２９ｂに進み、或いは試験されるべき付加的なブロックがあるか否か判定するためにステップ２９ｃに直ちに進むのが得策であろうという意味においてステップ２９は随意的である。
上記のプロセスは、アナログ信号又は混合信号集積回路に特に有益である。若し回路がデジタル・ブロックを有するならば、試験発生中にそれをマスクすることが出来る。また、論理判定の代わりに高電圧及び低電圧がセットされ判定される場合には、この方法をデジタル・ブロックの機能試験のために使うことが出来る。
II. 試験プラン・ジェネレータのための例としての回路
図３は、単純な回路の略図であり、これについて本発明に従って試験プランを発生させることが出来る。本書では、これを、フィードバック及び入力抵抗器を伴う２つの演算増幅器からなる『カスケード演算増幅器』回路と称する。
【００２１】
図１のステップ１１に従って、回路は、回路ブロック、カスケード（ＣＡＳＣＡＤＥ）、及び２つの内部ブロック即ちＲＥＳＩＳＴＯＲ及びＯＰ  ＡＭＰの用語で説明される。この内部ブロックは、演算増幅器及び抵抗器について使える機能モデルに対応する。これらのブロックを使って、回路記述は次の通りとなり得る：
0003672336.tif 000002
終端演算増幅器；
図４は、図３の回路の等価方向グラフであり、これはその径路及びノードをより良く示す。この回路は６個の径路と８個のノードを有する。各ノードには、図４において、可変的な名称と数値識別子との両方が付されている。
【００２２】
図１のステップ１２に従って、各々の異なるブロックに機能モデルが付随している。よって、抵抗器ブロックは、演算増幅器ブロックと同じ機能モデルを有する。
この例は、電気的モデルの市販されているＳＡＢＥＲ−ＭＡＳＴセットから利用できるモデルを利用する。演算増幅器ブロックについては、入力がノードＡ及びＢにあり、出力がノードＣにあるが、モデルは次のように表現される：
要素テンプレート演算増幅器Ａ  Ｂ  Ｃ  ＧＮＤ＝利得、ｖｏｃ
電気的Ａ，Ｂ，Ｃ，ＧＮＤ
数    利得
数    ｖｏｏ
｛
ｖａｌ  ｖ  Ｖｏｕｔ，Ｖｉｎ
ｖａｒ  ｉ  ｉｌ
数    ｔｍｐ
値  ｛
Ｖｏｕｔ＝ｖ（Ｃ）
Ｖｉｎ  ＝ｖ（Ｂ）＝ｖ（Ａ）
｝
方程式  ｛
ｉ（Ｃ）  ＋＝ｉ１
ｉ１：  Ｖｏｕｔ＝利得＊Ｖｉｎ
｝
｝
抵抗器についてのモデルは次のとおりである：
テンプレート抵抗器  Ａ  Ｂ＝ｒ
電気的  Ａ，Ｂ
数  ｒ
｛
ｖａｌ  ｖ  ｖ１，ｖ２
ｖａｌ  ｉ  ｉ１
値  ｛
ｖ１＝ｖ（Ａ）
ｖ２＝ｖ（Ｂ）
ｉ１＝（ｖ１−ｖ２）／ｒ
｝
方程式  ｛
ｉ（Ａ＝＞Ｂ）＋＝ｉ１
｝
｝
図１のステップ１３により、各々の種類のブロックについて試験モデルが導出される。演算増幅器ブロックについては、２つの試験、即ち１つは出力電圧Ｖｏｏについての試験及びもう１つは利得についての試験、がある：
ＯＰＡＭＰ  （）  ｛
試験ＶＯＯ  ｛
試験タイプ＝ＤＣ；
方法  １  ｛
ＭＴＹＰＥ＝ＣＨＡＲ；
アクセス  ｛Ｃ｝
制御  ｛Ａ、Ｂ｝
手順  ｛
ＳＥＴ  ＶＢ＝０Ｖ；
ＳＥＴ  ＶＡ＝０Ｖ；
ＭＥＡＳ  ＶＣ；
ＡＳＳＩＧＮ  ＶＯ＝ｖＣ  Ｖ；
ＣＯＭＰＡＲＥ  （ｖＯ＝ｖｏｏ ｎｏｍ）；
｝
｝
｝  ＥＮＤＴ  ＴＥＳＴ ＶＯＯ
試験利得  ｛
試験タイプ＝ＤＣ；
方法  １  ｛
ＭＴＹＰＥ＝ＣＨＡＲ；
アクセス  ｛Ｃ｝
制御  ｛Ａ、Ｂ｝
手順  ｛
ＡＳＳＩＧＮ  ｖ１＝（ｖｓｔａｒｔ＋（ｖｅｎｄ））／２Ｖ；
ＳＥＴ  ｖＡ＝ｖ１  Ｖ；
ＳＥＴ  ｖＢ＝ｖ１  Ｖ；
ＭＥＡＳ  ｖＣ；
ＡＳＳＩＧＮ  ｖ２＝ｖＣ  Ｖ；
ＳＥＴ  ｖＢ＝ｖ１  Ｖ；
ＡＳＳＩＧＮ  ｖ４＝（（ｖｓｔａｒｔ）＋（ｖｅｎｄ））
／２）＋0.０００１  Ｖ；
ＳＥＴ  ｖＡ＝ｖ４  Ｖ；
ＭＥＡＳ  ｖＣ；
ＡＳＳＩＧＮ  ｖ３＝ｖＣ  Ｖ；
ＡＳＳＩＧＮ  ｇ１＝（ｖ３−ｖ２）／0.０００１  Ｖ；
ＣＯＭＰＡＲＥ  （ｇｉ＝ｇａｉｎ ｎｏｍ）；
｝
｝
｝  ＥＮＤＴ  ＴＥＳＴ ＧＡＩＮ；
｝ＥＮＤＦ  ＯＰＡＭＰ；
抵抗器についての試験モデルは次のとおりである；
抵抗器（）  ｛
試験  Ｒ  ｛
試験タイプ＝ＤＣ；
方法  １  ｛
ＭＴＹＰＥ＝ＰＲＯＤ；
アクセス  ｛  Ａ  ｝
制御  ｛  Ｂ  ｝
手順  ｛
ＳＥＴ  ｖＡ＝２Ｖ；
ＳＥＴ  ｖＢ＝０Ｖ；
ＭＥＡＳ  ｉＡ；
ＡＳＳＩＧＮ    ｒｖａｌ＝１／ｉＡ；
ＣＯＭＰＡＲＥ    （ｒｖａ１＝ｒ ｎｏｍ）；
｝
｝
｝  ＥＮＤＴ  ＴＥＳＴ Ｒ
ＴＥＳＴ  ＲＣＵＲＲ  ｛
試験タイプ＝ＤＣ；
方法  １  ｛
ＭＴＹＰＥ＝ＰＲＯＤ；
アクセス  ｛  Ａ  ｝
制御  ｛  Ｂ  ｝
手順  ｛
ＳＥＴ  ｖＡ＝２Ｖ；
ＳＥＴ  ｖＢ＝0.１Ａ；
ＭＥＡＳ  ｖＢ；
｝
｝
｝  ＥＮＤＴ  ＴＥＳＴ ＲＣＵＲＲ；
｝ＥＮＤＦ  ＲＥＳＩＳＴＯＲ；
この点で、試験プラン・ジェネレータについての入力は、図１に示されている様に、完成する。ここで図２を参照すると、カスケード型演算増幅器回路の各ブロックは、そのブロックについての試験プランを得るために別々に処理される。
【００２３】
次の記述は、現在処理されているブロックは図３のＲＥＳ１ブロックであると仮定している。よって、図２のステップ２１に従って、選択されるブロックはＲＥＳ１である。
ステップ２２ａにおいて、抵抗器についての第１の試験が考慮のために選択される。これは、上記した抵抗器試験モデルのＲ試験である。それは唯一の方法を有しており、ステップ２２ｂはその方法を選択する。
ステップ２３において、ブロック・ノードへの値が試験モデルに従ってセットされる。よって、ＲＥＳ１のノードＡに対応するＩＮ１は２ボルトにセットされる。ＲＥＳ１のノードＢに対応するＩＮ ＭＩＮＵＳは０ボルトにセットされる。
ステップ２４において、ブロック出力から回路出力までの径路がたどられる。これにより、ＯＵＴ２は、試験中に回路測定が行われるノードとして識別される。また、ＧＮＤはパワー・ピンとして識別されて０にセットされる。
ステップ２５は、回路についてのマトリックスを形成する。回路入力ノードの他に４個のノードがある。図４を参照すると、これらのノードはＯＵＴ２、ＩＮ ＭＩＮＵＳ，ＯＵＴ，及びＩＮ ＭＩＮＵＳ２である。ノードｍ及びｎの間で、ｉｍｎは電流ｉを表すが、これらのノードについてのＫＣＬ方程式は次の通りである：
ＯＵＴ２では            ｉ７３−ｉ３４        ＝０
ＩＮ ＭＩＮＵＳでは    ｉ０５−ｉ５６        ＝０
ＯＵＴでは              ｉ５６−ｉ６４−ｉ６７＝０
ＩＮ ＭＩＮＵＳ２では  ｉ６７−ｉ７３        ＝０
これらの方程式についてのＫＣＬマトリックスは、各行が異なるノードでのＫＣＬを表すように組み立てられる。各列は径路を表す。よって、ノード４（ＧＮＤ）が０ボルトにセットされる場合には次の通りとなる：
ノード３    000    000    001   -001    000    000
ノード５   -001    000    000    000    001    000
ノード６    000    001    000    000   -001    001
ノード７    000    000    000    001    000   -001
付加的な８個の方程式を使って回路ブロックを表すことが出来る。上記した機能モデルを参照すると、各抵抗器は１つの方程式を与え、各演算増幅器は２つの方程式を与える。よって次のとおりとなる：
0003672336.tif 000003
よって、利用できる方程式の数は１２個である。しかし、未知の変数の数は１３個、即ち、ｉ０５、ｉ５６、ｉ６４、ｉ６７、ｉ７３、ｉ３４、ｖ１、ｖ２、ｖ６、ｖ７、ｖ３、ｉ１（演算増幅器１）、ｉ１（演算増幅器２）、である。
【００２４】
ステップ２６は、何個の値を発見的にセットするべきかを決定することから始まる。この決定のために、セット値を伴うノードの数が回路入力の数から差し引かれる。この例では、４個の回路入力と３個のセット値とがある。（上記したように、ノードＧＮＤは回路入力と見なされ、その値はデフォールト（default)により０にセットされる）。よって、１つの値が発見的にセットされなければならない。
ステップ２６は、セットされるべき各ノードを識別することも含む。距離発見手法を使って、ＲＥＳＩへの入力と他の回路入力との間の距離が計算される。ノード２（ＩＮ３）は、ＲＥＳ１から９単位の距離を有する。ノード１（ＩＮ２）は、３単位の距離を有する。よって、ノード２は、試験されるブロックから最も遠いノードである。それは、０などの任意の値にセットされる。残りの回路入力（ＩＮ２）はブロック入力に突き合わされる。よって、解かれるべき値はＩＮ２であり、これは、０ポルトがＩＮ ＭＩＮＵＳに現われることとなるように試験中に印加されるべき入力信号を提供する。今や１２個の未知変数と１２個のマトリックス方程式とがある。このマトリックスを今や解くことが出来る。
【００２５】
ステップ２２〜２８の結果は、ブロックについての試験プランである。指摘したように、各試験について、プラン・リストは、ＩＮ１、ＩＮ２、ＩＮ３、及びＧＮＤについての入力値を提供する。それは、回路出力ＯＵＴ２についての期待される値も提供する。試験中、各試験が実行され、ＯＵＴ２が測定される。測定された値は、期待される出力値と比較される。
III.  距離発見手法
発見的にセットされるべき回路ピンを識別する１つの方法は、Ｄマトリックスを形成することである。このマトリックスはｘ×ｘの次元を有し、このｘは回路中のノードの数である。
Ｄマトリックスの要素は、無限の値、即ち非常に大きな数で満たされる。ここで、Ｄマトリックスは、
Ｄ  ＝  〔ｄ（ｉ，ｊ）〕
のようにウェートを与えられる。ここで、
ｄ（ｉ，ｊ）＝ノードｉ及びｊを結合させるブロックの複雑性
ｄ（ｉ，ｉ）＝０
である。
【００２６】
換言すると、（ｉ，ｊ）におけるブロックの複雑性が無限大より小さければ、その数が無限大の代わりに使われる。
よって、試験されるブロックのピンの各対について、Ｄの中の対応する要素についてゼロが入れられる。その結果として、ブロックの回りの全てのノードが単一のブロック・ノードとして互いに『融合』させられる。このとき、この『融合』したノードから、回路ピンである各ノードへの最短の径路が計算される。この計算のために、ディジクストラのアルゴリズム（Dijkstra's algorithm) として知られるアルゴリズムを使うことが出来る。その結果は、ブロックから各回路ピンへの距離のリストであり、それから最も遠い距離を選ぶことが出来る。
他の実施例
特別の実施例を参照して本発明を説明したけれども、この明細書は限定的意味に解されるべきではない。開示した実施例の種々の変形、及び代替の実施例は当業者にとっては明白であろう。従って、付属の特許請求の範囲の欄の記載内容は、本発明に属する全ての変形を包摂するものと考えられる。
【図面の簡単な説明】
【図１】本発明により試験プランを発生させる基本的ステップを示す。
【図２】図１の試験発生ステップの詳細を示す。
【図３】本発明の方法を使って試験されるべきアナログ回路の例である。
【図４】図３の回路の経路及びノードのグラフである。
【図１】
0003672336.tif 000004
【図２】
0003672336.tif 000005
【図３】
0003672336.tif 000006
【図４】
0003672336.tif 000007