ここに記載されるように、本発明の様々な実施形態は集積回路の組込み自己テスト(BIST)の改良された性能ためのシステム及び方法を具備し、ここで、テストのカバー範囲を改良するため、変動性が自己テストに導入される。
一実施形態において、ロジック組込み自己テスト即ちLBISTのための構成部分を組込む集積回路において、ある方法が実施される。LBIST構成部分は、テスト中の回路の機能ロジックのレベル間に介在される複数の走査チェーンを含むことができる。これにより、1つの走査チェーン内のデータが、機能ロジックのレベルを介して後続の走査ラッチに伝播され、また、可能性として、機能ロジック及び対応する後続の走査チェーンの1つ以上の付加レベルを介して伝播されるようにする。1つの典型的な実施形態は、回路構成をテストするための方法を具備し、これは、1つ以上の初期走査チェーンの夫々に対して、前記初期走査チェーンを、ビットの疑似ランダムパターンを具備するデータで満たす工程と、前記データが伝播される機能回路構成及び対応する後続の走査チェーンのレベル数を決定する工程と、前記初期走査チェーンから、前記決定されたレベル数の機能回路構成及び対応する後続の走査チェーンを通して前記データを伝播する工程と、を含む。
一実施形態において、この方法は組込み自己テスト回路構成において実施されることができ、また、ビットの疑似ランダムパターンを生成する工程と、前記ビットの疑似ランダムパターンを位相シフトする工程と、前記位相シフトされたビットの疑似ランダムパターンを走査チェーンに走査する工程と、を含むことができる。前記データが、前記走査チェーンから、テスト中の回路のロジックの1つ以上のレベルを介して伝播された後、前記方法は、その結果のデータを捕捉する工程と、前記データを圧縮する工程と、前記圧縮されたデータを複数入力シグネチャレジスタ(MISR)へ転送する工程と、を更に具備することができる。前記圧縮されたデータは、次に、テスト中の回路が期待態様で動作したかどうかを決定するため、審査されると共に期待値と比較されることが可能となる。
他の典型的な実施形態は、テスト中の回路をテストするシステムを具備し、これは、前記テスト中の回路の対応するレベルに介在された複数の走査チェーンと、前記走査チェーンに連結されたコントローラと、を具備し、前記コントローラは、前記複数の走査チェーンの少なくとも一部のデータが、前記テスト中の回路の可変数の前記レベルを介して伝播されるようにする。
一実施形態において、このシステムは、前記複数の走査チェーンに入力されるクロック信号を生成するように構成されたローカル制御バッファ(LCB)を含むことができる。テストサイクルの走査段階の間、LCBは前記走査チェーンの夫々を介してデータをシフトするために一連のクロックパルスを生成する。前記テストサイクルの機能段階の間、前記LCBは可変数のクロックパルスを生成し、これにより、データが前記テスト中の回路の対応する可変数のレベルを介して伝播されるようにする。前記LCBは、疑似ランダム入力信号、例えば、テスト中の回路の機能ロジック構成部分によって生成される信号に基づく機能段階のクロックパルスの数を変化させように構成することができる。前記システムはまた、前記走査チェーンに走査されるビットの疑似ランダムパターンを生成する疑似ランダムパターンジェネレータ(PRPG)と、前記PRPGと前記走査チェーンとの間に結合された位相シフタとを含むことができる。ここで、前記位相シフタは、前記パターンが前記走査チェーンに走査される前に、前記ビットの疑似ランダムパターンの位相をシフトする。前記システムは更に、前記走査チェーン外に走査されるデータに作用し、その結果を期待値との比較のために記憶するように構成された複数入力シグネチャレジスタ(MISR)を含むことができる。前記データを圧縮すると共により小さいMISRが使用できるように、前記MISRと前記走査チェーンの間にコンパクタを結合することができる。前記システムはまた、クロック信号を生成する際に前記LCBによって使用される走査ゲート(SG)信号及びテストホールド(THOLD)信号を生成するためのプログラム可能なクロックコントローラ(PCC)を含むことができる。前記SG信号はまた、前記テスト中の回路の前記機能構成部分からデータを受信するか、或いはデータを内/外にシフトするように、前記走査チェーンを制御するために使用される。
他の典型的な実施形態は、BISTシステムで使用可能なLCBを具備する。前記LCBは、前記走査チェーンのためのクロック信号を生成するため、様々な入力信号及びロジック回路構成のための入力を含むことができる。前記入力信号は、マスタークロック信号、走査ゲート(SG)信号、テストホールド(THOLD)信号、及びアクティブ(ACT)信号を含むことができる。前記ロジック回路構成は、入力信号を受信し、前記BIST走査チェーンへの疑似ランダムビットパターンをシフトするために走査段階のクロックパルスを生成し、前記テスト中の回路の幾つかのレベルを介して前記走査チェーンから前記データを伝播するために機能段階のクロックパルスを生成し、そして、前記生成されたクロックパルスを前記BIST走査チェーンに提供する、ように構成される。
一実施形態において、前記LCBは2つのORゲート及び2つのANDゲートを含む。第1のANDゲートは前記SG信号及び電源モードオーバーライド信号を受信する。第1のORゲートは、前記ACT信号及び前記第1のANDゲートの出力を入力として受信する。第2のANDゲートは、前記THOLD信号及び前記第1のORゲートの出力を入力として受信する。最後に、第2のORゲートは、前記第2のANDゲートの出力及び前記マスタークロック信号を入力として受信し、前記BISTの走査チェーンに提供可能な前記クロック信号を生成する。
LBISTテストは、一般的に次のように進行する。先ず、疑似ランダムパターンが生成される。前記疑似ランダムパターンは走査チェーンに走査され、その結果、走査ラッチが前記疑似ランダムパターンのビットと共に提供される。次に、前記走査ラッチに記憶されたビットは、後続の走査ラッチに、機能ロジック構成部分を介して伝播可能である。前記走査チェーンのデータは、次に前記走査チェーン外に走査され、圧縮され、そして、機能ロジック構成部分が期待通りに動作するかどうかを決定するために期待値と比較される。
前記走査ラッチに記憶されたビットは、後続の走査ラッチに、機能ロジック構成部分を介して伝播可能か、或いは、このデータは、後続の走査ラッチに、付加機能ロジック構成部分を介して伝播可能である。これは、1回以上繰り返され、その結果、前記データは、最初に前記走査チェーンに走査された後、且つ既知値との比較のために前記走査チェーン外に走査される前に、複数の走査ラッチを介して伝播される。しかし、従来のシステムの場合、データが伝播される走査ラッチの数は予め設定され、そして、各サイクルにおいて、走査チェーン外に走査される前に、データが前記数の走査ラッチを介して伝播される。これに対して、本発明の一実施形態において、データが伝播される走査ラッチの数は、サイクル毎に可変である。これは、データが集積回路の機能ロジック構成部分によって処理されることによってLBISテストの欠陥カバー範囲を改善する態様に、更なるランダム性を導入する。
この実施形態において提供される変動性は、タイミングシステムに対する機能ロジック入力の使用によって得られる。従来は、タイミング機構は次のように構成される。即ち、先ず各走査チェーンのラッチへデータを走査し、次に、前記機能ロジック構成部分を介して(及び所定数の後続の走査ラッチを介して)伝播されるように前記データを放出し、最後に、前記走査チェーンのラッチからの結果のデータを走査して期待データ値と比較できるようにする。
この実施形態において、所定数の後続の走査ラッチを介して前記データを伝播するのではなく、後続の走査ラッチの数が、機能ロジック構成部分に連結されたタイミング回路構成に対する入力によって決定される。その結果、1つのサイクルで、前記データは、前記後続の走査ラッチに対して前記機能ロジック構成部分を介して伝播され、次に前記走査チェーン外に走査可能である。次のサイクルにおいて、前記データは、後続の走査ラッチに、機能ロジック構成部分の付加レベルを介して伝播可能である。次のサイクルにおいて、前記データは、単一の後続の走査ラッチ、或いは一連の走査ラッチを介して伝播され、その後、前記走査チェーン外に走査可能である。前記データが伝播される機能ロジック及び走査ラッチのレベル数は予め設定されない。このため、ロジック構成部分を介して伝播されるデータのパターンは、データが所定数のレベルを介して伝播される場合に比べて、よりランダムである。これにより、テストのカバー範囲が改善される。
本発明の様々な実施形態が以下に記載される。主に、これらの実施形態は、集積回路内で実行されるSTUMPS型のLBISTアーキテクチャの実施態様に焦点をおく。これらの実施形態は、制限的なものではなく、むしろ例示することを目的とする点に留意する必要がある。別の実施形態は、STUMPSアーキテクチャではなく、BISTアーキテクチャにおいて実施可能である。別の実施形態はまた、構成部分がロジック構成部分(例えば、ANDゲート、ORゲートなど)に限られていない回路において実施可能である。この種の多くの変更例は、本発明の当業者にとって明らかであり、添付の請求の範囲に含まれるものである。
本発明を記述する前に、先ず、組込み自己テストの目的及びこれらのテストが通常実行される態様を説明することが有用であろう。図1には、単純なロジック回路100が示される。ロジック回路100は、2つのロジックゲート、即ち、ANDゲート110とORゲート120とを具備する。ロジック回路100は3つの入力を有し、これらは配線131〜132を介して提供される。また、ロジック回路100は3つの出力を有し、これらは配線135〜137を介して提供される。
図1のロジック回路100において、ANDゲート110は配線131及び132から入力を受信する。ANDゲート110は、受信した入力に対応して、配線134上に出力を生じる。ANDゲート110の出力は、配線134によってORゲート120の入力の1つまで転送される。ORゲート120に対する第2の入力が、配線133を介して提供される。ORゲート120は、配線135及び136上に転送される出力を生じる。配線133上でロジック回路100に提供された入力は、直接配線137を通り、ロジック回路100の出力として提供される。
ロジック回路100は、入力値の所与の組合せに対応して、出力値の特定の組合せを提供する。入力値及び対応する出力値は、ロジック回路100のための真理値表として表現可能である。この表は、表1として下記される。表1に示される真理値表は、ロジック回路100の適切な操作を規定する。ロジック回路100のインスタンシエーション(instantiation)が、特定の入力値に対応して、表1に示される特定の出力値を提供しない場合、ロジック回路100のこのインスタンシエーションは不良である。
LBISTの目的は、ロジック回路100の特定のインスタンシエーションが正しく動作するか或いは不良かを決定する手段を提供することである。この手段は、ロジック回路100を含む集積回路内で提供される。
LBIST機能性は、対応するLBIST構成部分の組合せをロジック回路100の設計に組込むことによって提供される。図2には、ロジック回路100及び付加LBIST構成部分の両者を含む設計が示される。LBIST構成部分は、疑似ランダムパターンジェネレータ(PRPG)210、複数入力シグネチャレジスタ(MISR)220、第1組のラッチ231〜233、及び第2組のラッチ241〜243、を含む
第1組のラッチ231〜233(第1の走査チェーン)の夫々は、ロジック回路100の入力131〜133の対応する1つに連結される。同様に、第2組のラッチ241〜243(第2の走査チェーン)の夫々は、ロジック回路100の出力135〜137の対応する1つに連結される。第1組のラッチ231〜233の夫々の目的は、ロジック回路100を介して伝播されるデータビットを記憶することである。これらのデータビットがロジック回路100を介して伝播された後、ロジック回路の結果出力は第2組のラッチ241〜243に記憶される。従って、ロジック回路100は次のようにテストすることができる。即ち、ラッチ231〜233に一組のデータビットを記憶し、ロジック回路100を介してこれらのデータビットを伝播し、そして、ラッチ241〜243に記憶された結果データビットが、ロジック回路100のための真理値表(表1参照)において規定された正しい出力データビットと対応するかどうかを決定する。
入力値の可能性のある組合せの全てのためにロジック回路100をテストするには、表1の最初の3つの列からの入力データビットの各組合せを、ロジック回路100に付与することが必要であろう。換言すると、これらの各組合せは、入力ラッチ231〜233に記憶され、そして、出力ラッチ241〜243の結果データビットは、表1に示される対応する出力ビットと比較されなければならないであろう。ロジック回路100には3つの入力しかないので、入力ビットの可能性のある組合せは8つだけである(23=8)。入力値のこれらの8つの可能性のある組合せをテストすることは、非常に容易に可能である。しかし、もし、ロジック回路100がより複雑で、より多くの入力を有する場合、適切な操作のためにロジック回路を完全にテストするには、ロジック回路により多くの組合せの入力値を付与することが必要である。一般的に言って、ロジック回路がn個の入力を有する場合、回路を完全にテストするには、ロジック回路に2nの異なる組合せの入力値を付与することが必要であろう。この場合、テストされる入力値の夫々の組合せのためにロジック回路が急激に複雑となるであろうことが容易に理解できる。
夫々の組合せのテストができるように、非常に多くの異なった組合せの入力データ値を有するようにする問題に対処するため、ロジック回路の入力に付与されるデータビットのランダムな(或いは、より具体的には、疑似ランダムの)パターンを具備するシーケンスを利用することができる。図2において例示される回路の場合、データビットのこれらのデータランダムパターンは、PRPG210によって生成され、次に入力ラッチ231〜233にロードされる。PRPG210から入力ラッチ231〜233にロードされる疑似ランダムビットパターンの数が十分に大きい場合、テスターは、ロジック回路100が完全にテストされたということ、及び、その正しい出力データビットがこれらのテストシーケンスに応答して生成されると仮定して、ロジック回路100は欠陥を有しておらず正しく動作することについて、あるレベルの信頼性を有することができる。
図2の回路がMISR220を含む点に留意する必要がある。MISR220の目的は、ロジック回路100をテストする速度を上げることである。これは、ロジック回路100によってラッチ241〜243に伝播された結果を蓄積するため、MISR220を使用することにより達成される。従って、疑似ランダムビットシーケンスをラッチ231〜233にロードし、このデータを、ロジック回路100を介してラッチ241〜243に伝播し、次に、ラッチ241〜243の内容を期待出力値と比較するのではなく、下記のような処理が行われる。即ち、ラッチ241〜243に記憶された値がMISR220ヘアンロードされ、その内容が、ラッチ241〜243からのデータに基づいて変更される。一実施形態において、MISR220はデータ上のモジュロ演算を実行するように構成される。モジュロ演算の結果は、MISR220に記憶され、次のテストサイクルの終わりに、他のモジュロ演算を実行するために使用される。
疑似ランダム入力ビットパターン及び対応する出力ビットパターンが既知なので、アンロードされた出力ビットに基づくMISR220の内容もまた既知である。従って、ビットの疑似ランダムパターンをロードし、出力ビットを生成するようにロジック回路100を介してこれらのビットを処理し、これらの出力ビットを演算し、そして、その結果をMISR220に記憶するプロセスを、複数のサイクルに亘って繰り返すことができる。その後、MISR220の最終的な内容を、単一の期待値と比較することができる。MISR220に記憶されたデータが期待値に適合する場合、ロジック回路100は期待通りに動作し、また、回路内に欠陥が発見されなかったことになる。
この種のテストの目的は、ロジック回路を介してデータ値の異なる組合せを処理することである。データ値のこれらの組合せはランダムなデータ値と概略で等価となるように意図され、これにより、テストの完全さが、乱数に関する統計原理を使用して決定できるようにする。このように、テストシステムは擬似乱数(例えば、PRPGによって生成される)を利用する。擬似乱数を使用することの1つの利点は、数(ビットシーケンス)が本質的に乱数と等価である一方、1つのロジック回路をテストするのに使用される疑似ランダムビットシーケンスが、他のロジック回路をテストするのに繰り返すことができることである。そして、テストの間に各ロジック回路に入力される疑似ランダムビットシーケンスが同一であるので、テストの結果もまた、正確に同一でなければならない。従って、ロジック回路のテストは、本質的に「ランダムな」入力ビットシーケンスを回路に提供し、対応する出力を期待出力と比較することによって実施可能となる。出力が同一である場合、テスト中のロジック回路は、「期待された」出力を生成するために使用された制御回路(または、回路シミュレーション)と同様に動作したことになる。
図1及び2に関する上述の議論は、ロジック回路100のテストに注目しており、この回路は、現在応用されている集積回路の殆ど(全てではないにしても)に比べて、明らかに非常に小型の回路である。より大規模なロジック回路をテストするLBISTの使用は、従って、以下のパラグラフに記載される。
図3には、大規模なロジック回路を含むロジック回路をテストすることに関連して使用可能な、LBISTアーキテクチャを示す機能ブロック図が示される。このアーキテクチャは、STUMPS−LBISTアーキテクチャとして一般に知られている。STUMPSアーキテクチャは、疑似ランダムパターンを下記のように利用する。即ち、疑似ランダムパターンが、走査ラッチにロードされ、テスト中のロジック回路の機能構成部分を介して伝播され、走査ラッチからアンロードされ、そして、複数入力シグネチャレジスタに捕捉される。これは、上述の小規模の回路の場合と非常に似ている。
図3に示すように、STUMPSアーキテクチャは、LBISTコントローラ310、PRPG320、位相シフタ330、走査チェーン340の組合せ、コンパクタ360、及びMISR370を具備する。これらのLBIST構成部分はロジック回路350と一体化され、そのLBIST構成部分がテストを行うように設計される。
LBISTコントローラ310は、LBIST構成部分380の残りの部分の操作を制御する制御回路構成、例えば、図11〜図13と関連して詳述されるPCCを含む。(明確にするため、LBISTコントローラ310はグループとしてLBIST構成部分380に連結された状態で示されるが、同コントローラは、典型的には、各構成部分に直接連結される。)LBISTコントローラ310の機能の1つは、PRPG320にシード値を提供することである。このシード値に基づいて、PRPG320は、位相シフタ330によって処理されると共に走査チェーン340にロードされるビットの疑似ランダムシーケンスを生成する。
PRPG320は、リニアフィードバックシフトレジスタ(LFSR)として実施可能となる。図4には、一実施形態に従って、LFSRの機能構造を例示する線図が示される。LFSR410は、複数の個々のビットレジスタ(430〜436)を有するシフトレジスタ420を具備する。個々のビットレジスタ430〜436は一緒に連結され、これにより、各クロックサイクルにおいて、1ビットのレジスタに記憶されたビットが次のビットレジスタへシフトされるようにする。例えば、ビットレジスタ430に記憶されたビットは、レジスタ431へシフトされ、一方、ビットレジスタ431に記憶されたビットは、ビットレジスタ432へシフトされる、等々が行われる。ビットレジスタ436の場合、その中に記憶されたビットは、他のビットレジスタへシフトされず、その代わりに、LFSRの出力として提供される。
LFSRにおいて、フィードバックは、典型的には、シフトレジスタのビットの幾つかをXORゲート451に提供し、また、XORゲート451の出力をシフトレジスタ420へ戻すことにより、生成される。図4に例示される構成において、ビットレジスタ435及び436からのビットが、ビットレジスタ430にシフトされるビットを生成するためにフィードバックとして使用される。このように、シード値(または、ビットシーケンス)は先ずビットレジスタ430〜436に記憶され、そして、これらの初期ビットがビットレジスタ436外にシフトされるのにつれて、フィードバックから生成された新規なビットがビットレジスタ430に記憶される。これにより、ビットレジスタ436外にシフトされるビットが、LBIST回路において使用可能なビットの疑似ランダムシーケンスを提供する。
PRPG320によって生成されるビットの疑似ランダムシーケンスの目的は、ロジック回路350の機能ロジック構成部分を介して伝播される入力ビットの組合せを提供することである。従って、疑似ランダムシーケンスは各走査チェーン340に提供される。しかし、疑似ランダムビットシーケンスは、位相シフタ330によって処理された後にだけ走査チェーン340にロードされる点に留意する必要がある。
4つの走査チェーンだけが図3において示されるが、LBISTの設計には多くの走査チェーンがある可能性について留意する必要がある。より多くの走査チェーンが設計に含まれる場合、ロジック回路のよりきめが細かいテストが実施可能となる。換言すると、より多くの走査チェーンが設計に含まれるほど、連続する走査チェーン間に配置されたロジック回路の構成部分がより少なくなる。特定の設計における走査チェーンの特定の数は、様々な要因に依存するが、それらは、本発明を理解する上で必要ないので、ここで詳述しない。
位相シフタ330の目的は、走査チェーン340にロードされるビットシーケンスの特徴をよりランダムにすることである。これは、図5(a)及び図5(b)を参照して説明することができる。図5(a)は、一連の走査チェーンのためにPRPG320によって提供される疑似ランダムビットシーケンスを示す線図である。図5(a)は、各走査チェーン340に提供される疑似ランダムビットシーケンスが各列に示された表を具備する。例えば、第1列には走査チェーン341に提供されるビットシーケンスが示され、第2列には走査チェーン342に提供されるビットシーケンスが示される、等々となっている。この図から、夫々連続した列のシーケンスが先行する列のシーケンスと同一であり、但し、シーケンスは1ビットずつ下方にシフトされることが分かる。このように、ビットの「ランダムな」シーケンスの範囲内で明らかに同一視可能なパターンが存在する。位相シフタ330はビットの疑似ランダムシーケンスの位相をシフトし、これにより、このようなパターンが後続するビットシーケンスの範囲内で同一視可能とならないようにする。
本質的に、位相シフタ330は、先行する列に関して夫々後続する列の位相をシフトするように動作する。換言すると、各後続する列において単一のビットによってオフセットされるのではなく、後続する列においてビットパターンが異なる量だけシフトされる。例えば、図5(b)に示すように、第2列のビットシーケンスは、1ビット下方にシフトされるのではなく、5ビットだけ外側にシフトされる。同様なシフトが、図5(b)の表の夫々後続する列の間で実行される。その結果、容易に識別可能なパターンが隣接した列のビットシーケンスの間に存在しない表となる。走査チェーン340にロードされる疑似ランダムビットシーケンスのこの改良されたランダム化は、LBISTテストの欠陥カバー範囲及び効果を改良することができる。テストアーキテクチャにとって本質ではないが、位相シフタ330は、これによって、テスト回路構成の動作を改良する。
PRPG320及び位相シフタ330によって生成される疑似ランダムビットパターンは、走査チェーン340にロードされる。各走査チェーン340は一連の走査ラッチを具備し、この一連の走査ラッチは、走査チェーンを介して交互にデータ(疑似ランダムビットパターンまたは機能ロジック出力)をシフトする、或いは機能ロジックを介して伝播されたデータを保持するように構成される。これは、図6を参照して更に詳述される。上述のように、別々のシーケンスが、各走査チェーン340にロードされる。各走査チェーン340は、ロジック回路350の各部の前または後に配置(間に配置)される。従って、ロジック回路350の各部分に対して、この部分に先行すると共に対応するロジックに入力を提供する走査チェーンと、この部分に続くと共に対応するロジックの出力を受信する走査チェーンと、が配設される。走査チェーンは、これにより、ロジック回路(連続する走査チェーン間のロジック回路の部分)の「レベル」を規定する。例えば、あるレベルのロジック回路350は、走査チェーン341から入力ビットを受信すると共に、走査チェーン342に出力ビットを提供することができる。同様に、他のレベルのロジック回路350は、走査チェーン343から入力ビットを受信すると共に、走査チェーン344に出力ビットを提供することができる。幾つかの走査チェーン340が、後続するレベルのロジック回路350に入力ビットを提供すると共に、先行するレベルのロジック回路350から出力ビットを受信することの両者に機能可能である点に留意する必要がある。
疑似ランダムビットパターンがロジック回路350の機能構成部分を介して伝播され、そして、その結果が走査チェーン340に捕捉された後、走査チェーン340の内容は、走査チェーン外に走査され(即ち、それらが走査チェーンからアンロードされ)、コンパクタ360及びMISR370に至る。コンパクタ360の目的は、単にMISR370によって取り扱いが必要なビット数を減らすことである。コンパクタ360は、多くの態様で実施可能である。典型的には、コンパクタ360は一連のXORゲートを使用し、ここで、各XORゲートの出力は、一対の走査チェーンから受信した入力に基づく。従って、MISR370を次に通過するビット数は、2分の1に減少することができる。別の環境において、より複雑な回路構成によって、ビット数をより大幅に減少することが可能となろう。
走査チェーン340からのビットがコンパクタ360によって圧縮された後、それらはMISR370に提供される。MISR370は、結果データビットを観察すると共に、この情報をテストシステムの期待出力と比較する手段を提供する。典型的には、各機能サイクル(その間に、データがロジック回路350の機能構成部分を介して伝播される)の後に走査チェーン340(及び/またはコンパクタ360)の出力を比較するのではなく、MISR370は、各サイクルにおける走査チェーンの出力に基づく累積的な値の観察を可能にする。例えば、一実施形態において、MISR370は、コンパクタ360の出力に対してモジュロ演算を実行する。即ち、MISR370は、コンパクタ360の出力によって、MISR370に記憶される現在値に対して除算を行い、この計算の剰余を保持する。各機能サイクルの後、この計算が実行され、MISR370に記憶された値が更新される。所定数の機能サイクルの後、MISR370に記憶された値が、期待値と比較される。記憶された値が期待値に適合しない場合、ロジック回路350の機能構成部分によって実行される動作の1つ以上が失敗し、これにより、出力走査チェーンに誤ったデータビットが提供され、これがコンパクタ360を介してMISR370に伝播される。
図6には、一実施形態に係る走査チェーン340の構造を例示する機能ブロック図が示される。図6は単一の走査チェーン341を示す。LBIST構造の部分を形成する他の走査チェーンは、これと同様に構成される。走査チェーン341は一連の走査ラッチ511〜513を含む。各走査ラッチ511〜513は、対応するデマルチプレクサ521〜523を有する。各デマルチプレクサ521〜523は制御入力を有し、これにより、デマルチプレクサが、走査データ及び機能データの何れかを選択するようなる。
図6において、3つの走査ラッチ(及び対応するデマルチプレクサ)だけが示されるが、これらは一連の走査ラッチの単なる例示である。走査チェーン341は、何百、数千、または何万もの走査ラッチを含む可能性がある。一実施形態において、走査チェーン341は、1000個の走査ラッチを含む。上述のように、これらの走査ラッチの夫々は、対応するデマルチプレクサを有する。
上述のように、走査チェーン341の目的は、データビットを記憶することである。これらのデータビットは、後続の機能ロジック構成部分を介して伝播される入力データビットか、或いは機能ロジック構成部分を介して既に伝播された出力データビットであることができる。先ず、走査チェーン341が入力データビットを記憶する。これらのデータビットは、上述のように、PRPGによって生成されると共に、位相シフタによって処理されたビットの疑似ランダムシーケンスを具備する。走査チェーン341の走査ラッチに、ビットの疑似ランダムシーケンスをロードするため、走査ゲート信号(SG)がアサート(assert)される。走査ゲート信号がアサートされると、走査データがデマルチプレクサ521〜523によって選択され、走査ラッチを介してシフトされる。換言すると、疑似ランダムビットシーケンスが、PRPG/位相シフタから走査チェーン341にシフトされると共に、走査チェーン341に既に記憶されたデータが、コンパクタ/MISRにシフトされる。構成レベルでは、走査ラッチ513からコンパクタ/MISRにビットがシフトされるまで、PRPG/位相シフタから走査ラッチ511にビットがシフトされ、走査ラッチ511から走査ラッチ512にビットがシフトされる、等々が行われる。このように、n個のクロックサイクルに亘って、nビットの疑似ランダムビットシーケンスが走査チェーン341にシフトされる一方、nビットのデータ(機能ロジック構成部分を介してビットが伝播されることにより生成される)が、走査チェーン341外にシフトされる。
走査チェーン341の各走査ラッチ511〜513が、PRPG/位相シフタから疑似ランダムビットシーケンスのビットの1つをロードされた後、これらのビットは、その動作をテストするためにロジック回路の機能構成部分を介して伝播可能である。各ビットが対応する走査ラッチに記憶されると、このビット値が、走査ラッチに続く機能ロジック構成部分にとって利用可能となる。従って、この値が、これらのロジック構成部分を介して伝播され始める。これは、走査ゲート信号がアサートされても脱アサートされても、発生する。走査ゲート信号がアサートされる場合、各走査ラッチは先行する走査ラッチのビット値をロードされる。走査ゲート信号が脱アサートされる場合、しかし、デマルチプレクサ521〜S23は、走査データ入力の代わりに、それらの各機能データ入力を選択する。その結果、走査ラッチが、先行する機能ロジック構成部分を介して伝播されたデータビットを記憶する。換言すると、走査ラッチは、ロジック構成部分によって生成されるデータの機能捕捉を実行する。このデータが捕捉された後、走査ゲート信号は再びアサートされることができ、これにより、捕捉データが走査チェーン341外に走査される一方、新規な疑似ランダムビットシーケンスが走査チェーン341中に走査される。
走査ラッチ511〜513でシフトされるデータは、走査データ信号に基づいて選択される一方、このデータは、各走査ラッチ511〜513に提供されるクロック信号(clk)に基づいて走査ラッチ511〜513に実際にシフトされる。各クロックサイクルにおいて、新規なデータ値が、各走査ラッチ511〜513に走査される。典型的なクロック信号は、図7(a)及び図7(b)に示される。
図7(a)及び図7(b)には、ラッチ511〜513を走査するように提供されるクロック信号を例示する線図が示される。図7(a)は、スキュードロード(skewed-load)方法としばしば称されるものに対応するクロック信号を示す。図7(b)は、ブロードサイド(broad-side)方法としばしば称されるものに対応するクロック信号を示す。従来、特定のロジック回路のためのLBIST設計は、これらの方法の一方によって行われる。これらの図は、2つの部分に夫々分けることができ、各部分は、テストサイクルの異なる部分に対応する。図の左側の部分は、テストサイクルの走査段階と対応する。図の右側の部分は、テストサイクルの機能テスト段階と対応する。テストサイクルのこの段階は、「放出及び捕捉」段階としてしばしば言及される。この段階はまた「機能」段階として言及可能であり、何故なら、データがロジック回路の機能構成部分を介して伝播可能であるという理由である。
走査段階の間、走査ゲート信号がアサートされると共に、PRPG/位相シフタによって生成された疑似ランダムビットシーケンスが、上述のように、走査チェーンの走査ラッチに走査される。疑似ランダムビットシーケンスが、一度に1つのラッチという態様で、走査ラッチに連続的にシフトされるので、走査チェーンの各走査ラッチのために、走査段階において1つのクロックサイクルが必要となる。従って、10個の走査ラッチが走査チェーンにある場合、走査段階は、10個のクロックサイクルによって疑似ランダムビットシーケンスが走査チェーンにロードされることを必要とする。1000個の走査ラッチが走査チェーンに場合、走査段階は1000個のクロックサイクルを必要とする。
機能テストまたは放出及び捕捉段階の間、走査ラッチに既に記憶されたデータが、夫々の走査ラッチに続くロジック構成部分を介して伝播可能である。ロジック構成部分を介して伝播されるデータの「放出」は、疑似ランダムビットシーケンスを走査チェーンにロードする最後のクロックサイクルで起こる。このクロックサイクルは、図7(a)の「R」によって示される。走査ゲート信号は、この最後のクロックサイクルのためにアサートされ、次に脱アサートされる。その結果、もはや、走査ラッチの一方から他方に、データビットが更にシフトされることはない。走査ゲート信号が脱アサートされると、後続のクロックサイクルでは、走査ラッチが、対応する機能ロジック構成部分を介して伝播されたデータ値を捕捉する。これは、データの「捕捉」として言及される。このクロックサイクルは、図7(a)の「C」によって示される。走査段階及び放出及び捕捉段階は、一緒にテストサイクルを形成する。各テストサイクルにおいて、疑似ランダムビットシーケンスが、走査チェーンにロードされ、機能ロジック構成部分を介して伝播され、次に、走査チェーンからアンロードされる。放出及び捕捉段階が完了された後、サイクルは走査段階から繰り返す。
図7(b)には、僅かに異なるタイミングシーケンスが示される。この例では、走査段階は同一であるが、放出及び捕捉段階が異なる。クロック信号には、2つのパルスではなく、3つのパルスがある。図7(a)のタイミングの場合のように、走査段階の間に走査ゲート信号がアサートされ、そして、PRPG/位相シフタによって生成された疑似ランダムビットシーケンスが、クロックパルス(サイクル)毎に1つのラッチという態様で、走査ラッチに走査される。疑似ランダムビットシーケンスを走査チェーンにロードする最後のクロックサイクルは、放出及び捕捉段階の第1のサイクルである。走査ラッチに記憶されたデータは、図7(a)と同様の態様で、ロジック構成部分を介して伝播可能である。しかし、次のクロックサイクルでデータを捕捉する代わりに、データは機能ロジックの他のレベルを介して伝播可能である。換言すると、走査チェーンをロードし、ロードしたデータを機能ロジック構成部分の単一のレベルを介して伝播させ、そして、走査チェーンから結果データをアンロードするという処理ではなく、下記のような処理が行われる。即ち、データが走査チェーンにロードされ、機能ロジックの2つのレベルを介して伝播され、そして、走査チェーンからアンロードされる。
走査チェーンにロードされる疑似ランダムビットシーケンスは、ロジックの付加レベルを介して伝播可能である。これは、図7(b)に示すような態様で、ロック信号に対応する付加パルスを提供することによって達成される(但し、放出及び捕捉段階は、4、5、またはそれ以上のクロックパルスを有する可能性がある)。
図7(a)及び図7(b)に示されるクロックパルスは、一定の比率で示されていない点に留意する必要がある。即ち、パルスの間隔は、これらの図に示されるものとはかなり異なることがありえる。典型的には、走査段階の間のクロックパルスは、放出及び捕捉段階の間のクロックパルスよりも低いレートで発生する。従って、放出及び捕捉段階のクロックパルス間の間隔は、典型的には、走査段階のクロックパルス間の間隔より非常に小さい。これは、走査チェーンに対する疑似ランダムビットシーケンスのクロック制御を行うために使用されるLBIST構成部分が、典型的には、テストされている機能ロジック構成部分よりも低いクロックレートで動作するように設計されているからである。もし、LBIST構成部分が機能ロジック構成部分と同じクロックスピードで動作することが必要とされるとすると、LBIST構成部分のコストはかなり高くなるであろう。従って、走査チェーンに対するデータの授受は、より低いクロックスピード(例えば、500MHz)で行われる一方、機能ロジック構成部分は、これらが通常動作する(例えば、2GHz)クロックレートでテストされる。
本発明の一実施形態において、クロック信号がローカル制御バッファ(LCB)によって生成される。図8には、一実施形態に従って、LCBの設計を例示する線図が示される。図8に示すように、LCB700は、ANDゲート730及びORゲート720及び740を含む一連のロジックゲートを具備する。
図8に示すように、LCB700は4つの入力を有することができる。4つの入力は、出力755で出力クロック信号を制御するために使用される入力信号を受信するように、夫々連結される。入力751は、ORゲート720の入力に連結されると共に、走査ゲート信号を受信するように構成される。これは、図7(a)及び図7(b)に関して前述した走査ゲート信号と同じである。入力752は、ORゲート720の入力に連結されると共に、アクティブ(ACT)信号を受信するように構成される。一実施形態において、ACT信号は、テストされているロジック回路内の機能ロジックに依存する。入力753は、NANDゲート730の入力に連結されると共に、テストホールド(THOLD)信号を受信するように構成される。THOLD信号は、新しいデータが走査ラッチから発射されるのを防止することを目的とする。最後に、入力754はORゲート740の入力の1つに連結される。入力754は、クロックソースに連結されると共に、LCB700の出力の基礎となるマスタークロック信号を受信するように構成される。
ロジックゲート720、730及び740は、カスケード状に配設される。即ち、ORゲート720の出力はNANDゲート730に入力として提供され、NANDゲート730の出力はORゲート740に入力として提供される。SG、ACT及びTHOLD信号の夫々の状態は、入力754に受信されるクロック信号がLCB700を通過するどうかを制御する。THOLDは、これらの信号の内で最も高い優先度を有する。THOLDがアサートされない場合、NANDゲート730の出力は1であるので、ORゲート740の出力は値1のままとなる。換言すると、クロックパルスが生じない。THOLDがアサートされる場合、NANDゲート730の出力は、ORゲート720から受信する入力に依存する。ORゲート720が値1を生じる場合、NANDゲート730の出力は0であるので、入力754に受信されるマスタークロック信号はORゲート740を通過する。ORゲート720の出力はSG及びACT信号に依存する。ACT信号及びSG信号のいずれもアサートされない場合だけ、ORゲート720の出力は0である。そうでなければ、ORゲート720の出力は1である。ゲートLCB700のための結果真理値表は表2に示される。
再び図7(a)及び図7(b)を参照する。LCBは、テストサイクルの放出及び捕捉段階における変化を提供するように機能する。換言すると、ACT信号を導入することによって、LCBは、さもなければ放出及び捕捉段階において生成される可能性のあるクロックパルスの1つ以上を、抑制する或いは抑制しない可能性がある。従って、ACT信号に依存して、放出及び捕捉段階は、2、3またはそれより多くのパルスを有することができ、これにより、走査チェーンからのデータが、夫々、1、2またはそれより上のレベルの機能ロジックを介して伝播可能なようになる。
この実施形態におけるACT信号は実際の機能ロジックによって生成されるが、この信号をこの態様で提供することは必ずしも必要でない点に留意する必要がある。例えば、ACT信号は、疑似ランダムビットシーケンスジェネレータによって生成可能であり、このジェネレータは、LBISTのPRPGによって生成された疑似ランダムビットシーケンスを決定するところの同じシード値に基づく。ACT信号は、単に、走査チェーンにシフトされるビットシーケンスとして同態様で繰り返し可能な疑似ランダム信号であることを必要とする(これにより、MISR内の値が繰り返され、従って、テスト中の回路の適切な動作の指標となる)。
LCB700によって受信されるマスタークロック信号は、ANDゲート730の出力と一緒に、ORゲート740に対する入力となる。従って、マスタークロック信号がORゲート740を通過するとき、それは効果的に反転される。換言すると、クロックがディセイブルされると、ORゲート740の出力は値1となる。
図9には、クロック信号がLCB700から走査ラッチへ供給される態様を例示する線図が示される。クロックがイネイブルされると、LCB700によって提供されるクロック信号は2つのパスに分割される。1つのパスでは、クロック信号はインバータ761によって反転される。この信号は、次に分割され、このままの形と、インバータ764によって再び反転された後の形とで、フリップフロップ770に供給される。他のパスでは、LCB700によって生成されたクロック信号は、インバータ762及び763によって2回反転される。その結果のクロック信号は、次に分割され、このままの形と、インバータ765によって再び反転された後の形とで、フリップフロップ780に供給される。反転及び非反転クロック信号は、次に、デマルチプレクサ790から受信される機能データまたは走査データをラッチするために使用される。
LCB700に対する4つの入力信号の中で、THOLDは最も高い優先度を有する。THOLD信号がアサートされない場合、クロックパルスは生成されず、データはLBIST構成部分または機能ロジック構成部分を介してシフトされない。THOLD信号がアサートされる場合、LCB700に対する残りの入力信号がクロック信号をイネイブルするかどうかに依存して、LBIST回路構成及び機能ロジック回路構成は動作することができる。上述のように、信号SGは、走査ラッチのために走査データバスを選択するようにアサートされる。SG信号もまた、クロック信号をイネイブルにし、これにより、PRPGからの疑似ランダムビットシーケンスが、各走査チェーンの走査ラッチに、クロック状に供給(シフト)されるようにする。
LCBに対する入力であるACT信号は、従来のLBIST設計で見られない機能を実行する。上述のように、テストサイクルの放出及び捕捉段階は、データが、走査ラッチから、機能ロジックの単一のレベルまたは機能ロジックの複数のレベルを介して伝播されるようにすることができる。ここで、ロジックの「レベル」は、データが1つの走査ラッチから次の走査ラッチ(または1つの走査チェーンから次の走査チェーン)に伝播される際に横切るロジック回路の部分である。データが伝播される機能ロジックのレベル数は、放出及び捕捉段階のクロックパルスの数に依存する。2つのクロックパルスがある場合、データは1つの走査チェーンから放出され、次の走査チェーンで捕捉される。3つのクロックパルスがある場合、データは第1の走査チェーンから放出され、機能ロジック(及び第2の走査チェーン)の2つのレベルを介して伝播され、そして、第3の走査チェーンで捕捉される。付加クロックパルスによって、データが機能ロジックの付加レベルを介して伝播可能である。ACT信号の目的は、放出及び捕捉段階のクロックパルスの数を制御し、それによってデータが伝播される機能ロジックのレベル数を制御することである。
上述のように、ACT信号は機能ロジックに依存する。これはテスト中のロジック回路に既にある機能ロジックであってもよい、または、それはACT信号を生成するために設計された別のロジックであってもよい。いずれにせよ、ACT信号は、テストの全体に亘って変化される。ACT信号の変化は、放出及び捕捉段階におけるクロックパルスの数を変化させ、また、これによりデータが伝播される機能ロジックのレベル数を変化させる。これは、多重テスト方法論(例えば、スキュードロード(skewed-load)及びブロードサイド(broad-side)方法論)を効果的に利用できるという利点を提供する。テストのこの点を変化させることにより、テストの欠陥カバー範囲が強化可能となる。
図8は、LCB700を通るマスタークロック信号をゲートで制御するため、3つの入力、即ちSG、ACT及びTHOLD信号を利用するLCBを示す。別の実施形態において、LCBのクロック信号をゲートで制御するため、付加信号が使用される。図10には、この別の実施形態に従って、LCBの設計を例示する線図が示される。図10に示すように、LCB800は、ANDゲート810及び830及びORゲート820及び840を含む一連のロジックゲートを具備する。
LCB800は、5つの入力及び単一のクロック出力を有する。5つの入力は、出力クロック信号を制御するために使用される入力信号を受信するように、夫々連結される。入力851は、NANDゲート810の入力に連結されると共に、走査ゲート信号を受信するように構成される。これは、図7(a)及び図7(b)に関して前述した走査ゲート信号と同じである。入力852は、NANDゲート810の他の入力に連結されると共に、電源モードオーバーライド(PMO)信号を受信するように構成される。PMO信号がアサートされると、機能ホールドクロックパルスを除いて、全てのクロックパルスはディセイブルされる。入力853は、ORゲート820の入力に連結されると共に、アクティブ(ACT)信号を受信するように構成される。ACT信号は、テスト中のロジック回路内の機能ロジックに依存する。入力854は、NANDゲート830の入力に連結されると共に、THOLD信号を受信するように構成される。THOLD信号は、新しいデータが走査ラッチから発射されるのを防止することを目的としたテストホールド信号である。最後に、入力855はORゲート840の入力の1つに連結される。入力855は、クロックソースに連結されると共に、LCB800の出力の基礎となるマスタークロック信号を受信するように構成される。
ロジックゲート810、820、830及び840は、カスケード状に配設される。
即ち、NANDゲート810の出力はORゲート820に入力として提供され、ORゲート820の出力はNANDゲート830に入力として提供され、NANDゲート830の出力はORゲート840に入力として提供される。SG、PMO、ACT及びTHOLD信号の夫々の状態は、入力855に受信されるクロック信号がLCB800を通過するどうかを制御する。THOLDは、これらの信号の内で最も高い優先度を有する。THOLDがアサートされない場合、NANDゲート830の出力は1であるので、ORゲート840の出力は値1のままとなる。換言すると、クロックパルスが生じない。THOLDがアサートされる場合、NANDゲート830の出力は、ORゲート820から受信する入力に依存する。ORゲート820が値1を生じる場合、NANDゲート830の出力は0であるので、入力855に受信されるマスタークロック信号はORゲート840を通過する。ACT信号がアサートされないで、且つSG及びPMO信号の両者がアサートされる場合だけ、ORゲート820の出力は0である。そうでなければ、ORゲート820の出力は1である。ゲート810、820、830及び840のための結果真理値表は表3に示される。
図8及び図10に示されるLCB構成は、実際の機能ロジックによって生成されるACT信号を使用し、走査チェーンからのデータが伝播可能な機能ロジックのレベル数を変化させる。しかし、別の実施形態において、他の手段によってこれが達成可能であることに留意する必要がある。このように、LCBの構成上の更なる変更が可能である。更に、走査チェーンからのデータが伝播可能な機能ロジックのレベル数を変化させることにより、外部の機構によって、或いは、完全にLCBと分離した機構によって伝播を制御可能となる。
一実施形態において、LCBがプログラム可能なクロック制御(PCC)と連動して使用される。LCBが走査ラッチに提供される実際のクロック信号を制御する一方、PCCがLCBに入力されるSG信号及びTHOLD信号を提供するように設計される。SGはまた走査ラッチに入力され、これにより、これらのラッチが、先行する走査ラッチからデータを受信するか、或いはロジック回路の機能構成部分からデータを受信するかが制御される。
図11には、一実施形態に従って、LCBとPCCとの相互接続を例示する機能ブロック図が示される。この実施形態において、PCC910は、マスタークロック信号を受信すると共に、LCB920に送信されるSG信号及びTHOLD信号を生成する。PCC910から受信されるSG信号及びTHOLD信号に加えて、LCB920はマスタークロック信号を受信する。LCB920の特定の実施形態によれば、LCB920に対する付加入力は、上述のACT信号及びPMO信号を含むことができる。これらの実施形態の夫々においてACT信号が使用されるが、この信号は、テスト中のロジック回路内に組込まれた機能ロジックによって生成されるか、或いは、この信号は、テスト中のロジック回路とは別の機能ロジックによって生成されることが可能である点に留意する必要がある。LCB920は、次に、LBIST回路及びテスト中の機能ロジック回路に入力されるクロック信号を生成する。LBIST回路及びテスト中の機能ロジック回路はまた、PCC910によって生成されたSG信号を受信する。
PCC910を更に詳述する前に、図12のタイミング図を参照する。図12は、一実施形態に従って、テストサイクルの走査段階及び機能段階を示すタイミング図である。上述のように、テストサイクルは走査段階及び機能段階からなる。テストサイクルの走査段階の間、疑似ランダムビットシーケンスが走査ラッチに走査される。ビット値が走査ラッチにロードされた後に機能段階があり、機能段階の間に、走査ラッチのデータビットが、ロジック回路の機能構成部分の対応する部分を介して伝播可能となる。この機能段階の後、走査段階及び機能段階が繰り返される。走査段階及び機能段階の夫々繰り返しが、本願明細書においてテストサイクルとして言及される。
テストサイクルは、機能段階の後、特に、走査ラッチ外にデータビットを走査するために走査段階を含まない。しかし、ここで、走査段階は、走査ラッチ外にこれらのデータビットを同時に走査し、また、新規な疑似ランダムビットシーケンスをこれらの走査ラッチにロードするように機能する点に留意する必要がある。
図13には、この実施形態に従って、PCC910を例示するより詳細な機能ブロック図が示される。この実施形態は3つのカウンタを含み、これらは、LBISTシステムのモード(システムが走査段階または機能段階にあるか)と、波データレジスタの現在位置におけるマスタークロックのクロックサイクルの数とを追跡するように構成される。
これらの内で第1カウンタはモードカウンタ1110である。再び図12のタイミング図を参照すると、ここに、モードカウンタ1110の値が示される。機能段階の間、モードカウンタ値は0である。走査段階の間、モードカウンタ値は1である。モードカウンタ1110に記憶された値は、記憶データを読むため、適切なレジスタを選択するように、セレクタ1121、1122、1123及び1124によって使用される。各セレクタ1121、1122、1123及び1124に関し、モードカウンタ1110に記憶された値が0である場合、機能レジスタが選択される。一方、モードカウンタ1110に記憶された値が1である場合、走査レジスタが選択される。
PCC910の第2のカウンタはサイクルカウンタ1130である。サイクルカウンタ1130は、現在のモードにおけるLCBのクロックサイクルの数をカウントする。サイクルカウンタ1130は、最初に0にセットされる。LCBクロックのサイクルが検出されるとき、サイクルカウンタ1130がインクリメントされる。サイクルカウンタ1130の値は、機能段階及び走査段階に関して図12に例示される。この図に示すように、サイクルカウンタ1130は機能段階において0から7までカウントし、走査段階において0から999までカウントする。後で詳述するように、これらのカウンタ範囲は、機能モードサイクルレジスタ1132及び走査モードサイクルレジスタ1133に夫々に記憶される7及び999の値に対応する。
サイクルカウンタ1130の値は、モードサイクルレジスタ1132及び1133の一方に記憶された値と、コンパレータ1131によって比較される。モードカウンタ1110が0にセットされると、セレクタ1121は、機能モードサイクルレジスタ1132を選択し、コンパレータ1131にこの値を提供する。モードカウンタ1110が1にセットされると、セレクタ1121は、走査モードサイクルレジスタ1133を選択し、コンパレータ1131にこの値を提供する。サイクルカウンタ1130の値が選択されたモードサイクルレジスタの値に到達すると、リセット信号がサイクルカウンタ1130及びモードカウンタ1110に提供される。サイクルカウンタ1130がリセット信号を受信すると、サイクルカウンタ1130が0にリセットされる。モードカウンタ1110がコンパレータ1131からリセット信号を受信すると、モードカウンタ1110に記憶された値が切替えられる。換言すると、モードカウンタ1110に0が現在記憶されている場合、これが1に切替えられる。また、モードカウンタ1110に1が現在記憶されている場合、これが0に切替えられる。
PCC910の第3のカウンタは波カウンタ1140である。波カウンタ1140は、0から、波サイクルレジスタ1142及び1143の選択された1つに記憶された値までカウントするように構成される。モードサイクルレジスタ1132及び1133と同様に、セレクタ1122は、モードカウンタ1110に記憶されたモード値に基づいて、波サイクルレジスタ1142及び1143の適切な1つを選択する。モードカウンタ1110が0にセットされると、セレクタ1122は、機能波サイクルレジスタ1142を選択し、コンパレータ1141にこの値を提供する。モードカウンタ1110が1にセットされると、セレクタ1122は、走査波サイクルレジスタ1143を選択し、コンパレータ1141にこの値を提供する。波カウンタ1140の値が選択された波サイクルレジスタの値に到達すると、リセット信号が波カウンタ1140に提供される。このリセット信号により、波カウンタ1140の値が0にリセットされる。波カウンタ1140は、次に、カウントを継続する。
典型的には、機能波サイクルレジスタ1142の値は、テストサイクルの機能段階の間に、波カウンタ1140が0からこの値までの範囲で一度カウントするような値にセットされる。従って、機能波サイクルレジスタ1142が7にセットされると、テストサイクルの機能段階の間に、波カウンタ1140が0から7までカウントする。これは図12に示される。一方、走査波サイクルレジスタ1143の値は、典型的には、テストサイクルの走査段階の間に、波カウンタ1140が0からこの値までの範囲で複数回カウントするような値にセットされる。例えば、走査波サイクルレジスタ1143が2の値を含むと、サイクルカウンタ1130が0から999までカウントする一方で、波カウンタ1140が0から2まで範囲を複数回カウントする。図12は、この実施形態に従って、走査サイクルの間における、0から2の範囲の波カウンタ1140の繰返しサイクルを示す。
波カウンタ1140に記憶された値は、出力信号THOLD及びSGを夫々提供するための適切な値を選択するように、セレクタ1151及び1161によって使用される。セレクタ1123は、モードカウンタ1110の値に基づいて、THOLD波データレジスタ1152及び1153の適切な1つを選択する。モードカウンタ1110が1を有すると、機能波データレジスタ1152が選択される。モードカウンタ1110に0が記憶されると、走査波データレジスタ1153が選択される。一実施形態において、THOLD波データレジスタ1152及び1153の夫々は8ビットを含む。セレクタ1151は、適切なレジスタのビットの1つを選択し、これをTHOLD出力信号として提供する。波カウンタ1140がインクリメントされるのに従って、セレクタ1151は、THOLD出力信号として提供するように、記憶されたビットの連続ビットを選択する。従って、波カウンタ1140が0であると、THOLD波データレジスタの第1のビットがセレクタ1151によって選択される。波カウンタ1140が1までインクリメントされると、THOLD波データレジスタの第2のビットがセレクタ1151によって選択される。波カウンタ1140が0にリセットされると、THOLD波データレジスタの第1のビットがセレクタ1151によって再び選択される。THOLD波データレジスタ内のデータに対応する繰返しパターンが、これにより、THOLD出力信号として生成される。
PCC910によって出力されるSG信号は、ほぼ同じ態様で生成される。セレクタ1124は、モードカウンタ1110に記憶された値に基づいて、SG波レジスタ1162及び1163の一方を選択する。波カウンタ1140が、その対応する値範囲をインクリメントする一方で、セレクタ1161は、SG出力信号を提供するように、SG波データレジスタ11l6及び1163の選択された1つからビットを選択する。セレクタ1161は、これにより、SG波データレジスタ1162及び1163の内容に基づいて、繰返し出力信号を提供する。
コンパレータ1131及び1141は、それらが対応する選択されたレジスタの値に到達するか、または、それらがこれらの値を上回ると、夫々のリセット信号を生成するように構成可能な点に留意する必要がある。レジスタ1132、1133、1142及び1143に記憶された値は、コンパレータ1131及び1141の動作を考慮に入れる。例えば、サイクルカウンタ1130に記憶された値が、モードサイクルレジスタ1132及び1133の選択された1つに記憶された値に到達したとき、コンパレータ1131がゼロに来始めてリセット信号を発する場合、モードサイクルレジスタ1132及び1133に記憶された値は、所望のサイクル数から1を引いた数に等しくなる。従って、機能段階に8サイクルを有することが望まれる場合、機能モードサイクルレジスタに7の値が記憶され、これにより、サイクルカウンタ1130及びコンパレータ1131が0から7までの範囲をカウントするようにする。同様に、走査段階に1000サイクルを有することが望まれる場合、走査モードサイクルレジスタに999の値が記憶され、これにより、サイクルカウンタ1130及びコンパレータ1131が0から999までの範囲をカウントするようにする。
図13は、実施形態において、「11100000」の値が機能波データレジスタ1152に記憶される一方、「10000000」の値が走査波データレジスタ1153に記憶される可能性があることを示す。機能段階の間、機能波データレジスタ1152がセレクタ1123によって選択される。機能段階の間、波カウンタ1140が8つの波サイクルを通してカウントし(波カウンタ1140が0から7をカウント)、そして、セレクタ1151が、機能波データレジスタ1152に記憶されたビット(「11100000」)に基づいて、THOLD信号を生成する。
このように、機能段階の8つの波サイクルの間、セレクタ1151はTHOLD信号を生成し、これは、最初の3つのサイクルの間は1で、後続の5つのサイクルの間は0である。PCC910が機能モード(モードカウンタ=0)から、走査モード(モードカウンタ=0)に移行すると、セレクタ1122が走査波サイクルレジスタ1143(2の値を有する)を選択すると共に、セレクタ1123が走査波データレジスタ1153(ビット「10000000」を含む)を選択する。従って、セレクタ1151は、各8サイクルの代わりに、各3サイクルを繰り返すTHOLD信号を生成し。ここで、繰返しパターンは「100」である(走査波データレジスタ1153の最初の3つのビット)。図12には、テストサイクルを通してセレクタ1151(即ち、PCC910)によって出力される結果THOLD信号が示される。出力信号SGは、出力波形がSG波データレジスタ1162及び1163に記憶されたビットに基づくことを除いて、同様に生成される。図12にはまた、テストサイクルを通した結果信号も示される。
図11はまた、テストサイクル、レジスタに記憶されたビットシーケンス、などの数を制御する1つ以上の構成部分を含むことができる点に留意する必要がある。例えば、一実施形態において、制御構成部分は、レジスタ1132、1133、1142、1143、1152、1153、1162及び1163に特定のビットシーケンスを記憶すると共に、次に、記憶されたビットシーケンスを使用して、特定数のテストサイクルを進めるように構成可能である。制御構成部分は、次に、レジスタに記憶されたビットシーケンスを変更し、記憶された変更ビットシーケンスを使用して、特定数のテストサイクルを再び進めるようにすることができる。
典型的には、前述の段落に記載される本発明の実施形態はハードウェアシステムを具備するが、多くの別の実施形態も可能である点に留意する必要がある。例えば、LBISTシステムの部分、例えば、LCBは、プロセッサ上で実行されるように形成されたソフトウェアモジュールとして実施可能である。これらのソフトウェアモジュールは、上述の通りに動作するか、または、それらは前述の実施形態からの変更を組込むことができる。例えば、一実施形態において、走査チェーンからのデータが伝播されるテスト中のロジック回路における、ロジック構成部分のレベル数を決定するACT信号を生成するため、LBISTシステムは、実際の機能ロジックではなく、ソフトウェアモジュールを使用可能である。ソフトウェアを含む、または、ソフトウェアモジュールを具備する構成部分を含むような本発明の実施形態は、典型的には、コンピュータで読み取り可能な媒体、例えば、フロッピー(登録商標)ディスク、CD−ROMなどに表現されるソフトウェアを有する。
他の実施形態は、テスト欠陥カバー範囲を改善する方法を具備することができる。例えば、一実施形態は、機能ロジック構成部分のレベル数における変化を導入することにより、欠陥カバー範囲を改善する方法を具備することができる。この方法は、1つ以上の走査チェーンに疑似ランダムビットシーケンスを走査する工程と、疑似ランダムビットシーケンス(または疑似ランダムビットシーケンスから生じたデータ)を伝播するロジックのレベル数を決定する工程と、決定された数のレベルのロジックを介して走査チェーンからのデータを伝播する工程と、データを捕捉する工程と、そして、走査チェーン外に結果データを走査する工程と、を具備する。他の実施形態は、BISTテストを実行するのと同程度に単純な方法を具備することができ、ここで、あるテストサイクルから次のテストサイクルに走査チェーンからのデータを伝播するテスト中の回路のレベル数は可変である。
本出願の開示は、ロジック回路をテストするためのLBISTシステムという状況において本発明を議論しているが、本発明は、より広い範囲で適用することができ、他の様々な状況において使用可能な点に留意する必要がある。例えば、ロジックゲートだけを具備するテスト回路に使用されるのではなく、本発明の幾つかの実施形態は、非ロジック構成部分を含む回路上のBIST型テストを実行するために使用可能である。更に、本発明の幾つかの実施形態は、テスト中の回路に外部にあるシステムの全て或いは一部において実施可能となる。従って、本出願の開示は、本発明をロジック回路のLBISTテストの分野に制限するものと解釈すべきではない。
ここで、「コンピュータで読み取り可能な媒体」は、コンピュータによって実行可能なプログラム命令を記憶することができるいかなる媒体をも意味する。例えば、媒体には、フロッピー(登録商標)ディスク、ハードディスクデバイス、CD−ROMS、DVD−ROMS、RAM、ROM、DASDアレイ、磁気テープ、フロッピー(登録商標)ディスケット、光記憶デバイスデバイスなどが含まれる。また、ここで、「コンピュータ」は、コンピュータで読み取り可能な媒体を読み込む、及び/またはそこ記載される機能を実行することができる、いかなるタイプのデータ処理システムも含むことを意図する。
当業者であれば、情報及び信号は、様々な異なる技術及び手法のいずれかを使用することにより、表現可能であることが理解できるであろう。例えば、上記の記載において言及されるデータ、指示、コマンド、情報、信号、ビット、記号、及びチップは、電圧、電流、電磁波、磁場または磁性粒子、光学場または光学粒子、またはそれらの組合せによって表現可能である。これらの情報及び信号は、開示のシステムの構成部分の間で、導線、金属的なトレース、ビア、光ファイバ、などを含む、任意の適切な伝達媒体を使用して伝達可能である。
当業者であれば、また、ここに開示される実施形態と関連して記載される様々な例示のロジックブロック、モジュール、回路及びアルゴリズム工程が、電子ハードウェア、コンピューターソフトウェア、或いはこれらの組合せとして実施可能となることが理解できるであろう。ハードウェア及びソフトウェアとのこの互換性を明示するため、様々な例示の構成部分、ブロック、モジュール、回路及び工程は、上記説明において、それらの機能性に関して一般的に記述されている。この種の機能性が、ハードウェアまたはソフトウェアとして実施されるかどうかは、全体的なシステムに課せられる特定の適用及び設計制約に依存する。当業者であれば、各特定の適用のために、上述の機能性を様々な態様で実施することが可能であろう。しかし、そのような実施上の決定は本発明の範囲からの離脱をもたらすものであると解釈されてはならない。
ここに開示される実施形態と関連して記載される様々な例示のロジックブロック、モジュール及び回路は、ここに記載される機能を実行するように、以下のような対象と共に実施可能となる。それらは、特定用途向けIC(ASIC)、フィールドプログラム可能なゲートアレイ(FPGAS)、多目的プロセッサ、デジタル信号プロセッサ(DSP)または他のロジックデバイス、ディスクリートゲートまたはトランジスターロジック、ディスクリートハードウェア構成部分、またはそれらの組合せである。多目的プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、状態機械などのいずれであってもよい。プロセッサはまた、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つ以上のマイクロプロセッサ、またはこの種の他の構成のような、コンピュータデバイスの組合せとして実施可能となる。
ここに開示される実施形態と関連して記載される方法またはアルゴリズムの工程は、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこれらの組合せにおいて、直接実施可能である。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または技術的に公知の他の記憶媒体のいずれにも配設可能である。典型的な記憶媒体はプロセッサに連結され、このプロセッサが、記憶媒体に対する情報の読み込み及び情報の書き込みを行うことができる。代りに、記憶媒体はプロセッサと一体であってもよい。プロセッサ及び記憶媒体はASICに配設可能である。ASICは利用者端末に配設可能である。代りに、プロセッサ及び記憶媒体は、利用者端末のディスクリート構成部分として配設可能である。
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
更に、本発明に係る実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施の形態に示される全構成要件から幾つかの構成要件が省略されることで発明が抽出された場合、その抽出された発明を実施する場合には省略部分が周知慣用技術で適宜補われるものである。以下に、それ等を例示する。
(1)回路構成をテストするための方法であって、
1つ以上の初期走査チェーンの夫々に対して、
(a)前記初期走査チェーンを、ビットの疑似ランダムパターンを具備するデータで満たす工程と、
(b)前記データが伝播される機能回路構成及び対応する後続の走査チェーンのレベル数を決定する工程と、
(c)前記初期走査チェーンから、前記決定されたレベル数の機能回路構成及び対応する後続の走査チェーンを通して前記データを伝播する工程と、
を具備する。
(2)上記(1)に記載の方法において、前記データが伝播される機能回路構成及び後続の走査チェーンのレベル数が可変である。
(3)上記(2)に記載の方法において、前記データが伝播される機能回路構成及び後続の走査チェーンのレベル数を決定する工程は、疑似ランダム信号を提供する工程と、前記疑似ランダム信号に基づいて、テストサイクルの機能段階の1つ以上のクロックサイクルを抑制する工程とを具備する。
(4)上記(3)に記載の方法において、前記疑似ランダム信号を提供する工程は、テスト中の回路の1つ以上の機能ロジック構成部分の出力を提供する工程を具備する。
(5)上記(1)に記載の方法において、テストサイクルの走査段階及び機能段階を規定する工程を更に具備し、ここで、前記初期走査チェーンを、ビットの疑似ランダムパターンで満たす工程は、前記走査段階で行われ、前記初期走査チェーンから、機能回路構成を介して、前記決定された数の後続の走査チェーンに前記データを伝播する工程は、前記機能段階で行われる。
(6)上記(5)に記載の方法において、クロック信号を生成すると共に、前記クロック信号を走査チェーンに提供する工程を更に具備し、ここで、前記クロック信号は、前記初期走査チェーンを前記ビットの疑似ランダムパターンで満たすための走査段階に対応する複数のクロックパルスと、前記初期走査チェーンから、機能回路構成を介して、前記決定された数の後続の走査チェーンに前記データを伝播するための機能段階に対応する複数のクロックパルスと、を具備する。
(7)上記(5)に記載の方法において、走査ゲート(SG)信号を生成する工程を更に具備し、ここで、前記走査チェーンは、前記ビットの疑似ランダムパターンによって満たされるか、或いは前記SG信号に基づいて先行する走査チェーンから伝播されるデータを受信するように制御される。
(8)上記(5)に記載の方法において、THOLD信号を生成する工程を更に具備し、ここで、前記生成されたクロック信号のパルスは前記THOLD信号によってイネイブルされる。
(9)上記(1)に記載の方法において、前記方法は組込み自己テスト回路構成において実施される。
(10)上記(1)に記載の方法において、前記工程(a)から(c)を繰り返す。
(11)上記(1)に記載の方法において、前記初期走査チェーンを満たすビットの疑似ランダムパターンを生成する工程を更に具備する。
(12)上記(11)に記載の方法において、前記初期走査チェーンを前記ビットの疑似ランダムパターンで満たす前に、前記ビットの疑似ランダムパターンを位相シフトする工程を更に具備する。
(13)上記(3)に記載の方法において、後続の走査チェーンの対応する1つにおいて、各初期走査チェーンから前記ビットの疑似ランダムパターンが伝播されることによってもたらされるデータを捕捉する工程を更に具備する。
(l4)上記(13)に記載の方法において、前記走査チェーンから前記ビットの疑似ランダムパターンが伝播されることによってもたらされるデータを、複数入力シグネチャレジスタ(MISR)に転送する工程を更に具備する。
(15)上記(14)に記載の方法において、前記走査チェーンから前記ビットの疑似ランダムパターンが伝播されることによってもたらされるデータを、前記データを前記MISRに転送する前に、圧縮する工程を更に具備する。
(16)テスト中の回路をテストするためのシステムであって、
前記テスト中の回路の対応するレベルに介在された複数の走査チェーンと、
前記走査チェーンに連結されたコントローラと、を具備し、前記コントローラは、前記複数の走査チェーンの少なくとも一部のデータが、前記テスト中の回路の可変数の前記レベルを介して伝播されるようにする。
(17)上記(16)に記載のシステムにおいて、前記コントローラは、テストサイクルの走査段階の間に前記走査チェーンを介してデータをシフトし、前記テストサイクルの機能段階の間にテスト中の回路の可変数のレベルを介して、前記走査チェーンからデータを伝播するように、前記走査チェーンを制御するように構成される。
(18)上記(16)に記載のシステムにおいて、前記コントローラは、前記複数の走査チェーンに入力されるクロック信号を生成するように構成されたローカル制御バッファ(LCB)を具備する。
(19)上記(18)に記載のシステムにおいて、走査段階の間、前記LCBは各走査チェーンを介してデータをシフトするために一連のクロックパルスを生成するように構成され、機能段階の間、前記LCBはデータをテスト中の回路の対応する数のレベルを介して伝播させるための可変数のクロックパルスを生成するように構成される。
(20)上記(19)に記載のシステムにおいて、前記LCBは、2つ以上の連続するテストサイクルの機能段階におけるクロックパルスの可変数を変えるように構成される。
(21)上記(20)に記載のシステムにおいて、前記LCBは、疑似ランダム入力信号に基づいて、前記機能段階におけるクロックパルスの可変数を変えるように構成される。
(22)上記(21)に記載のシステムにおいて、前記疑似ランダム入力信号は、前記テスト中の回路の1つ以上の機能ロジック構成部分の出力を具備する。
(23)上記(21)に記載のシステムにおいて、前記LCBは、前記疑似ランダム入力信号に基づいて、前記機能段階の間、1つ以上のクロックパルスを抑制することにより、前記機能段階におけるクロックパルスの可変数を変えるように構成される。
(24)上記(16)に記載のシステムにおいて、前記コントローラは、前記走査チェーンに連結されると共に、前記走査チェーンに走査されるビットの疑似ランダムパターンを生成するように構成された疑似ランダムパターンジェネレータ(PRPG)を具備する。
(25)上記(24)に記載のシステムにおいて、前記コントローラは、前記PRPGと前記走査チェーンとの間に連結された位相シフタを具備し、ここで、前記位相シフタは、前記PRPGによって生成された前記ビットの疑似ランダムパターンが前記走査チェーンに走査される前に、前記ビットの疑似ランダムパターンの位相をシフトすることように構成される。
(26)上記(16)に記載のシステムにおいて、前記コントローラは、前記走査チェーンに連結されると共に、前記走査チェーン外に走査されるデータに対応する一組のデータビットを記憶するように構成された複数入力シグネチャレジスタ(MISR)を具備する。
(27)上記(26)に記載のシステムにおいて、前記コントローラは、前記MISRと前記走査チェーンとの間に連結されたコンパクタを具備し、ここで、前記コンパクタは、前記走査チェーン外に走査される前記データを圧縮するように構成され、この圧縮されたデータがMISRに記憶される。
(28)上記(16)に記載のシステムにおいて、走査ゲート(SG)信号及びTHOLD信号を生成するように構成されたプログラム可能なクロックコントローラ(PCC)を更に具備し、ここで、前記コントローラは、前記THOLD信号に基づいて、マスタークロック信号のクロックパルスが前記走査チェーンを通過可能とするように構成され、また、前記コントローラは、前記SG信号に基づいて、走査データ及び機能データの何れか一方を選択して、前記走査チェーンの走査ラッチに提供するように構成される。
(29)上記(16)に記載のシステムにおいて、各走査チェーンは複数の走査ラッチを具備する。
(30)上記(16)に記載のシステムにおいて、各走査チェーンで、前記走査ラッチの夫々はデマルチプレクサに連結され、ここで、前記デマルチプレクサは、走査データ及び機能データの何れか一方を選択して、この選択したデータを前記走査ラッチに提供するように構成される。
(31)上記(30)に記載のシステムにおいて、前記デマルチプレクサは、前記デマルチプレクサで受信される走査ゲート信号に基づいて、走査データ及び機能データの何れか一方を選択するように構成される。
(32)上記(30)に記載のシステムにおいて、前記デマルチプレクサは、対応する走査チェーンの先行する走査ラッチからの出力を選択することによって走査データを選択すると共に、前記テスト中の回路の機能ロジック構成部分からの出力を選択することによって機能データを選択するように構成される。
(33)BISTシステムにおいて、複数の走査チェーンへのデータをクロック制御すると共に、機能ロジック及び前記複数の走査チェーンを介してデータを伝播するためのクロック信号を生成するように構成されたローカル制御バッファ(LCB)であって、
マスタークロック信号、走査ゲート(SG)信号、テストホールド(THOLD)信号、及びアクティブ(ACT)信号を受信するための複数の入力と、
ロジック回路構成と、
を具備し、前記ロジック回路構成は、
前記マスタークロック信号、前記SG信号、前記THOLD信号、及び前記ACT信号を受信し、
走査段階においてクロックパルスを生成し、ここで、前記走査段階のクロックパルスの数は、前記BISTシステムの複数の走査チェーンの夫々における走査ラッチの数と対応することと、
機能段階においてクロックパルスを生成し、ここで、前記機能段階のクロックパルスの数は、連続する機能段階の間で可変であることと、
生成されたクロックパルスを前記BISTシステムの前記走査ラッチに提供する、
ように構成される。
(34)上記(33)に記載のローカル制御バッファにおいて、前記ロジック回路構成は、受信されたACT信号に対応して、前記機能段階のクロックパルスを抑制することによって前記機能段階の前記クロックパルスを生成するように構成される。
(35)上記(34)に記載のローカル制御バッファにおいて、受信されたACT信号は、ビットの疑似ランダムシーケンスを具備する。
(36)上記(34)に記載のローカル制御バッファにおいて、前記LCBは、テスト中の回路の1つ以上機能構成部分の出力に連結され、前記テスト中の回路の前記1つ以上の機能構成部分の出力からACT信号を受信するように構成される。
(37)上記(33)に記載のローカル制御バッファにおいて、
前記LCBは、第1のORゲート、ANDゲート、及び第2のORゲートを具備することと、
前記第1のORゲートは、前記SG信号及び前記ACT信号を入力として受信し、第1の出力信号を生成することと、
前記ANDゲートは、前記第1の出力信号及び前記THOLD信号を入力として受信し、第2の出力信号を生成することと、
前記第2のORゲートは、前記第2の出力信号及び前記マスタークロック信号を入力として受信し、第3の出力信号を生成することと、
前記BISTシステムにおいて、前記複数の走査チェーンへのデータをクロック制御すると共に、前記機能ロジック及び前記複数の走査チェーンを介してデータを伝播するためのクロック信号は、前記第3の出力信号を具備することと、
を含む。
(38)上記(33)に記載のローカル制御バッファにおいて、
前記LCBは、第1及び第2のORゲート及び第1及び第2のANDゲートを具備することと、
前記第1のAMDゲートは、前記SG信号及び電源モードオーバーライド信号を入力として受信し、第1の出力信号を生成することと、
前記第1のORゲートは、前記第1の出力信号及び前記ACT信号を入力として受信し、第2の出力信号を生成することと、
前記第2のANDゲートは、前記第2の出力信号及び前記THOLD信号を入力として受信し、第3の出力信号を生成することと、
前記第2のORゲートは、前記第3の出力信号及び前記マスタークロック信号を入力として受信し、第4の出力信号を生成することと、
前記BISTシステムにおいて、前記複数の走査チェーンへのデータをクロック制御すると共に、前記機能ロジック及び前記複数の走査チェーンを介してデータを伝播するためのクロック信号は、前記第4の出力信号を具備することと、
を含む。
(39)BISTシステムにおいて、複数の走査チェーンへのデータをクロック制御すると共に、機能ロジック及び前記複数の走査チェーンを介してデータを伝播するためのクロック信号を生成するための方法であって、
マスタークロック信号、走査ゲート(SG)信号、テストホールド(THOLD)信号、及びアクティブ(ACT)信号を受信する工程と、
走査段階においてクロックパルスを生成する工程と、ここで、前記走査段階のクロックパルスの数は、前記BISTシステムの複数の走査チェーンの夫々における走査ラッチの数と対応することと、
機能段階においてクロックパルスを生成する工程と、ここで、前記機能段階のクロックパルスの数は、連続する機能段階の間で可変であることと、
生成されたクロックパルスを前記BISTシステムの前記走査ラッチに提供する工程と、
を具備する。
(40)上記(39)に記載の方法において、前記走査段階においてクロックパルスを生成する工程は、受信されたACT信号に対応して、前記機能段階のクロックパルスを抑制する工程を具備する。
(41)上記(40)に記載の方法において、受信されたACT信号は、ビットの疑似ランダムシーケンスを具備する。
(42)上記(39)に記載の方法において、前記ACT信号を受信する工程は、前記テスト中の回路の前記1つ以上機能構成部分の出力から前記ACT信号を受信する工程を具備する。
(43)上記(39)に記載の方法において、
前記SG信号及び前記ACT信号に対してOR(論理和)処理をし、第1の出力信号を生成する工程と、
前記第1の出力信号及び前記THOLD信号に対してAND(論理積)処理をし、第2の出力信号を生成する工程と、
前記第2の出力信号及び前記マスタークロック信号に対してOR(論理和)処理をし、前記BISTシステムにおいて、前記複数の走査チェーンへのデータをクロック制御すると共に、前記機能ロジック及び前記複数の走査チェーンを介してデータを伝播するための前記クロック信号を生成する工程と、
を更に具備する。
(44)上記(39)に記載の方法において、
前記SG信号及び電源モードオーバーライド(PMO)信号に対してAND(論理積)処理をし、第1の出力信号を生成する工程と、
前記第1の出力信号及び前記ACT信号に対してOR(論理和)処理をし、第2の出力信号を生成する工程と、
前記第2の出力信号及び前記THOLD信号に対してAND(論理積)処理をし、第3の出力信号を生成する工程と、
前記第3の出力信号及び前記マスタークロック信号に対してOR(論理和)処理をし、前記BISTシステムにおいて、前記複数の走査チェーンへのデータをクロック制御すると共に、前記機能ロジック及び前記複数の走査チェーンを介してデータを伝播するための前記クロック信号を生成する工程と、
を更に具備する。
210、320…疑似ランダムパターンジェネレータ(PRPG)、220、370…複数入力シグネチャレジスタ(MISR)、310…ロジック組込み自己テスト(LBIST)コントローラ、330…位相シフタ、340〜344…走査チェーン、350…ロジック回路、360…コンパクタ、1110…モードカウンタ、1130…サイクルカウンタ、1140…波カウンタ、1121〜1124、1151、1161…セレクタ、1131、1141…コンパレータ、1132…機能モードサイクルレジスタ、1133…走査モードサイクルレジスタ、1142…機能波サイクルレジスタ、1143…走査波サイクルレジスタ、1152…機能波データレジスタ、1153…走査波データレジスタ、1162…機能波データレジスタ、1163…走査波データレジスタ。