(57)【要約】【課題】データ削減というＢＡＳＴ手法の利点を損なうことなく、さらなる消費電力の削減を図る。【解決手段】複数ｋ個のシフトレジスタ（ＳＣ１〜ｋ）と、ｋ個のＸビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路（ＰＲＰＧ２）と、ケアビットのデータを外部から入力し、このデータに基づいて、任意パターンの非ケアビットにケアビットを組み合わせてテストパターンを発生するテストパターン発生回路（ビット反転回路３およびデコード制御回路６）と、を有する。テストパターン発生回路は、ＰＲＰＧ２に対し、データにより特定されるｋビット内におけるケアビットの有無、位置および値と、任意パターンの周期性とに基づいて、任意パターンにおける配列遷移を一時的に停止可能に制御する。【選択図】図２
2009204402.tif 000002
【特許請求の範囲】
【請求項１】
被テスト回路と、
前記被テスト回路に対し、入力パターンの印加と応答の収集とを制御する複数ｋ個のシフトレジスタと、
ｋ個の非ケアビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路と、
前記入力パターンとして前記ｋ個のシフトレジスタに同時に出力されるｋビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、前記任意パターンを前記任意パターン発生回路から入力し、入力した前記データに基づいて、入力した前記任意パターンの前記非ケアビットに前記ケアビットを組み合わせて一の前記ｋビットを発生し、前記データおよび前記任意パターンの入力と、当該入力に基づく前記ｋビットの発生とを一定期間ごとに繰り返し、発生したｋビットを、順次、前記ｋ個のシフトレジスタの各々に１ビットずつ並列に出力するテストパターン発生回路と、
を有し、
前記テストパターン発生回路は、前記データにより特定される前記ｋビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、前記任意パターンにおける前記ビット配列の前記一定期間ごとの遷移を一時的に停止可能に、前記任意パターン発生回路を制御する
半導体集積回路。
【請求項２】
前記任意パターン発生回路は、
与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するｋ個のフリップフロップ回路と、
前記ｋ個のフリップフロップ回路が保持するｋ個の非ケアビットを循環シフト動作させる経路に接続され、当該ｋ個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、
前記テストパターン発生回路は、
外部から入力される前記データをデコードし、デコード結果を参照すると、前記任意パターン発生回路の循環シフト動作を所定期間だけ停止することが可能な場合に、前記ｋ個のフリップフロップ回路に与えるシフトイネーブル信号を前記所定期間だけ非アクティブで維持するデコード制御回路を、
有する
請求項１に記載の半導体集積回路。
【請求項３】
前記任意パターン発生回路は、
与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するｋ個のフリップフロップ回路と、
前記ｋ個のフリップフロップ回路が保持するｋ個の非ケアビットを循環シフト動作させる経路に接続され、当該ｋ個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、
前記テストパターン発生回路は、
外部から入力される前記データをデコードし、当該テストパターン発生回路から出力すべき前記ｋビット内における前記ケアビットの有無、位置および値を特定するデコード制御回路と、
前記ｋ個のフリップフロップ回路の各出力から得られる前記ｋ個の非ケアビットを入力し、前記デコードの結果に基づいて、入力した各非ケアビットの値が前記特定されたケアビットの値と異なるときは、当該非ケアビットの値をビット反転するビット反転回路と、
を有する
請求項１に記載の半導体集積回路。
【請求項４】
前記ビット反転回路は、
前記任意パターン発生回路から出力される前記ｋビットの対応する１ビットを一方の入力端子からそれぞれ入力するｋ個の排他的論理和ゲート回路と、
前記排他的論理和ゲート回路ごとに１つ設けられて、対応する排他的論理和ゲート回路の他の入力端子に接続され、前記デコード制御回路から与えられる反転命令を一時的に保持するｋ個の保持回路と、
を有する請求項３に記載の半導体集積回路。
【請求項５】
前記ｋ個のシフトレジスタに１ビットずつ並列に入力されるｋ個のテストパターンの各々が、前記入力パターンの格納領域と、当該入力パターンの印加により当該被テスト回路から得られる応答パターンの格納領域とをそれぞれ含み、互いに連続した複数の単位パターンを含んで構成され、
前記デコード制御回路は、当該デコード制御回路に入力される前記データにより特定される前記ｋビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、一の前記単位パターンの時系列順位における最後部で連続するｎ（ｎ≧１）ビットと、当該最後部に続く他の前記単位パターンの時系列順位における先頭部で連続するｎビットとが全て前記非ケアビットであり、かつ、前記任意パターン発生回路による前記ビット配列の遷移の一時的な停止により前記最後部と前記先頭部はそれぞれ固有のビット値で非ケアビットを連続して固定しているが、当該固定されたビット値が前記最後部と前記先頭部で異なることが所定のシフトレジスタで特定されるときは、前記最後部の固定ビット値を前記先頭部まで拡張可能に、前記所定のシフトレジスタに対しシフト動作の一時的な停止を制御する
請求項２に記載の半導体集積回路。
【請求項６】
前記ｋ個のシフトレジスタおよび前記デコード制御回路は、前記シフト動作の一時的な停止を、前記ｋ個のシフトレジスタの各々で独立に制御可能に構成されている
請求項５に記載の半導体集積回路。
【請求項７】
前記任意パターン発生回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を示す現マッチ数（match now）を、非ケアビットの値を次の前記一定期間にまで維持した場合に前記データおよび前記任意パターン発生回路の周期性から予測される次のビット配列との一致ビット数を示す予測マッチ数(match next)と比較し、当該比較の結果、(match now)＜(match next)のときは前記任意パターン発生回路に対し前記遷移を許可し、(match now)≧(match next)のときは前記遷移を不許可とし、当該マッチ数の比較と、前記任意パターン発生回路に対する前記許可または前記不許可の指示とを、前記一定期間ごとに繰り返す
請求項１に記載の半導体集積回路。
【請求項８】
前記デコード制御回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を（match now）とし、非ケアビットの値を次の前記一定期間にまで維持した場合に現ビット配列と次のビット配列との一致ビット数を(match next)としたときに、(match now)＜(match next)ではアクティブ状態をとり、(match now)≧(match next)では非アクティブ状態をとるように変化する前記シフトイネーブル信号を、入力される前記データを基に発生し、当該シフトイネーブル信号を前記任意パターン発生回路に出力する
請求項２に記載の半導体集積回路。
【請求項９】
半導体集積回路内の被テスト回路に対し入力の印加と応答の収集とを複数ｋ個のシフトレジスタを用いて制御するに際し、当該半導体集積回路の内部で発生した任意ｋビットを、入力したデータに基づいて修正することにより、前記ｋ個のシフトレジスタに１ビットずつ並列に入力すべきｋビット列を単位としてテストパターンを発生するテストパターン発生方法であって、
前記データを入力し、前記テストパターン内の有効ビットに対応するケアビットの、前記ｋビット列ごとの有無、位置および値を示す情報を前記データから取得するステップと、
同一のビット配列が周期的に出現するように配列を遷移させながら前記任意ｋビットを繰り返し発生するステップと、
発生した前記任意ｋビットごとに、対応する前記情報に基づいて前記ケアビットが得られるようにビット値を修正して、前記ｋビット列を繰り返し発生するステップと、
を含み、
前記任意ｋビットの発生ステップにおいて、前記任意ｋビットの周期性とケアビットの前記情報に基づいて、連続する複数のｋビット列の発生時に同一の前記任意ｋビットを利用可能であると予測される場合は、前記任意ｋビットに対する前記配列の遷移を一時的に停止する
テストパターン発生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被テスト回路と複数ｋ個のシフトレジスタを有し、被テスト回路に対し入力の印加と応答の収集とをｋ個のシフトレジスタを用いて制御する半導体集積回路と、ｋ個のシフトレジスタに１ビットずつ並列に出力する単位でテストパターンを発生するテストパターン発生方法とに関する。特定的に、本発明は、内部で発生した非ケアビットの任意パターンに、外部から入力されるデータにより特定されるケアビットを組み合わせることによりテストパターンを発生する半導体集積回路とテストパターン発生方法とに関する。
【背景技術】
【０００２】
半導体集積技術の発展に伴い、ＬＳＩのトランジスタあたりの製造コストは劇的に削減されている。ただし、トランジスタあたりのテストコストはあまり削減されておらず、ＬＳＩ設計・製造における総コストに占めるテストコストの割合は逆に増加している。このため、テストコストの削減が急務である。
【０００３】
テストコスト削減のための技術の１つとして、スキャン設計をベースとしたハイブリッドＢＩＳＴ(built-in self-test:組込み自己テスト)手法が知られている（例えば、特許文献１,２および非特許文献１,２参照）。この手法によるテストは、ＢＡＳＴ(BIST-Aided Scan Test)とも称される。
【０００４】
スキャン設計では、ＬＳＩ内の被テスト回路に対してデータの入出力を制御する、スキャンチェーンと呼ばれるシフトレジスタが必要な数ｋだけ、ＬＳＩ内に組み込まれる。１つのスキャンチェーン（シフトレジスタ）は、必要数のフリップフロップ回路ＦＦを直列に接続したものである。
所定数のフリップフロップ回路ＦＦに対しテスト入力値を設定し、これをシフト動作させて被テスト回路に入力し、当該入力に対する被テスト回路からの応答を、出力側に配置された所定数のフリップフロップ回路ＦＦを介して出力する。入力データは外部のテスタから与えられ、上記応答に必要な処理を施した後、これをテスタに戻すことにより被検出回路の動作を観測できる。
【０００５】
一方、ハイブリッドＢＩＳＴ（ＢＡＳＴ）では、ＬＳＩ内部に任意パターン発生回路を形成し、この回路を外部のテスタから制御することによってテストを行う。
このときテスタから与えられる情報は制御のための命令であるため、テストに必要な全パターン（テストパターン）をテスタから与える場合より、テスタとＬＳＩ間でやり取りする情報量そのものが少なく、また当該情報の時間的な密度が低いため当該情報を圧縮してＬＳＩに入力できる。
【０００６】
ＢＡＳＴでは、スキャンチェーンとハイブリッドＢＩＳＴを併用することにより、アルゴリズムによってＡＴＰＧ(automatic test pattern generator)により発生したパターン（ＡＴＰＧパターン）を、低速かつ安価なテスタでＬＳＩに供給することが可能である。
【０００７】
例えば特許文献１,２および非特許文献１,２では、擬似ランダムパターン発生回路で任意パターンを発生し、この任意パターンを、外部から与えられるＡＴＰＧパターンと組み合わせてテストパターンをＬＳＩ内部で発生させる仕組みが開示されている。この仕組みは、テストパターンが、テストのための有効ビット（ケアビット）と、それ以外の任意ビット（非ケアビット）からなることを巧みに利用している。つまり、ケアビットを非ケアビットと組み合わせるための情報のみ外部から与えて、当該情報に基づいてケアビットをＬＳＩ内部で発生した非ケアビットと組み合わせることによりテストパターンを発生する。
この仕組みに供せられるＡＴＰＧパターンはケアビット割り当ての情報であり、テストパターン内のケアビットの割合は、１〜５[%]程度と報告されている（後述の非特許文献１）。よって、被テスト回路の規模が大きくテストが複雑な場合でもケアビットのための情報量は比較的小さく、このためテスタを低速かつ安価にできる利点がある。
【０００８】
ところで、スキャンチェーンを用いたテストでは、１クロックごとにスキャンチェーン上の多数のフリップフロップ回路ＦＦの論理状態が遷移する。フリップフロップ回路ＦＦの遷移の発生頻度が高いと、テスト時における消費電力が大きくなる。
また、テストパターンで無駄に論理状態の遷移があると、スキャンチェーンのシフト動作時だけでなく、被テスト回路内の論理ゲート等に無駄な論理遷移が生じ、このことも消費電力増大の要因になる。
【０００９】
ＢＩＳＴ手法の任意パターン発生回路としては、その実装の容易さから擬似乱数発生器が多く用いられる（特許文献１等参照）。
ところが、擬似乱数はそのランダム性ゆえ、スキャンチェーン上に存在する多数のフリップフロップ回路ＦＦで論理状態の遷移の頻度を増大させる。通常動作（実使用動作）時に低消費電力となるように設計がされた回路では、擬似乱数を用いて発生したテストパターンを用いると、テスト時の消費電力が、通常動作時の消費電力の数倍に達するとの報告がある。
テスト時と通常動作時の消費電力差が大きいと、テスト時の電力不足による誤動作、あるいは、熱による故障を引き起こすため、ＬＳＩの歩留まりの低下や市場不良率の上昇をもたらす。
【００１０】
スキャン設計をベースにしたハイブリッドＢＩＳＴについて、テスト時の消費電力削減手法は、主に、
(１)テストデータを低消費電力向けに作成する手法（例えば、特許文献２および非特許文献３参照）と、
(２)付加回路や回路の変更によって遷移を抑制する手法（例えば、特許文献３および非特許文献４参照）と、
に大別される。
【特許文献１】特開２００２−２３６１４４号公報
【特許文献２】特開２００７−３２２４１５号公報
【特許文献３】特開２００５−１１５５７８号公報
【非特許文献１】T.Hiraide, K.O.Boateng, H.Konishi, K.Itaya, M.Emori, H.Yamanaka, T.Mochiyama, “BIST-Aided Scan Test - A New Method for Test Cost Reduction”, Proceedings of the 21st IEEE VLSI Test Symposium (VTS'03), pp.359-364, 2003.
【非特許文献２】M.Arai, S.Fukumoto, K.Iwasaki, T.Matsuo, T.Hiraide, “Test Data Compression of 100x for Scan-Based BIST”, IEEE INTERNATIONAL TEST CONFERENCE Paper23.3, 2006.
【非特許文献３】C.Zoellin, H.J.Wunderlich, N.Maeding, J.Leenstra, “BIST Power Reduction Using Scan-Chain Disable in the Cell Processor”, IEEE INTERNATIONAL TEST CONFERENCE Paper32.3, 2006.
【非特許文献４】S.Gerstendorfer, H.J.Wunderlich, "MINIMIZED POWER CONSUMPTION FOR SCAN-BASED BIST", IEEE Proceedings of the International Test Conference (ITC'99), 1999.
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記（１）の手法は、特別なＡＴＰＧ発生アルゴリズムが必要である。
特許文献２には、スキャンチェーンの停止による消費電力削減に際し、テストパターンのビットを幾つかにグループ化し、このグループ単位でスキャンチェーンを動作し停止する制御を行う手法が提案されている。
しかしながら、この手法では、特殊なアルゴリズムが必要な上、グループ化による消費電力の削減効果はある程度有するが、ビット単位での制御であるため、消費電力の削減効果は限定的なものである。
【００１２】
また、上記（２）に関しては、スキャンチェーンのシフト時にフリップフロップ回路ＦＦの出力変化の伝播を抑制する回路、あるいは、スキャンチェーンの再構成等が提案されている。
ただし、スキャンチェーンの再構成はテストデータ生成後（マスク作成中）の回路構成変更が必要であり、現実的ではない。
【００１３】
例えば、上記（２）に関する特許文献３では、スキャンチェーンのシフト動作に伴う出力の変化を被テスト回路に伝播させないために、ゲート回路を設け、あるいは、スキャンチェーンを構成するフリップフロップ回路の構成を工夫している。
しかしながら、この方法は回路的な負担が生じるだけでなく、消費電力の削減効果が被テスト回路に限定され、スキャンチェーンや任意パターン発生回路に対する当該効果の波及はないため、消費電力の削減は限られたものとなる。
【００１４】
本発明は、データ削減というＢＡＳＴ手法の利点を損なうことなく消費電力の削減を、被テスト回路だけでなく、スキャンチェーンを構成するシフトレジスタ、さらには、任意パターン発生回路まで遡って達成でき、その結果、テストのための回路実装による消費電力の増大を極力抑制した半導体集積回路を提案する。また、本発明は、かかる利益が得られる半導体集積回路のテストパターン発生方法を提案する。
【課題を解決するための手段】
【００１５】
本発明の一形態（第１形態）に関わる半導体集積回路は、被テスト回路と、複数ｋ個のシフトレジスタと、任意パターン発生回路と、テストパターン発生回路とを有する。
前記ｋ個のシフトレジスタは、前記被テスト回路に対し、入力パターンの印加と応答の収集とを制御する。
前記任意パターン発生回路は、ｋ個の非ケアビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する。
前記テストパターン発生回路は、前記入力パターンとして前記ｋ個のシフトレジスタに同時に出力されるｋビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、前記任意パターンを前記任意パターン発生回路から入力し、入力した前記データに基づいて、入力した前記任意パターンの前記非ケアビットに前記ケアビットを組み合わせて一の前記ｋビットを発生し、前記データおよび前記任意パターンの入力と、当該入力に基づく前記ｋビットの発生とを一定期間ごとに繰り返し、発生したｋビットを、順次、前記ｋ個のシフトレジスタの各々に１ビットずつ並列に出力する。
このときテストパターン発生回路は、前記データにより特定される前記ｋビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、前記任意パターンにおける前記ビット配列の前記一定期間ごとの遷移を一時的に停止可能に、任意パターン発生回路を制御する。
【００１６】
本発明の他の形態（第２形態）に関わる半導体集積回路は、上記第１形態において、前記任意パターン発生回路は、与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するｋ個のフリップフロップ回路と、前記ｋ個のフリップフロップ回路が保持するｋ個の非ケアビットを循環シフト動作させる経路に接続され、当該ｋ個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、前記テストパターン発生回路は、外部から入力される前記データをデコードし、デコード結果を参照すると、前記任意パターン発生回路の循環シフト動作を所定期間だけ停止することが可能な場合に、前記ｋ個のフリップフロップ回路に与えるシフトイネーブル信号を前記所定期間だけ非アクティブで維持するデコード制御回路を、有する。
【００１７】
本発明の他の形態（第３形態）に関わる半導体集積回路は、上記第１形態において、前記任意パターン発生回路は、与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するｋ個のフリップフロップ回路と、前記ｋ個のフリップフロップ回路が保持するｋ個の非ケアビットを循環シフト動作させる経路に接続され、当該ｋ個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、前記テストパターン発生回路は、外部から入力される前記データをデコードし、当該テストパターン発生回路から出力すべき前記ｋビット内における前記ケアビットの有無、位置および値を特定するデコード制御回路と、前記ｋ個のフリップフロップ回路の各出力から得られる前記ｋ個の非ケアビットを入力し、前記デコードの結果に基づいて、入力した各非ケアビットの値が前記特定されたケアビットの値と異なるときは、当該非ケアビットの値をビット反転するビット反転回路と、を有する。
【００１８】
本発明の他の形態（第４形態）に関わる半導体集積回路は、上記第３形態において、前記ビット反転回路は、前記任意パターン発生回路から出力される前記ｋビットの対応する１ビットを一方の入力端子からそれぞれ入力するｋ個の排他的論理和ゲート回路と、前記排他的論理和ゲート回路ごとに１つ設けられて、対応する排他的論理和ゲート回路の他の入力端子に接続され、前記デコード制御回路から与えられる反転命令を一時的に保持するｋ個の保持回路と、を有する。
【００１９】
本発明の他の形態（第５形態）に関わる半導体集積回路は、上記第２形態において、前記ｋ個のシフトレジスタに１ビットずつ並列に入力されるｋ個のテストパターンの各々が、前記入力パターンの格納領域と、当該入力パターンの印加により当該被テスト回路から得られる応答パターンの格納領域とをそれぞれ含み、互いに連続した複数の単位パターンを含んで構成され、前記デコード制御回路は、当該デコード制御回路に入力される前記データにより特定される前記ｋビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、一の前記単位パターンの時系列順位における最後部で連続するｎ（ｎ≧１）ビットと、当該最後部に続く他の前記単位パターンの時系列順位における先頭部で連続するｎビットとが全て前記非ケアビットであり、かつ、前記任意パターン発生回路による前記ビット配列の遷移の一時的な停止により前記最後部と前記先頭部はそれぞれ固有のビット値で非ケアビットを連続して固定しているが、当該固定されたビット値が前記最後部と前記先頭部で異なることが所定のシフトレジスタで特定されるときは、前記最後部の固定ビット値を前記先頭部まで拡張可能に、前記所定のシフトレジスタに対しシフト動作の一時的な停止を制御する。
【００２０】
本発明の他の形態（第６形態）に関わる半導体集積回路は、上記第５形態において、前記ｋ個のシフトレジスタおよび前記デコード制御回路は、前記シフト動作の一時的な停止を、前記ｋ個のシフトレジスタの各々で独立に制御可能に構成されている。
【００２１】
本発明の他の形態（第７形態）に関わる半導体集積回路は、上記第１形態において、前記任意パターン発生回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を示す現マッチ数（match now）を、非ケアビットの値を次の前記一定期間にまで維持した場合に前記データおよび前記任意パターン発生回路の周期性から予測される次のビット配列との一致ビット数を示す予測マッチ数(match next)と比較し、当該比較の結果、(match now)＜(match next)のときは前記任意パターン発生回路に対し前記遷移を許可し、(match now)≧(match next)のときは前記遷移を不許可とし、当該マッチ数の比較と、前記任意パターン発生回路に対する前記許可または前記不許可の指示とを、前記一定期間ごとに繰り返す。
【００２２】
本発明の他の形態（第８形態）に関わる半導体集積回路は、上記第２形態において、前記デコード制御回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を（match now）とし、非ケアビットの値を次の前記一定期間にまで維持した場合に現ビット配列と次のビット配列との一致ビット数を(match next)としたときに、(match now)＜(match next)ではアクティブ状態をとり、(match now)≧(match next)では非アクティブ状態をとるように変化する前記シフトイネーブル信号を、入力される前記データを基に発生し、当該シフトイネーブル信号を前記任意パターン発生回路に出力する。
【００２３】
以上の構成によれば、以下の作用を奏する。
上述した第１〜第８形態では、任意パターン発生回路から任意パターンが、同一のビット配列が周期的に出現するように繰り返し発生する。このような局部的には一見ランダムであるが、大局的には周期性を有するパターンは、擬似ランダムパターンの一種である。
【００２４】
テストパターン発生回路は、任意パターンからテストパターンを発生する機能と、任意パターン発生回路の一時的な停止を制御する機能を備える。
テストパターンの発生では、任意パターン（ｋ個の非ケアビット）をテストパターン発生回路が、発生の順に入力し、例えば、入力した任意パターンに対応して入力されるデータに基づいて、任意パターン（ｋ個の非ケアビット）をケアビットと組み合わせる。入力されるデータには、ケアビットのｋビット内における有無、位置および値を特定するための情報が含まれる。
この組み合わせの仕方としては、例えば第３形態のように、ｋビット内でケアビットとすべきビットがある場合、そのビット位置の非ケアビットをケアビットの値で修正するために、必要に応じてビット反転を行う。
組み合わせ（修正）後のｋビットが、テストパターンの基本単位として、ｋ個のシフトレジスタに１ビットずつ並列に出力される。
以上の動作は、一定期間ごとに繰り返し行われるため、各シフトレジスタに対し、一定期間ごとに１ビットが次々に入力されてテストパターンの入力が行われる。
【００２５】
ｋ個のシフトレジスタは、例えば以下のように動作する。
ｋ個のシフトレジスタは、テストパターンの入力後にシフトモードに移り、入力クロックパルスに同期したシフト動作を行う。テストターゲットとなる被テスト回路の入力側にテストパターン内の入力パターンが揃うと、シフト動作を一旦停止して、入力パターンを当該被テスト回路に印加する（テスト開始）。その後、テスト中に、入力パターンを印加した被テスト回路の出力側に、応答パターンの格納領域（第５形態参照）が揃うまで、ｋ個のシフトレジスタは再度シフト動作を行う。そして、テスト終了時には、被テスト回路から応答パターンをシフトレジスタ内に収容する。その後、シフト動作を再度行うなどして後段の回路に応答パターンを移送する。
以後、同様にして、入力パターンを変えながらテストパターンの発生とシフトレジスタの設定を行うキャプチャーモードとシフトモードとが交互に繰り返され、所望の特性測定のメニューが実行される。
【００２６】
本発明では、このようなテスト動作において、任意パターン（擬似ランダムパターン）の周期性を、消費電力抑制のために以下のように巧みに利用する。
つまり、任意パターン発生回路は、上述したように任意パターンの発生を一時的に停止可能に構成されているが、このとき入力データにより特定されるケアビットの情報と任意パターン発生の周期性とに基づいて、任意パターンにおけるビット配列の一定期間ごとの遷移を適宜、一時的に停止する。
【００２７】
より具体的には、例えば第２および第３形態に示されるように、任意パターン発生回路は、ｋ個の非ケアビットを循環シフト動作するｋ個のフリップフロップ回路と、配列遷移のためのゲート回路（例えば排他的論理和ゲート回路）とを有する。このような構成は、線形帰還シフトレジスタ（ＬＦＳＲ）と呼ばれる。ｋ個のフリップフロップ回路を有するＬＦＳＲは(2k-1)通りのランダムパターンを周期的に発生する。
テストパターン発生回路は、第２形態に示されるように、ＬＦＳＲに与えるシフトイネーブル信号を制御するためのデコード制御回路を有してよい。この場合、デコード制御回路は、外部からデータを入力して、これをデコードする。テストパターン発生回路は、デコード結果を参照すると、任意パターンの発生を一時的に停止すべきかどうかが判断でき、これをシフトイネーブル信号に反映させる。この判断自体をテストパターン発生回路が行ってもよいし、あるいは、データそのものにシフトイネーブル信号をアクティブから非アクティブにするための情報を持たせてもよい。
【００２８】
これにより、任意パターン発生回路が適宜、動作を停止するため、ここでの消費電力が低減する。また、非ケアビットの無駄な遷移がない、または、低減されてテストパターンが発生するため、これを入力してシフト動作するｋ個のシフトレジスタにおいても無駄な電力消費の発生が防止または抑制される。このことはシフトレジスタがシフト動作を行っている間（シフトモード中）における被テスト回路での無駄な状態遷移をなくし、このことが無駄な電力消費の発生防止または抑制に貢献する。
【００２９】
第４形態と第５形態は、以上の第１〜第３形態の動作を前提として、さらに無駄な状態遷移を防止するものである。
【００３０】
第４形態では、第３形態におけるビット反転回路の構成に関する。
第４形態は、ビット反転のための排他的論理和（ＥＸＯＲ）ゲート回路の他方入力（反転命令の入力）側に、反転命令を一時的に保持する保持回路を付加したものである。
ＥＸＯＲゲート回路は、一方入力からテストパターンのビットを入力し、出力から、対応するシフトレジスタ側に送るものであるが、その際、反転命令が入力されていると入力ビットを反転して出力する。
【００３１】
しかしながら、テストパターン（単位パターン、第５形態参照）のビット長は任意であるため、当該単位パターンの発生時に用いる(2k-1)通りのランダムパターンの倍数に当該ビット長が一致するとは限らない。むしろ一致しない場合がほとんどである。この場合、単位パターンの発生が(2k-1)通りのランダムパターンの途中状態で終了すると、例えば次にシフト動作命令がなされることを契機として、任意パターン発生回路のＬＦＳＲは初期値に戻される。よって、次に発生する単位パターンは、(2k-1)通りのランダムパターンにおける最初のパターンに戻って順次、発生したものとなる。単位パターンの最後の非ケアビットの値とＬＦＳＲの初期値の値が一致するとは限らないため、一致しない場合は、その分、無駄な遷移が後続の単位パターンを発生する際の先頭ビットで生じる。
第４形態のビット反転回路は、反転命令を保持する保持回路を有するため、あるテストパターンの終了時において、その最後のテストパターンのビットが(2k-1)通りのランダムパターンにおける途中の非ケアビットを用いて発生されたものである場合であっても、後続のテストパターンの先頭ビットは、その終了時のランダムパターンの次のランダムパターンを用いて発生するため、無駄なビット遷移が発生しない。
【００３２】
第５形態は、ｋ個のシフトレジスタにおける単位パターンの繋ぎ部分において、非ケアビットが片側ｎビット連続する場合の手当てに関する。
この場合、上記第４形態と同様な理由からランダムパターンの発生が初期に戻って更新される関係上、先の単位パターンの最後部におけるｎビットの値と、後続の単位パターンの先頭部におけるｎビットの値が一致するとは限らない。そのために無駄な遷移が後続の単位パターンの先頭部の発生時に生じる。
第５形態によれば、デコード制御回路が、このような事態が生じる所定のシフトレジスタにおいて、最後部のビット値を先頭部まで拡張可能に、所定のシフトレジスタに対しシフト動作の一時的な停止を制御するため、このような無駄なビット遷移が発生しない。
【００３３】
以上の第４形態と第５形態のいずれかを適用すれば、より消費電力が低減し、重複適用すれば、１ビットたりとも無駄な論理状態の遷移によって不必要に電力消費が増大しない。
【００３４】
本発明の他の形態（第９形態）に関わるテストパターン発生方法は、半導体集積回路内の被テスト回路に対し入力の印加と応答の収集とを複数ｋ個のシフトレジスタを用いて制御するに際し、当該半導体集積回路の内部で発生した任意ｋビットを、入力したデータに基づいて修正することにより、前記ｋ個のシフトレジスタに１ビットずつ並列に入力すべきｋビット列を単位としてテストパターンを発生するテストパターン発生方法であって、前記データを入力し、前記テストパターン内の有効ビットに対応するケアビットの、前記ｋビット列ごとの有無、位置および値を示す情報を前記データから取得するステップと、同一のビット配列が周期的に出現するように配列を遷移させながら前記任意ｋビットを繰り返し発生するステップと、発生した前記任意ｋビットごとに、対応する前記情報に基づいて前記ケアビットが得られるようにビット値を修正して、前記ｋビット列を繰り返し発生するステップと、を含み、前記任意ｋビットの発生ステップにおいて、前記任意ｋビットの周期性とケアビットの前記情報に基づいて、連続する複数のｋビット列の発生時に同一の前記任意ｋビットを利用可能であると予測される場合は、前記任意ｋビットに対する前記配列の遷移を一時的に停止する。
【発明の効果】
【００３５】
以上の半導体集積回路およびテストパターン発生方法では、入力されるデータがケアビットの制御情報のみで、データ量そのものが小さく、また、時間的に圧縮可能であるため、いわゆるＢＡＳＴ手法のデータ削減という利点を踏襲している。その上で、電力消費がテストパターン発生の元となる任意パターン発生時に削減され、この効果が、テストパターンをシフトするシフトレジスタの動作、さらには被テスト回路の動作において無駄な電力発生を防止する効果にまで波及するという大きな利益が得られる。また、半導体集積回路における本発明適用による回路的な負担増は比較的小さい。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施形態を、図面を参照して説明する。
【００３７】
図１は、スキャンチェーン（シフトレジスタ）による被テスト回路に対するテスト入力の印加と応答の取得のための構成を模式的に示す図である。
図１に示すＤＵＴ(Device Under Test)としての半導体集積回路（以下、ＬＳＩという）１は、ＣＵＴ(Circuit Under Test)としての被テスト回路１０と、複数のスキャンチェーンＳＣと、複数のスキャンチェーンＳＣを駆動する回路（不図示）とを同一の半導体基板に形成することで集積化している。スキャンチェーンＳＣは図１では２個のみ示すが、以下の実施形態では所定数ｋ（ｋ≧２）だけ、スキャンチェーンＳＣが設けられている。各スキャンチェーンＳＣは、それぞれ必要数のフリップフロップ回路ＦＦを縦続接続したシフトレジスタである。ｋ個のスキャンチェーンＳＣは「ｋ個のシフトレジスタ」の一例を構成する。
【００３８】
本実施形態における被テスト回路１０は論理回路やメモリなど任意の回路であり、回路構成方式や機能に限定はない。図１は、前段回路の結果を次段回路の入力に用いることが可能な一構成例を示すものである。したがって、以下の実施形態における被テスト回路は、図１のように被テスト回路同士がフリップフロップ回路ＦＦを介してシリアルに接続されている場合に限定されない。図１を用いて説明したいことは、１つの任意の被テスト回路１０に対するフリップフロップ回路ＦＦの配置である。
【００３９】
図１に示す各フリップフロップ回路ＦＦは、特に図示しないが、データ入力、データ出力、クロック入力およびシフトイネーブル信号入力のための各端子を備えている。
各フリップフロップ回路ＦＦにおけるデータ出力端子は次段のフリップフロップ回路ＦＦのデータ入力に接続されている。スキャンチェーンＳＣを構成する全てのフリップフロップ回路ＦＦにおいて、そのクロック入力端子に、共通のクロック信号がパラレルに印加可能となっている。
【００４０】
スキャンチェーンＳＣは、その一部のフリップフロップ回路ＦＦ群が被テスト回路１０の入力側に配置され、他の一部のフリップフロップ回路ＦＦ群が被テスト回路１０の出力側に配置されるように配置配線がされている。図１では、入力側のフリップフロップ回路を符号“ＦＦ(in)”により示し、出力側のフリップフロップ回路を符号“ＦＦ(out)”によって示す。入力側のフリップフロップ回路ＦＦ(in)と出力側のフリップフロップ回路ＦＦ(out)との間にも、必要に応じて所定数のフリップフロップ回路ＦＦを配置してよい。
【００４１】
図１に示す被テスト回路１０の入力側に配置された複数（ここでは２個）のフリップフロップ回路ＦＦ(in)に、前段の他の論理回路（被テスト回路に限らない）あるいは外部から入力パターン（テストパターンの一部）が設定される。入力パターンの設定後は、スキャンチェーンＳＣがシフトモードになり、スキャンチェーンＳＣを構成する全てのフリップフロップ回路ＦＦが、クロック入力端子にクロックパルスが入力されるたびに、各フリップフロップ回路ＦＦの保持ビットを次段のフリップフロップ回路ＦＦに転送するシフト動作を行う。
【００４２】
ここで「テストパターン」は、テスト対象の被テスト回路１０に印加すべき入力パターンのビット列を所定の格納領域に収容し、当該入力パターンを被テスト回路１０に印加し、当該被テスト回路１０が持つ機能を反映してその出力に出現する応答パターンを他の所定の格納領域に収容するものである。そのほか、応答パターンの比較基準となる期待値を当該テストパターンに予め収容してもよい。
このように一の被テスト回路１０に対する入力パターンと、その対応する応答パターンの格納領域を少なくとも含む連続したｍビット（ｍ：任意数）を、テストパターンの「単位パターン」と呼ぶ。１つの被テスト回路１０に対するテストパターンは、ｍビットの単位パターンを連続してテスト回数以上持つシリアルビット配列を有する。
【００４３】
なお、スキャンチェーンＳＣを構成する各フリップフロップ回路ＦＦは、前段のフリップフロップ回路ＦＦから転送されるビットデータを取り込むデータ入力端子と、データ設定時のデータキャプチャー用のデータ入力端子とを別々に有するスキャンフリップフロップ構成としてよい。
さらに、スキャンチェーンＳＣを構成する各フリップフロップ回路ＦＦは、スキャンテストのシフト動作中に出力値が固定される機能を備えるデータ出力端子と、スキャンデータ信号の保持ビット値を次段のフリップフロップ回路ＦＦに出力するためのデータ出力端子とを別々に有する構成でもよい。このデータ出力端子を２つ有する構成は、シフト動作時の保持ビット変化を被テスト回路１０に伝播させない利点があるが、回路構成が大きくなる不利益もある。以下の実施形態では、後述するように、スキャンデータ信号（テストパターン）自体に、無駄なビット反転がないためデータ伝播は極力抑制されるが、ケアビットの存在に起因したビット反転はあるため、データ出力端子を２つに分けないと、シフト動作時のビット変化の被テスト回路１０への伝播を完全に防止できず、伝播漏洩が生じる。よって、この伝播漏洩に起因した被テスト回路１０で発生する消費電力の増加と、フリップフロップ回路の規模増大とのトレードオフで、フリップフロップ回路ＦＦで２つのデータ出力端子を有する構成を採用するかを決定するとよい。
【００４４】
テスト時の消費電力が増大する原因は、このようにテストパターンをスキャンチェーンＳＣ内でシフト動作させることにより被テスト回路１０に伝播するビット変化に起因した被テスト回路内部の状態遷移以外に、スキャンチェーンＳＣ内のビット変化により発生する状態遷移、さらには、テストパターン発生時に生じる回路の状態遷移であることがわかっている。
以下の実施形態では、以上の３つの状態遷移を一括して抑制することによる消費電力削減手法を提案する。より詳細には、スキャン設計を基としたハイブリッドＢＩＳＴ（ＢＡＳＴ）手法におけるシフト動作時のスキャンチェーンの遷移を削減するようにテストパターンを発生することで消費電力を削減する手法を提案する。
【００４５】
《第１実施形態》
【００４６】
本実施形態では、任意パターン発生回路の動作を適宜停止することによりスキャンチェーンの遷移を削減する。この削減のための手法を適用するためにＬＳＩ１内部に必要な最小限の基本構成は、以下の４つの回路である。
【００４７】
＜基本構成＞
(１)被テスト回路１０（図１参照）。
(２)被テスト回路１０に対し、入力パターンの印加と応答の収集とを制御する複数ｋ個のシフトレジスタ（ｋ個のスキャンチェーンＳＣ、図１参照）。
(３)ｋ個の非（ドント）ケアビット（以下、Ｘビットと表記）からなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路。
(４)入力パターンとしてｋ個のスキャンチェーンＳＣに同時に出力されるｋビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、任意パターンを上記(３)の任意パターン発生回路から入力し、入力したデータに基づいて、入力した任意パターンのＸビットにケアビットを組み合わせて一のｋビットを発生し、データおよび任意パターンの入力と、当該入力に基づくｋビットの発生とを一定期間ごとに繰り返し、発生したｋビットを、順次、ｋ個のスキャンチェーンＳＣの各々に１ビットずつ並列に出力するテストパターン発生回路。
そして、上記(４)のテストパターン発生回路は、データにより特定されるｋビット内におけるケアビットの有無、位置および値と、任意パターン発生回路の周期性とに基づいて、任意パターンにおけるビット配列の一定期間ごとの遷移を一時的に停止可能に、(３)の任意パターン発生回路を制御する。
【００４８】
上記(３)の任意パターン発生回路において、ＬＦＳＲ(Linear Feedback Shift Register)で保持パターンをシフトすることによりＸビットを供給するための擬似ランダムパターンを発生する構成を採用できる。以下の説明では、この構成を前提として具体的な回路ブロックの構成例と動作を説明する。
【００４９】
＜ＬＳＩの全体構成例＞
図２に、本実施形態に関わる半導体集積回路（ＬＳＩ）の回路ブロック構成を示す。
図２に図解するＬＳＩ１は、「任意パターン発生回路」としての擬似ランダムパターン発生器（ＰＲＰＧ：Pseudo-Random Pattern Generator）２と、ビット反転回路（Inverter）３と、ｋ個のスキャンチェーンＳＣ１,ＳＣ２,…,ＳＣｋと、不定マスク回路（X-masking）４と、ＭＩＳＲ回路５と、デコード制御回路（Decoder）６とを有する。
【００５０】
スキャンチェーンＳＣ１,ＳＣ２,…,ＳＣｋの各々は、図２では省略しているが、所定の被テスト回路（例えば、図１に示す被テスト回路１０）に近接配置されている。図２は、実際のスキャンチェーンＳＣの配置形状を問わないで、ｋ本のスキャンチェーンＳＣの存在を模式的に示すものである。
【００５１】
＜擬似ランダム（任意）パターン発生＞
擬似ランダムパターン発生器２は、ｋ個のＸビットの配列を擬似ランダムに遷移させながら並列に出力する回路である。擬似ランダムパターン発生器２として、ＬＦＳＲを用いることができる。
【００５２】
図３は、ｋ＝４の場合のＬＦＳＲ構成を示す擬似ランダムパターン発生器２の回路図である。以下、単に「ＬＦＳＲ」というときは、ＬＦＳＲ構成の擬似ランダムパターン発生器２を指す。
図３に示す擬似ランダムパターン発生器２（ＬＦＳＲ）は、シリアル接続されたｋ（ここでは４）個のフリップフロップ回路ＦＦ１,ＦＦ２,ＦＦ３,ＦＦ４と、１つの排他的論理和ゲート回路（以下、ＥＸＯＲ回路という）２１と、を有する。ＥＸＯＲ回路２１は、フリップフロップ回路ＦＦ１とＦＦ４の出力の排他的論理和を演算して、その演算結果をフリップフロップ回路ＦＦ１に入力する。そのため、ＥＸＯＲ回路２１は、「非ケアビットの配列を周期的に遷移させるためのゲート回路」として機能する。
【００５３】
図４に、図３に示すＬＦＳＲ（擬似ランダムパターン発生器２）の４つのタップＴＰ１,ＴＰ２,ＴＰ３,ＴＰ４に出現するＸビット列{X,X,X,X}の出現パターンを示す。Ｘビット列{X,X,X,X}が「任意パターン」に該当するため、以下、この名称を用いる。
図４の図表において、左端の数字の順番で任意パターン（Ｘビット列）が出現する。この図表の上端に各Ｘビット値を保持するフリップフロップ回路の符号を示す。
このＬＦＳＲ構成は、番号１〜１５に示す(2k-1)通りの任意パターンを周期的に発生させる。ここで現在の任意パターンを{X,X,X,X}ｎｏｗ、次に出現する任意パターンを{X,X,X,X}ｎｅｘｔでそれぞれ表すと、次に出現する任意パターンを{X,X,X,X}ｎｅｘｔは、現在の任意パターンを{X,X,X,X}ｎｏｗが得られるタップＴＰ１,ＴＰ２,ＴＰ３,ＴＰ４を１タップだけ左にずらした、タップＴＰ０,ＴＰ１,ＴＰ２,ＴＰ３に出現している。このように、ＬＦＳＲでは発生するパターンに周期性があるため、観測するタップをシフトするだけで将来の出現パターンが予測できる。
【００５４】
＜ビット反転＞
図５に、ビット反転回路３のビット単位の基本構成を示す。ビット反転回路３は、図示例の構成を対応ビットごとにｋ個並べて実現される。
擬似ランダムパターン発生器（ＰＲＰＧ）２から出力されるＸビットは、図５に図解するＥＸＯＲ回路３１の一方入力に与えられる。ＥＸＯＲ回路３１の他方入力には、セット入力とリセット入力で出力を“1”と“0”で切り替える回路３２が接続されている。この回路３２は、デコード制御回路６からの反転命令(Invert)をセット入力で受けると“1”をＥＸＯＲ回路３１の他方入力に出力し、デコード制御回路６からリセット命令(Reset)をリセット入力で受けると“0”をＥＸＯＲ回路３１の他方入力に出力する。
【００５５】
図５に示す回路は、図１に示す他の回路と同一周波数のクロック信号で動作が制御されるが、回路３２自体には命令保持機能はない。テストパターンをスキャンチェーンＳＣに出力するテストパターン設定動作時には、デコード制御回路６から回路３２に反転命令(Invert)が与えられる度に、図５に示す回路がビット反転状態をとる。一方、テストパターンの出力終了とともにデコード制御回路６からリセット命令(Reset)が出力されると、図５に示す回路がビット反転の機能を停止する。
【００５６】
デコード制御回路６は、この反転命令(Invert)の出力を、以下のように制御する。
図１に示すように、デコード制御回路６には外部のテスタ（自動テスト装置：ＡＴＥ）から、図１の動作周波数を規定するクロック信号に同期して必要な情報を含む所定ビットのデータが供給される。
デコード制御回路６は、このデータを、クロック信号に規定される周期的な所定タイミングでキャプチャーし、そのたびに、データをデコードする。このデコード結果は、一定期間ごとに擬似ランダムパターン発生器２から順次出力されるｋビットの任意パターン{X,X,X,X}ｎｏｗそれぞれに対応して、ケアビットの有無、パターン内位置および値（“0”または“1”）を示す。よって、デコード制御回路６は、対応する任意パターン{X,X,X,X}ｎｏｗが図５に示すＥＸＯＲ回路３１に与えられるタイミングに合わせて、反転命令(Invert)の出力を制御する。
その結果、任意パターン{X,X,X,X}ｎｏｗの所定ビットが、必要に応じて、“0”または“1”のケアビットに変化する。このときＸビットとケアビットの値が同じときはビット反転を行わないで、必要な場合のみビット反転がされる。
【００５７】
以上の動作がビットごとにパラレルで施されるため、ビット反転回路３を通過した任意パターンは、ケアビットに応じた修正がなされ、これによりテストパターンの「ｋビット」が、例えばクロックパルスごとに順次発生する。発生したｋビットは、１ビットずつ対応するスキャンチェーンＳＣの、例えば最後尾から入力され、このテストパターン入力がクロックパルスごとに繰り返される。
【００５８】
＜測定の実行＞
このようなテストパターンの入力時のモードを「キャプチャーモード」と呼ぶ。
キャプチャーモード時には、全てのスキャンチェーンＳＣのフリップフロップ回路ＦＦに与えられるシフトイネーブル信号は、「非アクティブ」となっている。
１回の測定に必要なパターン（単位パターン）が、ｋ個のスキャンチェーンＳＣに入力され、単位パターンに含まれる入力パターンが被テスト回路１０に入力されると、上記シフトイネーブル信号が「非アクティブ」から「アクティブ」にレベル変化し、これにより「シフトモード」が開始する。「シフトモード」では、被テスト回路１０の動作（測定）中に、当該短パターンの応答パターンの格納領域が被テスト回路１０の出力側に位置するような単位パターンの移送を、スキャンチェーンＳＣがシフト動作することで実行する。
その後、再び「キャプチャーモード」となるとスキャンチェーンＳＣがシフト動作を停止し、被テスト回路１０の応答パターンを格納領域に一旦取り込み、次のクロックパルスの入力で後段の回路（図１に示す不定マスク回路４）に排出する。
【００５９】
このようにして「キャプチャーモード」と「シフトモード」を繰り返すことにより１回の測定が行われる。複数の特性を測定する場合は、入力パターンを適宜変化させることにより、以上の動作を繰り返す。
「キャプチャーモード」と「シフトモード」を切り替える、シフトイネーブル信号のレベル変化は、図１に示すデコード制御回路６から制御される。
【００６０】
＜データ圧縮＞
測定により被テスト回路１０から得られる出力の検証を、ＬＳＩ内で行ってもよいし、出力を圧縮して外部のテスタに送ることによって検証してもよい。いずれにしてもテスタに送るデータ量を削減する必要からＬＳＩ１はＭＩＳＲ回路５を内蔵する（図１参照）。
ＭＩＳＲ回路５の構成は特に示さないが、ＬＦＳＲ構成を用いてダイナミックコンパクション（dynamic compaction）と呼ばれる圧縮を行う手法が一般的に用いられている。この圧縮により、測定結果のビット数が減り「シグニチャー」とよばれる圧縮データがＭＩＳＲ回路５から出力される。
【００６１】
＜不定マスク処理＞
ＭＩＳＲ回路５は、その構成上、一度でも不定状態を取り込むとＭＩＳＲ内の全てのレジスタが不定状態となって、試験不能になってしまうことがある。
この不都合を防止するため、ｋ個のスキャンチェーンＳＣから出力される応答パターンに対し、ＭＩＳＲ回路５に入力する前に不定マスク回路４を通して不定マスク処理（Ｘマスキング処理）を行い、ＭＩＳＲ回路５内のレジスタが不定状態となる任意ビット（Ｘビット）を、不定マスク回路４で所定の値に論理確定する。論理確定する必要があるＸビットは、被テスト回路１０のテストに無関係なビットであり、被テスト回路１０の機能とその入力パターンから応答パターン内のビット位置が予め分かっている。
このマスキング処理を行うべき応答パターン内のビット位置の情報は、デコード制御回路６が入力するデータに含まれるため、デコード制御回路６が、このデータをデコードし、そのデコード結果に応じて不定マスク回路４を制御する。
【００６２】
図６に、不定マスク回路４のビット単位の基本構成を示す。不定マスク回路４は、図示例の構成を対応ビットごとにｋ個並べて実現される。
ｋ個のスキャンチェーンＳＣから出力される応答パターンの各ビットは、図６に図解するＯＲ回路４１の一方入力に与えられる。ＯＲ回路４１の他方入力には、セット入力とリセット入力で出力を“1”と“0”で切り替える回路４２が接続されている。この回路４２は、図５に示す回路３２と同様な機能を有するが、セット入力に印加される命令がＸマスク命令(X-Mask)である。
Ｘマスク命令(X-Mask)は、デコード制御回路６（図１）で、入力データのデコード結果から発生される。回路４２は、デコード制御回路６からのＸマスク命令(X-Mask)をセット入力で受けると“1”をＯＲ回路４１の他方入力に出力し、デコード制御回路６からリセット命令(Reset)をリセット入力で受けると“0”をＯＲ回路４１の他方入力に出力する。
このため、リセット命令(Reset)の入力状態でＯＲ回路４１を通過する応答ビットは、そのままＭＩＳＲ回路５に出力され、Ｘマスク命令(X-Mask)の入力状態でＯＲ回路４１を通過する応答ビットは、値が“1”に固定されてＸマスクキング処理が施された後、ＭＩＳＲ回路５に出力される。
【００６３】
図６に示す回路は、図１に示す他の回路と同一周波数のクロック信号で動作が制御され、デコード制御回路６からの制御信号が、リセット命令(Reset)からＸマスク命令(X-Mask)へ切り替えられるたびに、Ｘマスクキング処理が実行される。Ｘマスクキング処理後は、リセット命令(Reset)の入力状態に自動復帰する。
以上のようにして不定マスク回路４で適宜、Ｘマスキング処理を行い、続くＭＩＳＲ回路５で圧縮された応答データは、ＬＳＩ１からテスタ（ＡＴＥ）に送られる。
【００６４】
＜テストパターン発生方法＞
以上の構成とその動作を前提として、本実施形態の特徴である、電力削減のためのテストパターン発生方法について説明する。
ＢＡＳＴ手法ではＬＦＳＲ（擬似ランダムパターン発生器２）から出力される任意パターン{X,X,X,X}ｎｏｗは、たとえば１クロックパルスの印加ごとに変化する。このＬＦＳＲの出力変化の最小単位である一定期間を以下、「タイムフレーム」と呼ぶ。
タイムフレームごとに変化するＬＦＳＲの１つのＸビットを、対応するスキャンチェーンＳＣに印加すると、任意パターンのランダム性が高いほどＸビットの値を観測すると余分な遷移が多く発生している。本実施形態では、以下のアルゴリズムに従って適宜、ＬＦＳＲのシフト動作を停止し、複数のタイムフレームにおいて同一の値をスキャンチェーンに入力することで、スキャンチェーンを構成するレジスタの遷移数を削減する。
【００６５】
本手法は、以下のステップを少なくとも含む。
【００６６】
［ステップＳＴ１］：データを入力し、テストパターン内の有効ビットに対応するケアビットの、ｋビット列ごとの有無、位置および値を示す情報を前記データから取得するステップ。
具体的には、図１に示すデコード制御回路６が、ＡＴＥから出力されるケアビットに関するデータを入力し、デコードする。このケアビットに関するデータをデコードした結果、タイムフレームごとのｋ（以下、ｋ＝４で説明）ビットの任意パターン{X,X,X,X}ｎｏｗ内で、ビット反転にすべきケアビットの情報が判定できる。ビット反転情報は反転命令(Invert)を示す「反転フラグ」としてデコード制御回路６から、ビット反転回路３に与えられる。
【００６７】
［ステップＳＴ２］：同一のビット配列が周期的に出現するように配列を遷移させながら任意ｋビットを繰り返し発生するステップ。
具体的には、＜擬似ランダム（任意）パターン発生＞で既に説明したように、図３に示すＬＦＳＲが、任意ｋビット、すなわち任意パターン{X,X,X,X}ｎｏｗを、図４に示すようにビット配列のパターンが、パターン番号の順に、かつ、循環的に発生する。
【００６８】
［ステップＳＴ３］：発生した任意ｋビット（任意パターン{X,X,X,X}ｎｏｗ）ごとに、ステップＳＴ１の情報に基づいてケアビットが得られるようにビット値を修正して、ｋビット列（単位パターン）を繰り返し発生する。
具体的には、＜ビット反転＞で既に説明したように、図５に示すビット反転回路３が、ステップＳＴ３で得られたビット反転の情報、すなわち反転フラグに基づいてＬＦＳＲから出力される任意パターン{X,X,X,X}ｎｏｗをビットごとに、必要に応じて反転することによって単位パターンに変換する。
【００６９】
以上の３つのステップにおいて、デコード制御回路６は、現在の任意パターン{X,X,X,X}ｎｏｗと、次のタイムフレームで発生される任意パターン{X,X,X,X}ｎｅｘｔとを常時監視し、また反転フラグの情報も有している。このため、現在のタイムフレームから次のタイムフレームへの移行時に、任意パターンのビットごとに、現在のＸビットの値（“0”または“1”）を維持すべきかを知ることができる。
よって、デコード制御回路６により擬似ランダムパターン発生器２を構成するＬＦＳＲの一時的な動作停止を制御可能である。
なお、このＬＦＳＲの一時停止の制御情報を入力データに含ませ、デコード制御回路６は、単にデータをデコードして、それに応じてＬＦＳＲのシフトイネーブル信号を発生、変化させるだけの役割をもつようにしてもよい。クロック信号の周波数が高い場合は、このようにデコード制御回路６の機能を簡素化しないと制御できないため、このような制御が望ましい。
このように、本実施形態では、「任意ｋビットの発生ステップにおいて、任意ｋビットの周期性とケアビットの情報に基づいて、連続する複数のｋビット列の発生時に同一の任意ｋビットを利用可能であると予測される場合は、任意ｋビットに対する配列の遷移を一時的に停止する」という特徴がある。
【００７０】
以下、より具体的な例を、図７を用いて説明する。
ＡＴＥでケアビットとＸビットと全ての情報を発生したものを、一般には「ＡＴＰＧパターン」と称する。
これに対し、デコード制御回路６に入力されるケアビットのデータは、ＬＦＳＲの規則性と併用するとケアビットとＸビットとの組み合わせパターン（テストパターン）を確定できるため、「ＡＴＰＧパターン」と同じ役目があり、データ量が圧縮されて必要最小現のデータであるため、特に「ディターミニスティックなデータ」と称される。
つまり、ディターミニスティックなデータが示すパターンは広義の「ＡＴＰＧパターン」の一種である。以下、ケアビットとＸビットとの組み合わせパターンを単に「ＡＴＰＧパターン」と呼ぶ。
【００７１】
図７（Ａ）に、入力パターンのケアビットをＸビットと組み合わせて示すＡＴＰＧパターンを５タイムフレーム（ＴＦ１〜ＴＦ５）分だけ模式的に示す。ＡＴＰＧパターンが、実質的なＬＦＳＲの入力パターンとなる。
図７（Ｂ）に、図７（Ａ）に対応した５タイムフレーム分の、ＬＦＳＲ出力パターンを模式的に示す。
なお、図７では、比較しやすいようにビット反転を行わないで済むケアビットを敢えて用いている。このため、図７（Ｂ）に示すＬＦＳＲ出力パターンが、そのまま、４本のスキャンチェーンＳＣ１〜ＳＣ４にビットごとに出力されるテストパターンとなる。以下、図７（Ｂ）に示すパターンを、場合によって、ＬＦＳＲ出力パターン、または、テストパターンと呼ぶ。
【００７２】
ここで図３に示すＬＦＳＲは｛1,1,1,1｝に初期化される。
タイムフレームＴＦ１において、ＬＦＳＲに保持された初期化パターンは｛1,1,1,1｝、ＡＴＰＧパターンは｛X,X,X,X｝（図７（Ａ）のＴＦ１の列）である。
タイムフレームＴＦ１において、初期化パターン｛1,1,1,1｝とＡＴＰＧパターン｛X,X,X,X｝とを比較する。比較の結果、一致するビットは存在しないため、現フレーム内の現在のマッチ数（以下、単に一致数と呼ぶ）は、(match now)＝０である。
また、図４から次のタイムフレームＴＦ２のＬＦＳＲ出力パターンを｛0,1,1,1｝と予測でき、この｛0,1,1,1｝と、現在のタイムフレームＴＦ１のＡＴＰＧパターン｛X,X,X,X｝とを比較する。比較の結果、一致するビットは存在しないため、タイムフレームＴＦ１,ＴＦ２間の予測マッチ数(match next)＝０である。
(match now)＝(match next)となることから、ＬＦＳＲのシフト動作を１回（１タイムフレーム分）停止する。そのため、現在のタイムフレームＴＦ１において、初期化パターン｛1,1,1,1｝がそのまま、テストパターンとしてＬＦＳＲから出力される（図７（Ｂ）のＴＦ１の列）。また、次のタイムフレームＴＦ２へ移行後のＬＦＳＲパターン（ＬＦＳＲ保持パターン）も｛1,1,1,1｝のままである。
【００７３】
タイムフレームＴＦ２において、ＬＦＳＲ保持パターン｛1,1,1,1｝とＡＴＰＧパターン｛1,X,X,1｝（図７（Ａ）のＴＦ２の列）とを比較する。比較の結果、スキャンチェーンＳＣ０に対応するビットと、スキャンチェーンＳＣ３に対応するビットとで両パターンが一致するため、現在のタイムフレームＴＦ２内の一致数(match now)＝２となる。
また、図４から次のタイムフレームＴＦ３のＬＦＳＲ出力パターンを｛1,0,1,1｝と予測でき、この｛1,0,1,1｝と、現在のタイムフレームＴＦ２のＡＴＰＧパターン｛1,X,X,1｝とを比較する。比較の結果、スキャンチェーンＳＣ０に対応するビットと、スキャンチェーンＳＣ３に対応するビットで両パターンが一致するため、タイムフレームＴＦ２,ＴＦ３間の予測マッチ数(match next)＝２となる。
(match now)＝(match next)となることから、ＬＦＳＲのシフト動作をさらに１回（１タイムフレーム分）停止する。そのため、タイムフレームＴＦ２におけるＬＦＳＲ保持パターン｛1,1,1,1｝が、そのまま、テストパターンとしてＬＦＳＲから出力され（図７（Ｂ）のＴＦ２の列）、さらに次のタイムフレームＴＦ３への移行後もＬＦＳＲ保持パターンが｛1,1,1,1｝のままである。
【００７４】
タイムフレームＴＦ３において、ＬＦＳＲ保持パターン｛1,1,1,1｝とＡＴＰＧパターン｛0,1,X,X｝（図７（Ａ）のＴＦ３の列）とを比較する。比較の結果、スキャンチェーンＳＣ１に対応するビットのみで両パターンが一致するため、現在のタイムフレームＴＦ３内の一致数(match now)＝１となる。
また、図４から次のタイムフレームＴＦ４のＬＦＳＲ出力パターンを｛0,1,0,1｝と予測でき、この｛0,1,0,1｝と、現在のタイムフレームＴＦ３のＡＴＰＧパターン｛0,1,X,X｝とを比較する。比較の結果、スキャンチェーンＳＣ０,ＳＣ１の２つのビットで両パターンが一致するため、タイムフレームＴＦ３,ＴＦ４間の予測マッチ数(match next)＝２となる。
ここで始めて(match now)＜(match next)となることから、ＬＦＳＲのシフト動作を１回（１タイムフレーム分）行う。そのため、タイムフレームＴＦ３におけるＬＦＳＲ保持パターン｛1,1,1,1｝が、次のＬＦＳＲシフトパターン｛0,1,1,1｝に変化し、これがテストパターンとしてＬＦＳＲから出力され（図７（Ｂ）のＴＦ３の列）、次のタイムフレームＴＦ４への移行後もＬＦＳＲ保持パターンも｛0,1,1,1｝となる。
【００７５】
タイムフレームＴＦ４において、ＬＦＳＲ保持パターン｛0,1,1,1｝とＡＴＰＧパターン｛X,X,1,1｝（図７（Ａ）のＴＦ４の列）とを比較する。比較の結果、スキャンチェーンＳＣ２,ＳＣ３に対応する２つのビットで両パターンが一致するため、現在のタイムフレームＴＦ４内の一致数(match now)＝２となる。
また、図４から次のタイムフレームＴＦ５のＬＦＳＲ出力パターンを｛1,0,1,0｝と予測でき、この｛1,0,1,0｝と、現在のタイムフレームＴＦ４のＡＴＰＧパターン｛X,X,1,1｝とを比較する。比較の結果、スキャンチェーンＳＣ２に対応するビットのみで両パターンが一致するため、タイムフレームＴＦ４,ＴＦ５間の予測マッチ数(match next)＝１となる。
ここで再び(match now)＞(match next)となることから、ＬＦＳＲのシフト動作を１回（１タイムフレーム分）停止する。そのため、タイムフレームＴＦ４におけるＬＦＳＲ保持パターン｛0,1,1,1｝が、そのまま、テストパターンとしてＬＦＳＲから出力され（図７（Ｂ）のＴＦ４の列）、さらに次のタイムフレームＴＦ５への移行後もＬＦＳＲ保持パターンが｛0,1,1,1｝のままである。
【００７６】
タイムフレームＴＦ５において、ＬＦＳＲ保持パターン｛0,1,1,1｝とＡＴＰＧパターン｛X,X,X,X｝（図７（Ａ）のＴＦ５の列）とを比較する。比較の結果、両パターンで一致するビットがないため、現在のタイムフレームＴＦ５内の一致数(match now)＝０となる。
また、図４から次のタイムフレームＴＦ６のＬＦＳＲ出力パターンを｛1,1,0,1｝と予測でき、この｛1,1,0,1｝と、現在のタイムフレームＴＦ５のＡＴＰＧパターン｛X,X,X,X｝とを比較する。比較の結果、両パターンで一致するビットがないため、タイムフレームＴＦ５,ＴＦ６間の予測マッチ数(match next)＝０となる。
(match now)＝(match next)となることから、ＬＦＳＲのシフト動作をさらに１回（１タイムフレーム分）停止する。そのため、タイムフレームＴＦ５におけるＬＦＳＲ保持パターン｛0,1,1,1｝が、そのまま、テストパターンとしてＬＦＳＲから出力され（図７（Ｂ）のＴＦ５の列）、さらに次のタイムフレームＴＦ６（不図示）への移行後もＬＦＳＲ保持パターンが｛0,1,1,1｝のままである。
【００７７】
以後、同様にして、ＬＦＳＲの動作と停止がタイムフレームごとに制御されて、テストパターンが確定してゆく。
なお、ビット反転による修正動作が必要な場合は、ＬＦＳＲ出力パターンの必要な箇所が、図５に示すビット反転回路３によりビット反転されるため、図７（Ａ）に示すケアビットがテストパターンに反映される。
【００７８】
図７（Ｂ）に示すテストパターンは、ビット反転箇所がスキャンチェーンＳＣ１におけるタイムフレームＴＦ２からタイムフレームＴＦ３への移行時のみの１箇所である。ビット反転を行うと、次にビット反転が必要になるまでＬＦＳＲ停止動作により同じ値が維持される。よって、ビット遷移数が最小限に削減される。
ビット遷移数の削減により、ＬＦＳＲの消費電力が低減される。また、スキャンチェーンによりシフト動作におけるビット遷移数も必要最小限となるため、スキャンチェーンの消費電力も低減される。
一方、被テスト回路は、ケアビットとしての所定のビット値が所定のタイミングで与えられると入力データとして十分である。それ以外のビット（Ｘビット）の箇所での被テスト回路の動作は無駄な電力消費を生じるだけである。本実施形態では、Ｘビット箇所における被テスト回路の入力遷移を最小限にできるため、被テスト回路においても無駄な消費電力が削減される。
以上より、全体として大幅な消費電力の削減が図られる。
【００７９】
図８（Ａ）に、デコード制御回路６によるデコードの結果得られる、２ビットの命令フラグ(instruction flag)と命令内容とを図表にして示す。また、図８（Ｂ）に、命令フラグ“00”の詳細を示す。
命令フラグは、上位ビットの反転命令(Invert)のフラグ（反転フラグ）と、下位ビットのＸマスク命令(X-Mask)のフラグ（マスクフラグ）から構成される。
ここで反転フラグとマスクフラグは“0で非アクティブ、“1”でアクティブである。反転フラグが“1”は、対象ビットがケアビットで、かつ、ビット反転を行う必要がある場合に対応し、反転フラグが“0”は、対象ビットがケアビットで、かつ、ビット反転が不要な場合と、対象ビットがＸビットの場合に対応する。一方、マスクフラグはテスト対象の被テスト回路１０と入力パターンとによって予め決められた応答のＸビットに対応して決められている。入力パターンと応答パターンは単位パターン内の別領域に格納されるため、反転とＸマスキングとが同じビットに対して同時に行われることは、ここではない。よって、命令フラグ“11”は使用されない。
【００８０】
命令フラグ“00”は、リセットまたはスキャンシフトに対応する。ここでいう「スキャンシフト」は、テストパターン発生時にタイムフレームを順次送るシフト動作と、スキャンチェーンＳＣ内のシフト動作の両方を含む概念である。よって、テストモードとキャプチャーモードの両方で「スキャンシフト」が実行される。
命令フラグが“00”のときに、図８に示していないリセット命令(Reset)がデコード制御回路６から与えられた場合、図５,図６示すビット反転回路３,不定マスク回路４がリセット状態となる。
【００８１】
命令フラグが“00”のときは、ビット値の操作を行わないため、ｋビット列内のビット指定のためのアドレス(Addr)は参照されない。命令フラグが“10”のときのアドレス(Addr)が示すビットの値がビット反転回路３によって反転される。また、命令フラグが“01”のときのアドレス(Addr)が示すビットの値が不定マスク回路４によって“1”に固定される。
本実施形態では、命令フラグが“00”のときのアドレス(Addr)を利用して、図示のようにＬＦＳＲを停止してスキャンシフトするか、ＬＦＳＲの配列を遷移してスキャンシフトするかを決めている。このため、ＬＦＳＲの一時的な停止制御の機能を付加することによる、制御信号の追加は不要である。
なお、以上の命令の実装例は一例であり、これに限定されない。
【００８２】
《第２実施形態》
本実施形態は、第１実施形態に追加して適用可能な実施形態であり、ビット反転時の命令保持に関する。
上記第１実施形態において、テストパターンを構成する単位パターンのビット長任意であるため、当該単位パターンの発生時に用いる(2k-1)通りのランダムパターン（任意パターン）の倍数に当該ビット長が一致するとは限らない。むしろ一致しない場合がほとんどである。この場合、単位パターンの発生が(2k-1)通りのランダムパターンの途中状態で終了すると、例えば次にシフト動作命令がなされることを契機として、任意パターン発生回路のＬＦＳＲは初期値、例えば｛1,1,1,1｝に戻される。よって、次に発生する単位パターンは、(2k-1)通りのランダムパターンにおける最初のパターン｛1,1,1,1｝から順次、発生したものとなる。単位パターンの最後のＸビットの値とＬＦＳＲの初期値の値が一致するとは限らないため、一致しない場合は、その分、無駄な遷移が後続の単位パターンを発生する際の先頭ビットで生じる。
【００８３】
図９に、この単位パターンのつなぎ目で発生する無駄な遷移を防止するために、図３に示す回路と置き換え可能なビット反転回路３Ａを示す。また、図１０に、本実施形態におけるＡＴＰＧパターンとテストパターンを示す。
図９に図解するビット反転回路３Ａは、図３に示すビット反転回路３において、ＥＸＯＲ回路３１の他方入力と、回路３２の出力との間に「保持回路」としてのフリップフロップ回路３３を設けている。
【００８４】
図１０ではケアビットを丸印で囲んでいる。例えばスキャンチェーンＳＣ１のタイムフレームＴＦ１のビットに着目すると、このビットはケアビットであり、その値は“1”である。このビットで単位パターンが終了すると仮定する。ここでなんら対策を講じないと、次のタイムフレームＴＦ２は全てＸビットであるため、スキャンチェーンＳＣ１の現在の値“0”が初期値“1”に戻されてしまう。
そこで、ＴＦＳＲの初期化を行わないで、かつ、図９に示す回路構成によって１クロックパルスだけ命令を保持するフリップフロップ回路３３を設けている。この回路の作用により、後続の単位フレームにおける先頭ビットがタイムフレームＴＦ２で処理される場合も、値“0”が維持される。なお、次のタイムフレームＴＦ３はケアビットであるため、反転が行われている。
【００８５】
このように、本実施形態では単位フレームの境界でリセット動作がかかるのを防止して無駄なビット値の遷移を防止できるという利点がある。
【００８６】
《第３実施形態》
本実施形態は、ｋ個のスキャンチェーンＳＣにおけるシフト動作時に、単位フレームが切り替わる箇所で無駄な状態遷移を防止するものである。なお、本実施形態も、第１実施形態に追加して適用可能な実施形態である。
【００８７】
図１１は、第３実施形態における処理が適用される場合のテストパターンを説明するための図である。
図１１は、１つのテストパターン内で、ｍ番目の単位パターンＵＰ(m)と、これに続く（ｍ＋１）番目の単位パターンＵＰ(m+1)とを示している。この２つの単位パターンは実際にはシリアルに連続しているが、ここでは単位パターンＵＰ(m)の最後部のｎビットと、単位パターンＵＰ(m+1)の先頭部のｎビットが共にＸビットであるため、このｎビット同士を重ねて示している。
このような条件の場合、各単位パターンのｎビット内ではＬＦＳＲの停止制御により同じビット値が連続するが、単位パターンが異なると、ＬＦＳＲが初期化されるためｎビット同士でみると値が異なることがある。その場合、１回の無駄なビット遷移が生じる。
本実施形態では、このようなビット遷移の防止を、空いた領域の命令追加によって実現する。
【００８８】
図１２に、命令の実装例を示す。
この例では、図８（Ａ）では未使用であった命令フラグが“11”の領域を利用して、このフラグがたったときにＸビットを維持するように制御する。この制御は、例えば、図５に示す回路において、命令フラグが“11”の場合、回路３２に入力されるリセット命令(Reset)を１クロックパルスだけ無効化するように回路変更するなどして実現できる。
【００８９】
図１３は、第３実施形態で余分なビット遷移の防止を行ったときのビット列推移を示す図である。
ここでスキャンチェーンＳＣ３とＳＣ４について説明する。
スキャンチェーンＳＣ３では、図１３（Ｂ）に示す先の単位パターンにおける最後部の１ビットと、図３（Ａ）に示す後の単位パターンにおける先頭部の１ビットがＸビットで重複する。この場合、ビット遷移を１クロックパルスだけ防止する。
よって、最初のクロックパルスが与えられると、実際にはビット遷移を行わないで、図示の状態における後の単位ユニットのＡ１３ビット（“Ｘ”）が、先の単位ユニットのＢ３３ビット（“Ｘ”）に移送されたことが済んだものと仮定する。この仮定が成り立つのは、両ビットが同じ値“Ｘ”であるためビット遷移を実際には行う必要がないからである。
次のクロックパルスの印加で、実際にビット遷移を行うため、図示の状態における後の単位ユニットのＡ２３ビット（“Ｘ”）が、先の単位ユニットのＢ３３ビットに実際に移送される。さらに次のクロックパルスの印加によるビット遷移により、Ａ３３ビット（“１”）がＢ３３ビットに移送される。
つまり、ビット遷移を１回省略しても、省略しない場合と結果は同じとなる。
【００９０】
スキャンチェーンＳＣ４では、図１３（Ｂ）に示す先の単位パターンにおける最後部の２ビットと、図３（Ａ）に示す後の単位パターンにおける先頭部の２ビットがＸビットで重複する。この場合、ビット遷移を２クロックパルスだけ防止する。
よって、最初のクロックパルスが与えられると、実際にはビット遷移を行わないで、図示の状態における後の単位ユニットのＡ１４ビット（“Ｘ”）が、先の単位ユニットのＢ３４ビット（“Ｘ”）に移送されたことが済んだものと仮定し、さらに、Ｂ３４ビットの“Ｘ”がＢ２４ビット（“Ｘ”）に移送され、Ｂ２４ビットの値“Ｘ”がＢ１４ビット（“Ｘ”）に移送されたものと仮定する。これらは同じ値“Ｘ”であるためビット遷移をする必要がないからである。
次のクロックパルスの印加でも、実際にビット遷移を行わないで、図示の状態における後の単位ユニットのＡ２４ビット（“Ｘ”）が、先の単位ユニットのＢ３ビットに移送され、Ａ１４ビット（“Ｘ”）がＢ２４ビット（“Ｘ”）に移送されたことが済んだものと過程する。
そして、次のクロックパルスの印加で、実際にビット遷移を行うため、図示の状態における後の単位ユニットのＡ３４ビット（“０”）が先の単位ユニットのＡ３４ビットに移送される。
つまり、ビット遷移を２回省略しても、省略しない場合と結果は同じとなる。
【００９１】
本実施形態によれば、特別な制御信号の追加なしで、さらにビット遷移を削減し、電力を抑えることができる。
なお、本実施形態は第２実施形態との重複適用も可能であり、また、単独でも実施可能である。
低消費電力化の効果としては第１実施形態のＬＦＳＲの停止制御が大きいが、ＬＦＳＲの停止制御を行わずにＸビットが連続する場合、ＬＦＳＲからの任意パターンの周期性に基づきつぎのビットがＸビットであるか、ケアビットであるかを判断し、次のビットがケアビットとなるまでＸビットの値の維持を行うことによっても、同じ効果が得られる。ここで「判断し」とあるがデコード制御回路６が実際に判断することなく、入力データに判断結果を予め反映させてデコード制御回路６は、単に入力データをデコードして、リセット命令の出力制御等を実行するだけでもよい。
【００９２】
以上の、第１から第３実施形態によれば、以下の利益が得られる。
第１に、既に述べたことであるが、従来のハイブリッドＢＩＳＴ(ＢＡＳＴ)手法より大幅に低消費電力が図られる。
第２に、特殊なＡＴＰＧパターンを必要としないことが上げられる。ここでテスタからＬＳＩ１に入力されるデータは、単に、ケアビットの情報であるため、この情報発生のために特殊なＡＴＰＧパターン生成のためのアルゴリズムは不要である。
第３に、テストデータ発生後の回路変更を必要としない。つまり、スキャンチェーンＳＣより前段のテストデータ発生時で回路を多少変更するだけで本発明が適用できる。とくに、遷移の停止等は、テスタからの制御命令列の一部として指示されることから、デコード制御回路６の制御命令を発生する回路やプログラムの変更で対応できる。よって、従来のハイブリッドＢＩＳＴ(ＢＡＳＴ)手法に対する回路オーバヘッドが小さい。
第４に、遅延の要因となる付加回路を必要としない。第２実施形態では、命令の遅延であるためテストデータそのものは遅延しない。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施形態の前提となる、スキャン設計に基づくテストの概念を説明する図である。
【図２】本発明の実施形態に関わるＬＳＩの回路ブロック構成図である。
【図３】本発明の実施形態に関わる任意パターン発生回路（ＬＦＳＲ構成）をｋ＝４の場合で示す回路図である。
【図４】本発明の実施形態に関わる任意パターン発生回路からの出現パターンの一覧を示す図表である。
【図５】本発明の実施形態に関わるビット反転回路の回路図である。
【図６】本発明の実施形態に関わる不定マスク回路の回路図である。
【図７】本発明の実施形態に関わるＬＦＳＲの一時停止制御を行ったときのビット列推移を示す図である。
【図８】第１実施形態の命令実装例を示す図表である。
【図９】第２実施形態に関わるビット反転回路の回路図である。
【図１０】第２実施形態で命令保持を行ったときのビット列推移を示す図である。
【図１１】第３実施形態におけるビット遷移防止技術が適用可能なテストパターンの説明図である。
【図１２】第３実施形態における命令の実装例を示す図表である。
【図１３】第３実施形態でビット遷移防止を行ったときのビット列推移を示す図である。
【符号の説明】
【００９４】
１…ＬＳＩ、２…擬似ランダムパターン発生器（任意パターン発生回路）、３,３Ａ…ビット反転回路、４…不定マスク回路、５…ＭＩＳＲ回路、６…デコード制御回路、２１,３１…ＥＸＯＲ回路、３３…フリップフロップ回路（保持回路）、ＦＦ…フリップフロップ回路、ＳＣ…スキャンチェーン（シフトレジスタ）、ＴＦ…タイムフレーム
【図１】
2009204402.tif 000003
【図２】
2009204402.tif 000004
【図３】
2009204402.tif 000005
【図４】
2009204402.tif 000006
【図５】
2009204402.tif 000007
【図６】
2009204402.tif 000008
【図７】
2009204402.tif 000009
【図８】
2009204402.tif 000010
【図９】
2009204402.tif 000011
【図１０】
2009204402.tif 000012
【図１１】
2009204402.tif 000013
【図１２】
2009204402.tif 000014
【図１３】
2009204402.tif 000015