(57)【特許請求の範囲】
【請求項１】
集積回路をテストするためのオリジナルテストパターン値を生成するよう構成されている第１テスト刺激ソースと、
定数値を生成するように構成されている第２テスト刺激ソースと、
制御信号を生成するように構成されているコントローラと、
前記第１テスト刺激ソース、前記第２テスト刺激ソースおよび前記コントローラに連結されている入力部を有し、集積回路内の複数のスキャンチェーンに連結されている出力部をさらに有するテスト刺激セレクタとを含む集積回路であって、
前記テスト刺激セレクタは、前記コントローラからの前記制御信号に基づいて、そのそれぞれの出力部毎に、前記第１テスト刺激ソースからのオリジナルテストパターン値、または前記第２テスト刺激ソースからの前記定数値のいずれかを選択的に出力するよう構成されていることを特徴とする、集積回路。
【請求項２】
前記テスト刺激セレクタは、各スキャンシフトサイクル毎、各スキャンチェーン・セグメント毎、または各テストパターン毎に値を選択的に出力するよう構成されていることを特徴とする、請求項１に記載の集積回路。
【請求項３】
前記第１テスト刺激ソースは、外部テスタから圧縮テストパターン値を受信するよう構成されているデコンプレッサであることを特徴とする、請求項１に記載の集積回路。
【請求項４】
前記テスト刺激セレクタは複数のマルチプレクサを含み、前記マルチプレクサの各々が、前記第１テスト刺激ソースの各出力部に連結されている第１入力部と、前記第２刺激ソースの各出力部に連結されている第２入力部と、前記コントローラの各出力部に連結されている第３入力部と、１つまたは複数の前記スキャンチェーンのそれぞれに連結されている出力部とを有することを特徴とする、請求項１に記載の集積回路。
【請求項５】
前記コントローラは、外部テスタ、前記集積回路上のメモリ、または前記集積回路内に組み込まれたテスト生成器のうちのいずれか１つから制御データをロードするよう構成されているプログラム可能コントローラであることを特徴とする、請求項１に記載の集積回路。
【請求項６】
前記定数値は第１定数値であり、前記集積回路は第２定数値を生成するように構成されている第３テスト刺激ソースをさらに含み、前記テスト刺激セレクタは前記第３刺激ソースに連結されている入力部をさらに有し、前記テスト刺激セレクタは、前記コントローラからの前記制御信号に基づいて、そのそれぞれの出力部毎に、前記第１テスト刺激ソースからのオリジナルテストパターン値、前記第２テスト刺激ソースからの前記第１定数値、または前記第３テスト刺激ソースからの前記第２定数値のいずれかを選択的に出力するよう構成されていることを特徴とする、請求項１に記載の集積回路。
【請求項７】
前記第１定数値および前記第２定数値は、それぞれ０および１、またはそれぞれ１および０であることを特徴とする、請求項６に記載の集積回路。
【請求項８】
前記テスト刺激セレクタは複数のマルチプレクサを含み、前記マルチプレクサの各々が、前記第１テスト刺激ソースの各出力部に連結されている第１入力部と、前記第２刺激ソースの各出力部に連結されている第２入力部と、前記第３刺激ソースの各出力部に連結されている第３入力部と、前記コントローラの各出力部に連結されている第４入力部と、１つまたは複数の前記スキャンチェーンのそれぞれに連結されている出力部とを有することを特徴とする、請求項６に記載の集積回路。
【請求項９】
前記コントローラは、制御データをロードして出力する１つまたは複数のシフトレジスタを含むことを特徴とする、請求項１に記載の集積回路。
【請求項１０】
前記１つまたは複数のシフトレジスタは、多段レジスタ・パイプラインを形成する複数のシフトレジスタを含むことを特徴とする、請求項９に記載の集積回路。
【請求項１１】
前記複数のシフトレジスタは、レジスタシフトクロックに応答して、データを順次ロードするよう構成されていることを特徴とする、請求項１０に記載の集積回路。
【請求項１２】
前記複数のシフトレジスタは、パイプライン・シフトクロックに応答して、前記シフトレジスタのあるものから別の前記シフトレジスタに制御データを並列にシフトするよう構成されていることを特徴とする、請求項１０に記載の集積回路。
【請求項１３】
前記１つまたは複数のシフトレジスタに連結されている１つまたは複数のシャドウレジスタをさらに含む、請求項９に記載の集積回路。
【請求項１４】
前記コントローラは、前記１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークをさらに含むことを特徴とする、請求項９に記載の集積回路。
【請求項１５】
前記コントローラは、前記ＸＯＲまたはＸＮＯＲネットワークに連結されているバイアス回路をさらに含むことを特徴とする、請求項１４に記載の集積回路。
【請求項１６】
前記バイアス回路は前記ＸＯＲまたはＸＮＯＲネットワークの出力のうち１つまたは複数の出力をバイアスして、前記バイアスされた各出力毎に個別のバイナリ値をより生じやすいようにしたことを特徴とする、請求項１５に記載の集積回路。
【請求項１７】
前記バイアス回路は、前記ＸＯＲまたはＸＮＯＲネットワークの前記出力のうち１つまたは複数の出力を、選択可能な量だけバイアスするよう構成されている再構成可能なバイアス回路であることを特徴とする、請求項１５に記載の集積回路。
【請求項１８】
集積回路をテストするためのオリジナルテストパターン値を生成するよう構成されているテスト刺激ソースと、
制御信号を生成するよう構成されているコントローラと、
前記テスト刺激ソースおよび前記コントローラに連結されている入力部を有し、かつ集積回路内の複数のスキャンチェーンに連結されている出力部をさらに有するテスト刺激セレクタとを含む集積回路であって、
前記テスト刺激セレクタは、前記コントローラから受信した前記制御信号に基づいて、そのそれぞれの出力部毎に、前記第１テスト刺激ソースからのオリジナルテストパターン値、または定数値のいずれかを選択的に出力するように構成されており、
前記テスト刺激ソースは、前記定数値を生成するよう構成されているゲーティング論理をさらに含むことを特徴とする、集積回路。
【請求項１９】
前記テスト刺激セレクタは、各スキャンシフトサイクル毎、各スキャンチェーン・セグメント毎、または各テストパターン毎に、値を選択的に出力するよう構成されていることを特徴とする、請求項１８に記載の集積回路。
【請求項２０】
前記テスト刺激ソースは、外部テスタから圧縮テストパターン値を受信するよう構成されているデコンプレッサであることを特徴とする、請求項１８に記載の集積回路。
【請求項２１】
前記コントローラは、外部テスタ、前記集積回路上のメモリ、または前記集積回路内に組み込まれたテスト生成器のいずれか１つから制御データをロードするよう構成されているプログラム可能コントローラであることを特徴とする、請求項１８に記載の集積回路。
【請求項２２】
前記コントローラは制御データをロードして出力する１つまたは複数のシフトレジスタを含み、前記１つまたは複数のシフトレジスタは多段レジスタ・パイプラインを形成していることを特徴とする、請求項１８に記載の集積回路。
【請求項２３】
前記コントローラは、
前記１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークと、
前記ＸＯＲまたはＸＮＯＲネットワークに連結されており、前記ＸＯＲまたはＸＮＯＲネットワークの出力のうち１つまたは複数の出力をバイアスして、前記バイアスされた各出力毎に個別のバイナリ値をより出しやすいように構成されているバイアス回路と、
をさらに含むことを特徴とする、請求項２２に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に集積回路テストの分野に関係する。具体的には、本出願はテスト中の出力（電力）消費を低減するツールおよび技術に関係する。
【背景技術】
【０００２】
関連出願の相互参照  
本出願は、２００７年２月１２日に出願された米国仮特許出願第６０／９０１，０７９号の利益を主張し、同出願の内容は引用により本明細書に組み込まれるものとする。
スキャンおよび自動テストパターン生成（「ＡＴＰＧ」）に基づくテスト容易化設計（「ＤＦＴ」）は、高いテストカバレッジ（適用範囲）を提供するために、集積回路製造の一部として広く使われている。しかし、大規模回路の場合、当該回路をテストするのに必要なテストデータの量により、テスト時間とテスタのメモリの所要量を著しく増大させかねない。これらの問題に取り組むために、様々なテストデータ低減スキームが紹介されてきた。たとえば、あるテストデータ低減スキームはオンチップ解凍および圧縮ハードウェアを使用する。当該ハードウェアを使用することによって、テスタはテストパターンを圧縮形式で渡すことができ、オンチップ・デコンプレッサは圧縮テストパターンをスキャンチェーンにロードされる実際のデータに展開（または解凍）できる。典型的には解凍されたテストパターン内のごく少数のビットだけが、集積回路の１つまたは複数の特定の故障を対象とするよう設計された指定ビットであるため、後者の操作は可能である。解凍されたテストパターンのうちの残りの未指定ビットは、「ドントケア」ビット呼ばれ、典型的にはデコンプレッサ構造の結果として無作為に決定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第６，３２７，６８７号明細書
【特許文献２】米国特許第６，３５３，８４２号明細書
【特許文献３】米国特許第６，５５７，１２９号明細書
【特許文献４】米国特許第６，６８４，３５８号明細書
【特許文献５】米国特許第６，８７４，１０９号明細書
【特許文献６】米国出願公開第２００３／０１２０９８８号明細書
【特許文献７】米国出願公開第２００７／０２５０７４９号明細書
【特許文献８】米国特許出願公開第２００７／０２３４１５７号明細書
【特許文献９】米国特許出願公開第２００７／０２３４１６３号明細書
【特許文献１０】米国特許出願公開第２００７／０２３４１６９号明細書
【非特許文献】
【０００４】
【非特許文献１】G. Mrugalski 外,「Test Response Compactor with  Programmable Selector」, Proc. DAC, pp. 1089-1094（2006）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、無作為に満たされた大量のテストパターンビットにより、解凍されたテストパターンがロードされるとき、スキャンチェーンのスキャンセル内に過度なスイッチングが生じかねない。このために、テスト手順中に望ましくない高電力消費につながるのである。
同様に、テストパターンをスキャンチェーンにロードし、システムロジックに送り込んだ後で捕獲する（キャプチャする）テスト応答には、対象とする故障の存在を示さないテスト応答ビットが多く含まれることがよくある。これらのテスト応答ビットは故障検出または診断に寄与しないため、当該テスト応答ビットは「ドントケア」テスト応答ビットと呼ぶことができる。「ドントケア」テストパターンビットに関し、「ドントケア」テスト応答ビットも、テスト応答が捕獲されるとき、および／またはテスト応答がスキャンチェーンからシフトされるとき、スキャンチェーンのスキャンセル内に過度なスイッチングを生じかねない。
【０００６】
スキャンチェーンのロード、捕獲、および／またはアンロードプロセス中に使用される過剰な電力は、過熱または供給電圧のノイズを起こしかねない。そのいずれも、エレクトロ・マイグレーションの加速によりデバイスの誤作動、永久的な損傷、または信頼性の低下を生じることになりかねない。したがって、テスト中に電力消費を低減する改良された方法およびテストアーキテクチャが望まれる。
【課題を解決するための手段】
【０００７】
以下に開示するのは、集積回路のテスト中に電力消費を低減するために使用する方法、装置およびシステムの代表的な実施形態である。開示する技術の実施形態は低消費電力テストスキームを提供するために使用でき、また多様な圧縮ハードウェア・アーキテクチャ（例、embedded deterministic test（「ＥＤＴ」）アーキテクチャ）と統合できる。
開示する実施形態のいくつかは、テスト刺激セレクタを含む集積回路を含む。たとえば、具体的な実施形態では、集積回路は、オリジナルテストパターン値を生成するよう構成されている第１テスト刺激ソースと、定数値を生成するよう構成されている第２テスト刺激ソースと、制御信号を生成するよう構成されているコントローラと、第１テスト刺激ソース、第２テスト刺激ソースおよびコントローラに連結されている入力部を有するテスト刺激セレクタとを含む。テスト刺激セレクタは、集積回路内の複数のスキャンチェーンに連結されている出力も有する。これらの実施形態では、テスト刺激セレクタは、コントローラからの制御信号に基づいて各出力毎に、第１テスト刺激ソースからのオリジナルテストパターンまたは第２テスト刺激ソースからの定数値のいずれかを選択的に出力するように構成されている。具体的な実施形態では、テスト刺激セレクタはサイクル毎、スキャンチェーン・セグメント毎、またはパターン毎に値を選択的に出力するよう構成されている。また、第１テスト刺激ソースは、外部テスタから圧縮テストパターン値を受信するよう構成されているデコンプレッサにすることができる。いくつかの実施態様では、テスト刺激セレクタは複数のマルチプレクサを含む。これら実施態様のマルチプレクサの各々は、第１テスト刺激ソースの各出力部に連結されている第１入力部と、第２刺激ソースの各出力部に連結されている第２入力部と、コントローラの各出力部に連結されている第３入力部と、１つまたは複数のスキャンチェーンそれぞれに連結されている出力部とを有する。コントローラは、外部テスタ、集積回路上のメモリ、または集積回路上のテスト生成器のうちの１つから制御データをロードするよう構成されているプログラム可能コントローラである。ある実施態様では、定数値は第１定数値であり、集積回路は第２定数値を生成するよう構成されている第３テスト刺激ソースをさらに含み、テスト刺激セレクタは第３刺激ソースに連結されている入力部をさらに有し、テスト刺激セレクタは、第１テスト刺激ソースからのオリジナルテストパターン、第２テスト刺激ソースからの第１定数値、または第３テスト刺激ソースからの第２定数値のうちのいずれかを、コントローラからの制御信号に基づいてそのそれぞれの出力部に個別に選択的に出力するよう構成されている。これらの実施態様では、第１定数値および第２定数値はそれぞれ０および１、またはそれぞれ１および０とすることができる。さらに、これらの実施態様のテスト刺激セレクタは複数のマルチプレクサを含むことができ、マルチプレクサの各々が第１テスト刺激ソースの各出力部に連結されている第１入力部と、第２刺激ソースの各出力部に連結されている第２入力部と、第３刺激ソースの各出力部に連結されている第３入力部と、コントローラの各出力部に連結されている第４入力部と、１つまたは複数のスキャンチェーンそれぞれに連結されている出力部とを有する。これらの実施態様いずれの場合も、コントローラは制御データをロードして出力する１つまたは複数のシフトレジスタを含むことができる。さらに、１つまたは複数のシフトレジスタは多段レジスタ・パイプラインを形成する複数のシフトレジスタを含むことができる。たとえば、複数のシフトレジスタをレジスタシフトクロックに応答してデータを順次（直列的に）ロードするよう構成することができ、かつ／または複数のシフトレジスタをパイプライン・シフトクロックに応答してあるシフトレジスタから別のシフトレジスタに制御データを並列的にシフトするよう構成できる。１つまたは複数のシャドウレジスタを、１つまたは複数のシフトレジスタに連結することもできる。その上、コントローラは１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークを含むことができ、コントローラはＸＯＲまたはＸＮＯＲネットワークに連結されているバイアス回路をさらに含むことができる。たとえば、バイアス回路はＸＯＲまたはＸＮＯＲネットワークの出力のうちの１つまたは複数の出力を、バイアスされる各出力毎に個別の２進（バイナリ）値をより生成しやすいようにバイアスするよう構成できる。バイアス回路は、たとえば、ＸＯＲまたはＸＮＯＲネットワークの出力のうちの１つまたは複数の出力を選択可能な量だけバイアスするよう構成されている再構成可能なバイアス回路であってもよい。
【０００８】
開示する他の実施形態では、集積回路は、オリジナルテストパターン値を生成するよう構成されているテスト刺激ソースと、制御信号を生成するよう構成されているコントローラと、テスト刺激ソースおよびコントローラに連結されている入力部および集積回路内の複数のスキャンチェーンに連結されている出力部を有するテスト刺激セレクタとを含む。これらの実施形態では、テスト刺激セレクタは、第１テスト刺激ソースからのオリジナルテストパターン値または定数値のいずれかを、コントローラから受信した制御信号に基づいてそのそれぞれの出力部に個別に選択的に出力するよう構成されている。さらに、テスト刺激ソースは、定数値を生成するよう構成されているゲート論理回路を含むことができる。具体的な実施形態では、テスト刺激セレクタは、サイクル毎、スキャンチェーン・セグメント毎、またはパターン毎に選択的に値を出力するよう構成されている。ある実施態様では、テスト刺激ソースは外部テスタから圧縮テストパターン値を受信するよう構成されているデコンプレッサである。コントローラは、外部テスタ、集積回路上のメモリ、または集積回路上のテスト生成器から制御データをロードするよう構成されているプログラム可能コントローラであってもよい。いくつかの実施態様では、コントロールは制御データをロードして出力する１つまたは複数のシフトレジスタを含むことができる。１つまたは複数のシフトレジスタは多段レジスタ・パイプラインを形成する複数のシフトレジスタを含むことができる。コントローラはさらに、１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークを含むことができる。加えて、コントローラはＸＯＲまたはＸＮＯＲネットワークに連結されているバイアス回路を含むことができる。当該実施態様では、バイアス回路は、ＸＯＲまたはＸＮＯＲネットワークの出力のうちの１つまたは複数の出力を、バイアスされる各出力毎に個別のバイナリ値をより生成しやすいようにバイアスするよう構成できる。
【０００９】
本明細書に開示するある例示的な方法において、集積回路をテストするためのオリジナルテストパターン値はｍ個のパスで受信される。オリジナルテストパターン値は、たとえば、デコンプレッサから受信できる。この例示的な方法では、ｎがｍ未満である場合に、ｍ個のパスのうち少なくともｎ個のパスでテストパターン値を選択的に変更して、ｎ個のパス上のテストパターン値が連続する少なくとも２つの定数値になるようにする。ｍ個のスキャンチェーン入力パス上のテストパターン値が出力される。これらのテストパターン値はｍ個のスキャンチェーン入力パスのうちｎ個のパス上に連続する少なくとも2つの定数値を含む。ある実施態様では、ｍ個のパスのうちどれを変更させるかを示す制御データが受信される。制御データは複数の追加テストパターンに関して再利用できる。出力されたテストパターン値は集積回路内の１つまたは複数の故障を対象とするオリジナルテストパターンのすべての指定ビットを含むことができる。さらに、テストパターン値を選択的に変更する動作は、連続する少なくとも２つの定数値を生成するよう構成されている論理ゲートに制御信号を適用する動作を含むことができる。
【００１０】
また、本明細書では例示的なスキャン・イネーブル回路を有する集積回路の実施形態も開示する。たとえば、具体的な実施形態では、集積回路は、集積回路内のスキャンチェーンのデータ入力部に連結されているデコンプレッサと、制御信号を生成するよう構成されているコントローラと、コントローラに連結されている入力部およびスキャンチェーンのスキャンセルのスキャン・イネーブル入力部に連結されている出力部を有するスキャン・イネーブル回路とを含む。これらの実施形態では、スキャン・イネーブル回路はスキャン・イネーブル回路の出力部のうちの１つまたは複数の出力部で独立して制御可能なスキャン・イネーブル信号を生成するよう構成されている。独立して制御可能なスキャン・イネーブル信号の値は、少なくとも部分的にはコントローラからの制御信号に基づいている。
【００１１】
独立して制御可能なスキャン・イネーブル信号の値は、第１スキャン・イネーブル値と第２スキャン・イネーブル値とを含むことができる。第１スキャン・イネーブル値は１つまたは複数のスキャンチェーンをシフトモードで動作させるために使用でき、第２スキャン・イネーブル値は１つまたは複数のスキャンチェーンを通常の回路モードで動作させるために使用できる。いくつかの実施態様では、スキャン・イネーブル回路の入力部は第１入力部であり、スキャン・イネーブル回路は大域（グローバル）スキャン・イネーブル信号を受信するよう構成されている第２入力部をさらに含む。これらの実施態様では、スキャン・イネーブル回路は、スキャン・イネーブル回路によって生成されたスキャン・イネーブル信号の少なくとも一部を大域スキャン・イネーブル信号によって部分的に制御するように構成できる。スキャン・イネーブル回路の各出力部は、集積回路の１つまたは複数のそれぞれのスキャンチェーン内のスキャンセルのスキャン・イネーブル入力部に連結できる。さらに、ある実施態様では、集積回路はスキャンセルによって形成されるスキャンチェーンに連結するよう構成されている出力部を有するテスト刺激セレクタを含むことができる。テスト刺激セレクタは、オリジナルテストパターン値または定数値のいずれかを、テスト刺激セレクタの各出力部毎に選択的に出力するよう構成できる。いくつかの実施態様では、コントローラは、外部テスタ、集積回路上のメモリ、または集積回路上のテスト生成器のうちの１つから制御データをロードするよう構成されているプログラム可能コントローラであってもよい。コントローラは、たとえば、制御データをロードして出力する１つまたは複数のシフトレジスタを含むことができる。１つまたは複数のシフトレジスタは多段レジスタ・パイプラインを形成する複数のシフトレジスタを含むことができる。さらに、１つまたは複数のシフトレジスタに１つまたは複数のシャドウレジスタを連結できる。いくつかの実施態様では、コントローラは、１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークも含むことができる。その上、コントローラはＸＯＲまたはＸＮＯＲネットワークに連結されているバイアス回路を含むことができる。バイアス回路は、ＸＯＲまたはＸＮＯＲネットワークの出力のうちの１つまたは複数の出力を、バイアスされる各出力毎に個別のバイナリ値をより生成しやすいようにバイアスするよう構成できる。
【００１２】
テスト中回路にスキャン・イネーブル信号を適用する例示的な実施形態も本明細書で開示する。たとえば、いくつかの実施形態では、デコンプレッサから解凍されたテストパターンをスキャンチェーンへロードしているときに、スキャン・イネーブル信号を被テスト回路の当該スキャンチェーンに適用する。スキャン・イネーブル信号はスキャンチェーンを１つまたは複数のシフトレジスタとして動作させる。さらに、スキャン・イネーブル信号を適用していないスキャンチェーンの残りで捕獲したときに、スキャン・イネーブル信号を、解凍されたテストパターンに対するテスト応答として、１つまたは複数のスキャンチェーンに適用する。いくつかの実施態様では、スキャン・イネーブル信号を適用する1つまたは複数のスキャンチェーンは、スキャン・イネーブル信号を適用しなければ未知の値を捕獲したはずの１つまたは複数のスキャンチェーンを含む。別の実施態様では、テスト応答をスキャンチェーンからアンロードするときに、スキャン・イネーブル信号を被テスト回路のスキャンチェーンに適用できる。解凍されたテストパターンに対する応答を捕獲するときスキャンチェーンのうちのどれにスキャン・イネーブル信号を適用するかを制御する制御信号も受信できる。これらの制御信号は、解凍された複数の追加テストパターンをスキャンチェーンにロードするときに再利用できる。さらに、テストパターンをスキャンチェーンにロードしているときに、次のテストパターンのための制御信号をロードできる。
【００１３】
本明細書に開示する別の例示的な実施形態では、コンピュータにある方法を実施させるコンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体を開示する。ある実施態様では、方法は、被テスト回路に適用されるテストパターンをシミュレートすることによって、シミュレートされたテスト応答を生成する工程と、シミュレートされたテスト応答から未知状態を捕獲する被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、スキャン・イネーブル回路をキャプチャウィンドウ中に特定した１つまたは複数のスキャンチェーンでスキャン・イネーブル信号を抑制させる制御信号を生成する工程と、制御信号を１つまたは複数のコンピュータ可読媒体に記憶する工程とを含む。
【００１４】
本明細書では、クロック・イネーブル回路を含む集積回路の実施形態も開示する。たとえば、開示するある実施形態では、集積回路は、集積回路内のスキャンチェーンのデータ入力に連結されているデコンプレッサと、制御信号を生成するよう構成されているコントローラと、クロック・イネーブル回路とを含む。これら実施形態のクロック・イネーブル回路は、コントローラに連結されている入力部と、スキャンチェーンのスキャンセルのクロック入力部に連結されている出力部とを有する。さらに、クロック・イネーブル回路は、少なくとも部分的にはコントローラからの制御信号に基づいて、クロック・イネーブル回路の１つまたは複数の出力で独立して制御可能なクロック信号を生成するよう構成されている。クロック・イネーブル回路によって生成される独立して制御可能なクロック信号はクロック信号を捕獲できる。さらに、いくつかの実施態様では、クロック・イネーブル回路の入力部を第１入力部にでき、クロック・イネーブル回路はさらにソースクロック信号を受信するよう構成されている第２入力部を含むことができ、クロック・イネーブル回路によって生成されるクロック信号をソースクロック信号から導き出すことができる。ある実施態様では、クロック・イネーブル回路は大域クロック・イネーブル信号を受信するよう構成されている第３入力部をさらに含み、大域クロック・イネーブル信号が生成されたときにクロック・イネーブル回路のすべての出力部でクロック信号を生成するよう構成されている。クロック・イネーブル回路の各出力部は、集積回路の１つまたは複数のスキャンチェーンの各々の内のスキャンセルのクロック入力部に連結できる。クロック・イネーブル回路は、クロック・イネーブル回路の各出力部を制御する個別のクロック・イネーブラー回路を含むことができる。ある実施態様では、集積回路はさらに、スキャンセルによって形成されるスキャンチェーンに連結するよう構成されている出力部を有するテスト刺激セレクタを含む。テスト刺激セレクタは、オリジナルテストパターン値または定数値のいずれかを、テスト刺激セレクタの出力部毎に選択的に出力するよう構成できる。さらに、コントローラは、外部テスタ、集積回路上のメモリ、または集積回路上のテスト生成器のうちの１つから制御データをロードするよう構成されているプログラム可能コントローラとすることができる。コントローラは、たとえば、制御データをロードして出力する１つまたは複数のシフトレジスタを含むことができる。１つまたは複数のシフトレジスタは、多段レジスタ・パイプラインを形成する複数のシフトレジスタを含むことができる。さらに、１つまたは複数のシフトレジスタに１つまたは複数のシャドウレジスタを連結できる。コントローラは、１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークを含むこともできる。ある実施態様では、コントローラはＸＯＲまたはＸＮＯＲネットワークに連結されているバイアス回路をさらに含み、バイアス回路はＸＯＲまたはＸＮＯＲネットワークの出力のうち１つまたは複数の出力を、バイアスされる各出力毎に個別の２進（バイナリ）値をより生成しやすいようにバイアスするよう構成されている。
【００１５】
開示する実施形態には、テスト中にクロック信号を適用して抑制する方法がある。たとえば、開示するある実施形態では、デコンプレッサからの解凍されたテストパターンを被テスト回路のスキャンチェーンにロードするときに、被テスト回路のスキャンチェーンにクロック信号を適用する。キャプチャウィンドウ中に、解凍されたテストパターンに対するテスト応答を捕獲しているとき、クロック信号はすべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントに抑制される。クロック信号の抑制により、キャプチャウィンドウ中に、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントが定常状態にとどまる。すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントは、クロック信号を適用されていなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントを含むことができる。具体的な実施態様では、クロック信号は、テストパターンをスキャンチェーンにロードするときの第１周波数と、キャプチャウィンドウにテスト応答を捕獲するときの第２周波数とを有する。開示する実施形態は、スキャンチェーンからテスト応答をアンロードするときに被テスト回路のスキャンチェーンにクロック信号を適用する工程をさらに含む。さらに、キャプチャウィンドウ中にどのスキャンチェーンまたはスキャンチェーンのセグメントがクロック信号を抑制させるかを制御する制御信号を受信できる。制御信号は解凍された複数の追加テストパターンに対するテスト応答を捕獲するとき再利用できる。スキャンチェーンにテストパターンをロードしているとき、次のテストパターンのための制御信号もロードできる。
【００１６】
本明細書に開示する別の例示的な実施形態では、コンピュータにある方法を実施させるコンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体を開示する。ある実施態様では、方法は、被テスト回路に適用するテストパターンをシミュレートすることによってシミュレートされたテスト応答を生成する工程と、シミュレートされたテスト応答から未知状態を捕獲する被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、クロック・イネーブル回路に、キャプチャウィンドウ中の特定した１つまたは複数のスキャンチェーンで捕獲クロックを抑制させるための制御信号を生成する工程と、制御信号を１つまたは複数のコンピュータ可読媒体に記憶する工程とを含む。
【００１７】
本明細書では、リセット・イネーブル回路を含む集積回路の実施形態も開示する。たとえば、いくつかの実施形態では、集積回路は、集積回路内のスキャンチェーンのデータ入力部に連結されているデコンプレッサと、制御信号を生成するよう構成されているコントローラと、コントローラに連結されている入力部およびスキャンチェーンのスキャンセルのリセット入力に連結されている出力部を有するリセット・イネーブル回路とを含む。リセット・イネーブル回路は、少なくとも部分的にはコントローラからの制御信号に基づいて、リセット・イネーブル回路の出力のうち１つまたは複数の出力部でリセット信号を選択的に生成するよう構成できる。集積回路内のスキャンセルは、リセット入力部にリセット信号を適用するとき、０または１にリセットされるよう構成できる。リセット・イネーブル回路の入力部はリセット・イネーブル回路の第１入力部にすることができ、リセット・イネーブル回路は、ソースリセット信号を受信するよう構成されている第２入力部をさらに含むことができる。具体的な実施態様では、リセット・イネーブル回路はリセット・イネーブル回路の各出力部を制御するための個別のリセット・イネーブラー回路を含む。その上、いくつかの実施態様では、リセット・イネーブル回路の各出力を、集積回路の１つまたは複数のそれぞれのスキャンチェーン内のスキャンセルのリセット入力部に連結できる。スキャンセルのリセット入力部はスキャンセルの非同期制御ピンを含むことができる。集積回路は、集積回路内のスキャンチェーンのシフトクロック入力部に連結されている出力部を有するシフトクロック・イネーブル回路をさらに含むことができる。これらの実施形態のシフトクロック・イネーブル回路は、シフトクロック・イネーブル回路の出力のうちの１つまたは複数の出力でシフトクロック信号を選択的に生成するよう構成できる。シフトクロック・イネーブル回路はコントローラに連結されている入力部をさらに含むことができ、選択的に生成されるシフトクロック信号は少なくとも部分的にコントローラからの制御信号に基づくことができる。さらに、シフトクロック・イネーブル回路は、シフトクロック・イネーブル回路の各出力部を制御するための個別のシフトクロック・イネーブラー回路を含むことができる。集積回路は、スキャンセルによって形成されるスキャンチェーンに連結するよう構成されている出力部を有するテスト刺激セレクタも含むことができる。テスト刺激セレクタは、オリジナルテストパターン値または定数値のいずれかを、テスト刺激セレクタの出力部毎に選択的に出力するよう構成できる。ある実施態様では、集積回路内のコントローラは、外部テスタ、集積回路上のメモリ、または集積回路上のテスト生成器のうちの１つから制御データをロードするよう構成されているプログラム可能コントローラである。コントローラは制御データをロードして出力する１つまたは複数のシフトレジスタを含むことができる。さらに、１つまたは複数のシフトレジスタは多段レジスタ・パイプラインを形成する複数のシフトレジスタを含むことができる。１つまたは複数のシフトレジスタに１つまたは複数のシャドウレジスタを連結できる。コントローラは、１つまたは複数のシフトレジスタのうちの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークをさらに含むことができる。その上さらに、コントローラはＸＯＲまたはＸＮＯＲネットワークに連結されているバイアス回路を含むことができる。バイアス回路はＸＯＲまたはＸＮＯＲネットワークの１つまたは複数の出力を、バイアスされる各出力毎に個別のバイナリ値をより出しやすいようにバイアスするよう構成できる。
【００１８】
テスト中に回路にリセット信号を適用する例示的な実施形態も本明細書で開示する。開示するある実施形態では、テストパターンに対するテスト応答（例、デコンプレッサが解凍するテストパターン）を被テスト回路のスキャンチェーンで捕獲する。テストパターンに対するテスト応答を捕獲した後、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントにリセット信号を適用する。リセット信号を適用した後、スキャンチェーンの内容をアンロードする。リセット信号が適用される１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントは、リセット信号が適用されなければ未知の値を捕獲したはずの１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントを含むことができる。リセット信号を適用することによって、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントに捕獲される値を１つの定数値（例、１または０）にすることができる。どのスキャンチェーンまたはスキャンチェーンのセグメントにリセット信号を適用させるかを制御する制御信号を受信できる。これらの制御信号は、複数の追加テストパターンに対するテスト応答に再利用できる。さらに、テストパターンがスキャンチェーンにロードされているときに、次のテストパターンのための制御信号をロードできる。
【００１９】
本明細書に開示する別の例示的な実施形態では、コンピュータにある方法を実施させるコンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体を開示する。ある実施態様では、方法は、被テスト回路に適応されるテストパターンをシミュレートすることによってシミュレートされたテスト応答を生成する工程と、シミュレートされたテスト応答から未知状態を捕獲する被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、リセット・イネーブル回路に、特定した１つまたは複数のスキャンチェーンでリセット信号を生成させるための制御信号を生成する工程と、制御信号を１つまたは複数のコンピュータ可読媒体に記憶する工程とを含む。
【００２０】
本明細書に開示する様々な実施形態には、テストパターン生成方法がある。これらの方法は、たとえば、コンピュータにある方法を実施させるためのコンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体に実装できる。いくつかの実施形態では、オリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数を判断する。この数は、典型的には、回路設計上利用できるスキャンチェーンの数より少ない。対象故障リストから故障を選択する。選択した故障のテストキューブが生成される。テストキューブは多数の指定スキャンチェーン内に指定ビットを含むことができる。テストキューブ内の指定スキャンチェーンの数がオリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数より少ないか否かの判定を行う。テストキューブ内の指定スキャンチェーンの数がオリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数を超えていない場合、そのテストキューブを記憶する。ある実施態様では、故障が第１故障であり、テストキューブ内の指定スキャンチェーンの数がオリジナルテスト刺激によって駆動されるスキャンチェーンの数を超えている場合、そのテストキューブは拒絶される。それから、対象故障リストからの第２故障について、選択、生成、判定および記憶する動作を繰り返すことができる。いくつかの実施態様では、故障は第１故障であり、第２故障は対象故障リストから選択される。第１故障のテストキューブは、第２故障を検出するための１つまたは複数の追加の指定ビットを含むよう展開できる。１つまたは複数の追加の指定ビットにより、展開されたテストキューブ内の指定スキャンチェーンの数がオリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数を超えるか否かの判定を行うことができる。展開されたテストキューブ内の指定スキャンチェーンの数がオリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数を超えていない場合、展開されたテストキューブを記憶できる。展開されたテストキューブ内の指定スキャンチェーンの数がオリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数を超える場合、その展開されたテストキューブを拒絶でき、対象故障リストからの第３故障について選択、展開、判定および記憶する動作を繰り返す。いくつかの実施態様では、オリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数を判定するために、テスト刺激セレクタのコントローラのエンコード能力を判定する。さらに、オリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数は、テスト刺激セレクタによって個別に制御できるスキャンチェーンの最大数に基づかせることができる。ある実施態様では、オリジナルテスト刺激ソースは、外部テスタが提供する圧縮テストパターンを解凍するよう構成されているデコンプレッサである。いくつかの実施態様では、テスト刺激セレクタの制御信号はテストキューブに基づいて生成できる。これらの制御信号は、テスト中にテストキューブを用いたテストパターンをロードするときに、テスト刺激セレクタに定数値を不指定スキャンチェーンに適用させることができる。
【００２１】
別の例示的なテストパターン生成方法では、故障の影響の観測に使用可能なスキャンチェーンの数を判定する。この数は典型的には回路設計において利用できるスキャンチェーンの数より少ない。対象故障リストからある故障を選択する。選択した故障のテストキューブを生成する。そのテストキューブから故障の影響の観測に使用したスキャンチェーンの数を判定する。テストキューブから故障の影響の観測に使用したスキャンチェーンの数が、故障の影響の観測に使用可能なスキャンチェーンの数より少ないか否かの評価を行う。テストキューブから故障の影響の観測に使用したスキャンチェーンの数が故障の影響の観測に使用可能なスキャンチェーンの数より少ない場合、そのテストキューブを記憶する。ある実施態様では、故障が第１故障であり、テストキューブから故障の影響の観測に使用したスキャンチェーンの数が故障の影響の観測に使用可能なスキャンチェーンの数を超えている場合、そのテストキューブを拒絶する。対象故障リストからの第２故障について、選択、生成、判定、評価および記憶する動作を行える。別の実施態様では、対象故障リストからの故障は対象故障リストからの第１故障であり、対象故障リストからの第２故障を選択する。第１故障のテストキューブは第２故障を検出するための１つまたは複数の追加の指定ビットを含むよう展開する。１つまたは複数の追加の指定ビットにより、展開されたテストキューブから故障の影響の観測に使用したスキャンチェーンの数が故障の影響の観測に使用可能なスキャンチェーンの数を超えるか否かの判定を行う。テストキューブから故障の影響の観測に使用したスキャンチェーンの数が故障の影響の観測に使用可能なスキャンチェーンの数より少ない場合、展開されたテストキューブを記憶する。テストキューブから故障の影響の観測に使用したスキャンチェーンの数が故障の影響の観測に使用可能なスキャンチェーンの数を超える場合、その展開されたテストキューブを拒絶できる。対象故障リストからの第３故障について、選択、展開、判定および記憶する動作を繰り返すことができる。ある実施態様では、故障の影響の観測に使用可能なスキャンチェーンの数を判定するために、スキャン・イネーブル回路のコントローラ、クロック・イネーブル回路のコントローラ、リセット・イネーブル回路のコントローラ、またはシフトクロック・イネーブル回路のコントローラのエンコード能力を判定できる。テストキューブから故障の影響の観測に使用したスキャンチェーンの数は、被テスト回路へのテストキューブの適用をシミュレートすることによって判定できる。ある実施態様では、オリジナルテスト刺激ソースは、外部テスタにより提供される圧縮テストパターンを解凍するよう構成されているデコンプレッサである。いくつかの実施態様では、スキャン・イネーブル回路の制御信号はテストキューブに基づいて生成できる。これらの制御信号は、テスト中にテストキューブを用いたテストパターンを適用したときに、テストキューブから故障の影響が観測されないスキャンチェーンからのスキャン・イネーブル信号をスキャン・イネーブル回路に抑制させることができる。別の実施態様では、クロック・イネーブル回路の制御信号をテストキューブに基づいて生成できる。これらの制御信号は、テスト中にテストキューブを用いたテストパターンを適用したとき、テストキューブから故障の影響が観測されないスキャンチェーンからのクロック信号をクロック・イネーブル回路に抑制させることができる。さらに別の実施態様では、テストキューブに基づいてリセット・イネーブル回路の制御信号を生成できる。これらの制御信号は、テスト中にテストキューブを用いたテストパターンに対するテスト応答が捕獲された後、テストキューブから故障の影響が観測されないスキャンチェーンにリセット信号をリセット・イネーブル回路に適用させることができる。別の実施態様では、テストキューブに基づいてシフトクロック・イネーブル回路の制御信号を生成できる。これらの制御信号は、テスト中にテストキューブを用いたテストパターンに対するテスト応答が捕獲された後、テストキューブから故障の影響が観測されないスキャンチェーンからシフトクロック信号をシフトクロック・イネーブル回路に抑制させることができる。ある実施態様では、オリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数も判定する。これらの実施態様では、オリジナルテスト刺激ソースによって駆動されるスキャンチェーンの数は、スキャン・イネーブル回路、クロック・イネーブル回路、リセット・イネーブル回路、またはシフトクロック・イネーブル回路によって独立して制御できるスキャンチェーンの最大数に基づく。
【００２２】
開示する実施形態のいずれも、シミュレーション環境など、多様な環境で実施できる。さらに、開示する方法のいずれも、コンピュータにいずれかの方法を実施させるコンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体上に実装できる。コンピュータ環境において実行される開示する方法のいずれも、単一のコンピュータによって、またはネットワークを介して実施できる。また、開示するいずれかの方法で生成するテストパターン、テストパターン値、または制御データ（または何か他の最終結果もしくは中間結果）を記憶するコンピュータ可読媒体も開示する。加えて、開示する装置のいずれも、適切な電子設計自動化（「ＥＤＡ」）ソフトウェアツールによって生成し、設計データとして１つまたは複数のコンピュータ可読媒体に記憶できる。たとえば、開示するテスティング環境（アーキテクチャ）のいずれも、ＨＤＬファイル（Ｖｅｒｉｌｏｇ、ＶＨＤＬ、またはレジスタ転送レベルのファイルなど）、ゲートレベルのネットリスト、またはその他同様なＥＤＡ設計ファイル（例、ＧＤＳＩＩファイルまたはＯａｓｉｓファイル）の形式で記述または表現できる。
【００２３】
以上およびその他の本発明の目的、特徴および利点は以下の詳細な説明からより明らかになり、添付の図面を参照しながらみていく。
【図面の簡単な説明】
【００２４】
【図１】開示する技術の実施形態を使用できる例示的なテスティング環境を図示する模式的なブロック図である。
【図２（ａ）】例示的なテスト回路において主対象の遷移故障について指定ビットを有するスキャンチェーンの数の分布を示すグラフである。
【図２（ｂ）】例示的なテスト回路において主対象の遷移故障について指定ビットを有するスキャンチェーンの数の分布を示すグラフである。
【図２（ｃ）】例示的なテスト回路において主対象の遷移故障について指定ビットを有するスキャンチェーンの数の分布を示すグラフである。
【図２（ｄ）】例示的なテスト回路において主対象の遷移故障について指定ビットを有するスキャンチェーンの数の分布を示すグラフである。
【図３（ａ）】例示的なテスト回路の動的コンパクト化後の、指定ビットを有するスキャンチェーンの分布を示すグラフである。
【図３（ｂ）】例示的なテスト回路の動的コンパクト化後の、指定ビットを有するスキャンチェーンの分布を示すグラフである。
【図３（ｃ）】例示的なテスト回路の動的コンパクト化後の、指定ビットを有するスキャンチェーンの分布を示すグラフである。
【図３（ｄ）】例示的なテスト回路の動的コンパクト化後の、指定ビットを有するスキャンチェーンの分布を示すグラフである。
【図４】例示的なテスト回路に制約のないテスト生成スキームと比較したときの、指定ビットを有するスキャンチェーンを限られた数しかもたないテスト生成スキームのパターンカウントの増加を示すグラフである。
【図５（ａ）】例示的なテスト回路について追加で検出された故障を観測するスキャンチェーンの数を示すグラフである。
【図５（ｂ）】例示的なテスト回路について追加で検出された故障を観測するスキャンチェーンの数を示すグラフである。
【図５（ｃ）】例示的なテスト回路について追加で検出された故障を観測するスキャンチェーンの数を示すグラフである。
【図５（ｄ）】例示的なテスト回路について追加で検出された故障を観測するスキャンチェーンの数を示すグラフである。
【図６】プログラム可能なテスト刺激セレクタを含む集積回路の第１例示的な実施形態の模式的なブロック図である。
【図７】プログラム可能テスト刺激セレクタを含む集積回路の第２の例示的な実施形態の模式的なブロック図である。
【図８】図６または図７の実施形態で使用してもよい例示的なセレクタ回路の模式的なブロック図である。
【図９】図６または図７の実施形態で使用してもよい例示的なセレクタ回路の模式的なブロック図である。
【図１０】図６または図７の実施形態で使用できる例示的なプログラム可能コントローラの模式的なブロック図である。
【図１１】図１０のコントローラで使用してもよい例示的なシフトレジスタファイルの模式的なブロック図である。
【図１２】図１１のシフトレジスタファイルの例示的なクロッキング回路の模式的なブロック図である。
【図１３】図１０のコントローラで使用してもよいシャドウレジスタを使う例示的なシフトレジスタファイルの模式的なブロック図である。
【図１４】図１０のコントローラで使用できる例示的なバイアス回路の模式的なブロック図である。
【図１５】図１０のコントローラで使用できる例示的な再構成可能なバイアス回路の模式的なブロック図である。
【図１６】図１０のコントローラで使用できる別の例示的な再構成可能なバイアス回路の模式的なブロック図である。
【図１７】バイアス回路を備えたテスト刺激コントローラを有する例示的な回路の模式的なブロック図である。
【図１８】プログラム可能スキャン・イネーブル回路を含む集積回路の第１の例示的な実施形態の模式的なブロック図である。
【図１９】図１８の集積回路で使用できる例示的なプログラム可能スキャン・イネーブル回路の模式的なブロック図である。
【図２０】図１９の実施形態で使用できるスキャン・イネーブル回路の模式的なブロック図である。
【図２１】プログラム可能スキャン・イネーブル回路を含む集積回路の第２の例示的な実施形態の模式的なブロック図である。この実施形態はさらにプログラム可能テスト刺激セレクタを含む。
【図２２】プログラム可能スキャン・イネーブル回路とバイアス回路を備えたプログラム可能テスト刺激セレクタとを有する例示的な回路の模式的なブロック図である。
【図２３】バイアス回路を備えたプログラム可能スキャン・イネーブル回路を有する例示的な回路の模式的なブロック図である。
【図２４】プログラム可能クロック・イネーブル回路を含む集積回路の第１の例示的な実施形態の模式的なブロック図である。
【図２５】図２４の集積回路で使用できる例示的なプログラム可能クロック・イネーブル回路の模式的なブロック図である。
【図２６】図２５の実施形態で使用できる、クロック・イネーブル回路の出力をスキャンチェーンに連結するための例示的な構成を示す模式的なブロック図である。
【図２７】図２５の実施形態で使用できる例示的なクロック・イネーブル回路の模式的なブロック図である。
【図２８】図２５の実施形態で使用できる例示的なクロック・イネーブル回路の模式的なブロック図である。
【図２９】プログラム可能クロック・イネーブル回路とプログラム可能テスト刺激セレクタとを有する例示的な回路の模式的なブロック図である。
【図３０】プログラム可能クロック・イネーブル回路とバイアス回路を備えたプログラム可能テスト刺激セレクタとを有する例示的な回路の模式的なブロック図である。
【図３１】バイアス回路を備えたプログラム可能クロック・イネーブル回路を有する例示的な回路の模式的なブロック図である。
【図３２】プログラム可能リセット／シフトクロック回路を含む集積回路の第１の例示的な実施形態の模式的なブロック図である。
【図３３】図３２の集積回路で使用できる例示的なシフトクロック・イネーブル回路の模式的なブロック図である。
【図３４】図３２の集積回路で使用できる例示的なリセットクロック・イネーブル回路の模式的なブロック図である。
【図３５】プログラム可能クロック・イネーブル回路と、プログラム可能テスト刺激セレクタと、プログラム可能シフト／リセットクロック・イネーブル回路とを有する例示的な回路の模式的なブロック図である。
【図３６】バイアス回路を備えたプログラム可能テスト刺激セレクタを有するとともに、開示する技術の実施形態を分析するために用いられる例示的な回路の模式的なブロック図である。
【図３７】開示する実施形態のいずれかを実施または実行するために使用できる第１分散型コンピューティングネットワークの模式的なブロック図である。
【図３８】開示する実施形態のいずれかを実施または実行するために使用できる第２分散型コンピューティングネットワークの模式的なブロック図である。
【図３９】分散型コンピュータネットワーク（図３７および図３８のネットワークなど）を使用して開示する実施形態のいずれかを実施または実装する例示的な方法を示すフローチャートである。
【図４０】集積回路のスキャンチェーンにロードすべきテストパターン値を選択的に変更する例示的な方法のフローチャートである。
【図４１】テスト中にテスト応答が捕獲されたときに、スキャン・イネーブル信号を選択的に適用する例示的な方法のフローチャートである。
【図４２】テスト中にテスト応答が捕獲されたときに、クロック信号を選択的に抑制する例示的な方法のフローチャートである。
【図４３】テスト中にテスト応答が捕獲された後に、スキャンチェーンにリセット信号を選択的に適用する例示的な方法のフローチャートである。
【図４４】テスト刺激ソースによって駆動されるスキャンチェーンの数が制限されるテストキューブを生成する例示的なテストパターン生成方法のフローチャートである。
【図４５】テスト中に故障の影響を観測するスキャンチェーンの数が制限されるテストキューブを生成する例示的なテストパターン生成方法のフローチャートである。
【発明を実施するための形態】
【００２５】
Ｉ．一般的な考慮事項
開示する方法、装置およびシステムはいかなる点においても限定と解釈してはならない。そうではなく、本開示は、単独および互いの様々な組合わせおよびサブコンビネーションの状態にある開示する様々な方法、装置、システムおよびその均等物の新規かつ非自明の特徴および態様のすべてを対象とする。本開示は、何か特定の態様もしくは特徴、またはその組み合わせに限定されるものではなく、また開示する方法、装置およびシステムは何か１つまたは複数の利点が存在し、または問題が解決されることを必要とするわけでもない。
【００２６】
提示の便宜上、開示する方法、装置およびシステムのいくつかの動作を特定の連続的な順序で記述しているが、この記述方式は、当然のことながら以下に明記する特有の表現で特定の順序で行うことが必要とされない限り、順序の変更を包含する。たとえば、順次記述されている動作は、ある場合には順序を変更してまたは同時に行ってもよい。また、簡潔にするために、添付の図面には、開示する方法、装置およびシステムを他の方法、装置およびシステムとともに使用できる様々な方法を示していないことがある。さらに、本説明は開示する方法を記述するために「評価する（ｅｖａｌｕａｔｅ）」および「判定する（ｄｅｔｅｒｍｉｎｅ）」のような用語を使用することがある。これらの用語は実施する実際の動作の高次の抽象表現である。これらの用語に対応する実際の動作はその具体的な実施態様に応じて変わり、当業者には容易に認識できる。
【００２７】
開示する装置は、スキャンベースまたは一部スキャンベースの多様な回路（例、特定用途向け集積回路（「ＡＳＩＣ」）（混合信号ＡＳＩＣを含む）、システムオンチップ（ＳｏＣ）、またはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）などのプログラマブル・ロジック・デバイス（ＰＬＤ））に実装できる。このような回路は、携帯電子機器（例、携帯電話、メディアプレーヤー、および同様なもの）からより大規模なアイテム（例、コンピュータ、制御システム、航空機、自動車、工場および同様なもの）まで、多種多様な電子デバイスで使用できる。開示するテスティング装置の実施形態を組み込んだ１つまたは複数の回路を含むこのようなアイテムのすべてが本開示の範囲内にあると考えられる。
【００２８】
開示する装置はいずれも、１つまたは複数のコンピュータ可読媒体上に記憶される設計データまたは設計情報として記述または表現できる。たとえば、開示するテスティング・アーキテクチャのいずれも、ＨＤＬファイル（Ｖｅｒｉｌｏｇ、ＶＨＤＬ、またはレジスタ転送レベルのファイル）、ゲートレベルのネットリスト、またはその他同様なＥＤＡ設計ファイル（例、ＧＤＳＩＩファイルまたはＯａｓｉｓファイル）に記述または表現できる。当該設計データまたは設計情報は、コンピュータ可読媒体（例、１つもしくは複数のＣＤ、揮発性メモリコンポーネント（ＤＲＡＭまたはＳＲＡＭなど）、または不揮発性メモリコンポーネント（ハードドライブなど）などのコンピュータ可読媒体）上に記憶されるコンピュータ実行可能命令を含むソフトウェアを使用して、全体または一部を作成できる。また、開示する技術のいずれも、コンピュータ可読媒体上に記憶されるコンピュータ実行可能命令を含むソフトウェアによって全体または部分的に実行できる。そのようなソフトウェアは、たとえば、適切な電子設計自動化（「ＥＤＡ」）ソフトウェア・ツール（例、自動テストパターン生成（「ＡＴＰＧ」）ツール）を含むことができる。
【００２９】
当該ソフトウェアは単一のコンピュータ上またはネットワーク化されたコンピュータ上（たとえば、インターネット、広域（ワイド・エリア）ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバー・ネットワーク、またはその他同様なネットワークを介して）で実行できる。分かりやすくするために、ソフトウェアベースの実施態様のある選択された態様だけを記述する。当技術分野でよく知られている他の明細は省略する。たとえば、当然のことながら開示する技術は、ある特定のコンピュータ言語、プログラム、またはコンピュータに限定されるものではない。たとえば、開示する技術は、商業的に利用できる言語またはその他適した言語で書き込まれたプログラムを実行する商業的に利用できるどのコンピュータを使用しても実行できる。あるいは、開示する方法のいずれも、ハードウェア（例、ＡＳＩＣ、ＰＬＤまたはＳｏＣ）において実行できる（部分的または全体的に）。
【００３０】
開示する方法のいずれかから生成されるデータ（例、中間テストパターンもしくは最終テストパターン、テストパターン値、または制御データ）は、多種多様なデータ構造またはフォーマットを使って、コンピュータ可読媒体（例、１つもしくは複数のＣＤ、揮発性メモリコンポーネント（ＤＲＡＭまたはＳＲＡＭなど）、または不揮発性メモリコンポーネント（ハードドライブなど）などの有形のコンピュータ可読媒体）上に記憶できる。当該データは、ローカルコンピュータを使ってまたはネットワーク上で（例、サーバー・コンピュータによって）作成、更新または記憶できる。
【００３１】
開示する方法のいずれも、コンピュータ・シミュレーションまたはその他ＥＤＡ環境（例、テストパターンを回路の表現形に適用するようにシミュレートするシミュレーション環境）でも実施できる。たとえば、開示する方法は、被テスト回路を表す回路設計情報と、関連するテストハードウェア（たとえば、ネットリスト、ＨＤＬファイル（ＶｅｒｉｌｏｇまたはＶＨＤＬファイルなど）、ＲＴＬファイル、ＧＤＳＩＩファイル、Ｏａｓｉｓファイル、または同様な他のもの）を使って実施し、コンピュータ可読媒体に記憶できる。しかし、提示のために、本開示は被テスト回路（被テスト回路の様々なコンポーネントを含む）および関連するテスティングハードウェア（ハードウェアの様々なコンポーネントを含む）をその物理的な対応物（たとえば、スキャンチェーン、スキャンセル、シフトレジスタ、シャドウレジスタおよびその他同様な用語）によって言及することがある。しかし、当然のことながら詳細な説明および特許請求の範囲における当該言及はいずれも、物理的なコンポーネントだけではなく、シミュレーション、自動テストパターン生成、またはその他同様なＥＤＡ環境で使用されるようなコンポーネントの表現形も含む。
【００３２】
本開示で使用する単数形の「ａ」、「ａｎ」および「ｔｈｅ」は、本文に別段の記載が明示されていない限り、複数形を含む。さらに、「含む（ｉｎｃｌｕｄｅｓ）」という用語は「備えている（ｃｏｍｐｒｉｓｅｓ）」を意味する。また、本文に別段の記載がない限り、「連結される（ｃｏｕｐｌｅｄ）」という用語は電気的または電磁的に接続またはリンクされていることを意味し、直接的な接続または直接的なリンクおよび回路の意図する動作に影響しない１つまたは複数の中間要素を介した間接的な接続または間接的なリンクの双方を含む。
【００３３】
また、本明細書で使用する「テスト刺激ソース」という用語は、直接的または間接的にテスト刺激をスキャンチェーンおよび一次入力に供給するテスト刺激生成器をいう。テスト刺激生成器は様々な形態で実装できる。そのような形態には外部テスト装置、重み付けまたは重みなしの擬似ランダムパターン生成器（「ＰＲＰＧ」）、フェーズシフターおよび／またはバイアス回路を含むＰＲＰＧ、デコンプレッサ、定数論理値０を生成するソースならびに定数論理値１を生成するソースが含まれるが、これだけに限定されるわけではない。
【００３４】
「デコンプレッサ」という用語は、外部テスト装置から決定論的なテスト刺激などの圧縮テスト刺激を解凍して、チップ上の被テスト回路に渡す機能ユニットをいう。デコンプレッサは様々な形態で実施できる。当該形態には、ブロードキャスト回路、選択可能ブロードキャスト回路、バイアス回路付きもしくはバイアス回路なしの組合せ回路（ＭＵＸベースもしくはＸＯＲベースの組合せ回路を含むが、それだけに限定されない）、フェーズシフターおよび／もしくはバイアス論理付きもしくはフェーズシフターおよび／もしくはバイアス論理なしのフィードバック・シフトレジスタ、ならびに／または再シードを用いるフィードバック・シフトレジスタを含むことができるが、それだけに限定されるものではない。
【００３５】
「テスト刺激セレクタ」という用語は、スキャンチェーン入力を与える少なくとも１つのテスト刺激ソース（例、複数の当該ソースから）を選択する機能ユニットをいう。
「プログラム可能テスト刺激セレクタ」という用語は、たとえば、プログラム可能コントローラとテスト刺激セレクタとの２つのコンポーネントを含むことのできる機能的ユニットをいう。プログラム可能コントローラを、たとえば、外部テスト装置または組込みテスト生成器に連結して、外部テスタまたは組込みテスト生成器から制御データを受信するよう構成できる。
【００３６】
「スキャンチェーン・セグメント」という用語は、連続してつながっているスキャンチェーン内の一群のスキャンセルをいう。
「スキャン・イネーブラー」または「スキャン・イネーブル回路」という用語は、キャプチャウィンドウ中にスキャンチェーンをシフトモードまたは機能的キャプチャモード（「通常回路」モードということもある）で構成する機能ユニットをいう。
【００３７】
「プログラム可能スキャン・イネーブラー」または「プログラム可能スキャン・イネーブル回路」という用語は、たとえば、プログラム可能コントローラとスキャン・イネーブル回路との２つのコンポーネントを含むことのできる機能ユニットをいう。プログラム可能コントローラは外部テスト装置または組込みテスト生成器に連結して、外部テスタまたは組込みテスト生成器から制御データを受信するよう構成できる。
【００３８】
「クロック・イネーブラー」または「クロック・イネーブル回路」とは、キャプチャウィンドウでシステム応答を捕獲するために１組の状態素子をイネーブル／ディスエーブルする機能ユニットをいう。
「プログラム可能クロック・イネーブラー」または「プログラム可能クロック・イネーブル回路」という用語は、たとえば、プログラム可能コントローラとクロック・イネーブル回路との２つのコンポーネントを含むことのできる機能ユニットをいう。プログラム可能コントローラは外部テスト装置または組込みテスト生成器に連結して、外部テスタまたは組込みテスト生成器から制御データを受信するよう構成できる。
【００３９】
「シフトクロック・イネーブラー」または「シフトクロック・イネーブル回路」という用語は、スキャンシフト中にテストデータをロード／アンロードするために１群のスキャンチェーンをイネーブル／ディスエーブルする機能ユニットをいう。
「リセット・イネーブラー」または「リセット・イネーブル回路」という用語は、スキャンチェーン内のスキャンセルをリセットするリセットクロックまたはリセット信号をイネーブル／ディスエーブルする機能ユニットをいう。
【００４０】
「プログラム可能リセット／シフト・イネーブラー」という用語は、たとえば、プログラム可能コントローラとシフトクロック・イネーブル回路とリセット・イネーブル回路との３つのコンポーネントを含むことのできる機能ユニットをいう。プログラム可能コントローラは外部テスト装置または組込みテスト生成器に連結して、外部テスタまたは組込みテスト生成器から制御データを受信するよう構成できる。
【００４１】
これらの特定の用語の使用は、当業者には理解される追加の特徴または用語が使用される状況により示される追加の特徴を包含してもよいため、限定と解釈するものではないことに留意されたい。
ＩＩ．  低消費電力テスティング一般
本明細書に開示する技術は、低消費電力テスティングのための方法および装置に関係する。開示する技術はembedded deterministic test（「ＥＤＴ」）環境において論じられることがあるが、当然のことながら本明細書に説明する原理はこの環境に限定されるものではない。たとえば、本明細書で説明する低消費電力テスティング技術および装置は、指定ビットを有するテストキューブのエンコードに関わる他の圧縮スキーム、または圧縮ハードウェアを使用しないテスティングスキームとともに使用することができる。
【００４２】
図１は、圧縮テスト刺激１１２を被テスト回路１１０に組み込まれたデコンプレッサ１１８に渡す例示的なテスティング環境１００を示す。図示する実施形態は、被テスト回路１１０の外部の自動テスト装置（「ＡＴＥ」）１１４によって圧縮テスト刺激が供給される典型的なＥＤＴ環境を示す。テスト刺激は解凍されて、テストパターンとしてスキャンチェーン１２０に適用される。スキャンチェーンからの出力をコンパクタ１２２でコンパクト化して、圧縮テスト応答１２４としてＡＴＥ１１４に渡して分析する。開示する技術とともに使用するのに適したＥＤＴデコンプレッサ１１８の実施例および例示的なＥＤＴ環境は、たとえば、上記特許文献１〜６に記述されており、このすべてをこれにより引用により本明細書に組み込む。
【００４３】
決定論的なテストベクトルは、典型的には指定されるビットのごく小さな割合しかもたない。残りの位置は０および１で無作為に埋めることができるか、またはたいていはテストカバレッジを損なうことなく、他の方法で埋めることができる。また、実質的な量の実験証拠から、非常に多くの場合、指定ビットの位置はごく少数のスキャンチェーンに限定されることが分かっている。この現象を例証するために、ＥＤＴ技術を用いた４つの工業用設計から収集したデータを検討する。これらの例示的な設計の特徴を表１に報告する。図２（ａ）〜図２（ｄ）はグラフ２００，２０２，２０４，２０６であり、回路Ｃ１〜回路Ｃ４において主対象とするすべての遷移故障に関し、指定ビットを有するスキャンチェーンの数の分布を示す。指定ビットを有するスキャンチェーンの数は動的コンパクト化の前に計数していることに留意されたい。見て分かるように、テストキューブの過半はスキャンチェーンの２０％未満の指定ビットを特徴とし、どのテストキューブもスキャンチェーンの５０％を超える指定ビットを有さない。
【００４４】
【表１】
0005537158.tif 000002
【００４５】
動的コンパクト化は、典型的には、テスト生成中のパターンカウントを減らすために用いる。主対象とする故障のために生成されたテストキューブから始めて、動的コンパクト化は適切な値を未指定の位置に割り当てることによってこのキューブを追加の故障を網羅するよう展開する。その結果、指定ビットを有するスキャンチェーンの数は、動的コンパクト化が進むにつれて次第に増加する。指定ビットがなく、かつテスト適用中のトグル発生を減らすために用いることのできるスキャンチェーンを採用するためには、動的コンパクト化中のパターンカウントに対する潜在的な影響を最小化しながら、そのようなスキャンチェーンの数を最大化するのが望ましい。動的コンパクト化によるテスト生成中のパターンカウントと指定ビットを有するスキャンチェーンの数との相関を分析するために、指定ビットを有するスキャンチェーンの数を制限できる。たとえば、一つの例示的な実施例によると、テストキューブに指定ビットを有するスキャンチェーンが指定量（例、２０％）未満しかない場合にのみ動的コンパクト化を行うことができる。さらに、指定ビットをもたないスキャンチェーンのなかから、スキャンチェーンの総数のある指定量（例、５０％）を無作為に選ぶことができ、それらのスキャンチェーン内のスキャンセルを定数値で埋めることができる。未指定ビットの残りについて、その論理値をデコンプレッサで判定できる。
【００４６】
回路Ｃ１〜回路Ｃ４について動的コンパクト化後に指定ビットを有するスキャンチェーンの分布を、図３（ａ）〜図３（ｄ）のグラフ３００，３０２，３０３，３０４に示す。見て分かるように、テストキューブの過半はスキャンチェーンの２０％未満に指定ビットをもつ。また、動的コンパクト化を指定ビットを有するスキャンチェーンの数が少ない（例、２０％）状況に限って行う例示的な技術を使用しても、パターンカウントに対する影響は極端なものではない。たとえば、図４のグラフ４００には、回路Ｃ１〜回路Ｃ４について、指定ビットを有するスキャンチェーンに関する限り制約のないテスト生成スキームと比べたときの、パターンカウントの増加を示している。グラフ４００の場合、実験プラットフォームとして従来のＥＤＴ環境（例、図１に示すようなもの）を使用した。また、新たなテスト生成技術による故障カバレッジの損失は報告されなかった。
【００４７】
残りのチェーンの「ドントケア」ビットを定数値に置換しながら、テストデータデコンプレッサから直接指定ビットを有するスキャンチェーンを与えることによって、上記観測結果を利用することができる。このようなアプローチは、以下のセクションに示すように、スキャンインシフト中の遷移数を大幅に減少させることができる。
テスト刺激の観点からスイッチング動作を減少させる以外にも、以前に適用されたテストパターンによって検出されなかった故障に関し故障影響を観測するために使用されるスキャンチェーン数を分析することもできる。回路Ｃ１〜回路Ｃ４について追加で検出された故障を観測するスキャンチェーンの数の分布を、図５（ａ）〜図５（ｄ）のグラフ５００，５０２，５０４，５０６に示す。これらの実施例で適用されたテストパターンはデコンプレッサで駆動されたスキャンチェーンの総数の５０％で生成されたが、残りのスキャンチェーンは定数０で駆動された。この実施例のすべてのスキャンチェーンは故障シミュレーション中の観測点として用いられた。見て分かるように、スキャンチェーンの過半は追加で検出された故障を観測しなかった。この観測結果を利用して、キャプチャ段階中に新たなデータ／異なるデータがスキャンセルに捕獲されないようにすることによって、スキャンシフト段階とテスティングのキャプチャ段階の両方についてのスイッチング動作を減少させることができる。可能な限り、テスト応答コンパクト化に対する未知の値の影響を減らすことも望ましい。これらの目的のうち１つまたは複数の目的を達成するための例示的な技術を以下のセクションで紹介する。以下に説明する技術はさらに、説明される技術を実施するための例示的なハードウェア・アーキテクチャも含む。ハードウェア・アーキテクチャのある代表的な実施態様を示しているが、説明する原理に基づいた他の様々な代替構成も可能である（例、実質的に同じ機能性を実現する代替ロジックまたはロジックの構成を使用して）。そのような代替構成およびその均等物はすべて本開示の範囲内にあると考えられる。
ＩＩＩ．低消費電力ロード操作
スキャン・アーキテクチャは典型的には単一のテスト刺激ソースを有する。そのため、以下に開示する実施形態はオリジナルテスト刺激ソースを１つしか含んでいない。しかし、説明する低消費電力技術は、複数のテスト刺激ソースを有する他のスキャンベースのアーキテクチャにも容易に適用できる。
【００４８】
Ａ．プログラム可能テスト刺激セレクタの例示的なアーキテクチャ
スキャンシフト中のスイッチング動作を減少させるために、それによって電力消費量を減少させるために、テスト刺激ソースとスキャンチェーン入力との間に１つまたは複数のプログラム可能セレクタを論理的に配置できる。図６は、テスト刺激ソース６１０（オリジナルの刺激ソースと、オリジナルの刺激ソースに連結されている重み付け回路と、論理０ソースと、論理１ソースとを含む）と、スキャンチェーン１２０ａ，１２２ｂ，１２２Ｎのスキャンチェーン入力１２２ａ，１２２ｂ，１２２Ｎとの間に配置されている一般的なプログラム可能セレクタ６５０を示す模式的なブロック図である。
【００４９】
例示的なプログラム可能セレクタ６５０は、１つまたは複数のテスト刺激セレクタ６５２と、１つまたは複数のプログラム可能コントローラ６６０とを含むことができる。一つのテスト刺激セレクタを、たとえば、２以上のスキャンチェーン入力に連結できる。さらに、プログラム可能セレクタ６５０は、たとえば、テストデータの複数のソースによって駆動できる。図示する実施形態では、たとえば、テスト刺激として、バイアス回路によってバイアスをかけたオリジナルテスト刺激、バイアス回路によってバイアスをかけないオリジナルテスト刺激、定数値０、または定数値１の４種類のテストデータが可能である。
【００５０】
例示的なプログラム可能セレクタ６５０を使用した例示的なテスト適用方法は、テスト刺激の制御データをプログラム可能コントローラにロードする工程と、オリジナルテスト刺激ソースからテスト刺激を提供する工程と、テスト刺激をスキャンチェーンにシフトする工程と、各スキャンシフトサイクルで、プログラム可能コントローラを用いてテスト刺激セレクタを通過するソースを判定する工程と、キャプチャクロックを適用する工程と、スキャンチェーンからテスト応答をアンロードする工程とを含む。スキャンシフト中に起こるスイッチング動作は、スキャンチェーンのロード中に連続するスキャンセルで発生するトグル発生の量を減らすことによって減少できる。このような減少は、次の動作のうちのいずれか１つまたは複数の動作を行うことによって達成できる。すなわち、定数０または１を１群のスキャンチェーンにロードすること、定数０または１を１つのスキャンチェーンの１つまたは複数のセグメントにロードすること、またはスキャンチェーンをオリジナルテスト刺激ソースで駆動するときに、連続するスキャンセル内で同じ論理値を受信する確率を高めるために重み付け回路を採用することである。
【００５１】
一つの例示的な形態のプログラム可能コントローラは、スキャンシフト操作中にテスト刺激ソースを選択する柔軟性を高めながら、ハードウェアのオーバーヘッド（諸経費）と各テストパターンの追加のテストデータ量とを減少させる。
図４０は、たとえば、プログラム可能テスト刺激セレクタを用いてテストパターン値を選択的に変更する一つの例示的な方法のフローチャートである。４０１０で、集積回路をテストするためのオリジナルテストパターン値をｍ個のパスで受信する。オリジナルテストパターン値は、たとえば、デコンプレッサから受信できる。４０１２で、ｎがｍより小さいとき、ｍ個のパスのうちの少なくともｎ個のパスのテストパターン値を選択的に変更して、ｎ個のパスのテストパターン値が連続する少なくとも２つの定数値になるようにする。４０１４で、テストパターン値をｍ個のスキャンチェーン入力パスに出力する。これらのテストパターン値は、ｍ個のスキャンチェーン入力パスのうちのｎ個で連続する少なくとも２つの定数値を含む。ある実施態様では、ｍ個の入力パスのうちのどれを変更するかを示す制御データを受信する。制御データは複数の追加テストパターンに再利用できる。出力されたテストパターン値は、集積回路内の１つまたは複数の故障を対象とするオリジナルテストパターンのすべての指定ビットを含むことができる。さらに、ある実施態様では、連続する少なくとも２つの定数値を生成するよう構成されている論理ゲートに制御信号を適用したことに応答して、４０１２でテストパターン値を変更できる。
１．例示的なテスト刺激セレクタ
例示的なテスト刺激セレクタは、同じ機能性または異なる機能性をもつ１群のセレクタを含むことができる。図７は、図６のプログラム可能テスト刺激セレクタ６５０として使用してもよく、かつそれぞれ１つまたは複数のスキャンチェーンに連結されている複数のセレクタを含むプログラム可能テスト刺激セレクタ７５０の模式的なブロック図である。たとえば、図７に示すように、セレクタは１つの所定のスキャンチェーンを駆動でき（図示されるセレクタ７５４がスキャンチェーン１２０Ｎを駆動するなど）、または２つ以上のスキャンチェーンの群を駆動することができる（図示するセレクタ７５２がスキャンチェーン１２０ａ，１２０ｂを駆動するなど）。
【００５２】
セレクタの例示的な形態を図８の模式的なブロック図に示しており、このセレクタは２つ以上の入力と１つの出力とを有する。図示するセレクタ８００は、たとえば、図７に示すセレクタ７５２，７５４のうちの１つとして使用できる。セレクタの入力はそれぞれ、複数のテスト刺激ソース８１０のなかから選択されたテスト刺激ソースによって駆動される。図８では、テスト刺激ソースは任意の数のテスト刺激ソースを含むことができ、テスト刺激ソース８１０ａからテスト刺激ソース８１０Ｎで表されている。この例のセレクタ８００への他の入力部をプログラム可能コントローラ８６０に連結し、テストソース８１０ａ〜８１０Ｎのうちのどれをセレクタ８００の出力に渡すかを制御するために使用する。
【００５３】
利用できるテストソースの種類に応じて、セレクタの実施態様はそのエリアのオーバーヘッドを減少させるように最適化できる。たとえば、図８では、マルチプレクサ８０２を使用してセレクタ８００を実行する。
テスト刺激選択回路に使用してもよい他の例示的な形態のセレクタを図９（ａ）〜図９（ｃ）に示す。具体的には、図９（ａ）〜図９（ｃ）は３つの例示的なセレクタ９００，９０２，９０４を示す。セレクタ９００はオリジナルの刺激ソース９１０に連結されて、ＡＮＤゲート９３０およびＯＲゲート９４０を使用して、オリジナルの刺激ソース９１０、論理０または論理１から出力されるいずれかの値を生成するようにプログラム可能コントローラ９２０によって制御される。セレクタ９０２はオリジナルの刺激ソース９１０に連結されて、ＯＲゲート９４２を使用してオリジナルの刺激ソース９１０または論理１から出力されるいずれかの値を生成するようにプログラム可能コントローラ９２２によって制御される。セレクタ９０４は、オリジナルの刺激ソース９１０に連結されて、ＡＮＤゲート９５２を使用してオリジナルの刺激ソース９１０または論理０から出力されるいずれかの値を生成するようにプログラム可能コントローラ９２４によって制御される。
【００５４】
図９（ａ）〜図９（ｃ）の実施形態を使用してスキャンチェーン入力にロードする値の選択に使用できるエンコードパターンを表２に記載する。
【００５５】
【表２】
0005537158.tif 000003
【００５６】
２．例示的なプログラム可能コントローラ
図６に示す例示的なアーキテクチャのプログラム可能コントローラ６６０は、たとえば、外部テスタ、組込みテスト生成器、または組込みＲＯＭから制御データを受信できる。一般に、コントローラ６６０は各スキャンシフトサイクル中にテスト刺激ソースを選択する信号の提供を担う。一つの例示的な実施形態によると、プログラム可能コントローラは次の２つの特性を示すことが望ましい。すなわち、利用できるセレクタ回路をそれぞれ独立して制御することと、テスト刺激ソースをサイクル毎に選択することである。他の実施形態では、プログラム可能コントローラはスキャンチェーン・セグメント毎、またはテストパターン毎にテスト刺激ソースを選択するよう構成されている。
【００５７】
プログラム可能コントローラ６６０の例示的な実施態様を、図１０に模式的なブロック図で示す。図示するコントローラ１０００は、シフトレジスタファイル１０１０と、ＸＯＲネットワーク１０２０と、オプションのバイアス回路１０３０とを含む。シフトレジスタファイル１０１０（２以上のシフトレジスタの構成を表している）は圧縮制御データを記憶する。圧縮制御データは、たとえば、外部テスタ、組込みテスト生成器、または組込みＲＯＭなどのソースから渡すことができる。そのデータは、ＸＯＲネットワーク１０２０によって解凍され、テスト刺激セレクタを駆動する前にバイアス回路１０３０を通過する。
【００５８】
図１１はシフトレジスタファイル１０１０の例示的な実施態様１１００を示す。図示されるシフトレジスタファイル１１００はＮ個のシフトレジスタ（この例では１１１０ａ〜１１１０Ｎの記号を付している）を含み、クロックRegister_Shift_Clock信号１１２０を採用して制御データをその状態素子（例、シフトレジスタのフリップフロップ）の各々にシフトする。図示していないが、レジスタファイル１１００のレジスタは互いに連鎖状に連結することもできるので、シフトクロックに応答して制御を順次レジスタファイルにシフトできる。あるいは、レジスタファイルの各レジスタはその専用入力からデータをロードできる。図示する実施形態では、各レジスタファイルは、スキャンシフト操作中にスキャンチェーン・セグメント毎に異なるテスト刺激ソースを選択する制御データを含む。
【００５９】
図１１に示すように、Ｎ個のシフトレジスタはＮ段のレジスタ・パイプラインを形成できる。パイプライン・クロック信号（Pipeline_Shift_Clock）１１３０はパイプライン・シフトクロック生成器１１３２によって生成される。この実施態様では、スキャンシフト操作中に最大Ｎ回までテストパターンを動的に変更させることが可能である。いくつかの実施態様では、１回のスキャンシフト操作にわたって各スキャンチェーンのテストソースを固定する。当該実施態様では、パイプライン・シフトクロック生成器を含む必要がないため、使用するシフトレジスタを１つだけにすることが可能である。
【００６０】
図１１の生成器１１３２に使用してもよいパイプライン・シフトクロック生成器の一つの例示的な実施態様１２００を図１２に示す。図示する例示的な形態の回路１２００は、Shift_Clock信号線１２１２に連結されているカウンタ１２１０を含む。カウンタ１２１０はクロック・イネーブル回路１２３０に連結されている出力部を有する。クロック・イネーブル回路１２３０はｋサイクル毎に１（または他の適切な値）を出力してパイプライン・レジスタファイルをシフトする。図示する形態のクロックゲーティング論理１２４０はグリッチフリー設計であり、ラッチ１２４２とＡＮＤゲート１２４４とを含む、またはラッチ１２４２とＡＮＤゲート１２４４とからなる。Shift_Clock信号線１２１２は外部テスタから直接制御できる。このような場合、パイプライン・シフトクロック生成器に関連するハードウェアのオーバーヘッドはない。ある場合には、Shift_Clock信号はRegister_Shift_Clock信号であってもよい。
【００６１】
テスト適用時間を短縮するために、また図１３に示すように、シフトレジスタファイル１３００はシャドウレジスタファイル１３１０とともに実装できる。たとえば、テストパターンｔｉの制御データは、テストパターンｔｉ−１をシャドウレジスタファイル１３１０を介してスキャンチェーンにロードするのと並列して、シフトレジスタファイル１３００にシフトできる。テストパターンｔｉをロードする前に、Update_Clock信号１３２２（Copy_Clock信号ともいう）を有効にすることによって、１クロック期間内に制御データをシフトレジスタファイル１３００からシャドウレジスタファイル１３１０に移動できる。次に、シャドウレジスタファイル１３１０の制御データを使って、テストパターンｔｉをロードしながらテスト刺激ソースを選択できる。
【００６２】
図１３に示すアーキテクチャはＮ個のシフトレジスタおよびＮ個のシャドウレジスタを使って、スキャンシフト中に制御データのＮ回の変更をサポートする。エリアのオーバーヘッドを減少させるために、図１３に示すレジスタを１つのシフトレジスタおよび１つのシャドウレジスタに置き換えることができる。
この実施例でスキャンセル中に制御データをＮ回変更するように制御手順を実施できる。適した制御手順の一実施例を以下に説明する。この実施例のために、Ｓｉをｉ番目のスキャン・セグメントにロードされるスキャンセル数とする。ここで、ｉ∈［１，Ｎ］で、
【００６３】
【数１】
0005537158.tif 000004
【００６４】
はスキャンチェーンの長さに等しい。さらに、スキャン・セグメントＳｉをスキャン出力ピンに最も近いセグメントとし、スキャン・セグメントＳＮをスキャン入力ピンに最も近いセグメントとする。最後にＬをシフトレジスタの長さとする。この例示的な制御手順を表３の擬似コードに記載する。
【００６５】
【表３】
0005537158.tif 000005
【００６６】
例示的な手順の方法動作は、実施態様に応じて単独でも、または互いの様々な組み合わせおよびサブコンビネーションで実施できることに留意されたい。
図１０に図示する例示的なコントローラ１０００のＸＯＲネットワーク１０２０は、Ｎ個の入力、およびＭ個の出力の線形マッピング回路として設計でき、ここでＮおよびＭは、それぞれ制御ビット数およびバイアス回路の入力数である。すなわち、ブロックの各出力は、ｂ項多項式によって恒等式が提供されるある制御ビットをＸＯＲ演算することによって得ることができる。ＸＯＲネットワーク１０２０は、高いエンコード効率が得られるように（例、制御ビット数に対する、エンコードに成功した予め指定された出力信号の比が１００％に近い）構成できる。また、ＸＯＲネットワークは他の種類の論理ゲート（例、ＸＮＯＲゲートまたはその他同様な線形論理ゲート）を用いて実施できることは理解されたい。
【００６７】
バイアス回路（図１０のバイアス回路１０３０など）を採用して、ＸＯＲネットワーク１０２０のいずれか１つまたは複数の各出力でバイナリ数の０または１を生成する確率を高めることができる。バイアス回路のどの入力も０と１とが実質的に五分五分で見られると仮定すると、たとえば、２入力ＡＮＤ（ＯＲ）ゲートによって実施されるバイアス回路は、０（１）の値を有する確率が７５％に高まる一方、１（０）の値を有する確率が２５％に減る。
【００６８】
例示的なバイアス回路の２つの実施態様１４００，１４５０を図１４（ａ）および図１４（ｂ）にそれぞれ示す。図１４（ａ）の例示的なバイアス回路１４００は、３つのテスト刺激ソースを提供するよう構成されている。たとえば、図示するバイアス回路１４００の場合、オリジナルテスト刺激ソース１４１０を選択する確率、定数０を選択する確率または定数１を選択する確率は、それぞれ１２．５％，３７．５％，５０％である。図１４（ｂ）の例示的なバイアス回路１４５０は２つのテスト刺激ソースを提供するよう構成されている。たとえば、図示するバイアス回路１４５０の場合、オリジナルテスト刺激ソース１４１０を選択する確率、または定数０を選択する確率は、それぞれ２５％，７５％である。デコンプレッサで駆動するスキャンチェーンの割合は、図１４（ａ）の方式で、ＸＯＲネットワークの出力側のＡＮＤゲートにより多くの入力を追加することによって変更できる。たとえば、３入力ＡＮＤゲートを追加すると、このパーセンテージは６．２５％まで下がるが、それに応じて定数０を受け取るスキャンチェーンの割合は増える。
【００６９】
異なる論理ゲートの組み合わせを用いて、また考えうる様々なテスト刺激ソースを選択する所望の確率に応じて、多種多様なバイアス回路を生成できることは理解されるである。そのような変型態様は当業者には理解されるため、ここでは詳細に記載する必要はないであろう。
オリジナルテスト刺激ソースがデコンプレッサの場合、デコンプレッサが駆動できる実際のスキャンチェーンの数は、プログラム可能コントローラのエンコード能力に依存するであろう。エンコードプロセスは１組の線形方程式を解くのに等しいため（たとえば、上記特許文献１を参照）、ＸＯＲネットワーク１０２０の出力信号を予め指定した値に設定するには、平均して、１つの制御ビット（例、１つの変数）を必要とする。そのため、図１４（ａ）に図示するバイアス回路１４００の場合、指定ビットを有する関連するスキャンチェーンを駆動するには、典型的には３つの方程式（各ゲーティング信号につき１つ）を解く必要がある。しかし、スキャンチェーンが１つだけの値の指定ビットを含む場合、スキャンチェーンは一致する定数値で駆動できる。このような場合、通常、３つより少ない方程式（例、わずか１つの方程式）で制御ビットをエンコードすることが可能である。たとえば、所要の定数が１に等しい場合、ＯＲゲート１４２２を駆動するゲーティング信号を表し、かつ０に設定されている（インバータ１４２０が０を１にさせるため、それによってＯＲゲート１４２２に１だけを出力させる）ＸＯＲネットワーク１０２０の方程式を使うだけでよい。すべての指定ビットが０の場合、ＯＲゲート１４２２を駆動する信号は１に設定できる。ＡＮＤゲート１４２４もその入力に０をもつはずであるため、これはスキャンチェーンに定数０を強制するものではない。しかし、エンコード能力を維持するために、別の方程式を使用しない選択ができる。この状況では、２つのシナリオが考えられる。つまり、ＡＮＤゲート１４２４を駆動する信号を０に設定してスキャンチェーンが定数０を受信するか、またはデコンプレッサがスキャンチェーンに、指定された０と一致するテストデータを与えるかである。
【００７０】
スキャンインシフト中にバイアス回路がスイッチング動作を減らす能力を高めるために、バイアス回路（図１０に示すバイアス回路１０３０など）を再構成可能なデバイスとして設計できる。再構成可能なバイアス回路１５００の一つの例示的な形態を図１５に示す。この実施例は、テスト刺激ソースを選択する確率の異なる複数のバイアス回路１５１０ａ〜１５１０Ｎを含む、またはそれらの複数のバイアス回路１５１０ａ〜１５１０Ｎからなる。プログラム可能コントローラ１５２０を使用してバイアス回路１５１０ａ〜１５１０Ｎのうちの１つを選択できる。たとえば、外部テスタ、内部テスト生成器、または組込みＲＯＭを使用して、制御データをプログラム可能コントローラ１５２０にロードできる。実施態様に応じて、図１５の再構成可能バイアス回路１５００は次の２つのモードで使用できる。つまり、（１）スキャンシフト期間にわたり、選択したバイアス回路１５１０ａ〜１５１０Ｎを変化させないで維持できる、または（２）スキャンシフト中に異なるスキャンチェーン・セグメントに対して様々なバイアス回路１５１０ａ〜１５１０Ｎを選択できる。プログラム可能コントローラ１５２０のアーキテクチャは前述した他のプログラム可能コントローラのアーキテクチャと同じにして、テスト刺激セレクタ６５２を制御するために使用できる。
【００７１】
別の形態の再構成可能バイアス回路１６００を図１６に示す。この特定の実施態様では、シャドウデータフリップフロップ１６１０（ＤＦＦ）にロードする制御データが１に等しいとすると、オリジナルのテスト刺激または定数０を選択する確率は５０％である。他方で、シャドウＤＦＦ１６１０にロードする制御データを０に設定すると、オリジナルのテスト刺激ソースまたは定数０を選択する確率は、それぞれ２５％または７５％である。
Ｂ．プログラム可能コントローラを有するアーキテクチャの場合の低消費電力テスト生成
自動テストパターン生成（「ＡＴＰＧ」）中、テスト生成手順はプログラム可能コントローラの存在を考慮する（例、プログラム可能コントローラのエリア制限を考慮する）ように適用できる。図１７は、ＡＴＰＧ手順を採用できる一つの例示的なアーキテクチャ１７００を示す模式的なブロック図である。図１７の実施例の目的上、テスト刺激セレクタをデコンプレッサ１７１０（例、ＥＤＴデコンプレッサ）として実装していると想定する。図示する実施形態では、デコンプレッサ１７１０および定数０の２種類のテスト刺激ソースがある。この実施例では、定数０はコントローラ１７２０によって出され、コントローラ１７２０はＡＮＤゲートのバイアス回路１７３０と、ＸＯＲネットワーク１７４０と、シャドウレジスタ１７５０と、シフトレジスタ１７６０とを含む。スキャンチェーンを駆動するこの種のテスト刺激ソースは、スキャンロード操作中変化させないでおくことができる。たとえば、ＸＯＲネットワーク１７４０は、シャドウレジスタ１７５０にオール１パターンをロードすると、スキャンチェーンのすべてがデコンプレッサ１７１０によって駆動されるように設計できる。
【００７２】
図１７に示すアーキテクチャでテストパターンを生成する例示的な手順を以下の擬似コードに記載する。この手順は他の解凍ハードウェアおよび／または他のプログラム可能テストセレクタを備える他のアーキテクチャにも容易に適用できることに留意されたい。
【００７３】
【表４−１】
0005537158.tif 000006
【００７４】
【表４−２】
0005537158.tif 000007
【００７５】
例示的な手順の方法動作は、実施態様に応じて単独でも、または互いの様々な組み合わせおよびサブコンビネーションでも実施できることに留意されたい。
表４（表４−１および表４−２）に記載する例示的な手順は、指定ビットをもつすべてのスキャンチェーンをデコンプレッサで駆動できるようにテストセレクタ１７４０のための制御データを生成できるか否かを検証する追加検査を提供する手順を（たとえば、動作４（ｇ）（ｖ）の前に）含む。テストキューブＣｇに関して制御データが生成できない場合、それを放棄して、オリジナルのテストキューブを変更しないでおくことができる。また、スキャンチェーンの唯一の指定ビットが０ｓの場合、この実施例では、Ｓにこのチェーンを算入する必要はない。
【００７６】
図４４は、開示する技術によるテストパターン生成の別の例示的な実施形態のフローチャートである。４４１０で、オリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数を判定する。この数は典型的には回路設計で利用できるスキャンチェーンの数より少ない。ある実施態様では、オリジナルのテスト刺激ソースは、外部テスタが提供する圧縮テストパターンを解凍するよう構成されているデコンプレッサである。いくつかの実施態様では、テスト刺激セレクタのコントローラのエンコード能力を使用して、オリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数を判定する。たとえば、オリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数は、テスト刺激セレクタが個別に制御できるスキャンチェーンの最大数に基づくことができる。４４１２では、対象故障リストから１つの故障を選択する。４４１４で、選択した故障のためのテストキューブを生成する。テストキューブは多数の指定スキャンチェーンに指定ビットを含む。４４１６で、テストキューブ内の指定スキャンチェーンの数が、オリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数より少ないか否かの判定を行う。テストキューブ内の指定スキャンチェーンの数がオリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超えない場合、４４１８でそのテストキューブを記憶して、故障リストからさらに別の故障を選択する。そうでない場合、４４２４でそのテストキューブは拒絶されて、リストに他にまだ故障があれば（４４３２で判定する）、対象故障リストからの次の故障に関して方法を続ける。４４２０で、第１故障のためのテストキューブを、第２故障を検出するための１つまたは複数の追加の指定ビットを含むよう拡張する。４４２２で、１つまたは複数の追加の指定ビットにより、拡張したテストキューブ内の指定スキャンチェーンの数がオリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超えるか否かの判定を行う。拡張したテストキューブ内の指定スキャンチェーンの数がオリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超えない場合、その拡張したテストキューブを記憶でき、さらに別の故障があれば（４４２８で判定する）、追加の故障を選択して、追加の故障を含むようにテストキューブを拡張するプロセスを繰り返す。拡張したテストキューブ内の指定スキャンチェーンの数がオリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超える場合、４４２６で拡張したテストキューブは拒絶されて、もしあれば、対象故障リストから次の故障について、選択、拡張、判定および記憶する動作を繰り返す。いくつかの実施態様では、テスト刺激セレクタの制御信号は記憶したテストキューブに基づいて生成できる。これらの制御信号は、テスト中にテストキューブを有するテストパターンをロードするとき、テスト刺激セレクタに定数値を未指定スキャンチェーンに適用させることが可能である。
Ｃ．制御データ容量の削減
テストパターンを生成する際、複数のテストパターンに関して制御データをプログラム可能コントローラに一度にロードできるように、同じ制御データを共有する異なるテストパターンを作成することが可能である。このような場合、たとえば、外部テスタには唯一の制御データだけを記憶できる。異なるテストパターンを共有する制御データを最大化するために、表４の例示的な擬似コードに記載されている動作４（ｈ）は、現在の要件を満たし、かつ２以上のテストパターンで使用される制御データを優先するよう改良できる。
【００７７】
スキャンチェーンにロードし、定数テスト刺激ソースによって与えられる異なる定数論理値を選択することは、キャプチャ段階中のスイッチング動作に対し異なる影響をもちかねない。好適な充填アプローチ（その実施形態は上記特許文献７に記述されており、これは引用により本明細書に組み込む）を、開示する技術の実施形態と合わせて使用できる。当該アプローチはキャプチャ中のスイッチング動作を減少させるテストパターン生成中の充填値の判定に役立つ信号確率を使用する。これらの方策を、開示する技術と合わせて使用して、たとえば、優先値０をもつスキャンチェーンの数が優先値１をもつスキャンセルの数以上であるときは必ず定数０が選ばれるように、定数テスト刺激ソースを選択できる。「スキャンセルの数」という用語は、ここでは同じテストソースを有するすべてのスキャンチェーン、同じテストソースを共有するスキャンチェーンの１群、またはそれ自身のテストソースによって駆動される個々のスキャンチェーンのいずれかをいうことに留意されたい。
ＩＶ．スキャン・イネーブラーによる低消費電力キャプチャおよびスキャンシフト操作
スイッチング動作は、テストのスキャンシフト段階中に定数論理値を１群のスキャンチェーンにシフトすることによって減少できる。スキャンシフト中のスイッチング動作は、テスト中に捕獲されるテスト応答値によっても判定されて、新たなテストパターンがシフトインされるとシフトアウトする。
【００７８】
キャプチャ・ウィンドウ中に、定数値をロードされるスキャンチェーンがスキャンシフトモードに保持されると、スキャンインシフト電力およびスキャンアウトシフト電力の両方を減少できる。これは、スキャンシフトモードに保持されるスキャンセルに捕獲される値はロードする値と同じになるということによる。このため、値は、キャプチャ・ウィンドウ中およびテスト応答のアンドーディング中に下流のゲートにトグル発生を起こす遷移を生じない。スキャンモードがイネーブルにされているときの速度でスキャンチェーンが動作するよう設計されていない場合であっても、キャプチャ・ウィンドウ中にシフトモードで動作するスキャンセルの論理値は、スキャンセルのデータ入力値が変わらないため、通常その時間枠中に未知の値にならない。
Ａ．プログラム可能スキャン・イネーブラーの例示的なアーキテクチャ
プログラム可能スキャン・イネーブラーを有する例示的なテスティング・アーキテクチャ１８００を図１８に示す。具体的には、図１８は、Global_Scan_Enable信号線１８１２とスキャンチェーンのスキャン・イネーブル入力部１８１４との間にプログラム可能スキャン・イネーブラー１８１０が挿入されている状態を示す。スキャン・イネーブラー１８１０は、たとえば、スキャン・イネーブル回路１８２０とプログラム可能コントローラ１８３０との２つのコンポーネントを含む、または当該２つのコンポーネントからなることができる。
【００７９】
プログラム可能スキャン・イネーブラー１８１０を採用する例示的なテスト適用手順は、テストパターンｔの制御データをプログラム可能テスト刺激セレクタおよびプログラム可能スキャン・イネーブラーにロードする工程と、Global_Scan_Enable信号をアサート（assert）して、回路をシフトモードに切り換える工程と、テスト刺激ｔをスキャンチェーンにシフトする工程と、Global_Scan_Enable信号をディアサート（de-assert）して、回路をキャプチャモードに切り換えるステップと、スキャン・イネーブル信号を１つまたは複数の選択されたスキャンチェーンに選択的にアサートする工程と、キャプチャ・クロックを適用する工程と、Global_Scan_Enable信号をアサートして、回路をシフトモードに切り換えて、スキャンチェーンからのテスト応答をアンロードする工程とを含む。
【００８０】
図４１は、テスト中にスキャン・イネーブル信号を回路に適用するための例示的な実施形態を示すフローチャートである。４１１０で、デコンプレッサから解凍されたテストパターンがスキャンチェーンにロードされるときに、スキャン・イネーブル信号を被テスト回路のスキャンチェーンに適用する。スキャン・イネーブル信号はスキャンチェーンを１つまたは複数のシフトレジスタとして動作させる。４４１２で、解凍されたテストパターンに対するテスト応答がスキャン・イネーブル信号を適用していないスキャンチェーンの残部で捕獲されるとき、スキャン・イネーブル信号を１つまたは複数のスキャンチェーンに適用する。いくつかの実施態様では、スキャン・イネーブル信号を適用するスキャンチェーンのうちの１つまたは複数個は、適用しなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンを含む。解凍されたテストパターンに対するテスト応答が捕獲されるとき、どのスキャンチェーンにスキャン・イネーブル信号を適用するかを制御する制御信号も受信できる。これらの制御信号は、解凍される複数の追加テストパターンがスキャンチェーンにロードされるとき再利用できる。さらにテストパターンがスキャンチェーンにロードされているときに、次のテストパターンの制御信号をロードできる。
Ｂ．例示的なスキャン・イネーブル回路
図１８のスキャン・イネーブル回路１８２０は多様な方法で実施できる。一つの例示的なスキャン・イネーブル回路１９００を図１９に示す。具体的には、スキャン・イネーブル回路１９００は複数のスキャン・イネーブラーを含む（図１９ではそのうちの２つに１９１０，１９１２の番号を付している）。図１９に示すように、スキャン・イネーブラーは、（スキャン・イネーブラー１９１２の場合のように）単一のスキャンチェーンのスキャン・イネーブル入力部、または（スキャン・イネーブラー１９１０の場合のように）２つ以上のスキャンチェーンのスキャン・イネーブル入力部のいずれかを駆動できる。例示的なスキャン・イネーブラーの機能は、信号がディアサートされるときに、スキャン・イネーブラーが１つまたは複数のスキャンチェーンに出力する個々のスキャン・イネーブル信号をプログラム可能コントローラ１９３０によって制御するようにGlobal_Scan_Enable信号を処理することである。スキャン・イネーブラーの一形態（１９１０など）の実施態様を図２０のスキャン・イネーブラー２０００として示す。
Ｃ．スキャン・イネーブル・プログラム可能コントローラ
スキャン・イネーブル・プログラム可能コントローラ（例、図１８に図示するプログラム可能コントローラ１８３０）のアーキテクチャは、前述したテスト刺激ソースを選択するためのコントローラと同じとすることができる。プログラム可能スキャン・イネーブラー・コントローラに加えてテスト刺激選択のために独立したプログラム可能コントローラを使用すると、定数値がロードされる１群のスキャンチェーンのスキャン・イネーブル信号を柔軟に制御できる。しかし、テスト刺激選択のためにプログラム可能コントローラおよびプログラム可能スキャン・イネーブル・コントローラの両方を使用すると、テストデータの容量が増大し、面積オーバーヘッドが増加しかねない。そのため、ある実施形態では、プログラム可能テスト刺激セレクタおよびプログラム可能スキャン・イネーブラーはプログラム可能コントローラを共有する。
【００８１】
共有コントローラを有する例示的なアーキテクチャを図２１に示す。具体的には、図２１は、共有コントローラ２１１０を使用して、テスト刺激セレクタ２１２０およびスキャン・イネーブル回路２１３０の両方を制御するアーキテクチャ２１００を示す。コントローラ２１１０は上記紹介したコントローラ設計のいずれを採用しても実施できる。
プログラム可能スキャン・イネーブラーを備えたスキャンベースのアーキテクチャのテスト生成手順は、前述したテスト生成手順と同様にできる。例証のために、図２２に示す例示的なスキャン・アーキテクチャについて、例示的なテスト生成手順を説明する。関連ある部分では、図２２の例示的なアーキテクチャ２２００は１つのプログラム可能コントローラ２２１０を含み、それをテスト刺激セレクタ２２２２およびスキャン・イネーブラー２２２４を制御するために使用する。本明細書で説明する例示的な手順は、プログラム可能テスト刺激セレクタおよびプログラム可能スキャン・イネーブラーの両方を有する他のスキャン・アーキテクチャにも適用できる。
【００８２】
図２２には、デコンプレッサ２２２０と定数０のソース（テスト刺激セレクタ２２２２のＡＮＤゲートにより実施される）との２種類のテスト刺激ソースが図示されている。この実施例のスキャンチェーンに与えられるテスト刺激の種類は、スキャンロードプロセス中変化しない。また、図示する実施形態では、スキャンチェーンが定数０で駆動されるとき、チェーンのScan_Enable信号がアサートされる。Scan_Enable信号はテストのスキャンシフト段階中だけでなく、キャプチャ段階中にも適用できるので、スキャンチェーンには定数０がロードされたままになる。ＸＯＲネットワーク２２３０は、シャドウレジスタ２２４０を制御するときにデコンプレッサ２２２０によって駆動されるすべてのスキャンチェーンにオール１パターンがロードされるように設計できる。
【００８３】
表５（表５−１および表５−２）には、テスト刺激セレクタおよびスキャン・イネーブラーの両方を含むテスト・アーキテクチャを使用してテストパターンを生成するある特定の手順を記述する例示的な擬似コードを記載する。
【００８４】
【表５−１】
0005537158.tif 000008
【００８５】
【表５−２】
0005537158.tif 000009
【００８６】
例示的な手順の方法動作は、実施態様に応じて単独でも、または互いの様々な組み合わせおよびサブコンビネーションでも実施できることに留意されたい。
表５に記載する例示的な手順は、指定ビットを有するすべてのスキャンチェーンがデコンプレッサによって駆動できるようにテストセレクタの制御データを生成できるか否かを検証するために採用される手順を（例、動作４（ｇ）（vi）の前に）含む。テストキューブＣｇについて制御データが生成できない場合、それを放棄して、オリジナルのテストキューブを変更しないでおくことができる。また、スキャンチェーンにおける唯一の指定ビットが０で、かつスキャンチェーンが故障影響の観測に使用されない場合、この実施例ではＳにこのチェーンを算入する必要はない。
【００８７】
さらに、表５に概説する例示的な手順は、テスト刺激セレクタおよびスキャン・イネーブル回路の両方を有するアーキテクチャにおける制御信号の生成に関わるが、スキャン・イネーブル回路だけを有するアーキテクチャについては手順を変更できる。たとえば、変数Ｓは、故障影響を観測するために使用するスキャンチェーン数のみを表すように設定でき、動作４（ｇ）（ｖ）で行われる評価は、拡張されたテストキューブ内の故障を観測するために使用するビット数に基づくことができる。
【００８８】
図４５は、スキャン・イネーブル回路を有するアーキテクチャにおいてテストパターンを生成するための例示的なテストパターン生成手順を示すフローチャートである。４５１０で、故障影響を観測するのに使用可能なスキャンチェーンの数を判定する。この数は典型的には回路設計において利用できるスキャンチェーンの数より少ない。ある実施態様では、スキャン・イネーブル回路のコントローラのエンコード能力を使用して、故障影響を観測するために使用可能なスキャンチェーンの数を判定する。（この例示的なテストパターン生成手順を以下に説明するある実施形態に関連して使用する場合、使用可能なスキャンチェーンの数はクロック・イネーブル回路のコントローラ、リセット・イネーブル回路のコントローラ、またはシフトクロック・イネーブル回路のコントローラのエンコード能力から判定できる）。４５１２で、対象故障リストからある故障を選択する。４５１４で、選択した故障のテストキューブを生成して、テストキューブから故障影響の観測に使用するスキャンチェーン数を判定する（例、故障シミュレーションを使用して）。４５１６で、テストキューブから故障影響の観測に使用されるスキャンチェーン数が、故障影響の観測に使用可能なスキャンチェーン数より少ないか否かの評価を行う。テストキューブから故障影響の観測に使用されるスキャンチェーン数が故障影響の観測に使用可能なスキャンチェーン数よりも少ない場合、４５１８で、そのテストキューブを記憶して、故障リストから別の故障を選択する。テストキューブから故障影響の観測に使用されるスキャンチェーン数が故障影響の観測に使用可能なスキャンチェーン数を超える場合、４５２４で、そのテストキューブは拒絶され、故障リストにさらに別の故障があれば（４５３２で判定して）プロセスを繰り返す。４５１８で、第１故障のテストキューブを、第２故障を検出するための１つまたは複数の追加の指定ビットを含むように拡張する。４５２２で、１つまたは複数の追加の指定ビットにより、拡張されたテストキューブから故障影響の観測に使用されるスキャンチェーン数が故障影響の観測に使用可能なスキャンチェーン数を超えるか否かの判定を行う。テストキューブから故障影響の観測に使用されるスキャンチェーン数が、故障影響の観測に使用可能なスキャンチェーン数より少ない場合、その拡張されたテストキューブは記憶されて、故障リストにさらに別の故障があれば（４５２８で判定して）、追加の故障を選択して、可能ならテストキューブを拡張するプロセスを繰り返す。テストキューブから故障影響の観測に使用されるスキャンチェーン数が、故障影響の観測に使用可能なスキャンチェーン数を超える場合、４５２６で、その拡張されたテストキューブは拒絶されて、故障リストにさらに別の故障があれば（４５２８で判定して）、追加の故障を選択して、可能ならテストキューブを拡張するプロセスを繰り返す。スキャン・イネーブル回路の制御信号は、テストキューブに基づいて生成できる。これらの制御信号は、テスト中にテストキューブを有するテストパターンを適用したときに、スキャン・イネーブル回路に、テストキューブから故障影響が観測されないスキャンチェーンからのスキャン・イネーブル信号を抑制させることが可能である。
【００８９】
表５で示すように、テストパターン生成方法の実施形態は、スキャン・イネーブル回路およびプログラム可能テスト刺激ソースの両方を含むアーキテクチャにも採用できる。これらの場合、テストキューブまたは拡張されたテストキューブを受け入れできるか否かの判定は、テストキューブ内の指定チェーンの数がオリジナルのテスト刺激ソースによって駆動されるスキャンチェーン数よりも少ないか否かの判定も包含できる。オリジナルのテスト刺激ソースによって駆動されるべきスキャンチェーン数は、たとえば、スキャン・イネーブル回路によって独立して制御できるスキャンチェーンの最大数に基づくことができる。
Ｄ．未知状態の抑制
未知状態（「Ｘ状態」ともいう）がテストを無効なものにする可能性がある。Ｘ状態のソースには、未初期化メモリ素子、バス・コンテンション、非スキャン・フリップフロップ、フローティングバス、内部３状態ロジック、ならびに実動作速度テスト生成時のマルチサイクルおよび誤ったパスが含まれる。多くのスキャンベースの設計において、Ｘ状態は、スキャンセルでいったん捕獲されると、その後テスト応答コンパクタに注入されかねない。テスト応答コンパクタにおいて、Ｘ状態はテスト結果に著しい影響を及ぼしかねない。時間コンパクタを使用している場合、Ｘ状態によるテスト応答の破損の可能性が特に大きい。たとえば、時間コンパクタでは、Ｘ状態はフィードバックのファンアウトのために即座に増幅され、シグネチャを汚染し、シグネチャが読み出されるまでコンパクタにとどまる。これに対して、組合せコンパクタ（これは空間コンパクタの一形態である）はＸ状態に対し比較的影響を受けない。しかし、マスキングを避け、診断を可能にするには、当該コンパクタは各スキャンチェーンにつき２以上の出力を観測しなければならないことがある。有限メモリ・コンパクタは何度もスキャンシフトサイクルをした後でそのレジスタからＸ状態を一掃する。
【００９０】
コンパクタが予め指定された数のＸ状態に耐えるよう設計されていても、それでもＸ状態に対する脆弱性は無用なテスト応答を出しかねない。そのため、スキャンチェーン選択機構を介してコンパクタに導入されるＸ状態を制限するのが望ましい。そうでなければ、ＡＴＰＧツールによって排除されないＸ状態の特定の組み合わせにより、特定のスキャンセルの可観測性を妨げ、全体的な故障カバレッジを低下させるおそれがある。
【００９１】
Ｘ状態がコンパクタに到達しないように、選択されたアンロード値をマスクする回路を使って、スキャンチェーンの選択的な観測を可能にするスキームがいくつかある。スキャンチェーン選択ロジックを提供し、適切なマスキング信号を生成するためにスキャンチェーンをランク付けする例示的なアプローチが、上記特許文献８、９および１０、ならびに上記非特許文献１に記述されており、このすべてをここに引用により本明細書に組み込む。例示的なアプローチは、後でＸ状態を抑制するのに採用できるスキャンチェーン選択制御データを見つけるのに役立つ。簡潔にいうと、上記特許文献８、９および１０、ならびに上記非特許文献１に記述されているある実施形態では、スキャンチェーンによって駆動される論理ゲートを使うことによってＸ状態をマスクし、圧縮制御データに基づいて適切なゲート信号をプログラム可能コントローラによって生ずる。その結果、開示するアプローチはテスト応答に発生するＸ状態を大幅に減少するかまたは完全に排除する。
【００９２】
開示する技術の実施形態は、効率的なスキャンチェーンの選択を行うために、上記特許文献８、９および１０、ならびに上記非特許文献１に記述される技術と併用できる。ただし、開示する技術の実施形態を使用する場合、キャプチャ中に、選択されたスキャンチェーンをスキャンシフトモードに保持するよう構成されているスキャン・イネーブル回路によってその機能を代用できるため、スキャンチェーンの出力側に専用のゲーティング論理は必要ない。そのような機能性の実施例を、図２３に示す例示的なアーキテクチャ２３００を使って例証する。Ｘ状態をもつスキャンチェーンをゲーティングする代わりに、プログラム可能スキャン・イネーブラー２３１０を使用して、テストサイクルを通しスキャンチェーン１２０ａ〜１２０Ｎのいずれもシフトモードに維持できる。この技術は本質的にスキャンチェーン１２０ａ〜１２０ｎがＸ状態を捕獲（キャプチャ）し、それをコンパクタ２３２０にロードするのを防ぐ。
【００９３】
図２３の具体的な実施例では、スキャンチェーンの約７５％は所与のテストパターン適用中スキャンシフトモードにしておくことができ、回路の組合せ論理からテスト応答値を一切捕獲しない。スキャンチェーンの残りの２５％は、対象とする故障の存在を示す値を含むテスト応答値を捕獲できる。図２３のアプローチは、図２２に関連して説明したソリューション（解決法）と容易に統合できる。その結果、並列消費電力を処理するために使用されるのと同じ制御回路を使用して、未知状態の存在を処理できる。
【００９４】
Ｘ状態の捕獲を防ぐスキャン・イネーブル回路の制御データを生成する例示的な技術は、被テスト回路に適用するテストパターンをシミュレートして、シミュレートしたテスト応答を生成する工程と、シミュレートしたテスト応答から未知状態を捕獲する被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、キャプチャ・ウィンドウ中に特定された１つまたは複数のスキャンチェーンのスキャン・イネーブル信号を抑制させる制御信号をスキャン・イネーブル回路に生成させる工程とを含む。生成された制御信号は、１つまたは複数のコンピュータ可読媒体に記憶し、その後テスト適用中にスキャン・イネーブル回路のプログラム可能コントローラにロードしてもよい。
Ｖ．クロック・イネーブラーによる低消費電力キャプチャおよびスキャンシフト操作
テスト生成中、あるスキャンチェーンが故障影響を観測しないと判定できる（例、被テスト回路へのテストパターンの適用をシミュレートすることによって）。キャプチャ・ウィンドウ中にそのようなスキャンチェーンに新たな値を捕獲すると、望ましくないスイッチング動作を生じかねない。キャプチャ・ウィンドウにおけるトグル発生を減少させるために、これらスキャンチェーンの各クロック（例、各クロックツリー）をディスエーブルにすることによって、キャプチャ・ウィンドウにおけるスイッチング動作を減少できる。関連するクロックは、スキャンチェーンの各スキャンセルに分配される専用のキャプチャクロックでも、またはシフト信号（例、第１周波数で）およびキャプチャ信号（例、第２周波数で）の両方を提供する単一のクロックツリーを介して分配される単一のクロックでもよい。後者の状況において、シフト信号およびキャプチャ信号はクロックツリーに連結されるクロック生成器によって生成できる。
【００９５】
Ａ．例示的なプログラム可能クロック・イネーブラーのアーキテクチャ
図２４は、プログラム可能クロック・イネーブラー２４１０を採用する例示的なスキャンベースのアーキテクチャ２４００を示す模式的なブロック図である。具体的には、プログラム可能クロック・イネーブラー２４１０は、クロック（例、キャプチャクロック）とスキャンチェーン１２０ａ〜１２０Ｎを駆動するクロックツリーの間に挿入する。図２４に示すように、例示的なプログラム可能クロック・イネーブラー２４１０は、クロック・イネーブル回路２４２０とプログラム可能コントローラ２４３０との２つのコンポーネントを含む、または当該２つのコンポーネントからなることができる。
【００９６】
アーキテクチャ２４００を使用する例示的なテスト適用手順は、テストパターンｔの制御データをプログラム可能コントローラ２４３０にロードする工程と、スキャンシフトを開始する前にGlobal_Clock_Enable信号２４４０をアサートする工程と、テスト刺激ｔをスキャンチェーンにシフトする工程と、スキャンシフト操作の終了時にGlobal_Clock_Enable信号２４４０をディアサートする工程と、選択されたスキャンチェーンにキャプチャ信号を適用する工程と、スキャンチェーンからテスト応答をアンロードする前に、Global_Clock_Enable信号２４４０をアサートする工程とを含む。
【００９７】
図４２は、テスト中にクロック信号を適用して抑制する例示的な方法を示すフローチャートである。４２１０で、デコンプレッサから解凍されたテストパターンが被テスト回路のスキャンチェーンにロードされたら、クロック信号を被テスト回路のスキャンチェーンに適用する。４２１２で、キャプチャ・ウィンドウ中に、解凍されたテストパターンに対するテスト応答を捕獲したら、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントにおいてクロック信号を抑制する。クロック信号を抑制すると、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントをキャプチャ・ウィンドウ中に一定状態に保つ。すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントは、そうでなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントを含むことができる。また、キャプチャ・ウィンドウ中にどのスキャンチェーンまたはスキャンチェーンのセグメントがクロック信号を抑制させるかを制御する制御信号を受信できる。制御信号は、解凍された複数の追加のテストパターンに対するテスト応答が捕獲されるとき再利用できる。
Ｂ．例示的なクロック・イネーブル回路
クロック・イネーブル回路２４１０は様々な方法で実施できる。図２５は、クロック・イネーブル回路２５１０の一実施態様を示す。具体的には、クロック・イネーブル回路２５１０は、複数のクロック・イネーブラー（そのうちの２つが図２５において２５２０，２５２２の番号が付けられている）を含む、または当該複数のクロック・イネーブラーからなることができる。図２５に示す実施例では、クロック・イネーブラーは、（クロック・イネーブラー２５２２の場合のように）１つのスキャンチェーンまたは（クロック・イネーブラー２５２０の場合のように）２つ以上のスキャンチェーン群のいずれかのクロックツリーを駆動する。具体的には、クロック・イネーブラー２５２０はスキャンチェーン１２０ａ，１２０ｂを駆動するよう図２５に示されているのに対し、クロック・イネーブラー２５２２はスキャンチェーン１２０Ｎを駆動するよう示されている。
【００９８】
クロック・イネーブラーの代替例示的な構成を２つ、図２６（ａ）および図２６（ｂ）に示す。図２６（ａ）では、複数のクロック・イネーブラー２６１０，２６１２が同じスキャンチェーン２６２０の異なるセグメントを駆動する。図２６（ｂ）では、同じクロック・イネーブラー２６５０が異なるスキャンチェーン２６６０，２６６２の複数のセグメントを駆動する。これらの実施例において、スキャンチェーンのセグメントを連続して接続する必要はないことに留意されたい。代わりに、スキャンチェーンのセグメントはスキャンチェーン内に任意の２以上のスキャンセルを含む。
【００９９】
図２４に戻ると、ある実施形態では、クロック・イネーブラー２４１０は、Global_Clock_Enable信号２４４０がアサートされたときにオリジナルのクロックが適用されるように各状態素子のクロックを制御できる。キャプチャモードでは、Global_Clock_Enable信号がディアサートされると、スキャンチェーン内のスキャンセルをトリガするクロック２４５０は、プログラム可能コントローラ２４３０にロードされている制御データを使ってゲーティングできる。
【０１００】
クロック・イネーブラーの例示的なグリッチフリーの例示的な実施態様２７００を図２７に示す。グリッチが問題ではない場合、図２７に示すラッチ２７１０を取り外すことができ、ＯＲゲート２７２０の出力をＡＮＤゲート２７３０の入力に直接接続できる。
面積オーバーヘッドを減少させるために、クロック・イネーブル回路（例、クロック・イネーブル回路２４２０）は、適用可能であれば、既存のクロック・ゲーティング論理と共有できる。オリジナルのクロック・ゲーティング論理２８００の実施例を図２８（ａ）に示す。具体的には、図２８（ａ）では、Scan_Enable信号２８１０はグローバルクロック・イネーブル信号として機能する。たとえば、Scan_Enable信号が１の場合、この設計におけるすべてのクロックゲート（例、ゲート２８３０）は機能コントローラからの信号２８２０を無視することによってイネーブルされる。
【０１０１】
既存のクロック・ゲーティング論理２８００の例示的な変型例を図２８（ｂ）に示す。図２８（ｂ）に示す特定の変型例において、ＡＮＤゲート２８５２をＯＲゲート２８６０と機能コントローラからの信号パス２８７０との間に挿入する。Ｓｃａｎ＿Ｅｎａｂｌｅ信号２８８０が０の場合、この実施例では、プログラム可能クロック・イネーブラー２８９０からの信号が機能クロック制御信号２８７０をイネーブル／ディスエーブルする。
【０１０２】
プログラム可能クロック・イネーブラーのコントローラ２４３０は、上記紹介したコントローラ設計のいずれを使用しても実施できる。また、キャプチャ・ウィンドウ中にディスエーブルされることになるスキャンチェーン群がすべてのキャプチャサイクルの間同じであるとき、コントローラはシフトレジスタを１つだけ使用して実施できる。キャプチャ・ウィンドウ中にディスエーブルされるべきスキャンチェーン群を異なるキャプチャサイクルで動的に変更させるには、パイプライン化した２以上のシフトレジスタを含むシフトレジスタファイル（図１１のシフトレジスタファイルなど）を使用できる。
Ｃ．スキャンシフト中およびキャプチャ中両方のスイッチング動作の減少
スキャンシフト段階およびキャプチャ段階の両方の間のスイッチング動作を減少させるには、プログラム可能クロック・イネーブラーの実施形態を、上記紹介したプログラム可能テスト刺激セレクタの実施形態と組み合わせて使用できる。プログラム可能クロック・イネーブラーおよびプログラム可能テスト刺激セレクタの両方を有する例示的なスキャン・アーキテクチャ２９００を図２９に示す。定数テスト刺激をロードされたスキャンチェーンをディスエーブルにして、それらのスキャンチェーンからのテスト応答をアンロードするときに遷移が起こらないように、新たなデータをキャプチャする場合、スイッチング動作の最も効率的な削減が観測される。
【０１０３】
面積オーバーヘッドを最小化するために、プログラム可能クロック・イネーブラーのプログラム可能コントローラを、プログラム可能テスト刺激セレクタと共有できる。図３０はこのような共有プログラム可能コントローラを備えた実施態様３０００を示す。
Ｄ．テストパターン生成
プログラム可能クロック・イネーブラーを使用するスキャンベースのアーキテクチャに関するテストパターン生成手順は、前述したテストパターン生成手順と同様とすることができる。たとえば、スキャン・アーキテクチャが、図３０に示すようなものであると想定する。図３０では、デコンプレッサ３０１０と定数０を生成するソース（プログラム可能コントローラ３０３０と組み合わせてゲート３０２０で生成する）との２種類のテストソースがある。この実施例において、スキャンチェーンに与えられるテスト刺激の種類はスキャンシフト中変更されない。図示するアーキテクチャの場合、スキャンチェーンが定数０で駆動される場合、スキャンチェーンを駆動するクロックはキャプチャ中ディスエーブルにされる。この実施例では、ＸＯＲネットワーク３０４０は、シャドウレジスタ３０５０の制御データにオール１パターンがロードされるとき、デコンプレッサ３０１０がすべてのスキャンチェーンを駆動するように設計されている。
【０１０４】
表６（表６−１および表６−２）には、テスト刺激セレクタおよびクロック・イネーブラーの両方を含むテスト・アーキテクチャを使用したテストパターン生成の特定の一手順を記述する例示的な擬似コードを記載する。
【０１０５】
【表６−１】
0005537158.tif 000010
【０１０６】
【表６−２】
0005537158.tif 000011
【０１０７】
例示的な手順の方法動作は、実施態様に応じて単独でも、または互いの様々な組み合わせおよびサブコンビネーションでも実施できることに留意されたい。
表６に記載する例示的な擬似コードは、指定ビットを有するスキャンチェーンがデコンプレッサで駆動できるようにプログラム可能コントローラの制御データを生成できるか否かを検証するために、動作４（ｇ）（vi）の前に追加の検査ステップを採用する。テストキューブＣｇについて制御データが生成できない場合、それを放棄して、オリジナルのテストキューブを変更させないでおくことができる。さらに、スキャンチェーンの唯一の指定ビットが０で、かつそのスキャンチェーンがどの故障影響の観測にも使用されない場合、この実施例ではＳにこのチェーンを算入する必要はない。
【０１０８】
また、表６に概説する例示的な手順は、テスト刺激セレクタおよびクロック・イネーブル回路の両方を有するアーキテクチャにおける制御信号の生成に関わるが、クロック・イネーブル回路だけを有するアーキテクチャのためにこの手順を変更できる。たとえば、変数Ｓは故障影響の観測に使用するスキャンチェーン数だけを表すように設定でき、動作４（ｇ）（ｖ）で行う評価は、拡張されたテストキューブの故障を観測するために使用されるビット数に基づくことができる。
【０１０９】
図４５に示し、上記論じた例示的な実施形態も、クロック・イネーブル回路を有するアーキテクチャのテストパターンを生成するために使用できる。当該実施形態では、クロック・イネーブル回路の制御信号は生成されたテストキューブに基づいて生成できる。たとえば、制御信号は、テスト中にテストキューブを有するテストパターンを適用するとき、クロック・イネーブル回路に、テストキューブから故障影響を観測しないスキャンチェーンからの制御信号を抑制させるようにすることが可能である。
Ｅ．未知状態の抑制
プログラム可能クロック・イネーブラーは、スキャンセルへのＸ状態の伝播を回避するために使用できる。回避されなければ捕獲されるかもしれない著しい数のＸ状態は、プログラム可能クロック・イネーブラーを使用してスキャンチェーンの選択を行うことによって無効にできる。スキャンベースの環境においてＸ状態の抑制に使用できる一つの例示的なアーキテクチャ３１００を図３１に示す。たとえば、アーキテクチャ３１００はテスト応答コンパクタ（例、図３１のコンパクタ３１１０）の出力側でＸマスキングの量の低減を促すために使用できる。スキャン・イネーブラーを配備する場合と同じく、クロック・イネーブラーを使用してＸ状態が捕獲されないようにするとき、スキャンチェーンの出力側にカスタマイズしたゲーティング論理を使用する必要はない。所望の機能性は、キャプチャ中に選択されたスキャンチェーンのクロックをディスエーブルすることによって達成できる。すなわち、Ｘ状態をもつスキャンチェーンをゲーティングする代わりに、１つまたは複数の例示的なプログラム可能クロック・イネーブラー３１２０を使用して、指定されたスキャンチェーンのクロックツリーをディスエーブルにすることができる。プログラム可能クロック・イネーブラー３１２０は、たとえば事前計算したデータ（例、上記特許文献８、９、および１０、ならびに上記非特許文献１に記述される例示的な方法のいずれかで計算した）によって駆動できる。この例示的な技術は、本質的に、スキャンチェーンがＸ状態を捕獲し、それらをコンパクタ３１１０にロードするのを防ぐ。図３１の実施例では、スキャンチェーンの約７５％はキャプチャ中にそのクロックをディスエーブルにする（つまり、テスト結果（Ｘ状態を含む）を記録しない）一方で、スキャンチェーンの残りの２５％はキャプチャ中にそのクロックがイネーブルにされて、テスト応答を捕獲する。
【０１１０】
図３１を参照して説明する例示的なアプローチは、図３０に関連して図示および記述したアプローチと組み合わせることができる。その結果、同じ制御回路を、消費電力および未知状態の存在を並列して処理するよう共有できる。
Ｘ状態が捕獲されないようにするクロック・イネーブル回路の制御データを生成するための例示的な技術は、被テスト回路に適用するテストパターンをシミュレートして、シミュレートしたテスト応答を生成する工程と、シミュレートしたテスト応答から未知状態を捕獲する被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、クロック・イネーブル回路に、キャプチャ・ウィンドウ中に特定された１つまたは複数のスキャンチェーンのキャプチャ・クロックを抑制させる制御信号を生成する工程とを含む。生成された制御信号は１つまたは複数のコンピュータ可読媒体に記憶して、その後テスト適用中にクロック・イネーブル回路のプログラム可能コントローラにロードできる。
ＶＩＩ．リセット／シフトクロック・イネーブラーによる低消費電力スキャンシフト操作
通常、フリップフロップは状態の初期化を目的とした１つまたは複数の非同期の制御入力（非同期セット入力または非同期リセット入力）を備えて設計されるため、たとえば、これら非同期制御入力の１つからスキャンセルを既知状態に強制するプログラム可能信号（例、非同期セット信号または非同期リセット信号）を使用することによって、スキャンシフト段階中のトグルの発生を減少させることが可能である。このアプローチを実施する一つの例示的なアーキテクチャ３２００を図３２に示す。開示するアーキテクチャの実施態様は、チップ電力消費のもう１つの主要原因であるクロック配線の消費電力を大幅に減少する能力も有する。例示的なアーキテクチャはプログラム可能コントローラを使用するが、これは前述したコントローラ設計のいずれを使用しても実施できる。
【０１１１】
図３２に示すアーキテクチャの場合、テストパターンｔｉにシフトするとき、デコンプレッサによって直接駆動されるスキャンチェーン（テストパターンｔｉの指定ビットを含むため）と、テストパターンｔｉ−１の適用後にコンパクタにロードされるテスト応答値を有するスキャンチェーン（ｔｉ−１によって捕獲される対象欠陥を示す値であるため）とを判定することが望ましい。テストパターンｔｉは典型的にはテストパターンｔｉ−１の直後に適用される。これらのスキャンチェーンは、たとえばＡＴＰＧプロセス中に特定できる。具体的な一実施態様によると、特定されたスキャンチェーンだけがシフトクロック信号に応答するようにスキャンチェーンを制御できる。他のスキャンチェーンは、そのシフトクロック信号が抑制されるため静止（無効）状態にしておくことができる。その結果、スキャンシフトおよびクロック自体の両方によるスイッチング動作を減少できる。さらに、ある場合には、エンコードプロセスの副次的効果として、少数のスキャンチェーンをアクティブにしておくことができる。一般に、バイアス回路の具体的な構成は、アクティブにされる不必要なスキャンチェーンのパーセンテージに影響する。静止状態のスキャンチェーンの出力における未知の値を避けるために、それらの出力をコンパクタの入力に送る前に定数値をもつようゲーティングできる。ゲーティング制御信号はシフトクロック信号を制御するプログラム可能コントローラから出すことができる。
【０１１２】
スキャンチェーンにおけるトグルの発生は、多くの場合、あるスキャンチェーンで捕獲されたテスト応答値を使用して、前のテストパターンによって以前に検出されなかった対象故障の故障影響を観測する一方で、他のスキャンチェーンで捕獲されたテスト応答値を使用して、前のテストパターンによって以前に検出されている対象故障の故障影響を観測するという事実を利用することによって一層減少させることができる。通例、スキャンチェーンの後者のサブセットの応答値をシフトアウトしても、故障カバレッジは改善しない。したがって、ある実施形態では、これらのスキャンチェーンは、以前に捕獲されたテスト応答をアンロードして次のテストパターンをロードする前にリセットできる。これにより、次のテストパターンをロードする前にスキャンチェーンを全て定数値に設定し、それによりスキャンチェーンに次のテストパターンをロードするときに発生するトグル発生の量を減少させる。新たなテスト・ベクトルを適用する前にスキャンチェーンをリセットすると、スイッチング動作を半分に減少させることができる（隣接し合うスキャンセル間に反転がないことを前提とする）。
Ａ．プログラム可能シフト／リセットクロック・イネーブラーの例示的なアーキテクチャ
図３２の例示的なアーキテクチャ３２００では、プログラム可能リセット／シフトクロック・イネーブラー３２１０は、主入力ピンReset_Clock３２２０およびShift_Clock３２２２と、スキャンチェーンを駆動するリセットクロックおよびシフトクロックツリーとの間に挿入されている。図３２に図示するように、例示的なプログラム可能リセット／シフトクロック・イネーブラー３２００は、シフトクロック・イネーブル回路３２３０と、リセット・イネーブル回路３２３２と、プログラム可能コントローラ３２４０との３つのコンポーネントを含む、または当該３つのコンポーネントからなる。
【０１１３】
図３２の例示的なアーキテクチャ３２００を採用する例示的なテスト適用手順は、テストパターンｔｉのリセット・イネーブルを制御する制御データと、次のテストパターンのシフトクロック・イネーブルを制御する制御データとをプログラム可能コントローラにロードする工程と、テスト刺激ｔｉをスキャンチェーンにシフトする工程（テストパターンｔｉのシフトクロック・イネーブルを制御する制御データは、ｔｉ−１のテスト刺激をシフトインするときにロードする）と、キャプチャ・クロックを適用する工程と、選択したスキャンチェーンにReset_Clockピンをアサートして、それを所要のクロックサイクル数の間アクティブ状態に維持する工程と、Reset_Clockピンをディアサートする工程と、スキャンチェーンからテスト応答をシフトアウトする工程とを含む。
【０１１４】
ある実施形態では、シフトクロック・イネーブル回路３２３０は設計から省かれることに留意されたい。上記概説したテスト適用手順は、当該実施形態ではシフトクロック・イネーブラーの制御データを使用しないように変更されることになろう。
図４３は、テスト中にリセット信号を回路に適用する例示的な実施形態を示すフローチャートである。４３１０で、被テスト回路のスキャンチェーンでテストパターン（例、デコンプレッサで解凍されたテストパターン）に対するテスト応答を捕獲する。４３１２で、テストパターンに対するテスト応答を捕獲した後、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントに、リセット信号を適用する。４３１４で、リセット信号を適用した後、スキャンチェーンの内容をアンロードする。リセット信号を適用した１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントは、適用しなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントを含むことができる。リセット信号の適用により、すべてではないが１つまたは複数のスキャンチェーンまたはスキャンチェーンのセグメントに捕獲された値を、１つの定数値（例、１または０）にすることができる。どのスキャンチェーンまたはスキャンチェーンのセグメントがリセット信号を適用させるかを制御する制御信号を受信できる。これらの制御信号は、複数の追加のテストパターンに対するテスト応答に再利用できる。また、テストパターンがスキャンチェーンにロードされているときに、次のテストパターンの制御信号をロードできる。
Ｂ．シフトクロック・イネーブラーおよびリセット・イネーブラー
シフトクロック・イネーブル回路３２３０は、複数のシフトクロック・イネーブラーを含む、または当該複数のシフトクロック・イネーブラーからなることができる。さらに、シフトクロック・イネーブラーは、単一のスキャンチェーンのシフトクロック入力または２以上のスキャンチェーンのシフトクロック入力群のいずれかを駆動できる。一般に、シフトクロック・イネーブル回路３２３０の機能は、スキャンチェーンをスキャンシフト中にシフトモードで動作させるのをイネーブル／ディスエーブルすることである。シフトクロック・イネーブラーの例示的なグリッチフリーの実施態様３３００を図３３に示す。
【０１１５】
リセット・イネーブル回路３２３２は、複数のリセット・イネーブラー群を含む、または当該複数のリセット・イネーブラー群からなることができる。リセット・イネーブラーは単一のスキャンチェーンのリセットクロック入力または２以上のスキャンチェーンのリセットクロック入力群のいずれかを駆動できる。リセット・イネーブラーの機能は、Reset_Clockをイネーブル／ディスエーブルし、それによってReset_Clockがアクティブのときスキャンチェーンをリセットすることである。リセット・イネーブラーの例示的な実施態様３４００を図３４に示す。
【０１１６】
例示的な形態のプログラム可能コントローラ３２４０は、次の２つのモジュールを含む、または当該２つのモジュールからなることができる。１つはシフトクロック・イネーブラーを制御するモジュールであり、もう１つはリセット・イネーブラーを制御するモジュールである。各コントローラ・モジュールは、上記説明したプログラム可能テスト刺激セレクタ６５２とともに使用される例示的なプログラム可能コントローラと同じアーキテクチャを有することができる。
Ｃ．テストパターン生成
本明細書で説明するリセットクロック・イネーブル回路またはシフトクロック・イネーブル回路のいずれかを有するアーキテクチャに関するテストパターン生成手順は、クロック・イネーブラーまたはスキャン・イネーブラーを有するアーキテクチャについて表５および表６に関して上記説明したテストパターン生成手順と実質的に同じであり、ここで個別に記載する必要はない。たとえば、テストパターン生成手順は、リセット・イネーブル回路がそのテスト応答をシフトアウトする前に故障影響を観測しない１つまたは複数のスキャンチェーンをリセットするように、リセット・イネーブル回路のコントローラの制御データを生成するために使用できる。
【０１１７】
図４５に示し、上記論じた例示的な実施形態も、リセット・イネーブル回路を有するアーキテクチャに関してテストパターンを生成するために使用できる。当該実施形態では、リセット・イネーブル回路のリセット信号は生成されるテストキューブに基づいて生成できる。たとえば、リセット信号は、リセット・イネーブル回路に、テスト中テストキューブを有するテストパターンに対するテスト応答が捕獲された後、テストキューブから故障影響を観測されないスキャンチェーンにリセット信号を適用させることが可能である。図４５に示し、上記論じた例示的な実施形態も、シフトクロック・イネーブル回路を有するアーキテクチャ（例、リセット・イネーブル回路と組み合わせて）に関するテストパターンを生成するために使用できる。当該実施形態では、シフトクロック・イネーブル回路の制御信号はテストキューブに基づいて生成できる。これらの制御信号は、テスト中にテストキューブによるテストパターンに対するテスト応答が捕獲された後、シフトクロック・イネーブル回路に、テストキューブから故障影響が観測されないスキャンチェーンからシフトクロック信号を抑制させることが可能である。
Ｄ．スキャンシフトおよびキャプチャ両方のスイッチング動作の減少
キャプチャ中のスイッチング動作を減少させるため、およびスキャンシフト中にスイッチング動作をさらに減少させるために、プログラム可能リセット／シフトクロック３２１０は、前のセクションのいずれかで説明したプログラム可能テスト刺激セレクタおよびプログラム可能クロック・イネーブラーと組み合わせて使用できる。このような実施態様の例示的なスキャン・アーキテクチャ３５００を図３５に示す。
【０１１８】
この実施態様を使用する例示的なテスト適用手順は、テストパターンｔｉのリセット・イネーブルを制御する制御データおよびテストパターンｔｉ＋１のシフト・イネーブルを制御する制御データを、プログラム可能コントローラにロードする工程と、テスト刺激ｔｉをスキャンチェーンにシフトする工程（テスト刺激のシフトイン中、プログラム可能テストパターンセレクタがテストパターンのソースを選択する）と、スキャンシフト操作の終了時にGlobal_Clock_Enableをディアサートする工程と、キャプチャ・クロックを適用する工程（新たなデータを捕獲するために選択されるスキャンセルは、プログラム可能クロック・イネーブラーで制御される）と、Reset_Clockピンをアサートして、それを所要のクロックサイクル数の間アクティブ状態に保持する工程と、Reset_Clockピンをディアサートする工程と、Global_Clock_Enable信号をアサートする工程と、スキャンチェーンからテスト応答をシフトアウトする工程とを含む。
【０１１９】
図３５に示すアーキテクチャ３５００では、シフトクロックとキャプチャ・クロックとは同じである。ただし、図３５のアーキテクチャは、異なるシフトクロックとキャプチャ・クロックとを使用するように変更できる。たとえば、スキャンシフトモードでは、Global_Clock_Enableを１にアサートでき、シフトクロックはプログラム可能シフト／リセットクロック・イネーブラーによって制御できる。キャプチャモードでは、Global_Clock_Enableをディアサートでき、キャプチャクロックはプログラム可能クロック・イネーブラーによって制御できる。ピン数を減らすために、ピンGlobal_Clock_Enableは、ピンScan_Enableと共有できる。
Ｅ．未知状態の抑制
プログラム可能リセット・イネーブル回路を使用して、Ｘ状態をスキャンチェーンから出力させないようにすることができる。たとえば、そうしなければ捕獲されて出力されるかもしれない著しい数のＸ状態は、プログラム可能リセット・イネーブラーを使用して排除できる。具体的には、スキャンチェーンにテスト応答を捕獲した後、未知状態を捕獲したことは分かっているが、対象とする故障を示すテスト応答値は捕獲しなかった（または捕獲したテスト応答値が所望のテストカバレッジには大幅に寄与しない）１つまたは複数のスキャンチェーンで、Reset_Clock信号をイネーブルできる。その結果、スキャンチェーンの値は既知の定数にリセットされることになる。スキャン・イネーブラーを使用する場合と同様、リセット・イネーブラーを使用してＸ状態を捕獲しないようにする場合、スキャンチェーンの出力側にはカスタマイズされたゲーティング論理を使用する必要はない。所望の機能性は、テスト応答を捕獲した後で所望のスキャンチェーンをリセットすることによって達成できる。すなわち、Ｘ状態をもつスキャンチェーンをゲーティングする代わりに、１つまたは複数の例示的なリセット・イネーブル回路３２３２を使用して、スキャンチェーンで捕獲された値を既知の定数にリセットできる。プログラム可能リセット・イネーブラー３２１０は、たとえば、事前計算されたデータ（例、上記特許文献８、９および１０、ならびに非特許文献１に記述される例示的な方法のいずれかで計算される）によって駆動できる。
【０１２０】
Ｘ状態を出力させないリセット・イネーブル回路の制御データを生成するための例示的な技術は、被テスト回路に適用するテストパターンをシミュレートして、シミュレートしたテスト応答を生成する工程と、シミュレートしたテスト応答から未知状態を捕獲する被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、未知状態を有するテスト応答を捕獲した後、リセット・イネーブル回路に特定された１つまたは複数のスキャンチェーンにおける値をリセットさせる制御信号を生成する工程とを含む。生成される制御信号は１つまたは複数のコンピュータ可読媒体に記憶して、その後テスト適用中にリセット・イネーブル回路のプログラム可能コントローラにロードできる。
ＶＩＩＩ．実験結果
スキャンシフト操作は電力を消費するが、これは被テスト回路（「ＣＵＴ」）のスキャンチェーンおよび他の部位で発生する遷移の数に直接依存する。その結果生じるスイッチング動作は、連続するスキャンセルで引き起こされる遷移の数を数えるだけでなく、その相対的な位置も考慮した重み付け遷移計量法によって推定できる。ｍをスキャンチェーンの長さとすると、Ｔ＝ｂ１ｂ２．．．．ｂｍはビットｂｋがｂｋ＋１の前にスキャンインされるテスト・ベクトルを表す。さらに、計量法の正規化形式は以下のように定義できる。
【０１２１】
【数２】
0005537158.tif 000012
【０１２２】
テスト適用中に消費される平均スキャン電力は、すべてのスキャンチェーンおよびすべてのテストパターンに関して上記式で得られた結果を総計することによって求めることができる。
前述した低消費電力アプローチの実施形態をいくつかの工業用設計でテストした。
このセクションでは、サイズが２２０Ｋゲートから１０．５Ｍゲートまでの範囲で、図３６の例示的なアーキテクチャ３６００を使用する回路の結果を提示する。各設計について、スキャンチャネル数を８に固定し、全事例において４８ビットのデコンプレッサを利用することにより、圧縮レベルの異なるＥＤＴを使用した。これらの実験結果を表７にまとめている。ゲート数に加えて、各回路について次の情報を記している。適用するテストパターン数、充填率（指定ビットのパーセンテージ）、制御レジスタ（「ＣＲ」）のサイズ、標準的なembedded deterministic testを採用すると仮定した重み付け遷移計量法によって測定するスイッチング率（欄「ＳＤＴ」）、提案する低消費電力スキーム使用後のスイッチング率（欄「ＬＰ」）。見て分かるように、実験したすべての事例において、遷移の総数の実質的な減少が達成されており、そのため大幅に減少したスイッチング率が観測された。
【０１２３】
【表７】
0005537158.tif 000013
【０１２４】
ＩＸ．例示的なコンピューティング環境
前述した技術の態様のいずれも、分散型コンピュータネットワークを使用して実施してもよい。図３７は適した一つの例示的なネットワークを示す。サーバコンピュータ３７００は関連する記憶装置３７０２を（サーバコンピュータの内部または外部に）有することができる。たとえば、サーバコンピュータ３７００は開示する方法のいずれかに従いテストパターン、テストパターン値または制御データを生成するように、または開示するアーキテクチャ（たとえば、テストパターン生成ツールなどのＥＤＡソフトウェアツールの一部として）を実装する設計データを生成するように構成できる。サーバコンピュータ３７００は、全体を３７０４で示すネットワークに連結でき、これは、たとえば、広域ネットワーク、ローカルエリアネットワーク、クライアント・サーバネットワーク、インターネットまたはその他適したネットワークを含むことができる。３７０６，３７０８に示すような１つまたは複数のクライアントコンピュータは、ネットワーク・プロトコルを使用してネットワーク３７０４に連結してもよい。作業は、それ自体のメモリおよび１つまたは複数のＣＰＵを有する単一の専用ワークステーションで実施してもよい。
【０１２５】
図３８は別の例示的なネットワークを示す。１つまたは複数のコンピュータ３８０２はネットワーク３８０４を介して通信するとともに、コンピューティング環境３８００（たとえば、分散型コンピューティング環境）を形成する。コンピューティング環境３８００内のコンピュータ３８０２の各々を使って、テストパターン生成、制御データ生成またはテストハードウェア生成プロセスの少なくとも一部を実施できる。図示する実施形態のネットワーク３８０４は１つまたは複数のクライアント・コンピュータ３８０８にも連結される。
【０１２６】
図３９は、開示する技術のいずれかの実施形態に従ってテストパターン、制御データまたはテストハードウェアを生成するために、被テスト回路の設計情報（たとえば、ＨＤＬファイル、ネットリスト、ＧＤＳＩＩファイル、Ｏａｓｉｓファイル、またはそのスキャンチェーンと合わせて被テスト回路を表すその他適した設計ファイル）は、リモートサーバコンピュータ（図３７に図示するサーバコンピュータ３７００など）またはリモートコンピューティング環境（図３８に図示するコンピューティング環境３８００など）を使って解析できることを示す。プロセスブロック３９０２で、たとえば、クライアントコンピュータは集積回路設計情報をリモートサーバまたはコンピューティング環境に送信する。プロセスブロック３９０４で、リモートサーバまたはリモートコンピューティング環境の各コンポーネントが、集積回路設計情報を受信してロードする。プロセスブロック３９０６で、開示する実施形態のいずれかを実施するために、テストパターン生成、制御信号生成またはテストハードウェア生成を行う。プロセスブロック３９０８で、リモートサーバまたはコンピューティング環境は生成されたテストパターン、制御信号、または生成されたテストハードウェアが記憶された設計データを、クライアントコンピュータに送信し、クライアントコンピュータはプロセスブロック３９１０でデータを受信する。
【０１２７】
図３９００に示す実施例は、複数のコンピュータを使ってテストパターン、制御データ、またはテストハードウェアの設計データを生成する唯一の方法ではないことは、当業者には明らかであろう。たとえば、ＣＵＴ設計情報はネットワーク上になく、かつサーバまたはコンピューティング環境に個別に送られるコンピュータ可読媒体（たとえば、ＣＤ−ＲＯＭ，ＤＶＤ，またはポータブルハードドライブ）に記憶してもよい。または、サーバコンピュータまたはリモートコンピューティング環境は、テストパターン生成手順、制御データ生成手順またはテストハードウェア生成手順の一部だけを実施してもよい。
【０１２８】
開示する技術の原理を例示および説明してきたが、開示する実施形態は当該原理を逸脱することなく構成および細部を変更できることは当業者には明らかであろう。開示する技術の原理を適用できる数多くの実施形態に鑑み、例示する実施形態はこの技術の好適な実施例にすぎず、本発明の範囲を限定するものと解釈してはならないことは認識されたい。そうではなく、本発明の範囲は以下の特許請求の範囲およびその均等物によって定義される。そのため、本発明として、これら特許請求の範囲および精神内にあるすべてを請求する。
本発明の精神および範囲は、添付する特許請求の範囲の中に存在するが、本願の出願時に存在し、その一部は補正により削除された、以下の［予備的な特許請求の範囲］の中にも潜在する。この［予備的な特許請求の範囲］の記載事項は、本願明細書の開示に含まれるものとする。
［予備的な特許請求の範囲］
［請求項２８］
デコンプレッサから受信され、ｍ個の入力パスで集積回路をテストするためのオリジナルテストパターン値を受信する工程と、
ｎがｍ未満のとき、ｍ個の入力パスのうち少なくともｎ個の入力パスで前記テストパターン値を選択的に変更して、前記ｎ個の入力パスで前記テストパターン値が少なくとも２つの連続する定数値となるようにする工程と、
ｍ個のスキャンチェーン入力パスのうちｎ個の入力パスで前記少なくとも２つの連続する定数値を含むテストパターン値を、ｍ個のスキャンチェーン入力パスで出力する工程と、
を含む方法。
［請求項２９］
前記ｍ個の入力パスのうちのどれを変更するかを示す制御データを受信する工程をさらに含むことを特徴とする、請求項２８に記載の方法。
［請求項３０］
前記オリジナルテストパターン値は第１テストパターンに関するものであり、当該方法は、前記ｍ個の入力パスのうちどれを変更するかを選択する前記制御データを、複数の追加のテストパターンに再利用する工程をさらに含むことを特徴とする、請求項２９に記載の方法。
［請求項３１］
前記出力されるテストパターン値は、前記集積回路内の１つまたは複数の故障を対象とする前記オリジナルテストパターンのすべての指定ビットを含むことを特徴とする、請求項２８に記載の方法。
［請求項３２］
前記テストパターン値を選択的に変更する前記工程は、前記少なくとも２つの連続する定数値を生じるように構成されている論理ゲートに制御信号を適用する工程を含むことを特徴とする、請求項２８に記載の方法。
［請求項３３］
集積回路内のスキャンチェーンのデータ入力部に連結されているデコンプレッサと、
制御信号を生成するよう構成されているコントローラと、
前記コントローラに連結されている入力部と、前記スキャンチェーンのスキャンセルのスキャン・イネーブル入力部に連結されている出力部とを有するスキャン・イネーブル回路と、を含む集積回路であって、
前記スキャン・イネーブル回路は、前記スキャン・イネーブル回路の前記出力部のうち１つまたは複数の出力部で、独立して制御可能なスキャン・イネーブル信号を生成するよう構成されており、前記独立して制御可能なスキャン・イネーブル信号の前記値は、少なくとも部分的には前記コントローラからの前記制御信号に基づいていることを特徴とする、集積回路。
［請求項３４］
前記独立して制御可能なスキャン・イネーブル信号の前記値は第１スキャン・イネーブル値と第２スキャン・イネーブル値とを含み、前記第１スキャン・イネーブル値は、１つまたは複数の前記スキャンチェーンにシフトモードで動作させるために使用し、前記第２スキャン・イネーブル値は、前記１つまたは複数のスキャンチェーンを通常回路モードで動作させるために使用することを特徴とする、請求項３３に記載の集積回路。
［請求項３５］
前記スキャン・イネーブル回路の各出力部は、１つまたは複数の前記スキャンチェーンのそれぞれの前記スキャンセルの前記スキャン・イネーブル入力部に連結されていることを特徴とする、請求項３３に記載の集積回路。
［請求項３６］
前記スキャンセルによって形成されるスキャンチェーンに連結するよう構成されている出力部を有するテスト刺激セレクタをさらに含み、前記テスト刺激セレクタは、前記テスト刺激セレクタの前記出力部毎に、オリジナルテストパターン値または定数値のいずれかを選択的に出力するよう構成されていることを特徴とする、請求項３３に記載の集積回路。
［請求項３７］
前記コントローラは、外部テスタ、前記集積回路上のメモリ、または前記集積回路上のテスト生成器のいずれか１つから制御データをロードするよう構成されているプログラム可能コントローラであることを特徴とする、請求項３３に記載の集積回路。
［請求項３８］
前記コントローラは制御データをロードして出力するためのシフトレジスタを含み、前記シフトレジスタは多段レジスタ・パイプラインを形成することを特徴とする、請求項３３に記載の集積回路。
［請求項３９］
前記１つまたは複数のシフトレジスタに連結されている１つまたは複数のシャドウレジスタをさらに含む、請求項３８に記載の集積回路。
［請求項４０］
前記コントローラは、
前記シフトレジスタの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークと、
前記ＸＯＲまたはＸＮＯＲネットワークに連結されており、前記ＸＯＲまたはＸＮＯＲネットワークの出力のうち１つまたは複数の出力をバイアスして、前記バイアスされた各出力毎に個別のバイナリ値をより出しやすいように構成されているバイアス回路と、
をさらに含むことを特徴とする、請求項３８に記載の集積回路。
［請求項４１］
請求項３３に記載の前記回路のための設計データを記憶しているコンピュータ可読媒体。
［請求項４２］
コンピュータに請求項３３に記載の前記集積回路を作製させるためのコンピュータ実行可能命令を記憶しているコンピュータ可読媒体。
［請求項４３］
デコンプレッサから、解凍されたテストパターンをスキャンチェーンにロードするとき、前記スキャンチェーンを１つまたは複数のシフトレジスタとして動作させるスキャン・イネーブル信号を、被テスト回路の前記スキャンチェーンに適用する工程と、
前記解凍されたテストパターンに対するテスト応答を、前記スキャン・イネーブル信号が適用されない前記スキャンチェーンの残りで捕獲するとき、１つまたは複数の前記スキャンチェーンに前記スキャン・イネーブル信号を適用する工程と、
を含む方法。
［請求項４４］
前記スキャン・イネーブル信号が適用される前記１つまたは複数の前記スキャンチェーンは、適用されなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンを含むことを特徴とする、請求項４３に記載の方法。
［請求項４５］
前記スキャンチェーンから前記テスト応答がアンロードされるとき、前記被テスト回路の前記スキャンチェーンに前記スキャン・イネーブル信号を適用する工程をさらに含むことを特徴とする、請求項４３に記載の方法。
［請求項４６］
前記解凍されたテストパターンに対する前記テスト応答が捕獲されるとき、前記スキャンチェーンのどれが前記スキャン・イネーブル信号を適用されるかを制御する制御信号を受信する工程をさらに含むことを特徴とする、請求項４３に記載の方法。
［請求項４７］
解凍された複数の追加のテストパターンが前記スキャンチェーンにロードされるとき、前記制御信号を再利用する工程をさらに含むことを特徴とする、請求項４６に記載の方法。
［請求項４８］
前記テストパターンが前記スキャンチェーンにロードされているときに、次のテストパターンに関する制御信号をロードする工程をさらに含むことを特徴とする、請求項４３に記載の方法。
［請求項４９］
請求項４３に記載の前記方法を実施するように構成されている回路。
［請求項５０］
集積回路内のスキャンチェーンのデータ入力部に連結されているデコンプレッサと、
制御信号を生成するよう構成されているコントローラと、
前記コントローラに連結されている入力部と、前記スキャンチェーンのスキャンセルのクロック入力部に連結されている出力部とを有するクロック・イネーブル回路と、を含む集積回路であって、
前記クロック・イネーブル回路は、少なくとも部分的には前記コントローラからの前記制御信号に基づいて、前記クロック・イネーブル回路の前記出力部のうち１つまたは複数の出力部で、独立して制御可能なクロック信号を生成するよう構成されていることを特徴とする、集積回路。
［請求項５１］
前記クロック・イネーブル回路で生成される前記独立して制御可能なクロック信号は、キャプチャ・クロック信号であることを特徴とする、請求項５０に記載の集積回路。
［請求項５２］
前記クロック・イネーブル回路の各出力部は、前記集積回路の１つまたは複数の前記スキャンチェーンそれぞれの前記スキャンセルの前記クロック入力部に連結されていることを特徴とする、請求項５０に記載の集積回路。
［請求項５３］
前記クロック・イネーブル回路は、前記クロック・イネーブル回路の各出力部それぞれを制御するために個別のクロック・イネーブラー回路を含むことを特徴とする、請求項５０に記載の集積回路。
［請求項５４］
前記スキャンセルによって形成されるスキャンチェーンに連結するよう構成されている出力部を有するテスト刺激セレクタをさらに含み、前記テスト刺激セレクタは、前記テスト刺激セレクタの前記出力部毎に、オリジナルテストパターン値または定数値のいずれかを選択的に出力するよう構成されていることを特徴とする、請求項５０に記載の集積回路。
［請求項５５］
前記コントローラは、外部テスタ、前記集積回路上のメモリ、または前記集積回路上のテスト生成器のいずれか１つから制御データをロードするよう構成されているプログラム可能コントローラであることを特徴とする、請求項５０に記載の集積回路。
［請求項５６］
前記コントローラは制御データをロードして出力するためのシフトレジスタを含み、前記シフトレジスタは多段レジスタ・パイプラインを形成することを特徴とする、請求項５０に記載の集積回路。
［請求項５７］
前記１つまたは複数のシフトレジスタに連結されている１つまたは複数のシャドウレジスタをさらに含むことを特徴とする、請求項５６に記載の集積回路。
［請求項５８］
前記コントローラは、
前記シフトレジスタの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークと、
前記ＸＯＲまたはＸＮＯＲネットワークに連結されており、前記ＸＯＲまたはＸＮＯＲネットワークの出力のうち１つまたは複数の出力をバイアスして、前記バイアスされた各出力毎に個別のバイナリ値をより出しやすいように構成されているバイアス回路と、
をさらに含むことを特徴とする、請求項５６に記載の集積回路。
［請求項５９］
請求項５０に記載の前記回路のための設計データを記憶しているコンピュータ可読媒体。
［請求項６０］
コンピュータに請求項５０に記載の前記集積回路を作製させるためのコンピュータ実行可能命令を記憶しているコンピュータ可読媒体。
［請求項６１］
デコンプレッサから解凍されたテストパターンを被テスト回路のスキャンチェーンにロードするとき、前記被テスト回路の前記スキャンチェーンにクロック信号を適用する工程と、
キャプチャウィンドウ中に前記解凍されたテストパターンに対するテスト応答が捕獲されるとき、すべてではないが１つまたは複数の前記スキャンチェーンまたは前記スキャンチェーンのセグメントへの前記クロック信号を抑制する工程であって、前記抑制により前記すべてではないが１つまたは複数の前記スキャンチェーンまたは前記スキャンチェーンのセグメントが前記キャプチャウィンドウ中で定常状態にとどまる、工程と、
を含む方法。
［請求項６２］
前記すべてではないが１つまたは複数の前記スキャンチェーンまたは前記スキャンチェーンのセグメントは、抑制しなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンまたは前記スキャンチェーンのセグメントを含むことを特徴とする、請求項６１に記載の方法。
［請求項６３］
前記テスト応答が前記スキャンチェーンからアンロードされるとき、前記被テスト回路の前記スキャンチェーンに前記クロック信号を適用する工程をさらに含むことを特徴とする、請求項６１に記載の方法。
［請求項６４］
前記キャプチャウィンドウ中にどのスキャンチェーンまたは前記スキャンチェーンのセグメントが前記クロック信号を抑制させるかを制御する制御信号を受信する工程をさらに含むことを特徴とする、請求項６１に記載の方法。
［請求項６５］
解凍された多数の追加のテストパターンに対するテスト応答が捕獲されるとき、前記制御信号を再利用する工程をさらに含むことを特徴とする、請求項６４に記載の方法。
［請求項６６］
前記クロック信号は、前記テストパターンが前記スキャンチェーンにロードされるときの第１周波数と、前記テスト応答が前記キャプチャウィンドウに捕獲されるときの第２周波数とを有することを特徴とする、請求項６１に記載の方法。
［請求項６７］
前記テストパターンが前記スキャンチェーンにロードされているときに、次のテストパターンに関する制御信号をロードする工程をさらに含むことを特徴とする、請求項６１に記載の方法。
［請求項６８］
請求項６１に記載の前記方法を実施するよう構成されている回路。
［請求項６９］
集積回路内のスキャンチェーンのデータ入力部に連結されているデコンプレッサと、
制御信号を生成するよう構成されているコントローラと、
前記コントローラに連結されている入力部と、前記スキャンチェーンのスキャンセルのリセット入力部に連結されている出力部とを有するリセット・イネーブル回路と、を含む集積回路であって、
前記リセット・イネーブル回路は、少なくとも部分的には前記コントローラからの前記制御信号に基づいて、前記リセット・イネーブル回路の前記出力部のうち１つまたは複数の出力部で、リセット信号を選択的に生成するよう構成されていることを特徴とする、集積回路。
［請求項７０］
前記集積回路内の前記スキャンセルは、前記リセット信号が前記リセット入力部に適用されるとき、０または１にリセットされるように構成されていることを特徴とする、請求項６９に記載の集積回路。
［請求項７１］
前記リセット・イネーブル回路は、前記リセット・イネーブル回路の各出力部のそれぞれを制御するために、個別のリセット・イネーブラー回路を含むことを特徴とする、請求項６９に記載の集積回路。
［請求項７２］
前記リセット・イネーブル回路の各出力部は、前記集積回路の１つまたは複数のスキャンチェーンそれぞれの前記スキャンセルの前記リセット入力部に連結されていることを特徴とする、請求項６９に記載の集積回路。
［請求項７３］
前記スキャンセルの前記リセット入力部は、前記スキャンセルの非同期制御ピンを含むことを特徴とする、請求項６９に記載の集積回路。
［請求項７４］
シフトクロック・イネーブル回路をさらに含み、前記シフトクロック・イネーブル回路は前記集積回路内のスキャンチェーンのシフトクロック入力部に連結されている出力部を有し、前記シフトクロック・イネーブル回路は、前記シフトクロック・イネーブル回路の前記出力部のうち１つまたは複数の出力部で、シフトクロック信号を選択的に生成するよう構成されていることを特徴とする、請求項６９に記載の集積回路。
［請求項７５］
前記シフトクロック・イネーブル回路は、前記コントローラに連結されている入力部をさらに含んでおり、選択的に生成される前記シフトクロック信号は少なくとも部分的には前記コントローラからの前記制御信号に基づくことを特徴とする、請求項７４に記載の集積回路。
［請求項７６］
前記スキャンセルによって形成されるスキャンチェーンに連結するよう構成されている出力部を有するテスト刺激セレクタをさらに含み、前記テスト刺激セレクタは、前記テスト刺激セレクタの前記出力部毎に、オリジナルテストパターン値または定数値のいずれかを選択的に出力するよう構成されていることを特徴とする、請求項６９に記載の集積回路。
［請求項７７］
前記コントローラは、外部テスタ、前記集積回路上のメモリ、または前記集積回路上のテスト生成器のいずれか１つから、制御データをロードするよう構成されているプログラム可能コントローラであることを特徴とする、請求項６９に記載の集積回路。
［請求項７８］
前記コントローラは制御データをロードして出力するためのシフトレジスタを含み、前記シフトレジスタは多段レジスタ・パイプラインを形成することを特徴とする、請求項６９に記載の集積回路。
［請求項７９］
前記１つまたは複数のシフトレジスタに連結されている１つまたは複数のシャドウレジスタをさらに含むことを特徴とする、請求項７８に記載の集積回路。
［請求項８０］
前記コントローラは、
前記シフトレジスタの少なくとも１つに連結されているＸＯＲまたはＸＮＯＲネットワークと、
前記ＸＯＲまたはＸＮＯＲネットワークに連結されており、前記ＸＯＲまたはＸＮＯＲネットワークの前記出力のうち１つまたは複数の出力をバイアスして、前記バイアスした各出力毎に個別のバイナリ値をより出しやすいように構成されているバイアス回路と、
をさらに含むことを特徴とする、請求項７８に記載の集積回路。
［請求項８１］
請求項６９に記載の前記回路のための設計データを記憶しているコンピュータ可読媒体。
［請求項８２］
コンピュータに請求項６９に記載の前記集積回路を作製させるためのコンピュータ実行可能命令を記憶しているコンピュータ可読媒体。
［請求項８３］
デコンプレッサによって解凍されたテストパターンに対するテスト応答を、被テスト回路のスキャンチェーンで捕獲する工程と、
前記テストパターンに対する前記テスト応答を捕獲した後、すべてではないが１つまたは複数の前記スキャンチェーンまたは前記スキャンチェーンのセグメントにリセット信号を適用する工程と、
前記リセット信号を適用した後、前記スキャンチェーンの内容をアンロードする工程と、
を含む方法。
［請求項８４］
前記リセット信号が適用される前記１つまたは複数のスキャンチェーンまたは前記スキャンチェーンのセグメントは、適用されなければ未知の値を捕獲していたはずの１つまたは複数のスキャンチェーンまたは前記スキャンチェーンのセグメントを含むことを特徴とする、請求項８３に記載の方法。
［請求項８５］
前記リセット信号の前記適用により、前記すべてではないが１つまたは複数のスキャンチェーンまたは前記スキャンチェーンのセグメントに捕獲された値を単一の定数値にすることを特徴とする、請求項８３に記載の方法。
［請求項８６］
どのスキャンチェーンまたは前記スキャンチェーンのセグメントが前記リセット信号を適用されるかを制御する制御信号を受信する工程をさらに含むことを特徴とする、請求項８３に記載の方法。
［請求項８７］
複数の追加のテストパターンに対するテスト応答に、前記制御信号を再利用する工程をさらに含むことを特徴とする、請求項８６に記載の方法。
［請求項８８］
前記テストパターンが前記スキャンチェーンにロードされているときに、次のテストパターンに関する制御信号をロードする工程をさらに含むことを特徴とする、請求項８３に記載の方法。
［請求項８９］
請求項８３に記載の前記方法を実施するよう構成されている回路。
［請求項９０］
コンピュータに方法を実施させるためのコンピュータ実行可能命令を記憶している１つまたは複数のコンピュータ可読媒体であって、前記方法が、
オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を判定する工程であって、前記数は回路設計において利用できるスキャンチェーンの数未満である、工程と、
対象故障リストからある故障を選択する工程と、
前記選択した故障のテストキューブを生成する工程であって、前記テストキューブはある数の指定スキャンチェーンに指定ビットを含む、工程と、
前記テストキューブ内の前記指定スキャンチェーンの数が前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数未満であるか否かを判定する工程と、
前記テストキューブ内の指定スキャンチェーンの数が前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超えない場合、前記テストキューブを記憶する工程と、
を含む、１つまたは複数のコンピュータ可読媒体。
［請求項９１］
前記故障は第１故障であり、前記方法は、
前記テストキューブ内の指定スキャンチェーンの数が前記オリジナルテスト刺激によって駆動されるべきスキャンチェーンの数を超える場合、前記テストキューブを拒絶する工程と、
前記対象故障リストからの第２故障に関して前記選択、生成、判定および記憶する工程を繰り返す工程と、
をさらに含むことを特徴とする、請求項９０に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９２］
前記故障は第１故障であり、前記方法は、
前記対象故障リストから第２故障を選択する工程と、
前記第１故障の前記テストキューブを、前記第２故障を検出するための１つまたは複数の追加の指定ビットを含むように拡張する工程と、
前記１つまたは複数の追加の指定ビットにより、前記拡張されたテストキューブ内の指定スキャンチェーンの数が前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超えるか否かを判定する工程と、
前記拡張されたテストキューブ内の指定スキャンチェーンの数が前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超えない場合、前記拡張されたテストキューブを記憶する工程と、
をさらに含むことを特徴とする、請求項９０に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９３］
前記方法は、
前記拡張されたテストキューブ内の指定スキャンチェーンの数が前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を超える場合、前記拡張されたテストキューブを拒絶する工程と、
前記対象故障リストから第３の故障に関して前記選択、拡張、判定および記憶する工程を繰り返す工程と、
をさらに含むことを特徴とする、請求項９２に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９４］
前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を判定する前記工程は、テスト刺激セレクタのためのコントローラのエンコード能力を判定する工程を含むことを特徴とする、請求項９０に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９５］
前記オリジナルテスト刺激ソースは、外部テスタによって提供される圧縮テストパターンを解凍するよう構成されているデコンプレッサであることを特徴とする、請求項９０に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９６］
前記方法は、前記テストキューブに基づいてテスト刺激セレクタのための制御信号を生成する工程をさらに含み、前記制御信号は、テスト中に前記テストキューブによるテストパターンがロードされるときに、前記テスト刺激セレクタに未指定のスキャンチェーンに定数値を適用させることができることを特徴とする、請求項９０に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９７］
前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数は、テスト刺激セレクタが個別に制御できるスキャンチェーンの最大数に基づくことを特徴とする、請求項９０に記載の１つまたは複数のコンピュータ可読媒体。
［請求項９８］
コンピュータに方法を実施させるためのコンピュータ実行可能命令を記憶している１つまたは複数のコンピュータ可読媒体であって、前記方法は、
故障影響の観測に使用可能なスキャンチェーンの数を判定する工程であって、前記数は回路設計において利用できるスキャンチェーンの数未満である、工程と、
対象故障リストからある故障を選択する工程と、
前記選択した故障のテストキューブを生成する工程と、
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数を判定する工程と、
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数が、前記故障影響の観測に使用可能なスキャンチェーンの数未満であるか否かを評価する工程と、
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数が、前記故障影響の観測に使用可能なスキャンチェーンの数未満である場合、前記テストキューブを記憶する工程と、
を含む、１つまたは複数のコンピュータ可読媒体。
［請求項９９］
前記故障は第１故障であり、前記方法は、
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数が、前記故障影響の観測に使用可能なスキャンチェーンの数を超える場合、前記テストキューブを拒絶する工程と、
前記対象故障リストからの第２故障に関して前記選択、生成、判定、評価および記憶する工程を繰り返す工程と、
をさらに含むことを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１００］
前記対象故障リストからの前記故障は前記対象故障リストからの第１故障であり、前記方法は、
前記対象故障リストから第２故障を選択する工程と、
前記第１故障のための前記テストキューブを、前記第２故障を検出するための１つまたは複数の追加の指定ビットを含むように拡張する工程と、
前記１つまたは複数の追加の指定ビットにより、前記拡張されたテストキューブから故障影響の観測に使用されるスキャンチェーンの数が、前記故障影響の観測に使用可能なスキャンチェーンの数を超えるか否かを判定する工程と、
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数が、前記故障影響の観測に使用可能なスキャンチェーンの数未満の場合、前記拡張されたテストキューブを記憶する工程と、
をさらに含むことを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０１］
前記方法は、
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数が、前記故障影響の観測に使用可能なスキャンチェーンの数を超える場合、前記拡張されたテストキューブを拒絶する工程と、
前記対象故障リストからの第３故障に関して、前記選択、拡張、判定および記憶する工程を繰り返す工程と、
をさらに含むことを特徴とする、請求項１００に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０２］
前記故障影響の観測に使用可能なスキャンチェーンの数を判定する工程は、スキャン・イネーブル回路のコントローラ、クロック・イネーブル回路のコントローラ、リセット・イネーブル回路のコントローラ、またはシフトクロック・イネーブル回路のコントローラのエンコード能力を判定する工程を含むことを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０３］
前記テストキューブから故障影響の観測に使用されるスキャンチェーンの数を判定する工程は、被テスト回路への前記テストキューブの適用をシミュレートする工程を含むことを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０４］
前記オリジナルテスト刺激ソースは、外部テスタによって提供される圧縮テストパターンを解凍するよう構成されているデコンプレッサであることを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０５］
前記方法は、前記テストキューブに基づいてスキャン・イネーブル回路のための制御信号を生成する工程をさらに含み、テスト中に前記テストキューブによるテストパターンが適用されたとき、前記制御信号は、前記スキャン・イネーブル回路に、前記テストキューブから故障影響を観測しないスキャンチェーンからのスキャン・イネーブル信号を抑制させることができることを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０６］
前記方法は、前記テストキューブに基づいてクロック・イネーブル回路のための制御信号を生成する工程をさらに含み、テスト中に前記テストキューブによるテストパターンが適用されたとき、前記制御信号は、前記クロック・イネーブル回路に、前記テストキューブから故障影響を観測しないスキャンチェーンからのクロック信号を抑制させることができることを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０７］
前記方法は、前記テストキューブに基づいてリセット・イネーブル回路のための制御信号を生成する工程をさらに含み、テスト中に前記テストキューブによるテストパターンに対するテスト応答を捕獲した後、前記制御信号は、前記リセット・イネーブル回路に、前記テストキューブから故障影響を観測しないスキャンチェーンにリセット信号を適用させることができることを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０８］
前記方法は、前記テストキューブに基づいてシフトクロック・イネーブル回路のための制御信号を生成する工程をさらに含み、テスト中に前記テストキューブによるテストパターンに対するテスト応答を捕獲した後、前記制御信号は、前記シフトクロック・イネーブル回路に、前記テストキューブから故障影響を観測しないスキャンチェーンからのシフトクロック信号を抑制させることができることを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１０９］
オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数を判定する工程をさらに含み、前記オリジナルテスト刺激ソースによって駆動されるべきスキャンチェーンの数は、スキャン・イネーブル回路、クロック・イネーブル回路、リセット・イネーブル回路、またはシフトクロック・イネーブル回路によって独立して制御できるスキャンチェーンの最大数に基づくことを特徴とする、請求項９８に記載の１つまたは複数のコンピュータ可読媒体。
［請求項１１０］
コンピュータに方法を実施させるためのコンピュータ実行可能命令を記憶する１つまたは複数のコンピュータ可読媒体であって、前記方法は、
被テスト回路へのテストパターンの適用をシミュレートし、それによってシミュレートされたテスト応答を生じる工程と、
前記シミュレートされたテスト応答から未知状態を捕獲する前記被テスト回路の１つまたは複数のスキャンチェーンを特定する工程と、
キャプチャウィンドウ中に、前記特定された１つまたは複数のスキャンチェーンで、スキャン・イネーブル回路にスキャン・イネーブル信号を抑制させる制御信号、前記キャプチャウィンドウ中に、前記特定された１つまたは複数のスキャンチェーンで、クロック・イネーブル回路に前記キャプチャ・クロックを抑制させる制御信号、または前記特定された１つまたは複数のスキャンチェーンで、リセット・イネーブル回路にリセット信号を生成させる制御信号を生成する工程と、
前記制御信号を１つまたは複数のコンピュータ可読媒体に記憶する工程と、
を含む、１つまたは複数のコンピュータ可読媒体。
【図１】
0005537158.tif 000014
【図２（ａ）】
0005537158.tif 000015
【図２（ｂ）】
0005537158.tif 000016
【図２（ｃ）】
0005537158.tif 000017
【図２（ｄ）】
0005537158.tif 000018
【図３（ａ）】
0005537158.tif 000019
【図３（ｂ）】
0005537158.tif 000020
【図３（ｃ）】
0005537158.tif 000021
【図３（ｄ）】
0005537158.tif 000022
【図４】
0005537158.tif 000023
【図５（ａ）】
0005537158.tif 000024
【図５（ｂ）】
0005537158.tif 000025
【図５（ｃ）】
0005537158.tif 000026
【図５（ｄ）】
0005537158.tif 000027
【図６】
0005537158.tif 000028
【図７】
0005537158.tif 000029
【図８】
0005537158.tif 000030
【図９】
0005537158.tif 000031
【図１０】
0005537158.tif 000032
【図１１】
0005537158.tif 000033
【図１２】
0005537158.tif 000034
【図１３】
0005537158.tif 000035
【図１４】
0005537158.tif 000036
【図１５】
0005537158.tif 000037
【図１６】
0005537158.tif 000038
【図１７】
0005537158.tif 000039
【図１８】
0005537158.tif 000040
【図１９】
0005537158.tif 000041
【図２０】
0005537158.tif 000042
【図２１】
0005537158.tif 000043
【図２２】
0005537158.tif 000044
【図２３】
0005537158.tif 000045
【図２４】
0005537158.tif 000046
【図２５】
0005537158.tif 000047
【図２６】
0005537158.tif 000048
【図２７】
0005537158.tif 000049
【図２８】
0005537158.tif 000050
【図２９】
0005537158.tif 000051
【図３０】
0005537158.tif 000052
【図３１】
0005537158.tif 000053
【図３２】
0005537158.tif 000054
【図３３】
0005537158.tif 000055
【図３４】
0005537158.tif 000056
【図３５】
0005537158.tif 000057
【図３６】
0005537158.tif 000058
【図３７】
0005537158.tif 000059
【図３８】
0005537158.tif 000060
【図３９】
0005537158.tif 000061
【図４０】
0005537158.tif 000062
【図４１】
0005537158.tif 000063
【図４２】
0005537158.tif 000064
【図４３】
0005537158.tif 000065
【図４４】
0005537158.tif 000066
【図４５】
0005537158.tif 000067