(57)【要約】【課題】  ＬＳＳＤシステム内のテスト・クロックを同期化して、クロック信号が全てのＬＳＳＤレジスタの入力にほぼ同時に到達するようにする方法を提供する。【解決手段】  この方法は、テスト・クロックを分配するためにラッチをパイプライン化することによるものであり、その場合、全てのパイプライン・ラッチはシステム・クロックによって同期化される。この拡張は、テスト・クロックが切り替わる周波数を向上させ、テスト時間を減少させることによってテスト・スループットを改善し、結果として従来のＬＳＳＤ法に関連する利益のいずれをも損なうことなく、システム・テストに必要なテスト・ハードウェア及び全体の時間の大幅な減少をもたらす。この方法はさらに、所望のＬＢＩＳＴ速度に応じて調整される分配ネットワークを用いて、チップ全体にわたるポイントへのテスト・クロック信号の分配を促進する。【選択図】      図４
2008539523.tif 000002
【特許請求の範囲】
【請求項１】
レベル・センシティブ・スキャン設計（ＬＳＳＤ）システムにおけるテスト・クロックの周波数を向上させるための方法であって、非重複のシフトＡ及びシフトＢテスト・クロックが全てのＬＳＳＤレジスタの入力において同時に立ち上がり、立ち下がるように同期化され、
前記システムの最も遠いコーナーに到達するのに必要なパイプライン・ステージの数を決定して前記パイプラインの深さを確立するステップと、
前記ＬＳＳＤレジスタを、高速動作を保証するのに必要な前記パイプライン・ステージの数によって規定される領域にグループ分けするステップと、
前記パイプラインの深さを、前記ＬＳＳＤレジスタの入力において信号の同時の立ち上がり又は立ち下がりを達成するために釣り合わせるステップと、
前記シフトＡ及びシフトＢテスト・クロックの高速同期伝搬を可能にするために、全てのテスト・クロックが高速で分配されることを保証し、全ての前記パイプライン・ラッチが前記ＬＳＳＤレジスタの近くに配置されることを検証するステップと
を含む方法。
【請求項２】
テスト・クロック動作の高速性能を保証するために、前記パイプライン・ラッチの配置を繰り返して調整するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記パイプライン・ラッチをオーバーライドしてシステム・クロックの同期化の影響を除去するために、そして前記シフトＡ及びシフトＢテスト・クロック信号の直接制御を達成するために、制御が前記パイプライン・ラッチに加えられる、請求項１に記載の方法。
【請求項４】
前記フラッシュ制御は、前記システム全体にわたって前記シフトＡ及びシフトＢテスト・クロックを分配する全ての前記パイプライン・ラッチに結合される、請求項３に記載の方法。
【請求項５】
前記フラッシュ制御は主入力によって与えられる、請求項３に記載の方法。
【請求項６】
前記フラッシュ制御は、アクティブでないときは、前記システム・クロックによる前記テスト・クロックの伝搬の制御を可能にする、請求項３に記載の方法。
【請求項７】
前記フラッシュ制御は、通常のシステム・モードの間、前記パイプライン・ラッチ内の切替え機能を抑制して電力を節約する、請求項３に記載の方法。
【請求項８】
前記ＬＳＳＤレジスタをグループ分けするステップは、前記システムの階層区分化によって実行され、前記区分内のＬＳＳＤレジスタの位置によって決定される、請求項１に記載の方法。
【請求項９】
前記シフトＡ及びシフトＢテスト・クロックは、高速動作のためにローカルに同期化されてビルト・イン・セルフ・テスト（ＢＩＳＴ）のテスト時間を減少させる、請求項１に記載の方法。
【請求項１０】
前記ＢＩＳＴは、論理ＢＩＳＴ又はアレイＢＩＳＴである、請求項９に記載の方法。
【請求項１１】
前記パイプラインの深さを釣り合わせる前記ステップは、前記ＬＳＳＤレジスタの各々の領域の近くにパイプライン・ラッチを配置するステップと、前記ＬＳＳＤレジスタの各々の入力において等しいパイプラインの深さを保証するステップとを含む、請求項１に記載の方法。
【請求項１２】
全ての前記シフトＡ及びシフトＢテスト・クロックが高速で分配されることを保証する前記ステップは、配線分配、バッファリング、遅延、及び全ての前記パイプライン・ラッチのローディングを分析するステップをさらに含む、請求項１に記載の方法。
【請求項１３】
全ての前記シフトＡ及びシフトＢテスト・クロック信号は、許容できるサイクル時間内に、次のパイプライン・ラッチにおいて又は前記ＬＳＳＤレジスタの入力において受け取られる、請求項１２に記載の方法。
【請求項１４】
前記シフトＡ及びシフトＢテスト・クロックの高速動作を可能にするために、前記パイプライン・ラッチの配置又は構成を繰り返し調整するステップをさらに含む、請求項１に記載の方法。
【請求項１５】
レベル・センシティブ・スキャン設計（ＬＳＳＤ）システムにおけるテスト・クロックの周波数を向上させるための方法ステップであって、非重複のシフトＡ及びシフトＢテスト・クロックが全てのＬＳＳＤレジスタの入力において同時に立ち上がり、立ち下がるように同期化され、
前記システムの最も遠いコーナーに到達するのに必要なパイプライン・ステージの数を決定して前記パイプラインの深さを確立するステップと、
前記ＬＳＳＤレジスタを、高速動作を保証するのに必要な前記パイプライン・ステージの数によって規定される領域にグループ分けするステップと、
前記パイプラインの深さを、前記ＬＳＳＤレジスタの入力において信号の同時の立ち上がり又は立ち下がりを達成するために釣り合わせるステップと、
前記シフトＡ及びシフトＢテスト・クロックの高速同期伝搬を可能にするために、全てのテスト・クロックが高速で分配されることを保証し、全ての前記パイプライン・ラッチが前記ＬＳＳＤレジスタの近くに配置されることを検証するステップと
を含む方法を実行するための、機械によって実行可能な命令のプログラムを実体的に組み入れた、機械可読のプログラム記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、設計自動化（Design Automation）の分野に関し、より具体的には、超大規模集積（ＶＬＳＩ）回路デバイス内に組み入れられる複合組合せ及び順序論理回路の設計に関する。
【背景技術】
【０００２】
ＶＬＳＩ回路デバイス内のどこにでも生じる障害は、それらの影響を、デバイスのテスト可能な出力に到達する前に順序論理内の格納又は記憶素子から形成される多数のフィードバック・ループを介して伝搬させる可能性がある。レベル・センシティブ・スキャン設計（Level Sensitive Scan Design（ＬＳＳＤ））ルールは、このフィードバック・ループを介する伝搬によってもたらされるテストの複雑化を除去するために考案されたものである。Ｅ．Ｂ．Ｅｉｃｈｅｌｂｅｒｇｅｒ及びＴ．Ｗ．Ｗｉｌｌｉａｍｓにより非特許文献１で説明されたように、ＬＳＳＤルールは、論理回路の記憶素子上にクロック制御される構造を与え、記憶素子の全てが、テスト入力又は出力ポイントの両方としての使用のためにアクセス可能となるように、これらの記憶素子を相互接続してシフト・レジスタ走査パスを形成することを要求する。従って、走査パスにより、記憶素子の１つが論理回路内のどこに存在しても、テスト入力信号を導入してテスト結果を観察することができる。テスト信号を導入し或いはテスト結果を観察するための論理回路をあらゆる記憶素子に組み入れることができれば、組合せ及び順序論理を、テスト目的のための遥かに単純な組合せ論理として扱うことが可能になり、従ってテスト生成及び分析がかなり単純化される。
【０００３】
単一又は多数の走査パスをＬＳＳＤルールの下で設けることができる。当該技術分野の実施者であれば、単一又は多数パスの動作モード間を切り替えるために、制御手段をＬＳＳＤ走査回路に設けることができることを容易に理解するであろう。
【０００４】
ＬＳＳＤは、現在、業界標準の走査設計方法となった。この方法は、テスト及びデバッグ目的のためにラッチの入力又は出力のデータを走査するのに別々のテスト・クロック（機能クロックに対する）を用いる。この方法は、ＡＳＩＣにおけると同様に多くのマイクロプロセッサ設計の業界にわたって広く用いられている。考察の目的のために、通常のＬＳＳＤレジスタの部分を図１に示す。図１を参照すると、見本のＬＳＳＤレジスタの部分は、マスター（１００、１０１）及びスレーブ（２００、２０１）ラッチからなり、マスター・ラッチは２つの入力ポートを有することが分かる。示されたスキームにおいては、システム・クロックがアクティブにされると、システム・データはクロック制御されてマスター・ラッチ（１００、１０１）に入力及び出力される。これは、通常の「機能モード」又は「システム・モード」に典型的である。しかしながら、システム・クロック入力が非アクティブ状態にあると、シフトＡクロックがアクティブにされる場合には、レジスタ内の先行のスレーブ・ラッチからのスキャン・データ出力（ｓｃａｎ＿ｄａｔａ＿ｏｕｔ）が、クロック制御されてマスター・ラッチに入力及び出力される。シフトＡクロックが非アクティブとなった後に、シフトＢクロックが活性化されてデータをクロック制御してスレーブ・ラッチ（２００、２０１）に入力及び出力する。このように、シフトＡクロック及びシフトＢクロックを逐次アクティブにすることによって、データを段階的にレジスタを通して規則的に移動させることができる。当業界では、多くの型及び形態のＬＳＳＤラッチが用いられている。ＬＳＳＤラッチの正確な構成は本考察には重要ではないが、ＬＳＳＤラッチ及びレジスタが典型的なＬＳＳＤ設計においてどのように用いられているかを理解することは重要である。
【０００５】
ＬＳＳＤレジスタの動作原理は、以下のとおりである。「システム・モード」とも呼ばれる通常の「機能モード」においては、データは、上述のように、クロック制御されてラッチに入力及び出力され、設計全体にわたって全てのラッチに分配される高速クロック（システム・クロック）によって同期化される。テスト及びデバッグの目的には、システム・クロックを停止させ、レジスタ内に格納されたデータを読み出して、システムが正しく機能していることを保証することが望ましい。特定のデータ値をレジスタ内にロードすることも望ましく、その結果、システム・クロックが再起動したときに、既知のデータ値が、レジスタからの入力を受け取るシステム論理に与えられることになる。ＬＳＳＤシステムにおいては、一旦システム・クロックが、個々のレジスタにおける制御によってローカルに、又はグローバルに（全システムをスイッチ・オフにする）非アクティブにされると、これら両方の機能を働かせることができる。全てのＬＳＳＤレジスタ内のデータは、上述のように、連続したシフトＡ及びシフトＢクロック・パルスを介して読み出される。例えば、システム・クロックの停止後、シフトＢクロック・パルスは、ラッチ内に取り込まれた全てのシステム・データをスキャン・データ出力ポートに移動させる。シフトＢがアクティブな間は、シフトＡは非アクティブのままでなくてはならないことは明らかであり、そうでなければ、データは、制御不能な仕方で回路のチェーンを「走り」下ることになる。次に、シフトＡパルスが、データをスキャン・データ出力ポートに運び、そのデータをレジスタの次のラッチへクロック制御して入力する（即ち、シフトＡクロックがアクティブな間、シフトＢクロックは非アクティブ）。このように、データは、連続するクロック・パルスによってレジスタを介してシリアルに移動させられる。レジスタの最終のスキャン・データ出力ポートを監視することによって、各々の連続するシフトＢクロック・パルスが新しいデータ値をクロック制御してレジスタの出力に移動させるときに、各々のラッチ内に初めに取り込まれたデータを観察することが可能となる。さらに、レジスタ全体の第１のスキャン・データ入力部から始めて、同じ方式で新しいデータ値をＬＳＳＤレジスタ内にロードすることも同様に可能である。所望のデータ値をレジスタの第１のスキャン・データ入力部に加えると、第１のシフトＡクロックは、レジスタの第１ラッチに加えられたデータの第１ビットを取り込み、次のシフトＢクロックは、このデータを第１ラッチのスキャン・データ出力ポートに移動させる。次に、第２のデータ値がスキャン・データ入力部に与えられ、第２シフトＡクロックは、この第２のデータ値を第１ラッチ内にロードし、同時に以前のデータはここでレジスタの第２ラッチ内にロードされる。このプロセスは、所望のデータがレジスタ内の全てのラッチに書き込まれるまで続く。
【０００６】
上の考察によると、ＬＳＳＤレジスタは、任意のサイズとすることができ、又は、１つのレジスタの最終のスキャン・データ出力を次のレジスタの第１のスキャン・データ入力ポートに接続して多数のレジスタを直列に結ぶことができることが分かる。このように、ＬＳＳＤシステムにおいては、設計全体にわたる全てのラッチを観察可能及び構成可能にして、その結果、全ての論理回路をテストし、観察することができる。このことは、従来のＬＳＳＤ設計を示す図２に概略的に示されている。
【０００７】
ＬＳＳＤ構成については、単一のスタック・フォールト・モデルを用いて、回路に加えるテスト・パターンを生成し、出力応答は、各々のテスト後に収集されて事前計算された「良好な回路」応答と比較される。このようなスタック・フォールト・テストの生成は、ＮＰ完全と呼ばれる困難な数学問題のクラスの１つであることが示されているが、ここで、ＮＰは、非決定性多項式時間を表し、完全は、このクラスの１つの問題に対する解が全体に拡張できることを意味する。全てのＮＰ完全問題において、可能な解の数は、問題のサイズが増大するのに伴って、劇的に増加する。従って、これの意味するところは、テスト生成のコンピュータ時間が回路のサイズと共に指数関数的に増加するということである。上記のことを考慮すると、最良のスタック・フォールト・テスト・アルゴリズムは、かなり小さな又はかなり単純なネットワークに対して計算実行可能であるに過ぎず、フォールト指向の方法は、ＶＬＳＩチップ及びモジュールの回路密度が増加するにつれて法外に高価になると思われる。
【０００８】
上記のことを考慮して、ＬＳＳＤに関するセルフ・テスト法を用いて、テスト・パターンの生成と実際のテストの実行に必要な時間を減少させることが提案された。セルフ・テスト法は、論理回路デバイスに内蔵される擬似ランダム・パターン・ジェネレータ及び応答圧縮構造体の使用を含む。このようなパターン・ジェネレータ及び圧縮を用いると、これらの構造体は、これらのテスト素子を論理回路を含んだデバイス上に配置して、テストを生成するのに必要なコンピュータ時間を削除する。従って、妥当な時間内に数多くのテスト・パターンを回路に加えることが可能になる。
【０００９】
図２を参照すると、テスト制御装置、即ちＴＣＵ（１５０）（Ｔｅｓｔ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）は、ＬＢＩＳＴ（Ｌｏｇｉｃ  Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）がチップ全体を通して論理をテストするのに必要な信号及び機能性を与えることが示されている。ＴＣＵは、チップ上の全てのＬＳＳＤラッチ及びレジスタ（３００から３０３まで）に分配される非重複のシフトＡ及びシフトＢクロック・パルスを与える。さらに、ＴＣＵは、テスト目的のためにレジスタ内にロードされるシリアル・データを与え、レジスタ列からシリアル・スキャン出力データを受け取る。このプロセスにより、テスト目的のために（即ち、受取りデータが予想値と一致することを保証するために）データを分析することが可能になる。従って、組合せ論理回路（４００）は、最初にＴＣＵからの既知の値を全てのＬＳＳＤレジスタにロードし、或る数のシステム・クロック・サイクルを実行し、全てのレジスタ・データを読み出し、それを何らかの方法で予想データと比較することによってテストされる。図２はまた、「バイパス」モードを示す。ＴＣＵに関する問題が存在する場合、又は何らかの理由によりＴＣＵが正しく動作していないと疑われる場合には、チップ外のソースから（即ち、主入力を介して）、独立したシフトＡ及びシフトＢクロック入力を与えることが望ましい場合がある。これは、シフトＡ及びシフトＢクロック・ソースの選択を可能にするマルチプレクサ（２５０）を介して達成される。スキャン出力データはまた、チップ出力に送って直接観察することもできる。さらに、チップ外からの別個のスキャン入力部を有することが望ましい場合もある。
【００１０】
当該技術分野の実施者は、実際のＬＳＳＤシステムが非常に複雑で、図２に示された例証的な例よりもかなり大きいことを容易に認識するであろう。チップ（マルチ・チップ・モジュール、ボード、フレーム等）は、通常多数のレジスタ列に分割される数十万ものＬＳＳＤラッチを収容することができる。一般に、レジスタは、組合せ論理の任意の所与のブロックへの入力を与え、それからの入力を受け取る。しかしながら、図２に示された基本原理は変わらない。
【００１１】
ＬＳＳＤシステムを設計するときには、幾つかの課題及び問題がある。前述されたように、シフトＡ及びシフトＢクロック信号は、チップ全体にわたって全てのＬＳＳＤラッチ及びレジスタに分配されなくてはならない。このことは、図３に概略的に示される。例えば、レジスタ３０７が受け取るシフトＡ及びシフトＢクロックの特性は、レジスタ３００におけるものとは明らかに全く異なるが、その理由は、クロス・チップ配線は、一般に、大きな遅延を有し、多くのバッファリング・ステージ（図示せず）の挿入を必要とする可能性があるためである。これらのバッファリング・ステージは、各々のラッチにおいて許容可能なシフトＡ及びシフトＢクロックの波形を維持するために、付け加える必要がある。典型的には、バッファは、長い「トランク」の抵抗から全ての分枝のキャパシタンスを分離するために、各分配ツリー内の全ての主要分枝点に加えられる。さらに、配線内の過度のＲＣ遅延、不十分な信号スルー、結合ノイズへの極端な感度、及びチップ上で他の障害を回避するために、直線状の配線でさえも個別のセグメント（多分、長さ１ｍｍ）に分割する必要がある。実際のチップは数十万ものＬＳＳＤラッチを有するので、シフトＡ及びシフトＢクロック信号に対する、極めて複雑なルーティング及びバッファリング・ツリーに遭遇するものと予想される。さらに、走査テストの間、シフトＡ及びシフトＢクロックは、如何なる場所でも決して重複しない（即ち、両方が同時には決してオンにならない）ことを保証しなくてはならない。さらに、全てのシフトＡ及びシフトＢクロック・サイクルにおいて、各々のクロックは個々に、全てのラッチのマスター又はスレーブ・セクションに新しいデータを書き込むのに十分に長い間、高い状態に留まらなくてはならない。
【００１２】
現在、マイクロプロセッサ（及びＡＳＩＣチップ）の周波数が増加し続け、テクノロジーのスケーリングがさらに高い回路密度を与え、チップのサイズが増大し続けるにつれて、前述の設計制約があると、非常に高い周波数でシフトＡ及びシフトＢクロックを分配することは、ますます困難になっている。なぜそのようになるか、多くの根本的な理由がある。
【００１３】
第１に、これらのチップの動作周波数を向上させ続けるためには、一般的な方法は、論理をますます薄いスライスに分割し、各スライスは好ましくはラッチ素子によって次のものから分離されるようにすることである。このようにして、任意の２つのラッチ間の全体の論理の深さは減少し、論理を介したラッチからの伝搬、次いで取り込みラッチ内への伝搬に必要な時間を減少させる。このことは、伝搬の遅延を減少させ、それをより高い動作周波数に変換する。しかしながら、この方法は、チップを設計するのに必要なラッチ数の急増をもたらすことは明らかである。テスト・クロックが各々のラッチに分配される必要があるため、上述のようなチップ上のラッチの数及び密度の増加は、テスト・クロック分配の複雑さを増加させ、全体の伝搬時間（及び関連するタイミングの不確実性）を同じく増加させる。これらのより大きな遅延に伴うより大きな不確実性は、シフトＡ及びシフトＢクロックが重複しないことを保証するためにさらに離間される必要があり、クロック・パルスが全てのシンク（即ち、ＬＳＳＤラッチ）において十分に広いままであることを保証するために、クロック・パルスはソースにおいてより広くする必要があることを意味することは明らかである。これらの要件は、テスト・クロックの周波数を事実上制限する。さらに、論理をさらに薄いスライスにセグメント化するとチップの頻度が増加するので、このセグメント化は、テスト・クロックの分配を加速する助けにはならないことは明らかである（ラッチ数が増加するため、上述のように実際にはセグメント化は分配を遅らせる）。従って、この方法を用いると、マイクロプロセッサの周波数とテスト・クロックの周波数との間の不均衡が増加し易い。
【００１４】
第２の理由は、基本的なＶＬＳＩスケーリングの原理に関連する。テクノロジー・スケーリングが続くにつれて、配線の幅及び高さの両方がテクノロジー・スケール因子に従って減少し、配線の断面積がリソグラフィの長さスケールの２乗に比例して減少することになる。これは、配線の単位長さ当たりの抵抗がリソグラフィ寸法の２乗の逆数に比例して増加することを意味する。単位長さ当たりのキャパシタンスは、隣接する配線間の間隔の減少が配線断面の減少によって相殺されるため、ほぼ一定に留まる傾向がある。従って、リソグラフィ寸法が減少するにつれて、たとえチップ・サイズが一定のままであっても、配線によるＲＣ遅延は急速に増加し、許容可能なクロック波形及びスルーを維持するためにより多数のバッファリング素子の挿入が必要となることが分かる。テスト・クロック・ネットワークによる伝搬遅延は、これらのスケーリング原理の結果として拡大される傾向があり、これらのより大きな遅延に伴うより大きな不確実性がまた、テスト・クロックの周波数を制限することが分かる。
【００１５】
最後に、テクノロジー・スケーリングは、チップ上の（ラッチを含む）回路の数のさらに大きな密度をもたらした。従って、上述の２つの要因に加えて、チップ上のラッチの数及び密度の増加は、テスト・クロック分配問題の困難さを大きく増加させる。また、分配ツリーがさらにより複雑になるにつれて、より多くのバッファリング・ステージを付加する必要がある。この追加の遅延は、ラッチへのクロック到達時間の付加的な不確実性及び不均衡をもたらし、これがまた、最大テスト・クロック周波数に対して悪影響を及ぼすことになる。
【００１６】
上記のことは、比較的大きな間隔でシフトＢクロック・サイクルからシフトＡクロック・サイクルを分離しなければならず、各々のテスト・クロックは十分に幅広のパルスの伝搬を保証するために、より長い時間アクティブ状態に留まらなければならないことを示している。典型的には、テスト・クロック周波数は、機能クロック周波数の数分の１として指定される。機能クロック周波数対テスト・クロック周波数の典型的な比率は、１６：１の程度である。従って、チップが４．８ＧＨｚで動作するように設計された場合には、テスト・クロックは、典型的には、３００ＭＨｚで動作することになる。
【００１７】
従って、この型の従来の走査クロック・テスト方法は、様々な点で理想的なものではない。第１に、全てのＬＳＳＤレジスタを通してデータを走査する速度が遅いテスト・クロックによって制限されるため、ＬＢＩＳＴ時間が比較的長い。第２に、走査が低周波数で行われるため、電力は走査中は比較的低いが、機能クロックがＬＢＩＳＴテスト中に始動されると、チップは大きな過渡電力を認めることになる。第３に、シフトＡ及びシフトＢクロック分配と機能クロックとの間の全体のタイミング関係、並びにテスト制御信号の分配は不明であり、チップ全域にわたって変化する。従って、テスト・モードにおける動作（即ち、シフトＡ及びシフトＢクロックのトグリングによる）と、機能クロック（例えば、ＬＢＩＳＴテストに関する）による機能モードにおける動作との間にはギャップを設ける必要がある。このギャップが、テスト中における過渡電力をさらに増幅させ、特定の方法におけるテスト容易性又はテスト戦略を制限する。最後に、シフトＡ及びシフトＢクロックが機能クロックと異なる周波数で動作するため、普通、別々のタイミング検証プロセスが必要となり、場合によっては、別々のタイミング・モデルのセットさえも生成することが必要となり、これらの全ては、設計チームの相当な追加作業を必要とする。
【００１８】
上述の問題の既知の解決法は、いわゆるＧＳＤ（一般走査設計）方法である。一般的に実施されるこの方法は、全てのクロック制御に対して（走査動作と機能動作の両方に対して）機能クロックを用いるものである。動作モードは、ラッチに書き込むデータ（機能システム・データ又は機能テスト・データ）を選択する制御信号によって設定される。この方法は、上述の問題を解決するが、それ自体の新しい問題点を導入する。第１に、（別々のテスト・クロックがもはや存在していないため）外部入力から別々のテスト・クロックをチップ内に入れる機能がない。第２に、それは、走査データと機能データの間の選択を可能にするために、各々の走査可能なラッチの前に別々のＭｕｘ（マルチプレクサ）を挿入する必要があることを意味する。このことは、遅延及び／又は消費電力を増加させ、場合によっては、面積を増加させる。Ｍｕｘは、別個のデータ・ポートとしてラッチ内に組み込むことができるが、この場合は、走査クロックは、（始動させるクロックを選択するための選択制御を有する）機能クロックからローカルに生成する必要がある。こうした場合には、ラッチ上の走査データ・ポートは、最悪のデューティ・サイクル（即ち、最小クロック・パルス幅）に対しても、単一のテスト・クロック・パルスにより走査データを書き込むことを保証するのに十分に大きくなくてはならない。ラッチ上の走査ポートがあまりにも遅い場合には、それは、ＡＣテストの周波数を制限する（テスト・クロックが機能クロックからローカルに生成されるため、それは、常に、機能システム・クロックと同じ周波数で動作する）。さらに、典型的なマスター・スレーブ・フリップ・フロップに対しては、３つのクロックが、システム・クロックから生成される必要がある（機能目的のためのｃ１及びｃ２、並びに走査ポートをクロック制御するための「走査ｃ１」）。この第３のクロックは、それ以外の全ての制約が同じままである（ＬＳＳＤは、システム・クロックから生成される２つの機能クロックのみを必要とする）状態で、ＬＳＳＤアーキテクチャと比較すると、メッシュへの負荷をおよそ５０％だけ増加させ、さらに、ｃ１クロックと走査ｃ１クロックの間の選択に用いられる構成に応じて、消費電力を増加させる。さらに、ＧＳＤの配置は、一般に、大部分のＬＳＳＤ用途に関して、１つだけのものと比較すると、チップ全体にわたって分配される２つのアット・スピードＡＣテスト制御信号を必要とする。さらに、制御信号のいずれかが予想より遅い若しくは特定の論理より遅いか、或いはその分配ネットワークにおける任意の箇所で十分な周波数のタイミング要件を満たさない場合には、チップをテストする周波数が制限されることになる。
【００１９】
【非特許文献１】E. B. Eichelbergerand T. W. Williams、「ＬＳＩテスト容易性のための論理設計構造」、Proceedings of the 14th DesignAutomation Conf., pages 462-468.
【発明の開示】
【発明が解決しようとする課題】
【００２０】
従って、本発明の目的は、ＬＳＳＤテスト法をクロック・ツリー待ち時間構成と組み合わせることによって、より高いテスト・クロック周波数を可能にする方法を提供することである。
別の目的は、向上したテスト・クロック周波数に基づいて、より高い機能性能を達成する方法を提供することである。
さらに別の目的は、テスト時間を減少させることによりテスト・スループットを向上させて高価なテスト・ハードウェアの大幅な節約をもたらすことである。
さらに進んだ目的は、システム・クロックからずらしてクロック制御される小さなパイプライン・ラッチを介して従来型ＬＳＳＤ構成を強化する装置を提供することである。
またさらに進んだ目的は、所望のＬＢＩＳＴ速度に応じて調整される分配ネットワークを用いて、チップ全体にわたるポイントへのシフトＡ及びシフトＢクロック信号の分配を促進する装置を提供することである。
【課題を解決するための手段】
【００２１】
本発明は、非重複のシフトＡ及びシフトＢテスト・クロックが全てのＬＳＳＤレジスタの入力において同時に立ち上がり、立ち下がりするように同期化されるレベル・センシティブ・スキャン設計（ＬＳＳＤ）システムにおける、テスト・クロックの周波数を向上させる方法を提供し、この方法は、ａ）システムの最も遠いコーナーに到達するのに必要なパイプライン・ステージの数を決定してパイプラインの深さを確立するステップと、ｂ）高速動作を保証するのに必要なパイプライン・ステージの数によって規定される領域にＬＳＳＤレジスタをグループ分けするステップと、ｃ）ＬＳＳＤレジスタの入力において信号の同時立ち上がり又は立ち下がりを達成するようにラインの深さを釣り合わせるステップと、ｄ）全てのテスト・クロックが高速で分配されることを保証し、全てのパイプライン・ラッチがＬＳＳＤレジスタの所定の近接位置に配置されてシフトＡ及びシフトＢテスト・クロックの高速同期伝搬が可能になることを検証するステップとを含む。
【００２２】
上述のパイプライン・ラッチは、システム・クロックからクロック制御され、説明された一連のステップに従うことで、シフトＡ及びシフトＢテスト・クロックは、システム全体にわたってシステム・クロックと同期化されることが保証される。さらに、ラッチを用いてテスト・クロックをパイプライン化して同期化する方法は、複雑なＶＬＳＩ設計における、全てのＬＳＳＤレジスタへのこのようなクロック分配に通常伴う不確実性を解消する。このようにして、シフトＡ及びシフトＢクロックは、別に従来の方法を用いて実際的となるよりも遥かに高い周波数で動作するように確実に設計することができる。
【００２３】
本発明のこれら及び他の目的、態様並びに利点は、本発明の詳細な好ましい実施形態から、添付の図面と共に理解されるとき、さらに良く理解されるであろう。
【発明を実施するための最良の形態】
【００２４】
本発明の方法は、シフトＡ及びシフトＢクロック信号を、所望のシフトＡ及びシフトＢクロック周波数に応じて調整される分配ネットワークによって、ＶＬＳＩ設計全域にわたる種々のポイントに分配するために、小さなパイプライン・ラッチ（システム、機能クロックからずらしてクロック制御される）により標準的なＬＳＳＤ構成を強化するように設計される。シフトＡ及びシフトＢクロックの分配のためにパイプライン・ラッチを用いると、クロック・エッジをシステム全体にわたって同期化することが可能になるが、それでもなお、任意の様式で（ここでシステム・クロック・サイクル単位で測定される粒度で）シフトＡ及びシフトＢクロック時間を制御することが可能になる。この型のアーキテクチャを用いて、ＬＢＩＳＴはシステム・クロック周波数の２分の１までの周波数で動作するように好ましく設計される（より典型的なＬＳＳＤスキームに関する１６分の１と比較して）。また、シフトＡ及びシフトＢクロック分配の主要部分がパイプライン・ラッチを介するものであるため、シフトＡ及びシフトＢクロックのラッチへの到達時間は比較的予測可能であり、走査動作の終了と機能モード動作の開始との間に大きなタイミング・ギャップは不要となる。これら両方の特徴が、ＬＢＩＳＴテスト中に遭遇する前述の過渡電流を取り除くのに役立つ。
【００２５】
ここで、本発明の好ましい実施形態の詳細な説明を記述する。
図３に描かれた型のシフトＡ及びシフトＢクロック分配構成（任意の実際の設計については、何千倍も複雑であることを除いて）が与えられると、これらの信号をシステム機能クロックに用いられるのと同じ仕方で分配することは、非常に費用がかかり非現実的であることは明らかである。一般に、シフトＡ及びシフトＢクロックは、多くのレベルのバッファリング、長い配線分配、及び大規模なマイクロプロセッサ・チップの全てのポイントに到達するのに要する大幅な遅延により、必要に応じてバッファリングされる。結果として、幾つかのラッチは、シフトＡ及びシフトＢクロック信号を非常に早期に受け取り、一方、他のラッチは、それらのクロック信号を遥かに後で受け取る。この型のスキームは、シフトＡ及びシフトＢクロックが（チップの機能周波数と比較して）比較的低い周波数で動作することを必要とするが、その理由は、これらの大規模で複雑なネットワークのタイミングに関連する大きな不確実性と、一組の信号をチップ上の何十万ものラッチに伝搬することに伴う困難さのためである。シフトＡ及びシフトＢクロックを分配するのに必要な大規模で複雑なネットワークは、これらのクロックに対して重大な伝搬遅延と大きな待ち時間をもたらし、シフトＡ及びシフトＢクロックが動作する周波数を直接制限することが容易に分かる。
【００２６】
図４は、図３に示した従来技術のシフトＡ及びシフトＢクロックの分配が上で要約された本発明を用いてどのように改善されるかを示す。この場合、シフトＡ及びシフトＢクロック信号は、グローバル・システム・クロックでトリガーされる特別なパイプライン・ラッチ（５００）を挿入することによってチップ全体にわたるあらゆる箇所で同期化される。これらのパイプライン・ラッチは、シフトＡ及びシフトＢクロックを伝搬するための同期化ステージとして機能し、これらのクロックをチップ全体にわたるあらゆる箇所でシステム・クロックと同期化した状態に保つ。全てのシステム・クロック・サイクルの開始において、任意の所与のパイプライン・ラッチへの入力におけるシフトＡ（又はＢ）クロックの値がサンプリングされ、この値は、ある大きさの伝搬遅延の後に、そのパイプライン・ラッチの出力に渡される。サンプリングは、システム・クロック・サイクルの最初にだけ行われるので、そのサイクル中に後で、どんなシフトＡ（又はＢ）クロック遷移がパイプライン・ラッチに到達しても、この遷移は、次のサイクルが始まるまで前方には伝搬されない。このように、シフトＡ（又はＢ）クロック遷移は、任意に複雑なネットワークに対してもチップ全体にわたって同期化される。図４を参照すると、ＴＣＵがシフトＡ又はシフトＢクロックのいずれかの値を変更するとき、それは、新しい値をＬＳＳＤレジスタ３００及び３０１に伝搬するためには、ＴＣＵとＬＳＳＤレジスタ３００及び３０１への入力との間に４つのパイプライン・ラッチがあるため、４つのシステム・クロック・サイクルを必要とすることが分かる。同様に、ＴＣＵと任意の他のＬＳＳＤレジスタとの間には４つのパイプライン・ラッチがあるので、ＴＣＵによって送り出されるシフトＡ及びシフトＢ遷移は、全てのＬＳＳＤレジスタに同じシステム・クロック・サイクル上で到達し、チップ全体にわたって同期化されることが保証される。これとは対照的に、従来技術の設計（図３）においては、シフトＡ又はシフトＢクロックの如何なる変化も、ＴＣＵに極めて近いためにレジスタ３００及び３０１に非常には急速に伝搬する。しかしながら、レジスタ３０６及び３０７への伝搬遅延は、それらがＴＣＵから遠く離れているため、遥かに長くなる。従来技術の設計においては、バッファ及び他の遅延素子を付加して、近くのレジスタに対するシフト・クロック遅延の釣合いをとろうとしている。しかしながら、広範囲の配線のＲＣ遅延及び分配ツリーの残りの他の遅延と、全付加素子の全ての遅延とを釣り合わせ、整合させることは非現実的であり困難である。
【００２７】
上記の考察は、図４に示される本発明との関連において、新しいシフトＡ又はシフトＢクロック遷移がパイプライン・ラッチから送り出されるときはいつでも、この遷移が次のシステム・クロック・サイクルの開始前に、受取りパイプライン・ラッチの入力に伝搬するのに十分な時間があると想定するものである。次のパイプライン・ラッチがあまりにも遠く離れて配置されている場合には、新しいシフト・クロック値は、時間内にラッチに入力してサンプリングされず、次のサイクルの開始時に出力に渡されることにはならない。この場合、新しい値は、後のシステム・クロック・サイクルの開始まで待機しなければならなくなり、従って、チップにわたるシフトＡ及びシフトＢクロックの残りの伝搬と同期しない（１つ又は複数のサイクル遅れ）ことになる。従って、本発明の実用的な実施には、初めに、ＴＣＵから最も遠く離れたＬＳＳＤレジスタに到達するのに幾つのパイプライン・ラッチ・ステージが必要か（例えば、図４に示された単純な例においては４）を決定する必要がある。このことがパイプラインの深さを設定する。
【００２８】
上述のようにパイプラインの深さを設定した後、ＬＳＳＤレジスタを設計の階層及び自然区分化、並びにＴＣＵへのＬＳＳＤレジスタの近接さに応じて、領域ごとにグループ分けする。各々の領域に対して、全体のパイプラインの深さを釣り合わせるために、テスト・クロック信号をその領域内のＬＳＳＤラッチに分配する前に、付加的なパイプライン・ラッチを加える。このようにして、ＴＣＵにより近い領域内のＬＳＳＤレジスタを駆動するシフト・クロック信号は、これらの領域へのシフトＡ及びシフトＢクロックのパイプラインを釣り合わせるために、「追加の」パイプライン・ラッチを有することになる。
【００２９】
図４を参照すると、ＴＣＵに近い領域内のレジスタ３００及び３０１へのパイプラインを釣り合わせるために３つの付加的なパイプライン・ラッチが加えられ、より遠い領域内のレジスタ３０２及び３０３へのパイプラインを釣り合わせるために２つの付加的なパイプライン・ラッチが加えられ、レジスタ３０４及び３０５へのパイプラインを釣り合わせるために１つの付加的なパイプライン・ラッチが加えられていることが明らかである。このようにして、チップ全体にわたって全てのＬＳＳＤレジスタがシフトＡ及びシフトＢクロックを同時に受け取ることが保証される。
【００３０】
システム・クロックは既に最小スキューでチップ全体にわたって分配されているので、パイプライン・ラッチの付加は、システム・クロック分配の設計に追加の負担をほとんどかけない。また、任意の２つのパイプライン・ラッチ間の全遅延（配線及びバッファ）がシステム・クロック・サイクルより小さい限り、チップ全体にわたる全てのシフトＡ及びシフトＢクロック信号は、相互にだけでなく、システム・クロックに対しても完全に同期化された状態に維持されることになる。
【００３１】
本発明の一実施形態を描く図４に示された配置により、明らかに、ＬＳＳＤレジスタ３００及び３０１は、シフトＡ及びシフトＢクロック信号を、初めにＴＣＵにより送り出されてから正確に４システム・クロック・サイクル後に受け取ることになるが、その理由は、各々のパイプライン・ラッチがシフトＡ又はシフトＢクロック・エッジの立ち上がり又は立ち下がりを次のシステム・クロック・サイクルの開始まで遅延させることになるためである。同様に、レジスタ３０６及び３０７は、レジスタ３００及び３０１と同時にシフトＡ及びシフトＢクロック・エッジを受け取ることになる（同様に、レジスタ３０２、３０３、及びレジスタ３０４、３０５に関しても）。
【００３２】
クロック信号をパイプライン化するということは普通ではない（通常、クロック信号は、他のデータを同期化し、それら自体でパイプラインを形成するようには用いられない）が、本発明の方法は、テスト・クロック（シフトＡ及びシフトＢクロック）がシステム・クロックから論理的に分離され、そのためシステム・クロックをテスト・クロックの同期化に使用できるという事実を利用する。パイプラインの深さは、チップの最も遠いコーナーに到達するのに必要なパイプライン・ステージの数によって設定される（例えば、図４においては、パイプラインの深さは４であり、必要に応じて増減することができる）。パイプラインは、如何なる任意のローカル分配ネットワークにも到達するために横切られるパイプライン・ラッチの数が常に一定となるように構築する必要があるだけである。シフトＡ及びシフトＢクロック信号は、通常の様式でパイプライン・ラッチ間でタイミング調整される、即ち、システムの機能クロック周波数によって設定されるサイクル時間で、チップが適切な周波数で動作することを保証するように論理がチップの残り部分にわたってタイミング調整されるのと同じ様式で調整される。このタイミング分析は、チップの論理の残り部分のタイミング分析と同時に実行されることが好ましい。このようなタイミング分析は、一般に、全てのシフトＡ及びシフトＢテスト・クロック信号が、許容できるシステム・クロック・サイクル時間内に次のパイプライン・ラッチにおいて又はＬＳＳＤレジスタの入力において受け取られることを保証するために、全てのパイプライン・ラッチの配線分配、バッファリング、遅延及び負荷の分析を必要とする。パイプライン・ラッチの配置は、高速動作の機能を保証するのに必要な幾つかの繰り返し調整を必要とする。パイプライン・ラッチへの他の繰り返し調整（最初の評価が正しくなかった場合のパイプラインの深さの変更、又は特定領域へのＬＳＳＤレジスタのグループ分け及び／又は割り当ての変更、或いはテスト・クロック分配の全体の速度を改善するための付加的なパイプライン・ラッチの並列付加を含むが、これらに限定はされない）を行うことも必要となる可能性がある。もちろん、パイプライン・ラッチのネットワークを定め、構築し、調整する手順は、このような目的に合わせて作られたプログラムを用いることによって、又は他の設計自動化ツールを用いることによって、自動的又は半自動的に有利に実施することができる。
【００３３】
図４のＡ、Ｂ、Ｃ、Ｄと表記されたポイントに関して、パイプライン内の種々のポイントにおけるシフトＡ及びシフトＢクロックの波形を図５に示す。
図５に示される波形は、システム・クロックの周波数と比較して、４：１の割合で減少した周波数におけるＬＳＳＤ動作を示す。シフトＡ及びシフトＢクロックをさらにより速く、例えば２：１の割合で、動作させることも可能であるが、クロックの重複を回避することが幾分より困難になる。シフトＡ及びシフトＢクロックに対するローカル・バッファは、重複を回避するためにクロック波形の立ち上がりエッジを遅延させるようにスキューされることが好ましい。また、４：１（又は２：１）の走査速度では電力消費が高すぎると判明した場合には、滑らかに有効動作周波数を変更するために必要に応じてデッド・サイクルを挿入して、如何なる望ましい電力消費レベルにも適合させる。
【００３４】
シフトＡ及びシフトＢクロック信号をパイプライン化することは、ＬＳＳＤ又はＧＳＤ走査構成において用いられる残りのテスト制御信号をパイプライン化することとは異なることに注意することが重要である。他のテスト制御信号に関するタイミングが予想よりも遅い場合には、遅いパスはＬＢＩＳＴ障害を引き起こすので、該部分をテストする周波数を制限することになる。設計内の欠陥パスを調節して新しいハードウェアを構築することなく、この状況から回復することは不可能である。しかしながら、シフトＡ及びシフトＢクロックが予想より遅い場合には、最大ＬＢＩＳＴテスト周波数に影響を与えることなく、シフトＡ及びシフトＢクロックの周波数を修正することは依然として可能である。システム・クロックの周波数は所望の設定に維持し、より多くのアイドル・サイクルをシフトＡ及びシフトＢクロックのパルス間に挿入して、シフトＡ又はシフトＢクロックのエッジがタイミング・エラーのために付加的な１サイクルだけ遅延させられるタイミング・エラーが存在するときでさえも重複を回避する。また、必要に応じて、シフトＡ及びシフトＢクロックは、クロック・パルスが全てのＬＳＳＤラッチに到達することを保証するために、より多くのサイクルの間アクティブに維持される。データがＬＳＳＤレジスタの入力及び出力で走査される速度は影響を受けることになるが、機能クロックが動作する必要がある速度は影響されない。従って、これらのクロック信号のパイプライン化が完全に理想的な仕方で機能しないときでも、該部分をテストすることは可能である。もちろん、テスト時間の速度を速めるために、ハードウェアのその後の繰り返しにおいてこの問題を修復し、前述の利点を得ることが好ましい。
【００３５】
たとえシフトＡ及びシフトＢクロックがパイプライン・ラッチを介して分配されても、このパイプライン・ラッチが「フラッシュ」制御を備えている場合には、チップ外のソースから直接にシフトＡ及びシフトＢクロック・ネットワークを駆動することが可能である。このフラッシュ制御は、２つの目的に役立つ。それは、通常モードでチップを動作させるときは（即ち、チップがテストされていないときは）、パイプライン・ラッチの内部のゲート切り替えを非アクティブにし、そしてさらに、パイプライン・ラッチからの干渉のないシフトＡ及びシフトＢクロックの直接制御をもたらす。
【００３６】
図６は、パイプライン・ラッチが如何にしてこのようなフラッシュ制御を組み込むかの例を与える。ここに示されているのは、シフトＡクロック又はシフトＢクロックのいずれかをパイプライン化するラッチである。「フラッシュ」がアサートされると、パイプライン・ラッチは、システム・クロックの状態とは独立に透明になる。このように、シフトＡ及びシフトＢクロックは、チップ外のソースから直接に制御される。この特定の実施において、信号の「フラッシュ」がアサートされると、パイプライン・ラッチ（１１０）のマスター・セクションへのクロック入力は高値状態にさせられて、入力データがマスター・ラッチにロードされ、その出力に伝搬されることを可能にする。ＯＲゲート（５１０）は、システム・クロックの入力の状態とは独立に、フラッシュが高値状態にあるときにクロック入力が高値状態にあることを確実にする。同様に、もう一つのＯＲゲート（４１０）も、フラッシュがアサートされるときにスレーブ・ラッチ（２１０）へのクロックをアクティブ状態にさせる。このように、マスター・ラッチの出力は、スレーブ・ラッチにロードされ、パイプライン・ラッチの出力に伝搬される。従って、「フラッシュ」がアサートされるとき、データは、システム・クロックの状態とは独立に、直ちにパイプライン・ラッチの入力からその出力に伝搬され、パイプライン・ラッチの全てのストリングが、システム・クロックとは独立にデータを伝搬する。このように、ラッチのパイプライン化動作はオーバーライドされ、シフトＡ及びシフトＢクロックは、システム・クロックからの干渉なしに、チップ外のソースから直接制御される。同様に、「フラッシュ」が非アクティブにされるとき、全てのパイプライン・ラッチは通常に動作し、システム・クロックが高値状態にあるとき、データをマスターに及びマスターを介して伝搬し、システム・クロックが低値状態にあるときは、データをスレーブに及びスレーブを介して伝搬する。最後に、通常モードにあるとき、「フラッシュ」制御は、電力を節約するためにパイプライン・ラッチにおけるあらゆるローカル・クロック切り替えを抑制する。フラッシュ制御を用いた又はフラッシュ制御を用いない、及び他のクロック制御を用いた、他のパイプライン・ラッチ構成が可能である。本発明の有用性は、パイプライン・ラッチの特定の構成には依存しない。
【００３７】
本発明は、特定の実施形態に関連して具体的に説明されたが、この説明を考慮すれば、他の代替、修正及び変形が当業者に明らかとなることは明白である。従って、添付の特許請求の範囲は、本発明の真の範囲及び趣旨の内に入る、あらゆるこうした代替、修正及び変形を含むことが意図されている。
【図面の簡単な説明】
【００３８】
【図１】従来技術のＬＳＳＤレジスタの一部分である。
【図２】従来のＬＳＳＤ設計を示す概略図である。
【図３】チップ全域にわたるシフトＡ及びシフトＢクロックの従来技術の分配を示す概略図である。
【図４】本発明による、パイプライン・ラッチの追加によるシフトＡ及びシフトＢクロック分配を示す概略図である。
【図５】本発明による、パイプライン内の種々のポイントにおける幾つかのシフトＡ及びシフトＢクロックの波形を示す。
【図６】本発明のパイプライン・ラッチがどうのようにフラッシュ制御を組み込むかについての簡単な実施例を示す。
【符号の説明】
【００３９】
１００、１０１：マスター・ラッチ
２００、２０１：スレーブ・ラッチ
１５０：テスト制御装置（ＴＣＵ）
２５０：マルチプレクサ（ＭＵＸ）
３００、３０１、３０２、３０３、３０４、３０５、３０６、３０７：レジスタ
４００：組合せ論理
１１０：パイプライン・ラッチ
２１０：スレーブ・ラッチ
４１０、５１０：ＯＲゲート
【図１】
2008539523.tif 000003
【図２】
2008539523.tif 000004
【図３】
2008539523.tif 000005
【図４】
2008539523.tif 000006
【図５】
2008539523.tif 000007
【図６】
2008539523.tif 000008
【国際調査報告】
2008539523.tif 000009