半導体集積回路およびテストパターン発生方法
【課題】データ削減というBAST手法の利点を損なうことなく、さらなる消費電力の削減を図る。
【解決手段】複数k個のシフトレジスタ(SC1〜k)と、k個のXビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路(PRPG2)と、ケアビットのデータを外部から入力し、このデータに基づいて、任意パターンの非ケアビットにケアビットを組み合わせてテストパターンを発生するテストパターン発生回路(ビット反転回路3およびデコード制御回路6)と、を有する。テストパターン発生回路は、PRPG2に対し、データにより特定されるkビット内におけるケアビットの有無、位置および値と、任意パターンの周期性とに基づいて、任意パターンにおける配列遷移を一時的に停止可能に制御する。
【解決手段】複数k個のシフトレジスタ(SC1〜k)と、k個のXビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路(PRPG2)と、ケアビットのデータを外部から入力し、このデータに基づいて、任意パターンの非ケアビットにケアビットを組み合わせてテストパターンを発生するテストパターン発生回路(ビット反転回路3およびデコード制御回路6)と、を有する。テストパターン発生回路は、PRPG2に対し、データにより特定されるkビット内におけるケアビットの有無、位置および値と、任意パターンの周期性とに基づいて、任意パターンにおける配列遷移を一時的に停止可能に制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被テスト回路と複数k個のシフトレジスタを有し、被テスト回路に対し入力の印加と応答の収集とをk個のシフトレジスタを用いて制御する半導体集積回路と、k個のシフトレジスタに1ビットずつ並列に出力する単位でテストパターンを発生するテストパターン発生方法とに関する。特定的に、本発明は、内部で発生した非ケアビットの任意パターンに、外部から入力されるデータにより特定されるケアビットを組み合わせることによりテストパターンを発生する半導体集積回路とテストパターン発生方法とに関する。
【背景技術】
【0002】
半導体集積技術の発展に伴い、LSIのトランジスタあたりの製造コストは劇的に削減されている。ただし、トランジスタあたりのテストコストはあまり削減されておらず、LSI設計・製造における総コストに占めるテストコストの割合は逆に増加している。このため、テストコストの削減が急務である。
【0003】
テストコスト削減のための技術の1つとして、スキャン設計をベースとしたハイブリッドBIST(built-in self-test:組込み自己テスト)手法が知られている(例えば、特許文献1,2および非特許文献1,2参照)。この手法によるテストは、BAST(BIST-Aided Scan Test)とも称される。
【0004】
スキャン設計では、LSI内の被テスト回路に対してデータの入出力を制御する、スキャンチェーンと呼ばれるシフトレジスタが必要な数kだけ、LSI内に組み込まれる。1つのスキャンチェーン(シフトレジスタ)は、必要数のフリップフロップ回路FFを直列に接続したものである。
所定数のフリップフロップ回路FFに対しテスト入力値を設定し、これをシフト動作させて被テスト回路に入力し、当該入力に対する被テスト回路からの応答を、出力側に配置された所定数のフリップフロップ回路FFを介して出力する。入力データは外部のテスタから与えられ、上記応答に必要な処理を施した後、これをテスタに戻すことにより被検出回路の動作を観測できる。
【0005】
一方、ハイブリッドBIST(BAST)では、LSI内部に任意パターン発生回路を形成し、この回路を外部のテスタから制御することによってテストを行う。
このときテスタから与えられる情報は制御のための命令であるため、テストに必要な全パターン(テストパターン)をテスタから与える場合より、テスタとLSI間でやり取りする情報量そのものが少なく、また当該情報の時間的な密度が低いため当該情報を圧縮してLSIに入力できる。
【0006】
BASTでは、スキャンチェーンとハイブリッドBISTを併用することにより、アルゴリズムによってATPG(automatic test pattern generator)により発生したパターン(ATPGパターン)を、低速かつ安価なテスタでLSIに供給することが可能である。
【0007】
例えば特許文献1,2および非特許文献1,2では、擬似ランダムパターン発生回路で任意パターンを発生し、この任意パターンを、外部から与えられるATPGパターンと組み合わせてテストパターンをLSI内部で発生させる仕組みが開示されている。この仕組みは、テストパターンが、テストのための有効ビット(ケアビット)と、それ以外の任意ビット(非ケアビット)からなることを巧みに利用している。つまり、ケアビットを非ケアビットと組み合わせるための情報のみ外部から与えて、当該情報に基づいてケアビットをLSI内部で発生した非ケアビットと組み合わせることによりテストパターンを発生する。
この仕組みに供せられるATPGパターンはケアビット割り当ての情報であり、テストパターン内のケアビットの割合は、1〜5[%]程度と報告されている(後述の非特許文献1)。よって、被テスト回路の規模が大きくテストが複雑な場合でもケアビットのための情報量は比較的小さく、このためテスタを低速かつ安価にできる利点がある。
【0008】
ところで、スキャンチェーンを用いたテストでは、1クロックごとにスキャンチェーン上の多数のフリップフロップ回路FFの論理状態が遷移する。フリップフロップ回路FFの遷移の発生頻度が高いと、テスト時における消費電力が大きくなる。
また、テストパターンで無駄に論理状態の遷移があると、スキャンチェーンのシフト動作時だけでなく、被テスト回路内の論理ゲート等に無駄な論理遷移が生じ、このことも消費電力増大の要因になる。
【0009】
BIST手法の任意パターン発生回路としては、その実装の容易さから擬似乱数発生器が多く用いられる(特許文献1等参照)。
ところが、擬似乱数はそのランダム性ゆえ、スキャンチェーン上に存在する多数のフリップフロップ回路FFで論理状態の遷移の頻度を増大させる。通常動作(実使用動作)時に低消費電力となるように設計がされた回路では、擬似乱数を用いて発生したテストパターンを用いると、テスト時の消費電力が、通常動作時の消費電力の数倍に達するとの報告がある。
テスト時と通常動作時の消費電力差が大きいと、テスト時の電力不足による誤動作、あるいは、熱による故障を引き起こすため、LSIの歩留まりの低下や市場不良率の上昇をもたらす。
【0010】
スキャン設計をベースにしたハイブリッドBISTについて、テスト時の消費電力削減手法は、主に、
(1)テストデータを低消費電力向けに作成する手法(例えば、特許文献2および非特許文献3参照)と、
(2)付加回路や回路の変更によって遷移を抑制する手法(例えば、特許文献3および非特許文献4参照)と、
に大別される。
【特許文献1】特開2002−236144号公報
【特許文献2】特開2007−322415号公報
【特許文献3】特開2005−115578号公報
【非特許文献1】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.
【非特許文献2】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.
【非特許文献3】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.
【非特許文献4】S.Gerstendorfer, H.J.Wunderlich, "MINIMIZED POWER CONSUMPTION FOR SCAN-BASED BIST", IEEE Proceedings of the International Test Conference (ITC'99), 1999.
【発明の開示】
【発明が解決しようとする課題】
【0011】
上記(1)の手法は、特別なATPG発生アルゴリズムが必要である。
特許文献2には、スキャンチェーンの停止による消費電力削減に際し、テストパターンのビットを幾つかにグループ化し、このグループ単位でスキャンチェーンを動作し停止する制御を行う手法が提案されている。
しかしながら、この手法では、特殊なアルゴリズムが必要な上、グループ化による消費電力の削減効果はある程度有するが、ビット単位での制御であるため、消費電力の削減効果は限定的なものである。
【0012】
また、上記(2)に関しては、スキャンチェーンのシフト時にフリップフロップ回路FFの出力変化の伝播を抑制する回路、あるいは、スキャンチェーンの再構成等が提案されている。
ただし、スキャンチェーンの再構成はテストデータ生成後(マスク作成中)の回路構成変更が必要であり、現実的ではない。
【0013】
例えば、上記(2)に関する特許文献3では、スキャンチェーンのシフト動作に伴う出力の変化を被テスト回路に伝播させないために、ゲート回路を設け、あるいは、スキャンチェーンを構成するフリップフロップ回路の構成を工夫している。
しかしながら、この方法は回路的な負担が生じるだけでなく、消費電力の削減効果が被テスト回路に限定され、スキャンチェーンや任意パターン発生回路に対する当該効果の波及はないため、消費電力の削減は限られたものとなる。
【0014】
本発明は、データ削減というBAST手法の利点を損なうことなく消費電力の削減を、被テスト回路だけでなく、スキャンチェーンを構成するシフトレジスタ、さらには、任意パターン発生回路まで遡って達成でき、その結果、テストのための回路実装による消費電力の増大を極力抑制した半導体集積回路を提案する。また、本発明は、かかる利益が得られる半導体集積回路のテストパターン発生方法を提案する。
【課題を解決するための手段】
【0015】
本発明の一形態(第1形態)に関わる半導体集積回路は、被テスト回路と、複数k個のシフトレジスタと、任意パターン発生回路と、テストパターン発生回路とを有する。
前記k個のシフトレジスタは、前記被テスト回路に対し、入力パターンの印加と応答の収集とを制御する。
前記任意パターン発生回路は、k個の非ケアビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する。
前記テストパターン発生回路は、前記入力パターンとして前記k個のシフトレジスタに同時に出力されるkビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、前記任意パターンを前記任意パターン発生回路から入力し、入力した前記データに基づいて、入力した前記任意パターンの前記非ケアビットに前記ケアビットを組み合わせて一の前記kビットを発生し、前記データおよび前記任意パターンの入力と、当該入力に基づく前記kビットの発生とを一定期間ごとに繰り返し、発生したkビットを、順次、前記k個のシフトレジスタの各々に1ビットずつ並列に出力する。
このときテストパターン発生回路は、前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、前記任意パターンにおける前記ビット配列の前記一定期間ごとの遷移を一時的に停止可能に、任意パターン発生回路を制御する。
【0016】
本発明の他の形態(第2形態)に関わる半導体集積回路は、上記第1形態において、前記任意パターン発生回路は、与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、前記テストパターン発生回路は、外部から入力される前記データをデコードし、デコード結果を参照すると、前記任意パターン発生回路の循環シフト動作を所定期間だけ停止することが可能な場合に、前記k個のフリップフロップ回路に与えるシフトイネーブル信号を前記所定期間だけ非アクティブで維持するデコード制御回路を、有する。
【0017】
本発明の他の形態(第3形態)に関わる半導体集積回路は、上記第1形態において、前記任意パターン発生回路は、与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、前記テストパターン発生回路は、外部から入力される前記データをデコードし、当該テストパターン発生回路から出力すべき前記kビット内における前記ケアビットの有無、位置および値を特定するデコード制御回路と、前記k個のフリップフロップ回路の各出力から得られる前記k個の非ケアビットを入力し、前記デコードの結果に基づいて、入力した各非ケアビットの値が前記特定されたケアビットの値と異なるときは、当該非ケアビットの値をビット反転するビット反転回路と、を有する。
【0018】
本発明の他の形態(第4形態)に関わる半導体集積回路は、上記第3形態において、前記ビット反転回路は、前記任意パターン発生回路から出力される前記kビットの対応する1ビットを一方の入力端子からそれぞれ入力するk個の排他的論理和ゲート回路と、前記排他的論理和ゲート回路ごとに1つ設けられて、対応する排他的論理和ゲート回路の他の入力端子に接続され、前記デコード制御回路から与えられる反転命令を一時的に保持するk個の保持回路と、を有する。
【0019】
本発明の他の形態(第5形態)に関わる半導体集積回路は、上記第2形態において、前記k個のシフトレジスタに1ビットずつ並列に入力されるk個のテストパターンの各々が、前記入力パターンの格納領域と、当該入力パターンの印加により当該被テスト回路から得られる応答パターンの格納領域とをそれぞれ含み、互いに連続した複数の単位パターンを含んで構成され、前記デコード制御回路は、当該デコード制御回路に入力される前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、一の前記単位パターンの時系列順位における最後部で連続するn(n≧1)ビットと、当該最後部に続く他の前記単位パターンの時系列順位における先頭部で連続するnビットとが全て前記非ケアビットであり、かつ、前記任意パターン発生回路による前記ビット配列の遷移の一時的な停止により前記最後部と前記先頭部はそれぞれ固有のビット値で非ケアビットを連続して固定しているが、当該固定されたビット値が前記最後部と前記先頭部で異なることが所定のシフトレジスタで特定されるときは、前記最後部の固定ビット値を前記先頭部まで拡張可能に、前記所定のシフトレジスタに対しシフト動作の一時的な停止を制御する。
【0020】
本発明の他の形態(第6形態)に関わる半導体集積回路は、上記第5形態において、前記k個のシフトレジスタおよび前記デコード制御回路は、前記シフト動作の一時的な停止を、前記k個のシフトレジスタの各々で独立に制御可能に構成されている。
【0021】
本発明の他の形態(第7形態)に関わる半導体集積回路は、上記第1形態において、前記任意パターン発生回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を示す現マッチ数(match now)を、非ケアビットの値を次の前記一定期間にまで維持した場合に前記データおよび前記任意パターン発生回路の周期性から予測される次のビット配列との一致ビット数を示す予測マッチ数(match next)と比較し、当該比較の結果、(match now)<(match next)のときは前記任意パターン発生回路に対し前記遷移を許可し、(match now)≧(match next)のときは前記遷移を不許可とし、当該マッチ数の比較と、前記任意パターン発生回路に対する前記許可または前記不許可の指示とを、前記一定期間ごとに繰り返す。
【0022】
本発明の他の形態(第8形態)に関わる半導体集積回路は、上記第2形態において、前記デコード制御回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を(match now)とし、非ケアビットの値を次の前記一定期間にまで維持した場合に現ビット配列と次のビット配列との一致ビット数を(match next)としたときに、(match now)<(match next)ではアクティブ状態をとり、(match now)≧(match next)では非アクティブ状態をとるように変化する前記シフトイネーブル信号を、入力される前記データを基に発生し、当該シフトイネーブル信号を前記任意パターン発生回路に出力する。
【0023】
以上の構成によれば、以下の作用を奏する。
上述した第1〜第8形態では、任意パターン発生回路から任意パターンが、同一のビット配列が周期的に出現するように繰り返し発生する。このような局部的には一見ランダムであるが、大局的には周期性を有するパターンは、擬似ランダムパターンの一種である。
【0024】
テストパターン発生回路は、任意パターンからテストパターンを発生する機能と、任意パターン発生回路の一時的な停止を制御する機能を備える。
テストパターンの発生では、任意パターン(k個の非ケアビット)をテストパターン発生回路が、発生の順に入力し、例えば、入力した任意パターンに対応して入力されるデータに基づいて、任意パターン(k個の非ケアビット)をケアビットと組み合わせる。入力されるデータには、ケアビットのkビット内における有無、位置および値を特定するための情報が含まれる。
この組み合わせの仕方としては、例えば第3形態のように、kビット内でケアビットとすべきビットがある場合、そのビット位置の非ケアビットをケアビットの値で修正するために、必要に応じてビット反転を行う。
組み合わせ(修正)後のkビットが、テストパターンの基本単位として、k個のシフトレジスタに1ビットずつ並列に出力される。
以上の動作は、一定期間ごとに繰り返し行われるため、各シフトレジスタに対し、一定期間ごとに1ビットが次々に入力されてテストパターンの入力が行われる。
【0025】
k個のシフトレジスタは、例えば以下のように動作する。
k個のシフトレジスタは、テストパターンの入力後にシフトモードに移り、入力クロックパルスに同期したシフト動作を行う。テストターゲットとなる被テスト回路の入力側にテストパターン内の入力パターンが揃うと、シフト動作を一旦停止して、入力パターンを当該被テスト回路に印加する(テスト開始)。その後、テスト中に、入力パターンを印加した被テスト回路の出力側に、応答パターンの格納領域(第5形態参照)が揃うまで、k個のシフトレジスタは再度シフト動作を行う。そして、テスト終了時には、被テスト回路から応答パターンをシフトレジスタ内に収容する。その後、シフト動作を再度行うなどして後段の回路に応答パターンを移送する。
以後、同様にして、入力パターンを変えながらテストパターンの発生とシフトレジスタの設定を行うキャプチャーモードとシフトモードとが交互に繰り返され、所望の特性測定のメニューが実行される。
【0026】
本発明では、このようなテスト動作において、任意パターン(擬似ランダムパターン)の周期性を、消費電力抑制のために以下のように巧みに利用する。
つまり、任意パターン発生回路は、上述したように任意パターンの発生を一時的に停止可能に構成されているが、このとき入力データにより特定されるケアビットの情報と任意パターン発生の周期性とに基づいて、任意パターンにおけるビット配列の一定期間ごとの遷移を適宜、一時的に停止する。
【0027】
より具体的には、例えば第2および第3形態に示されるように、任意パターン発生回路は、k個の非ケアビットを循環シフト動作するk個のフリップフロップ回路と、配列遷移のためのゲート回路(例えば排他的論理和ゲート回路)とを有する。このような構成は、線形帰還シフトレジスタ(LFSR)と呼ばれる。k個のフリップフロップ回路を有するLFSRは(2k-1)通りのランダムパターンを周期的に発生する。
テストパターン発生回路は、第2形態に示されるように、LFSRに与えるシフトイネーブル信号を制御するためのデコード制御回路を有してよい。この場合、デコード制御回路は、外部からデータを入力して、これをデコードする。テストパターン発生回路は、デコード結果を参照すると、任意パターンの発生を一時的に停止すべきかどうかが判断でき、これをシフトイネーブル信号に反映させる。この判断自体をテストパターン発生回路が行ってもよいし、あるいは、データそのものにシフトイネーブル信号をアクティブから非アクティブにするための情報を持たせてもよい。
【0028】
これにより、任意パターン発生回路が適宜、動作を停止するため、ここでの消費電力が低減する。また、非ケアビットの無駄な遷移がない、または、低減されてテストパターンが発生するため、これを入力してシフト動作するk個のシフトレジスタにおいても無駄な電力消費の発生が防止または抑制される。このことはシフトレジスタがシフト動作を行っている間(シフトモード中)における被テスト回路での無駄な状態遷移をなくし、このことが無駄な電力消費の発生防止または抑制に貢献する。
【0029】
第4形態と第5形態は、以上の第1〜第3形態の動作を前提として、さらに無駄な状態遷移を防止するものである。
【0030】
第4形態では、第3形態におけるビット反転回路の構成に関する。
第4形態は、ビット反転のための排他的論理和(EXOR)ゲート回路の他方入力(反転命令の入力)側に、反転命令を一時的に保持する保持回路を付加したものである。
EXORゲート回路は、一方入力からテストパターンのビットを入力し、出力から、対応するシフトレジスタ側に送るものであるが、その際、反転命令が入力されていると入力ビットを反転して出力する。
【0031】
しかしながら、テストパターン(単位パターン、第5形態参照)のビット長は任意であるため、当該単位パターンの発生時に用いる(2k-1)通りのランダムパターンの倍数に当該ビット長が一致するとは限らない。むしろ一致しない場合がほとんどである。この場合、単位パターンの発生が(2k-1)通りのランダムパターンの途中状態で終了すると、例えば次にシフト動作命令がなされることを契機として、任意パターン発生回路のLFSRは初期値に戻される。よって、次に発生する単位パターンは、(2k-1)通りのランダムパターンにおける最初のパターンに戻って順次、発生したものとなる。単位パターンの最後の非ケアビットの値とLFSRの初期値の値が一致するとは限らないため、一致しない場合は、その分、無駄な遷移が後続の単位パターンを発生する際の先頭ビットで生じる。
第4形態のビット反転回路は、反転命令を保持する保持回路を有するため、あるテストパターンの終了時において、その最後のテストパターンのビットが(2k-1)通りのランダムパターンにおける途中の非ケアビットを用いて発生されたものである場合であっても、後続のテストパターンの先頭ビットは、その終了時のランダムパターンの次のランダムパターンを用いて発生するため、無駄なビット遷移が発生しない。
【0032】
第5形態は、k個のシフトレジスタにおける単位パターンの繋ぎ部分において、非ケアビットが片側nビット連続する場合の手当てに関する。
この場合、上記第4形態と同様な理由からランダムパターンの発生が初期に戻って更新される関係上、先の単位パターンの最後部におけるnビットの値と、後続の単位パターンの先頭部におけるnビットの値が一致するとは限らない。そのために無駄な遷移が後続の単位パターンの先頭部の発生時に生じる。
第5形態によれば、デコード制御回路が、このような事態が生じる所定のシフトレジスタにおいて、最後部のビット値を先頭部まで拡張可能に、所定のシフトレジスタに対しシフト動作の一時的な停止を制御するため、このような無駄なビット遷移が発生しない。
【0033】
以上の第4形態と第5形態のいずれかを適用すれば、より消費電力が低減し、重複適用すれば、1ビットたりとも無駄な論理状態の遷移によって不必要に電力消費が増大しない。
【0034】
本発明の他の形態(第9形態)に関わるテストパターン発生方法は、半導体集積回路内の被テスト回路に対し入力の印加と応答の収集とを複数k個のシフトレジスタを用いて制御するに際し、当該半導体集積回路の内部で発生した任意kビットを、入力したデータに基づいて修正することにより、前記k個のシフトレジスタに1ビットずつ並列に入力すべきkビット列を単位としてテストパターンを発生するテストパターン発生方法であって、前記データを入力し、前記テストパターン内の有効ビットに対応するケアビットの、前記kビット列ごとの有無、位置および値を示す情報を前記データから取得するステップと、同一のビット配列が周期的に出現するように配列を遷移させながら前記任意kビットを繰り返し発生するステップと、発生した前記任意kビットごとに、対応する前記情報に基づいて前記ケアビットが得られるようにビット値を修正して、前記kビット列を繰り返し発生するステップと、を含み、前記任意kビットの発生ステップにおいて、前記任意kビットの周期性とケアビットの前記情報に基づいて、連続する複数のkビット列の発生時に同一の前記任意kビットを利用可能であると予測される場合は、前記任意kビットに対する前記配列の遷移を一時的に停止する。
【発明の効果】
【0035】
以上の半導体集積回路およびテストパターン発生方法では、入力されるデータがケアビットの制御情報のみで、データ量そのものが小さく、また、時間的に圧縮可能であるため、いわゆるBAST手法のデータ削減という利点を踏襲している。その上で、電力消費がテストパターン発生の元となる任意パターン発生時に削減され、この効果が、テストパターンをシフトするシフトレジスタの動作、さらには被テスト回路の動作において無駄な電力発生を防止する効果にまで波及するという大きな利益が得られる。また、半導体集積回路における本発明適用による回路的な負担増は比較的小さい。
【発明を実施するための最良の形態】
【0036】
以下、本発明の実施形態を、図面を参照して説明する。
【0037】
図1は、スキャンチェーン(シフトレジスタ)による被テスト回路に対するテスト入力の印加と応答の取得のための構成を模式的に示す図である。
図1に示すDUT(Device Under Test)としての半導体集積回路(以下、LSIという)1は、CUT(Circuit Under Test)としての被テスト回路10と、複数のスキャンチェーンSCと、複数のスキャンチェーンSCを駆動する回路(不図示)とを同一の半導体基板に形成することで集積化している。スキャンチェーンSCは図1では2個のみ示すが、以下の実施形態では所定数k(k≧2)だけ、スキャンチェーンSCが設けられている。各スキャンチェーンSCは、それぞれ必要数のフリップフロップ回路FFを縦続接続したシフトレジスタである。k個のスキャンチェーンSCは「k個のシフトレジスタ」の一例を構成する。
【0038】
本実施形態における被テスト回路10は論理回路やメモリなど任意の回路であり、回路構成方式や機能に限定はない。図1は、前段回路の結果を次段回路の入力に用いることが可能な一構成例を示すものである。したがって、以下の実施形態における被テスト回路は、図1のように被テスト回路同士がフリップフロップ回路FFを介してシリアルに接続されている場合に限定されない。図1を用いて説明したいことは、1つの任意の被テスト回路10に対するフリップフロップ回路FFの配置である。
【0039】
図1に示す各フリップフロップ回路FFは、特に図示しないが、データ入力、データ出力、クロック入力およびシフトイネーブル信号入力のための各端子を備えている。
各フリップフロップ回路FFにおけるデータ出力端子は次段のフリップフロップ回路FFのデータ入力に接続されている。スキャンチェーンSCを構成する全てのフリップフロップ回路FFにおいて、そのクロック入力端子に、共通のクロック信号がパラレルに印加可能となっている。
【0040】
スキャンチェーンSCは、その一部のフリップフロップ回路FF群が被テスト回路10の入力側に配置され、他の一部のフリップフロップ回路FF群が被テスト回路10の出力側に配置されるように配置配線がされている。図1では、入力側のフリップフロップ回路を符号“FF(in)”により示し、出力側のフリップフロップ回路を符号“FF(out)”によって示す。入力側のフリップフロップ回路FF(in)と出力側のフリップフロップ回路FF(out)との間にも、必要に応じて所定数のフリップフロップ回路FFを配置してよい。
【0041】
図1に示す被テスト回路10の入力側に配置された複数(ここでは2個)のフリップフロップ回路FF(in)に、前段の他の論理回路(被テスト回路に限らない)あるいは外部から入力パターン(テストパターンの一部)が設定される。入力パターンの設定後は、スキャンチェーンSCがシフトモードになり、スキャンチェーンSCを構成する全てのフリップフロップ回路FFが、クロック入力端子にクロックパルスが入力されるたびに、各フリップフロップ回路FFの保持ビットを次段のフリップフロップ回路FFに転送するシフト動作を行う。
【0042】
ここで「テストパターン」は、テスト対象の被テスト回路10に印加すべき入力パターンのビット列を所定の格納領域に収容し、当該入力パターンを被テスト回路10に印加し、当該被テスト回路10が持つ機能を反映してその出力に出現する応答パターンを他の所定の格納領域に収容するものである。そのほか、応答パターンの比較基準となる期待値を当該テストパターンに予め収容してもよい。
このように一の被テスト回路10に対する入力パターンと、その対応する応答パターンの格納領域を少なくとも含む連続したmビット(m:任意数)を、テストパターンの「単位パターン」と呼ぶ。1つの被テスト回路10に対するテストパターンは、mビットの単位パターンを連続してテスト回数以上持つシリアルビット配列を有する。
【0043】
なお、スキャンチェーンSCを構成する各フリップフロップ回路FFは、前段のフリップフロップ回路FFから転送されるビットデータを取り込むデータ入力端子と、データ設定時のデータキャプチャー用のデータ入力端子とを別々に有するスキャンフリップフロップ構成としてよい。
さらに、スキャンチェーンSCを構成する各フリップフロップ回路FFは、スキャンテストのシフト動作中に出力値が固定される機能を備えるデータ出力端子と、スキャンデータ信号の保持ビット値を次段のフリップフロップ回路FFに出力するためのデータ出力端子とを別々に有する構成でもよい。このデータ出力端子を2つ有する構成は、シフト動作時の保持ビット変化を被テスト回路10に伝播させない利点があるが、回路構成が大きくなる不利益もある。以下の実施形態では、後述するように、スキャンデータ信号(テストパターン)自体に、無駄なビット反転がないためデータ伝播は極力抑制されるが、ケアビットの存在に起因したビット反転はあるため、データ出力端子を2つに分けないと、シフト動作時のビット変化の被テスト回路10への伝播を完全に防止できず、伝播漏洩が生じる。よって、この伝播漏洩に起因した被テスト回路10で発生する消費電力の増加と、フリップフロップ回路の規模増大とのトレードオフで、フリップフロップ回路FFで2つのデータ出力端子を有する構成を採用するかを決定するとよい。
【0044】
テスト時の消費電力が増大する原因は、このようにテストパターンをスキャンチェーンSC内でシフト動作させることにより被テスト回路10に伝播するビット変化に起因した被テスト回路内部の状態遷移以外に、スキャンチェーンSC内のビット変化により発生する状態遷移、さらには、テストパターン発生時に生じる回路の状態遷移であることがわかっている。
以下の実施形態では、以上の3つの状態遷移を一括して抑制することによる消費電力削減手法を提案する。より詳細には、スキャン設計を基としたハイブリッドBIST(BAST)手法におけるシフト動作時のスキャンチェーンの遷移を削減するようにテストパターンを発生することで消費電力を削減する手法を提案する。
【0045】
《第1実施形態》
【0046】
本実施形態では、任意パターン発生回路の動作を適宜停止することによりスキャンチェーンの遷移を削減する。この削減のための手法を適用するためにLSI1内部に必要な最小限の基本構成は、以下の4つの回路である。
【0047】
<基本構成>
(1)被テスト回路10(図1参照)。
(2)被テスト回路10に対し、入力パターンの印加と応答の収集とを制御する複数k個のシフトレジスタ(k個のスキャンチェーンSC、図1参照)。
(3)k個の非(ドント)ケアビット(以下、Xビットと表記)からなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路。
(4)入力パターンとしてk個のスキャンチェーンSCに同時に出力されるkビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、任意パターンを上記(3)の任意パターン発生回路から入力し、入力したデータに基づいて、入力した任意パターンのXビットにケアビットを組み合わせて一のkビットを発生し、データおよび任意パターンの入力と、当該入力に基づくkビットの発生とを一定期間ごとに繰り返し、発生したkビットを、順次、k個のスキャンチェーンSCの各々に1ビットずつ並列に出力するテストパターン発生回路。
そして、上記(4)のテストパターン発生回路は、データにより特定されるkビット内におけるケアビットの有無、位置および値と、任意パターン発生回路の周期性とに基づいて、任意パターンにおけるビット配列の一定期間ごとの遷移を一時的に停止可能に、(3)の任意パターン発生回路を制御する。
【0048】
上記(3)の任意パターン発生回路において、LFSR(Linear Feedback Shift Register)で保持パターンをシフトすることによりXビットを供給するための擬似ランダムパターンを発生する構成を採用できる。以下の説明では、この構成を前提として具体的な回路ブロックの構成例と動作を説明する。
【0049】
<LSIの全体構成例>
図2に、本実施形態に関わる半導体集積回路(LSI)の回路ブロック構成を示す。
図2に図解するLSI1は、「任意パターン発生回路」としての擬似ランダムパターン発生器(PRPG:Pseudo-Random Pattern Generator)2と、ビット反転回路(Inverter)3と、k個のスキャンチェーンSC1,SC2,…,SCkと、不定マスク回路(X-masking)4と、MISR回路5と、デコード制御回路(Decoder)6とを有する。
【0050】
スキャンチェーンSC1,SC2,…,SCkの各々は、図2では省略しているが、所定の被テスト回路(例えば、図1に示す被テスト回路10)に近接配置されている。図2は、実際のスキャンチェーンSCの配置形状を問わないで、k本のスキャンチェーンSCの存在を模式的に示すものである。
【0051】
<擬似ランダム(任意)パターン発生>
擬似ランダムパターン発生器2は、k個のXビットの配列を擬似ランダムに遷移させながら並列に出力する回路である。擬似ランダムパターン発生器2として、LFSRを用いることができる。
【0052】
図3は、k=4の場合のLFSR構成を示す擬似ランダムパターン発生器2の回路図である。以下、単に「LFSR」というときは、LFSR構成の擬似ランダムパターン発生器2を指す。
図3に示す擬似ランダムパターン発生器2(LFSR)は、シリアル接続されたk(ここでは4)個のフリップフロップ回路FF1,FF2,FF3,FF4と、1つの排他的論理和ゲート回路(以下、EXOR回路という)21と、を有する。EXOR回路21は、フリップフロップ回路FF1とFF4の出力の排他的論理和を演算して、その演算結果をフリップフロップ回路FF1に入力する。そのため、EXOR回路21は、「非ケアビットの配列を周期的に遷移させるためのゲート回路」として機能する。
【0053】
図4に、図3に示すLFSR(擬似ランダムパターン発生器2)の4つのタップTP1,TP2,TP3,TP4に出現するXビット列{X,X,X,X}の出現パターンを示す。Xビット列{X,X,X,X}が「任意パターン」に該当するため、以下、この名称を用いる。
図4の図表において、左端の数字の順番で任意パターン(Xビット列)が出現する。この図表の上端に各Xビット値を保持するフリップフロップ回路の符号を示す。
このLFSR構成は、番号1〜15に示す(2k-1)通りの任意パターンを周期的に発生させる。ここで現在の任意パターンを{X,X,X,X}now、次に出現する任意パターンを{X,X,X,X}nextでそれぞれ表すと、次に出現する任意パターンを{X,X,X,X}nextは、現在の任意パターンを{X,X,X,X}nowが得られるタップTP1,TP2,TP3,TP4を1タップだけ左にずらした、タップTP0,TP1,TP2,TP3に出現している。このように、LFSRでは発生するパターンに周期性があるため、観測するタップをシフトするだけで将来の出現パターンが予測できる。
【0054】
<ビット反転>
図5に、ビット反転回路3のビット単位の基本構成を示す。ビット反転回路3は、図示例の構成を対応ビットごとにk個並べて実現される。
擬似ランダムパターン発生器(PRPG)2から出力されるXビットは、図5に図解するEXOR回路31の一方入力に与えられる。EXOR回路31の他方入力には、セット入力とリセット入力で出力を“1”と“0”で切り替える回路32が接続されている。この回路32は、デコード制御回路6からの反転命令(Invert)をセット入力で受けると“1”をEXOR回路31の他方入力に出力し、デコード制御回路6からリセット命令(Reset)をリセット入力で受けると“0”をEXOR回路31の他方入力に出力する。
【0055】
図5に示す回路は、図1に示す他の回路と同一周波数のクロック信号で動作が制御されるが、回路32自体には命令保持機能はない。テストパターンをスキャンチェーンSCに出力するテストパターン設定動作時には、デコード制御回路6から回路32に反転命令(Invert)が与えられる度に、図5に示す回路がビット反転状態をとる。一方、テストパターンの出力終了とともにデコード制御回路6からリセット命令(Reset)が出力されると、図5に示す回路がビット反転の機能を停止する。
【0056】
デコード制御回路6は、この反転命令(Invert)の出力を、以下のように制御する。
図1に示すように、デコード制御回路6には外部のテスタ(自動テスト装置:ATE)から、図1の動作周波数を規定するクロック信号に同期して必要な情報を含む所定ビットのデータが供給される。
デコード制御回路6は、このデータを、クロック信号に規定される周期的な所定タイミングでキャプチャーし、そのたびに、データをデコードする。このデコード結果は、一定期間ごとに擬似ランダムパターン発生器2から順次出力されるkビットの任意パターン{X,X,X,X}nowそれぞれに対応して、ケアビットの有無、パターン内位置および値(“0”または“1”)を示す。よって、デコード制御回路6は、対応する任意パターン{X,X,X,X}nowが図5に示すEXOR回路31に与えられるタイミングに合わせて、反転命令(Invert)の出力を制御する。
その結果、任意パターン{X,X,X,X}nowの所定ビットが、必要に応じて、“0”または“1”のケアビットに変化する。このときXビットとケアビットの値が同じときはビット反転を行わないで、必要な場合のみビット反転がされる。
【0057】
以上の動作がビットごとにパラレルで施されるため、ビット反転回路3を通過した任意パターンは、ケアビットに応じた修正がなされ、これによりテストパターンの「kビット」が、例えばクロックパルスごとに順次発生する。発生したkビットは、1ビットずつ対応するスキャンチェーンSCの、例えば最後尾から入力され、このテストパターン入力がクロックパルスごとに繰り返される。
【0058】
<測定の実行>
このようなテストパターンの入力時のモードを「キャプチャーモード」と呼ぶ。
キャプチャーモード時には、全てのスキャンチェーンSCのフリップフロップ回路FFに与えられるシフトイネーブル信号は、「非アクティブ」となっている。
1回の測定に必要なパターン(単位パターン)が、k個のスキャンチェーンSCに入力され、単位パターンに含まれる入力パターンが被テスト回路10に入力されると、上記シフトイネーブル信号が「非アクティブ」から「アクティブ」にレベル変化し、これにより「シフトモード」が開始する。「シフトモード」では、被テスト回路10の動作(測定)中に、当該短パターンの応答パターンの格納領域が被テスト回路10の出力側に位置するような単位パターンの移送を、スキャンチェーンSCがシフト動作することで実行する。
その後、再び「キャプチャーモード」となるとスキャンチェーンSCがシフト動作を停止し、被テスト回路10の応答パターンを格納領域に一旦取り込み、次のクロックパルスの入力で後段の回路(図1に示す不定マスク回路4)に排出する。
【0059】
このようにして「キャプチャーモード」と「シフトモード」を繰り返すことにより1回の測定が行われる。複数の特性を測定する場合は、入力パターンを適宜変化させることにより、以上の動作を繰り返す。
「キャプチャーモード」と「シフトモード」を切り替える、シフトイネーブル信号のレベル変化は、図1に示すデコード制御回路6から制御される。
【0060】
<データ圧縮>
測定により被テスト回路10から得られる出力の検証を、LSI内で行ってもよいし、出力を圧縮して外部のテスタに送ることによって検証してもよい。いずれにしてもテスタに送るデータ量を削減する必要からLSI1はMISR回路5を内蔵する(図1参照)。
MISR回路5の構成は特に示さないが、LFSR構成を用いてダイナミックコンパクション(dynamic compaction)と呼ばれる圧縮を行う手法が一般的に用いられている。この圧縮により、測定結果のビット数が減り「シグニチャー」とよばれる圧縮データがMISR回路5から出力される。
【0061】
<不定マスク処理>
MISR回路5は、その構成上、一度でも不定状態を取り込むとMISR内の全てのレジスタが不定状態となって、試験不能になってしまうことがある。
この不都合を防止するため、k個のスキャンチェーンSCから出力される応答パターンに対し、MISR回路5に入力する前に不定マスク回路4を通して不定マスク処理(Xマスキング処理)を行い、MISR回路5内のレジスタが不定状態となる任意ビット(Xビット)を、不定マスク回路4で所定の値に論理確定する。論理確定する必要があるXビットは、被テスト回路10のテストに無関係なビットであり、被テスト回路10の機能とその入力パターンから応答パターン内のビット位置が予め分かっている。
このマスキング処理を行うべき応答パターン内のビット位置の情報は、デコード制御回路6が入力するデータに含まれるため、デコード制御回路6が、このデータをデコードし、そのデコード結果に応じて不定マスク回路4を制御する。
【0062】
図6に、不定マスク回路4のビット単位の基本構成を示す。不定マスク回路4は、図示例の構成を対応ビットごとにk個並べて実現される。
k個のスキャンチェーンSCから出力される応答パターンの各ビットは、図6に図解するOR回路41の一方入力に与えられる。OR回路41の他方入力には、セット入力とリセット入力で出力を“1”と“0”で切り替える回路42が接続されている。この回路42は、図5に示す回路32と同様な機能を有するが、セット入力に印加される命令がXマスク命令(X-Mask)である。
Xマスク命令(X-Mask)は、デコード制御回路6(図1)で、入力データのデコード結果から発生される。回路42は、デコード制御回路6からのXマスク命令(X-Mask)をセット入力で受けると“1”をOR回路41の他方入力に出力し、デコード制御回路6からリセット命令(Reset)をリセット入力で受けると“0”をOR回路41の他方入力に出力する。
このため、リセット命令(Reset)の入力状態でOR回路41を通過する応答ビットは、そのままMISR回路5に出力され、Xマスク命令(X-Mask)の入力状態でOR回路41を通過する応答ビットは、値が“1”に固定されてXマスクキング処理が施された後、MISR回路5に出力される。
【0063】
図6に示す回路は、図1に示す他の回路と同一周波数のクロック信号で動作が制御され、デコード制御回路6からの制御信号が、リセット命令(Reset)からXマスク命令(X-Mask)へ切り替えられるたびに、Xマスクキング処理が実行される。Xマスクキング処理後は、リセット命令(Reset)の入力状態に自動復帰する。
以上のようにして不定マスク回路4で適宜、Xマスキング処理を行い、続くMISR回路5で圧縮された応答データは、LSI1からテスタ(ATE)に送られる。
【0064】
<テストパターン発生方法>
以上の構成とその動作を前提として、本実施形態の特徴である、電力削減のためのテストパターン発生方法について説明する。
BAST手法ではLFSR(擬似ランダムパターン発生器2)から出力される任意パターン{X,X,X,X}nowは、たとえば1クロックパルスの印加ごとに変化する。このLFSRの出力変化の最小単位である一定期間を以下、「タイムフレーム」と呼ぶ。
タイムフレームごとに変化するLFSRの1つのXビットを、対応するスキャンチェーンSCに印加すると、任意パターンのランダム性が高いほどXビットの値を観測すると余分な遷移が多く発生している。本実施形態では、以下のアルゴリズムに従って適宜、LFSRのシフト動作を停止し、複数のタイムフレームにおいて同一の値をスキャンチェーンに入力することで、スキャンチェーンを構成するレジスタの遷移数を削減する。
【0065】
本手法は、以下のステップを少なくとも含む。
【0066】
[ステップST1]:データを入力し、テストパターン内の有効ビットに対応するケアビットの、kビット列ごとの有無、位置および値を示す情報を前記データから取得するステップ。
具体的には、図1に示すデコード制御回路6が、ATEから出力されるケアビットに関するデータを入力し、デコードする。このケアビットに関するデータをデコードした結果、タイムフレームごとのk(以下、k=4で説明)ビットの任意パターン{X,X,X,X}now内で、ビット反転にすべきケアビットの情報が判定できる。ビット反転情報は反転命令(Invert)を示す「反転フラグ」としてデコード制御回路6から、ビット反転回路3に与えられる。
【0067】
[ステップST2]:同一のビット配列が周期的に出現するように配列を遷移させながら任意kビットを繰り返し発生するステップ。
具体的には、<擬似ランダム(任意)パターン発生>で既に説明したように、図3に示すLFSRが、任意kビット、すなわち任意パターン{X,X,X,X}nowを、図4に示すようにビット配列のパターンが、パターン番号の順に、かつ、循環的に発生する。
【0068】
[ステップST3]:発生した任意kビット(任意パターン{X,X,X,X}now)ごとに、ステップST1の情報に基づいてケアビットが得られるようにビット値を修正して、kビット列(単位パターン)を繰り返し発生する。
具体的には、<ビット反転>で既に説明したように、図5に示すビット反転回路3が、ステップST3で得られたビット反転の情報、すなわち反転フラグに基づいてLFSRから出力される任意パターン{X,X,X,X}nowをビットごとに、必要に応じて反転することによって単位パターンに変換する。
【0069】
以上の3つのステップにおいて、デコード制御回路6は、現在の任意パターン{X,X,X,X}nowと、次のタイムフレームで発生される任意パターン{X,X,X,X}nextとを常時監視し、また反転フラグの情報も有している。このため、現在のタイムフレームから次のタイムフレームへの移行時に、任意パターンのビットごとに、現在のXビットの値(“0”または“1”)を維持すべきかを知ることができる。
よって、デコード制御回路6により擬似ランダムパターン発生器2を構成するLFSRの一時的な動作停止を制御可能である。
なお、このLFSRの一時停止の制御情報を入力データに含ませ、デコード制御回路6は、単にデータをデコードして、それに応じてLFSRのシフトイネーブル信号を発生、変化させるだけの役割をもつようにしてもよい。クロック信号の周波数が高い場合は、このようにデコード制御回路6の機能を簡素化しないと制御できないため、このような制御が望ましい。
このように、本実施形態では、「任意kビットの発生ステップにおいて、任意kビットの周期性とケアビットの情報に基づいて、連続する複数のkビット列の発生時に同一の任意kビットを利用可能であると予測される場合は、任意kビットに対する配列の遷移を一時的に停止する」という特徴がある。
【0070】
以下、より具体的な例を、図7を用いて説明する。
ATEでケアビットとXビットと全ての情報を発生したものを、一般には「ATPGパターン」と称する。
これに対し、デコード制御回路6に入力されるケアビットのデータは、LFSRの規則性と併用するとケアビットとXビットとの組み合わせパターン(テストパターン)を確定できるため、「ATPGパターン」と同じ役目があり、データ量が圧縮されて必要最小現のデータであるため、特に「ディターミニスティックなデータ」と称される。
つまり、ディターミニスティックなデータが示すパターンは広義の「ATPGパターン」の一種である。以下、ケアビットとXビットとの組み合わせパターンを単に「ATPGパターン」と呼ぶ。
【0071】
図7(A)に、入力パターンのケアビットをXビットと組み合わせて示すATPGパターンを5タイムフレーム(TF1〜TF5)分だけ模式的に示す。ATPGパターンが、実質的なLFSRの入力パターンとなる。
図7(B)に、図7(A)に対応した5タイムフレーム分の、LFSR出力パターンを模式的に示す。
なお、図7では、比較しやすいようにビット反転を行わないで済むケアビットを敢えて用いている。このため、図7(B)に示すLFSR出力パターンが、そのまま、4本のスキャンチェーンSC1〜SC4にビットごとに出力されるテストパターンとなる。以下、図7(B)に示すパターンを、場合によって、LFSR出力パターン、または、テストパターンと呼ぶ。
【0072】
ここで図3に示すLFSRは{1,1,1,1}に初期化される。
タイムフレームTF1において、LFSRに保持された初期化パターンは{1,1,1,1}、ATPGパターンは{X,X,X,X}(図7(A)のTF1の列)である。
タイムフレームTF1において、初期化パターン{1,1,1,1}とATPGパターン{X,X,X,X}とを比較する。比較の結果、一致するビットは存在しないため、現フレーム内の現在のマッチ数(以下、単に一致数と呼ぶ)は、(match now)=0である。
また、図4から次のタイムフレームTF2のLFSR出力パターンを{0,1,1,1}と予測でき、この{0,1,1,1}と、現在のタイムフレームTF1のATPGパターン{X,X,X,X}とを比較する。比較の結果、一致するビットは存在しないため、タイムフレームTF1,TF2間の予測マッチ数(match next)=0である。
(match now)=(match next)となることから、LFSRのシフト動作を1回(1タイムフレーム分)停止する。そのため、現在のタイムフレームTF1において、初期化パターン{1,1,1,1}がそのまま、テストパターンとしてLFSRから出力される(図7(B)のTF1の列)。また、次のタイムフレームTF2へ移行後のLFSRパターン(LFSR保持パターン)も{1,1,1,1}のままである。
【0073】
タイムフレームTF2において、LFSR保持パターン{1,1,1,1}とATPGパターン{1,X,X,1}(図7(A)のTF2の列)とを比較する。比較の結果、スキャンチェーンSC0に対応するビットと、スキャンチェーンSC3に対応するビットとで両パターンが一致するため、現在のタイムフレームTF2内の一致数(match now)=2となる。
また、図4から次のタイムフレームTF3のLFSR出力パターンを{1,0,1,1}と予測でき、この{1,0,1,1}と、現在のタイムフレームTF2のATPGパターン{1,X,X,1}とを比較する。比較の結果、スキャンチェーンSC0に対応するビットと、スキャンチェーンSC3に対応するビットで両パターンが一致するため、タイムフレームTF2,TF3間の予測マッチ数(match next)=2となる。
(match now)=(match next)となることから、LFSRのシフト動作をさらに1回(1タイムフレーム分)停止する。そのため、タイムフレームTF2におけるLFSR保持パターン{1,1,1,1}が、そのまま、テストパターンとしてLFSRから出力され(図7(B)のTF2の列)、さらに次のタイムフレームTF3への移行後もLFSR保持パターンが{1,1,1,1}のままである。
【0074】
タイムフレームTF3において、LFSR保持パターン{1,1,1,1}とATPGパターン{0,1,X,X}(図7(A)のTF3の列)とを比較する。比較の結果、スキャンチェーンSC1に対応するビットのみで両パターンが一致するため、現在のタイムフレームTF3内の一致数(match now)=1となる。
また、図4から次のタイムフレームTF4のLFSR出力パターンを{0,1,0,1}と予測でき、この{0,1,0,1}と、現在のタイムフレームTF3のATPGパターン{0,1,X,X}とを比較する。比較の結果、スキャンチェーンSC0,SC1の2つのビットで両パターンが一致するため、タイムフレームTF3,TF4間の予測マッチ数(match next)=2となる。
ここで始めて(match now)<(match next)となることから、LFSRのシフト動作を1回(1タイムフレーム分)行う。そのため、タイムフレームTF3におけるLFSR保持パターン{1,1,1,1}が、次のLFSRシフトパターン{0,1,1,1}に変化し、これがテストパターンとしてLFSRから出力され(図7(B)のTF3の列)、次のタイムフレームTF4への移行後もLFSR保持パターンも{0,1,1,1}となる。
【0075】
タイムフレームTF4において、LFSR保持パターン{0,1,1,1}とATPGパターン{X,X,1,1}(図7(A)のTF4の列)とを比較する。比較の結果、スキャンチェーンSC2,SC3に対応する2つのビットで両パターンが一致するため、現在のタイムフレームTF4内の一致数(match now)=2となる。
また、図4から次のタイムフレームTF5のLFSR出力パターンを{1,0,1,0}と予測でき、この{1,0,1,0}と、現在のタイムフレームTF4のATPGパターン{X,X,1,1}とを比較する。比較の結果、スキャンチェーンSC2に対応するビットのみで両パターンが一致するため、タイムフレームTF4,TF5間の予測マッチ数(match next)=1となる。
ここで再び(match now)>(match next)となることから、LFSRのシフト動作を1回(1タイムフレーム分)停止する。そのため、タイムフレームTF4におけるLFSR保持パターン{0,1,1,1}が、そのまま、テストパターンとしてLFSRから出力され(図7(B)のTF4の列)、さらに次のタイムフレームTF5への移行後もLFSR保持パターンが{0,1,1,1}のままである。
【0076】
タイムフレームTF5において、LFSR保持パターン{0,1,1,1}とATPGパターン{X,X,X,X}(図7(A)のTF5の列)とを比較する。比較の結果、両パターンで一致するビットがないため、現在のタイムフレームTF5内の一致数(match now)=0となる。
また、図4から次のタイムフレームTF6のLFSR出力パターンを{1,1,0,1}と予測でき、この{1,1,0,1}と、現在のタイムフレームTF5のATPGパターン{X,X,X,X}とを比較する。比較の結果、両パターンで一致するビットがないため、タイムフレームTF5,TF6間の予測マッチ数(match next)=0となる。
(match now)=(match next)となることから、LFSRのシフト動作をさらに1回(1タイムフレーム分)停止する。そのため、タイムフレームTF5におけるLFSR保持パターン{0,1,1,1}が、そのまま、テストパターンとしてLFSRから出力され(図7(B)のTF5の列)、さらに次のタイムフレームTF6(不図示)への移行後もLFSR保持パターンが{0,1,1,1}のままである。
【0077】
以後、同様にして、LFSRの動作と停止がタイムフレームごとに制御されて、テストパターンが確定してゆく。
なお、ビット反転による修正動作が必要な場合は、LFSR出力パターンの必要な箇所が、図5に示すビット反転回路3によりビット反転されるため、図7(A)に示すケアビットがテストパターンに反映される。
【0078】
図7(B)に示すテストパターンは、ビット反転箇所がスキャンチェーンSC1におけるタイムフレームTF2からタイムフレームTF3への移行時のみの1箇所である。ビット反転を行うと、次にビット反転が必要になるまでLFSR停止動作により同じ値が維持される。よって、ビット遷移数が最小限に削減される。
ビット遷移数の削減により、LFSRの消費電力が低減される。また、スキャンチェーンによりシフト動作におけるビット遷移数も必要最小限となるため、スキャンチェーンの消費電力も低減される。
一方、被テスト回路は、ケアビットとしての所定のビット値が所定のタイミングで与えられると入力データとして十分である。それ以外のビット(Xビット)の箇所での被テスト回路の動作は無駄な電力消費を生じるだけである。本実施形態では、Xビット箇所における被テスト回路の入力遷移を最小限にできるため、被テスト回路においても無駄な消費電力が削減される。
以上より、全体として大幅な消費電力の削減が図られる。
【0079】
図8(A)に、デコード制御回路6によるデコードの結果得られる、2ビットの命令フラグ(instruction flag)と命令内容とを図表にして示す。また、図8(B)に、命令フラグ“00”の詳細を示す。
命令フラグは、上位ビットの反転命令(Invert)のフラグ(反転フラグ)と、下位ビットのXマスク命令(X-Mask)のフラグ(マスクフラグ)から構成される。
ここで反転フラグとマスクフラグは“0で非アクティブ、“1”でアクティブである。反転フラグが“1”は、対象ビットがケアビットで、かつ、ビット反転を行う必要がある場合に対応し、反転フラグが“0”は、対象ビットがケアビットで、かつ、ビット反転が不要な場合と、対象ビットがXビットの場合に対応する。一方、マスクフラグはテスト対象の被テスト回路10と入力パターンとによって予め決められた応答のXビットに対応して決められている。入力パターンと応答パターンは単位パターン内の別領域に格納されるため、反転とXマスキングとが同じビットに対して同時に行われることは、ここではない。よって、命令フラグ“11”は使用されない。
【0080】
命令フラグ“00”は、リセットまたはスキャンシフトに対応する。ここでいう「スキャンシフト」は、テストパターン発生時にタイムフレームを順次送るシフト動作と、スキャンチェーンSC内のシフト動作の両方を含む概念である。よって、テストモードとキャプチャーモードの両方で「スキャンシフト」が実行される。
命令フラグが“00”のときに、図8に示していないリセット命令(Reset)がデコード制御回路6から与えられた場合、図5,図6示すビット反転回路3,不定マスク回路4がリセット状態となる。
【0081】
命令フラグが“00”のときは、ビット値の操作を行わないため、kビット列内のビット指定のためのアドレス(Addr)は参照されない。命令フラグが“10”のときのアドレス(Addr)が示すビットの値がビット反転回路3によって反転される。また、命令フラグが“01”のときのアドレス(Addr)が示すビットの値が不定マスク回路4によって“1”に固定される。
本実施形態では、命令フラグが“00”のときのアドレス(Addr)を利用して、図示のようにLFSRを停止してスキャンシフトするか、LFSRの配列を遷移してスキャンシフトするかを決めている。このため、LFSRの一時的な停止制御の機能を付加することによる、制御信号の追加は不要である。
なお、以上の命令の実装例は一例であり、これに限定されない。
【0082】
《第2実施形態》
本実施形態は、第1実施形態に追加して適用可能な実施形態であり、ビット反転時の命令保持に関する。
上記第1実施形態において、テストパターンを構成する単位パターンのビット長任意であるため、当該単位パターンの発生時に用いる(2k-1)通りのランダムパターン(任意パターン)の倍数に当該ビット長が一致するとは限らない。むしろ一致しない場合がほとんどである。この場合、単位パターンの発生が(2k-1)通りのランダムパターンの途中状態で終了すると、例えば次にシフト動作命令がなされることを契機として、任意パターン発生回路のLFSRは初期値、例えば{1,1,1,1}に戻される。よって、次に発生する単位パターンは、(2k-1)通りのランダムパターンにおける最初のパターン{1,1,1,1}から順次、発生したものとなる。単位パターンの最後のXビットの値とLFSRの初期値の値が一致するとは限らないため、一致しない場合は、その分、無駄な遷移が後続の単位パターンを発生する際の先頭ビットで生じる。
【0083】
図9に、この単位パターンのつなぎ目で発生する無駄な遷移を防止するために、図3に示す回路と置き換え可能なビット反転回路3Aを示す。また、図10に、本実施形態におけるATPGパターンとテストパターンを示す。
図9に図解するビット反転回路3Aは、図3に示すビット反転回路3において、EXOR回路31の他方入力と、回路32の出力との間に「保持回路」としてのフリップフロップ回路33を設けている。
【0084】
図10ではケアビットを丸印で囲んでいる。例えばスキャンチェーンSC1のタイムフレームTF1のビットに着目すると、このビットはケアビットであり、その値は“1”である。このビットで単位パターンが終了すると仮定する。ここでなんら対策を講じないと、次のタイムフレームTF2は全てXビットであるため、スキャンチェーンSC1の現在の値“0”が初期値“1”に戻されてしまう。
そこで、TFSRの初期化を行わないで、かつ、図9に示す回路構成によって1クロックパルスだけ命令を保持するフリップフロップ回路33を設けている。この回路の作用により、後続の単位フレームにおける先頭ビットがタイムフレームTF2で処理される場合も、値“0”が維持される。なお、次のタイムフレームTF3はケアビットであるため、反転が行われている。
【0085】
このように、本実施形態では単位フレームの境界でリセット動作がかかるのを防止して無駄なビット値の遷移を防止できるという利点がある。
【0086】
《第3実施形態》
本実施形態は、k個のスキャンチェーンSCにおけるシフト動作時に、単位フレームが切り替わる箇所で無駄な状態遷移を防止するものである。なお、本実施形態も、第1実施形態に追加して適用可能な実施形態である。
【0087】
図11は、第3実施形態における処理が適用される場合のテストパターンを説明するための図である。
図11は、1つのテストパターン内で、m番目の単位パターンUP(m)と、これに続く(m+1)番目の単位パターンUP(m+1)とを示している。この2つの単位パターンは実際にはシリアルに連続しているが、ここでは単位パターンUP(m)の最後部のnビットと、単位パターンUP(m+1)の先頭部のnビットが共にXビットであるため、このnビット同士を重ねて示している。
このような条件の場合、各単位パターンのnビット内ではLFSRの停止制御により同じビット値が連続するが、単位パターンが異なると、LFSRが初期化されるためnビット同士でみると値が異なることがある。その場合、1回の無駄なビット遷移が生じる。
本実施形態では、このようなビット遷移の防止を、空いた領域の命令追加によって実現する。
【0088】
図12に、命令の実装例を示す。
この例では、図8(A)では未使用であった命令フラグが“11”の領域を利用して、このフラグがたったときにXビットを維持するように制御する。この制御は、例えば、図5に示す回路において、命令フラグが“11”の場合、回路32に入力されるリセット命令(Reset)を1クロックパルスだけ無効化するように回路変更するなどして実現できる。
【0089】
図13は、第3実施形態で余分なビット遷移の防止を行ったときのビット列推移を示す図である。
ここでスキャンチェーンSC3とSC4について説明する。
スキャンチェーンSC3では、図13(B)に示す先の単位パターンにおける最後部の1ビットと、図3(A)に示す後の単位パターンにおける先頭部の1ビットがXビットで重複する。この場合、ビット遷移を1クロックパルスだけ防止する。
よって、最初のクロックパルスが与えられると、実際にはビット遷移を行わないで、図示の状態における後の単位ユニットのA13ビット(“X”)が、先の単位ユニットのB33ビット(“X”)に移送されたことが済んだものと仮定する。この仮定が成り立つのは、両ビットが同じ値“X”であるためビット遷移を実際には行う必要がないからである。
次のクロックパルスの印加で、実際にビット遷移を行うため、図示の状態における後の単位ユニットのA23ビット(“X”)が、先の単位ユニットのB33ビットに実際に移送される。さらに次のクロックパルスの印加によるビット遷移により、A33ビット(“1”)がB33ビットに移送される。
つまり、ビット遷移を1回省略しても、省略しない場合と結果は同じとなる。
【0090】
スキャンチェーンSC4では、図13(B)に示す先の単位パターンにおける最後部の2ビットと、図3(A)に示す後の単位パターンにおける先頭部の2ビットがXビットで重複する。この場合、ビット遷移を2クロックパルスだけ防止する。
よって、最初のクロックパルスが与えられると、実際にはビット遷移を行わないで、図示の状態における後の単位ユニットのA14ビット(“X”)が、先の単位ユニットのB34ビット(“X”)に移送されたことが済んだものと仮定し、さらに、B34ビットの“X”がB24ビット(“X”)に移送され、B24ビットの値“X”がB14ビット(“X”)に移送されたものと仮定する。これらは同じ値“X”であるためビット遷移をする必要がないからである。
次のクロックパルスの印加でも、実際にビット遷移を行わないで、図示の状態における後の単位ユニットのA24ビット(“X”)が、先の単位ユニットのB3ビットに移送され、A14ビット(“X”)がB24ビット(“X”)に移送されたことが済んだものと過程する。
そして、次のクロックパルスの印加で、実際にビット遷移を行うため、図示の状態における後の単位ユニットのA34ビット(“0”)が先の単位ユニットのA34ビットに移送される。
つまり、ビット遷移を2回省略しても、省略しない場合と結果は同じとなる。
【0091】
本実施形態によれば、特別な制御信号の追加なしで、さらにビット遷移を削減し、電力を抑えることができる。
なお、本実施形態は第2実施形態との重複適用も可能であり、また、単独でも実施可能である。
低消費電力化の効果としては第1実施形態のLFSRの停止制御が大きいが、LFSRの停止制御を行わずにXビットが連続する場合、LFSRからの任意パターンの周期性に基づきつぎのビットがXビットであるか、ケアビットであるかを判断し、次のビットがケアビットとなるまでXビットの値の維持を行うことによっても、同じ効果が得られる。ここで「判断し」とあるがデコード制御回路6が実際に判断することなく、入力データに判断結果を予め反映させてデコード制御回路6は、単に入力データをデコードして、リセット命令の出力制御等を実行するだけでもよい。
【0092】
以上の、第1から第3実施形態によれば、以下の利益が得られる。
第1に、既に述べたことであるが、従来のハイブリッドBIST(BAST)手法より大幅に低消費電力が図られる。
第2に、特殊なATPGパターンを必要としないことが上げられる。ここでテスタからLSI1に入力されるデータは、単に、ケアビットの情報であるため、この情報発生のために特殊なATPGパターン生成のためのアルゴリズムは不要である。
第3に、テストデータ発生後の回路変更を必要としない。つまり、スキャンチェーンSCより前段のテストデータ発生時で回路を多少変更するだけで本発明が適用できる。とくに、遷移の停止等は、テスタからの制御命令列の一部として指示されることから、デコード制御回路6の制御命令を発生する回路やプログラムの変更で対応できる。よって、従来のハイブリッドBIST(BAST)手法に対する回路オーバヘッドが小さい。
第4に、遅延の要因となる付加回路を必要としない。第2実施形態では、命令の遅延であるためテストデータそのものは遅延しない。
【図面の簡単な説明】
【0093】
【図1】本発明の実施形態の前提となる、スキャン設計に基づくテストの概念を説明する図である。
【図2】本発明の実施形態に関わるLSIの回路ブロック構成図である。
【図3】本発明の実施形態に関わる任意パターン発生回路(LFSR構成)をk=4の場合で示す回路図である。
【図4】本発明の実施形態に関わる任意パターン発生回路からの出現パターンの一覧を示す図表である。
【図5】本発明の実施形態に関わるビット反転回路の回路図である。
【図6】本発明の実施形態に関わる不定マスク回路の回路図である。
【図7】本発明の実施形態に関わるLFSRの一時停止制御を行ったときのビット列推移を示す図である。
【図8】第1実施形態の命令実装例を示す図表である。
【図9】第2実施形態に関わるビット反転回路の回路図である。
【図10】第2実施形態で命令保持を行ったときのビット列推移を示す図である。
【図11】第3実施形態におけるビット遷移防止技術が適用可能なテストパターンの説明図である。
【図12】第3実施形態における命令の実装例を示す図表である。
【図13】第3実施形態でビット遷移防止を行ったときのビット列推移を示す図である。
【符号の説明】
【0094】
1…LSI、2…擬似ランダムパターン発生器(任意パターン発生回路)、3,3A…ビット反転回路、4…不定マスク回路、5…MISR回路、6…デコード制御回路、21,31…EXOR回路、33…フリップフロップ回路(保持回路)、FF…フリップフロップ回路、SC…スキャンチェーン(シフトレジスタ)、TF…タイムフレーム
【技術分野】
【0001】
本発明は、被テスト回路と複数k個のシフトレジスタを有し、被テスト回路に対し入力の印加と応答の収集とをk個のシフトレジスタを用いて制御する半導体集積回路と、k個のシフトレジスタに1ビットずつ並列に出力する単位でテストパターンを発生するテストパターン発生方法とに関する。特定的に、本発明は、内部で発生した非ケアビットの任意パターンに、外部から入力されるデータにより特定されるケアビットを組み合わせることによりテストパターンを発生する半導体集積回路とテストパターン発生方法とに関する。
【背景技術】
【0002】
半導体集積技術の発展に伴い、LSIのトランジスタあたりの製造コストは劇的に削減されている。ただし、トランジスタあたりのテストコストはあまり削減されておらず、LSI設計・製造における総コストに占めるテストコストの割合は逆に増加している。このため、テストコストの削減が急務である。
【0003】
テストコスト削減のための技術の1つとして、スキャン設計をベースとしたハイブリッドBIST(built-in self-test:組込み自己テスト)手法が知られている(例えば、特許文献1,2および非特許文献1,2参照)。この手法によるテストは、BAST(BIST-Aided Scan Test)とも称される。
【0004】
スキャン設計では、LSI内の被テスト回路に対してデータの入出力を制御する、スキャンチェーンと呼ばれるシフトレジスタが必要な数kだけ、LSI内に組み込まれる。1つのスキャンチェーン(シフトレジスタ)は、必要数のフリップフロップ回路FFを直列に接続したものである。
所定数のフリップフロップ回路FFに対しテスト入力値を設定し、これをシフト動作させて被テスト回路に入力し、当該入力に対する被テスト回路からの応答を、出力側に配置された所定数のフリップフロップ回路FFを介して出力する。入力データは外部のテスタから与えられ、上記応答に必要な処理を施した後、これをテスタに戻すことにより被検出回路の動作を観測できる。
【0005】
一方、ハイブリッドBIST(BAST)では、LSI内部に任意パターン発生回路を形成し、この回路を外部のテスタから制御することによってテストを行う。
このときテスタから与えられる情報は制御のための命令であるため、テストに必要な全パターン(テストパターン)をテスタから与える場合より、テスタとLSI間でやり取りする情報量そのものが少なく、また当該情報の時間的な密度が低いため当該情報を圧縮してLSIに入力できる。
【0006】
BASTでは、スキャンチェーンとハイブリッドBISTを併用することにより、アルゴリズムによってATPG(automatic test pattern generator)により発生したパターン(ATPGパターン)を、低速かつ安価なテスタでLSIに供給することが可能である。
【0007】
例えば特許文献1,2および非特許文献1,2では、擬似ランダムパターン発生回路で任意パターンを発生し、この任意パターンを、外部から与えられるATPGパターンと組み合わせてテストパターンをLSI内部で発生させる仕組みが開示されている。この仕組みは、テストパターンが、テストのための有効ビット(ケアビット)と、それ以外の任意ビット(非ケアビット)からなることを巧みに利用している。つまり、ケアビットを非ケアビットと組み合わせるための情報のみ外部から与えて、当該情報に基づいてケアビットをLSI内部で発生した非ケアビットと組み合わせることによりテストパターンを発生する。
この仕組みに供せられるATPGパターンはケアビット割り当ての情報であり、テストパターン内のケアビットの割合は、1〜5[%]程度と報告されている(後述の非特許文献1)。よって、被テスト回路の規模が大きくテストが複雑な場合でもケアビットのための情報量は比較的小さく、このためテスタを低速かつ安価にできる利点がある。
【0008】
ところで、スキャンチェーンを用いたテストでは、1クロックごとにスキャンチェーン上の多数のフリップフロップ回路FFの論理状態が遷移する。フリップフロップ回路FFの遷移の発生頻度が高いと、テスト時における消費電力が大きくなる。
また、テストパターンで無駄に論理状態の遷移があると、スキャンチェーンのシフト動作時だけでなく、被テスト回路内の論理ゲート等に無駄な論理遷移が生じ、このことも消費電力増大の要因になる。
【0009】
BIST手法の任意パターン発生回路としては、その実装の容易さから擬似乱数発生器が多く用いられる(特許文献1等参照)。
ところが、擬似乱数はそのランダム性ゆえ、スキャンチェーン上に存在する多数のフリップフロップ回路FFで論理状態の遷移の頻度を増大させる。通常動作(実使用動作)時に低消費電力となるように設計がされた回路では、擬似乱数を用いて発生したテストパターンを用いると、テスト時の消費電力が、通常動作時の消費電力の数倍に達するとの報告がある。
テスト時と通常動作時の消費電力差が大きいと、テスト時の電力不足による誤動作、あるいは、熱による故障を引き起こすため、LSIの歩留まりの低下や市場不良率の上昇をもたらす。
【0010】
スキャン設計をベースにしたハイブリッドBISTについて、テスト時の消費電力削減手法は、主に、
(1)テストデータを低消費電力向けに作成する手法(例えば、特許文献2および非特許文献3参照)と、
(2)付加回路や回路の変更によって遷移を抑制する手法(例えば、特許文献3および非特許文献4参照)と、
に大別される。
【特許文献1】特開2002−236144号公報
【特許文献2】特開2007−322415号公報
【特許文献3】特開2005−115578号公報
【非特許文献1】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.
【非特許文献2】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.
【非特許文献3】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.
【非特許文献4】S.Gerstendorfer, H.J.Wunderlich, "MINIMIZED POWER CONSUMPTION FOR SCAN-BASED BIST", IEEE Proceedings of the International Test Conference (ITC'99), 1999.
【発明の開示】
【発明が解決しようとする課題】
【0011】
上記(1)の手法は、特別なATPG発生アルゴリズムが必要である。
特許文献2には、スキャンチェーンの停止による消費電力削減に際し、テストパターンのビットを幾つかにグループ化し、このグループ単位でスキャンチェーンを動作し停止する制御を行う手法が提案されている。
しかしながら、この手法では、特殊なアルゴリズムが必要な上、グループ化による消費電力の削減効果はある程度有するが、ビット単位での制御であるため、消費電力の削減効果は限定的なものである。
【0012】
また、上記(2)に関しては、スキャンチェーンのシフト時にフリップフロップ回路FFの出力変化の伝播を抑制する回路、あるいは、スキャンチェーンの再構成等が提案されている。
ただし、スキャンチェーンの再構成はテストデータ生成後(マスク作成中)の回路構成変更が必要であり、現実的ではない。
【0013】
例えば、上記(2)に関する特許文献3では、スキャンチェーンのシフト動作に伴う出力の変化を被テスト回路に伝播させないために、ゲート回路を設け、あるいは、スキャンチェーンを構成するフリップフロップ回路の構成を工夫している。
しかしながら、この方法は回路的な負担が生じるだけでなく、消費電力の削減効果が被テスト回路に限定され、スキャンチェーンや任意パターン発生回路に対する当該効果の波及はないため、消費電力の削減は限られたものとなる。
【0014】
本発明は、データ削減というBAST手法の利点を損なうことなく消費電力の削減を、被テスト回路だけでなく、スキャンチェーンを構成するシフトレジスタ、さらには、任意パターン発生回路まで遡って達成でき、その結果、テストのための回路実装による消費電力の増大を極力抑制した半導体集積回路を提案する。また、本発明は、かかる利益が得られる半導体集積回路のテストパターン発生方法を提案する。
【課題を解決するための手段】
【0015】
本発明の一形態(第1形態)に関わる半導体集積回路は、被テスト回路と、複数k個のシフトレジスタと、任意パターン発生回路と、テストパターン発生回路とを有する。
前記k個のシフトレジスタは、前記被テスト回路に対し、入力パターンの印加と応答の収集とを制御する。
前記任意パターン発生回路は、k個の非ケアビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する。
前記テストパターン発生回路は、前記入力パターンとして前記k個のシフトレジスタに同時に出力されるkビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、前記任意パターンを前記任意パターン発生回路から入力し、入力した前記データに基づいて、入力した前記任意パターンの前記非ケアビットに前記ケアビットを組み合わせて一の前記kビットを発生し、前記データおよび前記任意パターンの入力と、当該入力に基づく前記kビットの発生とを一定期間ごとに繰り返し、発生したkビットを、順次、前記k個のシフトレジスタの各々に1ビットずつ並列に出力する。
このときテストパターン発生回路は、前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、前記任意パターンにおける前記ビット配列の前記一定期間ごとの遷移を一時的に停止可能に、任意パターン発生回路を制御する。
【0016】
本発明の他の形態(第2形態)に関わる半導体集積回路は、上記第1形態において、前記任意パターン発生回路は、与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、前記テストパターン発生回路は、外部から入力される前記データをデコードし、デコード結果を参照すると、前記任意パターン発生回路の循環シフト動作を所定期間だけ停止することが可能な場合に、前記k個のフリップフロップ回路に与えるシフトイネーブル信号を前記所定期間だけ非アクティブで維持するデコード制御回路を、有する。
【0017】
本発明の他の形態(第3形態)に関わる半導体集積回路は、上記第1形態において、前記任意パターン発生回路は、与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、前記テストパターン発生回路は、外部から入力される前記データをデコードし、当該テストパターン発生回路から出力すべき前記kビット内における前記ケアビットの有無、位置および値を特定するデコード制御回路と、前記k個のフリップフロップ回路の各出力から得られる前記k個の非ケアビットを入力し、前記デコードの結果に基づいて、入力した各非ケアビットの値が前記特定されたケアビットの値と異なるときは、当該非ケアビットの値をビット反転するビット反転回路と、を有する。
【0018】
本発明の他の形態(第4形態)に関わる半導体集積回路は、上記第3形態において、前記ビット反転回路は、前記任意パターン発生回路から出力される前記kビットの対応する1ビットを一方の入力端子からそれぞれ入力するk個の排他的論理和ゲート回路と、前記排他的論理和ゲート回路ごとに1つ設けられて、対応する排他的論理和ゲート回路の他の入力端子に接続され、前記デコード制御回路から与えられる反転命令を一時的に保持するk個の保持回路と、を有する。
【0019】
本発明の他の形態(第5形態)に関わる半導体集積回路は、上記第2形態において、前記k個のシフトレジスタに1ビットずつ並列に入力されるk個のテストパターンの各々が、前記入力パターンの格納領域と、当該入力パターンの印加により当該被テスト回路から得られる応答パターンの格納領域とをそれぞれ含み、互いに連続した複数の単位パターンを含んで構成され、前記デコード制御回路は、当該デコード制御回路に入力される前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、一の前記単位パターンの時系列順位における最後部で連続するn(n≧1)ビットと、当該最後部に続く他の前記単位パターンの時系列順位における先頭部で連続するnビットとが全て前記非ケアビットであり、かつ、前記任意パターン発生回路による前記ビット配列の遷移の一時的な停止により前記最後部と前記先頭部はそれぞれ固有のビット値で非ケアビットを連続して固定しているが、当該固定されたビット値が前記最後部と前記先頭部で異なることが所定のシフトレジスタで特定されるときは、前記最後部の固定ビット値を前記先頭部まで拡張可能に、前記所定のシフトレジスタに対しシフト動作の一時的な停止を制御する。
【0020】
本発明の他の形態(第6形態)に関わる半導体集積回路は、上記第5形態において、前記k個のシフトレジスタおよび前記デコード制御回路は、前記シフト動作の一時的な停止を、前記k個のシフトレジスタの各々で独立に制御可能に構成されている。
【0021】
本発明の他の形態(第7形態)に関わる半導体集積回路は、上記第1形態において、前記任意パターン発生回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を示す現マッチ数(match now)を、非ケアビットの値を次の前記一定期間にまで維持した場合に前記データおよび前記任意パターン発生回路の周期性から予測される次のビット配列との一致ビット数を示す予測マッチ数(match next)と比較し、当該比較の結果、(match now)<(match next)のときは前記任意パターン発生回路に対し前記遷移を許可し、(match now)≧(match next)のときは前記遷移を不許可とし、当該マッチ数の比較と、前記任意パターン発生回路に対する前記許可または前記不許可の指示とを、前記一定期間ごとに繰り返す。
【0022】
本発明の他の形態(第8形態)に関わる半導体集積回路は、上記第2形態において、前記デコード制御回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を(match now)とし、非ケアビットの値を次の前記一定期間にまで維持した場合に現ビット配列と次のビット配列との一致ビット数を(match next)としたときに、(match now)<(match next)ではアクティブ状態をとり、(match now)≧(match next)では非アクティブ状態をとるように変化する前記シフトイネーブル信号を、入力される前記データを基に発生し、当該シフトイネーブル信号を前記任意パターン発生回路に出力する。
【0023】
以上の構成によれば、以下の作用を奏する。
上述した第1〜第8形態では、任意パターン発生回路から任意パターンが、同一のビット配列が周期的に出現するように繰り返し発生する。このような局部的には一見ランダムであるが、大局的には周期性を有するパターンは、擬似ランダムパターンの一種である。
【0024】
テストパターン発生回路は、任意パターンからテストパターンを発生する機能と、任意パターン発生回路の一時的な停止を制御する機能を備える。
テストパターンの発生では、任意パターン(k個の非ケアビット)をテストパターン発生回路が、発生の順に入力し、例えば、入力した任意パターンに対応して入力されるデータに基づいて、任意パターン(k個の非ケアビット)をケアビットと組み合わせる。入力されるデータには、ケアビットのkビット内における有無、位置および値を特定するための情報が含まれる。
この組み合わせの仕方としては、例えば第3形態のように、kビット内でケアビットとすべきビットがある場合、そのビット位置の非ケアビットをケアビットの値で修正するために、必要に応じてビット反転を行う。
組み合わせ(修正)後のkビットが、テストパターンの基本単位として、k個のシフトレジスタに1ビットずつ並列に出力される。
以上の動作は、一定期間ごとに繰り返し行われるため、各シフトレジスタに対し、一定期間ごとに1ビットが次々に入力されてテストパターンの入力が行われる。
【0025】
k個のシフトレジスタは、例えば以下のように動作する。
k個のシフトレジスタは、テストパターンの入力後にシフトモードに移り、入力クロックパルスに同期したシフト動作を行う。テストターゲットとなる被テスト回路の入力側にテストパターン内の入力パターンが揃うと、シフト動作を一旦停止して、入力パターンを当該被テスト回路に印加する(テスト開始)。その後、テスト中に、入力パターンを印加した被テスト回路の出力側に、応答パターンの格納領域(第5形態参照)が揃うまで、k個のシフトレジスタは再度シフト動作を行う。そして、テスト終了時には、被テスト回路から応答パターンをシフトレジスタ内に収容する。その後、シフト動作を再度行うなどして後段の回路に応答パターンを移送する。
以後、同様にして、入力パターンを変えながらテストパターンの発生とシフトレジスタの設定を行うキャプチャーモードとシフトモードとが交互に繰り返され、所望の特性測定のメニューが実行される。
【0026】
本発明では、このようなテスト動作において、任意パターン(擬似ランダムパターン)の周期性を、消費電力抑制のために以下のように巧みに利用する。
つまり、任意パターン発生回路は、上述したように任意パターンの発生を一時的に停止可能に構成されているが、このとき入力データにより特定されるケアビットの情報と任意パターン発生の周期性とに基づいて、任意パターンにおけるビット配列の一定期間ごとの遷移を適宜、一時的に停止する。
【0027】
より具体的には、例えば第2および第3形態に示されるように、任意パターン発生回路は、k個の非ケアビットを循環シフト動作するk個のフリップフロップ回路と、配列遷移のためのゲート回路(例えば排他的論理和ゲート回路)とを有する。このような構成は、線形帰還シフトレジスタ(LFSR)と呼ばれる。k個のフリップフロップ回路を有するLFSRは(2k-1)通りのランダムパターンを周期的に発生する。
テストパターン発生回路は、第2形態に示されるように、LFSRに与えるシフトイネーブル信号を制御するためのデコード制御回路を有してよい。この場合、デコード制御回路は、外部からデータを入力して、これをデコードする。テストパターン発生回路は、デコード結果を参照すると、任意パターンの発生を一時的に停止すべきかどうかが判断でき、これをシフトイネーブル信号に反映させる。この判断自体をテストパターン発生回路が行ってもよいし、あるいは、データそのものにシフトイネーブル信号をアクティブから非アクティブにするための情報を持たせてもよい。
【0028】
これにより、任意パターン発生回路が適宜、動作を停止するため、ここでの消費電力が低減する。また、非ケアビットの無駄な遷移がない、または、低減されてテストパターンが発生するため、これを入力してシフト動作するk個のシフトレジスタにおいても無駄な電力消費の発生が防止または抑制される。このことはシフトレジスタがシフト動作を行っている間(シフトモード中)における被テスト回路での無駄な状態遷移をなくし、このことが無駄な電力消費の発生防止または抑制に貢献する。
【0029】
第4形態と第5形態は、以上の第1〜第3形態の動作を前提として、さらに無駄な状態遷移を防止するものである。
【0030】
第4形態では、第3形態におけるビット反転回路の構成に関する。
第4形態は、ビット反転のための排他的論理和(EXOR)ゲート回路の他方入力(反転命令の入力)側に、反転命令を一時的に保持する保持回路を付加したものである。
EXORゲート回路は、一方入力からテストパターンのビットを入力し、出力から、対応するシフトレジスタ側に送るものであるが、その際、反転命令が入力されていると入力ビットを反転して出力する。
【0031】
しかしながら、テストパターン(単位パターン、第5形態参照)のビット長は任意であるため、当該単位パターンの発生時に用いる(2k-1)通りのランダムパターンの倍数に当該ビット長が一致するとは限らない。むしろ一致しない場合がほとんどである。この場合、単位パターンの発生が(2k-1)通りのランダムパターンの途中状態で終了すると、例えば次にシフト動作命令がなされることを契機として、任意パターン発生回路のLFSRは初期値に戻される。よって、次に発生する単位パターンは、(2k-1)通りのランダムパターンにおける最初のパターンに戻って順次、発生したものとなる。単位パターンの最後の非ケアビットの値とLFSRの初期値の値が一致するとは限らないため、一致しない場合は、その分、無駄な遷移が後続の単位パターンを発生する際の先頭ビットで生じる。
第4形態のビット反転回路は、反転命令を保持する保持回路を有するため、あるテストパターンの終了時において、その最後のテストパターンのビットが(2k-1)通りのランダムパターンにおける途中の非ケアビットを用いて発生されたものである場合であっても、後続のテストパターンの先頭ビットは、その終了時のランダムパターンの次のランダムパターンを用いて発生するため、無駄なビット遷移が発生しない。
【0032】
第5形態は、k個のシフトレジスタにおける単位パターンの繋ぎ部分において、非ケアビットが片側nビット連続する場合の手当てに関する。
この場合、上記第4形態と同様な理由からランダムパターンの発生が初期に戻って更新される関係上、先の単位パターンの最後部におけるnビットの値と、後続の単位パターンの先頭部におけるnビットの値が一致するとは限らない。そのために無駄な遷移が後続の単位パターンの先頭部の発生時に生じる。
第5形態によれば、デコード制御回路が、このような事態が生じる所定のシフトレジスタにおいて、最後部のビット値を先頭部まで拡張可能に、所定のシフトレジスタに対しシフト動作の一時的な停止を制御するため、このような無駄なビット遷移が発生しない。
【0033】
以上の第4形態と第5形態のいずれかを適用すれば、より消費電力が低減し、重複適用すれば、1ビットたりとも無駄な論理状態の遷移によって不必要に電力消費が増大しない。
【0034】
本発明の他の形態(第9形態)に関わるテストパターン発生方法は、半導体集積回路内の被テスト回路に対し入力の印加と応答の収集とを複数k個のシフトレジスタを用いて制御するに際し、当該半導体集積回路の内部で発生した任意kビットを、入力したデータに基づいて修正することにより、前記k個のシフトレジスタに1ビットずつ並列に入力すべきkビット列を単位としてテストパターンを発生するテストパターン発生方法であって、前記データを入力し、前記テストパターン内の有効ビットに対応するケアビットの、前記kビット列ごとの有無、位置および値を示す情報を前記データから取得するステップと、同一のビット配列が周期的に出現するように配列を遷移させながら前記任意kビットを繰り返し発生するステップと、発生した前記任意kビットごとに、対応する前記情報に基づいて前記ケアビットが得られるようにビット値を修正して、前記kビット列を繰り返し発生するステップと、を含み、前記任意kビットの発生ステップにおいて、前記任意kビットの周期性とケアビットの前記情報に基づいて、連続する複数のkビット列の発生時に同一の前記任意kビットを利用可能であると予測される場合は、前記任意kビットに対する前記配列の遷移を一時的に停止する。
【発明の効果】
【0035】
以上の半導体集積回路およびテストパターン発生方法では、入力されるデータがケアビットの制御情報のみで、データ量そのものが小さく、また、時間的に圧縮可能であるため、いわゆるBAST手法のデータ削減という利点を踏襲している。その上で、電力消費がテストパターン発生の元となる任意パターン発生時に削減され、この効果が、テストパターンをシフトするシフトレジスタの動作、さらには被テスト回路の動作において無駄な電力発生を防止する効果にまで波及するという大きな利益が得られる。また、半導体集積回路における本発明適用による回路的な負担増は比較的小さい。
【発明を実施するための最良の形態】
【0036】
以下、本発明の実施形態を、図面を参照して説明する。
【0037】
図1は、スキャンチェーン(シフトレジスタ)による被テスト回路に対するテスト入力の印加と応答の取得のための構成を模式的に示す図である。
図1に示すDUT(Device Under Test)としての半導体集積回路(以下、LSIという)1は、CUT(Circuit Under Test)としての被テスト回路10と、複数のスキャンチェーンSCと、複数のスキャンチェーンSCを駆動する回路(不図示)とを同一の半導体基板に形成することで集積化している。スキャンチェーンSCは図1では2個のみ示すが、以下の実施形態では所定数k(k≧2)だけ、スキャンチェーンSCが設けられている。各スキャンチェーンSCは、それぞれ必要数のフリップフロップ回路FFを縦続接続したシフトレジスタである。k個のスキャンチェーンSCは「k個のシフトレジスタ」の一例を構成する。
【0038】
本実施形態における被テスト回路10は論理回路やメモリなど任意の回路であり、回路構成方式や機能に限定はない。図1は、前段回路の結果を次段回路の入力に用いることが可能な一構成例を示すものである。したがって、以下の実施形態における被テスト回路は、図1のように被テスト回路同士がフリップフロップ回路FFを介してシリアルに接続されている場合に限定されない。図1を用いて説明したいことは、1つの任意の被テスト回路10に対するフリップフロップ回路FFの配置である。
【0039】
図1に示す各フリップフロップ回路FFは、特に図示しないが、データ入力、データ出力、クロック入力およびシフトイネーブル信号入力のための各端子を備えている。
各フリップフロップ回路FFにおけるデータ出力端子は次段のフリップフロップ回路FFのデータ入力に接続されている。スキャンチェーンSCを構成する全てのフリップフロップ回路FFにおいて、そのクロック入力端子に、共通のクロック信号がパラレルに印加可能となっている。
【0040】
スキャンチェーンSCは、その一部のフリップフロップ回路FF群が被テスト回路10の入力側に配置され、他の一部のフリップフロップ回路FF群が被テスト回路10の出力側に配置されるように配置配線がされている。図1では、入力側のフリップフロップ回路を符号“FF(in)”により示し、出力側のフリップフロップ回路を符号“FF(out)”によって示す。入力側のフリップフロップ回路FF(in)と出力側のフリップフロップ回路FF(out)との間にも、必要に応じて所定数のフリップフロップ回路FFを配置してよい。
【0041】
図1に示す被テスト回路10の入力側に配置された複数(ここでは2個)のフリップフロップ回路FF(in)に、前段の他の論理回路(被テスト回路に限らない)あるいは外部から入力パターン(テストパターンの一部)が設定される。入力パターンの設定後は、スキャンチェーンSCがシフトモードになり、スキャンチェーンSCを構成する全てのフリップフロップ回路FFが、クロック入力端子にクロックパルスが入力されるたびに、各フリップフロップ回路FFの保持ビットを次段のフリップフロップ回路FFに転送するシフト動作を行う。
【0042】
ここで「テストパターン」は、テスト対象の被テスト回路10に印加すべき入力パターンのビット列を所定の格納領域に収容し、当該入力パターンを被テスト回路10に印加し、当該被テスト回路10が持つ機能を反映してその出力に出現する応答パターンを他の所定の格納領域に収容するものである。そのほか、応答パターンの比較基準となる期待値を当該テストパターンに予め収容してもよい。
このように一の被テスト回路10に対する入力パターンと、その対応する応答パターンの格納領域を少なくとも含む連続したmビット(m:任意数)を、テストパターンの「単位パターン」と呼ぶ。1つの被テスト回路10に対するテストパターンは、mビットの単位パターンを連続してテスト回数以上持つシリアルビット配列を有する。
【0043】
なお、スキャンチェーンSCを構成する各フリップフロップ回路FFは、前段のフリップフロップ回路FFから転送されるビットデータを取り込むデータ入力端子と、データ設定時のデータキャプチャー用のデータ入力端子とを別々に有するスキャンフリップフロップ構成としてよい。
さらに、スキャンチェーンSCを構成する各フリップフロップ回路FFは、スキャンテストのシフト動作中に出力値が固定される機能を備えるデータ出力端子と、スキャンデータ信号の保持ビット値を次段のフリップフロップ回路FFに出力するためのデータ出力端子とを別々に有する構成でもよい。このデータ出力端子を2つ有する構成は、シフト動作時の保持ビット変化を被テスト回路10に伝播させない利点があるが、回路構成が大きくなる不利益もある。以下の実施形態では、後述するように、スキャンデータ信号(テストパターン)自体に、無駄なビット反転がないためデータ伝播は極力抑制されるが、ケアビットの存在に起因したビット反転はあるため、データ出力端子を2つに分けないと、シフト動作時のビット変化の被テスト回路10への伝播を完全に防止できず、伝播漏洩が生じる。よって、この伝播漏洩に起因した被テスト回路10で発生する消費電力の増加と、フリップフロップ回路の規模増大とのトレードオフで、フリップフロップ回路FFで2つのデータ出力端子を有する構成を採用するかを決定するとよい。
【0044】
テスト時の消費電力が増大する原因は、このようにテストパターンをスキャンチェーンSC内でシフト動作させることにより被テスト回路10に伝播するビット変化に起因した被テスト回路内部の状態遷移以外に、スキャンチェーンSC内のビット変化により発生する状態遷移、さらには、テストパターン発生時に生じる回路の状態遷移であることがわかっている。
以下の実施形態では、以上の3つの状態遷移を一括して抑制することによる消費電力削減手法を提案する。より詳細には、スキャン設計を基としたハイブリッドBIST(BAST)手法におけるシフト動作時のスキャンチェーンの遷移を削減するようにテストパターンを発生することで消費電力を削減する手法を提案する。
【0045】
《第1実施形態》
【0046】
本実施形態では、任意パターン発生回路の動作を適宜停止することによりスキャンチェーンの遷移を削減する。この削減のための手法を適用するためにLSI1内部に必要な最小限の基本構成は、以下の4つの回路である。
【0047】
<基本構成>
(1)被テスト回路10(図1参照)。
(2)被テスト回路10に対し、入力パターンの印加と応答の収集とを制御する複数k個のシフトレジスタ(k個のスキャンチェーンSC、図1参照)。
(3)k個の非(ドント)ケアビット(以下、Xビットと表記)からなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路。
(4)入力パターンとしてk個のスキャンチェーンSCに同時に出力されるkビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、任意パターンを上記(3)の任意パターン発生回路から入力し、入力したデータに基づいて、入力した任意パターンのXビットにケアビットを組み合わせて一のkビットを発生し、データおよび任意パターンの入力と、当該入力に基づくkビットの発生とを一定期間ごとに繰り返し、発生したkビットを、順次、k個のスキャンチェーンSCの各々に1ビットずつ並列に出力するテストパターン発生回路。
そして、上記(4)のテストパターン発生回路は、データにより特定されるkビット内におけるケアビットの有無、位置および値と、任意パターン発生回路の周期性とに基づいて、任意パターンにおけるビット配列の一定期間ごとの遷移を一時的に停止可能に、(3)の任意パターン発生回路を制御する。
【0048】
上記(3)の任意パターン発生回路において、LFSR(Linear Feedback Shift Register)で保持パターンをシフトすることによりXビットを供給するための擬似ランダムパターンを発生する構成を採用できる。以下の説明では、この構成を前提として具体的な回路ブロックの構成例と動作を説明する。
【0049】
<LSIの全体構成例>
図2に、本実施形態に関わる半導体集積回路(LSI)の回路ブロック構成を示す。
図2に図解するLSI1は、「任意パターン発生回路」としての擬似ランダムパターン発生器(PRPG:Pseudo-Random Pattern Generator)2と、ビット反転回路(Inverter)3と、k個のスキャンチェーンSC1,SC2,…,SCkと、不定マスク回路(X-masking)4と、MISR回路5と、デコード制御回路(Decoder)6とを有する。
【0050】
スキャンチェーンSC1,SC2,…,SCkの各々は、図2では省略しているが、所定の被テスト回路(例えば、図1に示す被テスト回路10)に近接配置されている。図2は、実際のスキャンチェーンSCの配置形状を問わないで、k本のスキャンチェーンSCの存在を模式的に示すものである。
【0051】
<擬似ランダム(任意)パターン発生>
擬似ランダムパターン発生器2は、k個のXビットの配列を擬似ランダムに遷移させながら並列に出力する回路である。擬似ランダムパターン発生器2として、LFSRを用いることができる。
【0052】
図3は、k=4の場合のLFSR構成を示す擬似ランダムパターン発生器2の回路図である。以下、単に「LFSR」というときは、LFSR構成の擬似ランダムパターン発生器2を指す。
図3に示す擬似ランダムパターン発生器2(LFSR)は、シリアル接続されたk(ここでは4)個のフリップフロップ回路FF1,FF2,FF3,FF4と、1つの排他的論理和ゲート回路(以下、EXOR回路という)21と、を有する。EXOR回路21は、フリップフロップ回路FF1とFF4の出力の排他的論理和を演算して、その演算結果をフリップフロップ回路FF1に入力する。そのため、EXOR回路21は、「非ケアビットの配列を周期的に遷移させるためのゲート回路」として機能する。
【0053】
図4に、図3に示すLFSR(擬似ランダムパターン発生器2)の4つのタップTP1,TP2,TP3,TP4に出現するXビット列{X,X,X,X}の出現パターンを示す。Xビット列{X,X,X,X}が「任意パターン」に該当するため、以下、この名称を用いる。
図4の図表において、左端の数字の順番で任意パターン(Xビット列)が出現する。この図表の上端に各Xビット値を保持するフリップフロップ回路の符号を示す。
このLFSR構成は、番号1〜15に示す(2k-1)通りの任意パターンを周期的に発生させる。ここで現在の任意パターンを{X,X,X,X}now、次に出現する任意パターンを{X,X,X,X}nextでそれぞれ表すと、次に出現する任意パターンを{X,X,X,X}nextは、現在の任意パターンを{X,X,X,X}nowが得られるタップTP1,TP2,TP3,TP4を1タップだけ左にずらした、タップTP0,TP1,TP2,TP3に出現している。このように、LFSRでは発生するパターンに周期性があるため、観測するタップをシフトするだけで将来の出現パターンが予測できる。
【0054】
<ビット反転>
図5に、ビット反転回路3のビット単位の基本構成を示す。ビット反転回路3は、図示例の構成を対応ビットごとにk個並べて実現される。
擬似ランダムパターン発生器(PRPG)2から出力されるXビットは、図5に図解するEXOR回路31の一方入力に与えられる。EXOR回路31の他方入力には、セット入力とリセット入力で出力を“1”と“0”で切り替える回路32が接続されている。この回路32は、デコード制御回路6からの反転命令(Invert)をセット入力で受けると“1”をEXOR回路31の他方入力に出力し、デコード制御回路6からリセット命令(Reset)をリセット入力で受けると“0”をEXOR回路31の他方入力に出力する。
【0055】
図5に示す回路は、図1に示す他の回路と同一周波数のクロック信号で動作が制御されるが、回路32自体には命令保持機能はない。テストパターンをスキャンチェーンSCに出力するテストパターン設定動作時には、デコード制御回路6から回路32に反転命令(Invert)が与えられる度に、図5に示す回路がビット反転状態をとる。一方、テストパターンの出力終了とともにデコード制御回路6からリセット命令(Reset)が出力されると、図5に示す回路がビット反転の機能を停止する。
【0056】
デコード制御回路6は、この反転命令(Invert)の出力を、以下のように制御する。
図1に示すように、デコード制御回路6には外部のテスタ(自動テスト装置:ATE)から、図1の動作周波数を規定するクロック信号に同期して必要な情報を含む所定ビットのデータが供給される。
デコード制御回路6は、このデータを、クロック信号に規定される周期的な所定タイミングでキャプチャーし、そのたびに、データをデコードする。このデコード結果は、一定期間ごとに擬似ランダムパターン発生器2から順次出力されるkビットの任意パターン{X,X,X,X}nowそれぞれに対応して、ケアビットの有無、パターン内位置および値(“0”または“1”)を示す。よって、デコード制御回路6は、対応する任意パターン{X,X,X,X}nowが図5に示すEXOR回路31に与えられるタイミングに合わせて、反転命令(Invert)の出力を制御する。
その結果、任意パターン{X,X,X,X}nowの所定ビットが、必要に応じて、“0”または“1”のケアビットに変化する。このときXビットとケアビットの値が同じときはビット反転を行わないで、必要な場合のみビット反転がされる。
【0057】
以上の動作がビットごとにパラレルで施されるため、ビット反転回路3を通過した任意パターンは、ケアビットに応じた修正がなされ、これによりテストパターンの「kビット」が、例えばクロックパルスごとに順次発生する。発生したkビットは、1ビットずつ対応するスキャンチェーンSCの、例えば最後尾から入力され、このテストパターン入力がクロックパルスごとに繰り返される。
【0058】
<測定の実行>
このようなテストパターンの入力時のモードを「キャプチャーモード」と呼ぶ。
キャプチャーモード時には、全てのスキャンチェーンSCのフリップフロップ回路FFに与えられるシフトイネーブル信号は、「非アクティブ」となっている。
1回の測定に必要なパターン(単位パターン)が、k個のスキャンチェーンSCに入力され、単位パターンに含まれる入力パターンが被テスト回路10に入力されると、上記シフトイネーブル信号が「非アクティブ」から「アクティブ」にレベル変化し、これにより「シフトモード」が開始する。「シフトモード」では、被テスト回路10の動作(測定)中に、当該短パターンの応答パターンの格納領域が被テスト回路10の出力側に位置するような単位パターンの移送を、スキャンチェーンSCがシフト動作することで実行する。
その後、再び「キャプチャーモード」となるとスキャンチェーンSCがシフト動作を停止し、被テスト回路10の応答パターンを格納領域に一旦取り込み、次のクロックパルスの入力で後段の回路(図1に示す不定マスク回路4)に排出する。
【0059】
このようにして「キャプチャーモード」と「シフトモード」を繰り返すことにより1回の測定が行われる。複数の特性を測定する場合は、入力パターンを適宜変化させることにより、以上の動作を繰り返す。
「キャプチャーモード」と「シフトモード」を切り替える、シフトイネーブル信号のレベル変化は、図1に示すデコード制御回路6から制御される。
【0060】
<データ圧縮>
測定により被テスト回路10から得られる出力の検証を、LSI内で行ってもよいし、出力を圧縮して外部のテスタに送ることによって検証してもよい。いずれにしてもテスタに送るデータ量を削減する必要からLSI1はMISR回路5を内蔵する(図1参照)。
MISR回路5の構成は特に示さないが、LFSR構成を用いてダイナミックコンパクション(dynamic compaction)と呼ばれる圧縮を行う手法が一般的に用いられている。この圧縮により、測定結果のビット数が減り「シグニチャー」とよばれる圧縮データがMISR回路5から出力される。
【0061】
<不定マスク処理>
MISR回路5は、その構成上、一度でも不定状態を取り込むとMISR内の全てのレジスタが不定状態となって、試験不能になってしまうことがある。
この不都合を防止するため、k個のスキャンチェーンSCから出力される応答パターンに対し、MISR回路5に入力する前に不定マスク回路4を通して不定マスク処理(Xマスキング処理)を行い、MISR回路5内のレジスタが不定状態となる任意ビット(Xビット)を、不定マスク回路4で所定の値に論理確定する。論理確定する必要があるXビットは、被テスト回路10のテストに無関係なビットであり、被テスト回路10の機能とその入力パターンから応答パターン内のビット位置が予め分かっている。
このマスキング処理を行うべき応答パターン内のビット位置の情報は、デコード制御回路6が入力するデータに含まれるため、デコード制御回路6が、このデータをデコードし、そのデコード結果に応じて不定マスク回路4を制御する。
【0062】
図6に、不定マスク回路4のビット単位の基本構成を示す。不定マスク回路4は、図示例の構成を対応ビットごとにk個並べて実現される。
k個のスキャンチェーンSCから出力される応答パターンの各ビットは、図6に図解するOR回路41の一方入力に与えられる。OR回路41の他方入力には、セット入力とリセット入力で出力を“1”と“0”で切り替える回路42が接続されている。この回路42は、図5に示す回路32と同様な機能を有するが、セット入力に印加される命令がXマスク命令(X-Mask)である。
Xマスク命令(X-Mask)は、デコード制御回路6(図1)で、入力データのデコード結果から発生される。回路42は、デコード制御回路6からのXマスク命令(X-Mask)をセット入力で受けると“1”をOR回路41の他方入力に出力し、デコード制御回路6からリセット命令(Reset)をリセット入力で受けると“0”をOR回路41の他方入力に出力する。
このため、リセット命令(Reset)の入力状態でOR回路41を通過する応答ビットは、そのままMISR回路5に出力され、Xマスク命令(X-Mask)の入力状態でOR回路41を通過する応答ビットは、値が“1”に固定されてXマスクキング処理が施された後、MISR回路5に出力される。
【0063】
図6に示す回路は、図1に示す他の回路と同一周波数のクロック信号で動作が制御され、デコード制御回路6からの制御信号が、リセット命令(Reset)からXマスク命令(X-Mask)へ切り替えられるたびに、Xマスクキング処理が実行される。Xマスクキング処理後は、リセット命令(Reset)の入力状態に自動復帰する。
以上のようにして不定マスク回路4で適宜、Xマスキング処理を行い、続くMISR回路5で圧縮された応答データは、LSI1からテスタ(ATE)に送られる。
【0064】
<テストパターン発生方法>
以上の構成とその動作を前提として、本実施形態の特徴である、電力削減のためのテストパターン発生方法について説明する。
BAST手法ではLFSR(擬似ランダムパターン発生器2)から出力される任意パターン{X,X,X,X}nowは、たとえば1クロックパルスの印加ごとに変化する。このLFSRの出力変化の最小単位である一定期間を以下、「タイムフレーム」と呼ぶ。
タイムフレームごとに変化するLFSRの1つのXビットを、対応するスキャンチェーンSCに印加すると、任意パターンのランダム性が高いほどXビットの値を観測すると余分な遷移が多く発生している。本実施形態では、以下のアルゴリズムに従って適宜、LFSRのシフト動作を停止し、複数のタイムフレームにおいて同一の値をスキャンチェーンに入力することで、スキャンチェーンを構成するレジスタの遷移数を削減する。
【0065】
本手法は、以下のステップを少なくとも含む。
【0066】
[ステップST1]:データを入力し、テストパターン内の有効ビットに対応するケアビットの、kビット列ごとの有無、位置および値を示す情報を前記データから取得するステップ。
具体的には、図1に示すデコード制御回路6が、ATEから出力されるケアビットに関するデータを入力し、デコードする。このケアビットに関するデータをデコードした結果、タイムフレームごとのk(以下、k=4で説明)ビットの任意パターン{X,X,X,X}now内で、ビット反転にすべきケアビットの情報が判定できる。ビット反転情報は反転命令(Invert)を示す「反転フラグ」としてデコード制御回路6から、ビット反転回路3に与えられる。
【0067】
[ステップST2]:同一のビット配列が周期的に出現するように配列を遷移させながら任意kビットを繰り返し発生するステップ。
具体的には、<擬似ランダム(任意)パターン発生>で既に説明したように、図3に示すLFSRが、任意kビット、すなわち任意パターン{X,X,X,X}nowを、図4に示すようにビット配列のパターンが、パターン番号の順に、かつ、循環的に発生する。
【0068】
[ステップST3]:発生した任意kビット(任意パターン{X,X,X,X}now)ごとに、ステップST1の情報に基づいてケアビットが得られるようにビット値を修正して、kビット列(単位パターン)を繰り返し発生する。
具体的には、<ビット反転>で既に説明したように、図5に示すビット反転回路3が、ステップST3で得られたビット反転の情報、すなわち反転フラグに基づいてLFSRから出力される任意パターン{X,X,X,X}nowをビットごとに、必要に応じて反転することによって単位パターンに変換する。
【0069】
以上の3つのステップにおいて、デコード制御回路6は、現在の任意パターン{X,X,X,X}nowと、次のタイムフレームで発生される任意パターン{X,X,X,X}nextとを常時監視し、また反転フラグの情報も有している。このため、現在のタイムフレームから次のタイムフレームへの移行時に、任意パターンのビットごとに、現在のXビットの値(“0”または“1”)を維持すべきかを知ることができる。
よって、デコード制御回路6により擬似ランダムパターン発生器2を構成するLFSRの一時的な動作停止を制御可能である。
なお、このLFSRの一時停止の制御情報を入力データに含ませ、デコード制御回路6は、単にデータをデコードして、それに応じてLFSRのシフトイネーブル信号を発生、変化させるだけの役割をもつようにしてもよい。クロック信号の周波数が高い場合は、このようにデコード制御回路6の機能を簡素化しないと制御できないため、このような制御が望ましい。
このように、本実施形態では、「任意kビットの発生ステップにおいて、任意kビットの周期性とケアビットの情報に基づいて、連続する複数のkビット列の発生時に同一の任意kビットを利用可能であると予測される場合は、任意kビットに対する配列の遷移を一時的に停止する」という特徴がある。
【0070】
以下、より具体的な例を、図7を用いて説明する。
ATEでケアビットとXビットと全ての情報を発生したものを、一般には「ATPGパターン」と称する。
これに対し、デコード制御回路6に入力されるケアビットのデータは、LFSRの規則性と併用するとケアビットとXビットとの組み合わせパターン(テストパターン)を確定できるため、「ATPGパターン」と同じ役目があり、データ量が圧縮されて必要最小現のデータであるため、特に「ディターミニスティックなデータ」と称される。
つまり、ディターミニスティックなデータが示すパターンは広義の「ATPGパターン」の一種である。以下、ケアビットとXビットとの組み合わせパターンを単に「ATPGパターン」と呼ぶ。
【0071】
図7(A)に、入力パターンのケアビットをXビットと組み合わせて示すATPGパターンを5タイムフレーム(TF1〜TF5)分だけ模式的に示す。ATPGパターンが、実質的なLFSRの入力パターンとなる。
図7(B)に、図7(A)に対応した5タイムフレーム分の、LFSR出力パターンを模式的に示す。
なお、図7では、比較しやすいようにビット反転を行わないで済むケアビットを敢えて用いている。このため、図7(B)に示すLFSR出力パターンが、そのまま、4本のスキャンチェーンSC1〜SC4にビットごとに出力されるテストパターンとなる。以下、図7(B)に示すパターンを、場合によって、LFSR出力パターン、または、テストパターンと呼ぶ。
【0072】
ここで図3に示すLFSRは{1,1,1,1}に初期化される。
タイムフレームTF1において、LFSRに保持された初期化パターンは{1,1,1,1}、ATPGパターンは{X,X,X,X}(図7(A)のTF1の列)である。
タイムフレームTF1において、初期化パターン{1,1,1,1}とATPGパターン{X,X,X,X}とを比較する。比較の結果、一致するビットは存在しないため、現フレーム内の現在のマッチ数(以下、単に一致数と呼ぶ)は、(match now)=0である。
また、図4から次のタイムフレームTF2のLFSR出力パターンを{0,1,1,1}と予測でき、この{0,1,1,1}と、現在のタイムフレームTF1のATPGパターン{X,X,X,X}とを比較する。比較の結果、一致するビットは存在しないため、タイムフレームTF1,TF2間の予測マッチ数(match next)=0である。
(match now)=(match next)となることから、LFSRのシフト動作を1回(1タイムフレーム分)停止する。そのため、現在のタイムフレームTF1において、初期化パターン{1,1,1,1}がそのまま、テストパターンとしてLFSRから出力される(図7(B)のTF1の列)。また、次のタイムフレームTF2へ移行後のLFSRパターン(LFSR保持パターン)も{1,1,1,1}のままである。
【0073】
タイムフレームTF2において、LFSR保持パターン{1,1,1,1}とATPGパターン{1,X,X,1}(図7(A)のTF2の列)とを比較する。比較の結果、スキャンチェーンSC0に対応するビットと、スキャンチェーンSC3に対応するビットとで両パターンが一致するため、現在のタイムフレームTF2内の一致数(match now)=2となる。
また、図4から次のタイムフレームTF3のLFSR出力パターンを{1,0,1,1}と予測でき、この{1,0,1,1}と、現在のタイムフレームTF2のATPGパターン{1,X,X,1}とを比較する。比較の結果、スキャンチェーンSC0に対応するビットと、スキャンチェーンSC3に対応するビットで両パターンが一致するため、タイムフレームTF2,TF3間の予測マッチ数(match next)=2となる。
(match now)=(match next)となることから、LFSRのシフト動作をさらに1回(1タイムフレーム分)停止する。そのため、タイムフレームTF2におけるLFSR保持パターン{1,1,1,1}が、そのまま、テストパターンとしてLFSRから出力され(図7(B)のTF2の列)、さらに次のタイムフレームTF3への移行後もLFSR保持パターンが{1,1,1,1}のままである。
【0074】
タイムフレームTF3において、LFSR保持パターン{1,1,1,1}とATPGパターン{0,1,X,X}(図7(A)のTF3の列)とを比較する。比較の結果、スキャンチェーンSC1に対応するビットのみで両パターンが一致するため、現在のタイムフレームTF3内の一致数(match now)=1となる。
また、図4から次のタイムフレームTF4のLFSR出力パターンを{0,1,0,1}と予測でき、この{0,1,0,1}と、現在のタイムフレームTF3のATPGパターン{0,1,X,X}とを比較する。比較の結果、スキャンチェーンSC0,SC1の2つのビットで両パターンが一致するため、タイムフレームTF3,TF4間の予測マッチ数(match next)=2となる。
ここで始めて(match now)<(match next)となることから、LFSRのシフト動作を1回(1タイムフレーム分)行う。そのため、タイムフレームTF3におけるLFSR保持パターン{1,1,1,1}が、次のLFSRシフトパターン{0,1,1,1}に変化し、これがテストパターンとしてLFSRから出力され(図7(B)のTF3の列)、次のタイムフレームTF4への移行後もLFSR保持パターンも{0,1,1,1}となる。
【0075】
タイムフレームTF4において、LFSR保持パターン{0,1,1,1}とATPGパターン{X,X,1,1}(図7(A)のTF4の列)とを比較する。比較の結果、スキャンチェーンSC2,SC3に対応する2つのビットで両パターンが一致するため、現在のタイムフレームTF4内の一致数(match now)=2となる。
また、図4から次のタイムフレームTF5のLFSR出力パターンを{1,0,1,0}と予測でき、この{1,0,1,0}と、現在のタイムフレームTF4のATPGパターン{X,X,1,1}とを比較する。比較の結果、スキャンチェーンSC2に対応するビットのみで両パターンが一致するため、タイムフレームTF4,TF5間の予測マッチ数(match next)=1となる。
ここで再び(match now)>(match next)となることから、LFSRのシフト動作を1回(1タイムフレーム分)停止する。そのため、タイムフレームTF4におけるLFSR保持パターン{0,1,1,1}が、そのまま、テストパターンとしてLFSRから出力され(図7(B)のTF4の列)、さらに次のタイムフレームTF5への移行後もLFSR保持パターンが{0,1,1,1}のままである。
【0076】
タイムフレームTF5において、LFSR保持パターン{0,1,1,1}とATPGパターン{X,X,X,X}(図7(A)のTF5の列)とを比較する。比較の結果、両パターンで一致するビットがないため、現在のタイムフレームTF5内の一致数(match now)=0となる。
また、図4から次のタイムフレームTF6のLFSR出力パターンを{1,1,0,1}と予測でき、この{1,1,0,1}と、現在のタイムフレームTF5のATPGパターン{X,X,X,X}とを比較する。比較の結果、両パターンで一致するビットがないため、タイムフレームTF5,TF6間の予測マッチ数(match next)=0となる。
(match now)=(match next)となることから、LFSRのシフト動作をさらに1回(1タイムフレーム分)停止する。そのため、タイムフレームTF5におけるLFSR保持パターン{0,1,1,1}が、そのまま、テストパターンとしてLFSRから出力され(図7(B)のTF5の列)、さらに次のタイムフレームTF6(不図示)への移行後もLFSR保持パターンが{0,1,1,1}のままである。
【0077】
以後、同様にして、LFSRの動作と停止がタイムフレームごとに制御されて、テストパターンが確定してゆく。
なお、ビット反転による修正動作が必要な場合は、LFSR出力パターンの必要な箇所が、図5に示すビット反転回路3によりビット反転されるため、図7(A)に示すケアビットがテストパターンに反映される。
【0078】
図7(B)に示すテストパターンは、ビット反転箇所がスキャンチェーンSC1におけるタイムフレームTF2からタイムフレームTF3への移行時のみの1箇所である。ビット反転を行うと、次にビット反転が必要になるまでLFSR停止動作により同じ値が維持される。よって、ビット遷移数が最小限に削減される。
ビット遷移数の削減により、LFSRの消費電力が低減される。また、スキャンチェーンによりシフト動作におけるビット遷移数も必要最小限となるため、スキャンチェーンの消費電力も低減される。
一方、被テスト回路は、ケアビットとしての所定のビット値が所定のタイミングで与えられると入力データとして十分である。それ以外のビット(Xビット)の箇所での被テスト回路の動作は無駄な電力消費を生じるだけである。本実施形態では、Xビット箇所における被テスト回路の入力遷移を最小限にできるため、被テスト回路においても無駄な消費電力が削減される。
以上より、全体として大幅な消費電力の削減が図られる。
【0079】
図8(A)に、デコード制御回路6によるデコードの結果得られる、2ビットの命令フラグ(instruction flag)と命令内容とを図表にして示す。また、図8(B)に、命令フラグ“00”の詳細を示す。
命令フラグは、上位ビットの反転命令(Invert)のフラグ(反転フラグ)と、下位ビットのXマスク命令(X-Mask)のフラグ(マスクフラグ)から構成される。
ここで反転フラグとマスクフラグは“0で非アクティブ、“1”でアクティブである。反転フラグが“1”は、対象ビットがケアビットで、かつ、ビット反転を行う必要がある場合に対応し、反転フラグが“0”は、対象ビットがケアビットで、かつ、ビット反転が不要な場合と、対象ビットがXビットの場合に対応する。一方、マスクフラグはテスト対象の被テスト回路10と入力パターンとによって予め決められた応答のXビットに対応して決められている。入力パターンと応答パターンは単位パターン内の別領域に格納されるため、反転とXマスキングとが同じビットに対して同時に行われることは、ここではない。よって、命令フラグ“11”は使用されない。
【0080】
命令フラグ“00”は、リセットまたはスキャンシフトに対応する。ここでいう「スキャンシフト」は、テストパターン発生時にタイムフレームを順次送るシフト動作と、スキャンチェーンSC内のシフト動作の両方を含む概念である。よって、テストモードとキャプチャーモードの両方で「スキャンシフト」が実行される。
命令フラグが“00”のときに、図8に示していないリセット命令(Reset)がデコード制御回路6から与えられた場合、図5,図6示すビット反転回路3,不定マスク回路4がリセット状態となる。
【0081】
命令フラグが“00”のときは、ビット値の操作を行わないため、kビット列内のビット指定のためのアドレス(Addr)は参照されない。命令フラグが“10”のときのアドレス(Addr)が示すビットの値がビット反転回路3によって反転される。また、命令フラグが“01”のときのアドレス(Addr)が示すビットの値が不定マスク回路4によって“1”に固定される。
本実施形態では、命令フラグが“00”のときのアドレス(Addr)を利用して、図示のようにLFSRを停止してスキャンシフトするか、LFSRの配列を遷移してスキャンシフトするかを決めている。このため、LFSRの一時的な停止制御の機能を付加することによる、制御信号の追加は不要である。
なお、以上の命令の実装例は一例であり、これに限定されない。
【0082】
《第2実施形態》
本実施形態は、第1実施形態に追加して適用可能な実施形態であり、ビット反転時の命令保持に関する。
上記第1実施形態において、テストパターンを構成する単位パターンのビット長任意であるため、当該単位パターンの発生時に用いる(2k-1)通りのランダムパターン(任意パターン)の倍数に当該ビット長が一致するとは限らない。むしろ一致しない場合がほとんどである。この場合、単位パターンの発生が(2k-1)通りのランダムパターンの途中状態で終了すると、例えば次にシフト動作命令がなされることを契機として、任意パターン発生回路のLFSRは初期値、例えば{1,1,1,1}に戻される。よって、次に発生する単位パターンは、(2k-1)通りのランダムパターンにおける最初のパターン{1,1,1,1}から順次、発生したものとなる。単位パターンの最後のXビットの値とLFSRの初期値の値が一致するとは限らないため、一致しない場合は、その分、無駄な遷移が後続の単位パターンを発生する際の先頭ビットで生じる。
【0083】
図9に、この単位パターンのつなぎ目で発生する無駄な遷移を防止するために、図3に示す回路と置き換え可能なビット反転回路3Aを示す。また、図10に、本実施形態におけるATPGパターンとテストパターンを示す。
図9に図解するビット反転回路3Aは、図3に示すビット反転回路3において、EXOR回路31の他方入力と、回路32の出力との間に「保持回路」としてのフリップフロップ回路33を設けている。
【0084】
図10ではケアビットを丸印で囲んでいる。例えばスキャンチェーンSC1のタイムフレームTF1のビットに着目すると、このビットはケアビットであり、その値は“1”である。このビットで単位パターンが終了すると仮定する。ここでなんら対策を講じないと、次のタイムフレームTF2は全てXビットであるため、スキャンチェーンSC1の現在の値“0”が初期値“1”に戻されてしまう。
そこで、TFSRの初期化を行わないで、かつ、図9に示す回路構成によって1クロックパルスだけ命令を保持するフリップフロップ回路33を設けている。この回路の作用により、後続の単位フレームにおける先頭ビットがタイムフレームTF2で処理される場合も、値“0”が維持される。なお、次のタイムフレームTF3はケアビットであるため、反転が行われている。
【0085】
このように、本実施形態では単位フレームの境界でリセット動作がかかるのを防止して無駄なビット値の遷移を防止できるという利点がある。
【0086】
《第3実施形態》
本実施形態は、k個のスキャンチェーンSCにおけるシフト動作時に、単位フレームが切り替わる箇所で無駄な状態遷移を防止するものである。なお、本実施形態も、第1実施形態に追加して適用可能な実施形態である。
【0087】
図11は、第3実施形態における処理が適用される場合のテストパターンを説明するための図である。
図11は、1つのテストパターン内で、m番目の単位パターンUP(m)と、これに続く(m+1)番目の単位パターンUP(m+1)とを示している。この2つの単位パターンは実際にはシリアルに連続しているが、ここでは単位パターンUP(m)の最後部のnビットと、単位パターンUP(m+1)の先頭部のnビットが共にXビットであるため、このnビット同士を重ねて示している。
このような条件の場合、各単位パターンのnビット内ではLFSRの停止制御により同じビット値が連続するが、単位パターンが異なると、LFSRが初期化されるためnビット同士でみると値が異なることがある。その場合、1回の無駄なビット遷移が生じる。
本実施形態では、このようなビット遷移の防止を、空いた領域の命令追加によって実現する。
【0088】
図12に、命令の実装例を示す。
この例では、図8(A)では未使用であった命令フラグが“11”の領域を利用して、このフラグがたったときにXビットを維持するように制御する。この制御は、例えば、図5に示す回路において、命令フラグが“11”の場合、回路32に入力されるリセット命令(Reset)を1クロックパルスだけ無効化するように回路変更するなどして実現できる。
【0089】
図13は、第3実施形態で余分なビット遷移の防止を行ったときのビット列推移を示す図である。
ここでスキャンチェーンSC3とSC4について説明する。
スキャンチェーンSC3では、図13(B)に示す先の単位パターンにおける最後部の1ビットと、図3(A)に示す後の単位パターンにおける先頭部の1ビットがXビットで重複する。この場合、ビット遷移を1クロックパルスだけ防止する。
よって、最初のクロックパルスが与えられると、実際にはビット遷移を行わないで、図示の状態における後の単位ユニットのA13ビット(“X”)が、先の単位ユニットのB33ビット(“X”)に移送されたことが済んだものと仮定する。この仮定が成り立つのは、両ビットが同じ値“X”であるためビット遷移を実際には行う必要がないからである。
次のクロックパルスの印加で、実際にビット遷移を行うため、図示の状態における後の単位ユニットのA23ビット(“X”)が、先の単位ユニットのB33ビットに実際に移送される。さらに次のクロックパルスの印加によるビット遷移により、A33ビット(“1”)がB33ビットに移送される。
つまり、ビット遷移を1回省略しても、省略しない場合と結果は同じとなる。
【0090】
スキャンチェーンSC4では、図13(B)に示す先の単位パターンにおける最後部の2ビットと、図3(A)に示す後の単位パターンにおける先頭部の2ビットがXビットで重複する。この場合、ビット遷移を2クロックパルスだけ防止する。
よって、最初のクロックパルスが与えられると、実際にはビット遷移を行わないで、図示の状態における後の単位ユニットのA14ビット(“X”)が、先の単位ユニットのB34ビット(“X”)に移送されたことが済んだものと仮定し、さらに、B34ビットの“X”がB24ビット(“X”)に移送され、B24ビットの値“X”がB14ビット(“X”)に移送されたものと仮定する。これらは同じ値“X”であるためビット遷移をする必要がないからである。
次のクロックパルスの印加でも、実際にビット遷移を行わないで、図示の状態における後の単位ユニットのA24ビット(“X”)が、先の単位ユニットのB3ビットに移送され、A14ビット(“X”)がB24ビット(“X”)に移送されたことが済んだものと過程する。
そして、次のクロックパルスの印加で、実際にビット遷移を行うため、図示の状態における後の単位ユニットのA34ビット(“0”)が先の単位ユニットのA34ビットに移送される。
つまり、ビット遷移を2回省略しても、省略しない場合と結果は同じとなる。
【0091】
本実施形態によれば、特別な制御信号の追加なしで、さらにビット遷移を削減し、電力を抑えることができる。
なお、本実施形態は第2実施形態との重複適用も可能であり、また、単独でも実施可能である。
低消費電力化の効果としては第1実施形態のLFSRの停止制御が大きいが、LFSRの停止制御を行わずにXビットが連続する場合、LFSRからの任意パターンの周期性に基づきつぎのビットがXビットであるか、ケアビットであるかを判断し、次のビットがケアビットとなるまでXビットの値の維持を行うことによっても、同じ効果が得られる。ここで「判断し」とあるがデコード制御回路6が実際に判断することなく、入力データに判断結果を予め反映させてデコード制御回路6は、単に入力データをデコードして、リセット命令の出力制御等を実行するだけでもよい。
【0092】
以上の、第1から第3実施形態によれば、以下の利益が得られる。
第1に、既に述べたことであるが、従来のハイブリッドBIST(BAST)手法より大幅に低消費電力が図られる。
第2に、特殊なATPGパターンを必要としないことが上げられる。ここでテスタからLSI1に入力されるデータは、単に、ケアビットの情報であるため、この情報発生のために特殊なATPGパターン生成のためのアルゴリズムは不要である。
第3に、テストデータ発生後の回路変更を必要としない。つまり、スキャンチェーンSCより前段のテストデータ発生時で回路を多少変更するだけで本発明が適用できる。とくに、遷移の停止等は、テスタからの制御命令列の一部として指示されることから、デコード制御回路6の制御命令を発生する回路やプログラムの変更で対応できる。よって、従来のハイブリッドBIST(BAST)手法に対する回路オーバヘッドが小さい。
第4に、遅延の要因となる付加回路を必要としない。第2実施形態では、命令の遅延であるためテストデータそのものは遅延しない。
【図面の簡単な説明】
【0093】
【図1】本発明の実施形態の前提となる、スキャン設計に基づくテストの概念を説明する図である。
【図2】本発明の実施形態に関わるLSIの回路ブロック構成図である。
【図3】本発明の実施形態に関わる任意パターン発生回路(LFSR構成)をk=4の場合で示す回路図である。
【図4】本発明の実施形態に関わる任意パターン発生回路からの出現パターンの一覧を示す図表である。
【図5】本発明の実施形態に関わるビット反転回路の回路図である。
【図6】本発明の実施形態に関わる不定マスク回路の回路図である。
【図7】本発明の実施形態に関わるLFSRの一時停止制御を行ったときのビット列推移を示す図である。
【図8】第1実施形態の命令実装例を示す図表である。
【図9】第2実施形態に関わるビット反転回路の回路図である。
【図10】第2実施形態で命令保持を行ったときのビット列推移を示す図である。
【図11】第3実施形態におけるビット遷移防止技術が適用可能なテストパターンの説明図である。
【図12】第3実施形態における命令の実装例を示す図表である。
【図13】第3実施形態でビット遷移防止を行ったときのビット列推移を示す図である。
【符号の説明】
【0094】
1…LSI、2…擬似ランダムパターン発生器(任意パターン発生回路)、3,3A…ビット反転回路、4…不定マスク回路、5…MISR回路、6…デコード制御回路、21,31…EXOR回路、33…フリップフロップ回路(保持回路)、FF…フリップフロップ回路、SC…スキャンチェーン(シフトレジスタ)、TF…タイムフレーム
【特許請求の範囲】
【請求項1】
被テスト回路と、
前記被テスト回路に対し、入力パターンの印加と応答の収集とを制御する複数k個のシフトレジスタと、
k個の非ケアビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路と、
前記入力パターンとして前記k個のシフトレジスタに同時に出力されるkビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、前記任意パターンを前記任意パターン発生回路から入力し、入力した前記データに基づいて、入力した前記任意パターンの前記非ケアビットに前記ケアビットを組み合わせて一の前記kビットを発生し、前記データおよび前記任意パターンの入力と、当該入力に基づく前記kビットの発生とを一定期間ごとに繰り返し、発生したkビットを、順次、前記k個のシフトレジスタの各々に1ビットずつ並列に出力するテストパターン発生回路と、
を有し、
前記テストパターン発生回路は、前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、前記任意パターンにおける前記ビット配列の前記一定期間ごとの遷移を一時的に停止可能に、前記任意パターン発生回路を制御する
半導体集積回路。
【請求項2】
前記任意パターン発生回路は、
与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、
前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、
前記テストパターン発生回路は、
外部から入力される前記データをデコードし、デコード結果を参照すると、前記任意パターン発生回路の循環シフト動作を所定期間だけ停止することが可能な場合に、前記k個のフリップフロップ回路に与えるシフトイネーブル信号を前記所定期間だけ非アクティブで維持するデコード制御回路を、
有する
請求項1に記載の半導体集積回路。
【請求項3】
前記任意パターン発生回路は、
与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、
前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、
前記テストパターン発生回路は、
外部から入力される前記データをデコードし、当該テストパターン発生回路から出力すべき前記kビット内における前記ケアビットの有無、位置および値を特定するデコード制御回路と、
前記k個のフリップフロップ回路の各出力から得られる前記k個の非ケアビットを入力し、前記デコードの結果に基づいて、入力した各非ケアビットの値が前記特定されたケアビットの値と異なるときは、当該非ケアビットの値をビット反転するビット反転回路と、
を有する
請求項1に記載の半導体集積回路。
【請求項4】
前記ビット反転回路は、
前記任意パターン発生回路から出力される前記kビットの対応する1ビットを一方の入力端子からそれぞれ入力するk個の排他的論理和ゲート回路と、
前記排他的論理和ゲート回路ごとに1つ設けられて、対応する排他的論理和ゲート回路の他の入力端子に接続され、前記デコード制御回路から与えられる反転命令を一時的に保持するk個の保持回路と、
を有する請求項3に記載の半導体集積回路。
【請求項5】
前記k個のシフトレジスタに1ビットずつ並列に入力されるk個のテストパターンの各々が、前記入力パターンの格納領域と、当該入力パターンの印加により当該被テスト回路から得られる応答パターンの格納領域とをそれぞれ含み、互いに連続した複数の単位パターンを含んで構成され、
前記デコード制御回路は、当該デコード制御回路に入力される前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、一の前記単位パターンの時系列順位における最後部で連続するn(n≧1)ビットと、当該最後部に続く他の前記単位パターンの時系列順位における先頭部で連続するnビットとが全て前記非ケアビットであり、かつ、前記任意パターン発生回路による前記ビット配列の遷移の一時的な停止により前記最後部と前記先頭部はそれぞれ固有のビット値で非ケアビットを連続して固定しているが、当該固定されたビット値が前記最後部と前記先頭部で異なることが所定のシフトレジスタで特定されるときは、前記最後部の固定ビット値を前記先頭部まで拡張可能に、前記所定のシフトレジスタに対しシフト動作の一時的な停止を制御する
請求項2に記載の半導体集積回路。
【請求項6】
前記k個のシフトレジスタおよび前記デコード制御回路は、前記シフト動作の一時的な停止を、前記k個のシフトレジスタの各々で独立に制御可能に構成されている
請求項5に記載の半導体集積回路。
【請求項7】
前記任意パターン発生回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を示す現マッチ数(match now)を、非ケアビットの値を次の前記一定期間にまで維持した場合に前記データおよび前記任意パターン発生回路の周期性から予測される次のビット配列との一致ビット数を示す予測マッチ数(match next)と比較し、当該比較の結果、(match now)<(match next)のときは前記任意パターン発生回路に対し前記遷移を許可し、(match now)≧(match next)のときは前記遷移を不許可とし、当該マッチ数の比較と、前記任意パターン発生回路に対する前記許可または前記不許可の指示とを、前記一定期間ごとに繰り返す
請求項1に記載の半導体集積回路。
【請求項8】
前記デコード制御回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を(match now)とし、非ケアビットの値を次の前記一定期間にまで維持した場合に現ビット配列と次のビット配列との一致ビット数を(match next)としたときに、(match now)<(match next)ではアクティブ状態をとり、(match now)≧(match next)では非アクティブ状態をとるように変化する前記シフトイネーブル信号を、入力される前記データを基に発生し、当該シフトイネーブル信号を前記任意パターン発生回路に出力する
請求項2に記載の半導体集積回路。
【請求項9】
半導体集積回路内の被テスト回路に対し入力の印加と応答の収集とを複数k個のシフトレジスタを用いて制御するに際し、当該半導体集積回路の内部で発生した任意kビットを、入力したデータに基づいて修正することにより、前記k個のシフトレジスタに1ビットずつ並列に入力すべきkビット列を単位としてテストパターンを発生するテストパターン発生方法であって、
前記データを入力し、前記テストパターン内の有効ビットに対応するケアビットの、前記kビット列ごとの有無、位置および値を示す情報を前記データから取得するステップと、
同一のビット配列が周期的に出現するように配列を遷移させながら前記任意kビットを繰り返し発生するステップと、
発生した前記任意kビットごとに、対応する前記情報に基づいて前記ケアビットが得られるようにビット値を修正して、前記kビット列を繰り返し発生するステップと、
を含み、
前記任意kビットの発生ステップにおいて、前記任意kビットの周期性とケアビットの前記情報に基づいて、連続する複数のkビット列の発生時に同一の前記任意kビットを利用可能であると予測される場合は、前記任意kビットに対する前記配列の遷移を一時的に停止する
テストパターン発生方法。
【請求項1】
被テスト回路と、
前記被テスト回路に対し、入力パターンの印加と応答の収集とを制御する複数k個のシフトレジスタと、
k個の非ケアビットからなる任意パターンを、同一のビット配列が周期的に出現するように繰り返し発生する任意パターン発生回路と、
前記入力パターンとして前記k個のシフトレジスタに同時に出力されるkビット内で有効ビットとなるケアビットの有無、位置および値を特定するためのデータを外部から入力し、前記任意パターンを前記任意パターン発生回路から入力し、入力した前記データに基づいて、入力した前記任意パターンの前記非ケアビットに前記ケアビットを組み合わせて一の前記kビットを発生し、前記データおよび前記任意パターンの入力と、当該入力に基づく前記kビットの発生とを一定期間ごとに繰り返し、発生したkビットを、順次、前記k個のシフトレジスタの各々に1ビットずつ並列に出力するテストパターン発生回路と、
を有し、
前記テストパターン発生回路は、前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、前記任意パターンにおける前記ビット配列の前記一定期間ごとの遷移を一時的に停止可能に、前記任意パターン発生回路を制御する
半導体集積回路。
【請求項2】
前記任意パターン発生回路は、
与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、
前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、
前記テストパターン発生回路は、
外部から入力される前記データをデコードし、デコード結果を参照すると、前記任意パターン発生回路の循環シフト動作を所定期間だけ停止することが可能な場合に、前記k個のフリップフロップ回路に与えるシフトイネーブル信号を前記所定期間だけ非アクティブで維持するデコード制御回路を、
有する
請求項1に記載の半導体集積回路。
【請求項3】
前記任意パターン発生回路は、
与えられた初期値を、印加されるクロック信号のクロックパルスごとに循環シフト動作するk個のフリップフロップ回路と、
前記k個のフリップフロップ回路が保持するk個の非ケアビットを循環シフト動作させる経路に接続され、当該k個の非ケアビットの配列を周期的に遷移させるためのゲート回路と、を有し、
前記テストパターン発生回路は、
外部から入力される前記データをデコードし、当該テストパターン発生回路から出力すべき前記kビット内における前記ケアビットの有無、位置および値を特定するデコード制御回路と、
前記k個のフリップフロップ回路の各出力から得られる前記k個の非ケアビットを入力し、前記デコードの結果に基づいて、入力した各非ケアビットの値が前記特定されたケアビットの値と異なるときは、当該非ケアビットの値をビット反転するビット反転回路と、
を有する
請求項1に記載の半導体集積回路。
【請求項4】
前記ビット反転回路は、
前記任意パターン発生回路から出力される前記kビットの対応する1ビットを一方の入力端子からそれぞれ入力するk個の排他的論理和ゲート回路と、
前記排他的論理和ゲート回路ごとに1つ設けられて、対応する排他的論理和ゲート回路の他の入力端子に接続され、前記デコード制御回路から与えられる反転命令を一時的に保持するk個の保持回路と、
を有する請求項3に記載の半導体集積回路。
【請求項5】
前記k個のシフトレジスタに1ビットずつ並列に入力されるk個のテストパターンの各々が、前記入力パターンの格納領域と、当該入力パターンの印加により当該被テスト回路から得られる応答パターンの格納領域とをそれぞれ含み、互いに連続した複数の単位パターンを含んで構成され、
前記デコード制御回路は、当該デコード制御回路に入力される前記データにより特定される前記kビット内における前記ケアビットの有無、位置および値と、前記任意パターン発生回路の周期性とに基づいて、一の前記単位パターンの時系列順位における最後部で連続するn(n≧1)ビットと、当該最後部に続く他の前記単位パターンの時系列順位における先頭部で連続するnビットとが全て前記非ケアビットであり、かつ、前記任意パターン発生回路による前記ビット配列の遷移の一時的な停止により前記最後部と前記先頭部はそれぞれ固有のビット値で非ケアビットを連続して固定しているが、当該固定されたビット値が前記最後部と前記先頭部で異なることが所定のシフトレジスタで特定されるときは、前記最後部の固定ビット値を前記先頭部まで拡張可能に、前記所定のシフトレジスタに対しシフト動作の一時的な停止を制御する
請求項2に記載の半導体集積回路。
【請求項6】
前記k個のシフトレジスタおよび前記デコード制御回路は、前記シフト動作の一時的な停止を、前記k個のシフトレジスタの各々で独立に制御可能に構成されている
請求項5に記載の半導体集積回路。
【請求項7】
前記任意パターン発生回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を示す現マッチ数(match now)を、非ケアビットの値を次の前記一定期間にまで維持した場合に前記データおよび前記任意パターン発生回路の周期性から予測される次のビット配列との一致ビット数を示す予測マッチ数(match next)と比較し、当該比較の結果、(match now)<(match next)のときは前記任意パターン発生回路に対し前記遷移を許可し、(match now)≧(match next)のときは前記遷移を不許可とし、当該マッチ数の比較と、前記任意パターン発生回路に対する前記許可または前記不許可の指示とを、前記一定期間ごとに繰り返す
請求項1に記載の半導体集積回路。
【請求項8】
前記デコード制御回路は、前記任意パターン発生回路から出力されている現ビット配列におけるケアビット数を(match now)とし、非ケアビットの値を次の前記一定期間にまで維持した場合に現ビット配列と次のビット配列との一致ビット数を(match next)としたときに、(match now)<(match next)ではアクティブ状態をとり、(match now)≧(match next)では非アクティブ状態をとるように変化する前記シフトイネーブル信号を、入力される前記データを基に発生し、当該シフトイネーブル信号を前記任意パターン発生回路に出力する
請求項2に記載の半導体集積回路。
【請求項9】
半導体集積回路内の被テスト回路に対し入力の印加と応答の収集とを複数k個のシフトレジスタを用いて制御するに際し、当該半導体集積回路の内部で発生した任意kビットを、入力したデータに基づいて修正することにより、前記k個のシフトレジスタに1ビットずつ並列に入力すべきkビット列を単位としてテストパターンを発生するテストパターン発生方法であって、
前記データを入力し、前記テストパターン内の有効ビットに対応するケアビットの、前記kビット列ごとの有無、位置および値を示す情報を前記データから取得するステップと、
同一のビット配列が周期的に出現するように配列を遷移させながら前記任意kビットを繰り返し発生するステップと、
発生した前記任意kビットごとに、対応する前記情報に基づいて前記ケアビットが得られるようにビット値を修正して、前記kビット列を繰り返し発生するステップと、
を含み、
前記任意kビットの発生ステップにおいて、前記任意kビットの周期性とケアビットの前記情報に基づいて、連続する複数のkビット列の発生時に同一の前記任意kビットを利用可能であると予測される場合は、前記任意kビットに対する前記配列の遷移を一時的に停止する
テストパターン発生方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2009−204402(P2009−204402A)
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2008−46001(P2008−46001)
【出願日】平成20年2月27日(2008.2.27)
【出願人】(305027401)公立大学法人首都大学東京 (385)
【出願人】(800000080)タマティーエルオー株式会社 (255)
【Fターム(参考)】
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願日】平成20年2月27日(2008.2.27)
【出願人】(305027401)公立大学法人首都大学東京 (385)
【出願人】(800000080)タマティーエルオー株式会社 (255)
【Fターム(参考)】
[ Back to top ]