(57)【要約】【課題】半導体集積回路内部の発振回路を利用して検査を行う。【解決手段】半導体集積回路として、組合せ回路を有する組合せ回路部と、スキャンイネーブル信号に従って、クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路と、出力指令信号を受けた時刻から所定の期間経過後に、所定の数のパルスを生成して前記クロック信号として出力するクロック制御部とを備える。前記クロック制御部は、前記パルスを生成して出力する発振回路を有し、かつ、前記所定の数のパルスのうち、最後のパルスを、前記スキャンパス回路が値を入出力するためのアクティブエッジの直後の論理値を保って出力するように構成されている。【選択図】図１
2007120984.tif 000002
【特許請求の範囲】
【請求項１】
組合せ回路を有する組合せ回路部と、
スキャンイネーブル信号に従って、クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路と、
出力指令信号を受けた時刻から所定の期間経過後に、所定の数のパルスを生成して前記クロック信号として出力するクロック制御部とを備え、
前記クロック制御部は、
前記パルスを生成して出力する発振回路を有し、かつ、前記所定の数のパルスのうち、最後のパルスを、前記スキャンパス回路が値を入出力するためのアクティブエッジの直後の論理値を保って出力するように構成されている
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記クロック制御部から出力された前記クロック信号を、前記スキャンイネーブル信号に従って前記スキャンパス回路に出力するクロック停止制御回路を更に備え、
前記クロック制御部は、
前記最後のパルスのアクティブエッジとは逆のエッジのタイミングが、前記スキャンイネーブル信号の変化よりも遅くなるようにするものである
ことを特徴とする半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路において、
前記クロック停止制御回路は、
前記クロック信号のパルスの、前記スキャンパス回路とは逆のエッジに同期して、前記スキャンイネーブル信号に応じた値をラッチして出力するフリップフロップを有し、かつ、前記フリップフロップの出力に従って、前記クロック制御部から出力された前記クロック信号を、前記スキャンパス回路に出力するものである
ことを特徴とする半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路において、
前記クロック制御部は、
当該半導体集積回路の外部から入力されたテストクロック信号、又は前記クロック制御部から出力された前記クロック信号を選択して出力する選択部を有するものである
ことを特徴とする半導体集積回路。
【請求項５】
請求項４に記載の半導体集積回路において、
前記選択部は、
少なくとも前記スキャンイネーブル信号を用いて生成された、選択信号に従って、選択を行うものである
ことを特徴とする半導体集積回路。
【請求項６】
請求項１に記載の半導体集積回路において、
前記クロック制御部は、
前記出力指令信号を受けた時刻から、前記クロック信号を出力し始めるまでの期間の長さを制御する期間制御回路を有するものである
ことを特徴とする半導体集積回路。
【請求項７】
請求項６に記載の半導体集積回路において、
前記期間制御回路は、
入力された信号のパルス数をカウントするカウンタを有し、前記カウンタのカウント値が所定の値に達した場合に、このことを示す信号を出力するものである
ことを特徴とする半導体集積回路。
【請求項８】
請求項７に記載の半導体集積回路において、
前記期間制御回路は、
設定された値を保持して出力するシフトレジスタを更に有し、前記シフトレジスタの値を前記所定の値として用いるものである
ことを特徴とする半導体集積回路。
【請求項９】
請求項２に記載の半導体集積回路において、
前記クロック制御部は、
前記スキャンイネーブル信号を前記出力指令信号として用いるものである
ことを特徴とする半導体集積回路。
【請求項１０】
請求項９に記載の半導体集積回路において、
前記スキャンイネーブル信号が前記クロック停止制御回路に到達するよりも遅く、前記スキャンイネーブル信号が前記クロック制御部に到達するように、前記スキャンイネーブル信号を遅延させて出力する遅延回路を更に備える
ことを特徴とする半導体集積回路。
【請求項１１】
請求項１０に記載の半導体集積回路において、
前記遅延回路は、
組合せ回路素子を有するものであり、
前記組合せ回路素子の数は、前記スキャンイネーブル信号が前記クロック停止制御回路に到達するまでの信号経路上に備えられた組合せ回路の数よりも多い
ことを特徴とする半導体集積回路。
【請求項１２】
請求項１に記載の半導体集積回路において、
前記出力指令信号は、
当該半導体集積回路の外部から入力されている
ことを特徴とする半導体集積回路。
【請求項１３】
請求項１に記載の半導体集積回路において、
前記クロック制御部は、
当該半導体集積回路の外部から入力されたテストクロック信号に同期して動作するフリップフロップを備え、前記テストクロック信号を前記出力指令信号として用いるものである
ことを特徴とする半導体集積回路。
【請求項１４】
組合せ回路を有する組合せ回路部と、クロック信号を生成して出力する発振回路と、前記クロック信号を前記スキャンイネーブル信号に従って出力するクロック停止制御回路とを有する半導体集積回路を設計するステップと、
前記スキャンイネーブル信号が前記クロック停止制御回路に到達するよりも遅く、前記スキャンイネーブル信号が到達するように、前記スキャンイネーブル信号を遅延させて出力するための遅延回路を挿入するステップとを備えた
半導体集積回路の設計方法。
【請求項１５】
請求項１４に記載の半導体集積回路の設計方法において、
前記遅延回路は、
組合せ回路素子を有するものであり、
前記組合せ回路素子の数は、前記スキャンイネーブル信号が前記クロック停止制御回路に到達するまでの信号経路上に備えられた組合せ回路の数よりも多い
ことを特徴とする半導体集積回路の設計方法。
【請求項１６】
請求項１４に記載の半導体集積回路の設計方法において、
前記クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路を挿入するステップと、
前記発振回路に代えて、出力指令信号を受けた時刻から所定の期間経過後に所定の数のパルスを生成して前記クロック信号として出力するクロック生成部を挿入するステップとを更に備えた
ことを特徴とする半導体集積回路の設計方法。
【請求項１７】
請求項１６に記載の半導体集積回路の設計方法において、
当該半導体集積回路の外部から入力されたテストクロック信号、又は前記クロック生成部から出力されたクロック信号を選択して出力する選択部を挿入するステップを更に備えた
ことを特徴とする半導体集積回路の設計方法。
【請求項１８】
組合せ回路を有する組合せ回路部と、スキャンイネーブル信号に従って、クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路と、パルスを生成して出力する発振回路を有し、出力指令信号を受けた時刻から所定の期間経過後に、所定の数のパルスを生成して前記クロック信号として出力するクロック制御部と、前記クロック制御部から出力された前記クロック信号を、前記スキャンイネーブル信号に従って前記スキャンパス回路に出力するクロック停止制御回路とを備える半導体集積回路のスキャンテスト方式による検査方法であって、
前記半導体集積回路の外部から入力されたテストクロック信号に同期してテストデータを前記スキャンパス回路に入力するスキャンインステップと、
前記クロック制御部で生成されたクロック信号に同期して前記スキャンパス回路に前記組合せ回路部の出力をキャプチャさせるキャプチャステップと、
前記テストクロック信号に同期して、前記スキャンパス回路に取り込まれたテスト結果を出力するスキャンアウトステップとを備える
半導体集積回路の検査方法。
【請求項１９】
請求項１８に記載の半導体集積回路の検査方法において、
前記キャプチャを行った後、前記テストクロック信号の値を１に固定するステップと、
その後、前記テスト結果を出力するために前記テストクロック信号を前記スキャンパス回路に与える前に、前記テストクロック信号の値を０に戻すステップとを更に備える
ことを特徴とする半導体集積回路の検査方法。
【請求項２０】
請求項１８に記載の半導体集積回路の検査方法において、
前記スキャンインステップで、前記テストクロック信号の最後のパルスが入力され、その値が１になった後、その値をそのまま固定するステップと、
その後、前記テスト結果を出力するために前記テストクロック信号を前記スキャンパス回路に与える前に、前記テストクロック信号の値を０に戻すステップとを更に備える
ことを特徴とする半導体集積回路の検査方法。
【請求項２１】
請求項１８に記載の半導体集積回路の検査方法において、
ディレイテストを行う
ことを特徴とする半導体集積回路の検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、並びにその設計方法及び検査方法に関し、特に検査の質を向上させるための技術に関する。
【背景技術】
【０００２】
近年、半導体製造プロセスにおける微細化技術の急速な進歩によって、半導体集積回路の大規模化、複雑化が急激に進んでいる。これに伴って、半導体集積回路の検査が一層困難になっている。この問題に対処するために、半導体集積回路の検査を容易にする手段として、スキャンテストや組み込み自己テスト（BIST: Built-in Self Test）等を用いた設計方法が開発されている。このような方法の普及によって、縮退故障モデルで表される故障は、効率よく検査できるようになっている。縮退故障モデルで表される故障を検出する場合、故障検出の能力はクロック周波数に依存しない。このため、従来のスキャンテスト方式の検査を実施する際には、実際に半導体集積回路が使用される時（実動作時）のクロック周波数よりも低い周波数のクロック信号を使うことが一般的であった。
【０００３】
しかし、半導体集積回路の微細化の進行に伴って、実動作時に高い周波数のクロック信号を用いた場合における半導体集積回路の動作不良が増加している。この原因として、半導体素子や配線の微細化によって小さな欠陥の影響が現れやすくなっていること、半導体集積回路の各製造プロセスのばらつきによって生じる品質のばらつきが、高い周波数のクロック信号の使用によって顕在化していること、製造工程の複雑化等が挙げられる。しかし、従来のスキャンテスト方式による検査は、このようなクロック周波数に依存する動作不良を検査するためには不十分である。このため、実動作時と同じ周波数のクロック信号を使用する検査（例えば、ディレイテスト、ＢＩＳＴ等）が必要となっている。
【０００４】
ディレイテストは、一般にスキャンテスト方式を用いて実施される。スキャンテスト方式では、シフト動作モードと通常動作モードとの２つの動作モードが組み合わされて実施される。縮退故障モデルで表される故障を検出するためには、従来のスキャンテスト方式の検査を実施する際の通常動作モードにおいて、１パルスを入力すればよい。しかし、ディレイテストにおける通常動作モードでは、２パルスを入力することが必要であり、更にこの２パルスのクロック周波数は、実動作時のクロック周波数と同じであることが求められる。また、ＢＩＳＴを実施する際にも、クロック周波数に依存する不良を検査するためには、ＢＩＳＴ回路を含む半導体集積回路へ、実際に半導体集積回路を使用するクロック周波数でパルスを入力する必要がある。
【０００５】
上記の要求を満たすために、半導体集積回路の内部に、実動作時に使用されるＰＬＬ（Phase Locked Loop）等の発振回路を内蔵している場合であっても、一定のクロック周波数の検査用クロック信号（テストクロック信号）を供給する回路（例えば、テスタ）を半導体集積回路の外部に別途設けることが行われている。検査時には、発振回路からの信号に代えて、外部のテスタから供給された検査用クロック信号が、セレクタ等によって選択される。
【０００６】
しかし、半導体集積回路の高速化に伴い、実動作時と同じ周波数の検査用パルスを外部から供給することは非常に困難になってきている。例えば、半導体集積回路の実動作時のクロック周波数が１ＧＨｚである場合、この半導体集積回路に対して、実動作時と同じクロック周波数を使用するディレイテストやＢＩＳＴを実施する場合には、周波数１ＧＨｚの検査用クロック信号を供給することができる高速テスタが必要となる。しかしながら、実際には周波数１ＧＨｚのクロック信号を供給することが可能な高速テスタは非常に高価であり、コストの増大を招く。そこで、この問題を解決する方法として、検査時に高いクロック周波数が必要な場合は、半導体集積回路内部の発振回路から出力されるパルスを利用する方法が知られている（特許文献１参照）。
【０００７】
近年の半導体集積回路では、低消費電力設計への要求が非常に大きくなったため、クロックライン上に、一般にゲーティッドクロック回路と呼ばれる、クロック信号の動作又は停止を制御するためのクロック停止制御回路を備える場合が多くなっている。このゲーティッドクロック回路を備えた半導体集積回路における従来技術の問題点を、図を使って説明する。
【０００８】
図１は、半導体集積回路の例を示すブロック図である。図２３は、従来のクロック生成部９１２の構成を示すブロック図である。以下では、図１の半導体集積回路において、クロック生成部１２に代えてクロック生成部９１２を用いた場合（従来の半導体集積回路と称する）について、検査時の動作を説明する。この半導体集積回路は、クロック制御部１０と、組合せ回路部４０と、スキャンフリップフロップ５１，５２，５３，５４と、ゲーティッドクロック回路７０とを備えている。図４は、図１のゲーティッドクロック回路７０の構成の例を示すブロック図である。
【０００９】
最初に、従来の最も一般的な方法である、検査用に外部から供給されるクロック信号のみを用いたスキャン方式によるディレイテストの例について説明する。まず、クロック切替え端子ＣＬＳの値は１に固定される。これにより、セレクタ１４は常にテストクロック端子ＴＣＬに入力された、外部のテスタから供給されるクロック信号を選択する。このため、クロック生成部９１２の信号は全く用いられず、外部から供給されるクロック信号を常に用いて以後の検査動作が行われる。
【００１０】
ディレイテストは、縮退故障に対する一般的なスキャンテストと同様に、主にシフト動作とキャプチャ動作の２種類の動作で実施される。縮退故障に対するスキャンテストと唯一異なる点は、キャプチャ動作中にクロックパルスを１個ではなく、複数個（一般には２個）用いる点である。シフト動作とキャプチャ動作との切替えはスキャンイネーブル端子ＳＣＥＮの信号に従って行う。ここでは、スキャンイネーブル端子ＳＣＥＮの値が１のときにシフト動作を行い、０のときにキャプチャ動作を行うものとする。
【００１１】
シフト動作中には、すべてのスキャンフリップフロップにクロック信号を供給する必要があるので、スキャンフリップフロップ５３へのクロック信号を制御するゲーティッドクロック回路７０の出力端子ＧＣＫからは、常にクロック信号が出力される必要がある。すなわち、図４のフリップフロップ（ＦＦ）７４の端子Ｑの値は常に１に固定される必要がある。一方、キャプチャ動作中には、通常動作を行うので、スキャンフリップフロップ５３へのクロック信号の供給／停止制御は、ゲーティッドクロック回路７０の端子ＥＮに入力される信号に従って制御される必要がある。
【００１２】
図２４は、従来の半導体集積回路の検査時における波形を示すタイミング図であって、スキャンイネーブル端子ＳＣＥＮの信号変化タイミングへの要求が満たされた場合について示す図である。以上の動作を行うために、スキャンイネーブル端子ＳＣＥＮの信号変化タイミングへの要求事項は、図２４に示されているように、次の通りである。すなわち、スキャンイネーブル端子ＳＣＥＮの信号は、シフト動作→キャプチャ動作へ切替える場合は、「スキャンイネーブル立下げの要求タイミング範囲ＴＦ」内でレベルを低下させ、キャプチャ動作→シフト動作へ切替える場合は、「スキャンイネーブル立上げの要求タイミング範囲ＴＲ」内でレベルを上げなければならない。
【００１３】
図２５は、従来の半導体集積回路の検査時における波形を示すタイミング図であって、スキャンイネーブル端子ＳＣＥＮの信号変化タイミングへの要求が満たされなかった場合について示す図である。図２５では、キャプチャ動作→シフト動作へ切替える場合のみにおいて、スキャンイネーブル端子ＳＣＥＮの信号変化タイミングへの要求が満たされなかった例を示している。
【００１４】
キャプチャ動作中のゲーティッドクロック回路７０の端子ＧＣＫから出力されるクロック信号は、端子ＥＮの入力値が０であるので、停止した状態となっている。次にキャプチャ動作→シフト動作へ切替える際に、スキャンイネーブル端子ＳＣＥＮの０から１への信号変化タイミングが、２番目のキャプチャクロックの立下りよりも遅れてしまった場合、シフト動作に入っても相変わらずゲーティッドクロック回路７０の端子ＧＣＫの信号は停止した状態のままとなり、この状態はシフト動作の最初のクロック信号の立下りのタイミングまで継続する。その結果、シフト動作の最初のクロック信号がスキャンフリップフロップ５３に入力されないので、シフト動作において誤動作が発生する。
【００１５】
図２５に示されたようなスキャンイネーブル端子ＳＣＥＮの信号変化タイミングのずれの問題は、テスタからスキャンイネーブル端子ＳＣＥＮへ信号変化を入力するタイミングの調整によって回避することができる。ただし、スキャンイネーブル端子ＳＣＥＮからゲーティッドクロック回路７０の端子ＳＥＮ、又はスキャンイネーブル端子ＳＣＥＮからスキャンフリップフロップ５１〜５４の端子ＳＥまでの信号経路で生じる遅延は、製造ばらつきやテスト時の温度条件によって変化するので、これらの遅延が大きい場合や、テスト時のクロックの周波数が高い場合には、回避困難となる場合もある。
【特許文献１】特開２００３-１４８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
次に、高速な半導体集積回路に対する検査を行うため、特許文献１で示されているような、シフト動作時には検査用に外部から供給されるクロック信号を用い、キャプチャ動作時には半導体集積回路上のＰＬＬ等のクロック生成回路が出力するクロックを用いた、スキャン方式によるディレイテストの例を説明する。
【００１７】
図２６（ａ）は、従来の半導体集積回路の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬ９２２のパルスの値が０である期間内である場合について示す図である。図２６（ｂ）は、従来の半導体集積回路の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬ９２２のパルスの値が１である期間内である場合について示す図である。
【００１８】
まず、テストモード端子ＴＭＤは１に固定される。ディレイテストを実施する場合には、検査開始時に、まずクロック制御端子ＣＬＣＮＴを０にする。このとき、図２０のフリップフロップ９２５〜９２８の出力端子Ｑはすべて０になる（出力端子ＮＱはすべて１になる）ので、ＡＮＤゲート９３６の出力は０に固定される。
【００１９】
スキャンイン動作（シフト動作）を行う際には、スキャンイネーブル端子ＳＣＥＮ、及びクロック切替え端子ＣＬＳは１にする。この操作によって、セレクタ１４はテストクロック端子ＴＣＬの信号を選択する。テストクロック端子ＴＣＬには、クロック信号がテスタから直接供給される。また、スキャンフリップフロップ５１〜５４は端子ＳＩの値を選択するので、スキャンフリップフロップ５１〜５４は、テストクロック端子ＴＣＬから入力されたクロック信号に同期してシフト動作を行う。
【００２０】
シフト動作終了後に、スキャンフリップフロップ５１〜５４をキャプチャ動作に切替える際には、スキャンイネーブル端子ＳＣＥＮを０に切替える。スキャンイネーブル端子ＳＣＥＮの１から０への切替えタイミングについては、図２６（ａ），（ｂ）に示された「スキャンイネーブル立下げの要求タイミング範囲ＴＦ」で行う必要がある。また、クロック切替え端子ＣＬＳは０に切替える。この操作によって、セレクタ１４はクロック生成部９１２から出力される信号を選択する。また、スキャンフリップフロップ５１〜５４は、端子Ｄの値を選択するので、通常動作を行う。また、これらの操作と同時に、クロック制御端子ＣＬＣＮＴを１に切替える。
【００２１】
フリップフロップ９２５〜９２８は、ＰＬＬ９２２のクロック信号の立下りに同期して１を右側へシフトするので、クロック制御端子ＣＬＣＮＴを１に切替えた後、２番目のクロックパルスが立下がった直後に、ＡＮＤゲート９３６からＰＬＬ９２２のクロック信号が出力され始め、４番目のクロックパルスが立下がった直後に、ＡＮＤゲート９３６の出力は再び０に固定される。
【００２２】
ＰＬＬ９２２から出力されるパルスの位相は予測不能であるので、クロック切替え端子ＣＬＳの値を切替えたタイミングが偶然ＰＬＬ９２２のパルスが０である期間であれば、クロック生成部９１２のＡＮＤゲート９３６から出力されるパルスのタイミングは図２６（ａ）のようになり、一方、クロック切替え端子ＣＬＳの値を切替えたタイミングが偶然ＰＬＬ９２２のパルスが１である期間であれば、ＡＮＤゲート９３６から出力されるパルスのタイミングは図２６（ｂ）のようになる。図２６（ｂ）の場合には、図２６（ａ）の場合よりもＰＬＬ９２２のパルス１個分早くパルスが出力される。
【００２３】
スキャンフリップフロップ５１〜５４に取り込まれた検査結果をスキャンアウト動作（シフト動作）によって外部へ出力する際には、スキャンイン動作と同様に、スキャンイネーブル端子ＳＣＥＮを１に切替える。スキャンイネーブル端子ＳＣＥＮの０から１への切替えタイミングについては、図２６（ａ），（ｂ）に示した「スキャンイネーブル立上げの要求タイミング範囲ＴＲ」で行う必要がある。また、クロック切替え端子ＣＬＳは１にする。この操作によって、セレクタ１４は、テストクロック端子ＴＣＬのクロック信号を選択し、このクロック信号によって、スキャンフリップフロップ５１〜５４に取り込まれた値がスキャンアウト端子ＳＣＯから順次出力される。
【００２４】
ここで、シフト動作→キャプチャ動作の切替え時においては、図２４及び図２５の場合と同様であり、スキャンイネーブル端子ＳＣＥＮの１から０への切替えタイミング制約（図２６（ａ），（ｂ）に示された「スキャンイネーブル立下げの要求タイミング範囲ＴＦ」）を満たすことは可能である。しかし、キャプチャ動作→シフト動作の切替え時においては、図２６（ａ）と図２６（ｂ）とで「スキャンイネーブル立上げの要求タイミング範囲ＴＲ」が完全にずれていることからわかるように、図２６（ａ），（ｂ）の両方のケースを同時に満たすタイミング範囲は存在せず、スキャンイネーブル端子ＳＣＥＮの０から１への切替えタイミング制約を満たすことは原理的に不可能である。
【００２５】
したがって、図４のようなゲーティッドクロック回路を有する半導体集積回路においては、従来技術では、シフト動作時には検査用に外部から供給されるクロック信号を用い、キャプチャ動作時には半導体集積回路上のクロック生成回路が出力するクロックを用いたスキャン方式の検査を行うことができない、という問題があった。
【００２６】
本発明は、半導体集積回路が、クロック信号の出力を制御するためのクロック停止制御回路を有する場合であっても、半導体集積回路内部の発振回路を利用して、高性能テスタを用いずに高い周波数のクロック信号を用いた検査を実施できる半導体集積回路、並びにその設計方法及び検査方法を提供することを目的とする。
【課題を解決するための手段】
【００２７】
前記課題を解決するため、請求項１の発明が講じた手段は、半導体集積回路として、組合せ回路を有する組合せ回路部と、スキャンイネーブル信号に従って、クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路と、出力指令信号を受けた時刻から所定の期間経過後に、所定の数のパルスを生成して前記クロック信号として出力するクロック制御部とを備え、前記クロック制御部は、前記パルスを生成して出力する発振回路を有し、かつ、前記所定の数のパルスのうち、最後のパルスを、前記スキャンパス回路が値を入出力するためのアクティブエッジの直後の論理値を保って出力するように構成されているものである。
【００２８】
これによると、スキャンパス回路がキャプチャ動作を行う際に用いるクロック信号のうち、最後のパルスを立下げずに値を固定した状態を継続させるので、スキャンイネーブル信号が各回路部へ到達した後にクロックパルスを立下げるようにすることができる。このため、半導体集積回路がクロック信号を制御するためのクロック停止制御回路を有する場合であっても、クロック停止制御回路は、スキャンパス回路がシフトアウト動作を行うためのクロック信号を確実に出力することができる。したがって、キャプチャ動作の際に、半導体集積回路内で生成された実動作速度のクロック信号を使用することができるので、高速なテスタを用いることなくディレイテスト等を行うことができる。
【００２９】
請求項２の発明は、請求項１に記載の半導体集積回路において、前記クロック制御部から出力された前記クロック信号を、前記スキャンイネーブル信号に従って前記スキャンパス回路に出力するクロック停止制御回路を更に備え、前記クロック制御部は、前記最後のパルスのアクティブエッジとは逆のエッジのタイミングが、前記スキャンイネーブル信号の変化よりも遅くなるようにするものである。
【００３０】
請求項３の発明では、請求項２に記載の半導体集積回路において、前記クロック停止制御回路は、前記クロック信号のパルスの、前記スキャンパス回路とは逆のエッジに同期して、前記スキャンイネーブル信号に応じた値をラッチして出力するフリップフロップを有し、かつ、前記フリップフロップの出力に従って、前記クロック制御部から出力された前記クロック信号を、前記スキャンパス回路に出力するものである。
【００３１】
請求項４の発明では、請求項３に記載の半導体集積回路において、前記クロック制御部は、当該半導体集積回路の外部から入力されたテストクロック信号、又は前記クロック制御部から出力された前記クロック信号を選択して出力する選択部を有するものである。
【００３２】
請求項５の発明では、請求項４に記載の半導体集積回路において、前記選択部は、少なくとも前記スキャンイネーブル信号を用いて生成された、選択信号に従って、選択を行うものである。
【００３３】
請求項６の発明では、請求項１に記載の半導体集積回路において、前記クロック制御部は、前記出力指令信号を受けた時刻から、前記クロック信号を出力し始めるまでの期間の長さを制御する期間制御回路を有するものである。
【００３４】
請求項７の発明では、請求項６に記載の半導体集積回路において、前記期間制御回路は、入力された信号のパルス数をカウントするカウンタを有し、前記カウンタのカウント値が所定の値に達した場合に、このことを示す信号を出力するものである。
【００３５】
請求項８の発明では、請求項７に記載の半導体集積回路において、前記期間制御回路は、設定された値を保持して出力するシフトレジスタを更に有し、前記シフトレジスタの値を前記所定の値として用いるものである。
【００３６】
請求項９の発明では、請求項２に記載の半導体集積回路において、前記クロック制御部は、前記スキャンイネーブル信号を前記出力指令信号として用いるものである。
【００３７】
請求項１０の発明は、請求項９に記載の半導体集積回路において、前記スキャンイネーブル信号が前記クロック停止制御回路に到達するよりも遅く、前記スキャンイネーブル信号が前記クロック制御部に到達するように、前記スキャンイネーブル信号を遅延させて出力する遅延回路を更に備えるものである。
【００３８】
請求項１１の発明では、請求項１０に記載の半導体集積回路において、前記遅延回路は、組合せ回路素子を有するものであり、前記組合せ回路素子の数は、前記スキャンイネーブル信号が前記クロック停止制御回路に到達するまでの信号経路上に備えられた組合せ回路の数よりも多いことを特徴とする。
【００３９】
請求項１２の発明では、請求項１に記載の半導体集積回路において、前記出力指令信号は、当該半導体集積回路の外部から入力されていることを特徴とする。
【００４０】
請求項１３の発明では、請求項１に記載の半導体集積回路において、前記クロック制御部は、当該半導体集積回路の外部から入力されたテストクロック信号に同期して動作するフリップフロップを備え、前記テストクロック信号を前記出力指令信号として用いるものである。
【００４１】
請求項１４の発明は、半導体集積回路の設計方法として、組合せ回路を有する組合せ回路部と、クロック信号を生成して出力する発振回路と、前記クロック信号を前記スキャンイネーブル信号に従って出力するクロック停止制御回路とを有する半導体集積回路を設計するステップと、前記スキャンイネーブル信号が前記クロック停止制御回路に到達するよりも遅く、前記スキャンイネーブル信号が到達するように、前記スキャンイネーブル信号を遅延させて出力するための遅延回路を挿入するステップとを備えたものである。
【００４２】
請求項１５の発明では、請求項１４に記載の半導体集積回路の設計方法において、前記遅延回路は、組合せ回路素子を有するものであり、前記組合せ回路素子の数は、前記スキャンイネーブル信号が前記クロック停止制御回路に到達するまでの信号経路上に備えられた組合せ回路の数よりも多いことを特徴とする。
【００４３】
請求項１６の発明は、請求項１４に記載の半導体集積回路の設計方法において、前記クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路を挿入するステップと、前記発振回路に代えて、出力指令信号を受けた時刻から所定の期間経過後に所定の数のパルスを生成して前記クロック信号として出力するクロック生成部を挿入するステップとを更に備えたものである。
【００４４】
請求項１７の発明は、請求項１６に記載の半導体集積回路の設計方法において、当該半導体集積回路の外部から入力されたテストクロック信号、又は前記クロック生成部から出力されたクロック信号を選択して出力する選択部を挿入するステップを更に備えたものである。
【００４５】
請求項１８の発明は、組合せ回路を有する組合せ回路部と、スキャンイネーブル信号に従って、クロック信号に同期して前記組合せ回路部との間で値を入出力するスキャンパス回路と、パルスを生成して出力する発振回路を有し、出力指令信号を受けた時刻から所定の期間経過後に、所定の数のパルスを生成して前記クロック信号として出力するクロック制御部と、前記クロック制御部から出力された前記クロック信号を、前記スキャンイネーブル信号に従って前記スキャンパス回路に出力するクロック停止制御回路とを備える半導体集積回路のスキャンテスト方式による検査方法であって、前記半導体集積回路の外部から入力されたテストクロック信号に同期してテストデータを前記スキャンパス回路に入力するスキャンインステップと、前記クロック制御部で生成されたクロック信号に同期して前記スキャンパス回路に前記組合せ回路部の出力をキャプチャさせるキャプチャステップと、前記テストクロック信号に同期して、前記スキャンパス回路に取り込まれたテスト結果を出力するスキャンアウトステップとを備えるものである。
【００４６】
これによると、半導体集積回路内で生成された実動作速度のクロック信号を使用することができるので、高速なテスタを用いることなくディレイテスト等を行うことができる。
【００４７】
請求項１９の発明は、請求項１８に記載の半導体集積回路の検査方法において、前記キャプチャを行った後、前記テストクロック信号の値を１に固定するステップと、その後、前記テスト結果を出力するために前記テストクロック信号を前記スキャンパス回路に与える前に、前記テストクロック信号の値を０に戻すステップとを更に備えるものである。
【００４８】
請求項２０の発明は、請求項１８に記載の半導体集積回路の検査方法において、前記スキャンインステップで、前記テストクロック信号の最後のパルスが入力され、その値が１になった後、その値をそのまま固定するステップと、その後、前記テスト結果を出力するために前記テストクロック信号を前記スキャンパス回路に与える前に、前記テストクロック信号の値を０に戻すステップとを更に備えるものである。
【００４９】
請求項２１の発明は、請求項１８に記載の半導体集積回路の検査方法において、ディレイテストを行うものである。
【発明の効果】
【００５０】
以上説明したように、本発明によると、半導体集積回路がクロック信号を制御するためのクロック停止制御回路を有する場合であっても、半導体集積回路内で生成された、ディレイテストに必要な実動作速度のクロック信号を使用することができるので、高速なテスタを用いることなく、ディレイテストやＢＩＳＴ等の検査を行うことができる。
【発明を実施するための最良の形態】
【００５１】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００５２】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る半導体集積回路のブロック図である。図１の半導体集積回路１００は、クロック制御部１０と、組合せ回路部４０と、スキャンフリップフロップ５１，５２，５３，５４と、クロック停止制御回路としてのゲーティッドクロック回路７０とを備えている。クロック制御部１０は、クロック生成部１２と、選択部としてのセレクタ１４とを備えている。組合せ回路部４０は、ＡＮＤゲート４２を備えている。スキャンフリップフロップ５１〜５４は、スキャンパス回路を構成している。
【００５３】
ゲーティッドクロック回路７０は、スキャンフリップフロップ５３へのクロックの供給を制御している。スキャンイン端子ＳＣＩ、スキャンフリップフロップ５１、スキャンフリップフロップ５２、スキャンフリップフロップ５３、スキャンフリップフロップ５４、スキャンアウト端子ＳＣＯは、この順にデータを転送できるように接続されており、これらはスキャンチェーンを構成している。組合せ回路部４０は、スキャンフリップフロップ５１〜５４の出力信号の変化に応じて動作し、生成した信号をゲーティッドクロック回路７０等に出力する。
【００５４】
以下では、信号のレベルが高電位であるときに信号の論理値（単に値ともいう）が１であるとし、低電位であるときに信号の論理値が０であるとして説明するが、逆であってもよい。以下の例では、クロック制御部１０から出力されるクロック信号のパルスについては、信号の値が０から１に変化するエッジが、スキャンパス回路が値を入出力するためのアクティブエッジとなる。
【００５５】
図２は、図１のクロック生成部１２の構成の例を示すブロック図である。クロック生成部１２は、発振回路としてのＰＬＬ（Phase Locked Loop）２２と、フリップフロップ２５，２６，２７，２８と、インバータ３２と、ＯＲゲート３３，３７と、ＡＮＤゲート３４，３６とを備えている。ＰＬＬ２２は、クロック信号を生成して、フリップフロップ２５〜２８及びＡＮＤゲート３４に出力する。
【００５６】
フリップフロップ２５〜２７は、それぞれ、クロック端子ＣＫに入力されたクロック信号の立下りに同期して、データ端子Ｄの値を取り込んで出力端子Ｑから出力する。一方、フリップフロップ２８は、クロック端子ＣＫに入力されたクロック信号の立上りに同期して、データ端子Ｄの値を取り込んで出力端子Ｑから出力する。フリップフロップ２５〜２８は、リセット端子Ｒに０が入力されると、リセットされ、非同期に出力端子Ｑから値０を出力する。また、フリップフロップ２５のデータ端子Ｄは、電源と接続されているので、常に値１に固定されている。
【００５７】
図３は、図１のスキャンフリップフロップ５１の構成の例を示すブロック図である。スキャンフリップフロップ５２〜５４も、スキャンフリップフロップ５１と同様に構成されている。スキャンフリップフロップ５１は、セレクタ６２と、フリップフロップ６４とを備えている。
【００５８】
セレクタ６２は、端子ＳＥに与えられた信号が０（通常動作モード）のときには端子Ｄの信号を選択し、端子ＳＥに与えられた信号が１（スキャンシフト動作モード）のときには端子ＳＩの信号を選択し、フリップフロップ６４に出力する。フリップフロップ６４は、クロック端子ＣＫに与えられたクロック信号に同期して、セレクタ６２から与えられたデータを取り込んで、端子Ｑから出力する。
【００５９】
図４は、図１のゲーティッドクロック回路７０の構成の例を示すブロック図である。ゲーティッドクロック回路７０は、ＯＲゲート７２と、フリップフロップ７４と、ＡＮＤゲート７６とを備えている。
【００６０】
ゲーティッドクロック回路７０のスキャンイネーブル端子ＳＥＮには、スキャンイネーブル信号がスキャンイネーブル端子ＳＣＥＮを経由して与えられ、クロックイネーブル入力端子ＥＮには、クロック信号のＯＮ／ＯＦＦを制御する信号が与えられている。スキャンイネーブル信号は、スキャンテスト時のシフト動作／キャプチャ動作の切替えを行う信号である。ＯＲゲート７２は、これらの信号の論理和を求めて、フリップフロップ７４に出力する。フリップフロップ７４は、ゲーティッドクロック回路７０の端子ＣＫに与えられたクロックの立下りエッジにおいて、ＯＲゲート７２の出力を取り込み、これをＡＮＤゲート７６に出力する。
【００６１】
図５は、図１の半導体集積回路１００における検査方法の処理を示すフローチャートである。図６（ａ），（ｂ）は、図１の半導体集積回路１００の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬ２２のパルスの値が０である期間内である場合、及びＰＬＬ２２のパルスの値が１である期間内である場合についてそれぞれ示している。
【００６２】
以下では、特に示さない限り、クロック制御端子ＣＬＣＮＴに与えられるクロック制御信号をキャプチャクロックの出力指令信号として用いる。特に、クロック制御信号の値を１に切替えることが、出力指令信号に相当する。テストクロック端子ＴＣＬには、半導体集積回路１００の外部のテスタ等から、テストクロック信号が直接供給されている。以下では、ＰＬＬ２２が出力するクロック信号の周波数は、テストクロック信号の周波数の２倍であるとする。
【００６３】
通常動作時には、半導体集積回路１００におけるテストモード端子ＴＭＤ、クロック切替え端子ＣＬＳ、及びスキャンイネーブル端子ＳＣＥＮの値は０に固定される。このとき、図２のＯＲゲート３３の出力は１、ＡＮＤゲート３６の出力は０に固定されるので、ＯＲゲート３７は、ＰＬＬ２２が出力するクロック信号をそのまま出力する。また、セレクタ１４は、クロック生成部１２の出力を選択するので、スキャンフリップフロップ５１，５２，５４及びゲーティッドクロック回路７０には、ＰＬＬ２２から出力されたクロック信号がそのまま供給される。
【００６４】
ゲーティッドクロック回路７０は、端子ＥＮに入力される信号に応じて、クロック信号をスキャンフリップフロップ５３に供給する。スキャンフリップフロップ５１〜５４は、通常のフリップフロップとしての動作を行う。
【００６５】
検査時における半導体集積回路１００の動作について説明する。本実施形態では、例としてディレイテストを実施する場合について説明する。
【００６６】
図５のステップＳ１２では、スキャンフリップフロップ５１〜５４に供給するクロック信号を、外部から入力されるテストクロック信号に切替えるための処理を行う。すなわち、テストモード端子ＴＭＤを値１に固定し、クロック制御端子ＣＬＣＮＴには値０を与える。このとき、フリップフロップ２５〜２８は、いずれもリセットされてそれぞれの出力端子Ｑの値が０になり、ＡＮＤゲート３４，３６の出力の値が０になるので、クロック生成部１２はクロック信号の出力を停止し、端子ＣＫＯＵＴの値は０に固定される。また、クロック切替え端子ＣＬＳの値を１にする。この操作によって、セレクタ１２はテストクロック端子ＴＣＬに入力されたテストクロック信号を選択して出力する。
【００６７】
なお、ここでは、クロック制御端子ＣＬＣＮＴには、クロック切替え端子ＣＬＳに与えられる信号の反転信号が与えられており、２つの信号の変化のタイミングは同じであるとするが、異なるタイミングであってもよい。
【００６８】
ステップＳ１４では、シフト動作（スキャンイン動作）をするように切替えを行う。すなわち、スキャンイネーブル端子ＳＣＥＮに値１を与える。すると、スキャンフリップフロップ５１〜５４は、それぞれの端子ＳＩの値を選択して出力するようになる。
【００６９】
ステップＳ１６では、スキャンイン端子ＳＣＩに、テストデータを与える。すると、スキャンフリップフロップ５１〜５４は、テストクロック端子ＴＣＬから入力されたテストクロック信号に同期してテストデータを順次シフトする、スキャンイン動作を行う。いま、スキャンイン端子ＳＣＩから４つの値０，０，１，１が順次入力され、スキャンフリップフロップ５１〜５４に、値１，１，０，０がそれぞれ設定されたとする。
【００７０】
シフト動作の終了後、ステップＳ１８では、スキャンイネーブル端子ＳＣＥＮの値を０にして、スキャンフリップフロップ５１〜５４をキャプチャ動作をするように切替える。これにより、スキャンフリップフロップ５１〜５４は、それぞれの端子Ｄの値を選択して出力するようになる。ここで、スキャンイネーブル端子ＳＣＥＮの値の変更は、シフト動作中の最終クロックパルスが１である期間中に行う。
【００７１】
ステップＳ２０では、ＰＬＬ２２からのクロック信号への切替えを行い、キャプチャ動作を行う。すなわち、クロック切替え端子ＣＬＳの値を０にする。この操作によって、セレクタ１４は、クロック生成部１２から出力される信号を選択する。また、同時に、クロック制御端子ＣＬＣＮＴの値を１にする。フリップフロップ２５，２６は、クロック制御端子ＣＬＣＮＴの値を１にした後、クロック生成部１２の端子ＣＫＯＵＴからＰＬＬ２２のクロック信号が出力され始めるまでの期間を制御するために備えられている。
【００７２】
図２において、フリップフロップ２５〜２８は、値１を順に右側へシフトする。このとき、フリップフロップ２５〜２７は、ＰＬＬ２２が出力するクロック信号の立ち下がりに同期して、フリップフロップ２８は、ＰＬＬ２２のクロック信号の立ち上がりに同期して、シフトを行う。このため、図２の回路の場合、クロック制御端子ＣＬＣＮＴの値が１になった後において、ＰＬＬ２２の２番目のクロックパルスが立下がった直後に、クロック生成部１２の端子ＣＫＯＵＴからクロック信号が出力され始め、４番目のクロックパルスが立ち上がると、クロック生成部１２の端子ＣＫＯＵＴの値はそのまま１に固定される。
【００７３】
すなわち、クロック生成部１２の端子ＣＫＯＵＴからは、ＰＬＬ２２のクロック信号が２パルスだけ出力される。そのうち、１番目のパルスはＰＬＬ２２から出力された信号のパルスがそのまま出力されたものであり、２番目のパルスは、立上りまではＰＬＬ２２から出力された信号のパルスと同じであるが、そのまま値１に固定される変形されたパルスとなる（図６（ａ），（ｂ）参照）。
【００７４】
このとき、１番目のパルスによるスキャンフリップフロップ５１〜５４の値は、それぞれ１，０，Ｘ，１となり（Ｘは、組合せ回路部４０の構成に応じて変化する値）、スキャンフリップフロップ５２→ＡＮＤゲート４２→スキャンフリップフロップ５４という経路上に１→０の遷移が伝搬する。更に、２番目のパルスによって、スキャンフリップフロップ５４にこの経路上の遷移が取り込まれる。もしこの経路が正常であれば、遷移後の値０が取り込まれ、経路上に遅延故障があれば、遷移前の値１が取り込まれる。
【００７５】
ＰＬＬ２２から出力されるパルスの位相は予測不能であるので、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬ２２のパルスの値が０である期間内であれば、クロック生成部１２の端子ＣＫＯＵＴから出力されるパルスのタイミングは、図６（ａ）のようになる。一方、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬのパルスの値が１である期間内であれば、クロック生成部１２の端子ＣＫＯＵＴから出力されるパルスのタイミングは、図６（ｂ）のようになり、図６（ａ）の場合よりもＰＬＬ２２のパルス１個分程度早くなる。いずれの場合においても、クロック生成部１２は、ハザードを生じることなく、正確に２個のパルスを供給する。
【００７６】
ステップＳ２２では、シフト動作（スキャンアウト動作）をするように切替えを行う。すなわち、スキャンイネーブル端子ＳＣＥＮに値１を与える。すると、スキャンフリップフロップ５１〜５４は、それぞれの端子ＳＩの値を選択して出力するようになる。
【００７７】
ステップＳ２４では、スキャンフリップフロップ５１〜５４に供給するクロック信号を、外部から入力されるテストクロック信号に切替え、スキャンアウト動作を行う。すなわち、まず、ステップＳ２２でスキャンイネーブル端子ＳＣＥＮの値を変更してから所定の時間（図６（ａ），（ｂ）における時間差ｄ）経過後に、クロック制御端子ＣＬＣＮＴに値０を、クロック切替え端子ＣＬＳに値１を与える。このとき、フリップフロップ２５〜２８は、いずれもリセットされるので、クロック生成部１２の出力の値は０に変化し、固定される。セレクタ１４はテストクロック端子ＴＣＬに入力されるテストクロック信号を選択する。
【００７８】
スキャンイネーブル端子ＳＣＥＮの値を変更したタイミングと、クロック生成部１２から出力されるクロック信号の立下りタイミングとの間に時間差ｄが設けられているので、ゲーティッドクロック回路７０のフリップフロップ７４は、スキャンイネーブル端子ＳＣＥＮの変化後の値１を取り込むことができる。このため、フリップフロップ７４の出力は１へと変化し、フリップフロップ５３へシフトクロックを供給することが可能となる。
【００７９】
次に、ステップＳ２６では、他に適用すべきテストパターンが残っているか否かを判定する。他にテストパターンが残っていればステップＳ２８に進み、残っていなければステップＳ３０に進む。
【００８０】
ステップＳ２８では、テストクロック端子ＴＣＬから入力されたテストクロック信号に同期して、スキャンフリップフロップ５１〜５４に取り込まれたテスト結果をスキャンアウト端子ＳＣＯから出力し、同時に、スキャンイン端子ＳＣＩから次のテストデータを順次取り込むスキャンイン動作を行う。その後、ステップＳ１８に戻る。
【００８１】
ステップＳ３０では、テストクロック端子ＴＣＬから入力されたテストクロック信号に同期して、スキャンフリップフロップ５１〜５４に取り込まれたテスト結果をスキャンアウト端子ＳＣＯから出力する。更に、テスタにおいてテスト結果と期待値との比較を行い、組合せ回路部４０に不良があるかどうかをチェックし、処理を終了する。
【００８２】
図１の半導体集積回路は、キャプチャ動作からシフト動作へ切替える際に、スキャンイネーブル端子ＳＣＥＮの値を切替えるタイミングと、クロック制御端子ＣＬＣＮＴの値を切替えるタイミングとの間に、所定の時間差ｄを設けることができる。このため、ゲーティッドクロック回路７０のフリップフロップ７４は、安定してスキャンイネーブル端子ＳＣＥＮの変化後の値１を取り込むことができ、その結果、スキャンフリップフロップ５３へシフトクロックを供給することができる。
【００８３】
すなわち、図１の半導体集積回路１００によると、ゲーティッドクロック回路７０が含まれる場合であっても、半導体集積回路自身が備えるＰＬＬで生成した、ディレイテストに必要な実動作速度のクロックを使用して、スキャンテストを確実に行うことができる。したがって、高速なクロック信号を供給するための高速なテスタを用いる必要がない。
【００８４】
（第２の実施形態）
図７は、本発明の第２の実施形態に係る半導体集積回路のブロック図である。図７の半導体集積回路２００は、図１の半導体集積回路１００において、クロック制御部１０に代えてクロック制御部２１０を備えたものである。クロック制御部２１０は、クロック生成部２１２と、セレクタ１４とを備えている。クロック生成部２１２以外の構成要素は、第１の実施形態において説明したものと同様であるので、同一の参照記号を付してその説明を省略する。
【００８５】
図８は、図７のクロック生成部２１２の構成の例を示す回路図である。クロック生成部２１２は、図２のクロック制御部１２において、フリップフロップ２５，２６に代えて期間制御回路としてのカウンタ回路部２２４を備えたものである。
【００８６】
図９は、図８のカウンタ回路部２２４の構成の例を示す回路図である。カウンタ回路部２２４は、ｎビットのシフトレジスタ２８２と、ｎビットの幅をもつカウンタ２８４と、ｎビットの信号同士を比較する比較器２８５と、ＯＲゲート２８６と、ＲＳラッチ２８７とを備えている。
【００８７】
以下、図６〜図９を参照して、図７の半導体集積回路２００について説明する。カウンタ回路部２２４は、入力されたパルスの数が設定値に一致するか否かを検出する回路であって、設定値を２〜２nの範囲で自由に設定することができる。すなわち、テスト開始に先立って、半導体集積回路２００の端子ＣＣＬにクロック信号を入力するのと同期して、半導体集積回路２００の端子ＣＲＳに値を与えることによって、シフトレジスタ２８２に所望の値を書き込むことができる。
【００８８】
カウンタ２８４は、クロック制御端子ＣＬＣＮＴの値が１になると、ＰＬＬ２２から出力されるクロックパルスのカウントを開始する。カウンタ２８４は、クロックパルスの立下りに同期してカウントを行う。比較器２８５は、カウンタ２８４のカウントとシフトレジスタ２８２の出力とをビット毎に比較し、その結果をＯＲゲート２８６に出力する。カウンタ２８４のカウントが、シフトレジスタ２８２に書き込まれた値と等しくなると、比較器２８５が出力するｎビットの出力値のすべてのビットが０となるので、ＯＲゲート２８６の出力値が０となり、これによってＲＳラッチ２８７の出力値が１になる。
【００８９】
いま、シフトレジスタ２８２に書き込まれた値が「２」、すなわち、（ｂ1，ｂ2，…，ｂn-1，ｂn）＝（０，０，…，１，０）である場合には、カウンタ回路部２２４は、ＰＬＬ２２の２番目のパルスが立下った時に１を出力する。つまり、カウンタ回路部２２４は、図２のフリップフロップ２５及び２６が構成する回路と同様に動作するので、クロック生成部２１２は、クロック生成部１２と同様に、図６に示されたように動作する。
【００９０】
また、シフトレジスタ２８２に書き込む値を変えることによって、クロック制御端子ＣＬＣＮＴが０から１に変化した後、クロック生成部２１２からパルスが出力され始めるまでの期間を自由に制御することが可能となる。
【００９１】
図２のクロック生成部１２では、クロック制御端子ＣＬＣＮＴが０から１に変化した後、パルスの出力を開始するまでの期間を長くするためには、フリップフロップ２５，２６の他に同様のフリップフロップを追加する必要がある。このため、半導体集積回路の製造後に検査を実施する際には、この期間を変えることができない。これに対して、図８のクロック生成部２１２は、検査時に、この期間を自由に変更することが可能となる。
【００９２】
特に、ＰＬＬが非常に高速である場合には、検査の安定度を高める観点から、シフト動作からキャプチャ動作へ切替え後、スキャンフリップフロップ５１〜５４にクロックパルスを与えるまでに、マージンとしてある程度以上の期間を確保する必要が生じる場合がしばしばある。クロック生成部１２の場合には、検査の際にマージン不十分と判明してもマージンの変更ができないのに対して、本実施形態に係るクロック生成部２１２では、検査時にマージンの変更を自由に行うことができる。
【００９３】
なお、カウンタ回路部２２４において、カウンタ２８４、及びＲＳラッチ２８７のみを備え、カウンタ２８４の出力のうちの１ビットをＲＳラッチ２８７の端子Ｓに与えるようにしてもよい。これにより、検査時におけるマージンの変更機能は失われるが、例えばカウンタ２８４の出力の最下位から２番目のビットをＲＳラッチ２８７に出力すれば、クロック生成部１２におけるフリップフロップ２５，２６と同等の機能をカウンタ回路部２２４が実現することが可能である。
【００９４】
（第３の実施形態）
図１０は、本発明の第３の実施形態に係る半導体集積回路のブロック図である。図１０の半導体集積回路３００は、図１の半導体集積回路１００において、クロック制御部１０に代えてクロック制御部３１０を備えたものである。クロック制御部３１０は、クロック生成部３１２と、セレクタ１４とを備えている。クロック生成部３１２には、テストクロック端子ＴＣＬに与えられるテストクロック信号も入力されている。クロック生成部３１２以外の構成要素は、第１の実施形態において説明したものと同様であるので、同一の参照記号を付してその説明を省略する。
【００９５】
図１１は、図１０のクロック生成部３１２の構成の例を示す回路図である。クロック生成部３１２は、図２のクロック制御部１２において、フリップフロップ３２９を更に備えたものである。フリップフロップ３２９は、その出力をフリップフロップ２５〜２９のリセット端子に供給している。
【００９６】
図１２は、図１０の半導体集積回路３００における検査方法の処理を示すフローチャートである。図１３（ａ），（ｂ）は、図１０の半導体集積回路３００の検査時における波形を示すタイミング図であって、テストクロック端子ＴＣＬにクロックパルスを入力したタイミングが、ＰＬＬ２２のパルスの値が０である期間内である場合、及びＰＬＬ２２のパルスの値が１である期間内である場合についてそれぞれ示している。
【００９７】
検査時における半導体集積回路３００の動作について説明する。本実施形態では、例としてディレイテストを実施する場合について説明する。図１２のステップＳ３１２以外のステップは、図５を参照して説明したものと同様であるので、説明を省略する。ステップＳ２０においてクロック制御端子ＣＬＣＮＴの値を１にした時点では、フリップフロップ３２９の出力が０であるので、フリップフロップ２５〜２８は、まだ動作せず、いずれの出力も０のままである。
【００９８】
ステップＳ３１２において、外部のテスタからテストクロック端子ＴＣＬにテストクロック信号を１パルス入力する。ここでは、テストクロック信号は、クロック生成部３１２に対するトリガ信号として用いられる。テストクロック信号は、セレクタ１４では選択されないので、スキャンフリップフロップ５１〜５４へは直接影響しない。
【００９９】
この操作により、フリップフロップ３２９の端子Ｑの値が１へと変化するので、以後、フリップフロップ２５〜２７は、値１を順に右側へシフトする。このとき、フリップフロップ２５〜２７は、ＰＬＬ２２が出力するクロック信号の立ち下がりに同期して、フリップフロップ２８は、ＰＬＬ２２のクロック信号の立ち上がりに同期して、シフトを行う。
【０１００】
このため、図１１の回路の場合、クロック制御端子ＣＬＣＮＴの値が１になり、かつ、テストクロック信号のパルスが入力された後において、ＰＬＬ２２の２番目のクロックパルスが立下がった直後に、クロック生成部１２の端子ＣＫＯＵＴからクロック信号が出力され始め、４番目のクロックパルスが立ち上がると、クロック生成部１２の端子ＣＫＯＵＴの値はそのまま１に固定される。
【０１０１】
すなわち、クロック生成部１２の端子ＣＫＯＵＴからは、ＰＬＬ２２のクロック信号が２パルスだけ出力される。そのうち、１番目のパルスはＰＬＬ２２から出力された信号のパルスがそのまま出力されたものであり、２番目のパルスは、立上りまではＰＬＬ２２から出力された信号のパルスと同じであるが、そのまま値１に固定される変形されたパルスとなる（図１３（ａ），（ｂ）参照）。
【０１０２】
このような２つのパルスによるスキャンフリップフロップ５１〜５４の値の変化は、第１の実施形態と同様である。スキャンフリップフロップ５４には、スキャンフリップフロップ５２→ＡＮＤゲート４２→スキャンフリップフロップ５４という経路が正常であれば、遷移後の値０が取り込まれ、経路上に遅延故障があれば、遷移前の値１が取り込まれる。
【０１０３】
ＰＬＬ２２から出力されるパルスの位相は予測不能であるので、テストクロック端子ＴＣＬにクロックパルスを入力したタイミングが、ＰＬＬ２２のパルスの値が０である期間内であれば、クロック生成部３１２の端子ＣＫＯＵＴから出力されるパルスのタイミングは、図１３（ａ）のようになる。一方、テストクロック端子ＴＣＬにクロックパルスを入力したタイミングが、ＰＬＬ２２のパルスの値が１である期間内であれば、クロック生成部３１２の端子ＣＫＯＵＴから出力されるパルスのタイミングは、図１３（ｂ）のようになり、図１３（ａ）の場合よりもＰＬＬ２２のパルス１個分程度早くなる。いずれの場合においても、クロック生成部３１２は、ハザードを生じることなく、正確に２個のパルスを供給する。
【０１０４】
なお、キャプチャ動作においてテストクロック端ＴＣＬに入力するクロックパルスの数は１個であるとして説明したが、２個以上でもよい。その理由は、１番目のパルスしか有効ではないからである。そこで、テスト中には常にセレクタ１４がテストクロック端子ＴＣＬから入力されたテストクロック信号を選択するという前提で、シフト動作の際、及びキャプチャ動作の際ともに、テストクロック端子ＴＣＬにテストクロック信号を供給するようにテストパターンを構成しておき（すなわち、キャプチャ動作時には、テストクロック端子ＴＣＬからキャプチャクロックが２パルス入力される）、実際のテスト時には、上述のようにキャプチャ動作時にはセレクタ１４がクロック生成部３１２の出力を選択するようにするようにしてもよい。
【０１０５】
（第４の実施形態）
図１４は、本発明の第４の実施形態に係る半導体集積回路のブロック図である。図１４の半導体集積回路４００は、図１の半導体集積回路１００において、ＡＮＤゲート４８２を更に備えたものである。ＡＮＤゲート４８２には、スキャンイネーブル端子ＳＣＥＮに入力されたスキャンイネーブル信号と、テストモード端子ＴＭＤに与えられた信号とが入力されている。ＡＮＤゲート４８２以外の構成要素は、第１の実施形態において説明したものと同様であるので、同一の参照記号を付してその説明を省略する。
【０１０６】
図１５は、図１４の半導体集積回路４００における検査方法の処理を示すフローチャートである。検査時における半導体集積回路４００の動作について説明する。図１５において、ステップＳ１６，Ｓ２６，Ｓ２８，Ｓ３０は、図５を参照して説明したものと同様であるので、説明を省略する。
【０１０７】
ステップＳ４１２では、クロック制御部１２が出力するクロック信号を停止させる処理を行う。すなわち、テストモード端子ＴＭＤを値１に固定し、クロック制御端子ＣＬＣＮＴには値０を与える。図５を参照して説明したように、クロック生成部１２はクロック信号の出力を停止し、端子ＣＫＯＵＴの値は０に固定される。
【０１０８】
ステップＳ４１４の処理は、図５のステップＳ１４とほぼ同様である。ただし、スキャンイネーブル端子ＳＣＥＮに値１を与えると、ＡＮＤゲート４８２が１を出力するので、セレクタ１４は、テストクロック端子ＴＣＬに入力されたテストクロック信号を選択して出力するようになる。
【０１０９】
ステップＳ４１８では、スキャンイネーブル端子ＳＣＥＮの値を０にして、スキャンフリップフロップ５１〜５４をキャプチャ動作に切替える。これにより、スキャンフリップフロップ５１〜５４は、それぞれの端子Ｄの値を選択して出力するようになる。このとき、ＡＮＤゲート４８２の出力が０になるので、セレクタ１４は、クロック生成部１２が出力するクロック信号を選択して出力する。ここで、スキャンイネーブル端子ＳＣＥＮの値の変更は、テストクロック信号が１である期間中に行う。
【０１１０】
次に、クロック制御端子ＣＬＣＮＴの値を０から１に切替える。この時点よりＰＬＬ２２がクロックパルスを２個出力した後に、クロック生成部１２から２個のクロックパルスが出力され、キャプチャ動作が行われる。
【０１１１】
ステップＳ４２０では、テストクロック信号として値１をテストクロック端子ＴＣＬに入力する。キャプチャ動作中においては、テストクロック端子ＴＣＬの信号は回路の動作に全く影響を与えないので、ステップＳ４２０におけるテストクロック端子ＴＣＬへの信号入力タイミングは、他のクロック信号（クロック生成部１２の出力信号等）が１である期間内であってもよい。
【０１１２】
ステップＳ４２２の処理は、図５のステップＳ２２とほぼ同様である。ただし、スキャンイネーブル端子ＳＣＥＮに値１を与えると、ＡＮＤゲート４８２が１を出力するので、セレクタ１４は、テストクロック端子ＴＣＬに入力されたテストクロック信号を選択して出力するようになる。
【０１１３】
更に、クロック制御端子ＣＬＣＮＴの値を０へ切替える。クロック制御端子ＣＬＣＮＴの値の切替えは、原理的にはスキャンイネーブル端子ＳＣＥＮの値の０から１への切替えと同時でもよい。しかし、セレクタ１４による選択が、クロック生成部１２の出力からテストクロック信号へ切替わる前に、クロック生成部１２から出力されるクロック信号が立下がってしまうのを防ぐために、クロック制御端子ＣＬＣＮＴの値の切替えは、スキャンイネーブル端子ＳＣＥＮの値１への切替えよりも後に行う。
【０１１４】
ステップＳ４２４では、スキャンイネーブル端子ＳＣＥＮの値を１にしてから時間δの経過後であって、テスト結果を出力するためにテストクロック信号をスキャンパス回路に与える前に、テストクロック信号として値０をテストクロック端子ＴＣＬに入力する。このとき、セレクタ１４から出力される信号が立ち下がる。スキャンイネーブル端子ＳＣＥＮが１になるタイミングと、セレクタ１４から出力されるクロック信号の立下りタイミングとの間に時間差δが設けられることによって、ゲーティッドクロック回路７０中のフリップフロップ７４は、スキャンイネーブル端子ＳＣＥＮの変化後の値１を取り込むことができるので、その端子Ｑの値は１へと変化し、スキャンフリップフロップ５３へシフトクロックが入力されることが可能になる。
【０１１５】
セレクタ１４は、テストクロック端子ＴＣＬに入力されたテストクロック信号を選択しているので、このクロック信号によって、スキャンフリップフロップ５１〜５４に取り込まれた値がスキャンアウト端子ＳＣＯから順次出力される。
【０１１６】
図１６は、図１４の半導体集積回路４００が、図１５のフローチャートに従って検査を行う場合における波形を示すタイミング図である。図１６は、クロック制御端子ＣＬＣＮＴの０から１への信号変化が、ＰＬＬ２２のクロックが０のときに行われた場合について示している。この場合、クロック制御端子ＣＬＣＮＴの１への信号変化タイミングが、ＰＬＬ２２のクロックが１である期間内にはないので、その後、ＰＬＬ２２から２パルスが出力された後に、クロック生成部１２の端子ＣＫＯＵＴから２つのパルスが出力される。
【０１１７】
クロック制御端子ＣＬＣＮＴの０から１への信号変化タイミングが、ＰＬＬ２２のクロックが１である期間内にある場合については、図１６には示されていないが、他の実施の形態の説明から、この場合においても、クロック生成部１２の端子ＣＫＯＵＴから２つのパルスが正しく出力されることは明らかである。
【０１１８】
図１７は、図１４の半導体集積回路４００における検査方法の処理の他の例を示すフローチャートである。図１７の検査方法は、図１５の検査方法において、ステップＳ４１７を更に備え、ステップＳ４２０を備えないようにしたものである。
【０１１９】
すなわち、図１５では、ステップＳ４２０において、キャプチャ動作中にテストクロック端子ＴＣＬの値を立ち上げておいて、ステップＳ４２４において、シフト動作移行後にテストクロック端子ＴＣＬの値を立ち下げる。これに対して、図１７では、シフト動作中の最終クロックパルスがテストクロック端子ＴＣＬから入力される際に、クロック信号を立ち下げずにそのまま１に固定しておき（ステップＳ４１７）、ステップＳ４２４において、シフト動作移行後にテストクロック端子ＴＣＬの値を立ち下げる。図１７は、その他の点は、図１５と同様である。
【０１２０】
図１８は、図１４の半導体集積回路４００が、図１７のフローチャートに従って検査を行う場合における波形を示すタイミング図である。図１８は、クロック制御端子ＣＬＣＮＴの０から１への信号変化が、ＰＬＬ２２のクロックが０のときに行われた場合について示している。この場合、クロック制御端子ＣＬＣＮＴの１への信号変化タイミングが、ＰＬＬ２２のクロックが１である期間内にはないので、その後、ＰＬＬ２２から２パルスが出力された後に、クロック生成部１２の端子ＣＫＯＵＴから２つのパルスが出力される。
【０１２１】
クロック制御端子ＣＬＣＮＴの０から１への信号変化タイミングが、ＰＬＬ２２のクロックが１である期間内にある場合についても、同様にクロック生成部１２の端子ＣＫＯＵＴから２つのパルスが正しく出力される。
【０１２２】
図１４の半導体集積回路４００は、キャプチャ動作からシフト動作へ切替える際に、スキャンイネーブル端子ＳＣＥＮの値を切替えるタイミングと、セレクタ１４から出力されるクロック信号の立ち下がりタイミングとの間に、所定の時間差δを設けることができる。このため、ゲーティッドクロック回路７０のフリップフロップ７４は、安定してスキャンイネーブル端子ＳＣＥＮの変化後の値１を取り込むことができ、その結果、スキャンフリップフロップ５３へシフトクロックを供給することができる。
【０１２３】
すなわち、図１４の半導体集積回路４００によると、ゲーティッドクロック回路７０が含まれる場合であっても、半導体集積回路自身が備えるＰＬＬで生成した、ディレイテストに必要な実動作速度のクロックを使用して、スキャンテストを確実に行うことができる。したがって、高速なクロック信号を供給するための高速なテスタを用いる必要がない。
【０１２４】
（第５の実施形態）
図１９は、本発明の第５の実施形態に係る半導体集積回路のブロック図である。図１９の半導体集積回路５００は、図１の半導体集積回路１００において、遅延回路５８０と、インバータ５８８と、バッファ５９１，５９２とを更に備えたものである。遅延回路５８０は、バッファ５８３，５８４，５８５，５８６を備えている。バッファ５８３〜５８６、及びインバータ５８８は、直列に接続されている。
【０１２５】
バッファ５９１は、スキャンイネーブル端子ＳＣＥＮに与えられたスキャンイネーブル信号を、スキャンフリップフロップ５１〜５４、及びバッファ５９２にそのまま出力する。バッファ５９２は、入力された信号をそのままゲーティッドクロック回路７０に出力する。遅延回路５８０は、スキャンイネーブル信号を遅延させてインバータ５８８に出力し、インバータ５８８は、受け取った信号を反転してクロック生成部１２に出力する。遅延回路５８０、インバータ５８８、バッファ５９１，５９２以外の構成要素は、第１の実施形態において説明したものと同様であるので、同一の参照記号を付してその説明を省略する。
【０１２６】
本実施形態においては、スキャンイネーブル端子ＳＣＥＮに与えられたスキャンイネーブル信号をキャプチャクロックの出力指令信号として用いる。特に、スキャンイネーブル信号の値を０に切替えることが、出力指令信号に相当する。
【０１２７】
図２０は、図１９の半導体集積回路５００の検査時における波形を示すタイミング図である。図１９において、スキャンイネーブル端子ＳＣＥＮとクロック生成部１２の端子Ｒとは、遅延回路５８０を介して接続されている。遅延回路５８０によって生じる遅延はｄであるとする。一方、スキャンイネーブル端子ＳＣＥＮとゲーティッドクロック回路７０の端子ＳＥＮとの間も、バッファ５９１，５９２を介して接続されている。バッファ５９１，５９２によって生じる遅延をｄ’とする。また、ｄ’＜ｄであるとする。
【０１２８】
スキャンイネーブル端子ＳＣＥＮの値が１から０へ変化すると、遅延ｄだけ遅れてクロック生成部１２の端子Ｒへ値０から１への変化が伝搬し、この変化がトリガとなって、クロック生成部１２は端子ＣＫＯＵＴから２個のパルスを出力する。
【０１２９】
次に、スキャンイネーブル端子ＳＣＥＮの値が０から１へ変化すると、ゲーティッドクロック回路７０の端子ＳＥＮへは遅延ｄ’だけ遅れてこの変化が伝搬する。一方、クロック生成部１２の端子Ｒへは遅延ｄだけ遅れてこの変化が伝搬して、クロック生成部１２の端子ＣＫＯＵＴのクロック信号は立ち下がる。
【０１３０】
このとき、ゲーティッドクロック回路７０内のフリップフロップ７４は、（ｄ−ｄ’）のマージンをもって、端子ＳＥＮの値１を取り込むことができる。したがって、ゲーティッドクロック回路７０は、スキャンフリップフロップ５３へシフト動作時のクロックを適切に供給することができる。
【０１３１】
図１９の半導体集積回路５００によると、検査時において制御に必要な信号や入力端子の数を削減しながら、正しく動作を行うことができる。また、図１４の半導体集積回路４００のように、テストクロック端子ＴＣＬに与えるテストクロック信号のタイミングを調整する必要がないので、検査時の操作が容易になる。
【０１３２】
次に、図１９の半導体集積回路５００の設計方法について説明する。図２１は、図１９の半導体集積回路５００の設計方法の処理を示すフローチャートである。図２２は、図２１の設計方法の対象とされる半導体集積回路６００のブロック図である。図２２の半導体集積回路６００は、ＰＬＬ２２と、組合せ回路部４０と、ゲーティッドクロック回路７０と、フリップフロップ８１，８２，８３，８４と、バッファ５９１，５９２とを備えている。
【０１３３】
まず、図２２の半導体集積回路６００を設計する処理を行い、その後、図２１の処理を行う。図２１のスキャンパス回路挿入ステップＳ７２では、半導体集積回路６００に対して、スキャンフリップフロップ５１〜５４で構成されたスキャンパス回路を挿入する。
【０１３４】
このステップは、フリップフロップ６１〜６４を、スキャンフリップフロップ５１〜５４にそれぞれ置き換えるサブステップ、スキャンイン端子ＳＣＩ、及びスキャンアウト端子ＳＣＯの挿入を行うサブステップ、スキャンイン端子ＳＣＩ→スキャンフリップフロップ５１→スキャンフリップフロップ５２→スキャンフリップフロップ５３→スキャンフリップフロップ５４→スキャンアウト端子ＳＣＯというスキャンデータ経路を作成するための接続を行うサブステップ、スキャンイネーブル端子ＳＣＥＮとスキャンフリップフロップ５１〜５４の端子ＳＥとの間の接続を行うサブステップを含んでいる。
【０１３５】
クロック生成部挿入ステップＳ７４では、ＰＬＬ２２に代えて、クロック生成部１２と、インバータ５８８とを挿入する。更に、クロック生成部１２の端子Ｒをインバータ５８８を介してスキャンイネーブル端子ＳＣＥＮに接続し、クロック生成部１２のＴＥＳＴ端子をテストモード端子ＴＭＤに接続する。
【０１３６】
セレクタ挿入ステップＳ７６では、クロック切替え用のセレクタ１４を挿入する。更に、セレクタ１４の２つの入力端子に、クロック生成部１２の端子ＣＫＯＵＴと、テストクロック端子ＴＣＬとをそれぞれ接続し、セレクタ１４の選択信号を受け取る端子に、クロック切替え端子ＣＬＳを接続する。
【０１３７】
遅延回路ステップＳ７８では、スキャンイネーブル端子ＳＣＥＮからクロック生成部１２の端子Ｒへの経路上に、遅延回路５８０を挿入する。この際に、既にスキャンイネーブル端子ＳＣＥＮとゲーティッドクロック回路７０の端子ＳＥＮとの間に存在するバッファの数（ここでは２個）を考慮し、その個数よりも多くのバッファを遅延回路５８０として挿入する。ここでは、例として、バッファ５８３〜５８６の４個のバッファを挿入する。以上の処理により、図１９の半導体集積回路５００を得ることができる。
【０１３８】
図２１の各ステップにおいて、スキャンフリップフロップ等の回路の要素を表すデータはメモリ（図示せず）から供給され、得られた半導体集積回路５００のデータはこのメモリに書き込まれる。
【０１３９】
図２１の半導体集積回路の設計方法によると、スキャンイネーブル端子ＳＣＥＮから入力された信号が、ゲーティッドクロック回路７０の端子ＳＥＮよりも、クロック生成部１２の端子Ｒへ遅れて伝搬する必要があることを考慮して、遅延素子（バッファ）の挿入を行うので、図１９のように、正しく動作する半導体集積回路を生成することができる。
【０１４０】
なお、本実施形態では、遅延素子の例としてバッファを用いたが、インバータ、ＡＮＤゲート、ＯＲゲート等の他の組合せ回路素子を用いてもよい。
【０１４１】
また、ステップＳ７２，Ｓ７４，Ｓ７６は、本質的に常に必須の処理ではない。すなわち、他の手段（市販ＥＤＡツール、回路図入力等による手設計等）によって設計が行われ、スキャンチェーン回路、クロック生成部、クロック切替え回路等が既に含まれた半導体集積回路に対して、ステップＳ７８の処理を行うようにしてもよい。
【０１４２】
なお、第１、第３〜第５の実施形態において、フリップフロップ２６と同じフリップフロップを更に備え、これをフリップフロップ２５とフリップフロップ２６との間に直列に接続してもよい。すると、クロック制御端子ＣＬＣＮＴの値の０から１への変化、テストクロック端子ＴＣＬへのクロックパルス入力、又はスキャンイネーブル信号の値の１から０への変化の後に、クロック生成部からクロックが出力され始めるまでの期間を長くすることができる。
【０１４３】
同様に、フリップフロップ２５とフリップフロップ２６との間に直列に接続するフリップフロップの数を変えることにより、クロック生成部１２からクロックが出力され始めるまでの期間を任意に調整することも可能である。
【０１４４】
また、以上の各実施形態では、検査時の通常動作モードにおけるクロックパルス数が２個であるとして説明を行ったが、フリップフロップ２７と同じフリップフロップを更に備え、これをフリップフロップ２７とフリップフロップ２８との間に直列に接続してもよい。すると、検査時の通常動作モードにおけるクロックパルス数を３個とすることができ、検査時の通常動作モードにおいて３個のクロックパルスが必要とされるようなディレイテストを行うことができる。
【０１４５】
同様に、更に多くのフリップフロップを備え、フリップフロップ２７とフリップフロップ２８との間に直列に接続することによって、通常動作モードにおけるクロックパルスの数を任意に変えることができる。また、逆にフリップフロップ２７を取り除くことによって、キャプチャ動作におけるクロックパルスの数を１個にすることもできるので、本実施形態と同様の動作によって、一般的な縮退故障に対するスキャンテストを行うことも容易に可能である。
【０１４６】
また、以上の各実施形態では、スキャンフリップフロップ５１〜５４がクロックの立上りに同期して動作するフリップフロップであるとして説明を行ったが、これらのスキャンフリップフロップは、クロックの立下りに同期して動作するフリップフロップであってもよい。この場合、フリップフロップ２５〜２８，７４が、クロックの反対側のエッジに同期して動作するように（すなわち、フリップフロップ２５〜２７、７４がクロックの立上りに同期して動作し、フリップフロップ２８がクロックの立下りに同期して動作するように）すればよく、同様の効果を得ることができる。
【０１４７】
また、以上の各実施形態では、例としてＰＬＬを備える場合について説明を行ったが、これに代えて、ＤＬＬ（Delay Locked Loop）のような他の種類の発振回路や、半導体集積回路の外部から発振信号を供給されて、この信号を元にクロック信号を生成する逓倍器や分周期のような、ＰＬＬ以外の他の種類のクロック信号発生回路を備えるようにしてもよい。
【０１４８】
また、以上の各実施形態においては、半導体集積回路がゲーティッドクロック回路を有する場合を前提とした説明を行ったが、半導体集積回路がゲーティッドクロック回路を有していない場合でも、正しく動作することができる。したがって、本発明に係る半導体集積回路は、必ずしもゲーティッドクロック回路を有する必要はない。
【産業上の利用可能性】
【０１４９】
以上説明したように、本発明は、ディレイテストの際に、半導体集積回路内で生成したクロックを使用することができるので、実動作速度のクロックを用いたテストが必要な半導体集積回路について有用である。
【図面の簡単な説明】
【０１５０】
【図１】本発明の第１の実施形態に係る半導体集積回路のブロック図である。
【図２】図１のクロック生成部の構成の例を示すブロック図である。
【図３】図１のスキャンフリップフロップの構成の例を示すブロック図である。
【図４】図１のゲーティッドクロック回路の構成の例を示すブロック図である。
【図５】図１の半導体集積回路における検査方法の処理を示すフローチャートである。
【図６】（ａ）は、図１の半導体集積回路の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬのパルスの値が０である期間内である場合について示す図である。（ｂ）は、図１の半導体集積回路の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬのパルスの値が１である期間内である場合について示す図である。
【図７】本発明の第２の実施形態に係る半導体集積回路のブロック図である。
【図８】図７のクロック生成部の構成の例を示す回路図である。
【図９】図８のカウンタ回路部の構成の例を示す回路図である。
【図１０】本発明の第３の実施形態に係る半導体集積回路のブロック図である。
【図１１】図１０のクロック生成部の構成の例を示す回路図である。
【図１２】図１０の半導体集積回路における検査方法の処理を示すフローチャートである。
【図１３】（ａ）は、図１０の半導体集積回路の検査時における波形を示すタイミング図であって、テストクロック端子ＴＣＬにクロックパルスを入力したタイミングが、ＰＬＬのパルスの値が０である期間内である場合について示す図である。（ｂ）は、図１０の半導体集積回路の検査時における波形を示すタイミング図であって、テストクロック端子ＴＣＬにクロックパルスを入力したタイミングが、ＰＬＬのパルスの値が１である期間内である場合について示す図である。
【図１４】本発明の第４の実施形態に係る半導体集積回路のブロック図である。
【図１５】図１４の半導体集積回路における検査方法の処理を示すフローチャートである。
【図１６】図１４の半導体集積回路が、図１５のフローチャートに従って検査を行う場合における波形を示すタイミング図である。
【図１７】図１４の半導体集積回路における検査方法の処理の他の例を示すフローチャートである。
【図１８】図１４の半導体集積回路が、図１７のフローチャートに従って検査を行う場合における波形を示すタイミング図である。
【図１９】本発明の第５の実施形態に係る半導体集積回路のブロック図である。
【図２０】図１９の半導体集積回路の検査時における波形を示すタイミング図である。
【図２１】図１９の半導体集積回路の設計方法の処理を示すフローチャートである。
【図２２】図２１の設計方法の対象とされる半導体集積回路のブロック図である。
【図２３】従来のクロック生成部の構成を示すブロック図である。
【図２４】従来の半導体集積回路の検査時における波形を示すタイミング図であって、スキャンイネーブル端子ＳＣＥＮの信号変化タイミングへの要求が満たされた場合について示す図である。
【図２５】従来の半導体集積回路の検査時における波形を示すタイミング図であって、スキャンイネーブル端子ＳＣＥＮの信号変化タイミングへの要求が満たされなかった場合について示す図である。
【図２６】（ａ）は、従来の半導体集積回路の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬのパルスの値が０である期間内である場合について示す図である。（ｂ）は、従来の半導体集積回路の検査時における波形を示すタイミング図であって、クロック制御端子ＣＬＣＮＴの値を１に切替えたタイミングが、ＰＬＬのパルスの値が１である期間内である場合について示す図である。
【符号の説明】
【０１５１】
１０，２１０，３１０  クロック制御部
１４  セレクタ（選択部）
２２  ＰＬＬ（発振回路）
４０  組合せ回路部
５１〜５４  スキャンフリップフロップ
７０  ゲーティッドクロック回路（クロック停止制御回路）
７４，３２９  フリップフロップ
１００，２００，３００，４００，５００  半導体集積回路
２２４  カウンタ回路部（期間制御回路）
２８２  シフトレジスタ
２８４  カウンタ
５８０  遅延回路
Ｓ７２  スキャンパス回路挿入ステップ
Ｓ７４  クロック生成部挿入ステップ
Ｓ７６  セレクタ挿入ステップ
Ｓ７８  遅延回路ステップ
【図１】
2007120984.tif 000003
【図２】
2007120984.tif 000004
【図３】
2007120984.tif 000005
【図４】
2007120984.tif 000006
【図５】
2007120984.tif 000007
【図６】
2007120984.tif 000008
【図７】
2007120984.tif 000009
【図８】
2007120984.tif 000010
【図９】
2007120984.tif 000011
【図１０】
2007120984.tif 000012
【図１１】
2007120984.tif 000013
【図１２】
2007120984.tif 000014
【図１３】
2007120984.tif 000015
【図１４】
2007120984.tif 000016
【図１５】
2007120984.tif 000017
【図１６】
2007120984.tif 000018
【図１７】
2007120984.tif 000019
【図１８】
2007120984.tif 000020
【図１９】
2007120984.tif 000021
【図２０】
2007120984.tif 000022
【図２１】
2007120984.tif 000023
【図２２】
2007120984.tif 000024
【図２３】
2007120984.tif 000025
【図２４】
2007120984.tif 000026
【図２５】
2007120984.tif 000027
【図２６】
2007120984.tif 000028