(57)【特許請求の範囲】
【請求項１】
回路であって、
スキャンクロックにより駆動され、１以上の整数であるＭ個のスキャン出力を生成するように構成されるスキャン圧縮アーキテクチャと、
２以上の整数であるｋ個の位相シフトされたスキャンクロックを生成するために前記スキャンクロックをｋで分周するように構成されるクロック分周器と、
前記スキャン圧縮アーキテクチャに結合され、前記Ｍ個のスキャン出力と前記ｋ個の位相シフトされたスキャンクロックとに応答してｋＭ個のスロースキャン出力を生成するように構成されるパッキングロジックと、
を含み、
前記パッキングロジックが、
Ｍ個のパッキング要素であって、前記Ｍ個のパッキング要素の各パッキング要素が、前記Ｍ個のスキャン出力の或るスキャン出力を受信するように構成される、前記Ｍ個のパッキング要素と、
各パッキング要素におけるｋ個のフリップフロップであって、或るパッキング要素における前記ｋ個のフリップフロップの各フリップフロップが、前記スキャン出力と前記ｋ個の位相シフトされたスキャンクロックに応答して前記ｋＭ個のスロースキャン出力の或るスロースキャン出力を生成するように、各フリップフロップが、前記Ｍ個のスキャン出力の或るスキャン出力を受信し、前記ｋ個の位相シフトされたスキャンクロックの或る位相シフトされたスキャンクロックを受信するように構成される、前記各パッキング要素におけるｋ個のフリップフロップと、
を含む、回路。
【請求項２】
請求項１に記載の回路であって、
各パッキング要素が、前記スキャン出力と前記ｋ個の位相シフトされたスキャンクロックとに応答してｋ個のスロースキャン出力を生成する、回路。
【請求項３】
請求項１に記載の回路であって、
前記スキャン圧縮アーキテクチャが、
１以上の整数であるＮ個のデータ入力を受信し、Ｎ個のスキャン入力を生成するように構成される第１の複数の入力／出力（ＩＯ）回路と、
前記第１の複数のＩＯ回路に結合され、前記Ｎ個のスキャン入力を受信するように構成される伸長器と、
前記伸長器に結合され、前記Ｍ個のスキャン出力を生成するように構成される圧縮器と、
前記伸長器と前記圧縮器との間に結合される複数のスキャンチェーンであって、前記複数のスキャンチェーンの各スキャンチェーンが複数のスキャンセルを含む、前記複数のスキャンチェーンと、
を更に含む、回路。
【請求項４】
請求項３に記載の回路であって、
前記パッキングロジックに結合され、前記ｋＭ個のスロースキャン出力に応答してｋＭ個のデータ出力を生成するように構成される第２の複数のＩＯ回路を更に含む、回路。
【請求項５】
請求項３に記載の回路であって、
前記複数のスキャンチェーンが前記スキャンクロックにより駆動される、回路。
【請求項６】
請求項３に記載の回路であって、
前記伸長器が、前記Ｎ個のスキャン入力に応答して複数のコアスキャン入力を生成するように構成される、回路。
【請求項７】
請求項６に記載の回路であって、
前記複数のスキャンチェーンが、前記複数のコアスキャン入力を受信するように構成され、
前記複数のスキャンセルの各スキャンセルが、前記スキャンクロックの周波数で前記複数のコアスキャン入力の或るコアスキャン入力をシフトするように構成される、回路。
【請求項８】
請求項６に記載の回路であって、
前記複数のスキャンチェーンが、前記複数のコアスキャン入力に応答して複数のコアスキャン出力を生成するように構成される、回路。
【請求項９】
請求項８に記載の回路であって、
前記圧縮器が、前記複数のコアスキャン出力に応答して前記Ｍ個のスキャン出力を生成するように構成される、回路。
【請求項１０】
集積回路をテストする方法であって、
１以上の整数であるＮ個のデータ入力から１以上の整数であるＭ個のスキャン出力を生成することであって、前記Ｎ個のデータ入力が前記集積回路の各テストサイクルにおいて生成されるビットのセットである、前記Ｍ個のスキャン出力を生成することと、
スキャンクロックから２以上の整数であるｋ個の位相シフトされたスキャンクロックを生成することと、
前記Ｍ個のスキャン出力からｋＭ個のスロースキャン出力を生成するようにパッキングロジックを構成することであって、前記パッキングロジックがＭ個のパッキング要素を含む、前記パッキングロジックを構成することと、
前記Ｍ個のスキャン出力の或るスキャン出力と前記ｋ個の位相シフトされたスキャンクロックとに応答してｋ個のスロースキャン出力を生成するように前記Ｍ個のパッキング要素の各パッキング要素を構成することと、
を含み、
前記ｋＭ個のスロースキャン出力がテストの出力である、方法。
【請求項１１】
請求項１０に記載の方法であって、
前記Ｎ個のデータ入力からＭ個のスキャン出力を生成することが、
前記Ｎ個のデータ入力に応答してＮ個のスキャン入力を生成することと、
前記Ｎ個のスキャン入力に応答して複数のコアスキャン入力を生成することと、
前記複数のコアスキャン入力に応答して複数のコアスキャン出力を生成することと、
前記複数のコアスキャン出力に応答して前記Ｍ個のスキャン出力を生成することと、
を含む、方法。
【請求項１２】
請求項１０に記載の方法であって、
各パッキング要素がｋ個のフリップフロップを含む、方法。
【請求項１３】
請求項１２に記載の方法であって、
前記パッキング要素において受信された前記スキャン出力と前記ｋ個の位相シフトされたスキャンクロックの或る位相シフトされたスキャンクロックとに応答してスロースキャン出力を生成するように、パッキング要素における前記ｋ個のフリップフロップの各フリップフロップを構成することを更に含む、方法。
【請求項１４】
請求項１１に記載の方法であって、
前記複数のコアスキャン入力に応答して複数のコアスキャン出力を生成するように複数のスキャンチェーンを構成することを更に含み、
前記複数のスキャンチェーンの各スキャンチェーンが複数のスキャンセルを含む、方法。
【請求項１５】
請求項１４に記載の方法であって、
前記複数のスキャンセルの各スキャンセルが、前記スキャンクロックの周波数で前記複数のコアスキャン入力の或るコアスキャン入力をシフトするように構成される、方法。
【請求項１６】
請求項１０に記載の方法であって、
前記ｋＭ個のスロースキャン出力に応答してｋＭ個のデータ出力を生成することを更に含む、方法。
【請求項１７】
コンピューティングデバイスであって、
処理ユニットと、
前記処理ユニットに結合される複数の論理回路と、
前記複数の論理回路の少なくとも１つの論理回路に結合されるテスト回路と、
を含み、
前記テスト回路が、
スキャンクロックにより駆動され、１以上の整数であるＭ個のスキャン出力を生成するように構成されるスキャン圧縮アーキテクチャと、
２以上の整数であるｋ個の位相シフトされたスキャンクロックを生成するために前記スキャンクロックをｋで分周するように構成されるクロック分周器と、
前記スキャン圧縮アーキテクチャに結合され、前記Ｍ個のスキャン出力と前記ｋ個の位相シフトされたスキャンクロックとに応答してｋＭ個のスロースキャン出力を生成するように構成されるパッキングロジックと、
を含み、
前記パッキングロジックが、
Ｍ個のパッキング要素であって、前記Ｍ個のパッキング要素の各パッキング要素が、前記Ｍ個のスキャン出力の或るスキャン出力を受信するように構成される、前記Ｍ個のパッキング要素と、
各パッキング要素におけるｋ個のフリップフロップであって、或るパッキング要素における前記ｋ個のフリップフロップの各フリップフロップが、前記スキャン出力と前記位相シフトされたスキャンクロックとに応答して前記ｋＭ個のスロースキャン出力の或るスロースキャン出力を生成するように、各フリップフロップが、前記Ｍ個のスキャン出力の或るスキャン出力を受信し、前記ｋ個の位相シフトされたスキャンクロックの或る位相シフトされたスキャンクロックを受信するように構成される、前記各パッキング要素におけるｋ個のフリップフロップと、
を含む、コンピューティングデバイス。
【請求項１８】
請求項１７に記載のコンピューティングデバイスであって、
前記スキャン圧縮アーキテクチャが、
１以上の整数であるＮ個のデータ入力を受信し、Ｎ個のスキャン入力を生成するように構成される第１の複数の入力／出力（ＩＯ）回路と、
前記第１の複数のＩＯ回路に結合され、前記Ｎ個のスキャン入力を受信するように構成される伸長器と、
前記伸長器に結合され、前記Ｍ個のスキャン出力を生成するように構成される圧縮器と、
前記伸長器と前記圧縮器との間に結合される複数のスキャンチェーンであって、前記複数のスキャンチェーンの各スキャンチェーンが複数のスキャンセルを含む、前記複数のスキャンチェーンと、
を更に含む、コンピューティングデバイス。
【請求項１９】
請求項１８に記載のコンピューティングデバイスであって、
前記パッキングロジックに結合され、前記ｋＭ個のスロースキャン出力に応答してｋＭ個のデータ出力を生成するように構成される第２の複数のＩＯ回路を更に含む、コンピューティングデバイス。
【請求項２０】
請求項１８に記載のコンピューティングデバイスであって、
前記伸長器が前記Ｎ個のスキャン入力に応答して複数のコアスキャン入力を生成するように構成され、
前記複数のスキャンチェーンが、前記複数のコアスキャン入力を受信するように構成され、
前記複数のスキャンセルの各スキャンセルが、前記スキャンクロックの周波数で前記複数のコアスキャン入力の或るコアスキャン入力をシフトするように構成される、コンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
本願は、概してスキャンテストに関し、特に、集積回路（ＩＣ）などの半導体デバイスのスキャンテストに関連する。
【０００２】
スキャンベースの技法は、機能パターンベースのテストに比して、高い欠陥カバレッジを達成するために効率的な代替物を提供する。設計サイズが増大し、高速アプリケーションを駆動するためにマルチコアＳｏＣ（システムオンチップ）が重要となるにつれて、非常に効率的でバランスのとれたスキャンベースの設計においても、テストデータ量及びテストアプリケーション時間はひどく増大している。今のところ、スキャン圧縮手法が、スキャン挿入設計のパターン実行の間のテストデータ量及びテスト時間低減のための最良の手法である。ＳｏＣにおいて実装される幾つかの圧縮手法には、ブロードキャスト又はＩｌｌｉｎｏｉｓアーキテクチャ、多重化された及びＸＯＲアーキテクチャ、又はＭＩＳＲ（多入力シフトレジスタ）ベースの圧縮アーキテクチャが含まれる。今日の電力消費デバイスにおける課題は、漏れ電流を扱うことである。超低リークライブラリ（ＵＬＬ）セルを用いる取り組みが成されている。ＵＬＬセルライブラリベースの入力／出力（ＩＯ）は、入力端子でスキャン入力を受け取り、出力端子でスキャン出力を生成する。ＵＬＬセルライブラリベースのＩＯは、約３０ｎｓの高さまで達し得る、クロック、及び出力端子におけるデータ経路に対する比較的高い慣性遅延を有する。クロックとデータ経路との間の慣性遅延は比較的低いので、これらのＩＯの入力端子は、このタイミングの問題により影響を受けない。このような状況下では、３０ＭＨｚ又はそれ以上などの一層高い周波数でスキャンオペレーションを駆動することができない。たとえ、超低コストテスター（ＶＬＣＴ）が一層高いクロック周波数で駆動されるべきデータをサポートし得るとしても、一層遅いスキャン出力がオペレーションに対する障害となる。従って、スキャンオペレーションは、一層高いテスト時間をもたらす最適周波数で実行されない。
【発明の概要】
【０００３】
集積回路をテストするための回路の記載される例において、この回路は、スキャンクロックにより駆動されるスキャン圧縮アーキテクチャを含み、整数であるＭ個のスキャン出力を生成する。クロック分周器が、整数であるｋ個の位相シフトされたスキャンクロックを生成するために、スキャンクロックをｋで分周するように構成される。パッキングロジックが、スキャン圧縮アーキテクチャに結合され、Ｍ個のスキャン出力及びｋ個の位相シフトされたスキャンクロックに応答してｋＭ個のスロースキャン出力を生成する。パッキングロジックは更に、Ｍ個のパッキング要素を含み、Ｍ個のパッキング要素の各パッキング要素は、Ｍ個のスキャン出力の或るスキャン出力を受け取る。各パッキング要素はｋ個のフリップフロップを含み、パッキング要素におけるｋ個のフリップフロップの各フリップフロップは、Ｍ個のスキャン出力の或るスキャン出力を受け取る。各フリップフロップは、各フリップフロップがスキャン出力及び位相シフトされたスキャンクロックに応答してｋＭ個のスロースキャン出力の或るスロースキャン出力を生成するように、ｋ個の位相シフトされたスキャンクロックの或る位相シフトされたスキャンクロックを受け取る。
【０００４】
別の実施例がテストする方法を提供し、この方法において、整数であるｋ個の位相シフトされたスキャンクロックがスキャンクロックから生成される。パッキングロジックが、整数であるＭ個のスキャン出力からｋＭ個のスロースキャン出力を生成する。パッキングロジックはＭ個のパッキング要素を含む。Ｍ個のパッキング要素の各パッキング要素は、Ｍ個のスキャン出力の或るスキャン出力及びｋ個の位相シフトされたスキャンクロックに応答してｋ個のスロースキャン出力を生成する。
【０００５】
また、一実施例が、処理ユニット、処理ユニットに結合される複数の論理回路、及びテスト回路を含むコンピューティングデバイスを提供する。テスト回路は、複数の論理回路の少なくとも一つの論理回路に結合される。テスト回路は、スキャンクロックにより駆動されるスキャン圧縮アーキテクチャを含み、整数であるＭ個のスキャン出力を生成する。クロック分周器が、整数であるｋ個の位相シフトされたスキャンクロックを生成するために、スキャンクロックをｋで分周するように構成される。パッキングロジックが、スキャン圧縮アーキテクチャに結合され、Ｍ個のスキャン出力及びｋ個の位相シフトされたスキャンクロックに応答してｋＭ個のスロースキャン出力を生成する。パッキングロジックはＭ個のパッキング要素を更に含み、Ｍ個のパッキング要素の各パッキング要素は、Ｍ個のスキャン出力の或るスキャン出力を受け取る。各パッキング要素はｋ個のフリップフロップを含み、パッキング要素におけるｋ個のフリップフロップの各フリップフロップは、Ｍ個のスキャン出力の或るスキャン出力を受け取る。各フリップフロップは、各フリップフロップがスキャン出力及び位相シフトされたスキャンクロックに応答してｋＭ個のスロースキャン出力の或るスロースキャン出力を生成するように、ｋ個の位相シフトされたスキャンクロックの或る位相シフトされたスキャンクロックを受け取る。
【図面の簡単な説明】
【０００６】
【図１】集積回路（ＩＣ）をテストするための回路の概略である。
【０００７】
【図２】一実施例に従った、集積回路（ＩＣ）をテストするための回路の概略である。
【０００８】
【図３】一実施例に従ったパッキングロジックの概略である。
【０００９】
【図４Ａ】一実施例に従ったクロック分周器のタイミング図である。
【００１０】
【図４Ｂ】一実施例に従ったパッキングロジックの概略である。
【００１１】
【図５】一実施例に従ったパッキングロジックのタイミング図である。
【００１２】
【図６】一実施例に従ったコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１３】
図１は、集積回路（ＩＣ）をテストするための回路１００の概略である。回路１００は、ＩＯ（入力／出力）回路１０４、伸長器（decompressor）１０８、スキャンチェーン１１２、スキャンクロック１２８、圧縮器１１８、内部コンパレータ１２２、及び状態レジスタ１２６を含む。ＩＯ回路１０４は、テスター（図１には図示せず）から、整数であるＮ個のデータ入力１０２を受け取る。テスターの例には、超低コストテスター（ＶＬＣＴ）及びハイエンドテスターが含まれる。ＩＯ回路１０４は伸長器１０８に結合される。伸長器１０８はスキャンチェーン１１２に結合される。スキャンチェーン１１２の各スキャンチェーンは、図１のスキャンセル１１４などのスキャンセルを含む。スキャンチェーン１１２は、スキャンクロック１２８により駆動される。圧縮器１１８はスキャンチェーン１１２に結合される。ＩＯ回路１０４、伸長器１０８、スキャンチェーン１１２、及び圧縮器１１８は共に、スキャン圧縮アーキテクチャ１０５を形成する。圧縮器１１８は内部コンパレータ１２２に結合される。内部コンパレータ１２２は、予期されるスキャン応答入力１２４をテスターから受け取る。状態レジスタ１２６は内部コンパレータ１２２に結合される。
【００１４】
回路１００のオペレーションにおいて、ＩＯ回路１０４は、テスターからＮ個のデータ入力１０２を受け取り、Ｎ個のスキャン入力１０６を生成する。伸長器１０８は、Ｎ個のスキャン入力１０６を受け取り、Ｎ個のスキャン入力１０６に応答してコアスキャン入力１１０を生成する。コアスキャン入力１１０は、スキャンチェーン１１２に提供される。スキャンセルの各スキャンセル１１４は、スキャンクロック１２８の周波数でコアスキャン入力１１０の或るコアスキャン入力をシフトする。スキャンチェーン１１２は、スキャンチェーン１１２により受信されたコアスキャン入力１１０に応答して、コアスキャン出力１１６を生成する。圧縮器１１８は、コアスキャン出力１１６を受け取り、コアスキャン出力１１６に応答して、整数であるＭ個のスキャン出力１２０を生成する。内部コンパレータ１２２は、圧縮器１１８からＭ個のスキャン出力１２０を受け取る。内部コンパレータ１２２はまた、予期されるスキャン応答入力１２４をテスターから受け取る。内部コンパレータ１２２は、テスト結果１２５を生成するために、Ｍ個のスキャン出力１２０及び予期されるスキャン応答入力１２４を比較するように構成される。テスト結果１２５は状態レジスタ１２６にストアされる。状態レジスタ１２６は、テスト結果を一つ又は複数のビットの形式でストアすることができる。少なくとも一つの例において、状態レジスタ１２６は、一つ又は複数のフリップフロップ（Ｄフリップフロップなど）又はラッチを含む。各テストサイクルにおいて、テスターはビットのセットを生成し、これらがＮ個のデータ入力１０２としてスキャン圧縮アーキテクチャ１０５に提供され、複数のテストサイクルが或るテストパターンを構成する。各テストサイクルにおいて生成されたテスト結果１２５は、状態レジスタ１２６にストアされ、各テストパターンの終わりに分析される。
【００１５】
幾つかの状況において、内部コンパレータ１２２はまた、未知の値（「０」又は「１」）を受け取り、これらはマスクされたビットと称される。Ｍ個のスキャン出力１２０における値が、マスクされたビットを含むような状況において、それは、内部コンパレータ１２２による予期されたスキャン応答入力１２４との比較から排除される。内部コンパレータ１２２は、テストされている集積回路の性質（欠陥あり／欠陥なし）を確認するための比較のため、通常ロジック「１」ビット及びロジック「０」ビットを比較し続ける。しかし、内部コンパレータ１２２の利用は、各テストサイクルの終わりのテスト結果の分析を阻害し、回路１００におけるテスト結果は、テストパターンの終わりに分析される。また、未知の値は、Ｍ個のスキャン出力１２０においてマスクされる必要があり、これらは、スキャン出力毎に付加的なオーバーヘッドを付加する。
【００１６】
図２は、一実施例に従った、集積回路（ＩＣ）をテストするための回路２００の概略である。回路２００は、第１のＩＯ回路２０４、伸長器２０８、スキャンチェーン２１２、圧縮器２１８、パッキングロジック２２２、第２のＩＯ回路２２６、スキャンクロック２３０、及びクロック分周器２３２を含む。ＩＯ回路２０４は、テスター（図２には図示せず）から、整数であるＮ個のデータ入力２０２を受け取る。テスターの例には、超低コストテスター（ＶＬＣＴ）及びハイエンドテスターが含まれる。ＩＯ回路２０４は伸長器２０８に結合される。伸長器２０８はスキャンチェーン２１２に結合される。スキャンチェーン２１２の各スキャンチェーンは、スキャンセル２１４などのスキャンセルを含む。スキャンチェーン２１２はスキャンクロック２３０により駆動される。圧縮器２１８はスキャンチェーン２１２に結合される。ＩＯ回路２０４、伸長器２０８、スキャンチェーン２１２、及び圧縮器２１８は共に、スキャン圧縮アーキテクチャ２０５を形成する。圧縮器２１８はパッキングロジック２２２に結合される。パッキングロジック２２２はクロック分周器２３２から信号を受け取る。パッキングロジック２２２はＩＯ回路２２６に結合される。
【００１７】
回路２００のオペレーションにおいて、ＩＯ回路２０４は、テスターからＮ個のデータ入力２０２を受け取り、Ｎ個のスキャン入力２０６を生成する。伸長器２０８は、Ｎ個のスキャン入力２０６を受け取り、Ｎ個のスキャン入力２０６に応答してコアスキャン入力２１０を生成する。コアスキャン入力２１０は、スキャンチェーン２１２に提供される。スキャンチェーン２１２はスキャンクロック２３０により駆動される。スキャンセルの各スキャンセル２１４は、スキャンクロック２３０の周波数でコアスキャン入力２１０の或るコアスキャン入力をシフトする。スキャンチェーン２１２は、スキャンチェーン２１２により受信されたコアスキャン入力２１０に応答して、コアスキャン出力２１６を生成する。圧縮器２１８は、コアスキャン出力２１６を受け取り、コアスキャン出力２１６に応答して、整数であるＭ個のスキャン出力２２０を生成する。一実施例において、ＭはＮに等しい。クロック分周器２３２は、整数であるｋ個の位相シフトされたスキャンクロックを生成するために、スキャンクロック２３０をｋで分周するように構成される。例えば、スキャンクロック２３０の周波数が３０ＭＨｚであり、ｋが３に等しいとき、クロック分周器は、各々１０ＭＨｚの３つの位相シフトされたスキャンクロックを生成する。一実施例において、スキャンクロックにおける位相シフトは、３６００／ｋなど、ｋの関数である。一実施例において、スキャンクロックにおける位相シフトは０度であり、そのため、生成されたスキャンクロックは同じ位相にある。クロックにおける位相シフトは、ユーザー及び回路２００における配線接続により事前に定義される。少なくとも一つの例において、クロックは、４５、９０、又は１８０度位相シフトされる。
【００１８】
パッキングロジック２２２は、スキャン圧縮アーキテクチャ２０５に結合され、Ｍ個のスキャン出力２２０及びｋ個の位相シフトされたスキャンクロックに応答してｋＭ個のスロースキャン出力２２４を生成する。パッキングロジック２２２の特徴及びオペレーションが、図３に関連して更に説明される。パッキングロジック２２２はＩＯ回路２２６に結合される。ＩＯ回路２２６は、ｋＭ個のスロースキャン出力２２４に応答してｋＭ個のデータ出力２２８を生成するように構成される。Ｎ個のデータ入力２０２、Ｎ個のスキャン入力２０６、及びＭ個のスキャン出力２２０は、ｋＭ個のスロースキャン出力２２４及びｋＭ個のデータ出力２２８に比べて、高い周波数で動作する。従って、回路２００は、Ｍ個のスキャン出力２２０が一層高いレートで受信されるときでも、データを失うことなく、ｋＭ個のスロースキャン出力２２４を扱う問題に対処し、また、それにより、集積回路をテストするための時間を節約する。各テストサイクルにおいて、テスターはビットのセットを生成し、これらはＮ個のデータ入力２０２としてスキャン圧縮アーキテクチャ２０５に提供され、複数のテストサイクルが或るテストパターンを構成する。パッキングロジック２２２は、各テストサイクルの終わりでのテスト結果の分析を可能とする。また、パッキングロジック２２２が、マスクされたビットと称される未知の値を受け取る（「０」又は「１」）という状況において、これらのマスクされたビットはレギュラービットとして扱われ、回路２００に一層のオーバーヘッドを付加しない。
【００１９】
図３は、一実施例に従ったパッキングロジック３００の概略である。パッキングロジック３００は、接続及びオペレーションにおいて、回路２００におけるパッキングロジック２２２と同様である。パッキングロジック３００は、パッキング要素３０５Ａ、３０５Ｂ、及び３０５Ｍなど、Ｍ個のパッキング要素（ここで、Ｍは整数である）を含む。パッキング要素３０５Ｍは、Ｍ個のパッキング要素のＭ番目のパッキング要素である。Ｍパッキング要素の各々は、Ｍ個のスキャン出力３２０のそれぞれ一つを受信するように構成される。例えば、パッキング要素３０５Ａはスキャン出力３２０Ａを受け取り、パッキング要素３０５Ｂはスキャン出力３２０Ｂを受け取り、パッキング要素３０５Ｍはスキャン出力３２０Ｍを受け取る。スキャン出力３２０Ｍは、Ｍ個のスキャン出力３２０のＭ番目のスキャン出力である。各パッキング要素は、整数であるｋ個のフリップフロップを含む。例えば、パッキング要素３０５Ａは、フリップフロップ３０２ａ、３０２ｂ、及び３０２ｋを含む。フリップフロップ３０２ｋは、ｋ個のフリップフロップのｋ番目のフリップフロップである。同様に、パッキング要素３０５Ｍは、フリップフロップ３０６ａ、３０６ｂ、及び３０６ｋを含む。一実施例において、フリップフロップは、ラッチ、フリップフロップの組み合わせ、又はレジスタである。パッキングロジック３００は、図２のクロック分周器２３２と同様に、クロック分周器（図３には図示せず）からｋ個の位相シフトされたスキャンクロックを受信するように構成される。パッキングロジック３００は、スキャンクロック１（３１５ａ）、スキャンクロック２（３１５ｂ）、及びスキャンクロックｋ（３１５ｋ）など、ｋ個の位相シフトされたスキャンクロックを受け取る。スキャンクロックｋは、ｋ個の位相シフトされたスキャンクロックのｋ番目のスキャンクロックである。一実施例において、スキャンクロックにおける位相シフトは、３６００／ｋなど、ｋの関数である。一実施例において、スキャンクロックにおける位相シフトは０度であり、そのため、生成されたスキャンクロックは同じ位相にある。クロックにおける位相シフトは、ユーザー及びパッキングロジック３００における配線接続により事前に定義される。少なくとも一つの例において、クロックは、４５、９０、又は１８０度位相シフトされる。ｋ個のフリップフロップの各々が、ｋ個の位相シフトされたスキャンクロックのそれぞれ一つを受信するように構成される。例えば、フリップフロップ３０２ａ、３０４ａ、及び３０６ａは、スキャンクロック１（３１５ａ）を受け取る。同様に、フリップフロップ３０２ｂ、３０４ｂ、及び３０６ｂは、スキャンクロック２（３１５ｂ）を受け取り、フリップフロップ３０６ａ、３０６ｂ、及び３０６ｋは、スキャンクロックｋ（３１５ｋ）を受け取る。各フリップフロップが、スキャン出力及び位相シフトされたスキャンクロックに応答してスロースキャン出力を生成するように構成される。従って、各パッキング要素が、スキャン出力及びｋ個の位相シフトされたスキャンクロックに応答してｋ個のスロースキャン出力を生成する。例えば、パッキング要素３０５Ａは、スロースキャン出力３２４Ａ１、３２４Ａ２、及び３２４Ａｋを生成し、ここで、３２４Ａｋはｋ番目のスロースキャン出力である。同様に、パッキング要素３０５Ｂは、スロースキャン出力３２４Ｂ１、３２４Ｂ２、及び３２４Ｂｋを生成し、ここで、３２４Ｂｋはｋ番目のスロースキャン出力である。パッキングロジック３００は、Ｍ個のスキャン出力３２０に応答してｋＭ個のスロースキャン出力３２４を生成する。一実施例において、パッキングロジック３００は、２つのスキャン出力を受け取り、各々２つのフリップフロップを備える２つのパッキング要素を含む。従って、パッキングロジックは４つのスロースキャン出力を生成する。パッキングロジックのオペレーションは、図４Ａ及び図４Ｂに関連して更に説明される。
【００２０】
図４Ａは、一実施例に従ったクロック分周器のタイミング図である。図４Ａは、クロック分周器２３２（図２に示される）などのクロック分周器が、スキャンクロック（スキャンクロック２３０など）を受け取り、整数であるｋ個の位相シフトされたスキャンクロックを生成するときのタイミング図を示す。少なくとも一つの例において、図４Ａは、ｋが３に等しいときの、クロック分周器２３２からの位相シフトされたスキャンクロックを示す。クロック分周器は、ｋ個の位相シフトされたスキャンクロックを生成するために、スキャンクロックをｋで分周するように構成される。例えば、スキャンクロックの周波数が３０ＭＨｚである場合、クロック分周器は、各々１０ＭＨｚの３つの位相シフトされたスキャンクロックを生成し得る。スキャンクロック４３０はクロック分周器２３２により受信される。クロック分周器は、位相シフトされたスキャンクロック１（４１５ａ）、スキャンクロック２（４１５ｂ）、及びスキャンクロック３（４１５ｃ）を生成する。各スキャンクロックは１２０度位相シフトされる。例えば、スキャンクロック２（４１５ｂ）は、スキャンクロック１（４１５ａ）に対して１２０度位相シフトされ、同様に、スキャンクロック３（４１５ｃ）は、スキャンクロック２（４１５ｂ）に対して１２０度位相シフトされる。一実施例において、スキャンクロックにおける位相シフトは、３６００／ｋなど、ｋの関数である。一実施例において、スキャンクロックにおける位相シフトは０度であり、そのため、生成されたスキャンクロックは同じ位相にある。クロックにおける位相シフトは、ユーザー及びクロック分周器２３２における配線接続により事前に定義される。少なくとも一つの例において、クロックは、４５、９０、又は１８０度位相シフトされる。
【００２１】
図４Ｂは、一実施例に従ったパッキングロジック４００の概略である。パッキングロジック４００は、接続及びオペレーションにおいてパッキングロジック３００と同様である。図４Ｂのパッキングロジックの機能は、ｋが３に等しくＭが４に等しいときのものである。パッキングロジック４００は、４つのパッキング要素４０５Ａ、４０５Ｂ、４０５Ｃ、及び４０５Ｄを含む。パッキングロジック４００は、４つのスキャン出力４２０Ａ、４２０Ｂ、４２０Ｃ、及び４２０Ｄを受け取る。４つのパッキング要素の各々は、４つのスキャン出力４２０のそれぞれ一つを受信するように構成される。例えば、パッキング要素４０５Ａはスキャン出力４２０Ａを受け取り、パッキング要素４０５Ｂはスキャン出力４２０Ｂを受け取り、パッキング要素４０５Ｄはスキャン出力４２０Ｄを受け取る。各パッキング要素は３つのフリップフロップを含む。例えば、パッキング要素４０５Ａは、フリップフロップ４０２ａ、４０２ｂ、及び４０２ｃを含む。同様に、パッキング要素４０５Ｃは、フリップフロップ４０６ａ、４０６ｂ、及び４０６ｃを含む。一実施例において、フリップフロップは、ラッチ、フリップフロップの組み合わせ、又はレジスタである。パッキングロジック４００は、図２のクロック分周器２３２と同様に、クロック分周器（図４Ｂには図示せず）から３つの位相シフトされたスキャンクロックを受信するように構成される。パッキングロジック４００は、図４Ａの、位相シフトされたスキャンクロック１（４１５ａ）、スキャンクロック２（４１５ｂ）、及びスキャンクロック３（４１５ｃ）を受け取る。一実施例において、スキャンクロックにおける位相シフトは、３６００／ｋなど、ｋの関数である。一実施例において、スキャンクロックにおける位相シフトは０度であり、そのため、生成されたスキャンクロックは同じ位相にある。クロックにおける位相シフトは、ユーザー及びパッキングロジック４００における配線接続により事前に定義される。少なくとも一つの例において、クロックは４５、９０、又は１８０度位相シフトされる。各フリップフロップは、位相シフトされたスキャンクロックを受信するように構成される。例えば、フリップフロップ４０２ａ、４０４ａ、４０６ａ、及び４０８ａは、スキャンクロック１（４１５ａ）を受け取る。同様に、フリップフロップ４０２ｂ、４０４ｂ、４０６ｂ、及び４０８ｂは、スキャンクロック２（４１５ｂ）を受け取り、フリップフロップ４０２ｃ、４０４ｃ、４０６ｃ、及び４０８ｃは、スキャンクロック３（４１５ｃ）を受け取る。各フリップフロップは、スキャン出力及び位相シフトされたスキャンクロックに応答してスロースキャン出力を生成するように構成される。従って、各パッキング要素が、スキャン出力及び位相シフトされたスキャンクロックに応答して３つのスロースキャン出力を生成する。例えば、パッキング要素４０５Ａは、スロースキャン出力４２４Ａ１、４２４Ａ２、及び４２４Ａ３を生成する。同様に、パッキング要素４０５Ｂは、スロースキャン出力４２４Ｂ１、４２４Ｂ２、及び４２４Ｂ３を生成する。パッキングロジック４００は、４つのスキャン出力４２０に応答して１２（４×３）個のスロースキャン出力４２���を生成する。
【００２２】
図５は、一実施例に従ったパッキングロジックのタイミング図５００である。タイミング図５００は、図４Ａ、図４Ｂ、及びパッキングロジック４００を参照して説明される。図５は、ｋが３に等しくＭが４に等しいときの、位相シフトされたスキャンクロック及びスロースキャン出力を示す。図５は、クロック分周器２３２（図２に示す）などのクロック分周器が、スキャンクロック４３０を受け取り、位相シフトされたスキャンクロック１（４１５ａ）、スキャンクロック２（４１５ｂ）、及びスキャンクロック３（４１５ｃ）を生成するときの、タイミング図５００を示す。スキャンクロックの生成は、図４Ａに関連して本明細書において上述した。パッキング要素４０５Ａはスキャン出力４２０Ａを受け取る。タイミング図５００は、パッキングロジック４００（図４Ｂに示す）におけるパッキング要素４０５Ａなどのパッキング要素により生成される３つのスロースキャン出力を示す。フリップフロップ４０２ａは、スキャンクロック１（４１５ａ）及びスキャン出力４２０Ａを受け取り、スロースキャン出力１（４２４Ａ１）を生成する。同様に、フリップフロップ４０２ｂは、スキャンクロック２（４１５ｂ）及びスキャン出力４２０Ａに応答して、スロースキャン出力２（４２４Ａ２）を生成する。また、フリップフロップ４０２ｃは、スキャンクロック３（４１５ｃ）及びスキャン出力４２０Ａに応答して、スロースキャン出力（４２４Ａ３）を生成する。タイミング図５００は更に、一つのスキャン出力に対して、パッキング要素が３つのスロースキャン出力を生成することを示す。スキャン出力４２０Ａは、スキャンクロック４３０の周波数でパッキングロジック４００により受け取られるが、スロースキャン出力（４２４Ａ１〜４２４Ａ３）は、スキャンクロック４３０の周波数の三分の一である周波数で生成される。従って、各スロースキャン出力が、スキャンクロック４３０の３つのパルスのためのパッキングロジック４００の出力として利用可能であり、そのため、パッキングロジック４００は、クロックサイクルの各パルスの終わりでのテスト結果の分析を可能とする。クロックサイクルの各パルスの終わりでのテスト結果は、スキャンチェーン失敗の診断を可能にする。従って、パッキングロジック４００は、４つのスキャン出力が一層高いレートで受信されるときでも、データを失うことなく、１２個のスロースキャン出力を扱う問題に対処し、それにより、集積回路をテストするための時間を節約する。
【００２３】
図６は、一実施例のコンピューティングデバイス６００を示す。コンピューティングデバイス６００は、サーバーファーム、ハードドライブを備えたコンピューティングデバイス、ビデオレコーダ、ブルートゥースデバイス、リモートコントロール、キーボード、モバイル通信デバイス（携帯電話又はパーソナルデジタルアシスタントなど）、パーソナルコンピュータ、又は任意の他のタイプの電子的システムであるか、又はそれらに組み込まれる集積回路である。
【００２４】
幾つかの例において、コンピューティングデバイス６００は、中央処理装置（ＣＰＵ）などの処理ユニット６１２を含む、マイクロコントローラ、マイクロプロセッサ、又はシステムオンチップ（ＳｏＣ）であり得る。例えば、処理ユニット６１２は、ＣＩＳＣタイプ（complex instruction set computer）ＣＰＵ、ＲＩＳＣタイプ（reduced instruction set computer）ＣＰＵ、又はデジタルシグナルプロセッサ（ＤＳＰ）であり得る。テスター６１０が、コンピューティングデバイス６００に結合される。テスター６１０は、ソフトウェアアプリケーション６３０を実行するコンピューティングデバイス６００のテスト及びデバッグをサポートするロジックを含む。例えば、テスター６１０は、コンピューティングデバイス６００の欠陥のある又は利用不能な構成要素をエミュレートするために有用である。これにより、構成要素がコンピューティングデバイス６００上に実際に存在するとした場合に、その構成要素が種々の状況においてどのように機能し得るか（例えば、その構成要素がソフトウェアアプリケーション６３０などとどのように相互作用し得るか）の検証が可能となる。このようにして、ソフトウェアアプリケーション６３０は、製造後オペレーションに類似する環境においてデバッグされ得る。
【００２５】
少なくとも一つの例において、処理ユニット６１２は、テスター６１０から頻繁にアクセスされる情報をストア及び使用する、キャッシュメモリ及びロジックを含み、そのため、処理ユニット６１２は、コンピューティングデバイス６００の全体の機能性を指示する責任を負う。コンピューティングデバイス６００は論理回路６１５を含む。論理回路６１５の少なくとも一つがテスト回路６２０に結合される。テスト回路６２０は、接続及びオペレーションにおいて回路２００に類似する。テスト回路は、テスター６１０に関連して動作する。テスト回路６２０は、Ｍ個のスキャン出力が一層高いレートで受信されるときでも、データを失うことなくｋＭ個のスロースキャン出力を扱う問題に対処し、それにより、集積回路をテストするための時間を節約し、ここで、ｋ、Ｍ、及びＮは整数である。各テストサイクルにおいて、テスター６１０はビットのセットを生成し、これらは、テスト回路６２０へのＮ個のデータ入力として提供され、複数のテストサイクルが或るテストパターンを構成する。テスト回路６２０は、各テストサイクルの終わりでのテスト結果の分析を可能とする。また、テスト回路６２０が、マスクされたビットと称される未知の値（「０」又は「１」）を受け取るという状況において、テスト回路６２０は、それらをレギュラービットとして扱い、コンピューティングデバイス６００に更なるオーバーヘッドを付加しない。
【００２６】
本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得、多くの他の実施例が可能である。
【図１】
0006521983.tif 000002
【図２】
0006521983.tif 000003
【図３】
0006521983.tif 000004
【図４Ａ】
0006521983.tif 000005
【図４Ｂ】
0006521983.tif 000006
【図５】
0006521983.tif 000007
【図６】
0006521983.tif 000008