(57)【特許請求の範囲】
【請求項１】
データ設定用フリップフロップを含む複数のフリップフロップを直列に接続して構成され、クロック信号が入力される毎に、テスト対象をテストするためのテスト用のシリアルデータを順次シフトするシフトレジスタと、あらかじめ決定された所定パターンのシリアルデータが、前記シフトレジスタの、あらかじめ決定された少なくとも１つのフリップフロップに設定されたことを検出すると、アクティブ状態の出力制御信号を出力する設定検出回路と、該設定検出回路から入力された出力制御信号を用いて、前記シフトレジスタの複数のデータ設定用フリップフロップから出力されるパラレルデータの前記テスト対象への出力制御を行う出力制御回路とを備え、
前記設定検出回路は、前記所定パターンのシリアルデータが、前記シフトレジスタの最終段のデータ設定用フリップフロップに設定されたことを検出すると、前記アクティブ状態の出力制御信号を出力することを特徴とする半導体集積回路のテスト回路。
【請求項２】
データ設定用フリップフロップを含む複数のフリップフロップを直列に接続して構成され、クロック信号が入力される毎に、テスト対象をテストするためのテスト用のシリアルデータを順次シフトするシフトレジスタと、あらかじめ決定された所定パターンのシリアルデータが、前記シフトレジスタの、あらかじめ決定された少なくとも１つのフリップフロップに設定されたことを検出すると、アクティブ状態の出力制御信号を出力する設定検出回路と、該設定検出回路から入力された出力制御信号を用いて、前記シフトレジスタの複数のデータ設定用フリップフロップから出力されるパラレルデータの前記テスト対象への出力制御を行う出力制御回路とを備え、
前記シフトレジスタは、さらに、前記複数のフリップフロップの最終段のデータ設定用フリップフロップの後段に接続されたテスト用のフリップフロップを備え、
前記設定検出回路は、前記所定パターンのシリアルデータが、前記テスト用のフリップフロップに設定されたことを検出すると、前記アクティブ状態の出力制御信号を出力することを特徴とする半導体集積回路のテスト回路。
【請求項３】
前記設定検出回路は、前記出力制御信号を遅延する遅延回路を備え、前記出力制御回路は、前記遅延回路によって遅延された出力制御信号を用いて、前記シフトレジスタの複数のデータ設定用フリップフロップの出力信号の出力制御を行うことを特徴とする請求項２記載の半導体集積回路のテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の外部から入力されるテスト用のシリアルデータをパラレルデータに変換し、テスト対象のマクロ等に供給してテストを行うテスト回路に関するものである。
【背景技術】
【０００２】
一般的に、半導体集積回路（半導体チップ）に搭載されたマクロをテストする際には、テスト時に、マクロへの入力信号を外部から独立に制御できるように、シフトレジスタを用意しておき、半導体集積回路の外部から、リセット信号、クロック信号およびシリアルデータを外部接続ピンを介して入力して、クロック信号が入力される毎に、入力されるシリアルデータをシフトレジスタに順次シフトして保持させた後、シフトレジスタの出力信号をテスト用のパラレルデータとしてマクロに入力する。
【０００３】
しかし、単にシフトレジスタのフリップフロップ（以下、ＦＦともいう）の出力信号をマクロに直接入力すると、各ＦＦへのシリアルデータの書き込み中に、マクロへの入力信号が頻繁にトグルし、マクロの種類によっては動作に悪影響を与えることが予想される。
【０００４】
これを防ぐため、シフト信号を別の外部接続ピンを介して入力し、シフト信号とシフトレジスタの各ＦＦの出力信号とのＡＮＤやＭＵＸ（マルチプレクサ）をとってマクロに入力する方法（例えば、特許文献１参照）や、シフト信号をクロックとして用いて、シフトレジスタのＦＦの出力信号をさらに別のＦＦでラッチしてマクロに入力することにより、上記マクロの入力信号のトグルを抑えてテストを実施する方法等が考えられている。
【０００５】
以下、従来のテスト回路について、特許文献１によって提案されたテスト回路を例に挙げて説明する。
【０００６】
図１３は、従来の半導体集積回路のテスト回路の構成を表す一例の回路図である。同図に示すテスト回路４４は、シフトレジスタ１２と、出力制御回路１６とによって構成されている。
【０００７】
シフトレジスタ１２は、ｎ＋１個のＦＦを直列に接続して構成されている。シフトレジスタ１２の全てのＦＦのリセット端子およびクロック端子には、それぞれ、リセット信号ＲＥＳＥＴおよびクロック信号ＣＬＫが入力され、初段のＦＦのデータ入力端子ＤにはシリアルデータＤＩＮが入力される。各ＦＦのデータ出力端子Ｑからの出力信号は、順次次段のＦＦのデータ入力端子Ｄに入力されるとともに、出力制御回路１６に入力される。
【０００８】
出力制御回路１６は、シフト信号ＳＨＩＦＴを用いて、シフトレジスタ１２のＦＦの出力信号の出力制御を行うものであり、シフトレジスタ１２の各ＦＦに対応するｎ＋１個のＡＮＤゲートによって構成されている。各ＡＮＤゲートの一方の入力端子には、各々対応するＦＦの出力信号が入力され、他方の入力端子にはシフト信号ＳＨＩＦＴが入力されている。各ＡＮＤゲートからは、テスト用のパラレルデータＤ［ｎ：０］が出力される。
【０００９】
次に、テスト回路４４を用いて、テスト対象のマクロ等をテストする場合の動作を説明する。
【００１０】
テスト時には、半導体集積回路の外部から、リセット信号ＲＥＳＥＴ、クロック信号ＣＬＫ、シリアルデータＤＩＮおよびシフト信号ＳＨＩＦＴが、半導体集積回路のリセット端子、クロック端子、シリアルデータ端子およびシフト端子の各外部接続ピンを介してテスト回路４４に入力される。
【００１１】
まず、リセット信号ＲＥＳＥＴとしてローレベルを入力すると、シフトレジスタ１２の全てのＦＦの出力信号がローレベルに初期化される。また、シフト信号ＳＨＩＦＴとしてローレベルを入力すると、出力制御回路１６の出力信号がローレベルに初期化される。
【００１２】
続いて、リセット信号ＲＥＳＥＴとしてハイレベルを入力した後（リセット解除後）、クロック信号ＣＬＫおよびシリアルデータＤＩＮを順次入力する。シフトレジスタ１２では、クロック信号ＣＬＫが入力される毎に、同時に入力されたシリアルデータＤＩＮが初段のＦＦに保持されるとともに、各々前段のＦＦの出力信号が順次後段のＦＦにシフトされる。このようにして、ｎ＋１個のシリアルデータＤＩＮを順次シフトすることにより、シフトレジスタ１２の全てのＦＦにシリアルデータＤＩＮが保持される。
【００１３】
シフトレジスタ１２へのシリアルデータの書き込みが完了すると、つまり、ｎ＋１個のシリアルデータを入力した後、クロック信号ＣＬＫの入力を停止する。これにより、シフトレジスタ１２に保持されたシリアルデータの値が固定される。
【００１４】
その後、シフト信号ＳＨＩＦＴをハイレベルにすると、出力制御回路１６の各ＡＮＤゲートから、シフトレジスタ１２の各々対応するＦＦの出力信号が出力される。出力制御回路１６の出力信号、つまり、テスト用のパラレルデータＤ［ｎ：０］は、テスト対象のマクロ等に入力される。
【００１５】
なお、図１３の例は、出力制御回路１６としてＡＮＤゲートを使用しているが、前述のように、これがＭＵＸや、シフト信号ＳＨＩＦＴをクロックとするＦＦとなっている場合も同様である。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平１−３２０５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上記のように、シフト信号ＳＨＩＦＴ、つまり、半導体集積回路にシフト端子を追加して、シフトレジスタ１２の出力信号の出力制御を行うことにより、シフトレジスタ１２の各ＦＦへのシリアルデータの書き込み中に、マクロへの入力信号が頻繁にトグルすることを防止することができる。しかし、テスト用の外部接続ピンの増大は大きな問題となっており、たとえ１ピンであっても増えてしまうことは望ましくない。
【００１８】
従って、本発明の目的は、テスト時に必要となるテスト用の外部接続ピンを追加することなく、テスト対象のマクロ等をテストすることができる半導体集積回路のテスト回路を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明は、データ設定用フリップフロップを含む複数のフリップフロップを直列に接続して構成され、クロック信号が入力される毎に、テスト対象をテストするためのテスト用のシリアルデータを順次シフトするシフトレジスタと、あらかじめ決定された所定パターンのシリアルデータが、前記シフトレジスタの、あらかじめ決定された少なくとも１つのフリップフロップに設定されたことを検出すると、アクティブ状態の出力制御信号を出力する設定検出回路と、該設定検出回路から入力された出力制御信号を用いて、前記シフトレジスタの複数のデータ設定用フリップフロップから出力されるパラレルデータの前記テスト対象への出力制御を行う出力制御回路とを備えることを特徴とする半導体集積回路のテスト回路を提供するものである。
【００２０】
ここで、前記設定検出回路は、前記所定パターンのシリアルデータが、前記シフトレジスタの最終段のデータ設定用フリップフロップに設定されたことを検出すると、前記アクティブ状態の出力制御信号を出力することが好ましい。
【００２１】
また、前記シフトレジスタは、さらに、前記複数のフリップフロップの最終段のデータ設定用フリップフロップの後段に接続されたテスト用のフリップフロップを備え、
前記設定検出回路は、前記所定パターンのシリアルデータが、前記テスト用のフリップフロップに設定されたことを検出すると、前記アクティブ状態の出力制御信号を出力することが好ましい。
【００２２】
また、前記設定検出回路は、前記出力制御信号を遅延する遅延回路を備え、前記出力制御回路は、前記遅延回路によって遅延された出力制御信号を用いて、前記シフトレジスタの複数のデータ設定用フリップフロップの出力信号の出力制御を行うことが好ましい。
【発明の効果】
【００２４】
本発明のテスト回路は、シフトレジスタのデータ設定用フリップフロップの出力信号に基づいて、シフトレジスタにシリアルデータの書き込みが完了したことを検出し、シフトレジスタの出力信号をテスト用のパラレルデータとして出力する。そのため、従来のテスト回路のように、シフト信号を半導体集積回路の外部から入力するための外部接続ピンは不要であり、テスト時に必要な外部接続ピンを削減することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の半導体集積回路のテスト回路の構成を表す一実施形態の回路概念図である。
【図２】本発明のテスト回路の構成を表す第１の具体例の回路図である。
【図３】図２に示すテスト回路の動作を表すタイミングチャートである。
【図４】本発明のテスト回路の構成を表す第２の具体例の回路図である。
【図５】図４に示すテスト回路の動作を表すタイミングチャートである。
【図６】本発明のテスト回路の構成を表す第３の具体例の回路図である。
【図７】図６に示すテスト回路の動作を表すタイミングチャートである。
【図８】図６に示すテスト回路の変形例の構成を表す回路図である。
【図９】図６に示すテスト回路の変形例の構成を表す回路図である。
【図１０】本発明のテスト回路の構成を表す第４の具体例の回路図である。
【図１１】図１０に示すテスト回路の動作を表すタイミングチャートである。
【図１２】クロック信号の停止回路の構成を表す一実施形態の回路図である。
【図１３】従来のテスト回路の構成を表す一例の回路図である。
【発明を実施するための形態】
【００２６】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の半導体集積回路のテスト回路およびテスト方法を詳細に説明する。
【００２７】
図１は、本発明の半導体集積回路のテスト回路の構成を表す一実施形態の回路概念図である。同図に示すテスト回路１０は、半導体集積回路に搭載され、テスト時に、半導体集積回路の外部から入力されるテスト用のシリアルデータＤＩＮをパラレルデータＤ［ｎ：０］に変換して、テスト対象のマクロ等に供給するものであり、シフトレジスタ１２と、設定検出回路１４と、出力制御回路１６とによって構成されている。
【００２８】
シフトレジスタ１２は、テスト用のデータを設定するためのデータ設定用ＦＦとして、ｎ＋１個のＦＦを直列に接続して構成されている。シフトレジスタ１２の全てのＦＦのリセット端子およびクロック端子には、それぞれ、リセット信号ＲＥＳＥＴおよびクロック信号ＣＬＫが入力され、初段のＦＦのデータ入力端子ＤにはシリアルデータＤＩＮが入力される。各ＦＦのデータ出力端子Ｑから出力される出力信号は、順次次段のＦＦのデータ入力端子Ｄに入力されるとともに、設定検出回路１４および出力制御回路１６に入力される。
【００２９】
設定検出回路１４は、シフトレジスタ１２のＦＦの出力信号に基づいて、あらかじめ決定された所定パターンのシリアルデータが、シフトレジスタ１２の、あらかじめ決定された少なくとも１つのＦＦに設定されたことを検出すると、シフトレジスタ１２へのテスト用のシリアルデータの書き込みが完了したものと認識し、アクティブ状態であるハイレベルの出力制御信号を出力する。出力制御信号は、従来のシフト信号ＳＨＩＦＴに相当するものであり、出力制御回路１６に入力される。
【００３０】
出力制御回路１６は、設定検出回路１４の出力信号である出力制御信号を用いて、テスト対象のマクロ等への、シフトレジスタ１２のＦＦの出力信号の出力制御を行うものであり、シフトレジスタ１２の各ＦＦに対応するｎ＋１個のＡＮＤゲートによって構成されている。各ＡＮＤゲートの一方の入力端子には、各々対応するＦＦの出力信号が入力され、他方の入力端子には出力制御信号が入力されている。各ＡＮＤゲートからは、テスト用のパラレルデータＤ［ｎ：０］が出力される。
【００３１】
次に、テスト回路１０を用いて、テスト対象のマクロ等をテストする場合の動作を説明する。
【００３２】
テスト時には、半導体集積回路の外部、例えば半導体テスタ等から、テストパターンとして、リセット信号ＲＥＳＥＴ、クロック信号ＣＬＫおよびシリアルデータＤＩＮが、半導体集積回路のリセット端子、クロック端子およびシリアルデータ端子の外部接続ピンを介してテスト回路１０に入力される。
【００３３】
まず、リセット信号ＲＥＳＥＴとしてローレベルを入力すると、シフトレジスタ１２の全てのＦＦの出力信号がローレベルに初期化される。これにより、設定検出回路１４から出力される出力制御信号および出力制御回路１６から出力されるパラレルデータＤ［ｎ：０］もローレベルに初期化される。これ以後、ｎ＋１個のシリアルデータをシフトレジスタ１２に順次シフトして保持し、クロック信号ＣＬＫを停止するまでの動作は、従来のテスト回路４４の場合と同様である。
【００３４】
設定検出回路１４は、あらかじめ決定された所定パターンのシリアルデータが、あらかじめ決定された少なくとも１つのＦＦに設定されたことを検出すると、アクティブ状態であるハイレベルの出力制御信号を出力する。これ以後、出力制御回路１６からテスト用のパラレルデータＤ［ｎ：０］が出力されるまでの動作は、従来のテスト回路４４の場合と同様である。
【００３５】
また、テスト対象のマクロ等に次のテスト用のパラレルデータＤ［ｎ：０］を入力する場合には、上記の動作を最初から繰り返し行う。
【００３６】
テスト回路１０は、シフトレジスタ１２のＦＦの出力信号に基づいて、シフトレジスタ１２にシリアルデータの書き込みが完了したことを検出し、シフトレジスタ１２の出力信号をテスト用のパラレルデータＤ［ｎ：０］として出力する。そのため、従来のテスト回路４４のように、シフト信号ＳＨＩＦＴを半導体集積回路の外部から入力するための外部接続ピンは不要であり、テスト時に必要な外部接続ピンを削減することができる。
【００３７】
なお、設定検出回路１４は、上記機能を実現するものであれば、その具体的な回路構成は何ら限定されない。例えば、設定検出回路１４が検出に使用するＦＦは、シフトレジスタ１２の最終段のＦＦでもよいし、最終段のＦＦを含む２以上のＦＦであってもよい。またテスト用のデータを設定するためのデータ設定用フリップフロップに加えて、データ設定用フリップフロップの後段に直列に接続される、１以上のテスト用のフリップフロップを追加して、シフトレジスタ１２を構成することも可能である。そして、所定のパターンがテスト用のフリップフロップに設定されたことを検出して、データ設定用フリップフロップからのデータ出力を制御する構成としてもよい。
【００３８】
また、出力制御信号のアクティブ状態をローレベルとしてもよい。さらに、出力制御回路１６は、ＡＮＤゲートに限定されず、各種のゲート回路、ＭＵＸ、ＦＦ等を使用することもできる。
【００３９】
以下、本発明のテスト回路の具体例を挙げて説明を続ける。
【００４０】
図２は、本発明のテスト回路の構成を表す第１の具体例の回路図である。同図に示すテスト回路１８は、図１に示すテスト回路１０において、設定検出回路１４を、シフトレジスタ１２の最終段のＦＦの出力信号を出力制御信号として出力する配線によって構成したものである。
【００４１】
つまり、テスト回路１８の設定検出回路１４は、ハイレベルが、シフトレジスタ１２の最終段のＦＦに設定されたことを検出すると、アクティブ状態であるハイレベルの出力制御信号を出力する。
【００４２】
テスト回路１８では、図３のタイミングチャートに示すように、リセット解除後の最初のシリアルデータＤＩＮ（＝Ｄ［０］）としてハイレベル（＝‘１’）が入力され、続いてＤ［１：ｎ］に対応するシリアルデータＤＩＮが順次入力される。つまり、リセット解除後に、ｎ＋１個のシリアルデータＤＩＮをシフトすることにより、シフトレジスタ１２へのシリアルデータＤＩＮの書き込みが完了する。
【００４３】
なお、シリアルデータＤＩＮは、リセット信号ＲＥＳＥＴが解除されてハイレベルとなるまではドントケアである。また、パラレルデータＤ［ｎ：０］は、リセット信号ＲＥＳＥＴがローレベルになるまでは不定である。これ以後のタイミングチャートにおいても同様である。
【００４４】
シフトレジスタ１２の最終段のＦＦの出力信号、つまり、出力制御信号がアクティブ状態のハイレベルになると、出力制御回路１６の各ＡＮＤゲートから、シフトレジスタ１２の各ＦＦの出力信号がテスト用のパラレルデータＤ［ｎ：０］として出力される。
【００４５】
前述のように、テスト回路１８では、テスト時に、リセット解除後の最初のシリアルデータＤＩＮとしてハイレベルを入力する必要があり、そのためパラレルデータＤ［ｎ：０］のうちのデータＤ［０］がハイレベルに固定される。従って、テスト回路１８は、テスト対象のマクロ等へのテスト用のパラレルデータＤ［ｎ：０］として、データＤ［０］がハイレベル固定でよい場合に適している。
【００４６】
テスト回路１８は、上記のような制約はあるが、設定検出回路１４を配線のみで構成することができるため、回路規模の増大は全くない。
【００４７】
なお、テスト回路１８において、設定検出回路１４は、ローレベルが、最終段のＦＦに設定されたことを検出すると、アクティブ状態の出力制御信号を出力するようにしてもよい。この場合、出力制御回路１６の構成を適宜変更する必要がある。
【００４８】
また、テスト回路１８では、テスト時に、リセット解除後の最初のシリアルデータＤＩＮとしてハイレベルを入力し、最終段のＦＦにはハイレベルが設定される。そのため、図１２に示すように、シフトレジスタ１２へのシリアルデータの書き込みが完了した後、最終段のＦＦの出力信号（ハイレベル）を用いてクロック信号ＣＬＫとのＯＲ論理をとることにより、クロック信号ＣＬＫの入力を停止することなく、シフトレジスタ１２へのクロック信号ＣＬＫの入力を停止させることもできる。
【００４９】
次に、図４は、本発明のテスト回路の構成を表す第２の具体例の回路図である。同図に示すテスト回路２０は、図１に示すテスト回路１０において、設定検出回路１４を、ＡＮＤゲート２２で構成したものである。テスト回路２０の設定検出回路１４のＡＮＤゲート２２には、シフトレジスタ１２の初段のＦＦの出力信号と最終段のＦＦの出力信号が入力され、ＡＮＤゲート２２の出力信号が出力制御信号として出力される。
【００５０】
つまり、テスト回路２０の設定検出回路１４のＡＮＤゲート２２は、ハイレベルが、初段のＦＦおよび最終段のＦＦの両方に設定されたことを検出すると、アクティブ状態であるハイレベルの出力制御信号を出力する。
【００５１】
テスト回路２０では、図５のタイミングチャートに示すように、リセット解除後の最初のシリアルデータＤＩＮ（＝Ｄ［０］）としてハイレベルが入力され、続いてＤ［１：ｎ−１］に対応するシリアルデータＤＩＮが順次入力され、最後のシリアルデータＤＩＮ（＝Ｄ［ｎ］）としてハイレベルが入力される。つまり、リセット解除後に、ｎ＋１個のシリアルデータＤＩＮをシフトすることにより、シフトレジスタ１２へのシリアルデータＤＩＮの書き込みが完了する。
【００５２】
シフトレジスタ１２の初段のＦＦの出力信号および最終段のＦＦの出力信号がハイレベルになると、設定検出回路１４のＡＮＤゲート２２の出力信号、つまり、出力制御信号がアクティブ状態であるハイレベルとなり、出力制御回路１６の各ＡＮＤゲートから、シフトレジスタ１２の各ＦＦの出力信号がテスト用のパラレルデータＤ［ｎ：０］として出力される。
【００５３】
上記のように、テスト回路２０では、テスト時に、リセット解除後の最初および最後のシリアルデータＤＩＮとしてハイレベルを入力する必要があり、そのためパラレルデータＤ［ｎ：０］のうちのデータＤ［０］およびデータＤ［ｎ］がハイレベルに固定される。従って、テスト回路２０は、これらのデータＤ［０］およびＤ［ｎ］がハイレベル固定でよい場合に適している。しかし、最終段のフリップフロップに所定のデータが設定されたことのみによってテスト用のパラレルデータを出力するテスト回路１８に比較して、２つのフリップフロップの両方に所定のデータが設定されたときにテスト用のパラレルデータを出力することにより、ノイズによって誤ったテスト用データが出力されテスト開始となることを防止する。
【００５４】
テスト回路２０は、上記のような制約はあるが、設定検出回路１４をＡＮＤゲート２２のみで構成することができるため、回路規模の増大はほとんどない。
【００５５】
なお、テスト回路２０において、設定検出回路１４は、所定のパターンが、少なくとも２つのＦＦに設定されたことを検出するようにしているが、この少なくとも２つのフリップフロップが、初段と最終段のフリップフロップを含むことは必須ではない。
【００５６】
次に、図６は、本発明のテスト回路の構成を表す第３の具体例の回路図である。同図に示すテスト回路２４は、図１に示すテスト回路１０において、シフトレジスタ１２を構成するデータ設定用フリップフロップの後段にテスト用のフリップフロップ２６を追加して接続し、設定検出回路１４を、テスト用のＦＦ２６の出力信号を出力制御信号として出力する配線によって構成したものである。
【００５７】
つまり、テスト回路２４の設定検出回路１４は、ハイレベルが、テスト用のＦＦ２６に設定されたことを検出すると、アクティブ状態であるハイレベルの出力制御信号を出力する。
【００５８】
テスト回路２４では、図７のタイミングチャートに示すように、リセット解除後の最初のシリアルデータＤＩＮ（＝テスト用のＦＦ２６のシリアルデータ）としてハイレベルが入力され、続いてＤ［ｎ：０］に対応するシリアルデータＤＩＮが順次入力される。つまり、リセット解除後に、ｎ＋２個のシリアルデータＤＩＮをシフトすることにより、シフトレジスタ１２へのシリアルデータＤＩＮの書き込みが完了する。
【００５９】
テスト用のＦＦ２６の出力信号、つまり、出力制御信号がアクティブ状態であるハイレベルになると、出力制御回路１６の各ＡＮＤゲートから、シフトレジスタ１２の各ＦＦの出力信号がテスト用のパラレルデータＤ［ｎ：０］として出力される。
【００６０】
上記のように、テスト回路２４では、テスト時に、リセット解除後の最初のシリアルデータＤＩＮとしてハイレベルを入力し、かつ、従来よりも１つだけ多い、ｎ＋２個のシリアルデータを入力する必要がある。
【００６１】
テスト回路２４は、シリアルデータの入力数が増加するが、シフトレジスタ１２の後段に１個のテスト用のＦＦ２６を追加するのみで構成することができるため、回路規模の増大はほとんどない。また、テスト回路２４は、図２のテスト回路１８や図４のテスト回路２０のように、パラレルデータＤ［ｎ：０］のうちの所定ビットのデータが所定値に固定されるということがなく、任意のテスト対象のマクロ等に適用することができる。
【００６２】
なお、テスト回路２４の設定検出回路１４は、ローレベルが、テスト用のＦＦ２６に設定されたことを検出すると、アクティブ状態の出力制御信号を出力するようにしてもよい。
【００６３】
また、テスト用のＦＦ２６の出力信号、つまり、出力制御信号は、パラレルデータＤ［ｎ：０］用のＦＦの出力信号よりも配線長が長く、その変化タイミングは、通常、他のＦＦの出力信号よりも遅くなると考えられる。従って、テスト用のＦＦ２６の出力信号を出力制御信号として出力制御回路１６のＡＮＤゲートに直接入力しても、出力制御回路１６の各ＡＮＤゲートの出力信号にグリッチが発生することはない。
【００６４】
ただし、図８のテスト回路２８に示すように、設定検出回路１４において、出力制御信号、つまり、テスト用のＦＦ２６の出力信号を遅延する遅延回路３０を備え、遅延回路３０によって遅延された出力制御信号を出力制御回路１６のＡＮＤゲートに入力することが望ましい。これにより、出力制御信号の変化タイミングを他のＦＦの出力信号よりも確実に遅くすることができ、出力制御回路１６の各ＡＮＤゲートの出力信号にグリッチが発生することを確実に防止できる。
【００６５】
また、図９のテスト回路３２に示すように、出力制御信号が非アクティブ状態であるローレベルのときに、テスト対象のマクロ等の入力信号として要求される論理レベルに応じて、出力制御信号がローレベルのときの出力制御回路１６の出力信号、つまり、パラレルデータＤ［ｎ：０］をオール０とするか、オール１とするかを選択できるように、その両方の出力信号を出力することができるように構成することが望ましい。
【００６６】
図９に示す出力制御回路１６は、シフトレジスタ１２の各ＦＦに対応するＡＮＤゲートおよびＮＡＮＤゲートを備えている。各ＡＮＤゲートの構成は、図６に示すテスト回路２４の場合と同じである。また、各ＮＡＮＤゲートの一方の反転入力端子には、各々対応するＦＦの反転データ出力端子ＱＢからの出力信号（反転出力信号）が入力され、他方の入力端子には、テスト用のＦＦ２６の出力信号、つまり、出力制御信号が入力される。
【００６７】
図９に示す出力制御回路１６では、出力制御信号がローレベルのとき、各ＡＮＤゲートから出力されるテスト用のパラレルデータＤ［ｎ：０］はオール０となり、各ＮＡＮＤゲートから出力されるテスト用のパラレルデータＤＢ［ｎ：０］はオール１となる。一方、出力制御信号がハイレベルになると、パラレルデータＤ［ｎ：０］およびＤＢ［ｎ：０］として、ともにシフトレジスタ１２の複数のＦＦの出力信号が出力される。
【００６８】
半導体集積回路の設計者は、図９に示すテスト回路３２を用いることにより、出力制御信号が非アクティブ状態のときにテスト対象のマクロ等に入力される信号の論理レベルを適宜選択することができる。
【００６９】
次に、図１０は、本発明のテスト回路の構成を表す第４の具体例の回路図である。同図に示すテスト回路３４は、図１に示すテスト回路１０において、シフトレジスタ１２の初段のＦＦの前段、シフトレジスタ１２のｉ段目のＦＦとｉ＋１段目のＦＦの間（１≦ｉ≦ｎ−１）、および、最終段のＦＦの後段に各々テスト用のＦＦ（同図中、四角点線で示す）３６，３８，４０を接続し、設定検出回路１４を、ＡＮＤゲート４２で構成したものである。テスト回路３４の設定検出回路１４のＡＮＤゲート４２には、テスト用の３つのＦＦ３６，３８，４０の出力信号が入力され、ＡＮＤゲート４２の出力信号が出力制御信号として出力される。
【００７０】
つまり、テスト回路３４の設定検出回路１４のＡＮＤゲート４２は、ハイレベルが、テスト用の３つのＦＦ３６，３８，４０に設定されたことを検出すると、アクティブ状態であるハイレベルの出力制御信号を出力する。
【００７１】
テスト回路３４では、図１１のタイミングチャートに示すように、リセット解除後の最初のシリアルデータＤＩＮ（＝テスト用のＦＦ４０のシリアルデータ）としてハイレベルが入力され、続いてＤ［ｎ−ｉ：０］に対応するシリアルデータＤＩＮが順次入力され、ｎ−ｉ＋２番目のシリアルデータＤＩＮ（＝テスト用のＦＦ３８のシリアルデータ）としてハイレベルが入力され、さらに続いてＤ［ｎ：ｎ−ｉ＋１］に対応するシリアルデータＤＩＮが順次入力され、最後のシリアルデータＤＩＮ（＝テスト用のＦＦ３６のシリアルデータ）としてハイレベルが入力される。つまり、リセット解除後に、ｎ＋４個のシリアルデータをシフトすることにより、シフトレジスタ１２へのシリアルデータの書き込みが完了する。
【００７２】
シフトレジスタ１２のテスト用の３つのＦＦ３６，３８，４０の出力信号がハイレベルになると、設定検出回路１４のＡＮＤゲート４２の出力信号、つまり、出力制御信号がアクティブ状態のハイレベルとなり、出力制御回路１６の各ＡＮＤゲートから、シフトレジスタ１２の各ＦＦの出力信号がテスト用のパラレルデータＤ［ｎ：０］として出力される。
【００７３】
上記のように、テスト回路３４では、テスト時に、リセット解除後の最初、ｎ−ｉ＋２番目および最後のシリアルデータＤＩＮとしてハイレベルを入力し、かつ、従来よりも３つだけ多い、ｎ＋４個のシリアルデータを入力する必要がある。しかし、最終段のテスト用フリップフロップに所定のデータが設定されたことのみによってテスト用のパラレルデータを出力するテスト回路２４に比較して、データ設定用フリップフロップの前後、ならびに中間位置に配置したテスト用フリップフロップに所定のデータが設定されたときに、テスト用のパラレルデータを出力することにより、ノイズによって誤ったテスト用データが出力されテスト開始となることを防止する。
【００７４】
テスト回路３４は、シリアルデータの入力数は増えるが、シフトレジスタ１２に３個のＦＦ３６，３８，４０を追加し、設定検出回路１４として１つのＡＮＤゲート４２のみで構成することができるため、回路規模の増大はほとんどない。
【００７５】
なお、テスト回路３４のシフトレジスタ１２は、初段のＦＦの前段、初段のＦＦから最終段のＦＦまでのＦＦの間、および、最終段のＦＦの後段のうちの少なくとも２箇所に、シフトレジスタの他のＦＦに対して直列に接続された少なくとも２つのテスト用のＦＦを備えていればよい。この場合、設定検出回路１４は、所定パターンのシリアルデータが、少なくとも２つのテスト用のＦＦに設定されたことを検出すると、アクティブ状態の前記出力制御信号を出力するようにすればよい。また、テスト用のＦＦの個数、配置位置に制限はない。
【００７６】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【００７７】
１０，１８，２０，２４，２８，３２，３４  テスト回路
１２  シフトレジスタ
１４  設定検出回路
１６  出力制御回路
２２，４２  ＡＮＤゲート
２６，３６，３８，４０  ＦＦ
３０  遅延回路
【図１】
0005442522.tif 000002
【図２】
0005442522.tif 000003
【図３】
0005442522.tif 000004
【図４】
0005442522.tif 000005
【図５】
0005442522.tif 000006
【図６】
0005442522.tif 000007
【図７】
0005442522.tif 000008
【図８】
0005442522.tif 000009
【図９】
0005442522.tif 000010
【図１０】
0005442522.tif 000011
【図１１】
0005442522.tif 000012
【図１２】
0005442522.tif 000013
【図１３】
0005442522.tif 000014