(57)【特許請求の範囲】
【請求項１】
第１のスキャンフリップフロップ及び第２のスキャンフリップフロップを含みスキャンチェーンを構成する複数のスキャンフリップフロップと、
該第１のスキャンフリップフロップのスキャン出力を第１の入力として受け取り、該第２のスキャンフリップフロップのスキャン出力を第２の入力として受け取り、該第１の入力及び該第２の入力の排他的論理和の論理値と該第１の入力の論理値との何れか一方の論理値を、制御信号に応じて選択的に該第２のスキャンフリップフロップのスキャン入力に供給する論理回路と
を含むことを特徴とする半導体集積回路。
【請求項２】
該複数のスキャンフリップフロップが構成するスキャンチェーンの全ての段において、前段のスキャン出力と次段のスキャン入力との間に該論理回路が設けられていることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
該複数のスキャンフリップフロップが構成するスキャンチェーンのＮ個（Ｎ：整数）おきの段において、前段のスキャン出力と次段のスキャン入力との間に該論理回路が設けられていることを特徴とする請求項１記載の半導体集積回路。
【請求項４】
該制御信号の値を該スキャンチェーン上の位置に応じて異ならせることを特徴とする請求項１乃至３何れか一項記載の半導体集積回路。
【請求項５】
該制御信号の値を該半導体集積回路の外部からの入力に応じて決定することを特徴とする請求項１乃至４何れか一項記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、一般に半導体集積回路に関し、詳しくはスキャンシフト機能を備えた半導体集積回路に関する。
【背景技術】
【０００２】
複数の論理回路ユニットが搭載されるシステムＬＳＩにおいては、全ての論理回路ユニットの入出力がシステムＬＳＩの外部端子を介して外部に結合されるのではない。通常の動作においてシステムＬＳＩ外部と直接にデータをやり取りする必要のない論理回路ユニットに対しては、直接入出力のための外部端子は設けられない。そのような論理回路ユニットを試験するために、単一の端子からシリアルにデータを入力するスキャンシフト方式が用いられる。
【０００３】
図１は、スキャンシフト方式の従来のシステムＬＳＩの構成の一例を示す図である。システムＬＳＩ１０は、論理回路ユニット１１、論理回路ユニット１２、及びスキャンフリップフロップ１３−１乃至１３−８を含む。論理回路ユニットの数及びスキャンフリップフロップの数は一例であり、図示の数に限定されるものではない。また図面では、簡単な例としてスキャンフリップフロップ１３−１乃至１３−８の各々のデータ入力端子Ｄとデータ出力端子Ｑとが同一の論理回路ユニットに結合されているが、例えばある１つのスキャンフリップフロップのデータ入力端子Ｄ及びデータ出力端子Ｑがそれぞれ別の論理回路ユニットに接続されていてもよい。各スキャンフリップフロップ１３−１乃至１３−８は、論理回路ユニットのある部分からの出力データをデータ入力端子Ｄで受け取り、内部にデータを格納し、格納データをデータ出力端子Ｑから論理回路ユニットの他の部分へ入力データとして供給する。
【０００４】
各スキャンフリップフロップ１３−１乃至１３−８は、上記データ入力端子Ｄとデータ出力端子Ｑ以外に、スキャンシフト用にスキャン入力端子ＳＩ及びスキャン出力端子ＳＯを有する。またスキャンシフト有効／無効を指示するスキャンイネーブル入力端子ＳＥが設けられている。スキャンイネーブル入力端子ＳＥの“０／１”に応じて、データ入力端子Ｄ又はスキャン入力端子ＳＩの何れかが選択される。選択された入力端子のデータがクロック信号Ｃｌｏｃｋに同期してフリップフロップ内部に格納される。データ出力端子Ｑとスキャン出力端子ＳＯとは同一の内部ノードに結合されており、同一のデータ信号が出力される。
【０００５】
システムＬＳＩ１０の通常動作の場合、スキャンイネーブル入力ＳＥにスキャン無効を指示する値（例えば“０”）を印加する。この場合、各スキャンフリップフロップ１３−１乃至１３−８は、クロック信号Ｃｌｏｃｋに同期してデータ入力端子Ｄからの入力データを格納し、データ出力端子Ｑから格納データを出力する。
【０００６】
システムＬＳＩ１０のテスト動作の場合、スキャンイネーブル入力ＳＥにスキャン有効を指示する値（例えば“１”）を印加する。この場合、各スキャンフリップフロップ１３−１乃至１３−８は、クロック信号Ｃｌｏｃｋに同期してスキャン入力端子ＳＩからの入力データを格納し、スキャン出力端子ＳＯから格納データを出力する。あるフリップフロップのスキャン出力端子ＳＯは別のフリップフロップのスキャン入力端子ＳＩに結合されており、複数のスキャンフリップフロップ１３−１乃至１３−８のカスケード接続によりフリップフロップのチェーン（スキャンチェーン）を構成している。
【０００７】
テスト動作時には、外部のテスタ装置により、スキャンモードを指示するスキャンイネーブル信号ＳｃａｎＥｎａｂｌｅを有効（例えば“１”）に設定し、設定データＳｃａｎＩｎを入力クロック信号Ｃｌｏｃｋに同期させてテスト入力端子ＴＳＩからシリアルに入力する。テスト入力端子ＴＳＩから入力される設定データは、クロック信号Ｃｌｏｃｋに同期したスキャンフリップフロップのシフト動作によってデータシフトを繰り返し、最終的に所定のデータを各スキャンフリップフロップ１３−１乃至１３−８に設定することができる。
【０００８】
所定のデータを各スキャンフリップフロップ１３−１乃至１３−８に設定し終えると、論理回路ユニット１１及び１２を動作させる。所定の動作後に、論理回路ユニット１１及び１２の出力データがスキャンフリップフロップ１３−１乃至１３−８に並列に格納される。その後、クロック信号Ｃｌｏｃｋによってスキャンフリップフロップ１３−１乃至１３−８のデータをシフトさせることで、出力データＳｃａｎＯｕｔを出力端子ＴＳＯからシリアルに出力させる。シリアルに出力された出力データＳｃａｎＯｕｔを外部のテスタ装置により観測し、入力した設定データＳｃａｎＩｎに対して期待される期待値データと比較する。出力データＳｃａｎＯｕｔと期待値データとの比較結果により、システムＬＳＩ１０の内部の論理回路ユニット１１及び１２の不良を検出することができる。
【特許文献１】特許第２７４３８０７号公報
【特許文献２】特開２００５−３８１８７号公報
【特許文献３】特開昭６２−０４４８４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
テスト動作時に論理回路ユニットから出力されスキャンフリップフロップに格納されるデータは、“０”と“１”とが混在したデータである。このように“０”と“１”とが混在するデータをスキャンシフト動作によりスキャンチェーン中に伝搬させると、データ遷移による信号レベル変化のために電力が消費される。この電力消費は、スキャンチェーンを構成するスキャンフリップフロップだけでなく、スキャンフリップフロップの出力に接続される論理回路ユニットにおいても発生する。
【００１０】
上記のようなテスト動作中の無駄な電力消費を削減するために、例えばスキャンフリップフロップのデータ出力端子Ｑから論理回路ユニットへのデータ入力経路にＡＮＤ回路等を挿入して、スキャンシフト動作時にデータをマスクする方法がある。しかしこのような方法では、通常動作時に使用するデータ入力経路に余計な論理ゲートが挿入されることになり、データ伝搬速度を劣化させてしまう。
【００１１】
以上を鑑みて本発明は、スキャンシフト動作時におけるデータ遷移による電力消費を削減した半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
半導体集積回路は、第１のスキャンフリップフロップ及び第２のスキャンフリップフロップを含みスキャンチェーンを構成する複数のスキャンフリップフロップと、該第１のスキャンフリップフロップのスキャン出力を第１の入力として受け取り、該第２のスキャンフリップフロップのスキャン出力を第２の入力として受け取り、該第１の入力及び該第２の入力の排他的論理和の論理値と該第１の入力の論理値との何れか一方の論理値を、制御信号に応じて選択的に該第２のスキャンフリップフロップのスキャン入力に供給する論理回路とを含むことを特徴とする。
【発明の効果】
【００１３】
スキャンチェーン上の空間的なビットパターンに“０”／“１”の変化点があると、そのデータ位置でデータ遷移が発生して電力が消費される。排他的論理和を介したスキャンシフト動作により“１”の比率が多くなれば、空間的なビットパターンでの“０”／“１”の変化点の数が少なくなる。本発明による少なくとも１つの実施例においては、排他的論理和を介したスキャンシフト動作によりビットパターンの“０”／“１”の変化点の数を少なくすることで、その後通常のスキャンシフト動作においてデータ遷移の発生する数を少なくして、電力消費を削減することができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図２は、本発明によるスキャンシフト方式のシステムＬＳＩの構成の一例を示す図である。システムＬＳＩ２０は、論理回路ユニット２１、論理回路ユニット２２、スキャンフリップフロップ２３−１乃至２３−８、ＸＯＲ（Exclusive-OR）回路２４−１乃至２４−８、及びセレクタ２５−１乃至２５−８を含む。論理回路ユニットの数、スキャンフリップフロップの数、ＸＯＲ回路の数、及びセレクタの数は一例であり、図示の数に限定されるものではない。また図面では、簡単な例としてスキャンフリップフロップ２３−１乃至２３−８の各々のデータ入力端子Ｄとデータ出力端子Ｑとが同一の論理回路ユニットに結合されているが、例えばある１つのスキャンフリップフロップのデータ入力端子Ｄ及びデータ出力端子Ｑがそれぞれ別の論理回路ユニットに接続されていてもよい。各スキャンフリップフロップ２３−１乃至２３−８の機能及び動作は、図１で説明したスキャンフリップフロップ１３−１乃至１３−８の機能及び動作と同一である。
【００１６】
システムＬＳＩ２０の通常動作の場合、スキャンイネーブル入力ＳＥにスキャン無効を指示する値（例えば“０”）を印加する。この場合、各スキャンフリップフロップ２３−１乃至２３−８は、クロック信号Ｃｌｏｃｋに同期してデータ入力端子Ｄからの入力データを格納し、データ出力端子Ｑから格納データを出力する。システムＬＳＩ２０のテスト動作の場合、スキャンイネーブル入力ＳＥにスキャン有効を指示する値（例えば“１”）を印加する。この場合、各スキャンフリップフロップ２３−１乃至２３−８は、クロック信号Ｃｌｏｃｋに同期してスキャン入力端子ＳＩからの入力データを格納し、スキャン出力端子ＳＯから格納データを出力する。
【００１７】
図２に示す論理回路ユニット２２において、スキャンチェーンを構成する複数のスキャンフリップフロップ２３−１乃至２３−８のうちの第１のスキャンフリップフロップ（例えば２３−１）のスキャン出力を第１の入力として受け取り、第２のスキャンフリップフロップ（例えば２３−２）のスキャン出力を第２の入力として受け取るＸＯＲ回路２４−２が設けられている。また更に、このＸＯＲ回路２４−２の出力と第１のスキャンフリップフロップ２３−１のスキャン出力とを２つの入力として、制御信号ＸＯＲＥＮに応じて２つの入力の一方を選択して第２のスキャンフリップフロップ２３−２のスキャン入力に供給するセレクタ２５−２が設けられている。このＸＯＲ回路２４−２とセレクタ２５−２とにより、上記第１の入力及び上記第２の入力の排他的論理和の論理値と第１の入力の論理値との何れか一方の論理値を、制御信号ＸＯＲＥＮに応じて選択的に第２のスキャンフリップフロップのスキャン入力に供給する論理回路が構成される。同様の論理構造を有する論理回路は、例えばセレクタを設けることなく、第２のスキャンフリップフロップのスキャン出力をＸＯＲ回路に入力する経路にＡＮＤ回路を挿入し、ＡＮＤ回路の信号通過／ブロック機能を制御信号ＸＯＲＥＮにより制御する等の構成によっても実現することができる。
【００１８】
図２に示されるように、複数のスキャンフリップフロップ２３−１乃至２３−８が構成するスキャンチェーンの全ての段において、前段のスキャン出力と次段のスキャン入力との間にＸＯＲ回路とセレクタとが設けられてよい。これらのＸＯＲ回路及びセレクタとは、以下に説明するようにデータ遷移に伴う消費電力を削減するために設けられる。従って、必ずしも全ての段にＸＯＲ回路とセレクタとが設けられている必要はなく、適宜選択した位置にのみ設けておくのであってもよい。この場合には、設置数に応じた消費電力削減効果が得られる。
【００１９】
テスト動作時には、外部のテスタ装置により、スキャンモードを指示するスキャンイネーブル信号ＳｃａｎＥｎａｂｌｅを有効（例えば“１”）に設定し、また制御信号ＸＯＲＥＮを“０”に設定する。制御信号ＸＯＲＥＮの“０”への設定により、セレクタ２５−１乃至２５−８は、前段のフリップフロップのスキャン出力ＳＯを選択して、次段のフリップフロップのスキャン入力ＳＩに供給することになる。即ち、通常のスキャンシフト動作が行われる。外部のテスタ装置は、設定データＳｃａｎＩｎを入力クロック信号Ｃｌｏｃｋに同期させてテスト入力端子ＴＳＩからシリアルに入力する。テスト入力端子ＴＳＩから入力される設定データは、クロック信号Ｃｌｏｃｋに同期したスキャンフリップフロップのシフト動作によってデータシフトを繰り返し、最終的に所定のデータを各スキャンフリップフロップ２３−１乃至２３−８に設定される。
【００２０】
所定のデータを各スキャンフリップフロップ２３−１乃至２３−８に設定し終えると、論理回路ユニット２１及び２２を動作させる。所定の動作後に、論理回路ユニット２１及び２２の出力データがスキャンフリップフロップ２３−１乃至２３−８に並列に格納される。その後、外部のテスタ装置により、制御信号ＸＯＲＥＮを“１”に設定する。制御信号ＸＯＲＥＮの“１”への設定により、セレクタ２５−１乃至２５−８は、それぞれ対応するＸＯＲ回路２４−１乃至２４−８の出力を選択して、次段のフリップフロップのスキャン入力ＳＩに供給することになる。即ち、排他的論理和を介したスキャンシフト動作が行われる。ＸＯＲ回路２４−１乃至２４−８は、前段のフリップフロップのスキャン出力ＳＯと次段のフリップフロップのスキャン出力ＳＯとが同一値のときに“０”を出力し、異なる値のときに“１”を出力する。このＸＯＲ回路の排他的論理和演算機能により、“０”と“１”とが細かく混ざり合ったデータをシフト動作させると、シフト動作後のデータにおいて“１”の比率が多くなることが期待される。
【００２１】
スキャンフリップフロップの格納データのスキャンチェーン上でのビットパターンにおいて、隣接する２つのフリップフロップの格納データの一方が“０”で他方が“１”のとき、通常のスキャンシフト動作によりデータをシフトすると、着目フリップフロップの格納データにデータ遷移が発生して電力が消費される。即ち、スキャンチェーン上の空間的なビットパターンに“０”／“１”の変化点があると、そのデータ位置でデータ遷移が発生して電力が消費される。上記のような排他的論理和を介したスキャンシフト動作により“１”の比率が多くなれば、空間的なビットパターンでの“０”／“１”の変化点の数が少なくなる。従って、その後は通常のスキャンシフト動作によりデータを伝搬させても、データ遷移の発生する数が少なく、小さな電力消費ですませることができる。
【００２２】
図３は、“０”と“１”とが混在するデータをシフト動作した後のデータにおいて“１”の比率が多くなる様子を説明するための図である。図３の例では、スキャンフリップフロップの数は図２の例のように８つではなく、より多くの数のスキャンフリップフロップの値が示されている。論理回路ユニットからの出力データを取り込むデータ取り込み時には、制御信号ＸＯＲＥＮの値は“０”／“１”の何れでもよい。この例では、スキャンチェーンを構成するように一列に接続された複数のスキャンフリップフロップに取り込んだデータは、スキャンチェーン上で“０”と“１”とを交互に繰り返すデータとなっている。その後、制御信号ＸＯＲＥＮの値を“１”に設定して１回スキャンシフトを実行すると、複数のスキャンフリップフロップの格納データは図に示すように全て“１”となる。その後は制御信号ＸＯＲＥＮの値を“０”に設定してスキャンシフトを実行すれば、全て“１”のデータが順次シフトしていくことになり、データ遷移は発生せずに消費電力は大幅に削減される。
【００２３】
図４は、“０”と“１”とが混在するデータをシフト動作した後のデータにおいて“１”の比率が多くなる様子の別の例を説明するための図である。この例では、スキャンチェーンを構成するように一列に接続された複数のスキャンフリップフロップに取り込んだデータは、スキャンチェーン上で“００”と“１１”とを交互に繰り返すデータとなっている。その後、制御信号ＸＯＲＥＮの値を“１”に設定して１回スキャンシフトを実行すると、複数のスキャンフリップフロップの格納データは図に示すように“０”と“１”とを交互に繰り返すデータとなっている。更にもう１回、制御信号ＸＯＲＥＮの値を“１”に設定したままでスキャンシフトを実行すると、複数のスキャンフリップフロップの格納データは図に示すように全て“１”となる。その後は制御信号ＸＯＲＥＮの値を“０”に設定してスキャンシフトを実行すれば、全て“１”のデータが順次シフトしていくことになり、データ遷移は発生せずに消費電力は大幅に削減される。
【００２４】
図５は、“０”と“１”とが混在するデータをシフト動作した後のデータにおいて“１”の比率が多くなる様子の例を説明するための図である。図２に示すような回路による排他的論理和演算では、空間的なビットパターンでの“０”／“１”の変化点の数がシフト動作により必ず少なくなるとは限らない。図５は、“０”／“１”の変化点の数が増大してしまう例を示す図である。
【００２５】
この例では、スキャンチェーンを構成するように一列に接続された複数のスキャンフリップフロップに取り込んだデータは、スキャンチェーン上で“１”が孤立して存在するデータとなっている。その後、制御信号ＸＯＲＥＮの値を“１”に設定して１回スキャンシフトを実行すると、複数のスキャンフリップフロップの格納データは図に示すように“１１”が孤立して存在するデータとなる。更にもう１回、制御信号ＸＯＲＥＮの値を“１”に設定したままでスキャンシフトを実行すると、複数のスキャンフリップフロップの格納データには“１０１”のパターンが現れてしまう。つまりデ―タ取り込み時点で存在した孤立状態の“１”は、２回の排他的論理和を介したスキャンシフト動作により、“１０１”のパターンを生成してしまう。このように“０”／“１”の変化点の数が増大してしまった状態で、その後制御信号ＸＯＲＥＮの値を“０”に設定してスキャンシフトを実行すると、かえって消費電力が増大してしまう。但し、制御信号ＸＯＲＥＮの値を“１”に設定したままで更にもう一度排他的論理和を介したスキャンシフト動作を実行すると、孤立する“１０１”即ち“０１０１０”のパターンは“Ｘ１１１１”（Ｘは左隣のビットの値による）となり、“０”／“１”の変化点の数が減少することが期待される。
【００２６】
上記説明から分かるように、“０”／“１”の変化点の数が減少するか否かは、制御信号ＸＯＲＥＮの値を“１”に設定することによる排他的論理和を介したスキャンシフト動作の回数に影響される。実際に“０”／“１”の変化点の数を減少させるために何回の排他的論理和を介したスキャンシフト動作が必要であるかは、最初のデータ取り込み時点のデータのビットパターンに依存する。外部のテスタ装置は、入力した設定データＳｃａｎＩｎに対して期待される出力データの期待値を考慮することにより、“１”の比率が多くなると予想されるように、排他的論理和を介したスキャンシフト動作の回数を決定することができる。制御信号ＸＯＲＥＮの値は、システムＬＳＩ２０の外部からの入力（例えばテスタ装置からの入力）に応じて決定される。即ち、制御信号ＸＯＲＥＮの値は図２に示すようにシステムＬＳＩ２０の外部から直接入力するようにしてもよいし、或いは外部からコードを供給し、そのコードをシステムＬＳＩ２０内部のデコーダでデコードし、そのデコード結果を制御信号ＸＯＲＥＮの値とするようにしてもよい。
【００２７】
また図２の構成例において、論理回路ユニット２１からの出力データのビットパターン（スキャンフリップフロップ２３−１乃至２３−４に最初に格納されるビットパターン）には１回の排他的論理和を介したスキャンシフト動作が適切であり、論理回路ユニット２２からの出力データのビットパターン（スキャンフリップフロップ２３−５乃至２３−８に最初に格納されるビットパターン）には２回の排他的論理和を介したスキャンシフト動作が適切である、というような場合が想定される。即ち、排他的論理和を介したスキャンシフト動作の適切な回数が、スキャンチェーン上の位置に応じて異なる場合が想定される。このような場合に対処できるように、制御信号ＸＯＲＥＮの値をスキャンチェーン上の位置に応じて異ならせることができるように構成することが好ましい。
【００２８】
図６は、制御信号ＸＯＲＥＮの値をスキャンチェーン上の位置に応じて異ならせる構成の一例を示す図である。図６において、図２と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２９】
図６の構成例においては、スキャンフリップフロップ２３−１乃至２３−４から構成されるスキャンチェーンにおいては、通常のスキャンシフト動作と排他的論理和を介したスキャンシフト動作との切り替えを制御信号ＸＯＲＥＮ１により行う。またスキャンフリップフロップ２３−５乃至２３−８から構成されるスキャンチェーンにおいては、通常のスキャンシフト動作と排他的論理和を介したスキャンシフト動作との切り替えを制御信号ＸＯＲＥＮ２により行う。このように互いに独立な制御信号ＸＯＲＥＮ１と制御信号ＸＯＲＥＮ２とを用いることで、何れのスキャンシフト動作を実行するかをスキャンチェーン上の位置に応じて異ならせることができる。
【００３０】
図７は、本発明によるスキャンチェーンの構成の別の一例を示す図である。図７において、図２と同一の構成要素は同一の番号で参照し、その説明は省略する。前述のように、ＸＯＲ回路及びセレクタは、必ずしも全ての段に設けられている必要はない。
【００３１】
図７に示す例では、図２のＸＯＲ回路２４−１乃至２４−８及びセレクタ２５−１乃至２５−８のうち、奇数番目のＸＯＲ回路２４−１，３，５，７及びセレクタ２５−１，３，５，７が取り除かれ、偶数番目のＸＯＲ回路２４−２，４，６，８及びセレクタ２５−２，４，６，８のみが設けられている。このように例えば複数のスキャンフリップフロップが構成するスキャンチェーンの２個おきの段において、前段のスキャン出力と次段のスキャン入力との間にＸＯＲ回路とセレクタとが設けられる構成としてよい。またより一般的に、複数のスキャンフリップフロップが構成するスキャンチェーンのＮ個（Ｎ：整数）おきの段において、前段のスキャン出力と次段のスキャン入力との間に該ＸＯＲ回路と該セレクタとが設けられる構成としてよい。またこのような構成において、制御信号ＸＯＲＥＮの値をスキャンチェーン上の位置に応じて異ならせるようにしてもよい。
【００３２】
図８は、排他的論理和を介したスキャンシフト動作を適宜実行しながらスキャンチェーン上のデータをスキャンシフトしていく様子の一例を示す図である。図８の（ａ）に示す４行のビットパターンは、データ取り込みにより一連のスキャンフリップフロップに取り込まれた格納値を表している。最上行の左端がスキャンチェーンの始点を表しており、同一行に並ぶ値はスキャンチェーン上の連続した格納値を表しており、行の末尾は次の行の先頭と接続され、最下行の右端がスキャンチェーンの終端を表している。各行毎に独立した制御信号ＸＯＲＥＮにより制御されているものとする。
【００３３】
ここで各行毎に示すＴｒａｎの値は、その行のＸＯＲＥＮ＝０として通常のスキャンシフト動作を実行したときに発生するデータ遷移の回数である。ＴｏｔａｌＴｒａｎは４行のＴｒａｎの値の合計である。
【００３４】
（ａ）に示すビットパターンにおいて、全ての行でＸＯＲＥＮ＝１として排他的論理和を介したスキャンシフト動作を実行すると、（ｂ）に示す４行のビットパターンが得られる。（ｂ）のビットパターンにおいては、３行目のＴｒａｎの値が小さくなっていることが分かる。従って、次のスキャンシフト動作（２サイクル目のスキャンシフト動作）からは３行目をＸＯＲＥＮ＝０に設定する。
【００３５】
（ｂ）に示すビットパターンにおいて、３行目のみＸＯＲＥＮ＝０にして通常のスキャン動作を実行し、他の全ての行でＸＯＲＥＮ＝１として排他的論理和を介したスキャンシフト動作を実行すると、（ｃ）に示す４行のビットパターンが得られる。（ｃ）のビットパターンにおいては、２行目のＴｒａｎの値が小さくなっていることが分かる。従って、次のスキャンシフト動作（３サイクル目のスキャンシフト動作）からは２行目と３行目とをＸＯＲＥＮ＝０に設定する。
【００３６】
（ｃ）に示すビットパターンにおいて、２行目と３行目とのみＸＯＲＥＮ＝０にして通常のスキャン動作を実行し、他の全ての行でＸＯＲＥＮ＝１として排他的論理和を介したスキャンシフト動作を実行すると、（ｄ）に示す４行のビットパターンが得られる。（ｄ）のビットパターンにおいては、４行目のＴｒａｎの値が小さくなっていることが分かる。従って、次のスキャンシフト動作（４サイクル目のスキャンシフト動作）からは２〜４行目をＸＯＲＥＮ＝０に設定する。
【００３７】
（ｄ）に示すビットパターンにおいて、２〜４行目をＸＯＲＥＮ＝０にして通常のスキャン動作を実行し、１行目をＸＯＲＥＮ＝１にして排他的論理和を介したスキャンシフト動作を実行すると、（ｅ）に示す４行のビットパターンが得られる。（ｅ）のビットパターンにおいては、１行目のＴｒａｎの値が依然として大きな値となっている。従って、次のスキャンシフト動作（５サイクル目のスキャンシフト動作）では、１行目については引き続きＸＯＲＥＮ＝１に設定する。
【００３８】
（ｅ）に示すビットパターンにおいて、２〜４行目をＸＯＲＥＮ＝０にして通常のスキャン動作を実行し、１行目をＸＯＲＥＮ＝１にして排他的論理和を介したスキャンシフト動作を実行すると、（ｆ）に示す４行のビットパターンが得られる。（ｆ）のビットパターンにおいては、１行目のＴｒａｎの値が小さくなっていることが分かる。従って、次のスキャンシフト動作（６サイクル目のスキャンシフト動作）以降は全ての行をＸＯＲＥＮ＝０に設定する。
【００３９】
上記のような制御信号ＸＯＲＥＮの値の制御は、外部のテスタ装置により、入力した設定データＳｃａｎＩｎを考慮することにより実行することができる。即ち、外部のテスタ装置は、設定データＳｃａｎＩｎに対して期待される出力データの期待値に基づいて、データ遷移数が少なくなると予想される排他的論理和を介したスキャンシフト動作の回数を、各行毎に決定することができる。そのような制御により、図８に示す例では、スキャンシフト中に遷移する数を７５から５０に削減し、３３％の削減率を実現している。
【００４０】
図９は、排他的論理和を介したスキャンシフト動作を適宜実行しながらスキャンチェーン上のデータをスキャンシフトしていく様子の別の一例を示す図である。図９の（ａ）乃至（ｆ）に示す４行のビットパターンは、図８の（ａ）乃至（ｆ）に示す４行のビットパターンと同一の入力設定データを用い同一のスキャンシフト動作の制御を行って得られたデータである。但し図９の場合には、テスト対象の論理回路ユニットに故障があり、出力データが期待値とは異なるビットパターンとなっている。
【００４１】
図９（ａ）のビットパターンにおいて、“〜”で示した１つのビットが図８（ａ）のビットパターンとは異なっている。図８に示す例と同一の制御信号ＸＯＲＥＮを用いて同一のスキャンシフト動作を実行していくと、図９（ｆ）に示すようなビットパターンが５サイクル目のスキャンシフト動作により得られる。図９（ｆ）に示すビットパターンにおいては、“〜”で示した２つのビットが図８（ｆ）のビットパターンとは異なっている。従って、このビットパターンを通常のスキャン動作を実行してＬＳＩ外部に読み出せば、異常を示す上記２つのビットに基づいて、故障の存在と大まかな故障の位置とを特定することができる。
【００４２】
図１０は、排他的論理和を介したスキャンシフト動作を適宜実行しながらスキャンチェーン上のデータをスキャンシフトしていく様子の更に別の一例を示す図である。図１０の（ａ）乃至（ｆ）に示す４行のビットパターンは、図８の（ａ）乃至（ｆ）に示す４行のビットパターンと同一の入力設定データを用い同一のスキャンシフト動作の制御を行って得られたデータである。但し図１０の場合には、テスト対象の論理回路ユニットに故障があり、出力データが期待値とは異なるビットパターンとなっている。このビットパターンの異常値の存在する位置が、図９の場合とは異なる例を図１０に示している。
【００４３】
図１０（ａ）のビットパターンにおいて、“〜”で示した１つのビットが図８（ａ）のビットパターンとは異なっている。図８に示す例と同一の制御信号ＸＯＲＥＮを用いて同一のスキャンシフト動作を実行していくと、図１０（ｆ）に示すようなビットパターンが５サイクル目のスキャンシフト動作により得られる。図１０（ｆ）に示すビットパターンにおいては、“〜”で示した４つのビットが図８（ｆ）のビットパターンとは異なっている。従って、このビットパターンを通常のスキャン動作を実行してＬＳＩ外部に読み出せば、異常を示す上記２つのビットに基づいて、故障の存在と大まかな故障の位置とを特定することができる。
【００４４】
図１１は、システムＬＳＩをテストするテストシステムの構成例及びテストまでの各工程を示す図である。図１１において、製造対象のＬＳＩの回路構成を示すネットリスト等の回路情報データ４１に基づいて、図２に示すようなテスト回路（排他的論理和を介したスキャンシフト動作を可能にする回路）を挿入し、回路をレイアウトする（ステップＳ１）。これにより、テスト回路が挿入されたレイアウト後の回路情報データ４２が生成される。この回路情報データ４２に基づいて、ＬＳＩ４６を製造する（ステップＳ２）。
【００４５】
また回路情報データ４２に基づいて、ＡＴＰＧ（Auto Test Pattern Generation）ツールを用いることにより、テストパターン４３を生成する。このテストパターンには、ＸＯＲＥＮ値の制御を行うための情報も含まれている。テストパターン４３は、テスタ制御用コンピュータ４５の記憶装置４４に格納される。また製造されたＬＳＩ４６は、テスタ制御用コンピュータ４５に接続されるテスタ４７に取り付けられる。
【００４６】
テスタ制御用コンピュータ４５は、テスタ制御用コンピュータ記憶装置４４に格納されるテストパターン４３に基づいてテスタ４７の動作を制御して、ＬＳＩ４６のテストを実行する。即ち、図２に示すスキャンイネーブル信号ＳｃａｎＥｎａｂｌｅや制御信号ＸＯＲＥＮをテスタ４７により設定し、設定データＳｃａｎＩｎをクロック信号Ｃｌｏｃｋとともにテスタ４７からＬＳＩ４６に入力する。またテスタ４７により制御信号ＸＯＲＥＮを制御しながらクロック信号Ｃｌｏｃｋを供給することにより、排他論理和演算を介したスキャンシフト動作と通常のスキャンシフト動作とを切り替えながらデータをスキャンチェーン上に伝搬させる。またテスタ４７により、ＬＳＩ４６のスキャンチェーンから出力されるデータを観測し、期待値データと比較することで故障の有無を判定する。
【００４７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００４８】
【図１】スキャンシフト方式の従来のシステムＬＳＩの構成の一例を示す図である。
【図２】本発明によるスキャンシフト方式のシステムＬＳＩの構成の一例を示す図である。
【図３】“０”と“１”とが混在するデータをシフト動作した後のデータにおいて“１”の比率が多くなる様子を説明するための図である。
【図４】“０”と“１”とが混在するデータをシフト動作した後のデータにおいて“１”の比率が多くなる様子の別の例を説明するための図である。
【図５】“０”と“１”とが混在するデータをシフト動作した後のデータにおいて“１”の比率が多くなる様子の例を説明するための図である。
【図６】制御信号ＸＯＲＥＮの値をスキャンチェーン上の位置に応じて異ならせる構成の一例を示す図である。
【図７】本発明によるスキャンチェーンの構成の別の一例を示す図である。
【図８】排他的論理和を介したスキャンシフト動作を適宜実行しながらスキャンチェーン上のデータをスキャンシフトしていく様子の一例を示す図である。
【図９】排他的論理和を介したスキャンシフト動作を適宜実行しながらスキャンチェーン上のデータをスキャンシフトしていく様子の別の一例を示す図である。
【図１０】排他的論理和を介したスキャンシフト動作を適宜実行しながらスキャンチェーン上のデータをスキャンシフトしていく様子の更に別の一例を示す図である。
【図１１】システムＬＳＩをテストするテストシステムの構成例及びテストまでの各工程を示す図である。
【符号の説明】
【００４９】
２０  システムＬＳＩ
２１  論理回路ユニット
２２  論理回路ユニット
２３−１乃至２３−８  スキャンフリップフロップ
２４−１乃至２４−８  ＸＯＲ回路
２５−１乃至２５−８  セレクタ
【図１】
0004888376.tif 000002
【図２】
0004888376.tif 000003
【図３】
0004888376.tif 000004
【図４】
0004888376.tif 000005
【図５】
0004888376.tif 000006
【図６】
0004888376.tif 000007
【図７】
0004888376.tif 000008
【図８】
0004888376.tif 000009
【図９】
0004888376.tif 000010
【図１０】
0004888376.tif 000011
【図１１】
0004888376.tif 000012