(57)【要約】      （修正有）【課題】クロックドメイン間のデータ転送においてリリース・キャプチャクロックの到着時間がクロックドメイン毎に異なっていても、受信側のスキャンラッチが本来のデータをリリースできるようにする。【解決手段】それぞれが別個のクロック発生回路によりテスト用のクロックを供給される複数のクロックドメインを含み、各クロックドメインにおいて、他のクロックドメインから入力を受け取るクロックドメイン境界のスキャンラッチが、第１クロックに応答して入力をラッチするマスターラッチ３０と、第２クロックに応答してマスターラッチの出力をラッチするスレーブラッチ３２と、モード切替信号が第１レベルのときにスキャン入力をマスターラッチに供給し第２レベルのときにシステム入力をマスターラッチに供給するセレクタ３４と、モード切替信号が第１レベルから第２レベルに遷移したときに第１クロックをオフにするクロック制御回路３６とを含む。【選択図】  図４
2007218808.tif 000002
【特許請求の範囲】
【請求項１】
モード切替信号に応じてスキャン入力またはシステム入力を選択的に受け取るスキャンラッチを用いたスキャンテストが可能な集積回路であって、
それぞれが別個のクロック発生回路によりテスト用のクロックを供給される複数のクロックドメインを含み、
所与のクロックドメインにおいて、他のクロックドメインからの出力を受け取るクロックドメイン境界のスキャンラッチが、
第１クロックに応答して入力をラッチするマスターラッチと、
第２クロックに応答して前記マスターラッチの出力をラッチするスレーブラッチと、
モード切替信号が第１レベルのときにスキャン入力を前記マスターラッチに供給し、前記モード切替信号が第２レベルのときにシステム入力を前記マスターラッチに供給するセレクタと、
前記モード切替信号が前記第１レベルから前記第２レベルに遷移したときに前記第１クロックをオフにするクロック制御回路とを含む、
集積回路。
【請求項２】
前記クロックドメイン境界のスキャンラッチは、前記所与のクロックドメインのクロック発生回路から前記第２クロックを受け取る、請求項１に記載の集積回路
【請求項３】
前記クロック制御回路は、
前記第２クロックを反転する反転回路と、
前記反転回路の出力を第１入力に受け取るアンドゲートと、
前記モード切替信号が前記第１レベルから前記第２レベルに遷移したときに前記アンドゲートの第２入力をディセーブルするゲート制御回路とを含み、
前記アンドゲートの出力が前記第１クロックとなる、
請求項１または請求項２に記載の集積回路。
【請求項４】
前記ゲート制御回路は、前記モード切替信号を反転する反転回路である、請求項３に記載の集積回路。
【請求項５】
前記クロックドメイン境界のスキャンラッチは、前記他のクロックドメインのスキャンラッチからの出力を前記スキャン入力および前記システム入力に受け取る、請求項４に記載の集積回路。
【請求項６】
前記ゲート制御回路は、前記モード切替信号が前記第２レベルのときに、前記第２クロックの立ち上がりに応答して前記アンドゲートの第２入力をイネーブルする、請求項３に記載の集積回路
【請求項７】
前記第１レベルから前記第２レベルへの遷移が立ち上がりであり、
前記ゲート制御回路は、
前記第２クロックの立ち上がりによりセットされ、前記第２クロックがオフのときに前記モード切替信号の立ち上がりによりリセットされるＳＲラッチと、
前記ＳＲラッチの出力および前記モード切替信号の反転信号を入力として受け取り、出力を前記アンドゲートの第２入力に供給するオアゲートとを含む、
請求項６に記載の集積回路。
【請求項８】
前記クロックドメイン境界のスキャンラッチは、前記他のクロックドメインのスキャンラッチからの出力を前記スキャン入力に受け取る、請求項６または請求項７に記載の集積回路。
【請求項９】
前記クロックドメイン境界のスキャンラッチとは異なる内部スキャンラッチが、
第１クロックに応答して入力をラッチするマスターラッチと、
第２クロックに応答して前記マスターラッチの出力をラッチするスレーブラッチと、
前記モード切替信号が第１レベルのときにスキャン入力を前記マスターラッチに供給し、前記モード切替信号が第２レベルのときにシステム入力を前記マスターラッチに供給するセレクタと、
前記第２クロックを反転する反転回路と、
前記反転回路の出力を第１入力に受け取るアンドゲートと、
前記第２クロックの立ち上がりによりセットされ、前記第２クロックがオフのときに前記モード切替信号の立ち上がりによりリセットされるＳＲラッチと、
前記ＳＲラッチの出力および前記モード切替信号の反転信号を入力として受け取り、出力を前記アンドゲートの第２入力に供給するオアゲートとを含み、
前記アンドゲートの出力が前記第１クロックとなる、
請求項１〜請求項８のいずれかに記載の集積回路。
【請求項１０】
前記内部スキャンラッチは、前記内部スキャンラッチが属するクロックドメインのクロック発生回路から前記第２クロックを受け取る、請求項９に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モード切替信号に応じてスキャン入力またはシステム入力を選択的に受け取るスキャンラッチを用いたスキャンテストが可能な集積回路に関するものであり、特に、それぞれが別個のクロック発生回路によりテスト用のクロックを供給される複数のクロックドメインを含む集積回路に関するものである。
【背景技術】
【０００２】
集積回路は多種多様な製品に使用されており、その多くはマイクロプロセッサ等の複雑な論理設計を含んでいる。それらの論理設計は一般にチップに埋め込まれた形になっているため、何らかの対策をとっておかないと、埋め込まれた回路を外部からテストするのは難しい。そのため、レベルセンシティブスキャンデザイン（ＬＳＳＤ）と呼ばれる設計手法が考え出された。これは、シフト機能を持ったシーケンシャルスキャンラッチを用いて内部の組み合わせ回路をテストするようにしたもので、組み合わせ回路へのテストパターンの入力（スキャンイン）及び組み合わせ回路からのテスト結果の出力（スキャンアウト）はテスト用のクロック信号により制御される。
【０００３】
集積回路のテスト用クロックは一般に外部のテスト装置から供給されるが、その周波数は、様々な物理的制約から、被テスト装置（ＤＵＴ）である集積回路の実動作周波数よりも低く設定されている。しかし近年になって、集積回路の実動作周波数でのテスト、いわゆるアットスピードテストが重要視されており、そのため、例えば米国特許第第６５９８１９２号に記載されているように、オンチップのＰＬＬで高速のテスト用クロックを発生させる技術が提案されている。
【０００４】
従来のアットスピードテストの手順は、まず、各スキャンラッチの動作モードをスキャンモードまたは通常動作モードに設定するモード切替信号（スキャンゲートまたはスキャンイネーブルと呼ばれる）を‘０’にしてスキャンモードにした後、スキャンチェーンを用いてスキャンラッチにテストデータをロードすなわちスキャンインする。次にモード切替信号を‘１’にしてスキャンラッチを通常動作モードに戻す。そして、リリース・キャプチャクロックをＰＬＬから各スキャンラッチに供給する。その後、再びモード切替信号を‘０’に戻して、各スキャンラッチがキャプチャしたテスト結果をスキャンアウトから観測する。リリース・キャプチャクロックをＰＬＬから作ること以外は静的なスキャンテストと手順は全く同じである。静的なスキャンテストでは、そのオペレーションを行うにあたって制御信号等がタイミング制約を満たす必要は全くないが、アットスピードテストを行うためには、モード切替信号の‘０’から‘１’への遷移をすべてのスキャンラッチに１サイクル以内で到達させる必要がある。この問題は、例えば特開２００１−４７１０号公報に記載されているように、スキャンラッチに追加のラッチを設けて、スキャンラッチ内で選択信号を生成することによって解決できる。
【０００５】
しかし、アットスピードテストには、上述のようなタイミング制約の問題の他に、テスト対象が複数のオンチップＰＬＬを含んでいる場合に解決しなければならない問題もある。すなわち、各ＰＬＬが制御する回路領域すなわちクロックドメインの間のデータ転送に関するタイミングの問題である。図１および図２を参照してこの問題を説明する。図１は、ＰＬＬ１を含むクロックドメイン１のスキャンラッチＦＦ１の出力が、ＰＬＬ２を含むクロックドメイン２のスキャンラッチＦＦ２のスキャン入力ＳＣＩおよびシステム入力ＳＹＩの両方に接続されているようなクロックドメイン境界を示し、図２はスキャンラッチに供給されるクロックＣＬＫと、スキャンラッチのスキャン入力ＳＣＩおよびシステム入力ＳＹＩを切り換えるためのスキャンゲート信号ＳＧの波形を示す。各スキャンラッチが受け取るクロックＣＬＫは、スキャンゲート信号がローレベルのときは外部からのスキャンクロックであり、スキャンゲート信号ＳＧがハイレベルのときはＰＬＬからのリリース・キャプチャクロックである。各ＰＬＬは、スキャンゲート信号ＳＧの立ち上がり遷移で、２つのパルスＰ１およびＰ２からなるリリース・キャプチャクロックを発生するようになっている。しかし、リリース・キャプチャクロックがスキャンラッチに到着する時間は、ＰＬＬとスキャンラッチの間のクロックツリーの段数などに依存しているため、ＰＬＬ１からのリリース・キャプチャクロックがスキャンラッチＦＦ１に到着する時間と、ＰＬＬ２からのリリース・キャプチャクロックがスキャンラッチＦＦ２に到着する時間を一致させることはまず不可能である。
【０００６】
ここで、スキャンラッチＦＦ１からの最後のスキャンデータがスキャンラッチＦＦ２に受け取られ、それが次のリリース・キャプチャクロックでスキャンラッチＦＦ２からリリースされる場合を考えてみる。このときスキャンゲート信号ＳＧは通常動作モードを示すハイレベルになっており、従ってスキャンラッチＦＦ２はシステム入力ＳＹＩを受け取り得る状態になっている。この場合、スキャンラッチＦＦ２へのリリース・キャプチャクロックがスキャンラッチＦＦ１へのリリース・キャプチャクロックよりも先に到着すると、スキャンラッチＦＦ２は本来のスキャンデータをリリースすることができるが、到着が遅れた場合には、スキャンラッチＦＦ１がリリースしたデータがシステム入力ＳＹＩとしてスキャンラッチＦＦ２にキャプチャされ、それがリリースされてしまう。スキャンラッチＦＦ２のシステム入力ＳＹＩおよびスキャン入力ＳＣＩが、クロックドメイン１に含まれる異なった２つのスキャンラッチの出力に別々に接続されている場合も同じことが言える。従って、リリース・キャプチャクロックの到着時間が前後しても、スキャンラッチＦＦ２が常に正しいデータをリリースできるようにするための対策が求められる。
【特許文献１】米国特許第６５９８１９２号
【特許文献２】特開２００１−４７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上のことから、本発明の目的は、クロックドメイン間のデータ転送においてリリース・キャプチャクロックの到着時間がクロックドメイン毎に異なっていても、受信側のスキャンラッチが本来のデータをリリースできるようにすることにある。
【課題を解決するための手段】
【０００８】
本発明は、モード切替信号に応じてスキャン入力またはシステム入力を選択的に受け取るスキャンラッチを用いたスキャンテストが可能な集積回路を提供する。この集積回路は、それぞれが別個のクロック発生回路によりテスト用のクロックを供給される複数のクロックドメインを含み、各クロックドメインにおいて、他のクロックドメインから入力を受け取るクロックドメイン境界のスキャンラッチが、第１クロックに応答して入力をラッチするマスターラッチと、第２クロックに応答してマスターラッチの出力をラッチするスレーブラッチと、モード切替信号が第１レベルのときにスキャン入力をマスターラッチに供給し、モード切替信号が第２レベルのときにシステム入力をマスターラッチに供給するセレクタと、モード切替信号が第１レベルから第２レベルに遷移したときに第１クロックをオフにするクロック制御回路とを含んでいる。
【０００９】
モード切替信号が第１レベルから第２レベルに遷移したとき、すなわちモードがスキャンモードから通常動作モードに切り替わったときに、第１クロックをオフにすることで、マスターラッチに誤ったデータが入るのを阻止することができる。
【発明を実施するための最良の形態】
【００１０】
本発明に従う集積回路のテスト構成部分の一例を図３に示す。図３の集積回路は、それぞれ別個のＰＬＬを備えた２つのクロックドメイン１０を含んでいる。クロックドメインの構成は基本的に同じであり、ＰＬＬ１２、スキャンゲート信号ＳＧの立ち上がり遷移でＰＬＬ１２の出力から２パルスのリリース・キャプチャクロックを生成する２パルス生成器１４、スキャンゲート信号ＳＧに応じてリリース・キャプチャクロックまたは外部からのスキャンクロックを選択するセレクタ１６、およびセレクタ１６からのクロックＣＬＫをそれぞれのスキャンラッチ２０に分配するクロックツリー１８を備える。このうち、ＰＬＬ１２、２パルス生成器１４およびセレクタ１６がクロック発生回路を構成する。スキャンクロックおよびスキャンゲートは両方のクロックドメイン１０Ａ、１０Ｂに共通であり、外部のテスト装置（図示せず）から供給される。図中の点線２２は、クロックドメイン１０Ａからクロックドメイン１０Ｂへのスキャンパスを示し、破線２４は、クロックドメイン１０Ａのスキャンラッチ２０Ａからクロックドメイン１０Ｂのスキャンラッチ２０Ｂへのファンクションパスを示す。ファンクションパス２４は、クロックドメイン１０Ａからクロックドメイン１０Ｂへのシステム入力を与える。なお、図面が繁雑になるのを避けるため、図３では、被テスト回路（通常は組み合わせ論理回路）ならびに各スキャンラッチのスキャン入力ＳＣＩおよびシステム入力ＳＹＩを省略している。
【００１１】
本発明は、クロックドメイン境界にある受信側のスキャンラッチ、すなわちクロックドメイン１０Ｂの先頭のスキャンラッチ２０Ｂ’を工夫することによって上述の目的を達成する。本発明に従うスキャンラッチ２０Ｂ’の構成例を図４に示す。図４のスキャンラッチは、第１クロックＮＣＬＫに応答して入力をラッチするマスターラッチ３０と、第２クロックＣＬＫに応答してマスターラッチ３０の出力をラッチするスレーブラッチ３２と、モード切替信号として働くスキャンゲート信号ＳＧが第１レベル（‘０’）のときにスキャン入力ＳＣＩをマスターラッチ３０に供給し、スキャンゲート信号ＳＧが第２レベル（‘１’）のときにシステム入力ＳＹＩをマスターラッチに供給するセレクタ３４と、スキャンゲート信号ＳＧが第１レベルから第２レベルに遷移したときに第１クロックＮＣＫをオフにするクロック制御回路３６とを含む。第２クロックＣＬＫは図３のセレクタ１６から供給される。本実施形態では、スキャンラッチ２０Ｂ’のスキャン入力ＳＣＩおよびシステム入力ＳＹＩは、クロックドメイン１０Ａの最終段のスキャンラッチ２０Ａの出力に接続されているものとする。
【００１２】
クロック制御回路３６は、第２クロックＣＬＫを反転する反転回路３８と、反転回路３８の出力を第１入力に受け取るアンドゲート４０と、スキャンゲート信号ＳＧが第１レベルから第２レベルに遷移したときにアンドゲート４０の第２入力をディセーブルするゲート制御回路４２とを含み、アンドゲート４０の出力が第１クロックＮＣＬＫとなる。ゲート制御回路４２は、図３の例では反転回路である。次に、図５の波形図を参照しながら、図４のスキャンラッチの動作について説明する。
【００１３】
最初はスキャンゲート信号ＳＧが第１レベルすなわちローレベルにあり、アンドゲート４０の第２入力が反転回路４２の出力により条件付けられるので、アンドゲート４０は、反転回路３８の働きによって、第２クロックＣＬＫと相補的な第１クロックＮＣＬＫを発生し、マスターラッチ３０に供給する。これにより、マスターラッチ３０およびスレーブラッチ３２が順次にイネーブルされ、クロックドメイン１０Ａのスキャンラッチ２０Ａからのスキャンデータを後続のスキャンラッチ２０Ｂに送る。
【００１４】
スキャンモードが終わってスキャンゲート信号ＳＧが第２レベルすなわちハイレベルになると、アンドゲート４０の第２入力が反転回路４２の出力によりディセーブルされるので、第１クロックＮＣＬＫはオフになり、以後スキャンゲート信号ＳＧが再びローレベルになるまでその状態を保つ。このとき、マスターラッチ３０には、最後の第１クロックＮＣＬＫでロードされたスキャンデータが保持されている。スキャンゲート信号ＳＧの立ち上がりによって、２つのパルスＰ１およびＰ２からなるリリース・キャプチャクロックがクロック発生回路から発生されると、スレーブラッチ３２はマスターラッチ３０に保持されていたスキャンデータをリリースする。このとき、スキャンラッチ２０Ｂ’へのリリース・キャプチャクロックの到着が、クロックドメイン１０Ａに含まれる送信側スキャンラッチ２０Ａへのリリース・キャプチャクロックの到着より遅れたとしても、第１クロックがオフになっているため、マスターラッチ３０は、スキャンデータのリリース前に、クロックドメイン１０Ａの送信側スキャンラッチ２０Ａからリリースされたデータを受け取ることはない。
【００１５】
上述のように、図４のスキャンラッチは、リリース・キャプチャクロックの到着時間には関係なく、最後にロードされたスキャンデータを正しくリリースできる。ただし、スキャンゲート信号ＳＧがハイレベルの間は、第１クロックＮＣＬＫがずっとオフになっているため、システム入力ＳＹＩに有効なデータがあっても、それがマスターラッチ３０にロードされることはなく、従って図３に示すファンクションパス２４のテストができないことになる。しかし、スキャンラッチ２０Ｂ’の後ろに続く内部ドメイン側のパスはテストできるので、テストカバレージの犠牲は最低限ですむ。
【００１６】
ファンクションパス２４のテストも行いたい場合は、ラッチが１つ余分に増えるが、図６に示すスキャンラッチを使用できる。このスキャンラッチは、図４の反転回路４２の代わりに、ＳＲラッチ４２およびオアゲート４４で構成されたゲート制御回路を含んでいる。ＳＲラッチ４２は、セット入力Ｓがリセット入力ＲＮよりも優勢なラッチである。すなわち、セット入力Ｓがイネーブルされている限り、ＳＲラッチ４２がリセットされることはない。ＳＲラッチ４２は、セット入力Ｓに第２クロックＣＬＫを受け取り、リセット入力ＲＮにスキャンゲート信号ＳＧを受け取る。スキャンゲート信号ＳＧは、リセット入力ＲＮの他に、セレクタ３４の選択入力およびオアゲート４４の反転入力にも供給される。オアゲート４４のもう一方の入力にはＳＲラッチの出力が供給される。オアゲート４４は、ＳＲラッチ４４の出力と反転スキャンゲート信号の論理和であるゲート制御信号Ｇを発生し、アンドゲート４０の第２入力に供給する。
【００１７】
次に、図７の波形図を参照しながら、図６のスキャンラッチの動作について説明する。スキャンゲート信号ＳＧがローレベルであるスキャンモードの動作は図４のスキャンラッチと同じである。スキャンゲート信号ＳＧが通常動作モードを示すハイレベルに移行すると、クロック発生回路からの第２クロックＣＬＫがローレベルになっているため、ＳＲラッチ４２がリセットされ、その結果、オアゲート４４の入力が両方ともローベルになって、ゲート制御信号Ｇもローレベルになる。これによりアンドゲート４０の第２入力がディセーブルされるので、マスターラッチ３０は最後の第１クロックＮＣＬＫでロードされたスキャンデータを保持している。
【００１８】
次に、クロック発生回路からリリース・キャプチャクロックＰ１、Ｐ２が到着すると、まずリリースクロックＰ１によりスレーブラッチ３２はマスターラッチ３０に保持されていたスキャンデータをリリースする。さらに、ＳＲラッチ４２がセットされるので、オアゲート４４からのゲート制御信号Ｇがハイレベルになり、この結果、リリースパルスＰ１がローレベルになったときに第１クロックＮＣＬＫがハイレベルになって、パルスＰ３によりマスターラッチ３０へのシステム入力ＳＹＩのキャプチャが可能になる。この場合、リリース・キャプチャクロックの到着がクロックドメイン１０Ａの送信側スキャンラッチより遅れたとしても、マスターラッチ３０がキャプチャ可能になったときは既にスキャンデータのリリースが終わっているので問題はない。このように、図６のスキャンラッチをクロックドメイン境界の受信側に用いた場合は、ファンクションパス２４も含めた完全なスキャンテストが可能である。
【００１９】
図６のスキャンラッチは、ラッチ１個分の増加が許されるのであれば、クロックドメイン境界だけでなく、クロックドメインの内部スキャンラッチとしても使用可能である。前述のように、アットスピードテストでは、スキャンゲート信号ＳＧの立ち上がり遷移を１サイクル内にすべてのスキャンラッチに到達させる必要があるが、図６のスキャンラッチを使用すれば、このようなタイミング制約を気にせずにスキャンテストを実行することができる。テストに必要な信号、すなわちゲート制御信号Ｇをスキャンラッチ内部で生成しているからである。ただし、ゲート制御信号Ｇを正しく立ち上げるためには、ＳＲラッチ４２への第２クロックＣＬＫの入力からアンドゲート４０までの伝播遅延を１／２サイクル以下に抑える必要がある。例えば、動作周波数が２ＧＨｚであれば、この伝播時間を２５０ｐｓ以下にすればよく、これを満たす回路は現在のテクノロジーでも容易に設計が可能である。
【００２０】
以上、本発明の最良の実施形態を説明してきたが、本発明はそのような実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の範囲内で様々な修正・変更が可能なことは言うまでもない。
【図面の簡単な説明】
【００２１】
【図１】クロックドメイン境界における送信側および受信側のスキャンラッチを示す回路ブロック図。
【図２】図１で使用されるクロック信号およびスキャンゲート信号の波形図。
【図３】本発明を適用できる集積回路のテスト構成を示す回路ブロック図。
【図４】本発明に従うクロックドメイン境界の受信側スキャンラッチの１実施形態を示す回路ブロック図。
【図５】図４のスキャンラッチを制御するためのクロック信号およびスキャンゲート信号の波形図。
【図６】本発明に従うスキャンラッチの他の実施形態を示す回路ブロック図。
【図７】図６のスキャンラッチを制御するためのクロック信号、スキャンゲート信号およびゲート制御信号の波形図。
【図１】
2007218808.tif 000003
【図２】
2007218808.tif 000004
【図３】
2007218808.tif 000005
【図４】
2007218808.tif 000006
【図５】
2007218808.tif 000007
【図６】
2007218808.tif 000008
【図７】
2007218808.tif 000009