(57)【特許請求の範囲】
【請求項１】
回路であって、
Ｎ個のスキャン入力を第１の周波数で受信するように構成され、Ｍ個の疑似スキャン入力を第２の周波数で生成するように構成される入力コンバータであって、ＭとＮとが整数である、前記入力コンバータと、
前記入力コンバータに結合され、前記Ｍ個の疑似スキャン入力に応答してＰ個の疑似スキャン出力を生成するように構成される、スキャン圧縮アーキテクチャと、
前記スキャン圧縮アーキテクチャに結合され、前記Ｐ個の疑似スキャン出力に応答してＱ個のスキャン出力を生成するように構成される出力コンバータであって、Ｐ及びＱが整数であり、前記Ｐ個の疑似スキャン出力を前記第２の周波数で受信し、前記Ｑ個のスキャン出力を前記第１の周波数で生成する、前記出力コンバータと、
を含み、
前記第１の周波数と前記第２の周波数との比が、ＭとＮとの比とＰとＱとの比とに等しい、回路。
【請求項２】
請求項１に記載の回路であって、
スキャンクロックを受信し、内部クロックを生成するように構成されるモニタを更に含み、
前記スキャン圧縮アーキテクチャが、前記第２の周波数で前記内部クロックによって駆動されるように構成される、回路。
【請求項３】
請求項２に記載の回路であって、
前記モニタが前記入力コンバータからステータス信号を受信するように構成され、前記ステータス信号が、全てのスキャンクロックの初めに前記入力コンバータにストアされるスキャン入力の数に関して前記モニタを更新するように構成される、回路。
【請求項４】
請求項２に記載の回路であって、
前記モニタが、前記スキャンクロックの初めに、前記入力コンバータにストアされたスキャン入力の数がＭより少ないときに、前記スキャン圧縮アーキテクチャへの前記内部クロックを中断するように構成される、回路。
【請求項５】
請求項２に記載の回路であって、
前記出力コンバータが前記モニタからイネーブル信号を受信するように構成され、前記出力コンバータにおいて前記疑似スキャン出力が受信されないときに、前記イネーブル信号が、前記出力コンバータにおける前記疑似スキャン出力のストレージをディセーブルするように構成される、回路。
【請求項６】
請求項１に記載の回路であって、
前記入力コンバータが、スキャンクロック毎に前記Ｎ個のスキャン入力を受信するように構成され、前記第２の周波数で前記Ｍ個の疑似スキャン入力を生成するように構成される、回路。
【請求項７】
請求項１に記載の回路であって、
前記入力コンバータと前記出力コンバータとが、それぞれ前記Ｎ個のスキャン入力と前記Ｐ個の疑似スキャン出力とをストアするように構成される、回路。
【請求項８】
請求項１に記載の回路であって、
前記スキャン圧縮アーキテクチャが、
前記入力コンバータに結合され、前記Ｍ個の疑似スキャン入力を受信するように構成される、デコンプレッサと、
前記デコンプレッサに結合され、前記Ｐ個の疑似スキャン出力を生成するように構成される、コンプレッサと、
前記デコンプレッサと前記コンプレッサとの間に結合される複数のスキャンチェーンと、
を更に含み、
前記複数のスキャンチェーンの各スキャンチェーンが複数のスキャンセルを含む、回路。
【請求項９】
請求項８に記載の回路であって、
前記複数のスキャンチェーンが内部クロックによって駆動される、回路。
【請求項１０】
請求項８に記載の回路であって、
前記デコンプレッサが、前記Ｍ個の疑似スキャン入力に応答して複数のコアスキャン入力を生成するように構成される、回路。
【請求項１１】
請求項８に記載の回路であって、
前記複数のスキャンチェーンが複数のコアスキャン入力を受信するように構成され、前記複数のスキャンセルの各スキャンセルが、前記第２の周波数で前記複数のコアスキャン入力の或るコアスキャン入力をシフトするように構成される、回路。
【請求項１２】
請求項８に記載の回路であって、
前記複数のスキャンチェーンが、複数のコアスキャン入力に応答して複数のコアスキャン出力を生成するように構成される、回路。
【請求項１３】
請求項８に記載の回路であって、
前記コンプレッサが、複数のコアスキャン出力に応答して前記Ｐ個の疑似スキャン出力を生成するように構成される、回路。
【請求項１４】
請求項１に記載の回路であって、
前記入力コンバータのストレージ深度がＫビットであり、Ｋが整数であり、Ｋが２Ｎより大きいか又は２Ｎに等しく、
前記出力コンバータのストレージ深度がＬビットであり、Ｌが整数であり、Ｌが２Ｐより大きいか又は２Ｐに等しい、回路。
【請求項１５】
テストする方法であって、
入力コンバータにおいて第１の周波数でＮ個のスキャン入力を受信することと、
前記入力コンバータにより第２の周波数でＮ個のスキャン入力からＭ個の疑似スキャン入力を生成することと、
スキャン圧縮アーキテクチャにより前記第２の周波数でＭ個の疑似スキャン入力からＰ個の疑似スキャン出力を生成することと、
出力コンバータにより前記第１の周波数でＭ個の疑似スキャン出力からＱ個のスキャン出力を生成することと、
を含み、
ＭがＮより小さいときに前記入力コンバータがＭ個の疑似スキャン出力を生成せず、前記出力コンバータにストアされた疑似スキャン出力の数がＱよりも大きか又は等しいときに前記出力コンバータがＱ個のスキャン出力を生成する、方法。
【請求項１６】
請求項１５に記載の方法であって、
前記入力コンバータにおいてスキャンクロック毎に前記Ｎ個のスキャン入力を受信することと、
前記第２の周波数で前記Ｍ個の疑似スキャン入力を生成することと、
を更に含む方法。
【請求項１７】
請求項１５に記載の方法であって、
スキャン圧縮アーキテクチャによりＭ個の疑似スキャン入力から前記第２の周波数でＰ個の疑似スキャン出力を生成することを更に含み、
前記スキャン圧縮アーキテクチャが、前記第２の周波数で内部クロックにより駆動されるように構成される、方法。
【請求項１８】
請求項１５に記載の方法であって、
スキャンクロックを受信して内部クロックを生成するように構成されるモニタにステータス信号を提供することを更に含み、
前記スキャンクロックの初めにおいて前記入力コンバータにストアされるスキャン入力の数がＭよりも少ないときに、前記モニタが、前記スキャン圧縮アーキテクチャに対する前記内部クロックを中断するように構成される、方法。
【請求項１９】
請求項１８に記載の方法であって、
前記入力コンバータにおいて前記Ｎ個のスキャン入力をストアすることを更に含み、
前記ステータス信号が、全てのスキャンクロックの初めに前記モニタを前記入力コンバータにストアされるスキャン入力の数に関して更新するように構成される、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、集積回路（ＩＣ）などの半導体デバイスのスキャンテストに関する。
【背景技術】
【０００２】
スキャンベースの技法は、機能パターンベースのテストに比べて高い故障検出率を達成するための効率の良い代案を提供する。設計サイズが増加し、高速アプリケーションを駆動するためにマルチコアＳｏＣ（システム・オン・チップ）が必須になるにつれて、非常に効率的で均衡のとれたスキャンベースの設計においても、テストデータ量及びテストアプリケーション時間は手に負えないほど多くなっている。今のところ、スキャン圧縮技法は、テストデータ量にとって、また、スキャンが挿入される設計のパターン実行中のテスト時間削減にとって、最良の技法である。スキャン圧縮アーキテクチャは、入力側でデータを復元するためのデコンプレッサと、出力側でデータを圧縮するためのコンプレッサとを含む。デコンプレッサは、スキャン入力を受け取り、それらを大量のスキャンチェーン内部に空間的に展開する。各スキャンチェーンは複数のスキャンセルを有する。より多くのスキャン入力がデコンプレッサに提供されると、展開が向上し、スキャンチェーンの数が多くなる。同様に、スキャン圧縮アーキテクチャの出力側では、スキャンチェーンは少数のスキャン出力に圧縮され、それがエイリアシング現象につながる。実際には、より多くのスキャン出力が利用可能な場合、エイリアシングは低下し、スキャン圧縮アーキテクチャはよりロバストになる。しかしながら、低価格テスタ（ＶＬＣＴ）の場合、最大８つのスキャン入力及び８つのスキャン出力がサポートされる。スキャン出力でのスキャンチェーンの観測を理解するための１つの既知のスキャン技法によれば、スキャンチェーンの最大数は１０２４（Ｎ×２（Ｍ−１））であり、この式で、Ｎはスキャン入力数、Ｍはスキャン出力数である。各スキャンチェーンが１２８個のスキャンセルを有するため、スキャンセルの総数は、１３１０７２（１２８×１０２４）である。スキャン入力及びスキャン出力の数が９の場合、スキャンチェーンの数は２３０４であり、各スキャン内のスキャンセルの数はおよそ５７となる（１２８×１０２４／２５６×９）。このように、スキャン入力及びスキャン出力の数が８から９に増えると、各スキャンチェーン内のスキャンセルの数がおよそ５０％減り、これによってテストの時間が大幅に削減される。しかしながらＶＬＣＴは、９つのスキャン入力及び９つのスキャン出力をサポートしていない。
【０００３】
ピンが５本のデバイスなどのピン制限デバイスにおいて、必要なスキャンチェーンの数は８０（５×２（５−１））となる。そのため、各スキャンチェーンで必要なスキャンセルの数は、およそ１６３８となる（１２８×１０２４／８０）。したがって、テストタイミングは大幅に増加する。また、ＶＬＣＴをピン制限デバイスに適合させるために、シリアライザ手法が用いられる。この手法において、スキャン入力当たり少なくとも２つのシフトレジスタが用いられる。したがって、５ピンデバイスのＶＬＣＴをサポートするためには、入力側で合計１０個のシフトレジスタが用いられる。更に、データは２つのシフトレジスタを介してシフトされるため、スキャンセル内でのデータシフトの周波数が半分に減少し、これによってテストタイミングは増加する。また、８つの入力のみが必要であるため、シフトレジスタからのこれらのスキャン入力のうちの２つは「関係のない（do not care）」入力とみなされ得る。シフトレジスタは、スキャンシステム上の追加のオーバヘッドである。最適テストタイミングが９本のピンで達成される例示的状況において、シリアライザ手法は、５ピンデバイスに対して９ピンはサポートできない。したがって、Ａピンが最適テストタイミングを提供し、デバイスがＢピンを有する場合、ＡがＢの整数倍でないとき、シリアライザ手法はＡ／Ｂをサポートしない。
【発明の概要】
【０００４】
説明される例において、集積回路をテストするために、回路が入力コンバータを含み、入力コンバータは、Ｎ個のスキャン入力を受信し、Ｍ個の疑似スキャン入力を生成し、ここでＭ及びＮは整数である。スキャン圧縮アーキテクチャが、入力コンバータに結合され、Ｍ個の疑似スキャン入力に応答してＰ個の疑似スキャン出力を生成する。出力コンバータが、スキャン圧縮アーキテクチャに結合され、Ｐ個の疑似スキャン出力に応答してＱ個のスキャン出力を生成し、ここでＰ及びＱは整数である。入力コンバータは、第１の周波数でＮ個のスキャン入力を受信し、第２の周波数でＭ個の疑似スキャン入力を生成する。出力コンバータは、第２の周波数でＰ個の疑似スキャン出力を受信し、第１の周波数でＱ個のスキャン出力を生成する。
【０００５】
集積回路をテストする例示的方法において、Ｎ個のスキャン入力が第１の周波数で受信され、Ｍ個の疑似スキャン入力がＮ個のスキャン入力から第２の周波数で生成される。Ｐ個の疑似スキャン出力がＭ個の疑似スキャン入力から第２の周波数で生成され、Ｑ個のスキャン出力がＭ個の疑似スキャン出力から第１の周波数で生成される。第１の周波数と第２の周波数との比が、ＭとＮとの比に、及びＰとＱとの比に等しく、ここでＮ、Ｍ、Ｐ、及びＱは整数である。
【０００６】
別の説明される例において、コンピューティングデバイスが、マスタデバイスと、マスタデバイスに結合されるスレーブデバイスとを含む。マスタデバイスはクロックサイクル当たりＮビットで動作し、スレーブデバイスはクロックサイクル当たりＭビットで動作する。コンバータが、マスタデバイス及びスレーブデバイスに結合される。書き込み動作の間、コンバータは、クロックサイクル毎にマスタデバイスからＮビットを受信し、マスタデバイスから受信したビットをストアする。コンバータは、コンバータにストアされるビット数がＭに等しいか又はＭより多いとき、Ｍビットをスレーブデバイスに提供する。
【図面の簡単な説明】
【０００７】
【図１】集積回路（ＩＣ）をテストするための回路の概略図である。
【０００８】
【図２】スキャンクロックの機能として、集積回路（ＩＣ）をテストするための回路のパラメータの表である。
【０００９】
【図３（ａ）】集積回路（ＩＣ）をテストするための回路内のフラクショナルデータパッキング（fractional data packing）を示す。
【図３（ｂ）】ＩＣをテストするための回路内のフラクショナルデータパッキングを示す。
【００１０】
【図４】集積回路（ＩＣ）をテストするための回路のタイミング図である。
【００１１】
【図５】集積回路（ＩＣ）をテストするための回路の概略図である。
【００１２】
【図６（ａ）】集積回路（ＩＣ）をテストするための回路内のフラクショナルデータパッキングを示す。
【図６（ｂ）】ＩＣをテストするための回路内のフラクショナルデータパッキングを示す。
【００１３】
【図７】集積回路（ＩＣ）をテストするための回路のタイミング図である。
【００１４】
【図８】コンピューティングデバイスを示す。
【発明を実施するための形態】
【００１５】
図１は、集積回路（ＩＣ）をテストするための回路１００の概略図である。回路１００は入力コンバータ１０４を含む。入力コンバータ１０４はテスタ（図１には図示せず）からＮ個のスキャン入力１０２を受信し、ここでＮは整数である。いくつかのテスタの例には、低価格テスタ（ＶＬＣＴ）又はハイエンドテスタが含まれ得る。入力コンバータ１０４はＭ個の疑似スキャン入力１０６を生成し、ここでＭは整数である。一実施形態において、入力コンバータ１０４はＦＩＦＯ（先入れ先出し）バッファである。入力コンバータ１０４にスキャン圧縮アーキテクチャ１１０が結合される。スキャン圧縮アーキテクチャ１１０は、Ｍ個の疑似スキャン入力１０６を受信し、Ｍ個の疑似スキャン入力１０６に応答してＰ個の疑似スキャン出力１１６を生成する。スキャン圧縮アーキテクチャ１１０は、デコンプレッサ１０８、複数のスキャンチェーン１１２、及びコンプレッサ１１４を含む。デコンプレッサ１０８は、入力コンバータ１０４に結合され、Ｍ個の疑似スキャン入力１０６を受信する。デコンプレッサ１０８はスキャンチェーン１１２に結合される。スキャンチェーン１１２の各々は、スキャンセル１１１などの複数のスキャンセルを含む。コンプレッサ１１４はスキャンチェーン１１２に結合される。コンプレッサ１１４は、Ｐ個の疑似スキャン出力１１６を生成し、ここでＰは整数である。コンプレッサ１１４に出力コンバータ１１８が結合される。出力コンバータ１１８は、Ｐ個の疑似スキャン出力１１６を受信し、Ｑ個のスキャン出力１２０を生成し、ここでＱは整数である。一実施形態において、出力コンバータ１１８はＦＩＦＯ（先入れ先出し）バッファである。回路１００はモニタ１２２を含む。モニタ１２２は、入力コンバータ１０４からステータス信号１２４を受信し、スキャンクロック１２６も受信する。モニタ１２２は、内部クロック１２８及びイネーブル信号１３０を生成する。内部クロック１２８はスキャン圧縮アーキテクチャ１１０に提供される。出力コンバータ１１８は、モニタ１２２からイネーブル信号１３０を受信する。回路１００は１つ又は複数の追加構成要素を含み得るが、説明をシンプルにするためにここでは論じない。
【００１６】
図１の回路１００の動作において、入力コンバータ１０４は、Ｎ個のスキャン入力１０２を受信し、Ｍ個の疑似スキャン入力１０６を生成する。スキャン圧縮アーキテクチャ１１０は、Ｍ個の疑似スキャン入力１０６を受信し、Ｐ個の疑似スキャン出力１１６を生成する。デコンプレッサ１０８は、Ｍ個の疑似スキャン入力１０６を受信し、Ｍ個の疑似スキャン入力１０６に応答して複数のコアスキャン入力を生成する。コアスキャン入力はスキャンチェーン１１２に提供される。スキャンチェーン１１２の各々は、スキャンセル１１１などのスキャンセルを含む。各スキャンセル１１１は、複数のコアスキャン入力のうちの或るコアスキャン入力を、内部クロック１２８の周波数でシフトする。スキャンチェーン１１２は、スキャンチェーン１１２によって受信されるコアスキャン入力に応答して、複数のコアスキャン出力を生成する。コンプレッサ１１４は、コアスキャン出力を受信し、コアスキャン出力に応答してＰ個の疑似スキャン出力１１６を生成する。出力コンバータ１１８は、Ｐ個の疑似スキャン出力１１６を受信し、Ｑ個のスキャン出力１２０を生成する。入力コンバータ１０４は、第１の周波数でＮ個のスキャン入力１０２を受信し、第２の周波数でＭ個の疑似スキャン入力１０６を生成する。出力コンバータ１１８は、第２の周波数でＰ個の疑似スキャン出力１１６を受信し、第１の周波数でＱ個のスキャン出力１２０を生成する。第１の周波数と第２の周波数との比は、ＭとＮとの比に及びＰとＱとの比に等しい。モニタ１２２は、スキャンクロック１２６を受信し、内部クロック１２８を生成する。内部クロック１２８の周波数は第２の周波数に等しい。スキャンチェーン１１２は内部クロック１２８によって駆動される。
【００１７】
入力コンバータ１０４は、スキャンクロック１２６毎にＮ個のスキャン入力１０２を受信する。入力コンバータ１０４は、Ｎ個のスキャン入力１０２をストアするように構成され、スキャンクロックの初めに、入力コンバータ１０４にストアされたスキャン入力１０２の数がＭに等しいか又はＭより多いとき、Ｍ個の疑似スキャン入力１０６を生成する。一実施形態において、Ｎが８に等しく、Ｍが９に等しいとき、入力コンバータ１０４は第１のスキャンクロックで８個のスキャン入力１０２を受信する。８はＭよりも少ないため、入力コンバータ１０４は第１のスキャンクロックでＭ個の疑似スキャン入力１０６を生成しない。これら８個のスキャン入力１０２は、入力コンバータ１０４にストアされる。次のスキャンクロック（これは第２のスキャンクロックである）において、（ａ）入力コンバータ１０４は別の８個のスキャン入力１０２を受信し、（ｂ）第２のスキャンクロックの初めに、入力コンバータ１０４にストアされたスキャン入力１０２の総数がＭより多い。したがって、入力コンバータ１０４は、第２のスキャンクロックで９個の疑似スキャン入力１０６を生成し、入力コンバータ１０４にストアされた残りのスキャン入力の数は７（１６−９＝７）である。このプロセスはフラクショナルデータパッキングと呼ばれ、図２及び図３を用いて後で更に説明する。モニタ１２２は、入力コンバータ１０４からステータス信号１２４を受信する。ステータス信号１２４は、全てのスキャンクロックの初めに入力コンバータ１０４にストアされるスキャン入力の数に関してモニタ１２２を更新する。例えば、上記で説明した実施形態において、ステータス信号１２４は、第１のスキャンクロックの初めに８個のスキャン入力が入力コンバータ１０４にストアされ、第２のスキャンクロックの初めに１６個のスキャン入力が入力コンバータ１０４にストアされる旨、モニタ１２２を更新する。モニタ１２２は、スキャンクロックの初めに、入力コンバータ１０４にストアされるスキャン入力の数がＭより少ないとき、スキャン圧縮アーキテクチャ１１０への内部クロック１２８を中断するように構成される。そのため、スキャンクロックの初めに入力コンバータ１０４にストアされるスキャン入力の数がＭより少ないとき、スキャンセル内のコアスキャン入力のシフトは停止される。
【００１８】
出力コンバータ１１８は、第１のスキャンクロック以外のスキャンクロック１２６毎にＱ個のスキャン出力を生成する。一実施形態において、Ｎが８に等しく、Ｍが９に等しいとき、入力コンバータ１０４は第１のスキャンクロックで８個のスキャン入力１０２を受信する。８はＭより少ないため、入力コンバータ１０４は第１のスキャンクロックでＭ個の疑似スキャン入力１０６を生成しない。これらの８個のスキャン入力１０２は入力コンバータ１０４にストアされ、出力コンバータ１１８は第１のスキャンクロックでいかなる入力も受信しない。次のスキャンクロック（これは第２のスキャンクロックである）で、入力コンバータ１０４は別の８個のスキャン入力１０２を受信し、入力コンバータ１０４にストアされるスキャン入力の総数はＭより多い。そのため、入力コンバータ１０４は、第２のスキャンクロックで９個の疑似スキャン入力１０６を生成する。Ｐが９に等しく、Ｑが８に等しいとき、スキャン圧縮アーキテクチャ１１０は、９個の疑似スキャン入力１０６を受信し、９個の疑似スキャン出力１１６を生成する。出力コンバータ１１８は、９個の疑似スキャン出力１１６を受信し、８個のスキャン出力１２０を生成する。１つの疑似スキャン出力が出力コンバータ１１８にストアされる。第３のスキャンクロックで、出力コンバータ１１８は、９個の疑似スキャン出力１１６を受信し、８個のスキャン出力１２０を生成する。次いで、合計２個の疑似スキャン出力が出力コンバータ１１８にストアされる。同様に、９回のスキャンクロック後、合計８個の疑似スキャン出力が出力コンバータ１１８にストアされる。第１０のスキャンクロックで、出力コンバータ１１８は８個のスキャン出力１２０を生成し、出力コンバータ１１８にストアされる疑似スキャン出力の数はゼロである。出力コンバータ１１８は、モニタ１２２からイネーブル信号１３０を受信する。イネーブル信号１３０は、スキャンクロックの初めに、出力コンバータ１１８にストアされる疑似スキャン出力の数がＱより少ないとき、出力コンバータ１１８における疑似スキャン出力のストレージをディセーブルするように構成される。一実施形態において、イネーブル信号１３０は、出力コンバータ１１８によって疑似スキャン出力が全く受信されないとき、出力コンバータ１１８における疑似スキャン出力のストレージをディセーブルするように構成される。一実施形態において、（ａ）入力コンバータ１０４のストレージ深度はＫビットであり、ここでＫは整数であって、Ｋは２Ｎより大きいか又は２Ｎに等しく、（ｂ）出力コンバータ１１８のストレージ深度はＬビットであり、ここでＬは整数であって、Ｌは２Ｐより大きいか又は２Ｐに等しい。
【００１９】
回路１００は、ピンの数に関係なくすべてのデバイスに適合可能である。したがって、Ａ本のピンが最適テスト時間を提供し、テストされるべきデバイス又は集積回路がＢ本のピンであるとき、回路１００はＡがＢの整数倍であることを必要としない。また、回路１００において「関係のない」入力の問題も生じない。回路１００で必要とされるテスト時間は、従来の技法に比べて大幅に削減される。
【００２０】
図２は、スキャンクロックの関数として、集積回路（ＩＣ）をテストするための回路のパラメータを示す表２００である。表２００は、Ｎが８、Ｍが９、Ｐが９、及びＱが８のときの図１の回路１００を用いて説明される。行１は、回路１００によって受信されるスキャンクロック１２６を示す。例えば、表２００には１２のスキャンクロックのみが表されている。行２は、スキャンクロックの終わりに入力コンバータ１０４にストアされるスキャン入力（スキャン入力１０２と同様）の数を示す。入力コンバータ１０４は、Ｎ個のスキャン入力１０２をストアするように構成され、スキャンクロックの初めに、入力コンバータ１０４にストアされるスキャン入力の数がＭに等しいか又はＭより多いとき、Ｍ個の疑似スキャン入力１０６を生成する。Ｎが８に等しく、Ｍが９に等しいとき、入力コンバータ１０４はスキャンクロック１で８個のスキャン入力１０２を受信する。８はＭより少ないため、入力コンバータ１０４は第１のスキャンクロック（スキャンクロック１）でＭ個の疑似スキャン入力１０６を生成しない。これら８個のスキャン入力１０２は、入力コンバータ１０４にストアされる。次のスキャンクロック（これはスキャンクロック２である）で、入力コンバータ１０４は別の８個のスキャン入力１０２を受信し、スキャンクロック２の初めに入力コンバータ１０４にストアされるスキャン入力の総数はＭより多い。したがって、入力コンバータ１０４は、スキャンクロック２で９個の疑似スキャン入力１０６を生成し、スキャンクロック２の終わりに入力コンバータ１０４にストアされる残りのスキャン入力の数は、行２（スキャンクロック２の下）に示されるように７（１６−９＝７）である。このプロセスは、スキャンクロック２で受信されるスキャン入力の一部分（fraction）が疑似スキャン入力の一部として送信されるため、フラクショナルデータパッキングと呼ばれる。同様に、スキャンクロック３では、８個のスキャン入力１０２の次のセットが入力コンバータ１０４で受信される。スキャンクロック３の初めに入力コンバータ１０４にストアされるスキャン入力の総数は（７＋８＝１５）であり、Ｍより多い。そのため、入力コンバータ１０４は第３のスキャンクロックで９個の疑似スキャン入力１０６を生成し、第３のスキャンクロックの終わりに入力コンバータ１０４にストアされる残りのスキャン入力の数は、行２（スキャンクロック３の下）に示されるように６（１５−９＝６）である。同様に、スキャンクロック９では、８個のスキャン入力１０２のセットが入力コンバータ１０４で受信される。入力コンバータ１０４にストアされるスキャン入力の総数は（１＋８＝９）であり、これはＭに等しい。そのため、入力コンバータ１０４は第９のスキャンクロック（スキャンクロック９）で９個の疑似スキャン入力１０６を生成し、第９のスキャンクロックの終わりに入力コンバータ１０４にストアされる残りのスキャン入力の数は、行２（スキャンクロック９の下）に示されるように０（９−９＝０）である。スキャンクロック１０では、入力コンバータ１０４は８個のスキャン入力１０２の別のセットを受信し、これが入力コンバータ１０４にストアされることになる。
【００２１】
スキャンクロック２で、行３（スキャンクロック２の下）に示されるように、９個の疑似スキャン入力１０６が入力コンバータ１０４から受信されると、スキャン圧縮アーキテクチャ１１０への内部クロック１２８はイネーブルされる。モニタ１２２は、スキャンクロックの初めに入力コンバータ１０４にストアされるスキャン入力の数がＭに等しいか又はＭより多い限り、スキャン圧縮アーキテクチャ１１０への内部クロック１２８の提供を続行する。モニタ１２２は、表２００の行３のスキャンクロック１０に示されるように、入力コンバータ１０４にストアされるスキャン入力の数がＭより少ないとき、スキャン圧縮アーキテクチャ１１０への内部クロック１２８を中断する。スキャンクロック１０で、入力コンバータ１０４は８個のスキャン入力１０２の別のセットを受信し、これが入力コンバータ１０４にストアされることになる。８はＭ（Ｍ＝９）より少ないため、入力コンバータ１０４は、第１０のスキャンクロック（スキャンクロック１０）でＭ個の疑似スキャン入力１０６を生成しない。したがって、モニタ１２２は、スキャンクロック１０で、スキャン圧縮アーキテクチャ１１０への内部クロック１２８を中断する（スキャンクロック１０の下の行３に０として示される）。
【００２２】
スキャンクロック２でスキャン圧縮アーキテクチャ１１０に内部クロック１２８が提供されるため、スキャン圧縮アーキテクチャ１１０は、入力コンバータ１０４から受信した９個の疑似スキャン入力１０６に応答して、９個の疑似スキャン出力１１６を生成する。出力コンバータ１１８は、スキャンクロックの初めに出力コンバータ１１８にストアされる疑似スキャン出力の数がＱより多いか又はＱに等しいとき、Ｑ個のスキャン出力１２０を生成する。スキャンクロック２の初めに、９個の疑似スキャン出力１１６が、受信され、出力コンバータ１１８にストアされる。Ｑが８であり、出力コンバータ１１８にストアされる疑似スキャン出力の数が９であるため、出力コンバータ１１８は８個のスキャン出力１２０を生成し、スキャンクロック２の終わりに出力コンバータ１１８にストアされる残りの疑似スキャン出力の数は、列４（スキャンクロック２の下）に示されるように、１（９−８＝１）である。スキャンクロック３で、９個の疑似スキャン出力１１６の次のセットが出力コンバータ１１８で受信される。出力コンバータ１１８にストアされた疑似スキャン出力の総数は（１＋９＝１０）であり、これはＱより多い。そのため、出力コンバータ１１８は第３のスキャンクロックで８個のスキャン出力１２０を生成し、第３のスキャンクロックの終わりに出力コンバータ１１８にストアされる残りの疑似スキャン出力の数は、行４（スキャンクロック３の下）に示されるように、２（１０−８＝２）である。同様に、スキャンクロック９で、９個の疑似スキャン出力１１６のセットが出力コンバータ１１８で受信される。出力コンバータ１１８にストアされる疑似スキャン出力の総数は（７＋９＝１６）であり、これはＱより多い。そのため、出力コンバータ１１８は第９のスキャンクロック（スキャンクロック９）で８個のスキャン出力１２０を生成し、第９のスキャンクロックの終わりに出力コンバータ１１８にストアされる残りの疑似スキャン出力の数は、行４（スキャンクロック９の下）に示されるように、８（１６−８＝８）である。スキャンクロック１０では、入力コンバータ１０４は疑似スキャン入力１０６を生成せず、スキャン圧縮アーキテクチャ１１０への内部クロック１２８もディセーブルされる。しかしながら、出力コンバータ１１８は、ストアされる８個の疑似スキャン出力を有し、これはＱに等しいため、スキャンクロック１０で８個のスキャン出力１２０を生成し、スキャンクロック１０の終わりに出力コンバータ１１８にストアされる残りの疑似スキャン出力の数は、行４（スキャンクロック１０の下）に示されるように、０（８−８＝０）である。行５はイネーブル信号１３０を示し、これはモニタ１２２から出力コンバータ１１８によって受信される。イネーブル信号１３０は、スキャンクロックの初めに出力コンバータ１１８にストアされる疑似スキャン出力１１６の数がＱより少ないとき、出力コンバータ１１８における疑似スキャン出力のストレージをディセーブルするように構成される。イネーブル信号１３０は内部クロック１２８と同様である。モニタ１２２が内部クロック１２８を中断すると、出力コンバータ１１８へのイネーブル信号１３０もディセーブルされる。
【００２３】
図３（ａ）及び図３（ｂ）は、集積回路（ＩＣ）をテストするための回路におけるフラクショナルデータパッキングを示す。例えば、フラクショナルデータパッキングは、Ｎが８に等しく、Ｍが９に等しいときの、図１の回路１００を用いて示される。図３（ａ）は、スキャンクロック３０８（スキャンクロック１からスキャンクロック１１まで）について、入力コンバータ１０４で受信されるスキャン入力を示す表である。８個のスキャン入力が、Ｓ０〜Ｓ７として列３０２に示されている。列３０４は、スキャンクロック１で受信されるスキャン入力の値を示す。同様に、列３０６は、スキャンクロック２で受信されるスキャン入力の値を表す。図３（ｂ）は、スキャンクロック３０８（スキャンクロック１からスキャンクロック１１まで）について、図３（ａ）の受信したスキャン入力に応答して入力コンバータ１０４によって生成される疑似スキャン入力を示す表である。列３１２は、９個の疑似スキャン入力をＰＳ０〜ＰＳ８として表す。列３１４に示されるように、スキャンクロック１では疑似スキャン入力は全く生成されない。入力コンバータ１０４は、スキャンクロック１で８個のスキャン入力を受信し、８はＭ（＝９）より少ないため、入力コンバータ１０４はスキャンクロック１で疑似スキャン入力を生成しない。スキャンクロック２で、入力コンバータ１０４は、列３１６に示されるように９個の疑似スキャン入力を生成する。スキャンクロック２で生成される９個の疑似スキャン入力は、（ａ）スキャンクロック１において入力コンバータ１０４で受信される８個のスキャン入力と、（ｂ）スキャンクロック２において入力コンバータ１０４で受信される１個のスキャン入力とを含む。同様に、スキャンクロック３で生成される９個の疑似スキャン入力（列３１８に示される）は、（ａ）スキャンクロック２において入力コンバータ１０４で受信される７個のスキャン入力と、（ｂ）スキャンクロック３において受信される２個のスキャン入力とを含む。このプロセスは、スキャンクロック２で受信されるスキャン入力の一部分（fraction）がスキャンクロック２で疑似スキャン入力の一部として送信されるため、フラクショナルデータパッキングと呼ばれる。説明をシンプルにするために、スキャン入力の値及び疑似スキャン入力の値は、それぞれ図３（ａ）及び図３（ｂ）で同じである。しかしながら、一実施形態において、入力コンバータ１０４は、スキャン入力を処理し、異なる値の疑似スキャン入力を生成する。スキャンクロック８で生成される９個の疑似スキャン入力（列３２０に示される）は、（ａ）スキャンクロック７において入力コンバータ１０４で受信される２個のスキャン入力と、（ｂ）スキャンクロック８において受信される７個のスキャン入力とを含む。また、スキャンクロック９で生成される９個の疑似スキャン入力（列３２２に示される）は、（ａ）スキャンクロック８において入力コンバータ１０４で受信される１個のスキャン入力と、（ｂ）スキャンクロック９において受信される８個のスキャン入力とを含む。スキャンクロック１０で、入力コンバータ１０４は８個のスキャン入力の別のセットを受信し、これが入力コンバータ１０４にストアされることになる（列３０���）。しかしながら、スキャンクロック１０の８個のスキャン入力はＭ（＝９）より少ないため、入力コンバータ１０４はスキャンクロック１０において疑似スキャン入力を生成しない（列３２４に示される）。図３（ａ）及び図３（ｂ）のスキャン入力の値及び疑似スキャン入力の値は、例示のためである。
【００２４】
図４は、集積回路（ＩＣ）をテストするための回路のタイミング図である。例えば、タイミング図は、Ｎが８に等しく、Ｍが９に等しく、Ｐが９に等しく、Ｑが８に等しいときの、図１の回路１００を用いて示される。このタイミング図は、スキャンクロック１２６毎に受信されるスキャン入力１０２を示す。図４に示されるブロック１０２ａ及び１０２ｂなどの各ブロックは、複数のスキャン入力を表す。ブロック１０２ａ及び１０２ｂなどの各ブロックは、複数のスキャン入力を表すビットのセットである。Ｎが８に等しいとき、各ブロックは８個のスキャン入力を表す。したがって、スキャンクロック１２６毎に８個のスキャン入力が受信される。第１のスキャンクロックでは、入力コンバータ１０４にストアされるスキャン入力の数が９より少ないため、疑似スキャン入力１０６は生成されない。第２のスキャンクロックでは、入力コンバータ１０４にストアされるスキャン入力の数が９より多いため、第２のスキャンクロックで９個の疑似スキャン入力１０６が生成される。内部クロック１２８は、９個の疑似スキャン入力１０６が入力コンバータ１０４から受信されるとき、イネーブルされる。モニタ１２２は、スキャンクロックの初めに入力コンバータ１０４にストアされるスキャン入力の数がＭより多い限り、スキャン圧縮アーキテクチャ１１０への内部クロック１２８の提供を続行する。モニタ１２２は、図４においてスキャンクロック１０でＸＸＸとして示されるように、入力コンバータ１０４にストアされるスキャン入力の数がＭより少ないとき、スキャン圧縮アーキテクチャ１１０への内部クロック１２８を中断する。スキャンクロック１０で、入力コンバータ１０４は８個のスキャン入力の別のセットを受信し、これが入力コンバータ１０４にストアされることになる。８はＭ（Ｍ＝９）より少ないため、入力コンバータ１０４は第１０のスキャンクロック（スキャンクロック１０）でＭ個の疑似スキャン入力１０６を生成しない。したがって、モニタ１２２は、スキャンクロック１０でスキャン圧縮アーキテクチャ１１０への内部クロック１２８を中断する。図４に表されるスキャン入力１０２の値及び疑似スキャン入力１０６の値は、例示の実施形態に従った値である。
【００２５】
スキャンクロック２で内部クロック１２８がスキャン圧縮アーキテクチャ１１０に提供されるので、スキャン圧縮アーキテクチャ１１０は、入力コンバータ１０４から受信される９個の疑似スキャン入力１０６に応答して、９個の疑似スキャン出力１１６を生成する。出力コンバータ１１８は、スキャンクロックの初めに出力コンバータ１１８にストアされる疑似スキャン出力の数がＱより多いか又はＱに等しいとき、Ｑ個のスキャン出力１２０を生成する。スキャンクロック２の初めに、９個の疑似スキャン出力１１６が、受信され、出力コンバータ１１８にストアされる。Ｑが８であり、出力コンバータ１１８にストアされる疑似スキャン出力の数が９であるので、出力コンバータ１１８は８個のスキャン出力１２０を生成する。前述のように、スキャンクロック１０では疑似スキャン入力１０６が全く生成されないため、ＸＸＸで表されるスキャンクロック１０では疑似スキャン出力１１６は生成されない。しかしながら、出力コンバータ１１８は、すべてのスキャンクロックでスキャン出力１２０の生成を続行する。出力コンバータ１１８はスキャンクロック１０においてストアされる８個の疑似スキャン出力を有し、これがＱに等しいため、８個のスキャン出力１２０を生成する。図４に表されるスキャン入力１０２、疑似スキャン入力１０６、疑似スキャン出力１１６、及びスキャン出力１２０の値は、例示の実施形態に従った値である。少なくとも１つの実施形態において、スキャン出力１２０はスキャン入力１０２と異なり得る。
【００２６】
図５は、集積回路（ＩＣ）をテストするための回路５００の概略図である。回路５００は入力コンバータ５０４を含む。入力コンバータ５０４はテスタ（図５には図示せず）からＮ個のスキャン入力５０２を受信し、ここでＮは整数である。実施形態の１つにおいて、入力コンバータ５０４はテスタから複数のスキャン入力を受信する。例示のため、Ｎは８であり、スキャン入力５０２はＳ０〜Ｓ７として示される。いくつかのテスタの例は、低価格テスタ（ＶＬＣＴ）又はハイエンドテスタを含み得る。入力コンバータ５０４はＭ個の疑似スキャン入力５０６を生成し、ここでＭは整数である。例示のため、Ｍは９であり、疑似スキャン入力５０６はＰＳ０〜ＰＳ８として示される。入力コンバータ５０４は論理ユニット５０５を更に含み、論理ユニット５０５は、Ｎ個のスキャン入力５０２のうちのスキャン入力の或るセットを処理するように構成され、Ｍ個の疑似スキャン入力５０６のうちの疑似スキャン入力の或るセット５０６を生成する。一実施形態において、論理ユニット５０５は、スキャン入力Ｓ０〜Ｓ７を処理するように構成され、疑似スキャン入力ＰＳ０〜ＰＳ７を生成する。入力コンバータ５０４は、共に結合され、疑似スキャン入力ＰＳ８を生成するように構成される、複数のマルチプレクサ及び複数のフリップフロップを含む。一実施形態において、入力コンバータ５０４は７個のマルチプレクサ（Ｍ１〜Ｍ７）を含み、７個のマルチプレクサの各マルチプレクサは、スキャン入力Ｓ１〜Ｓ７のうちの或るスキャン入力を第１の入力として受信する。入力コンバータ５０４は直列に配置される８個のフリップフロップを含み、各フリップフロップはマルチプレクサの第２の入力に結合される。各マルチプレクサは、モニタ５２２からイネーブル信号５３０を受信する。８個のフリップフロップの第１のフリップフロップがスキャン入力Ｓ０を受信し、８個のフリップフロップの最後のフリップフロップが疑似スキャン入力ＰＳ８を生成する。別の実施形態において、１つ又は複数の疑似スキャン入力を生成するために順次デバイスの組み合わせが用いられる。
【００２７】
スキャン圧縮アーキテクチャ５１０が入力コンバータ５０４に結合される。スキャン圧縮アーキテクチャ５１０は、Ｍ個の疑似スキャン入力５０６を受信し、Ｍ個の疑似スキャン入力５０６に応答してＰ個の疑似スキャン出力５１６を生成する。一実施形態において、スキャン圧縮アーキテクチャ５１０は、９個の疑似スキャン入力５０６を受信し、９個の疑似スキャン入力５０６に応答して９個の疑似スキャン出力５１６を生成する。スキャン圧縮アーキテクチャ５１０は、デコンプレッサ５０８、複数のスキャンチェーン５１２、及びコンプレッサ５１４を含む。デコンプレッサ５０８は、入力コンバータ５０４に結合され、Ｍ個の疑似スキャン入力５０６を受信する。デコンプレッサ５０８はスキャンチェーン５１２に結合される。スキャンチェーン５１２の各々は、スキャンセル５１１などの複数のスキャンセルを含む。コンプレッサ５１４はスキャンチェーン５１２に結合される。コンプレッサ５１４はＰ個の疑似スキャン出力５１６を生成し、ここでＰは整数である。出力コンバータ５１８がコンプレッサ５１４に結合される。出力コンバータ５１８は、Ｐ個の疑似スキャン出力５１６を受信し、Ｑ個のスキャン出力５２０を生成し、ここでＱは整数である。例示された実施形態において、Ｐは９であり、Ｑは８である。したがって、出力コンバータ５１８は、９個の疑似スキャン出力５１６を受信し、８個のスキャン出力５２０を生成する。一実施形態において、出力コンバータ５１８は、共に結合され、Ｑ個のスキャン出力を生成するように構成される、複数のマルチプレクサ及び複数のフリップフロップを含む。一実施形態において、出力コンバータ５１８は８個のマルチプレクサを含み、８個のマルチプレクサの各マルチプレクサは、９個の疑似スキャン出力のうちの或る疑似スキャン出力を第１の入力として受信する。出力コンバータ５１８は直列に配置される８個のフリップフロップを含み、各フリップフロップの出力がマルチプレクサの第２の入力に結合される。各マルチプレクサは、モニタ５２２からイネーブル信号５３０を受信する。８個のフリップフロップの第１のフリップフロップが１つの疑似スキャン出力を受信する。別の実施形態において、１つ又は複数のスキャン出力を生成するために出力コンバータ５１８において順次デバイスの組み合わせが用いられる。一実施形態において、（ａ）入力コンバータ５０４のストレージ深度がＫビットであり、ここでＫは整数であって、Ｋは２Ｎより大きいか又は２Ｎに等しく、（ｂ）出力コンバータ５１８のストレージ深度がＬビットであり、ここでＬは整数であって、Ｌは２Ｐより大きいか又は２Ｐに等しい。
【００２８】
回路５００はモニタ５２２を含む。モニタ５２２は、入力コンバータ５０４からステータス信号５２４を受信し、またスキャンクロック５２６を受信する。モニタ５２２は、内部クロック５２８及びイネーブル信号５３０を生成する。内部クロック５２８はスキャン圧縮アーキテクチャ５１０に提供される。出力コンバータ５１８は、モニタ５２２からイネーブル信号５３０を受信する。回路５００は１つ又は複数の追加の構成要素を含み得るが、説明をシンプルにするためにここでは論じない。
【００２９】
理解し易くするために、Ｎが８に等しく、Ｍが９に等しく、Ｐが９に等しく、Ｑが８に等しいときの図５の動作が説明される。入力コンバータ５０４は、８個のスキャン入力５０２を受信し、９個の疑似スキャン入力５０６を生成する。スキャン圧縮アーキテクチャ５１０は、９個の疑似スキャン入力５０６を受信し、９個の疑似スキャン出力５１６を生成する。デコンプレッサ５０８は、９個の疑似スキャン入力５０６を受信し、９個の疑似スキャン入力５０６に応答して複数のコアスキャン入力を生成する。コアスキャン入力はスキャンチェーン５１２に提供される。各スキャンセル５１１は、内部クロック５２８の周波数でコアスキャン入力のうちの或るコアスキャン入力をシフトする。スキャンチェーン５１２は、スキャンチェーン５１２によって受信されるコアスキャン入力に応答して、複数のコアスキャン出力を生成する。コンプレッサ５１４は、コアスキャン出力を受信し、コアスキャン出力に応答して９個の疑似スキャン出力５１６を生成する。出力コンバータ５１８は、９個の疑似スキャン出力５１６を受信し、８個のスキャン出力５２０を生成する。入力コンバータ５０４は、第１の周波数で８個のスキャン入力５０２を受信し、第２の周波数で９個の疑似スキャン入力５０６を生成し、出力コンバータ５１８は、第２の周波数で９個の疑似スキャン出力５１６を受信し、第１の周波数で８個のスキャン出力５２０を生成する。第１の周波数と第２の周波数との比は、ＭとＮとの比、及びＰとＱとの比に等しい。モニタ５２２は、スキャンクロック５２６を受信し、内部クロック５２８を生成する。内部クロック５２８の或る周波数が第２の周波数に等しい。スキャンチェーン５１２は、第２の周波数で内部クロック５２８によって駆動される。
【００３０】
入力コンバータ５０４は、スキャンクロック５２６毎にＮ個のスキャン入力を受信する。入力コンバータ５０４は、８個のスキャン入力５０２をストアするように構成され、スキャンクロックの初めに、入力コンバータ５０４にストアされるスキャン入力の数が９に等しいか又は９より多いとき、９個の疑似スキャン入力５０６を生成する。入力コンバータ５０４は、第１のスキャンクロックで８個のスキャン入力５０２を受信する。８はＭより少ないため、入力コンバータ５０４は第１のスキャンクロックにおいてＭ個の疑似スキャン入力５０６を生成しない。８個のフリップフロップの第１のフリップフロップはスキャン入力Ｓ０を受信し、残りのスキャン入力は、７個のマルチプレクサの各マルチプレクサの第１の入力に提供される。例えば、マルチプレクサＭ１がスキャン入力Ｓ１を受信し、マルチプレクサＭ７がスキャン入力Ｓ７を受信する。次のスキャンクロック（これは第２のスキャンクロックである）において、入力コンバータ５０４は別の８個のスキャン入力５０２を受信する。これらのスキャン入力は、Ｓ０〜Ｓ７として入力コンバータ５０４に提供される。論理ユニット５０５は、これらのスキャン入力Ｓ０〜Ｓ７を処理し、８個の疑似スキャン入力ＰＳ０〜ＰＳ７を生成する。一実施形態において、論理ユニット５０５はバッファであるため、疑似スキャン入力の値はスキャン入力と同じである。モニタ５２２はイネーブル信号をマルチプレクサに提供し、第１のスキャンクロックにおいて受信されるスキャン入力（Ｓ７）が、疑似スキャン入力ＰＳ８を生成するためにフリップフロップを介してシフトされる。そのため、入力コンバータ５０４は、第２のスキャンクロックにおいて９個の疑似スキャン入力を生成する。同様に、第３のスキャンクロックで、入力コンバータ５０４は別の８個のスキャン入力を受信する。これらのスキャン入力は、Ｓ０〜Ｓ７として入力コンバータ５０４に提供される。論理ユニット５０５は、これらのスキャン入力（Ｓ０〜Ｓ７）を処理し、８個の疑似スキャン入力ＰＳ０〜ＰＳ７を生成する。モニタ５２２はイネーブル信号をマルチプレクサに提供し、第１のスキャンクロックにおいて受信されるスキャン入力（Ｓ６）が、疑似スキャン入力ＰＳ８を生成するためにフリップフロップを介してシフトされる。そのため、入力コンバータ５０４は、第３のスキャンクロックにおいて９個の疑似スキャン入力５０６を生成する。このプロセスは、フラクショナルデータパッキングと呼ばれ、図６（ａ）及び図６（ｂ）を用いて下記で詳細に説明する。モニタ５２２は、入力コンバータ５０４からステータス信号５２４を受信する。ステータス信号５２４は、全てのスキャンクロックの初めにマルチプレクサの入力で入力コンバータ５０４にストアされるスキャン入力の数に関して、モニタ５２２を更新する。例えば、上記で説明した実施形態において、ステータス信号５２４は、第１のスキャンクロックの初めに８個のスキャン入力が入力コンバータ５０４にストアされ、第２のスキャンクロックの初めに１６個のスキャン入力が入力コンバータ５０４にストアされる旨、モニタ５２２を更新し得る。モニタ５２２は、スキャンクロックの初めに、入力コンバータ５０４にストアされるスキャン入力の数がＭより少ないとき、スキャン圧縮アーキテクチャ５１０への内部クロック５２８を中断するように構成される。そのため、スキャンクロックの初めに、入力コンバータ５０４にストアされるスキャン入力の数がＭより少ないとき、スキャンセルにおけるコアスキャン入力のシフトは停止される。第９のスキャンクロックで、第１のスキャンクロックにおいてストアされる８個のスキャン入力及び或るスキャン入力（Ｓ０）は共に９個の疑似スキャン入力を形成し、これらがスキャン圧縮アーキテクチャ５１０に提供される。第１０のスキャンクロックで、８個のスキャン入力５０２の新たなセットが入力コンバータ５０４で受信される。８はＭより少ないため、入力コンバータ５０４は第１０のスキャンクロックにおいてＭ個の疑似スキャン入力５０６を生成しない。８個のフリップフロップの第１のフリップフロップはスキャン入力Ｓ０を受信し、残りのスキャン入力は、７個のマルチプレクサの各マルチプレクサの第１の入力に提供される。例えば、マルチプレクサＭ１がスキャン入力Ｓ１を受信し、マルチプレクサＭ７がスキャン入力Ｓ７を受信する。
【００３１】
出力コンバータ５１８は、第１のスキャンクロック以外のスキャンクロック５２６毎に８個のスキャン出力５２０を生成する。入力コンバータ５０４は、第１のスキャンクロックにおいて８個のスキャン入力５０２を受信する。８はＭより少ないため、入力コンバータ５０４は、第１のスキャンクロックにおいてＭ個の疑似スキャン入力５０６を生成しない。これら８個のスキャン入力は入力コンバータ５０４にストアされ、出力コンバータ５１８は第１のスキャンクロックにおいていかなる入力も受信しない。次のスキャンクロック（これは第２のスキャンクロックである）において、入力コンバータ５０４は別の８個のスキャン入力５０２を受信する。入力コンバータ５０４は、第２のスキャンクロックにおいて９個の疑似スキャン入力５０６を生成する。スキャン圧縮アーキテクチャ５１０は、９個の疑似スキャン入力５０６を受信し、９個の疑似スキャン出力５１６を生成する。出力コンバータ５１８は、９個の疑似スキャン出力５１６を受信する。９個の疑似スキャン出力のうちの１つの疑似スキャン出力が、直列に配置される８個のフリップフロップのうちの１つのフリップフロップに提供される。この疑似スキャン出力は、直列に配置された８個のフリップフロップの第１のフリップフロップにストアされる。９個の疑似スキャン出力５１６のうちの他の８個の疑似スキャン出力は、８個のマルチプレクサに提供される。モニタ５２２はイネーブル信号５３０を８個のマルチプレクサに提供し、マルチプレクサは８個のスキャン出力５２０を生成する。第３のクロックサイクルにおいて、９個の疑似スキャン出力５１６が出力コンバータ５１８で受信されるとき、９個の疑似スキャン出力のうちの１つの疑似スキャン出力が、直列に配置された８個のフリップフロップのうちの或るフリップフロップに提供される。以前にストアされた疑似スキャン出力は、スキャンクロックを受信する際に、次のフリップフロップ（これは第２のフリップフロップである）に移される。９個の疑似スキャン出力のうちの他の８個の疑似スキャン出力は、８個のマルチプレクサに提供される。モニタ５２２はイネーブル信号５３０を８個のマルチプレクサに提供し、マルチプレクサは８個のスキャン出力５２０を生成する。このように、各スキャンクロックで、新たな疑似スキャン出力がフリップフロップチェーンにおいてストアされ、以前にフリップフロップにストアされた疑似スキャン出力はシフトされる。したがって、９個のスキャンクロック後、８個のフリップフロップは、疑似スキャン出力によって占有され得る。第１０のスキャンクロックで、疑似スキャン入力５０６は入力コンバータ５０４で生成されないため、８個のフリップフロップにおけるデータは、８個のマルチプレクサに利用可能となり、マルチプレクサは８個のスキャン出力５２０を生成する。
【００３２】
図６（ａ）及び図６（ｂ）は、集積回路（ＩＣ）をテストするための回路におけるフラクショナルデータパッキングを示す。例えば、フラクショナルデータパッキングは、Ｎが８に等しく、Ｍが９に等しいときの、図５の回路５００を用いて示される。図６（ａ）は、スキャンクロック６０８（スキャンクロック１〜スキャンクロック１８）について、入力コンバータ５０４で受信されるスキャン入力を示す表である。８個のスキャン入力が、Ｓ０〜Ｓ７として列６０２に示されている。列６０４が、スキャンクロック１において受信されるスキャン入力の値を示す。同様に、列６０６が、スキャンクロック２において受信されるスキャン入力の値を表す。図６（ｂ）は、スキャンクロック６０８（スキャンクロック１〜スキャンクロック１８）について、図６（ａ）の受信したスキャン入力に応答して、入力コンバータ５０４によって生成される疑似スキャン入力を示す表である。列６１２が、９個の疑似スキャン入力をＰＳ０〜ＰＳ８として表す。列６１４に示されるように、スキャンクロック１では疑似スキャン入力は全く生成されない。入力コンバータ５０４は、スキャンクロック１において８個のスキャン入力を受信し、８はＭ（＝９）より少ないため、入力コンバータ５０４はスキャンクロック１において疑似スキャン入力を生成しない。これらのスキャン入力は図５で論じられるフリップフロップ及びマルチプレクサ配置でストアされ、これらのスキャン入力の各々は、各スキャンクロックで疑似スキャン入力としてシフトアウトされる。スキャンクロック２で、入力コンバータ５０４は、列６１６に示されるように９個の疑似スキャン入力を生成する。スキャンクロック２において生成される９個の疑似スキャン入力は、（ａ）スキャンクロック２において入力コンバータ５０４で受信される８個のスキャン入力と、（ｂ）スキャンクロック１において入力コンバータ５０４で受信される１個のスキャン入力とを含む。同様に、スキャンクロック３において生成される９個の疑似スキャン入力（列６１８に示される）は、（ａ）スキャンクロック２において入力コンバータ５０４で受信される８個のスキャン入力と、（ｂ）スキャンクロック１において受信される１個のスキャン入力とを含む。９個のスキャンクロックにわたる疑似スキャン入力ＰＳ８は、スキャンクロック１において、入力コンバータ５０４で受信されるスキャン入力を表す（６１５として示される）。このプロセスは、スキャンクロック１において受信されるスキャン入力の一部分（fraction）が疑似スキャン入力の一部として送信されるため、フラクショナルデータパッキングと呼ばれる。説明をシンプルにするために、スキャン入力の値及び疑似スキャン入力の値は、それぞれ図６（ａ）及び図６（ｂ）で同じである。しかしながら、一実施形態において、入力コンバータ５０４は、スキャン入力を処理し、異なる値の疑似スキャン入力を生成する。スキャンクロック８において生成される９個の疑似スキャン入力（列６２０に示される）は、（ａ）スキャンクロック７において入力コンバータ５０４で受信される２８のスキャン入力と、（ｂ）スキャンクロック１において受信される１個のスキャン入力とを含む。また、スキャンクロック９���おいて生成される９個の疑似スキャン入力（列６２２に示される）は、（ａ）スキャンクロック８において入力コンバータ５０４で受信される８個のスキャン入力と、（ｂ）スキャンクロック１において受信される１個のスキャン入力とを含む。スキャンクロック１０において、入力コンバータ５０４は８個のスキャン入力の別のセットを受信し、これが、図５で論じられるフリップフロップ及びマルチプレクサ配置で入力コンバータ５０４にストアされることになる（列６０９）。しかしながら、スキャンクロック１０における８個のスキャン入力はＭ（＝９）より少ないため、入力コンバータ５０４はスキャンクロック１０において疑似スキャン入力を生成しない（列６２４に示される）。
【００３３】
図７は、集積回路（ＩＣ）をテストするための回路のタイミング図である。例えば、タイミング図は、Ｎが８に等しく、Ｍが９に等しく、Ｐが９に等しく、Ｑが８に等しいときの、図５の回路５００を用いて示される。このタイミング図は、スキャンクロック５２６毎に受信されるスキャン入力５０２を示す。図４に示されるブロック５０２ａ及び５０２ｂなどの各ブロックは、複数のスキャン入力を表す。ブロック５０２ａ及び５０２ｂなどの各ブロックは、複数のスキャン入力を表すビットのセットである。Ｎが８に等しいとき、各ブロックは８個のスキャン入力を表す。したがって、スキャンクロック５２６毎に８個のスキャン入力が受信される。第１のスキャンクロックでは、入力コンバータ５０４にストアされるスキャン入力の数が９より少ないため、疑似スキャン入力５０６は生成されない。第１のスキャンクロックにおいて受信されるこれら８個のスキャン入力は、図５で論じられるフリップフロップ及びマルチプレクサ配置で入力コンバータ５０４にストアされることになる。第２のスキャンクロックでは、入力コンバータ５０４は８個のスキャン入力の次のセットを受信し、スキャンクロックの初めに入力コンバータ５０４にストアされるスキャン入力の数は１６である。したがって、９個の疑似スキャン入力が入力コンバータ５０４によって生成される。内部クロック５２８は、９個の疑似スキャン入力が入力コンバータ５０４から受信されるとき、イネーブルされる。モニタ５２２は、スキャンクロックの初めに入力コンバータ５０４にストアされるスキャン入力の数がＭに等しいか又はＭより多い限り、スキャン圧縮アーキテクチャ５１０への内部クロック５２８の提供を続行する。モニタ５２２は、図７においてスキャンクロック１０でＸＸＸとして示されるように、入力コンバータ５０４にストアされるスキャン入力の数がＭより少ないとき、スキャン圧縮アーキテクチャ５１０への内部クロック５２８を中断する。スキャンクロック１０で、入力コンバータ５０４は８個のスキャン入力の別のセットを受信し、これが入力コンバータ５０４にストアされることになる。８はＭ（Ｍ＝９）より少ないため、入力コンバータ５０４は第１０のスキャンクロック（スキャンクロック１０）においてＭ個の疑似スキャン入力を生成しない。したがって、モニタ５２２は、スキャンクロック１０でのスキャン圧縮アーキテクチャ５１０への内部クロック５２８を中断する。図４に表されるスキャン入力の値及び疑似スキャン入力の値は、例示の実施形態に従った値である。
【００３４】
スキャンクロック２において内部クロック５２８がスキャン圧縮アーキテクチャ５１０に提供される場合、スキャン圧縮アーキテクチャ５１０は、入力コンバータ５０４から受信される９個の疑似スキャン入力に応答して、９個の疑似スキャン出力５１６を生成する。出力コンバータ５１８は、スキャンクロックの初めに出力コンバータ５１８にストアされる疑似スキャン出力の数がＱより多いか又はＱに等しいとき、Ｑ個のスキャン出力を生成する。スキャンクロック２の初めに、９個の疑似スキャン出力５１６が、受信され、出力コンバータ５１８にストアされる。Ｑが８であり、出力コンバータ５１８にストアされる疑似スキャン出力の数が９である場合、出力コンバータ５１８は８個のスキャン出力５２０を生成し、１個の疑似スキャン出力をストアする。図示されるように、第２のスキャンクロックにおいて生成されるスキャン出力５２０は、第２のスキャンクロックにおいて受信されるスキャン入力５０２と同じである。同様に、スキャンクロック３の初めに、９個の疑似スキャン出力５１６が、受信され、出力コンバータ５１８にストアされる。出力コンバータ５１８は、８個のスキャン出力５２０を生成し、１個の疑似スキャン出力をストアする。図示されるように、第３のスキャンクロックにおいて生成されるスキャン出力５２０は、第３のスキャンクロックにおいて受信されるスキャン入力５０２と同じである。したがって、第３のスキャンクロックの終わりに、出力コンバータは２個の疑似スキャン出力をストアする。図５で論じられるように、疑似スキャン出力は直列に配置されるフリップフロップにストアされる。各スキャンクロックで、新たな疑似スキャン出力がフリップフロップチェーンにストアされ、フリップフロップに以前にストアされた疑似スキャン出力は、フリップフロップチェーンにおいてシフトされる。前述のように、スキャンクロック１０では疑似スキャン入力が全く生成されないため、ＸＸＸで表されるスキャンクロック１０では疑似スキャン出力５１６は生成されない。しかしながら、出力コンバータ５１８は、スキャンクロック１０においてスキャン出力５２０を生成し続ける。フリップフロップチェーンにストアされた疑似スキャン出力はマルチプレクサに利用可能となり、マルチプレクサはスキャンクロック１０において８個のスキャン出力を生成する。図示されるように、第１０のスキャンクロックにおいて生成されるスキャン出力５２０は、第１のスキャンクロックにおいて受信されるスキャン入力５０２と同じである。理解し易いように、図７では、スキャン入力の値とスキャン出力の値は同じである。しかしながら、一実施形態において、回路５００は、スキャン入力を処理し、異なる値のスキャン出力を生成する。
【００３５】
図８は、一実施形態に従ったコンピューティングデバイス８００を示す。コンピューティングデバイス８００は、サーバファーム、ハードドライブを有するコンピューティングデバイス、ビデオレコーダ、ブルートゥースデバイス、リモートコントロール、キーボード、グローバルナビゲーション衛星システム、モバイル通信デバイス（モバイルフォンなど）、携帯情報端末（パーソナルデジタルアシスタント）、パーソナルコンピュータ、又は任意の他のタイプの電子システムであるか、或いはそれらに組み込まれる集積回路である。
【００３６】
いくつかの実施形態において、コンピューティングデバイス８００は、マイクロコントローラ、マイクロプロセッサ、又はシステムオンチップ（ＳｏＣ）のうちの１つであり得るが、これらに限定されない。コンピューティングデバイス８００は、マスタデバイス８０２ａ、８０２ｂ、及び８０２ｃなどのマスタデバイスを含む。例えば、マスタデバイスは、ＣＰＵ（中央処理ユニット）、ＣＩＳＣタイプ（複合命令セットコンピュータ）のＣＰＵ、ＲＩＳＣ（縮小命令セットコンピュータ）タイプのＣＰＵ、又はデジタル信号プロセッサ（ＤＳＰ）などの、処理ユニットであり得る。マスタデバイスのうちの少なくとも１つのマスタデバイスにコンバータ８０４が結合される。スレーブデバイス８１２がコンバータ８０４に結合される。一実施形態において、複数のスレーブデバイスがコンバータ８０４に結合される。例えば、スレーブデバイス８１２は、メモリ、プリプロセッサ、受動ストレージデバイス、又は論理ユニットであり得る。コンバータ８０４は、データパス８０６を介してスレーブデバイス８１２に双方向結合される。また、コンバータ８０４は、書き込みイネーブル信号８０８及び読み取りイネーブル信号８１０をスレーブデバイス８１２に送信する。コンバータ８０４は、動作に際して、図１の入力コンバータ１０４又は図５の入力コンバータ５０４に類似している。一実施形態において、コンバータ８０４は、動作に際して出力コンバータ１１８又は出力コンバータ５１８に類似している。
【００３７】
図８のコンピューティングデバイス８００の動作に際して、マスタデバイスはクロックサイクル当たりＮビットで動作する。例えば、マスタデバイス８０２ａが、クロックサイクル当たり２４ビットで動作する。したがって、マスタデバイス８０２ａによって２４ビット／クロックの速度でデータが読み取られ、このデータはマスタデバイス８０２ａによって２４ビット／クロックの速度で書き込まれる。スレーブデバイス８１２は、クロックサイクル当たりＭビットで動作する。書込み動作が、スレーブデバイス８１２にデータを書き込んでいるマスタデバイス８０２ａとして定義され、読み取り動作が、スレーブデバイス８１２からデータを読み取っているマスタデバイス８０２ａとして定義される。書き込み動作の間、コンバータ８０４は、クロックサイクル当たりＮビットの速度で、マスタデバイス８０２ａからデータを受信する。しかしながら、スレーブデバイス８１２はクロックサイクル当たりＭビットで動作する。したがって、コンバータ８０４は、マスタデバイス８０２ａから受信したデータを一時的にストアし、コンバータ８０４にストアされたビット数がＭに等しいか又はＭより多いとき、データパス８０６を介してスレーブデバイス８１２にＭビットを提供する。また、コンバータ８０４は、コンバータ８０４にストアされたビット数がＭに等しいか又はＭより多いとき、クロックサイクル毎にスレーブデバイス８１２に書き込みイネーブル信号８０８を送信する。書き込みイネーブル信号８０８は、データパス８０６上のデータが有効データである旨をスレーブデバイス８１２に示す。理解し易いように、ここで書き込み動作は、マスタデバイス８０２ａがクロックサイクル当たり２４ビットで動作し、スレーブデバイス８１２がクロックサイクル当たり３２ビットで動作する例を用いて、説明される。コンバータ８０４は、クロックサイクル当たり２４ビットの速度でマスタデバイス８０２ａからデータを受信する。スレーブデバイス８１２はクロックサイクル当たり３２ビットで動作するため、マスタデバイス８０２ａからのデータをスレーブデバイス８１２に直接的に書き込むことはできない。したがって、コンバータ８０４は、マスタデバイス８０２ａから受信したデータを一時的にストアし、コンバータ８０４にストアされたビット数が３２に等しいか又は３２より多いとき、データパス８０６を介してスレーブデバイス８１２に３２ビットを提供する。第１のクロックサイクルにおいて、コンバータ８０４は２４ビットのデータを受信し得る。また、これは３２より少ないため、コンバータ８０４はこれら２４ビットのデータをストアし得る。第２のクロックサイクルにおいて、コンバータ８０４は別の２４ビットのデータを受信し得る。そのため、第２のクロックサイクルの初めに４８ビットのデータがコンバータ８０４にストアされ、これはＭより多い。そのため、第２のクロックサイクルで、コンバータ８０４は３２ビットのデータをスレーブデバイス８１２に提供し得る。第２のクロックサイクルの終わりにコンバータ８０４にストアされるビットの総数は１６（４８−３２＝１６）である。第３のクロックサイクルで、コンバータ８０４は別の２４ビットのデータを受信し得る。そのため、第３のクロックサイクルの初めに、４０（１６＋２４＝４０）ビットのデータがコンバータ８０４にストアされ、これはＭより多い。そのため、第３のクロックサイクルで、コンバータ８０４は３２ビットのデータをスレーブデバイス８１２に提供し得る。第３のクロックサイクルの終わりにコンバータ８０４にストアされるビットの総数は８（４０−３２＝８）である。また、コンバータ８０４は、クロックサイクルの初めにコンバータ８０４にストアされるビットの数がＭに等しいか又はＭより多いとき、クロックサイクル毎に書き込みイネーブル信号８０８をスレーブデバイス８１２に送信する。
【００３８】
これにより、メモリが浪費されないことが保証される。また、マスタデバイス８０２ａとスレーブデバイス８１２（ＭとＮ）との動作速度の比は、整数である必要はない。コンバータ８０４は、マスタデバイス８０２ａから受信されたデータのフラクショナルパッキング、及びスレーブデバイス８１２へのフラクショナル転送を提供する。同様に、読み取り動作の間、コンバータは、スレーブデバイス８１２からマスタデバイス８０２ａへのデータの転送をサポートする。コンバータ８０４は、スレーブデバイス８１２からデータを読み取っているとき、クロックサイクル毎に読み取りイネーブル信号８１０をスレーブデバイス８１２に送信する。マスタデバイス８０２ａがクロックサイクル当たり２４ビットで動作するとき、スレーブデバイス８１２はクロックサイクル当たり３２ビットで動作する。読み取り動作の間、コンバータ８０４は、クロックサイクル当たり３２ビットの速度でスレーブデバイス８１２からデータを受信する。マスタデバイス８０２ａはクロックサイクル当たり２４ビットで動作するため、スレーブデバイス８１２からのデータをマスタデバイス８０２ａに直接的に書き込むことはできない。第１のクロックサイクルにおいて、コンバータ８０４はスレーブデバイス８１２から３２ビットのデータを受信し得、これらのビットはコンバータ８０４にストアされる。コンバータ８０４は２４ビットのデータをマスタデバイス８０２ａに提供し得、残りの８ビット（３２−２４＝８ビット）のデータをストアし得る。第２のクロックサイクルにおいて、コンバータ８０４は、スレーブデバイス８１２から別の３２ビットのデータを受信し得る。そのため、第２のクロックサイクルの初めに４２ビットのデータがコンバータ８０４にストアされ、これはＮより多い。第２のクロックサイクルで、コンバータ８０４は、２４ビットのデータをマスタデバイス８０２ａに提供し得る。第２のクロックサイクルの終わりに、コンバータ８０４にストアされるビットの総数は、１８（４２−２４＝１８）である。
【００３９】
「回路」という用語は、少なくとも単一の構成要素か、或いは、所望の機能を提供するために共に接続される複数の受動又は能動構成要素かのいずれかを意味する。「信号」という用語は、少なくとも１つの電流、電圧、電荷、データ、又は他の信号を意味する。
【００４０】
特許請求の範囲内で、説明した実施形態における改変、及び他の実施形態が可能である。
【図１】
0006575970.tif 000002
【図２】
0006575970.tif 000003
【図３ａ】
0006575970.tif 000004
【図３ｂ】
0006575970.tif 000005
【図４】
0006575970.tif 000006
【図５】
0006575970.tif 000007
【図６ａ】
0006575970.tif 000008
【図６ｂ】
0006575970.tif 000009
【図７】
0006575970.tif 000010
【図８】
0006575970.tif 000011