(57)【要約】【課題】  スキャン・チェーンを均等化し、均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入するためのシステム及び方法を提供する。【解決手段】  スキャン・チェーンを均等化するためのシステム及び方法、より具体的には、ロードを均等化したスキャン・チェーンを、階層的に設計された集積回路に挿入するためのシステム及び方法を提供する。この方法は、最大スキャン・チェーン長Ｌを推定又は算出するステップと、各階層ブロック内に長さＬの最大数のスキャン・チェーンを作成するステップとを含む。この方法は、各階層ブロック内の残りのスキャン・ビットを付加的なスキャン・チェーンに分配するステップと、最大長Ｌのスキャン・チェーンを用いることにより、そして、最大長ＬＲの付加的なスキャン・チェーンにあらゆる残りの最上位レベルのスキャン・ビットを加えたものを最大長Ｌの付加的なチップ・レベルのスキャン・チェーンに分配して最大長Ｌの付加的なチップ・レベルのスキャン・チェーンを形成することによって、チップ・レベルのスキャン・チェーンを作成するステップとをさらに含む。【選択図】      図１
2010527487.tif 000002
【特許請求の範囲】
【請求項１】
均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入する方法であって、
最大スキャン・チェーン長Ｌを推定又は算出するステップと、
各階層ブロック内で長さＬの最大数のスキャン・チェーンを作成するステップと、
各階層ブロック内のあらゆる残りのスキャン・ビットを、Ｌより短い最大長ＬＲの付加的なスキャン・チェーンに分配するステップと、
最大長Ｌの前記スキャン・チェーンを用いることにより、そして最大長ＬＲの前記付加的なスキャン・チェーンにあらゆる残りの最上位レベルのスキャン・ビットを加えたものを最大長Ｌの付加的なチップ・レベルのスキャン・チェーンに分配して最大長Ｌの前記付加的なチップ・レベルのスキャン・チェーンを形成することによって、チップ・レベルのスキャン・チェーンを作成するステップと
を含む方法。
【請求項２】
前記推定又は算出するステップは、前記階層的に設計された集積回路内の各ブロックに対して設けられる、請求項１に記載の方法。
【請求項３】
前記推定又は算出するステップは、前記階層的に設計された集積回路の設計に関する情報を用いて、前記最大スキャン・チェーン長Ｌを推定又は算出する、請求項１に記載の方法。
【請求項４】
前記情報は、スキャン・ビットの数、スキャン・チェーンの数、及び均等化基準のうちの少なくとも１つを含む、請求項３に記載の方法。
【請求項５】
最小数の最大長Ｌの付加的なチップ・レベルのスキャン・チェーンを作成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
最大長Ｌの前記付加的なチップ・レベルのスキャン・チェーンは、前記残りのスキャン・ビットを所望の数のスキャン・チェーンに均等に又は実質的に均等に分割することによって作成される、請求項１に記載の方法。
【請求項７】
前記最大スキャン・チェーン長Ｌは、平均長の所定のパーセンテージを超えない、請求項１に記載の方法。
【請求項８】
前記スキャン・チェーン長Ｌは、前記階層的に設計された集積回路内で均等化される、請求項１に記載の方法。
【請求項９】
最大スキャン・チェーン長Ｌを算出するステップと、
各階層ブロックｉ（ｉ＝１，２，．．．，ｍ）に対して、スキャン・ビットの総数Ｂｉを前記最大スキャン・チェーン長Ｌで割って、Ｍｉ個のスキャン・チェーンを作成するステップと、
前記割るステップからの残りのスキャン・ビットＲｉから残りのスキャン・チェーンを作成するステップと、
最上位レベルで前記スキャン・チェーンと前記残りのスキャン・チェーンとを縫合（stitching）して、最大長を超えない縫合されたスキャン・チェーンを形成するステップと、
を含む方法。
【請求項１０】
前記縫合するステップは、前記最上位レベルで作成されるスキャン・チェーンの個数“Ｎ”を指定するステップを含む、請求項９に記載の方法。
【請求項１１】
前記縫合するステップは、前記最上位レベルで作成される前記スキャン・チェーンの最大長を指定するステップを含む、請求項９に記載の方法。
【請求項１２】
作成されるスキャン・チェーンの総数は、全設計内のスキャン・ビットの総数を前記最大スキャン・チェーン長Ｌで割った商の丸め値に等しい、請求項１１に記載の方法。
【請求項１３】
前記Ｍｉ個のスキャン・チェーンは、前記最大スキャン・チェーン長Ｌに近いがこれを超えない長さを有する、請求項９に記載の方法。
【請求項１４】
前記最大スキャン・チェーン長Ｌはロードが均等化される、請求項９に記載の方法。
【請求項１５】
階層ブロック内のスキャン・ビットの総数（Ｂｉ）及び残りのスキャン・チェーンの最大長（ＬＲ）を与えるステップをさらに含む、請求項９に記載の方法。
【請求項１６】
前記残りのスキャン・チェーンは、所定の長さＬＲを超えない、請求項９に記載の方法。
【請求項１７】
前記残りのスキャン・ビットＲｉは均等に又は実質的に均等に分配されて、前記残りのスキャン・チェーンが作成される、請求項９に記載の方法。
【請求項１８】
前記残りのスキャン・チェーンＲｉの各々に対して最大長を決定するステップと、前記残りのスキャン・チェーンの数を最小にするステップとをさらに含む、請求項９に記載の方法。
【請求項１９】
前記算出するステップは、式Ｌ＝（Ｔ／Ｎ）×Ｆに基づき、
Ｔ＝前記全設計内のスキャン・ビットの総数であり、
Ｎ＝前記設計に挿入されるスキャン・チェーンの所望の数であり、
Ｆ＝前記設計に対する目標スキャン均等化係数である、
請求項９に記載の方法。
【請求項２０】
前記割るステップは、式ＭＬ＝Ｔ／Ｎを用いて前記スキャン・チェーンの最小長ＭＬを算出するステップをさらに含み、
Ｔ＝前記全設計内のスキャン・ビットの総数であり、
Ｎ＝前記設計に挿入されるスキャン・チェーンの総数である、
請求項９に記載の方法。
【請求項２１】
前記最小長ＭＬは、ロード均等化係数を含む、請求項２０に記載の方法。
【請求項２２】
前記ステップは、半導体デバイスを製造するのに用いられる、請求項９に記載の方法。
【請求項２３】
均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入するためのシステムであって、
スキャン・ビットの最大スキャン・チェーン長Ｌを算出するステップと、
前記最大スキャン・チェーン長ＬのＭｉ個のスキャン・チェーンを作成するステップであって、残りのスキャン・ビット数を生じる、ステップと、
前記残りのスキャン・ビット数から残りのスキャン・チェーンを作成するステップと、
最上位レベルで前記スキャン・チェーンと前記残りのスキャン・チェーンとを縫合するステップと
を実行するように動作可能なコンピュータ・インフラストラクチャを備えるシステム。
【請求項２４】
前記コンピュータ・インフラストラクチャは、前記最上位レベルで作成される前記スキャン・チェーンの最大長を指定するように動作可能である、請求項２３に記載のシステム。
【請求項２５】
前記コンピュータ・インフラストラクチャは、全設計内のスキャン・ビットの総数をＬ
で割った商の丸め値に等しい総数のスキャン・チェーンを作成するように動作可能である、請求項２３に記載のシステム。
【請求項２６】
前記コンピュータ・インフラストラクチャは、前記最大スキャン・チェーン長Ｌに近いがこれを超えない長さを有する前記Ｍｉ個のスキャン・チェーンを作成するように動作可能である、請求項２３に記載のシステム。
【請求項２７】
前記コンピュータ・インフラストラクチャは、前記最大スキャン・チェーン長Ｌのロードを均等化するように動作可能である、請求項２３に記載のシステム。
【請求項２８】
媒体内に具体化されたコンピュータ可読プログラムを有するコンピュータ使用可能媒体を含むコンピュータ・プログラムであって、
前記コンピュータ可読プログラムは、コンピュータ・デバイス上で実行されるとき、前記コンピュータ・デバイスが、
最大スキャン・チェーン長Ｌを推定又は算出するステップと、
各階層ブロック内に長さＬの最大数のスキャン・チェーンを作成するステップと、
各階層ブロック内の残りのスキャン・ビットを付加的なスキャン・チェーンに分配するステップと、
長さＬの前記スキャン・チェーン及び前記付加的なスキャン・チェーンを用いて、最大長ＬＲのスキャン・セグメントを最大長Ｌの付加的なチップ・レベルの最小数のチェーンに分配することによって、チップ・レベルのスキャン・チェーンを作成するステップと
を実行できるように、動作可能である
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン・チェーンを均等化するためのシステム及び方法に関し、より具体的には、本発明は、階層的に設計された集積回路内へのスキャン・チェーンのロードを均等化するためのシステム及び方法に関する。
【背景技術】
【０００２】
スキャン・チェーンは、集積回路（ＩＣ）内のあらゆるフリップフロップを設定して観察するための簡単な方法を与える「テスト容易化設計（Design For Test）」に用いられる技法である。スキャン・チェーンを用いることによって、各々の集積回路をテストして、製品のハードウェアが設計された製品機能に悪影響を及ぼし得る欠陥を含まないことを確認することができる。
【０００３】
テストは、一般に、自動テスト・パターン生成（ＡＴＰＧ）ツールのような自動テスト装置（AutomaticTest Equipment、ＡＴＥ）内で実行するテスト・プログラムによって駆動される。ＡＴＰＧは、デジタル回路に適用されるとき、テスタが正しい回路挙動と特定の障害によって引き起こされる誤りの回路挙動を区別することを可能にする、入力（又はテスト）シーケンスを見出すのに用いられる電子設計自動化ツールである。
【０００４】
テストは、テスト・パターンをＩＣのスキャン・チェーンにロードし、１つ又は複数のクロックを適用し、次いでスキャン・チェーンからの応答をアンロードすることによって、集積回路に適用される。このプロセスは何千回も繰り返され、最長スキャン・チェーンの長さが、通常、スキャン・チェーンをロード／アンロードするのに必要なテスタのサイクル数を規定する。また、知られているように、テスト・コストは、テスト時間に直接関連し、このテスト時間は、最長スキャン・チェーンの長さに直接関連する。例えば、より長いスキャン・チェーンはより長いロード及びアンロード時間を必要とするので、オーバーヘッド・コストを増加させる。
【０００５】
テスト・コストが直接テスト時間に関連するという事実を考えれば、最長スキャン・チェーンを最小にすることが理想的である。この理由により、固定数のスキャン・チェーンが与えられると、最長スキャン・チェーンの長さは、通常、全てのスキャン・チェーンが等しい長さであるときに最小になる。正確に等しい長さのスキャン・チェーンを実現することは非実現的であり得るが、最大長が平均長より僅か数パーセント長くなるようにスキャン・チェーンの長さを均等化することが望ましい。一例を挙げれば、スキャン・チェーンは、例えば、平均長の３％分散内にある場合に、均等化されていると考えることができる。
【０００６】
既知の実施において、幾つかのスキャン・チェーンは、平均より著しく短く、ゼロ長にもなる可能性があるが、それでもなお「均等化された」スキャン・チェーンをもたらすことができる。例えば、１００個のスキャン・チェーンに分配された１００，０００個のスキャン・セルを有する仮想的設計は、長さ１０３０の９７個のスキャン・チェーンと、長さ９０の１個のスキャン・チェーンと、長さ０の２個のスキャン・チェーンとを有し、それでもなお３％以内で均等化されたスキャン・チェーンを有することができる。言い換えれば、最長チェーンは、平均長（１０００）より３％長い（１０３０）。
【０００７】
また、最近まで、ＩＣ上のスキャン・チェーンの数は、スキャンに用いることができるピンの数によって、又はＩＣをテストするために用いられるテスト装置によって、制限されていた。（スキャン・チェーンの数は、典型的には１６乃至３２個であった）。しかしながら、オンチップのテスト・データ圧縮及び復元方法の出現で、スキャン・チェーンの数は、およそ２０倍に増加した。このため、典型的な１６乃至３２個のスキャン・チェーンではなく、５百又は６百個のスキャン・チェーンを有することが珍しくなくなった。
【０００８】
既存のツールは、使用可能なスキャン・チェーンにスキャン・ビットを配分するのが完全に自由であるとき、等しい長さのスキャン・チェーンを生成することができる。しかしながら、幾つかのスキャン・ビットが既にスキャン・セグメント内に予め接続されていて、またそれらの予め接続されたセグメントを分割する自由度がツールに与えられていないときには、結果は常に最適であるとは限らない。これに留意すると、階層的設計は、これらのツールに特定の問題を提示する。
【０００９】
階層的設計において、スキャンは、各々の階層ブロック又はモジュールに挿入する必要があり、そのため、予め接続されたセグメントは、最上位レベルのスキャン・ビットで縫合され（stitched）て、チップ・レベルのスキャン・チェーンを形成する。即ち、スキャン・チェーンは、各ブロックに対して作成され、次いで縫合されて、チップ・レベルのスキャン・チェーンを形成する。階層的設計内で均等化された長さのスキャン・チェーンを実現することを試みるための２つの既知のプロセスが存在するが、これら両方は後述の欠点を有する。
【００１０】
第１のプロセス（プロセス“１”）において、製品がＮ個のスキャン・チェーンを有するように指定されるならば、このプロセスは、各階層ブロック上にＮ個のほぼ等しい長さのスキャン・チェーンを作成する。設計の最上位レベルにおいて、このプロセスは、階層ブロックのスキャン・チェーンを縫合（stitch）し、最上位レベルのあらゆるスキャン・ビットをＮ個のスキャン・チェーンに均等に分配する。このことは、各階層ブロック内のスキャン・ビットの数がＮより遥かに大きい場合且つＮが数ダースを超えないときに、うまく行く。
【００１１】
別のプロセス（プロセス“２”）において、階層ブロック内のスキャン・ビットの数がＮより著しく大きくない場合には、このプロセスは、ほぼ等しい長さのスキャン・チェーンを作成する。このプロセスにおいて、最長スキャン・チェーンは、ある限度値（例えば、４００スキャン・ビット）を超えない。この限度値が全設計内のスキャン・ビットの総数に比べて小さい限り、階層ブロックのスキャン・チェーンを縫合して、所望の数のチップ・レベルのスキャン・チェーンを形成するための既知の方法を最上位レベルで用いることによって、スキャン・チェーンはかなり良好に均等化することができる。
【００１２】
しかしながら、これら両方のプロセス（即ち、プロセス“１”及びプロセス“２”）は、各階層ブロック上に過剰な数のスキャン・ピンを必要とする。例えば、５００個のスキャン・チェーンを有する設計において２０，０００スキャン・ビットを有する階層ブロックは、プロセス“１”を用いると、１０００個のスキャン・ピンを有する必要があり、又は、プロセス“２”を用いると、１００個のスキャン・ピンを有する必要がある（限度値は、１チェーン当り４００ビット）。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従って、当技術分野において、上述の欠陥及び制限を克服することの必要性が存在する。
【課題を解決するための手段】
【００１４】
本発明の第１の態様において、均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入する方法は、最大スキャン・チェーン長Ｌを推定又は算出するステップと、各階層ブロック内に最大数の長さＬのスキャン・チェーンを作成するステップと、各階層ブロック内のあらゆる残りのスキャン・ビットを、Ｌより短い最大長ＬＲの付加的なスキャン・チェーンに分配するステップと、最大長Ｌのスキャン・チェーンを用いることにより、そして最大長ＬＲの付加的なスキャン・チェーンにあらゆる残りの最上位レベルのスキャン・ビットを加えたものを最大長Ｌの付加的なチップ・レベルのスキャン・チェーンに分配して最大長Ｌの付加的なチップ・レベルのスキャン・チェーンを形成することにより、チップ・レベルのスキャン・チェーンを作成するステップとを含む。
【００１５】
実施形態において、推定又は算出するステップは、階層的に設計された集積回路内の各ブロックに対して設けられる。推定又は算出するステップは、階層的に設計された集積回路の設計に関する情報を用いて、最大スキャン・チェーン長Ｌを推定又は算出する。この情報は、スキャン・ビットの数、スキャン・チェーンの数、及び均等化基準のうちの少なくとも１つを含む。この方法は、最小数の最大長Ｌの付加的なチップ・レベルのスキャン・チェーンを作成するステップをさらに含む。最大長Ｌの付加的なチップ・レベルのスキャン・チェーンは、残りのスキャン・ビットを所望の数のスキャン・チェーンに均等に又は実質的に均等に分割することによって作成される。最大スキャン・チェーン長Ｌは、平均長の所定のパーセンテージを超えない。スキャン・チェーン長は、階層的に設計された集積回路内で均等化される。
【００１６】
本発明の別の態様において、この方法は、最大スキャン・チェーン長Ｌを算出するステップと、各階層ブロックｉ（ｉ＝１，２，．．．，ｍ）に対して、スキャン・ビットの総数Ｂｉを最大スキャン・チェーン長Ｌで割ってＭｉ個のスキャン・チェーンを作成するステップとを含む。この方法は、割るステップで残るスキャン・ビットＲｉから残りのスキャン・チェーンを作成するステップと、最上位レベルでスキャン・チェーンと残りのスキャン・チェーンを縫合して、最大長を越えない縫合スキャン・チェーンを形成するステップとをさらに含む。
【００１７】
実施形態において、縫合するステップは、最上位レベルで作成されるスキャン・チェーンの個数「Ｎ」を指定するステップを含む。他の実施形態において、縫合するステップは、最上位レベルで作成されるスキャン・チェーンの最大長を指定するステップを含む。この場合、作成されるスキャン・チェーンの総数は、Ｎより小さくすることができる。作成されるスキャン・チェーンの数は、全設計内のスキャン・ビットの総数をＬで割った商の丸め、又は、Ｎを全設計に対する目標スキャン均等化係数（Ｆ）で割った商の丸めに等しい。Ｍｉ個のスキャン・チェーンは、最大スキャン・チェーン長Ｌに近いが、それを超えない長さを有する。最大スキャン・チェーン長Ｌはロードが均等化される。
【００１８】
この方法は、階層ブロック内のスキャン・ビットの総数（Ｂｉ）及び残りのスキャン・チェーンの最大長（ＬＲ）を与えるステップをさらに含む。残りのスキャン・チェーンは、所定の長さＬＲを超えない。残りのスキャン・ビットＲｉは均等に又は実質的に均等に分配されて、残りのスキャン・チェーンが作成される。
【００１９】
更なる実施形態において、この方法は、残りのスキャン・チェーンＲｉの各々に対する最大長を決定するステップと、残りのスキャン・チェーンの数を最小にするステップとをさらに含む。算出するステップは、式Ｌ＝（Ｔ／Ｎ）×Ｆに基づき、ここで、
Ｔ＝全設計内のスキャン・ビットの総数、
Ｎ＝設計に挿入されるスキャン・チェーンの所望の数、及び、
Ｆ＝設計に対する目標スキャン均等化係数、である。
【００２０】
また更なる実施形態において、割るステップは、式ＭＬ＝Ｔ／Ｎを用いてスキャン・チェーンの最小長ＭＬを算出するステップを含み、ここで、
Ｔ＝全設計内のスキャン・ビットの総数、及び、
Ｎ＝設計に挿入されるスキャン・チェーンの総数、である。
最小長ＭＬは、ロードの均等化係数を含む。この方法ステップは、半導体デバイスを製造するのに用いられる。
【００２１】
本発明の別の態様において、均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入するためのシステムは、スキャン・ビットの最大スキャン・チェーン長Ｌを算出するステップと、最大スキャン・チェーン長ＬのＭｉ個のスキャン・チェーンを作成するステップであって、残りのスキャン・ビット数を生じる、ステップと、残りのスキャン・ビット数から残りのスキャン・チェーンを作成するステップと、最上位レベルでスキャン・チェーンと残りのスキャン・チェーンを縫合するステップとを実行するように動作可能な、コンピュータ・インフラストラクチャを備える。
【００２２】
更なる実施形態において、コンピュータ・インフラストラクチャは、最上位レベルで作成されるスキャン・チェーンの最大長を指定するように動作可能である。コンピュータ・インフラストラクチャは、Ｎより少ない総数のスキャン・チェーンを作成するように動作可能であり、ここで、Ｎは、全設計内のスキャン・ビットの総数をＬで割った商の丸め値、又はＮを全設計に対する目標スキャン均等化係数（Ｆ）で割った商の丸め値に等しい。コンピュータ・インフラストラクチャは、最大スキャン・チェーン長Ｌに近いが、これを超えない長さを有するＭｉ個のスキャン・チェーンを作成するように動作可能である。コンピュータ・インフラストラクチャは、最大スキャン・チェーン長Ｌのロードを均等化するように動作可能である。
【００２３】
本発明のさらに別の態様において、コンピュータ・プログラムは、媒体内に具体化されたコンピュータ可読プログラムを有するコンピュータ使用可能媒体を含む。コンピュータ可読プログラムは、コンピュータ・デバイス上で実行されるとき、コンピュータ・デバイスが、最大スキャン・チェーン長Ｌを推定又は算出し、各階層ブロック内の長さＬの最大数のスキャン・チェーンを作成し、各階層ブロック内の残りのスキャン・ビットを付加的なスキャン・チェーンに分配し、長さＬのスキャン・チェーン及び付加的なスキャン・チェーンを用いて、最大長ＬＲのスキャン・セグメントを最大長Ｌの付加的なチップ・レベルの最小数のチェーンに分配することによってチップ・レベルのスキャン・チェーンを作成することができるように、動作可能である。
【００２４】
本発明は、本発明の例示的な実施形態の非限定的な例として言及される複数の図面を参照して、以下の詳細な説明において説明される。
【図面の簡単な説明】
【００２５】
【図１】本発明によるプロセスを実施するための環境を示す。
【図２】本発明の実施形態によるプロセスを実施するフローチャートである。
【図３】本発明の実施形態によるプロセスを実施するフローチャートである。
【図４】本発明の実施形態による代替的な実施形態を実施するフローチャートである。
【発明を実施するための形態】
【００２６】
本発明は、スキャン・チェーン均等化するためのシステム及び方法に関し、より具体的には、本発明は、階層的に設計された集積回路内のスキャン・チェーンのロードを均等化するためのシステム及び方法に関する。より具体的な実施形態において、本発明は、階層的に設計された集積回路のブロックからの「残りの」スキャン・チェーンを縫合して、均等化されたチップ・レベルのスキャン・チェーンにするように構成される。次に、均等化されたチップ・レベルのスキャン・チェーンは、階層的に設計された集積回路に挿入される。このように、本発明の方法及びシステムを実施することによって、最上位レベルの配線を減少させることが可能である。
【００２７】
実施形態において、本発明のシステム及び方法は、階層的に設計された集積回路の各ブロック内に可能な限り多くの「長い」スキャン・チェーンを作成する。実施形態において、スキャン・チェーンは、最上位レベルの処理が如何なるスキャン・セルをもこれらのスキャン・チェーンに加えることがないほど十分に長い。「長い」スキャン・チェーンに割り当てられない各ブロック内の如何なるフリップフロップも、残りと見なされ、所定の長さの「より短い」スキャン・チェーンに割り当てられる。最上位レベルにおいて、最上位レベルのスキャン・チェーンのサブセットが、ブロック内の「長い」スキャン・チェーンを用いて作成される。残りのフリップフロップ及び任意の「より短い」スキャン・チェーンは、従来の「ロード均等化」アルゴリズムを用いて残りの最上位レベルのスキャン・チェーンに割り当てられる。このように、チップ・レベルで均等化されたスキャン・チェーンを縫合することが可能であり、このことが、スキャン・チェーンの数、特に、チップ・レベルでの短いスキャン・チェーンの数を減少させる。
【００２８】
本発明には、幾つかのツールを用いることができる。スキャン・チェーンを挿入するためのツールは、設計は異なるが、典型的には２つの形態を取る。第１の型のツール（ツール“１”）において、ユーザはスキャン・チェーンの所望の数を指定し、このツールは、設計内のスキャン・ビットを所望の数のスキャン・チェーンに均等に（又は可能な限り「均等に」）分割する。第２の型のツール（ツール“２”）においては、ユーザはスキャン・チェーンの所望の最大長を指定し、このツールは、設計内のスキャン・ビットの総数に基づいて、スキャン・チェーンの最小数を算出する。ひとたびこれが完遂されると、ツール“２”のプロセッサは、ツール“１”のプロセッサに戻って、スキャン・ビットをそれらのスキャン・チェーンに均等に割り当てる。
【００２９】
システム環境
図１は、本発明によるプロセスを管理するための例証的な環境１０を示す。例証的な環境１０は、スキャン・チェーンを均等化し、均等化されたスキャン・チェーンを階層的に設計された集積回路に挿入するように構成されたテスト容易化設計（ＤＦＴ）ツールである。
【００３０】
この環境は、コンピュータ・デバイス１４を有するコンピュータ・インフラストラクチャ１２を含む。コンピュータ・デバイス１４はプログラム１６を含み、このプログラムは、他のプロセスの間で、階層的に設計された集積回路内の各ブロックに対してＮ個の所定の長さのスキャン・チェーンを作成するように構成され、構造化される。コンピュータ・デバイス１４はさらに、Ｎ個の所定の長さのスキャン・チェーン内に割り当てられなかったあらゆる残りのフリップフロップが、所定の長さのより短いスキャン・チェーンに割り当てられるように構成される。より短いスキャン・チェーンを用いることによって、コンピュータ・デバイス１４は、チップ・レベルでスキャン・チェーンを作成するときに、より短いスキャン・チェーンを縫合して、所定の長さの１つ又は複数のより長いスキャン・チェーンを作成することができる。従って、チップ・レベルで、より短いスキャン・チェーンを縫合することによって、スキャン・チェーンの数、具体的には、チップ・レベルでの短いスキャン・チェーンの数を減少させることが可能となる。このように、コンピュータ・デバイスは、均等化されたスキャン・チェーンを階層的に設計された集積回路に挿入することができる。（本発明のこのプロセスは、図２乃至図４を参照してより詳細に説明するが、これらの各々はコンピュータ・デバイス１４によって実施することができる。）
【００３１】
さらに図１を参照すると、実施形態において、プログラム１６は実行可能コードを含み、このコードは、メモリ２２Ａ内に一時的又は恒久的にストアすることができる。実行可能コードは、本発明のプロセス・フローを表し、即ち、実行可能コードは、本発明のプロセスを実施するように構成される。メモリ２２Ａは、プログラム・コードの実際の実行中に用いられるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを引き出なくてはならない回数を減少させるための、少なくとも多少のプログラムの一時記憶を与えるキャッシュ・メモリとを含むことができる。
【００３２】
コンピュータ・インフラストラクチャ１２は、入力／出力（Ｉ／Ｏ）インターフェース２４、バス２６、記憶部“Ｓ”、ＲＯＭ、ＲＡＭ、及び外部Ｉ／Ｏデバイス／リソース２８をさらに含む。記憶部“Ｓ”は、任意の型の適切なデータベースとすることができる。外部Ｉ／Ｏデバイス／リソース２８は、キーボード、ディスプレイ、ポインティング・デバイス等とすることができる。
【００３３】
プロセッサ２０は、本発明のシステム及び方法のコンピュータ・プログラム・コード及び論理を実行し、これは、メモリ２２Ａ内にストアされる。コンピュータ・プログラム・コード等を実行しながら、プロセッサ２０は、データを、メモリ２２Ａ、記憶システム２２Ｂ、記憶部“Ｓ”及び／又はＩ／Ｏインターフェース２４から読み出し及び／又はそれらに書き込むことができる。バス２６は、コンピュータ・デバイス１４内のコンポーネントの各々の間の通信リンクを与える。
【００３４】
本発明のステップを実施するフロー図
図２乃至図４は、本発明の種々の実施形態のプロセスを実施するフロー図を表す。図２乃至図４のプロセスは、図１の環境において実施することができる。図２乃至図４のプロセスは、同様に本発明の高レベルのブロック図を表すことができる。
【００３５】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェア要素とソフトウェア要素の両方を含む実施形態の形を取ることができる。ハードウェア要素及びソフトウェア要素は、図１の環境を表すものとすることができる。ソフトウェア要素は、ファームウェア、常駐ソフトウェア、マイクロコード等とすることができる。さらに、本発明は、コンピュータ又は任意の命令実行システムにより又はそれと共に用いられるプログラム・コードを供給する、コンピュータ使用可能又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形態を取ることができる。これを説明する目的で、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスにより又はそれと共に用いられるプログラムを収容し、ストアし、通信し、伝搬し、又は移植することができる任意の装置とすることができる。この媒体は、電子、磁気、光学、電磁、赤外線、又は半導体システム（又は装置若しくはデバイス）、或いは伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体又は固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、固定磁気ディスク、及び光ディスクが含まれる。光ディスクの現在の例には、コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み書き（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００３６】
実施形態において、本発明は、一人又は複数の顧客のために本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャを作成し、維持し、配備し、サポートすること等を行うサービス・プロバイダによって提供することができる。その見返りとして、サービス・プロバイダは、顧客から報酬を受け取ることができる。
【００３７】
次に図２を参照すると、ステップ２００において、階層的に設計された集積回路の設計に関する情報が与えられて、このプロセスは、階層的に設計された集積回路内の各ブロックに対するスキャン・チェーンの最大長を算出又は推定する。設計に関する情報は、例えば、スキャン・ビットの数、スキャン・チェーンの数、均等化基準等を含むことができる。
【００３８】
ステップ２０５において、ブロックの各々に対して、本発明のプロセスは、可能な限り多くの最大長のスキャン・チェーンを作成する。即ち、このプロセスは、各階層ブロック内で最大数の長さＬのスキャン・チェーンを作成する。
【００３９】
ステップ２１０において、各ブロック内の残りのスキャン・ビットが、そのブロックの、より小さいスキャン・チェーンに分配される。実施形態において、より小さいスキャン・チェーンは、階層的に設計された集積回路内の各ブロックに対するスキャン・チェーンの最大長より短い。実施形態において、上述のツール“２”を用いて、より小さいスキャン・チェーンを作成することができる。
【００４０】
ステップ２１５において、既存のスキャン挿入ツールを用いて、階層的に設計された集積回路のチップ・レベルにおいてより小さいスキャン・チェーンを縫合し、より長いスキャン・チェーンにすることによって、チップ・レベルのスキャン・チェーンが作成される。例えば、一実施形態において、チップ・レベルのスキャン・チェーンは、最大長ＬＲのスキャン・セグメントを最大長Ｌの最小数の付加的なチップ・レベルのチェーンに分配することによって作成される。このように、階層的に設計された集積回路内でスキャン・チェーンを均等化することができる。
【００４１】
図３は、本発明によるプロセスを実施する好ましい実施形態を示す。ステップ３００において、階層的に設計された集積回路の設計に関する情報がツールに供給される。一例として、以下の情報が本発明により供給される。
Ｔ：全設計内のスキャン・ビットの総数、
Ｎ：設計に挿入されるスキャン・チェーンの所望の数、
Ｆ：設計に対する目標スキャン均等化係数（本明細書において「ロード均等化係数」とも呼ばれる）、
Ｂｉ：階層ブロック内のスキャン・ビットの総数、及び
ＬＲ：「残りのスキャン・チェーン」の最大長。
【００４２】
実施形態において、記号表示“Ｔ”、“Ｎ”、“Ｆ”、“Ｂｉ”及び“ＬＲ”は、任意の記号表示であり、本発明の限定的な特徴と考えるべきではない。記号表示Ｂｉに関して、“ｉ”は、階層ブロックの数を表し、ここで、ｉ＝１，２，．．．，“ｍ”であり、“ｍ”は、階層ブロック・インスタンスの数である。
【００４３】
実施形態において、目標スキャン均等化は約３％とすることができる。一例として、最長スキャン・チェーンが平均値を３％上回らない場合には、Ｆ＝１．０３である。しかし、例えば、３％乃至５％、１％乃至３％、さらに１％乃至２％の範囲のような他の目標スキャン均等化もまた本発明により企図されることを理解されたい。実施形態において、目標スキャン均等化は、約１０％より多く、又は、約１０％より多くの任意のパーセンテージ又は範囲とすることができる。
【００４４】
ロード均等化係数を決定するときに、多くの異なる因子を考慮に入れることができる。例えば、考慮に入れることができる因子には、各スキャン・チェーンの最大長のセット、及び、作成されるスキャン・チェーンの数が含まれる。非限定的な例証として、スキャン・チェーンの最大長が１０００スキャン・ビットに設定される場合、３％乃至５％のロード均等化係数を用いることが望ましい可能性があるが、しかしながら、スキャン・チェーンの最大長が１００スキャン・ビットに設定される場合には、１％乃至２％のロード係数とすることがより望ましい可能性がある
【００４５】
ステップ３０５において、このプロセスは、最大スキャン・チェーン長Ｌを算出する。一実施形態において、最大スキャン・チェーン長は、以下の式を用いて算出される。
Ｌ＝（Ｔ／Ｎ）×Ｆ                                    （１）
【００４６】
ステップ３１０において、各階層ブロックｉ（ｉ＝１，２，．．．，ｍ）に対して、スキャン・ビットの総数Ｂｉを最大スキャン・チェーン長Ｌで割って、各ブロックに対するスキャン・チェーンの数を生ずる。スキャン・チェーンの数は、整数、例えば、Ｍｉとなる。殆どの状況において、幾つか又は全てのブロック内のスキャン・ビット数によって、スキャン・ビット数Ｂｉを最大スキャン・チェーン長“Ｌ”で割った後、スキャン・ビット数、例えばＲｉ、が残ることになる。一例として、Ｌ＝２０６０及びＢｉ＝２０，０００である場合、Ｍｉ＝９及びＲｉ＝１４６０となる。
【００４７】
ステップ３１５において、このプロセスは、階層ブロック上に、最大長Ｌに近いがこれを超えない長さを有するＭｉ個のスキャン・チェーンを作成する。最大長Ｌは、例えば、ブロック内のスキャン・ビットの数を含む多くの異なる変数に依存し得る。実施形態において、最大長は、例えば、３％乃至５％のロード均等化係数のような目標スキャン均等化パーセンテージを既に含む。
【００４８】
ステップ３２０において、このプロセスは、実施形態において、長さＬＲを超えない付加的な「残りのスキャン・チェーン」を、階層ブロック上に作成する。実施形態において、長さＬＲは、最大長の約１０％に設定することができるが、例えば、初めに設定された最大長に応じて、スキャン・ビットの他のパーセンテージ又は固定数もまた本発明で企図されている。ステップ３２０のプロセスは、階層的設計内の各ブロックに対して繰り返される。
【００４９】
一実施形態において、あらゆる残りのスキャン・ビットＲｉを均等に分配して、「残りのスキャン・チェーン」を作成することができるが、本発明は、さらに他の分配を企図している。残りのスキャン・ビットＲｉをほぼ等しい長さのスキャン・チェーンに分配するプロセスは、既存のスキャン挿入ツールを用いて完遂することができる。階層的設計のブロックがステップ３１５において挿入されたＭｉ個のスキャン・チェーンを有し、そしてスキャン挿入ツールがＪｉ個のスキャン・チェーン（Ｊｉ＞Ｍｉ）を挿入するように命じられる場合には、ツールは、残りのＲｉスキャン・ビットをＪｉ−Ｍｉ個のスキャン・チェーンに分配し、既存のＭｉ個のスキャン・チェーンは不変のままにする。
【００５０】
代替的な手法において、本発明は、残りのスキャン・ビットＲｉを他の仕方で（例えば、不均等に）「残りのスキャン・チェーン」に分配することができることをさらに企図している。この手法においては、必須ではないが、結果として得られる残りのスキャン・チェーンの各々が特定の分散（例えば、均等化ロード係数）の範囲内にあることが好ましい。例えば、「残りのスキャン・チェーン」の目標スキャン・ロード均等化は、約３％乃至５％とすることができるが、本発明は、他の目標スキャン・ロード均等化もまた企図している。また、実施形態において、残りのスキャン・チェーンの数を最小にすることが好ましい。また、更なる実施形態においては、分配方法に関係なく、「残りのスキャン・チェーン」の分配のいずれも長さＬＲを超えてはならない（実施形態において、ロード均等化係数に加えて）。
【００５１】
ステップ３２０の非限定的な例証として、ＬＲ＝４００及びＲｉ＝１４６０である場合、残りのスキャン・ビットＲｉは、均等に分配して長さ３６５の４つの均等なスキャン・チェーンにすることができる。均等な長さを有することが好ましいが、ステップ３２０の別の非限定的な例証において、ＬＲ＝４００及びＲｉ＝１４６０である場合、スキャン・ビットは、異なる長さを有する４つのグループに分割することができる。例えば、グループ“Ａ”、“Ｂ”及び“Ｃ”は、各々が４００の最大長を有することができ、グループ“Ｄ”は、２６０の長さを有することができる。いずれの分配スキームにおいても、作成された残りのスキャン・チェーンの数を最小にすることが好ましい。このような事情なので、上記の例を用いれば、４つだけのグループを作成することが好ましい。
【００５２】
ステップ３２５において、本発明のプロセスは、既存のツールを用いて、最上位レベルでスキャン・チェーンを作成する。一例として、ツール“１”を用いる場合、ユーザは、“Ｎ”個のスキャン・チェーンを作成することをツールに指定する。ツール“２”を用いる場合には、ユーザは、最大長Ｌのスキャン・チェーンを作成することをツールに指定する。実施形態において、作成されるスキャン・チェーンの総数は、“Ｎ”より少なくすることができ、この場合、作成されるスキャン・チェーンの数は、丸め値（Ｔ／Ｌ）に等しく、これは丸め値（Ｎ／Ｆ）にも等しい。従って、例えば、一実施形態において、チップ・レベルのスキャン・チェーンは、最大長ＬＲのスキャン・セグメントを、最小数の最大長Ｌの付加的なチップ・レベルのチェーンに分配することによって作成することができる。
【００５３】
図４は、本発明によるプロセスを実施する代替的な実施形態を示す。図４の処理ステップは、図３を参照して示し説明した処理ステップにステップ３１５に対する変更を加えたものと実質的に同じであり、ここでその変更物はステップ４１５’で示す。
【００５４】
より具体的には、ステップ４００において、階層的に設計された集積回路の設計に関する情報がツールに供給される。この情報は、プロセス・ステップ３００を参照して開示されたものと同じ情報とすることができ、同じ又は類似の実施形態を含む。ステップ４０５において、このプロセスは、式（１）を用いて最大スキャン・チェーン長を算出する。
【００５５】
ステップ４１０において、各階層ブロックｉ（ｉ＝１，２，．．．，ｍ）に対して、スキャン・ビットの総数Ｂｉを最大スキャン・チェーン長“Ｌ”で割って、各ブロックのスキャン・チェーンの数を生ずる。スキャン・チェーンの数は、整数、例えばＭｉとなり、残りはＲｉとなる。
【００５６】
ステップ４１５’において、本発明のプロセスは、以下に示す式（２）を用いてスキャン・チェーンの最小長ＭＬを算出する。
ＭＬ＝Ｔ／Ｎ                                          （２）
一実施形態において、最小長ＭＬは、階層的設計内で予め接続されたスキャン・セグメントのために算出される。さらに、最大長と同様に、最小長ＭＬもまた、例えば、３％乃至５％のロード均等化係数のような、目標スキャン均等化パーセンテージを含むことができる。さらに、この処理ステップにおいて、このプロセスは、階層ブロック上に、最大長Ｌに近いがこれを超えない長さを有するＭｉ個のスキャン・チェーンを作成する。
【００５７】
このように、ステップ４１５’のプロセスを精緻化して、階層ブロック上に、最小でも指定された最小長ＭＬの大きさで、最大長Ｌを超えないＭｉ個のスキャン・チェーンを作成する。再び、最大長Ｌは、例えば、ブロック内のスキャン・ビット数を含む多くの異なる変数に依存し、実施形態において、例えば、３％乃至５％のロード均等化係数のような目標スキャン均等化パーセンテージを既に含む。
【００５８】
ステップ４２０において、このプロセスは、実施形態において、長さＬＲを超えない付加的な「残りのスキャン・チェーン」を階層ブロック上に作成する。ステップ４２０のプロセスは、設計内の各階層ブロックに対して繰り返される。ステップ４２０は、ステップ３２０に関して説明した種々の実施形態を実施することができるので、ここではさらに説明することはしない。
【００５９】
ステップ４２５において、本発明のプロセスは、既存のツールを用いて最上位レベルのスキャン・チェーンを作成する。一例として、ツール“１”を用いる場合、ユーザは、Ｎ個のスキャン・チェーンを作成することをツールに指定する。ツール“２”を用いる場合には、ユーザは、最大長“Ｌ”のスキャン・チェーンを作成することをツールに指定する。実施形態において、作成されるスキャン・チェーンの総数は、Ｎより小さくすることができ、ここで、作成されるスキャン・チェーンの数は、丸め値（Ｔ／Ｌ）に等しく、これは丸め値（Ｎ／Ｆ）にも等しい。
【００６０】
使用例
例証的な一例においては、通常、過剰な数のスキャン・ピンが各階層ブロック上で必要とされる。例えば、５００個のスキャン・チェーンを有する設計内の、２０，０００スキャン・ビットを有する階層ブロックは、プロセス“１”を用いると、１０００個のスキャン・ピンを有することが必要となり、或いはプロセス“２”を用いると、１００個のスキャン・ピンを有することが必要となる（限度値は、１チェーン当り４００ビット）。しかしながら、本発明のシステム及び方法を実施することによって、５００個のスキャン・チェーンに分配される合計１００万個のスキャン・ビットを有するチップ上の、２０，０００スキャン・ビットの同じ階層ブロックは、３％（Ｆ＝１．０３）以内で均等化され、そして残りのスキャン・チェーンが最大長ＬＲ＝４００に制限される場合には、２６個のスキャン・ピン（１３個のスキャン・チェーン）より多くを必要とせず、階層ブロックに対してわずか２０個のスキャン・ピン（１０個のスキャン・チェーン）を有することができる。
【００６１】
別の実施例においては、図３のプロセスを用いると、ツールには以下の情報が供給される。
チップ内のスキャン・ビットの総数はＴ＝４００，０００であり、
スキャン・チェーンの所望の数はＮ＝４００であり、
目標スキャン均等化係数はＦ＝１．０３であり、
各スキャン・チェーンの最大長は、Ｌ＝（Ｔ／Ｎ）×Ｆ＝１０３０スキャン・ビットである必要があり、
ブロックＡは、１０３，０００スキャン・ビットを有し、ブロックＢは、２５７，０００スキャン・ビットを有し、ブロックＣは、２９，０００スキャン・ビットを有し、モジュール（ブロック）Ｄは、１０，０００スキャン・ビットを有し、そして設計の最上位レベルに１０００スキャン・ビットが存在する。
【００６２】
各階層ブロックｉ（ｉ＝１，２，．．．，ｍ）に対して、スキャン・ビットの総数を最大スキャン・チェーン長で割って、各ブロックに対するスキャン・チェーンの数がもたらされる。この例では、
ブロックＡは、１００個のスキャン・チェーンを有し、
ブロックＢは、２４９個のスキャン・チェーンを有し、残りは５３０スキャン・ビットであり、
ブロックＣは、２８個のスキャン・チェーンを有し、残りは１６０スキャン・ビットであり、
ブロックＤは、９個のスキャン・チェーンを有し、残りは７３０スキャン・ビットである。
【００６３】
ブロックＢ、ブロックＣ及びブロックＤ内の残りのスキャン・ビットを用いて、実施形態において、長さＬＲを超えない付加的な「残りのスキャン・チェーン」を階層ブロック上に作成する。この説明において、長さＬＲは、１００スキャン・ビットに設定され、これは、最大長１０３０のサイズのおよそ１０％である。ブロックＣについては、このことは、各々が８０スキャン・ビットの等しい長さの、２つの付加的なスキャン・チェーンをもたらす。しかしながら、これらのスキャン・チェーンの各々は、例えば、１００スキャン・ビットの第１のスキャン・チェーン、及び６０スキャン・ビットの第２のスキャン・チェーンのように、異なる長さにすることができる。ブロックＢ及びブロックＤは、それぞれ６個及び８個の付加的な、各々最大長１００のスキャン・チェーンを有する。
【００６４】
この実施例は、既存のツールを用いて、最上位レベルでのスキャン・チェーンの作成を続ける。一例として、ツール“１”を用いて、ユーザは、Ｎ（４００）個のスキャン・チェーンを作成することをツールに指定する。ツール“２”を用いる場合、ユーザは、最大長Ｌ（１０３０）のスキャン・チェーンを作成することをツールに指定する。いずれのツールも、ブロックＡから１００個のスキャン・チェーン、ブロックＢから２４９個のスキャン・チェーン、ブロックＣから２８個のスキャン・チェーン、及びブロックＤから９個のスキャン・チェーンを用いて、長さ１０３０の３８６個のスキャン・チェーンを作成する。ツール“１”は、残りの２４２０スキャン・ビット（例えば、ブロックＢから５３０個、ブロックＣから１６０個、ブロックＤから７３０個、及び最上位レベルから１０００個）を１４個の付加的なスキャン・チェーンに分配することを試みて、平均長１０００の合計４００個のスキャン・チェーンを達成する。ツール“２”は、１０３０の指定された最大長を条件として、残りの２４２０スキャン・ビットを可能な限り少数のスキャン・チェーンに分配することを試みて、わずか３８９個のスキャン・チェーンを達成する。
【００６５】
半導体デバイス
本明細書で説明したシステム及び方法は、半導体デバイスの製造及び／又はテストに用いることができる。半導体デバイスは、集積回路チップの設計の一部分とすることができる。実施形態において、チップ設計は、グラフィカル・コンピュータ・プログラミング言語で作成され、コンピュータ記憶媒体（例えば、ディスク、テープ、物理ハード・ドライブ、又はストレージ・アクセス・ネットワークにおけるような仮想ハード・ドライブ）の内部にストアされる。設計者がチップ、又はチップ製造に用いられるフォトリソグラフィ・マスクを製造しない場合には、設計者は、結果として得られた設計を、物理的な手段によって（例えば、設計をストアする記憶媒体のコピーを供給することによって）、或いは電子的に（例えば、インターネットを介して）製造事業体（such entities）に直接又は間接に伝達する。次に、ストアされた設計は、フォトリソグラフィ・マスクの製造に適した形式（例えば、ＧＤＳＩＩ）に変換され、これらのマスクは、典型的には、ウェハ上に形成される当該チップ設計の複数のコピーを含む。フォトリソフラフィ・マスクを用いて、エッチングされるか又は他の方法で処理される、ウェハ（及び／又はその上の層）の領域を画定する。
【００６６】
上述の方法は、集積回路チップの製造に用いられる。結果として得られた集積回路チップは製造業者により、裸のダイのような未加工のウェハ形態で（即ち、複数のパッケージされていないチップを有する単一のウェハとして）、又はパッケージされた形態で、配布することができる。後者の場合、チップは、単一チップ・パッケージ（マザーボードに取り付けられたリードを有するプラスチック・キャリア、又は他のより高レベルのキャリアなど）の内部に、或いはマルチチップ・パッケージ（表面相互接続又は埋込み相互接続のいずれか又はその両方を有するセラミック・キャリアなど）の内部に取り付けられる。いずれの場合でも、チップは次に、他のチップ、個別の回路素子、及び／又は他の信号処理デバイスと共に統合されて、（ａ）マザーボードのような中間製品又は（ｂ）最終製品の一部分となる。最終製品は、おもちゃ及び他の低価格の用途から、ディスプレイ、キーボード又は他の入力デバイス、及び中央処理装置を有する最新式コンピュータ製品に至る、集積回路チップを含む任意の製品とすることができる。
【００６７】
本発明は、実施形態に関して説明したが、当業者であれば、本発明は、添付の特許請求の範囲の精神及び範囲内で修正を加えて実施することができることを認識するであろう。
【符号の説明】
【００６８】
１０：プロセスを管理するための例証的な環境
１２：コンピュータ・インフラストラクチャ
１４：コンピュータ・デバイス
１６：プログラム
２０：プロセッサ
２２Ａ：メモリ
２２Ｂ：記憶システム
２４：入力／出力（Ｉ／Ｏ）インターフェース
２６：バス
２８：外部Ｉ／Ｏデバイス／ソース
【図１】
2010527487.tif 000003
【図２】
2010527487.tif 000004
【図３】
2010527487.tif 000005
【図４】
2010527487.tif 000006
【手続補正書】
【提出日】平成21年12月11日(2009.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入する方法であって、
最大スキャン・チェーン長Ｌを推定又は算出するステップと、
各階層ブロック内で長さＬの最大数のスキャン・チェーンを作成するステップと、
各階層ブロック内のあらゆる残りのスキャン・ビットを、Ｌより短い最大長ＬＲの付加的なスキャン・チェーンに分配するステップと、
最大長Ｌの前記スキャン・チェーンを用いることにより、そして最大長ＬＲの前記付加的なスキャン・チェーンにあらゆる残りの最上位レベルのスキャン・ビットを加えたものを最大長Ｌの付加的なチップ・レベルのスキャン・チェーンに分配して最大長Ｌの前記付加的なチップ・レベルのスキャン・チェーンを形成することによって、チップ・レベルのスキャン・チェーンを作成するステップと
を含む方法。
【請求項２】
前記推定又は算出するステップは、前記階層的に設計された集積回路内の各ブロックに対して設けられる、請求項１に記載の方法。
【請求項３】
前記推定又は算出するステップは、前記階層的に設計された集積回路の設計に関する情報を用いて、前記最大スキャン・チェーン長Ｌを推定又は算出する、請求項１に記載の方法。
【請求項４】
前記情報は、スキャン・ビットの数、スキャン・チェーンの数、及び均等化基準のうちの少なくとも１つを含む、請求項３に記載の方法。
【請求項５】
最小数の最大長Ｌの付加的なチップ・レベルのスキャン・チェーンを作成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
最大長Ｌの前記付加的なチップ・レベルのスキャン・チェーンは、前記残りのスキャン・ビットを所望の数のスキャン・チェーンに均等に又は実質的に均等に分割することによって作成される、請求項１に記載の方法。
【請求項７】
前記最大スキャン・チェーン長Ｌは、平均長の所定のパーセンテージを超えない、請求項１に記載の方法。
【請求項８】
前記スキャン・チェーン長Ｌは、前記階層的に設計された集積回路内で均等化される、請求項１に記載の方法。
【請求項９】
最大スキャン・チェーン長Ｌを算出するステップと、
各階層ブロックｉ（ｉ＝１，２，．．．，ｍ）に対して、スキャン・ビットの総数Ｂｉを前記最大スキャン・チェーン長Ｌで割って、Ｍｉ個のスキャン・チェーンを作成するステップと、
前記割るステップからの残りのスキャン・ビットＲｉから残りのスキャン・チェーンを作成するステップと、
最上位レベルで前記スキャン・チェーンと前記残りのスキャン・チェーンとを縫合（stitching）して、最大長を超えない縫合されたスキャン・チェーンを形成するステップと、
を含む方法。
【請求項１０】
前記縫合するステップは、前記最上位レベルで作成されるスキャン・チェーンの個数“Ｎ”を指定するステップを含む、請求項９に記載の方法。
【請求項１１】
前記縫合するステップは、前記最上位レベルで作成される前記スキャン・チェーンの最大長を指定するステップを含む、請求項９に記載の方法。
【請求項１２】
作成されるスキャン・チェーンの総数は、全設計内のスキャン・ビットの総数を前記最大スキャン・チェーン長Ｌで割った商の丸め値に等しい、請求項１１に記載の方法。
【請求項１３】
前記Ｍｉ個のスキャン・チェーンは、前記最大スキャン・チェーン長Ｌに近いがこれを超えない長さを有する、請求項９に記載の方法。
【請求項１４】
前記最大スキャン・チェーン長Ｌはロードが均等化される、請求項９に記載の方法。
【請求項１５】
階層ブロック内のスキャン・ビットの総数（Ｂｉ）及び残りのスキャン・チェーンの最大長（ＬＲ）を与えるステップをさらに含む、請求項９に記載の方法。
【請求項１６】
前記残りのスキャン・チェーンは、所定の長さＬＲを超えない、請求項９に記載の方法。
【請求項１７】
前記残りのスキャン・ビットＲｉは均等に又は実質的に均等に分配されて、前記残りのスキャン・チェーンが作成される、請求項９に記載の方法。
【請求項１８】
前記残りのスキャン・チェーンＲｉの各々に対して最大長を決定するステップと、前記残りのスキャン・チェーンの数を最小にするステップとをさらに含む、請求項９に記載の方法。
【請求項１９】
前記算出するステップは、式Ｌ＝（Ｔ／Ｎ）×Ｆに基づき、
Ｔ＝前記全設計内のスキャン・ビットの総数であり、
Ｎ＝前記設計に挿入されるスキャン・チェーンの所望の数であり、
Ｆ＝前記設計に対する目標スキャン均等化係数である、
請求項９に記載の方法。
【請求項２０】
前記割るステップは、式ＭＬ＝Ｔ／Ｎを用いて前記スキャン・チェーンの最小長ＭＬを算出するステップをさらに含み、
Ｔ＝前記全設計内のスキャン・ビットの総数であり、
Ｎ＝前記設計に挿入されるスキャン・チェーンの総数である、
請求項９に記載の方法。
【請求項２１】
前記最小長ＭＬは、ロード均等化係数を含む、請求項２０に記載の方法。
【請求項２２】
前記ステップは、半導体デバイスを製造するのに用いられる、請求項９に記載の方法。
【請求項２３】
均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入するためのシステムであって、
スキャン・ビットの最大スキャン・チェーン長Ｌを算出するステップと、
前記最大スキャン・チェーン長ＬのＭｉ個のスキャン・チェーンを作成するステップであって、残りのスキャン・ビット数を生じる、ステップと、
前記残りのスキャン・ビット数から残りのスキャン・チェーンを作成するステップと、
最上位レベルで前記スキャン・チェーンと前記残りのスキャン・チェーンとを縫合するステップと
を実行するように動作可能なコンピュータ・インフラストラクチャを備えるシステム。
【請求項２４】
前記コンピュータ・インフラストラクチャは、前記最上位レベルで作成される前記スキャン・チェーンの最大長を指定するように動作可能である、請求項２３に記載のシステム。
【請求項２５】
前記コンピュータ・インフラストラクチャは、全設計内のスキャン・ビットの総数をＬで割った商の丸め値に等しい総数のスキャン・チェーンを作成するように動作可能である、請求項２３に記載のシステム。
【請求項２６】
前記コンピュータ・インフラストラクチャは、前記最大スキャン・チェーン長Ｌに近いがこれを超えない長さを有する前記Ｍｉ個のスキャン・チェーンを作成するように動作可能である、請求項２３に記載のシステム。
【請求項２７】
前記コンピュータ・インフラストラクチャは、前記最大スキャン・チェーン長Ｌのロードを均等化するように動作可能である、請求項２３に記載のシステム。
【請求項２８】
均等化された長さのスキャン・チェーンを階層的に設計された集積回路に挿入するプログラムであって、
前記コンピュータ可読プログラムは、コンピュータ・デバイス上で実行されるとき、前記コンピュータ・デバイスが、
最大スキャン・チェーン長Ｌを推定又は算出するステップと、
各階層ブロック内に長さＬの最大数のスキャン・チェーンを作成するステップと、
各階層ブロック内の残りのスキャン・ビットを付加的なスキャン・チェーンに分配するステップと、
長さＬの前記スキャン・チェーン及び前記付加的なスキャン・チェーンを用いて、最大長ＬＲのスキャン・セグメントを最大長Ｌの付加的なチップ・レベルの最小数のチェーンに分配することによって、チップ・レベルのスキャン・チェーンを作成するステップと
をコンピュータに実行させるプログラム。
【国際調査報告】
2010527487.tif 000007