(57)【特許請求の範囲】
【請求項１】
集積回路を設計しテストする集積回路テストプロセスであって、
機能を実行する機能モードで動作する回路とテストモードで動作する直列化スキャンチェーンとを有する集積回路を設計するステップと、
前記集積回路の初期状態にそれぞれ対応し、前記設計された集積回路をテストするための複数のテストパターンを発生するステップと、
前記複数のテストパターンに対応する複数の直列化スキャンパターンを発生するステップであって、前記複数のテストパターンの初期状態を発生するための前記集積回路の前記直列化スキャンチェーン中にロードすべき状態データをそれぞれ有する前記複数の直列化スキャンパターンを発生するステップと、
前記直列化スキャンパターンを利用して、前記集積回路の設計をコンピュータシュミレーション上でテストするためのシュミレーションテストベクトルを発生するステップであって、前記シュミレーションテストベクトルには、前記集積回路設計の前記直列化スキャンチェーン中に並列にロードすべき状態データが所定の直列化オフセットで設けられた前記シュミレーションテストベクトルを発生するステップと、
前記シュミレーションされるスキャンチェーンに沿って並列ロード及びそれに後続する所定数のシフトを利用して、前記シュミレーションテストベクトルの状態データを前記コンピュータシュミレーションの直列化スキャンチェーンにローディング処理することによって、前記集積回路設計をコンピュータシュミレーション上でテストするステップと、
前記設計された集積回路を製造するステップと、
前記直列化スキャンチェーンに沿って直列シフトを利用して、前記直列化スキャンパターンを前記直列化スキャンチェーンにローディング処理することによって、前記製造した集積回路をテストするステップと、を具備した前記集積回路テストプロセス。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、集積回路設計をテストする方法に関し、特に、変形したシリアルスキャン（直列走査）パターンを利用して、コンピュータシュミレーションに関連した集積回路設計をテストする方法に関する。
【０００２】
【従来の技術】
一般に、集積回路（ＩＣ）の設計、テスト（試験）および製造は、複雑且つ高価なプロセスである。ＩＣの製造業者および設計者の目標の１つとしては、設計と製造との間のサイクル時間を短縮して、新しいＩＣを迅速に導入できるようにすること、および特定用途ＩＣ（ＡＳＩＣ）を迅速に製造できるようにすることである。この目標を最高のコスト効果の方法で達成するためには、チップ設計者および製造業者は、製造の前に、コンピュータシュミレーションに関してＩＣ設計を厳密にテストする必要がある。製造の前にＩＣ設計を確める有効なテストプログラムによって、低製造コストおよび高いチップ歩留り率となる利益がもたらされる。
【０００３】
新しいＩＣを製造するプロセスは、設計、場合によっては、コンピュータ支援設計（ＣＡＤ）およびコンピュータ支援製造（ＣＡＭ）技術を駆使して開始する。この設計を確認するために、自動テストパターン発生器（ＡＴＰＧ）または他の適当な技術によって、ＩＣの内部状態に対するＩＣの外部機能に関する一組のテストパターンを発生する。この発生器（ＡＴＰＧ）からのテストパターンを、ＩＣのコンピュータシュミレーション上の種々のレジスタおよびコンポーネントに対して並列にロードして、信号ライン、組合せロジック、レジスタ、カウンタおよび他のＩＣエレメントの機能を確認すると共に、これらコンポーネントをこのＩＣの全体の動作にどのように関連させるかを確認する。
【０００４】
ＩＣを一旦製造してしまうと、このＩＣへのテストパターンの並列ロードを行なうことができない。従って、これら設計には、スキャンチェーンのようなテスト用回路が組込まれている。このスキャンチェーンによって、自動式テスト装置（ＡＴＥ）によりスキャニング動作できたり、製造したＩＣの内部レジスタまたはエレメントにテストパターンを直列的にロードすることができる。コンピュータシュミレーションによって、これらパターンによりＩＣを既知の状態にセットする。次に、外部入力をＩＣに印加して、このスキャンチェーンにより、ＡＴＥは、セットされたＩＣ状態を予期した状態と比較のために直列的にロードしないようにできる。このＡＴＥによって直列化されたスキャンパターンを、並列ＡＴＰＣテストパターンから発生させることができる。このようにテストパターンを並列から直列に変換することは極めて重要なことであり、このスキャンチェーンに則って反転および他の論理操作を考慮して、正しいパターンを各テストでロードする必要がある。この変換が不適当に行われたり、また本来のＡＰＴＰＣテストパターンにエラーが含まれている場合には、このような不正なテストパターンのために、ＡＴＥによって欠点の無いＩＣが拒絶されてしまう。
【０００５】
従って、製造のための設計から、ＩＣは、種々のテストを受けることになり、これらテストには、ＡＴＰＧによって発生させたテストパターンを利用したコンピュータシュミレーションや、直列化したスキャンパターンを利用したＡＴＥで製造したＩＣ自身のテストが含まれる。コンピュータシュミレーションに基くＩＣ設計の包括的なテスト、または製造前の他のテストツールは比較的高価なものであり、場合によって多大な時間を必要とする。また、直列化したスキャンパターンを利用して製造したＩＣのテストによってこの製造プロセスを確認することができるが、かなり高価なものとなってしまう。特に、コンピュータシュミレーション中に、ＩＣ設計中の欠点または直列化したスキャンパターン中のキズを発見できなかった場合には、高価なものとなってしまう。
【０００６】
【発明の要旨】
従って、高速で正確で、且つコスト的に受け入れられるコンピュータシュミレーションに対する要求があった。このコンピュータシュミレーションによって、ＩＣ設計および製造したＩＣをテストするための直列化スキャンパターンの完全性を確認できる。本発明によれば、変更した直列化スキャンパターンを利用したＩＣ設計のコンピュータシュミレーションによって、従来のＩＣテスト方法に付随した種々の欠点および問題点を相当程度解決することができる。発明によれば、コンピュータシュミレーション上のＩＣ設計を、変更した直列化スキャンパターンを利用してテストすることができ、これらパターンにより、このＩＣ設計の機能およびテスト回路ならびに、直列化スキャンパターンを、最新のＩＣテスト方法で費やされる時間のほんの僅かな時間で確認できる。
【０００７】
また、本発明の一態様によれば、コンピュータシュミレーション上のＩＣ設計をテストする方法が開示されている。この方法によって、ＩＣ設計のスキャンチェーン中にロードすべき状態データを有する所望のベクトルを発生する。この状態データを、スキャンチェーンに沿って所定回数だけシフトして、この状態データを適切に配置する。このような状態データをローディング処理すると共にシフト処理することによって、このＩＣ設計が所望の状態にセットされる。この方法は、所望の状態を有するＩＣ設計の機能を実行することによって完結される。
【０００８】
また、本発明の他の態様によれば、ＩＣをテストするプロセスが開示されている。このプロセスは、製造したＩＣをテストするための直列化スキャンパターンを発生させることによって開始する。これら直列化スキャンパターンには、ＩＣの物理的スキャンチェーン中にロードすべき状態データが含まれている。コンピュータシュミレーション上でＩＣ設計をシュミレーションするためのシュミレーションテストベクトルを、この直列化スキャンパターンから発生する。このＩＣ設計は、コンピュータシュミレーション上でシュミレーションされる。この目的のため、スキャンチェーンに沿って、１回またはそれ以上の回数だけシフトすることによって追従された並列ロードを利用して、シュミレーションされたスキャンチェーンをシュミレーションテストベクトルの状態データと共にローディング処理するようにする。ＩＣを製造した後で、このプロセスによって、この製造したＩＣを以下のようにテストする。即ち、物理的なスキャンチェーンを、直列化したスキャンパターンの状態データで直列的にローディングすることによってテストする。
【０００９】
本発明の一技術的効果としては、コンピュータシュミレーション上のＩＣ設計を、最新のＩＣテスト方法で費やす時間に対して、ほんの少しの時間でテストできることがある。このテスト時間は、このスキャンチェーンを変更した直列化スキャンパターンと並列にローディング処理すると共に、この状態データを、スキャンチェーンを通って数回だけシフトさせて所望のＩＣ状態をセットすることによって、大幅に短縮できる。
【００１０】
また、本発明の他の技術的効果によれば、ＩＣの機能性をシュミレーションするために、並列のＡＴＰＣテストパターンの代りに、変更した直列化スキャンパターンを利用できることである。このシュミレーションによって、ＩＣ設計を確認できると共に、製造したＩＣをテストするために、ＡＴＥにより用いた直列化スキャンパターンの正確度を確認できる。従って、本発明によって、直列化したスキャンパターンを、高速且つ、正確に、コンピュータ基準式にチェックでき、これらスキャンパターンを用いて製造したＩＣをテストするに先立ってチェックできる。
【００１１】
また、更に、別の技術的効果によれば、変更した直列化スキャンパターン中にステートメントを導入する必要のないコンピュータシュミレーションを駆使してＩＣ設計をテストでき、これらスキャンパターンはスキャン・インデータとスキャン・アウトデータとの間のタイミング関係を表示する。この結果として、本発明によれば、パターンを発生するために利用されるパッケージおよびスキャンチェーンアーキテクチュアとは独立して、直列化スキャンパターンまたは並列テストパターンから変更した直列化スキャンパターンを発生する一般的な方法が提供できる。
【００１２】
【実施例】
図１で示すように、ＩＣ設計、テスト（試験）および製造プロセスは、ブロック１０におけるＩＣデザインで開始する。次のブロック１２において、並列ＡＴＰＧテストパターンを発生してコンピュータシュミレーションにおけるＩＣ設計の機能性をテストする。これら並列ＡＴＰＧテストパターンを利用して、このプロセスによって、ブロック１４において、直列化したスキャンパターンを発生する。これらスキャンパターンを、後でＡＴＥで利用して製造したチップをテストする。また、これら直列化したスキャンパターンを利用して、このプロセスによって、変更した直列化スキャンパターン（シュミレーションテストベクトルと称す）をブロック１６で発生すると共に、ブロック１８において、これらテストベクトルを用いてコンピュータによるＩＣ設計をシュミレートする。このシュミレーションが成功すると、このプロセスはブロック２０のＩＣの製造に進むと共に、ブロック２２のＡＴＥによる製造したＩＣのテストを実行する。
【００１３】
ブロック１０におけるＩＣ設計は、このＩＣの所望の機能性の詳しい仕様で開始される。次に、設計者により、ＣＡＤ／ＣＡＭシステムでＩＣのモデルを製造する。本発明の一実施例においては、このプロセス全体に亘ってＣＡＤ／ＣＡＭモデルを用いて、この設計を変更したり、テストしたり、最終的には、ＩＣを製造する。この目的のために用いられる代表的なＩＣには、入／出力用の外部ピンならびに種々の機能回路が設けられている。これら機能回路には、内部レジスタ、フリップフロップ、ラッチ、クロック、組合せロジック、信号ラインならびに他の適当な内部エレメントが含まれている。この代表的なＩＣの機能回路によって、ＩＣ機能が実行されるのに対して、スキャンチェーン等のテスト回路によって、製造したＩＣのテスト用の内部エレメントをロードしたり、ロードを外したりできるようになる。
【００１４】
ここで、本発明は、個々の集積回路のみならず、集積回路による構成および集積回路板上の他のサポート回路にも応用できることは明らかである。例えば、集積回路基板に、スキャンチェーンによって接続した数個のコンポーネントを有することができ、これによって数個の回路板コンポーネントの内部エレメントを、テストのためにロードまたはロードを外すことができる。
【００１５】
ＩＣのＣＡＤ／ＣＡＭモデルを受入れ可能なＡＴＰＧシステムによって、ブロック１２において、並列テストパターンを発生させて、これによってデータのセットを介してＩＣの機能性について規定できると共にマップできる。一実施例によれば、これら並列テストパターンをベクトルペア（対）で発生させる。このベクトルペアの一方のベクトルによって、所望の初期ＩＣ状態を表わすと共に、他方のベクトルによって、ＩＣ機能を実行した後の最終ターゲットＩＣ状態を表わす。更に、並列テストパターンには、外部ピン入力ベクトルおよび、ＩＣ機能を実行した後の所望の、またはターゲットの外部ピン出力ベクトルを包含できる。
【００１６】
この目的のため、このＩＣ状態によって、データをストアすることが可能なＩＣの内部エレメントの内の、いくつか、またはすべての状態（個々の状態）を集合したものを表わす。例えば、ＩＣ設計として、４，０００個の内部レジスタが含まれているものとし、各レジスタには１ビットのデータが保持されている場合に、個々のレジスタにストアされたデータを特定するための４０００ビットベクトルを利用して、このＩＣ状態を規定することができる。アーキテクチュアＩＣのフルスキャニングのために、ここでスキャンチェーンには、データをストアできるすべての内部エレメントが含まれている場合に、このＩＣ状態には、これら内部エレメントのすべてのものの状態が含まれている。また、アーキテクチュアＩＣの部分スキャニングのためのＩＣ状態には、選択した内部エレメントの状態が包含される。本発明によれば、これらアーキテクチュアＩＣのフルスキャニングおよび部分スキャニングの両者を意図している。
【００１７】
これらＡＴＰＧテストパターンは並列的なものである。その理由としては、これらテストパターンは、シリアル（直列化）ローディングまたはアンローディングのための調整なしで、ＩＣ状態を直接的に特定化できるからである。例えば、このＩＣ状態を直列的にロードする場合に、初期テストパターンは、データをシフトするように、スキャンチェーンに則って反転および他のロジック操作に対して考慮する必要がある。前述したように、シリアルスキャン（直列化走査）パターンおよび変更したシリアルスキャンパターンでは、スキャンチェーンに則ってこれら反転および他のロジック操作を考慮している。
【００１８】
これら並列ＡＴＰＧテストパターンを用いて、コンピュータシュミレーションにおけるＩＣ設計のテストは、以下のように実行される。このシュミレーションによって、内部エレメントの個々の状態の内のいくつかまたはすべてをセットする。この目的のため、ＡＴＰＧにより発生させた所望のＩＣ初期状態を並列にロードする。次に、このＩＣの機能動作をシュミレートする。このため、シュミレートした入力ベクトルをＩＣ設計の外部ピンに与えると共に、これら外部ピンからシュミレートした出力ベクトルを受信する。通常の動作をシュミレーション処理中に、このＩＣの状態は変化する。また、この新しいＩＣ状態と、ＡＴＰＧによって発生させた所望のＩＣ状態およびターゲットＩＣ状態とを比較することによってこのテストを完了する。このＩＣ設計をシュミレートしたために、コンピュータシュミレーションは、内部エレメントにアクセスすると共に、スキャンチェーンを並列にロードまたはアンロードすることができる。
【００１９】
並列ＡＴＰＧテストパターンを発生することに加えて、代表的な設計プロセスによってブロック１４において、シリアルスキャン（直列化走査）パターンを発生させることによって、ブロック２２において、ＡＴＥ（自動式テスト装置）を動作させて、製造したＩＣをテストする。この並列ＡＴＰＧテストパターンとは異なり、ＡＴＥスキャンパターンは、直列化する必要がある。その理由は、このＡＴＥは、製造したＩＣをテストする時に、スキャンチェーンを並列にロードすることができないからである。上述したように、本発明の目的のための代表的なＩＣには、図３に詳しく表示してあるように、別個のテスト回路が設けられており、これら個別の回路によって内部エレメントのいくつか、またはすべてをシリアルデータラインに沿って接続する。これら接続された内部エレメントと共に、このシリアルデータラインを、集合的にスキャンチェーンと称する。このスキャンチェーンによって、ＩＣ状態を設定または読取るために、データを直列的にロードまたはアンロードすることができる。例えば、４０００個のレジスタを包含した１ビットのワイドスキャンチェーンに対しては、４０００ビット直列化スキャンパターンを利用して、４０００個の別個のレジスタの全部について直列的にロードしている。
【００２０】
ブロック１４において、直列化したスキャンパターンを発生するステップは、このスキャンチェーンに沿って反転および他のロジック操作に対する原因となる。上述した例においては、４０００ビットの直列化スキャンパターンを製造したＩＣにシフトした後で、このＩＣ状態は、対応する並列ＡＴＰＧテストパターン中に特定化された所望の状態に対応する必要がある。従って、並列テストパターンをスキャンチェーンロジックに基因して直列化スキャンパターンに変換できる。
【００２１】
ブロック１６において、本発明によるＩＣ設計、テスト、および製造プロセスによって、シュミレーションテストベクトルと呼ばれている、変更された直列化スキャンパターンを、直列化スキャンパターンから直接的に、またはＡＴＰＧ並列テストパターンから発生する。並列テストパターンから直列化スキャンパターンを発生するプロセスと同様に、直列化スキャンパターンを変更するプロセスでは、スキャンチェーンロジックを考慮している。
【００２２】
本発明の技術的な利点の１つとしては、ＩＣ設計をテストするために用いられるシュミレーションテストベクトルを、テスト装置ＡＴＥで動作する直列化スキャンパターンから直接的に発生できることである。従って、ブロック１８におけるＩＣ設計のコンピュータシュミレーションによって、このＩＣ設計の機能性ならびにＡＴＥ直列化スキャンパターンの完全性の両方について確認できる。このことは本発明の重要な要素である。その理由としては、このＡＴＥ直列化スキャンパターンにおけるエラーによって、良品ＩＣを不適当に拒絶してしまうからである。ＩＣ設計ならびに製造前の直列化スキャンパターンにおける、すべてのエラーを発見することによって、図１に示した設計プロセスによってチップの歩留り率を最大にできると共に、設計および製造コストをかなり低減することが可能となる。
【００２３】
機能的にブロック１８で示すように、シュミレーションテストベクトルを用いてＩＣ設計のコンピュータシュミレーションには、包括的な３σ電圧温度およびプロセス（ＶＴＰ）テストが包含されている。このシュミレータは、特殊用途コンピュータまたは、特にＩＣ設計のシュミレーション用に設計されたハードウェアアクセレレータ、例えば、ＩＫＯＳ社によって製造されたコンピュータ／アクセレレータで実現できる。この代りに、このシュミレータとしては、適当なシュミレーションソフトウェアで作動する、あらゆる汎用コンピュータで実現することができ、例えば、Ｃａｄｅｎｃｅ社によって設計されたＣＡＤ／ＣＡＭソフトウェアパッケージで作動する。本発明によれば適当なハードウェアおよびソフトウェアを考慮して、ＩＣ設計をシュミレートする仕事を実行できる。
【００２４】
また、本発明による技術的利点の１つとして、ブロック１８において示したシュミレーションによって、ＩＣ設計の機能性／テスト回路をテストすると共に、他の匹敵し得るテストシステムの動作時間の一部において、集積されたテストパッケージ中の直列化スキャンパターンを確認する。ＩＣ設計におけるすべての項目を高速且つ包括的にテストすることは、高速サイクル環境の下で重要なことであると共に、特に、特殊なＡＳＩＣ開発においては、新たなＩＣ設計における迅速な方向転換は厳密であるので重要なこととなる。
【００２５】
ブロック１８に機能的に示したＩＣシュミレーションには、上述の設計プロセスのブロック１０〜１６において発生した、以前のエラーがカバーされていない。このブロック１８のシュミレーションによって、設計および直列化スキャンパターンエラーを正確に位置決めできると共に、フィードバックループ２４によって機能的に表わされた再設計動作を開始できる。また、本発明の一利点によれば、製造およびＡＴＥテスト段階の前にエラーを初期に検出できる。ブロック１８における３σＶＴＰシュミレーションについて、図２−４を参照し乍ら詳述する。
【００２６】
シュミレーションテストベクトルを利用してＩＣ設計のコンピュータシュミレーションを成功させた後で、このＩＣを、当業者に周知な製造技術を利用して、ブロック２０で製造する。この製造は、ＩＣの設計およびテスト段階全体に亘って利用したＣＡＤ／ＣＡＭモデルに基いて実現できる。ブロック２２において、テスト装置ＡＴＥによって、製造したＩＣに対するテストが、ブロック１４で発生させた直列化スキャンパターンで実行されると共に、ブロック１８において、シュミレーションによって確認される。
【００２７】
図２は、ブロック１８において実行されたシュミレーションステップを詳細に表わし、このステップには、所望のシュミレーションテストベクトルのハイブリットパラレル／シリアル（並列／直列）ロードが含まれている。ブロック３０において、シュミレーションによって、所望のシュミレーションテストベクトルをスキャンチェーン中に、並列にロードする。また、このシュミレーションによって、この所望のベクトルを並列に、僅かな上流オフセットでロードすると共に、次に、このロードされたベクトルを、ブロック３２で示したように、このスキャンチェーンにシフトする。このようなシリアルシフトの後に、初期ＩＣ状態をセットして、ブロック３４のＩＣ機能を実行する。このＩＣ機能には、外部ピンに入力を供給すること、およびこれら外部ピンから出力を受信することが含まれており、上記シュミレーションによってロードされた初期ＩＣ状態が与えられる。このＩＣ機能を実行した後で、シュミレーションによって、ブロック３６において、結果として得られるＩＣ状態を並列にアンロード（ロードを外す）すると共に、この得られたＩＣ状態とターゲット（目標）ベクトルとをブロック３８で比較する。このプロセスを、追加のシュミレーションテストベクトルに対して繰返し実行する。
【００２８】
図２の複数のステップによって、ＩＣ設計の機能およびテスト回路の両方をテストする。所定のベクトルの並列ロードおよび初期のＩＣ状態をセットするためのシリアルシフトのシーケンスによって、ＩＣ設計の制御能力をテストする。この制御能力とは、種々のＩＣ機能をテストするために、内部エレメントの状態をセットするプロセスを意味する。制御能力テストによって、ＩＣテスト用回路を確認すると共に、製造テスト中に、ＡＴＥ装置によって、このＩＣ状態を適切にセットできるように保証される。所定のＩＣ状態に関連して、外部ＩＣピンに関する入力および出力ベクトルのシュミレーションによって、ＩＣの機能回路をテストする。最後に、結果として得られたＩＣ状態の並列アンロード処理によって、ＩＣ設計の観察能力をテストする。この観察能力によって、ＩＣの動作を確認すると共に、ＩＣ機能を実行した後に、適切な結果のＩＣ状態を確認する。
【００２９】
所望のベクトルを上流にロードすることによって、ブロック３２において、スキャンチェーンを介して、ロードされたベクトルの数個のシリアルシフトが実行でき、これによって初期ＩＣ状態をセットする。例えば、ブロック３２において３回のシフトを完了するために、所望のベクトルを、それの所望の状態のスキャンチェーン３回シフトの上流に並列にロードする。ブロック３２において、データを十分な回数だけ直列的にシフトすることによって、ＩＣテスト用回路によって、ＡＴＥでテストするためにシリアルデータを適切にロードすることができる。このシリアルシフトによって、このスキャンチェーンを通る適当なデータ通路を確認すると共に、また内部ＩＣエレメント間における長時間の接続から生じる、スキャンチェーンに沿ったタイミング遅延を検出する。ここで、ブロック３２で実行される特定回数のシリアルシフトは、スキャンチェーンアーキテクチュアに依存するものである。
【００３０】
また、本発明の利点の１つとしては、シュミレーションにおいて、ＩＣのハイブリッドパラレル／シリアルロードをダイナミックに実行することによって、シュミレーション時間を短縮する一方、ＩＣテスト用回路を確認する。純粋なシリアルデータによって、スキャンチェーン動作を確認するが、初期ＩＣ状態をロードするための数千回のシフトが必要となることがある。例えば、１ビットのスキャンチェーンに沿って４０００ビットベクトルをシリアルローディングするためには、初期ＩＣ状態をセットするために４０００回の独立したレジスタシフトが必要となる。従来のシステムでは、シリアルローディングを利用して、コンピュータシュミレーションでＩＣ設計をテストするには、数日必要となっていた。
【００３１】
同様に、純粋に並列ロードによって、初期ＩＣ状態の１つのステップでセットするが、ＩＣテスト用回路の設計を確認できない。ＩＣ状態の並列ローディングおよびアンローディング動作によって、スキャンチェーンのシリアル動作は、それの接続およびタイミング問題点の両者の観点において実行されない。更にまた、パラレルローディングによって、直列的にシフトしたデータに関してのスキャンチェーンロジックの効果をシュミレートしない。このことは直列化スキャンパターンを確認するための重要なステップである。従って、図２のシュミレーションステップでは、ブロック３０におけるパラレルローディングの時間節約と、ブロック３２での僅かなシリアルシフトにおけるスキャンチェーンの有益性とが組合わさるようになる。
【００３２】
所望のベクトルを並列的にロードすると共に、初期ＩＣ状態をセットするための場所に直列的にシフトした後で、シュミレーションによって、ブロック３４でＩＣ機能を実行する。ＩＣ機能のテストでは、一対またはそれ以上の対の外部ピン入力ベクトルおよび外部ピンターゲット出力ベクトルを採用して、ＩＣ設計の機能回路を評価する。例えば、ハイブリッドパラレル／シリアルロードを利用して、初期ＩＣ状態をセットした後で、入力ベクトルがＩＣ設計上の選択された個数の外部ピンに与えられる。所定時間経過後に、選択された個数の外部ピン上の出力ベクトルを読取ると共に、この出力をターゲット出力ベクトルと比較する。
【００３３】
ＩＣ機能性によって実行された組合せロジックおよび他の内部データ操作をテストすることに加えて、ブロック３４におけるシュミレーションステップによって、ＩＣ設計におけるポテンシャルタイミング問題を検出することもできる。例えば、ＩＣ設計に指定された入力および出力ピン間に長い信号路が含まれた場合に、このシュミレーションによって、ブロック３４において、このポテンシャル問題を、ＩＣ設計の予期された処理インターバルで出力ピンをサンプリングすることによって検出して、この出力が安定されたかどうか決定できる。また、このシュミレーションによって、出力ピン上の信号がＩＣ設計の予期した処理インターバルを超えて変化し続けた場合のタイミング遅延問題を検出できる。
【００３４】
１つまたはそれ以上のＩＣ機能を実行した後で、このシュミレーションはブロック３６に進んで、結果として得られるＩＣ状態を並列にアンロードすると共に、ブロック３８では、この結果のＩＣ状態とターゲットベクトルとを比較する。再度、コンピュータシュミレーションによってスキャンチェーンを並列にアクセスできるので、結果として得られるＩＣ状態および外部ピンの両方を直接観察できる。このような機能的およびテスト回路の観察可能性は、このＩＣ設計の精度を確認するために重要である。
【００３５】
このＩＣ設計に、データを異なってストアおよび処理する数種の異なったタイプの内部エレメントを含ませることができる。例えば、簡単なフリップフロップによって、ストアしたデータをアンロードすることができると共に、単一のクロックサイクルに応答して新たなデータを１つロードできる。しかし乍ら、多相ラッチ、カウンタ、または他の内部エレメントは、２つまたはそれ以上のクロックサイクルが必要となり、これによって処理機能を実行する。従って、このシュミレーションでは、スキャンチェーンの種々の内部エレメントを介してデータをシフトするために、１つまたはそれ以上のクロックサイクルを実行する必要がある。ブロック３６で、結果として得られるＩＣ状態をアンロードするに先立って、このシュミレーションでは、このスキャンチェーンを経てデータを１回またはそれ以上の回数だけ、直列的にシフトでき、これを並列アンロード用に準備する。この追加のステップは、結果のＩＣ状態のシュミレーションの良好な観察能力を与えるために必要なものである。
【００３６】
図２に示したシュミレーションプロセスを要約すると以下のようになる。即ち、このプロセスには、所望のベクトルの並列ロードと、初期ＩＣ状態をセットするための多数のシリアル（直列的）シフトと、１つまたはそれ以上のＩＣ機能の実行と、観察能力を改善するために、追加の回数のシリアルシフトと、ターゲットベクトルと比較するために結果のＩＣ状態のパラレルアンロードとが包含されている。本発明の一実施例では、このシュミレーション用に発生した所望のベクトルおよびターゲットベクトルは、ＩＣレジスタ、カウンタおよび他の内部エレメントの動作とは独立したものである。そのような方法において、設計者は、所望のベクトルおよびターゲットベクトルを特定することができると共に、シリアルスキャン  イン／スキャン  アウトシフトの回数を、タイミング関連性を特定することなく、シュミレーションフラグを設定することなく、または、特別フォーマットテストパターンの他のタイプのものを必要としないで特定できる。従って、直列化スキャンパターンから発生したシュミレーションテストベクトルを利用すると共に、シュミレーションテストベクトル中に特定のインストラクションまたは他のタイミングを考慮しないことによって、図２に示したシュミレーションプロセスにおいては、ＩＣ設計の標準化され、価格的に有効な、且つ極めて高速に確認が実現できると共に、製造テスト中に利用すべき直列化スキャンパターンがこれと組合わされて得られる。
【００３７】
図３は、入力ピン４２および出力ピン４４を有するＩＣ４０を示す簡易ブロック線図である。簡単のため、内部スキャンチェーンエレメントおよび接続部を含むＩＣテスト回路を実線で示し、機能回路を破線で示す。レジスタ４６ａ  ｔｏ４６ｋおよびインバータ４８ａ−４８ｄを実線で示すが、ＩＣ４０のテスト回路および機能回路の両者の一部分である。この破線で示した機能回路には、ＡＮＤゲート５０、ＯＲゲート５２、カウンタ５４等の組合せロジック（論理回路）が設けられている。図３に示した機能回路は、特定のＩＣ機能を実行する目的ではないが、このＩＣ４０のテスト回路および機能回路間の一般的な関係を表わす目的を有する。本発明は、ＩＣ４０内におけるあらゆるテストおよび機能回路の組合せを意図するものである。
【００３８】
このＩＣ４０には、スキャンチェーンにおいて、レジスタ４６ａの入力に接続されたスキャン・インピン５６が設けられている。スキャン・アウトピン５８は、このスキャンチェーン中のレジスタ４６ｋの出力に接続されている。スキャンイネーブルピン６０によって、ＩＣ４６の機能モードまたはテストモードの選択が可能となる。テストモード中、テスト回路をイネーブルすると共に、スキャンチェーンを、スキャン・インピン５６を利用して直列的にロードできると共に、スキャン・アウトピン５８を利用して直列的にアンロードできる。また機能モードにおいては、テスト回路をディス（逆）イネーブルすると共に、破線で示した機能回路を、スキャンチェーンのレジスタ４６ａ−４６ｋおよび他の内部エレメントに沿ってイネーブルする。
【００３９】
このＩＣ４０によって、入力ピン４２で受信した入力データを処理すると共に、この処理出力データを出力ピン４４に出力する。ここで、本発明によれば、入力ピン４２、出力ピンおよび例えばスキャン・インピン５６、スキャン・アウトピン５８、スキャンイネーブルピン６０のような他のチップコントロールピンのあらゆる組合せおよび数量を実現できるものである。このスキャンチェーンが１ビットより広い場合には、ＩＣ４０には、多数のスキャン・インピン５６と多数のスキャン・アウトピン５８とを設けることができる。更にまた、図３に示すように、これら入力ピン４２と出力ピン４４とは、２組の別個のピンとすることができるが、本発明によれば、共用した入力および出力ピンによって、データをＩＣ４０へ入力させると共に、これからデータを受信することもできる。
【００４０】
図３の実線で示したスキャンチェーンには、シリアル（直列）データラインに沿って１１個のレジスタ（４６ａ〜４６ｋ）および４個のインバータ（４８ａ〜４８ｄ）が設けられている。工業的に利用される代表的なＩＣ設計には、単一のスキャンチェーン内に、４０００個またはそれ以上のレジスタが、インバータ、論理素子またはこれらレジスタ間に配置された他の内部エレメントの組合せと一緒に設けられる。更に、ＩＣ４０は、多数のスキャンチェーンまたは１ビットワイド以上のスキャンチェーンを設けることができる。一般に、本発明に従って構成されたスキャンチェーンによって、ＡＴＥテスト装置で、データを直列的にスキャンイン処理することによってＩＣ状態をセットできると共に、データを直列的に、スキャンアウト処理することによってＩＣ状態を読取ることができる。
【００４１】
この目的のため、レジスタ４６ａ〜４６ｋを、単一サイクルの記憶デバイスとする。従って、各クロックサイクルに対して、これらレジスタ４６ａ〜４６ｋによってそれらの入力ライン上のデータを、それらの出力ライン上の決められた信号に転送できる。しかしながら、本発明によれば、異なったタイプの内部エレメントを利用することが可能となり、これらエレメントによって、１個またはそれ以上の中間のデータをストアできる。例えば、マスタ／スレーブフリップ・フロップでは、２クロックサイクルを必要とし；これによってそれの入力リードから出力リードへ信号を伝搬する。従って、レジスタ４６ａ〜４６ｋとしては、データをストアできる、あらゆるタイプのフリップ・フロップ、レジスタ、またはこのスキャンチェーンの他の内部エレメントを表現できる。インバータ４８ａ〜４８ｄによって、それらの入力リード上の信号の反転信号を出力できると共に、記憶レジスタとしても動作できる。
【００４２】
図３には、製造したＩＣおよびコンピュータシュミレーション上で動作するＩＣ設計が表わされている。製造したＩＣをテストするために、ＡＴＥによって、所望のＩＣ状態をスキャン・インピン５６に直列的に入力する必要があると共に、結果として得られるＩＣ状態をスキャン・アウトピン５８に直列的に出力する必要がある。しかしながら、ＩＣ４０の設計のコンピュータシュミレーションはＩＣ４０の内部状態にアクセスしてしまった共に、スキャンチェーンを並列にロード／アンロードできる。
【００４３】
以下の説明では図２のシュミレーションステップを、コンピュータシュミレーション上で動作する図３のＩＣ設計に適用している。ブロック３０では、所望のベクトルを並列にロードするが、これの最終行先きの上流をロードするようになる。例えば、それの目標とする状態から上流方向へ３つシフトした、所望のベクトルをロードするためには、所望の１１ビットベクトルの内の終りの８ビットを有するレジスタ４６ａ〜４６ｈを並列にロードする。ブロック３２では、ロードしたデータをスキャンチェーンを介して、３回直列的にシフトして、これらレジスタ４６ａ〜４６ｋに適当な状態値を満している。このシリアル（直列的）シフトでは、追加の３ビットのデータを必要とし、３回のシフトの各々に対して、１つをスキャン・インピン５６に入力する必要がある。
【００４４】
図４は、上流方向に３回シフトしてロードされた所望のベクトルにおけるインバータ４８ａ〜４８ｄの効果ならびに、これら所望ベクトルが所定場所まで直列的にシフトされたインバータの効果を表わす。ハイブリッドパラレル／シリアルロード以降のＩＣ４の所望状態が、レジスタ４６ａ〜４６ｋにおいて“１”となる。この図４における第１列は、所望のベクトルをレジスタ４６ａ〜４６ｈに並列にロードすると共に、３回直列的にシフトした場合に、ＩＣ４０の所望状態を適切にセットする所望ベクトルを表わす。４，０００個のレジスタを有すると共に、３回のシリアルシフトの同一例を利用するＩＣ設計においては、このシュミレーションによって、４０００個のレジスタの内３９９７個を並列にロードする。従って、本発明によれば、並列のローディングプロセスの大部分を実行でき、これによって時間および処理を相当程度減少でき、機能性をテストする前に初期ＩＣ状態をセットできるようになる。
【００４５】
また、図４の第２列は、スキャンチェーンに沿った第１のシフトの後の各レジスタの結果として得られる状態（インバータ４８ａ〜４８ｄの効果を含む）を示す。２番目のシフトによってレジスタ４６ｋを除いたすべてのレジスタを満すと共に、３番目のシフトによって、ＩＣ４０を、レジスタ４６ａ〜４６ｋに１を有して、所望状態に設定する。
【００４６】
上述したローディング動作のシリアル部分には、３回のシフトが含まれているが、このＩＣ４０の状態をセットする間にあらゆる回数のシフトを利用できることは明らかである。このシリアルシフトによってテスト回路設計を確認すると共に、ＡＴＥ装置によって、製造したＩＣのテストを実行中に、適切な状態をセットできるように保証される。特に、このシリアルシフトによって、レジスタ４６ａ〜４６ｋの適切な接続および動作を確認すると共に、スキャンチェーンに沿ったインバータ４８ａ〜４８ｄのロードしたデータおよび他のロジックコンポーネントにおける効果を確認する。
【００４７】
再び図３を参照して説明すると、このシリアルシフトによってスキャンチェーンにおけるタイミング問題、例えば、２つのレジスタ間における長い遅延路を検出できる。例えば、レジスタ４６ｉの出力からレジスタ４６ｊの入力へ通過した信号を、次のクロックサイクル以前において、これら２つのレジスタ間の長い信号路を横切らせることは出来ない。１つのステップで、所望のベクトルをレジスタ４６ａ〜４６ｋに並列にロードする場合に、このシュミレーションはスキャンチェーンを用いることはなく、且つ、テスト回路中のスキャンチェーンタイミング遅れまたは他のエラーを検出することが出来ない。
【００４８】
ハイブリッドパラレル／シリアルローディング動作を利用してＩＣ４の状態を設定した後で、ＩＣ機能を実行する。入力ピン４２に入力ベクトルを与えると共に、出力ピンの出力ベクトルを受取る。この出力ベクトルは入力ベクトルの関数であり、レジスタ４６ａ〜４６ｋにストアしたデータや、ＩＣ状態、組合せロジックおよびＩＣ４０内部の他の機能回路によって表わされたＩＣ状態である。また、このシュミレーションによって、出力ピン４４上のデータがターゲット（目標の）出力ベクトルに相当することを証明する。
【００４９】
次に、図２のブロック３６で示すように、結果として得られたＩＣ状態を並列にアンロードする。異なったタイプの内部エレメントの最大の観察能力を達成するために、スキャンチェーンに沿って１回またはそれ以上のシリアルシフトを実行して、ＩＣ４０をパラレルアンローディング動作のために準備する。図２のブロック３８において、この結果のＩＣ状態とターゲットベクトルとを比較する。図３のＩＣ設計に適用したように、図２のプロセスを、追加のシュミレーションテストベクトル組に対して繰返し行なう。
【００５０】
以上、本発明の一実施例で詳述したように、ハイブリッドパラレル／シリアルロードを利用してコンピュータシュミレーション上でＩＣ設計をテストする方法を実行することによって、ＩＣ設計の機能／テスト回路を証明（確認）できると共に、ＡＴＥ装置用に発生した直列化スキャンパターンを確認する。これら実施例に限定されることなく、添付した請求項に規定された本発明の技術的思想から逸脱することなく種々の変更を加え得る。
【００５１】
以上の説明に関して、更に以下の項を開示する。
【００５２】
（１）  コンピュータシュミレーション上で集積回路をテストするに当り、
集積回路設計のスキャンチェーン内にロードすべき状態データを有する所望のベクトルを発生するステップと；
この所望ベクトルの状態データと一緒に前記スキャンチェーンを並列に、且つ、予じめ決められた回数のシフトだけオフセットしてローディング処理するステップと；
このスキャンチェーンに沿って、前記予じめ決められ回数だけこの状態データをシフトして、この状態データを前記スキャンチェーン内に適切に配置することにより、集積回路設計の所望状態をセットするようにしたステップと；
この集積回路設計の機能を前記所望の状態で実行するステップとを具備した
ＩＣ設計テスト方法。
【００５３】
（２）  更に、前記集積回路設計の結果の状態を並列にアンローディング（非ローディング）処理するステップと、この結果の状態には、前記機能を実行した後で前記スキャンチェーン中の状態データが包含されており；
この集積回路設計の結果の状態と予じめ決められたターゲットベクトルとを比較するステップとを設けた第１項記載のテスト方法。
【００５４】
（３）  更に、前記集積回路設計の結果の状態を前記スキャンチェーンに沿ってシフトするステップと、この結果の状態には、前記機能を実行した後でこのスキャンチェーン中の状態データが設けられ；
この結果の状態を並列にアンローディング処理するステップと；
この結果状態と予じめ決められたターゲットベクトルとを比較するステップとを設けた第１項記載のテスト方法。
【００５５】
（４）  前記シフトステップを、シフトの前記予じめ決められた回数がスキャンチェーンの動作を確認するのに十分であるように実行した第１項記載のテスト方法。
【００５６】
（５）  前記機能を実行するステップに、更に、
入力ベクトルを前記集積回路設計に供給するステップと；
予じめ決められた時間経過後に出力ベクトルを、前記集積回路設計から読み出すステップとを設けた第１項記載のテスト方法。
【００５７】
（６）  前記所望ベクトル発生ステップは製造された集積回路をテストするために用いられる一列に配置されたスキャンパターンから所望のベクトルを発生する第１項記載のテスト方法。
【００５８】
（７）  前記所望のベクトルを発生するステップに、更に、
パラレル（並列）テストパターンを自動テストパターン発生器で発生させるステップと；
このパラレルテストパターンを利用して、前記製造した集積回路をテストするための直列化スキャンパターンを発生するステップと；
この直列化スキャンパターンを利用して、前記コンピュータシュミレーション上の集積回路をテストするための所望のベクトルを発生するステップとを設けた第１項記載のテスト方法。
【００５９】
（８）  前記所望ベクトルを発生するステップに、更に、
前記集積回路設計の所望状態を表わすパラレルデータベクトルを発生するステップと；
論理的操作のために前記パラレルデータベクトルを、前記シフトステップによって形成されたスキャンチェーン中の状態データに対して調整するステップとを設けた第１項記載のテスト方法。
【００６０】
（９）  集積回路をテストするに当り、
製造した集積回路をテストするための直列化スキャンパターンを発生するステップと、この直列化スキャンパターンに、前記集積回路の物理的スキャンチェーン中にロードすべき状態データを設け、
この直列化スキャンパターンを利用して、この集積回路の設計をコンピュータシュミレーション上でテストするためのシュミレーションパターンを発生するステップと、このシュミレーションテストベクトルには、前記集積回路設計のシュミレーションされたスキャンチェーン中にロードすべき状態データが設けられ；
このシュミレーションしたスキャンチェーンに沿って１回またはそれ以上のシフトに後続するパラレルロードを利用して、このシュミレーションテストベクトルの状態データと一緒にシュミレーションしたスキャンチェーンをローディング処理することによって、前記集積回路設計をコンピュータシュミレーション上でテストするステップと；
前記集積回路を製造するステップと；
前記物理的スキャンチェーンに沿って直列シフトを利用して、前記直列化スキャンパターンと一緒にこの物理的スキャンチェーンをローディング処理することによって、前記製造した集積回路をテストするステップとを具備した集積回路テストプロセス。
【００６１】
（１０）  更に、前記集積回路をＣＡＤ／ＣＡＭシステム上で設計するステップを設けた第９項記載のテストプロセス。
【００６２】
（１１）  更に、前記集積回路をＣＡＤ／ＣＡＭシステム上で設計するステップを設け、前記集積回路設計を設計、テストおよび集積回路を製造するステップを、前記集積回路のＣＡＤ／ＣＡＭモデルを用いて実行した第９項記載のテストプロセス。
【００６３】
（１２）  前記直列化スキャンパターンを発生するステップに、自動式テストパターン発生器より発生したパラレルテストパターンから前記直列化スキャンパターンを発生するステップを設けた第９項記載のテストプロセス。
【００６４】
（１３）  前記シュミレーションテストベクトルを発生するステップに、更に；
前記集積回路設計の所望状態を表わすパラレルデータベクトルを発生するステップと、
論理的操作のために、前記パラレルデータベクトルを、前記シュミレーションされたスキャンチェーンに沿って１回またはそれ以上のシフトによって生じた状態データに対して調整するステップとを設けたことを第９項記載のテストプロセス。
【００６５】
（１４）  前記集積回路設計をテストするステップに、電圧、温度およびプロセステストを行なうステップを設けた第９項記載のテストプロセス。
【００６６】
（１５）  前記集積回路設計をテストするステップによって、この集積回路の機能性および製造した集積回路をテストするために用いられる直列化スキャンパターンを確認するようにした第９項記載のテストプロセス。
【００６７】
（１６）  前記集積回路設計をテストするステップをハードウェアアクセレレータで実行するようにした第９項記載のテストプロセス。
【００６８】
（１７）  コンピュータシュミレーション上で集積回路基板の設計をテストするに当り、この集積回路基板設計には、複数の集積回路コンポーネントが設けられており；
これら集積回路コンポーネントと組合わされたスキャンチェーン中にロードすべき状態データを有する所望ベクトルを発生するステップと；
この所望ベクトルの状態データと一緒に前記スキャンチェーンを並列に、且つ、予じめ決められた回数のシフトだけオフセットしてローディング処理するステップと；
このスキャンチェーンに沿って、前記予じめ決められ回数だけこの状態データをシフトして、この状態データを前記スキャンチェーン内に適切に配置することにより、集積回路基板設計の所望状態をセットするようにしたステップと；
この集積回路基板設計の機能を前記所望の状態で実行するステップとを具備したＩＣ回路基板設計テスト方法。
【００６９】
（１８）  更に、前記集積回路基板設計の結果の状態を並列にアンローディング（非ローディング）処理するステップと、この結果の状態には、前記機能を実行した後で前記スキャンチェーン中の状態データが包含されており；
この集積回路基板設計の結果の状態と予じめ決められたターゲットベクトルとを比較するステップとを設けた第１７項記載のテスト方法。
【００７０】
（１９）  更に、前記集積回路基板設計の結果の状態を前記スキャンチェーンに沿ってシフトするステップと、この結果の状態には、前記機能を実行した後でこのスキャンチェーン中の状態データが設けられ；
この結果の状態を並列にアンローディング処理するステップと；
この結果状態と予じめ決められたターゲットベクトルとを比較するステップとを設けた第１７項記載のテスト方法。
【００７１】
（２０）  前記シフトステップを、シフトの前記予じめ決められた回数がスキャンチェーンの動作を確認するのに十分であるように実行した第１７項記載のテスト方法。
【００７２】
（２１）  コンピュータシュミレーション上で集積回路をテストするに当り、所望のシュミレーションテストベクトルをスキャンチェーン３０中に並列にロードしてテストする方法。このシュミレーションでは、この所望のベクトルを僅かオフセットまたは上流方向へシフトさせてロードし、これによって、ロードされたベクトルが、スキャンチェーン３０を介して、数回直列状にシフトされる。これらシリアルシフト処理後、初期ＩＣ状態をセットして、ＩＣ機能３４を実行する。このＩＣ機能には、外部ピンに入力を供給するステップと、この外部ピンから出力を受信するステップとが設けられており、このシュミレーションによってロードされた初期ＩＣ状態が与えられる。このＩＣ機能を実行した後で、結果として得られるＩＣ状態を並列にアンロード３６すると共に、このＩＣ状態とターゲットベクトル３８とを比較する。
【図面の簡単な説明】
【図１】本発明によって集積回路を設計、テスト、製造するステップを表わす流れ図。
【図２】本発明による変更した直列化スキャンパターンを利用して、コンピュータシュミレーション上で集積回路をテストするステップを示すフローチャート。
【図３】本発明によるコンピュータシュミレーション中に、スキャンチェーンの動作を表わす簡単な集積回路のブロック線図。
【図４】本発明による、シュミレーションテストパターンをスキャンチェーン中を直列的にシフトする変形例を示す図。
【符号の説明】
１０  ＩＣ設計
１２  並列テストパターン発生
１４  直列化スキャンパターン発生
１６  シュミレーションパターン発生
１８  ＩＣのシュミレーション
２０  ＩＣの製造
２２  ＡＴＥによるテスト
４６ａ〜４６ｋ  レジスタ
５４  カウンタ
【図１】
0003830550.tif 000002
【図２】
0003830550.tif 000003
【図３】
0003830550.tif 000004
【図４】
0003830550.tif 000005