(57)【特許請求の範囲】
【請求項１】
クロック信号を生成するクロック生成部、および外部からクロック出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、
上記クロック制御部から出力される出力クロック信号によって制御され、スキャンフリップフロップを含む内部回路とを備え、
上記スキャンフリップフロップは、スキャンテストの通常動作モード時は通常のフリップフロップとして動作し、スキャンテストのシフト動作モード時はスキャンチェーンの構成要素となり、
上記クロック制御部は、上記出力指令信号を受けた時刻からある期間が経過したときに、２パルス以上の所定のパルス数の上記出力クロック信号を上記内部回路に出力するように構成されており、
上記クロック制御部は、２パルス以上の上記所定のパルス数の上記出力クロック信号を出力した後に、上記出力クロック信号の出力を自動的に停止し、
上記クロック制御部は、クロック切替え信号に応じて、上記クロック生成部から生成された上記クロック信号、又は外部からの外部クロック信号を選択的に出力し、
上記クロック生成部から生成された２パルス以上の上記所定のパルス数の上記クロック信号は、スキャンテストのシフト動作モードには使用されず、スキャンテストの通常動作モードに使用されており、
上記外部クロック信号は、スキャンテストのシフト動作モードに使用されていることを特徴とする半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
上記クロック制御部は、あるパルス数の上記出力クロック信号を上記内部回路に出力した後、一定の論理値信号を上記内部回路に出力するように構成されていることを特徴とする半導体集積回路。
【請求項３】
クロック信号を生成するクロック生成部、および外部からクロック出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、
上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、
前記内部回路は、複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、組合せ回路とを有し、スキャンテストのシフト動作モード時は、前記スキャンチェーン内をシリアルにデータ転送し、通常動作時もしくはスキャンテストの通常動作モード時は、前記組合せ回路を介して、前記複数のスキャンフリップフロップ間でデータ転送するように構成されており、
上記クロック制御部は、上記出力指令信号を受けた時刻からある期間が経過したときに、２パルス以上の所定のパルス数の上記出力クロック信号を上記内部回路に出力するように構成されており、
上記クロック制御部は、２パルス以上の上記所定のパルス数の上記出力クロック信号を出力した後に、上記出力クロック信号の出力を自動的に停止し、
上記クロック制御部は、クロック切替え信号に応じて、上記クロック生成部から生成された上記クロック信号、又は外部からの外部クロック信号を選択的に出力し、
スキャンテストのシフト動作モードから通常動作モードに切替った時刻から所定の期間が経過した後に上記クロック生成部から生成された２パルス以上の上記所定のパルス数の上記クロック信号は、スキャンテストの通常動作モードに使用されており、
上記外部クロック信号は、スキャンテストのシフト動作モードに使用されていることを特徴とする半導体集積回路。
【請求項４】
請求項１乃至３のうちいずれか１項に記載の半導体集積回路において、
上記クロック信号の周波数は、上記外部クロック信号の周波数よりも高いことを特徴とする半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路およびその検査方法に関し、検査結果の信頼性向上に関する。
【０００２】
【従来の技術】
近年、半導体製造プロセスにおける微細化技術の急速な進歩によって、半導体集積回路の大規模化、複雑化が急激に進んでいる。これに伴って、半導体集積回路の検査が一層困難になっている。この問題に対処するために、半導体集積回路の検査を容易にする手段として、スキャンテスト方式や組み込み自己テスト方式（ＢＩＳＴ：Ｂｕｉｌｔ−ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）などによる設計方法が開発されている。これらの方法の普及によって、縮退故障モデルで表される故障は、効率よく検査できるようになっている。
【０００３】
縮退故障モデルで表される故障を検出する場合、故障検出の能力はクロック周波数に依存しない。このため、従来のスキャンテスト方式の検査を実施する際には、実動作クロック周波数よりも低いクロック周波数を使うことが一般的である。
【０００４】
しかし、半導体装置の微細化の進行に伴って、実際に半導体集積回路を使用する際（以下、「実動作時」と略す）に高いクロック周波数を用いて半導体装置を動作させた場合に、動作不良が増加している。これは、半導体装置の各製造プロセスにおける品質のばらつきが、高いクロック周波数の使用によって顕在化しているからである。しかし、従来のスキャンテスト方式を用いた検査は、このようなクロック周波数に依存する動作不良を検査するためには不十分である。この問題に対処するために、実動作時と同じクロック周波数を使用する検査（例えば、ディレイテスト、ＢＩＳＴ等）が必要となっている。
【０００５】
ディレイテストは、一般にスキャンテスト方式を用いて実施される。スキャンテスト方式では、シフト動作モードと通常動作モードとの２つの動作モードが組み合わされて実施される。縮退故障モデルで表される故障を検出するためには、従来のスキャンテスト方式の検査を実施する際の通常動作モードにおいて、１パルスを入力すればよい。しかし、ディレイテストにおける通常動作モードでは、２パルスを入力することが必要であり、さらにこの２パルスのクロック周波数は、実動作時のクロック周波数と同じであることが求められる。
【０００６】
また、ＢＩＳＴを実施する際にも、クロック周波数に依存する不良を検査するためには、ＢＩＳＴ回路を含む半導体集積回路へ、実際に半導体集積回路を使用するクロック周波数でパルスを入力する必要がある。
【０００７】
上記の要求を満たすために、従来は半導体集積回路の内部に、実動作時に使用する発振回路（ＰＬＬなど）を内蔵している場合であっても、一定のクロック周波数の検査用クロック信号（テストクロック）を供給する回路（例えば、テスタ）を半導体集積回路の外部に別途設けている。検査時には、セレクタなどを用いて発振回路からの入力に代えて、テスタからの入力に切替えることによって、外部から検査用パルスを供給している。
【０００８】
【発明が解決しようとする課題】
発振回路からのパルスの代わりに、セレクタなどを用いてテストクロック端子からの入力に切替えてディレイテストやＢＩＳＴを行なう場合、検査中は外部（例えば、テスタ）から検査用パルスを供給するために、実動作時のクロック周波数のパルスを供給することができるテスタが必要となる。
【０００９】
例えば、半導体集積回路の実動作時のクロック周波数が１ＧＨｚである場合、この半導体集積回路に対して、実動作時と同じクロック周波数を使用するディレイテストやＢＩＳＴを実施する場合には、１ＧＨｚの検査用クロック周波数を供給することができる高速テスタが必要となる。しかしながら、実際には１ＧＨｚのクロック周波数を供給することが可能な高速テスタは非常に高価であり、コストの増大を招く。
【００１０】
この問題を解決する方法として、検査時に高いクロック周波数が必要な場合は、半導体集積回路内部の発振回路から出力されるパルスを利用する方法が考えられる。しかし、発振回路から出力されるパルスの位相を、外部から知ることはできない。このため、従来の構成のまま半導体集積回路内部の発振回路を利用してディレイテストやＢＩＳＴを実施した場合、発振回路から出力されるパルスが不安定な波形となるおそれがある。以下、この不具合を、図を参照しながら説明する。
【００１１】
図２３は、従来の半導体集積回路を示す回路図である。図２３に示すように、半導体集積回路２０００は、テストクロック端子２００１、クロック切替え端子２００２、ＰＬＬ２００３、およびセレクタ２００４を備えるクロック制御部２００５と、フリップフロップ２００６および２００７を備えるテスト回路２００８とを有する。
【００１２】
図２４（ａ）および図２４（ｂ）は、テスト回路２００８を検査対象とするディレイテストを実施する際の、半導体集積回路２０００の各部の信号波形を示す図である。図２４（ａ）および図２４（ｂ）に示す各波形は、それぞれＰＬＬ２００３、テストクロック端子２００１、クロック切替え端子２００２、およびセレクタ２００４の信号波形である。ここでは、ＰＬＬ２００３のクロック周波数は、テストクロック端子２００１のクロック周波数の２倍である。つまり、ＰＬＬ２００３のクロック周波数は、テストクロック端子２００１のクロック周波数の半分である。
【００１３】
まず、従来の半導体集積回路２０００においてスキャンテスト方式を用いてディレイテストを行なう場合、シフト動作モードでは、クロック切替え端子２００２の出力信号を１に切替えて、低速度のテストクロック端子２００１からのパルスをテスト回路２００８へ供給する（図２４（ａ）および図２４（ｂ）の期間Ｓ１に相当）。
【００１４】
次に、通常動作モードに切替える（図２４（ａ）および図２４（ｂ）の時点Ｓ２に相当）。通常動作モードでは、半導体集積回路２０００の実動作時のクロック周波数が必要である。このため、クロック切替え端子２００２を０に切替えて、ＰＬＬ２００３からのクロック信号をテスト回路２００８へ供給する（図２４（ａ）および図２４（ｂ）の期間Ｓ３に相当）。このとき、テスト回路２００８へ供給されるパルス数は正確に２個でなければならない。従って、クロック切替え端子２００２を０に固定する時間は、ＰＬＬ２００３の２パルス分の時間とする。
【００１５】
図２４（ａ）は、通常動作モード中にテスト回路２００８へ供給されるパルス数が正確に２個である場合を示す。しかしながら、ＰＬＬ２００３から出力されるクロック信号の位相は、外部からわからない。このため、常に図２４（ａ）のように動作することは保証できない。
【００１６】
図２４（ｂ）は、ＰＬＬ２００３のクロック信号の位相が図２４（ａ）に示す場合とは異なり、通常動作モード中に供給されるパルス数が正確に２個でない場合を示す。図２４（ｂ）において、クロック切替え端子２００２の出力信号の論理値が１から０へ切替わった瞬間は、ＰＬＬ２００３の出力信号の論理値は１である。このため、セレクタ２００４からの出力信号の論理値も０から１へ変わり、幅の細いパルスＰ１が発生する。このことによって、通常動作モード中に３個のパルスが発生することになる。さらに、パルスは所定以上のパルス幅でなければ回路（具体的にはフリップフロップ２００６、２００７）の動作が保証されない。従って、図２４（ｂ）に示すような細い幅のパルスＰ１は、テスト回路２００８が誤動作する原因となり得る。つまり、検査結果の信頼性が非常に低くなる。
【００１７】
次に、従来の半導体集積回路２０００においてＢＩＳＴ方式によって検査を行なう場合を、図２５を参照しながら説明する。図２５は、テスト回路２００８に代えてＢＩＳＴ回路が設けられており、且つ、ＢＩＳＴ方式を実施する際の、半導体集積回路２０００の各部の信号波形を示す図である。図中の参照符号は、図２４と同じものを示す。ＰＬＬ２００３およびテストクロック端子２００１のクロック周波数も図２４と同じである。なお、ここではクロック切替え端子２００２をＢＩＳＴテスト開始信号として用いている。
【００１８】
まず、テストクロック端子２００１の出力信号の論理値を０に固定し、クロック切替え端子２００２の出力信号の論理値を１から０へ切替える（図２５（ａ）および図２５（ｂ）の時点Ｂ１に相当）。このことによって、ＢＩＳＴ回路が動作を開始する。
【００１９】
図２５（ａ）は、ＢＩＳＴ回路に供給されるパルスが正常な場合を示す。しかし、ディレイテストの場合と同様に、ＰＬＬ２０００から出力されるクロック信号の位相は、外部からわからないので、常に図２５（ａ）のようになることは保証できない。
【００２０】
図２５（ｂ）は、ＰＬＬ２００３のクロック信号の位相が、図２５（ａ）の場合とは異なり、ＢＩＳＴ回路に供給されるパルスに異常なパルスが含まれる場合を示す。図２５（ｂ）に示すように、クロック切替え端子２００２の出力信号の論理値が１から０へ切替わった瞬間（Ｂ１）は、ＰＬＬ２００３の出力信号の論理値が１である。このため、セレクタ２００４からの出力信号の論理値も０から１へ変わり、細いパルスＰ２が発生する。パルスは、所定以上のパルス幅でなければ回路の動作が保証されない。従って、図２５（ｂ）に示すような細いパルスＰ２は、ＢＩＳＴ回路が誤動作する原因となり得る。つまり、ＢＩＳＴ方式による検査結果を誤った値にしてしまう危険性がある。
【００２１】
上述のように、従来の構成では半導体集積回路内部の発振回路を用いてディレイテストやＢＩＳＴ方式による検査を実施することは適切ではない。
【００２２】
本発明の目的は、高いクロック周波数のテストクロックが必要とされる検査に好適な半導体集積回路およびその検査方法を提供することにある。
【００２３】
【課題を解決するための手段】
本発明の半導体集積回路は、クロック信号を生成するクロック生成部、および外部からクロック出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記クロック制御部は、上記出力指令信号を受けた時刻からある期間が経過したときに、上記出力クロック信号を上記内部回路に出力するように構成されている。
【００２４】
本発明によれば、クロック制御部が出力指令信号を受けた時刻から出力クロック信号を内部回路に出力するまでの期間を調節することによって、クロック制御部から出力される出力クロック信号として、クロック生成部から出力された完全な形のパルスを、半導体集積回路の実動作時のクロック周波数で確実に内部回路に供給することができる。
【００２５】
上記クロック制御部は、あるパルス数の上記出力クロック信号を上記内部回路に出力した後、一定の論理値信号を上記内部回路に出力するように構成されていることが好ましい。
【００２６】
このことによって、クロック制御部から出力される出力クロック信号を必要としない場合において、半導体集積回路の動作を安定化することができる。
【００２７】
上記内部回路は、検査入力データ発生部と、検査終了制御部と、検査結果解析部と、被検査回路部とを備え、上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号を用いて上記被検査回路部を検査するように構成されていてもよい。
【００２８】
このことによって、組み込み自己検査（ＢＩＳＴ）を行なうことができる。
【００２９】
上記検査終了制御部は、上記出力クロック信号のパルス数を検知する回路と、上記出力クロック信号のパルス数があるパルス数に達したときに、上記出力クロック信号の内部回路への出力を停止するための停止信号を出力する停止信号出力部とを備えることが好ましい。
【００３０】
このことによって、停止信号をモニターする検知器等を停止信号出力部に接続すると、出力クロック信号のパルス数があるパルス数に達したことを外部から知ることができる。従って、出力クロック信号の内部回路への出力を停止した後、直ちに検査結果の解析を行なうことができる。
【００３１】
上記クロック制御部は、上記停止信号出力部の停止信号をフィードバックして受けるように接続されており、上記停止信号出力部に上記停止信号が出力されたときに、一定の論理値信号を上記内部回路に出力するように構成されていることが好ましい。
【００３２】
このことによって、出力クロック信号のパルス数があるパルス数に達すると、上記クロック制御部は、内部回路に出力する信号を自動的に出力クロック信号から一定の論理値信号を内部回路に切替えることができる。従って、停止信号をモニターする検知器等を停止信号出力部に接続しなくとも、出力クロック信号の内部回路への出力を停止した後、検査結果の解析を行なうことができる。
【００３３】
上記検査終了制御部は、外部に検査を終了するための終了信号を出力する終了信号出力部をさらに備え、上記出力クロック信号の上記クロック制御部から上記内部回路への出力と、上記出力によって上記検査結果解析部に入力された結果の読み出しとの繰り返しを行ない、上記繰り返しの回数がある数に達した後、上記検査終了制御部が上記終了信号出力部に上記終了信号を出力するように構成されていることが好ましい。
【００３４】
このことによって、出力クロック信号のクロック制御部から内部回路への出力と、出力によって検査結果解析部に入力された結果の読み出しとを、自動的に繰り返して行なうことができる。
【００３５】
上記検査終了制御部は、第１数値入力部を有するレジスタと、上記出力クロック信号の内部回路への出力を停止するための停止信号を出力する停止信号出力部とを備え、上記クロック制御部から出力される上記クロック信号のパルス数が上記第１数値入力部の数値と一致したときに、上記停止信号を上記停止信号出力部に出力するように構成されていることが好ましい。
【００３６】
このことによって、ＢＩＳＴの際にクロック制御部から内部回路への出力される出力クロック信号のパルス数を、レジスタに任意に入力された数値通りに設定することができる。
【００３７】
上記検査終了制御部は、外部に終了信号を出力する終了信号出力部をさらに備え、上記レジスタは、第２数値入力部と、外部から任意の数値を入力可能な第３数値入力部とをさらに備え、上記出力クロック信号の上記クロック制御部から上記内部回路への出力と、上記出力によって上記検査結果解析部に入力された結果の読み出しと、上記読み出しに要したパルス数が、上記第２数値入力部の数値と一致したときの、上記停止信号の上記検査終了制御部から上記停止信号出力部への出力との繰り返しを行ない、上記出力クロック信号の出力、上記読み出しおよび上記停止信号の出力の繰り返しの回数が上記第３数値入力部の数値と一致したときに、上記検査終了制御部が検査終了信号を上記終了信号出力部に出力するように構成されていることが好ましい。
【００３８】
このことによって、検査結果解析部に入力された結果の読み出しに要するパルス数をレジスタに入力された数値通りに設定することができ、出力クロック信号の出力、読み出しおよび停止信号の出力の繰り返しを、任意の回数に設定することができる。
【００３９】
上記第１数値入力部と、上記第２数値入力部とは、外部から任意の数値を入力可能であってもよい。
【００４０】
上記第１数値入力部、上記第２数値入力部および上記第３数値入力部は、スキャンチェーンを構成しており、上記スキャンチェーンによって、数値を入力される構成としてもよい。
【００４１】
上記検査結果解析部は、上記被検査回路部の検査結果の実測値を格納する検査結果レジスタと、上記被検査回路部の検査結果の期待値を格納する期待値レジスタと、上記検査結果の実測値と上記検査結果の期待値とを比較する比較部を有することが好ましい。
【００４２】
パルス数、検査結果の読み出しに要する時間、繰り返し回数をあらかじめ定めておくことによって、自由に設定することができ、検査結果の解析を自動化することができる。また、検査結果に基づく故障の有無の判定を出力しながら、組込み自己検査を行なうことができる。
【００４３】
上記検査結果レジスタは、被検査回路部の検査結果の実測値を１ビットずつ出力する機能を備え、上記比較器は、１ビットずつ比較するように構成されていてもよい。
【００４４】
このことによって、故障判定を比較的小さな回路構成で容易に実現できる。
【００４５】
上記比較部は、１パルスのクロック信号の入力によって、上記検査結果レジスタから出力される実測値と上記期待値レジスタから出力される期待値とを一括して比較する機能を備えていてもよい。
【００４６】
このことによって、故障判定に要する時間を短縮できる。
【００４７】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記出力指令信号を受けた時刻からある期間が経過したときに、上記出力クロック信号を上記内部回路に出力するように構成されている半導体集積回路の検査方法であって、上記時刻以降では、上記出力クロック信号を用いて上記内部回路をスキャン方式によって検査する。
【００４８】
本発明によれば、クロック制御部が出力指令信号を受けた時刻から出力クロック信号を内部回路に出力するまでの期間を調節することによって、クロック制御部から出力される出力クロック信号として、クロック生成部から出力された完全な形のパルスを、半導体集積回路の実動作時のクロック周波数で確実に内部回路に供給することができるので、クロック周波数に依存する動作不良をスキャン方式で検査する場合の通常動作モードに必要な実動作時の周波数のパルスを使用できる。
【００４９】
上記クロック制御部は、外部からテストクロック信号を受けるテストクロック信号入力部をさらに有し、上記スキャン方式を用いる半導体集積回路の検査は、上記時刻以前には、上記クロック制御部が出力クロック信号として上記テストクロック信号を上記内部回路に出力するスキャン方式によるディレイテストであってもよい。
【００５０】
上記出力指令信号は、論理値の立上りまたは立下りであってもよい。
【００５１】
上記出力指令信号は、一定の論理値に維持されてもよい。
【００５２】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、検査入力データ発生部と、検査終了制御部と、検査結果解析部と、被検査回路部とを有し、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記内部回路の上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号によって上記被検査回路部を検査するように構成された半導体集積回路の検査方法であって、上記出力指令信号を受けた時刻から、上記クロック制御部が上記内部回路に出力する上記出力クロック信号のパルス数を設定するステップ（ａ）と、上記クロック制御部が、上記出力指令信号を受けた時刻からある期間が経過したときに、上記出力クロック信号を上記内部回路に出力するステップ（ｂ）と、上記ステップ（ａ）で設定された上記パルス数の上記出力クロック信号の入力が完了した以降に、上記検査結果解析部から検査結果を読み出すステップ（ｃ）とを含む。
【００５３】
本発明によれば、クロック制御部が出力指令信号を受けた時刻から出力クロック信号を内部回路に出力するまでの期間を調節することによって、クロック制御部から出力される出力クロック信号として、クロック生成部から出力された完全な形のパルスを、半導体集積回路の実動作時のクロック周波数で確実に内部回路に供給することができるので、クロック周波数に依存する動作不良を組み込み自己検査（ＢＩＳＴ）で検査する場合に必要な実動作時の周波数のパルスを使用できる。
【００５４】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、検査入力データ発生部と、終了信号出力部を有する検査終了制御部と、検査結果解析部と、被検査回路部とを有し、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記内部回路の上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号によって上記被検査回路部を検査するように構成された半導体集積回路の検査方法であって、上記出力指令信号を受けた時刻から、上記クロック制御部が上記内部回路に出力する上記出力クロック信号のパルス数を設定するステップ（ａ）と、上記出力指令信号を受けた時刻からある期間が経過したときに、上記クロック制御部が上記出力クロック信号を上記内部回路に出力するステップ（ｂ）と、上記ステップ（ａ）で設定された上記パルス数の上記出力クロック信号の入力が完了したときに、上記検査終了制御部が検査を終了するための終了信号を上記終了信号出力部に出力するステップ（ｃ）と、上記終了信号を受けた上記検査結果解析部から検査結果を読み出すステップ（ｄ）とを含む。
【００５５】
このことによって、故障判定に要する時間を短縮できる。
【００５６】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、検査入力データ発生部と、検査終了制御部と、検査結果解析部と、被検査回路部とを有し、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記内部回路の上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号によって上記被検査回路部を検査するように構成された半導体集積回路の検査方法であって、上記出力指令信号を受けた時刻からある期間が経過したときに、上記クロック制御部が上記出力クロック信号を上記内部回路に出力するステップ（ａ）と、上記検査結果解析部に入力された結果を読み出すステップ（ｂ）とを含み、上記ステップ（ａ）と上記ステップ（ｂ）とを繰り返す。
【００５７】
組み込み自己検査を繰り返し行なうことによって、故障診断の精度を高めることができる。
【００５８】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、検査入力データ発生部と、数値入力部を有するレジスタおよび停止信号出力部を備える検査終了制御部と、検査結果解析部と、被検査回路部とを有し、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記内部回路の上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号によって上記被検査回路部を検査するように構成された半導体集積回路の検査方法であって、上記出力指令信号を受けた時刻から、上記クロック制御部が上記内部回路に出力する上記出力クロック信号のパルス数を上記数値入力部に入力するステップ（ａ）と、上記出力指令信号を受けた時刻からある期間が経過したときに、上記クロック制御部が上記出力クロック信号を上記内部回路に出力するステップ（ｂ）と、上記クロック制御部から出力される上記クロック信号のパルス数が上記数値入力部の数値と一致したときに、上記出力クロック信号の内部回路への出力を停止するための停止信号を上記停止信号出力部に出力するステップ（ｃ）と、上記検査結果解析部から検査結果を読み出すステップ（ｄ）とを含み、上記ステップ（ａ）から（ｄ）までを、上記ステップ（ｄ）と同時に次の上記ステップ（ａ）を実行するように繰り返す。
【００５９】
検査結果の読み出しと同時に、次のクロック制御部が上記内部回路に出力する出力クロック信号のパルス数を数値入力部に入力するステップを開始することによって、検査に要する時間を短縮することができる。
【００６０】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、検査入力データ発生部と、検査終了制御部と、検査結果解析部と、被検査回路部とを有し、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記内部回路の上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号によって上記被検査回路部を検査するように構成された半導体集積回路の検査方法であって、上記出力指令信号を受けた時刻からある期間が経過したときに、上記クロック制御部が上記出力クロック信号を上記内部回路に出力するステップ（ａ）と、上記ステップ（ａ）によって上記検査結果解析部に入力された結果を読み出すステップ（ｂ）と、上記ステップ（ａ）と上記ステップ（ｂ）とを繰り返し、上記ステップ（ｂ）において読み出された上記結果に不良が確認された時点で半導体集積回路の検査を終了するステップ（ｃ）とを含む。
【００６１】
読み出された結果に不良が確認された時点で半導体集積回路の検査を終了することによって、検査時間を短縮することができる。
【００６２】
本発明の半導体集積回路の検査方法は、クロック信号を生成するクロック生成部、および外部から出力指令信号を受ける出力指令信号入力部を有するクロック制御部と、検査入力データ発生部と、終了信号出力部を備える検査終了制御部と、検査結果解析部と、被検査回路部とを有し、上記クロック制御部から出力される出力クロック信号によって制御される内部回路とを備え、上記内部回路の上記検査入力データ発生部と、上記検査終了制御部と、上記検査結果解析部とは、上記出力クロック信号によって上記被検査回路部を検査するように構成された半導体集積回路の検査方法であって、上記出力指令信号を受けた時刻からある期間が経過したときに、上記クロック制御部が上記出力クロック信号を上記内部回路に出力するステップ（ａ）と、上記検査結果解析部に入力された結果を読み出すステップ（ｂ）とを含み、上記ステップ（ａ）と上記ステップ（ｂ）とを繰り返し、上記繰り返しの回数がある数に達すると、上記検査終了制御部が上記終了信号出力部に終了信号を出力した後に、上記ステップ（ｂ）において読み出された上記結果に基づいて故障診断を行なうステップ（ｃ）とを含む。
【００６３】
読み出された結果に不良が確認されたとしても検査を繰り返し行なうことによって、得られた検査結果から回路中の故障個所を特定するための情報を得ることができる。
【００６４】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。簡単のため、各実施形態に共通する構成要素は、同一の参照符号で示す。
【００６５】
（実施形態１）
まず、本実施形態の半導体集積回路の構成を説明する。
【００６６】
図１は、本実施形態の半導体集積回路の回路図である。半導体集積回路１は、スキャンイネーブル端子２、スキャンイン端子３、スキャンアウト端子４、クロック制御部５、組合せ回路部８、スキャンフリップフロップ１０、１１および１２を備える。また、スキャンイン端子３、スキャンフリップフロップ１０、スキャンフリップフロップ１１、スキャンフリップフロップ１２、スキャンアウト端子４の順にそれぞれを接続することによって、スキャンチェーンが構成されている。
【００６７】
また、組合せ回路部８は、本実施形態では、ＡＮＤゲート９のみからなる構成となっている。
【００６８】
スキャンフリップフロップ１０、１１および１２は、図１に示すように、それぞれスキャンイネーブル端子ＳＥ、スキャンイン端子ＳＩ、クロック入力端子ＣＫ、データ入力端子Ｄ、および出力端子Ｑを備える。スキャンフリップフロップ１０、１１および１２のスキャンイネーブル端子ＳＥは、それぞれスキャンイネーブル端子２に接続されている。スキャンフリップフロップ１０、１１および１２のクロック入力端子ＣＫは、それぞれクロック制御部５に接続されている。スキャンフリップフロップ１０のおよび１１の出力端子Ｑは、共に組合せ回路部８の入力側に接続されている。スキャンフリップフロップ１０および１２のデータ入力端子Ｄは、組合せ回路部８の出力側に接続されている。スキャンフリップフロップ１１のデータ入力端子Ｄは、スキャンフリップフロップ１２の出力端子Ｑに接続されている。
【００６９】
図３は、図１におけるスキャンフリップフロップ１０、１１および１２の内部構成を示す回路図である。スキャンフリップフロップ１０、１１および１２は、クロック入力端子ＣＫ３、データ端子Ｄ３、および出力端子Ｑ３を備えるフリップフロップ３０１と、セレクタ３０２とを備える。フリップフロップ３０１のデータ端子Ｄ３は、セレクタ３０２に接続されている。フリップフロップ３０１の出力端子Ｑ３は、スキャンフリップフロップ１０（１１および１２）の出力端子Ｑに接続されている。また、フリップフロップ３０１のクロック入力端子ＣＫ３は、スキャンフリップフロップ１０（１１および１２）のクロック入力端子ＣＫに接続されている。セレクタ３０２は、スキャンフリップフロップ１０（１１および１２）のスキャンイネーブル端子ＳＥ、スキャンイン端子ＳＩ、およびデータ端子Ｄに接続されている。
【００７０】
フリップフロップ３０１は、クロック入力端子ＣＫ３に与えられたクロック信号に同期して、データ端子Ｄ３に与えられた信号の論理値を取り込む。取り込まれた値は、出力端子Ｑ３へ出力される。セレクタ３０２は、スキャンイネーブル端子ＳＥの信号の論理値が０（通常動作モード）の場合、データ端子Ｄの信号を選択し、スキャンイネーブル端子ＳＥの信号の論理値が１（シフト動作モード）の場合、スキャンイン端子ＳＩ端子の信号を選択する。
【００７１】
クロック制御部５は、図１に示すように、クロック生成部６、セレクタ７、クロック制御端子１３、テストモード端子１４、テストクロック端子１５、クロック切替え端子１６とを備える。図１に示すクロック制御部５およびクロック生成部６のさらに詳しい回路図を図２に示す。図２に示すように、クロック生成部６は、ＰＬＬ２０４、フリップフロップ２０５、２０６、２０７および２０８、ＡＮＤゲート２０９、ＯＲゲート２１０および２１１、ならびにインバータ２１２を備える。
【００７２】
ＰＬＬ２０４は、ＡＮＤゲート２０９と、フリップフロップ２０５〜２０８の各クロック入力端子ＣＫ２に接続されている。
【００７３】
フリップフロップ２０５、２０６、２０７および２０８は、それぞれのデータ端子Ｄ２と出力端子Ｑ２とが互いに接続されて直列に配置されている。但し、フリップフロップ２０５のデータ端子Ｄ２は、電源にのみ接続されており、フリップフロップ２０６の出力端子Ｑ２は、分岐してＯＲゲート２１０と接続されている。また、フリップフロップ２０８の出力端子Ｑ２にはなにも接続されておらず、フリップフロップ２０８の出力端子ＮＱ２は、ＯＲゲート２１１と接続されている。また、フリップフロップ２０５、２０６、２０７および２０８のそれぞれのリセット端子Ｒ２は、クロック制御端子１３に接続されている。
【００７４】
インバータ２１２は、入力側がテストモード端子１４に、出力側がＯＲゲート２１０および２１１のそれぞれに接続されている。
【００７５】
ＡＮＤゲート２０９は、入力側がＰＬＬ２０４、ＯＲゲート２１０および２１１のそれぞれに接続されており、出力側がセレクタ７に接続されている。
【００７６】
セレクタ７は、入力側がＡＮＤゲート２０９と、テストクロック端子１５と、クロック切替え端子１６とに接続されており、出力側が出力端子２１３に接続されている。
【００７７】
フリップフロップ２０５、２０６、２０７および２０８は、それぞれのクロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力する。出力端子ＮＱ２からは、出力端子Ｑ２の反転値を出力する。リセット端子Ｒ２に０が入力されると、クロック入力端子ＣＫ２に入力されたクロック信号とは非同期で出力端子Ｑ２から信号値０が出力される。なお、フリップフロップ２０５のデータ端子Ｄ２は、電源と接続されている。このため、データ端子Ｄ２の入力値は常に１となっている。
【００７８】
次に、半導体集積回路１の検査方法を説明する。本実施形態では、半導体集積回路１の実動作クロック周波数よりも低いクロック周波数のテストクロックを供給するテスタを用いて、半導体集積回路１を検査する方法について説明する。なお、以下では、半導体集積回路１中の信号経路（スキャンフリップフロップ１１のＱ端子→ＡＮＤゲート９→スキャンフリップフロップ１２のＤ端子）および、信号経路の始点（スキャンフリップフロップ１１のＱ端子）において１から０への遷移に対するディレイテストの説明を行なう。本実施形態では、スキャン方式によるディレイテストを行なっているが、本発明はこれに限定されず、スキャン方式を用いる一般的な検査に適用できる。
【００７９】
図４は、本実施形態の半導体集積回路１を検査対象とするディレイテストを示すフローチャートである。図５は、図１の半導体集積回路１を検査対象とするディレイテストを実施する際の、半導体集積回路１の各端子における信号波形を示す図である。なお、図中の参照符号は、それぞれ図１および図２に示す参照符号に対応している。本実施形態では、ＰＬＬ２０４のクロック周波数は、テストクロック端子１５のクロック周波数の２倍である。つまり、テストクロック端子１５のクロック周波数は、ＰＬＬ２０４のクロック周波数の半分である。
【００８０】
まず、図４に示すように、ステップＳｔ１で検査を開始する。具体的には、半導体集積回路１に対してスキャンテスト方式によるディレイテストを行なう場合、テストモード端子１４における信号の論理値を１にする。なお、この値は検査中常に１に固定する。インバータ２１２によってこの値は０に変換される。このことによって、ＯＲゲート２１０および２１１から出力される信号の論理値は、それぞれフリップフロップ２０６のＱ２出力、フリップフロップ２０８のＮＱ２出力の値となる。
【００８１】
検査が開始されると、次に、図４に示すように、ステップＳｔ２において、ＰＬＬ２０４のクロック信号が出力されないようにする。具体的には、クロック制御端子１３に入力される信号の論理値を０にする。このとき、フリップフロップ２０５、２０６、２０７および２０８の出力端子Ｑから出力される信号の論理値はすべて０になる（逆に、出力端子ＮＱの信号の論理値はすべて１になる）。このため、ＡＮＤゲート２０９の出力は０に固定される。つまり、ＰＬＬ２０４のクロック信号は、セレクタ７から出力されない。
【００８２】
次に、図４に示すように、ステップＳｔ３では、シフト動作モードへ切替える。具体的には、シフト動作モードへの切替えを行なう際には、スキャンイネーブル端子２およびクロック切替え端子１６に入力される信号の論理値を１にする。特に、本実施形態では、スキャンイネーブル端子２とクロック切替え端子１６とは、同じ操作を行なう。この操作によって、セレクタ７は、テストクロック端子１５を選択する。この結果、クロック制御部５から、テスタからテストクロック端子１５を経て供給されたクロック信号が出力される。また、スキャンフリップフロップ１０〜１２は、ＳＩ端子に入力された信号の論理値を選択するようになる。
【００８３】
次に、図４に示すように、ステップＳｔ４では、テストクロック端子１５からのテストクロック信号を使って、スキャンインデータを入力する。このステップＳｔ４は、図５の期間Ｔ１に相当する。具体的には、テストクロック端子１５のクロック信号に同期して、スキャンイン端子３から、例えば０、１、１の順でスキャンインデータを入力すると、それぞれのデータがスキャンフリップフロップ１２、１１、１０の順でセットされる。このときの信号経路（スキャンフリップフロップ１１のＱ端子→ＡＮＤゲート９→スキャンフリップフロップ１２のＤ端子）上の信号の論理値は全て１である。
【００８４】
次に、図４に示すように、ステップＳｔ５では、通常動作モードへ切替える。このステップＳｔ５は、図５に示したＴ２の時点に相当する。具体的には、スキャンデータ入力終了後に、スキャンイネーブル端子２、クロック切替え端子１６に入力される信号の論理値を０にする。この操作によって、セレクタ７は、クロック生成部６から出力される信号を選択するようになる。また、スキャンフリップフロップ１０〜１２は、データ端子Ｄの信号の論理値を選択する。このため、半導体集積回路１は実動作時と同じ動作（通常動作）を行なう。
【００８５】
また、上記の操作と同時に、クロック制御端子１３に入力される信号の論理値を１に切替える。このことによって、図４に示すように、ステップＳｔ６では、セレクタ７からＰＬＬ２０４のクロック信号の出力を開始する。このステップＳｔ６は、図５の期間Ｔ３に相当する。以下にステップＳｔ６におけるクロック生成部６の動作を具体的に説明する。
【００８６】
まず、クロック制御端子１３に入力される信号の論理値が０のとき、フリップフロップ２０５〜２０８のそれぞれの出力端子Ｑ２から信号の論理値０が出力されている。クロック制御端子１３に入力される信号の論理値が１に切替わると、フリップフロップ２０５〜２０８は、それぞれのクロック入力端子ＣＫ２に入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力するようになる。フリップフロップ２０５では、データ端子Ｄ２における信号の論理値は常に１に固定されているので、クロック入力端子ＣＫ２に入力された立下り信号に同期して、出力端子Ｑ２から信号の論理値１を出力する。
【００８７】
次に、フリップフロップ２０６、２０７および２０８は、それぞれのクロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込む。取り込まれた値は、出力端子Ｑ２へ出力される。このため、クロック入力端子ＣＫ２に入力されるＰＬＬ２０４のクロック信号の立下り１つ毎に、出力端子Ｑ２における信号の論理値１がフリップフロップ２０５、２０６、２０７および２０８の順に伝わっていく。
【００８８】
フリップフロップ２０６の出力端子Ｑ２は、ＯＲゲート２１０を経てＡＮＤゲート２０９に接続されている。このため、上記の動作の結果、クロック生成部６は、図５の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて、ＰＬＬ２０４から出力されたパルスの２番目の立下りの直後に、ＡＮＤゲート２０９からＰＬＬ２０４のクロック信号を出力し始めるように動作する。
【００８９】
次に、図４に示すように、ステップＳｔ７では、セレクタ７からのクロック出力を停止する。フリップフロップ２０８の出力端子ＮＱ２は、ＯＲゲート２１１を経てＡＮＤゲート２０９に接続されている。このため、フリップフロップ２０８は、図５の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて４番目のＰＬＬ２０４から出力されたパルスの立下りの直後に出力端子ＮＱ２から信号の論理値０を出力し、ＡＮＤゲート２０９の出力信号の論理値が再び０に固定されるように動作する。ＡＮＤゲート２０９の出力信号の論理値を再び０に固定することによって、検査に不要な出力クロック信号のパルスを除くことができるので、半導体集積回路の動作を安定化することができる。なお、上述のステップＳｔ６およびステップＳｔ７の動作からわかるように、図５の期間Ｔ３において、クロック制御端子１３、クロック切替え端子１６、スキャンイネーブル端子２における信号の論理値（それぞれ１、０、０）は、最低でもＰＬＬ２０４のクロック信号の４パルス分の間、固定しておく必要がある。
【００９０】
上記ステップステップＳｔ６およびステップＳｔ７の操作によって、通常動作モード期間中に、クロック生成部６はＰＬＬ２０４が発生したクロック信号のパルスを２個出力する。このうち、１個目のパルスによって、スキャンフリップフロップ１２、１１、１０における信号の論理値は、それぞれ順に１、０、１となり、信号経路（スキャンフリップフロップ１１のＱ端子→ＡＮＤゲート９→スキャンフリップフロップ１２のＤ端子）上に、信号の論理値１から０への遷移が発生する。続いて２個目のパルスによって、信号経路（スキャンフリップフロップ１１のＱ端子→ＡＮＤゲート９→スキャンフリップフロップ１２のＤ端子）上の遷移によって変化した信号の論理値が、スキャンフリップフロップ１２に取込まれる。このとき、スキャンフリップフロップ１２に取込まれる値は、回路が正常な場合は０であり、回路が故障している場合は１となる。
【００９１】
次に、図４に示すように、ステップＳｔ８では、シフト動作モードへ切替える。
このステップＳｔ８は、図５に示すＴ４の時点に相当する。具体的には、スキャンフリップフロップ１０〜１２に取り込まれた検査結果をスキャンアウト動作によって外部へ出力するために、スキャンイン動作と同様に、クロック制御端子１３に入力される信号の論理値を０にし、スキャンイネーブル端子２およびクロック切替え端子１６に入力される信号の論理値を１にする。この操作によって、セレクタ７は、テストクロック端子１５を選択するようになる。
【００９２】
次に、テストクロック端子１５から供給されるテストクロック信号によって、スキャンフリップフロップ１０〜１２に取込まれた信号の論理値がスキャンアウト端子４から順次出力される。これらの値のうち、スキャンフリップフロップ１２における信号の論理値をスキャンアウト端子４で観測する。
【００９３】
次に、図４に示すように、ステップＳｔ９では、他に入力すべきテストパターンが残っているかどうかを判定する。
【００９４】
次に、上記ステップＳｔ９において、他に入力すべきテストパターンが残っている場合、図４に示すように、ステップＳｔ１０に進む。ステップＳｔ１０では、テストクロック端子１５からのテストクロック信号を使って、スキャンイン端子３からスキャンインデータを入力する。つまり、ステップＳｔ５に戻る。また、このスキャンインデータの入力と同時に、スキャンアウト端子４からテスト結果をスキャンアウトして回路に不良があるか否かをチェックする。
【００９５】
次に、上記ステップＳｔ９において、他に入力すべきテストパターンが残っていない場合、図４に示すように、ステップＳｔ１１に進む。ステップＳｔ１１では、テストクロック端子１５からのテストクロック信号を使って、スキャンアウト端子４からテスト結果をスキャンアウトして回路に不良があるか否かをチェックする。
【００９６】
次に、ステップＳｔ１１を行なった後にのみ、図４に示すように、ステップＳｔ１２で検査を終了する。
【００９７】
以上に述べたステップＳｔ１からステップＳｔ１２までの操作によって、信号経路（スキャンフリップフロップ１１のＱ端子→ＡＮＤゲート９→スキャンフリップフロップ１２のＤ端子）および、信号経路の始点（スキャンフリップフロップ１１のＱ端子）における信号の論理値の１から０への遷移に対するディレイテストを行なうことができる。特に、本実施形態では、通常動作モードにおいて、ＰＬＬ２０４が出力した２個のパルスは、実動作時の周波数である。このため、信号経路（スキャンフリップフロップ１１のＱ端子→ＡＮＤゲート９→スキャンフリップフロップ１２のＤ端子）上の実動作時における遅延の不良の有無を検査することができる。つまり、ＰＬＬ２０４から出力されるクロック信号のパルス数を限定するように制御することによって、高速なテスタを使用しなくても、ディレイテストを行なうことができる。
【００９８】
図５は、上記ディレイテストを実施する際の、半導体集積回路１の各端子における信号波形を示す図である。図５（ａ）は、クロック制御端子１３、スキャンイネーブル端子２（およびクロック切替え端子１６）のシフト動作モードから通常動作モードへの切替えが、ＰＬＬ２０４のクロック信号の論理値が０のときに行なわれた場合を示す図であり、図５（ｂ）は、シフト動作モードから通常動作モードへの切替えが、ＰＬＬ２０４のクロック信号の論理値が１のときに行なわれた場合を示す図である。
【００９９】
図５（ｂ）と同じ状態（クロック制御端子１３の０から１への切替えと、その後にＰＬＬ２０４から出力されるクロックの最初の立下りとの時間間隔（図中の幅ＬＡＧ）が非常に短い）である図２４（ｂ）に示した従来の構成による動作では、非常に幅の小さいパルスＰ１を含む３個のパルスが回路内へ供給される。それに対して、本実施形態の構成では、上記図５（ａ）および図５（ｂ）のいずれの場合においても、ＰＬＬ２０４から出力された完全な形の２個のパルスが、正確に組合せ回路部８内へ供給される。
【０１００】
したがって、ディレイテストにおいて、半導体集積回路１内のＰＬＬ２０４を使って通常動作モードに必要な実動作時の周波数のパルスを使用できるため、高速なテスタが不要となる。
【０１０１】
また、シフト動作モードではテスタから供給された低速のクロックを使用できるので、高速なテスタを使用しなくてもスキャン方式におけるディレイテストを実行することができる。
【０１０２】
なお、本実施形態では、通常動作モードにおいて組合せ回路部８内へ供給されるパルス数を２個である場合の説明を行なったが、フリップフロップ２０７とフリップフロップ２０８との間に、フリップフロップ２０７と同じ構造のフリップフロップをさらに直列に設置することで、通常動作モードにおいて組合せ回路部８内へ供給されるパルス数を３個とすることができる。このことによって、通常動作モードにおいて３個のパルスが必要とされるようなディレイテストにおいても有効である。また、フリップフロップ２０７とフリップフロップ２０８との間に直列に追加するフリップフロップの数を調節することによって、通常動作モードにおいて入力されるパルス数を任意に調節することができる。つまり、通常動作モードにおいて組合せ回路部８内へ供給すべきパルス数に応じて、フリップフロップ２０７とフリップフロップ２０８との間に、フリップフロップ２０７と同じフリップフロップを直列に設置すればよい。
【０１０３】
さらに、フリップフロップ２０５とフリップフロップ２０６との間に、フリップフロップ２０６と同じ構造のフリップフロップを任意の数だけ直列に追加することによって、クロック制御端子１３における信号の論理値が１から０へ変わった後に、ＡＮＤゲート２０９からＰＬＬ２０４のクロックが出力され始めるまでのタイミングを、ＰＬＬ２０４から出力される任意のパルス数に調節することも可能である。なお、ＡＮＤゲート２０９からＰＬＬ２０４のクロックが出力され始めるまでのタイミングは、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えてＰＬＬ２０４から出力されたパルスの１番目以降の立下りの直後（すなわち、１パルス分遅れた時刻）に設定しておく必要があるが、ディレイテストの結果の高い信頼性を維持するために、ＰＬＬ２０４から出力されたパルスの２番目以降の立下りの直後に設定しておくことが好ましい。
【０１０４】
（実施形態２）
図６は、本実施形態のクロック制御部２５を示す回路図である。本実施形態の半導体集積回路は上記実施形態１とほぼ同じ構成であり、上記実施形態１のクロック制御部５に代えて、図６に示すクロック制御部２５を設けた点でのみ異なる。以下に、本実施形態のクロック制御部２５の回路構成を説明する。
【０１０５】
本実施形態のクロック制御部２５は、図６に示すように、クロック生成部２６、セレクタ７、クロック制御端子１３、テストモード端子１４、テストクロック端子１５、クロック切替え端子１６とを備える。
【０１０６】
クロック生成部２６は、図６に示すように、ＰＬＬ２０４、フリップフロップ２０５および２０６、ＡＮＤゲート２０９および２１６、ＯＲゲート２１０、ならびにインバータ２１２および２１７、カウンタ２１５を備える。
【０１０７】
ＰＬＬ２０４は、ＡＮＤゲート２０９と、フリップフロップ２０５および２０６の各クロック入力端子ＣＫ２に接続されている。
【０１０８】
フリップフロップ２０５および２０６は、それぞれのクロック入力端子ＣＫ２は、ＰＬＬ２０４に接続されており、フリップフロップ２０５の出力端子Ｑ２と、フリップフロップ２０６のデータ端子Ｄ２とが互いに接続されている。特に、フリップフロップ２０５のデータ端子Ｄ２は、電源と接続されており、フリップフロップ２０６の出力端子Ｑ２は、ＯＲゲート２１０と接続されている。また、フリップフロップ２０５および２０６のそれぞれのリセット端子Ｒ２は、ＡＮＤゲート２１６を通じてクロック制御端子１３に接続されている。
【０１０９】
インバータ２１２は、入力側がテストモード端子１４に、出力側がＯＲゲート２１０に接続されている。
【０１１０】
ＡＮＤゲート２０９は、入力側がＰＬＬ２０４およびＯＲゲート２１０に接続されており、出力側がセレクタ７に接続されている。
【０１１１】
カウンタ２１５は、リセット端子Ｒｃを備える。リセット端子Ｒｃは、クロック制御端子１３に接続されている。さらに、カウンタ２１５は、ＡＮＤゲート２０９から出力される信号を検出するために、ＡＮＤゲート２０９のセレクタ７への接続に分岐して接続されている。また、カウンタ２１５は、インバータ２１７を介してＡＮＤゲート２１６の入力側に接続されている。
【０１１２】
セレクタ７は、入力側がＡＮＤゲート２０９と、テストクロック端子１５と、クロック切替え端子１６とに接続されており、出力側が出力端子２１３に接続されている。
【０１１３】
フリップフロップ２０５および２０６は、それぞれのクロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力する。出力端子ＮＱ２には、出力端子Ｑ２の反転値が出力される。リセット端子Ｒ２に０が入力されると、非同期で出力端子Ｑ２における信号の論理値は０になる。なお、フリップフロップ２０５および２０６のデータ端子Ｄ２は、電源と接続されている。このため、データ端子Ｄ２の入力値は常に１となっている。
【０１１４】
カウンタ２１５は、リセット端子Ｒｃに０が入力されると非同期で０を出力し、リセット端子Ｒｃが１の場合、ＡＮＤゲート２０９から出力される信号の立下りの数が所定値に達すると信号の論理値１を出力する。本実施形態では、カウンタ２１５は、ＡＮＤゲート２０９から出力される信号の２個目の立下りで信号の論理値１を出力する２進カウンタを用いているが、これに限定されない。
【０１１５】
次に、図１のクロック制御部５に代えて、本実施形態のクロック制御部２５を用いて、上記実施形態１と同様に、図４に示した半導体集積回路１を検査するディレイテストについて説明する。なお、本実施形態でも上記実施形態１と同様に、半導体集積回路１の実動作クロック周波数よりも低いクロック周波数のテストクロックを供給するテスタを用いている。
【０１１６】
本実施形態の半導体集積回路１の実動作時および検査時の動作は、上記実施形態１のクロック制御部５を用いた場合と同じである。すなわち、実動作時には、テストモード端子１４における信号の論理値を常に０に固定することによって、ＯＲゲート２１０から出力される信号の論理値を１に固定し、ＡＮＤゲート２０９の出力をＰＬＬ２０４のクロック信号の出力とする。
【０１１７】
検査時には、テストモード端子１４における信号の論理値を常に１に固定し、クロック制御端子１３における信号の論理値を０にする。このとき、フリップフロップ２０５および２０６の出力端子Ｑ２、およびカウンタ２１５の出力はいずれも０になる。このため、ＡＮＤゲート２０９から出力される信号の論理値は０に固定される。検査時において通常動作モードに切替えるためには、上記実施形態１のステップＳｔ６と同様に、クロック制御端子１３における信号の論理値を１に切替える。以下にステップＳｔ６におけるクロック生成部２６の動作を具体的に説明する。
【０１１８】
まず、クロック制御端子１３に入力される信号の論理値が０のとき、フリップフロップ２０５および２０６のそれぞれの出力端子Ｑ２から信号の論理値０が出力されている。クロック制御端子１３に入力される信号の論理値が１に切替わると、フリップフロップ２０５および２０６は、それぞれのクロック入力端子ＣＫ２に入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力するようになる。フリップフロップ２０５では、データ端子Ｄ２における信号の論理値は常に１に固定されているので、クロック入力端子ＣＫ２に入力された立下り信号に同期して、出力端子Ｑ２から信号の論理値１を出力する。
【０１１９】
次に、フリップフロップ２０６は、クロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込む。取り込まれた値は、出力端子Ｑ２へ出力される。このため、クロック入力端子ＣＫ２に入力されるＰＬＬ２０４のクロック信号の立下り１つ毎に、出力端子Ｑ２における信号の論理値１がフリップフロップ２０５から２０６の順に伝わっていく。
【０１２０】
フリップフロップ２０６の出力端子Ｑ２は、ＯＲゲート２１０を経てＡＮＤゲート２０９に接続されている。このため、上記の動作の結果、クロック生成部６は、図５の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて、ＰＬＬ２０４から出力されたパルスの２番目の立下りの直後に、ＡＮＤゲート２０９からＰＬＬ２０４のクロック信号を出力し始めるように動作する。
【０１２１】
また、ＡＮＤゲート２０９からクロック信号が出始めてから２番目のパルスが立下がった直後に、カウンタ２１５の出力が０から１へと変化し、さらにインバータ２１７によって反転値０がＡＮＤゲート２１６に入力される。このことによって、フリップフロップ２０５および２０６の出力端子Ｑにおける信号の論理値が０になり、ＡＮＤゲート２０９からの出力信号の論理値は、再び０に固定される。
【０１２２】
本実施形態によれば、上記実施形態１と同様のディレイテストを行なうことができる。
【０１２３】
また、上記ディレイテストを実施する際の半導体集積回路１の各端子における信号波形も、上記実施形態１と同様に図５に示す通りになる。つまり、ＰＬＬ２０４から出力された完全な形の２個のパルスが、正確に組合せ回路部８内へ供給される。従って、半導体集積回路１内のＰＬＬ２０４を使ってディレイテストに必要な実動作時の周波数のパルスを使用できるため、高速なテスタが不要となる。
【０１２４】
さらに、本実施形態では、カウンタ２１５は、ＡＮＤゲート２０９の信号の２個目の立下りで１を出力する２進カウンタとして説明を行なったが、例えばカウンタ２１５をＡＮＤゲート２０９の信号の３個目の立下りで１を出力するカウンタに変更することで、検査時の通常動作モードにおいて３個のパルスが必要とされるようなディレイテストにおいても有効であることは明らかである。つまり、通常動作モードにおいて組合せ回路部８内へ供給すべきパルス数に応じて、カウンタ２１５を、ＡＮＤゲート２０９からの出力信号の供給すべきパルス数と同じ数の立下りにおいて信号の論理値１を出力するカウンタに変更すればよい。
【０１２５】
（実施形態３）
図７は、本実施形態のクロック制御部３５を示す回路図である。本実施形態の半導体集積回路は上記実施形態１とほぼ同じ構成であり、上記実施形態１のクロック制御部５に代えて、図７に示すクロック制御部３５を設けた点でのみ異なる。以下に、本実施形態のクロック制御部３５の回路構成を説明する。
【０１２６】
本実施形態のクロック制御部３５は、図７に示すように、クロック生成部３６、セレクタ７、クロック制御端子１３、テストモード端子１４、テストクロック端子１５、クロック切替え端子１６とを備える。
【０１２７】
クロック生成部３６は、図７に示すように、ＰＬＬ２０４、フリップフロップ２０５および２０６、ＡＮＤゲート２０９および２１６、ＯＲゲート２１０、ならびにインバータ２１２および２１７、カウンタ２１５を備える。本実施形態のクロック生成部３６は、（１）フリップフロップ２０５のデータ端子Ｄ２がフリップフロップ２０５のＮＱ２端子と接続されている、（２）フリップフロップ２０５の出力端子Ｑ２がフリップフロップ２０６のクロック入力端子ＣＫ２と接続されている、（３）フリップフロップ２０６のデータ端子Ｄ２が電源と接続されている、という３点が上記実施形態２のクロック生成部２６と異なり、他の部分は上記実施形態２と同じ構成となっている。
【０１２８】
本実施形態では、カウンタ２１５は上記実施形態２と同様に、リセット端子Ｒｃに０が入力されると非同期に０を出力し、リセット端子Ｒｃが１の場合において、ＡＮＤゲート２０９から出力された信号の立下りの数が所定値に達すると１を出力する。本実施形態では、カウンタ２１５はＡＮＤゲート２０９の信号の２個目の立下りで１を出力する２進カウンタを用いている。
【０１２９】
次に、図１のクロック制御部５に代えて、図７に示す本実施形態のクロック制御部３５を用いて、上記実施形態１と同様に、半導体集積回路１を検査する方法について説明する。なお、本実施形態でも上記実施形態１と同様に、半導体集積回路１の実動作クロック周波数よりも低いクロック周波数のテストクロックを供給するテスタを用いている。
【０１３０】
本実施形態の半導体集積回路１の実動作時および検査時の動作は、上記実施形態１のクロック制御部５を用いた場合とほぼ同じである。すなわち、実動作時には、テストモード端子１４における信号の論理値を常に０に固定することによって、ＯＲゲート２１０から出力される信号の論理値を１に固定し、ＡＮＤゲート２０９の出力をＰＬＬ２０４のクロック信号の出力とする。
【０１３１】
検査時には、テストモード端子１４における信号の論理値を常に１に固定し、クロック制御端子１３における信号の論理値を０にする。このとき、フリップフロップ２０５および２０６の出力端子Ｑ２、およびカウンタ２１５の出力はいずれも０になる。このため、ＡＮＤゲート２０９から出力される信号の論理値は０に固定される。検査時において通常動作モードに切替えるためには、上記実施形態１のステップＳｔ６と同様に、クロック制御端子１３における信号の論理値を１に切替える。以下にステップＳｔ６におけるクロック生成部２６の動作を具体的に説明する。
【０１３２】
まず、クロック制御端子１３に入力される信号の論理値が０のとき、フリップフロップ２０５および２０６のそれぞれの出力端子Ｑ２から信号の論理値０が出力されており、それぞれの出力端子ＮＱ２から信号の論理値１が出力されている。クロック制御端子１３に入力される信号の論理値が１に切替わると、フリップフロップ２０５および２０６は、それぞれのクロック入力端子ＣＫ２に入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力するようになる。フリップフロップ２０５では、データ端子Ｄ２における信号の論理値は、出力端子ＮＱ２に等しくなる。このため、クロック制御端子１３に入力される信号の論理値が１に切替わった直後では、フリップフロップ２０５は、クロック入力端子ＣＫ２に入力された立下り信号に同期して、出力端子Ｑ２から信号の論理値１を出力し、出力端子ＮＱ２から信号の論理値０を出力する。次のクロック入力端子ＣＫ２に信号が入力されると、この信号の立下りに同期して、出力端子Ｑ２から信号の論理値０を出力し、出力端子ＮＱ２から信号の論理値１を出力する。つまり、フリップフロップ２０５から出力される信号は、クロック入力端子ＣＫ２に入力された立下り信号に同期して、出力端子Ｑ２から信号の論理値０および１を交互に繰り返すクロック信号となる。このフリップフロップ２０５の出力端子Ｑから出力されるクロック信号は、ＰＬＬ２０４のクロック信号を２分周した波形となる。
【０１３３】
次に、フリップフロップ２０６は、フリップフロップ２０５の出力端子Ｑ２から出力されたクロック信号の立下りに同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力する。データ端子Ｄ２は、電源に接続されているので、データ端子Ｄ２に与えられる信号の論理値は常に１である。従って、フリップフロップ２０５の出力端子Ｑ２から出力されたクロック信号の立下りに同期して、信号値１がフリップフロップ２０６の出力端子Ｑ２から出力される。このとき、フリップフロップ２０５の出力端子Ｑから出力されるクロック信号は、ＰＬＬ２０４のクロック信号を２分周した波形となっているので、信号値１がフリップフロップ２０６の出力端子Ｑ２から出力され始めるのは、ＰＬＬ２０４から出力されたパルスの２番目の立下りの直後となる。
【０１３４】
フリップフロップ２０６の出力端子Ｑ２は、ＯＲゲート２１０を経てＡＮＤゲート２０９に接続されている。このため、上記の動作の結果、クロック生成部６は、図５の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて、ＰＬＬ２０４から出力されたパルスの２番目の立下りの直後に、ＡＮＤゲート２０９からＰＬＬ２０４のクロック信号を出力し始めるように動作する。
【０１３５】
また、ＡＮＤゲート２０９からクロック信号が出始めてから２番目のパルスが立下がった直後に、カウンタ２１５の出力が０から１へと変化し、さらにインバータ２１７によって反転値０がＡＮＤゲート２１６に入力される。このことによって、フリップフロップ２０５および２０６の出力端子Ｑにおける信号の論理値が０になり、ＡＮＤゲート２０９からの出力信号の論理値は、再び０に固定される。
【０１３６】
本実施形態によれば、上記実施形態１および２と同様のディレイテストを行なうことができる。
【０１３７】
上記実施形態２のクロック生成部３６では、フリップフロップ２０５のクロック入力端子ＣＫ２とフリップフロップ２０６のクロック入力端子ＣＫ２との間に大きなスキューがあると、クロック制御端子１３に入力される信号の論理値が１に変化した後、ＰＬＬ２０４から出力されるクロック信号のパルスの１番目の立下りの直後からＡＮＤゲート２０９の出力がＰＬＬ２０４のクロック信号を出力する可能性がある。
【０１３８】
しかし、クロック生成部３６では、フリップフロップ２０５の出力端子Ｑから出力されるクロック信号が、フロップ２０６のクロック入力端子ＣＫ２に入力される。このため、フリップフロップ２０５のクロック入力端子ＣＫ２とフリップフロップ２０６のクロック入力端子ＣＫ２との間に大きなスキューが存在しても、ＡＮＤゲート２０９の出力は、上述のような影響を受けないという利点がある。
【０１３９】
（実施形態４）
図８は、本実施形態のクロック制御部４５を示す回路図である。本実施形態の半導体集積回路は上記実施形態１とほぼ同じ構成であり、上記実施形態１のクロック制御部５に代えて、図８に示すクロック制御部４５を設けた点でのみ異なる。以下に、本実施形態のクロック制御部４５の回路構成を説明する。
【０１４０】
クロック制御部４５は、図８に示すように、クロック生成部４６、セレクタ７、クロック制御端子１３、テストモード端子１４、テストクロック端子１５、クロック切替え端子１６とを備える。クロック生成部４６は、ＰＬＬ２０４、フリップフロップ２０５、２０６、２０７および２０８、ＡＮＤゲート２０９、ＯＲゲート２１０および２１１を備える。
【０１４１】
図８と図１とを比較するとわかるように、本実施形態のクロック生成部４６は、フリップフロップ２０５〜２０８と同じ構成のフリップフロップ２２０が設けられている点でのみ、上記実施形態１のクロック生成部６と異なる。
【０１４２】
フリップフロップ２２０のデータ端子Ｄ４は、電源端子と接続され、常に１へ固定されている。フリップフロップ２２０のリセット端子Ｒ４は、フリップフロップ２０８の出力端子ＮＱ２に接続されており、フリップフロップ２２０の出力端子Ｑ４は、フリップフロップ２０５〜２０８のそれぞれのリセット端子Ｒ２に接続されている。フリップフロップ２２０のクロック入力端子ＣＫ４は、クロック制御端子１３に接続されている。
【０１４３】
次に、図１のクロック制御部５に代えて、図７に示す本実施形態のクロック制御部３５を用いて、上記実施形態１と同様に、半導体集積回路１を検査する方法について、図１、図７および図９を参照しながら説明する。図９は、本実施形態のクロック制御部３５を用いて、半導体集積回路１を検査対象とするディレイテストを実施する際の、半導体集積回路１の各端子における信号波形を示す図である。なお、図中の参照符号は、それぞれ図１および図７に示す参照符号に対応している。本実施形態では、ＰＬＬ２０４のクロック周波数は、テストクロック端子１５のクロック周波数の２倍である。つまり、テストクロック端子１５のクロック周波数は、ＰＬＬ２０４のクロック周波数の半分である。
【０１４４】
本実施形態の半導体集積回路１の実動作時の動作は、上記実施形態１のクロック制御部５を用いた場合とほぼ同じである。すなわち、実動作時には、テストモード端子１４における信号の論理値を常に０に固定することによって、ＯＲゲート２１０から出力される信号の論理値を１に固定し、ＡＮＤゲート２０９の出力をＰＬＬ２０４のクロック信号の出力とする。
【０１４５】
検査時には、テストモード端子１４における信号の論理値を常に１に固定し、クロック制御端子１３における信号の論理値を０にする。このとき、フリップフロップ２０５および２０６の出力端子Ｑ２、およびカウンタ２１５の出力はいずれも０になる。このため、ＡＮＤゲート２０９から出力される信号の論理値は０に固定される。
【０１４６】
検査時において通常動作モードに切替えるためには、上記実施形態１のステップＳｔ６と同様に、クロック制御端子１３における信号の論理値を１に切替える。但し、上記実施形態１と異なり、検査時において通常動作モードに切替える際には、クロック制御端子１３にパルスを１個入力する。以下にステップＳｔ６およびＳｔ７におけるクロック生成部２６の動作を具体的に説明する。
【０１４７】
まず、クロック制御端子１３に入力される信号の論理値が０のとき、フリップフロップ２０５〜２０８のそれぞれの出力端子Ｑ２から信号の論理値０が出力されている。クロック制御端子１３に入力される信号の論理値が１に切替わると、フリップフロップ２２０のクロック入力端子ＣＫ４にパルスが１個入力される。フリップフロップ２２０は、この入力されたパルスの信号の立上りに同期して、データ端子Ｄ２に入力された値（常に１）を取り込み、出力端子Ｑ４から信号の論理値１を出力する。従って、フリップフロップ２０５〜２０８の各リセット端子Ｒ２の信号の論理値は１になる。
【０１４８】
フリップフロップ２０５〜２０８は、それぞれのクロック入力端子ＣＫ２に入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力するようになる。フリップフロップ２０５では、データ端子Ｄ２における信号の論理値は常に１に固定されているので、クロック入力端子ＣＫ２に入力された立下り信号に同期して、出力端子Ｑ２から信号の論理値１を出力する。
【０１４９】
次に、フリップフロップ２０６、２０７および２０８は、それぞれのクロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込む。取り込まれた値は、出力端子Ｑ２へ出力される。このため、クロック入力端子ＣＫ２に入力されるＰＬＬ２０４のクロック信号の立下り１つ毎に、出力端子Ｑ２における信号の論理値１がフリップフロップ２０５、２０６、２０７および２０８の順に伝わっていく。
【０１５０】
フリップフロップ２０６の出力端子Ｑ２は、ＯＲゲート２１０を経てＡＮＤゲート２０９に接続されている。このため、上記の動作の結果、クロック生成部６は、図９の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて、ＰＬＬ２０４から出力されたパルスの２番目の立下りの直後に、ＡＮＤゲート２０９からＰＬＬ２０４のクロック信号を出力し始めるように動作する。
【０１５１】
次に、図４に示すように、ステップＳｔ７では、セレクタ７からのクロック出力を停止する。フリップフロップ２０８の出力端子ＮＱ２は、ＯＲゲート２１１を経てＡＮＤゲート２０９に接続されている。このため、フリップフロップ２０８は、図９の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて４番目のＰＬＬ２０４から出力されたパルスの立下りの直後に出力端子ＮＱ２から信号の論理値０を出力し、ＡＮＤゲート２０９の出力が再び０に固定されるように動作する。
【０１５２】
また、フリップフロップ２０８の出力端子ＮＱ２は、フリップフロップ２２０のリセット端子Ｒ４に接続されている。このため、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて４番目のＰＬＬ２０４から出力されたパルスの立下りの直後に、フリップフロップ２２０のリセット端子Ｒ４に信号の論理値０が入力され、フリップフロップ２２０の出力端子Ｑ４における信号の論理値が０になる。従って、フリップフロップ２０５〜２０８の出力端子Ｑにおける信号の論理値が０になり、ＡＮＤゲート２０９からの出力信号の論理値は、再び０に固定される。
【０１５３】
図５は、上記ディレイテストを実施する際の、半導体集積回路１の各端子における信号波形を示す図である。図５（ａ）は、クロック制御端子１３、スキャンイネーブル端子２（およびクロック切替え端子１６）のシフト動作モードから通常動作モードへの切替えが、ＰＬＬ２０４のクロック信号の論理値が０のときに行なわれた場合を示す図であり、図５（ｂ）は、シフト動作モードから通常動作モードへの切替えが、ＰＬＬ２０４のクロック信号の論理値が１のときに行なわれた場合を示す図である。
【０１５４】
図９（ｂ）と同じ状態（クロック制御端子１３の０から１への切替えと、その後にＰＬＬ２０４から出力されるクロックの最初の立下りとの時間間隔（図中の幅ＬＡＧ）が非常に短い）である図２４（ｂ）に示した従来の構成による動作では、非常に幅の小さいパルスＰ１を含む３個のパルスが回路内へ供給される。それに対して、本実施形態によれば、上記図５（ａ）および図５（ｂ）のいずれの場合においても、ＰＬＬ２０４から出力された完全な形の２個のパルスが、正確に組合せ回路部８内へ供給される。
【０１５５】
従って、半導体集積回路１内のＰＬＬ２０４を使ってディレイテストに必要な実動作時の周波数のパルスを使用できるため、高速なテスタが不要となる。
【０１５６】
上記実施形態１〜３のクロック生成部６、２６、および３６を用いた場合は、通常動作モードにおいて組合せ回路部８内へ確実に２パルスを入力するためには、クロック制御端子１３を１に固定しておく時間を、最低でもＰＬＬ２０４の立下り４つ分に設定する必要がある。しかし、本実施形態のクロック生成部４６を用いた場合は、通常動作モードにおいてクロック制御端子１３にパルスを１個与えるだけで、組合せ回路部８内へ確実に２つのパルスを入力することができるため、ＰＬＬ２０４の制御が容易になるという効果がある。
【０１５７】
なお、上記実施形態１〜４において、発振回路の具体例としてＰＬＬを使って説明したが、ＰＬＬの代わりにＤＬＬなど、周期的なクロック信号を発生する他の種類の回路であってもよい。
【０１５８】
また、上記実施形態１〜４において、シフト動作モードにおいて、テスタからテストクロック端子１５を経て供給されるテストクロックに低周波数のクロック信号を用いたのは以下の理由による。
【０１５９】
まず第１の理由として、シフト動作モードでは、実動作時の高周波数のクロック信号を使用する必然性はなく、逆にシフト動作を確実に行なうために、低速なクロック信号を使用した方が有利だからである。
【０１６０】
第２の理由として、シフト動作モード中は、テストクロックと同期してスキャンイン端子３からスキャンインデータを与える必要があるからである。仮にシフト動作モード中のクロック信号としてＰＬＬ２０４のクロック信号を利用する場合も、スキャンイン端子３へのスキャンインデータをテスタから与える必要があることに変わりはない。つまり、ＰＬＬ２０４のクロック信号と同じ周波数のテストクロックを供給することが可能なテスタを使用しなければならない。従って、ＰＬＬ２０４のクロック信号が非常に高い周波数である場合、スキャンインデータを与えるためには非常にコストがかかる。
【０１６１】
次に、組込み自己検査（ＢＩＳＴ）を行なう実施形態について説明する。
【０１６２】
（実施形態５）
まず、本実施形態の半導体集積回路の構成を説明する。
【０１６３】
図１０は、本実施形態の半導体集積回路の回路図である。本実施形態の半導体集積回路５０１は、組込み自己検査（ＢＩＳＴ）を実施するための構成を備えている。
【０１６４】
半導体集積回路５０１は、図１０に示すように、半導体集積回路５０１、テストモード端子５０２、検査開始端子５０３、判定結果出力端子５０４、検査停止端子５０６、テストクロック端子５０７、パルス数設定端子５０８、期待値設定端子５０９、クロック制御部５１０、検査入力データ発生部５１１、検査結果解析部５１２、検査終了制御部５１３、および被検査回路部５１４を備える。なお、本実施形態では、検査入力データ発生部５１１としてＬＦＳＲ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒ）を用いている。
【０１６５】
図１１は、図１０におけるクロック制御部５１０を示す回路図である。クロック制御部５１０は、検査開始端子５０３、テストモード端子５０２、クロック出力端子６０３、ＰＬＬ６０４、フリップフロップ６０５および６０６、ＡＮＤゲート６０９および６１６、ＯＲゲート６１０、インバータ６１２および６１７、検査停止端子６２０を備える。
【０１６６】
ＰＬＬ６０４は、ＡＮＤゲート６０９と、フリップフロップ６０５および６０６の各クロック入力端子ＣＫ２に接続されている。
【０１６７】
フリップフロップ６０５の出力端子Ｑ２と、フリップフロップ６０６のデータ端子Ｄ２とは互いに接続されている。また、フリップフロップ６０５および６０６のそれぞれのリセット端子Ｒ２は、ＡＮＤゲート６１６を通じてクロック制御端子１３と、インバータ６１７を介して検査停止端子６２０とに接続されている。また、フリップフロップ６０５のデータ端子Ｄ２は、電源と接続されており、フリップフロップ６０６の出力端子Ｑ２は、ＯＲゲート６１０に接続されている。
【０１６８】
インバータ６１２は、入力側がテストモード端子５０２に、出力側がＯＲゲート６１０に接続されている。
【０１６９】
ＡＮＤゲート６０９は、入力側がＰＬＬ６０４、ＯＲゲート６１０に接続されており、出力側がクロック出力端子６０３に接続されている。
【０１７０】
フリップフロップ６０５および６０６は、それぞれのクロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力する。出力端子ＮＱ２からは、出力端子Ｑ２の反転値を出力する。リセット端子Ｒ２に０が入力されると、クロック入力端子ＣＫ２に入力されたクロック信号とは非同期で出力端子Ｑ２から信号値０が出力される。なお、フリップフロップ６０５のデータ端子Ｄ２は、電源と接続されている。このため、フリップフロップ６０５のデータ端子Ｄ２の入力値は常に１となっている。
【０１７１】
次に、本実施形態の検査終了制御部について説明する。図１２は、図１０における検査終了制御部５１２の回路図である。
【０１７２】
本実施形態の検査終了制御部５１２は、パルス数設定端子５０８、テストクロック端子５０７、検査開始端子５０３、クロック制御部５１０のクロック出力端子６０３に接続されたクロック入力端子８０４、検査停止端子５０６、カウンタ８１０、レジスタ８１１、複数（ｎ個）のＥｘＯＲゲート８１２、およびＮＯＲゲート８１３を備える。
【０１７３】
カウンタ８１０は、検査開始端子５０３に接続されたリセット端子Ｒｃ、クロック入力端子８０４に接続されたクロック入力端子ＣＫｃ、およびビットｂ１〜ｂｎを備える。カウンタ８１０の各ビットｂ１〜ｂｎは、それぞれＥｘＯＲゲート８１２に接続されている。
【０１７４】
カウンタ８１０は、検査開始端子５０３に入力される信号の論理値が０である間、カウンタ８１０のリセット端子Ｒｃに信号の論理値０が入力され、カウンタ８１０の全ビットｂ１〜ｂｎの値が常に０に初期化されている。検査開始端子５０３の値が１で、かつクロック端子８０４からクロックが入力されると、パルスの立下り信号に同期して１ずつカウントアップする。
【０１７５】
レジスタ８１１は、パルス数設定端子５０８に接続されており、テストクロック端子５０７に接続されたクロック入力端子ＣＫｒと、ビットｂ１〜ｂｎとを備える。レジスタ８１１のビットｂ１〜ｂｎは、それぞれカウンタ８１０のビットｂ１〜ｂｎと対応するように、それぞれＥｘＯＲゲート８１２に接続されている。
【０１７６】
ｎ個のＥｘＯＲゲート８１２は、ＮＯＲゲート８１３に接続されている。
【０１７７】
次に、本実施形態の検査結果解析部について説明する。図１３は、図１０における検査結果解析部５１３の回路図である。
【０１７８】
検査結果解析部５１３は、期待値設定端子５０９、テストクロック端子５０７、検査開始端子５０３、クロック出力端子６０３と接続されたクロック端子９０４、被検査回路部５１４の出力からのデータ入力端子９０５、判定結果出力端子５０４、ＭＩＳＲ（Ｍｕｌｔｉ−Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）９１０、期待値レジスタ９１１、ＥｘＯＲゲート９１２、およびＯＲゲート９１３を備える。
【０１７９】
ＭＩＳＲ９１０は、検査開始端子５０３に接続されたリセット端子Ｒｃ、クロック入力端子９０４に接続されたクロック入力端子ＣＫｍ、およびデータ入力端子９０５のそれぞれに接続されたビットｂ１〜ｂｎを備える。ＭＩＳＲ９１０の各ビットｂ１〜ｂｎは、それぞれＥｘＯＲゲート８１２に接続されている。
【０１８０】
ＭＩＳＲ９１０は、検査開始端子５０３に入力される信号の論理値が０である間、リセット端子Ｒｍに信号の論理値０が入力され、全ビットｂ１〜ｂｎの値が常に０に初期化されている。検査開始端子５０３の値が１で、かつクロック端子９０４からクロックが入力されると、パルスの立下り信号に同期して被検査回路部５１４から出力されるデータを圧縮する。
【０１８１】
期待値レジスタ９１１は、期待値設定端子５０９に接続されており、テストクロック端子５０７に接続されたクロック入力端子ＣＫｒと、ビットｂ１〜ｂｎとを備える。期待値レジスタ９１１のビットｂ１〜ｂｎは、それぞれＭＩＳＲ９１０のビットｂ１〜ｂｎと対応するように、それぞれＥｘＯＲゲート９１２に接続されている。
【０１８２】
ｎ個のＥｘＯＲゲート９１２は、ＮＯＲゲート９１３に接続されている。
【０１８３】
本実施形態の半導体集積回路５０１は、実動作時には、テストモード端子５０２に入力される信号の論理値は０に固定される。このとき、クロック制御部５１０では、ＯＲゲート６１０の出力は１に固定されるため、ＡＮＤゲート６０９の出力は、ＰＬＬ６０４のクロック信号をそのまま出力する。
【０１８４】
次に、半導体集積回路５０１の検査方法を、図を参照しながら説明する。図１４は、本実施形態の半導体集積回路５０１を検査対象とするＢＩＳＴを示すフローチャートである。図１５は、本実施形態の半導体集積回路５０１を検査対象とするＢＩＳＴを実施する際の、半導体集積回路５０１の各端子における信号波形を示す図である。なお、図中の参照符号は、それぞれ図１０〜図１３に示す参照符号に対応している。
【０１８５】
まず、図１４に示すように、ステップＳｔ２１で検査を開始する。
【０１８６】
次に、図１４に示すように、ステップＳｔ２２において検査条件を設定する。具体的には、検査のために被検査回路部５１４に入力されるクロック信号のパルス数、および検査終了時のＭＩＳＲ９１０の出力値の期待値を設定する。検査のために被検査回路部５１４に入力されるクロック信号のパルス数と、ＰＬＬ６０４のクロック周波数とから検査時間を見積もることができる。
【０１８７】
次に、図１４に示すように、ステップＳｔ２３では、ＰＬＬ６０４のクロック信号を、クロック出力端子６０３から出力されないようにする。具体的には、テストモード端子５０２における信号の論理値を１にする。なお、この値は検査中常に１に固定する。次に、検査開始端子５０３およびテストクロック端子５０７における信号の論理値を、いずれも０にする。このとき、クロック制御部５１０では、フリップフロップ６０５、６０６の出力端子Ｑから出力される値はすべて０になる（出力端子ＮＱはから出力される値はすべて１になる）。このことによって、ＡＮＤゲート６０９の出力は０に固定され、ＰＬＬ６０４のクロック信号は、クロック出力端子６０３から出力されなくなる。また、検査終了制御部５１２のカウンタ８１０の値もすべて０になる。
【０１８８】
続いてステップＳｔ２４では、検査条件を入力する。具体的には、テストクロック端子５０７からクロック信号を入力し、これに同期してパルス数設定端子５０８、期待値設定端子５０９からそれぞれレジスタ８１１、期待値レジスタ９１１へ、上記ステップＳｔ２２で設定した検査条件をスキャンイン動作によって入力する。このときテストクロック端子５０７から入力するクロックはＰＬＬ６０４に比較して低速で構わない。
【０１８９】
上記のステップＳｔ２１〜Ｓｔ２４は、図１５の期間ｔ１に相当する。
【０１９０】
次にステップＳｔ２５では、ＰＬＬ６０４のクロック信号を、クロック出力端子６０３から出力する。このステップＳｔ２５は、図１５の期間ｔ３に相当する。具体的には、図１５に示すｔ２の時点で検査開始端子５０３を１にする。この操作によって、図１５に示すように、クロック出力端子６０３からＰＬＬ６０４のクロック信号が出力され始める。以下、ステップＳｔ２５におけるクロック制御部５１０の動作をさらに詳細に説明する。
【０１９１】
まず、検査開始端子５０３に入力される信号の論理値が０のとき、フリップフロップ６０５および６０６のそれぞれの出力端子Ｑ２から信号の論理値０が出力されている。検査開始端子５０３に入力される信号の論理値が１に切替わると、フリップフロップ６０５および６０６は、それぞれのクロック入力端子ＣＫ２に入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込み、この値を出力端子Ｑ２から出力するようになる。フリップフロップ６０５では、データ端子Ｄ２における信号の論理値は常に１に固定されているので、クロック入力端子ＣＫ２に入力された立下り信号に同期して、出力端子Ｑ２から信号の論理値１を出力する。
【０１９２】
次に、フリップフロップ６０６は、クロック入力端子ＣＫ２へ入力された立下り信号に同期して、データ端子Ｄ２に与えられた信号の論理値を取り込む。取り込まれた値は、出力端子Ｑ２へ出力される。このため、クロック入力端子ＣＫ２に入力されるＰＬＬ６０４のクロック信号の立下り１つ毎に、出力端子Ｑ２における信号の論理値１がフリップフロップ６０５から６０６の順に伝わっていく。
【０１９３】
フリップフロップ６０６の出力端子Ｑ２は、ＯＲゲート６１０を経てＡＮＤゲート６０９に接続されている。このため、上記の動作の結果、クロック制御部５１０は、図１５の期間Ｔ３に示すように、クロック制御端子１３に入力される信号の論理値が１に切替わった時点（Ｔ２）から数えて、ＰＬＬ６０４から出力されたパルスの２番目の立下りの直後に、ＡＮＤゲート６０９からＰＬＬ６０４のクロック信号を出力し始めるように動作する。
【０１９４】
クロック出力端子６０３からＰＬＬ６０４のクロック信号が出力され始めると、クロック出力端子６０３から出力されるクロック信号に同期して検査入力データ発生部５１１から擬似乱数が発生される。このとき、カウンタ８１０が０から順に１ずつカウントアップし、レジスタ８１１と同じ値になるまで、検査停止端子５０６から０を出力する。さらにこのとき同時に、ＭＩＳＲ９１０は、被検査回路部５１４から出力されるデータを圧縮する。
【０１９５】
次に、ステップＳｔ２６では、クロック出力端子６０３からのＰＬＬ６０４のクロック信号を停止する。このステップＳｔ２６は、図１５に示すｔ４の時点に相当する。具体的には、カウンタ８１０の値が、レジスタ８１１で指定されたクロック信号のパルス数と等しくなると、検査停止端子５０６から信号の論理値１が出力される。クロック制御部５１０は、検査停止端子５０６に接続された検査停止端子６２０から信号の論理値１を受けて、クロック出力端子６０３から出力される信号の論理値を再び０に固定する。これによって、カウンタ８１０のカウントアップは停止し、また同時に、検査入力データ発生部５１１からの擬似乱数発生、ＭＩＳＲ９１０の動作も停止する。
【０１９６】
次にステップＳｔ２７で検査結果の解析を行なう。このときのＭＩＳＲ９１０の値が、被検査回路部５１４の故障有無の判定材料となる。ＭＩＳＲ９１０の値と、期待値レジスタ９１１に格納されている被検査回路部５１４が正常である場合の期待値との比較結果を、テスタを用いて判定結果出力端子５０４から観測することによって、被検査回路部５１４に故障があるか否かを判定する。
【０１９７】
最後に、ステップＳｔ２８において検査を終了する。
【０１９８】
以上に述べたステップＳｔ２１からステップＳｔ２８までの操作によって、ＢＩＳＴを行なうことができる。
【０１９９】
図１５は、上記ＢＩＳＴを実施する際の、半導体集積回路５０１の各端子における信号波形を示す図である。図１５（ａ）は、検査開始端子５０３のシフト動作モードから通常動作モードへの切替えが、ＰＬＬ６０４のクロック信号の論理値が０のときに行なわれた場合を示す図であり、図１５（ｂ）は、シフト動作モードから通常動作モードへの切替えが、ＰＬＬ６０４のクロック信号の論理値が１のときに行なわれた場合を示す図である。
【０２００】
図１５（ｂ）と同じ状態（クロック制御端子１３の０から１への切替えと、その後にＰＬＬ２０４から出力される最初の立下りとの時間間隔（図中の幅ＬＡＧ）が非常に短い）である図２５（ｂ）に示した従来の構成による動作では、非常に幅の小さいパルスＰ２を含むパルスが回路内へ供給される。それに対して、本実施形態の構成では、上記図１５（ａ）および図１５（ｂ）のいずれの場合においても、ＰＬＬ２０４から出力されたクロック信号のパルスが、クロック制御部５１０のＡＮＤゲート６０６から完全な形で出力される。このため、回路内の各部の誤動作を招くことがない。
【０２０１】
従って、半導体集積回路５０１内のＰＬＬ６０４を使ってＢＩＳＴに必要な実動作時の周波数のクロック信号を使用できるため、高速なテスタが不要となる。
【０２０２】
また、上述の検査方法では、テスタに検査停止端子５０６からの検査停止信号に応じて処理を行なう機能が備わってない場合でも、検査を行なうことができる。
【０２０３】
（実施形態６）
本実施形態では、半導体集積回路５０１を検査する方法として、図１６に示す半導体集積回路の検査方法を行なう場合について説明する。図１６は、半導体集積回路５０１に対する検査方法を示したフローチャートである。図１６に示す半導体集積回路の検査方法は、検査停止端子５０６の信号をモニターするステップＳｔ２６’のみが、上記実施形態５の半導体集積回路の検査方法と異なり、その他のステップは上記実施形態５と同じである。従って、以下にステップＳｔ２６’のみ説明する。
【０２０４】
ステップＳｔ２６’では、テスタを用いて検査停止端子５０６からの検査停止信号をモニターする。具体的には、上記実施形態５の半導体集積回路の検査方法において、ＭＩＳＲ９１０の値と、期待値レジスタ９１１に格納されている被検査回路部５１４が正常である場合の期待値との比較結果を判定結果出力端子５０４から観測するテスタを、検査停止端子５０６からの検査停止信号をモニターするためにも用いる。このことによって、検査停止端子５０６から検査停止信号１が出力されたら、テスタは直ちに検査結果の解析を行なうことができる。
【０２０５】
図１４の半導体集積回路の検査方法では、検査停止信号をモニターしていないので、検査の停止時を外部から判断できない。このため、検査が停止してから検査結果の解析操作に移るまでの時間を安全のために予めが長く見積もっておく必要があり、時間的に無駄が多い。しかし、上述の図１６に示す半導体集積回路の検査方法では、検査停止後、直ちに検査結果の解析に移れるので、時間の無駄が生じないという利点がある。
【０２０６】
（実施形態７）
次に、組込み自己検査（ＢＩＳＴ）を行なう別の実施形態を説明する。
【０２０７】
まず、本実施形態の半導体集積回路の構成を説明する。
【０２０８】
図１７は、本実施形態の半導体集積回路の回路図である。本実施形態の半導体集積回路１８０１は、組込み自己検査（ＢＩＳＴ）を実施するための構成を備えている。
【０２０９】
半導体集積回路１８０１は、図１７に示すように、半導体集積回路５０１、テストモード端子５０２、検査開始端子５０３、判定結果出力端子５０４、検査結果データ出力端子５０５、検査停止端子５０６、テストクロック端子５０７、パルス数設定端子５０８、期待値設定端子５０９、検査終了端子１８０７、クロック制御部１８１０、検査入力データ発生部５１１、検査終了制御部１８１２、検査結果解析部１８１３、および被検査回路部５１４を備える。なお、検査入力データ発生部５１１は、上記実施形態５と同様にＬＦＳＲを用いている。
【０２１０】
図１８は、図１７におけるクロック制御部１８１０を示す回路図である。クロック制御部１８１０は、検査開始端子５０３、テストモード端子５０２、クロック出力端子６０３、ＰＬＬ６０４、フリップフロップ６０５および６０６、ＡＮＤゲート６０９および６１６、ＯＲゲート６１０、インバータ６１２および６１７、検査停止端子６２０を備える。
【０２１１】
以上の構成からわかるように、本実施形態のクロック制御部１８１０は、上記実施形態５のクロック制御部５１０とほぼ同じ構成である。但し、クロック制御部１８１０から検査終了制御部１８１３へのＰＬＬからのクロック信号を伝達するＰＬＬクロック端子１７０１が設けられている点が異なる。
【０２１２】
図１７に示すように、クロック制御部１８１０から出力されるクロック信号は、検査入力データ発生部１８１１、検査終了制御部１８１２、検査結果解析部１８１３、被検査回路部５１４にそれぞれ供給される。また、クロック制御部１８１０のＰＬＬ６０４から出力されるクロック信号は、検査終了制御部１６１３に供給される。
【０２１３】
次に、本実施形態の検査終了制御部について説明する。図１９は、図１７における検査終了制御部１８１２の回路図である。
【０２１４】
本実施形態の検査終了制御部１８１２は、パルス数設定端子５０８、テストクロック端子５０７、検査開始端子５０３、クロック制御部１８１０のクロック出力端子６０３に接続されたクロック入力端子８０４、検査停止端子５０６、ＰＬＬクロック端子１７０１、検査終了端子１８０７、検査時間設定レジスタ１８１１、ｘビットカウンタ１８１５、ｙビットカウンタ１８１６、ｚビットカウンタ１８１７、比較器１８２１〜１８２３、ＡＮＤゲート１８２４および１８２５、ＯＲゲート１８２６および１８２７、ならびにインバータ１８２８および１８２９を備える。
【０２１５】
ｘビットカウンタ１８１５およびｙビットカウンタ１８１６は、それぞれリセット端子Ｒｃを備える。このそれぞれのリセット端子Ｒｃは、それぞれＡＮＤゲート１８２４および１８２５を介して検査開始端子５０３に接続されている。また、ｚビットカウンタ１８１７も検査開始端子５０３に接続されている。
【０２１６】
ｘビットカウンタ１８１５、ｙビットカウンタ１８１６、およびｚビットカウンタ１８１７は、検査開始端子５０３に入力される信号の論理値が０である間、それぞれのリセット端子Ｒｃに信号の論理値０が入力され、値が０に初期化されている。検査開始端子５０３の信号の論理値が１で、且つそれぞれのクロック入力端子ＣＫｃからクロック信号が入力されると、ｘビットカウンタ１８１５、ｙビットカウンタ１８１６、ｚビットカウンタ１８１７の値は、パルスの立下り信号に同期して１ずつカウントアップする。
【０２１７】
検査時間設定レジスタ１８１１は、パルス数設定端子５０８に接続されており、テストクロック端子５０７に接続されたクロック入力端子ＣＫｒと、ｘビット、ｙビット、およびｚビットを備える。検査時間設定レジスタ１８１１のｘビット、ｙビット、およびｚビットは、それぞれｘビットカウンタ１８１５、ｙビットカウンタ１８１６、およびｚビットカウンタ１８１７に対応する。検査時間設定レジスタ１８１１は、１回あたりの検査を実行する時間と、検査結果解析を実行する時間と、検査実行および検査結果解析の繰返しを実行する回数とを、それぞれｘビットと、ｙビットと、ｚビットとを使って設定することができる。なお、本実施形態の検査時間設定レジスタ１８１１は、ｘビットと、ｙビットと、ｚビットとは、スキャンチェーンを構成しており、このスキャンチェーンによって数値を入力することができるが、これに限定されない。
【０２１８】
比較器１８２１は、入力側がｘビットカウンタ１８１５と、検査時間設定レジスタ１８１１のｘビットとに接続されており、出力側がＯＲゲート１８２７と、インバータ１８２８とに接続されている。比較器１８２１は、ｘビットカウンタ１８１５の値と、検査時間設定レジスタ１８１１のｘビットの値とが等しい場合、信号の論理値１を出力し、それ以外は信号の論理値０を出力する。
【０２１９】
比較器１８２２は、入力側がｙビットカウンタ１８１６と、検査時間設定レジスタ１８１１のｙビットとに接続されており、出力側がｚビットカウンタ１８１７のクロック入力端子ＣＫｃと、インバータ１８２９を介してＡＮＤゲート１８２４および１８２５とに接続されている。比較器１８２２は、ｙビットカウンタ１８１６の値と、検査時間設定レジスタ１８１１のｙビットの値とが等しい場合、信号の論理値１を出力し、それ以外は信号の論理値０を出力する。
【０２２０】
比較器１８２３は、入力側がｚビットカウンタ１８１６と、検査時間設定レジスタ１８１１のｚビットとに接続されており、出力側が検査終了端子１８０７と、ＯＲゲート１８２７とに接続されている。比較器１８２３は、ｚビットカウンタ１８１７の値と、検査時間設定レジスタ１８１１のｚビットの値とが等しい場合、信号の論理値１を出力し、それ以外は信号の論理値０を出力する。
【０２２１】
図２０は、本実施形態の検査結果解析部を示す回路図である。本実施形態の半導体集積回路は上記実施形態５とほぼ同じ構成であり、上記実施形態５の検査結果解析部５１３に代えて、図２０に示す検査結果解析部１８１３を設けた点でのみ異なる。以下に、本実施形態の検査結果解析部１８１３の回路構成を説明する。
【０２２２】
検査結果解析部１８１３は、期待値設定端子５０９、テストクロック端子５０７、検査開始端子５０３、クロック出力端子６０３と接続されたクロック端子９０４、被検査回路部５１４の出力からのデータ入力端子９０５、判定結果出力端子５０４、検査結果データ出力端子５０５、ＭＩＳＲ１８５０、期待値レジスタ１８５１、ＥｘＯＲゲート１８５２、配線ＦＬおよびＯＲゲート１８５３を備える。
【０２２３】
ＭＩＳＲ１８５０は、検査開始端子５０３に接続されたリセット端子Ｒｃ、テストクロック端子５０７とクロック端子９０４とにＯＲゲート１８５３を介して接続されているクロック入力端子ＣＫｍ、およびデータ入力端子９０５のそれぞれに接続されたビットｂ１〜ｂｎを備える。
【０２２４】
ＭＩＳＲ１８５０は、検査開始端子５０３に入力される信号の論理値が０である間、リセット端子Ｒｍに信号の論理値０が入力され、全ビットｂ１〜ｂｎの値が常に０に初期化されている。検査開始端子５０３の値が１で、かつＯＲゲート１８５３からクロック信号が入力されると、パルスの立下り信号に同期して被検査回路部５１４から出力されるデータを圧縮する。さらに本実施形態のＭＩＳＲ１８５０は、シフトレジスタ機能も備えており、ＯＲゲート１８５３から入力されたクロック信号に同期して、検査結果データ出力端子５０５から各ビットの値を１ビットずつ出力する。また、このとき同時に、本実施形態のＭＩＳＲ１８５０は、出力された各ビットの値を、配線ＦＬを通じて各ビットにフィードバックする。つまり、リング状のシフトレジスタとしても機能する。
【０２２５】
期待値レジスタ１８５１は、期待値設定端子５０９に接続されており、テストクロック端子５０７に接続されたクロック入力端子ＣＫｒと、ビットｂ１〜ｂｎとを備える。期待値レジスタ１８５１のビットｂ１〜ｂｎは、それぞれＭＩＳＲ１８５０のビットｂ１〜ｂｎと対応している。期待値レジスタ１８５１は、テストクロック端子５０７から入力されたクロック信号に同期して各ビットの値を１ビットずつ出力する。
【０２２６】
ＥｘＯＲゲート１８５２の入力側は、ＭＩＳＲ１８５０および期待値レジスタ１８５１の出力側に接続されており、ＥｘＯＲゲート１８５２の出力側は、判定結果出力端子５０４に接続されている。
【０２２７】
次に、半導体集積回路１８０１の検査方法を、図を参照しながら説明する。図２１は、本実施形態の半導体集積回路１８０１を検査対象とするＢＩＳＴを示すフローチャートである。本実施形態の半導体集積回路１８０１を検査対象とするＢＩＳＴを実施する際の、半導体集積回路１８０１の各端子における信号波形は、上記実施形態５の図１５と全く同じである。
【０２２８】
実動作時における半導体集積回路１８０１の動作は、上記実施形態５と同様である。すなわち、テストモード端子５０２の値は０に固定される。このとき、ＯＲゲート６１０の出力は１に固定されるため、ＡＮＤゲート６０９の出力は、ＰＬＬ６０４のクロック信号をそのまま出力する。
【０２２９】
まず、図２１に示すように、ステップＳｔ３１で検査を開始する。
【０２３０】
次に、図２１に示すように、ステップＳｔ３２において、ＰＬＬ６０４のクロック信号を、クロック出力端子６０３から出力されないようにする。具体的には、テストモード端子５０２における信号の論理値を１にする。なお、この値は検査中１に固定する。次に、検査開始端子５０３およびテストクロック端子５０７における信号の論理値をいずれも０にする。このとき、クロック制御部１８１０では、フリップフロップ６０５、６０６の出力端子Ｑから出力される値はすべて０になる（出力端子ＮＱはから出力される値はすべて１になる）。このことによって、ＡＮＤゲート６０９の出力は０に固定され、ＰＬＬ６０４のクロック信号は、クロック出力端子６０３から出力されなくなる。また、ｘビットカウンタ１８１５、ｙビットカウンタ１８１６、およびｚビットカウンタ１８１７のそれぞれの値もすべて０になる。
【０２３１】
次に、図２１に示すように、ステップＳｔ３３において検査条件を設定し、入力する。具体的には、検査のために被検査回路部５１４に入力されるクロック信号のパルス数、および検査終了時におけるＭＩＳＲ１８５０の出力値の期待値を設定し、入力する。検査条件の入力は、テストクロック端子５０７からクロック信号を入力し、これに同期してパルス数設定端子５０８、期待値設定端子５０９からそれぞれ検査時間設定レジスタ１８１１、期待値レジスタ１８５１へスキャンインすることによって行なう。このときテストクロック端子５０７から入力するクロック信号は、ＰＬＬ６０４に比較して低周波数で構わない。検査時間設定レジスタ１８１１、期待値レジスタ１８５１へのデータ入力が終了したら、テストクロック端子５０７の値を再び０に固定する。
【０２３２】
上記のステップＳｔ３１〜Ｓｔ３３は、図１５の期間ｔ１に相当する。
【０２３３】
次にステップＳｔ３４では、ＰＬＬ６０４のクロック信号を、クロック出力端子６０３から出力する。このステップＳｔ３４は、図１５の期間ｔ３に相当する。具体的には、図１５に示すｔ２の時点で検査開始端子５０３を１にする。この操作によって、図１５に示すように、クロック出力端子６０３からＰＬＬ６０４のクロック信号が出力され始める。なお、ステップＳｔ３４におけるクロック制御部１８１０の動作は、上記実施形態５のステップＳｔ２５におけるクロック制御部５１０の動作とほぼ同じである。
【０２３４】
クロック出力端子６０３からＰＬＬ６０４のクロック信号が出力され始めると、クロック出力端子６０３から出力されるクロック信号に同期して検査入力データ発生部５１１から擬似乱数が発生される。このとき、カウンタ１８１５は、０から順に１ずつカウントアップし、検査時間設定レジスタ１８１１と同じ値になるまで検査停止端子５０６および検査終了端子１８０７から０を出力する。さらにこのとき同時に、ＭＩＳＲ１８５０は、被検査回路部５１４から出力されるデータを圧縮する。
【０２３５】
次に、ステップＳｔ３５では、検査停止信号をモニターする。このステップＳｔ３５は、図１５に示すｔ４の時点に相当する。ステップＳｔ３５における本実施形態の半導体集積回路１８０１の具体的な動作は以下の通りである。
【０２３６】
ｘビットカウンタ１８１５の値が、検査時間設定レジスタ１８１１のｘビットで指定されたテストクロックのパルス数（すなわち検査実行時間）と等しくなると、比較器１８２１の出力値が１となる。このとき、検査停止端子５０６から検査停止信号である１が出力され、この信号は直ちにクロック制御部１８１０の端子６２０に入力される。このとき、ＡＮＤゲート６１６からの出力信号の論理値は０になるので、フリップフロップ６０５および６０６が０になる。従って、クロック出力端子６０３から出力される信号の論理値は、再び０に固定される。これによって、ｘビットカウンタ１８１５のカウントアップは停止する。これと同時に、検査入力データ発生部５１１からの擬似乱数発生、ＭＩＳＲ１８５０の動作も停止する。
【０２３７】
次にステップＳｔ３６では、ステップＳｔ３３で設定した繰返し回数がすべて終了したか否かを判定する。終了していない場合は、ステップＳｔ３７へ進み、繰返しがすべて終了した場合にはステップＳｔ３８へ進む。
【０２３８】
ステップＳｔ３７では、検査結果解析と次回のＭＩＳＲ１８５０に対する期待値の設定および入力を行なう。具体的には、上記ステップＳｔ３５では、ＰＬＬクロック端子１７０１には常にＰＬＬ６０４からのクロック信号が入力されている。また、比較器１８２１の出力値が１になっている。このため、ＰＬＬ６０４からのクロック信号がｙビットカウンタ１８１６に入力され、ｙビットカウンタ１８１６はカウントアップを開始する。さらに上述のように、ステップＳｔ３５では、クロック出力端子６０３から出力されるクロック信号は停止している。この間にＭＩＳＲ１８５０の値を解析する検査結果解析操作を行なう。なお、検査結果解析を実行する時間（所要パルス数）を、検査時間設定レジスタ１８１１のｙビットに指定する際には、検査結果解析操作を行なうに十分な時間を、テストクロックのクロック周波数およびＰＬＬ６０４のクロック周波数などから予め見積もっておく必要がある。
【０２３９】
検査停止端子５０６から０が出力されている間の検査結果解析部１８１３の動作は、検査結果解析部５１３と同じである。一方、ステップＳｔ３７において、検査停止端子５０６から検査停止信号１が出力されることによって検査が停止すると、テストクロック端子５０７からクロック信号を与え、ＭＩＳＲ１８５０および期待値レジスタ１８５１をシフトレジスタ動作させる。この動作によって、ＭＩＳＲ１８５０中および期待値レジスタ１８５１中に格納された値が１ビットずつ読み出されて、ＥｘＯＲ１８５２で比較される。その比較結果を判定結果出力端子５０４で観測することによって、ＭＩＳＲ１８５０中に格納された検査結果が正常であるか、不良であるかを判別することができる。
【０２４０】
次に、ｙビットカウンタ１８１６の値が、検査時間設定レジスタ１８１１のｙビットの値と等しくなると、比較器１８２２の出力値が１となる。このとき、ｚビットカウンタ１８１７が１だけカウントアップされると同時に、ｘビットカウンタ１８１５およびｙビットカウンタ１８１６のすべてのビットが０に初期化される。これにより、比較器１８２１、１８２２の出力値は０になり、検査終了端子１８０７の信号の論理値は０となる。
【０２４１】
また、本実施形態の検査結果の解析においては、テストクロック端子５０７からクロック信号を入力することによって、ＭＩＳＲ１８５０の値と、被検査回路部５１４が正常である場合の期待値を格納した期待値レジスタ１８５１の値とを、１ビットずつ比較する。さらに、その比較結果を判定結果出力端子５０４で観測することによって、被検査回路部５１４に故障があるか否かが判定すると同時に、テストクロック端子５０７からクロック信号を用いて期待値レジスタ１８５１の値を読み出す際に、同時に期待値設定端子５０９から、次回の繰返しにおけるＭＩＳＲ１８５０の期待値を設定し、期待値レジスタ１８５１に入力する。
【０２４２】
検査結果データ出力端子５０５からＭＩＳＲ１８５０の値をすべて読み出して、読み出した値を故障診断のためのデータとする。これらの操作が終了したら、テストクロック端子５０７の値は再び０に固定する。
【０２４３】
この後、検査時間設定レジスタ１８１１のｙビットに設定した検査結果解析時間が経過すると、検査停止端子５０６の値が０になり、ステップＳｔ３５に戻る。この繰り返し動作は、ｚビットカウンタ１８１７の値が、検査時間設定レジスタ１８１１のｚビットに設定した値（すなわち、検査実行および検査結果解析の繰返しを実行する回数）になるまで継続される。
【０２４４】
これらの検査実行、検査結果解析操作の繰返しを行なうと、そのたびにカウンタ１８１７がカウントアップされる。ｚビットカウンタ１８１７の値が検査時間設定レジスタ１８１１のｚビットの値と等しくなると（すなわち、検査実行および検査結果解析操作の繰返し回数が設定値に達すると）、比較器１８２３の出力値が１となり、検査終了端子１８０７と検査停止端子５０６とが共に１となり、検査を終了する。
【０２４５】
以上の操作によって、ＢＩＳＴによる故障診断を行なうことができる。
【０２４６】
半導体集積回路１８０１におけるクロック制御部１８１０の動作は、上記実施形態５とほぼ同じであり、上記図１５（ａ）および図１５（ｂ）に示すようにＰＬＬ６０４から出力されたクロック信号のパルスが、クロック制御部１８１０のＡＮＤゲート６０６から完全な形で出力される。従って、ＰＬＬ６０４から出力されたクロック信号が完全な形で回路内の各部（検査入力データ発生部５１１、検査終了部１８１２、検査結果解析部１８１３、被検査回路部５１４）へ供給されるため、回路内の各部の誤動作を招くことがない。このため、回路内の各部の誤動作を招くことがない。
【０２４７】
つまり、半導体集積回路１８０１内のＰＬＬ６０４を用いて、ＢＩＳＴに必要な実動作時の周波数のクロック信号を使用できるため、高速なテスタが不要となる。
【０２４８】
特に、本実施形態の検査結果解析部１８１３を用いた場合、ＭＩＳＲ１８５０中に格納された検査結果の値を、テストクロック端子５０７からのクロック信号に同期して、各ビットの値を検査結果データ出力端子５０５から１ビットずつ読み出すことができるので、回路中の故障個所を特定するための情報を得ることができる。また、本実施形態の検査結果解析部１８１３は、ＭＩＳＲ１８５０から出力された各ビットの値を配線ＦＬを通じて各ビットにフィードバックする、リング状のシフトレジスタとしても機能するので、ＭＩＳＲ１８５０からの値の読み出しが完了した時点では、ＭＩＳＲ１８５０中の値は、再び読み出し前の状態へ戻る。この特徴を使って、故障診断を行なうことができる。
【０２４９】
なお、本実施形態では、ＭＩＳＲ１８５０から出力された各ビットの値を各ビットにフィードバックする配線ＦＬを設けているが、勿論配線ＦＬを設けない構成としてもよい。
【０２５０】
（実施形態８）
本実施形態では、半導体集積回路５０１を検査する方法として、図２２に示す半導体集積回路の検査方法を行なう場合について説明する。図２２は、半導体集積回路１８０１に対する検査方法を示したフローチャートである。図２２に示す半導体集積回路の検査方法は、検査停止端子５０６の信号をモニターするステップＳｔ３７’のみが、上記実施形態７の半導体集積回路の検査方法と異なり、その他のステップは上記実施形態７と同じである。従って、以下にステップＳｔ３７’のみ説明する。
【０２５１】
ステップＳｔ３７’では、故障が検出されたかどうかを判定する。具体的には、ステップＳｔ３７’では、ステップＳｔ３７において、判定結果出力端子５０４で故障が観測されたかどうかを判定し、もし故障が観測されていなければ、検査時間設定レジスタ１８１１にｙビットで設定した検査結果解析時間が経過した後、自動的にステップＳｔ３５へ進む。
【０２５２】
一方、故障が観測されていれば、ただちにステップＳｔ３９へ進み、検査を終了する。この場合、故障診断は最後に故障が検出された時点でのＭＩＳＲ１８５０から読み出された故障した値と、それまでの繰返しにおける検査結果解析操作において、ＭＩＳＲ１８５０から読み出された正常な値（まだ故障の影響が現れていない時の値）を使って故障診断が行なわれる。
【０２５３】
上記実施形態７と比較すると、本実施形態の半導体集積回路の検査方法は、故障が検出された時点で検査を終了するので、検査時間が短くて済む。
【０２５４】
【発明の効果】
本発明によれば、実動作時と同じ周波数の波形の安定したクロック信号を使用して検査を実行することができる。
【図面の簡単な説明】
【図１】図１は、半導体集積回路の回路図である。
【図２】図２は、図１に示すクロック制御部およびクロック生成部のさらに詳しい回路図を示す。
【図３】図３は、図１におけるスキャンフリップフロップの内部構成を示す回路図である。
【図４】図４は、ディレイテストを示すフローチャートである。
【図５】図５は、ディレイテストを実施する際の、半導体集積回路の各端子における信号波形を示す図である。
【図６】図６は、クロック制御部を示す回路図である。
【図７】図７は、クロック制御部を示す回路図である。
【図８】図８は、クロック制御部を示す回路図である。
【図９】図９は、ディレイテストを実施する際の、半導体集積回路の各端子における信号波形を示す図である。
【図１０】図１０は、半導体集積回路の回路図である。
【図１１】図１１は、図１０におけるクロック制御部を示す回路図である。
【図１２】図１２は、図１０における検査終了制御部の回路図である。
【図１３】図１３は、図１０における検査結果解析部の回路図である。
【図１４】図１４は、ＢＩＳＴを示すフローチャートである。
【図１５】図１５は、ＢＩＳＴを実施する際の、半導体集積回路の各端子における信号波形を示す図である。
【図１６】図１６は、半導体集積回路に対する検査方法を示したフローチャートである。
【図１７】図１７は、半導体集積回路の回路図である。
【図１８】図１８は、図１７におけるクロック制御部を示す回路図である。
【図１９】図１９は、図１７における検査終了制御部１８１２の回路図である。
【図２０】図２０は、検査結果解析部を示す回路図である。
【図２１】図２１は、半導体集積回路を検査対象とするＢＩＳＴを示すフローチャートである。
【図２２】図２２は、半導体集積回路を検査対象とするＢＩＳＴを示すフローチャートである。
【図２３】図２３は、従来の半導体集積回路を示す回路図である。
【図２４】図２４（ａ）および図２４（ｂ）は、ディレイテストを実施する際の、従来の半導体集積回路の各部の信号波形を示す図である。
【図２５】図２５（ａ）および図２５（ｂ）は、ＢＩＳＴを実施する際の、従来の半導体集積回路の各部の信号波形を示す図である。
【符号の説明】
１、５０１、１８０１  半導体集積回路
２、５０２  スキャンイネーブル端子
３  スキャンイン端子
４  スキャンアウト端子
５、２５、３５、４５  クロック制御部
６、２６、３６、４６  クロック生成部
７  セレクタ
８  組合せ回路部
９  ＡＮＤゲート
１０、１１、１２  スキャンフリップフロップ
ＳＥ  スキャンイネーブル端子
ＳＩ  スキャンイン端子
ＣＫ、ＣＫ２、ＣＫ３、ＣＫ４  クロック入力端子
Ｄ、Ｄ２、Ｄ３、Ｄ４  データ入力端子
Ｑ、Ｑ２、Ｑ３、Ｑ４、ＮＱ２、ＮＱ４  出力端子
Ｒ２、Ｒ４  リセット端子
３０１  フリップフロップ
３０２  セレクタ
１３  クロック制御端子
１４  テストモード端子
１５  テストクロック端子
１６  クロック切替え端子
２０４  ＰＬＬ
２０５、２０６、２０７、２０８  フリップフロップ
２０９、２１６  ＡＮＤゲート
２１０、２１１  ＯＲゲート
２１２、２１７  インバータ
２１３  出力端子
２１５  カウンタ
２２０  フリップフロップ
５０２  テストモード端子
５０３  検査開始端子
５０４  判定結果出力端子
５０５  検査結果データ出力端子
５０６  検査停止端子
５０７  テストクロック端子
５０８  パルス数設定端子
５０９  期待値設定端子
５１０、１８１０  クロック生成部
５１１  検査入力データ発生部
５１２、１８１２  検査終了制御部
５１３、１８１３  検査結果解析部
５１４  被検査回路部
６０３  クロック出力端子
６０４  ＰＬＬ
６０５、６０６  フリップフロップ
６０９、６１６  ＡＮＤゲート
６１０  ＯＲゲート
６１２、６１７  インバータ
６２０  検査停止端子
８０４  クロック入力端子
８１０  カウンタ
８１１  レジスタ
８１２  ＥｘＯＲゲート
８１３  ＮＯＲゲート
Ｒｃ、Ｒｍ  リセット端子
ＣＫｃ、ＣＫｒ  クロック入力端子、
９０４  クロック端子
９０５  データ入力端子
９１０、１８５０  ＭＩＳＲ
９１１、１８５１  期待値レジスタ
９１２、１８５２  ＥｘＯＲゲート
９１３  ＯＲゲート
Ｒｃ  リセット端子
ＣＫｍ  クロック入力端子
ＣＫｒ  クロック入力端子
１７０１  ＰＬＬクロック端子
１８０７  検査終了端子
１８１５、１８１６、１８１７  カウンタ
１８２１、１８２２、１８２３  比較器
１８２４、１８２５  ＡＮＤゲート
１８２６、１８２７、１８５３  ＯＲゲート
１８２８、１８２９  インバータ
【図１】
0004971557.tif 000002
【図２】
0004971557.tif 000003
【図３】
0004971557.tif 000004
【図４】
0004971557.tif 000005
【図５】
0004971557.tif 000006
【図６】
0004971557.tif 000007
【図７】
0004971557.tif 000008
【図８】
0004971557.tif 000009
【図９】
0004971557.tif 000010
【図１０】
0004971557.tif 000011
【図１１】
0004971557.tif 000012
【図１２】
0004971557.tif 000013
【図１３】
0004971557.tif 000014
【図１４】
0004971557.tif 000015
【図１５】
0004971557.tif 000016
【図１６】
0004971557.tif 000017
【図１７】
0004971557.tif 000018
【図１８】
0004971557.tif 000019
【図１９】
0004971557.tif 000020
【図２０】
0004971557.tif 000021
【図２１】
0004971557.tif 000022
【図２２】
0004971557.tif 000023
【図２３】
0004971557.tif 000024
【図２４】
0004971557.tif 000025
【図２５】
0004971557.tif 000026