(57)【要約】【課題】半導体集積回路のスキャンテストにおいて、通常モードにおける動作速度を低下させず、実速度検査を網羅的に行う。【解決手段】シフト動作時は適当な周波数で回路を動作させ、キャプチャ動作時は実動作時間で回路を動作させ、かつキャプチャ動作時に動作周波数特性の異なる回路群に対してそれぞれ異なるデューティ比を実効的に実現させるために、キャプチャ動作サイクルの直前のシフト動作サイクルにおいてそれぞれのクロックのデューティ比を変え、キャプチャ動作サイクルにおいてはそれぞれのクロックを同一のデューティ比とする。その際、シフト動作とキャプチャ動作の切り替えを指定するＮＴ信号を生成するＮＴ信号制御回路を半導体集積回路の内部に設け、ＮＴ信号による動作が１クロックサイクル内に収まるようにする。【選択図】  図４
2005326203.tif 000002
【特許請求の範囲】
【請求項１】
スキャンチェーンを用いた半導体集積回路の実速度検査方法であって、シフト動作時は適当な周波数で回路を動作させ、動作周波数特性の異なる回路群に対してそれぞれ異なるデューティ比を実効的に実現させるクロックによりキャプチャ動作時は実動作時間で回路を動作させる半導体集積回路の実速度検査方法。
【請求項２】
前記キャプチャ動作時に動作周波数特性の異なる回路群に対してそれぞれ異なるデューティ比を実効的に実現させるクロックを、キャプチャ動作サイクルの直前のシフト動作サイクルにおいてはそれぞれのクロックのデューティ比を変え、キャプチャ動作サイクルにおいてはそれぞれのクロックを同一のデューティ比とする請求項１記載の半導体集積回路の実速度検査方法。
【請求項３】
前記スキャンチェーンは前記動作周波数特性の異なる２つ以上の回路群を接続しない請求項１記載の半導体集積回路の実速度検査方法。
【請求項４】
前記半導体集積回路の内部に有するＮＴ信号制御回路により、スキャンチェーンを構成するフリップフロップに対してシフト動作とキャプチャ動作の切り替えを指定する信号（ＮＴ信号）を生成する請求項１記載の半導体集積回路の実速度検査方法。
【請求項５】
前記シフト動作とキャプチャ動作の切り替えの指定を、前記ＮＴ信号制御回路が生成するＮＴ信号または外部から与えられるＮＴ信号を選択して行う請求項４記載の半導体集積回路の実速度検査方法。
【請求項６】
前記ＮＴ信号制御回路を、キャプチャ動作時にＮＴ信号を発生するためのカウンタと、前記カウンタを初期化するリセット信号入力と、カウント数を指定するカウント数制御入力とで構成し、初期化後に前記カウンタのカウントを開始し、前記カウント数をカウントすると１クロックサイクルのＮＴ信号を発生させ、再び初期化後のカウント開始動作に戻りカウントを継続する請求項４記載の半導体集積回路の実速度検査方法。
【請求項７】
前記カウンタを、カウンタを構成するフリップフロップと、カウント値を出力するカウントロジック回路と、前記カウンタの値と前記カウント数制御入力が指定するカウント数を比較するコンパレータとで構成し、前記リセット信号入力に入力されるリセット信号により値０に初期化した後にカウントを開始し、前記コンパレータにより一致が検出されると１クロックサイクルのＮＴ信号を出力した後に値１に設定し、再びカウントを継続する請求項６記載の半導体集積回路の実速度検査方法。
【請求項８】
前記動作周波数特性の異なる回路群毎に、スキャンチェーンを構成するフリップフロップに対してシフト動作とキャプチャ動作の切り替えを指定する信号（ＮＴ信号）をそれぞれ遅延値を調整する遅延回路を介して接続する請求項１記載の半導体集積回路の実速度検査方法。
【請求項９】
いずれのフリップフロップにも接続されず外部端子に直接接続される組合せ回路の出力を入力する観測用フリップフロップを前記半導体集積回路に追加してスキャンチェーンに接続する請求項１記載の半導体集積回路の実速度検査方法。
【請求項１０】
検査用テストパターンを作成する際のキャプチャ動作時の期待値を、前記半導体集積回路のスキャンテストにおいてスキャンチェーンの出力端子から獲得する請求項１から９のいずれか一項記載の半導体集積回路の実速度検査方法。
【請求項１１】
実速度保証を行う必要のある回路部分に対してのみ請求項１または２記載の半導体集積回路の実速度検査方法を用いてテストパターンを生成し、実速度保証を行う必要の無い回路部分に対しては請求項１または２記載の半導体集積回路の実速度検査方法によらず相応の方法によりテストパターンを生成する半導体集積回路の実速度検査方法。
【請求項１２】
請求項１から９のいずれか一項記載の実速度検査手法を実施する半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路のテスト方法に関し、特に速度故障を検出する実速度検査方法に関するものである。
【背景技術】
【０００２】
半導体集積回路のスキャンテスト技術やダイレクトアクセステスト技術が非特許文献１に記載されている。半導体集積回路のテスト技術では、全てのブロックおよび全ての信号パスを短時間でテストできること、テスト用の付加回路が小さいこと、テスト用の付加配線が少ないこと、通常モードにおける動作速度があまり低下しないことが望まれる。このテスト技術を用いた一般的な手法は半導体集積回路内部の縮退故障を検出するのに非常に有効であり、現在も広く使用されている。
【０００３】
また、この手法を用いて半導体集積回路を設計した場合は、コンピュータプログラムにより半導体集積回路の出荷検査の際に用いるテストプログラムを生成し、ＬＳＩテスタでの出荷検査における入力信号値と出力期待値を与えることができる。しかし、この手法を用いた場合は、一般に半導体集積回路の実動作速度より大幅に速度を落として検査を行うため、半導体集積回路の縮退故障を検出することはできるが、速度故障を検出することはできない。
【０００４】
従来の半導体集積回路の実速度検査方法としては、検査対象となっている半導体集積回路を搭載する機器において想定しうる半導体集積回路の入力端子の変化をＬＳＩテスタで半導体集積回路に対して入力し、半導体集積回路の出力端子がどのように変化するかをＬＳＩテスタで評価する手法が用いられる。
【０００５】
以下、従来の半導体集積飽回路の実速度検査方法について説明する。図１は従来の実速度検査方法における半導体集積回路の周辺状況を示す図である。図１において、１は半導体集積回路、２は入力端子、３は出力端子、４はＬＳＩテスタからの入力信号線、５はＬＳＩテスタへの出力信号線、６はＬＳＩテスタへの出力信号線の外部負荷である。
【０００６】
従来の実速度検査方法では、まず、ＬＳＩテスタに半導体集積回路１を実装し、半導体集積回路１の実機動作時に想定しうる入力パターンを入力信号線４から入力端子２に入力する。この入力により半導体集積回路１は実機上で動作した状態と同じ動作をする。半導体集積回路１の動作結果は出力端子３から出力される。出力端子３には出力信号線５が接続されており、ＬＳＩテスタはこの出力信号線５の状態をあらかじめ準備しておいた出力期待値と比較することで、半導体集積回路１が良品か不良品かを判断する。
【０００７】
また、半導体集積回路の実速度検査方法として、半導体集積回路内部にロジック部分の故障を診断するためのビルトインセルフテスト回路を設け、実動作速度でそのビルトインセルフテストを行うことによって半導体集積回路の速度故障を診断する手法も用いられている。
【非特許文献１】著者  W.M.Needham, "Designer's Guide to Testable ASIC Devices", Ch.5, pp.87-124, Van Nostrand Reinhold, New York 1991
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来の実速度検査手法では、ＬＳＩテスタの出力信号線の外部負荷６により出力端子３の信号が鈍ることが問題となる。一般に外部負荷６は半導体集積回路１が実装される実機における外部負荷より大幅に大きいため、出力端子３の信号変化が１クロックサイクル内に収まらない場合が多い。そのため、出力端子３の信号が変化する個所における出力期待値を数クロックサイクル分を削除して検査している。
【０００９】
図２は、従来の半導体集積回路の実速度検査方法における半導体集積回路に対する入力波形と出力波形を示すタイムチャートである。図２において、７は半導体集積回路１に入力するクロック、８は出力端子３から出力される理想出力、９は出力端子３から出力される実際の出力、１０はＬＳＩテスタで使用する出力期待値である。
【００１０】
半導体集積回路１はクロック７で動作し、出力端子３から理想出力８に示すような波形を出力しようとする。しかし、外部負荷６の影響により、実際の出力９に示すように鈍った波形が出力される。ＬＳＩテスタでは実際の出力９のような曖昧な出力信号を判定することができないため、出力期待値１０に示すように、出力が変化すると思われる箇所から数クロック分の期待値を削除して比較を行っている。出力期待値１０で、ＬはＬｏｗレベルの期待値、Ｘは期待値比較を行わない箇所を意味する。
【００１１】
また、ＬＳＩテスタで入力するパターン次第では、半導体集積回路全体が動作する訳ではない場合が多く、仮に出力期待値の全てを比較したとしても、半導体集積回路１のごく一部分しか検査していないことになる。以上述べたように、従来の半導体集積回路の実速度検査手法では半導体集積回路のごく一部しか実速度保証を行っていないという問題がある。
【００１２】
本発明は、半導体集積回路のテストにおいて、通常モードにおける動作速度を低下させず、実速度検査を網羅的に行うことができる実速度検査方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の半導体集積回路の実速度検査方法は、スキャンチェーンを用いた半導体集積回路の実速度検査方法であって、シフト動作時は適当な周波数で回路を動作させ、動作周波数特性の異なる回路群に対してそれぞれ異なるデューティ比を実効的に実現させるクロックによりキャプチャ動作時は実動作時間で回路を動作させる。
【００１４】
上記実速度検査方法によれば、回路群の動作周波数特性に応じた実効的デューティ比を有するクロックによりキャプチャ動作時に実動作時間で回路を動作させることができるため、大規模なＢＩＳＴ回路を追加する必要が無く、実機動作を再現するテストパターンを作成する必要も無く、動作周波数特性の異なる回路部分の実速度検査を行うための個別テストパターンを作成する必要も無く、半導体集積回路の実速度検査を網羅的に行うことができる。
【００１５】
本発明の実速度検査方法において、前記キャプチャ動作時に動作周波数特性の異なる回路群に対してそれぞれ異なるデューティ比を実効的に実現させるクロックを、キャプチャ動作サイクルの直前のシフト動作サイクルにおいてはそれぞれのクロックのデューティ比を変え、キャプチャ動作サイクルにおいてはそれぞれのクロックを同一のデューティ比とする。
【００１６】
上記実速度検査方法によれば、異なるデューティ比を有するクロックをキャプチャ動作サイクルの直前のシフト動作サイクルにおいてそれぞれのクロックのデューティ比を変えて実現するために、キャプチャ動作サイクルにおいてはそれぞれのクロックを同一のデューティ比としながら、実効的に回路群の動作周波数特性に応じたデューティ比を有するクロックを実現することができる。
【００１７】
本発明の実速度検査方法において、前記スキャンチェーンは前記動作周波数特性の異なる２つ以上の回路群を接続しないものである。
【００１８】
上記実速度検査方法によれば、動作周波数特性の異なる回路群のフリップフロップ間を跨ぐようなスキャンチェーンの張り方が避けられるため、スキャンチェーン間におけるタイミングエラーやホールドエラーが発生する可能性を回避することができる。
【００１９】
本発明の実速度検査方法において、前記半導体集積回路の内部に有するＮＴ信号制御回路により、スキャンチェーンを構成するフリップフロップに対してシフト動作とキャプチャ動作の切り替えを指定する信号（ＮＴ信号）を生成する。
【００２０】
上記実速度検査方法によれば、ＮＴ信号を生成するＮＴ信号制御回路を半導体集積回路の内部に有するため、半導体集積回路の動作周波数が高くなった場合にクロックサイクルに合わせてＮＴ信号を切り替えることができ、外部から供給した場合はキャプチャ動作サイクル内で処理しなければならず切り替えが困難になるという問題を回避できる。また、ＮＴ信号制御回路を遅延が小さくなる最も有利な場所に配置することが可能なため、ＮＴ信号の遅延を小さくすることができる。
【００２１】
本発明の実速度検査方法において、前記シフト動作とキャプチャ動作の切り替えの指定を、前記ＮＴ信号制御回路が生成するＮＴ信号または外部から与えられるＮＴ信号を選択して行う。
【００２２】
上記実速度検査方法によれば、ＮＴ信号制御回路が生成するＮＴ信号または外部から与えられるＮＴ信号の一方を任意に選択することができるため、例えば、半導体集積回路の出荷検査の際に不具合があった場合には外部から与えられるＮＴ信号によりデバッグを行うことができる。
【００２３】
本発明の実速度検査方法において、前記ＮＴ信号制御回路を、キャプチャ動作時にＮＴ信号を発生するためのカウンタと、前記カウンタを初期化するリセット信号入力と、カウント数を指定するカウント数制御入力とで構成し、初期化後に前記カウンタのカウントを開始し、前記カウント数をカウントすると１クロックサイクルのＮＴ信号を発生させ、再び初期化後のカウント開始動作に戻りカウントを継続する。
【００２４】
上記実速度検査方法によれば、組合せ回路の出力を取り込む観測用フリップフロップを有するため、半導体集積回路の動作周波数が高くなり、１クロックサイクル内で出力端子に正しい信号を観測するのが困難になった場合に、シフト動作で観測用フリップフロップの内容をシリアル出力させて観測することができる。
【００２５】
本発明の実速度検査方法において、検査用テストパターンを作成する際のキャプチャ動作時の期待値を、前記半導体集積回路のスキャンテストにおいてスキャンチェーンの出力端子から獲得する。
【００２６】
本発明の実速度検査方法において、実速度保証を行う必要のある回路部分に対してのみ本発明の実速度検査方法を用いてテストパターンを生成し、実速度保証を行う必要の無い回路部分に対しては本発明の実速度検査方法によらず相応の方法によりテストパターンを生成する。
【００２７】
上記実速度検査方法によれば、実速度保証を行う必要のある回路部分に対してのみ本発明の実速度検査方法を用いてテストパターンを生成し、実速度保証を行う必要の無い回路部分に対しては例えばシフト動作の周波数で行うテストパターンを生成し、プログラムでＬＳＩテスタのクロック周波数を切り替えることにより、過剰なテストによる余分なコストアップを避けることができる。
【発明の効果】
【００２８】
本発明によれば、開発日程および半導体集積回路の単価に影響のある大規模なＢＩＳＴ回路を追加すること無く、かつ、半導体集積回路が実動作周波数で動作するかどうかを網羅的にテストすることができ、かつ、周波数の異なる回路が半導体集積回路内部にある場合においてもそれらを同時にテストすることができる、優れた半導体集積回路の実速度検査方法を提供することができる。
【発明を実施するための最良の形態】
【００２９】
（実施の形態１）
図３は本発明の第１の実施形態の半導体集積回路の実速度検査方法を示す回路構成図である。図３において、１２は半導体集積回路、１３、１４はそれぞれ半導体集積回路１２の第１および第２のクロック入力、１６、１７はそれぞれ第１のクロックおよび第２のクロックの遅延を調節するための遅延調整セル、２０、２２は第１のクロックで動作するフリップフロップ、２３、２５は第２のクロックで動作するフリップフロップ、２１、２４はファンクションロジック、２８はスキャンテストにおけるシフトモードとキャプチャモードを切り替えるＮＴ信号を供給するＮＴ信号入力端子である。
【００３０】
また、１８、１９はそれぞれ遅延調整セル１６および１７の出力信号線であり、それぞれフリップフロップ２０、２３に供給される。ファンクションロジック２１、２４の出力はそれぞれ２２、２５に供給される。さらに、３１は半導体集積回路１２内のフリップフロップにＮＴ信号入力端子２８から入力されたＮＴ信号を供給する信号線である。
【００３１】
図４は本発明の第１の実施形態の半導体集積回路の実速度検査方法を示すタイムチャートである。図４において、５０は第１のクロック入力１３の波形、５１は第２のクロック入力１４の波形、５２はＮＴ信号の波形、５３はシフト動作時における第１のクロック入力１３および第２のクロック入力１４の１サイクル幅、５４はシフト動作時における第１のクロック入力１３および第２のクロック入力１４の立ち上がりエッジの間隔である。
【００３２】
また、５５はシフト動作時の第１のクロック入力１３および第２のクロック入力１４の最後のシフト動作におけるクロックの立ち上がりエッジ、５６は第１のクロック入力１３および第２のクロック入力１４のキャプチャ動作時におけるクロックの立ち上がりエッジ、５７はキャプチャ動作時における第１のクロック入力１３の立ち上がりエッジの間隔、５８はキャプチャ動作時における第２のクロック入力１４の立ち上がりエッジの間隔である。
【００３３】
以上のように構成された半導体集積回路の実速度検査方法について、以下に信号の流れを説明する。まずＮＴ信号入力端子２８から入力するＮＴ信号をシフトモードにし、信号線３１を経由して全てのスキャンチェーン上のフリップフロップに供給する。通常、スキャンチェーンの入力は半導体集積回路１２の外部に論理的に切り出されているので、そこから全スキャンフリップフロップを任意の値にコントロールするための値を入力する。
【００３４】
全スキャンチェーン上の全フリップフロップを任意の値に設定し終わったら、ＮＴ信号をキャプチャモードにする。シフト動作時のクロックの立ち上がりエッジの間隔５４は、ＬＳＩテスタで安定した期待値比較が可能なように、一般に十分に広い間隔にする。
【００３５】
キャプチャ動作時のクロックの立ち上がりエッジ５６は、第１のクロック入力１３と第２のクロック入力１４で必ずそろえる。ここで、回路の動作周波数は、第１のクロック入力１３で動作する回路（図３の２０〜２２が相当）の方が第２のクロック入力１４で動作する回路（図３の２３〜２５が相当）より高速であるとする。
【００３６】
その場合に、最後のシフト動作における第１のクロック入力１３と第２のクロック入力１４の立ち上がりエッジに、立ち上がりエッジ５５で示すように位相差をつける。かつ、キャプチャ動作時における第１のクロック入力１３の立ち上がりエッジの間隔５７およびキャプチャ動作時における第２のクロック入力１４の立ち上がりエッジの間隔５８を、それぞれのクロックにおける実動作周波数の周期と同じようになるように遅延調整セルにより調節する。これで、キャプチャ動作時に実動作周波数で回路を動作させることが可能になる。
【００３７】
一方、半導体集積回路１２の出力端子の接続されている組合せ回路が故障しているか否かについては、一般にシフト動作が終わった時点での半導体集積回路１２の出力を、キャプチャ動作時のクロック５６を入力する前に比較する。すなわち、立ち上がりエッジ５５によって変化する出力端子の出力値を、立ち上がりエッジ５６の手前で期待値と比較することになる。
【００３８】
しかしながら、半導体集積回路１２の動作周波数が高くなると、１クロックサイクル内で半導体集積回路１２の出力端子に正しい信号を得るのは困難な場合があるため、この出力端子に接続されている組合せ回路の終端に観測用のフリップフロップを設け、これに値を取り込み、シフト動作でシリアル出力させて観測するようにする。
【００３９】
図５は、本実施形態において、半導体集積回路の出力端子に接続されている組合せ回路の終端に観測用のフリップフロップを設けた場合の回路構成図である。図５において、３２〜３４はそれぞれファンクションロジック３５〜３７を介して出力端子４１〜４３にそれぞれ信号を出力するフリップフロップ、３８〜４０はそれぞれ出力端子４１〜４３から出力される信号を取り込む観測用フリップフロップである。また、４４はフリップフロップ３８〜４０を通るスキャンチェーン、４５はスキャンチェーン４４の出力端子である。
【００４０】
立ち上がりエッジ５５によって変化する出力端子４１〜４３の出力値は、立ち上がりエッジ５６の手前で比較を行う必要があるが、立ち上がりエッジ５５と立ち上がりエッジ５６の幅５７は半導体集積回路１２の実動作周波数に合わせる必要があり、間隔を非常に狭くする必要がある。よって、出力端子４１〜４３の信号変化をこの時間内に観測できない場合が多い。
【００４１】
そのため、立ち上がりエッジ５５によって起こった出力端子４１〜４３の信号変化を、立ち上がりエッジ５６により観測用フリップフロップ３８〜４０に取り込み、観測用フリップフロップ３８〜４０に通してあるスキャンチェーン４４を経由して、半導体集積回路１２の出力端子４５から出力させる。
【００４２】
これにより、キャプチャ動作時の出力端子４１〜４３からの出力値はシフト動作時に出力端子４５からシリアル出力されることになり、フリップフロップ３２〜３４およびファンクションロジック３５〜３７が実速度で動作しているかどうかの判断を行うことができるため、立ち上がりエッジ５５から立ち上がりエッジ５６までのサイクル内で出力端子４１〜４３の期待値を比較する必要が無くなる。
【００４３】
（実施の形態２）
通常ＬＳＩテスタにおいてはクロック信号以外のデータ入力はテストパターンのサイクル単位でしか動作させることができないため、上述したようにデューティを調整したクロックを使用した場合に、キャプチャサイクルにおけるレートの始めからクロックを入力するまでの非常に狭い幅でＮＴ信号を動作させ、かつ、半導体集積回路１２の全てのスキャンフリップフロップにＮＴ信号を到達させる必要がある。
【００４４】
しかしながら、半導体集積回路１２の動作周波数が高くなると、所望のサイクルでＮＴ信号を切り替えることが困難になる。これを解決するために、本実施形態では半導体集積回路１２の内部にＮＴ信号を生成するための回路を搭載し、これによりＮＴ信号を切り替える。
【００４５】
図６は本発明の第２の実施形態の半導体集積回路の実速度検査方法を示す回路構成図である。図６において、１５はクロック入力１３の信号線、２６はＮＴ信号制御回路、２７はＮＴ信号制御回路２６に入力するＮＴ経路切り替え端子、２９はＮＴ信号制御回路２６でカウントする数を入力するカウント数入力端子、３０はＮＴ信号制御回路２６から出力されるＮＴ信号の遅延を調節するための遅延調整回路、１０９はＮＴ信号制御回路２６から出力されるＮＴ信号の信号線、１１８はＮＴ信号制御回路２６のリセット入力端子、１１９はＮＴ信号制御回路２６が通常動作モードかスキャンテスト動作モードかを切り替えるモード切り替え入力端子である。
【００４６】
図７は本発明の第２の実施形態の半導体集積回路の実速度検査方法を示すタイムチャートである。図７において、５９はキャプチャ動作サイクルのレートの開始部、６０は第１の実施形態のように外部から直接ＮＴ信号を動作させた場合の動作許容幅を本実施形態のＮＴ信号５２と比較するために示したものである。
【００４７】
以下、本実施形態の詳細を説明する。まず、モード切り替え入力１１９から入力された信号が通常動作モードになっている場合は、ＮＴ信号制御回路２６から出力されるＮＴ信号１０９には半導体集積回路１２の内部のフリップフロップが通常動作モードとなる信号が出力される。
【００４８】
例えば、モード切り替え入力１１９の値が“０”のときに通常動作モード、“１”のときにスキャンテスト動作モードになるものとし、また、ＮＴ信号が“０”のとき（キャプチャモード）では内部のフリップフロップは通常動作状態（キャプチャ動作状態でもある）になり、“１”のとき（シフトモード）ではシフト動作状態になるものとすると、モード切り替え入力端子１１９から“０”が入力された場合は、ＮＴ信号制御回路２６に入力されるモード切り替え信号１１９以外の信号がどのような値であってもＮＴ信号１０９には“０”が出力され、半導体集積回路１２は通常動作状態になる。
【００４９】
モード切り替え入力端子１１９から“１”が入力され、半導体集積回路１２がスキャンテストモードになっている場合は以下のように動作する。ＮＴ信号制御回路２６は半導体集積回路１２の外部より入力されるリセット入力によって初期化される。モード切り替え入力１１９がスキャンテスト動作モードになっている場合は、初期化された時点で半導体集積回路１２の内部のフリップフロップがシフトモードとなる信号を出力する。
【００５０】
ＮＴ信号制御回路２６で生成したＮＴ信号は、遅延調整回路３０および信号線３１を通じて半導体集積回路１２の内部の全スキャンチェーンに接続されている全スキャンフリップフロップに供給される。その際、動作周波数の異なるクロック系統が半導体集積回路１２内部にある場合は、理由は後述するが、そのクロック系統毎に分けて遅延を調整する必要があるため、ＮＴ信号制御回路２６の先でクロック系統の数だけ分岐させ、それぞれに遅延調整回路を付ける。図６においては、フリップフロップ２０と２２、フリップフロップ２３と２５、フリップフロップ３２〜３４、フリップフロップ３８〜４０がそれぞれ動作周波数が異なるものとして図示している。
【００５１】
一般に半導体集積回路内において動作周波数の異なる回路は規模に大きな差がある場合が多い。すなわち、クロック系統毎に分割した遅延調整回路３０の先に接続されているフリップフロップの数が大きく異なり、信号線３１による遅延差はそれぞれ異なるため、図３に示す遅延調整回路３０のように分割し、遅延を調節する必要がある。
【００５２】
初期化後、ＮＴ制御回路２６ではカウント数入力端子２９から入力されるカウント数分のカウント動作を行い、フルカウントの際に１クロックサイクル分だけＮＴ信号１０９を反転させる。ＮＴ制御回路２６を具備しない場合は、前述したＬＳＩテスタの特徴によりＮＴ信号はキャプチャ動作のレート開始部５９からしか変化させることができないため、動作許容幅６０は非常に狭いものになり、非常にシビアなタイミングでの制御が必要になる。これに対して、ＮＴ信号制御回路２６を具備する場合は幅５７が動作許容幅となるため、幅６０と比べて広くなり、かつ、ＮＴ信号が半導体集積回路内部で自動的に生成されるため、外部から入力するタイミングを考慮する必要が無い。
【００５３】
また、半導体集積回路１２の外部からＮＴ信号を入力した場合は、半導体集積回路の入力セルによる遅延が大きく、かつチップ上のフリップフロップまでの遅延を均等にするための遅延回路を数多く挿入する必要があるが、本発明のＮＴ信号制御回路を用いた場合は、ＮＴ信号制御回路を遅延が小さくなる最も有利な場所に配置することが可能なため、ＮＴ信号の遅延を小さくすることができる。
【００５４】
また、ＮＴ信号制御回路２６には外部から直接ＮＴ信号を制御するためのＮＴ経路切り替え端子２７を持たせておく。この切り替え端子２７の値を変えることで、半導体集積回路１２の内部で用いるＮＴ信号を、ＮＴ信号制御回路１２の内部で生成したものか、ＮＴ信号入力端子２８から入力したものかを切り替えることが可能なようにしておく。これは、何らかの理由で本発明の実速度検査手法に不具合が生じた場合に、デバッグ時に制御する必要があるＮＴ信号を半導体集積回路１２の外部から直接コントロール可能なようにするためである。
【００５５】
次に、ＮＴ制御回路２６の内部動作を詳細に説明する。図８はＮＴ制御回路２６の内部構成例を示す回路図である。図８において、１０６はカウント数入力２９によりカウント数を制御可能なカウンタ、１０７はＮＴ信号としてＮＴ入力信号２８またはカウンタ１０６の出力を選択するセレクタ、１０８はカウンタ１０６の出力信号線、１２１はモード切り替え入力１１９がスキャンテスト動作モードのときにのみＮＴ信号１０９がシフトモードになることを可能にするための論理積回路である。
である。
【００５６】
図９はカウント数を制御可能なカウンタ１０６の内部構成例を示す回路図である。図９において、１１０はカウンタを構成するロジック１１１の出力値とカウント数入力信号２９の値の比較を行うコンパレータ、１１２はカウンタを構成する最下位ビットのフリップフロップ、１１３はカウンタを構成する最下位ビッ１１２以外のフリップフロップ、１１４はフリップフロップ１１２および１１３の値によるカウント出力、１１５はコンパレータ１１０の出力信号線、１１６はカウンタを構成するロジック１１１からフリップフロップ１１２に対する出力信号線、１１７は前記カウンタを構成するロジック１１１からフリップフロップ１１３に対する出力信号線である。
【００５７】
図１０は、カウント数を制御可能なカウンタ１０６の入出力波形を示すタイムチャートである。図１０において、１１５はロジック１１１の出力値とカウント数入力信号２９の値が一致したことを示すコンパレータ１１０の出力信号、１２０はカウント出力１１４の値である。
【００５８】
まず図９において、ロジック１１１とフリップフロップ１１２とフリップフロップ１１３はクロック同期式カウンタを構成しており、クロック１５が入力される度にカウント値がカウントアップされる。フリップフロップ１１２およびフリップフロップ１１３はリセット１１８によりカウント値が『０』に初期化され、リセット解除後の最初のクロック１５の入力でカウンタはカウントアップを開始する。
【００５９】
カウント数入力信号２９には、半導体集積回路１２の内部のスキャンチェーンに接続された最大フリップフロップ数に１を加えた値を入力する。コンパレータ１１０にはカウント数入力信号２９とロジック１１１のカウント出力１１４が入力されている。コンパレータ１１０ではカウント数制御入力信号２９とカウント出力１１４の比較を行い、双方が一致していれば出力信号線１１５にＬｏｗレベルを出力する。
【００６０】
フリップフロップ１１２のＤ入力にコンパレータの出力１１５を反転したものとカウンタを構成するロジックの出力信号線１１６との論理和を入力し、フリップフロップ１１３のＤ入力にコンパレータの出力１１５とカウンタを構成するロジックの出力信号線１１７の論理積を入力する。このような構成にすることで、カウンタは初期値『０』からカウントアップを開始し、カウント数入力信号２９の値までカウントアップすると、次にカウント値『１』からカウントアップを開始するカウンタが構成できる。
【００６１】
すなわち、リセット１１８によりカウント値が『０』に初期化された後、最初のクロック１５の入力で『１』からカウントが開始され、以降クロック１５が入力される度にカウントアップし、カウント数入力信号２９が示すスキャンチェーンのフリップフロップ数までカウントアップした次のクロック１５の入力で再度カウント値『１』からカウントアップを開始するというカウンタが構成できる。
【００６２】
さて、コンパレータの出力１１５は、半導体集積回路１２に本発明の実速度検査方法を適用しない場合のＮＴ入力信号を半周期早くしたものと同じである。よって、信号線１１５は本発明において任意のカウント数で発生するＮＴ信号として使用できる。
【００６３】
図１０は、上記説明を波形で示したものである。今、カウント数入力２９から『３』という値が入力されているとする。リセット入力１１８の入力により、まずカウンタは初期化される。このとき、カウント値１２０は『０』となる。リセット１１８が解除された次のサイクルで、カウント値は『１』からカウントを始め、『３』までカウントアップしたところで、コンパレータ１１０からの出力１１５の値はＬｏｗレベルになる。その次のクロック入力でフリップフロップ１１２には『１』が入力され、フリップフロップ１１３には『０』が入力される。よって、カウント出力１１４の値は『１』になる。以降、リセット１１８解除後の動作を繰り返す。
【００６４】
カウント数入力信号２９の値は半導体集積回路１２内のスキャンチェーンに接続されている最大フリップフロップ数に１を加えたものとしたが、これは、シフト動作が終わった後にキャプチャ動作を行うサイクルが入るためである。仮にスキャンチェーンに接続されているフリップフロップの最大数をそのまま入力した場合は、ＮＴが出力されるタイミングが１サイクル速くなることになる。
【００６５】
次に図８において、カウンタ１０６からの出力信号１０８と半導体集積回路外部から入力するＮＴ信号２８をセレクタ１０７の入力する。セレクタ１０７ではＮＴ信号１０９として、ＮＴ経路切り替え信号２７により、カウンタ１０６からの出力信号１０８またはＮＴ信号２８を選択する。
【００６６】
ＮＴ信号１０９としてカウンタ１０６からの出力信号１０８を選択した場合は、外部から入力するＮＴ信号２８を選択した場合と比較して、半導体集積回路１２内部における遅延が小さくなるため、動作周波数の早い半導体集積回路の場合でも１クロックサイクル内でＮＴの変化が収まる利点がある。逆に、外部から入力するＮＴ信号２８を選択した場合は、半導体集積回路１２外部から直接ＮＴ信号の切り替えが行えるため、半導体集積回路の出荷検査の際に不具合があった場合のデバッグを行う際に都合が良い。
【００６７】
次に、技術常識であるが、半導体集積回路１２内部のスキャンチェーンの張り方について説明する。半導体集積回路内部に実動作時のクロック周波数が異なる部分がある場合は、動作周波数の異なるクロックで動作するフリップフロップ間をまたがないようにスキャンチェーンを張る必要がある。
【００６８】
前述したように、シフト動作の最後における第１のクロック入力１３と第２のクロック入力１４の立ち上がりエッジ５５には位相差がある。このため、動作周波数の異なるフリップフロップ間をまたいでいるスキャンチェーンがある場合、クロックエッジ５５のように位相差のあるクロックが入力されると、その異種クロック間をまたぐスキャンチェーン間に重大なタイミングエラーが発生する。
【００６９】
今回の例では、第２のクロック入力１４で動作する回路の方が、第１のクロック入力１３で動作する回路より遅いことになっているが、その場合、第２のクロック入力１４で動作するフリップフロップから第１のクロック入力１３で動作するフリップフロップへ向かうパスにてホールドエラーが出ることは明らかである。このような状態を防ぐため、動作周波数の異なるフリップフロップ間をまたぐスキャンチェーンを構成してはならない。
【００７０】
また、クロックエッジ５６はキャプチャ動作時のクロックの立ち上がりであるが、この立ち上がり５６は全クロック系統で同一のタイミングで立ち上げるようにする。キャプチャ動作時は動作周波数の異なるフリップフロップ間のパスが発生するが、クロックエッジ５６がそろっているならばホールドエラーは発生しない。
【００７１】
次に、本発明の半導体集積回路の実速度検査方法におけるＬＳＩテスタでの検査パターン作成方法について説明する。通常、半導体集積回路の内部には実速度の保証を行わなくてもよいパスが存在しており、特にクロック周波数の異なる回路間でのパスでこの場合が多く見受けられる。
【００７２】
本発明の半導体集積回路の実速度検査保証を用いて半導体集積回路およびＬＳＩテスタでの出荷検査用パターンを作成した場合、回路全体が実速度周波数で動作するかを網羅的に調査するため、本来であれは速度を保証しなくてもよい回路部分についても同様のテストを行うこととなり、過剰なテストとなるため余分なコストアップを招くことになる。
【００７３】
これを回避するため、パターンの生成方法を大きく２つに分類する。ひとつは、クロックの立ち上がりエッジ５５から立ち上がりエッジ５６の間隔を実速度周波数の間隔と同じにし、実動作周波数の保証をする必要のある回路部分についてのみ評価する場合であり、もうひとつは、クロックエッジ５５とクロックエッジ５６の間隔をシフト動作時のクロックエッジ間隔５４の幅のままにして、実動作周波数の保証をする必要のない回路部分についてのみ評価を行う場合である。
【００７４】
テストパターン生成プログラムで出荷検査用パターンを自動生成する場合、上記分類に沿って、どの部分の故障を検出するかを切り替えることにより、１本の出荷検査用パターンとして生成ができる。実際にＬＳＩテスタで入力クロックの周波数を変えることはプログラムで容易に実現できるため、生成した１本の出荷検査用パターンにおいて、実速度動作の評価を行う部分ではクロックの入力方法を本発明の半導体集積回路の実速度検査方法となるようプログラムすれば、過剰なテストを回避することができる。
【００７５】
また、キャプチャ動作時の出力端子の出力値に対する期待値比較については、実速度検査をしている部分についてのみカットできる。理由は先に説明した通りである。これにより、フリップフロップ３２〜３４から出力端子４１〜４３までの回路部分についての故障を判断できるため、故障検出率の低下を防ぐことができる。
【産業上の利用可能性】
【００７６】
本発明の半導体集積回路の実速度検査方法は、開発日程および半導体集積回路の単価に影響のある大規模なＢＩＳＴ回路を追加すること無く、かつ、半導体集積回路が実動作周波数で動作するかどうかを網羅的にテストすることができ、かつ、周波数の異なる回路が半導体集積回路内部にある場合においてもそれらを同時にテストすることができるという効果を有し、半導体集積回路のテスト技術等として有用である。
【図面の簡単な説明】
【００７７】
【図１】従来の実速度検査方法における半導体集積回路の周辺状況を示す図。
【図２】従来の実速度検査方法における半導体集積回路に対する入力波形と出力波形を示すタイムチャート。
【図３】本発明の第１の実施形態の半導体集積回路の実速度検査方法を示す回路構成図。
【図４】本発明の第１の実施形態の半導体集積回路の実速度検査方法を示すタイムチャート。
【図５】本発明の第１の実施形態において、半導体集積回路の出力端子に接続されている組合せ回路の終端に観測用のフリップフロップを設けた場合の回路構成図。
【図６】本発明の第２の実施形態の半導体集積回路の実速度検査方法を示す回路構成図。
【図７】本発明の第２の実施形態の半導体集積回路の実速度検査方法を示すタイムチャート。
【図８】本発明の第２の実施形態におけるＮＴ制御回路の内部構成例を示す回路図。
【図９】本発明の第２の実施形態におけるカウント数を制御可能なカウンタの内部構成例を示す回路図。
【図１０】本発明の第２の実施形態におけるカウント数を制御可能なカウンタの入出力波形を示すタイムチャート。
【符号の説明】
【００７８】
１、１２  半導体集積回路
２  半導体集積回路の入力端子
３、４１、４２、４３  半導体集積回路の出力端子
４  ＬＳＩテスタからの入力信号線
５  ＬＳＩテスタへの出力信号線
６  ＬＳＩテスタの出力信号線の外部負荷
７  半導体集積回路に入力するクロック
８  出力端子から出力される理想出力
９  出力端子から出力される実際の出力
１０  ＬＳＩテスタで使用する出力期待値
１３  第１のクロック入力
１４  第２のクロック入力
１５  クロック入力の信号線
１６、１７  クロックの遅延を調節するための遅延調整セル
１８、１９  遅延調整セルの出力信号線
２０、２２  第１のクロックで動作するフリップフロップ
２１、２４、３５、３６、３７  ファンクションロジック
２３、２５  第２のクロックで動作するフリップフロップ
２６  ＮＴ信号制御回路
２７  ＮＴ経路切り替え端子
２８  外部からＮＴ信号を供給するＮＴ信号入力端子
２９  カウント数入力端子
３０  ＮＴ信号の遅延を調節するための遅延調整回路
３１  フリップフロップにＮＴ信号を供給する信号線
３２、３３、３４  出力端子に信号を出力するフリップフロップ
３８、３９、４０  出力端子へ出力される信号の観測用フリップフロップ
４４  スキャンチェーン
４５  スキャンチェーンの出力端子
５０  第１のクロック入力の波形
５１  第２のクロック入力の波形
５２  ＮＴ信号の波形
５３  シフト動作時のクロック入力の１サイクル幅
５４  シフト動作時のクロック入力の立ち上がりエッジの間隔
５５  シフト動作時の最後のシフトにおけるクロックの立ち上がりエッジ
５６  キャプチャ動作時のクロックの立ち上がりエッジ
５７  キャプチャ動作時の第１のクロック入力の立ち上がりエッジの間隔
５８  キャプチャ動作時の第２のクロック入力の立ち上がりエッジの間隔
５９  キャプチャ動作サイクルのレートの開始部
６０  外部から直接ＮＴ信号を動作させた場合の動作許容幅
１０６  カウンタ
１０７  セレクタ
１０８  カウンタの出力信号
１０９  ＮＴ信号制御回路から出力されるＮＴ信号の信号線
１１０  コンパレータ
１１１  カウンタを構成するロジック
１１２  カウンタを構成する最下位ビットのフリップフロップ
１１３  カウンタを構成する最下位ビット以外のフリップフロップ
１１４  カウンタを構成するフリップフロップのカウント出力
１１５  コンパレータの出力信号線
１１６、１１７  カウンタを構成するロジックの出力信号線
１１８  ＮＴ信号制御回路のリセット入力端子
１１９  モード切り替え入力端子
１２０  カウント出力の値
【図１】
2005326203.tif 000003
【図２】
2005326203.tif 000004
【図３】
2005326203.tif 000005
【図４】
2005326203.tif 000006
【図５】
2005326203.tif 000007
【図６】
2005326203.tif 000008
【図７】
2005326203.tif 000009
【図８】
2005326203.tif 000010
【図９】
2005326203.tif 000011
【図１０】
2005326203.tif 000012