(57)【要約】 【課題】  スキャンテストにおいて、シフト動作時の所要時間を短縮化する。【解決手段】  フリップフロップ素子１１と、通常時入力データとスキャン時入力データを切り換えてフリップフロップ素子１１に供給する入力データ切り換え部であるセレクタ回路１３と、フリップフロップ素子１１の保持値によって、保持データとスキャン時入力データを切り換えて出力させる出力データ切り換え部であるセレクタ回路１４と、フリップフロップ素子１１の保持値によって、スキャン時入力データと保持データを切り換えてセレクタ回路１３に供給するスキャンデータ切り換え部であるセレクタ回路１２と、フリップフロップ素子１１の保持値によって、セレクタ回路１２、１４の切り換えを制御するシフトデータ切り換え部であるセレクタ回路１５と、高速スキャン動作と通常のスキャン動作を切り換えるシフトモード切り換え部であるＯＲ回路１６を設けている。【選択図】  図１
2005031054.tif 000002
【特許請求の範囲】
【請求項１】
シフトデータ保持手段と、
通常動作時の入力データとスキャン動作時の入力データとを切り換えていずれか一方を該シフトデータ保持手段のデータ入力端子に供給する入力データ切り換え部と、
該シフトデータ保持手段の保持データに応じて、該シフトデータ保持手段の保持データと該スキャン動作時の入力データとを切り換えていずれか一方を外部に出力する出力データ切り換え部とを有するスキャン素子。
【請求項２】
前記通常動作時の入力データとスキャン動作時の入力データとの切り換えを制御する入力データ切り換え制御信号が供給される入力データ切り換え制御端子が前記入力データ切り換え部に接続されている請求項１に記載のスキャン素子。
【請求項３】
前記シフトデータ保持手段の保持データによって、前記スキャン動作時の入力データと該シフトデータ保持手段の保持データのいずれか一方に切り換えて該スキャン動作時の入力データとして前記入力データ切り換え部に供給するスキャンデータ切り換え部を更に有する請求項１に記載のスキャン素子。
【請求項４】
前記スキャン動作時に外部からデータが供給されるスキャンイン端子がスキャンデータ切り換え部に接続されている請求項３に記載のスキャン素子。
【請求項５】
前記出力データ切り換え部には、外部にデータを出力するスキャンアウト端子が接続されている請求項１に記載のスキャン素子。
【請求項６】
前記出力データ切り換え部によるデータ切り換えを行う高速スキャン動作と、データ切り換えを行わずに前記シフトデータ保持手段の保持データを出力させる通常のスキャン動作とを切り換えるシフトモード切り換え部を更に有する請求項１に記載のスキャン素子。
【請求項７】
前記出力データ切り換え部を、前記シフトデータ保持手段の保持データに応じて切り換え制御可能とするシフトモード切り換え部を更に有する請求項１に記載のスキャン素子。
【請求項８】
前記シフトデータ保持手段の保持データがいずれの値の場合にも、該シフトデータ保持手段の保持データを前記出力データ切り換え部から出力させるかまたは、該シフトデータ保持手段の保持データに応じて該出力データ切り換え部を切り換え制御するかを切り換えるシフトモード切り換え制御信号が供給されるシフトモード切り換え制御端子が前記シフトモード切り換え部に接続されている請求項６または７に記載のスキャン素子。
【請求項９】
前記スキャンデータ切り換え部を、前記シフトデータ保持手段の保持データに応じて切り換え制御可能とするシフトモード切り換え部を更に有する請求項３に記載のスキャン素子。
【請求項１０】
前記シフトデータ保持手段の保持データがいずれの値の場合にも、前記スキャン動作時の入力データを前記入力データ切り換え部に供給させるかまたは、該シフトデータ保持手段の保持データに応じて前記スキャンデータ切り換え部を切り換え制御するかを切り換えるシフトモード切り換え制御信号が供給されるシフトモード切り換え制御端子が前記シフトモード切り換え部に接続されている請求項９に記載のスキャン素子。
【請求項１１】
前記シフトデータ保持手段の一方保持データと他方保持データとを切り換えるシフトデータ切り換え部を更に有し、該シフトデータ切り換え部にはシフトデータ切り換え制御信号が入力されるシフトデータ切り換え制御端子が接続され、該シフトデータ切り換え部からの出力データを前記シフトモード切り換え部に入力する請求項６〜１０のいずれかに記載のスキャン素子。
【請求項１２】
前記シフトデータ保持手段はフリップフロップ素子である請求項１〜１１のいずれかに記載のスキャン素子。
【請求項１３】
前記フリップフロップ素子は、保持されるデータを直接設定可能とするセット端子およびリセット端子を有する請求項１２に記載のスキャン素子。
【請求項１４】
組み合せ回路を構成する各論理回路への入力データをそれぞれ出力し、該入力データに対する出力応答がそれぞれ入力される請求項１〜１３のいずれかに記載の各スキャン素子が直列接続された順次回路を有し、該出力応答を該順次回路を用いて外部に取り出し可能とする論理装置。
【請求項１５】
請求項１４に記載の論理装置を用いて組み合せ回路の良否をテストする組み合せ回路の良否テスト方法であって、
キャプチャ動作後に２値データのうち一方の値が保持されている前記各スキャン素子のシフトデータ保持手段ではスキャン動作時に前記保持データを次段にシフト出力させ、他方の値が保持されている該シフトデータ保持手段では前段からの入力データを次段にスルー出力させる組み合せ回路の良否テスト方法。
【請求項１６】
前記各スキャン素子のシフトデータ保持手段にそれぞれキャプチャ動作後に保持されている複数の２値データのうち少ない方の値が保持されているシフトデータ保持手段ではスキャン動作時に保持データを次段にシフト出力させ、多い方の値が保持されているシフトデータ保持手段では前段からの入力データを次段にスルー出力させる請求項１５に記載の組み合せ回路の良否テスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み合せ回路を構成する各論理回路の入力データに対する出力応答を外部に取り出し可能とする論理装置および、組み合せ回路の良否テスト方法、この論理装置に好適に用いられるスキャン素子に関し、特に、スキャンパス方式やスキャンデザイン方式を用いた論理装置および、組み合せ回路の良否テスト方法、これに好適に用いられるスキャン素子（スキャン回路）に関する。
【背景技術】
【０００２】
従来、この種の論理装置を用いて、組み合せ回路の各論理回路の入力データに対する出力応答（出力信号）を外部に取り出して、入力データと出力データが例えば一致しているかどうかを判定することにより組み合せ回路の各論理回路が不良か否かをテストしている。
【０００３】
一般に、ＬＳＩなどの組み合わせ回路の各論理回路の機能をテストするための方法として、スキャンパス方式またはスキャンデザイン方式と言われる論理回路のテスト方法がある。このテスト方法を実行する論理装置としては、複数のフリップフロップ素子がシリアルに接続されている順次回路を用いている。各フリップフロップ素子の入力端と出力端間にそれぞれ各論理回路の出力端と入力端間がそれぞれ接続されており、様々なパターン（各フリップフロップ素子間に挿入されている組み合せ回路の全ての入力パターン）が各フリップフロップ素子に設定されている。入力データがキャプチャ動作された後で、出力データとしてフリップフロップ素子に取り込まれた値（キャプチャされた値）が期待値通りであるか否かが検査される。論理回路のどこかに不良があれば、キャプチャ後の出力データのパターンは、正常な論理回路における値（期待値）と一致しないためその一致しない組み合せ回路は不良と検出することができる。
【０００４】
様々なパターンの一例として、例えば“００１０１”の場合には、各論理回路が正常であれば“１”が２個あることが確認される。各論理回路のどこかに不良（故障）があれば、“１”が２回出力されない。ここで、不良があっても出力として“１”が２回出力される場合もあり得るが、このような場合でも、不良がある場合には、非常に多くの入力パターンに対して同様のテストを繰り返すことによって、必ずどこかで期待値との不一致が検出され、どのフリップフロップ素子間に不良があるかを検出することができる。
【０００５】
図６は、特許文献１の従来のスキャンデザイン方式を用いた論理装置の一例を示すブロック図である。
【０００６】
図６において、この論理装置１００は、前段のフリップフロップ素子１０１と、後段のフリップフロップ素子１０２と、前段のフリップフロップ素子１０１への入力データを切り換えるセレクタ回路１０３と、後段のフリップフロップ素子１０２への入力データを切り換えるセレクタ回路１０４とを有し、各フリップフロップ素子１０１，１０２それぞれの両端に、組み合せ回路１０５の各論理回路の出力端と入力端がそれぞれ接続されている。
【０００７】
セレクタ回路１０３は、モード切り換え端子１０６から入力される制御信号によって、スキャンイン端子１０７から供給されるデータと、組み合せ回路１０５から供給されるデータとが切り換えられてフリップフロップ素子１０１のデータ入力端子に供給される。
【０００８】
セレクタ回路１０４は、モード切り換え端子１０６から入力される制御信号によって、前段のフリップフロップ素子１０１から供給されるデータと、組み合せ回路１０５から供給されるデータとが切り換えられてフリップフロップ素子１０２のデータ入力端子に供給される。
【０００９】
前段のフリップフロップ素子１０１は、クロック端子１０８から供給されるクロック信号のタイミングに応じて、セレクタ回路１０３からのデータが入力されて、フリップフロップ素子１０１に保持していたデータがセレクタ回路１０４および組み合せ回路１０５の入力端に出力される。
【００１０】
後段のフリップフロップ素子１０２は、クロック端子１０８から供給されるクロック信号のタイミングに応じて、セレクタ回路１０４からデータが入力されて、フリップフロップ素子１０２に保持されていたデータがスキャンアウト端子１０９および組み合せ回路１０５の入力端に出力される。
【００１１】
組み合せ回路１０５は、その入力端子１１０および出力端子１１１を有している。組み合わせ回路１０５は、入力端子１１０またはフリップフロップ素子１０１、１０２から供給されたデータが処理されて、セレクタ回路１０３、１０８または出力端子１１１から出力される。
【００１２】
図７は、図６のセレクタ回路１０３一構成例を示す回路図である。なお、図６のセレクタ回路１０４もセレクタ回路１０３と同様の構成であるのでここではセレクタ回路１０３について説明する。
【００１３】
図７において、セレクタ回路１０３は、入力信号２０１および２０２がその各入力端子にそれぞれ入力されるＡＮＤ回路２００ａと、入力信号２０３が一方の入力端子に入力されると共に、入力信号２０１がインバータ回路２００ｂを介して他方の入力端子に入力されるＡＮＤ回路２００ｃと、ＡＮＤ回路２００ａおよび２００ｃの各出力端子にそれぞれ各入力端子が接続され、出力信号２０４が出力されるＯＲ回路２００ｄとを有している。
【００１４】
モード切り換え端子１０６からの入力信号２０１が”1” のときには入力信号２０２が選択され、 モード切り換え端子１０６からの入力信号２０１が”０” のときには入力信号２０３が選択されて、出力信号２０４が出力される。
【００１５】
上記構成により、以下、上記従来の論理装置１００の動作について説明する。
【００１６】
モード切り換え端子１０６からの入力信号２０１が”０” のとき、セレクタ回路１０３および１０４は、組み合せ回路１０５からの各入力信号がそれぞれ選択されてフリップフロップ素子１０１および１０２の各データ入力端子にそれぞれ供給される。
【００１７】
よって、図６の論理装置１００は、図８（ａ）に示す回路と等価となり、通常動作が実行される。
【００１８】
一方、モード切り換え端子１０６からの入力信号２０１が”１”のときには、セレクタ回路１０３は、スキャンイン端子１０７からのスキャン入力信号が選択されてフリップフロップ素子１０１のデータ入力端子に供給される。また、セレクタ回路１０４は、フリップフロップ素子１０１に保持されていた出力データ信号が選択されてフリップフロップ素子１０２のデータ入力端子に供給される。
【００１９】
よって、図６の論理装置１００は、図８（ｂ）に示すようなシフトパスが形成される。
【００２０】
このとき、スキャンイン端子１０７からのスキャン入力信号は、クロック端子１０８から入力されるクロック信号に同期してシフトパスに入力データ信号として入力され、スキャンアウト端子１０９からは、シフトパスからの出力データ信号が外部へ出力される。これによって、外部から全てのフリップフロップ素子１０１，１０２に対して任意のデータをセットさせることができ、また、外部から全てのフリップフロップ素子１０１，１０２の状態を検出することができる。
【００２１】
このように、従来の論理装置では、モード切り換え端子１０６からの入力信号２０１を”１” に設定して、各フリップフロップ素子１０１，１０２に所望のデータを外部から設定した後、モード切り換え端子１０６からの入力信号を”０” にして通常動作モードに戻してから、クロック信号を１クロック供給することにより、組み合せ回路１０５からの出力信号が各フリップフロップ素子１０１，１０２に保持される。このデータ信号の取り込みをキャプチャという。
【００２２】
再び、モード切り換え端子１０６からの入力信号２０１を”１” にした後、スキャンアウト端子１０９から各フリップフロップ素子１０１，１０２にキャプチャされた各データ信号を外部に順次シフトさせて読み出すことによって、入力されたデータに対する組み合せ回路１０５の出力応答を調べることができる。
【特許文献１】特開平５−８７８９１号
【発明の開示】
【発明が解決しようとする課題】
【００２３】
上述したような従来のスキャンデザイン方式を用いた論理装置１００では、ｎ個（ここでは２個）のフリップフロップ素子１０１，１０２によって構成されている場合に、シフト動作によってテストを行うためにｎクロック分の読み出し時間が必要となる。したがって、回路規模に比例して読み出し時間が大きくなり、スキャンテストの所要時間が大きくなるという問題があった。
【００２４】
本発明は、上記従来の問題を解決するもので、シフト動作時の所要時間を短縮できるスキャン素子、これを用いた論理装置および、組み合せ回路の良否テスト方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明のスキャン素子は、シフトデータ保持手段と、通常動作時の入力データとスキャン動作時の入力データとを切り換えていずれか一方を該シフトデータ保持手段のデータ入力端子に供給する入力データ切り換え部と、該シフトデータ保持手段の保持データに応じて、該シフトデータ保持手段の保持データと該スキャン動作時の入力データとを切り換えていずれか一方を外部に出力する出力データ切り換え部とを有しており、そのことにより上記目的が達成される。
【００２６】
また、好ましくは、本発明のスキャン素子において、通常動作時の入力データとスキャン動作時の入力データとの切り換えを制御する入力データ切り換え制御信号が供給される入力データ切り換え制御端子が前記入力データ切り換え部に接続されている。
【００２７】
さらに、好ましくは、本発明のスキャン素子において、シフトデータ保持手段の保持データによって、前記スキャン動作時の入力データと該シフトデータ保持手段の保持データのいずれか一方に切り換えて該スキャン動作時の入力データとして前記入力データ切り換え部に供給するスキャンデータ切り換え部を更に有する。
【００２８】
さらに、好ましくは、本発明のスキャン素子において、スキャン動作時に外部からデータが供給されるスキャンイン端子がスキャンデータ切り換え部に接続されている。
【００２９】
さらに、好ましくは、本発明のスキャン素子における出力データ切り換え部には、外部にデータを出力するスキャンアウト端子が接続されている。
【００３０】
さらに、好ましくは、本発明のスキャン素子において、出力データ切り換え部によるデータ切り換えを行う高速スキャン動作と、データ切り換えを行わずに前記シフトデータ保持手段の保持データを出力させる通常のスキャン動作とを切り換えるシフトモード切り換え部を更に有する。
【００３１】
さらに、好ましくは、本発明のスキャン素子において、出力データ切り換え部を、前記シフトデータ保持手段の保持データに応じて切り換え制御可能とするシフトモード切り換え部を更に有する。
【００３２】
さらに、好ましくは、本発明のスキャン素子において、シフトデータ保持手段の保持データがいずれの値の場合にも、該シフトデータ保持手段の保持データを前記出力データ切り換え部から出力させるかまたは、該シフトデータ保持手段の保持データに応じて該出力データ切り換え部を切り換え制御するかを切り換えるシフトモード切り換え制御信号が供給されるシフトモード切り換え制御端子が前記シフトモード切り換え部に接続されている。
【００３３】
さらに、好ましくは、本発明のスキャン素子において、スキャンデータ切り換え部を、前記シフトデータ保持手段の保持データに応じて切り換え制御可能とするシフトモード切り換え部を更に有する。
【００３４】
さらに、好ましくは、本発明のスキャン素子において、シフトデータ保持手段の保持データがいずれの値の場合にも、前記スキャン動作時の入力データを前記入力データ切り換え部に供給させるかまたは、該シフトデータ保持手段の保持データに応じて前記スキャンデータ切り換え部を切り換え制御するかを切り換えるシフトモード切り換え制御信号が供給されるシフトモード切り換え制御端子が前記シフトモード切り換え部に接続されている。
【００３５】
さらに、好ましくは、本発明のスキャン素子において、シフトデータ保持手段の一方保持データと他方保持データとを切り換えるシフトデータ切り換え部を更に有し、該シフトデータ切り換え部にはシフトデータ切り換え制御信号が入力されるシフトデータ切り換え制御端子が接続され、該シフトデータ切り換え部からの出力データを前記シフトモード切り換え部に入力する。
【００３６】
さらに、好ましくは、本発明のスキャン素子におけるシフトデータ保持手段はフリップフロップ素子である。
【００３７】
さらに、好ましくは、本発明のスキャン素子におけるフリップフロップ素子は、保持されるデータを直接設定可能とするセット端子およびリセット端子を有する。
【００３８】
本発明の論理装置は、組み合せ回路を構成する各論理回路への入力データをそれぞれ出力し、該入力データに対する出力応答をそれぞれ入力とする請求項１〜１３のいずれかに記載の各スキャン素子が直列接続された順次回路を有し、該出力応答を該順次回路を用いて外部に取り出し可能としており、そのことにより上記目的が達成される。
【００３９】
本発明の組み合わせ回路の良否テスト方法は、請求項１４に記載の論理装置を用いて組み合せ回路の良否をテストする組み合せ回路の良否テスト方法であって、キャプチャ動作後に２値データのうち一方の値が保持されている前記各スキャン素子のシフトデータ保持手段ではスキャン動作時に前記保持データを次段にシフト出力させ、他方の値が保持されている該シフトデータ保持手段では前段からの入力データを次段にスルー出力させるものであり、そのことにより上記目的が達成される。
【００４０】
また、好ましくは、本発明の組み合わせ回路の良否テスト方法において、各スキャン素子のシフトデータ保持手段にそれぞれキャプチャ動作後に保持されている複数の２値データのうち少ない方の値が保持されているシフトデータ保持手段ではスキャン動作時に保持データを次段にシフト出力させ、多い方の値が保持されているシフトデータ保持手段では前段からの入力データを次段にスルー出力させる。
【００４１】
上記構成により、以下に、本発明の作用について説明する。
【００４２】
従来のスキャンデザイン方式の論理装置では、直列接続されたｎ個のシフトデータ保持手段としてのｎ個のフリップフロップ素子があると、その値を取り出すためにクロックがｎ回必要になり、特にデータ規模が大きくなっている近年の論理回路では、「パターン数」×「転送クロック数」が必要となるので、データ確認のために膨大な時間が必要となる。
【００４３】
この入力データパターンとしては、フリップフロップ素子の数に応じたパターンの組み合せがあり、さらに、キャプチャ後のデータパターンとして、組み合わせ回路からの応答パターンについても何通りかがある。したがって、テストすべきパターンとしては、膨大な数のパターンがあることになる。
【００４４】
そこで、本発明のスキャン素子では、少なくとも、キャプチャ動作後にフリップフロップ素子の値を出力させる際に、フリップフロップ素子の保持値に応じて、フリップフロップ素子の保持データとスキャン入力データ（スキャンインデータ）とを切り換えて出力させる出力データ切り換え部と、通常時入力データとスキャンインデータとを切り換えてフリップフロップ素子に供給する入力データ切り換え部とが設けられている。
【００４５】
これによって、個々のフリップフロップ素子の出力値（フリップフロップ素子に保持されている値“１”および“０”のいずれか）に応じて、その保持データをシフト出力させるか、または、データスルー状態にして、前段からのデータを次段にそのまま出力させることができる。キャプチャ後のデータパターンのうち、“１”および“０”のいずれか一方のデータのみを、連続して出力させることができる。これにより、シフト動作時の所要時間が短縮される。
【００４６】
例えば、フリップフロップ素子数が全部でｎ個に対して、キャプチャ後の値が“１”であるフリップフロップ素子がｍ個である場合に、“１”がｍサイクル連続して出力され、ｍ＋１サイクル目に０が出力されれば、”１”がキャプチャされたフリップフロップ素子がｍ個、”０”がキャプチャされたフリップフロップ素子が（ｎ―ｍ）個ということになるので、ｍ＋１サイクルでフリップフロップ素子にキャプチャされたデータを出力させることができる。
【００４７】
フリップフロップ素子の保持値が”１”および”０”のいずれの場合に保持データをシフト出力させるかは、シフトデータ切り換え部によってスキャンデータ切り換え部および出力データ切り換え部の切り換えを制御することによって制御することができる。
【００４８】
特に、テスト時間短縮のためには、キャプチャ動作後のデータ（データパターン）のうち、“１”および“０”のいずれか少ない方のデータのみを、連続して出力させることが好ましい。例えば、“００１０１”のように”１”が少ないパターンの場合には、保持されている値が“１”のフリップフロップ素子においてデータをシフト出力させる。また、“０”が少ないパターンの場合には、保持されている値が“０”のフリップフロップ素子においてデータをシフト出力させる。これによって、スキャンテストに必要なクロック（サイクル数）を、限りなく従来の半分に近づけることができ、テストの高速化を図ることができる。
【発明の効果】
【００４９】
以上により、本発明によれば、特定のデータだけをスキャンシフトさせることにより、スキャンテストにおいてシフト動作に必要な時間を大幅に削減することができる。特に、ＬＳＩなどのような大規模な論理回路の場合には、従来のスキャンテスト方式では所用時間が膨大なものになるのに対して、本発明では約１／２の時間に削減することができるため、非常に有効である。
【発明を実施するための最良の形態】
【００５０】
本発明の論理装置に用いられるスキャン素子の実施形態および、これを用いて組み合わせ回路の良否をテストする方法について図面を参照しながら説明する。
【００５１】
図１は、本発明の論理装置に用いられるスキャン素子の一実施形態の要部構成を示す回路図である。
【００５２】
図１において、このスキャン素子１（スキャン回路）は、シフトデータ保持手段としてのフリップフロップ素子１１と、切り換え部としてのセレクタ回路１２〜１５と、ＯＲ回路１６とを有している。
【００５３】
フリップフロップ素子１１は、セレクタ回路１３と接続されてデータが入力されるデータ入力端子Ｄと、セレクタ回路１４と接続されてデータが出力されるデータ出力端子Ｑと、クロック入力端子７が接続されてクロック信号が入力されるクロック入力端子ＣＬＫとを有しており、クロック信号の入力タイミングに応じてセレクタ回路１３から供給されるデータがデータ入力端子Ｄから入力されて保持され、次のクロック信号の入力タイミングで、保持されたデータがデータ出力端子Ｑから出力されてセレクタ回路１４に供給される。
【００５４】
フリップフロップ素子１１は、データ出力端子ｎｏｔ Ｑ（図１ではＱバー）を有している。データ出力端子Ｑからの出力データが”０”であるときにデータ出力端子ｎｏｔ Ｑからは、データ出力端子Ｑからの出力データ”０” であるときにその反対のデータ”１”が出力され、データ出力端子Ｑからの出力データが”１”であるときにその反対のデータ”０”が出力されてセレクタ回路１５に供給される。
【００５５】
フリップフロップ素子１１は、入力端子５、６のそれぞれと接続された入力端子ＳＥＴ、ＲＥＳＥＴとを有している。入力端子５、６のそれぞれから入力される制御信号ＳＥＴ、ＲＥＳＥＴに応じて、フリップフロップ素子１１に直接保持値を設定することができるようになっている。
【００５６】
セレクタ回路１２は、フリップフロップ素子１１の保持値によって、スキャンイン端子２から入力されるスキャンインデータＳＩＮと、フリップフロップ素子１１の保持データとを切り換えて入力データ切り換え部であるセレクタ回路１３に供給するスキャンデータ切り換え部として機能する。具体的には、セレクタ回路１２は、セレクタ回路１５およびＯＲ回路１６を介してフリップフロップ素子１１のデータ出力端子Ｑおよびｎｏｔ Ｑから供給されるフリップフロップ素子１１の各保持値を制御信号として制御され、供給される制御信号が”０”である場合にはフリップフロップ素子１１のデータ出力端子Ｑから供給される保持データを選択し、供給される制御信号が”１”である場合にはスキャンイン端子２から入力されるスキャンインデータＳＩＮを選択して、入力データ切り換え部であるセレクタ回路１３にスキャン動作時に入力されるデータとして供給する。
【００５７】
セレクタ回路１３は、入力データ切り換え制御端子４から供給される入力データ切り換え制御信号ＳＥＮに応じて、通常動作時にデータ入力端子３から入力されるデータＤとスキャン動作時に入力されるデータとを切り換えてフリップフロップ素子１１のデータ入力端子Ｄに供給する入力データ切り換え部として機能する。具体的には、セレクタ回路１３は、入力データ切り換え制御端子４から供給される入力データ切り換え制御信号ＳＥＮによってデータの切り換えが制御され、入力データ切り換え制御信号ＳＥＮが”０”である場合にデータ入力端子３から入力されるデータＤを選択し、入力データ切り換え制御信号ＳＥＮが”１”である場合にセレクタ回路１２から供給されるデータを選択してフリップフロップ素子１１のデータ入力端子Ｄに入力する。
【００５８】
セレクタ回路１４は、フリップフロップ素子１１の保持データとスキャンインデータとを切り換えて出力信号ＤＯを出力させる出力データ切り換え部として機能する。具体的には、セレクタ回路１４は、セレクタ回路１５およびＯＲ回路１６を介してフリップフロップ素子１１のデータ出力端子Ｑおよびｎｏｔ Ｑから供給されるフリップフロップ素子１１の各保持値を制御信号として制御され、供給される制御信号が”１”である場合にはフリップフロップ素子１１のデータ出力端子Ｑから供給されるデータを選択し、供給される制御信号が”０”である場合にはスキャンイン端子２から入力されるスキャンインデータＳＩＮを選択して、スキャンアウト端子１０から出力信号ＤＯとして出力する。
【００５９】
セレクタ１５は、フリップフロップ素子１１の各保持値によって、スキャンデータ切り換え部であるセレクタ回路１２および出力データ切り換え部であるセレクタ回路１４の切り換えを制御するシフトデータ切り換え部として機能する。具体的には、セレクタ回路１５は、シフトデータ切り換え制御端子８から入力されるシフトデータ切り換え制御信号ＤＳＥＬによって制御され、シフトデータ切り換え制御信号ＤＳＥＬが”１”である場合にはフリップフロップ素子１１のデータ出力端子Ｑから供給されるデータを選択し、供給される値が”０”である場合にはフリップフロップ素子１１のデータ出力端子ｎｏｔＱから供給されるデータを選択して、ＯＲ回路１６を介してシフトデータ切り換え部であるセレクタ回路１２および出力データ切り換え部であるセレクタ回路１４の各制御端子に制御信号としてそれぞれ供給する。
【００６０】
ＯＲ回路１６は、スキャンデータ切り換え部であるセレクタ回路１２および出力データ切り換え部であるセレクタ回路１４によるデータ切り換えを行う高速スキャン動作と、データ切り換えを行わない通常のスキャン動作とを切り換えるシフトモード切り換え部として機能する。具体的には、ＯＲ回路１６は、シフトモード制御端子９から入力されるシフトモード制御信号ＳＳＥＬによって制御され、シフトモード制御信号ＳＳＥＬが”０”である場合には”１”を出力し、シフトモード制御信号ＳＳＥＬが”１”である場合にはシフトデータ切り換え部であるセレクタ回路１５から供給されるデータ（”１”または”０”）を出力してシフトデータ切り換え部であるセレクタ回路１２および出力データ切り換え部であるセレクタ回路１４を制御する制御信号としてそれぞれ供給する。
【００６１】
なお、上記の場合と同等の動作が実現可能であれば、セレクタ回路１２〜１５は、図８に示すようなＡＮＤ回路などで構成されたものであってもよく、また、トランジスタレベルで実現されたものであってもよい。さらに、フリップフロップ素子１１についても、Ｄフリップフロップ素子、Ｒ−Ｓフリップフロップ素子などであってもよい。さらに、このスキャン素子１の構成全体がトランジスタレベルで構成されていてもよい。
【００６２】
上記構成により、以下に、本実施形態のスキャン素子１の動作について説明する。
【００６３】
まず、通常動作時は、入力データ切り換え制御端子４から供給される入力データ切り換え制御信号ＳＥＮは”０”に設定される。これによって、フリップフロップ素子１１のデータ入力端子Ｄには、セレクタ回路１３によって、データ入力端子３から入力される通常動作時のデータＤが供給されてラッチされる。また、このとき、シフトモード制御端子９から供給されるシフトモード制御信号ＳＳＬＥは”０”に設定され、セレクタ回路１４ではフリップフロップ素子１１のデータ出力端子Ｑから供給されるデータが出力信号ＤＯとして選択されてスキャンアウト端子１０から出力されている。
【００６４】
次に、スキャンテスト時の動作について説明する。
【００６５】
スキャンテスト時には、まず、組み合せ回路からの出力応答結果をフリップフロップ素子１１に格納するキャプチャ動作が行われる。論理装置において、全ての組み合せ回路を構成する各論理回路の入力端と出力端は、スキャン素子１の出力端と入力端間に挿入されている。１クロックで全ての組み合せ回路が並列に動作してデータが処理され、後段のスキャン素子１にデータが供給されてフリップフロップ素子１１にラッチされる。即ち、フリップフロップ素子１１に設定されたデータが組み合せ回路に供給され、次のクロックで組み合せ回路で処理された出力応答結果データがフリップフロップ素子１１にラッチされる。
【００６６】
キャプチャ動作時には、まず、通常動作時の場合と同様に、入力データ切り換え制御端子４から供給される入力データ切り換え制御信号ＳＥＮが”０”に設定され、フリップフロップ素子１１のデータ入力端子Ｄには、セレクタ回路１３によって、データ入力端子３から入力される組み合せ回路からのデータＤが供給されてラッチされる。
【００６７】
次に、フリップフロップ素子１１に保持された組み合せ回路の出力結果をシフト動作にて外部に出力するシフト動作が行われる。
【００６８】
シフト動作時には、入力データ切り換え制御端子４から供給される入力データ切り換え制御信号ＳＥＮが”１”に設定される。このとき、フリップフロップ素子１１のデータ入力端子Ｄに供給されるデータは、セレクタ回路１２によって、キャプチャ動作時にフリップフロップ素子１１にラッチされた値によって切り換えられる。
【００６９】
このとき、シフトモード制御端子９から供給されるシフトモード制御信号ＳＳＬＥは”１”に設定されている。シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”１”である場合に、フリップフロップ素子１１のデータ出力端子Ｑから出力される値が”１”であるときには、セレクタ回路１２によってスキャンイン端子２から供給されるスキャンインデータＳＩＮが選択されてセレクタ回路１３を介してフリップフロップ素子１１のデータ入力端子に供給されてラッチされる。
【００７０】
一方、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”１”である場合に、フリップフロップ素子１１のデータ出力端子Ｑから出力される値が”０”であるときには、スキャンイン端子２から供給されるスキャンインデータＳＩＮはセレクタ回路１２によって選択されず、そのままフリップフロップ素子１１の後段に接続されたセレクタ回路１４に供給される。
【００７１】
このセレクタ回路１４も、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬおよびフリップフロップ素子１１のデータ出力端子Ｑから出力される値によって制御されている。シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”１”である場合に、フリップフロップ素子１１のデータ出力端子Ｑから出力される値が”１”であるときには、フリップフロップ素子１１のデータ出力端子Ｑから出力される値”１”がセレクタ回路１４によって選択されてスキャンアウト端子１０から出力される。
【００７２】
また、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”１”である場合に、フリップフロップ素子１１のデータ出力端子Ｑから出力される値が”０”であるときには、スキャンイン端子２から供給されるスキャンインデータＳＩＮがセレクタ回路１４によって選択されてスキャンアウト端子１０から出力される。
【００７３】
セレクタ回路１２、１４は、フリップフロップ素子１１のデータ出力端子Ｑからの出力値によって制御されるが、セレクタ回路１５によって、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬに応じて、データ出力端子Ｑからの出力値が使用されるのか、またはｎｏｔ Ｑからの出力値が使用されるのかが選択されている。
【００７４】
したがって、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”０”である場合に、フリップフロップ素子１１のデータ出力端子ｎｏｔ Ｑから出力される値が”１”であるときには、セレクタ回路１２によってスキャンイン端子２から供給されるスキャンインデータＳＩＮが選択されてセレクタ回路１３を介してフリップフロップ素子１１に供給されてラッチされる。
【００７５】
一方、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”０”である場合に、フリップフロップ素子１１のデータ出力端子ｎｏｔ Ｑから出力される値が”０”であるときには、スキャンイン端子２から供給されるスキャンインデータＳＩＮはセレクタ回路１２によって選択されず、そのままフリップフロップ素子１１の後段に接続されたセレクタ回路１４に供給される。
【００７６】
また、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”０”である場合に、フリップフロップ素子１１のデータ出力端子ｎｏｔ Ｑから出力される値が”１”であるときには、フリップフロップ素子１１のデータ出力端子Ｑから出力される値がセレクタ回路１４によって選択されてスキャンアウト端子１０から出力される。
【００７７】
また、シフトデータ切り換え制御端子８から供給されるシフトデータ切り換え制御信号ＤＳＥＬが”０”である場合に、フリップフロップ素子１１のデータ出力端子ｎｏｔ Ｑから出力される値が”０”であるときには、スキャンイン端子２から供給されるスキャンインデータＳＩＮがセレクタ回路１４によって選択されてスキャンアウト端子１０から出力される。
【００７８】
スキャン素子１においては、入力端子５、６から供給される制御信号ＳＥＴおよびＲＥＳＥＴを用いて、フリップフロップ素子１１に保持されている値を直接設定することができる。
【００７９】
図２は、図１の入力端子５、６から供給される制御信号ＳＥＴおよびＲＥＳＥＴとフリップフロップ素子１１の動作との関係例を示す真理値表である。
【００８０】
図２に示すように、ＲＥＳＥＴ＝”０”、かつ、ＳＥＴ＝”１”のときには、フリップフロップ素子１１に”０”の値が設定される。また、ＲＥＳＥＴ＝”１”、かつ、ＳＥＴ＝”０”のときには、フリップフロップ素子１１に”１”の値が設定される。また、ＲＥＳＥＴ＝”１”、かつ、ＳＥＴ＝”１”のときには、フリップフロップ素子１１のデータ入力端子Ｄに供給され、クロック信号によってラッチされた値が設定される。さらに、ＲＥＳＥＴ＝”０”、かつ、ＳＥＴ＝”０”のときには、フリップフロップ素子１１には現在設定されている値がそのまま保持される。
【００８１】
また、このスキャン素子１においては、スキャンモードとして、通常スキャンモードと、高速スキャンモードとが設けられている。スキャンモード切り換え制御端子９から供給されるスキャンモード切り換え制御信号ＳＳＥＬによって制御される。
【００８２】
通常スキャンモードは、従来のスキャンテスト方式と同様であり、スキャンモード切り換え制御端子９から供給されるスキャンモード切り換え制御信号ＳＳＥＬを”０”に設定することによって、ＯＲ回路１６から”１”が出力され、スキャンデータ切り換え部であるセレクタ回路１２には、スキャンイン端子２から供給されるスキャンインデータＳＩＮが選択されてスキャンテスト時に入力されるデータとしてセレクタ回路１３に供給される。
【００８３】
また、このとき、出力データ切り換え部であるセレクタ回路１４では、フリップフロップ素子１１の出力端子Ｑからの出力される値が選択されてスキャンアウト端子１０から出力される。
【００８４】
一方、高速スキャンモードでは、スキャンモード切り換え制御端子９から供給されるスキャンモード切り換え制御信号ＳＳＥＬを”１”に設定することによって、ＯＲ回路１６からシフトデータ切り換え部であるセレクタ回路１５を介してフリップフロップ素子１１のデータ出力端子Ｑまたはｎｏｔ Ｑから供給される値に応じて”０”または”１”が出力され、スキャンデータ切り換え部であるセレクタ回路１２および出力データ切り換え部であるセレクタ回路１４では、データが切り換えられる。
【００８５】
以下に、本実施形態のスキャン素子１を用いた論理装置２０およびそのテスト方法について説明する。
【００８６】
図３（ａ）は、本発明の論理装置の一実施形態の構成を示す回路図である。なお、図１のスキャン素子１の構成部材と同一の部材番号を付して説明するが、ここでは、スキャン素子１と同等のスキャン素子２６〜３０が設けられている。
【００８７】
図３（ａ）において、この論理装置２０では、本実施形態のスキャン素子２６〜３０が複数個、シリアルに接続されている。スキャン素子２６にはスキャンイン端子２２（図１のスキャンイン端子２に相当）が接続され、スキャン素子２６のスキャンアウト端子（図１のスキャンアウト端子１０に相当）にはスキャン素子２７のスキャンイン端子（図１のスキャンイン端子２に相当）が接続されている。また同様に、スキャン素子２７のスキャンアウト端子にはスキャン素子２８のスキャンイン端子が接続され、スキャン素子２８のスキャンアウト端子にはスキャン素子２９のスキャンイン端子が接続されている。また、スキャン素子２９のスキャンアウト端子にはスキャン素子３０のスキャンイン端子が接続され、スキャン素子３０のスキャンアウト端子２４を出力端子としている。
【００８８】
また、各スキャン素子２６〜３０間の各接続部はそれぞれ、組み合せ回路３１を構成する各論理回路の各入力端子がそれぞれ接続されて各スキャン素子２６〜３０からの各出力値が組み合せ回路３１にそれぞれ供給され、各スキャン素子２６〜３０の各データ入力端子にはそれぞれ、組み合せ回路３１の各出力端子がそれぞれ接続されて組み合せ回路３１からの各出力値が各スキャン素子２６〜３０にそれぞれ供給されるようになっている。
【００８９】
また、各スキャン素子２６〜３０の各クロック入力端子はそれぞれ、クロック入力端子２３に共通接続されている。クロック入力端子２３に入力されるクロック信号のタイミングに応じて各スキャン素子２６〜３０に含まれる各フリップフロップ素子にデータがラッチされるようになっている。
【００９０】
さらに、各スキャン素子２６〜３０の各入力端子ＳＥＴ、ＲＥＳＥＴにはそれぞれ、入力端子２１が接続されるデコーダ回路２５の各出力端子がそれぞれ接続されている。このデコーダ回路２５により、入力端子２１から供給される５ビットのデータに応じて各スキャン素子２６〜３０にそれぞれ含まれる各フリップフロップ素子に保持される値が直接設定される。
【００９１】
図４は、スキャンテスト方式において、図３（ａ）に示す論理装置２０に対する故障検出率を１００％とするためにスキャン素子２６〜３０に設定すべき設定値を、この順に上位から並べた５ビットの２進数で表したときの設定値と、そのときにキャプチャされる値（出力値）との関係を示す表である。この例では、それぞれ、３２パターンの値が設定されている。
【００９２】
まず、スキャン素子２６〜３０への値の設定は、従来のスキャン方式によるシフト動作ではなく、デコーダ回路２５から直接、図１に示す入力端子５からの制御信号ＳＥＴと入力端子６からの制御信号ＲＥＳＥＴによって行われる。
【００９３】
即ち、入力端子２１から入力された５ビットの値から、デコーダ回路２５にて必要なＳＥＴ信号およびＲＥＳＥＴ信号の組み合せが生成され、スキャン素子２６〜３０の入力端子５および６に入力されてスキャン素子２６〜３０毎の各フリップフロップ素子１１に値が設定される。
【００９４】
スキャン素子２６〜３０ではそれぞれ、入力データ切り換え制御端子４からの入力データ切り換え制御信号ＳＥＮが”０”に設定されており、デコーダ回路２５から設定された値を用いてキャプチャ動作が行われ、組み合わせ回路３１からの出力結果が各スキャン素子２６〜３０毎のデータ入力端子３をそれぞれ介して各フリップフロップ素子１１にそれぞれ格納される。その後、シフト動作にて結果の出力が行われる。
【００９５】
次に、本実施形態の高速スキャンモードの特徴であるシフト動作の方法について説明する。ここでは、スキャン素子２６〜３０の設定値が”００１０１”、キャプチャされた値が  ”００１０１”である場合を例として説明を行う。この場合には、データパターンのうち、”１”が少ないので、保持された値が”１”であるスキャン素子２８，３０においてデータがスキャンシフトされ、保持された値が”０”であるスキャン素子２６，２７，２９ではデータが取り出されずに、前段のデータがそのまま次段のスキャン素子に転送される。
【００９６】
この場合、各スキャン素子２６〜３０の入力データ切り換え制御信号ＳＥＮおよびシフトモード切り換え制御信号ＳＳＥＬが”１”に設定され、シフトデータ切り換え制御信号ＤＥＳＬが”１”に設定され、かつ、スキャンイン端子２２（図１のスキャンイン端子２に相当）には”０”が入力される。
【００９７】
このシフト時の出力経過を図３（ｂ）に示す等価回路図を用いて説明する。
【００９８】
キャプチャ後のフリップフロップ素子１１の状態は、スキャン素子２６〜３０の保持値をビットの値として上位から並べて２進数で表したときに”００１０１”となっている。この状態で、クロック入力端子２３からクロック信号が１パルス入力されると、スキャン素子２６、２７では自らの値がラッチされたままであるので、二つとも保持値が”０”の状態のままである。
【００９９】
また、スキャンイン端子２２から入力されたスキャンインデータ”０”は、スキャン素子２６、２７ではラッチされず、スキャン素子２８に入力されてラッチされる。これによって、スキャン素子２８の状態は、”１”から”０”へとフリップフロップ素子１１内の保持値が更新される。
【０１００】
このとき、スキャン素子２９は、フリップフロップ素子１１の保持値が”０”であるので、保持値が”０”のまま保持され、スキャン素子２８からの出力値”１”はスキャン素子２９でラッチされずにスキャン素子３０に入力される。スキャン素子３０では、フリップフロップ素子の保持値が”１”であるので、スキャン素子２９から供給されるスキャン素子２８の出力値”１”がラッチされる。
【０１０１】
このときの動作を等価回路により表すと、図３（ｃ）に示すように、スキャン素子２６〜３０のうち、フリップフロップ素子１１の保持値が”０”であったスキャン素子２６、２７および２９を素通りしてデータがシフトされたようになる。
【０１０２】
これによって、各スキャン素子２６〜３０におけるフリップフロップ素子１１の保持値は、”００１０１”から”００００１”となる。また、このとき、スキャンアウト端子２４からの出力値は、スキャン素子３０からの出力値であるので、”１”が出力される。以上によって、１回目のクロックパルスが入力されたときの動作が終了する。
【０１０３】
次に、クロック入力端子２３に２回目のクロックパルスが入力された場合においても、１回目と同様の動作が行われる。
【０１０４】
ここでは、２回目のクロックパルス入力前のスキャン素子２６〜３０の状態（フリップフロップ素子１１の保持値）が”００００１”であるので、スキャン素子２６〜２９では、入力データがラッチされずに値が保持され、全て”０”となる。また、スキャンイン端子２２から入力されたスキャンインデータ”０”は、スキャン素子３０に入力されるので、スキャン素子２６〜３０の状態は”０００００”となる。また、このとき、スキャンアウト端子２４からの出力値は、スキャン素子３０からの出力値であるので、”１”が出力される。以上によって、２回目のクロックパルスが入力されたときの動作が終了する。
【０１０５】
次に、３回目のクロックパルスが入力されると、スキャン素子２６〜３０の状態が”０００００”であるので、全てのスキャン素子２６〜３０では入力データがラッチされずに値が保持される。このとき、スキャンイン端子２２から入力されたスキャンインデータ”０”はスキャン素子２６〜３０を素通りしてスキャンアウト端子２４から出力されるので、ここで初めて”０”が出力される。これによって、スキャン素子２６〜３０に格納されていた”１”が全て外部に出力されたことになる。
【０１０６】
その後、４回目のサイクルにおいて、新たな設定値が入力端子２１とデコーダ回路２５によってスキャン素子２６〜３０にそれぞれ設定され、同様の動作が行われる。
【０１０７】
また、スキャン素子２６〜３０にキャプチャされた値が  ”１１１１０”である場合など、データパターンのうち、”０”が多い場合には、保持された値が”０”であるスキャン素子３０を介してスキャン素子２９のデータ”１”が取り出され、”１”であるスキャン素子２６〜２８ではデータが取り出されずに、前段のデータがそのまま次段のスキャン素子に転送される。
【０１０８】
この場合、各スキャン素子２６〜３０の入力データ切り換え制御信号ＳＥＮおよびシフトモード切り換え制御信号ＳＳＥＬが”１”に設定され、シフトデータ切り換え制御信号ＤＥＳＬが”０”に設定され、かつ、スキャンイン端子２２には（図１ではスキャンイン端子２に相当）”１”が入力される。
【０１０９】
図５は、図４に示す３２通りの出力値に対して、本実施形態のテスト方法におけるシフト動作に必要なクロックサイクル数を表す図である。
【０１１０】
図５に示す表において、１列目は出力値を示し、２列目はサイクル数を示している。２列目のサイクル数ではシフトデータ切り換え制御信号ＤＳＥＬが”１”である場合の値を示し、括弧内の値はＤＳＥＬが”０”である場合の値を示している。この値を元に、必要サイクル数が最も少なくなるようなＤＳＥＬの値を３列目に示し、そのときのサイクル数を４列目に示している。
【０１１１】
例えば、出力値のパターンが”００１１０”ではシフトデータ切り換え制御信号ＤＳＥＬが”１”の場合にシフト動作に必要なサイクル数は３であり、ＤＳＥＬが”０”の場合にシフト動作に必要なサイクル数は４であるため、必要サイクル数を少なくするためにはＤＳＥＬを”１”に設定することが好ましいことが分かる。
【０１１２】
また、出力値のパターンが”００１１１”ではシフトデータ切り換え制御信号ＤＳＥＬが”１”の場合にシフト動作に必要なサイクル数は４であり、ＤＳＥＬが”０”の場合にシフト動作に必要なサイクル数は３であるため、必要サイクル数を少なくするためにはＤＳＥＬを”０”に設定することが好ましいことが分かる。
【０１１３】
これによって、テストに必要な合計シフトサイクルは、従来方式では５サイクル×３２通り＝１６０サイクルであるのに対して、本実施形態では図５に示すように８２サイクルとなる。
【０１１４】
また、テストに必要な合計キャプチャサイクルは、従来方式および本実施形態ともに１サイクル×３２通り＝３２サイクルとなる。
【０１１５】
さらに、テストに必要な合計入力値設定サイクルは、従来方式ではシフト動作時に同時にスキャンデータをスキャンイン端子から入力すればシフトと設定とを同時に行うことができるために０サイクルであるのに対して、本実施形態では１サイクル×３２通り＝３２サイクルとなる。
【０１１６】
したがって、全組み合せパターンをテストするために必要なサイクル数は、従来方式では１９２サイクルであるのに対して、本実施形態では１４６サイクルとなり、テスト時間を２４％削減することができる。
【０１１７】
一般に、フリップフロップ素子１１を含むスキャン素子１がＮ個接続されている。この場合に、パターン数がＭパターンであるとすると、スキャンテストに必要なサイクル数は、従来方式では（Ｎ＋１）×Ｍサイクルとなる。
【０１１８】
これに対して、本発明では、１パターンに対する最大シフトサイクル数は（Ｎ／２）＋１となり、キャプチャサイクル数が１、入力値設定サイクル数が１であるので、合計（（Ｎ／２）＋１＋１＋１）×Ｍサイクルとなる。
【０１１９】
したがって、本発明の論理装置２０のテスト方法による必要サイクル数は、従来方式に対して、次の（数１）の計算式に示すような割合になり、Ｎが十分大きい場合には、計算結果が限りなく５０％に近づくことになる。したがって、回路が大規模になると、スキャンテストの所要時間を約１／２に削減することが可能になる。
【０１２０】
【数１】
2005031054.tif 000003
上記（数１）の計算式による計算結果は、フリップフロップ素子に保持される値”０”および”１”が同じ頻度で現れると考えたワーストケースであり、”０”および”１”の出現頻度に偏りがあれば、さらにテスト時間を削減することができる。
【０１２１】
なお、上記（数１）は、本発明の論理装置のテスト方法によるスキャンテストの所要時間と、従来方式によるスキャンテストの所要時間との比を表す計算式である。
【０１２２】
以上により、本実施形態のスキャン素子１によれば、フリップフロップ素子１１と、通常時入力データとスキャン時入力データを切り換えてフリップフロップ素子１１に供給する入力データ切り換え部（セレクタ回路１３）と、フリップフロップ素子１１の保持値によって、保持データとスキャン時入力データを切り換えて出力させる出力データ切り換え部（セレクタ回路１４）と、フリップフロップ素子１１の保持値によって、スキャン時入力データと保持データを切り換えて入力データ切り換え部（セレクタ回路１３）に供給するスキャンデータ切り換え部（セレクタ回路１２）と、フリップフロップ素子１１の保持値によって、スキャンデータ切り換え部（セレクタ回路１２）と出力データ切り換え部（セレクタ回路１４）の切り換えを制御するシフトデータ切り換え部（セレクタ回路１５）と、高速スキャン動作と通常のスキャン動作を切り換えるシフトモード切り換え部（ＯＲ回路１６）とを設けている。このように、セレクタ回路１４がスキャン時入力データを選択する場合には、フリップフロップ素子１１の保持データの値に応じて、フリップフロップ素子１１によるシフト動作を介さずに、直にスキャン時入力データをスルー出力させることができるため、例えば論理装置２０によるスキャンテスト時に、論理装置２０全体のシフト動作の所要時間を短縮化することができる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の論理装置に用いられるスキャン素子の一実施形態の要部構成を示す回路図である。
【図２】図１のスキャン素子において、ＳＥＴ信号およびＲＥＳＥＴ信号の値とそのときの動作を説明するための真理値表である。
【図３】（ａ）は本発明の論理装置の一実施形態における構成例を示す回路図であり、（ｂ）は（ａ）の論理装置におけるスキャンシフト動作時の等価回路図であり、（ｃ）は（ａ）の論理装置における高速スキャン動作時の等価回路図である。
【図４】図１の論理装置において、フリップフロップ素子への設定値および組み合せ回路からの出力値の例を示す図である。
【図５】図４の出力値に対して、本実施形態の論理装置におけるシフト動作の所要時間の例を示す図である。
【図６】従来のスキャンデザイン方式を用いた論理装置の一構成例を示す回路図である。
【図７】図６のセレクタ回路の一例を示す回路図である。
【図８】（ａ）は従来のスキャンデザイン方式を用いた回路であって、通常動作時の等価回路図、（ｂ）はスキャンシフト時の等価回路図である。
【符号の説明】
【０１２４】
１  スキャン素子
２  スキャンイン端子
３  データ入力端子
４  入力データ切り換え制御端子
５、６  入力端子
７  クロック入力端子
８  シフトデータ切り換え制御端子
９  シフトモード切り換え制御端子
１０  スキャンアウト端子
１１  フリップフロップ素子
１２〜１５  セレクタ回路
１６  ＯＲ回路
２０  論理装置
２１  入力端子
２２  スキャンイン端子
２３  クロック入力端子      
２４  スキャンアウト端子
２５  デコーダ回路
２６〜３０  スキャン素子
３１  組み合せ回路
【図１】
2005031054.tif 000004
【図２】
2005031054.tif 000005
【図３】
2005031054.tif 000006
【図４】
2005031054.tif 000007
【図５】
2005031054.tif 000008
【図６】
2005031054.tif 000009
【図７】
2005031054.tif 000010
【図８】
2005031054.tif 000011