(57)【特許請求の範囲】
【請求項１】
対応するスキャンチェーンのグループから出力されたテスト応答のグループを圧縮し、それによって、圧縮されたテスト応答を生成する工程であって、前記圧縮されたテスト応答の各々が、前記スキャンチェーンのグループの個々と関連付けられている工程と、
第１入力で、マスキング回路を制御するためのマスキングデータを受信する工程と、
第２入力で、前記圧縮されたテスト応答を評価するための期待テスト応答データを受信する工程であって、前記マスキングデータ、および前記期待テスト応答データが、前記第１および第２入力で同時に受信される工程と、
前記圧縮されたテスト応答、および前記期待テスト応答データに少なくとも部分的に基づいて、１つまたは複数のエラーベクトルを生成する工程と、
２つ以上の故障テスト応答についての情報を生成する工程であって、前記情報が、１つまたは複数のテストパターン番号およびテストサイクル番号を含む工程とを含む、方法。
【請求項２】
対応するスキャンチェーンのグループから出力されたテスト応答のグループを圧縮し、それによって、圧縮されたテスト応答を生成する工程であって、前記圧縮されたテスト応答の各々が、前記スキャンチェーンのグループの個々と関連付けられている工程と、
第１入力で、マスキング回路を制御するためのマスキングデータを受信する工程と、
第２入力で、前記圧縮されたテスト応答を評価するための期待テスト応答データを受信する工程であって、前記マスキングデータ、および前記期待テスト応答データが、前記第１および第２入力で同時に受信される工程と、
前記圧縮されたテスト応答、および前記期待テスト応答データに少なくとも部分的に基づいて、１つまたは複数のエラーベクトルを生成する工程と、
前記１つまたは複数のエラーベクトルを、多入力シフトレジスタ（ＭＩＳＲ）にロードする工程と、
前記ＭＩＳＲで１つまたは複数のコンパクタ・シグネチャを生成する工程と、
前記１つまたは複数のコンパクタ・シグネチャを１つまたは複数のコンピュータ読取可能媒体に記憶する工程とを含む、方法。
【請求項３】
前記１つまたは複数のコンパクタ・シグネチャにしたがって故障候補位置のリストを生成する工程と、
前記故障候補位置のリストを１つまたは複数のコンピュータ読取可能媒体に記憶する工程とをさらに含む、請求項２に記載の方法。
【請求項４】
対応するスキャンチェーンのグループから出力されたテスト応答のグループを圧縮し、それによって、圧縮されたテスト応答を生成する工程であって、前記圧縮されたテスト応答の各々が、前記スキャンチェーンのグループの個々と関連付けられている工程と、
第１入力で、マスキング回路を制御するためのマスキングデータを受信する工程と、
第２入力で、前記圧縮されたテスト応答を評価するための期待テスト応答データを受信する工程であって、前記マスキングデータ、および前記期待テスト応答データが、前記第１および第２入力で同時に受信される工程と、
前記圧縮されたテスト応答、および前記期待テスト応答データに少なくとも部分的に基づいて、１つまたは複数のエラーベクトルを生成する工程と、
前記エラーベクトルをエンコーダ内で圧縮して、１つまたは複数の符号化されたベクトルを生成する工程と、
前記１つまたは複数の符号化されたベクトルを１つまたは複数のコンピュータ読取可能媒体に記憶する工程とを含む、方法。
【請求項５】
前記エンコーダが、複数のシフトサイクルにわたって前記エンコーダに入力された複数のエラー・ベクトルから、エンコードされたベクトルを生成する、請求項４に記載の方法。
【請求項６】
前記エンコーダは、テストパターン毎に１つの符号化されたベクトルを生成する、請求項４に記載の方法。
【請求項７】
前記エラーベクトルは、シフトサイクル毎に生成される、請求項１から請求項６のいずれか１項に記載の方法。
【請求項８】
対応するスキャンチェーンのグループから出力されたテスト応答のグループを圧縮し、それによって、圧縮されたテスト応答を生成する工程であって、前記圧縮されたテスト応答の各々が、前記スキャンチェーンのグループの個々と関連付けられている工程と、
第１入力で、マスキング回路を制御するためのマスキングデータを受信する工程と、
第２入力で、前記圧縮されたテスト応答を評価するための期待テスト応答データを受信する工程であって、前記マスキングデータ、および前記期待テスト応答データが、前記第１および第２入力で同時に受信される工程と、
前記圧縮されたテスト応答、および前記期待テスト応答データに少なくとも部分的に基づいて、１つまたは複数のエラーベクトルを生成する工程と、を含み、
前記エラーベクトルの個々の各ビットは、前記スキャンチェーンのグループの個々に対応している、方法。
【請求項９】
スキャンチェーン・グループの各々が、１つまたは複数のスキャンチェーンと、対応する１つまたは複数のスキャンチェーン・グループ出力とを含む、複数のスキャンチェーン・グループと、
コンパレータ回路の各々がコンパレータ入力とコンパレータ出力とを含む、複数のコンパレータ回路と、
多入力シフトレジスタ（ＭＩＳＲ）入力とＭＩＳＲ出力とを含むＭＩＳＲと、
コンパクタの各々が前記複数のスキャンチェーン・グループの個々の前記１つまたは複数のスキャンチェーン・グループ出力に連結された１つまたは複数のコンパクタ入力を含み、前記ＭＩＳＲ入力の個々に直接連結されるとともに、各コンパレータの前記コンパレータ入力にも連結されたコンパクタ出力を含む、複数のコンパクタとをさらに含む、装置。
【請求項１０】
メモリをさらに含み、前記メモリが前記ＭＩＳＲ出力に連結された第１入力と、パターン・カウンタに連結された第２入力とを含む、請求項９に記載の装置。
【請求項１１】
複数のマスキング・ゲートをさらに含み、各マスキング・ゲートが前記コンパレータの個々の前記コンパクタ出力と前記ＭＩＳＲの各入力との間に連結されている、請求項９に記載の装置。
【請求項１２】
対応するスキャンチェーンのグループから出力されたテスト応答のグループを圧縮する手段と、
マスキング回路を制御するためのマスキングデータを受信する手段と、
期待圧縮テスト応答データを受信する手段であって、前記マスキングデータおよび前記期待圧縮テスト応答データが同時に受信される、受信する手段と、
前記圧縮されたテスト応答、および前記期待圧縮テスト応答データに少なくとも部分的に基づいて、１つまたは複数のエラーベクトルを生成する手段と、
前記１つまたは複数のエラーベクトルを圧縮して、１つまたは複数の符号化されたベクトルを生成する手段と、
前記１つまたは複数の符号化されたベクトルを記憶する手段とを含む、システム。
【請求項１３】
スキャンチェーン・グループの各々が、１つまたは複数のスキャンチェーンと、対応する１つまたは複数のスキャンチェーン・グループ出力とを含む、複数のスキャンチェーン・グループと、
コンパレータ回路の各々がコンパレータ入力とコンパレータ出力とを含む、複数のコンパレータ回路であって、前記コンパレータ入力が各スキャンチェーン・グループ出力に連結されている複数のコンパレータ回路と、
各コンパレータの前記コンパレータ出力に連結された多入力シフトレジスタ（ＭＩＳＲ）入力と、ＭＩＳＲ出力とを含むＭＩＳＲと、
１つまたは複数の前記コンパレータ出力に連結された第１コレクタ回路であって、テスト中、どの前記１つまたは複数のスキャンチェーン・グループ出力が１つまたは複数のエラー出力を生成するかを記録するように構成された第１コレクタ回路とを含む、回路。
【請求項１４】
複数のコンパクタであって、各コンパクタが、前記複数のスキャンチェーン・グループの個々の前記スキャンチェーン・グループ出力に連結された１つまたは複数のコンパクタ入力を備え、各コンパレータの前記コンパレータ入力に連結されたコンパクタ出力をさらに備えた複数のコンパクタをさらに備え、
前記第１コレクタ回路が、テスト中、前記複数のコンパクタのうちのどの１つまたは複数のものが、１つまたは複数のエラー出力を生成するかを記録するように構成されている、請求項１３に記載の回路。
【請求項１５】
１つまたは複数の前記コンパレータ出力に連結された第２コレクタ回路をさらに備え、前記第２コレクタ回路が、前記１つまたは複数のエラー出力について１つまたは複数のタイム・インジケータを記録するように構成されている、請求項１４に記載の回路。
【請求項１６】
１つまたは複数の前記コンパレータ出力に連結された第２コレクタ回路をさらに備え、前記第２コレクタ回路が、前記１つまたは複数のエラー出力について１つまたは複数のタイム・インジケータを記録するように構成されている、請求項１３に記載の回路。
【請求項１７】
前記第２コレクタ回路が、ＯＲゲートを介して、２つ以上の前記コンパレータ出力に連結されている、請求項１６に記載の回路。
【請求項１８】
前記ＭＩＳＲ出力に連結された入力を有するメモリをさらに備えた、請求項１３に記載の回路。
【請求項１９】
複数のマスキング回路をさらに備え、各マスキング回路が、各コンパレータの前記コンパレータ出力に連結されたマスキング回路入力と、前記ＭＩＳＲの各ＭＩＳＲ入力に連結されたマスキング回路出力とを有する、請求項１３に記載の回路。
【請求項２０】
それぞれ入力および出力を有する２つ以上の順序素子であって、この２つ以上の順序素子が、前記２つ以上の順序素子の前記入力を介して２つ以上の未圧縮テスト応答ビットのグループを入力するように作動可能であり、さらに前記２つ以上の未圧縮テスト応答ビットのグループを前記２つ以上の順序素子の前記出力を介して並列で出力するように作動可能な、２つ以上の順序素子と、
複数の第１コンパクタ入力と、第１コンパクタ出力とを含む第１空間コンパクタであって、前記第１コンパクタ入力が前記順序素子の前記出力に連結している、前記第１空間コンパクタと、
複数の第２コンパクタ入力と、第２コンパクタ出力とを含む第２空間コンパクタであって、前記複数の第２コンパクタ入力の一つが前記第１コンパクタ出力に連結している、前記第２空間コンパクタと、
前記複数の第１コンパクタ入力に連結された第１マスキング・ロジック・セットと、
前記複数の第２コンパクタ入力に連結された第２マスキング・ロジック・セットとを含む、
被テスト回路のテスト応答を圧縮する装置。
【請求項２１】
前記２つ以上の順序素子が、前記被テスト回路のスキャンチェーン内のスキャンセルである、請求項２０に記載の装置。
【請求項２２】
前記２つ以上の順序素子が、前記被テスト回路のスキャンチェーンの出力に連結されるレジスタを形成している、請求項２０に記載の装置。
【請求項２３】
前記第１空間コンパクタおよび前記第２空間コンパクタが、フィードバックなしである、請求項２０に記載の装置。
【請求項２４】
前記第１空間コンパクタおよび前記第２空間コンパクタが、それぞれＸＯＲまたはＸＮＯＲゲートのネットワークを含む、請求項２０に記載の装置。
【請求項２５】
前記第２コンパクタ入力が複数の追加空間コンパクタの出力に連結されており、各追加空間コンパクタは追加の各順序素子から並列に受信される追加の未圧縮テスト応答ビットを入力するように構成されている、請求項２０に記載の装置。
【請求項２６】
１つまたは複数の選択ロジック入力と複数の選択ロジック出力とを有する選択ロジックをさらに含み、前記複数の選択ロジック出力が前記第１マスキング・ロジック・セットのそれぞれの入力および前記第２マスキング・ロジック・セットのそれぞれの入力に連結されており、前記選択ロジックが、前記１つまたは複数の選択ロジック入力において受信される１つまたは複数のマスキング命令ビットに応答して、前記第１マスキング・ロジック・セットおよび前記第２マスキング・ロジック・セットを選択的に制御するように作動可能である、請求項２０に記載の装置。
【請求項２７】
前記選択ロジックが、多項式にしたがって構成されるＸＯＲまたはＸＮＯＲゲートのネットワークを含む、請求項２０に記載の装置。
【請求項２８】
レジスタ入力および複数のレジスタ出力を有するレジスタをさらに含み、前記複数のレジスタ出力が前記複数の選択ロジック入力に連結している、請求項２０に記載の装置。
【請求項２９】
請求項２０に記載の装置を実装するための回路設計情報を記憶している１つまたは複数のコンピュータ読取可能媒体。
【請求項３０】
コンピュータに請求項２０に記載の装置を作製させるためのコンピュータ実行可能命令を記憶している１つまたは複数のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する技術は、電子回路のテストに関し、具体的には圧縮ハードウェアの使用に関する。
【背景技術】
【０００２】
本出願は、２００６年２月１７日に出願された「マルチステージ・テスト応答コンパクタ」と題する米国仮特許出願第６０／７７４，４３１号明細書、２００６年７月２２日に出願された「マルチステージ・テスト応答コンパクタ」と題する米国仮特許出願第６０／８３２，４６６号明細書、および２００６年１０月２０日に出願された「マルチステージ・テスト応答コンパクタ」と題する米国仮特許出願第６０／８５３，０５５号明細書の利益を主張する。上記出願はそれぞれ引用により本明細書に組み込まれている。
【０００３】
考えられる欠陥を検出する電子回路のテストでは、とくに回路が大型かつ／または複雑であれば、大量のテストデータ（たとえば、テスト応答）が生じる可能性がある。回路のスキャンチェーンに記憶されるテスト応答を圧縮すると、たとえば、おそらく回路外部の自動テスト装置（ＡＴＥ）によって、より少ないテストリソース（たとえば、テストピン）を使って応答の分析が可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６，５５７，１２９号明細書
【特許文献２】米国特許第６，８２９，７４０号明細書
【特許文献３】米国特許出願公開第２００５／０２２２８１６号明細書
【非特許文献】
【０００５】
【非特許文献１】I.Bayraktaroglu 外１名, “Test volume and application time reduction through scan chain concealment,” Proc.DAC, pp.151-155, 2001
【発明の概要】
【発明が解決しようとする課題】
【０００６】
テスト応答コンパクタは現在も存在するが、これらデバイスの圧縮比は、スキャンチェーンの数対コンパクタの出力数の比に制限されることが多い。したがって、これより高い圧縮比を提供し得る圧縮スキームが必要とされている。
本明細書は、改良されたテスト応答コンパクタの例示的な実施形態、前記コンパクタの操作および設計方法、ならびに前記コンパクタを使用するシステムを開示する。前記コンパクタのある実施形態を本明細書において「Ｘ（サ）プレス」または「Ｘプレス」テスト応答コンパクタと呼び、第１コンパクション・セクションと、第２コンパクション・セクション（本明細書においては「オーバードライブ・セクション」と呼ぶこともある）と、１つまたは複数のテスト応答ビットを選択的にマスクするスキャンチェーン選択ロジックとを含む。開示する技術のある実施形態は約１０００倍の圧縮比を提供する。開示するコンパクタの例示的な実施形態は、従来のスキャンベースのテストシナリオとほぼ同じカバレッジ（検出率）およびほぼ同じ診断分解能を維持できる。スキャンチェーン選択スキームのいくつかの実施形態は、テスト応答で発生してコンパクタに入る未知状態を有意に（大幅に）減らすことができ、または完全に排除できる。
【課題を解決するための手段】
【０００７】
開示する技術の様々な態様および特徴（これは単独または互いに組み合わせて実現できる）は、（１）複数のスキャンチェーンと協働し、ほぼ空間圧縮の利益を残しながら、比較的高い圧縮比を提供するマルチステージ・テスト応答コンパクタのアーキテクチャと、（２）コンパクタに組込みできるマルチレベル・スキャンチェーン選択ロジックと、（３）スキャンチェーンのランキングに基づいて未知（「Ｘ」）状態を抑制するのに採用されるパターン毎にスキャンチェーン選択マスクを判定する方法論とを含み得る。
【０００８】
開示する技術のいくつかの実施形態では、（たとえば、１つまたは複数のテスト応答ビットを選択的にマスクするため）スキャンチェーン選択ロジックを有する２ステージのテスト応答コンパクタを提供する。コンパクタの実施形態は幅広い範囲のＸ状態のプロファイルに対処でき、スキャンチェーンに対するコンパクタの出力の比よりも高い圧縮比を提供でき、および／または高い診断分解能を提供できる。加えて、また、ある実施形態では、オンチップ・コンパクタおよび記録回路網が故障ログ情報を記録する。これによりテスト時間の大幅な短縮ができる。さらに、本明細書に記述するマルチステージ・コンパクタは、そのスキャンチェーンの構成が一般的に変更できないため、外部ソリューションによってしかより高い圧縮比が達成できないレガシーコアに役立てられる。
【０００９】
本明細書では、１つまたは複数のテスト応答ビットをマスクするための選択ロジックを合成する例示的な方法も記述する。これら技法は選択ロジックの動作に必要なデータを減少できる。さらに、選択ロジックのマスクビット（本明細書において、「マスキング命令」または「マスキング命令ビット」とも呼ぶ）を判定する例示的な選択技法を開示する。本明細書で開示する一例示的な実施形態は、被テスト回路のテスト応答を圧縮する装置である。前記装置は、たとえば、複数の第１コンパクタ入力と第１コンパクタ出力とを含む第１空間コンパクタと、前記第１コンパクタ出力に連結されたレジスタ入力および複数のレジスタ出力を含むレジスタと、前記複数のレジスタ出力に連結された複数の第２コンパクタ入力と第２コンパクタ出力とを含む第２空間コンパクタとを含む。これら実施形態のある実施態様では、前記レジスタは前記レジスタ入力からテスト応答ビットをロードして、前記複数のレジスタ出力を介して前記テスト応答ビットを並列で出力するように作動可能である。いくつかの実施形態では、前記第１空間コンパクタおよび前記第２空間コンパクタはフィードバックなしである。ある実施形態では、前記第１空間コンパクタおよび前記第２空間コンパクタはＸＯＲまたはＸＮＯＲゲートのそれぞれのネットワークを含む。いくつかの実施例では、前記第１空間コンパクタおよび前記第２空間コンパクタのうちの少なくとも一方がパイプライン化された空間コンパクタである。前記レジスタは、直列に連結された２つ以上の順序素子を含むことができる。前記レジスタは前記テスト応答ビットを直列にロードするように作動可能にもできる。ある実施形態では、前記第１空間コンパクタは複数の第１コンパクタ出力を含み、またいくつかの実施形態では、前記第２空間コンパクタは複数の第２コンパクタ出力を含む。
【００１０】
さらに別の実施形態では、前記装置はさらに、前記複数の第１コンパクタ入力に連結された第１マスキング・ロジック・セットと、前記複数のレジスタ出力と前記複数の第２コンパクタ入力との間に連結された第２マスキング・ロジック・セットとを含むことができる。いくつかの実施形態では、前記装置はさらに、１つまたは複数の選択ロジック入力および複数の選択ロジック出力を有する選択ロジックを含み、前記複数の選択ロジック出力を前記第１マスキング・ロジック・セットのそれぞれの入力および前記第２マスキング・ロジック・セットのそれぞれの入力に連結し、前記選択ロジックは、前記１つまたは複数の選択ロジック入力で受信される１つまたは複数のマスキング命令ビットに応答して、前記第１マスキング・ロジック・セットと前記第２マスキング・ロジック・セットとを選択的に制御するように作動可能である。ある実施形態では、前記選択ロジックは、多項式にしたがって構成されるデジタル論理ゲート（たとえば、ＸＯＲまたはＸＮＯＲゲート）のネットワークを含む（たとえば、多項式は少なくとも１つの選択ロジック入力と少なくとも１つの選択ロジック出力とのそれぞれの関係を記述する）。いくつかの実施形態では、前記レジスタは第１レジスタであり、前記選択ロジックは複数の選択ロジック入力を含み、この装置は第２レジスタ入力と複数の第２レジスタ出力とを有する第２レジスタをさらに含み、前記複数の第２レジスタ出力が前記複数の選択ロジック入力に連結されている。前記装置に関するある実施形態では、前記マスキング命令ビットは、たとえば、外部テスタ、オンチップメモリ、またはオンチップデコンプレッサから受信される未圧縮ビットである。
【００１１】
本明細書で開示する別の例示的な実施形態は、被テスト回路のテスト応答を圧縮する方法である。この例示的な実施形態では、複数の未圧縮テスト応答ビットを圧縮し、それによって、第１圧縮テスト応答ビット・セットを生成する。前記第１圧縮テスト応答ビット・セットを複数の順序素子にロードする。前記第１圧縮テスト応答ビット・セットは前記複数の順序素子から並列でアンロードされて、前記第１圧縮テスト応答ビット・セットはさらに圧縮される。いくつかの実施形態では、前記ローディングは２以上のクロックサイクルの第１期間に起こり、前記アンローディングは１クロックサイクルの第２期間に起こる。ある実施形態では、前記未圧縮テスト応答ビットを圧縮および／またはさらに圧縮をする前に、前記未圧縮テスト応答ビットのうち１つまたは複数を選択的にマスクする。いくつかの実施形態では、前記未圧縮テスト応答ビットを圧縮しようとするときに、および／または前記圧縮テスト応答ビットをさらに圧縮しようとするときに、前記選択的なマスキングを制御するマスキング命令ビットをロードする。これら方法を実施するように構成したテスト応答を圧縮する回路も開示する。
【００１２】
本明細書で開示する別の例示的な実施形態は、被テスト回路のテスト応答を圧縮する装置である。この実施形態の装置は、それぞれ入力および出力を有する２つ以上の順序素子を含む。前記順序素子は、前記順序素子の入力を介して２つ以上の未圧縮テスト応答ビットのグループを入力するように作動可能であり、さらに前記未圧縮テスト応答ビットのグループを前記順序素子の出力を介して並列で出力するように作動可能である。前記装置はさらに、複数の第１コンパクタ入力と、第１コンパクタ出力とを含む第１空間コンパクタを含む。前記第１コンパクタ入力は前記順序素子の出力に連結している。いくつかの実施形態では、前記装置は、複数の第２コンパクタ入力と、１つの第２コンパクタ出力とを含む第２空間コンパクタをさらに含む。これら実施形態では、前記複数の第２コンパクタ入力の１つは前記第１コンパクタ出力に連結している。ある実施形態では、前記２つ以上の順序素子は被テスト回路のスキャンチェーン内のスキャンセルである。いくつかの実施形態では、前記２つ以上の順序素子は、被テスト回路のスキャンチェーンの出力に連結されるレジスタを形成している。ある実施形態では、前記第１空間コンパクタおよび前記第２空間コンパクタはフィードバックなしである。いくつかの実施形態では、前記第１空間コンパクタおよび前記第２空間コンパクタは、ＸＯＲまたはＸＮＯＲゲートのそれぞれのネットワークを含む。ある実施形態では、前記第２コンパクタ入力は複数の追加空間コンパクタの出力に連結している。これらの実施形態では、各追加空間コンパクタは、追加のそれぞれの順序素子から並列で受信される追加の未圧縮テスト応答ビットを入力するように構成されている。いくつかの実施形態は、前記複数の第１コンパクタ入力に連結された第１マスキング・ロジック・セットと、前記複数の第２コンパクタ入力に連結された第２マスキング・ロジック・セットとをさらに含む。ある実施形態では、前記装置はさらに、１つまたは複数の選択ロジック入力と複数の選択ロジック出力とを有する選択ロジックを含む。これらの実施形態では、前記複数の選択ロジック出力は、前記第１マスキング・ロジック・セットのそれぞれの入力および前記第２マスキング・ロジック・セットのそれぞれの入力に連結している。さらに、前記選択ロジックは、前記１つまたは複数の選択ロジック入力において受信される１つまたは複数のマスキング命令ビットに応答して、前記第１マスキング・ロジック・セットおよび前記第２マスキング・ロジック・セットを選択的に制御するよう作動可能にできる。前記選択ロジックは、たとえば、多項式にしたがって構成されるＸＯＲまたはＸＮＯＲゲートのネットワークを含むことができる。ある実施形態では、前記装置は、レジスタ入力および複数のレジスタ出力を有するレジスタをさらに含む。これら実施形態では、前記複数のレジスタ出力は前記複数の選択ロジック入力に連結している。
【００１３】
本明細書で開示する別の例示的な実施形態は、被テスト回路のテスト方法である。この例示的な実施形態では、第１インターバル中にテストパターン・データを被テスト回路の入力に供給する。第２インターバル中に、マスキング回路のマスキング命令を前記被テスト回路の前記入力に供給する。ある実施形態では、前記第１インターバルは前記第２インターバルより先行する。他の実施形態では、前記第２インターバルが前記第１インターバルより先行する。いくつかの実施形態では、前記第１インターバルは第３および第４のインターバルを含み、前記第２インターバルは第５および第６のインターバルを含み、前記第３および第４のインターバルは、前記第５および第６のインターバルの間にある。ある実施形態では、前記テストパターンデータから生成されるテストパターンに対するテスト応答を前記被テスト回路からアンロードしようとするときに、前記マスキング命令をマスキング回路に適用する。いくつかの実施形態では、他のテストパターンデータから生成されるテストパターンに対するテスト応答を前記被テスト回路からアンロードしようとするときに、前記マスキング命令をマスキング回路に適用する。前記方法は、前記マスキング命令にしたがって１つまたは複数のテスト応答ビットをマスクする工程をさらに含むことができる。これら例示的な方法を実施する回路も開示する。
【００１４】
本明細書に記述する別の例示的な実施形態は、テスト応答の圧縮中に未知状態のマスキングを制御するために使用する選択回路用の選択ロジックを生成する方法である。この実施形態では、承認済み多項式セットに包含可能な候補多項式を生成する（たとえば、無作為に）。前記候補多項式および承認済み多項式は、前記選択ロジックの２つ以上の入力と前記選択回路のそれぞれの出力との接続を記述する。多項式のなかから１つまたは複数のテストセットを選択する。前記テストセットはそれぞれ、少なくとも前記候補多項式と前記承認済み多項式セットのうち１つまたは複数の多項式とを含む。前記テストセットのランク値を計算する。少なくとも部分的に前記ランク値に基づいて、前記承認済み多項式セットに包含する前記候補多項式を選択する。前記承認済み多項式セット（前記候補多項式も含む）を１つまたは複数のコンピュータ読取可能媒体に記憶する。ある実施形態では、前記方法はさらに、前記選択ロジックの回路記述を生成する工程と、前記選択ロジックの前記回路記述を１つまたは複数のコンピュータ読取可能媒体に記憶する工程とを含む。これら実施形態では、前記選択ロジックは前記承認済み多項式セットからの多項式を実施している。いくつかの実施形態では、前記方法はさらに、前記候補多項式が一定数以上の項を前記承認済み多項式セットのなかの１つまたは複数の多項式と共有するかどうかを判定する工程と、前記候補多項式が前記一定数以上の項を前記承認済み多項式セットのなかの１つまたは複数と共有する場合に、新たな候補多項式を生成する工程とを含む。ある実施形態では、前記ランク値を計算する工程は、前記多項式の２つ以上のテストセットの前記ランク値を平均化する工程をさらに含み、前記候補多項式を選択する工程は少なくとも部分的に前記平均ランク値に基づく。いくつかの実施形態では、生成、選択および計算する工程を、複数の追加候補多項式に繰り返す。ある実施形態では、前記承認済み多項式セットに含有する前記候補多項式を選択する工程はさらに、前記候補多項式の前記平均ランク値と前記追加の候補多項式のそれぞれの平均ランク値との比較に基づく。いくつかの実施形態では、前記２つ以上の多項式セットの前記ランク値を計算する工程は、前記多項式の２つ以上のテストセットの縮小列エシュロンフォーム（既約階段行列）を判定する工程を含む。
【００１５】
本明細書で開示する別の例示的な実施形態は、被テスト回路のテスト中に、テスト応答ビットをマスクするように作動可能な選択回路用のマスキング命令を生成する方法である。この実施形態では、前記被テスト回路に適用するテストパターンをシミュレーションしてテスト応答を生成する。前記テスト応答内の１つまたは複数の未知状態を特定する。少なくとも部分的に前記特定した１つまたは複数の未知状態に基づいて、マスクする１つまたは複数のテスト応答ビットを選択する。前記選択されるテスト応答ビットの１つまたは複数の指標を１つまたは複数のコンピュータ読取可能媒体に記憶する。ある実施形態では、選択回路用のマスキング命令を、少なくとも部分的に前記選択される１つまたは複数のテスト応答ビットに基づいて符号化（エンコード）する。いくつかの実施形態では、前記テスト応答内の１つまたは複数の故障観測サイトを特定し、マスクする前記１つまたは複数のテスト応答ビットの選択はさらに、少なくとも部分的に前記特定した１つもしくは複数の故障観測サイトに基づく。ある実施形態では、前記マスクする１つもしくは複数のテスト応答ビットを選択する工程は、少なくとも部分的に前記特定した１つもしくは複数の未知状態、前記特定した１つもしくは複数の故障観測サイト、または前記特定した１つもしくは複数の未知状態および前記特定した１つまたは複数の故障観測サイトの双方に基づいて、前記被テスト回路の選択されるスキャンチェーンの１つまたは複数のスキャンセルに重みを割り当てる工程を含む。前記方法はさらに、前記選択されるスキャンチェーン内の１つまたは複数のスキャンセルのグループの前記重みを総計する工程と、少なくとも部分的に前記総計した重みに基づいて、前記選択されるスキャンチェーンの１つまたは複数のスコアを計算する工程と、少なくとも部分的に前記スコアに基づいて前記選択されるスキャンチェーンからのテスト応答ビットをマスクするかどうかを判定する工程とを含む。いくつかの実施形態では、前記重みは、前記テストパターンのシミュレーションを適用した後に前記スキャンセルに記憶される１種の値を表す。ある実施形態では、前記選択されたスキャンチェーンに関して計算した前記スコアの１つは、前記選択されたスキャンチェーンをマスクする場合に残る推定エラー数に比例し、および／または前記選択されたスキャンチェーンに関して計算した前記スコアの１つは、前記選択されたスキャンチェーンをマスクしない場合に残る推定エラー数に比例する。
【００１６】
本明細書で開示する別の例示的な実施形態は、回路のテスト中にテスト応答ビットをマスクするように作動可能な選択回路用のマスキング命令を生成する方法である。この実施形態によると、選択されたスキャンチェーンの１つまたは複数のスキャンセルに重みを割り当てる。前記選択されたスキャンチェーン内のスキャンセルの１つまたは複数のグループの前記重みを総計する。少なくとも部分的に前記総計した重みに基づいて、前記選択されたスキャンチェーンの１つまたは複数のスコアを計算する。少なくとも部分的に前記スコアに基づいて、前記選択されたスキャンチェーンからテスト応答ビットをマスクするかどうかの判定をする。前記判定を１つまたは複数のコンピュータ読取可能媒体に記憶する。ある実施形態では、少なくとも部分的に前記判定に基づいて前記選択回路用のマスキング命令を符号化し、前記マスキング命令を１つまたは複数のコンピュータ読取可能媒体に記憶する。いくつかの実施形態では、前記重みは、テストパターンを被テスト回路に適用した後、前記スキャンセルに記憶される１種の値を表す。ある実施形態では、前記重みを割り当てる工程は、前記選択されたスキャンチェーンにおいて未知の値を捕獲する第１のそれぞれのスキャンセルに第１重みを割り当てる工程を含む。いくつかの実施形態では、前記重みを割り当てる工程は、前記選択されたスキャンチェーンにおいて対象とする故障を示す値を捕獲する第２のそれぞれのスキャンセルに第２重みを割り当てる工程を含む。ある実施形態では、前記第２重みは前記第１重みよりも大きい。いくつかの実施形態では、前記重みを割り当てる工程は、前記選択されたスキャンチェーンにおいて未知の値または対象とする故障を示す値のいずれでもない値を捕獲する第３のそれぞれのスキャンセルに第３重みを割り当てる工程をさらに含む。ある実施形態では、前記第２重みは前記第１重みおよび前記第３重みの双方よりも大きく、前記第３重みは前記第１重みよりも大きい。いくつかの実施形態では、前記選択されたスキャンチェーンに関して計算した前記スコアの１つは、前記選択されたスキャンチェーンをマスクしない場合に残る推定エラー数に比例し、および／または前記選択されたスキャンチェーンに関して計算した前記スコアの１つは、前記選択されたスキャンチェーンをマスクする場合に残る推定エラー数に比例する。ある実施形態では、１つまたは複数の追加スキャンチェーンに関して、前記割り当て、総計、および計算する工程を繰り返し、それによって、前記１つまたは複数の追加スキャンチェーンの各々に関して１つまたは複数のスコアを計算する。いくつかの実施形態では、前記選択されるスキャンチェーンからテスト応答ビットをマスクするかどうかを判定する工程はさらに、前記選択されるスキャンチェーンの前記１つまたは複数のスコアを、各それぞれの追加スキャンチェーンの前記１つまたは複数のスコアと比較する工程を含む。
【００１７】
本明細書で開示する別の例示的な実施形態は、テスティング・システム内の複数の回路をテストする方法を含む。前記複数の回路のうち１つの第１入力で、マスキング回路を制御するためのマスキングデータを受信する。前記複数の回路のうち前記１つの第２入力で、前記複数の回路のうち前記１つのテスト中に生成されるテスト応答を評価するための期待テスト応答データを受信する。この例示的な実施形態では、前記マスキングデータおよび前記期待テスト応答データが、前記第１入力および前記第２入力で同時に受信される。いくつかの実施形態では、前記テスト応答は圧縮されたテスト応答である。ある実施形態では、前記テスト応答を多入力シフトレジスタ（ＭＩＳＲ）にロードし、前記ＭＩＳＲで１つまたは複数のコンパクタ・シグネチャを生成し、前記１つまたは複数のコンパクタ・シグネチャを１つまたは複数のコンピュータ読取可能媒体に記憶する。いくつかの実施形態では、前記１つまたは複数のコンパクタ・シグネチャにしたがって故障候補位置のリストを生成し、前記故障候補位置のリストを１つまたは複数のコンピュータ読取可能媒体に記憶する。ある実施形態では、少なくとも部分的に前記テスト応答および前記期待テスト応答データに基づいて、１つまたは複数のエラーベクトルを生成する。これらの実施形態では、前記エラーベクトルを多入力シフトレジスタ内で圧縮して、１つまたは複数のコンパクタ・シグネチャを生成することができ、前記１つまたは複数のコンパクタ・シグネチャを１つまたは複数のコンピュータ読取可能媒体に記憶できる。前記多入力シフトレジスタは複数のシフトサイクルにわたって複数のエラーベクトル入力からコンパクタ・シグネチャを生成することができる。たとえば、前記多入力シフトレジスタはテストパターン毎に１つのコンパクタ・シグネチャを生成することができる。ある実施形態では、少なくとも部分的に（たとえば、１シフトサイクルに）前記テスト応答および前記期待テスト応答データに基づいて、エラーベクトルを生成し、前記エラーベクトルを１つまたは複数のコンピュータ読取可能媒体に記憶する。いくつかの実施形態では、前記テスト応答をプライオリティ・エンコーダ回路にロードする。これらの実施形態では、前記テスト応答は３以上のコンパクタ出力からのテスト応答値を含み、前記プライオリティ・エンコーダ回路は１シフトサイクル中の前記テスト応答入力に３つ以上のエラーを検出するように構成されている。
【００１８】
本明細書で開示する別の例示的な実施形態は、複数のスキャンチェーン・グループを含む装置であり、前記複数のスキャンチェーン・グループの各々が、１つまたは複数のスキャンチェーンと、対応する１つまたは複数のスキャンチェーン・グループ出力とを含む。前記装置はさらに複数のコンパレータ回路を含み、前記複数のコンパレータ回路の各々がコンパレータ入力とコンパレータ出力とを含む。前記装置は、多入力シフトレジスタ（ＭＩＳＲ）入力とＭＩＳＲ出力とを含むＭＩＳＲも含有する。前記装置はさらに複数のコンパクタを含み、前記複数のコンパクタの各々が、前記複数のスキャンチェーン・グループの個々の前記スキャンチェーン・グループ出力に連結する１つまたは複数のコンパクタ入力を含み、前記ＭＩＳＲ入力の個々に直接連結されるとともに、各コンパレータの前記コンパレータ入力にも連結されるコンパクタ出力をさらに含む。いくつかの実施形態では、前記装置はさらに、前記ＭＩＳＲ出力に連結された第１入力およびパターン・カウンタに連結された第２入力を有するメモリを含有する。ある実施形態では、前記装置はさらに、複数のマスキング・ゲートを含み、各マスキング・ゲートは前記コンパレータの個々の前記コンパクタ出力と前記ＭＩＳＲの各入力との間に連結されている。
【００１９】
本明細書で開示する別の例示的な実施形態は、複数のスキャンチェーン・グループを含む装置であり、前記複数のスキャンチェーン・グループの各々が、１つまたは複数のスキャンチェーンと、対応する１つまたは複数のスキャンチェーン・グループ出力とを含む。この実施形態の装置はさらに、複数のコンパレータ回路を含み、前記複数のコンパレータ回路の各々がコンパレータ入力とコンパレータ出力とを含む。前記装置はまた、各コンパレータの前記コンパレータ出力に連結された多入力シフトレジスタ（ＭＩＳＲ）入力およびＭＩＳＲ出力を含むＭＩＳＲも含む。前記装置はさらに複数のコンパクタを含み、前記複数のコンパクタの各々が前記複数のスキャンチェーン・グループの個々の前記スキャンチェーン・グループ出力に連結される１つまたは複数のコンパクタ入力を含み、さらに各コンパレータの前記コンパレータ入力に連結されるコンパクタ出力を含む。前記装置は、前記コンパレータ出力のうち１つまたは複数に連結された第１コレクタ回路をさらに含む。前記第１コレクタ回路は、テスト中に前記複数のコンパクタのうちのどの１つまたは複数のコンパクタが１つまたは複数のエラー出力を出すかを記録するように構成できる。前記装置は、１つまたは複数のコンパレータ出力に連結される第２コレクタ回路も含有する。前記第２コレクタ回路は、前記１つまたは複数のエラー出力について１つまたは複数のタイム・インジケータを記録するように構成できる。ある実施形態では、前記第２コレクタ回路はＯＲゲートを介して前記コンパレータ出力の２つ以上に連結されている。いくつかの実施形態はさらに、ＭＩＳＲ出力に連結された入力を有するメモリを含む。ある実施形態はさらに複数のマスキング回路を含み、各マスキング回路が、各コンパレータの前記コンパレータ出力に連結されたマスキング回路入力と、前記ＭＩＳＲの各ＭＩＳＲ入力に連結されたマスキング回路出力とを有する。
【００２０】
本明細書に開示する別の例示的な実施形態は、複数の電子回路をテストする装置である。前記装置は複数のスキャンチェーン・グループを含み、前記複数のスキャンチェーン・グループの各々が、１つまたは複数のスキャンチェーンと、対応する１つまたは複数のスキャンチェーン・グループ出力とを含む。前記装置はまた複数のコンパレータ回路も含み、前記複数のコンパレータ回路の各々がコンパレータ入力とコンパレータ出力とを含む。前記装置はさらに、複数のエンコーダ入力と１つのエンコーダ出力とを含むエンコーダ回路を含む。前記エンコーダ入力は各コンパレータ出力に連結されている。前記装置は複数のコンパクタも含み、各コンパクタが前記スキャンチェーン・グループの個々の前記スキャンチェーン・グループ出力に連結された１つまたは複数のコンパクタ入力を含み、さらに各コンパレータの前記コンパレータ入力に連結されたコンパクタ出力を含む。この実施形態のエンコーダは、（たとえば、１シフトサイクル中の）前記コンパクタ出力から３つ以上のエラー値出力を検出するように構成されている。加えて、前記エンコーダを前記コンパクタ出力から２つ以下のエラー値出力を検出するように構成することもできる。いくつかの実施形態はさらに複数のマスキング回路を含み、各マスキング回路が、各コンパクタの前記コンパレータ出力に連結されたマスキング回路入力と、各エンコーダ入力に連結されたマスキング出力とを有する。ある実施形態は前記エンコーダ出力に連結されたメモリも含む。
【００２１】
開示する方法のいずれも、コンピュータに前記方法を行わせるコンピュータ実行可能命令を含むコンピュータ読取可能媒体として実施できる。また、開示するコンパクタのいずれかによって出されるシグネチャを記憶し、開示する方法のいずれかによって特定される故障候補と思われるものまたは欠陥スキャンセル候補のリストを記憶し、開示するコンパクタの実施形態のいずれかを実施する回路記述を記憶し、または記述する方法のいずれかの最終結果または中間結果を記憶するコンピュータ読取可能媒体も開示する。
【００２２】
本発明の上述およびその他の目的、特徴および利点は、添付の図面を参照しながら進める以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】テスト応答コンパクタのアーキテクチャの例示的な実施形態を示している。
【図２】テスト応答の圧縮方法の一実施形態のブロック図を示している。
【図３】セレクタ回路を使用し、被テスト回路のスキャンチェーンに発生する可能性があるＸ状態にどのように対処できるかに関しての一例を示している。
【図４】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図を示している。
【図５】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図を示している。
【図６】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図を示している。
【図７】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図を示している。
【図８】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図を示している。
【図９】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図を示している。
【図１０】セレクタ回路とともに使用するためのマスキング信号の判定方法の一実施形態のブロック図を示している。
【図１１】スキャンチェーンの表現の一実施形態を示している。
【図１２】マスクするスキャンチェーンの選択方法の一実施形態のブロック図を示している。
【図１３】選択的コンパクタの存在下でテストパターンを使用する方法の一実施形態のブロック図を示している。
【図１４】本明細書に記述する方法および装置を使用した実験結果を記述する表を示している。
【図１５】本明細書に記述する方法および装置を使用した実験結果を記述する表を示している。
【図１６】選択ロジック回路の一実施形態を示している。
【図１７】選択回路の制御ロジックの生成方法の一実施形態のブロック図を示している。
【図１８】選択ロジック回路の一実施形態を示している。
【図１９】テスト応答コンパクタのアーキテクチャの付加刺激を見つける方法の一実施形態のブロック図を示している。
【図２０】例示的なオンチップ・テスティング・アーキテクチャの一実施形態のブロック図を示している。
【図２１】プライオリティ・エンコーダの一実施形態のブロック図を示している。
【図２２】例示的なオンチップ・テスティング・アーキテクチャの別の実施形態のブロック図を示している。
【図２３】例示的なオンチップ・テスティング・アーキテクチャのさらに別の実施形態のブロック図を示している。
【図２４】図２３のオンチップ・テスティング・アーキテクチャとともに使用する垂直コレクタ回路の一実施形態のブロック図を示している。
【図２５】図２３のオンチップ・テスティング・アーキテクチャとともに使用する水平コレクタ回路の一実施形態のブロック図を示している。
【図２６】診断用に変換した回路のブロック図を示している。
【図２７】テストした回路の故障診断を行う一例示的な方法のブロック図を示している。
【図２８】開示する方法のいずれかを行う、または開示するコンパクタの実施形態のいずれかを生成するのに使用できるネットワークの模式的なブロック図である。
【図２９】開示する方法のいずれかを行う、または開示するコンパクタの実施形態のいずれかを生成するのに使用できる分散コンピューティング・ネットワークの模式的なブロック図である。
【図３０】開示するコンパクタの実施形態が図２８または図２９のネットワークでどのように生成されることができるかを示すフローチャートである。
【図３１】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図である。
【図３２】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図である。
【図３３】テスト応答コンパクタのアーキテクチャのさらに別の実施形態のブロック図である。
【発明を実施するための形態】
【００２４】
以下に、電子回路テスト技術および関連装置の代表的な実施形態を開示するが、これらは決して限定として解釈してはならない。そうではなく、本開示は、単独および互いの様々な組合わせおよび準組合せの状態にある開示する様々な方法、装置およびその均等物の新規かつ非自明の特徴および態様のすべてを対象とする。開示する技術は、いずれか特定の態様もしくは特徴、またはその組合わせに限定されるものではなく、また開示する方法および装置はいずれか１つまたは複数の特定の利点が存在するまたは問題が解決されることを必要とするわけではない。
【００２５】
本出願および請求項で使用する単数形の「ａ」、「ａｎ」および「ｔｈｅ」は、本文に別段の記載が明示されていない限り、複数形を含む。さらに、「含有する（ｉｎｃｌｕｄｅｓ）」という用語は「含む（ｃｏｍｐｒｉｓｅｓ）」を意味する。また、本文に別段の記載がない限り、「連結される（ｃｏｕｐｌｅｄ）」という用語は電気的または電磁的に接続またはリンクされていることを意味し、直接的な接続または直接的なリンクおよび回路の意図する動作に影響しない１つまたは複数の中間要素を介した間接的な接続または間接的なリンクの双方を含有する。
【００２６】
提示の便宜上、開示する方法および装置のいくつかの動作を特定の連続的な順序で記述しているが、この記述方式は、以下に明記する特有の言語で特定の順序で行うことが必要とされない限り、順序の変更を包含することは理解されたい。たとえば、順次記述されている動作はある場合には順序を変更してまたは同時に行ってもよい。また、簡潔にするために、添付の図面は、開示する方法および装置を他の方法および装置とともに使用できる様々な方法を示していないことがある。さらに、本説明は開示する方法を記述するために「判定（決定）する（ｄｅｔｅｒｍｉｎｅ）」および「選択する（ｓｅｌｅｃｔ）」のような用語を使用することがある。これらの用語は実施する実際の動作の高次の抽象表現である。これらの用語に対応する実際の動作は具体的な実施態様に応じて変わり、当業者には容易に認識できる。
【００２７】
開示する実施形態は、たとえば、スキャンベースまたは一部スキャンベースのテスティングを利用する多様な集積回路（たとえば、特定用途向け集積回路（ＡＳＩＣ）（混合信号ＡＳＩＣを含む）、システムオンチップ（ＳｏＣ）、またはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）などのプログラマブル・ロジック・デバイス（ＰＬＤ））に実装できる。このような集積回路は、携帯電子機器（携帯電話、メディアプレーヤー、および同様なものなど）からより大規模なアイテム（コンピュータ、制御システム、航空機、自動車、および同様なものなど）まで、多種多様な電子デバイスで使用できる。開示する技術の実施形態または同等物を組み込んだ集積回路を含むこのようなアイテムのすべてが本開示の範囲内にあると考えられる。
【００２８】
本明細書に記述する装置はいずれも、１つまたは複数のコンピュータ読取可能媒体上に記憶されるコンピュータ実行可能命令を含むソフトウェアを使用して設計、検証、および／またはシミュレーションをすることができる。このようなソフトウェアは、たとえば、設計ツール、検証ツールまたはシミュレーション・ツールなど、電子設計自動化（ＥＤＡ）ソフトウェア・ツールを含むことができる。同様に、本明細書に記述する方法のいずれも、１つまたは複数のコンピュータ読取可能媒体に記憶されたコンピュータ実行可能命令を含むソフトウェアを使用し実施またはシミュレーションをすることができる（少なくとも部分的には）。また、開示する方法の中間結果または最終結果のいずれも１つまたは複数のコンピュータ読取可能媒体に記憶できる。たとえば、ソフトウェア・ツールを使用して、開示する装置のいずれかを制御するために使用する１つまたは複数の制御信号（たとえば、マスクビット）を判定および記憶することができる。このようなソフトウェアのいずれも単一のコンピュータ上またはネットワーク・コンピュータ上で（たとえば、インターネット、広域ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバー・ネットワーク、またはその他同様なネットワークを介して）実行できる。分かりやすくするために、ソフトウェアベースの実施態様のある選択された態様だけを記述する。当技術分野でよく知られている他の明細は省略する。同じ理由で、コンピュータ・ハードウェアはさらに細部まで記述しない。開示する技術はある特定のコンピュータ言語、プログラム、またはコンピュータに限定されるものではないことは理解されたい。たとえば、商業的に利用できる多様なコンピュータ言語、プログラムおよびコンピュータを使用できる。
【００２９】
また、開示する装置のいずれも回路設計情報として１つまたは複数のコンピュータ読取可能媒体に記憶できる。たとえば、開示する装置のいずれかの設計情報を含有するように設計情報（たとえば、ネットリスト、ＨＤＬファイル、またはＧＤＳＩＩファイル）を含んでいる１つまたは複数のデータ構造を作成（または更新）および記憶することができる。このようなデータ構造をローカル・コンピュータまたはネットワーク上（たとえば、サーバー・コンピュータによって）で作成（または更新）および記憶できる。同様に、開示する装置のいずれかが発する圧縮テスト応答または開示する装置のいずれかを動作させるために使用する制御信号（たとえば、マスクビット）は、１つまたは複数のコンピュータ読取可能媒体に（たとえば、１つまたは複数のデータ構造の形で）記憶できる。このようなコンピュータ読取可能媒体は、開示する技術の範囲内にあると考えられる。
【００３０】
さらに、開示する方法のいずれもコンピュータ・シミュレーション、ＡＴＰＧ、またはその他ＥＤＡ環境で使用でき、そこでテストパターン、テスト応答および圧縮テスト応答を１つまたは複数のコンピュータ読取可能媒体に記憶されている回路の表現で判定し、または回路の表現を使用しその他の形で分析する。しかし、提示のために、本開示は１回路またはその回路コンポーネントをその物理的な対応物（たとえば、スキャンセル、空間コンパクタ、レジスタ、選択ロジック、論理ゲート、およびその他同様な用語）によって言及することがある。しかし、本開示および請求項において物理的なコンポーネントの言及はいずれも、シミュレーション、ＡＴＰＧまたはその他同様なＥＤＡ環境で使用されるような回路コンポーネントの表現を含有する。
開示する技術の概論および概要
テスト応答圧縮は、刺激圧縮とともに、テストデータ容量の増大に対処するうえで重要な役割を果たすことができる。様々な圧縮スキームの開発は様々なアプリケーション・ドメインのニーズを反映しているが、テスト応答コンパクタは、幅広い範囲の未知状態のプロファイルに対するあらゆるスキャンセルの可観測性を保つとともに、高い圧縮比を維持し、現実のシリコンにおいて発見される多様な故障を検出する能力を備え、および／または設計の簡便さを達成することが望ましい。また、コンパクタの動作を最小限度の追加情報で制御し、このデータが効果的なテストデータ容量圧縮にほとんどまたはまったくマイナスの影響をもたないようにできることが望ましい。
【００３１】
ある場合において、テスト応答圧縮を採用すると、未知状態（本明細書では「Ｘ状態」とも呼ぶ）がテストを無用のものにしてしまう可能性がある。多くのスキャンベースの設計では、Ｘ状態がスキャンセルでいったん捕獲されてしまうと、その後コンパクタに注入される。そのため、とくに時間コンパクタを使用している場合、（フィードバックのファンアウトにより）Ｘ状態はすぐに増殖し、読み出し動作までコンパクタに留まるので、これに伴うシグネチャに影響を与える可能性がある。未知状態の増殖は、フィードバックで単純な二項式を使用するモジュラー型の時間コンパクタなど一部のコンパクタ・アーキテクチャでは防止することができる。ある場合には、このような配列がＸ状態のマイナスの影響を有意に低減できる。組合せコンパクタはＸ状態を一掃できるが、スキャンチェーンからの入力をマスキングさせないで診断を可能にするには、このようなコンパクタは、典型的には、各スキャンチェーンの２つ以上の出力を観測しなければならない。有限メモリ・コンパクタは多数のスキャンシフトサイクルでＸ状態を一掃できる。しかし、テスト応答コンパクタを予め指定した量のＸ状態に耐えるように設計しても、幅広い範囲のＸ状態プロファイルに対処できるようにするには、典型的にはスキャンチェーン選択（マスキング）メカニズムが必要である。たとえば、引用により本明細書に組み込む上記特許文献１および上記特許文献２を参照のこと。あるいは、自動テストパターン生成（ＡＴＰＧ）で排除できない一定のＸ状態の組み合わせは、いくつかのスキャンセルの可観測性を妨げ、有意な故障カバレッジの低下を招く可能性がある。
例示的なテスト回路コンパクタ・アーキテクチャ
図１は、コンパクタ・アーキテクチャ（Ｘプレス・コンパクタ・アーキテクチャ）の例示的な実施形態１００を示しており、ｎ個のスキャンチェーン１２０を有する埋め込み決定論的テスト環境に第１テスト応答コンパクタ１１０と第２テスト応答コンパクタ１５２とを含む。圧縮テスト刺激は、１つまたは複数の入力チャネル（または入力パス）１３２、１３４からデコンプレッサ１３０を介してスキャンチェーン１２０に供給できる。いくつかの実施形態では、これらチャネルは入力チャネル１３６、１３８とともに使用し、マスクビット（マスキング命令）をコンポーネント１６０、１６２を介してセレクタ回路１４０に送ることもできる。ある実施形態では、コンポーネント１６０、１６２はパイプライン・レジスタであり、別の実施形態ではデマルチプレクサである。別の実施形態では、以下でより詳細に述べるように、圧縮テスト刺激とマスクビットとの間には必ずしもデータ依存性があるとは限らない。コンパクタ１１０はＸＯＲまたはＸＮＯＲツリーを含むスペース・コンパクタ（または空間コンパクタ）になることができ、セレクタ回路１４０を介してスキャンチェーン１２０に連結できる。第１コンパクタ１１０の出力１１２はｖビットのオーバードライブ・レジスタ１５０に連結できる。いくつかの実施形態では、オーバードライブ・レジスタ１５０は、逐次ロードするレジスタ、たとえば、シフトレジスタとして実施できる。オーバードライブ・レジスタ１５０は、直列で連結されている、フリップフロップまたはラッチなどの１つまたは複数の順序素子を含むことができる。オーバードライブ・レジスタ１５０は第１コンパクタ１１０から圧縮テスト応答を受信し、第２コンパクタ１５２に供給するように構成できる。第２コンパクタ１５２は、ＸＯＲまたはＸＮＯＲツリーを含むスペース・コンパクタ（または空間コンパクタ）となることができる。ある実施形態では、第１コンパクタ１１０および／または第２コンパクタ１５２はフィードバックなしのコンパクタを含む。別の実施形態では、第１コンパクタ１１０および／または第２コンパクタ１５２はパイプライン方式の空間コンパクタを含む。
【００３２】
図２は、図１の実施形態１００などのテスト応答コンパクタ・アーキテクチャを使用してテスト応答を圧縮する方法２００の一例示的な実施形態のブロック図を示している。工程２１０において、スキャンチェーン１２０からのテスト応答ビットをコンパクタ１１０で圧縮する。工程２２０において、圧縮したテスト応答ビットをｖビットのオーバードライブ・レジスタ１５０にロードする。例示的な実施形態では、圧縮したテスト応答ビットをレジスタに順次ロードする。このローディングは、たとえば、２以上のクロックサイクルの期間にわたって行うことができる。工程２３０において、圧縮したテスト応答ビットをさらに第２コンパクタ１５２で圧縮する。例示的な実施形態では、オーバードライブ・レジスタのコンテンツは並列で（できれば、１クロックサイクルの期間にわたって）第２コンパクタ１５２にアンロードしｖスキャンシフトサイクル毎に圧縮する。オーバードライブ・レジスタ１５０のアンローディングおよび第２コンパクタ１５２における圧縮は、ｖスキャンシフトからの最終シフトサイクルと同じクロックサイクル中に行うことができる。ある実施形態では、圧縮したテスト応答ビットを毎クロックサイクル中に第２コンパクタ１５２にアンロードおよび圧縮するが、記録はｖスキャンシフトサイクル毎にしかしない。
【００３３】
図２に記述するようなものなど、２ステージの圧縮スキームを使用して潜在的に達成できるスキャンチェーン入力対コンパクタ出力の圧縮比は、スキャンチェーンの数ｎとコンパクタ出力の数ｗとの間の比によってほぼ決まる限界を超えることができる。いくつかの実施形態では、たとえば、圧縮比を約ｖ倍だけ上げることができる（たとえば、比は約ｎ×ｖ：ｗになることができる）。
【００３４】
たとえば、図１のアーキテクチャによるテスト応答コンパクタ・アーキテクチャの一実施形態は、２つのテスタ入力チャネル（たとえば、チャネル１３２、１３４）と、１つのコンパクタ出力チャネル（ｗ＝１）と、１００個の内部スキャンチェーン（ｎ＝１００）と、オーバードライブ・レジスタ１０ビット（ｖ＝１０）とを含む。従来の技術では、スキャンチェーン対テスタ入力チャネルの比が最大圧縮レベル（たとえば、５０倍）を決める。しかし開示する技術を使えば、テストデータの圧縮比は約１００×１０／１＝１０００倍である。
【００３５】
図１に戻ると、セレクタ回路１４０は、第１論理ゲート・グループ１４２と第２論理ゲート・グループ１４４とを含むことができる。このような論理ゲートの１つまたは複数のグループを、本明細書では「マスキング・ロジック」と呼ぶことがある。図示する実施形態では、これらゲートはＡＮＤゲートとして示しているが、別の実施形態では他の論理ゲート（複数の種類の論理ゲートを含む）を使用できる。セレクタ回路１４０はさらに、第１および第２の論理ゲート・グループ１４２、１４４のうち少なくとも一部に信号を与えるように構成されている選択ロジック回路１４６を含むことができる。いくつかの実施形態では、セレクタ回路１４０は（たとえば、入力パス１３６、１３８を介して）受信したマスクビットに応答して動作できる。別の実施形態では、マスクビットの少なくとも一部を、マスク・レジスタ１４８を介して選択ロジック１４６に供給する。選択ロジック回路１４６の設計および実施態様は以下でより詳細に説明する。
【００３６】
いくつかの実施形態では、セレクタ回路１４０は第１コンパクタ１１０および／または第２コンパクタ１５２への選択した１つまたは複数の入力をブロックまたは「マスク」できる。選択した入力は、たとえば、スキャンチェーン１２０および／またはオーバードライブ・レジスタ１５０から未知状態および／または不要な応答を搬送できる。論理ゲート・グループ１４２、１４４への入力は、未知状態および／または不要な応答がコンパクタ１１０、１５２に届かないように供給でき、かわりに既知の値（たとえば、「０」または「１」）に置換する。
【００３７】
いくつかの実施形態では、次に続く信号を論理ゲート・グループ１４２、１４４のうち１つまたは複数のゲートに供給できる。選択したスキャンチェーン出力または選択したオーバードライブ・レジスタ出力をブロックするために（たとえば、Ｘ状態を抑制するために）、１つまたは複数のゲートに「０」値を供給できる。「１」値を１つまたは複数のゲートに供給して、セレクタ回路１４０に値（たとえば、対象とする故障または非対象とする故障を示す値）をコンパクタに渡すようにさせることができる。コンテンツがクリティカルと見なされないスキャンチェーン出力またはオーバードライブ出力（たとえば、値が対象とする故障または非対象とする故障を示すスキャンセルに関連しないもの）については、その出力の論理ゲートに「０」または「１」いずれかの「ドントケア」値を割り当てることができる。これらの値は実施態様に応じて変えることができる。
【００３８】
本出願および請求項において、「第１コンパクタ・ステージ」は一般に第１コンパクタ１１０および論理ゲート・グループ１４２を指し、「第２コンパクタ・ステージ」は一般に第２コンパクタ１５２、論理ゲート・グループ１４４およびオーバードライブ・レジスタ１５０を指す。
図３は、セレクタ回路１４０を使用してスキャンチェーン１２０に発生する可能性があるＸ状態にどのように対処できるかに関しての一例を示す模式的なブロック図である。図３の図において、オーバードライブ・レジスタ１５０は４ビットのシフトレジスタである。したがって、図３の左半分は、スキャンチェーン１２０のデータサイクルを４サイクルのブロックにまとめて示しており、大文字「Ａ」、「Ｂ」および「Ｃ」で表示している。各ブロックの個々のサイクルはそれぞれ小文字「ａ」、「ｂ」、「ｃ」および「ｄ」の符号を付している。図３の右半分は、ブロックＡの圧縮テスト応答ビット３０２が、オーバードライブ・レジスタ１５０にロードするところを示している（図３の左半分および右半分は同時に起こらないイベントを示しているが、参照しやすくするために１つの図に示している）。図３の右半分のブロックＡは、複数のスキャンチェーンからの未圧縮テスト応答ビットを圧縮した結果であるビットを含む。たとえば、圧縮テスト応答ビット３０８は未圧縮テスト応答ビット１をＡブロックのｄサイクルからのｎまでＸＯＲ演算した値である。ブロックＢおよびＣの圧縮テスト応答ビット３０４、３０６は、それぞれ、オーバードライブ・レジスタ１５０に連続してロードできる。
【００３９】
図３の左側に示すように、スキャンチェーン・サイクル３１０（すなわち、ブロックＢのサイクルｂ）はスキャンチェーン２のセル３１２にＸ状態を含んでいる。このＸ状態は同じスキャンアウト・サイクル（すなわち、他のスキャンチェーンのブロックＢのサイクルｂ）に捕獲されているエラーを隠す可能性がある。その結果、このＸ状態はブロックＢのテスト結果全部を無効にする可能性がある（たとえば、ブロックＢをコンパクタ１５２で圧縮した後）。このため、図示する実施形態および何らかのマスキングが存在しない場合、ブロックＢを含むセルの圧縮したコンテンツを、ブロックのサイクルａ、ｂ、ｃおよびｄのデータを第２コンパクタ１５２で同時に処理するようにオーバードライブ・レジスタ１５０にロードする。いくつかの実施形態では、Ｘ状態は、Ｘ状態が第１コンパクタ１１０に渡されないように論理ゲート１４２のうちの１つによってマスクできる。いくつかの実施形態では、マスク信号をパターン毎に論理ゲートに供給するが、他の実施形態では、マスキング信号を他の間隔（たとえば、複数のパターン毎、サイクル毎、または複数のサイクル毎）で与える。したがって、論理ゲート１４２を使用してスキャンチェーン１２０内の１つのセルをマスクすると、スキャンチェーン全体の値をマスクすることになり、対象とする故障（エラー値）を示すテスト応答ビットがマスクされたスキャンチェーンから観測されないようにすることができる。代わりのアプローチは、サイクル３１０を第１コンパクタ１１０で圧縮させることである。次に、第２ステージ論理ゲート１４４を使って、未知状態を含んでいる圧縮したｂサイクルをマスクできる。マスク信号をパターン毎に第２ステージ論理ゲート１４４に供給する場合、このステージでのマスキングはスキャンチェーン内のｖ番目のセル毎に発生するエラーだけでなく、それらのセルで捕獲される未知状態も潜在的に排除できる。
【００４０】
テスト回路コンパクタ・アーキテクチャのさらに別の実施形態を図４ないし図７に示す。図４はテスト応答コンパクタ・アーキテクチャ４００の一実施形態を示しており、スキャンチェーン４１０はグループ４１２および４１４に区画化されている。各スキャンチェーン・グループからのデータを個別のコンパクタ４２０、４２２で圧縮してから、それぞれ個別のオーバードライブ・レジスタ４３０、４３２に送り込む。オーバードライブ・レジスタ４３０、４３２の値を別のコンパクタ４４０で圧縮できる。前述と同様に、コンパクタ４２０、４２２、４４０への入力を１つまたは複数のセレクタ回路４５０を使ってマスクできる。図４の実施形態では、一方のオーバードライブ・レジスタのビットはマスクしないままで、他方のオーバードライブ・レジスタのビットをマスクできる。このように、スキャンチェーン・グループ４１２、４１４の一方のＸ状態が、他方のスキャンチェーン・グループから得られる結果に与える影響を低減できる。図４では第１ステージ・コンパクタおよびオーバードライブ・レジスタを２つしか示していないが、図示するアーキテクチャで複数の追加のコンパクタおよびレジスタを使用できることは理解されたい。
【００４１】
図５は、複数の出力を供給するように構成したテスト応答コンパクタ・アーキテクチャ５００の別の実施形態を示している。図４のテスト回路コンパクタ・アーキテクチャと同様に、アーキテクチャ５００はグループ５１２、５１４に区画化したスキャンチェーン５１０を含み、前記グループがコンパクタ５２０、５２２で圧縮されるテスト応答データを供給する。これらコンパクタ５２０、５２２はデータをそれぞれオーバードライブ・レジスタ５３０、５３２に送り込む。アーキテクチャ５００では、オーバードライブ・レジスタ５３０、５３２は圧縮した応答を、同じコンパクタではなくそれぞれ個別のコンパクタ５４０、５４２に送り込む。このことにより、コンパクタ５２０、５４０、５４２への１つまたは複数の入力をマスクするかどうかに関係なく、第１スキャンチェーン・グループを第２スキャンチェーン・グループのＸ状態の影響から分離できる。マスキングを使用できる実施形態では、アーキテクチャはさらに１つまたは複数のセレクタ回路５５０を含むことができる。図５には第１ステージ・コンパクタ、オーバードライブ・レジスタ、および第２ステージ・コンパクタを２つしか示していないが、図示するアーキテクチャで複数の追加のコンパクタおよびレジスタを使用できることは理解されたい。
【００４２】
図６は、複数の出力を供給するように構成したテスト応答コンパクタ・アーキテクチャ６００のさらに別の実施形態を図示している。この実施形態では、コンパクタ６１０、６１２が複数の各スキャンチェーン・グループ（図示せず）からの出力を圧縮して、圧縮した出力をそれぞれオーバードライブ・レジスタ６２０、６２２に供給する。オーバードライブ・レジスタ６２０、６２２は２つのコンパクタ６３０、６３２に入力を供給する。この実施形態では、オーバードライブ・レジスタからの非連続ビットをコンパクタ６３０、６３２に供給して、バースト・エラーの影響を低減できる。たとえば、オーバードライブ・レジスタ６２０からの出力６４０は、コンパクタ６３０の入力ではなく、コンパクタ６３２の入力６４２に経路指定できる。他のルーティング構成も使用できる。テスト回路コンパクタ・アーキテクチャはさらに１つまたは複数のセレクタ回路６５０を含むことができる。図６では第１ステージ・コンパクタ、オーバードライブ・レジスタおよび第２ステージ・コンパクタを２つしか示していないが、図示するアーキテクチャで複数の追加のコンパクタおよびレジスタを使用できることは理解されたい。
【００４３】
テスト応答コンパクタ・アーキテクチャ７００のさらに別の実施形態を図７に示している。図示する実施形態は、単一の出力を供給しながら、バースト・エラーの影響を低減するように構成されている。コンパクタ７１０から圧縮された出力を第１オーバードライブ・レジスタ７２０およびマルチプレクサ（ＭＵＸ）７３０に供給する。オーバードライブ・レジスタ７２０はＭＵＸ７３０にも送り込み、ＭＵＸ７３０をさらに第２オーバードライブ・レジスタ７２２に連結する。オーバードライブ・レジスタ７２０、７２２はクロック信号７３２によって刻時されて、クロック信号（クロックディバイダ７３３により生成される）の分割されたものをＭＵＸ７３０に供給する。この配列にすると、オーバードライブ・レジスタ７２２はコンパクタ７４０に非連続の出力グループを供給できる。アーキテクチャ７００はさらに１つまたは複数のセレクタ回路７５０を含むことができる。図７には1つの第１ステージ・コンパクタ、２つのオーバードライブ・レジスタ、および１つの第２ステージ・コンパクタしか示していないが、図示するアーキテクチャで複数の追加のコンパクタおよびレジスタを使用できることは理解されたい。
【００４４】
図８は、テスト応答コンパクタ・アーキテクチャ８００の別の実施形態のブロック図を示している。この実施形態では、１つまたは複数のオーバードライブ・レジスタ８０２、８０４をコンパクタ・アーキテクチャ８００の第１ステージに配置する。より具体的には、オーバードライブ・レジスタ８０２、８０４は１つまたは複数のスキャンチェーンからの入力を受信する。たとえば、オーバードライブ・レジスタ８０２はスキャンチェーン８１２からの入力を受信する。図８はオーバードライブ・レジスタを２つしか示していないが、この実施形態で、１つのオーバードライブ・レジスタをスキャンチェーン８１０の各々に連結することは理解されたい。他の実施形態では、他の数のレジスタをスキャンチェーンに連結する。オーバードライブ・レジスタ８０２、８０４はそのそれぞれのスキャンチェーンからの入力をコンパクタの第１ステージにロードするように構成されている。たとえば、オーバードライブ・レジスタ８０２、８０４はスキャンチェーン８１２、８１４から受信した値をそれぞれ第１ステージ・コンパクタ８２２、８２４にロードする。一般に、値はオーバードライブ・レジスタ８０２、８０４から第１ステージ・コンパクタ８２２、８２４に並列でロードされる。第１ステージ・コンパクタ８２２、８２４からの出力をその後第２ステージ・コンパクタ８３０で圧縮できる。コンパクタ・アーキテクチャ８００はさらに、コンパクタ８２２、８２４、８３０への１つまたは複数の入力をマスクするセレクタ回路８４０を含むことができる。セレクタ回路８４０は前述した他のコンパクタ・アーキテクチャのセレクタ回路と同様にすることができる。図８には第１ステージ・コンパクタおよびオーバードライブ・レジスタを２つしか示していないが、図示するアーキテクチャで複数の追加のコンパクタおよびレジスタを使用できることは理解されたい。
【００４５】
図９は、テスト応答コンパクタ・アーキテクチャ９００の別の実施形態のブロック図を示している。この実施形態では、オーバードライブ・レジスタから第１ステージ・コンパクタ９０２に入力を供給する代わりに、入力をｖクロックサイクル毎にスキャンチェーン内のｖ個のスキャンセル（通常、チェーンの最後のｖ個のセル）から直接並列でロードできる。たとえば、図９では、スキャンチェーン９１２はチェーン９１２の末尾のｖ個のスキャンセル９２２からコンパクタ９０２に入力を供給する（図９では、分かりやすくするために、個々のセルは図示していない）。
【００４６】
図３１は、第１ステージのコンパクタ３１１０と第２ステージのコンパクタ３１２０とを含むテスト応答コンパクタ・アーキテクチャ３１００の別の実施形態のブロック図を示している。コンパクタ３１１０はそれぞれオーバードライブ・レジスタ３１３０、３１３２に連結されている複数の出力３１１２、３１１４を含む。コンパクタ３１２０は複数の出力３１２２、３１２４、３１２６を含む。一般に、本明細書に記述するテスト・コンパクタ・アーキテクチャは複数の出力を有する１つまたは複数のコンパクタを含む実施形態に適応できる。
【００４７】
図３２は、１つまたは複数のスキャンチェーン出力および／またはオーバードライブ・レジスタ出力の各々が複数のコンパクタ入力を駆動できる（たとえば、出力がファンアウトを有することができる）テスト応答コンパクタ・アーキテクチャ３２００の別の実施形態のブロック図を示している。たとえば、図示する実施形態では、スキャンチェーン３２０２はスキャンチェーン出力３２０４を有し、これがマスキング・ゲート３２１４、３２１６を介してそれぞれコンパクタ入力３２１０、３２１２に連結されている。このためスキャンチェーン出力３２０４は２つのコンパクタ３２２０、３２２２を駆動できる。オーバードライブ・レジスタ出力３２３０は同様に２つの第２ステージ・コンパクタ３２４０、３２４２それぞれの入力３２３２、３２３４を駆動する。
【００４８】
図３３は、テスト応答コンパクタ・アーキテクチャ３３００のさらに別の実施形態のブロック図である。この実施形態は図９のアーキテクチャ９００に似ており、コンパクタ３３１０への入力をスキャンチェーン内のｖ個のセルから並列でロードできる。たとえば、スキャンチェーン３３２０はスキャンチェーン３３２０のスキャンセル３３３０からコンパクタ３３１０に入力を供給する。図示する実施形態では、コンパクタ３３１０は複数の出力を含み、アーキテクチャ３３００は１つのステージのコンパクタ・アーキテクチャである。別の実施形態では、図８のアーキテクチャ８００と同様に、コンパクタの入力を、スキャンチェーン自体から直接ではなく、１つまたは複数のオーバードライブ・レジスタからロードできる。
マスキング信号選択方法
セレクタ回路のマスキング信号の選択（たとえば、図１のセレクタ回路１４０では、選択ロジック１４６によって論理ゲート・グループ１４２、１４４に供給されるマスク信号）は、テスト品質に有意な影響を持つ可能性がある。マスキング信号は様々な方法を使用して選択できる。いくつかの実施形態では、回路設計に適用される所与のテストパターンに関し、スキャンチェーンを１つまたは複数の因子（たとえば、チェーンをマスクするまたはマスクしないことから得ることができる、考えられる故障を検出する際の潜在的なカバレッジのゲインまたはロス）にしたがってランク付けする。本議論の目的上、一次故障伝播サイトとして単一のスキャンセルを選ぶ。このアプローチにより故障を均一に扱うことができる。そうではなく、少数の伝播サイトをもつ故障は、故障の最有力位置が多数の観測点をもつため検出が難しいであろう。
【００４９】
図１０は、セレクタ回路１４０などのセレクタ回路とともに使用するためのマスキング信号を判定する一般的な方法１０００のある実施形態のブロック図を示している。開示する実施形態は、たとえば、テストセットの各テストパターンをテスト中に適用して実施でき、（たとえば、テストパターンのシミュレーションを被テスト回路に適用して得られる）シミュレーション結果を使用して、割り当てるそれぞれの重みを判定できる。方法１０００は様々なコンパクタ・アーキテクチャ（たとえば、ＸＯＲ、Ｘコンパクト、Ｉコンパクトおよびその他）でも使用できる。工程１０１０において、１つまたは複数のスキャンチェーンの複数の個々のスキャンセルに重みを割り当てる。たとえば、所与のセルを観測すると仮定すると、セルの重みはエラーカバレッジ全体に対するそのセルの寄与分を示すことができる。いくつかの実施形態では、重みは次のように割り当てることができる。未知状態を捕獲するスキャンセルに重み「０」を割り当てることができ、ドントケア状態を捕獲するスキャンセルには値「１」を割り当てることができ、故障によって影響を受けそうなスキャンセル（本明細書では「一次（プライマリ）」セルと呼ぶ）には重み「Ｃ」を割り当てることができる。ドントケア状態を捕獲するセルに重み１を割り当てることによって、これらのセルを、マスキング決定を導く分析に含有できる。故障は１つ以上のスキャンセルに伝播することが多いため、このようなセルを観測させるのは有益となる可能性がある（たとえば、一次セルをマスクする場合）。しかし、スキャンセル間の優先度を保持するために、一次セルに関連する重みＣは、ドントケア値を持つ多くまたはすべてのセルを観測させる総合的な効果が１つまたは複数の一次セルの可視性を有意に減少させないように十分大きくすることが望ましい。
【００５０】
図１１は、各々が２４個のスキャンセルからなる５個のスキャンチェーン１１０２、１１０４、１１０６、１１０８、１１１０の表現１１００の一実施形態を示している。スキャンセルには工程１０１０にしたがって重み０、１または３０（本実施形態におけるＣの値）を割り当てている。たとえば、スキャンセル１１２０には重み１を割り当て、ドントケア値を捕獲したことを示しており、一方スキャンセル１１２２には重み３０を割り当て、故障の存在を示す値を捕獲したことを示す。
【００５１】
図１０に戻って、工程１０２０において、１つまたは複数のスキャンチェーン内の複数のスキャンセルの重みを総計する。次の圧縮ステージでスキャンセルをどのように圧縮するかに応じて、重みを総計することが望ましい。たとえば、ある例示的な実施形態では、スキャンチェーン表現１１００は本明細書において「複合チェーン」と呼ばれる表現にマッピングする。１つの複合セル内のチェーンから数個のスキャンセルを表すことによって、スキャンチェーンに割り当てた重みから複合チェーンを作成できる。いくつかの実施形態では、チェーン内のｖ個の連続したスキャンセルは１つの複合セルで表すことができる。複合セルを表す１つまたは複数の元のスキャンセルの値に少なくとも部分的に基づいて、重みを複合セルに割り当てることができる。いくつかの実施形態では、複合セルの重みは元のセルの重みの合計である。くわえて、複合セルの一部として含まれる元のセルの１つの重みが「０」である場合（たとえば、元のセルの１つがＸ状態を捕獲する場合）、複合セルに重み「０」を割り当てることができる。特定の実施形態では、このことから、オーバードライブ・レジスタによって供給されるデータの圧縮により考えられる結果をある程度予測できる。上記説明したように、第１圧縮ステージ前に抑制されないＸ状態は、Ｘマスキングまたは２番目のステージのゲーティングのいずれかのために、多数のエラーデータを無用に（使えなく）する可能性がある。いくつかの実施形態では、圧縮プロセスの早期に一定のＸ状態をブロックすると、有意なカバレッジの低下を防ぐのに役立てることができる。
【００５２】
図１１は、複合チェーン１１３２、１１３４、１１３６、１１３８、１１４０のそれぞれにマッピングしたスキャンチェーン１１０２、１１０４、１１０６、１１０８、１１１０の例示的な実施形態を示している。参照しやすくするために、図１１では、スキャンチェーン１１０２、１１０４、１１０６、１１０８、１１１０は４つのセル・グループＴ、Ｕ、Ｗ、Ｘ、ＹおよびＺに分けて示している。複合チェーンの列（本明細書では「タイムフレーム」と呼ぶこともある）は、複合セルが示すのがどの４つのセル・グループを表すかを示すように符号を付ける。たとえば、複合チェーン１１３６のＴ列の複合セルの重みは３３であるが、これはスキャンチェーン１１０６のグループＴのスキャンセルの総和である。複合チェーン１１３２の列Ｔの複合セルの値は０であるが、これはスキャンチェーン１１０６のグループＴの１つのセルの重みが０だからである。
【００５３】
ある実施形態では、マスクの選択は、複合スキャンチェーンの重みの代わりに、元のスキャンチェーンの重みに基づくことができる。これは、たとえば、複合チェーン内に重みが少なくともＣに等しいセルがないまたは少ししかない場合に使用できる。
方法１０００の工程１０３０において、たとえば、１つまたは複数の複合スキャンチェーンの総計重みに基づいて係数（本明細書では「スコア」と呼ぶこともある）を判定できる。いくつかの実施形態では、複合スキャンチェーンについて係数ＳiおよびＭiを計算する。上記例示的な実施形態では、Ｓiはスキャンチェーンｉが選択される場合に残る推定エラー数に比例し、係数Ｍiはスキャンチェーンｉがマスクされる場合に残る推定エラー数に比例する。
【００５４】
Ｘ（ｉ）を複合スキャンチェーンｉに内包される（複合スキャンチェーンがホストとなる）重み０のセルの集合と仮定する。また、すべての複合スキャンチェーンのあるｃ番目のセルについて、ＥcおよびＸcは、それぞれこれらセルの重みの合計と、重み０のセルの数を表すと仮定する。すると、係数Ｓiは例示的な式１によって求めることができる。
【００５５】
【数１】
0005554365.tif 000002
【００５６】
上記式において、ｗi，ｃは複合スキャンチェーンｉのセルｃの重みである。式１のＳiは、所与の複合スキャンチェーンで発生する全セルの重みの総和に等しく、対応するタイムフレームで発生するＸ状態がマスクされる確率によって増減する（１つのスキャンチェーンは０．５の確率でマスクされると仮定する）。式１において、Ｓiは所与のスキャンチェーンに内包されるＸ状態のものと同じタイムフレームに関連する重みＥcに影響を受ける。Ｅcは二重数（ダブルカウント）を避けるために対応するＸ状態の数によって増減する。以上のように、２番目の成分は、スキャンチェーン自体がマスクされない場合、Ｘマスクできるエラーを考慮できる。
【００５７】
例として、図１１に示している複合スキャンチェーンについて、ｉ＝１（すわなち、複合スキャンチェーン１１３４）の場合の上記数値を判定できる。この例では、Ｃ＝３０かつＸ（１）＝｛０，３｝（すなわち、複合スキャンチェーン１のセル０およびセル３の重みが０）である。また、Ｅ0＝３７、Ｅ3＝７０、Ｘ0＝３、Ｘ3＝２である。このため、Ｓ1は以下のように計算する。
Ｓ1＝６２×０．５＋３３×０．５＋４×０．５＋４×０．２５−３７／３−７０／２＝３．２（２）
いくつかの実施形態では、数値Ｍiは以下のように判定できる。
【００５８】
【数３】
0005554365.tif 000003
【００５９】
この例示的な式では、最初の項は、同じシフトサイクルから他の未知状態によってマスクされないと仮定すると、所与のスキャンチェーンに内包されるＸ状態（現在マスクされている）のものと同じタイムフレームに対応する重みＥcの総和に等しい。２番目の項は、他のスキャンチェーンからのＸを調整したうえで、マスクされるチェーン自体を含めて、マスクされるスキャンチェーンで発生するセルの重みの分だけ最初の項を減少させる。様々な実施形態において、ＳiまたはＭiのいずれもマイナスになることができ、したがって、このことは所与のスキャンチェーンを選択またはゲーティングする場合、考えられるカバレッジの低下を示す。
【００６０】
図１０に戻って、工程１０４０において、少なくとも部分的に係数（たとえば、チェーンのＳiおよび／またはＭiの値）に基づいて、所与のチェーンをマスクするかどうかの決定を行うことができる。
図１２は、あるテストパターン、検出された１つまたは複数の故障、およびそれに対応する故障スキャンセルおよび未知状態の位置が与えられたとして、マスクするスキャンチェーンを選択する方法１２００の一実施形態を示している。方法１２００は上記紹介した一般的な方法１０００と統合できる。
【００６１】
工程１２１０において、１つまたは複数のスキャンチェーンの係数（たとえば、Ｓiおよび／またはＭi）を判定する。工程１２２０において、２以上のスキャンチェーンの係数を比較する。工程１２３０において、少なくとも部分的に係数に基づいて、選択またはマスクする１つまたは複数のチェーンを選ぶことができる。たとえば、いくつかの実施形態では、Ｓiの値が大きいまたは値が最大のスキャンチェーンにマスクビット値１を割り当てることができ、これはそのチェーンからの値はコンパクタに渡されることを示すものである。Ｍiの値が大きいまたは値が最大のスキャンチェーンにはマスクビット値０を割り当てることができ、これはそのスキャンチェーンからの値はマスクされることを示すものである。
【００６２】
工程１２４０において、スキャンチェーンのコンテンツの表現を、工程１２３０の決定（これは仮決定にできる）に基づいて更新できる。たとえば、表現（表現１１００など）において、マスキング値０を割り当てられているスキャンチェーンからエラーおよび／またはＸ状態を削除できる。矢印１２４２で示すように、マスクビット値を１つまたは複数の他のスキャンチェーンに反復的に割り当てることができるように、前述の工程のうちの１つまたは複数を繰り返すことができる。
【００６３】
工程１２５０において、マスクビットの割り当てを符号化する。たとえば、ある実施形態では、この手順は、被テスト回路のスキャンチェーンにマスキング信号を割り当て、所望のマスキングを達成するのに選択回路に入力する必要のあるマスクビットを判定することを伴う。特定の実施形態では、ＳiまたはＭiの値にしたがってマスキング信号を割り当て、上記工程でスキャンチェーンを考慮した順序で順次考慮する。ある実施形態では、この確認手順は、所望のマスキング信号を選択回路で生成するかどうか、およびどのように生成するかを判定する線形方程式を解くことを伴う。図示する実施形態では、プロセスは、最初の符号化エラーが発生する（たとえば、マスキング信号を仮に割り当てることのできない最初のスキャンチェーンが考えられる）まで進める。さらに、ある特定の実施形態では、係数ＳiおよびＭiによって判定される順序に関係なく、符号化プロセスはマスク信号が１のスキャンチェーンから始める。この変型例は、手順のまさに最初に、マスクするスキャンチェーンの大きいグループのマスキング信号を符号化することによって、すべてのマスクビットを０に設定しないように実施できる。このようなアプローチはすべてのスキャンチェーンを観測できなくする可能性があるだろう。
【００６４】
工程１２６０において、符号化の対象ではなかった符号化されていない残りのマスキング信号を、できれば、セレクタ・アーキテクチャを考慮して評価および符号化する。
さらに別の実施形態では、前述の選択方法を圧縮の２番目のステージにも同様に適用できる。前記実施形態では、マスキング信号は、図３の圧縮サイクル３０２、３０４、３０６などの圧縮サイクルの値に関して判定できる。圧縮サイクルの値に重みを割り当てることができる。重みは、たとえば、圧縮値を生成した（マスクされていないチェーンの）スキャンセルのうちどれくらいが故障伝播サイトであるかを示すエラー数に関係付けることができる。いくつかの実施形態では、あるスキャンセルがＸを捕獲し、セルのスキャンチェーンがマスクされていない場合、ある重み（たとえば、０）をセルから生成された圧縮値に割り当てることができる。
例示的な実験の圧縮結果
図１に示しているテスト回路コンパクタ・アーキテクチャの例示的な実施形態を、いくつかの工業設計でテストした。報告された実験では、マスク・レジスタをパターン毎に１度ロードした。このようなアプローチは、テスト・データの総量に対し比較的少量のデータを与えた結果、全体の圧縮比を損なうことはなかった。一般に、Ｘ状態の存在および選択ロジックの使用により、元のテストパターンを適用した場合いくつかのテスト回避を生じさせる可能性がある。そのため、完全な故障カバレッジを回復するために付加パターンを使用した。それに応じたパターン数および有効な圧縮の増加を、圧縮スキームの性能を評価する基本的な性能指数として使用できる。
【００６５】
図１３に、選択的コンパクタ（たとえば、図１のコンパクタ・アーキテクチャ１００）とともにテストパターンを使用する方法１３００のブロック図を示している。以下に述べる実験結果を得るために方法１３００を使用した。元の故障リストから始めて、工程１３１０でテストパターンを生成し、工程１３２０において、テスト回路アーキテクチャの１つまたは複数のスキャンチェーンの故障伝播サイトおよびＸ状態の位置を判定した。たとえば、被テスト回路へのテストパターンの適用およびテストパターンに対する被テスト回路の応答（テスト応答）をシミュレーションできる。工程１３３０において、（前述の方法１２００を使って）スキャンチェーンをマスクまたは選択する値および／またはオーバードライブ・レジスタの値を求めた。工程１３４０において、判定したマスキング値を考慮して故障カバレッジを調べた。工程１３５０において、検出した故障を元の故障リストから削除した。工程１３６０で、所与のレベルの故障カバレッジに達するのに用いたテストパターンの数を記録し、工程１３７０で、コンパクタを制御するマスクビットも記憶した。矢印１３７２で示すように、元の故障リストの故障が検出されるまで方法１３００を繰り返した。
【００６６】
実験結果を表１（図１４に掲載）および表２（図１５に掲載）にまとめている。各回路について、次の情報を記載している。名前、スキャンアーキテクチャ、および故障の総数、エラー・ビットの総数（誤りのある信号を捕獲するスキャンセルの数）、圧縮しない場合の故障カバレッジ（「ＦＣ」）に寄与するテストパターンの数、展開するテストパターンの順序（シーケンシャル）深度、捕獲されるＸ状態の総数対スキャンセルの数の比に、テストパターンの数を乗じて計算したＸフィルレート、マスク・レジスタのサイズｍ、オーバードライブ・レジスタのサイズｖ、パターンの総数および絶対値で表される対応するパターン数の増加（「ＩＰＣ」と標記される列）ならびに元のテスト数の割合として表される対応するパターン数の増加（「％」と標記される列）、および有効圧縮比Ｃ。表１および表２において、Ｃ＝ＡｓＬ／Ｔ（Ｌ／ｖ＋ｃ）であり、この式でＡは元のパターン数、Ｔはテストパターンの総数、ｓはスキャンチェーンの数、Ｌは最長のスキャンチェーンのサイズ、およびｃ＝ｍ＋ｖはＸプレス・コンパクタ制御データの量（たとえば、マスクビットの数）である。
【００６７】
実験は、所与のスキャンチェーン構成で必要な最小のものから始まる４つのｍの値、８つのオーバードライブ因子ｖの値、および単一出力コンパクタを使って行った。表１および表２で報告する回路は、約０．００１％（Ｃ６）から約２．６％（Ｃ７）までの幅広い範囲のＸフィルレートを示す。その結果生じたパターン数の増加は、Ｘフィルレートが低い回路（たとえば、Ｃ６）の１％未満から、設計がＸの高い割合を示す場合の１１１％までと著しいばらつきがある。また、その発生頻度と同じく未知状態が捕獲されるサイトがこのばらつきの要因であるようだ。たとえば、すべてのテストパターンにわたって均一に、Ｘ状態が設計Ｃ２、Ｃ７およびＣ８のスキャンチェーンの大部分に存在することが観測されている。他方で、設計Ｃ５では、Ｘ状態がひどく集中しているスキャンチェーンはわずか少ししかない。この場合、スキャンの大部分はＸフィルレートが低かったか、または未知状態をまったく示さなかったのである。そのため、Ｘがスキャンセルの小部分（１．４１％）に限られる設計Ｃ５は、完全なカバレッジを回復するのに３％〜１６％だけ多くのパターンが必要であった。設計Ｃ２およびＣ８は３倍少ないＸを示すが、対応するパターン数の増加は４０％〜８０％であった。
【００６８】
設計Ｃ７は、多くの未知状態（報告されている回路のうちで割合が一番高いもの）が扱いにくいクラスタを形成した「最悪の場合」のシナリオを示している。この場合、依然としてパターン数の増加は１１１％以下である。Ｘ状態の影響は、数値ｓ・ｖ（Ｘが存在せず、制御データがない理想的な圧縮）に対して、達成されたもっとも高い（強調される）圧縮比Ｃを比較するともっとはっきりさせることができる。表３は１００Ｃ／ｓｖのような圧縮効率を報告している（最初の列）。以上のように、圧縮効率はオーバードライブ因子（および圧縮）の値が増加するにしたがって低下し、高い圧縮比に関するかぎり、制御データが考慮成分となることを示している。
表３ 実験結果を得るために用いた回路の圧縮効率
【００６９】
【表３】
0005554365.tif 000004
【００７０】
実験結果から別のトレードオフの関係も分かる。少なくとも一部の場合において、特にＸフィルレートが高い場合（Ｃ７、Ｃ８）、小さいオーバードライブ因子で最大の圧縮を得るには、比較的大きなマスク・レジスタが必要である。しかし、圧縮はｖの値が大きくなるにしたがって増加するため、制御データの量が考慮要因となる。このように、高い圧縮度を達成するのに、そうでない場合ほどパターン数が低くなくても、より小型のレジスタを使用できる。
セレクタ回路およびセレクタ回路合成の例示的な実施形態
本セクションでは、スキャンチェーン選択ロジックおよび上記スキャンチェーン選択ロジックを作成する方法のさらに別の例示的な実施形態を説明する。開示する装置および方法は、前述のマルチステージ・コンパクタの実施形態の一方のステージまたは両方のステージで使用できる。説明する方法および装置は単一ステージのコンパクタ（たとえば、単一ＸＯＲまたはＸＮＯＲツリー）または他のスペース・コンパクタに接続して使用することもできる。たとえば、以下の議論は一般に単一ステージのコンパクタに接続する例示的な装置および方法を説明するが、開示する原理はマルチステージ・アーキテクチャに容易に適用可能である。
【００７１】
開示する技術のいくつかの実施形態は、テスト応答コンパクタ用のフレキシブルＸ状態制御ロジックとして作用することができる。開示する技術の実施形態は、Ｘ状態の割合が大きいテスト応答であっても、スキャンエラーの良好な可観測性を提供できる。開示する選択ロジックの実施形態は、シリコン面積およびそれを制御するのに必要な情報量の点で効率的なものにもできる。開示する回路の実施形態は診断のためにスキャンチェーンを選択的にゲートするのにも採用できる。
【００７２】
前述したように、図１は、選択ロジック１４６とマスク・レジスタ１４８とを含むセレクタ回路１４０の例示的な実施形態を示している。選択ロジック１４６は、第１および第２の論理ゲート・グループ１４２、１４４のうち少なくとも一部に入力を供給するように構成した線形論理回路にできる。いくつかの実施形態では、論理ゲートのうちの１つまたは複数がＡＮＤゲートであり、別の実施形態では１つまたは複数の他の種類の論理ゲートも使用できる（たとえば、ＯＲ、ＮＯＲ、ＮＡＮＤおよび他の種類）。論理ゲートに供給する入力は以下のようにすることができる。スキャンチェーンまたはオーバードライブ・レジスタの圧縮出力からの値をブロックするために「０」を供給できる（たとえば、未知状態を抑制するため、または故障診断およびシリコンのデバッギングなどの他の理由のためにスキャンチェーンを使用不可にするため）。スキャンチェーンからの未圧縮テスト応答ビットまたはオーバードライブ・レジスタからの圧縮テスト応答ビットを渡すために「１」を供給できる（たとえば、スキャンチェーンのスキャンセルで捕獲されるエラーを含んでいるテスト応答ビットを搬送してもよいので、値をコンパクタに渡すため）。スキャンチェーンまたはオーバードライブ・レジスタの位置がクリティカルとみなされないコンテンツを有していることを示すために、「ドントケア」値を供給できる（たとえば、論理ゲートはゲート信号として１または０のいずれかを受信できる）。
【００７３】
いくつかの実施形態では、セレクタ回路内のそれぞれまたは実質的に各論理ゲート（たとえば、コンパクタの１つまたは２つのステージ）のマスクビットまたはマスキング命令ビットをセレクタ回路に供給する。これはテスト応答ビットをマスクすることに対しトータル制御またはほぼトータル制御を提供できる。しかし、いくつかの実施形態では、特に比較的多数の論理ゲートがあるものの場合、このアプローチが実用的でないことがあり、テスト回路アーキテクチャの負荷を著しく増大させる可能性がある。くわえて、制御データの量がアーキテクチャの圧縮比を著しく低下させる可能性がある。
【００７４】
特定の実施形態では、選択ロジック１４６は、マスクビット・セットにしたがって論理ゲートの１つまたは複数にマスキング信号を供給するように構成した組合せ回路を含む。組合せ回路は、少なくとも部分的に特定のマスクビット（いくつかの実施形態ではマスク・レジスタ１４８に記憶されており、１つまたは複数のステージを含むことができる）を選択ロジック１４６の出力にどのように接続するかを示すセレクタ多項式で定義できる。ある望ましい実施形態では、選択ロジック１４６はｍ入力、ｎ出力線形マッピング回路として設計でき、ｍはマスクビットの数、ｎはスキャンチェーンの数（またはオーバードライブ・レジスタ１５０のセルの数）であり、ｍ＜＜ｎである。それから入力の所与の数ＦをＸＯＲ演算することによって、出力を得ることができる。ｍ＝６、ｎ＝１２、およびＦ＝３の場合のこのような回路１６００の一実施形態を図１６に示している。入力１６１０は図の左側に現れ、一方出力１６２０は図の底部に沿って現れている。別の実施形態では、回路１４００は２つの部分、たとえば、それぞれｍ入力、ｎ出力の線形マッピング回路およびｒ入力、ｖ出力の線形マッピング回路を含むことができ、ｍ＋ｒはマスクビットの総数、ｎはここでもスキャンチェーンの数、ｖはオーバードライブ・レジスタのサイズである。
【００７５】
いくつかの実施形態では、ｖはスキャンチェーンの数ｎに比べて小さい。これにより、少数のマスクビットを使用して２番目のステージを制御でき、それによって選択ロジックのその部分をマスキング信号だけを記憶するｖビットレジスタに縮小する。このような場合、通常個別の符号化ロジックを実装する必要はない。
回路１６００などの回路を合成する例示的な方法の実施形態を以下に説明する。開示する実施形態の一部では、選択ロジックの合成は高い符号化効率を達成することを主な目的にでき、符号化効率はマスクビットの数ｍに対しうまく符号化された予め指定されているゲート信号の比率として定義される。この目的は、１つのゲート信号の符号化に失敗すると、スキャンチェーン全体が観測できなくなることによって著しいカバレッジの低下を招くおそれがあるため重要である。（しかし、いくつかの実施形態では、システムがテスト結果をマスクすることに対し完全な制御を提供しない場合でさえも、なお十分な結果を得ることができる。）これはテストパターン圧縮とは対照的であり、指定ビットが１つ欠落しても典型的にはテストの質は大幅に劣化しない。符号化効率はセレクタ多項式間の一次従属の確率に直接関係するため、望ましいセレクタを設計する作業は、第１多項式セットの一部およびいくつかの考えられる「候補」多項式が１つまたは複数の一次従属セットを形成する確率を示すデータによって導くことができる。この情報を使って、また、一例示的な実施形態によると、合成は以下に述べる選択手順によってｎ回行える。
【００７６】
図１７は、選択回路用の制御ロジックを生成する方法１７００の一実施形態を示している。工程１７１０において、第１候補多項式を生成する。いくつかの実施形態では、第１多項式は無作為に生成するが、別の実施形態では代替方法を使用できる。
工程１７２０において、生成された多項式を評価して、解セットの多項式に対し従属閾値を満たすかどうかを判定する。いくつかの実施形態では、解セットは当初無作為で生成できるが、別の実施形態では辞書式順序で生成できる。たとえば、候補が所定または一定数以下のマスクビットを解セットの一部または全部の多項式と共有することを検証するために、候補を調べることができる。候補多項式が所定数（たとえば、予め決めた数、これはユーザ選択可能にできる）より多くを共有する場合、候補多項式は捨てて、新たな多項式を生成する。これは、解セットの多項式間の一次従属を減らすのに役立てることができる。
【００７７】
工程１７３０において、解セットから承認済み多項式を用いて候補多項式をｍ要素のセットにまとめる（このセットは「テストセット」とも呼ぶ）。この工程の解セットの多項式は、解セットから無作為に選ぶことができる。このｍ要素のセットのランクを判定できる（たとえば、ガウスの消去法を使用してｍ要素セットの（縮小列エシュロンフォーム（既約階段行列）を求める）。様々な解セットの多項式を使って複数の様々なｍ要素セットにまとめた候補多項式についてこれを繰り返すことができる。特定の実施形態では、候補多項式について平均ランクを計算できる。
【００７８】
工程１７３５において、複数の追加の候補多項式について上記工程を繰り返し、候補多項式（たとえば、各平均ランク）のセットを作る。セット内の候補多項式の数は任意の数にできる。
工程１７４０において、解セットに入れるために、候補多項式セットから１つまたは複数の多項式を選択する。いくつかの実施形態では、平均ランクが高いまたは最も高い候補多項式を選択する。いくつかの実施形態では、１つの多項式ではなく、複数の多項式に一度に工程１７１０、１７２０および１７３０を行うことができる。
【００７９】
工程１７５０において、解セットの明細を１つまたは複数のコンピュータ読取可能媒体に記憶する、または（たとえば、コンピュータの画面上に）表示する。いくつかの実施形態では、また工程１７６０において、解セットにしたがって選択ロジック回路を合成する。本明細書に開示するもの以外のアプリケーション用の制御回路を生成するために、方法１７００を使用できる（たとえば、汎用の制御回路を生成するのに使用できる）。
【００８０】
セレクタ回路を制御するために使用するデータ（いくつかの実施形態では、圧縮データ）は多数の方法で回路に送ることができる。いくつかの実施形態では、セレクタ回路が埋め込み決定論的テスト環境に組み込まれている場合、たとえば、データはテストデータ・デコンプレッサからアップロードできる。たとえば、データは追加の指定ビットとして見なすことができ、実際のテストキューブのものと同様なやり方で符号化プロセスの対象となることができる。しかし、このアプローチはテストパターン生成プロセスにおいてフィードバック・ループを作成することができる。たとえば、一旦生成されたテストキューブは、その後圧縮および解凍すると故障シミュレータで使用するランダムフィルを得ることができ、検出される故障の特定に役立たせることができる。この時点で、マスクビットを一意に判定できる。しかし、これらが圧縮刺激の一部になる場合、典型的には圧縮、解凍および故障シミュレーションのプロセス全体を繰り返さなければならない。そのため、ランダムフィルが変わり、すでに割り当てられているマスキング信号は以前に判定されたよりも効果が低下する可能性がある。また、刺激に新しい指定ビットを追加すると、符号化プロセスがうまくいかないこともある。典型的なＡＴＰＧエンジンは新たな対象とする故障を徐々に追加することによって、テストパターンを段階的に増やして作成する。このスキームでは、パターンに故障を追加するたびに圧縮、解凍および故障シミュレーションを行うかどうか、または最終テストパターンを適用して、マスクビットがパターンの圧縮に失敗した場合にある故障を取り除くかどうかを決定しなければならない。後者のアプローチでは、各パターンについて計算量の多い圧縮、解凍および故障シミュレーションを何度もすることになる可能性もある。
【００８１】
いくつかの実施形態では、最終テストパターンを生成する前のＡＴＰＧプロセスのある時点で、マスクビットを指定することもできる。しかし、それでもＸ状態のサイトは典型的にはランダムフィルが行われるまで分からない。マスクビットの割り当てはここでも解凍および故障シミュレーションをすることになる可能性があり、テスト刺激とマスクビットとの間の相互依存性の問題は残るであろう。
【００８２】
他の実施形態では、１つまたは複数の追加チャネル（または入力パス）を使用して、直接セレクタ・レジスタを駆動できる。これにより、スキャンチェーンにロードされる刺激とは独立して、マスクビットの指定を可能にできる。このアプローチの刺激は必ずしもセレクタのマスクビットに依存するという訳ではない。このアプローチは、たとえば、最長のスキャンチェーンのサイズが１つまたは複数の追加チャネルのセレクタ・レジスタのサイズの総和を有意に超えない場合に使用できる。このような場合、セレクタ・レジスタの入力タップは、チャネル入力ピンとデコンプレッサとの間に挿入することが望ましい。そうすると余計な入力ピンではなく追加のシフトサイクルを使用してマスキング・データを送ることができる。単一入力チャネルのデコンプレッサの使用も可能である。
【００８３】
いくつかの実施形態では、第１インターバル中にテストパターンデータを１つまたは複数のチャネル上の回路（たとえば、デコンプレッサ）に供給し、第２インターバル中にマスキング命令をセレクタ・チャネルの１つまたは複数上のセレクタ・ロジック回路に供給する。これにより、回路は１つまたは複数のチャネルをテストパターンデータおよびマスキング命令の間で「共有」できる。このような構成は、たとえば、図１のコンポーネント１６０、１６２を使用して実施できる。特定の実施形態では、第１インターバルは第２インターバルよりも先に起こるが、別の実施形態では第２インターバルが第１インターバルより先に起こる。さらに別の実施形態では、第１インターバルおよび第２インターバルは、少なくとも部分的に互いの合間に起こるサブインターバル散在させることができる。
【００８４】
方法１７００の例示的な実験結果を以下の表４に提示する。表４は、ｎ＝１２８のスキャンチェーンの論理ゲートを駆動する２つの例示的な選択ロジック回路（ｍ＝３２またはｍ＝３４、Ｆ＝３）の一次独立の確率を示す。指定されるゲート信号の数は１６から３２の範囲である。比較のために、純粋なランダム線形刺激デコンプレッサに関する「上記非特許文献１」）で報告された結果も含んでいる。一次従属の確率に関し、上記非特許文献１で使用されているスキームより、方法１７００のアプローチで実現された改善点を表に示している。たとえば、ある一次独立の尤度（見込み）が与えられたとして、方法１７００により作成した選択ロジック回路の実施形態は、ｍおよびｎが同じ値の場合、上記非特許文献１の回路よりも約４だけ多い指定ビットを符号化できる。また、指定ビットの数が増えると、いったん指定ビットの数がマスクビットの数に近づいてきたら、一次独立の確率がはるかに高い状態を維持する。
表４ 一次独立の確率（％）
【００８５】
【表４】
0005554365.tif 000005
【００８６】
以下は、前述の方法により作成した選択ロジック回路の実施形態の符号化効率を測定した実験結果である。値ｍ、ｎおよびＦが与えられているとして、各実験を多数の連続ステージを含む方法にしたがって行った。ステージｋで、（対応する線形方程式を解くことによって）ｋ個の指定ビット（マスキング信号）がロジック回路で符号化できるかどうかを判定した。工程ｋで符号化を受ける指定ビットは、ステージｋ−１ですでに使用したビットに新しい指定ビットを加えることによって得た。これらの実験は特性実験であるため、新しい指定ビットはロジック回路で選択される出力および回路から要求される値によって無作為に設定した。プロセスは最初に失敗するまで続けた。この場合、符号化されたビットの数（前の工程で使用されたもの）を、ヒストグラムの対応する項目を増分することによって記録した。その後、ゲーティング・ビットの新しい組み合わせが符号化の対象になった。
【００８７】
表５はＦ＝３およびＦ＝５の場合の結果を示している。表５のデータは形式Ｅｓを仮定しており、ｓは各事例においてセレクタ多項式の任意の対によってマスク・レジスタのステージが（最大で）共有する数を示している。表の各項目はゲート信号を符号化できるスキャンチェーンの平均数に対応する。たとえば、三項式（Ｆ＝３）を使う６４出力セレクタおよび３２ビットのマスク・レジスタを考えてみる。得られる符号化効率は９８．２３％に等しい。すなわち、このロジックは、平均で３２×０．９８２３＝３１．４３のゲート信号（スキャンチェーン）を符号化できる。通常低い割合のスキャンチェーンしか未知（Ｘ）状態のほとんどを含んでいないことから、このように出力の大きな部分を制御できる能力は有利である。スキャンチェーンの数が増えると符号化効率がわずかに低下するが、実験したすべての事例で、９０％をゆうに上回る閾値のままであった。同時に、Ｆの値が増えると符号化効率は上昇した。このことから、セレクタのハードウェアのコストとその性能との間にトレードオフの関係が存在することが分かる。
表５ 平均符号化効率（％）
【００８８】
【表５】
0005554365.tif 000006
【００８９】
この観測結果を使用して、ハードウェアのコストをＦ＝３の回路のコストと同じに維持しながら、性能を一層高めた選択ロジック回路を設計できる。このような設計の例示的な実施形態を図１８で入力１８１０および出力１８２０を有する回路１８００として示している。例示的なアーキテクチャでは、各事例でいくつかの三項式の実施にすでに使用した２つの２入力ＸＯＲゲート
【００９０】
【数７】
0005554365.tif 000007
【００９１】
を再利用することによって後半の項を形成するように、ある三項式を五項の多項式（五項式）に置換した。いくつかの実施形態では、さらに五項式は次のような２つの２入力ＸＯＲゲートだけを使用して形成できる。
【００９２】
【数８】
0005554365.tif 000008
【００９３】
で、ｅは新たに作成する多項式の５番目の項である。たとえば、回路１８００では、出力１、４、７および１０は五項式を実施する出力である。
ある実施形態では、選択ロジック回路の合成は、方法１７００を使用して得られる回路を洗練するスティンソンの山登り法手順を含有できる。例示的な方法１７００が完了すると、いくつかの実施形態では、１つまたは複数のセレクタの三項式について関連平均ランクを判定することができる。ランクが低いまたは最低の１つまたは複数の三項式を、より高いランクの三項式に基づいて作成した１つまたは複数の五項式に置換できる。別の実施形態では、いくつかの候補五項式を形成でき、ランクがもっとも高いものを解セットに追加できる。一般に、解セットに追加する五項式の数はｎ／３を超えることはできない。
【００９４】
表７は、Ｆがある多項式で３に等しく、他の場合で５に等しい選択ロジック回路の性能を実験した１組の実験結果を示している。他のパラメータは表５の結果を得るために使用したものと同じである。表６は表５と同じ表形式を使用している。
表６ Ｆ＝３およびＦ＝５の場合の平均符号化効率
【００９５】
【表６】
0005554365.tif 000009
【００９６】
さらに、いくつかの工業設計において、単一ステージの圧縮スキームのスキャンチェーン選択ロジックに適用する例示的な実施形態をテストした。テストした各設計では、一次故障伝播サイトとして１つのスキャンセルだけを選んだ。そのため、方法１７００を適用すると、特にそうしなければブロックされてしまう少数の伝播サイトを持つものの場合、より均一に故障に対処できた。実際、以下に示すように、例示的な選択アルゴリズムの実施形態は、多数の観測点をもつ故障が支配的な役割を果たすことになるため、多くの場合上記マスキング決定を扱うことができる。以下の実験結果を出すために使用したテスト回路アーキテクチャでは、組合せテスト応答コンパクタとして単一出力のＸＯＲツリーを使用した。セレクタ回路内のマスク・レジスタはパターン毎に１度ロードした。このようなアプローチはマスキング信号にごくわずかな量の追加データしか供給する必要がなく、そのため圧縮比を有意に損なうことはなかった。またタイミング収束の違反も防いだ。このマスキング・シナリオの場合、Ｘ状態はあるエラーの可観測性を２倍阻止できる。所与のＸ状態が抑制されない場合、それにより同じスキャンアウト・サイクルで捕獲され、Ｘ状態をＸＯＲ演算したスキャンチェーンから到着するエラーは観測しにくくなる可能性がある。他方で、Ｘ状態をブロックすることは典型的には同じスキャンチェーンで発生するすべてのエラーを隠す。
【００９７】
以下の結果では、スキームの性能を評価する性能指数として、パターン数の増加数値を採用した。実際、元のテストパターンを適用する場合、Ｘ状態および選択ロジックの使用によりいくつかのテスト回避が観測される可能性がある。そのため、典型的には、完全な故障カバレッジが回復するまで、多数の付加パターンを適用するべきである。
以下に報告する実験結果は、図１９に示されている例示的な方法１９００を使用して得られた。方法１９００は図１２に示す方法と実質的に同じであるが、単一ステージの圧縮スキームであることを考えた場合、スキャンチェーンを複合スキャンチェーンに変換する工程を省略できる点が異なる。方法１９００は単一ステージおよびマルチステージのコンパクタ・アーキテクチャの双方で使用できる。例示的な方法１９００は、故障スキャンセルの位置および各テストパターンについて１つまたは複数の未知状態が与えられていると仮定する。
【００９８】
工程１９１０で、各スキャンチェーンについて、２つの係数ＳiおよびＭiを判定するが、Ｓiはスキャンチェーンｉが選択される場合に残る推定エラー数を表し、Ｍiはマスクされたとした場合のスキャンチェーンｉの推定エラー数である。Ｅ（ｉ）およびＸ（ｉ）は、それぞれエラーおよび未知状態を捕獲するスキャンチェーンｉ内のスキャンセルのセットを表す。ＥcおよびＸcは、スキャンアウト・サイクルｃに属するスキャンセルが捕獲するそれぞれのエラー数およびＸ状態の数を表す。係数ＳiおよびＭiはそれぞれ式４および式５で以下のように求められる。
【００９９】
【数４】
0005554365.tif 000010
【０１００】
【数５】
0005554365.tif 000011
【０１０１】
この例示的なアプローチでは、Ｓiは所与のスキャンチェーンで発生するエラー数と、所与のスキャンチェーンが内包するＸ状態と同じタイムフレームで発生するエラー数との差として計算される。図示する実施形態では、式４の最初の項は、たとえば、同じタイムフレームで発生するＸ状態すべてがマスクされる確率（１つのスキャンチェーンは確率０．５でマスクされると仮定する）によって調整される。式４の２番目の項は、二重数（ダブルカウント）を避けるために対応するＸ状態の数によって調整される。この例示的なアプローチでは、Ｍiは、所与のスキャンチェーンが内包する（現在抑制されている）Ｘ状態と同じタイムフレームで発生するエラー数に等しい。しかし、これは、同じシフトサイクルから他の未知状態によってマスクされていないと仮定している。この数はマスクされているスキャンチェーンで発生するエラーの分だけ減少できる（たとえば、他のスキャンチェーンからのＸによって調整し、マスクされているチェーン自体を含む）。
【０１０２】
工程１９２０で、スキャンチェーンｉの係数ＳiとＭiとを比較し、工程１９３０で、スキャンチェーンｉは、選んだのがＳiまたはＭiかによって、マスキング信号の値１（選択）または０（マスク）をマークされる。いくつかの実施形態では、これらの信号を特定の選択回路についてまだ符号化する必要があるため、これは最終のマスキングではない。
工程１９４０で、工程１９３０の結果に基づいて、１つまたは複数のスキャンチェーン（いくつかの実施形態では、すべてのスキャンチェーン）のコンテンツを、マスクされることになるスキャンチェーンのエラーおよびＸ状態を削除することによって、または選択したスキャンチェーンが未知状態を示すタイムフレームのエラーおよびＸ状態を削除することによって更新する。図示する実施形態では、矢印１９３２で示すように、上記工程を繰り返すことによって、マスキング信号を１つまたは複数の他のスキャンチェーンに反復的に割り当てる。
【０１０３】
工程１９５０で、線形方程式を解いて（たとえば、工程１９２０で判定した順序で）、連続するスキャンチェーンの選択ロジックでマスキング信号を符号化できることを確認する。これら線形方程式は選択ロジックの入力と出力との関係を記述する。いくつかの実施形態では、最初の符号化の失敗が発生するまでこのプロセスを続ける。
工程１９６０で、符号化の対象とならなかったすべてのマスキング信号の値を判定して（たとえば、選択ロジックを調べることによって）、得られる故障カバレッジを判定する。検出された故障は対象から外すことができ、判定した故障カバレッジを達成するのに効果的に使用したテストパターンの数を記憶できる。
【０１０４】
工程１９７０で示すように、本実験のために、所望の数の対象とする故障が検出されるまで、方法１９００を繰り返す。
実験結果を表７および表８に示す。テストした各回路について、次の情報を記載している。名前（記号−ｄｋは回路に関連して深度−ｋの順次パターンの使用を示している）、スキャンアーキテクチャおよび故障の総数、エラー・ビットの総数（誤りのある信号を捕獲するスキャンセルの数）、捕獲されるＸ状態の数に対するスキャンセルの数の比にテストパターンの数を乗じて計算するＸフィルレート、圧縮がないと仮定した場合の故障カバレッジ（ＦＣ）に寄与するパターン数、マスク・レジスタのサイズｍ、ここでは絶対および相対ＩＰＣとして報告されている付加パターン、ならびに有効圧縮比Ｃ（ｘ）である。実験では単一出力コンパクタを使用したため、圧縮比は、元のテストパターンに対する効果的に適用されるパターンの総数（付加ベクトルおよびセレクタのマスクビットを含む）の比で正規化したスキャンチェーンの数として求められる。
表７ 実験結果―１
【０１０５】
【表７】
0005554365.tif 000012
【０１０６】
表８ 実験結果―２
【０１０７】
【表８】
0005554365.tif 000013
【０１０８】
表７および表８で報告されている回路は、０．００１％（Ｃ６）から約５％（Ｃ４）までの幅広い範囲のＸフィルレートを示した。結果として、生じたパターン数の増加は、Ｘフィルレートが低い回路（たとえば、Ｃ６）の約１％未満から、Ｘが高い割合で見られた設計（たとえば、Ｃ１およびＣ４）の約３００％までとばらつきがあった。また、その発生頻度と同様に、未知状態が捕獲されるサイトがますます重要となる可能性があると思われる。たとえば、すべてのテストパターンにわたって均一に、Ｘ状態が設計Ｃ１−ｄ３のスキャンチェーンの大部分に存在することが観測されている。この現象とは逆に、設計Ｃ４−ｄ０でＸ状態がひどく集中しているパターンはほんの少ししかない。この場合、パターンの大部分はＸフィルレートが低かったか、または未知状態を示さなかったのである。結果として、深度−３の順次パターンと８ビットのセレクタとを使用する設計Ｃ１−ｄ３（平均して、スキャンチェーンの１６％の完全な可制御性を示す）は、同様の回路を非圧縮モードで使用した場合よりも４倍多くのテストパターンを使用した。他方で、回路Ｃ４−ｄ０は、設計Ｃ１−ｄ３よりもＸフィルレートが高いにもかかわらず、１．３倍多くのテストパターンを使用した（回路Ｃ４−ｄ０の場合、１２ビットのセレクタ回路が同様なスキャンチェーンの可制御性を提供したため）。
【０１０９】
表７および表８の結果を得た実験は、所与のスキャンチェーン構成の最小値から始まるいくつかのｍの値を使用して行った。すべての回路で、ｍがスキャンチェーンの数のほぼ１０〜２０％の場合に最良の観測された圧縮結果が得られた。レジスタを大型化して得られたであろうゲインは、マスクビットのために減少した。Ｘフィルレートが低い回路（Ｃ６．１−ｄ０、Ｃ６．２−ｄ０）は、スキャンチェーン構成によって決まる最小のレジスタで最良の観測された実験結果を得た。
オンチップ・コンパクタおよび応答コレクタの例示的な実施形態
スキャンベースの製造テストのいくつかの実施形態では、被テスト回路（ＣＵＴ）のテスト応答を既知の良好な応答と比較して、ＣＵＴの故障を分離するために、外部のテスタ（たとえば、ＡＴＥ）に送る。通常、テスト応答の各ビットはＡＴＥで２ビットにマッピングし、３つの論理値０、１およびＸに対応させる。これは製造テストおよび故障情報収集の標準的なアプローチであるが、制約を有している可能性がある。たとえば、スキャンデータをアンロードしてＡＴＥで比較しているときにミスマッチが起こると、多くの場合テストサイクル全体（たとえば、スキャンチェーンのスライス全体）が捕獲されて、テスタのメモリに記憶される。通常、テスタのメモリの制約により、記憶装置（「故障ログ」）は最大わずか２５６の故障サイクルに規定される。そのため、故障ログはしばしば切り捨てられて、多くの故障テストパターンは記録されない。また、ＣＵＴからＡＴＥにデータをアンロードし、応答を比較し、発生する故障がかなりの時間かかるかどうかを判定する。このためにテストの適用時間が増え、それによってテストフロアのスループットが低下する可能性がある。テストのスループットを改善するために、マルチサイトのテスティングが業界で人気を得ている。通常これはテスタ上で同時に複数のデバイス（ある場合には、６４または１２８にもなる）をテストすることを伴う。現在のＡＴＥ技術では、これが少なくとも次の２つの理由のためにボトルネックとなっている。デバイス毎の観測専用のチェーン数が限られてくること、および複数のデバイスでＡＴＥメモリを共有するためデバイス毎に記憶するデータ量がさらに限られることである。
【０１１０】
以上の問題の少なくとも一部に対処するために、以下に説明するオンチップ比較および応答収集スキームの実施形態を使用できる。ＡＴＥで比較を行う代わりに、たとえば、追加のハードウェアをオンチップに組み込み、期待テスト応答と実際のテスト応答との比較をやりやすくすることができる。さらに、ある既存のメモリ・オンチップを利用することによって、診断を容易にするのに役立つより大量の故障データを記憶することが可能である。いくつかの実施形態では、既知の良好な応答はそのままＡＴＥメモリに記憶される。
【０１１１】
図２０は、例示的なオンチップ・テスティング回路コンパクタ・アーキテクチャ２０００の一実施形態のブロック図を示している。図示する実施形態は、コンパクタ２０２０などのコンパクタに連結される、グループ２０１０（スキャンチェーン１〜１２から成る）などの複数のスキャンチェーン・グループを含む。図示するアーキテクチャでは、コンポーネント２０１２はアーキテクチャ２０００に１つまたは複数ビットのチャネル毎（たとえば、コンパクタ毎）の情報を供給できる。いくつかの実施形態では、コンポーネント２０１２は、たとえば、ＡＴＥ、オンチップ・メモリ、またはオンチップ・デコンプレッサのうちの１つまたは複数にすることができる。これらのビットは入力パス２０３０、２０３２上に供給できる。たとえば、入力パス２０３０上に供給される第１ビット・セットは、コンパクタの出力と比較するために供給されるデバイスから期待される実際のテスト応答ビットにすることができる。第１ビット・セットは、図２０の実施形態ではＸＯＲゲートを含むコンパレータ２０３４に供給される。
【０１１２】
いくつかの実施形態では、第２ビット・セット（「マスク信号」とも言う）を入力パス２０３２上に供給して、コンパレータ２０３４の出力を（たとえば、ＡＮＤゲート２０４０または他の適切な論理ゲートを使用して）マスクするべきかどうかを示すために使用できる。所与のコンパレータのマスクビットを、期待応答がＸ状態の場合、そのために、コンパレータの結果を無視する場合に、コンパレータの出力をマスクするように設定できる。
【０１１３】
ある実施形態では、入力パス２０３０上に供給される期待テスト応答ビットは、入力パス２０３２上に供給されるマスク信号と同時に入力される。本明細書および請求項で使用する場合、「同時に」という用語は回路の意図する動作が損なわれない限り、ある程度の小さなずれは許容する。たとえば、いくつかの実施形態では、ほぼ１クロックサイクルまでのずれは許容できる。
【０１１４】
別の実施形態では、テスト応答のサイクル毎にエラー・ベクトルを判定できる。エラー・ベクトル（ｎチャネルと仮定する）をプライオリティ・エンコーダ２０５０への入力として直接送ることができ、プライオリティ・エンコーダ２０５０はそれをｌｏｇ２ｎビットのベクトルに符号化できる。さらに別の実施形態では、プライオリティ・エンコーダ２０５０は、１サイクル中に２つ以上のチャネル出力でエラーが観測されるかどうかを示すロジックを含むことができ、それに応じて出力（図示せず）に１ビットを設定することができる。さらに別の実施形態では、アーキテクチャ２０００はパターン・カウンタ２０６０とシフト・カウンタ２０６２とを含み、エラーが観測されたパターンおよびサイクル番号を追跡する。メモリ２０７０は他のコンポーネント（たとえば、プライオリティ・エンコーダ２０５０、パターン・カウンタ２０６０および／またはシフト・カウンタ２０６２）からのデータを記録できる。追加ロジック２０７２を使って、メモリ２０７０への入力を管理できる。パターン・カウンタ２０６０、シフト・カウンタ２０６２および追加ロジック２０７２などのコンポーネントは、図２０に示すようにクロック信号および制御信号に応答して動作できる。
【０１１５】
図２１は、テスティング回路アーキテクチャ２０００とともに使用できるプライオリティ・エンコーダ２１００の一実施形態のブロック図を示している。
テスト中にｍ個のパターンを適用し、スキャンチェーンの最長長さがｌビットと仮定すると、開示する技術の一例示的な実施態様により故障サイクル毎に記録されるビットの総数（Ｔ）は以下のとおりである。
【０１１６】
Ｔ＝ｌｏｇ2ｎ＋ｌｏｇ2ｍ＋ｌｏｇ2ｌ＋１（６）
式６の最後の項（追加の出力サイクルを表す）は、プライオリティ・エンコーダ２０５０の入力に２つ以上のエラーがあるかどうかを示すことができる出力ビットに対応する。たとえば、６４個のチャネル、１０，０００個のパターン、最長スキャンチェーンの長さが４００ビットの設計の場合、この実施態様によると合計３０ビットが記録できる。メモリ２０７０がたとえば１Ｋ×３２メモリの場合、すべてのチャネルに１つのエラーがあると仮定すると、１０２４の故障サイクルまで記憶できる。１サイクル中にすべてのチャネルで最大２つのエラーがある場合、最悪の場合でも５１２までの故障サイクルを記憶できる。故障パターン情報のコレクタとして機能する記憶メモリを追加および構成できるか、またはデバイスの既存のメモリを、故障情報を記憶するために再利用できる。メモリサイズおよびサイクル毎に記録されるエラー・ビットの数に応じて、診断分解能は変わることができる。
【０１１７】
図２２は例示的なオンチップ比較および応答収集アーキテクチャ２２００の別の実施形態のブロック図を示している。この実施形態では、多入力シグネチャレジスタ（ＭＩＳＲ）２２０２を使用して、グループ２２１０などのスキャンチェーン・グループからの出力を圧縮する１つまたは複数のコンパクタ（コンパクタ２２２０など）から回路応答を収集することもできる。ＭＩＳＲ２２０２はＭＩＳＲシグネチャを生成でき、それをパターン・カウンタ２２６０のコンテンツとともに、１つまたは複数の故障パターンについてメモリ２２７０に記憶できる。アーキテクチャ２２００はコンパレータとＡＮＤゲートとを含むことができ（コンパレータ２２３４およびＡＮＤゲート２２４０など）、これらを、アーキテクチャ２１００と同様に、ＡＴＥからの入力によって制御できる。さらに別の実施形態では、メモリ２２７０への書込みを、ＡＮＤゲートからの１つまたは複数の信号およびＡＴＥからの「パターン終了」信号２２７４とともに調整する書込み許可回路２２７２を構成できる。
【０１１８】
図２３は、例示的な比較および応答収集アーキテクチャ２３００のさらに別の実施形態のブロック図を示している。この実施形態では、（ＭＩＳＲ２３０２が出した）エラーシグネチャを、ほとんどの故障パターンまたはすべての故障パターンについてメモリ２３７０に記憶する。加えて、パターン・カウンタ２３６０のコンテンツおよび故障ビットの数（たとえば、エラー加算器２３６２で判定する）も、エラーを出した１つまたは複数のテストパターンについて記憶できる。別の実施形態では、テストセットを適用した後で、２つの追加データ・セットを利用できる。すなわち、垂直コレクタ２３６４および水平コレクタ２３６６がそれぞれ収集した故障サイクルと故障スキャンチェーン（またはスキャンチェーンのグループ）である。図２４は垂直コレクタ回路２３６４の一実施形態のブロック図を示し、一方図２５は水平コレクタ回路２３６６の一実施形態のブロック図を示している。
【０１１９】
前述したオンチップ・テスティング・アーキテクチャは、本明細書に記述するあらゆる他の技術（たとえば、Ｘプレス・コンパクタ、制御回路合成）と組み合わせて使用できる。
実験では、オンチップ・ティスティング・アーキテクチャ２１００を、製造フロアから、それぞれ２６，０００個および１０，０００個の実際の故障ログのある２つの工業用回路（すなわち、設計ＡおよびＢ）に使用した。本明細書に記述するコンパクタの実施形態の診断分解能は、たとえば、上記特許文献１および上記特許文献２に記述される選択的コンパクタに似ていた。一般に、チップに故障サイクルを記憶させて情報の実質的な損失を招かない限り、診断分解能を保つことができる。
【０１２０】
実験では、設計Ａはスキャンチェーン３２個、外部データ出力用にチャネル１個、最長スキャンチェーンの長さを４０００ビットにして構成した。２５６倍の有効圧縮を目標として、８ビットのオーバードライブ・レジスタを選択した。テスティング・アーキテクチャ１９００が故障サイクル毎に１つのエラーを記録した場合、故障ログの８８％（合計２６，０００個のうち）について、診断分解能は同じままであることが観測された。２６，０００個すべての故障ログ全体で、わずか２．７％の故障パターンがあり少数のエラーがマスクされたが、その多くは診断分解能に影響していないようである。設計Ｂはチェーン３２個、チャネル１個、最長スキャンチェーンの長さを１４０００にして構成した。それぞれ有効圧縮２５６倍、５１２倍および１０２４倍を目標にして、８ビット、１６ビットおよび３２ビットのオーバードライブ・レジスタを選択した。１０，０００個の故障ログを分析したところ、事例の８７．５％（２５６倍）、８７％（５１２倍）および８６．４％（１０２４倍）について、すべてのパターンにわたり故障サイクルに１つのエラー・ビットを記録することによって、診断分解能は同じままであった。同様に、オーバードライブ・レジスタのサイズに基づくと、故障パターンの１．６％、２．４％および３．１％だけが少数のエラーをマスクさせた。
故障診断に対する影響
一般に、診断フローの大容量モニタリングを可能にするには、診断ツールが圧縮モードでの分析をサポートするのが望ましい。様々なテスト応答コンパクタに採用できる故障診断技法が上記特許文献３に記述されており、引用により本明細書に組み込む。この技法を本明細書に開示するＸプレス・コンパクタの例示的な実施形態が生成するデータに適用する場合、圧縮された応答のビットＰiは、圧縮前にスキャンセルに捕獲される値のセットの関数として表現できる。Φiで表すこのいわゆる「変換関数」は、Ｐi＝Φi（Ｃi）となるようにし、ＣiはＰiを得るために一緒に圧縮されるスキャンセルのセットの値である。ΦiおよびＣiはともに、コンパクタ・アーキテクチャおよび各パターンのマスキング条件によって判定できるため、Φiは加算モジュロ２として定義でき、一方Ｃiは選択ロジックを介してスキャン出力チャネルに接続されている複合スキャンチェーン・グループ（図３を参照）で同じシフトアウト・サイクルに位置するスキャンセルのセットとして定義できる。このセクションでは、複合スキャンチェーン内のスキャンセルを「複合スキャンセル」と言う。各複合スキャンセルの値は、（たとえば、圧縮の第１ステージから）ｖ個の圧縮スキャンセルをＸＯＲ演算することによって求められることに留意されたい。また、マスクされるスキャンセルの値は０である。
【０１２１】
Ｘプレス・コンパクタベースの診断に関する例示的な実施形態により、観測された不完全な応答は１つまたは複数の候補ロジックコーン（ＬＣ）によって表現する。このような関係を求めるために、概念的な回路変換を行い、元の設計を数がＸプレスの出力の数に等しい擬似スキャンチェーンを持つ回路に変換できる。擬似スキャンチェーンの各々にあるセルの数は、元の回路のシフトサイクル数をｖで割った値である。擬似スキャンセルはその値を含意するロジックコーンの和集合によって駆動する。
【０１２２】
図２６は、スキャンセル１６個（およびそれらを駆動するロジックコーン１６個）、スキャンチェーン２個を備え、２ビットのオーバードライブ・レジスタを有する例示的な単一出力Ｘプレス・コンパクタを使用する元の回路設計に対応する変換回路２６００のブロック図を示している。変換回路は、ロジックコーンＬＣ0…ＬＣ15と、擬似スキャンセル２６１０、２６１１、２６１２、２６１３とを含む。
【０１２３】
【数６】
0005554365.tif 000014
【０１２４】
は、Ｘプレス・コンパクタの第１ステージが行う空間圧縮に対応し、一方擬似スキャンセル２６１０、２６１１、２６１２、２６１３は、オーバードライブ・レジスタによって送られるスペース・コンパクタを表すモジュロ２の総和によって駆動する。この実施形態では、マスクされたどのロジックコーンの出力もその後の処理から除外される。圧縮後、各テストパターンに４ビットが観測される。
【０１２５】
擬似スキャンセル２６１０および２６１２で故障が観測された場合を考えてみる。図２６の変換回路とパターン毎に１箇所の仮定とに基づいて、不完全なロジックは、ロジックコーンＬＣ0およびＬＣ3の和集合と、ロジックコーンＬＣ8およびＬＣ11の和集合との間の共通部分に位置すると判定できる。これにより、考えられる故障と思われるもの（故障候補）の探索空間が減少する。
【０１２６】
次に、図２６に図示する変換回路に故障シミュレーションを適用できる。故障と思われるものを変換回路に注入して、シミュレーションをする。シミュレーション結果をテスタによって記録されているデータと比較する。シミュレーション結果が、テスタが観測した故障と一致する場合、故障は真の故障と見なすことができる。
図２７は、テストするＣＵＴの故障診断を行うある例示的な方法２７００のブロック図を示している。工程２７１０で、Ｘプレス・コンパクタの１つまたは複数の応答の変換関数を判定する。いくつかの実施形態では、これは、コンパクタから応答として与えられた各ビットの変換関数を判定する工程を含む。工程２７２０で、元のＣＵＴを１つまたは複数の擬似スキャンチェーンを持つ回路表現（「変換回路」）に変換する。工程２７３０で、ＡＴＥが生成する故障ファイルを読み込む（一般に、擬似スキャンセルのうちの１つまたは複数がテスト故障を捕獲すると仮定する）。１つまたは複数の故障セルからの接続を変換回路にマッピングして、当初故障と思われるものリストを構成する１つまたは複数のロジックコーンの位置を割り出すことができる（工程２７４０）。変換回路を使用して、１つまたは複数の候補故障に故障シミュレーションを行うことができる（工程２７５０）。工程２７６０で、１つまたは複数のシミュレーション結果をＡＴＥからの故障データと比較できる。シミュレーションおよび／または比較の結果を１つまたは複数のコンピュータ読取可能媒体に記憶できる（工程２７７０）。
【０１２７】
別の実施形態では、縮退故障、ブリッジ故障、オープン故障および／または遷移（移行，トランジション）故障を特定できるように原因結果分析を使用できる。方法２７００のある実施形態は、１シフトサイクルに複数の欠陥スキャンセルがある場合にも対処できる。また、開示する技術のある実施形態は、コンパクタをバイパスして診断のために異なるテストセットを適用する必要がないため、生産テストの故障診断を可能にすることができる。
【０１２８】
以下は、前述した診断技術をＣＵＴに行った実験結果である。各ＣＵＴ設計について、１０００個の無作為に選択した単一縮退故障を注入して、Ｘプレス・コンパクタの実施形態がある場合とない場合との設計バージョンについて１０００個の故障ログを作成した。Ｘフィルレートが相対的に高く（たとえば、Ｘフィルが設計の特徴である場合）、マスキング・レジスタのサイズがｍ＝１２または１３で、オーバードライブ因子がｖ＝８のＸプレス・コンパクタの設計（たとえば、図１の実施形態１００）を選んだ。Ｘプレス・コンパクタの実施形態は、典型的には、同じカバレッジを維持するためにいくつかの付加パターンを使用したが、これら実験では、元のテストパターンを使用して比較を行った。一般に、様々な欠陥の挙動の特定は、コンパクタのタイプに関係なく、主に故障サイトに記録される値に基づくことができる。そのため、縮退故障を使用して比較を簡単にした。性能指数として診断分解能を使用したが、ここでは故障と思われるものの数の逆数として定義している。たとえば、診断手順の結果（呼び出し）ただ１つの可能性がある場合、分解能は１００％である。結果が２つの可能性であれば、分解能は５０％に低下する。以下の表９は、本出願の他の箇所で説明している実験結果を出すために使用したいくつかの回路設計の平均診断分解能を示している。表９で、２番目の列に圧縮なしの平均診断分解能を列記し、次の列にＸプレス・コンパクタの例示的な実施形態を使用した平均診断分解能を列記している。残り２つの列は、前２列の統計値の差と、例示的なＸプレス・コンパクタを使用した場合としない場合との故障パターン数の比率とを示している。
表９ 平均診断分解能
【０１２９】
【表９】
0005554365.tif 000015
【０１３０】
表９で分かるように、例示的なＸプレス・コンパクタを使用すると診断分解能に影響を与えることができる。しかし、多くの場合、この影響は、圧縮比が１０００倍より高い場合であっても無視できる程度である。いくつかの実施形態では、診断分解能の損失は、表１および表２で示すように、Ｘプレスを採用する設計により多くのテストパターンを使用することによって実際に軽減できる。たとえば、付加パターンを使用する場合、Ｃ２の分解能の差は６．７２から２．２３に低下し、故障パターン比は１．９６９３から１．１７０１に低下する。故障データを圧縮すると、例示的なＸプレス・コンパクタは、限られた故障データバッファしかもたないほとんどのＡＴＥにとって有利である。例示的なＸプレス・コンパクタはＡＴＥに約３０％〜５０％少ない故障パターンを報告でき、故障ログが切り捨てられる確率を低下させることができる。また、１０００倍より高い圧縮の場合であっても、診断のランタイムは約２倍にしかならず、Ｘプレス・コンパクタの実施形態を使用した診断はスケーラブルであり、かつ大量生産のアプリケーションに適することができる。
例示的なネットワーク環境
前述した技術のいずれの態様も、分散コンピュータ・ネットワークを使用して実施してもよい。図２８は一つの適した例示的なネットワークを示している。サーバー・コンピュータ２８００は関連記憶デバイス２８０２（サーバー・コンピュータの内部または外部）を有することができる。たとえば、サーバー・コンピュータ２８００は、所与の被テスト回路用に開示されるモジュラー型コンパクタの実施形態のいずれかを生成する（たとえば、テストパターン生成ツールなどＥＤＡソフトウェア・ツールの一部として）、または開示する実施形態のいずれかによって作成するシグネチャの診断を行う（たとえば、診断ソフトウェア・ツールとして）ように構成できる。サーバー・コンピュータ２８００は、全体を２８０４に示すように、ネットワークに連結でき、たとえば、広域ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバー・ネットワーク、インターネット、またはその他適したネットワークを含むことができる。２８０６、２８０８で示すもののような１つまたは複数のクライアント・コンピュータは、ネットワーク・プロトコルを使用してネットワーク２８０４に連結してもよい。また、作業は、それ自身のメモリと１つまたは複数のＣＰＵとを有する単一の専用ワークステーションで行ってもよい。
【０１３１】
図２９は別の例示的なネットワークを示している。１つまたは複数のコンピュータ２９０２はネットワーク２９０４を介して通信し、コンピューティング環境２９００（たとえば、分散コンピューティング環境）を形成する。コンピューティング環境１７００内のコンピュータ２９０２の各々を使って、コンパクタ生成プロセスまたは診断プロセスの少なくとも一部を行うことができる。図示する実施形態のネットワーク２９０４は１つまたは複数のクライアント・コンピュータ２９０８にも連結されている。
【０１３２】
図３０は、被テスト回路の設計情報（たとえば、ＨＤＬファイル、ネットリスト、ＧＤＳＩＩファイル、Ｏａｓｉｓファイル、またはそのスキャンチェーンと合わせて被テスト回路を表すその他適する設計ファイル）は、開示する技術にしたがって適したマルチステージ・コンピュータ、選択回路および／またはオンチップ比較および応答収集回路を生成するために、リモート・サーバー・コンピュータ（図２８に示すサーバー・コンピュータ２８００など）またはリモート・コンピューティング環境（図２９に示すコンピューティング環境２９００など）を使って分析できる。処理ブロック３００２で、たとえば、クライアント・コンピュータはＣＵＴ設計情報をリモート・サーバーまたはコンピューティング環境に送る。処理ブロック３００４で、ＣＵＴ設計情報がリモート・サーバーまたはリモート・コンピューティング環境のそれぞれのコンポーネントによって受信およびロードされる。処理ブロック３００６で、コンパクタ、選択回路またはオンチップ・テスト・ハードウェアの生成を行って、開示される実施形態のいずれかの設計情報を作成する。処理ブロック３００８で、リモート・サーバーまたはコンピューティング環境は作成された設計情報（たとえば、ＨＤＬファイル、ネットリスト、ＧＤＳＩＩファイル、Ｏａｓｉｓファイル、または単独または被テスト回路およびスキャンチェーンと合わせてコンパクタを表すその他適した設計ファイル）をクライアント・コンピュータに送り、処理ブロック３０１０でクライアント・コンピュータがデータを受信する。
【０１３３】
図１８に示している例は、複数のコンピュータを使って開示するハードウェアの実施形態のいずれかを生成する唯一の方法ではないことは当業者には明らかなはずである。たとえば、ＣＵＴ設計情報は、ネットワーク上になく、かつサーバーまたはコンピューティング環境に個別に送るコンピュータ読取可能媒体（たとえば、ＣＤ−ＲＯＭ、ＤＶＤまたは携帯ハードドライブ）に記憶してもよい。あるいは、サーバー・コンピュータまたはリモート・コンピューティング環境はハードウェア設計手順の一部のみを行ってもよい。リモート・サーバーまたはコンピューティング環境を使う同様の手順を行って、開示するコンパクタ・アーキテクチャの実施形態が作成するシグネチャを診断できる。
【０１３４】
開示する技術の原理を例示および説明してきたが、開示する実施形態は上記原理から逸脱することなく構成および詳細を変更できることは当業者には明らかであろう。たとえば、実施形態のいくつかはマルチステージの圧縮を行うために使用する２つのコンパクタを含むが、１つのコンパクタを使用することもできる。たとえば、オーバードライブ・レジスタの出力を、マルチプレクサを含むフィードバック・ネットワークを介して第１コンパクタの入力に連結することもできよう。オーバードライブ・レジスタ、スキャンチェーンおよびマルチプレクサをさらに制御回路（たとえば、有限状態機械）で制御して、ｖスキャンシフトサイクル毎に第２コンパクタとして第１コンパクタを動作させることができよう。考えられる多くの実施形態を鑑みて、例示する実施形態は単なる例しか含まれておらず、本発明の範囲の制限と解釈してはならないことは認識されるであろう。そうではなく、本発明は以下の特許請求の範囲およびその均等物によって定義される。そのため、本発明として、上記実施形態およびこれら特許請求の範囲内にある均等物のすべてを請求する。
【図１】
0005554365.tif 000016
【図２】
0005554365.tif 000017
【図３】
0005554365.tif 000018
【図４】
0005554365.tif 000019
【図５】
0005554365.tif 000020
【図６】
0005554365.tif 000021
【図７】
0005554365.tif 000022
【図８】
0005554365.tif 000023
【図９】
0005554365.tif 000024
【図１０】
0005554365.tif 000025
【図１１】
0005554365.tif 000026
【図１２】
0005554365.tif 000027
【図１３】
0005554365.tif 000028
【図１４】
0005554365.tif 000029
【図１５】
0005554365.tif 000030
【図１６】
0005554365.tif 000031
【図１７】
0005554365.tif 000032
【図１８】
0005554365.tif 000033
【図１９】
0005554365.tif 000034
【図２０】
0005554365.tif 000035
【図２１】
0005554365.tif 000036
【図２２】
0005554365.tif 000037
【図２３】
0005554365.tif 000038
【図２４】
0005554365.tif 000039
【図２５】
0005554365.tif 000040
【図２６】
0005554365.tif 000041
【図２７】
0005554365.tif 000042
【図２８】
0005554365.tif 000043
【図２９】
0005554365.tif 000044
【図３０】
0005554365.tif 000045
【図３１】
0005554365.tif 000046
【図３２】
0005554365.tif 000047
【図３３】
0005554365.tif 000048