(57)【特許請求の範囲】
【請求項１】
集積回路内でレベルセンシティブスキャンデザイン記憶素子を非レベルセンシティブスキャンデザイン記憶素子に接続する方法であって、前記レベルセンシティブスキャンデザイン記憶素子はマスターラッチおよびスレーブラッチを有しており、
クロック信号を受け取り、
前記クロック信号から、前記マスターラッチおよび前記スレーブラッチのための別個の重なっていないクロックを発生し、
前記マスターラッチおよび前記スレーブラッチのための前記別個の重なっていないクロックをアサートする順序を制御することを特徴とする方法。
【請求項２】
前記方法は、前記集積回路にデータをスキャンインすることをさらに包含することを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は、
テスト信号を受け取り、
前記テスト信号に基づいて、前記マスターラッチおよび前記スレーブラッチのための別個の重なっていないクロックのうちの一方を他方の前にアサートすることをさらに包含することを特徴とする請求項１に記載の方法。
【請求項４】
前記方法は、前記マスタークロックおよび前記スレーブクロックのための書き込みクロックを発生することをさらに包含することを特徴とする請求項１に記載の方法。
【請求項５】
前記別個の重なっていないクロックは、マスタースキャンクロックおよびスレーブスキャンクロックを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記マスターラッチの初期データビットは、前記マスタースキャンクロックをアサートする前に前記スレーブスキャンクロックをアサートすることによって、前記スレーブラッチにラッチされることを特徴とする請求項５に記載の方法。
【請求項７】
集積回路内でレベルセンシティブスキャンデザイン記憶素子を非レベルセンシティブスキャンデザイン記憶素子と接続するインタフェースであって、前記レベルセンシティブスキャンデザイン記憶素子はマスターラッチおよびスレーブラッチを有しており、前記インタフェースは、
テストイネーブル信号を発生するように設けられたテストイネーブルモジュールと、
前記マスターラッチおよびスレーブラッチのための別個の重なっていないクロックを発生するように設けられたクロック発生モジュールと、
前記テストイネーブルモジュールおよび前記クロック発生モジュールに接続されており、前記テスタイネーブル信号を受け取ると、前記マスターラッチおよび前記スレーブラッチの前記別個の重なっていないクロックを制御することによって、前記マスターラッチの初期データビットを選択的にラッチするように構成されたマスターオブザーブモジュールと
を備えていることを特徴とするインタフェース。
【請求項８】
前記インタフェースは、前記集積回路にスキャンインされるデータをラッチするように構成されたデータロックアップモジュールをさらに備えていることを特徴とする請求項７に記載のインタフェース。
【請求項９】
前記クロック発生モジュールは、前記マスターラッチおよび前記スレーブラッチのための書き込みクロックをさらに発生することを特徴とする請求項７に記載のインタフェース。
【請求項１０】
前記別個の重なっていないクロックは、マスタースキャンクロックおよびスレーブスキャンクロックを含んでいることを特徴とする請求項７に記載のインタフェース。
【請求項１１】
前記マスターオブザーブモジュールは、前記マスタースキャンクロックの前に前記スレーブスキャンクロックをアサートすることによって、前記マスターラッチの初期データビットを選択的にラッチすることを特徴とする請求項１０に記載のインタフェース。
【請求項１２】
前記レベルセンシティブスキャンデザイン記憶素子はＬ２スター構成を有していることを特徴とする請求項７に記載のインタフェース。
【請求項１３】
非レベルセンシティブスキャンデザイン記憶素子と、
マスターラッチおよびスレーブラッチを有するレベルセンシティブスキャンデザイン記憶素子と、
前記非レベルセンシティブスキャンデザイン記憶素子と前記レベルセンシティブスキャンデザイン記憶素子との間に接続されており、前記マスターラッチおよび前記スレーブラッチのための別個の重なっていないクロックを生成し、かつ前記マスターラッチおよび前記スレーブラッチのラッチする順番を制御するように構成されたインタフェースと
を備えていることを特徴とするスキャンチェーン。
【請求項１４】
前記レベルセンシティブスキャンデザイン記憶素子はＬ２スター構成を有していることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項１５】
前記非レベルセンシティブスキャンデザイン記憶素子はＭｕｘｓｃａｎ構成を有していることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項１６】
前記インタフェースは、前記レベルセンシティブスキャンデザイン記憶素子にスキャンインされるデータをラッチするようにさらに構成されていることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項１７】
前記インタフェースは、前記マスターラッチおよび前記スレーブラッチのための書き込みクロックを発生するように構成されていることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項１８】
前記別個の重なっていないクロックは、マスタースキャンクロックおよびスレーブスキャンクロックを含んでいることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項１９】
前記ラッチする順番は、前記スレーブラッチをラッチする前に前記マスターラッチをラッチすることを含んでいることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項２０】
前記ラッチする順番は、前記マスターラッチをラッチする前に前記スレーブラッチをラッチすることを含んでいることを特徴とする請求項１３に記載のスキャンチェーン。
【請求項２１】
集積回路内でレベルセンシティブスキャンデザイン記憶素子を非レベルセンシティブスキャンデザイン記憶素子に接続するインタフェースであって、前記レベルセンシティブスキャンデザイン記憶素子はマスターラッチおよびスレーブラッチを有しており、前記インタフェースは、
クロック信号を受け取る手段と、
前記クロック信号から、前記マスターラッチおよびスレーブラッチのための別個の重なっていないクロックを発生する手段と、
前記マスターラッチおよび前記スレーブラッチのための別個の重なっていないクロックの一方を他方の前に選択的にアサートする手段と
を備えていることを特徴とするインタフェース。
【請求項２２】
前記インタフェースは、前記集積回路にスキャンインされるデータをラッチする手段をさらに備えていることを特徴とする請求項２１に記載のインタフェース。
【請求項２３】
前記インタフェースは、前記マスターラッチおよび前記スレーブラッチのための書き込みクロックを発生する手段をさらに備えていることを特徴とする請求項２１に記載のインタフェース。
【請求項２４】
前記別個の重なっていないクロックは、マスタースキャンクロックおよびスレーブスキャンクロックを含んでいることを特徴とする請求項２１に記載のインタフェース。
【請求項２５】
前記マスタースキャンクロックをアサートする前に前記スレーブスキャンクロックをアサートすることにより、前記マスターラッチの初期データビットは前記スレーブラッチにラッチされることを特徴とする請求項２４に記載のインタフェース。
【請求項２６】
集積回路内でＬ２スター記憶素子をＭｕｘｓｃａｎ記憶素子と接続する装置であって、前記Ｌ２スター記憶素子はマスターラッチおよびスレーブラッチを有しており、前記装置は、
前記集積回路にスキャンインされるデータをラッチするデータロックアップモジュールと、
テスタイネーブル信号を発生するテストイネーブルモジュールと、
前記マスターラッチおよびスレーブラッチのための書き込みクロックと別個の重なっていないマスタースキャンクロックおよびスレーブスキャンクロックとを発生するクロック発生モジュールと、
前記マスタースキャンクロックをアサートする前に前記スレーブスキャンクロックをアサートすることによって、前記テスタイネーブル信号の発生に応じて、前記マスターラッチからの初期データビットを前記スレーブラッチに選択的にスキャンインするマスターオブザーブモジュールと
を備えていることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＳＤ記憶素子に関する。特に本発明は、ＬＳＳＤ記憶素子を非ＬＳＳＤ記憶素子に接続して動作を容易にし、両タイプの記憶方法を用いる集積回路のテストを行う方法および装置に関する。
【０００２】
【従来の技術】
デジタル集積回路では、論理状態（例えばＨＩＧＨまたはＬＯＷ）を一時的に記憶するラッチおよびフリップフロップのような記憶素子が集積回路内に多数含まれることがよくある。集積回路の構成要素からのデータは記憶素子に受け取られ、ラッチされるか記憶されるかして、集積回路の同じ構成要素および／または他の構成要素に出力される。例えば、既知の論理状態から集積回路を動作させるために、記憶素子に記憶されたデータを選択的に設定することはしばしば有益である。同様に、記憶素子へのビットシーケンス全体をシフトさせて集積回路をテストすることも有用である。後者の場合、２以上の記憶素子がデイジーチェーン接続され、１つの記憶素子からの出力が次の記憶素子の入力に与えられるということが続く。そして、このチェーンの記憶素子の１つがタップ、つまり制御されたテストビットにおけるシフトすべき点として選択される。同様に、ビットシーケンスを集積回路からチェーンにシフトし、同じまたは他の記憶素子で観察し、期待される出力と比較することができる。このシフトは「スキャンニング」とも呼ばれる。記憶素子のチェーンは「スキャンチェーン」と呼ばれる。
【０００３】
記憶素子の通常のタイプの１つは、Ｍｕｘｓｃａｎ記憶素子１０であり、図１ＡではフリップフロップＦＦに接続されたマルチプレクサＭＵＸとして示される。マルチプレクサＭＵＸは、選択入力ＳＥＬを介して選択可能である０と１との２つの入力、ならびに出力Ｏを有している。０および１の入力は、一般的には、それぞれ、データ信号ＤＡＴＡおよびスキャンイン信号ＳＩに接続され、選択入力ＳＥＬは一般的にはスキャンイネーブル信号ＳＥに接続される。データ信号は、通常動作中の集積回路の既定の構成要素からの論理状態を運び、スキャンイン信号ＳＩは、集積回路をテストする目的で、例えばテスタからの論理状態を与える。スキャンイネーブル信号ＳＥが論理ＬＯＷのとき、マルチプレクサＭＵＸはＤＡＴＡ信号を出力として選択する。スキャンイネーブル信号ＳＥが論理ＨＩＧＨのとき、マルチプレクサＭＵＸはＳＩ信号を出力として選択する。出力ＯはフリップフロップＦＦの入力Ｄに接続されている。フリップフロップＦＦはデータ出力Ｑも有している。動作時には、クロック信号ＣＬＫがアサートされると、フリップフロップＦＦはその入力Ｄのデータが何であろうと（ＤＡＴＡ信号かＳＩ信号のどちらかから）それをラッチし、このデータを出力Ｑに出力する。
【０００４】
図１Ｂは、図１ＡのＭｕｘｓｃａｎ記憶素子１０の簡易バージョンを示している。図１ＡのマルチプレクサＭＵＸおよびフリップフロップＦＦは、図１Ａに示されている素子と機能的には同一である単一の素子に組み合わされている。
【０００５】
記憶素子の他のタイプは、レベルセンシティブスキャンデザイン（Ｌｅｖｅｌ−Ｓｅｎｓｉｔｉｖｅ Ｓｃａｎ Ｄｅｓｉｇｎ）、つまりＬＳＳＤ記憶素子である。一般的に、ＬＳＳＤ記憶素子は非ＬＳＳＤ記憶素子に対して、その動作がクロック信号の正確なタイミングに依存しないという利点を有している。代わりに、ＬＳＳＤ記憶素子の動作は、クロック信号が生じたかどうか、つまり、ある既定の電圧レベルが得られたかどうかのみに依存し、クロック信号がいつ生じたかには依存しない。このような正確なタイミングに対する感受性のなさは、クロックスキューならびに立ち上がりまたは立ち下り時間への依存性といったタイミングに関連する問題を回避する。しかしながら、ＬＳＳＤ記憶素子はもっと厳しい設計上の制限を有している。例えば、ＬＳＳＤ記憶素子におけるそれぞれのラッチは、それ自身のクロック信号を有さねばならず、クロック信号同士は重なってはならない。
【０００６】
「Ｌ２スター」と呼ばれるよく知られているＬＳＳＤ記憶素子を図２に機能的に図示している。この記憶素子２０は、互いに接続されているマスターラッチＬ１とスレーブラッチＬ２とを有している。ラッチＬ１およびＬ２は両方とも、クロック入力ＣＬＫ１およびＣＬＫ２によってそれぞれがラッチされる入力Ｄ１およびＤ２のセットを有している。両方のラッチＬ１およびＬ２上の出力Ｑは、Ｄ１入力かＤ２入力のどちらかから（どちらでも最後にラッチされた方）のデータを出力する。マスターラッチＬ１はマスター出力信号ＱＭを出力し、スレーブラッチＬ２はスレーブ出力信号ＱＳを出力する。マスターラッチＬ１の入力Ｄ１は、集積回路の既定の構成要素からの論理状態を運ぶデータ信号ＤＭに接続されており、スレーブラッチＬ２の対応する入力Ｄ１はもう１つのデータ信号ＤＳに接続されている。集積回路全体への書き込みクロック信号ＷＣＬＫは、ＤＭおよびＤＳ信号からのデータをラッチするためのラッチＬ１およびＬ２の両方のクロック入力ＣＬＫ１に接続されている。マスターラッチＬ１の入力Ｄ２は、集積回路をテストする目的で、例えばテスタからの論理状態を運ぶスキャンイン信号ＳＩに接続されており、スレーブラッチＬ２の対応する入力Ｄ２はマスターラッチＬ１からのマスター出力信号ＱＭに接続されている。マスタースキャンクロックＡＣＬＫはスキャンイン信号ＳＩからのデータをラッチし、スレーブスキャンクロックＢＣＬＫはＱＭ信号からのデータをラッチする。
【０００７】
ＬＳＳＤ記憶素子２０の動作を図３のタイミング図を参照しながら説明する。通常動作時には、マスターラッチＬ１およびスレーブラッチＬ２は、ともに独立した記憶素子として機能する。書き込みクロックＷＣＬＫがアサートされると、信号ＤＭおよびＤＳに運ばれていたデータは２つのラッチＬ１およびＬ２によってラッチされ、それぞれ、出力信号ＱＭおよびＱＳとして出力される。ここで、２つのスキャンクロックＡＣＬＫおよびＢＣＬＫはこの時点では非アクティブであり、スキャンイン信号ＳＩは「かまわれない」状態にあることに留意されたい。
【０００８】
テスト動作あるいはスキャン動作時には、マスターラッチＬ１およびスレーブラッチＬ２は一緒に２段階シフトレジスタを構成する。マスタースキャンクロックＡＣＬＫがアサートされると、スキャンイン信号ＳＩからのデータがマスターラッチＬ１にラッチされ、マスター出力信号ＱＭとして出力される。そして同じデータは、スレーブスキャンクロックＢＣＬＫがアサートされるとスレーブラッチＬ２によってラッチされ、スレーブ出力信号ＱＳとして出力される。ここでスキャン機能の正常な動作のためには、２つのスキャンクロックＡＣＬＫおよびＢＣＬＫは互いに重なり合ってはならない。
【０００９】
【発明が解決しようとする課題】
タイミング図からわかるように、Ｌ２スター構成は、通常動作時には両方のラッチＬ１およびＬ２を独立した記憶素子として使用する。しかしながら、スキャン動作時には、マスターラッチＬ１はスレーブラッチＬ２に出力データを与え、ラッチは独立ではない。複数のＬ２スター記憶素子からなるスキャンチェーンにおいて、スキャン動作の開始時にマスタースキャンクロックＡＣＬＫを最初にアサートすることは、スレーブラッチＬ２の入力Ｄ２へ与えられる初期データビットを破壊する。また、スレーブスキャンクロックＢＣＬＫを最初にアサートすることは、続くマスターラッチＬ１の入力Ｄ２に与えられる初期データビットを破壊する。一例として、スキャン動作の開始時にスキャンイン信号ＳＩがＨＩＧＨであり、マスター出力信号ＱＭはＬＯＷである。マスタースキャン信号ＡＣＬＫがアサートされると、スキャンイン信号ＳＩからのＨＩＧＨはマスターラッチＬ１にラッチされ、マスター出力信号ＱＭはＨＩＧＨとなり、ゆえに前のＬＯＷがスレーブラッチＬ２によってラッチされるよりも前にそれに取って代わってしまう。スレーブスキャンクロックＢＣＬＫが最初にアサートされても、同様の置き換わりがスキャンチェーン内の次のマスターラッチで起こる。したがって、全てのデータを捉えるためには各スキャン動作を二回実行しなければならない。一回はマスタースキャンクロックＡＣＬＫが最初にアサートして、もう一回はスレーブスキャンクロックＢＣＬＫが最初にアサートしてである。
【００１０】
また、Ｌ２スタータイプの記憶素子は、３つの別個のクロックＷＣＬＫ、ＡＣＬＫおよびＢＣＬＫを必要とするため、クロックを１つだけ必要とするＭｕｘｓｃａｎ記憶素子用に設計された集積回路とは一般的には互換性を有さない。同じスキャンチェーン内で両方のタイプの記憶素子を用いるためには、２つのさらなる別個の重なり合わないスキャンクロックを提供するように集積回路を改変しなければならない。
【００１１】
そこで本発明は、上記の課題を解決することのできるＬＳＳＤインタフェースを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【００１２】
【課題を解決するための手段】
本発明は、ＬＳＳＤ記憶素子を非ＬＳＳＤ記憶素子に接続して動作を容易にし、また両方のタイプの記憶方法を用いた集積回路のテストを行う方法および装置に関する。
【００１３】
概して、一実施形態においては、本発明は、集積回路内でレベルセンシティブスキャンデザイン記憶素子を非レベルセンシティブスキャンデザイン記憶素子に接続する方法に関する。レベルセンシティブスキャンデザイン記憶素子はマスターラッチおよびスレーブラッチを有している。この方法は、クロック信号を受け取り、クロック信号からマスターラッチおよびスレーブラッチのための別個の重なっていないクロックを発生し、マスターラッチおよびスレーブラッチのための別個の重なっていないクロックをアサートする順序を制御する。
【００１４】
概して、一実施形態において、本発明は、集積回路内でレベルセンシティブスキャンデザイン記憶素子を非レベルセンシティブスキャンデザイン記憶素子に接続するインタフェースに関する。レベルセンシティブスキャンデザイン記憶素子はマスターラッチおよびスレーブラッチを有している。このインタフェースは、テストイネーブルモジュールと、クロック発生モジュールと、テストイネーブルモジュールおよびクロック発生モジュールに接続されているマスターオブザーブモジュールとを備えている。テストイネーブルモジュールは、テストイネーブル信号を発生するように設けられており、クロック発生モジュールは、マスターラッチおよびスレーブラッチのための別個の重なっていないクロックを発生するように設けられている。マスターオブザーブモジュールは、テスタイネーブル信号を受け取ると、マスターラッチおよびスレーブラッチの別個の重なっていないクロックを制御することによって、マスターラッチの初期データビットを選択的にラッチするように構成されている。
【００１５】
概して、一実施形態において、本発明はスキャンチェーンに関し、このスキャンチェーンは、非レベルセンシティブスキャンデザイン記憶素子と、マスターラッチおよびスレーブラッチを有するレベルセンシティブスキャンデザイン記憶素子と、これら２つのラッチの間に接続されたインタフェースとを備えている。インタフェースは、マスターラッチおよびスレーブラッチのための別個の重なっていないクロックを生成し、かつマスターラッチおよびスレーブラッチのラッチする順番を制御するように構成されている。
【００１６】
概して、一実施形態において、本発明は、集積回路内でレベルセンシティブスキャンデザイン記憶素子を非レベルセンシティブスキャンデザイン記憶素子に接続するインタフェースに関する。レベルセンシティブスキャンデザイン記憶素子はマスターラッチおよびスレーブラッチを有している。このインタフェースは、クロック信号を受け取る手段と、クロック信号からマスターラッチおよびスレーブラッチのための別個の重なっていないクロックを発生する手段と、マスターラッチおよびスレーブラッチのための別個の重なっていないクロックの一方を他方の前に選択的にアサートする手段とを備えている。
【００１７】
概して、一実施形態において、本発明は、集積回路内でＬ２スター記憶素子をＭｕｘｓｃａｎ記憶素子と接続する装置に関する。Ｌ２スター記憶素子はマスターラッチおよびスレーブラッチを有している。この装置は、集積回路にスキャンインされるデータをラッチするデータロックアップモジュールと、テスタイネーブル信号を発生するテストイネーブルモジュールと、マスターラッチおよびスレーブラッチのための書き込みクロックと別個の重なっていないマスタースキャンクロックおよびスレーブスキャンクロックとを発生するクロック発生モジュールと、マスタースキャンクロックをアサートする前にスレーブスキャンクロックをアサートすることによって、テスタイネーブル信号の発生に応じて、マスターラッチからの初期データビットを前記スレーブラッチに選択的にスキャンインするマスターオブザーブモジュールとを備えている。
【００１８】
本発明の利点は、主として非ＬＳＳＤ記憶素子用に設計された集積回路内でＬＳＳＤ記憶素子が非ＬＳＳＤ記憶素子とともに動作することを可能にすることを含む。本発明の他の利点は以下の説明および請求項から明らかとなるであろう。
【００１９】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【００２０】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態はクレームにかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２１】
前述したように、ＬＳＳＤ記憶素子は、一般的には、非ＬＳＳＤ記憶素子用に設計された集積回路とは互換性をもたない。同じスキャンチェーン内で両方のタイプを使用するためには、集積回路の単一のクロックを別個の重なっていないクロックに変換し、またマスタースキャンクロックおよびスレーブスキャンクロックのアサートの制御を容易にするためにインタフェースが必要である。
【００２２】
図４を参照すると、スキャンチェーン４０の一部分は、非ＬＳＳＤ記憶素子４２、ＬＳＳＤ記憶素子４４、および非ＬＳＳＤ記憶素子４２とＬＳＳＤ記憶素子４４とをともに示しているように接続するＬＳＳＤインタフェース５０を有している。スキャンチェーン４０は、矢印で示されるスキャン方向で集積回路にデータをスキャンインし、集積回路からデータをスキャンアウトするために用いられ得る。ここでは２つの記憶素子のみを示しているが、全体のスキャンチェーン４０はもちろんもっと長く、多くの非ＬＳＳＤ記憶素子およびＬＳＳＤ記憶素子を必要に応じて有していてもよい。実際、スキャンチェーン４０は、データがスキャンインされている間に、回路で生成された応答のデータがスキャンチェーン４０上でスキャンアウトされ始める程の長さを通常は有しているので、スキャンインおよびスキャンアウトは典型的には同時に起こる。非ＬＳＳＤ記憶素子４２は、例えば前述したＭｕｘｓｃａｎ記憶素子であってもよく、ＬＳＳＤ記憶素子４４は、例えばＬ２スターであってもよい。
【００２３】
インタフェース５０は、集積回路をテストするためにテスタが用いるテストパターンを生成する自動テストパターン生成器（ＡＴＰＧ）と呼ばれるソフトウェアツールとともに動作するように設計される。特にインタフェース５０により、ＬＳＳＤ記憶素子４４におけるマスタースキャンクロックＡＣＬＫ（図２参照）とスレーブスキャンクロックＢＣＬＫとのどちらをスキャンシーケンス中に最初にアサートするかをＡＴＰＧが制御することが可能になる。Ｌ２スターＬＳＳＤ記憶素子について、マスタースキャンクロックＡＬＣＫを最初にアサートすることはマスター出力信号ＱＭの最初のデータビットを置き換え、スレーブスキャンクロックＢＣＬＫについても同様であることを思い出してほしい。しかしながら、しばしば、Ｌ２スターにおけるマスターあるいはスレーブラッチからの最初のデータビットは、ＡＴＰＧの誤り伝搬手法に基づいて、ＡＴＰＧによって価値がない、あるいは重要でないと考えられ、もしくは考えることができ、スキップされることがしばしばある。別の言い方をすると、生成されたテストパターンの効率は、最初のデータビットの両方を捕捉しなければならないことの必要性を除去する。インタフェース５０は、ＡＴＰＧがどのビットを飛び越えて進むかを選択することを可能にする。さらに、Ｌ２スターは、その正常な動作のためには別個の書き込みクロックＷＣＬＫ、ならびに重なっていないスキャンクロックＡＬＣＫおよびＢＣＬＫを必要とすることを思い出してほしい。インタフェース５０は、集積回路のシステムクロックからこれらのクロックを生成する。
【００２４】
一実施形態では、図５を参照すると、インタフェース５０は、データロックアップモジュール６０、テストイネーブルモジュール７０、マスターオブザーブモジュール８０、およびクロック発生モジュール９０を有している。データロックアップモジュール６０は、例えばテスタ（図示せず）あるいは非ＬＳＳＤ記憶素子から入ってくるスキャンデータをラッチするように動作し、そのデータはＬＳＳＤ記憶素子によって適切に受け取られ得る。テストイネーブルモジュール７０は、テスタが準備状態にあることを確実にし、この準備状態をマスターオブザーブモジュール８０に示すためにインタフェース５０に関する信号を生成する。マスターオブザーブモジュール８０は、集積回路からスキャンアウトされるデータを監視し、そのデータに基づいてスレーブスキャンクロックＢＣＬＫを最初にアサートさせ、あるいはマスタースキャンクロックＡＣＬＫを最初にアサートさせる。最後にクロック発生モジュール９０が、ＬＳＳＤ記憶素子の正常な動作に必要とされる互いに重なっていないスキャンクロックを生成する。
【００２５】
各モジュールは、図示されているようにそのモジュールに入り、出て行く信号線を多数有している。モジュールを詳述する前に様々な信号線を説明することがインタフェース５０を理解する上で手助けになる。全ての信号は、示されていない限りアクティブＨＩＧＨである。
【００２６】
ＳＩ＿Ｎ信号はスキャンイン信号であり、例えばＡＴＰＧによって生成されたビットシーケンスを運ぶ。このビットシーケンスはスキャンチェーン４０（図４参照）を通して集積回路にスキャンインされるべきものである。ＳＩ＿Ｎ信号はテスタから直接入ってくるか、１以上の非ＬＳＳＤ記憶素子を通して入ってくる。
【００２７】
しかしながら、非ＬＳＳＤソースからＬＳＳＤ記憶素子に通過したデータは、ＬＳＳＤ記憶素子がデータを正常に受け取ることを確実にするためには、最初にラッチされなければならない。したがってＳＩ信号は、データロックアップモジュール４０によってラッチされた後は単なるＳＩ＿Ｎ信号である。
【００２８】
ＳＯ＿Ｎ信号はスキャンアウト信号であり、集積回路からのビットシーケンスをスキャンチェーン４０を通して運び、最後にはテスタに戻って、期待されているデータと比較される。
【００２９】
ＣＬＫ信号は集積回路のボード上のグローバルシステムクロックである。
【００３０】
ＲＥＳＥＴ信号は集積回路によって提供される信号であって、スキャンチェーン、またはその特定の部分をクリアするために用いられる。この信号がアサートされると、スキャンチェーンはＬＯＷに一変する。
【００３１】
ＬＳＳＤ＿ＴＥ信号は、テスタが準備状態にあることを示すためにテスタによって提供されるグローバルテスタイネーブル信号である。この信号はアクティブＬＯＷである。
【００３２】
ＴＥ＿ＬＯＣＡＬ信号は、テスタがオンかオフかを示すためにテストイネーブルモジュール６０から局所的に生成されるテスタイネーブル信号である。この信号はアクティブＬＯＷである。
【００３３】
ＭＯＢ＿ＣＮＴＬ信号は、マスターオブザーブモジュール８０を制御するための、集積回路からの制御信号であり、このモジュールをイネーブルまたはディスエーブルにするために用いられる。デフォルトによると、この信号は通常はＨＩＧＨである。
【００３４】
ＭＯＢ＿ＥＮ信号はマスターオブザーブモジュール８０によって発せられる制御信号であり、マスターラッチの出力が「観察される」べきか、ラッチされるべきかを示す。
【００３５】
ＭＯＢ＿ＯＶＥＲ信号はマスターオブザーブモジュール８０によって発せられる信号であり、マスターラッチオブザーブシーケンスが完了していることを示すために用いられる。この信号はアクティブＬＯＷである。
【００３６】
ＳＥ信号は集積回路によって与えられるスキャンイネーブル信号で、スキャン動作に対して集積回路の準備ができていることを示す。
【００３７】
ＱＳ信号はスレーブラッチからのスレーブ出力信号である。
【００３８】
ＷＣＬＫ信号は、通常動作中にＬＳＳＤ記憶素子が用いる書き込みクロックである。
【００３９】
ＡＣＬＫ信号は、スキャン動作中にマスターラッチが用いるマスタースキャンクロックである。
【００４０】
ＢＣＬＫ信号は、スキャン動作中にスレーブラッチが用いるスレーブスキャンクロックである。
【００４１】
以下、インタフェース５０の異なるモジュールを説明する。前述したように、データロックアップモジュール６０は、ＬＳＳＤ記憶素子に入力されるデータをラッチするように働く。データロックアップモジュール６０の出力ならびにＲＥＳＥＴ信号は、ＮＯＲゲート６２に入力され、ＲＥＳＥＴ信号がアサートされると、ＳＩ信号（これはＮＯＲゲート６２の出力である）はＬＯＷにリセットされる。
【００４２】
今度は図６を参照して、しかし残る説明を通して図５も参照し続けると、いくつかの実施形態においては、データロックアップモジュール６０は、図示されているように接続されている、ネガティブエッジをトリガーとするフリップフロップ６４で構成される。クロックＣＬＫのネガティブへの遷移を受けとると、フリップフロップ６４は、入力Ｄのデータが何であってもそれをラッチし、フリップフロップ６４の出力Ｑにこのデータを出力する。データは、クロック信号ＣＬＫの他のネガティブへの遷移を受けるまで出力Ｑで保持される。
【００４３】
図７を参照すると、テストイネーブルモジュール７０の目的は、確実にテスタを準備状態にすること、ならびに、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬにＨＩＧＨをアサートすることによってマスターオブザーブモジュール８０にこのことを示すことである。テストイネーブルモジュール７０は、図示されているように接続されている、第１および第２のＭｕｘｓｃａｎタイプ（図１参照）の記憶素子Ｍ１およびＭ２から構成されている。記憶素子Ｍ１およびＭ２の出力は、これらの出力が１入力に対してのみ通常の極性を有し、０入力に対しては逆極性を有することを示すように「Ｑ１」で示されている。例えば、０入力におけるＨＩＧＨは出力Ｑ１でＬＯＷに反転され、これに対して１入力に対しては反転は起こらない。第１の記憶素子Ｍ１の０入力および１入力の両方はＬＯＷ、つまり０ボルトでつながれ、第２の記憶素子Ｍ２の１入力も同様である。バッファ７２は第１の記憶素子Ｍ１の出力Ｑ１を第２の記憶素子Ｍ２の０入力に接続する。そして第２の記憶素子Ｍ２の出力Ｑ１はインバータ７４に接続され、その出力はＡＮＤゲート７６の１つの入力を与える。ＡＮＤゲート７６のもう１つの入力はグローバルテスタイネーブル信号ＬＳＳＤ＿ＴＥに接続されている。記憶素子Ｍ１およびＭ２の両方の選択入力ＳＥＬは互いにつながれており、スキャンイネーブル信号ＳＥにもつながれている。同様に、記憶素子Ｍ１およびＭ２の両方のクロック入力は互いにつながれており、グローバルクロック信号ＣＬＫにもつながれている。
【００４４】
動作時に、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬは、ＡＮＤゲート７６の両方の入力がＨＩＧＨのときにＨＩＧＨであり、ＡＮＤゲート７６の入力のどちらか、または両方がＬＯＷのときにＬＯＷである。２つの記憶素子Ｍ１およびＭ２は、通常は、ＡＮＤゲート７６の記憶素子Ｍ１およびＭ２側にＨＩＧＨを与える。例えば、スキャンイネーブル信号ＳＥがＬＯＷであるとき、両記憶素子Ｍ１およびＭ２の０入力が制御し、Ｑ１出力の極性反転がＡＮＤゲート７６の入力に現れるＨＩＧＨを生じさせる。一方、スキャンイネーブル信号ＳＥがＨＩＧＨであるとき、１入力が制御し、極性反転は起こらず、ＨＩＧＨがやはりＡＮＤゲート７６に現れる。このように、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬのアサートは、通常はＡＮＤゲート７６のもう１つの入力、つまりグローバルテスタイネーブル信号ＬＳＳＤ＿ＴＥの論理状態に依存する。この信号は、テスタが準備状態にあるときにＨＩＧＨであり、それ以外ではＬＯＷである。
【００４５】
記憶素子Ｍ１およびＭ２がＡＮＤゲート７６の入力にＬＯＷを与える唯一のときは、スキャンイネーブル信号ＳＥがＨＩＧＨからＬＯＷになった直後の１クロックサイクルである。これを示すために、スキャンイネーブル信号ＳＥがＨＩＧＨであり、１入力が制御し、第２の記憶素子Ｍ２の０入力でＬＯＷを生じさせている（極性反転はない）。スキャンイネーブル信号ＳＥがＬＯＷに遷移した直後のクロックサイクルで、第２の記憶素子Ｍ２の０入力に現れていたＬＯＷは出力Ｑ１でＨＩＧＨになる（極性反転）。このＨＩＧＨは続いてインバータ７６で反転され、ＡＮＤゲート７６の入力に現れるＬＯＷを生じさせる。上述の状況は１クロックサイクルの間のみ続き、その後には通常のＨＩＧＨがＡＮＤゲート７６の入力に再びアサートされることに留意されたい。
【００４６】
図８を参照すると、マスターオブザーブモジュール８０の目的は、受け取ったスキャンデータに基づいてマスターオブザーブイネーブル信号ＭＯＢ＿ＥＮにＨＩＧＨをアサートすることによって、マスタースキャンクロックＡＣＬＫに先立ってスレーブスキャンクロックＢＣＬＫをアサートさせることである。一実施形態において、マスターオブザーブモジュール８０は、図示されているように接続されている第１、第２、第３および第４のＭｕｘｓｃａｎタイプの記憶素子Ｆ１〜Ｆ４を有する。４つの記憶素子Ｆ１〜Ｆ４の全ては０入力に対しては逆極性を示す出力Ｑ１を有している。４つの記憶素子Ｆ１〜Ｆ４の全てはグローバルシステムクロックＣＬＫに接続されている。第１の記憶素子Ｆ１は、記憶素子Ｆ１が受け取った入力信号に基づくマスターオブザーブモジュール８０の主制御として機能する。この記憶素子は、スキャンチェーン４０（図４参照）の一部としても機能し、本質的にスキャンチェーン４０内のどこに設けられていてもよい。この配置の融通性によって、ＡＴＰＧは効率的なテストを生成することができる。
【００４７】
この実施形態では、第１の記憶素子Ｆ１は、スキャンチェーン４０内のＬ２スター記憶素子（図２参照）に近接して配置されており、このＬ２スター記憶素子のスレーブ出力信号ＱＳが第１の記憶素子Ｆ１の１入力に接続されている。ここではスレーブ出力信号ＱＳを用いているが、スキャンチェーンの他のポイントにおける他の信号を代わりに用いてもよい。マスターオブザーブ制御信号ＭＯＢ＿ＣＮＴＬは第１の制御素子Ｆ１の０入力に接続されている。第１の記憶素子Ｆ１の出力Ｑ１は第２の記憶素子Ｆ２の０入力に接続されており、スキャンアウト信号ＳＯ＿Ｎとしても用いられ得る。実際、スキャンチェーンの本質的にどのポイントがスキャンアウトデータを得るためにタップされてもよい。スキャンアウト信号ＳＯ＿Ｎは集積回路からのテスト結果をスキャンチェーンを通して運んでおり、最後にはテスタへと達することを思い出されたい。第２の記憶素子Ｆ２の出力Ｑ１は反転され、３入力ＡＮＤゲート８２の入力の１つに接続される。第１および第２の記憶素子Ｆ１およびＦ２の選択入力ＳＥＬは互いに接続されており、スキャンイネーブル信号ＳＥにも接続される。
【００４８】
前述したように、マスターオブザーブモジュール８０は、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮをアサートする前にローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬがＨＩＧＨにアサートされることを必要とする。本実施形態では、第３および第４の記憶素子Ｆ３およびＦ４がローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬをラッチするように働き、３入力ＡＮＤゲート８２にこの信号を与えるように働く。第３および第４の記憶素子Ｆ３およびＦ４の両方の選択入力ＳＥＬ（および１入力）がＬＯＷにつながれているため、０入力が制御し、極性反転が起こる。これにより、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬが、ＡＮＤゲート８２の第２の入力に与えられる前に反転させられる。ここではＴＥ＿ＬＯＣＡＬ１として示している。そして信号は再び反転され、ＡＮＤゲート８２の残る入力に与えられる。ここではＴＥ＿ＬＯＣＡＬ２として示している。第４の記憶素子Ｆ４による２回目の反転の理由は、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬがＡＮＤゲート８２に達する前に、それを１クロックサイクル分遅延させることである。この遅延のより詳細な説明は、図１１の説明において行う。
【００４９】
動作時には、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮは、第２の記憶素子Ｆ２のＱ１出力およびＴＥ＿ＬＯＣＡＬ１信号が両方ともＬＯＷであるときのみアサートされ、ＴＥ＿ＬＯＣＡＬ２信号はＨＩＧＨである。しかしながら、本実施形態では、第２の記憶素子Ｆ２のＱ１出力は通常はＨＩＧＨである。説明すると、スキャンイネーブル信号ＳＥがＬＯＷであるときには、０入力が制御し、極性反転が起こり、第２の記憶素子Ｆ２の出力Ｑ１は、マスターイネーブル制御信号ＭＯＢ＿ＣＮＴＬが（前述したように）デフォルトでＨＩＧＨであるために、ＨＩＧＨである。一方、スキャンイネーブル信号ＳＥがＨＩＧＨであると、１入力が制御し、極性反転は起こらず、第２の記憶素子Ｆ２の出力Ｑ１がＨＩＧＨである。このときに第１の記憶素子Ｆ１にいかなる量のデータが（スレーブ出力信号ＱＳを通して）スキャンインされてもよいが、第２の記憶素子Ｆ２の出力Ｑ１は、この記憶素子の１入力が５ボルトにつながれているためにＨＩＧＨのままである。
【００５０】
第２の記憶素子Ｆ２の出力がＬＯＷである唯一のときは、スキャンイネーブル信号ＳＥがＨＩＧＨからＬＯＷに遷移した直後の１サイクルであり、それの直後に続くサイクル中にスレーブ出力信号ＱＳがＨＩＧＨである場合のみである。説明すると、スキャンイネーブル信号ＳＥがＨＩＧＨであると、スレーブ出力信号ＱＳがＨＩＧＨであれば、第２の記憶素子Ｆ２の０入力ではＬＯＷが現れる（極性反転なし）。スキャンイネーブル信号ＳＥがＬＯＷに遷移した直後のクロックサイクルで、第２の記憶素子Ｆ２の０入力に現れていたＬＯＷは出力Ｑ１でＨＩＧＨになる（極性反転）。このサイクルの間、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬもまたＨＩＧＨであり、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮはＨＩＧＨにアサートされる。
【００５１】
別の言い方をすると、スキャンイネーブルサイクルの終わりで（つまりＳＥがＨＩＧＨからＬＯＷに遷移するときに）スレーブ出力信号ＱＳがＨＩＧＨであり、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬもまたＨＩＧＨである場合のみ、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮがアサートされる。
【００５２】
クロック発生モジュール９０は、ＬＳＳＤ記憶素子の正常な動作に必要である別個の重なっていないクロック信号を生成する。クロック発生モジュール９０が行う４つの主要なタスクがあり、これらのそれぞれが図９Ａ〜９Ｄに分かれた論理構成要素によって示されている。
【００５３】
一実施形態では、図９Ａを参照すると、クロック発生モジュール９０は、グローバルシステムクロックＣＬＫから２つの別個のクロック、つまりマスターラッチクロックＡＣＬＯＣＫおよびスレーブラッチクロックＢＣＬＯＣＫを生成する。これらはクロック発生モジュール９０の内部にある。そして、これらの内部クロックは、以下で述べるように、スキャン動作中にマスタースキャンクロックＡＣＬＫおよびスレーブスキャンクロックＢＣＬＫを生成するためにクロック発生モジュール９０によって用いられる。グローバルシステムクロックＣＬＫはインバータ９２を通って第１のＮＯＲゲート９４の入力の１つに与えられる。第１のＮＯＲゲート９４の出力は、マスターラッチクロックＡＣＬＯＣＫを生成する第１の遅延ブロック９６に与えられる。マスターラッチクロックＡＣＬＯＣＫは第２のＮＯＲゲート９８の入力の１つに与えられ、グローバルシステムクロックＣＬＫが残りの入力を与える。第２のＮＯＲゲート９８の出力は、第２の遅延ブロック１００を通して、スレーブラッチクロックＢＣＬＯＣＫを生成するように与えられる。スレーブラッチクロックＢＣＬＯＣＫは第１のＮＯＲゲート９４の残りの入力に与えられる。第１および第２の遅延ブロック９６および１００は、２つのクロックＡＣＬＯＣＫおよびＢＣＬＯＣＫが互いに重なることを防ぐべく、それぞれへの入力を遅延させるように働く。
【００５４】
今度は図９Ｂを参照すると、クロック発生モジュール９０は書き込みクロックＷＣＬＫも発生する。このクロックは主として、通常動作において集積回路によって生成されるデータをラッチするために用いられるが、スキャン動作においても同じ目的で用いられる。書き込みクロックＷＣＬＫは、４入力ＮＯＲゲート１０４の積である。ＮＯＲゲート１０４への入力は、リセット信号ＲＥＳＥＴ、グローバルシステムクロックＣＬＫ、スキャンイネーブル信号ＳＥ、ならびに、インバータ１０６によって反転されたローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬである。観察によれば、ＮＯＲゲート１０４の出力は、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬがＨＩＧＨであり、他の全ての信号がＬＯＷであるときのみＨＩＧＨにアサートされるであろう。
【００５５】
今度は図９Ｃを参照すると、マスターラッチクロックＡＣＬＯＣＫはマスタースキャンクロックＡＣＬＫを発生するために用いられる。マスターラッチクロックＡＣＬＯＣＫおよびスキャンイネーブル信号ＳＥは、ＡＮＤゲート１０８の入力に接続されている。ＡＮＤゲート１０８の出力は、ＮＯＲゲート１１０の入力の１つを供給し、リセット信号ＲＥＳＥＴがもう１つの入力を供給する。観察によれば、マスタースキャンクロックＡＣＬＫは、リセット信号ＲＥＳＥＴがＬＯＷであり、かつ同時にスキャンイネーブル信号ＳＥおよびマスターラッチクロックＡＣＬＯＣＫはＨＩＧＨでない場合にのみＨＩＧＨにアサートされることがわかるであろう。
【００５６】
今度は図９Ｄを参照すると、スレーブラッチクロックＢＣＬＯＣＫはスレーブスキャンクロックＢＣＬＫを発生するために用いられる。見られる通り、ＴＥ＿ＬＯＣＡＬ２信号および反転されたＴＥ＿ＬＯＣＡＬ１信号がＮＯＲゲート１１２に供給され、それからの出力はマスターオブザーブオーバー信号ＭＯＢ＿ＯＶＥＲを生成する。マスターオブザーブオーバー信号ＭＯＢ＿ＯＶＥＲの目的は、以下に説明するように、不必要なＢＣＬＫのアサートを防ぐことである。この信号は、第１の３入力ＮＡＮＤゲート１１４の入力の１つに接続され、他の２つの入力は、それぞれインバータ１１６および１１８を通して、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬおよびマスターオブザーブイネーブル信号ＭＯＢ＿ＥＮに接続されている。第２の３入力ＮＡＮＤゲート１２０には、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮ、反転されたローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬ、およびインバータ１２２を通してスキャンイネーブル信号ＳＥが供給されている。２つの３入力ＮＡＮＤゲート１１４および１２０の出力はＮＡＮＤゲート１２４に接続されている。ＮＡＮＤゲート１２４の出力およびスレーブラッチクロックＢＣＬＯＣＫはＡＮＤゲート１２６に供給される。ＡＮＤゲート１２６の出力およびリセット信号ＲＥＳＥＴはＯＲゲート１２８に接続されており、これの出力がスレーブスキャンクロックＢＣＬＫを生成する。
【００５７】
図９Ｄは、以下の真理表の助けを借りると最もよく説明することができる。以下の真理表では、「０」および「１」は、それぞれ、ＬＯＷおよびＨＩＧＨを表し、Ｘが「かまわれない」状態を表す。
【００５８】
【表１】
0003633901.tif 000002
１段目は、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮがＨＩＧＨであるときにスレーブスキャンクロックＢＣＬＫもまたＨＩＧＨである（もちろん、スレーブラッチクロックＢＣＬＯＣＫがＨＩＧＨである限り）ことを示している。これは、スレーブスキャンクロックＢＣＬＫがスキャン動作の開始時にマスタースキャンクロックＡＣＬＫの前にアサートされている場合である。
【００５９】
２段目は、スキャンイネーブル信号ＳＥがＨＩＧＨであるときに、スレーブスキャンクロックＢＣＬＫがやはりＨＩＧＨであることを示している。これは、通常のスキャンニングが行われ、マスタースキャンクロックＡＣＬＫおよびスレーブスキャンクロックＢＣＬＫが交互にアサートされている場合である。
【００６０】
３段目は、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮおよびスキャンイネーブル信号ＳＥが両方ともＬＯＷであり、スレーブスキャンクロックＢＣＬＫがＬＯＷであるべきであるがＨＩＧＨであるという不要な場合である。しかしながら４段目に示すように、スレーブスキャンクロックＢＣＬＫをＬＯＷにするように、マスターオブザーブオーバー信号ＭＯＢ＿ＯＶＥＲをＬＯＷにアサートすることができる。
【００６１】
５段目は、ローカルテスタイネーブル信号がＬＯＷであれば、スレーブスキャンクロックＢＣＬＫはもちろんＬＯＷであることを示している。
【００６２】
インタフェース５０の動作を、図１０のフローチャートを参照しながら説明する。まず、インタフェース５０は、ＬＳＳＤ記憶素子を通して集積回路にスキャンインされるべきデータをラッチする（ＳＴ１０）。次に、インタフェース５０は、テスタの状況（イネーブルまたはディスエーブル等）を取得する（ＳＴ１２）。そして、集積回路からのデータ（スキャンインされたデータに応じて生成されたデータ）がＬＳＳＤ記憶素子に捕捉され、インタフェース５０は、マスターラッチの１番目のビットを「観察する」、すなわち記憶する必要があるかを決定する（ＳＴ１４）。もしｙｅｓなら、インタフェース５０は、マスタースキャンクロックＡＣＬＫをアサートする前にスレーブスキャンクロックＢＬＣＫをアサートする（ＳＴ１６）。もしｎｏなら、マスタースキャンクロックＡＣＬＫが最初にアサートされる（ＳＴ１８）。通常、スキャンニングは、以後マスタースキャンクロックＡＣＬＫおよびスレーブスキャンクロックＢＣＬＫが交互にアサートされながら進行する。
【００６３】
上のインタフェース５０の動作の２つの場合を図１１のタイミング図に示す。タイミング図において、最初の３つの信号ＣＬＫ、ＳＥおよびＬＳＳＤ＿ＴＥは、ＬＳＳＤモジュール５０の外部で発生される制御信号である。他の全ての信号はＬＳＳＤモジュール５０によって発生される。マスタースキャンクロックＡＣＬＫおよびスレーブスキャンクロックＢＣＬＫは、要求される通り、別々であり重なっていないことに留意されたい。通常、書き込みクロックＷＣＬＫは通常動作の間にアサートされるが、スキャンインされたテストデータに応じて集積回路が生成する出力データを「捕捉」もしくはラッチするために、キャプチャエッジの直前のスキャン動作中にもアサートされる。
【００６４】
タイミング図のケース１は、Ｌ２スター記憶素子のマスターラッチ出力信号ＱＭ上のデータが重要であり、観察される（それゆえに「マスターオブザーブ」の表現）べき場合である。これは、スキャンイネーブル信号がＨＩＧＨからＬＯＷに遷移したときに、その前のＬＳＳＤ記憶素子のスレーブ出力信号ＱＳがＨＩＧＨであり、すぐ後に続くクロックサイクルでローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬがＨＩＧＨであったことを意味している。データがキャプチャエッジでラッチされた後、マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮは示されているようにアサートされ、スレーブスキャンクロックＢＣＬＫはマスタースキャンクロックＡＣＬＫに先立ってアサートされる。スレーブスキャンクロックＢＣＬＫのアサートされれば、マスター出力信号ＱＭのデータはスレーブ出力信号ＱＳにラッチされる。
【００６５】
マスターオブザーブイネーブル信号ＭＯＢ＿ＥＮのアサートは、キャプチャエッジそのときには起こらず、データがラッチされる時間を可能にするように約半サイクル後に起こることに留意されたい。この遅延は、ローカルテスタイネーブル信号ＴＥ＿ＬＯＣＡＬに第４の記憶素子Ｆ４（図８およびその説明を参照）を通過させるためである。
【００６６】
タイミング図のケース２は、Ｌ２スター記憶素子のマスターラッチ出力信号ＱＭ上のデータが重要でなく、観察される必要がない場合である。キャプチャエッジの後のマスターオブザーブイネーブル信号ＭＯＢ＿ＥＮのアサートはなく、マスタースキャンクロックＡＣＬＫが最初にアサートされ、したがって出力信号ＱＭ上のデータを置き換える。
【００６７】
まとめると、本発明のＬＳＳＤインタフェースは、ＬＳＳＤ記憶素子とともに用いるための別個の重なっていないクロックを発生し、スキャン動作中に記憶素子のマスタースキャンクロックを最初にアサートするか、スレーブスキャンクロックを最初にアサートするかの制御を容易にする。これにより、主として非ＬＳＳＤ記憶素子用に設計された集積回路がＬＳＳＤタイプの記憶素子を用いることが可能となり、ＡＴＰＧツールを用いて、このような集積回路のテストを行うこともできる。
【００６８】
ここで説明した実施形態は説明のためだけのものであり、当業者によって他の実施形態が導かれ得ることを理解されたい。例えば、スキャンイネーブルサイクルの終わりのスレーブ出力信号ＱＳ上のＨＩＧＨはマスターオブザーブイネーブル信号ＭＯＢ＿ＥＮをアサートするために必要とされるが、他の実施形態においては、回路およびテストプログラムパラメータの設計に応じてスレーブ出力信号ＱＳをＬＯＷとしてもよい。また、ここで述べたインタフェース５０を備えているラッチ、フリップフロップおよび別々の論理構成要素の特定の組み合わせは、限定することを意図するものではない。本発明の技術的範囲を逸脱することなくインタフェース５０を構築するために、他の組み合わせおよび装置が用いられ得る。したがって、本発明の技術範囲は以下のクレームによってのみ限定される。
【００６９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることができる。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７０】
【発明の効果】
上記説明から明らかなように、本発明によれば主として非ＬＳＳＤ記憶素子用に設計された集積回路内でＬＳＳＤ記憶素子が非ＬＳＳＤ記憶素子とともに動作することを可能になる。
【図面の簡単な説明】
【図１Ａ】先行技術であるＭｕｘｓｃａｎ記憶素子の機能図である。
【図１Ｂ】先行技術であるＭｕｘｓｃａｎ記憶素子の機能図である。
【図２】先行技術であるＬＳＳＤ記憶素子の機能図である。
【図３】図２のＬＳＳＤ記憶素子のタイミング図である。
【図４】スキャンチェーンの一部分のブロック図である。
【図５】本発明の一実施形態のブロック図である。
【図６】本発明の一実施形態におけるデータロックアップモジュールの機能図である。
【図７】本発明の一実施形態におけるテストイネーブルモジュールの機能図である。
【図８】本発明の一実施形態におけるマスターオブザーブモジュールの機能図である。
【図９Ａ】本発明の一実施形態におけるクロック発生モジュールの機能図である。
【図９Ｂ】本発明の一実施形態におけるクロック発生モジュールの機能図である。
【図９Ｃ】本発明の一実施形態におけるクロック発生モジュールの機能図である。
【図９Ｄ】本発明の一実施形態におけるクロック発生モジュールの機能図である。
【図１０】本発明の一実施形態のフローチャートである。
【図１１】本発明の一実施形態のタイミング図である。
【符号の説明】
１０  Ｍｕｘｓｃａｎ記憶素子
２０  ＬＳＳＤ記憶素子
４０  スキャンチェーン
４２  非ＬＳＳＤ記憶素子
４４  ＬＳＳＤ記憶素子
５０  インタフェース
６０  データロックアップモジュール
６２  ＮＯＲゲート
６４  フリップフロップ
７０  テストイネーブルモジュール
７２  バッファ
７４  インバータ
７６  ＡＮＤゲート
８０  マスターオブザーブモジュール
８２  ３入力ＡＮＤゲート
９０  クロック発生モジュール
９２、１１６、１１８、１２２  インバータ
９４、９８、１１０、１１２  ＮＯＲゲート
９６、１００  遅延ブロック
１０４  ４入力ＮＯＲゲート
１０６  インバータ
１０８、１２６  ＡＮＤゲート
１１４、１２０  ３入力ＮＡＮＤゲート
１２４  ＮＡＮＤゲート
１２８  ＯＲゲート
Ｆ１、Ｆ２、Ｆ３、Ｆ４  Ｍｕｘｓｃａｎ記憶素子
【図１Ａ】
0003633901.tif 000003
【図１Ｂ】
0003633901.tif 000004
【図２】
0003633901.tif 000005
【図３】
0003633901.tif 000006
【図４】
0003633901.tif 000007
【図５】
0003633901.tif 000008
【図６】
0003633901.tif 000009
【図７】
0003633901.tif 000010
【図８】
0003633901.tif 000011
【図９Ａ】
0003633901.tif 000012
【図９Ｂ】
0003633901.tif 000013
【図９Ｃ】
0003633901.tif 000014
【図９Ｄ】
0003633901.tif 000015
【図１０】
0003633901.tif 000016
【図１１】
0003633901.tif 000017