(57)【要約】【課題】マルチサイクルパスのａｔ−ｓｐｅｅｄテストを実現する。【解決手段】本発明による半導体集積回路は、入力側フリップフロップ４６と、入力側フリップフロップ４６に接続された入力を有する、マルチサイクルパスである組み合わせ回路４９と、組み合わせ回路４９の出力に接続された出力側フリップフロップ４８と、ディレイテスト回路１０とを具備する。ディレイテスト回路１０には、当該半導体集積回路の内部で生成された入力クロック信号２０が入力される。このディレイテスト回路１０は、入力ＰＬＬクロック２０の３以上の連続するクロックパルスから中間のクロックパルスを間引くことによって出力クロックＣＬＫＯＵＴを生成し、出力クロックＣＬＫＯＵＴを入力側フリップフロップ４６と出力側フリップフロップ４８とに供給するように構成されている。【選択図】図９
2006250923.tif 000002
【特許請求の範囲】
【請求項１】
入力側フリップフロップと、
前記入力側フリップフロップに接続された入力を有する組み合わせ回路と、
前記組み合わせ回路の出力に接続された出力側フリップフロップと、
ディレイテスト回路
とを具備する半導体集積回路であって、
前記ディレイテスト回路には、入力クロック信号が供給され、
前記ディレイテスト回路は、前記入力クロック信号の３以上の連続するクロックパルスから任意のクロックパルスを間引くことによって出力クロックパルスを生成し、前記出力クロックパルスを前記入力側フリップフロップと前記出力側フリップフロップとに供給するように構成された
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路であって、
前記ディレイテスト回路は、
外部からクロックの波形を表すクロック波形設定データを受け取り、前記クロック波形設定データを保持するクロック波形設定レジスタと、
前記クロック波形設定レジスタに保持されている前記クロック波形設定データに応答して前記入力クロック信号をマスクすることにより、前記出力クロックパルスを生成するように構成された出力部
とを備える
半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路であって、
前記出力部は、
前記クロック波形設定データのデータビットを前記クロック波形設定レジスタから受け取り、前記入力クロック信号に同期して前記データビットを順次に出力するように構成されたシフトレジスタと、
前記シフトレジスタから出力される前記データビットに応答して、前記入力クロック信号をマスクすることにより前記出力クロックを生成するように構成されたクロックゲーティング回路
とを備える
半導体集積回路。
【請求項４】
第１クロックドメインに属する第１フリップフロップと、
第２クロックドメインに属し、且つ、クロックドメイン間パスを介して前記第１フリップフロップの出力に接続された入力を有する第２フリップフロップと、
第１クロックパルスを第１クロックツリーを介して前記第１フリップフロップに供給するための第１ディレイテスト回路と、
第２クロックパルスを第２クロックツリーを介して前記第２フリップフロップに供給するための第２ディレイテスト回路
とを具備する半導体集積回路であって、
前記第１ディレイテスト回路が前記第１クロックパルスを出力する第１出力タイミング又は、前記第２ディレイテスト回路が前記第２クロックパルスを出力する第２出力タイミングの少なくとも一方が調節可能である
半導体集積回路。
【請求項５】
請求項４に記載の半導体集積回路であって、
更に、テスト基準クロックから第１入力クロックを生成して前記第１ディレイテスト回路に供給する第１クロック供給部と、
前記テスト基準クロックから第２入力クロックを生成して前記第２ディレイテスト回路に供給する第２クロック供給部
とを具備し、
前記第１ディレイテスト回路は、前記第１入力クロックの一部をマスクすることによって前記第１クロックパルスを生成するように構成され、
前記第２ディレイテスト回路は、前記第２入力クロックの一部をマスクすることによって前記第２クロックパルスを生成するように構成された
半導体集積回路。
【請求項６】
請求項４に記載の半導体集積回路であって、
前記第１クロック供給部は、前記テスト基準クロック、及び前記テスト基準クロックが反転されたクロックとの一方を選択し、前記選択されたクロックを前記第１入力クロックとして前記第１ディレイテスト回路に供給する
半導体集積回路。
【請求項７】
請求項４に記載の半導体集積回路であって、
更に、テスト基準クロックから第１入力クロックを生成して前記第１ディレイテスト回路に供給する第１クロック供給部と、
前記テスト基準クロックから第２入力クロックを生成して前記第２ディレイテスト回路に供給する第２クロック供給部
とを具備し、
前記第１ディレイテスト回路は、前記第１入力クロックをマスクすることによって前記第１クロックパルスを生成するように構成され、
前記第２ディレイテスト回路は、前記第２入力クロックをマスクすることによって前記第２クロックパルスを生成するように構成され、
前記第２クロック供給部は、前記テスト基準クロック、及び前記テスト基準クロックが反転されたクロックとの一方を選択し、前記選択されたクロックを前記第２入力クロック信号として前記第２ディレイテスト回路に供給する
【請求項８】
請求項４に記載の半導体集積回路であって、
更に、
クロック生成同期信号に応答して第１クロック生成開始信号を生成し、前記第１ディレイテスト回路に供給する第１クロック生成開始信号生成回路と、
前記クロック生成同期信号に応答して第２クロック生成開始信号を生成し、前記第２ディレイテスト回路に供給する第２クロック生成開始信号生成回路
とを具備し、
前記第１ディレイテスト回路は、前記第１クロックパルスを、外部から設定される第１クロック波形設定データに対応する波形を有するように生成するように構成され、
前記第２ディレイテスト回路は、前記第２クロックパルスを、外部から設定される第２クロック波形設定データに対応する波形を有するように生成するように構成され、
前記第１ディレイテスト回路は、前記第１クロック生成開始信号の活性化に応答して、前記第１クロックパルスの生成を開始し、
前記第２ディレイテスト回路は、前記第２クロック生成開始信号の活性化に応答して、前記第２クロックパルスの生成を開始し、
前記クロック生成同期信号の活性化から前記第１クロック生成開始信号の活性化までの遅延時間は、前記クロック生成同期信号の活性化から前記第２クロック生成開始信号の活性化までの遅延時間と異なっている
半導体集積回路。
【請求項９】
クロックの波形を表すクロック波形設定データを入力して前記クロック波形設定データを保持するクロック波形設定レジスタと、
前記クロック波形設定データに応答して入力クロック信号の３以上の連続するクロックパルスから任意のパルスを間引いたパルス信号である出力クロックを生成するクロックゲーティング回路
とを具備する
ディレイテスト回路。
【請求項１０】
請求項９に記載のディレイテスト回路であって、
前記クロック波形設定データのデータビットを前記クロック波形設定レジスタから受け取り、前記入力クロック信号に同期して前記データビットを順次に出力するように構成されたシフトレジスタを更に具備し、
前記クロックゲーティング回路は、前記シフトレジスタから出力される前記データビットに応答して、前記入力クロック信号のパルス列の一部をマスクすることにより前記出力クロックを生成する
ディレイテスト回路。
【請求項１１】
入力側フリップフロップと、前記入力側フリップフロップに接続された入力を有する、マルチサイクルパスである組み合わせ回路と、前記組み合わせ回路の出力に接続された出力側フリップフロップとを備える半導体集積回路をテストするテスト方法であって、
前記半導体集積回路の内部で入力クロック信号を生成するステップと、
前記入力クロック信号の３以上の連続するクロックパルスから任意のクロックパルスを間引くことによって出力クロックパルスを生成するステップと、
前記出力クロックパルスを前記入力側フリップフロップと前記出力側フリップフロップとに供給するステップと、
前記出力側フリップフロップが前記出力クロックパルスに応じて前記組み合わせ回路からラッチする値に基づいて、前記半導体集積回路の不良を検出するステップ
とを具備する
半導体集積回路のテスト方法。
【請求項１２】
請求項１１に記載の半導体集積回路のテスト方法であって、
更に、
前記出力クロックパルスの波形を表すクロック波形設定データを前記半導体集積回路に内蔵されるディレイテスト回路に供給するステップ
を具備し、
前記出力クロックパルスの生成は、前記ディレイテスト回路が前記クロック波形設定データに応答して前記入力クロック信号をマスクし、前記入力クロック信号のマスクされなかったクロックパルスを出力することによって行われる
半導体集積回路のテスト方法。
【請求項１３】
第１クロックドメインに属する第１フリップフロップと、第２クロックドメインに属し、且つ、クロックドメイン間パスを介して前記第１フリップフロップの出力に接続された入力を有する第２フリップフロップと、第１ディレイテスト回路と、第２ディレイテスト回路とを備える半導体集積回路をテストするテスト方法であって、
前記第１ディレイテスト回路に第１クロックパルスを出力する第１出力タイミングを設定するステップと、
前記第２ディレイテスト回路に第２クロックパルスを出力する第２出力タイミングを設定するステップと、
前記第１出力タイミングに前記第１クロックパルスを前記第１ディレイテスト回路から出力させて、前記第１クロックパルスを第１クロックツリーを介して前記第１フリップフロップに供給するステップと、
前記第２出力タイミングに前記第２クロックパルスを前記第２ディレイテスト回路から出力させて、前記第２クロックパルスを第２クロックツリーを介して前記第２フリップフロップに供給するステップと、
前記前記第２フリップフロップが前記第２クロックパルスに応じて前記クロックドメイン間パスからラッチする値に基づいて、前記半導体集積回路の不良を検出するステップ
とを具備する
半導体集積回路のテスト方法。
【請求項１４】
請求項１３に記載の半導体集積回路のテスト方法であって、
前記第１出力タイミングを設定するステップは、前記第１クロックパルスの波形を表す第１クロック波形設定データを、外部から前記第１ディレイテスト回路に設定するステップを備え、
前記第１クロックパルスを前記第１クロックツリーを介して前記第１フリップフロップに供給するステップは、前記第１クロック波形設定データによって指定された波形を有するように前記第１クロックパルスを生成するステップを備える
テスト方法。
【請求項１５】
請求項１３に記載の半導体集積回路のテスト方法であって、
前記第２出力タイミングを設定するステップは、前記第２クロックパルスの波形を表す第２クロック波形設定データを、外部から前記第２ディレイテスト回路に設定するステップを備え、
前記第２クロックパルスを前記第２クロックツリーを介して前記第２フリップフロップに供給するステップは、前記第２クロック波形設定データによって指定された波形を有するように前記第２クロックパルスを生成するステップを備える
テスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、ディレイテスト回路、及び半導体集積回路のテスト方法に関し、特に、スキャンパスを用いた半導体集積回路のテスト容易化技術に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化のために最も広く使用される技術の一つが、スキャンパスを半導体集積回路に組み込むスキャン設計技術である。具体的には、コアロジックのフリップフロップのデータ入力にセレクタが付加され、そのフリップフロップが直列に接続されてスキャンパスが構成される。スキャンパスを構成するフリップフロップは、しばしば、スキャンフリップフロップ（以下、「スキャンＦＦ」という。）と呼ばれる。このスキャンパスは、巨大なシフトレジスタとして機能する。コアロジックのテストの際には、スキャンパスを利用してコアロジックのスキャンＦＦに直接に値を書き込み、又は、スキャンＦＦから直接に値を読み出し、コアロジックの動作が検証される。
【０００３】
スキャンパスを用いたテストにおいて重要な点の一つが、ａｔ−ｓｐｅｅｄテストを実現すること、即ち、半導体集積回路の実使用時の動作速度と同じ動作速度でのディレイテストを実現することである。これは、半導体集積回路には、論理的には正しく回路が構成されているにもかかわらず、当該回路の遅延が不適切である不良が存在し得るからである。このような不良は、ａｔ−ｓｐｅｅｄでのディレイテスト（以下、単に「ａｔ−ｓｐｅｅｄテスト」という。）によって検出される必要がある。
【０００４】
ａｔ−ｓｐｅｅｄテストを実現するための困難性の一つが、テスタの動作速度の制約である。近年の半導体集積回路の動作速度の向上により、ａｔ−ｓｐｅｅｄテストを実行するためには動作速度が高いテスタを使用する必要性が生じている。しかし、動作速度が高いテスタを使用することは、テスト費用を増大させ、半導体集積回路の製造コストの面では好ましくない。
【０００５】
比較的に動作速度が遅いテスタを用いてａｔ−ｓｐｅｅｄテストを行う技術としては、ａｔ−ｓｐｅｅｄテストに使用されるクロックを生成するＰＬＬ回路をテストの対象である半導体集積回路に内蔵する技術が知られている。ＰＬＬ回路を半導体集積回路に内蔵することにより、テスタからテストの対象である半導体集積回路に高い周波数のクロックを供給する必要がなくなる。これは、比較的に動作速度が遅いテスタでａｔ−ｓｐｅｅｄテストを行うことを可能にする。
【０００６】
例えば、特許文献１は、外部からの制御信号に応答して所望の個数のクロックパルスを連続的に出力するように構成されたＰＬＬ回路を内蔵した半導体集積回路を開示している。より具体的には、該ＰＬＬ回路は、実使用時の動作周波数と同一の周波数のクロックを生成するＰＬＬ発振部と、該クロックに同期してカウントアップするカウンタとを備えている。カウンタの値がｌよりも大きくｍよりも小さい場合（ｌ、ｍは、ｌ＜ｍを成立させる自然数）、該ＰＬＬ回路は、該クロックをマスクせずにそのまま出力し、そうでない場合、該ＰＬＬ回路は、該クロックをマスクするように構成されている。このような構成により、図１に示されているように、ＰＬＬ発振部が発生するクロックから（ｍ−ｌ−１）個の連続したクロックパルスを取り出して出力することができる。ここで、「ｎ個の連続したクロックパルスを出力する」とは、ｎクロック周期に渡って連続してクロックパルスを出力しつづけることを意味している。ａｔ−ｓｐｅｅｄテストが行われる場合には、この連続したクロックパルスが内部回路に供給される。
【０００７】
このような半導体集積回路における、ａｔ−ｓｐｅｅｄでのディレイテストの典型的な手順を、被テスト回路が図２に記載されているような構成を有している場合を例として使用しながら以下に説明する。図２の半導体集積回路は、スキャンＦＦ１０１、１０３、１０５、１０７と、組み合わせ回路１０２、１０４、１０６とを備えており、スキャンＦＦ１０１、１０３、１０５、１０７は、直列に接続され、スキャンパス１０８を構成している。簡単のために、組み合わせ回路１０２、１０４、１０６は、いずれも、シングルサイクルパスである、即ち、単一のクロック周期でデータが伝搬されるように設計された組み合わせ回路であるとする。半導体集積回路に集積化される組み合わせ回路のほとんどは、シングルサイクルパスである。下記では、図２の半導体集積回路の組み合わせ回路１０６のディレイテストの手順が説明される。
【０００８】
まず、組み合わせ回路１０６に供給されるべき初期化パターンがスキャンパス１０８を利用してスキャンＦＦ１０５にセットされる。これにより、組み合わせ回路１０６の各ノードが所望の状態に初期化される。
【０００９】
初期化パターンのスキャンＦＦ１０５へのセットと同時に、組み合わせ回路１０４の出力（即ち、スキャンＦＦ１０５の入力）が、組み合わせ回路１０６に供給されるべき所望のテストパターンの値にセットされるようなパターン（以下、「テストパターン生成用パターン」という。）が、スキャンＦＦ１０３にセットされる。
【００１０】
続いて、半導体集積回路に内蔵されたＰＬＬ回路からスキャンＦＦ１０５（及び他のスキャンＦＦ）に第１のクロックパルスが供給される；この第１のクロックパルスは、しばしば、ラウンチクロック（launch clock）と呼ばれる。このラウンチクロックに応答して、スキャンＦＦ１０５は、組み合わせ回路１０６に供給されるべきテストパターンを組み合わせ回路１０４の出力からラッチして組み合わせ回路１０６に供給する。テストパターンが組み合わせ回路１０６に供給されることにより、組み合わせ回路１０６の故障仮定点（例えば、配線やプリミティブの端子）に所望の状態遷移が起こされる。例えば、組み合わせ回路１０６のある故障仮定点に初期化パターンによって論理”１”がセットされ、その後、該故障仮定点がテストパターンによって論理”０”に遷移される。又は、故障仮定点に初期化パターンによって論理”０”がセットされ、該故障仮定点がテストパターンによって論理”１”に遷移される。
【００１１】
続いて、第２のクロックパルスが当該ＰＬＬ回路からスキャンＦＦ１０７（及び他のスキャンＦＦ）に供給され、組み合わせ回路１０６の出力がスキャンＦＦ１０７に取り込まれる；この第２のクロックパルスは、しばしば、キャプチャクロック（capture clock）と呼ばれる。
【００１２】
更に、キャプチャクロックによってスキャンＦＦ１０７に取り込まれたデータがスキャンパス１０８を介してテスタに転送される。スキャンＦＦ１０７に取り込まれたデータから、組み合わせ回路１０６の遷移遅延故障の存在の有無が判定される。組み合わせ回路１０６の故障仮定点の状態が所望のタイミングで遷移した場合には、スキャンＦＦ１０７に取り込まれたデータは予め用意された期待値パターンに一致する。スキャンＦＦ１０７に取り込まれたデータと期待値パターンとの一致により、組み合わせ回路１０６の故障仮定点の状態が、設計のとおりに遷移していることが検証される。一方、組み合わせ回路１０６の故障仮定点の状態が所望のタイミングで遷移しない場合には、スキャンＦＦ１０７に取り込まれたデータは、期待値パターンと一致しない。スキャンＦＦ１０７に取り込まれたデータが期待値パターンに一致しない場合には、ＬＳＩテスタは、組み合わせ回路１０６に遷移遅延故障が存在すると判断する。
【００１３】
上述の初期化パターン、テストパターン生成用パターン、及び期待値パターンの生成は、一般に、ＡＴＰＧツール（自動テストパターン生成ツール）によって行われる。組み合わせ回路１０６のディレイテストのための初期化パターン、テストパターン、及び期待値パターンを生成するためには、ＡＴＰＧツールは、組み合わせ回路１０４、スキャンＦＦ１０５、及び組み合わせ回路１０６を順序回路として考え、その順序回路の２クロック周期に渡る動作を解析する必要がある。
【００１４】
更に、非特許文献１は、異なるクロックドメインに属するフリップフロップのそれぞれに、ａｔ−ｓｐｅｅｄテストに使用されるクロックパルスを供給するＰＬＬ回路が内蔵された半導体集積回路を開示している；ここでクロックドメインとは、ある一つのクロックツリーからクロックが供給される回路の集合のことである。非特許文献１はクロックツリーの遅延の相違が、クロックドメイン間パス（即ち、一のクロックドメインに属するフリップフロップから、他のクロックドメインに属するフリップフロップに信号を伝送する経路）のａｔ−ｓｐｅｅｄテストの障害になることを指摘している。クロックドメイン間パスのａｔ−ｓｐｅｅｄテストを実現するために、非特許文献１に開示された半導体集積回路では、ＰＬＬ回路から各クロックツリーの入力までの間に、適切な数の遅延ゲートが挿入されている。遅延ゲートの挿入により、クロックツリーの遅延の差が補償され、クロックドメイン間パスのａｔ−ｓｐｅｅｄテストの実行が容易化される。
【００１５】
【特許文献１】特開２００２−１９６０４６号公報
【非特許文献１】"DFT Timing Design Methodology for At-Speed BIST", Yasuo Sato et al., Proceedings of ASP-DAC 2003, pp.763-768, IEEE
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１に開示された技術には、マルチサイクルパスのテスタビリティが良好でないという課題がある。マルチサイクルパスとは、複数のクロック周期をかけてデータが伝播される組み合わせ回路のことである。多くの組み合わせ回路は、シングルサイクルパスであるように設計されるが、半導体集積回路に求められる仕様によっては、マルチサイクルパスの使用が望ましい場合がある。特許文献１に開示されているような、連続したクロックパルスしか生成できないＰＬＬ回路が内蔵されている半導体集積回路では、このマルチサイクルパスの存在は、ＡＴＰＧツールを用いてａｔ−ｓｐｅｅｄテストを行う上で極めて不都合である。
【００１７】
より具体的には、ＡＴＰＧツールが解析すべきクロック周期の長さは、テスト対象の組み合わせ回路をデータが伝搬するのに必要なクロック周期の数の増大に伴って増大する。一般に、組み合わせ回路がＮクロック周期でデータが伝搬されるマルチサイクルパスである場合には、（Ｎ＋１）クロック周期に渡って順序回路の動作を解析する必要がある。
【００１８】
加えて、解析されるべき順序回路の規模も、テスト対象の組み合わせ回路をデータが伝搬するのに必要なクロック周期の数の増大に伴って増大する。
【００１９】
図２の半導体集積回路について具体的に説明すれば、組み合わせ回路１０６が２クロック周期でデータが伝搬されるマルチサイクルパスである場合には、組み合わせ回路１０２、１０４、１０６とスキャンＦＦ１０３、１０５とからなる回路を順序回路として考えて、その順序回路の３クロック周期の動作を解析する必要がある。なぜなら、連続したクロックパルスしか生成できない上述のＰＬＬ回路が使用される場合には、スキャンＦＦ１０５にテストパターンを取り込ませるラウンチクロックと、スキャンＦＦ１０７に組み合わせ回路１０６の出力を取り込ませるキャプチャクロックとの間に、もう一つのクロックパルスがスキャンＦＦ１０５に供給されるからである。スキャンＦＦ１０５の入力には、３クロック周期に渡って、組み合わせ回路１０６の故障仮定点に所望の状態遷移を起こさせるようなパターンが供給されつづけなければならない。このためには、組み合わせ回路１０２、１０４、１０６と、スキャンＦＦ１０３、１０５とからなる順序回路の動作を３クロック周期に渡って解析し、更に、スキャンＦＦ１０１、１０３、１０５にセットすべきパターンを決定する必要がある。上述のように、組み合わせ回路１０６がシングルサイクルパスである場合には、組み合わせ回路１０４、１０６と、スキャンＦＦ１０５とからなる順序回路の動作を２クロック周期に渡って解析すればよいことに留意されたい。
【００２０】
このように、マルチサイクルパスを使用することは、ＡＴＰＧツールがテストパターンを生成するために必要なデータ処理量を増大させ、更に、半導体集積回路の内部状態（即ち、スキャンＦＦの各クロック周期における値）を記憶させるために多くのメモリを用意する必要性を生じさせる。１０Ｍゲートを越えるような規模の半導体集積回路では、必要なデータ処理量、及び、メモリ容量の増大は経済的に受け入れられないほど深刻である。このため、連続したクロックパルスしか生成できないＰＬＬ回路が内蔵されている半導体集積回路では、その規模が大きくなると、事実上マルチサイクルパスのａｔ−ｓｐｅｅｄテストが不可能である。
【００２１】
一方、非特許文献１に開示されている技術には、クロックツリーの遅延を調整するために、非現実的な設計制約が半導体集積回路に課される場合がある、という課題がある。一のクロックツリーの遅延と他のクロックツリーの遅延の差は、１０ｎｓにまで大きくなる場合がある。その一方、近年の高速な半導体集積回路では、一の遅延ゲートの遅延は１００ｐｓ程度である。これは、クロックツリーの遅延を遅延ゲートで調整するためには、非現実的に多大な数の遅延ゲートをＰＬＬ回路とクロックツリーの入力との間に挿入する必要が生じることを意味している。これは、遅延ゲートを用いたクロックツリーの遅延の調整によってクロックドメイン間パスのａｔ−ｓｐｅｅｄテストを実現することは、現実的ではないことを意味している。
【００２２】
以上に説明されているように、マルチサイクルパス及びクロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行うための実用的な技術は、発明者が知る限りにおいて存在しない。
【課題を解決するための手段】
【００２３】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために、［発明を実施するための最良の形態］で使用される番号・符号が付加されている。但し、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２４】
一の観点において、本発明による半導体集積回路は、入力側フリップフロップ（４６）と、入力側フリップフロップ（４６）に接続された入力を有するである組み合わせ回路（４９）と、組み合わせ回路（４９）の出力に接続された出力側フリップフロップ（４８）と、ディレイテスト回路（１０）とを具備する。ディレイテスト回路（１０）には、入力クロック信号（２０）が入力される。このディレイテスト回路（１０）は、入力クロック信号（２０）の３以上の連続するクロックパルスから任意のクロックパルスを間引くことによって出力クロックパルス（ＣＬＫＯＵＴ）を生成し、出力クロックパルス（ＣＬＫＯＵＴ）を入力側フリップフロップ（４６）と出力側フリップフロップ（４８）とに供給するように構成されている。
【００２５】
このように構成された半導体集積回路では、マルチサイクルパスである組み合わせ回路（４９）のａｔ−ｓｐｅｅｄテストの際、入力側フリップフロップ（４６）にラウンチクロックが供給された後、出力側フリップフロップ（４８）にキャプチャクロックが供給されるまでの間に、入力側フリップフロップ（４６）にクロックパルスを供給しないことが可能である。このように構成された当該半導体集積回路では、マルチサイクルパスの試験の際にテストパターン及びテストパターン生成用パターンを決定するために行われる回路動作の解析の対象を、シングルサイクルパスと同等の範囲に限定することが可能である。より具体的には、上記の構成を有する半導体集積回路は、テストパターン及びテストパターン生成用パターンを決定する際に、組み合わせ回路（４９）と、入力側フリップフロップ（４６）と、入力側フリップフロップ（４６）の入力に接続された組み合わせ回路（４７）を順序回路として考え、その順序回路の動作を解析すればよい。これは、マルチサイクルパスを試験するパターンの生成に必要なデータ処理量及びメモリ容量が、シングルサイクルパスを試験するパターンの生成に必要なデータ処理量及びメモリ容量と同等であることを意味する。このように、本発明の半導体集積回路は、入力側フリップフロップ（４６）の入力にセットすべきテストパターンを決定するために必要なデータ処理量及びメモリの容量を有効に抑制し、マルチサイクルパスのａｔ−ｓｐｅｅｄテストを容易化することができる。
【００２６】
他の観点において、本発明による半導体集積回路は、第１クロックドメインに属する第１フリップフロップ（６３Ａ）と、第２クロックドメインに属し、且つ、クロックドメイン間パス（６４）を介して第１フリップフロップ（６３Ａ）の出力に接続された入力を有する第２フリップフロップ（６３Ｂ）と、第１クロックパルスを第１クロックツリー（６２Ａ）を介して第１フリップフロップ（６３Ａ）に供給するための第１ディレイテスト回路（１０Ａ）と、第２クロックパルスを第２クロックツリー（６２Ｂ）を介して第２フリップフロップ（６３Ｂ）に供給するための第２ディレイテスト回路（１０Ｂ）とを具備する。当該半導体集積回路は、第１ディレイテスト回路（１０Ａ）が第１クロックパルスを出力する第１出力タイミング又は、第２ディレイテスト回路（１０Ｂ）が第２クロックパルスを出力する第２出力タイミングの少なくとも一方が調節可能であるように構成されている。
【００２７】
このような構成の半導体集積回路では、上記第１出力タイミングと上記第２出力タイミングとの少なくとも一方を第１クロックツリー及び第２クロックツリーの遅延時間の差に応じて調節することにより、第１フリップフロップに第１クロックパルスが供給されるタイミングと、第２フリップフロップに第２クロックパルスが供給されるタイミングとの時間差を半導体集積回路の内部で調節可能である。これは、クロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行うことを容易化する。
【００２８】
上記第１出力タイミングと上記第２出力タイミングとは、その両方が調節可能であることが好適である。
【００２９】
第１ディレイテスト回路（１０Ａ）と第２ディレイテスト回路（１０Ｂ）とを同期させるためには、第１ディレイテスト回路（１０Ａ）及び第２ディレイテスト回路（１０Ｂ）が、第１クロックパルス及び第２クロックパルスの生成を、同じ制御信号（７３）に応答して開始するように構成されることが好ましい。
【００３０】
また、第１ディレイテスト回路（１０Ａ）と第２ディレイテスト回路（１０Ｂ）とを同期させるためには、第１ディレイテスト回路（１０Ｂ）及び第２ディレイテスト回路（１０Ｂ）が、同一のクロック信号（７４）をマスクすることによって、第１クロックパルス及び第２クロックパルスを生成するように構成されることも好ましい。
【００３１】
更に他の観点において、本発明によるディレイテスト回路（１０）は、外部からクロックの波形を表すクロック波形設定データ（１４）を受け取り、クロック波形設定データ（１４）を保持するクロック波形設定レジスタ（１１）と、クロック波形設定データ（１４）に応答して入力クロック信号（２０）をマスクすることにより、出力クロック（ＣＬＫＯＵＴ）を生成するように構成された出力部（１２、１３）とを具備する。このようなディレイテスト回路（１０）は、クロック波形設定データ（１４）の値を適切に決定することにより、ディレイテスト回路（１０）が出力するクロックパルスのタイミングや数を自在に制御できる。このようなディレイテスト回路（１０）の機能は、マルチサイクルパス及びクロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行う上で好適である。
【発明の効果】
【００３２】
本発明により、マルチサイクルパスのａｔ−ｓｐｅｅｄテストを行うための実用的な技術が提供される。
また、本発明により、クロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行うための実用的な技術が提供される。
【発明を実施するための最良の形態】
【００３３】
以下では、本発明の実施の形態が図面を参照しながら詳細に説明される。
【００３４】
本発明は、マルチサイクルパス及びクロックドメイン間パスのテスタビリティの問題が、ａｔ−ｓｐｅｅｄテストに使用されるクロックパルスを発生するタイミングを、テストされる半導体集積回路の内部で制御可能にすることによって解決可能である、という発見に基づいている。より具体的には、本実施の形態では、ａｔ−ｓｐｅｅｄテストに使用されるクロックパルスを発生するディレイテスト回路が半導体集積回路に組み込まれる。そのディレイテスト回路は、ＬＳＩテスタから供給されるクロック波形設定データに対応する波形を有するクロックを生成するように構成される。クロック波形設定データの内容を適切に設定することにより、所望のタイミングで所望の数のクロックパルスが出力される。以下では、ディレイテスト回路の構成及び動作が説明され、更に、当該ディレイテスト回路を用いたマルチサイクルパス及びクロックドメイン間パスのテスト手法が説明される。
【００３５】
第１  ディレイテスト回路
１．ディレイテスト回路の構成
図３は、本実施の形態で使用されるディレイテスト回路１０の構成を示すブロック図である。ディレイテスト回路１０は、クロック波形保持レジスタ１１と、クロック波形レジスタ１２と、クロックゲーティング回路１３とを備えている。
【００３６】
クロック波形保持レジスタ１１は、クロック波形設定データ１４を受け取る波形設定入力１１ａを有しており、そのクロック波形設定データ１４を保持するために使用される。クロック波形設定データ１４は、ディレイテスト回路１０が出力すべきクロックの波形を指定するデータであり、ＬＳＩテスタ（図示されない）から供給される。クロック波形設定データ１４はｎビットデータであり、クロック波形保持レジスタ１１はｎビットシフトレジスタである。クロック波形保持レジスタ１１は、クロック波形設定データ１４の各データビットＤ１〜Ｄｎをシリアルに受け取って保持し、それが保持しているデータビットＤ１〜Ｄｎをパラレルに出力可能に構成されている。クロック波形保持レジスタ１１は、更に、波形設定出力１１ｂを有しており、それが保持しているクロック波形設定データ１４をディレイテスト回路１０の外部にシリアルに出力可能に構成されている。
【００３７】
図４は、クロック波形設定データ１４のデータビットの数ｎが４である場合のクロック波形保持レジスタ１１の具体的な構成を示す回路図である。クロック波形保持レジスタ１１は、フリップフロップ３１１〜３１４と、セレクタ３２１〜３２４とを備えている。セレクタ３２１〜３２４の出力は、それぞれ、フリップフロップ３１１〜３１４の入力に接続されている。セレクタ３２４の第１入力は、波形設定入力１１ａに接続され、第２入力は、フリップフロップ３１４の出力に接続されている。セレクタ３２３の第１入力はフリップフロップ３１４の出力に接続され、第２入力はセレクタ３２３の出力に接続されている。同様に、セレクタ３２２の第１出力及び第２入力は、それぞれ、フリップフロップ３１３の出力及びフリップフロップ３１２の出力に接続され、セレクタ３２１の第１出力及び第２入力は、フリップフロップ３１２の出力及びフリップフロップ３１１の出力に接続されている。フリップフロップ３１１の出力は、更に、波形設定出力１１ｂに接続されている。
【００３８】
クロック波形保持レジスタ１１の制御は、テスタクロック１５及びクロック波形保持信号１６によって行われる。テスタクロック１５は、ＬＳＩテスタから外部的に供給されるクロック信号であり、フリップフロップ３１１〜３１４のクロック入力に供給される。クロック波形保持レジスタ１１は、このテスタクロック１５に同期してクロック波形設定データ１４を順次に取り込む。一方、クロック波形保持信号１６は、クロック波形設定データ１４を外部から取り込むか、外部から取り込まずに保持するかを指定するためのものである。クロック波形保持信号１６は、セレクタ３２１〜３２４の制御入力に供給される。
【００３９】
このような構成のクロック波形保持レジスタ１１は、クロック波形保持信号１６が非活性化されると（本実施の形態では、”０”にされると）、テスタクロック１５に同期してクロック波形設定データ１４のデータビットＤ１〜Ｄ４を順次に取り込む。クロック波形設定データ１４の取り込みの完了時には、データビットＤ１〜Ｄ４は、それぞれ、フリップフロップ３１１〜３１４に保持される。
【００４０】
クロック波形保持レジスタ１１に設けられるフリップフロップ、及びセレクタの数は、クロック波形設定データ１４を構成するデータビットの数ｎに依存して決定されることは、当業者には自明的である。
【００４１】
図３に戻り、クロック波形レジスタ１２は、クロック波形保持レジスタ１１からクロック波形設定データ１４のデータビットＤ１〜Ｄｎをラッチし、ラッチしたデータビットＤ１〜Ｄｎをシリアルに出力するように構成されたｎビットシフトレジスタである。クロック波形レジスタ１２からシリアルに出力されるデータビットＤ１〜Ｄｎは、クロックゲーティング回路１３を制御するクロックゲーティング信号１７として使用される。クロック波形設定データ１４のラッチ、及びクロックゲーティング信号１７の出力は、入力ＰＬＬクロック２０に同期して行われる。入力ＰＬＬクロック２０は、テストされる半導体集積回路に内蔵されたＰＬＬ回路によって生成されるクロック信号であり、当該半導体集積回路の動作速度に対応する周波数を有している。
【００４２】
図５は、クロック波形設定データ１４のデータビットの数ｎが４である場合のクロック波形レジスタ１２の具体的な構成を示す回路図である。クロック波形レジスタ１２は、フリップフロップ３３１〜３３４と、セレクタ３４１〜３４４、及び３５１〜３５４とで構成されている。セレクタ３４１〜３４４の第１入力は、それぞれ、フリップフロップ３３１〜３３４の出力に接続されている。一方、セレクタ３４１〜３４４の第２入力は、それぞれ、クロック波形保持レジスタ１１のフリップフロップ３１１〜３１４に接続されている；言い換えれば、セレクタ３４１〜３４４の第２入力には、それぞれ、クロック波形レジスタ１２に保持されているクロック波形設定データ１４のデータビットＤ１〜Ｄｎが供給される。セレクタ３５１〜３５４の第１入力は、それぞれ、セレクタ３４１〜３４４の出力に接続されている。一方、セレクタ３５１〜３５３の第２入力は、それぞれ、フリップフロップ３３２〜３３４に接続され、セレクタ３５４の第２入力は、接地端子に接続されている。
【００４３】
クロック波形レジスタ１２の制御は、クロック波形設定信号１８とクロック生成開始信号１９とによって行われる。クロック波形設定信号１８は、クロック波形設定データ１４のデータビットＤ１〜Ｄｎのラッチを許可するための信号であり、クロック生成開始信号１９は、クロックゲーティング信号１７の出力（即ち、データビットＤ１〜Ｄｎの出力）を許可するための信号である。クロック波形設定信号１８は、セレクタ３４１〜３４４の制御入力に供給され、クロック生成開始信号１９は、セレクタ３５１〜３５４の制御入力に供給される。
【００４４】
このような構成のクロック波形レジスタ１２は、クロック波形設定信号１８が活性化され、クロック生成開始信号１９が非活性化された状態で、入力ＰＬＬクロック２０が供給されると、入力ＰＬＬクロック２０の立ち上がりエッジに同期してクロック波形設定データ１４のデータビットＤ１〜Ｄｎをラッチする。更に、クロック波形設定信号１８が非活性化され、クロック生成開始信号１９が活性化された状態で入力ＰＬＬクロック２０が供給されると、入力ＰＬＬクロック２０の立ち上がりエッジに同期してクロック波形設定データ１４のデータビットＤ１〜Ｄｎをシフトしながら順次に出力する。
【００４５】
再度に図３に戻って、クロックゲーティング回路１３は、クロック波形レジスタ１２から供給されるクロックゲーティング信号１７と、外部から供給されるノーマルモード信号２１とに応答して、ＰＬＬ回路（図示されない）から供給される入力ＰＬＬクロック２０をゲーティングする回路である。ノーマルモード信号２１とは、ディレイテスト回路１０が搭載される半導体集積回路の動作モードを指定する信号である；ノーマルモード信号２１は、通常動作時に活性化され（本実施の形態では”Ｈｉｇｈ”に設定され）、テストが行われる場合には非活性化される。
【００４６】
具体的には、クロックゲーティング回路１３は、フリップフロップ３６と、ＯＲゲート３７と、ＡＮＤゲート３８とを備えている。フリップフロップ３６のデータ入力にはクロックゲーティング信号１７が入力されており、クロック入力には入力ＰＬＬクロック２０が入力されている。フリップフロップ３６は、入力ＰＬＬクロック２０の立ち下がりエッジに同期してクロックゲーティング信号１７をラッチし、その出力から半周期遅れクロックゲーティング信号２２を出力する。ＯＲゲート３７の第１入力にはノーマルモード信号２１が供給され、第２入力には半周期遅れクロックゲーティング信号２２が供給される。ＯＲゲート３７の出力は、ＡＮＤゲート３８の第１入力に接続されている。ＡＮＤゲート３８の第２入力には、入力ＰＬＬクロック２０が供給される。ＡＮＤゲート３８の出力から、目的とする出力クロックＣＬＫＯＵＴが出力される。
【００４７】
このように構成されたクロックゲーティング回路１３は、ノーマルモード信号２１が活性化されると、クロックゲーティング信号１７に無関係に入力ＰＬＬクロック２０をそのまま出力クロックＣＬＫＯＵＴとして出力する。一方、ノーマルモード信号２１が非活性化されると、クロックゲーティング信号１７に応答して入力ＰＬＬクロック２０をマスクする；具体的には、あるクロック周期においてクロックゲーティング信号１７が”Ｌｏｗ”であると、クロックゲーティング回路１３は、それに続くクロック周期において入力ＰＬＬクロック２０をマスクする。逆に、あるクロック周期においてクロックゲーティング信号１７が”Ｈｉｇｈ”であると、クロックゲーティング回路１３は、それに続くクロック周期において入力ＰＬＬクロック２０をそのまま出力する。言い換えれば、クロックゲーティング回路１３は、クロックゲーティング信号１７が”Ｈｉｇｈ”であるクロック周期の次のクロック周期のみクロックパルスを出力する；クロックゲーティング信号１７が”Ｌｏｗ”であるクロック周期の次のクロック周期においてはクロックパルスは出力されない。
【００４８】
２．ディレイテスト回路の動作
以上に述べられているように、図３のディレイテスト回路１０は、クロック波形設定データ１４の値に応じた波形の出力クロックＣＬＫＯＵＴを生成可能に構成されている。以下では、クロック波形設定データ１４による波形の設定、及びクロック波形設定データ１４に応じた出力クロックＣＬＫＯＵＴの生成の過程が、順に説明される。
【００４９】
（ステップＳ０１）
まず、クロック波形設定データ１４がクロック波形保持レジスタ１１に供給され、これにより、所望の出力クロックＣＬＫＯＵＴの波形がディレイテスト回路１０に設定される。具体的には、図６に示されているように、クロック波形保持信号１６が非活性化された状態で、テスタクロック１５に同期してクロック波形設定データ１４の各データビットＤ１〜Ｄ４が順次に波形設定入力１１ａに供給される。
【００５０】
クロック波形設定データ１４の各データビットＤ１〜Ｄ４は、クロック生成開始信号１９が活性化された後の４つのクロック周期にそれぞれに対応付けられており、データビットＤ１〜Ｄ４の値は、それぞれが対応するクロック周期におけるクロックパルスの出力の有無に応じて設定される；データビットＤ１〜Ｄ４は、それぞれが対応するクロック周期においてクロックパルスを出力する場合には”１”に、クロックパルスを出力しない場合には”０”に設定される。例えば、クロック生成開始信号１９が活性化された後の最初のクロック周期においてクロックパルスを出力しない場合には、データビットＤ１は、”０”に設定される。データビットＤ１、Ｄ２、Ｄ３、Ｄ４がそれぞれ”０”、”１”、”０”、”１”に設定される図６の例では、ディレイテスト回路１０は、クロック生成開始信号１９が活性化された後の２番目、及び４番目のクロック周期においてクロックパルスを出力するように設定されることになる。
【００５１】
クロック波形設定データ１４のクロック波形保持レジスタ１１への設定が完了されると、クロック波形保持信号１６が活性化される。これにより、クロック波形保持レジスタ１１の各フリップフロップ３１１〜３１４のそれぞれの出力が、そのデータ入力に接続され、クロック波形保持レジスタ１１は、クロック波形設定データ１４を保持する状態になる。
【００５２】
（ステップＳ０２）
続いて、クロック波形保持レジスタ１１に保持されているクロック波形設定データ１４の各データビットＤ１〜Ｄ４が、パラレルにクロック波形レジスタ１２に転送される。具体的には、図７に示されているように、クロック生成開始信号１９が非活性化された状態で、クロック波形設定信号１８が活性化される。これにより、入力ＰＬＬクロック２０の立ち上がりエッジに同期してクロック波形レジスタ１２のフリップフロップ３３１〜３３４にデータビットＤ１〜Ｄ４が転送される。
【００５３】
フリップフロップ３３１〜３３４へのデータビットＤ１〜Ｄ４の転送が完了した後、クロック波形設定信号１８が非活性化される。これにより、クロック波形レジスタ１２の各フリップフロップ３３１〜３３４のそれぞれの出力がそのデータ入力に接続され、クロック波形レジスタ１２は、クロック波形設定データ１４を保持する状態になる。
【００５４】
（ステップＳ０３）
続いて、クロック波形レジスタ１２に設定されたデータビットＤ１〜Ｄ４がクロックゲーティング信号１７として順次にクロックゲーティング回路１３に転送され、データビットＤ１〜Ｄ４に対応する波形を有する出力クロックＣＬＫＯＵＴが生成される。図８は、出力クロックＣＬＫＯＵＴが生成される過程を示すタイミングチャートである。
【００５５】
初期状態では、クロックゲーティング信号１７は、データビットＤ１の値に対応した値を有している。図８の例では、クロックゲーティング信号１７は、初期的に”Ｌｏｗ”に設定されている。クロック波形設定信号１８、クロック生成開始信号１９は、いずれも非活性化されている。
【００５６】
クロック波形設定信号１８が非活性化された状態のまま、クロック生成開始信号１９が活性化されると、データビットＤ１〜Ｄ４が入力ＰＬＬクロック２０に同期して順次に転送される。言い換えれば、クロックゲーティング信号１７の値が、データビットＤ１〜Ｄ４の値に応じて順次に切り替えられる。クロックゲーティング回路１３は、クロックゲーティング信号１７に応答して出力クロックＣＬＫＯＵＴを出力する。この結果、クロック波形設定データ１４の各データビットＤ１〜Ｄ４に対応した波形を有するように、出力クロックＣＬＫＯＵＴが生成される。
【００５７】
同一の波形の出力クロックＣＬＫＯＵＴを再度に出力する場合には、上記のステップＳ０２、Ｓ０３が所望の回数だけ繰り返される。
【００５８】
このように動作するディレイテスト回路１０は、クロック波形設定データ１４の各データビットＤ１〜Ｄ４を適切に設定することにより、所望の波形を有する出力クロックＣＬＫＯＵＴを生成可能である。例えば、データビットＤ１〜Ｄ４の連続する２ビットを”１”に設定することにより、より具体的には、データビットＤ１〜Ｄ４を”００１１”、又は”０１１０”に設定することにより、連続した２つのクロックパルスからなる出力クロックＣＬＫＯＵＴを生成可能である。
【００５９】
クロック波形設定データ１４を適切に設定することにより、ディレイテスト回路１０が連続しない２つのクロックパルスを生成可能であることに留意されたい。例えば、図８に示されているように、データビットＤ１〜Ｄ４を”０１０１”に設定することにより、クロックパルスを不連続的に（言い換えれば、クロックパルスが生成されるクロック周期の間に、クロックパルスが出力されないクロック周期が挿入されるように）、出力可能である。後述されるように、不連続である２つのクロックパルスを出力可能であることは、マルチサイクルパスのａｔ−ｓｐｅｅｄテストを行う際に極めて有益である。
【００６０】
また、クロック波形設定データ１４を適切に設定することにより、ディレイテスト回路１０からクロックパルスが出力されるタイミングを１クロック周期の単位で制御可能であることにも留意されたい。例えば、データビットＤ１〜Ｄ４が、それぞれ、”１０００”に設定されると、ディレイテスト回路１０は、クロック生成開始信号１９が活性化されたクロック周期の次のクロック周期で、クロックパルスを出力する。一方、データビットＤ１〜Ｄ４が、それぞれ、”０００１”に設定されると、ディレイテスト回路１０は、クロック生成開始信号１９が活性化されて以後、４番目のクロック周期でクロックパルスを出力する。クロックパルスが出力されるタイミングを制御可能であることは、後述されるように、クロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行う際に極めて有益である。
【００６１】
第２  マルチサイクルパスのａｔ−ｓｐｅｅｄテスト
既述のように、図３に示されているディレイテスト回路１０は、マルチサイクルパスのａｔ−ｓｐｅｅｄテストを実現するのに適した構成を有している。以下では、図３のディレイテスト回路１０を用いてマルチサイクルパスのａｔ−ｓｐｅｅｄテストを行う手法が説明される。
【００６２】
図９は、ディレイテスト回路１０を用いたマルチサイクルパスのａｔ−ｓｐｅｅｄテストに対応している半導体集積回路の構成の例を示す回路図である。当該半導体集積回路の被テスト回路４３は、スキャンＦＦ４４、４６、４８と、組み合わせ回路４５、４７、４９を含んで構成されている。スキャンＦＦ４４、４６、４８は、スキャンパス５０を構成している。スキャンＦＦ４４、４６、４８には、スキャンイネーブル信号５１が供給されており、スキャンＦＦ４４、４６、４８は、スキャンイネーブル信号５１に応答してデータ入力を選択する。具体的には、スキャンイネーブル信号５１が活性化されている場合（本実施の形態ではスキャンイネーブル信号５１が”１”に設定されている場合）、スキャンＦＦ４４、４６、４８は、スキャンパス５０に関与するデータ入力を選択する；そうでない場合、スキャンＦＦ４４、４６、４８は、組み合わせ回路４５、４７、４９に接続されたデータ入力を選択する。
【００６３】
組み合わせ回路４５、４７が、シングルサイクルパスであるのに対し、組み合わせ回路４９は、２クロック周期をかけてデータが伝送されるマルチサイクルパスである。後述されるように、マルチサイクルパスである組み合わせ回路４９のａｔ−ｓｐｅｅｄテストの実現が、図９の半導体集積回路の主題である。
【００６４】
スキャンＦＦ４４、４６、４８にクロックを分配するクロック系は、上述のディレイテスト回路１０と、セレクタ４１と、クロックツリー４２とを含んで構成される。セレクタ４１の第１入力には、ＬＳＩテスタから供給されるシフトクロック５２が入力され、第２入力には、上述のディレイテスト回路１０が出力する出力クロックＣＬＫＯＵＴが入力される。シフトクロック５２とは、スキャンパス５０においてデータをシフトさせるために使用されるクロックであり、ＬＳＩテスタから供給される。セレクタ４１の制御入力には、上述のスキャンイネーブル信号５１が供給されている。セレクタ４１は、スキャンイネーブル信号５１が非活性化されると（本実施の形態では”０”に設定されると）、ディレイテスト回路１０が出力する出力クロックＣＬＫＯＵＴを選択し、スキャンイネーブル信号５１が活性化されるとシフトクロック５２を選択する。
【００６５】
図９に示されている半導体集積回路では、マルチサイクルパスである組み合わせ回路４９のａｔ−ｓｐｅｅｄテストは、下記の手順で行われる。
【００６６】
まず、ディレイテスト回路１０が、組み合わせ回路４９上をデータを伝送するのに必要なクロック周期の数に対応する間隔で２つのクロックパルスが出力されるように設定される。本実施の形態では、間隔が２クロック周期である２つのクロックパルスの出力を指定するクロック波形設定データ１４がディレイテスト回路１０に設定される。既述のように、クロック波形設定データ１４は、まず、クロック波形保持レジスタ１１に取り込まれ、更に、クロック波形保持レジスタ１１からクロック波形レジスタ１２に転送される。
【００６７】
より具体的には、連続しない２ビットが”１”であるようなクロック波形設定データ１４が、ディレイテスト回路１０に保持される。例えば、クロック波形設定データ１４のデータビットＤ１〜Ｄ４が、”０１０１”に設定される；その代りに、クロック波形設定データ１４のデータビットＤ１〜Ｄ４を”１０１０”に設定してもよい。後述されるように、ディレイテスト回路１０から、間隔が２クロック周期である２つのクロックパルスが出力されることが、組み合わせ回路４９のａｔ−ｓｐｅｅｄテストを実現する上で重要である。
【００６８】
更に、スキャンＦＦ４６に初期化パターンがセットされ、スキャンＦＦ４４にテストパターン出力用パターンがセットされる。初期化パターンは、組み合わせ回路４９の各ノードが所望の状態に初期化されるように決定される。一方、テストパターン出力用パターンは、組み合わせ回路４９に供給されるべき所望のテストパターンが、組み合わせ回路４７の出力からスキャンＦＦ４６の入力に供給されるように決定される。
【００６９】
より具体的には、初期化パターンとテストパターン出力用パターンのセットは、下記の手順で行われる。具体的には、スキャンイネーブル信号５１が活性化され、更に、シフトクロック５２がＬＳＩテスタから供給される。シフトクロック５２に同期して、初期化パターンとテストパターン出力用パターンがＬＳＩテスタからスキャンパス５０に供給され、初期化パターンがスキャンＦＦ４６に、テストパターン出力用パターンがスキャンＦＦ４４にセットされる。スキャンＦＦ４４へのスキャンテストパターンのセットが完了すると、シフトクロック５２の供給が停止され、更に、スキャンイネーブル信号５１が非活性化される。
【００７０】
初期化パターンとテストパターン出力用パターンの決定は、ＬＳＩテスタにインストールされているＡＴＰＧツールによって行われる。ＡＴＰＧツールは、組み合わせ回路４７、４９、及びスキャンＦＦ４６を順序回路として考えて当該順序回路の動作を解析し、初期化パターンとテストパターン出力用パターンとを決定する。ＡＴＰＧツールは、更に、テスト対象である組み合わせ回路４９から出力されるべき期待値パターンを生成する。
【００７１】
ディレイテスト回路１０の設定と、初期化パターン及びテストパターン出力パターンのセットの完了の後、クロック生成開始信号１９が活性化される。これにより、図１０に示されているように、クロック波形設定データ１４の値に対応する波形のクロックが、言い換えれば間隔が２クロック周期である２つのクロックパルスが、ディレイテスト回路１０からスキャンＦＦ４４、４６、４８に供給される。
【００７２】
先に出力されるクロックパルスは、ラウンチクロックとして使用される。ラウンチクロックの入力に応答して、スキャンＦＦ４６は所望のテストパターンを組み合わせ回路４９に供給し始める。これにより、組み合わせ回路４９の故障仮定点（例えば、配線やプリミティブの端子）に所望の状態遷移が起こされる。
【００７３】
一方、後に出力されるクロックパルスは、キャプチャクロックとして使用される。キャプチャクロックの入力に応答して、スキャンＦＦ４８は、組み合わせ回路４９の出力をラッチする。
【００７４】
更に、キャプチャクロックによってスキャンＦＦ４８に取り込まれたデータがスキャンパス５０を介してＬＳＩテスタに転送される。スキャンＦＦ４８に取り込まれたデータから、組み合わせ回路４９の遷移遅延故障の存在の有無が判定される。スキャンＦＦ４８に取り込まれたデータが期待値パターンに一致しない場合には、ＬＳＩテスタは、組み合わせ回路４９に遷移遅延故障が存在すると判断する。
【００７５】
このような手順による組み合わせ回路４９のａｔ−ｓｐｅｅｄテストでは、組み合わせ回路４９がマルチサイクルパスであるにも関わらず、従来技術によるシングルサイクルパスについてのデータ処理と同等のデータ処理量及びメモリの容量で、マルチサイクルパスのａｔ−ｓｐｅｅｄテストのためのテストパターンを生成できる。本実施の形態の試験手順では、組み合わせ回路４７、４９とスキャンＦＦ４６とを順序回路として考え、該順序回路の動作を解析することにより、初期化パターン、テストパターン出力パターン、及び期待値パターンの生成が可能である；組み合わせ回路４５及びスキャンＦＦ４６の動作については動作の解析の際に考慮に入れる必要はない。
【００７６】
このように、ディレイテスト回路１０を用いてクロックパルスを不連続的に出力することができる図９の半導体集積回路では、現実的なデータ処理量及びメモリ容量で、ＡＴＰＧツールによるマルチサイクルパスのａｔ−ｓｐｅｅｄテストのためのテストパターンの生成を実行することができる。
【００７７】
このような手順による組み合わせ回路４９のａｔ−ｓｐｅｅｄテストは、組み合わせ回路４９上をデータを伝送するのに必要なクロック周期の数が２以外である場合にも適用可能である。組み合わせ回路４９上をデータを伝送するのに必要なクロック周期の数がＮである場合には、ディレイテスト回路１０を、Ｎクロック周期の間隔で２つのクロックパルスを出力するように設定すればよい。このためには、クロック波形設定データ１４のビット数は、Ｎ＋１以上であればよい。必要がある場合には、ディレイテスト回路１０の設計が、クロック波形設定データ１４のビット数に合わせて変更される。具体的には、クロック波形保持レジスタ１１及びクロック波形レジスタ１２が保持可能なビット数が、クロック波形設定データ１４のビット数に合わせて変更される。
【００７８】
第３  クロックドメイン間パスのａｔ−ｓｐｅｅｄテスト
１．ディレイテスト回路を利用したクロックドメイン間パスのテスト
既述のように、図３に示されているディレイテスト回路１０は、クロックドメイン間パスのａｔ−ｓｐｅｅｄテストを実現するためにも適している。以下では、ディレイテスト回路１０を用いてクロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行う手法が説明される。
【００７９】
図１１は、ディレイテスト回路１０を用いてクロックドメイン間パスのａｔ−ｓｐｅｅｄテストを行うように構成された半導体集積回路の構成の例を示す回路図である。本実施の形態でテストの対象にされるのは、スキャンＦＦ６３Ａ、６３Ｂの間に設けられているクロックドメイン間パス６４である。このクロックドメイン間パス６４のａｔ−ｓｐｅｅｄテストを行うために、図１１の半導体集積回路には、上述のディレイテスト回路１０が２つ設けられる。以下の記載において、２つのディレイテスト回路１０、及びそれに関連する信号は、参照符号に付せられた記号”Ａ”、”Ｂ”に区別されることに留意されたい。
【００８０】
スキャンＦＦ６３ＡとスキャンＦＦ６３Ｂとは、異なるクロックドメインに属しており、異なるクロックツリーからクロックが供給される。具体的には、スキャンＦＦ６３Ａにクロックを供給するクロック系は、ディレイテスト回路１０Ａと、セレクタ６１Ａと、第１クロックツリー６２Ａとで構成される。セレクタ６１Ａの第１入力には、シフトクロック７２が供給され、第２入力には、ディレイテスト回路１０Ａが出力する出力クロックＣＬＫＯＵＴＡが供給される。セレクタ６１Ａは、スキャンイネーブル信号７１に応答して、ディレイテスト回路１０Ａが出力する出力クロックＣＬＫＯＵＴＡとシフトクロック７２との一方を選択する。第１クロックツリー６２Ａは、セレクタ６１Ａが出力するクロックを、スキャンＦＦ６３Ａを含む第１クロックドメインに分配する。同様に、スキャンＦＦ６３Ｂにクロックを供給するクロック系は、ディレイテスト回路１０Ｂと、セレクタ６１Ｂと、第１クロックツリー６２Ｂとで構成される。セレクタ６１Ｂの第１入力には、シフトクロック７２が供給され、第２入力には、ディレイテスト回路１０Ｂが出力する出力クロックＣＬＫＯＵＴＢが供給される。セレクタ６１Ｂは、スキャンイネーブル信号７１に応答して、ディレイテスト回路１０Ｂが出力する出力クロックＣＬＫＯＵＴＢとシフトクロック７２との一方を選択する。第２クロックツリー６２Ｂは、セレクタ６１Ｂが出力するクロックを、スキャンＦＦ６３Ｂを含む第２クロックドメインに分配する。
【００８１】
ディレイテスト回路１０Ａ、１０Ｂを同期させることは、スキャンＦＦ６３Ａ、６３Ｂに適切なタイミングでクロックを供給するために重要である。ディレイテスト回路１０Ａ、１０Ｂを同期させるためには、第１に、ディレイテスト回路１０Ａに供給されるクロック生成開始信号１９Ａと、ディレイテスト回路１０Ｂに供給されるクロック生成開始信号１９Ｂを同期させることが好適である。
【００８２】
より具体的には、本実施の形態では、クロック生成開始信号１９Ａ、１９Ｂの同期がフリップフロップ６５Ａ、６５Ｂによって実現されている。フリップフロップ６５Ａ、６５Ｂのデータ入力にはクロック生成同期信号７３が供給され、クロック入力には、テスト基準クロック７４が供給されている。クロック生成同期信号７３は、ディレイテスト回路１０Ａ、１０Ｂにクロックの出力を指示する制御信号であり、テスト基準クロック７４は、半導体集積回路に内蔵されるＰＬＬ回路（図示されない）によって生成されるクロック信号である。後述されるように、テスト基準クロック７４は、ディレイテスト回路１０Ａ、１０Ｂが出力クロックＣＬＫＯＵＴＡ、ＣＬＫＯＵＴＢを生成するために共通に使用される。フリップフロップ６５Ａ、６５Ｂは、テスト基準クロック７４の立ち上がりエッジに同期して、クロック生成同期信号７３をラッチする。フリップフロップ６５Ａの出力信号、及びフリップフロップ６５Ｂの出力信号が、それぞれ、ディレイテスト回路１０Ａのクロック生成開始信号１９Ａ、ディレイテスト回路１０Ｂのクロック生成開始信号１９Ｂとして使用される。これにより、クロック生成開始信号１９Ａ、１９Ｂは、クロック生成同期信号７３の活性化に同期して、同時に活性化される。
【００８３】
ディレイテスト回路１０Ａ、１０Ｂを同期させるためには、これに加えて、ディレイテスト回路１０Ａ、１０Ｂに供給される入力ＰＬＬクロック２０Ａ、２０Ｂを同期させることが好適である。本実施の形態では、入力ＰＬＬクロック２０Ａ、２０Ｂの同期が、セレクタ６６Ａ、６６Ｂを半導体集積回路に設けてテスト基準クロック７４を入力ＰＬＬクロック２０Ａ、２０Ｂとして共通に使用することによって達成されている。セレクタ６６Ａは、ドメイン間テストモード信号７６に応答してテスト基準クロック７４と第１ＰＬＬクロック７５Ａとの一方を選択し、セレクタ６６Ｂは、ドメイン間テストモード信号７６に応答してテスト基準クロック７４と第２ＰＬＬクロック７５Ｂとの一方を選択する。セレクタ６６Ａが出力するクロックが、ディレイテスト回路１０Ａの入力ＰＬＬクロック２０Ａとして使用され、セレクタ６６Ｂが出力するクロックが、ディレイテスト回路１０Ｂの入力ＰＬＬクロック２０Ｂとして使用される。通常動作時には、ドメイン間テストモード信号７６は非活性化され（本実施の形態では”０”に設定され）、第１ＰＬＬクロック７５Ａ、第２ＰＬＬクロック７５Ｂが、それぞれ、入力ＰＬＬクロック２０Ａ、２０Ｂとして供給される。更に、ディレイテスト回路１０Ａ、１０Ｂに供給されるノーマルモード信号２１Ａ、２１Ｂが活性化され、第１ＰＬＬクロック７５Ａ、第２ＰＬＬクロック７５Ｂが、そのまま、第１クロックドメイン、第２クロックドメインに供給される。一方、クロックドメイン間パス６４のａｔ−ｓｐｅｅｄテストが行われる場合には、ドメイン間テストモード信号７６が活性化され、セレクタ６６Ａ、６６Ｂは、いずれもテスト基準クロック７４を選択する。これにより、テスト基準クロック７４が、ディレイテスト回路１０Ａ、１０Ｂに共通に供給される。ディレイテスト回路１０Ａ、１０Ｂは、テスト基準クロック７４を、入力ＰＬＬクロック２０Ａ、２０Ｂとして使用する。
【００８４】
テスト基準クロック７４としては、通常動作時におけるクロックドメイン間パス６４を介するデータ転送をシミュレートできるような波形を有するクロック信号が使用される。言い換えれば、クロックドメイン間パス６４のテスト時にスキャンＦＦ６３Ａのクロック入力にクロックパルスが供給されるべき時刻から、スキャンＦＦ６３Ｂのクロック入力にクロックパルスが供給されるべき時刻までの時間が、そのクロック周期の整数倍であるようなクロック信号が、テスト基準クロック７４として使用される。例えば、図１２に示されているように、クロックドメイン間パス６４をテストするためには、スキャンＦＦ６３Ａのクロック入力にクロックパルスが供給されて以後、第１ＰＬＬクロック７５Ａの１クロック周期だけ後の時刻において、スキャンＦＦ６３Ｂのクロック入力にクロックパルスを供給する必要があるとする。この場合には、例えば、第１ＰＬＬクロック７５Ａと同一のクロック周期を有するクロック信号がテスト基準クロック７４として使用である。この場合には、第１ＰＬＬクロック７５Ａそのものを、テスト基準クロック７４として使用することも可能である。
【００８５】
クロックドメイン間パス６４のａｔ−ｓｐｅｅｄテストは、以下の手順で行われる。まず、スキャンパス（図示されない）を介してスキャンＦＦ６３Ａに初期化パターンがセットされ、スキャンＦＦ６３Ａの入力に接続されている組み合わせ回路（図示されない）の入力に接続されているスキャンＦＦ（図示されない）にテストパターン出力用パターンがセットされる。より詳細には、スキャンイネーブル信号７１が活性化され、更に、シフトクロック７２がＬＳＩテスタから供給される。シフトクロック７２に同期して、初期化パターンとテストパターン出力用パターンがＬＳＩテスタから供給される。これにより、初期化パターンとテストパターン出力用パターンとが、対応するスキャンＦＦにセットされる。初期化パターンがスキャンＦＦ６３Ａにセットされることにより、クロックドメイン間パス６４の各ノードが初期化される。更に、テストパターン出力用パターンが、それに関連するスキャンＦＦにセットされることにより、スキャンＦＦ６３Ａの入力にテストパターンがセットされる。初期化パターンとテストパターン出力用パターンのセットが完了すると、スキャンイネーブル信号７１は非活性化される。
【００８６】
更に、クロック波形設定データ１４がディレイテスト回路１０Ａ、１０Ｂにそれぞれに設定され、ディレイテスト回路１０Ａ、１０Ｂに、クロックパルスを出力するタイミングが設定される。ディレイテスト回路１０Ａ、１０Ｂに設定されるクロック波形設定データ１４は、その一のデータビットのみが”１”、残りが”０”になるように決定される。ディレイテスト回路１０Ａ、１０Ｂがクロックパルスを出力するタイミングは、クロック波形設定データ１４のデータビットＤ１〜Ｄ４の所望のデータビットを”１”に設定することによって制御可能である。
【００８７】
続いて、ドメイン間テストモード信号７６及びクロック生成同期信号７３が活性化され、ディレイテスト回路１０Ａ、１０ＢからスキャンＦＦ６３Ａ、６３Ｂへのクロックパルスの供給が開始される。クロック生成同期信号７３の活性化に応答して、ディレイテスト回路１０Ａ、１０Ｂのクロック生成開始信号１９Ａ、１９Ｂは同時に活性化され、ディレイテスト回路１０Ａ、１０Ｂは、クロック波形設定データ１４に指定されたタイミングでクロックパルスを出力する。具体的には、まず、ディレイテスト回路１０ＡからスキャンＦＦ６３Ａのクロック入力にクロックパルスが供給される。これにより、スキャンＦＦ６３Ａからクロックドメイン間パス６４へのテストパターンの供給が開始され、クロックドメイン間パス６４に所望の状態遷移が起こされる。所望の時間の後、ディレイテスト回路１０ＢからスキャンＦＦ６３Ｂのクロック入力にクロックパルスが供給され、クロックドメイン間パス６４から出力されるデータがスキャンＦＦ６３Ｂによってラッチされる。
【００８８】
続いて、スキャンＦＦ６３Ｂに取り込まれたデータが、スキャンパスを介してテスタに転送されて、クロックドメイン間パス６４のデータ転送が正しく行われているかが検証される。
【００８９】
ディレイテスト回路１０Ａ、１０Ｂのそれぞれに設定されるクロック波形設定データ１４の値は、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延時間の差を補償するように決定される。以下では、例えば、クロックドメイン間パス６４をテストするために、スキャンＦＦ６３Ａのクロック入力にクロックパルスが供給されて以後、テスト基準クロック７４の１クロック周期だけ後の時刻において、スキャンＦＦ６３Ｂのクロック入力にクロックパルスを供給しようとする場合を考えよう。
【００９０】
図１２（ａ）に示されているように、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延時間が同一である場合、ディレイテスト回路１０Ｂがディレイテスト回路１０Ａよりもテスト基準クロック７４の１クロック周期だけ遅くクロックパルスを出力するように決定されたクロック波形設定データ１４が、ディレイテスト回路１０Ａ、１０Ｂのそれぞれに設定される。例えば、ディレイテスト回路１０Ａには、クロック波形設定データ１４として”０１００”が設定され、ディレイテスト回路１０Ｂには、クロック波形設定データ１４として”００１０”が設定される；図１２（ａ）には、この場合のディレイテスト回路１０Ａ、１０Ｂの動作が図示されている。これにより、スキャンＦＦ６３Ａ、６３Ｂのクロック入力には、所望の時刻にクロックパルスが供給される。
【００９１】
図１２（ｂ）に示されているように、第１クロックツリー６２Ａの遅延時間が、第２クロックツリー６２Ｂよりもテスト基準クロック７４の１クロック周期だけ短い場合には、ディレイテスト回路１０Ａ、１０Ｂが同時にクロックパルスを出力するように決定されたクロック波形設定データ１４がディレイテスト回路１０Ａ、１０Ｂのそれぞれに設定される。例えば、ディレイテスト回路１０Ａ、１０Ｂには、いずれも、クロック波形設定データ１４として”００１０”が設定される；図１２（ｂ）には、この場合のディレイテスト回路１０Ａ、１０Ｂの動作が図示されている。これにより、スキャンＦＦ６３Ａ、６３Ｂのクロック入力には、所望の時刻にクロックパルスが供給される。
【００９２】
逆に、図１２（ｃ）に示されているように、第１クロックツリー６２Ａの遅延時間が、第２クロックツリー６２Ｂよりもテスト基準クロック７４の１クロック周期だけ長い場合には、ディレイテスト回路１０Ｂがディレイテスト回路１０Ａよりもテスト基準クロック７４の２クロック周期だけ遅くクロックパルスを出力するように決定されたクロック波形設定データ１４がディレイテスト回路１０Ａ、１０Ｂのそれぞれに設定される。例えば、ディレイテスト回路１０Ａには、クロック波形設定データ１４として”０１００”が設定され、ディレイテスト回路１０Ｂには、クロック波形設定データ１４として”０００１”が設定される；図１２（ｃ）には、この場合のディレイテスト回路１０Ａ、１０Ｂの動作が図示されている。これにより、スキャンＦＦ６３Ａ、６３Ｂのクロック入力には、所望の時刻にクロックパルスが供給される。
【００９３】
以上に説明されているように、ディレイテスト回路１０Ａ、１０Ｂを内蔵する図１１の半導体集積回路は、所望のタイミングでクロックパルスを発生可能である。このように構成された図１１の半導体集積回路は、クロックドメイン間パス６４のａｔ−ｓｐｅｅｄテストを実行可能である。
【００９４】
２．第１変形例
図１１に示されている半導体集積回路においては、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延時間の差が大きい場合、ディレイテスト回路１０Ａ、１０Ｂから出力されるクロックパルスの出力タイミングの差を増大させる必要がある。クロックパルスの出力タイミングの差の上限は、ディレイテスト回路１０Ａ、１０Ｂに設定可能なクロック波形設定データ１４のビット数に依存している。例えば、クロック波形設定データ１４のビット数が４である場合、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延時間の差は、テスト基準クロック７４の３クロック周期まで許容される。
【００９５】
ディレイテスト回路１０Ａ、１０Ｂがクロックパルスを出力するタイミングの差を増大させる最も単純な方法は、ディレイテスト回路１０Ａ、１０Ｂの少なくとも一方について、それに供給されるクロック波形設定データ１４のビット数を増大させることである。クロック波形設定データ１４のビット数を増大させれば、クロックパルスの出力タイミングの調整範囲が広がり、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延の差が大きい場合でもクロックパルスの出力タイミングを適切に調節可能である。
【００９６】
しかし、複数のディレイテスト回路１０が半導体集積回路が組み込まれる場合に、特定のディレイテスト回路１０についてのみ、それに供給されるクロック波形設定データ１４のビット数を増大させることは、レイアウトの容易性の観点からは好ましくない。なぜなら、クロック波形設定データ１４のビット数を増大させることは、その特定のディレイテスト回路１０の構成を変更する必要性があるからである。具体的には、クロック波形設定データ１４のビット数が増大されたディレイテスト回路１０のクロック波形保持レジスタ１１、クロック波形レジスタ１２が保持するビット数を、クロック波形設定データ１４のビット数に合わせて増大させる必要がある。これは、当該特定のディレイテスト回路１０のみを別の設計にする必要性を生じさせ、ディレイテスト回路１０をハードマクロとして半導体集積回路に組み込むために好適でない。
【００９７】
図１３は、ディレイテスト回路１０Ａ、１０Ｂに保持可能なクロック波形設定データ１４のビット数を増大させずに、ディレイテスト回路１０Ａ、１０Ｂから出力されるクロックパルスの出力タイミングの差を増大させるための半導体集積回路の構成を示している。図１３の半導体集積回路では、クロック生成同期信号７３が活性化されてからディレイテスト回路１０Ａ、１０Ｂに供給されるクロック生成開始信号１９Ａ、１９Ｂのそれぞれが活性化されるまでの遅延時間に差が与えられ、これにより、クロックパルスの出力タイミングの最大値が増大されている。
【００９８】
より具体的には、図１３に示された半導体集積回路では、クロック生成同期信号７３からクロック生成開始信号１９Ａ、１９Ｂを生成するために異なる数のフリップフロップが使用されている。図１３の構成では、クロック生成開始信号１９Ａの生成は、単一のフリップフロップ６５Ａによって行われるのに対し、クロック生成開始信号１９Ｂの生成は、直列に接続された２つのフリップフロップ６５Ｂ−１、６５Ｂ−２がクロック生成開始信号１９Ｂを生成するために使用されている。
【００９９】
これにより、図１３の半導体集積回路は、ディレイテスト回路１０Ａ、１０Ｂがクロックパルスを出力するタイミングの差の最大値が、図１１の半導体集積回路よりも、テスト基準クロック７４の１クロック周期だけ増大されている。具体的には、図１１の半導体集積回路は、クロックパルスを出力するタイミングの差の最大値は３クロック周期であるのに対し、図１３の半導体集積回路では、４クロック周期である。このように、図１３の半導体集積回路では、ディレイテスト回路１０Ａ、１０Ｂが保持するクロック波形設定データ１４のビット数を増大させることなく、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延の差が大きい場合でもクロックパルスの出力タイミングを最適に調節することが可能になる。
【０１００】
図１４は、図１３の半導体集積回路の動作を示すタイミングチャートである。図１４に図示されている動作では、第１クロックツリー６２Ａの遅延時間が第２クロックツリー６２Ｂの遅延時間よりもテスト基準クロック７４の３クロック周期分だけ長いことが仮定されている。加えて、クロックドメイン間パス６４をテストするためには、スキャンＦＦ６３Ａのクロック入力にクロックパルスが供給されて以後、テスト基準クロック７４の１クロック周期だけ後の時刻において、スキャンＦＦ６３Ｂのクロック入力にクロックパルスが供給される必要があるとしよう。
【０１０１】
上記の要求を満足させるためには、ディレイテスト回路１０Ａに、クロック波形設定データ１４として”１０００”が設定され、ディレイテスト回路１０Ｂに、クロック波形設定データ１４として”０００１”が設定される。
【０１０２】
クロック波形設定データ１４の設定の後、クロック生成同期信号７３が活性化（本実施例では、”０”から”１”に設定）されると、テスト基準クロック７４の立ち上がりエッジに同期して、クロック生成開始信号１９Ａ、１９Ｂが順次に活性化される。ディレイテスト回路１０Ｂに供給されるクロック生成開始信号１９Ｂが活性化される時刻は、ディレイテスト回路１０Ａに供給されるクロック生成開始信号１９Ａが活性化された後、１クロック周期だけ後の時刻である。
【０１０３】
ディレイテスト回路１０Ａは、クロック生成開始信号１９Ａの活性化の後の最初のクロック周期において、クロックパルスを出力する。一方、ディレイテスト回路１０Ｂは、クロック生成開始信号１９Ｂの活性化の後の４番目のクロック周期、言い換えれば、クロック生成開始信号１９Ａの活性化の後の５番目のクロック周期において、クロックパルスを出力する。したがって、ディレイテスト回路１０Ｂがクロックパルスを出力する時刻は、ディレイテスト回路１０Ａがクロックパルスを出力する時刻よりも、テスト基準クロック７４の４クロック周期だけ遅い。これにより、スキャンＦＦ６３Ａ、６３Ｂのクロック入力には、所望の時刻にクロックパルスが供給される。
【０１０４】
クロック生成開始信号１９Ｂの生成に使用されるフリップフロップの数は、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延の差を補償するために必要な、ディレイテスト回路１０Ａ、１０Ｂから出力されるクロックパルスの出力タイミングの差に応じて決定される。例えば、ディレイテスト回路１０Ｂがクロックパルスを出力する時刻を、ディレイテスト回路１０Ａがクロックパルスを出力する時刻よりも、テスト基準クロック７４の５クロック周期だけ遅くするためには、クロック生成開始信号１９Ｂの生成に３つの直列に接続されたフロップフロップを使用すればよい。
【０１０５】
３．第２変形例
上述のディレイテスト回路１０の動作から明らかであるように、図１１に示されている半導体集積回路では、ディレイテスト回路１０Ａ、１０Ｂがクロックパルスを出力するタイミングの調整は、テスト基準クロック７４のクロック周期を単位として行われる。
【０１０６】
しかしながら、第１クロックツリー６２Ａ、第２クロックツリー６２Ｂの遅延の差は、クロック周期を単位としているとは限らないから、ディレイテスト回路１０Ａ、１０Ｂがクロックパルスを出力するタイミングは、より細かく調節可能であることが好ましい。
【０１０７】
図１５は、ディレイテスト回路１０Ａ、１０Ｂがクロックパルスを出力するタイミングをより細かく調節可能にするための半導体集積回路の構成を示す回路図である。図１５の構成では、ディレイテスト回路１０Ａに供給される入力ＰＬＬクロック２０Ａと、ディレイテスト回路１０Ｂに供給される入力ＰＬＬクロック２０Ｂとのうちの一方が、必要に応じて反転される。例えば入力ＰＬＬクロック２０Ｂを反転することは、入力ＰＬＬクロック２０Ｂを半クロック周期だけ遅延することと等価であるから、ディレイテスト回路１０Ｂがクロックパルスを出力するタイミングも、入力ＰＬＬクロック２０Ｂの反転によって半クロック周期だけ遅れる。同様に、入力ＰＬＬクロック２０Ａを反転させれば、ディレイテスト回路１０Ａがクロックパルスを出力するタイミングを、半クロック周期だけ遅らせることができる。
【０１０８】
より具体的には、入力ＰＬＬクロック２０Ａ、２０Ｂのうちの所望の一方を反転させるために、図１５の半導体集積回路では、ディレイテスト回路１０Ａに入力ＰＬＬクロック２０Ａを供給する経路にセレクタ６７Ａが設けられ、ディレイテスト回路１０Ｂに入力ＰＬＬクロック２０Ｂを供給する経路にセレクタ６７Ｂが設けられている。
【０１０９】
セレクタ６７Ａは、反転入力と非反転入力とを有しており、その両方がテスト基準クロック７４と第１ＰＬＬクロック７５Ａを選択するセレクタ６６Ａの出力に接続されている。セレクタ６７Ａの制御入力には第１クロック反転制御信号７７Ａが入力されており、セレクタ６７Ａは、第１クロック反転制御信号７７Ａに応答して反転入力と非反転入力との一方を選択する。具体的には、セレクタ６７Ａは、第１クロック反転制御信号７７Ａが活性化されると（本実施の形態では”１”に設定されると）に反転入力を選択し、セレクタ６６Ａから出力されるクロックを反転して出力する。一方、第１クロック反転制御信号７７Ａが非活性化されると（本実施形態では”０”に設定されると、セレクタ６７Ａは、非反転入力を選択して、セレクタ６６Ａから出力されるクロックをそのまま出力する。セレクタ６７Ａから出力されるクロックが、入力ＰＬＬクロック２０Ａとして使用される。
【０１１０】
セレクタ６７Ｂも、セレクタ６７Ａと同様の機能を有している。セレクタ６７Ｂは、反転入力と非反転入力とを有しており、その両方がテスト基準クロック７４と第２ＰＬＬクロック７５Ｂを選択するセレクタ６６Ｂの出力に接続されている。セレクタ６７Ｂの制御入力には第２クロック反転制御信号７７Ｂが入力されており、セレクタ６７Ｂは、第２クロック反転制御信号７７Ｂに応答して反転入力と非反転入力との一方を選択する。セレクタ６７Ｂは、第２クロック反転制御信号７７Ｂが活性化されると反転入力を選択し、セレクタ６６Ｂから出力されるクロックを反転して出力する。一方、第１クロック反転制御信号７７Ａが非活性化されると、セレクタ６７Ｂは、非反転入力を選択してセレクタ６６Ｂから出力されるクロックをそのまま出力する。
【０１１１】
このように、図１５の半導体集積回路は、入力ＰＬＬクロック２０Ａ、２０Ｂの一方を必要に応じて反転可能であるように構成され、これにより、クロックパルスを出力するタイミングが半クロック周期を単位として調節可能になっている。
【０１１２】
図１６は、クロックパルスの出力タイミングが半クロック周期を単位として調節されている場合の、図１５の半導体集積回路の動作を示すタイミングチャートである。図１６の動作では、クロックドメイン間パス６４をテストするためには、スキャンＦＦ６３Ａのクロック入力にクロックパルスが供給されて以後、テスト基準クロック７４の１クロック周期だけ後の時刻において、スキャンＦＦ６３Ｂのクロック入力にクロックパルスが供給される必要があると仮定されている。
【０１１３】
図１６（ａ）に示されているように、第１クロックツリー６２Ａの遅延時間が、第２クロックツリー６２Ｂよりもテスト基準クロック７４の半クロック周期だけ短い場合には、第２クロック反転制御信号７７Ｂが活性化され（本実施の形態では”１”に設定され）、更に、同一の値のクロック波形設定データ１４がディレイテスト回路１０Ａ、１０Ｂに設定される。例えば、ディレイテスト回路１０Ａ、１０Ｂの両方に、クロック波形設定データ１４として”００１０”が設定される；図１６（ａ）には、この場合のディレイテスト回路１０Ａ、１０Ｂの動作が図示されている。これにより、ディレイテスト回路１０Ｂからはディレイテスト回路１０Ａよりも半クロック周期だけ遅くクロックパルスが出力される。これにより、スキャンＦＦ６３Ａ、６３Ｂのクロック入力には、所望の時刻にクロックパルスが供給される。
【０１１４】
一方、図１６（ｂ）に示されているように、第１クロックツリー６２Ａの遅延時間が、第２クロックツリー６２Ｂよりもテスト基準クロック７４の半クロック周期だけ長い場合には、第２クロック反転制御信号７７Ｂが活性化され、更に、下記条件を満足するようなクロック波形設定データ１４がディレイテスト回路１０Ａ、１０Ｂに設定される：
（条件）
ディレイテスト回路１０Ａに設定されるクロック波形設定データ１４のデータビットＤｉ（ｉは１以上３以下のある数）、及び、ディレイテスト回路１０Ｂに設定されるクロック波形設定データ１４のデータビットＤｉ＋１が”１”であり、残りのデータビットは”０”である。
例えば、ディレイテスト回路１０Ａには、クロック波形設定データ１４として”０１００”が設定され、ディレイテスト回路１０Ｂには、クロック波形設定データ１４として”００１０”が設定される；図１６（ｂ）には、この場合のディレイテスト回路１０Ａ、１０Ｂの動作が図示されている。これにより、スキャンＦＦ６３Ａ、６３Ｂのクロック入力には、所望の時刻にクロックパルスが供給される。
【０１１５】
このように、図１５の半導体集積回路の構成によれば、クロックパルスを出力するタイミングを半クロック周期を単位として調節可能である。
【図面の簡単な説明】
【０１１６】
【図１】図１は、従来の半導体集積回路に内蔵されるＰＬＬ回路の動作を示すタイミングチャートである。
【図２】図２は、スキャンパスが組み込まれた半導体集積回路の構成の一例を示す概念図である。
【図３】図３は、本発明の実施の一形態のディレイテスト回路の構成を示す回路図である。
【図４】図４は、本実施の形態のディレイテスト回路に組み込まれるクロック波形保持レジスタの構成を示す回路図である。
【図５】図５は、本実施の形態のディレイテスト回路に組み込まれるクロック波形レジスタの構成を示す回路図である。
【図６】図６は、本実施の形態において、クロック波形保持レジスタにクロック波形設定データを設定する動作を説明するタイミングチャートである。
【図７】図７は、本実施の形態において、クロック波形レジスタにクロック波形設定データの各データビットを設定する動作を説明するタイミングチャートである。
【図８】図８は、本実施の形態において、ディレイテスト回路が出力クロックを出力する動作を説明するタイミングチャートである。
【図９】図９は、図３のディレイテスト回路を用いてマルチサイクルパスを試験可能なように構成された半導体集積回路の回路図である。
【図１０】図１０は、図９の半導体集積回路に組み込まれたディレイテスト回路の出力クロックの波形を示すタイミングチャートである。
【図１１】図１１は、図３のディレイテスト回路を２つ用いてクロックドメイン間パスを試験可能なように構成された半導体集積回路の構成を示す回路図である。
【図１２】図１２は、図１１の半導体集積回路の動作を示すタイミングチャートである。
【図１３】図１３は、図３のディレイテスト回路を２つ用いてクロックドメイン間パスを試験可能なように構成された半導体集積回路の他の構成を示す回路図である。
【図１４】図１４は、図１３の半導体集積回路の動作を示すタイミングチャートである。
【図１５】図１５は、図３のディレイテスト回路を２つ用いてクロックドメイン間パスを試験可能なように構成された半導体集積回路の更に他の構成を示す回路図である。
【図１６】図１６は、図１５の半導体集積回路の動作を示すタイミングチャートである。
【符号の説明】
【０１１７】
１０、１０Ａ、１０Ｂ：ディレイテスト回路
１１：クロック波形保持レジスタ
１１ａ：波形設定入力
１１ｂ：波形設定出力
１２：クロック波形レジスタ
１３：クロックゲーティング回路
１４：クロック波形設定データ
１５：テスタクロック
１６：クロック波形保持信号
１７：クロックゲーティング信号
１８：クロック波形設定信号
１９、１９Ａ、１９Ｂ：クロック生成開始信号
２０、２０Ａ、２０Ｂ：入力ＰＬＬクロック
２１、２１Ａ、２１Ｂ：ノーマルモード信号
２２：半周期遅れクロックゲーティング信号
３１１〜３１４：フリップフロップ
３２１〜３２４：セレクタ
３３１〜３３４：フリップフロップ
３４１〜３４４、３５１〜３５４：セレクタ
３６：フリップフロップ
３７：ＯＲゲート
３８：ＡＮＤゲート
４１：セレクタ
４２：クロックツリー
４３：被テスト回路
４４、４６、４８：スキャンＦＦ
４５、４７、４９：組み合わせ回路
５０：スキャンパス
５１：スキャンイネーブル信号
５２：シフトクロック
６１Ａ、６１Ｂ：セレクタ
６２Ａ、６２Ｂ：クロックツリー
６３Ａ、６３Ｂ：スキャンＦＦ
６４：クロックドメイン間パス
６５Ａ、６５Ｂ：フリップフロップ
６６Ａ、６６Ｂ、６７Ａ、６７Ｂ：セレクタ
７１：スキャンイネーブル信号
７２：シフトクロック
７３：クロック生成同期信号
７４：テスト基準クロック
７５Ａ：第１ＰＬＬクロック
７５Ｂ：第２ＰＬＬクロック
７６：ドメイン間テストモード信号
７７Ａ：第１クロック反転制御信号
７７Ｂ：第２クロック反転制御信号
１０１、１０３、１０５、１０７：スキャンＦＦ
１０２、１０４、１０６：組み合わせ回路
１０８：スキャンパス
【図１】
2006250923.tif 000003
【図２】
2006250923.tif 000004
【図３】
2006250923.tif 000005
【図４】
2006250923.tif 000006
【図５】
2006250923.tif 000007
【図６】
2006250923.tif 000008
【図７】
2006250923.tif 000009
【図８】
2006250923.tif 000010
【図９】
2006250923.tif 000011
【図１０】
2006250923.tif 000012
【図１１】
2006250923.tif 000013
【図１２】
2006250923.tif 000014
【図１３】
2006250923.tif 000015
【図１４】
2006250923.tif 000016
【図１５】
2006250923.tif 000017
【図１６】
2006250923.tif 000018