(57)【要約】【課題】完全に不定値許容性の非常に高スキャン圧縮なスキャンテストシステム及び技術を提供する。【解決手段】スキャンテスト及びスキャン圧縮は、コストの低減及び高い出荷品品質を実現するうえで重要である。従来以上に複雑な設計における新しいタイプの故障には、高い圧縮が必要とされる。しかしながら、不定値（Ｘ）の密度が増加し効果的な圧縮を妨げる。スキャン圧縮の方法では、任意の密度の不定値について非常に高い圧縮及び完全な検出率が達成される。記載された技術は、テスト容易化設計（ＤＦＴ）及び自動テストパターン生成（ＡＴＰＧ）のフローに完全に組込むことができる。産業的な設計にこれらの技術を用いた結果、他の方法と比べて一定かつ予測可能な有利な点があることが分かった。【選択図】図２Ａ
2010539518.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）に実装された、複数のスキャンチェインを有する設計をテストするためのスキャンテストシステムであって、
前記設計の故障を特定するため、前記複数のスキャンチェインに印加されるパターンを生成する第１のシードを受取る、第１の疑似ランダムパターン生成回路（ＰＲＰＧ）処理チェインと、
前記スキャンチェインの観測のレベルを決定する不定値許容性（ＸＴＯＬ）制御ビットを生成する、第２のＰＲＰＧ処理チェインと、
前記複数のスキャンチェインからのスキャン出力及び前記ＸＴＯＬ制御ビットを供給され、シフトごとの不定値制御を行い、前記設計を分析するためのテスト出力を生成するためのアンロードブロックとを具備するスキャンテストシステム。
【請求項２】
前記第１のＰＲＰＧ処理チェインは、
前記第１のシードを受取るためのＣＡＲＥ  ＰＲＰＧと、
前記ＣＡＲＥ  ＰＲＰＧの出力を受取り、前記複数のスキャンチェインに出力を行うためのＰＲＰＧ移相回路とを有する請求項１に記載のスキャンテストシステム。
【請求項３】
前記ＣＡＲＥ  ＰＲＰＧから入力を受け、前記ＰＲＰＧ移相回路に出力を行うＣＡＲＥシャドウレジスタをさらに具備する請求項２に記載のスキャンテストシステム。
【請求項４】
前記ＣＡＲＥ  ＰＲＰＧは、一定値が前記複数のスキャンチェインにシフトされシフト電力が低減されるように前記ＣＡＲＥシャドウレジスタをホールドモードにする電源制御信号を供給する請求項３に記載のスキャンテストシステム。
【請求項５】
前記第２のＰＲＰＧ処理チェインは、
前記第２のシードを受取るためのＸＴＯＬ  ＰＲＰＧと、
前記ＸＴＯＬ  ＰＲＰＧの出力を受取るためのＸＴＯＬ移相回路と、
前記ＸＴＯＬ移相回路の出力を受取り、ＸＴＯＬ制御ビットを供給するためのＸＴＯＬシャドウレジスタと有する請求項４に記載のスキャンテストシステム。
【請求項６】
前記ＸＴＯＬ  ＰＲＰＧは、前記ＸＴＯＬシャドウレジスタをホールドモードにするホールド信号を生成するようにされた請求項５に記載のスキャンテストシステム。
【請求項７】
前記ＣＡＲＥ  ＰＲＰＧと前記ＸＴＯＬ  ＰＲＰＧとは、任意のシフトサイクルで必要な場合にリシードするようにされた請求項６に記載のスキャンテストシステム。
【請求項８】
テスタからの入力を受取ると共に前記第１のＰＲＰＧ処理チェイン及び前記第２のＰＲＰＧ処理チェインとのいずれか一方に出力を行うようにされたアドレサブルＰＲＰＧシャドウをさらに具備する請求項５に記載のスキャンテストシステム。
【請求項９】
前記ＣＡＲＥ  ＰＲＰＧと前記ＸＴＯＬ  ＰＲＰＧとは、任意のシフトサイクルで必要な場合にリシードするようにされた請求項８に記載のスキャンテストシステム。
【請求項１０】
前記アンロードブロックは、
前記スキャン出力を受取るためのＸＴＯＬセレクタと、
前記ＸＴＯＬ制御ビットを用いて前記ＸＴＯＬセレクタを制御するためのＸデコーダと、
前記ＸＴＯＬセレクタの出力を受取るための圧縮回路と、
前記圧縮回路の出力を受取る共に前記テスト出力を生成するための多入力シフトレジスタ（ＭＩＳＲ）とを有する請求項９に記載のスキャンテストシステム。
【請求項１１】
前記ＸＴＯＬセレクタと前記Ｘデコーダとは、完全観測モード、無観測モード、シングルチェインモード、及び複数観測モードのうちの１つを行うようにされた請求項１０に記載のスキャンテストシステム。
【請求項１２】
前記Ｘデコーダは、前記複数のスキャンチェインの各々に接続された出力を有するデコーディングブロックを有する請求項１１に記載のスキャンテストシステム。
【請求項１３】
特定のスキャンチェインのための前記デコーディングブロックは、この特定のスキャンチェインが含まれる複数のグループからなるセットを受取る請求項１２に記載のスキャンテストシステム。
【請求項１４】
前記アンロードブロックは、前記ＰＲＰＧシャドウレジスタにより生成されたＸＴＯＬ  ｅｎａｂｌｅビットによりさらに制御される請求項６に記載のスキャンテストシステム。
【請求項１５】
集積回路（ＩＣ）に実装された、複数のスキャンチェインを有する設計をテストするためのスキャンテストシステムであって、
シードを受取るための疑似ランダムパターン生成回路（ＰＲＰＧ）シャドウレジスタと、
前記ＰＲＰＧシャドウレジスタからのシードを受取るためのＣＡＲＥ  ＰＲＰＧと、
前記ＣＡＲＥ  ＰＲＰＧの出力を受取るためのＣＡＲＥシャドウレジスタと、
前記ＣＡＲＥシャドウレジスタの出力を受取り、チャネル間の線形従属性を最小限にし、前記複数のスキャンチェインのためのスキャンビットを生成するためのＣＡＲＥ移相回路と、
前記ＰＲＰＧシャドウレジスタから他のシードを受取るための不定値許容性（ＸＴＯＬ）ＰＲＰＧと、
前記ＸＴＯＬ  ＰＲＰＧの出力を受取り、チャネル間の線形従属性を最小限にするためのＸＴＯＬ移相回路と、
前記ＸＴＯＬ移相回路の出力を受取るためのＸＴＯＬシャドウレジスタと、
前記複数のスキャンチェインと前記ＸＴＯＬシャドウレジスタとからのスキャン出力を受取り、シフトごとの不定値制御を行い、前記設計を分析するためのテスト出力を生成するためのアンロードブロックとを具備するスキャンテストシステム。
【請求項１６】
前記ＸＴＯＬ  ＰＲＰＧは、前記ＸＴＯＬシャドウレジスタをホールドモードにするホールド信号を生成するようにされた請求項１５に記載のスキャンテストシステム。
【請求項１７】
前記アンロードブロックは、
前記スキャン出力を受取るためのＸＴＯＬセレクタと、
前記ＸＴＯＬシャドウのＸＴＯＬ制御出力を用いて前記ＸＴＯＬセレクタを制御するためのＸデコーダと、
前記ＸＴＯＬセレクタの出力を受取るための圧縮回路と、
前記圧縮回路からの出力を受取り、前記テスト出力を生成する多入力シフトレジスタ（ＭＩＳＲ）とを有する請求項１５に記載のスキャンテストシステム。
【請求項１８】
前記ＸＴＯＬセレクタと前記Ｘデコーダとは、完全観測モード、無観測モード、シングルチェインモード、及び複数観測モードのうちいずれか１を行うように構成可能である請求項１７に記載のスキャンテストシステム。
【請求項１９】
前記Ｘデコーダは、前記複数のスキャンチェインの各々に接続された出力を有するデコーディングブロックを有する請求項１７に記載のスキャンテストシステム。
【請求項２０】
特定のスキャンチェインのための前記Ｘデコーダは、この特定のスキャンチェインが含まれる複数のグループからなるセットを受取る請求項１９に記載のスキャンテストシステム。
【請求項２１】
前記アンロードブロックは、前記ＰＲＰＧシャドウレジスタにより生成されたＸＴＯＬ  ｅｎａｂｌｅビットによりさらに制御される請求項１８に記載のスキャンテストシステム。
【請求項２２】
全てのケアビットが単一のシードにマップ可能である、シフトの最大ウィンドウを決定することを具備するケアビットをＣＡＲＥ疑似ランダムパターン生成回路（ＰＲＰＧ）にマップするための方法。
【請求項２３】
前記最大ウィンドウを決定することは、
シフトサイクルによりそして各シフトサイクルについて前記ケアビットをソートすることと、
ウィンドウ内のケアビットの総数があらかじめ算出された制限を超えないように最大ウィンドウを算出することと、
前記ウィンドウ内の全てのケアビットが単一のシードにマップ可能である場合に、前記単一のシードを前記ＣＡＲＥ  ＰＲＰＧにロードすることとを有する請求項２２に記載の方法。
【請求項２４】
全てのケアビットが前記単一のシードにマップ可能でない場合に、前記ウィンドウを直線的に減少させることを有する請求項２３に記載の方法。
【請求項２５】
全ての不定値許容性（ＸＴＯＬ）制御ビットが単一のシードにマップ可能な、シフトの最大ウィンドウを決定することと、
前記最大ウィンドウについて最適な開始を決定することとを具備する、不定値許容性（ＸＴＯＬ）制御ビットをＸＴＯＬ疑似ランダムパターン生成回路（ＰＲＰＧ）にマップするための方法。
【請求項２６】
完全観測モードについてＸＴＯＬ  ｅｎａｂｌｅビットをオフにする第１の選択肢又は前記ＸＴＯＬ  ｅｎａｂｌｅビットをオンのままにする第２の選択肢のいずれがよいかを決定することと、
前記より良い選択肢を選択することとをさらに具備する請求項２５に記載の方法。
【請求項２７】
観測モードに関連するモードメリットを初期化することと、
各シフトについて、不定値（Ｘ）を残す観測モードをなくすことと、
各シフトについて、スキャンテストの主な目標を検出できない観測モードをなくすことと、
観測された２次的な目標の数に基づいて２次故障のモードメリットを増加させることと、
各シフトについて、モードメリットの合計に基づいてシフトについての最善の観測モード及び２番目に最善の観測モードを決定することと、
結果としての観測モードをＸＴＯＬシードにマップすることとを具備するスキャンテストのための観測モードを選択する方法。
【請求項２８】
前記観測モードは、完全観測、無観測、シングル観測、及び複数観測を含む請求項２７に記載の方法。
【請求項２９】
前記観測モードは、各観測モードの補正を含む請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のスキャンテストに関する。特に、このスキャンテストの際に使用可能な圧縮技術及び構造に関する。
【背景技術】
【０００２】
集積回路（ＩＣ）における論理設計がより大きく複雑になり、これらのＩＣが故障なく動作することを保証するためのより複雑なテストが必要となっている。このテストは、集積回路（ＩＣ）の設計、製造、及びサービスコストのうち大きな部分を占める。単純なモデルでは、ＩＣのテストは、回路の入力部に複数のテストパターンを入力し回路の出力をモニタして故障の発生を検出することを含みうる。故障検出率は、潜在的な故障の母集団において各故障を検出する際のテストパターンの効率を示す。このため、テストパターンのセットが実質的にあらゆる潜在的な故障を検出することが可能ならば、１００％に近い故障検出率が達成される。
【０００３】
容易に故障検出率を高めテストコストを最小化するために、ＤＦＴ（テスト容易化設計）を用いうる。あるＤＦＴ技術では、論理設計の構造が用いられうる。具体的には、ＩＣで行われる論理設計は、フリップフロップのようなシーケンシャルな記憶素子等の複数の状態素子(state element)を含む。これらの状態素子を、計算された長さのスキャンチェインへと接続することができ、この長さは設計に応じて変わる。一実施形態では、設計上の全ての状態素子をスキャン可能である。すなわち、各状態素子がスキャンチェインの中にある。スキャンチェイン内の状態素子は、通常スキャンセルと呼ばれる。ＤＦＴにおいては、各スキャンチェインは、スキャン入力ピン及びスキャン出力ピンを含み、これらは、テストモード中に制御及び観測ノードとして働く。
【０００４】
スキャンチェインは、スキャンセルを介して所定の論理信号をクロック動作させて(clocking in)ロードされる。このため、最も長いスキャンチェインが５００のスキャンセルを含むなら、ロードプロセスを完了するために少なくとも５００クロックサイクルが用いられる。実際の実施形態では、ソフトウェアが異なるスキャンチェイン長を補正してその結果、各テストパターンからの出力は、それに従って認識、解析されることに留意すべきである。
【０００５】
スキャンチェインのためのテストパターンを、外部テスト装置を用いて発生することができる。このような装置を用いて、Ｎのインプット及びスキャンセルを備えた設計に対して２Ｎの入力パターンを加えることにより全数入力テストを行うことができる。しかしながら、このテストのアプローチは、インプットの数が増加するにつれて商業的には非実際的となる。
【０００６】
この問題を解決するために、決定論的な自動テストパターン生成(ATPG)を用いることができ小さな数のパターンを生成して１００％に近い故障検出率を達成する。具体的には、決定論的ＡＴＰＧにおいて、各テストパターンは可能な限り多い数の故障をテストするように設計される。しかしながら、テストパターンの数を減らしても、決定論的ＡＴＰＧには、スキャンチェインに直接入力される多数のパターンのために、そして、スキャンチェインから期待されるアウトプット値のために、テスト印加装置（テスタ）には依然として大きな記憶領域が必要とされる。さらに、このテスト方法は、オフチップのアクセスタイムにより非効率性が伴う。
【０００７】
代わりに、そして現在の複雑なＩＣでは頻繁に、ＩＣが自己を高速にテストすることが可能な構造を設計に加えることができる。これらの自己組込みテスト（ＢＩＳＴ）構造は、様々なパターン生成回路を含みうる。最も典型的なものは、疑似ランダムパターン発生回路（ＰＲＰＧ）である。ＰＲＰＧにより発生されたパターンは、テストされる設計中のスキャンチェインを介して伝達され、故障が検出されたか決定するために出力が解析される。スキャンテスト及びＰＲＰＧを用いた技術の例は、「不定値のスキャンチェイン出力に許容性のある決定論的ＢＩＳＴアーキテクチャ」と題され、２００７年６月２６日に刊行された特許文献１に記載されている。この文献は、参照することにより本明細書に組込まれる。
【０００８】
ＩＣスキャンテスト中に高い故障検出率を達成するには、特に小型化するプロセス技術と新しいＩＣ材料とにあって、異なる故障モデル（縮退モデル、遷移遅延モデル、ショーツ／オープンズモデル(shorts/opens model)）を用いることができる。残念なことに、タイミング依存の、そしてシーケンス依存の故障モデルは新しい技術でますます重要となっているが、この種のテストパターンは、テスタの時間及びデータが２倍から５倍必要とされうる。テストデータ量及びテスト印加時間の現在の増加は、次世代のツールでは少なくとも１０倍になって続くと予想される。
【０００９】
したがって、テストコストを抑える方法としてスキャンのみのスキャンテストは不十分になった。現在のＡＴＰＧで生成された高度にコンパクト化されたベクタセットでさえも、テストコストを削減するためにチップに搭載された圧縮及び展開が必要とされる。
【００１０】
圧縮スキャンは、テストパターン量、テスト印加時間、テスタのピン数の要件を低減することによりテストコストを下げる。スキャンロード圧縮技術は、「ケア」ビット（すなわち、所定のスキャンセルに記憶され目標とした故障を検出することができる値）が「ドントケア」ビット（すなわち、テストされた設計中の故障を示していないビット）に比べて少ないことを利用する。スキャンアンロード圧縮技術は、エラー値は多かれ少なかれランダムに現れ、同時にいくつかのスキャンチェインにしか現れないという事実を用いている。具体的には、テストされた設計は、場合によってはケアビット及びドントケアビットに加えて不定ビットを出力する。その名が示唆しているように、不定ビット（本明細書ではＸと呼ぶ）は、未知の値を持つ（すなわち、ＡＴＰＧプロセスの間に用いられるシミュレーションによって正確に予測できない値）。結果として、Ｘビットによりスキャン出力の分析が悪影響を受ける。さらには、そのようなＸビットにより、マスキングを行わなければならない(masking observation)ことによりアンロード圧縮が制約を受けうる。また、Ｘ値を防止し、それらがスキャン出力へ影響を及ぼすのを避けるために追加的なケアビットを必要とすることによりロード圧縮も制約されうる。
【００１１】
残念なことに、複雑な故障モデルと同様に、挑戦的な設計及び技術により、Ｘ値を持つスキャンセルの数は増加しうる。静的Ｘとは、一般に作動パラメータに対して反応しないゼロ遅延シミュレーションで見られる、未知の値をいう。静的Ｘの例には、モデル化されていないブロック（例えば、アナログ又はメモリのブロック）及びバス・コンテンションが含まれる。静的Ｘは設計時に知られているが、大半は単純な解決策がない。加えて、「動的」Ｘが、タイミング、作動パラメータ（例えば、電圧及び温度）、又は製造時の欠陥により生じうる。
【００１２】
したがって、複数の挑戦的な目標にも同時に応えることができるスキャン圧縮方法の必要が高まる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許第７，２３７，１６２号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１４】
完全に不定値許容性であって非常に高いスキャン圧縮を行うスキャンテストシステム及び技術を提供する。
【課題を解決するための手段】
【００１５】
複数のスキャンチェインを含む集積回路（ＩＣ）設計をテストするためのシステムが提供される。このスキャンテストシステムは、２つの疑似ランダムパターン発生回路（ＰＲＰＧ）チェイン及びアンロードブロックを有し得る。第１のＰＲＰＧ処理チェインは第１のシードを受取り、設計の故障を特定するためのパターンを生成しうる。すなわち、これらのパターンは、複数のスキャンチェインに印加される。第２のＰＲＰＧ処理チェインは、第２のシードを受取り、不定値許容性の（ＸＴＯＬ）制御ビットを生成しうる。ＸＴＯＬ制御ビットは、スキャンチェインの観測のレベルを決定する。アンロードブロックは、複数のスキャンチェインからスキャン出力を、そしてＸＴＯＬ制御ビットを受取り、設計を分析するためのテスト出力を生成しうる。
【００１６】
一実施形態では、第１のＰＲＰＧ処理チェインは、ＣＡＲＥ  ＰＲＰＧ及びＰＲＰＧ移相回路を有しうる。ＣＡＲＥ  ＰＲＰＧは、第１のシードを受取りうる。ＣＡＲＥ移相回路は、複数のスキャンチェインに、展開された出力を与えうる。第１のＰＲＰＧ処理チェインは、ＣＡＲＥシャドウレジスタも有し得る。ＣＡＲＥシャドウレジスタは、ＣＡＲＥ  ＰＲＰＧから入力を受取り、ＣＡＲＥ移相回路に出力を供給する。ＣＡＲＥ  ＰＲＰＧは、ＣＡＲＥシャドウレジスタを一定値がスキャンチェイン内にシフトされシフト電力を低減するようなホールドモードにする、Ｐｗｒ＿ｃｔｒｌ（電源制御）信号を供給することができる。
【００１７】
第２のＰＲＰＧ処理チェインは、ＸＴＯＬ  ＰＲＰＧ、ＸＴＯＬ移相回路、及びＸＴＯＬシャドウレジスタを有し得る。ＸＴＯＬ  ＰＲＰＧは第２のシードを受取りうる。ＸＴＯＬ移相回路は、ＸＴＯＬ  ＰＲＰＧの出力を受取る。ＸＴＯＬシャドウレジスタは、ＸＴＯＬ移相回路の出力を受取りＸＴＯＬ制御ビットを供給しうる。一実施形態では、ＸＴＯＬ  ＰＲＰＧは、ＸＴＯＬシャドウレジスタをホールドモードにするホールド信号を生成するように構成されている。
【００１８】
スキャンテストシステムは、テスタからの入力を受取り、第１のＰＲＰＧ処理チェイン及び第２のＰＲＰＧ処理チェインの一方に出力を供給するように構成されたアドレサブルＰＲＰＧシャドウをさらに有し得る。ＣＡＲＥ  ＰＲＰＧ及びＸＴＯＬ  ＰＲＰＧは、任意のシフトサイクルで必要がある場合にリシードするように構成されている。したがって、スキャンテストシステムは、シフトごとにＸ制御を行いうるのが好都合である。
【００１９】
一実施形態では、アンロードブロックは、ＸＴＯＬセレクタ、Ｘデコーダ、圧縮回路、及び多入力シフトレジスタ（ＭＩＳＲ）を有し得る。ＸＴＯＬセレクタは、内部スキャンチェインの出力を受取る。Ｘデコーダは、ＸＴＯＬ制御ビットを用いてＸＴＯＬセレクタを制御しうる。圧縮回路は、ＸＴＯＬセレクタの出力を受取りうる。ＭＩＳＲは、圧縮回路の出力を受取りテスト出力を生成しうる。ＸＴＯＬセレクタ及びＸデコーダを完全観測モード、無観測モード、シングルチェインモード、及び複数観測モードのうちいずれか１つを可能とするように構成しうることが好都合である。
【００２０】
一実施形態では、Ｘデコーダは、２レベルデコードシステム(two-level decoding system)の第１のものを含む。例えば、第１のレベルでは、Ｘデコーダは、グループごとの（チェインごとのではなく）出力を供給する。第２のレベルでは、各個のチェインでグループからチェインへのデコーディングが実行される。第１のＡＮＤゲートがスキャンチェインからの第１の入力を供給され、マルチプレクサはこの第１のＡＮＤゲートに第２の入力を供給しうる。第２のＡＮＤゲート及びＯＲゲートは、両者ともＸＴＯＬ制御ビットを受取り、マルチプレクサは、第２のＡＮＤゲート及びＯＲゲートのいずれか一方からの出力を選択する。
【００２１】
上述のスキャンテストシステムは、０からほぼ１００％の任意のＸ密度に適用でき、最適化されたＡＴＰＧと同じ検出率で非常に高い圧縮を行うことができると好都合である。１のスキャン入力及びスキャン出力と同じくらい少ない入力及び出力が規定されうる。設計論理は、変更されないままであるため、上述のスキャンテストシステムを容易に組み込むことができれば好都合である。
【００２２】
ケアビットをＣＡＲＥ疑似ランダムパターン生成回路（ＰＲＰＧ）にマップする方法も提供されている。この方法は、全てのケアビットが１のシードにマップ可能な、シフトの最大ウィンドウを決定することを有する。最大ウィンドウを決定することは、シフトサイクルによりケアビットをソートすること、及び各シフトサイクルについて最大ウィンドウを算出しウィンドウ内のケアビットの総数があらかじめ算出された制限を超えないようにすることを含みうる。ウィンドウ内の全てのケアビットが単一のシードにマップ可能である場合、その単一のシードをＣＡＲＥ  ＰＲＰＧにロードすることができる。全てのケアビットを単一のシードにマップできない場合、ウィドウは、直線的に減少する。
【００２３】
不定値許容性（ＸＴＯＬ）制御ビットをＸＴＯＬ疑似ランダムパターン生成回路にマップする方法も提供されている。この方法は、全てのＸＴＯＬ制御ビットが単一のシードにマップ可能であるシフトの最大ウィンドウを決定すること、及び最大ウィンドウの最適な開始を決定することを有する。完全観測モードについては、この方法は、ＸＴＯＬ  ｅｎａｂｌｅビットをオフにするという第１の選択肢と、ＸＴＯＬ  ｅｎａｂｌｅビットをオンのままにするという第２の選択肢とのいずれがよいかを決定することと、良い方の選択肢を選択することをさらに有し得る。
【００２４】
スキャンテストについて観測モードを選択する方法も提供されている。この方法は、観測モードと関連したモードのメリット（mode merits)を初期化することを有し得る。各シフトについて、不定値（Ｘ）を残す(let through)観測モードを除去しうる。加えて、スキャンテストの主な目標を検出できない任意の観測モードも除去しうる。２次故障について、モードのメリットを観測された２次的な目標の数に基づいて増加させうる。各シフトについて、シフトについての最善の観測モード及び２番目に最善の観測モードをモードメリットの合計に基づいて決定しうる。結果として決定される観測モードはＸＴＯＬシードにマップしうる。観測モードは、完全観測、無観測、シングル観測、及び複数観測（そしてこれらの補完を含みうる。
【図面の簡単な説明】
【００２５】
【図１】オンチップの圧縮回路及び展開回路を備えた単純化されたスキャンテストシステムを示す。
【図２Ａ】完全に不定値許容性となるように構成されたスキャンテストシステムを示す。
【図２Ｂ】ＣＡＲＥシャドウレジスタをさらに有する図２Ａのスキャンテストシステムを示す。
【図３Ａ】ＰＲＰＧシャドウレジスタの一例を示す。
【図３Ｂ】ＸＴＯＬ  ＰＲＰＧのセル、及びＸＴＯＬ移相回路及びＸＴＯＬシャドウレジスタの対応するセルの一例を示す。
【図３Ｃ】ＣＡＲＥ  ＰＲＰＧのセル、及びＣＡＲＥ移相回路及びＣＡＲＥシャドウレジスタの対応するセルの一例を示す。
【図４】テスタ及びＡＴＰＧパターンに関連する波形の一例を示す。
【図５】圧縮されたパターンを印加する状態図の一例を示す。
【図６】最小数のＸＴＯＬ制御ビットを用い観測可能性を最大化させて効率よくＸを阻止しうるアンロードブロックの一例を示す。
【図７】Ｘデコーダで用いられる２レベルデコーディングブロックの一例を示す。
【図８】複数観測モードにおいて様々なグループ分けを用いることを表すグラフを示す。
【図９】ＸＴＯＬセレクタ特性の２つの尺度を表すグラフを示す。
【図１０】ケアビットをＣＡＲＥ  ＰＲＰＧシードにマップするマップ技術の一例を示す。
【図１１】観測モード選択技術を示す。
【図１２】ＸＴＯＬ制御ビットをＸＴＯＬ  ＰＲＰＧシードにマップするマップ技術の一例を示す。
【図１３】説明した適応性のあるスキャン圧縮技術を含むデジタルＡＳＩＣ設計フローを簡単に表示したものを示す。
【発明を実施するための形態】
【００２６】
図１に、単純化された従来のテストシステム１００を示す。テストシステム１００は、テスタからの入力（すなわちシード）を受取るロード展開回路１０１、ロード展開回路１０１により生成されたスキャンビットを受取るための複数のスキャンチェイン１０２、スキャンチェイン１０２からのスキャン出力を受取るためのアンロード圧縮回路１０４を有する。一実施形態では、ロード展開回路１０１は、疑似ランダムパターン発生回路（ＰＲＰＧ）を有しうる。決定論的ＡＴＰＧで計算された値をテスタから繰返しリシードされるＰＲＰＧは、ロードデータを非常に高く圧縮することができ好都合だからである。決定論的ＡＴＰＧで計算されたロード値をＰＲＰＧの状態として「エンコード」し（すなわち「マップ」し）、全てのケアビットがＰＲＰＧのシードで適切にロードされるようにする。典型的な実施形態では、複数のテストパターンを各ＰＲＰＧのシードから発生することができる。
【００２７】
故障検出のために必要なケアビットに加えて、ロード展開回路１０１は、Ｘ制御ビットも出力することができ、Ｘ制御ビットは、制御ライン１０３を介してアンロード圧縮回路１０４に入力される。アンロード圧縮回路１０４は、いくつかのＸがある場合にはエラー検出を行うことができるが、Ｘが増えると、過剰なＸをロード展開回路１０１から来るビットで制御しないと検出率が低下する。とりわけ、加えられたＸＴＯＬ制御ビットが、Ｘが制御されなかった場合に必要とされる出力ビットよりも少ないならば、Ｘ制御ビットを加えると実際に全圧縮データ量を減少させることができる。
【００２８】
しかしながら、どのＸ制御ビットが必要とされるのか決定することは困難である。テスト印加時間を減少させるため、スキャンパターンのロードを、前のアンロードと重複させることができる。したがって、ロード展開回路１０１は、前のアンロードのためのＸ制御ビットだけではなく、（スキャンチェイン１０２に与えられている）現在のパターンのためのロードケアビットを同時に供給し、過剰なＸにより検出率の低下又はパターンカウントが受入れられないほど増加することが生じないようにしなければならない。
【００２９】
不都合なことに、Ｘ制御ビットは、通常のスキャンＡＴＰＧのフローでは非常に後になるまで分からない。すなわち、ロードケアビットが前のＭ（例えば、３２）パターンに代えてセットされ、この時ロード展開回路１０１内のコンフリクトの結果満足できない状態が生じうる時になって初めてＸ制御ビットが分かる。前のパターン情報をスキャンセルごとに記憶することができどのセルが監視のためのＸ制御を必要としそうか予測することに留意すべきである。しかしながら、この記憶のためには、さらにメモリ及びＣＰＵの作動が必要とされる。さらに、予測が失敗した場合、追加の(padding)パターンが必要になりえてこのパターンはテストデータとサイクルとの両方に加えられて不都合である。一実施形態では、Ｘ制御ビットを内部チェインのロードごとに１つのセットに制限することができる。すなわち、Ｘ制御ビットは、全てのシフトサイクルに対して不変であり、Ｘをマスクしすぎてしまう可能性があり、この結果パターン数が、検出率が１００％になるまで増加してしまうという不都合がある。
【００３０】
図２Ａに示すスキャンテストシステム２００の一態様によれば、シフトごとのＸビットの制御を行い、ロードケアビットとのコンフリクトを回避するように２つのＰＲＰＧが用いられうる。この最適化を行なうために、ケアビットＰＲＰＧ（ＣＡＲＥ  ＰＲＰＧ）２０２は、ケアビット（及びドントケアビット）を発生させることができ、別個の不定値許容（Ｘ−ｔｏｌｅｒａｎｔ）ＰＲＰＧ（ＸＴＯＬ  ＰＲＰＧ）２０６がＸＴＯＬ制御ビットを発生させることができる。ＰＲＰＧシャドウレジスタ２０１がテスタからシードを受取りＣＡＲＥ  ＰＲＰＧ２０２又はＸＴＯＬ  ＰＲＰＧ２０６の一方のために適切なシードを発生させることができることに留意すべきである。
【００３１】
図３Ａにマルチプレクサ３３１及びフリップフロップ３３２を有する単純化されたＰＲＰＧシャドウレジスタ３３０を示す。複数のマルチプレクサ３３１は、同一の制御信号Ｍｕｘ＿ｃｏｔｒｏｌにより制御され、動作可能な場合に前のセルから及びテスタからシードを受取る。フリップフロップ３３２は、同一のクロック（簡単のため図示せず）によりクロック制御を受け、前のセルのフリップフロップ３３２の出力又は前のセルのマルチプレクサ３３１の出力を受取る。米国特許第７，２３７，１６２号明細書には、ＰＲＰＧシャドウレジスタの構成例がさらに詳細に記載されている。ＰＲＰＧシャドウレジスタ３００の出力、すなわちＸＴＯＬ  ｅｎａｂｌｅ及びＣＡＲＥ  ＰＲＰＧ又はＸＴＯＬ  ＰＲＰＧの一方のためのビットは、フリップフロップ３３２により与えられる。
【００３２】
図２Ａを再び参照すると、ＣＡＲＥ  ＰＲＰＧ２０２は、その出力を移相回路２０３に与え、移相回路は入力よりも多くの出力を行いうる。この結果、ＣＡＲＥ  ＰＲＰＧ２０２及びＣＡＲＥ移相回路２０３は、組合せでケアビット（及びドントケアビット）のロード展開を行いうる。対照的な構成として、ＸＴＯＬ  ＰＲＰＧ２０６は、その出力をＸＴＯＬ移相回路２０７に行い、ＸＴＯＬ移相回路は、入力よりも多くの出力を行いうる。
【００３３】
ＰＲＰＧは、事実上、所定のフィードバックに関する構成を備えた移相回路であることに留意すべきである。したがって、ＰＲＰＧの隣接するセルは互いに依存する。すなわち、第１のセルの下流にある第２のセルは、１クロック前に第１のセルにより記憶されていた値を記憶しうる。移相回路は、通常、所定のセルからの入力を受けるＸＯＲゲートを用いて実行され、ＰＲＰＧの隣接するセル間の線形従属性(linear dependency)を減少させ、故障検出がＰＲＰＧの線形依存性により受ける制限は最小限となる。ＰＲＰＧ及び移相回路の様々な構成は、ＩＣテストの当業者にとって既知であるので本明細書では詳細に説明しない。
【００３４】
一実施形態では、ＰＲＰＧシャドウレジスタ２０１は、ＸＴＯＬ  ｅｎａｂｌｅビット（１ビットレジスタに記憶することができる）を与え、アンロードブロック２０５における不定値許容性をオフにする。ｅｎａｂｌｅビットをオフにすると、Ｘ制御を必要としない隣接するシフトサイクルのウィンドウに対するＸＴＯＬ  ＰＲＰＧビットが必要なくなることにより圧縮されたデータ量を減らすことができる。ＸＴＯＬ  ＰＲＰＧ２０６は、シフトし続けるが、アンロードブロック２０５に対するＸＴＯＬ  ＰＲＰＧの制御は、ＸＴＯＬ  ｅｎａｂｌｅ信号により不可能となる。ｅｎａｂｌｅにされると、ＸＴＯＬ  ＰＲＰＧ２０６は、シフトごとのＸ制御をアンロードブロック２０５に行う。
【００３５】
一実施形態では、ＸＴＯＬ  ｅｎａｂｌｅビットを、ＣＡＲＥ  ＰＲＰＧ２０２又はＸＴＯＬ  ＰＲＰＧ２０６の一方にリシードされた場合だけ変更することができる。したがって、ＸＴＯＬ  Ｅｎａｂｌｅビットにより、非常にＸの密度が小さい設計ではＸＴＯＬビットは大きく減少しうるが、ＸＴＯＬ  Ｅｎａｂｌｅビットは比較的粗い制御を行う。Ｘの密度が中くらい及び密度が高い場合にＸＴＯＬビットをさらに減少させるには、精密な制御も行うことができる。特に、多くの設計ではＸの分布は極めて不均一であり、その結果、ＸＴＯＬ制御ビットが隣接するサイクルで再使用されうる（そして、ＡＴＰＧにより生成されたパターンは、再使用に適するように調整される）。したがって、一実施形態によると、ＸＴＯＬ  ＰＲＰＧ２０６の専用チャネルはＸＴＯＬシャドウレジスタ２０８にホールドビットを与えうる。このホールドビットにより、ＸＴＯＬシャドウレジスタ２０８内のＸＴＯＬ  ＰＲＰＧデータは不変に保たれる。
【００３６】
ＸＴＯＬシャドウレジスタ２０８がアンロード圧縮回路２０５に一定のＸＴＯＬ制御ビットを与える間、ＸＴＯＬ  ＰＲＰＧ２０６は、ＸＴＯＬ制御ビットの新しいセットが必要とされる次の状態に進みうることに留意すべきである。一実施形態では、ＸＴＯＬシャドウレジスタ２０８を制御するためにＸＴＯＬ移相回路２０７からシフトあたり１つのビットが必要とされる。
【００３７】
上述の通り、ＸＴＯＬ移相回路２０７は、入力よりも出力が少ないほうが好都合である。したがって、ＸＴＯＬ移相回路２０７の出力にＸＴＯＬシャドウレジスタ２０８を配置すると（ＸＴＯＬ  ＰＲＰＧ２０６の出力に配置する代わりに）、結果としてずっと小さなシャドウレジスタとなる。一実施形態では、ＸＴＯＬ制御ビットの数は、およそｌｏｇ（＃スキャンチェイン）である。さらに、ＸＴＯＬ  ＰＲＰＧ２０６からアンロードブロック２０５への長い組合せの経路は、ＸＴＯＬシャドウレジスタ２０８をＸＴＯＬ移相回路２０７の後ろに配置することにより大きく低減される。
【００３８】
図３Ｂに、ＸＴＯＬ  ＰＲＰＧ２０６のセル及びそれに対応するＸＴＯＬ移相回路２０７及びＸＴＯＬシャドウレジスタ２０８のセルの一例を示す。一実施形態では、ＸＴＯＬ  ＰＲＰＧのセル３０１は、入力として、前のＸＴＯＬ  ＰＲＰＧセルからのビットだけではなくＰＲＰＧシャドウ（例えば、ＰＲＰＧシャドウ２０１、図２Ａ）からのビットを受取るマルチプレクサ３１２を有し得る（選択的なＸＯＲ３１１により示されるように、ＸＯＲゲートは、前のＸＴＯＬ  ＰＲＰＧセルの出力を生成することができることに留意すべきである）。これらのビットのいずれを選択するかは、ＸＴＯＬ  ｓｈａｄｏｗ＿ｔｒｎｓｆｅｒ信号により決定され、この信号は、テストにより生成される。一実施形態では、マルチプレクサ３１２が、ＸＴＯＬ  ｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒがオンである場合にＰＲＰＧシャドウ入力を選択する。セル３０１は、クロック制御された記憶装置（例えば、Ｄ−フリップフロップ）をさらに有し得る。この記憶装置は、マルチプレクサ３１２の選択された出力ビットを受けて、次のＸＴＯＬ  ＰＲＰＧセルに信号を与える。
【００３９】
ＸＴＯＬ移相回路のセル３２０は、ＸＯＲゲートを有し得る。このゲートは、入力として少なくともマルチプレクサ３１２の選択された出力を受ける。一実施形態では、移相機能を行うために、このＸＯＲゲートは他のＸＴＯＬ  ＰＲＰＧセルからの少なくとも１つの他のマルチプレクサの出力も受けうる。図３Ｂに示す各位相回路のチャネルは、移相回路の出力を生成するために用いられるセルが独特の結合をしていることに留意すべきである。各結合のためのセルの選択は、当業者には既知であるため、本明細書ではさらに詳細には説明しない。
【００４０】
一実施形態では、ＸＴＯＬシャドウレジスタのセル３０２は、入力としてセル３２０の出力及びフィードバック信号を受取るマルチプレクサ３２２を有し得る。一実施形態では、これらのいずれのビットを選択するかは、テストにより生成されたＸＴＯＬ  ｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒ信号とＯＲをとった！Ｈｏｌｄ信号（Ｈｏｌｄ信号の反転）により決定される。具体的には、一実施形態では、ＸＴＯＬ  ｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒがオンである又はホールドでないときに、マルチプレクサ３２０がＸＴＯＬ移相回路セル３２０の出力を選択する。マルチプレクサ３２２は、ホールド時に記憶装置３２３からのフィードバックを選択する。
【００４１】
セル３０２は、クロック制御された記憶装置３２３をさらに有し得る（例えば、Ｄタイプ  フリップフロップ）。この記憶装置は、マルチプレクサ３２２の選択された出力を受けて、Ｘデコード信号を与える。このＸデコード信号は、マルチプレクサ３２２への入力として与えられたフィードバック信号であることに留意すべきである。記憶装置３１３、３２３を、同一のクロック信号すなわちＸＴＯＬＰＲＰＧｃｌｋにより制御しうることにさらに留意すべきである。
【００４２】
この構成では、マルチプレクサ３２２がＸＴＯＬシャドウにデータを保持するか、又はＸＴＯＬ  ＰＲＰＧ２０６からＸＴＯＬシャドウレジスタ２０８へのデータを取得する再循環マルチプレクサとして機能しうることは好都合である。一実施形態では、ＰＲＰＧシャドウ入力がマルチプレクサ３１２により選択された場合、ＸＴＯＬ移相回路３２０からの入力はマルチプレクサ３２２により選択される。さらに、前のＰＲＰＧセル入力がマルチプレクサ３１２により選択された場合、移相回路のセル３２０の出力はマルチプレクサ３２２により選択され、又はＨｏｌｄ信号に応じて３２３の出力が選択される。ＸＴＯＬ制御(XTOL-controls)の新しいセットでＸＴＯＬシャドウをすぐにリフレッシュするためには、ＸＴＯＬ移相回路入力はＸＴＯＬ  ＰＲＰＧセルの入力から取られる（ＰＲＰＧセルの出力に接続された移相回路の従来の構成と異なる）。
【００４３】
中間のＸＴＯＬ  ＰＲＰＧセル３０１が示されているが、最初及び最後のＸＴＯＬ  ＰＲＰＧセルは以下の例外を除いて同様の構成を有していることに留意すべきである。具体的には、最初のＸＴＯＬ  ＰＲＰＧセルは、前のＸＴＯＬ  ＰＲＰＧセルからの入力を受ける代わりに、最後のＸＴＯＬ  ＰＲＰＧセルの出力を受けるマルチプレクサ３１２を有する。そのため論理的には、最後のＸＴＯＬ  ＰＲＰＧセルは、次のＸＴＯＬ  ＰＲＰＧセルに出力を行う代わりに、最初のＸＴＯＬ  ＰＲＰＧセルに出力を行う記憶装置３１３を有している。
【００４４】
図２Ｂに示す一実施形態では、ＣＡＲＥシャドウレジスタをスキャンテストシステム２００に持たせることができる（図２Ａ）。図３ＣにＣＡＲＥ  ＰＲＰＧ２０２のセル及びその対応するＣＡＲＥシャドウ１００１のセルの一例を示す。一実施形態では、ＣＡＲＥ  ＰＲＰＧのセル３５０は入力として、前のＣＡＲＥ  ＰＲＰＧセルからのビットだけでなく、ＰＲＰＧシャドウ（例えば、ＰＲＰＧシャドウ２０１、図２Ａ）からのビットを受取るマルチプレクサ３４２を有し得る（選択的なＸＯＲ３４１により示されるように、ＸＯＲゲートは前のＸＴＯＬ  ＰＲＰＧセルの出力を生成しうる）これらのビットのいずれを選択するのかは、テスタにより生成されるｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒ 信号により決定される。セル３５０は、クロック制御された記憶装置（例えば、Ｄ−フリップフロップ）３４３を有し得る。この記憶装置は、マルチプレクサ３４２の選択された出力ビットを受けて次のＣＡＲＥ  ＰＲＰＧセルに信号を与える。
【００４５】
全てのＣＡＲＥ  ＰＲＰＧセルのうちのサブセットを電源制御信号を生成するために用いうることに留意すべきである。例えば、図３Ｃに示されているように、マルチプレクサ３４２の出力及び少なくとも１つの他の同様の出力を移相要素３４４に与えることができる。一実施形態では、移相要素３４４はＸＯＲゲートを有し得る。移相要素３４４の出力は、Ｐｗｒ  Ｃｔｒｌ信号である。
【００４６】
一実施形態では、ＣＡＲＥシャドウレジスタのセル３５１はマルチプレクサ３４６を有しうる。このマルチプレクサは、入力としてマルチプレクサ３４２の出力及びフィードバック信号を受ける。一実施形態では、これらのビットのうちいずれを選択するかは、！Ｐｗｒ  ｅｎａｂｌｅ信号（すなわち、Ｐｗｒ  ｅｎａｂｌｅ信号（これはテスタにより与えられ１ビットレジスタ等に記憶される全体的な(global)電源信号）の反転）、！ＰＷｒ  Ｃｔｒｌ信号、及びＣＡＲＥ  ｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒ信号（これはテスタにより生成される）のＯＲをとることにより決定される。
【００４７】
セル３５１は、クロック制御された記憶装置３４７（例えば、Ｄタイプフリップフロップ）をさらに有し得る。この記憶装置は、マルチプレクサ３４６の選択された出力をうけてＣＡＲＥ移相回路２０３の対応するセルに出力を与える。この出力はマルチプレクサ３４６への入力として与えられるフィードバックであることに留意すべきである。記憶装置３４３、３４７は同一のクロック信号すなわちＣＡＲＥＰＲＰＧｃｌｋにより制御され、この信号は、クロック制御された記憶装置３４７に対しては反転されることにさらに留意すべきである。
【００４８】
一実施形態では、Ｐｗｒ  ｅｎａｂｌｅ信号が０であるならば、Ｐｗｒ  ｃｏｎｔｒｏｌ信号及びＣＡＲＥ  ｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒ信号は無視され、ＣＡＲＥシャドウセル３５１はＣＡＲＥ  ＰＲＰＧセル３５０の内容をマルチプレクサ３４２による出力としてコピーする。しかしながら、もし、Ｐｗｒ  ｅｎａｂｌｅ信号が１であるならば、Ｐｗｒ  ｃｔｒｌ信号及びＣＡＲＥ  ｓｈａｄｏｗ＿ｔｒａｎｓｆｅｒ信号は、ＣＡＲＥシャドウセル３５１が現在の値を保持するか、ＣＡＲＥ  ＰＲＰＧセル３５０から新しい値をクロック動作させていれる(clocks in)かを決定する。ＣＡＲＥ  ＰＲＰＧセル３５０及びＣＡＲＥシャドウセル３５１のこの構成により、スキャンチェイン内に反復値をシフトさせることにより大きな電力削減が行われる。具体的には、ケアビットと電力とをトレードオフするために任意のドントケアシフトを用いることができる。
【００４９】
図２Ａに戻ると、ＰＲＰＧシャドウレジスタ２０１を任意のオーバラップを持ったアドレサブルシャドウ(addressable shadow with arbitrary overlap)として特徴付けることができる。具体的には、ＰＲＰＧシャドウレジスタ２０１は、ＣＡＲＥ  ＰＲＰＧ２０２のための次のＣＡＲＥシード、又はＸＴＯＬ  ＰＲＰＧ２０６のための次のＸＴＯＬシードをロードできるのが好都合である。特に、このロードはスキャンチェイン２０４の値をシフトするかホールドする間に実行することができこのため内部のシフトサイクルと任意に重なったリシードサイクルが可能となる。この結果、リシード周波数はシードをロードするのに必要なサイクル数に限定されない。ＰＲＰＧシャドウ２０１の内容は、続いて１サイクルでＣＡＲＥ  ＰＲＰＧ２０２又はＸＴＯＬ  ＰＲＰＧ２０６の一方に転送されうることが好都合である。
【００５０】
最適化されたスキャンＡＴＰＧは、各パターンによりテストされる複数の故障をマージすることによりパターン数を大きく低減することができる。まず、マージすることは非常に効果的であり、各パターンは、多数のケアビットを用いて多数の故障をテストする。引続いて生成される各テストパターンでまだテストされていない故障の数が減少するにつれてパターンごとに故障をマージする可能性が急速に減少する。そのため、パターンごとに用いられるケアビットはますます少なくなる。ケアビットはシードにマップされるため、初期のパターンでは多くのシードが必要とされ、後のパターンで必要とされるシードはますます少なくなる。一方、テスタは、ロードごとに一定のビット数を供給するように最適化されている。
【００５１】
ＰＲＰＧシャドウ２０１は、テスタから繰返しシードを供給されえて所望の決定論的テストをえる。代わりに、ＰＲＰＧ２０２、２０６は、テスタデータのストリームを連続して受けることができ（全てのテストサイクルでは、ＰＲＰＧシャドウ２０１に記憶することができるビット総数のサブセットが与えられる。すなわちインクリメンタルリシード）所望のケアビットが生成される。しかしながら、設計によってはケアビットのホットスポットを持ちうる。すなわち、多くのテストパターンのために非常に多くの数のケアビットが必要とされる領域である。テスタのバンド幅が限られているため、ＰＲＰＧの各シフトサイクルには少数のデータしか与えることができず、全てのケアビットを満足させるためには不十分でありうる。この場合には、スキャンチェイン２０４のロードを複数のサイクルの間停止すべきである。
【００５２】
したがって、一実施形態においては、ＰＲＰＧシャドウ２０１をリシードすることができ、パターンバウンダリにわたるストリーミングデータに由来する複雑さが回避される（すなわち、インクリメンタルリシードを扱うことは、新しい完全なシードで動作するよりも極めて複雑でありうる）。さらに、ロード間の独立性を維持するために、各パターンロードを完全なＣＡＲＥ  ＰＲＰＧのロードで開始することができる。各シフトで使用できるケアビット数を最大化するために、必要な場合にリシードをスキャンチェイン２０４のシフトをストップさせる機能と組合せることができる。一実施形態では、新しいシードを（必要ならば）各シフトごとにロードすることができ、それによりテスタのバンド幅と独立にＰＲＰＧシャドウ２０１への値の供給を最大化する。
【００５３】
この結果、ＰＲＰＧ２０１をリシードする観点から、ＣＡＲＥ  ＰＲＰＧ２０２又はＸＴＯＬ  ＰＲＰＧ２０６を必要ならば任意のシフトサイクルでリシードすることできる。必要ならば、ＣＡＲＥ  ＰＲＰＧ２０２及び／又はＸＴＯＬ  ＰＲＰＧ２０６をリシードしている間、スキャンチェイン２０４のシフトを停止することができる。ＰＲＰＧシャドウ２０１及びスキャンチェイン２０４のシフトのこのオーバラップを、ＡＴＰＧにより決定することができる。
【００５４】
一実施形態では、ＣＡＲＥ  ＰＲＰＧ２０２及びＸＴＯＬ  ＰＲＰＧ２０６は同一長であるため、テスタロード（シード）は同量のデータを有している。上述したように、ＰＲＰＧシャドウ２０１は、ＸＴＯＬ  ｅｎａｂｌｅビットを有するため、ＰＲＰＧシャドウ２０１は、ＣＡＲＥ  ＰＲＰＧ２０２又はＸＴＯＬ  ＰＲＰＧ２０６の一方よりも１ビット長くなりうる。ＰＲＰＧシャドウ２０１の内容が（パラレルにＣＡＲＥ  ＰＲＰＧ２０２又はＸＴＯＬ  ＰＲＰＧ２０６の一方に転送される場合、ＸＴＯＬ  ｅｎａｂｌｅビットがセットされ次のシャドウからの転送まで不変に維持されることに留意すべきである。
【００５５】
特に、シードは必要な場合だけロードされる。テスタにとって各リシードはサイズが固定されたロードである。内部的には、１つ以上のシードが内部のロード／アンロード動作を制御する。図４に、テスタ及びＡＴＰＧパターンと関連した波形４００の一例を示す。
波形４０１は、テスタからＰＲＰＧシャドウがロードされるのを表す。波形４０２は、ＡＴＰＧパターンのロードに基づきスキャンチェインがシフトするのを表す。これらの波形が示すように、シードをロードするサイクル数が４であるならば（波形４０１により示される）、パターンの最初の４サイクルはシードをロードし（サイクル４１０を見よ）、続いて内部のチェインは２サイクルシフトし（波形４０２により示される）、第２のシードがロードを完了するまでさらに２サイクル待機する。続いて、内部のシフトが再開し、２サイクル後に３番目のシードが内部の（すなわち、スキャンセル）シフトとオーバラップしたロードを開始する。この実施形態では、テスタは４つのロードの後に転送を行う同じパターンを行う、すなわちテスタサイクルを反復する（サイクル４１１に示される）。内部のロードでは、複数のシードが必要とされえて、外部の様子に独立して、速い又は遅いクロックを用いることができる。
【００５６】
図２に戻ると、スキャンテストシステム２００は、３つの圧縮技術を同時に用いる。第１に、ＣＡＲＥ  ＰＲＰＧ２０２は必要な回数だけシフトごとにでもリシードされうるため、テスト生成はパターンごとに複数の故障をマージする。シード内に密度の高い数少ないパターンをエンコードすると（１つのパターンに複数のシード）、多くの密度の低いパターンをエンコードするよりデータ総量は小さくなる。このように、ＡＴＰＧが、１パターン中の複数の故障のためにケアビットを「再使用」しうるのは好都合である。第２に、ＰＰＲＰＧのケアビットのエンコードでは非常に高いデータ圧縮が行われうる。特に、ＣＡＲＥ  ＰＲＰＧ及びＸＴＯＬ  ＰＲＰＧが別になっていると、ＣＡＲＥ及びＸＴＯＬ両方の制御ビットの圧縮が独立に最適化される。第３に、テスタの反復サイクル(repeat cycle)を付随的な負担のない(no-overhead)スタンドアロンのロードデータ圧縮技術として用いることができる。一実施形態では、テスタの反復を、リシードが進行していない場合に、スキャンチェイン２０４の値をシフトさせるのに用いることができる。
【００５７】
図５に圧縮されたパターンを適用する状態のフローの一例を示す。パターンは、最初のシードがＰＲＰＧシャドウにロードされ、場合に応じてデータがアンロードされる「テスタモード」５０１で開始する。各パターンはロードケアビットを必要とするがＸＴＯＬビットを必要としない可能性があるため最初のシードはＣＡＲＥ  ＰＲＰＧに指定される。内部チェインは、「テスタモード」５０１の間シフトしない。その代わり、内部チェインは値を保持する。一実施形態では、「テスタモード」５０１は、＃ｓｈｉｆｔｓ／ｓｅｅｄサイクル（すなわち、ＰＲＰＧシャドウをリロードするのに必要とされるサイクル数）を取ることができる（例えば、図４の波形４０１の最初の４つのサイクル）。続いて、「ＰＲＰＧへのシャドウモード（Shadow to PRPG Mode）」では、ＰＲＰＧシャドウの内容は１サイクルでＣＡＲＥ  ＰＲＰＧかＸＴＯＬ  ＰＲＰＧに転送される。
【００５８】
「ＰＲＰＧへのシャドウモード」５０２にある場合、次の状態として３つの可能性がある。他のシードがすぐに必要とされるならば（例えば、最初のＣＡＲＥシードの後のＸＴＯＬシード）、再び「テスタモード」５０１に入る。他のシードが数サイクル後で必要とされるならば、「シャドウモード」５０４に入ることができる。最後に、数サイクルでは他のシードが必要とされないならば、「自律モード(Autonomous Mode)」５０３に入ることができる。
【００５９】
他のシードがＣサイクル後に必要とされＣ≦＃ｓｈｉｆｔｓ／ｓｅｅｄ（すなわち、ＰＲＰＧシャドウをリロードするのに必要なサイクル数）場合、「シャドウモード」５０４を用いることができる。Ｃサイクルの間、テスタからのＰＲＰＧシャドウのロードは、内部チェインのシフトとオーバラップする（すなわち、＃ｓｈｉｆｔｓ／ｓｅｅｄ−Ｃ）。「シャドウモード」５０４では、内部シフトロードとできるだけ多くオーバラップさせることによりテストサイクルの総数を最小化するために、ＰＲＰＧシャドウを用いることができる。また、リシードをできるだけ多く配してオーバラップを最大にするためにＡＴＰＧプロセスを調整することができる。一実施形態では、「シャドウモード」５０４は、＃ｓｈｉｆｔｓ／ｓｅｅｄサイクルを取る（例えば、図４ではＣ＝２で４サイクル）。この実施形態では、「シャドウモード」５０４の後で常に「ＰＲＰＧへのシャドウモード」５０２で選択されたＰＲＰＧにＰＲＰＧシャドウの内容を転送する。
【００６０】
現在のパターンで他のシードが必要でない場合又は他のシードがＣサイクル後に必要でＣ＞＃ｓｈｉｆｔｓ／ｓｅｅｄである場合には、「自律モード」５０３を用いることができる。現在のパターンで他のシードが必要とされない場合には、データをＰＲＰＧにより与えて内部のロード／アンロードを完了させるためにテスタの反復を用いうる。この場合には、テスタはシフトクロックを数サイクル動作させ、その後「キャプチャモード」５０５（所定のスキャンセル内の値をキャプチャ(capture)する）で１以上のキャプチャサイクルが続く。対照的に、他のシードがＣサイクル後で必要とされＣ＞＃ｓｈｉｆｔｓ／ｓｅｅｄである場合には、テスタの反復がＣ−＃ｓｈｉｆｔｓ／ｓｅｅｄサイクルの間用いられ、その後「シャドウモード」５０４が続く。例えば、図４では、Ｃ＝６であり、最初の２サイクルは「自律モード」５０３であり、その後「シャドウモード」５０４で４サイクル続く。この実施形態では、「テスタモード」５０１が常に「キャプチャモード」５０５に続く。
【００６１】
多入力シフトレジスタ（ＭＩＳＲ）は、理論的には非常に高いアンロード圧縮を行うが１つのＸ値があるだけで使い物にならなくなりうる。設計から全てのＸを除去するために積極的なＤＦＴ（テスト容易化設計）が用いられうるが、そのためのコストは受入れがたいものになりえ、動的なＸが依然として生じうる。既知の技術では、全てのＸはＭＩＳＲの前で阻止されうるもののこの阻止を制御するために入力データが大きく増加し、阻止が粗すぎるために観測可能性が落ちるという代償がある。他の既知の技術では、不定値の各々とそれ自身とのＸＯＲをとることによりＭＩＳＲからＸを周期的に除去することができる。この技術では、Ｘの密度が高い場合大量の入力データが必要とされる。さらに他の既知の技術では、ＭＩＳＲのフィードバックを取去り代わりに出力データを連続的に観測することによりＭＩＳＲ中のＸの寿命を抑制しえて、その結果、幾分かの不定値許容性と交換に圧縮率が減少する（不定値許容性は、より多くの入力データを用いてＸを阻止することにより高められうる）。さらに他の技術において、ＭＩＳＲの代わりに組合せ圧縮(combinational compression)では出力データのストリームを観測することが必要となるが、不定値許容性のために圧縮率が犠牲となる。
【００６２】
一実施形態では、シフトごとの不定値許容性（上述した）の正確な制御をＭＩＳＲで実現される非常に高い圧縮と組合せることができる。図６に、最も少ない数のＸＴＯＬ制御ビットを用いて観測可能性を最大限にすることにより効率的にＸを阻止することができるアンロードブロック２０５の一例を示す。一実施形態では、アンロードブロック２０５は、Ｘデコーダ６０１、ＸＴＯＬセレクタ６０２、圧縮回路６０４及びＭＩＳＲ６０６を有し得る。ＸＴＯＬセレクタ６０２は、スキャンチェイン２０４から入力を受けて出力を圧縮回路６０４に与えうる。ＸＴＯＬセレクタ６０２は、Ｘデコーダ６０１により制御されうる。Ｘデコーダ６０１は、ＸＴＯＬ制御信号（シフトごとに変化しうる）及びＸＴＯＬ  ｅｎａｂｌｅ信号（リシードごとに変化しうる）を受取りうる。
【００６３】
一実施形態では、圧縮回路６０４を、１、２、３又は任意の奇数個のエラー（Ｘ）に対して偽信号(aliasing)を発生させないように設計することができる。これは、圧縮回路の出力がＭＩＳＲ６０６に接続されておりしたがって少数のポートに制約されないことから可能になる。圧縮回路６０４を、２エラーＭＩＳＲの相殺をなくす(eliminate 2-error MISR cancellation)ようにも設計することができる。ＸＴＯＬセレクタ６０２の一実施形態においては各デコーダ７００の出力が圧縮回路６０４の３つの移相要素（例えば、ＸＯＲゲート）に供給されうる（すなわち、３の論理出力数(fanout of 3)が用いられる）。どのセットの移相要素が各論理出力数を受取るのかを決定することは、テストの当業者に既知であり、本明細書では説明しない。
【００６４】
一実施形態では、ＭＩＳＲ６０６を「テストモード」５０１（図５）における全てのテストパターンの後でアンロードし、アンロードされた時に０にリセットすることができる。別々のスキャン入力ピン及び出力ピンが使用可能ならば、ＭＩＳＲのアンロードをシードのロードとオーバラップさせることができテスタサイクルを最小化しうる。不合格エラーシグナチャ(failing error signature)を解析して不合格パターンの分析を行うことができる。代わりに、ユーザは、パターンセットの終わりでだけＭＩＳＲ６０６をアンロードすることを選択し、高いデータ圧縮を行うことができるが、直接診断サポート(direct diagnosis support)を行うことができない。
【００６５】
ＸＴＯＬセレクタ６０２を次のモードをサポートするように構成することができる。すなわち、完全観測モード、無観測モード、シングルチェインモード、及び複数観測モードである。完全観測モードをＸのないシフトで用いることができ、完全観測モードは可能な場合には好ましい。オフ状態のＸＴＯＬ  ｅｎａｂｌｅ信号により、複数のリシード間で完全観測が可能となる（ＸＴＯＬｅｎａｂｌｅ信号を変えることができる場合）。ＸＴＯＬ制御ビットの数を最小にして、オン状態のＸＴＯＬ  ｅｎａｂｌｅ信号の場合の完全観測をやはり選択しうることに留意すべきである。Ｘチェイン（すなわち１つ以上のＸを含むスキャンチェイン）は、もし構成されるならばこのモードでは観測されない（Ｘチェインは、「スキャン圧縮のＸチェインを用いた増加」と題され２００８年９月３０日に出願された米国特許出願１２／２４２，５７３号に詳しく記載されている）。無観測モードを、全てのＭＩＳＲ入力が阻止されなければならないシフトに対して用いることができる。Ｘの多い複数の設計ではこのモードが比較的多く用いられるため、ＸＴＯＬ制御ビットを少なくしてこのモードを選択可能でなければならない。
【００６６】
シングルチェインモードを、目的のセルが観測されるシフトについて単一の内部チェインを観測するために用いることができる。このモードはＸチェインを観測できる唯一のモードであり、完全な不定値許容性を有することが好都合である。すなわち、他のいくつのセルがＸであっても任意のセルを観測することができる。通常の設計では内部チェインの数が大きいため、単一のチェインを選択するには多くのＸＴＯＬビットが必要とされる。したがって、このモードは控えめに用いるべきである。
【００６７】
複数観測モードを各設計に対してカスタマイズできる。このモードでは、複数のスキャンチェインの様々なサブセットを観測することができる。したがって、複数観測モードは、シングルモードと完全観測モードとの間の中間領域を受持つ。このモードの選択は、スキャンチェインの指定されたサブセットを選択するために可能な限り少ないビットが必要とされるようにコード化(coded)することができる。
【００６８】
一実施形態では、Ｘが圧縮回路６０４を通過しない場合のみＸＴＯＬセレクタ６０２のためのモードを選択することができる。シフトごとに１つのＸＴＯＬビットを用いる、隣接するシフトサイクルに対して任意のモード選択を反復することができる。複数観測モードを全てのグループで同じスキャンチェインが２つ一緒にならないようにして構成することができ、この結果スキャンチェインの１つにＸがあっても他のスキャンチェインを観測するための全ての複数観測モードを選択することに差し障りがでない。
【００６９】
複数観測モードを作るためには、非Ｘチェインのセットに２以上の分割を定義する。各分割にはセット全体が含まれる。グループは各分割内で相互に排他的に定義され、各チェインが各分割のうちぴったり１つのグループに属するようにする。さらに、各チェインは、１分割あたり１グループとした場合に複数グループからなる唯一のセットにあるため、分割あたりのグループ数の積は、少なくともチェインの数と同じでなければならない。任意のグループ又はその分割に関する残りのグループ(complement)を、複数観測モードで選択しうる。
【００７０】
複数観測モードによる簡単なチェインの分割わりを１０チェイン及び２つの分割を用いて説明することができる。例えば、分割１は各々５チェインの２つのグループを含み、分割２は各々２チェインの５つのグループを含みうる。グループの総数は７（すなわち２＋５）である。グループの例は、グループ０（０、１、２、３、４）、グループ１（５、６、７、８、９）、グループ２（０、５）、グループ３（１、６）、グループ４（２、７）、グループ５（３、８）、グループ６（４、９）を含みうる。一実施形態では、どの２つのチェインも同じ２つのグループにないことを保証するために、１０（２×５）回の観測が可能である（例えば、グループ０を観測、グループ１を観測、グループ２を観測、グループ〜２（すなわち、１、２、３、４、６、７、８、９）を観測など）
【００７１】
他のより現実的な設計例では、１０２４のチェインと４つの分割を考える。この例では、分割１は、各グループに５１２チェインずつの２グループを、分割２は、各グループに２５６チェインずつの４グループを、分割３は、各グループに１２８チェインずつの８グループを、分割４は、各グループに６４チェインずつの１６グループを含みうる。グループの総数は、３０（すなわち、２＋４＋８＋１６）である。どの２つのチェインも同じ４グループにはないため、１０２４通りの組合せが許される（すなわち、２×４×８×１６）。
【００７２】
任意の１チェインを選べるようにするには、レイアウトに特別な注意が必要である。Ｘデコーダがその入力を完全にデコードし個々のチェインを阻止(blocking)する単純な実装では、配線が多くなりすぎる。特に、図７により詳細に示されるデコーディングブロック７００により配線効率のよい構成が行われる。
【００７３】
一実施形態では、ブロック７００は、スキャンチェインの出力及びマルチプレクサ７０２からの出力を受けるＡＮＤゲート７０１を有し得る。マルチプレクサ７０２は、（共用論理７０３と称される）２つの論理ゲート（すなわちＯＲゲート７０４及びＡＮＤゲート７０５）からの出力を受け得る。ＡＮＤゲート７０１は、専ら図示目的のため、マルチプレクサ７０２及び共用論理７０３から離して示されている。各スキャンチェイン７１１は対応するデコーディングブロック７００を１つだけ持つ。隣接するスキャンチェインはデコーディングの第２レベル（すなわち、共用論理７０３）で幾つかの論理を共有できてよい。この共有は、デコーディングの当業者には既知であるため、本明細書では説明しない。このように、デコーディングブロック７００は、論理的実装を表しているが、物理的な実装は異なっていてもよい。
【００７４】
論理ゲート７０４、７０５は、同一の入力を受ける、すなわちグループのセットを指定する入力である。しかしながら、スキャンチェイン７１１によっては、入力のセット（すなわち、３１の可能な入力から選ばれた）は、デコーディングブロック７００の間で異なりうる。Ｘデコーダ６０１は、グループごとに１つの出力を行い、加えてシングルチェインモードがアクティブである場合を示す「シングルチェイン」制御（全てのマルチプレクサ７０２に共通である）を行う。例えば、１０２４のチェインでは（上述のより複雑な分割の仕方を参照）、Ｘデコーダ６０１は、１３のＸＴＯＬ制御信号及び１のＸＴＯＬ  ｅｎａｌｂｌｅ信号として、３１の出力７１０を与え（単純な実装では１０２４なのに対して）、各々の共用論理７０３は、４つの入力をセットで受ける。１４のデコーダ入力から３１のデコーダ出力を生成することは当業者には既知であるため、本明細書では説明しない。スキャンチェインごとに１つのデコーディングブロック７００を設けることにより、唯一の「アドレス」を持った個々のチェインを選択することが可能となる。アドレスは、単にチェインが属する全てのグループのセットである。例えば、上述の単純な分割の仕方に戻れば、セット（グループ０、グループ２）では唯一チェイン０が選択され、セット（グループ０、グループ３）では、唯一チェイン１が選択される。Ｘデコーダ６０１から生成されるシングルチェイン制御は、全てのマルチプレクサ７０２への唯一の制御として働くことに留意すべきである。
【００７５】
さらに説明するために簡単な例を示す。シングルチェイン制御がオンならば、任意のスキャンチェインはシングルチェインモードで観測されうる。シングルチェイン制御がオフならば、スキャンチェインは他のモードで（すなわち、完全観測、非観測、複数観測）で観測されうる。ＯＲゲート７０４及びＡＮＤゲート７０５への共有入力は、スキャンチェインが属する４つのグループである（上述の分割の仕方を参照）（すなわち、各スキャンチェインは、１つが１の区切りにある正確に４つのグループの一員であろう。）
【００７６】
完全観測モードでは、ＸＴＯＬ  ｅｎａｂｌｅは０（オフ）であり、シングルチェイン制御信号は０（すなわち、シングルチェイン制御ではない）であり、Ｘデコーダ６０１の残りの３０の出力は１であろう。図７に示すように、シングルチェイン制御信号が０であるならば、全てのマルチプレクサ７０２は、ＯＲゲート７０４の出力を選択する。ＯＲゲート７０４への全ての出力が１であるならば、マルチプレクサ７０２は、１のみ出力する。これらの１はＡＮＤゲート７０１に入力され全てのスキャンチェインを観測することができる。
【００７７】
一方、ＸＴＯＬ  ｅｎａｂｌｅが１であるならば、ＸＴＯＬ制御信号は観測モードを決定するのに用いられる。例えば、無観測モードでは、シングルチェイン制御信号は、０であり、Ｘデコーダ６０１の残りの３０の出力も０である。マルチプレクサ７０２は、この場合もＯＲゲート７０４の出力を選択し、ＯＲゲートはこの場合０を出力する。ＡＮＤゲート７０１に０が入力されると全てのスキャンチェインの値が阻止される。
【００７８】
シングルチェインモードでは、シングルチェイン制御信号は１である。このため、マルチプレクサ７０２は、ＡＮＤゲート７０５の出力を選択する。Ｘデコーダ６０１の残りの３０の出力のうち、４つは１であり、他の２６は０であろう。特に、４つの１を受取る唯一のスキャンチェインがあるであろう。すなわち、観測のために選択されたスキャンチェインである。
【００７９】
複数観測モードでは、シングルチェイン制御信号は０である。このため、マルチプレクサ７０２は、ＯＲゲート７０４の出力を選択する。Ｘデコーダ６０１の残りの３０の出力のうち、いくつかは０であり、他は１であろう。ＯＲゲート７０４への４つの入力のうち少なくとも１つの入力が１であるならば、対応するスキャンチェインは観測される。
【００８０】
複数観測モードにおけるグループ分けの特性を、シフトごとＸ数の関数としてのチェイン観測の可能性を計算することにより分析評価することができる。１０２４のチェインに対する結果を図８及び図９に示す。最も高い観測可能性、すなわちＸのないモードが各場合に選択された。したがって、Ｘがない場合に完全観測が選択され、１つ又は数個のＸに対して１５／１６モードのうち１つが選択され、７／８モードが選択され、続いて３／４、１／２、１／４、１／８及び１／１６が選択された。
【００８１】
図８に示すように、１５／１６は、Ｘが１つの場合にだけ用いられ、Ｘが２個の場合にはほとんど用いられずＸがそれより多い場合には全く用いられない。任意の数のＸに対して図８における全ての曲線の合計は１００％である。例えば、シフトごとのＸが２乃至７である場合に１／４は最も可能性の高く、シフトごとのＸが７乃至１９である場合に１／８モードが最も可能性が高く、それよりＸが多い場合には１／１６が最も可能性が高い。シングル観測モードはは、図８では除外されている。補完モード１５／１６、７／８、及び３／４は、シフトごとに２つのＸがある場合周辺の非常に狭い領域でしか使用可能でないが、これは実際の設計では、非常によく生じる状態であるため補完モードは最もよく用いられる。
【００８２】
図９にＸＴＯＬセレクタの特性を示す２つの尺度を示す。第１の曲線９０１は、観測されたチェイン数の平均を示し、Ｘ数が増加するにつれて急速に減少している。特に、シフトごとにＸが６個ある場合、２０％のチェインが依然として観測されえて、シフトごとのＸが１９個までは１０％のチェインが依然として観測されうる。この観測可能性は、以前の解決方法で可能であったよりもずっと高いことに留意すべきである。例えば、観測されたチェインの平均は、圧縮回路又はセレクタの組合せでは一般にわずか３％程度である。
【００８３】
図９における第２の曲線９０２に、観測可能なチェイン、すなわち複数観測モードでいくつかの他のチェインにＸがある(some other chains are at X)場合に、必ずしも一度にではないが観測することができるチェインの割合を示す。観測可能なチェインは、重要である。複数の設計において、Ｘは大半のパターンについてＸとなるセルに集中する傾向があるからである。ＡＴＰＧが全てを同一のパターンよってでなくても他のチェインを効果的に観測して故障検出することは重要であり、ＸＴＯＬビットコストが高いシングルチェイン観測を用いる必要がないことは重要である。第２の曲線９０２に示すように、シフトごとのＸ数が大きくても高い観測可能性を維持することができる。例えば、シフトごとのＸが１５個であっても５０％の観測可能性を依然として維持することができる。
【００８４】
続いて、テストパターンをＣＡＲＥ及びＸＴＯＬのシードに最適化及びマップするように変更されたＡＴＰＧプロセスを説明する。図１０にケアビットをＣＡＲＥ  ＰＲＰＧシードにマップするマップ技術１０００の一例を示す。技術１０００では、各パターンについて、テスト発生回路は、所望のケアビットを記憶する。ケアビットは、１次故障又は２次故障(primary or secondary faults)に必要であればフラグがたつ(flagged)。シフトごとのケアビット数のカウントは続けられる。２次故障のマージは、１回のシフトで変化させることができる(that can be satisfied)ビットの最大数により制限され、ＣＡＲＥ  ＰＲＰＧから小さなマージンを除いた長さに等しい。ケアビットのリストが技術１０００では用いられ、この技術は、パターンごとに必要なＣＡＲＥシードを算出し記憶する。
【００８５】
マッピング技術１０００では、ケアビットはシフトサイクルにより記憶される（１００１）。変数ｓｔａｒｔ＿ｓｈｉｆｔが０に初期化され、変数はシードへのマッピングが行われる可能性のあるＰＲＰＧの長さからマージンを除いた大きさに限定される。シフトの最大ウィンドウ、ｓｔａｒｔ＿ｓｈｉｆｔからｅｎｄ＿ｓｈｉｆｔまで計算されるため、ウィンドウ内のケアビットの総数はあらかじめ計算された限度を超えない（１００２）。ウィンドウ内の全てのケアビットを１つのシードにマップできるならば（すなわち、線形システムが解をもつならば）（１００３及び１００４）、そのシードは記憶され（１００５）、サイクルｓｔａｒｔ＿ｓｈｉｆｔでＣＡＲＥ  ＰＲＰＧにロードされ、サイクルｅｎｄ＿ｓｈｉｆｔ＋１まで全てのケアビットを生成する。最後のシフトがちょうど含まれたのでなければ（１００６）、シフトの新しいウィンドウを同様に処理することができる（１００２）。最後のシフトがちょうど含まれたのであれば、プロセスは終了する（１００７）。
【００８６】
ウィンドウ内の全てのケアビットを１つのシードにマップできるのでなければ（１００４）、ｅｎｄ＿ｓｈｉｆｔは依然としてｓｔａｒｔ＿ｓｈｉｆｔより大きいと仮定して（１００８）、ウィンドウは直線的に減少し（ｅｎｄ＿ｓｈｉｆｔ−−）、結果として生じたケアビットをシードにマップすることが試みられる（１００３）。まれなケースでは、ｅｎｄ＿ｓｈｉｆｔ＞ｓｔａｒｔ＿ｓｈｉｆｔが真でない時点では、１シフトのケアビットでさえもシードにマップすることができない。この場合には、シードにマップすることができるケアビットの総数を決定するため二分探索法が実行される（１００９）。探索中の全ての段階でケアビットの線形システムのための解が求められる。１次故障のためにフラグがたった(flagged) ケアビットがもしあるならば、２次故障ケアビットよりも高い優先順位を与えられる。１次故障は、テスト生成回路により再び目標とされないからである。
【００８７】
シードから計算されたＰＲＰＧの値はスキャンチェインにロードされ故障シミュレーションが実行される。ケアビットがドロップした(dropped)ために検出されなかった２次故障は、将来のパターンで再び目標にされる。
【００８８】
Ｍ（例えば、３２）パターンが生成されて各々がＣＡＲＥシードにマップされた後に、シミュレーションを実行することができ、スキャンセルが目標とされた故障をキャプチャすると共にセルがＸをキャプチャしたＣＡＲＥ  ＰＲＰＧからロードされた値に基づいて決定する。この情報を続いて各パターンでＸＴＯＬシードを計算するために用いることができる。図１１に観測モード選択技術１１００を示す。特に、あらゆるパターン及びあらゆるシフトについて次のようにモードが選択されなければならない。すなわち、１つのＸも許容されない、対象となる１次故障はもしあれば観測される、可能な限り多くの２次故障も観測される、可能な限り多くの対象とならないセルが観測される、可能な限り少ないＸＴＯＬビットが必要とされる。
【００８９】
全てのパターンについて、各モード（完全観測、無観測、シングル、複数、それらの補完）は最初にその観測可能性に比例しどれだけ多くのＸＴＯＬ制御を選択する必要があるかに反比例するメリット値を割当てられる。一実施形態では、小さなランダム成分も加えられ、Ｘが同様に分布した、異なるパターンに対して異なるモードが選ばれるようにし、この結果、全ての観測可能なチェインを偶然に観測できるようにする。この時点では、モードのメリット値は全てのシフトに対して同一であることに留意すべきである。
【００９０】
続いて、各シフトに対して、Ｘ値をもつ(at X)１つ以上のセルを選択するモードは、そのシフトについては考慮から除外される（１１０２）。主要な目標故障を観測するシフトについては、目標故障の観測セルを観測しない全てのモードは除外される（１１０３）。任意のシングルチェインを観測することができることにより、少なくとも主要な目標は常に観測可能であることに留意すべきである。続いて、観測された２番目以降の目標セルの数に比例して残りのモードのメリット値が増やされる（１１０４）。最後のシフトについて最も高いメリット値を持った２つのモードがｂｅｓｔ及びｂｅｓｔ２として記憶される（１１０５）。
【００９１】
最後から２番目のものから最初のものまであらゆるシフトについて、各モードは、更新されたメリット値を有する。更新されたメリット値は、ｓｈｉｆｔ＋１のモードのうち２の最善のモードの一方よりも前にある(followed by either of the two best modes of shift+1)（ｃｕｒｒ及びｃｕｒｒ２として記憶される）（１１０６）。モードをホールドする(holding)するとＸＴＯＬ制御コストがもっとも低い。すなわち１ビットである。現在のシフトについて最も高いメリット値を有する２つのモードは、続いてｂｅｓｔ及びｂｅｓｔ２として記憶され、次のシフトのために用いられる（１１０６）。一実施形態では、高速に実行するために、２つの最善のモードだけが計算され用いられる。最終的に、選択された最善のモードがＸＴＯＬシードにマップされる（１１０８）。続いて、観測されなかった２次故障は、再び動作され、将来のテストパターンにより目標とされることが可能となる。
【００９２】
図１２にＸＴＯＬ制御ビットをＸＴＯＬ  ＰＲＰＧシードにマップする（すなわち図１１の工程１１０８を実行する）マップ技術１２００の一例（例えば、図１２のステップ１２０８に関する）を示す。マップ技術１２００を開始するには、変数ｓｔａｒｔ＿ｓｈｉｆｔは０に初期化され、変数制限は、シードへのマッピングが決定される可能性のあるＰＲＰＧ長からマージンを除いたものに初期化される。
【００９３】
ウィンドウの相互に排他的な初期シフトを計算するには、まず、全ての完全観測サイクルについてＸＴＯＬシャドウをホールドするのに十分なビットを新しいＸＴＯＬシードにより供給することができるのかを考える（ホールドするのにシフトあたり１ビットが必要とされる）（１２０２）。残されているビットが十分でないならば、すぐにＸＴＯＬ＿ｅｎａｂｌｅをオフにすることが好都合である（例えば、ダミーシードを用いる）（１２０３）。最後のシフトがちょうど含まれたのでないならば（１２０４）、シフトの新しいウィンドウを続いて処理することができる（１２０６）。
【００９４】
ｓｔａｒｔ＿ｓｈｉｆｔからｅｎｄ＿ｓｈｉｆｔまでのシフトの最大ウィンドウが計算され、ウィンドウ内のＸＴＯＬ制御ビットの総数は、あらかじめ計算された制限を超えない。線形システムを解きシードを計算する（１２０７）。ウィンドウ内の全てのケアビットを１つのシードにマップすることができるならば（すなわち、線形システムが解を持つ）、シードは記憶され（１２０９）、サイクルｓｔａｒｔ＿ｓｈｉｆｔでＸＴＯＬ  ＰＲＰＧ内にロードされ、サイクルｅｎｄ＿ｓｈｉｆｔ＋１まで全てのケアビットを生成する。最後のシフトがちょうど含まれたのでなければ（１２１０）、続いてシフトの新しいウィンドウを同様に処理することができる（１２０２）。最後のシフトがちょうど含まれたのであれば、プロセスは終了する（１２０５）。
【００９５】
ウィンドウ内の全てのＸＴＯＬ制御ビットを１つのシードにマップできないならば（１２０８）、ウィンドウは直線的に減少し（ｅｎｄ＿ｓｈｉｆｔ−−）、結果として生じるケアビットをシードにマップすることが試みられる（１２０７）。ＸＴＯＬ制御ビット数はＸＴＯＬ  ＰＲＰＧの長さよりずっと小さいため、必要とされるビットはドロップすることがない(dropped)。１つのシフトをマッピングすることは実際的には常に可能であるからである。
【００９６】
以下の表１に、内部チェイン長さ＝１００でＸＴＯＬ制御を有効に用いた設計のためのテストパターンを示す。最初の２０シフトサイクルでは（シフトサイクル０・・１９）Ｘがないため、ＸＴＯＬ  ｅｎａｂｌｅが初期ＣＡＲＥ  ＰＲＰＧシードをロードし完全観測モード（ＦＯ）を選択してオフにされる。これらのサイクルでは１００％の観測可能性がある（Ｘチェインがないことを仮定して）。サイクル２０は、１つのＸを持つ。したがって、サイクル２０の前にＸＴＯＬ  ＰＲＰＧがロードされＸＴＯＬ  ｅｎａｂｌｅがオンにされる（シードは、前のサイクルで内部シフトとオーバラップしてロードされた）。１５／１６モードがＸＴＯＬ  ＰＲＰＧに由来する８ビットを用いて選択される。サイクル２１から２９は再びＸがない。しかしながら、ＸＴＯＬ  ｅｎａｂｌｅはこの場合オンであるため、サイクル２１では、ＸＴＯＬ  ＰＲＰＧの３ビットを用いて完全観測モードが選択される。この後、サイクル２２から２９では、ＸＴＯＬシャドウの値を保持するのにシフトあたり１ビットだけが用いられる。サイクル３０は、５つのＸを持つ。この場合には、ＸＴＯＬ  ＰＲＰＧから８ビットが用いられ、１／４モードが選択される。このモードは、次のサイクルでも必要に合わせて選択される。具体的には、サイクル３１から３９は、シフトあたり３から７つのＸを有し、同じ１／４モードが用いられる。ＸＴＯＬシャドウの値を保持するためにシフトあたり１ビットだけが用いられることに留意すべきである。最後の６０サイクルはＸを持たない。したがって、他のシードがロードされ、完全観測のためにＸＴＯＬ  ｅｎａｂｌｅはオフにされる。特に、この例では、１１サイクルで合わせて５０のＸをブロックするため３６のＸＴＯＬビットだけが用いられ９２％の平均観測可能性を達成した。
【表１】
2010539518.tif 000003
【００９７】
図１３に上述した完全に不定値許容性であって非常に高いスキャン圧縮を含むディジタルＡＳＩＣの設計フローの一例を単純化して表示する。上側の段において、プロセスは、製品企画より開始し（ステップ１３００）、ＥＤＡソフトウェア設計プロセスを実行する（ステップ１３１０）。設計が終了すると、テープアウトを行う（イベント１３４０）。テープアウト後、製造プロセス（ステップ１３５０）、パッケージング及び組立プロセス（工程１３６０）を実施し、最終的に完成品チップが得られる（結果１３７０）。
【００９８】
ＥＤＡソフトウェア設計プロセス（工程１３１０）は、実際には複数のステップ１３１２から１３３０から構成されており、簡略化のために直線的に示している。実際のＡＳＩＣ設計プロセスでは、特定の設計は、所定の試験に合格するまでステップを逆戻りしなければならないこともある。同様に、任意の実際の設計プロセスでは、これらのステップは、異なる順序及び組合せで行われることもある。したがって、この説明は、特定のＡＳＩＣのための具体的なまたは推奨する設計フローとしてでなく、むしろ背景説明及び一般的な説明目的のために提供される。
【００９９】
ＥＤＡソフトウェア設計プロセス（工程１３１０）を構成するステップを簡単に説明する。
【０１００】
システム設計（工程１３１２）：設計者は、実装したい機能性を記述し、ｗｈａｔ−ｉｆプランニングを実施して機能性改良や費用確認などを行うことができる。ハードウェア−ソフトウェア・アーキテクチャ・パーティショニングはこのステップで行うことができる。このステップで使用することができるシノプシス社（Synopsys,Inc.)製のＥＤＡソフトウェア製品の例には、Ｍｏｄｅｌ  Ａｒｃｈｉｔｅｃｔ、Ｓａｂｅｒ、Ｓｙｓｔｅｍ  Ｓｔｕｄｉｏ、及びＤｅｓｉｇｎＷａｒｅ（登録商標）などの製品が含まれる。
【０１０１】
論理設計及び機能性の検証（工程１３１４）：このステップでは、システム内のモジュールのためのＶＨＤＬ又はＶｅｒｉｌｏｇコードを書込み、その設計を機能性の精度について検査する。より具体的には、設計を検査することによって、正しい出力を生成することを保証する。このステップで用いられうるシノプシス社製のソフトウェア製品の例には、ＶＣＳ、ＶＥＲＡ、ＤｅｓｉｇｎＷａｒｅ（登録商標）、Ｍａｇｅｌｌａｎ、Ｆｏｒｍａｌｉｔｙ、ＥＳＰ及びＬＥＤＡなどの製品が含まれる。
【０１０２】
合成及び試験のための設計（工程１３１６）：このステップでは、ＶＨＤＬ／Ｖｅｒｉｌｏｇをネットリストに変換する。ネットリストは、目的の技術のために最適化することができる。加えて、完成品チップの検査を可能とする試験の設計及び実装を行う。このステップ使用することができるシノプシス社製のＥＤＡソフトウェア製品の例には、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ（登録商標）、Ｐｏｗｅｒ  Ｃｏｍｐｉｌｅｒ、Ｔｅｔｒａｍａｘ、ＤｅｓｉｇｎＷａｒｅ（登録商標）、及びＤＦＴ  ＭＡＸなどの製品が含まれる。一実施形態では、上述の完全に不定値許容性で非常に高いスキャン圧縮技術を工程１４１６で用いることができる。
【０１０３】
ネットリスト検証（工程１３１８）：このステップでは、ネットリストを、タイミングの制約との適合性及びＶＨＤＬ／Ｖｅｒｉｌｏｇソースコードとの対応について検査する。このステップで用いられうるシノプシス社製のＥＤＡソフトウェア製品の例には、Ｆｏｒｍａｌｉｔｙ、ＰｒｉｍｅＴｉｍｅ、及びＶＣＳなどの製品が含まれる。
【０１０４】
設計プランニング（工程１３２０）：このステップでは、チップの全体フロアプランを作成し、タイミング及び最上位ルーティングについて解析する。このステップで使用することができるシノプシス社製のＥＤＡソフトウェア製品の例には、Ａｓｔｒｏ及びＩＣ  Ｃｏｍｐｉｌｅｒなどの製品が含まれる。
【０１０５】
物理的な実装（工程１３２２）：このステップでは、配置（回路素子の位置決め）及びルーティング（回路素子の接続）を行う。このステップで使用することができるシノプシス社製の製品の例には、Ａｓｔｒｏ及びＩＣ  Ｃｏｍｐｉｌｅｒの製品が含まれる。
【０１０６】
解析及び抽出（工程１３２４）：このステップでは、回路機能をトランジスタレベルで検証し、これにより、ｗｈａｔ−ｉｆ解析による改良を可能にする。このステップにおいて使用することができるシノプシス社製のＥＤＡソフトウェア製品の例には、ＡｓｔｒｏＲａｉｌ、ＰｒｉｍｅＲａｉｌ、ＰｒｉｍｅＴｉｍｅ、及びＳｔａｒ  ＲＣ／ＸＴなどの製品が含まれる。
【０１０７】
物理的検証（工程１３２６）：このステップでは、様々なチェック機能を実行し、製造、電気的な結果、リソグラフィの結果、及び回路構成について正確性を保証する。このステップにおいて使用することができるシノプシス社製のＥＤＡソフトウェア製品の例には、Ｈｅｒｃｕｌｅｓなどの製品が含まれる。
【０１０８】
分解能向上（工程１３２８）：このステップでは、レイアウトの幾何学的な操作を行い、設計の製造可能性を改善する。このステップで使用することができるシノプシス社製のＥＤＡソフトウェア製品の例には、Ｐｒｏｔｅｕｓ、ＰｒｏｔｅｕｓＡＦ、ＰＳＭＧｅｎなどの製品が含まれる。
【０１０９】
マスクデータ準備（工程１３３０）：このステップでは、完成品チップを作成するために使用するリソグラフィのために、マスク作成用の「テープアウト」データを提供する。このステップにおいて使用することができるシノプシス社製のＥＤＡソフトウェア製品の例には、ＣＡＴＳ（登録商標）シリーズの製品ファミリが含まれる。
【０１１０】
本明細書では、添付した図面を参照して本発明の図示した実施形態を詳細に説明してきたが、本発明は、これらにちょうど一致した実施形態に限られないことを理解するべきである。図示した実施形態は、網羅的であることを目的とはせず、又は開示されたちょうど同じ形態に本発明を限定する目的ではない。そのため、多くの変更及び変形が明らかであろう。
【０１１１】
例えば、上述のチップ上の圧縮要素を各々の設計ごとに、例えば、スキャン入力、出力、内部チェイン、及び場合に応じてＸチェインに基づいて、個々に最適化することができる。論理的には、比較的小さな設計では、比較的小さなＰＲＰＧ及びＭＩＳＲ（例えば、３２ビット）を用いられうる。一方、大型の設計では、比較的大きなＰＲＰＧ及びＭＩＳＲ（例えば、６４又は１００ビットを超えるものも）又はルーティングを容易にするために複数の圧縮回路／展開回路構造も用いられるはずである。ＰＲＰＧ及びＭＩＳＲの長さは、精密に調整され、データをロード及びアンロードするテスタのサイクル数をバランスさせる。例えば、６スキャン入力、１２スキャン出力及び１０２４チェインの設計を、６５ビットのＰＲＰＧで構成できるため、ＰＲＰＧシャドウの長さは６６であり、６で割り切れ、ロードする１１サイクルの全てのビットを用いることができる。対応するＭＩＳＲは、６０ビットの長さを持ちえて１２で割り切れる（出力の数）。
【０１１２】
構成に関係なく、テスト印加中の動作は、図５に示す状態図で説明されることに留意すべきである。シードをロードするのとＭＩＳＲをアンロードするのは、内部シフトと異なるクロック周波数で実行されうることにさらに留意すべきである。この場合、テストシステムのためのハードウェアは変更する必要はない。サイクル「シャドウモード」をどれだけ多く用いるかという閾値が調整される必要がある。スキャン入力及び出力は、１でもよい。まずＭＩＳＲをアンロードし続いてシードをロードするのに「テスタモード」の１の双方向ビットを用いることさえできる。特に、データ量は、スキャン入力及び出力の数とは独立している。
【０１１３】
ＰＲＰＧシャドウレジスタは、２００５年９月２７日に刊行され「ＬｏｇｉｃＢＩＳＴアーキテクチャにおける決定論的パターンの効果的な圧縮及び印加」と題された米国特許６，９５０，９７４号明細書、及び２００７年６月２６日に刊行され「スキャンチェインの不定値出力に許容性のある決定論的ＢＩＳＴアーキテクチャ」と題された米国特許７，２３７，１６２号明細書に記載され、両明細書は参照により組み込まれる。シャドウレジスタの他の構成、例えば記憶素子に対してマルチプレクサの数を変える、を他の実施形態で用いることができる。
【０１１４】
したがって、本発明の範囲は、以下の請求の範囲及びその均等物により規定されることが意図されている。
【図１】
2010539518.tif 000004
【図２Ａ】
2010539518.tif 000005
【図２Ｂ】
2010539518.tif 000006
【図３Ａ】
2010539518.tif 000007
【図３Ｂ】
2010539518.tif 000008
【図３Ｃ】
2010539518.tif 000009
【図４】
2010539518.tif 000010
【図５】
2010539518.tif 000011
【図６】
2010539518.tif 000012
【図７】
2010539518.tif 000013
【図８】
2010539518.tif 000014
【図９】
2010539518.tif 000015
【図１０】
2010539518.tif 000016
【図１１】
2010539518.tif 000017
【図１２】
2010539518.tif 000018
【図１３】
2010539518.tif 000019
【国際調査報告】
2010539518.tif 000020
2010539518.tif 000021