(57)【要約】異なる周波数で別々に関連付けられた第１及び第２のクロック信号を有する少なくとも２つのコアを含む多数のコアを備える集積回路をテストする方法を提供する。テスト信号は、テスト周波数でクロックされたクロックドスキャンチェーン（ＴＣＫ）を用いて供給される。クロック回路用リセット信号における遷移を用いて、集積回路の内部クロック（４０）から第１及び第２のクロック信号（ｃｌｋ＿ｘｘ，ｃｌｋ＿ｙｙ，ｃｌｋ＿ｚｚ)を取り出すクロック分周回路（４４）の動作をトリガするクロック回路用リセット信号（ｃｌｏｃｋｄｉｖ＿ｒｓｔ）に遷移を与える。これにより、第１及び第２のクロック信号がほぼ同時に始動し、これらは、集積回路のテストを行うためのテストモードの間、用いられる。テスト後、テスト結果がテスト周波数でクロックされたクロックドスキャンチェーン（ＴＣＫ）を用いて出力される。クロック用ハードウェアも提供するとともに、実動作速度テストを提供し、シフトモード用の比較的遅いテスタ駆動クロックと、テストモード用のオンチップＰＬＬ及び分周回路によって発生させた比較的速いクロックとの間でオンザフライの切り換えを可能にするハードウェアを提供する。
2009522571.tif 000002
【特許請求の範囲】
【請求項１】
異なる周波数で別々に関連付けられた第１及び第２のクロック信号を有する少なくとも２つのコアを含む多数のコアを備える集積回路をテストする方法であって、 
第１のスキャンモードの間、テスト周波数でクロックされたクロックドスキャンチェーンを用いてテスト信号を回路に供給するステップと、
第１のスキャンモードを終了するステップと、
次に、クロック回路用リセット信号に遷移を与えるステップと、
前記クロック回路用リセット信号における遷移を用いて、集積回路の内部クロックから第１及び第２のクロック信号を取り出すクロック分周回路の動作を、第１及び第２のクロック信号がほぼ同時に始動するようにトリガするステップと、
テストモードの間、第１及び第２のクロックから取り出したタイミングでクロックされる少なくとも２つのコアを有する集積回路のテストを行うステップと、
テストモードを終了し、テスト周波数でクロックされたクロックドスキャンチェーンを用いてテスト信号に対する結果を出力する期間である第２のスキャンモードを開始するステップとを含む集積回路テスト方法。
【請求項２】
前記テストは、遅延故障テストを含む、請求項１に記載の方法。
【請求項３】
前記テストモードの間、前記第１及び第２のクロック信号の２クロックサイクルを供給する、請求項２に記載の方法。
【請求項４】
前記第１及び第２のクロック信号は、クロックパルスを２クロックサイクルのいずれか、又は双方に供給するように制御されている、請求項３に記載の方法。
【請求項５】
前記テストモードは、前記クロック回路用リセット信号における別の遷移で終了する、請求項２〜４のいずれか一項に記載の方法。
【請求項６】
前記テストは、ＢＩＳＴメモリテストを含む、請求項１に記載の方法。
【請求項７】
前記第１及び第２のクロック信号は、前記テストモードの間、連続して供給されている、請求項６に記載の方法。
【請求項８】
前記テストモードは、前記テストモードは、前記クロック回路用リセット信号における別の遷移で終了する、請求項６又は７に記載の方法。
【請求項９】
前記第１のスキャンモードは、スキャンイネーブルラインの第１の遷移によって終了し、且つ前記スキャンイネーブルラインの第２の遷移によって開始し、前記第２の遷移は、前記クロック回路用リセット信号の別の遷移の後である、請求項５又は８に記載の方法。
【請求項１０】
前記クロック分周回路の動作は、前記クロック回路用リセット信号の遷移の後に、集積回路の内部クロックの遷移によってトリガされる、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記クロック回路用リセット信号における遷移は、前記クロック分周回路に供給すべき分周回路用リセット信号を取り出すのに用いられる前に、前記内部クロックを用いてラッチされる、請求項１０に記載の方法。
【請求項１２】
前記クロック分周回路の動作は、前記分周回路用リセット信号の遷移の後に、集積回路の内部クロックの次の立ち上がり遷移によってトリガされる、請求項１１に記載の方法。
【請求項１３】
クロック信号を発生させ、且つ集積回路テスト回路の一部を形成する回路であって、
クロック発生回路と、
前記クロック発生回路の出力から、異なる周波数の少なくとも第１及び第２のクロック信号を発生させるクロック分周回路と、
少なくとも本回路の外部入力として供給されるテストクロックと、前記第１及び第２のクロック信号との間で切り換えを行うクロック切換ユニットとを備え、
前記クロック切換ユニットが、前記クロック分周回路の動作を、前記第１及び第２のクロック信号がほぼ同時に始動するようにトリガするための信号を受信するリセット入力端を有するクロック信号発生回路。
【請求項１４】
前記第１及び第２のクロック信号の各々を、各クロック信号をゲートするためのそれぞれのクロック制御ブロックに供給して、選択されたクロックパルスを供給するようにし、ゲートしたクロック信号を前記クロック信号発生回路の出力として供給する、請求項１３に記載の回路。
【請求項１５】
前記クロック切換ユニットは、前記クロック発生回路の内部クロックを用いて、前記リセット入力端の信号をラッチするラッチ回路配列を備える、請求項１３又は１４に記載の回路。
【請求項１６】
前記クロック切換ユニットは、前記リセット入力端の信号のタイミングに依存して、少なくとも第１及び第２のクロック信号の発生の開始をトリガする分周回路用リセット信号を発生するロジック回路を備える、請求項１３〜１５のいずれか一項に記載の回路。
【請求項１７】
前記クロック切換ユニットは、前記テストクロックと前記少なくとも第１及び第２のクロック信号との間の切り換えを行うマルチプレクサを備え、前記ロジック回路は、前記マルチプレクサ用の制御信号を発生する、請求項１６に記載のクロック信号発生回路。
【請求項１８】
請求項１３〜１８のいずれか一項に記載の回路であって、該回路がトランスペアレントモードで動作するアプリケーションモード、前記テストクロックを使用するコアテストモード、前記テストクロックを使用する相互接続モード、及び内部的に発生させたクロック信号を用いる実動作速度テストモードを含む、複数のモードで動作可能とした回路。
【請求項１９】
前記実動作速度テストモードは、遅延故障テストモード又はＢＩＳＴメモリテストを含む、請求項１８に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、半導体集積回路のテストに関し、特に、ＢＩＳＴ（ビルトインセルフテスト）回路などの集積化テスト回路を含む集積回路に関する。
【背景技術】
【０００２】
半導体集積回路（ＩＣ）のテストのための１つの一般的なテスト技法には、スキャンテスト技法がある。これは、デバイスのクロックスピードに依存して、テストパターン（“ベクトル”と称される）をデバイスパッケージのピンに送出し、特定の時刻でこの出力応答を監視することを本質的に含んでいる。一組のテストベクトルを用いて、テスト下のデバイスの動作を調べることができる。これらのベクトルは、デバイスにおける製造欠陥を検出できるように設計されている。
【０００３】
自動テストパターン発生器（ＡＴＰＧ）は、このベクトルを発生するのに用いられ、縮退故障（ｓｔｕｃｋ ａｔ）、遷移故障、及び経路の遅延故障用のテストパターンを供給する。集積回路のコアロジックなどのデジタル・システムのテストは、典型的には、システムにおけるスキャン可能なメモリ素子にテストパターンをロードし、このテストデータをシステムに送出し、システムクロックの１クロックサイクル以上の通常モードでシステムを動作し、システムの応答をテスト刺激として取得することにより行われる。このテスト応答は、システムから抽出され、システムが設計にしたがって動作していた場合に得られるはずの応答と比較することになる。テストパターンのスキャンは、いわゆる“シフトサイクル”で行われるが、システム応答をテストするシステム動作は、いわゆる“通常モードサイクル”で行われる。
【０００４】
個々の回路のテストの適用範囲を改善するために、ＤＦＴ（Ｄｅｓｉｇｎ  ｆｏｒ  Ｔｅｓｔ）ツールは、システム・オン・チップ（ＳｏＣ）のシステムに、テスト回路を埋め込むように開発されている。例えば、ビルトインセルフテスト（ＢＩＳＴ）回路をＩＣ設時間調整に埋め込んで、個々の回路ブロックをテストすることができる。システム・オン・チップで埋め込まれたコア及びサブコアの各々は、自身のテスト入出力ポートを有し、隣接コアからの干渉なく、個別にテストできるようにする必要がある。いわゆるラッパーセルをコアの機能素子に設けることにより、テストデータが流れる経路を提供する。このテスト入出力ポートは、ラッパーセルの一部を形成し、機能的なトランスペアレントモード（ｔｒａｎｓｐａｒｅｎｔ  ｆｕｎｃｔｉｏｎａｌ  ｍｏｄｅ）、即ちテストモードで動作することができるようにする。
【０００５】
スキャンテストは、回路の内外でテストデータをスキャンするために、チップレジスタで幾つかのラッパーセルを共に連結することによって実行する。
【０００６】
特に、高速の遅延故障及びＢＩＳＴテストの結果として、実動作速度テスト（ａｔ−ｓｐｅｅｄ  ｔｅｓｔｉｎｇ）が望ましいことが分かっている。ここで云う速度は、テスタでは、もはや要求される速度／エッジ精度を提供できない場合を意味している。実動作速度（“＠ｓｐｅｅｄ”）テストのやり方では、信号がスキャンチェーンに沿って伝播される周波数よりもかなり速い通常動作周波数で、テスト下のコアを動作することになる。この場合、テストクロック信号は、シフトモードサイクル用に用いられ、内部のＰＬＬ（位相ロック・ループ）の高速クロック信号は、通常モードサイクル用に用いられる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
複数のクロックドメインを有するシステムでは、困ったことも起こる。例えば、システム・オン・チップの集積回路は、様々なクロックドメイン及びクロック周波数を有する幾つかのデジタルモジュールを有することができる。１つの領域要素がシステムにおける他の領域要素と異なる周波数で動作するので、テストの間、クロックドメインを横断する信号の同期を保証する特別に定めた規則が必要である。そうでなければ、システムからのテスト応答を繰り返すことができず、テスト結果の信頼性が無くなってしまう。シフトモードサイクルの間に使用されるテストクロック周波数と全く異なりうる種々のクロック周波数を有する多数のコアの実動作速度テストは、特にシステムクロック間の未知の位相関係から生じる特定のタイミング問題を提示する。マルチ周波数設計は、各周波数領域を１つずつテストする場合、あまりに多くのパターンセットを生成してしまうことになる。
【０００８】
従って、マルチ周波数（高周波を含む）領域を並列にテストする方法論及びハードウェアが必要である。実際上、マルチクロックＡＴＰＧは、テスト中のクロックドメインのインタフェース問題を解決するテスト（ＤＦＴ）方法にとって、最も魅力的な設計であると考えられる。
【課題を解決するための手段】
【０００９】
本発明によれば、異なる周波数で別々に関連付けられた第１及び第２のクロック信号を有する少なくとも２つのコアを含む多数のコアを備える集積回路をテストする方法を提供し、本方法は、 
第１のスキャンモードの間、テスト周波数でクロックされたクロックドスキャンチェーンを用いてテスト信号を回路に供給するステップと、
第１のスキャンモードを終了するステップと、
次に、クロック回路用リセット信号に遷移を与えるステップと、
前記クロック回路用リセット信号における遷移を用いて、集積回路の内部クロックから第１及び第２のクロック信号を取り出すクロック分周回路の動作を、第１及び第２のクロック信号がほぼ同時に始動するようにトリガするステップと、
テストモードの間、第１及び第２のクロックから取り出したタイミングでクロックされる少なくとも２つのコアを有する集積回路のテストを行うステップと、
テストモードを終了し、テスト周波数でクロックされたクロックドスキャンチェーンを用いてテスト信号に対する結果を出力する期間である第２のスキャンモードを開始するステップとを含む。
【００１０】
この方法は、実動作速度テストを提供し、シフトモード用の比較的遅いテスタ駆動クロックと、テストモード用のオンチップＰＬＬ及び分周回路によって発生させた比較的速いクロックとの間でオンザフライの切り換えを可能にする。
【００１１】
このように、スキャンイン及びスキャンアウトは、テストシステムに対して同期して行われる一方で、テストモード（遅延故障テスト又はＢＩＳＴメモリテスト用のものとできる）は、ＰＬＬで発生したクロックにより行われる。通常モードは、内部クロックの振動子の入力周波数によってスケーリングされる一方で、スキャンイン及びスキャンアウトの各モードは、テストクロック周波数によってスケーリングされる。従って、２つの周波数（スキャンイン／スキャンアウトとテストモード）はデカップリングされ、スキャン動作に悪影響を及ぼすことなく、テストモードのタイミングを調整することができる。
【００１２】
クロック分周回路の動作のトリガとなるクロック回路用リセット信号を使用することにより、内部的に分周したクロックを同時に送出することができ、グリッジを避け、正しいクロック動作を提供することができる。 
【００１３】
テストは、遅延故障テストを含むことができる。この場合、テストモードの間、第１及び第２のクロック信号の２クロックサイクルを提供する。２クロックサイクルのいずれか一方か、又は双方にクロックパルスを提供するように、第１及び第２のクロック信号を制御することができる。この制御は、用いる特定のテストパターンに基づいて選択され、クロック制御ブロックによって実行する。
【００１４】
テストモードは、クロック回路用リセット信号における別の遷移で終了させるのが好適である。
【００１５】
本方法は、ＢＩＳＴメモリテストのために用いることができる。この場合、第１及び第２のクロック信号をテストモードの間、連続して供給する。テストモードは、クロック回路用リセット信号の別の遷移で再び終了させる。
【００１６】
いずれかの場合で、第１のスキャンモードは、スキャンイネーブルラインの第１の遷移で終了させ、第２のスキャンモードは、スキャンイネーブルラインの第２の遷移で開始するのが好適である。この第２の遷移は、クロック回路用リセット信号における当該別の遷移の後である。
【００１７】
クロック分周回路の動作は、クロック回路用リセット信号における遷移の後に集積回路の内部クロックの遷移でトリガされるようにするのが好適である。従って、この内部クロックを使用して、クロック回路用リセット信号の遷移の後に、分周したクロックを同時に送出するように時間調整するようにする。
【００１８】
一例では、クロック回路用リセット信号は、クロック分周回路に供給すべき分周回路用リセット信号を取り出すのに用いられる前に、内部クロックを用いてラッチされる。このように、クロック回路用リセット信号は、クロック分周回路用の実際の分周回路用リセット信号を発生させるのに用いられる前に、内部クロックに同期させて安定化の問題を避けるようにする。
【００１９】
クロック分周回路の動作は、分周回路用リセット信号における遷移の後に、集積回路の内部クロックの次の立ち上がり遷移でトリガさせることができる。
【００２０】
本発明は、クロック信号を発生させ、且つ集積回路テスト回路の一部を形成する回路も提供し、本回路は、
クロック発生回路と、
前記クロック発生回路の出力から、異なる周波数の少なくとも第１及び第２のクロック信号を発生させるクロック分周回路と、
少なくとも本回路の外部入力として供給されるテストクロックと、前記第１及び第２のクロック信号との間で切り換えを行うクロック切換ユニットとを備え、
前記クロック切換ユニットが、前記クロック分周回路の動作を、前記第１及び第２のクロック信号がほぼ同時に始動するようにトリガするための信号を受信するリセット入力端を有する。
【００２１】
この回路は、オンチップで発生したクロック信号にクロック信号の同時の送出をもたらす。 これは、特に、実動作速度での多数のコアテストに適している。
【００２２】
前記第１及び第２のクロック信号の各々を、各クロック信号をゲートするためのそれぞれのクロック制御ブロックに供給して、選択したクロックパルスを供給するようにすることができ、ゲートしたクロック信号は、本回路の出力として供給する。このように、クロック信号をゲートすることにより、例えば、２つのクロック位相、即ち送出用クロック位相と、受信用クロック位相とを用いて遅延故障テストを実行することができる。
【００２３】
クロック切換ユニットは、クロック発生回路の内部クロックを用いてリセット入力にをラッチするためのラッチ回路配列を有することができる。これにより、分周回路用リセット信号として用いるべき信号の同期を提供する。
【００２４】
クロック切換ユニットは、リセット入力信号のタイミングに依存して少なくとも第１及び第２のクロック信号の発生の開始をトリガする分周回路用リセット信号を発生するためのロジック回路を備えることができる。クロック切換ユニットは、テストクロックと少なくとも第１及び第２のクロック信号との間で切り換えを行うためのマルチプレクサを有することができ、さらに、ロジック回路は、マルチプレクサのための制御信号を発生する。
【００２５】
ロジック回路は、本回路がトランスペアレントモードで動作するアプリケーションモード、テストクロックを使用するコアテストモード、テストクロックを使用する相互接続モード、及び内部的に発生させたクロック信号を用いる実動作速度テストモードを含む、複数のモードで本回路が動作できるようにする。実動作速度テストモードは、遅延故障テストモードとＢＩＳＴメモリテストの双方を実行できるようにするのが好適である。
【００２６】
以下、添付図面を参照して本発明の実施例を詳細に説明する。
【発明を実施するための最良の形態】
【００２７】
本発明は、異なるクロックドメインを有する多数のコアを備える集積回路を、実動作速度（“＠ｓｐｅｅｄ”）テストを行うことに関する。特に、本発明は、遅延故障テスト及びＢＩＳＴテストに関する。遅延故障テストでは、信号遷移を作り出し（送出イベントと称する）、この遷移が時間内にスキャンチェーンの受信素子に到着するか否かをテストする（捕捉イベントと称する）。このタイプのテストは、珪化物のひびなどのエラーによる接触エラーから生じうる（抵抗性の）開放回路タイプの欠陥が主要ターゲットとなる。
【００２８】
このタイプのテストは、欠陥が信号タイミングを大きく劣化させる前に、有意な抵抗値を取得できるように確立しておく。従って、この有効性を増大させるためには、テスト下のデバイスを十分高い周波数でテストする必要があり、これが実動作速度テストの理由の１つである。
【００２９】
さらに、テスト中に用いられる駆動電圧は、最大の駆動電圧とすべきであり、これにより能動素子（トランジスタ）の遅延が小さいときに、欠陥によって導入された遅延を比較的簡単に検出できるようにする。また、テストの温度も、テスト条件を最適化するように選択すべきである。
【００３０】
実動作速度テストを提供するために、本発明のシステムは、シフトモード用の比較的遅いテスタ駆動クロックと、通常モード用のオンチップＰＬＬ及び分周回路によって発生させた比較的速いクロックとの間でオンザフライの切り換えを可能にするハードウェアを提供する。従って、２つの周波数（スキャンイン／スキャンアウトと通常モード）はデカップリングされ、スキャン動作に悪影響を及ぼすことなく、通常モードのタイミングを調整することができる。
【００３１】
複数のクロックドメインを有する回路をテスト可能にするために、通常モードのクロックは、１つの特定のＰＬＬのマスタークロックから得られる。これにより、多数の周波数領域を並列にテストできるようにし、各周波数領域が働いているときに、実動作速度が適切な周波数能力になるようにする。幾つかのクロックを、（振動子の入力周波数を調整することによって）必要な周波数テスト条件に比例してスケーリングすることができる。また、オンチップで発生させたクロックを使用することにより、内部の周波数を、テストするハードウェアの最大能力をはるかに超えて増大させることができる。全ての高速の信号をチップ上に留まらせることができ、高速インターフェースボードの必要性なく、従って雑音及び接触抵抗に対して低感度の低価格テスタで、テストが可能となる。
【００３２】
テストは、異なるクロックドメインを有する種々のコアに対して、テスト手順の一部としてクロックドメインをまたがって相互作用させることができる。これにより、テストの適用範囲と品質を増大させることができる。実動作速度テストを使用するときは、機能モードのものと同じクロック経路をできるだけ使用するようにする。これは、テストで、その適用範囲を高めながら、機能モード／アプリケーションモードと同じクロック特性（デューティサイクル、伝播遅延）を使用することを意味する。
【００３３】
まず、本発明の方法を説明し、続いて本発明を実施するのに適したテストするハードウェアを説明する。
【００３４】
図１に、本発明のテスト方法の一例である遅延故障テスト用のタイミング図を示す。
【００３５】
図１は、シフトモードサイクルを時間調整するのに用いるテストクロックＴＣＫを示している。シフトモードは、スキャンイネーブルライン“ｓｅ”がハイになるとアクティブになり、通常モードは、このスキャンイネーブルラインがローになるとアクティブになる。通常モードの間、この例では３つの内部クロック信号が各々異なる周波数で発生し、これらの内部クロック信号は、ｃｌｋ＿ｘｘ，ｃｌｋ＿ｙｙ、及びｃｌｋ＿ｚｚとして示されている。これらの内部クロック信号は、ＰＬＬと分周回路で発生する。通常モードの間、テストクロックＴＣＫは、非活性化される。
【００３６】
遅延故障テストのために、これらのクロック信号の個々の位相は、所望の送出イベントを制御するのに用いられる。特に、通常モードは、２クロックサイクルを用いる。クロック制御ブロック（ＣＣＢ）は、クロック信号のｃｌｋ＿ｘｘ，ｃｌｋ＿ｙｙ、及びｃｌｋ＿ｚｚから所望のクロック位相を発生させる。
【００３７】
図１の例では、ＣＣＢは、１つのテストパターンの一部を形成する１ゲート回路配列を提供するのに使用される以下のクロック信号を発生する。
ｃｌｋ＿ｇ＿ｘｘ: これは、２つのクロック位相があるクロック信号ｃｌｋ＿ｘｘのゲートのバージョンである。
ｃｌｋ＿ｇ＿ｙｙ：これは、第１のクロック位相だけがあるクロック信号ｃｌｋ＿ｙｙのゲートのバージョンである。
ｃｌｋ＿ｇ＿ｚ１：これは、第２のクロック位相だけがあるクロック信号ｃｌｋ＿ｚｚのゲートのバージョンである。
ｃｌｋ＿ｇ＿ｚ２：これは、２つのクロック位相があるクロック信号ｃｌｋ＿ｚｚのゲートのバージョンである。
【００３８】
このタイミング図は、ゲートクロック信号のタイミングを制御するのに用いられるリセット信号ｃｌｏｃｋｄｉｖ＿ｒｓｔを示しており、以下でさらにこれについて説明する。
【００３９】
信号ｃｌｋ＿ｔｅｓｔｓｈｅｌｌは、例えばコア間のメモリ又は絶縁層の周りのＢＩＳＴシェルのようなテスト構体だけを制御するクロックである。他のクロック（ＴＣＫ以外）は、設計の機能素子を駆動する機能クロックである。
【００４０】
タイミングスキームは、次の３つのフェーズからなることが分かる。
（ｉ）ラインｓｅがハイの状態のスキャンインのフェーズ（第１のシフトモード）。このフェーズにおけるスキャンは、テスト制御ブロック設定のＰＬＬ初期化処理フェーズと制御も含んでいる。
（ｉｉ）ラインｓｅがローの状態の実行フェーズ（通常モード）。これは、この例では遅延故障テストの通常モードであるが、代わりにＢＩＳＴの通常モードとすることができる。
（ｉｉｉ）ラインｓｅがハイの状態のスキャンアウトのフェーズ（第２のシフトモード）。 これは、この例では遅延故障テストのスキャンアウトモードであるが、代わりにＢＩＳＴのシグネチャのシフトアウトモードとすることができる。
【００４１】
双方のスキャンフェーズは、テスタへの同期に必要であり、従って、テスタで規定されるクロック信号ＴＣＫで実行される。
【００４２】
実行フェーズは、複数の高速クロックパルスを必要とし、従って、全てのクロックは、内部クロック発生回路に切り換えられる。実行フェーズの間、ゲートクロック信号の同期送出とその非整列の捕捉を行う。
【００４３】
高周波クロック（この例ではｃｌｋ＿ｘｘ，ｃｌｋ＿ｙｙ、及びｃｌｋ＿ｚｚ）は、内部的に発生させることにより、高価で高速なテスタ及び複雑な基板設計の必要性を避けることができる。各クロックドメインは、その適切な周波数で働く。従って、多数の周波数領域を有するコアは、テストの有効性を妥協することなく、並列にテストすることができる。
【００４４】
実行フェーズでは、スキャンイネーブル信号‘ｓｅ’は、テストクロックＴＣＫからのクロックを用いて、内部クロックを発生するのに用いられるクロック分周回路の内部出力に切り換えるようにする。
【００４５】
タイミング信号‘ｃｌｏｃｋｄｉｖ＿ｒｓｔ’は、クロック分周回路をイネーブルにするのに用いられ、このタイミング信号がローに向かうときに、これはクロックパルスをリリースする。正確には、２クロックサイクルをリリースして、その後、クロック制御ブロック（ＣＣＢ）は、これらのクロックをゲートする。図示するように、ＣＣＢは、２つのクロックパルスのいずれかを抑制することができ、これにより、スキューセーフのテストパターンをマルチクロックＡＴＰＧのために発生できるようにする。信号“ｃｌｏｃｋｄｉｖ＿ｒｓｔ”は、クロック分周回路を停止するためにハイにすることができ、このとき、信号‘ｓｅ’は、ハイに戻して、クロックをテストクロックＴＣＫに戻すように切り換え、シフトモードに戻すことができる。
【００４６】
従って、この回路配列は、クロックドメイン間のスキューセーフの実動作速度テストをもたらし、これにより、テストの適用範囲と品質を増大させる。これを達成するために、全てのクロックを同時にリリースし、正確には各クロックで２サイクルをリリースする。マルチクロックＡＴＰＧとの組み合わせで、これは、全ての送出イベントを任意の捕捉イベントの前に生じさせ、これにより、クロックドメイン間のインタフェースを安全にテストできるのを確実にする。
【００４７】
以下、図１にて１〜7で付番したタイミング部分に関して、図１に示すテスト過程の種々のステージをさらに詳細に説明する。
【００４８】
１. テストセットアップ
実動作速度の遅延故障テストは、テストベクトルの単なる実行以上に関わりがある。テストを実行する前に、実動作速度のインフラストラクチャをセットアップする必要がある。
【００４９】
テストの前に、リング振動子をテストし、これに従って、リング振動子の周波数と各コア用の最大テスト周波数との間の以前に確立した相関関係に対して、振動子の入力周波数を調整する。
【００５０】
トップレベルテストの制御ブロック（ＴＣＢ）を、適切な周波数で内部の位相ロック・ループ（ＰＬＬ）を動作するように設定する。ＰＬＬを初期化し、且つロックに対してテストする。ロックのたびに、ユーザは、全ての連続するベクトルが振動子入力に完全に同期を保ち、ＰＬＬが確実に動作するのを確かめる必要がある。
【００５１】
２. スキャンイン
次に、テストベクトルを開始して、第１のベクトルをスキャンインすることができる。スキャンモードの間、全ての内部クロックを、テストクロックピンＴＣＫに従うように切り換える。また、スキャンの間、クロック分周回路は、信号ｃｌｏｃｋｄｉｖ＿ｒｓｔによるリセットで保持される。
【００５２】
３. 通常モードのエントリ
通常モードのエントリでは、テスト下のコアのスキャン可能なフリップフロップ（ＳＦＦ）を通常モードに切り換え、内部クロックを、テストクロック信号ＴＣＫのゼロ位相の間、クロック分周回路の出力に切り換える。このポイントから進んで、クロック制御ブロック（ＣＣＢ）は、クロックのリリース及びゲートを制御する。このゲートは、ＰＬＬ、分周回路、クロック切換素子、及びＣＣＢを含むクロック発生ユニットで実行することができる。
【００５３】
信号ｃｌｏｃｋｄｉｖ＿ｒｓｔは、リセット内で独立してクロック分周回路を保持させることにより、テストクロックＴＣＫのゼロ位相の間、クロック切換にグリッジがないようにする。
【００５４】
４．送出イベント
送出は、クロック分周回路用リセット信号ｃｌｏｃｋｄｉｖ＿ｒｓｔの遷移で生じる。 クロック分周回路用リセット機構の故に、サブシステムにおける全てのクロックは、立ち上がりエッジで同時に開始し、送出イベントをトリガする。
【００５５】
５．捕捉イベント
ＰＬＬ及び分周回路が発生したクロックは、実動作速度で動作し、第２のクロックサイクルを適切な周波数でリリースする。この第２のクロックサイクルの後に、ＣＣＢシーケンサは、全ての別のクロックサイクルを抑制する。
【００５６】
６．通常モードの退出
全ての捕捉イベントを達成した後、リセット信号ｃｌｏｃｋｄｉｖ＿ｒｓｔを、ハイにして、内部クロックを再びゼロにゲートする。捕捉に必要な時間に適応させるために、通常モードは、サイクル数を伸ばす必要もありうる。
【００５７】
7. シフトモードへの戻し
最終的なステップは、シフトモードに戻すように切り換えを行い、テスタ用のテストクロックＴＣＫを同期してシフトアウトし、次のパターンについてシフトインする。
【００５８】
この機構の１つの主要な特徴は、ゲートクロック信号を整列して送出することである。このやり方では、通常モードのクロックは、機能クロックの分周回路から取得する。何らかの形式の同期がなければ、様々なクロックが、無作為の順序になりうる。しかしながら、（マルチクロックＡＴＰＧによるか、又は他のものによるかのいずれかで）遅延故障の多数のクロックドメインのテストの主な要件は、任意の捕捉イベントの前に、全ての送出イベントが発生していなければならないことである。
【００５９】
この要件は、既知のＡＴＰＧアルゴリズムから生じる。ＡＴＰＧは、送出と捕捉が２つの独立したイベントであるとみなしている。これは、マルチクロックＡＴＰＧが、送出及び捕捉イベントとは独立して、クロックドメインの交差位置を保持（又は、マスク化）を計算することを暗に示している。１つのクロックドメインで送出して、（幾つかの）他のクロックドメインで保持することによって、安全な送出を行うことができ、同様に捕捉を行うこともできる。 しかしながら、このクロックスキームは、別の領域の捕捉クロックの後に送出クロックを設置する場合、後者の捕捉は、ＡＴＰＧによる適切なマスキングがなく、送出を誤らせることになる。
【００６０】
この要件について図２を参照して説明する。
【００６１】
この例では、クロックドメインｚ１は、クロックドメインｚ２にインタフェースし、一方で、このｚ２は、領域ｙｙにインタフェースする。マルチクロックＡＴＰＧは、適切にインタフェースと保持／マスクを識別するために適用される。
【００６２】
ＡＴＰＧアルゴリズムは、ｚ１とｚ２との間のインタフェースとして働くパターンを作成する。ｚ１はｚ２に送出し、ｚ２による捕捉は、ｚ１の捕捉クロックをゲートすることによって（点線）、安全に行う（図２における実線）。
【００６３】
ｚ２の送出パルスは、ゲートされる。また、ｚ２が捕捉されているとき、ＡＴＰＧは、ｚ２からｙｙまで進むデータをマスクする。しかしながら、ＡＴＰＧは、捕捉イベントに対してこれを行うだけであり、ｙｙの送出イベントに対して行うものではない（ＡＴＰＧの条件では、ｚ２からｙｙまでの最終のベクトルデータだけがＸにマスクされ、初期のベクトルデータは、ｚ２が送出の間は保持状態であるので、有効とみなされる）。
【００６４】
領域ｙｙは、領域ｚ２における捕捉の後に遅い送出で示している（十字で示す）。 これは、標準のＡＴＰＧでは識別したり、訂正したりすることができない。このため、送出同期機構が必要になる。
【００６５】
従って、全ての送出及び捕捉のサイクルの順序を予測することが不可欠である。本発明の方法によって、全てのクロックを同期して送出するが（しかしながら、必ずしもスキューがなくなるわけではない）、捕捉クロックを非整列にすることができる。様々なクロックドメインのインタフェース技法を使用して、位相差、及び／又は、種々の周波数に対処することができる。
【００６６】
上述したやり方は、ＢＩＳＴメモリテストに適用することができ、図３は、ＢＩＳＴの実動作速度のタイミング図を示している。
【００６７】
これは、図１と本質的には同じであるが、領域３０に示すように、無制限な量の（高速な）通常モードクロックサイクルが通常モードで許容される。これは、メモリを並列にテストすることができ、各メモリを適切な周波数でテストすることができる。
【００６８】
ここで、図４を参照して、クロックするハードウェアを説明する。上の説明から明らかなように、ハードウェアが可能にする必要がある様々なタイミング要件がある。
−  テスト（即ち、通常モード）の前に、ＰＬＬを初期化して、テストの間、ロックしたクロックを保持することができるようにしなければならない。
−  グリッジをなくすために、テスタクロックピン（ＴＣＫ）と内部クロックとの間で切り換える場合に、切換前後で行う共通のクロック位相を規定する必要がある。これを達成するために、信号ｃｌｏｃｋｄｉｖ＿ｒｓｔがアクティブ（ハイ）になる間、共通のＰＬＬソースからクロックを発生する全てのクロック分周回路を設定して、ローレベルを出力するようにする。
−  ロバストな多数のクロックドメインのテストを可能にするために、全ての送出イベントを捕捉イベントの前で生じさせる。これを達成するために、信号ｃｌｏｃｋｄｉｖ＿ｒｓｔの遷移をローにするとき、全てのクロック分周回路は、立ち上がりエッジで開始するようにする。
−  アプリケーションモードの間と同じタイミング状態をテストの間でできるだけ保証するために、これらのクロックは、アプリケーションクロック発生回路及びクロック経路を利用するようにする。テストのために特定のクロックの発生を全く実行しないので、１つのクロック発生回路の設計になり、設計とタイミングを近づける努力が低減することを暗に示している。
【００６９】
ＰＬＬ回路４０は、基準入力４２から基準クロックを供給する。クロック分周回路４４は、所望のクロック周波数を発生する。クロックスイッチモジュール４６は、クロック分周回路４４の後に挿入され、テスタクロックピン４８（ＴＣＫ）とクロックを発生させたＰＬＬ−分周回路との間での切り換えを提供する。補助入力ピン５０のｃｌｏｃｋｄｉｖ＿ｒｓｔは、スキャンイネーブルライン“ｓｅ”の信号とは無関係に、この切り換えを制御するのに用いられる。
【００７０】
この信号のゲートで取り出された信号５２（ｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔ）がクロック分周回路４４に出力され、クロックの活性化を制御する。
【００７１】
スイッチブロック４６の後に、クロック制御ブロック（ＣＣＢ）モジュール５４が各クロック出力に挿入される。（クロック発生ユニットのレベルか、又は、利用可能であれば、チップレットのレベルにおける）これらのＣＣＢは、通常モードの間にリリースしたクロックのパルス数を制御する。例えば、或るときは、縮退故障テストに用いることができ、或るときは、遅延故障テストに用いることができ、これらのクロックの各々をゲートすることができる。
【００７２】
クロック分周回路に関連付けられた制御ブロックを追加するやり方は、少数の重要な信号を時間調整することが可能な一般的なやり方でよい。クロック信号の使用は、一定に動作していなくとも、同期して送出するものであれば、ロバストな設計をもたらし、スキュー／グリッジの問題を避けることができる。
【００７３】
また、図４は、テスト制御ブロック（ＴＣＢ）５６を示している。図４では、ＴＣＢ５６、ＣＣＢ５４、及びクロックスイッチ４６は、機能コンポーネントであり、ＰＬＬ４０及び分周回路４４は、テスト特有のものである。
【００７４】
クロックスイッチは、図５により詳細に示している。
【００７５】
まず、ピンｃｌｏｃｋｄｉｖ＿ｒｓｔからの信号は、準安定性の問題を避けるためにＰＬＬクロックと同期させる。これは、フリップフロップ６０，６２を用いて達成する。
【００７６】
ロジックゲート回路配列６４は、分周回路用リセット信号ｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔの形態で、クロック分周回路に対して制御信号を発生させ、且つテストクロックＴＣＫをＣＣＢに供給するか、又は内部的に発生させたクロック６８をＣＣＢに供給する出力マルチプレクサ６６に対して制御信号を供給する。従って、マルチプレクサ機能は、各クロック分周回路の出力及びテスタクロックピンＴＣＫの単純な２：１多重である。
【００７７】
ｃｌｏｃｋｄｉｖ＿ｒｓｔ信号がアサートされる場合、クロック分周回路は、（同期して）ゼロにリセットして、分周回路のクロックとテスタクロックピンＴＣＫとの間の切り換えを可能にする。この信号が通常モードにデアサートされると、その瞬間に実動作速度におけるクロックが動作可能になる。
【００７８】
回路の機能は、図６の表に示されている。
【００７９】
ロジック６４は、図示するように３つの制御入力を有し、これらは以下の通りである。
（ｉ）ｔｃｋ＿ｓｅｌ
これは、テスト動作のためのテストクロック周波数を選択するか（従来からのテストの場合、ｔｃｋ＿ｓｅｌ＝１）、又は内部的に発生したクロック信号を選択する（実動作速度テストの場合、ｔｃｋ＿ｓｅｌ＝０）ための制御ラインである。
（ｉｉ）ｓｅｑ＿ｓｅ
これは、スキャンイネーブルラインの状態に依存して、クロック分周回路及びマルチプレクサを制御するものであり、“Ｓ”として図６の表に示している。
（ｉｉｉ）ｔｃｋ＿ｅｎ
これは、包括的なイネーブルラインとして機能し、マルチプレクサがＴＣＫテストクロックを出力可能にするにはハイにする必要があり、且つクロック分周回路の動作パルスｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔを発生するためにハイにする必要がある。
【００８０】
ロジック６４は、マルチプレクサ制御入力を発生する第１のＡＮＤゲート６４ａを備え、これは、ｔｃｋ＿ｅｎがハイであり、且つｔｃｋ＿ｓｅｌとｓｅｑ＿ｓｅの一方又は双方がハイのときに、ハイになる。第２のＡＮＤゲート６４ｂは、クロック分周回路用のリセット信号ｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔを発生し、このリセット信号は、入力ｃｌｏｃｋｄｉｖ＿ｒｓｔのハイからローへの遷移がフリップフロップ６０，６２を介して伝播されたとき、ローに向かう。
【００８１】
ＯＲゲート６４ｃ，６４ｄは、上述した機能性を完了させるものであり、ＯＲゲート６４ｃは、ｔｃｋ＿ｓｅｌ又はｓｅｑ＿ｓｅに基づいてＡＮＤゲート６４ａに入力を供給し、他方のＯＲゲート６４ｄは、制御ラインｓｅｑ＿ｓｅ及び同期化信号ｃｌｏｃｋｄｉｖ＿ｒｓｔのＯＲ機能を提供する。
【００８２】
図６から分かるように、ロジック６４は、多数のモードを実行可能にする。
【００８３】
アプリケーションモードは、３つの制御ラインが全てローの状態で、クロック回路をディセーブルにして、分周回路のリセット信号ｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔをリセットするようにする。
【００８４】
ハードウェアは、コアテスト、相互接続テスト、デバッグテスト、及び縮退故障テストをサポートし、これらのモードの各々のために、マルチプレクサ制御ラインをハイにして、テストクロックＴＣＫがマルチプレクサからの出力されるようにする。これは、ｔｃｋ＿ｓｅｌ及びｔｃｋ＿ｅｎが双方ともハイの結果である。
【００８５】
また、図６は、全ての制御ラインがハイの状態である、シフトアウトモードを示しており、そこでは、マルチプレクサは、テストクロックＴＣＫを出力する。
【００８６】
図６に示すように、実動作速度テストは、１のｔｃｋ＿ｅｎと、０のｔｃｋ＿ｓｅｌの制御ラインを有する。これは、マルチプレクサの制御がＳの値に依存することを意味する。Ｓ＝１、即ちシフトモードの間であるときに、マルチプレクサは、クロック信号ＴＣＫを出力するように制御される。Ｓ＝０、即ち通常モードの間、マルチプレクサは、内部的に発生したクロックを出力するように制御される。従って、ｓｅｑ＿ｓｅは、クロック用マルチプレクサを制御して、ｃｌｏｃｋｄｉｖ＿ｒｓｔがクロック分周回路をイネーブルにするか、又はリセットすることができるようにする。
【００８７】
更に、クロック分周回路は、制御ラインｃｌｏｃｋｄｉｖ＿ｒｓｔ５０によってのみ開始させられる。これは、シフトモードの間の１から通常モードの開始への０までの遷移を有する。 この１から０への遷移は、一旦ｃｌｏｃｋｄｉｖ＿ｒｓｔの遷移がフリップフロップ６０，６２を介してｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔのクロック分周回路の入力端に伝播されると、クロック分周回路の動作の始まりを開始する。
【００８８】
このピンにて、ｃｌｏｃｋｄｉｖ＿ｒｓｔをスキャン入力としてまだ使用できるが、制御信号ｓｅｑ＿ｓｅがローに向かう前に（その逆も同様に、通常モードは退出する前に）、(いつか)ハイが入力される必要がある。
【００８９】
クロック分周回路４４は、各分周回路が送出エッジから始まるように保持／リセット機能を提供する必要がある。全てのクロック出力は、保持がアクティブであるときには、ローに保持しておく必要があり、一旦保持が不活発状態になると、立ち上がりエッジから開始しなければならない。この動作は、図７に示されている。
【００９０】
信号ｃｌｋ＿ｄｉｖ＿ｉｎは、ＰＬＬ出力であり、この信号は、２，３及び４で分周されたＰＬＬクロックに対応する分周クロック出力ｃｌｋ＿ｄｉｖ２、ｃｌｋ＿ｄｉｖ３、及びｃｌｋ＿ｄｉｖ４を供給するように更に分周される。
【００９１】
図示するように、リセット信号ｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔがローになった後のＰＬＬクロックのｃｌｋ＿ｄｉｖの次の立ち上がりエッジは、分周クロックの始まりをトリガする。
【００９２】
分周されたＰＬＬクロックを有する通常モードの終わりでは、保持機能を、（ｃｌｏｃｋｄｉｖ＿ｇ_ｒｓｔがハイに向かうとき）再度アサートし、全てのクロック分周回路を、０のクロック位相で保持／リセットする必要がある。これは、同期して行うのが好適であり、リセットの活性化が、例えばＢＩＳＴエンジンの解析器にて、潜在的にデータを誤りうるグリッジを生成しないようにする。上で概説したように、遅延故障テストの場合、クロックの正確な数がＣＣＢによって制御されるので、ｃｌｏｃｋｄｉｖ＿ｇ＿ｒｓｔによってクロックを停止するのは重大なことではない。
【００９３】
ＢＩＳＴ−特に診断−に関して、クロックの不確実性に通じうるグリッチをクロックが生じないことが重要である。従って、分周回路は、図８に示すような波形を供給する必要がある。リセット信号ｃｌｏｃｋｄｉｖ＿ｇ_ｒｓｔがハイに戻った後に、ＰＬＬクロックの次の立ち上がりエッジは、分周されたクロックのゼロへの最終的な遷移をトリガする。
【００９４】
テストモードの間、分周回路が配置されているので、テストに関るリセット信号のみがアクティブになる。全ての機能モードの信号は、ゲートオフするか、又はディセーブルにする必要がある。
【００９５】
非テストモードでは、テストに関るリセット信号は、ディセーブルにする必要がある。これは、 専用のＴＣＢ信号で行うことができる。他方では、テストに関るリセット信号は、機能モードの間、完全にディセーブルにする必要がある。クロックシステムが機能モードで適切に始動できることを確実にしなければならない。
【００９６】
内部的に分周したクロック信号のゲート動作を提供するクロック制御ブロックについては、詳細に説明していないが、これらは、当業者に明らかである。
【００９７】
本質的にはクロックをゲートする回路配列は、ＡＮＤゲートを備えることができ、その一方の端子は、ゲートすべきクロック信号を受信し、その他方の端子は、例えばＤタイプのフリップフロップのＤ入力におけるロジックなどの入力時のロジックを有するラッチ素子の出力とすることができる制御信号を受信するＡＮＤゲートとできる。また、チップレットのレベルでのゲート動作も用いることができ、これは、チップレット又はコアのシェルにて、各クロックツリーの始めに挿入されるゲートとして規定される。中央のゲート（それ以外に、クロック制御ブロックの制御が知られている）は、あらゆる送出クロックの前のトップレベルのクロック発生ユニットにて、クロックツリーの根本で挿入されたゲートとなり、上述の例はＣＣＢの使用を想定している。
【００９８】
ゲート機能の種々の可能な実現例は、当業者には明らかである。上述の実施例では、ＣＣＢが、遅延故障テスト用の２クロックサイクルとＢＩＳＴ用の多数のクロックサイクルにより、通常モードでリリースされるクロックの数を制御するものである。ＡＴＰＧは、捕捉イベントの送出の発生も制御することができる。
【００９９】
上述したローからハイへ、及びハイからローへの遷移の使用は、当然に逆にすることもできる。
【０１００】
他の様々な変更は、当業者には明らかである。
【図面の簡単な説明】
【０１０１】
【図１】本発明の方法の第１の実施例のタイミングを示す図である。
【図２】図１のタイミングのやり方の利点を説明するのに用いる図である。
【図３】本発明の方法の第２の実施例のタイミングを示す図である。
【図４】本発明の異なる方法を実現するためのタイミングのハードウェアを示す図である。
【図５】図４の回路のより詳細を示す図である。
【図６】図５の場合の回路の動作の異なるモードを示す図である。
【図７】図５の回路を用いてテストモードの始まりにおけるタイミングを説明するのに用いる図である。
【図８】図５の回路を用いてテストモードの終わりにおけるタイミングを説明するのに用いる図である。
【図１】
2009522571.tif 000003
【図２】
2009522571.tif 000004
【図３】
2009522571.tif 000005
【図４】
2009522571.tif 000006
【図５】
2009522571.tif 000007
【図６】
2009522571.tif 000008
【図７】
2009522571.tif 000009
【図８】
2009522571.tif 000010
【国際調査報告】
2009522571.tif 000011
2009522571.tif 000012
2009522571.tif 000013