JP2009259398A - プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 - Google Patents
プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 Download PDFInfo
- Publication number
- JP2009259398A JP2009259398A JP2009185404A JP2009185404A JP2009259398A JP 2009259398 A JP2009259398 A JP 2009259398A JP 2009185404 A JP2009185404 A JP 2009185404A JP 2009185404 A JP2009185404 A JP 2009185404A JP 2009259398 A JP2009259398 A JP 2009259398A
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- algorithm
- test
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3187—Built-in tests
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31724—Test controller, e.g. BIST state machine
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/20—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0405—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals comprising complete test loop
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C2029/5604—Display of error information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
【解決手段】プログラマブル・メモリ・ビルト・イン・セルフ・テスト(MBIST)の方法、装置、及びシステムを開示する。開示された技術の例示的実施形態は、例えば、製造時テストにおいて、集積回路上に配置された1つ又は複数のメモリをテストするために用いられることが可能である。
【選択図】図4
Description
しいアルゴリズムが開発される場合がある。そのような、後から開発されたアルゴリズムを用いて製造済みチップをテストしようとすると、プログラマブルMBISTコントローラがない場合には、チップが製造された後にそのような新しいアルゴリズムをロード及び適用しなければならない。フィールド・プログラマブル・メモリBISTは、現場におけるテスト・アルゴリズムの変更を非常に柔軟に行えるようにする。
一部の例示的実施形態によれば、1つ又は複数の入れ子ループを有するメモリ・テスト・アルゴリズムをサポートするために、プログラマブルMBIST回路が提供される。
特定の実施形態によれば、MBISTコントローラは、(例えば、MBIST回路テストの実行時に)メモリ・テストをスケジュールするようにプログラム可能である。例えば、テストのために、単一のプログラマブルMBIST回路に、複数のメモリを割り当てたり、組み合わせたりすることが可能である。命令は、MBIST回路の動作時に、次のメモリ回路テスト操作のうちの1つ又は複数が実行されるように、テスト・アルゴリズムを実行するようMBIST回路をプログラムする。(a)MBIST回路によってテストされる複数のメモリに対し、任意の1つ又は複数のテスト・アルゴリズムを、順次連続的に適用する。(b)MIST回路によってテストされる複数のメモリに対し、任意の1つ又は複数のテスト・アルゴリズムを、順次インタリーブ的に適用する。並びに(c)テストのためにMBIST回路に割り当てられた複数のメモリから、1つ又は複数のメモリを選択する。
MBIST回路は、自動テスト装置(ATE)から受け取った命令に応答して、少なくとも1つのテスト・アルゴリズムを、少なくとも1つのメモリに適用するように構成される。そのような実施形態では、MBIST回路は、ATEから命令を受け取るように適合された命令メモリと、前記命令をデコードし、構成命令とアルゴリズム命令とを分離するよう動作可能な命令デコーダと、デコードされた命令に応答して、デコードされた命令から決定されたアドレス指定スキームに従って、テストされるメモリのセルをアドレス指定するアドレス・ジェネレータであって、アドレス指定スキームは、アドレス指定されたセルにテスト・データが適用されると、少なくとも1つのメモリをテストするために前記少なくとも1つのテスト・アルゴリズムが実行されるように、メモリのセルをアドレス指定する、アドレス・ジェネレータと、デコードされた命令から決定されたように、前記少なくとも1つのテスト・アルゴリズムがメモリに対して実行されるように、アドレス指定されたメモリ・セルにテスト・データを適用するデータ・ジェネレータであって、メモリは、データ・ジェネレータからデータを受け取った、少なくとも選択されたセルからのテスト応答出力を提示する、データ・ジェネレータと、テスト結果を提供すべく、期待応答データと、選択されたセルから出力された実際のテスト応答とを比較するよう動作可能な出力応答アナライザと、テスト結果によって故障が示された場合に診断データを記録する診断モニタを更に備える集積回路とを備える。
特定の実施形態の更なる態様によれば、ユーザが、合成されたプログラマブルMBIST回路をカスタマイズ(即ち、インクリメンタル又はモジュール的に仕様を指定)することによって、合成されたMBIST回路が、ユーザの望むアルゴリズムを実行できるようにすることを、可能にする柔軟性が提供される。例えば、ユーザは、集積回路の1つ又は複数のメモリをテストするために、MBIST回路によって実行されることをユーザが望む1つ又は複数のメモリ・テスト・アルゴリズムを適用するために必要な入れ子ループの数を、指定することが可能である。合成されたMBIST回路は、ユーザによって指定された数の入れ子ループを有するメモリ・テスト・アルゴリズムを実行することが可能であるように構成される。別の例として、ユーザは、集積回路の1つ又は複数のメモリをテストするために、複数のカテゴリのアルゴリズムの中から、MBIST回路によって実行されることをユーザが望む少なくとも1つのカテゴリのメモリ・テスト・アルゴリズムを指定することが可能である。合成されたMBIST回路は、ユーザによって指定された少なくとも1つのカテゴリのアルゴリズムの中からメモリ・テスト・アルゴリズムを実行することが可能であるように構成される。更に別の例として、ユーザは、実行されることをユーザが望むメモリ・テスト・アルゴリズムをMBIST回路が実行するために必要なアドレス・ジェネレータの数を指定することが可能である。合成されたMBIST回路は、実行されることをユーザが望むメモリ・テスト・アルゴリズムを実行するために、ユーザによって指定された数のアドレス・ジェネレータを有するように構成される。
されていなかった欠陥の原因を探すことを支援するために、追加メモリ・テスト・アルゴリズムを集積回路に適用すべく、実行時にプログラムされることが可能である。
プログラマブルMBISTは、メモリのテストに用いられる、ビルトイン・カスタム・プロセッサを有するコントローラをチップ上に備える。プログラマブル・コントローラが、特定のクラスのアルゴリズムとその変形形態とを適用する機能を提供し、適用されるべきアルゴリズムを変更することを可能にする。プログラマブルMBISTコントローラの(全ての実施形態ではない)特定の望ましい実施形態の主たる利点は、以下のように要約されることが可能である。
・実行時にテスト・アルゴリズムを修正することを可能にする。これは、単にテスト・プログラムを修正することによって行われることが可能である。
・技術の急激な変化により、製造工程において発現しうるあらゆるタイプの欠陥を予測することは困難な場合が多い。製造工程の立ち上げ時期には、適用されたテストをすり抜ける欠陥を特定し、それらの欠陥をターゲットとするように既存のアルゴリズムを修正したり、新しいアルゴリズムを導入したりし、それらを捕捉するためにテスト・プログラムを実行時に変更することが可能である。
・多くの場合、チップとその修正版は、異なる技術で製造されるのに十分な長さの設計寿命を有する。チップが最初に設計されたときの特定の技術に対して有効であることが実証されていた特定のテスト群が、チップがより新しい技術に移行したときには不十分になる場合がある。そのような状況下では、その新しい技術に関連する欠陥を検出するために、追加のアルゴリズムが適用されることが必要になる場合がある。新しいアルゴリズムは、プログラマブル・メモリBISTコントローラ内でエンコードされ、テスト中のメモリに適用されることが可能である。
・プログラマブル・コントローラは更に、ある設計の異なる修正版、或いは異なる設計にまたがって再利用されることが可能である。これにより、BISTコントローラの検証時
間が短縮される。
2.0 概略説明
フィールド・プログラマブルMBISTコントローラの選択された実施形態のアーキテクチャは、実行時にテスト・プログラムを指定できることに加えて、以下の条件を満たすように構成されることが望ましい。
1.MBISTArchitect(登録商標)製品によって現在サポートされている全てのアルゴリズムをサポートする。
2.より高い品質要件を満たすために、幾つかの先進的アルゴリズム(その例については後述する)をサポートする。
3.様々なデータ・バックグラウンドと、アドレス順序付けと、他の、記載されたアルゴリズムの実行に必要なアドレス指定スキームとに対応する。
4.少なくとも特定の望ましいアルゴリズムにおいて、そのアルゴリズムが実動作速度で(at−speed)(例えば、テストされるメモリの設計動作速度において)適用可能であるように、速度要件を満たす。
5.扱いやすい面積オーバヘッドを有する。
6.新しいクラスのアルゴリズムをサポートするための、将来の拡張が容易である。
2.1 アルゴリズムのサポート
プログラマブルMBISTコントローラによってサポートされることが望ましい様々なアルゴリズムを、このセクションに列挙されるカテゴリにおおまかに分類することが可能である。これらのアルゴリズムの目標は、機能的故障の低減であり、これは、故障モデルが、メモリの機能性に基づくだけではなく、それらの電気的或いは幾何学的レベルの特性も考慮することを意味する。具体的には、これらのアルゴリズムは、単一のセルが関与する故障(縮退故障及び遷移故障)、又はペアのセルが関与する故障(結合故障)を対象とする。本開示のフィールド・プログラマブルBISTコントローラは、望ましくは、そのようなアルゴリズムをサポートするだけでなく、メモリのテスト品質を向上させることを目標とする、追加クラスのアルゴリズムもサポートすることが望ましい。
2.1.1 Marchベース・アルゴリズム
Marchテストは、March要素の有限シーケンスからなる。March要素は、全てのメモリ・アドレスを任意の順序でトラバースすることによってメモリ内の全てのセルに適用される操作の有限シーケンスである。メモリ・セルにアクセスする順序は、全てのMarch要素に対して同一であってよく、幾つかのMarch要素については、反転された逆の順序であってもよい。変形形態として、March要素においては、操作は、アドレスが現在のセルから一定の距離にあるメモリ・セルにアクセスすることが可能である。
・March C+(March 2とも呼ばれる)
・March C
・March C−(March 1とも呼ばれる)
・March 3
・Column March
・ユニーク・データ
・行ストライプ/列ストライプ
上記のアルゴリズム・セットは、主として、メモリ内の以下のタイプの故障、即ち、縮退故障(stuck−at faults)(SAF)、遷移故障(transition faults)(TF)、結合故障(coupling faults)(CF)、逆結合故障(inversion coupling faults)(CFin)、冪等結合故障(idempotent coupling faults)(CFid)、開放固着故障(stuck−open faults)(SOF)、及び特定アドレス・デコーダ故障(certain address decoder faults)(AD)を対象とする。Marchアルゴリズムの趣旨はシンプルである。即ち、全てのメモリ・セルは状態0及び状態1になることが可能でなければならないので、TF及びCFを検出するために、全てのセルに立ち上がり遷移と立ち下がり遷移とを行わせるというものである。
う。通常、アドレスをインクリメント又はデクリメントする刻み幅は1であるが、他の刻み幅を用いることも可能である。個々のテスト・ステップでは、同一アドレス・ロケーションにおいて様々な操作が実行される。通常、これは、単一のアドレス・ジェネレータだけを用いて達成可能である。上述のテストを適用する際には、様々なデータ・バックグラウンドを用いることが可能である。
・ステップ内の操作(「r」又は「w」を意味する)は、ユーザによって、それぞれの工程に適した任意のシーケンスに変更されることが可能である。
・あるアルゴリズムに対応する操作の総数は、ユーザが選択するものに応じて変わることも可能である。
・1つの変形形態は、アドレス「n」にアクセスするステップにある。即ち、操作の1つが、アドレス「n−1」又は「n+1」にアクセスすることが可能である。これらの変形形態は、本明細書で開示される例示的フィールド・プログラマブルBISTコントローラの特定の実施形態によってサポートされることが望ましい。
2.1.2 他の例示的テスト
これらのクラスのテストは、リフレッシュ/センス増幅器のリカバリ失敗のような非機能的故障の検出に役立つ。これらは、Marchアルゴリズムより複雑であり、テスト適用時間は長くかかるが、より良好な故障検出率を実現する。以下では、本明細書で開示されるフィールド・プログラマブルMBISTコントローラを用いて(例えば、プログラミングにより)選択的に実装されることが可能であることが望ましい、幾つかの例示的な従来型テスト・アルゴリズムについて説明する。
2.1.2.1 Checkerboard(チェッカーボード)アルゴリズム
Checkerboardアルゴリズムは、一意アドレス・アルゴリズムのクラスであり、Marchアルゴリズムの変形形態である行ストライプ・アルゴリズム及び列ストライプ・アルゴリズムである。これら全てのアルゴリズムにおいて、アドレス指定スキームは、Marchクラスのアルゴリズムと同じであるが、書き込まれるデータがアドレス依存である。本開示のフィールド・プログラマブルBISTコントローラは、そのようなCheckerboardアルゴリズムを全てサポートすることが望ましい。
c_1の全てのセルに1を書き込み(W1)、c_2の全てのセルに0を書き込む(W0
)。
全てのワードを読み出す。
c_1の全てのセルに0を書き込み(W0)、c_2の全てのセルに1を書き込む(W1)。
全てのワードを読み出す。
2.1.2.2 Galloping(ギャロップ)/Walking(ウォーキング)アルゴリズム
GALPAT (GALlopping PATtern)及びWalking 1/0の例示的アルゴリズムは、性質が非常によく似ている。これらのケースの何れにおいても、メモリは、ベース・セルと残りのセル(ローカルにアドレス指定されたセルとも呼ばれる)との2つのカテゴリに分けられる。ベース・セルを除くメモリ全体が0(又は1)で埋められ、ベース・セルは反対の値(例えば、1(又は0))を有する。テスト時には、ベース・セルがメモリ内をウォーキングする。ベース・セル内の値が変更されると、他の全てのメモリ・セルが読み出されて、それらがベース・セルへの書き込み操作の影響を受けていないかどうかが検証され、その、ベース・セル以外のセルの読み出し操作の後にベース・セルが読み出される。GALPATアルゴリズムとWalking 0/1アルゴリズムとの違いは、ベース・セルが読み出される方法にある。Walking 0/1の場合は、各ステップの後に、全てのセルが読み出され、ベース・セルはその最後に読み出される。一方、GALPATアルゴリズムでは、ベース・セル以外の全てのセルが読み出されている間に、各セルが読み出された後にベース・セルも読み出される。これらのアルゴリズムの変形形態として、ローカル・セルが、ベース・セルと同じ行又は同じ列にあるセルだけであることが可能なケースや、ギャロップ/ウォーキング・ステップに別途読み出し又は書き込み操作を追加することが可能なケース(例えば、ギャロップ・ステップ(W0,(R1,R0),W1)が(W0,R0,(R1,R0),W1)に修正されることも可能であるケース)がある。
GALPATアルゴリズム
2.1.2.3 Sliding diagonal(斜めスライド)
GALPATアルゴリズム及びWalking 0/1アルゴリズムの複雑度が非常に高いので、Sliding diagonalは、それらに対する、より短い代替である
。このケースの例では、斜め線上にあるセル(以下、斜めセル)が、単一のベース・セルの代わりに、パラレルにアクセスされる。斜めセルがアドレス指定されるため、行デコーダ及び列デコーダの両方が同時にテストされる。例示的アルゴリズムは、メモリ全体に、全て1又は全て0を書き込むことから始まる。バックグラウンドが0であれば斜め線に1が書き込まれ、バックグラウンドが1であれば斜め線に0が書き込まれる。メモリ全体が連続して読み出され、その後に、斜め線が右にシフトされる。このプロセスは、全てのセルが斜め線の一部になるまで繰り返される。Sliding diagonalアルゴリズムは、全てのSAF及びTFを検出する。更に、このアルゴリズムは、ほとんどのAFと、一部のCFとを検出する。全てのCFが検出されるわけではないのは、全ての斜めセルが連続して書き込まれる結果、一部の結合故障が別の一部の結合故障によってマスクされるためである。
2.1.2.4 Butterfly(バタフライ)
Butterflyは、テストの適用の複雑度を低減する、GALPATテストの変形形態である。GALPATアルゴリズムと同様に、メモリは、例えば、1を有するベース・セルを除き、バックグラウンド0で埋められる。テスト適用時には、ベース・セルがメモリ内を実際にウォーキングする。読み出し時には、ベース・セルに直接隣接する(即ち、ベース・セルからの距離が1である)(東、西、北、及び南側の)4個のセルだけが読み出される。実装に応じて、距離が2、4、8、及び16である他の近接セルがその次に読み出されることが可能である。より一般的には、このアルゴリズムのローカル・セルは、ベース・セルから4つの方向(東、西、南、及び北)に距離2nを有する。即ち、ローカル・セルのアドレスは、(ベース行/列アドレス±2n)である(ただし、nは0からN−1であり、Nは行アドレス又は列アドレスのビット数である)。ここで、メモリは正方形であると仮定する。必要に応じて別途読み出し又は書き込み操作を追加することが可能である。
Butterfly及び斜めスライドは、2レベルのルーピングを有し、実動作速度テスト用に2つのアドレス・ジェネレータを必要とする場合がある。
2.1.3 その他のメモリ・テスト・アルゴリズム
以下の例示的テストは、これまでに説明したアルゴリズムでは検出されない故障の一部をカバーする。以下のアルゴリズムが対象とする故障は、アドレス・デコーダにおいて、メモリ・セルにおいて、書き込みイネーブル信号において、或いはその他の箇所において発現する。これらの故障を対象として、様々なアルゴリズムと、その更新されたバージョンとが提案されている。以下のサブセクションでは、そのような故障を対象とする幾つかのアルゴリズムについて説明する。
2.1.3.1 アドレス・デコーダPMOS開放故障
これらの故障は、通常は、CMOS技術を用いて作られたアドレス・デコーダにおいて発生し、主に、接触不良によるものか、製造工程に原因がある。CMOS技術では、開放欠陥のサブセットだけが縮退挙動を引き起こし、Marchテストにより検出されることが可能である。しかしながら、他のそのような欠陥は、デコーダの組合せ回路を順序回路のように動作させるため、従来のMarchテストでは検出できない。これらの故障は、回路の遅延動作を変化させることもあり、従って、全ての故障を検出するためには、テス
トを最高速度で行わなければならない。
われるように、入力アドレス値に応じて、そのセレクタ線の何れか1つを選択することになっている。第1のセレクタ線(WL0)を制御するNANDゲート32に開放PMOSトランジスタがあると仮定する。このケースでの故障アドレス・デコーダの動作が、上の表2に示されている。アドレス線(a,b)の値が「00」であれば、第1のメモリ・ロケーションにデータが書き込まれる。しかしながら、アドレスが「01」に変更されると、データは第1及び第2の両方のメモリ・ロケーションに書き込まれる。故障がない環境であれば、アドレス・ビットが「01」のときには、セレクタ線WL1だけが選択されているはずである。しかしながら、第1のNANDゲートの開放固着故障のために、セレクタ線WL0は、古い値を保持し、選択された状態になる。言い換えると、アドレス「00」の内容と異なる、増感された値がアドレス「01」に書き込まれた場合に、アドレス・ロケーション「00」を後から読み出すことにより、故障が検出されることが可能である。
2.1.3.2 ビット/バイト書き込みイネーブル故障
以下の故障モデルは、特定のメモリに対して複数の書き込みイネーブル信号があるときに発現する。従来のアルゴリズムが適用された場合、コントローラは、そのアルゴリズムの適用中に、全ての書き込みイネーブル信号がアサートされていると見なす。従って、特定の書き込みイネーブル信号が、アサートされた値で縮退していると、それらの故障が検出されないまま残る。同様に、書き込みイネーブル信号のペアの間の結合故障は、そのようなアルゴリズムでは検出されないまま残る。以下の例示的テストは、アドレス・デコーダ又は実際のメモリ・セルのテストとは独立である、書き込みイネーブル信号の故障を対象とするように設計されることが望ましい。
WEN=0x00、0x00を最低及び最高メモリ・アドレス・ロケーションに書き込むWEN=0x55、0xFFを最低及び最高メモリ・アドレス・ロケーションに書き込む最低及び最高メモリ・アドレス・ロケーションから0xAAを読み出す
WEN=0x00、0x00を最低及び最高メモリ・アドレス・ロケーションに書き込むWEN=0xAA、0xFFを最低及び最高メモリ・アドレス・ロケーションに書き込む最低及び最高メモリ・アドレス・ロケーションから0x55を読み出す
上記のアルゴリズムは、12個のベクトルだけの適用を必要とする。書き込みイネーブル信号のテストがどの程度必要かに応じて、アルゴリズムの複雑度を変えることが可能である。しかしながら、アルゴリズムは、常に、単一メモリ・ワードに対応する書き込みイネーブル信号の数の線形関数であることが望ましい。
2.1.3.3 マルチポート・テスト
一部の実施形態の例示的アーキテクチャは、マルチポート・テストに関連するアルゴリズムをサポートすることが望ましい。例えば、ポート相互作用アルゴリズムがサポートされることが可能である。更に、そのアーキテクチャは、様々なポートを介するメモリの読み出し及び書き込みが同時に可能かどうかをチェックする「ポート隔離」テストをサポートすることも望ましい。1つ又は2つのアドレス・ジェネレータを必要とするアドレス指定スキームが必要な、これらのアルゴリズムの変形形態がサポートされることが可能である。
2.1.3.4 チェックサム
一部の実施形態の例示的アーキテクチャは更に、メモリ・ロケーションを読み出すことにより、ビットのチェックサムを行うことが可能であることが望ましい。これは、メモリに書き込まれるデータの予測が困難になるケースにおいて有用である。例えば、メモリへの書き込みを基本モードで行うことが必要であって、BISTコントローラがそのメモリの内容を読み出してチェックサムを生成することが必要である場合、これは、この例示的
アーキテクチャによってサポートされる。
2.1.3.5 入れ子ループ
以下に開示される代替アーキテクチャは、個々のアルゴリズム・ステップにおいて任意の数の入れ子ループをテストするように設計される。3個以上の入れ子ループを有するアルゴリズムがある場合、代替アーキテクチャは、例えば、複数のアドレス・ジェネレータを合成したり、既存のジェネレータを流用して、別のループで用いられる別のスキームをアドレス指定したりすることが可能である。
3.0 プログラマブルMBISTコントローラの例示的な第1の実施形態
プログラマブル・コントローラの例示的実施形態のアーキテクチャは、2つの主要部分、即ち、命令セットとハードウェア設計とを含むことが望ましい。命令セットは、プログラマブル・コントローラが、前のセクションで説明された全てのアルゴリズムと、将来選択される可能性がある他のアルゴリズムとを実行することが可能であるように、設計されることが望ましい。一部の実施形態では、コントローラは、アルゴリズムのより小さなセット、又は1つだけのアルゴリズム・タイプをサポートするようにプログラマブルであってよい。更に、アーキテクチャは、少なくとも特定のクラスのアルゴリズムについて、カスタマイズされたアルゴリズムをサポートする柔軟性を備えることが望ましい。一部のクラスのアルゴリズムについては、柔軟性はあっても、プログラマブル・コントローラのハードウェア・オーバヘッドが、従来のハードワイヤードMBISTコントローラに比べて過剰にならないように、アルゴリズムの選択可能性が制限又は限定されてもよい。
・プログラマブルMBISTコントローラの望ましい形態は、ベース・アドレスだけをインクリメント/デクリメントして、アクセスの順序を昇順又は降順で指定することが可能である(March及びCheckerboard)。
・プログラマブルMBISTコントローラの望ましい形態は、ベース・アドレスについて、「行を先に/列を先に」方式でアドレス指定を実行することが可能である。これは、Col_March1(Marchテスト・アルゴリズムのタイプ)又は「行を先に/列を先に」アルゴリズムのために望ましくは必要なアドレス指定スキームを示す。Sliding Diagonalアルゴリズムの場合、ベース・アドレスは、セル・アレイ内の斜め線に沿って特定のパターンが書き込まれ、その後、メモリ全体が読み出されるように、設定されることが望ましい。
・現時点では、ほとんどのMarchアルゴリズムにおいて、(rwr)Bのようなステップが存在すれば必ず、そのステップは、同じベース・アドレス(B)において操作が行
われることを示す。しかしながら、プログラマブル・コントローラの望ましい形態は、ベース・アドレスの近隣のアドレスにおける読み出し又は書き込み操作をサポートする。例えば、(rBwBrB+1)又は(rBwBrB−1)は、それぞれ、ベース・アドレスをインクリメント又はデクリメントした後に得られたメモリ・アドレスから第2の読み出し操作が行われることを示す。
・ユーザ又は一形態におけるコントローラは、テストが適用されるべき範囲の最大アドレスと最小アドレスとを設定できることが望ましい。これにより、テスト適用時のメモリ・アドレスの範囲を柔軟に選択することが可能になる。
・望ましい形態のプログラマブルMBISTコントローラは、ベース・アドレスの値に対して相対的にローカル・アドレスを設定することが可能である。これは、ベース・アドレス、又はベース・アドレスを除く残り全てのアドレス(GALPAT及びWalking
0/1)と等しいことが可能である。
・一形態におけるプログラマブルMBISTコントローラは更に、ベース・アドレスから必要な全ての方向に特定のオフセット(1、2、4、・・・)でローカル・アドレスを設定できることが望ましい。これは、Butterflyアルゴリズムに対応する。
・一形態におけるプログラマブルMBISTコントローラは更に、ベース・アドレスに対してハミング距離が1である特定のオフセットでローカル・アドレスを設定できることが望ましい(これは、アドレス・デコーダのPMOS開放故障の検出に対応する)。
・一形態におけるプログラマブルMBISTコントローラは更に、「行を先に」、「列を先に」、「行のみ」、及び「列のみ」の方式の何れかにローカル・アドレス方向を変更できることが望ましい。例示的なデフォルトのアプローチは、ローカル・アドレスを「行を先に」方式に変更することである。
3.データ/データ反転:データが特定のメモリ・アドレスに書き込まれる前に、データが反転されるべきであるとして書き込まれるかどうかを、プログラマブルMBISTコントローラに通知することが望ましい。これは、メモリの初期設定時にデータ・バックグラウンドかデータ・バックグラウンドの反転かを選択する際にも役立つ。
a.「列を先に」又は「行を先に」方式でのインクリメント又はデクリメント。
b.単一列又は単一行に沿ってのインクリメント又はデクリメント。
c.最初の斜め線に沿ってのインクリメント又はデクリメント。
a.XOR。walking 1と、選択されたアドレス・レジスタとの排他的論理和から、選択されたアドレス・レジスタからハミング距離1だけ離れている全てのアドレスを含むアドレス・シーケンスが生成される。
b.オフセット。walking 1は、選択されたアドレス・レジスタからのオフセットとして用いられることが可能である。
a.未修正アドレス。
b.アドレスの反転
c.アドレス+インデックス・オフセット
d.アドレス−インデックス・オフセット
7.メモリ・アドレス範囲。ループは、望ましくはメモリ・アドレス範囲全体に対して動作可能であるか、先頭アドレス値及び最終アドレス値を指定することなどによって、アドレス空間のある範囲に限定されることが可能である。メモリ・テスト・アセンブリ・プロセスは、望ましくは、テスト・アルゴリズムを評価し、指定されたアドレス範囲の妥当性を検証する。例えば、開始アドレス及びアドレス操作定義に対して最終アドレスに到達することが可能であることを確認する評価である。
用途がより限定されたプログラマブルMBISTコントローラは、前述の機能の全てを備えていなくてもよい。即ち、そのような機能の1つ又は複数のサブセットが、必要に応
じてプログラマブルMBISTコントローラに含まれることが可能である。
3.1 命令の設計
様々な命令の機能性が、2つのカテゴリ又は命令タイプ、即ち、アルゴリズム命令と構成命令とにグループ分けされることが望ましい。アルゴリズム命令は、望ましくは、アドレス空間において実行されることが必要な操作を指定することに直接関連する命令である。アルゴリズム命令は、テスト・アルゴリズム・ステップの実行時に実行されるべきメモリ・アクセス操作に対応する。一形態では、アルゴリズム命令は、使用されるべきアドレス・レジスタ及び変更子と、データ・パターン変更子と、メモリ・アクセス操作とを選択する。一方、構成命令は、望ましくは、テスト・アルゴリズムの実行時に各種操作の制御を指定する命令である。プログラマブルMBISTコントローラの選択された第1の実施形態における構成命令は、望ましくは、後続の命令群のデコード方法と、アルゴリズムに必要なスキームに対応してアドレスがどのように変化するか、と、異なる操作間でデータがどのように変更されるか、とを、コントローラが知るために適用されるアルゴリズムを指定する。構成命令は更に、命令デコーダが、命令をどのようにロードされ、適切な制御信号をどのように生成するかを設定する。構成命令は、一形態では、実行されようとするテスト・アルゴリズム・ステップ全体にわたってプログラマブルMBISTコントローラ及び他のアクティビティの構成を修正するために、デコードされ、実行される。命令を2つの別々のセットに区別することは、命令をデコードすることと、特に有利な実施形態において命令を実動作速度でフェッチ及びデコードできるようにすることとに関連するタイミング問題に柔軟に対処することを可能にする。命令をこれら2つのカテゴリに分離することは、望ましい形態のプログラマブルMBISTコントローラが、構成命令を遭遇時に処理することと、アルゴリズム命令を、アルゴリズム・ステップ全体が完了するまでバッファリングすることとを可能にする。テスト・アルゴリズム・ステップ全体が遭遇されると、例示的プログラマブルMBISTコントローラがメモリ・アクセス操作及びループの実行を開始する。一例では、構成命令は、プログラマブルMBISTコントローラのループ入れ子メカニズムと相互に作用して、そのメカニズムに、ループに入らせること、又はループを終了させることが可能である。
3.1.1 アルゴリズム命令
例えば、ビット[0]は、命令がアルゴリズム命令か構成命令かを指定するものとする。更に、ビット[0]が「1」であれば、命令がアルゴリズム命令であるとする。図3の例では、例示的アルゴリズム命令ワードの定義は、次のとおりである。
・ビット[0] − 2つのタイプの命令(アルゴリズム命令か構成命令か)を区別する。この例では、アルゴリズム命令に対応する「1」である。
・ビット[1] − 特定のメモリ・ロケーションに対して実行されるのが読み出し操作か書き込み操作かを指定する。読み出し操作又は書き込み操作は、メモリ・ワード全体に対して適用されることが望ましい。具体例として、このビットの値「0」は、読み出し操作を示し、このビットの値「1」は、書き込み操作を示す。
・ビット[2] − この例では、メモリ・ロケーションから読み出されるか、メモリ・ロケーションに書き込まれるデータが、データ・バックグラウンドかデータ・バックグラウンドの反転かを示す。この例では、このビットの値「0」は、データ・バックグラウンドに対応するデータが選択されていることを示し、値「1」は、データ・バックグラウンドの反転が選択されていることを示す。
・ビット[4:3] − これら2つのビットは、この例では、データの書き込み又は読
み出しに用いられるアドレス指定スキームを示す。後述するように、この例では、関係するアドレスが2つあり、それらは、ベース・アドレス及びローカル・アドレスである。ほとんどのMarchアルゴリズムでは、ベース・アドレスだけが必要である。しかしながら、GALPAT、Walking 0/1、Butterfly、Sliding diagonal、アドレス・デコーダPMOS開放アルゴリズムなどの前述のアルゴリズムの幾つかにおいては、ローカル・アドレスも必要である。コントローラは、これらのビットの値に応じて、操作の対象がベース・アドレスかローカル・アドレスかを知る。サポートされることが可能な例示的アドレス指定スキームを以下に示す。
a)「11」 − Means(base_addr−1)を表す。言い換えると、ベース・アドレスの前のアドレス・ロケーションにおいて読み出し/書き込み操作が行われる。これは、(RB,WB,RB−1)のような特定のMarchアルゴリズム・ステップをサポートするために必要であることが多い。
b)「10」 − (base_addr+1)を意味する。上記ケースと同様に、ベース・アドレスの次のアドレス・ロケーションにおいて読み出し/書き込み操作が行われる。これは、(RB,WB,RB+1)のような特定のMarchアルゴリズム・ステップをサポートするために必要である。
c)「01」 − local_addrを意味する。言い換えると、対応する読み出し/書き込み操作が、ローカル・アドレスにおいて行われる。
d)「00」 − base_addrを意味する。言い換えると、対応する読み出し/書き込み操作が、ベース・アドレスにおいて行われる。
・ビット[8:5] − これら4ビットは、この例では、ループ境界を指定することに役立つ。前述のように、これまでに説明したアルゴリズムの幾つかは、2タイプのループ構造、即ち、ベース・ループ及びローカル・ループのサポートを必要とする。ベース・ループは、プライマリ・ループを意味し、この例では、全てのアルゴリズムにとってのリファレンス・ループでもある。これに対し、ローカル・ループは、特定のベース・アドレスに対するローカル・アドレス指定スキームをループ・スルーすることを可能にする。例えば、Marchアルゴリズムの場合は、ベース・ループが唯一のループであり、ローカル・ループは存在しない。これに対し、GALPATの場合は、全てのベース・アドレスに対し、ローカル・アドレスが、ベース・アドレス・ロケーションを除くアドレス空間全体をループ・スルーする。この例では4ビットが必要なので、ワン・ホット・エンコーディングが用いられることが望ましい。例示的な個々のビット割り当ては、次のとおりである。
ビット[5] − ローカル・ループの開始(BLL)。
ビット[6] − ローカル・ループの終了(ELL)。
ビット[7] − ベース・ループの開始(BBL)。
ビット[8] − ベース・ループの終了(EBL)。
a)「0000」 − どのループ境界でもない中間操作(IOP)を示す。
b)「0100」 − ベース・ループの開始(BBL)を示す。
c)「1000」 − ベース・ループの終了(EBL)を示す。
d)「0001」 − ローカル・ループの開始(BLL)を示す。
e)「0010」 − ローカル・ループの終了(ELL)を示す。
f)「1100」 − ベース・ループの開始及び終了(BBL−EBL)を示す。命令内のこのタイプのループ構造は、単一操作ステップを示す。
g)「0011」 − ローカル・ループの開始及び終了(BLL−ELL)を示す。これも、ローカル・ループ内の単一操作ステップを示す。
h)「1010」 − ベース・ループ及びローカル・ループの両方の終了(ELL−EBL)を示す。
i)「1011」 − ローカル・ループの開始及び終了、並びにベース・ループの終了(BLL−ELL−EBL)を示す。
ビット[0]は、1であり、これをアルゴリズム命令として指定する。
ビット[2]及び[1]は、この命令が実行される対象である各アドレスにおいて実行されるメモリ・アクセス操作のタイプを選択する。この例でのオプションは、読み出し、値を比較しない読み出し、書き込み、又はNOP(操作なし)である。
ビット[4]及び[5]は、アドレスが、テストされているメモリに適用される前に、どのように修正されるかを制御する。この例では、アドレスは、そのまま用いられるか、反転されるか、インデックス・オフセットを与えられることが可能である。インデックス・レジスタの値は、例えば、構成命令「制御/ロード/インデックス」を用いてロードされることが可能である。
他のアルゴリズム命令ワードの例については、後述する。
3.1.2 構成命令
これらの第1の実施形態では、アルゴリズムのクラスと、アドレス指定スキームと、用いられるべきデータ・バックグラウンドと、特定のプログラム制御定義とを示すために、例示的な構成命令が用いられている。構成命令の例を表3及び4に示す。代替例について以下に示す。
・ビット[8] − 現在使用されていない。今後の拡張のために組み込まれることが可能。
・ビット[7:6] − これらのビットは、アルゴリズム選択、プログラム制御、アドレス構成、データ構成、又は他の問題のような、様々なタイプの構成命令を選択するために用いられることが望ましい。
・ビット[5:4] − これら2つのビットは、様々な構成命令を更にサブカテゴリに分けるために用いられることが望ましい。例えば、アドレス構成命令は、ベース・アドレス方向と、ベース・アドレスのローディング(テストが適用されることが可能な最大及び最小アドレス値をロードする機能)と、ベース・アドレスを基準とするローカル・アドレス方向と、ローカル・アドレスのオフセット・ビットとを指定する、4つのカテゴリに更に分けられることが可能である。
・ビット[3:1] − これら3つのビットは、構成命令の各サブカテゴリの機能を更
に定義することが望ましい。例えば、ベース・アドレス方向は、7つのグループ、即ち、インクリメントと、デクリメントと、斜めと、行のみと、列のみと、行アドレス指定と、列アドレス指定とに分類されることが可能である。
・ビット[0] − これは、命令が構成管理に関連する場合には、「0」に設定される。
1.制御/プログラム/NOP。この命令は、何も行わず、プログラマブルMBISTコントローラは変更されないままである。
5.制御/プログラム/故障フラグをリセット。プログラマブルMBISTコントローラに、故障フラグの状態をリセットさせる。診断が非アクティブの場合、この例の故障フ
ラグは、最初の故障の直後にアクティブ状態に固着するか、故障があるたびにアクティブになり、その後、テストの最後にアサートされて、故障が遭遇されたことを示す。この命令は、故障状態に関連付けられた記憶の下位ビットをリセットする。比較器テストが実行された場合は、故障フラグがアサートされ、その後、故障状態がリセットされる。
8.制御/プログラム/アルゴリズム開始。アルゴリズムの開始点を指定する。この命令は、テストされているメモリのアドレス境界をリセットする。
11.制御/マスク/セット1。上記の制御/マスク/セット0と同様に、プログラマブルMBISTコントローラに、セット1に関連付けられた制御信号をマスクさせる。
13.制御/マスク/セット3。上記の制御/マスク/セット0と同様に、プログラマブルMBISTコントローラに、セット3に関連付けられた制御信号をマスクさせる。
15.制御/マスク/セット5。上記の制御/マスク/セット0と同様に、プログラマブルMBISTコントローラに、セット5に関連付けられた制御信号をマスクさせる。
17.制御/マスク/なし。前の7個の構成命令の何れかを用いて構成された、制御信号のマスキングを全て除去する。プログラマブルMBISTコントローラを、どの制御信号セットもマスクされていないデフォルト状態(即ち、全てがプログラマブルMBISTコントローラによってアクティブに制御されている状態)に戻す。
28.データ/パターン/チェッカーボード。現在のデータ値を、チェッカーボードであるように設定する。これは、アドレス値とメモリ・モデル・トポロジ情報とを用いた、トポロジ・ドリブンのチェッカーボードである。
30.データ/パターン/列ストライプ。現在のデータ値を、列全体にわたるストライプであるように設定する。
32.データ/書き込みマスク/書き込みマスクを選択。プログラマブルMBISTコントローラからメモリに送られた書き込みイネーブル信号をマスクするために用いられるべく、ハード・コードされた書き込みイネーブル・マスク値の1つを選択する、複数ワードのコマンド。これらのマスク値は、プログラマブルMBISTコントローラの生成時に指定されることが望ましい。書き込みイネーブル・マスキングは、この例では、制御/マスク構成命令によってアクティブ化される制御信号マスク・セットとは独立に動作する。
テスト・アルゴリズム・ステップ内では、アドレス/ループ構成命令の1つによってループが暗に示される。このループの実際の動作は、先行する、どのアドレス/関係命令によっても修正されることが可能である。アドレス・ループの詳細については、図3Aの上述の説明を参照されたい。この例における、以下のアドレス/ループ命令は、ループ・アドレスと他の任意のプライマリ・アドレスとの間に何も関係がないデフォルト・ケース(アドレス/関係/なし)だけが対象であり、他の何らかの関係を指定することによって、アドレス・ループ動作が修正される。これについては後で詳述する。
40.アドレス/関係/オフセット。ループ・アドレス・レジスタのアクティブ部分は、実際のアドレスを形成するために、選択されたプライマリ・アドレス・レジスタのその部分からのオフセットとして用いられる。方向がインクリメントであれば、そのオフセットが加算され、そうでない場合は減算される。ループは、ループ・アドレス・レジスタのアクティブ部分をインクリメントするのではなく、LSB(最下位ビット)からMSB(最上位ビット)まで1を移動させる。
クティビティをイネーブルにする。この命令がいったん遭遇されると、読み出し操作が比較ミスに遭遇したときに、プログラマブルMBISTコントローラが、診断故障情報のスキャン・アウトを開始する。
48.その他/インタリーブ/イネーブル。インタリーブされたアルゴリズム・ステップの実行のサポートをイネーブルにする(順次的な、インタリーブされたメモリ・テストの場合)。
51.その他/ポート・テスト/ディスエーブル。ポート・テストをディスエーブルにする。
53.その他/次/ポート。プログラマブルMBISTコントローラのポート番号選択レジスタを、次のポートの値に進める。
55.その他/次/ページ。プログラマブルMBISTコントローラのページ番号選択レジスタを、次のページの値に進める。
これらの構成命令は、性質として、即時の命令であることが望ましい。これらは、命令メモリから読み出された時点で評価される。これに対し、アルゴリズム命令は、完全なアルゴリズム・ステップが遭遇されるまでバッファリングされることが望ましい。従って、実動作速度で評価されることが望ましいアルゴリズム命令と異なり、構成命令は、実動作速度で評価されることが可能である必要がない。代表的な使用パターンは、アルゴリズム命令のシーケンスが実行される環境をセット・アップするために、アルゴリズム・ステップが幾つかの構成命令を必要とする場合である。
local_address=base_address XOR (1<<i)、ただし、0≦i<n(アドレス・バス・サイズ)
第2のスキームでは、ローカル・アドレスが、ベース・アドレスを2nずつインクリメント又はデクリメントすることによって生成されることが望ましい。第1のスキームは、アドレス・デコーダ開放故障を検出するアルゴリズムをサポートする。第2のスキームは、Butterflyアルゴリズムをサポートする。
前述の例は、単一ループのみを示している。次に、入れ子ループを必要とするアルゴリズムを考える。例えば、GALPATアルゴリズムである。
3.2.2 より複雑なループ関係
次に、アドレス・デコーダのPMOS開放を検出するアルゴリズムのような、より複雑なアルゴリズムを考える。これは、この例では2レベルのループを用い、内側ループと外側ループとの間の複雑な関係を用いて、ハミング距離1の範囲にある全てのアドレスにアクセスする。
4.第1の実施形態の例示的ハードウェア設計
例示的プログラマブル・メモリBISTコントローラの第1の実施形態の基本的なハードウェアを、図4に示す。この実施形態は、前述の図3の形式のアルゴリズム命令ワードと、前述の表3の形式の構成ワードとの使用に、特に適用可能である。この基本実施形態では省略されている他のブロックもあり、それらは、追加機能(診断、ROM BIST用MISR、ビルトイン自己修復解析、その他)を包含する場合には含まれることが可能であることを理解されたい。本質的には、これらの省略されたブロックの機能性は不変のままであって、コントローラを本明細書に記載のプログラマブルMBISTコントローラに変更しても影響はない。プログラマブルMBISTコントローラ・ジェネレータの基本アーキテクチャは拡張されるので、これらの他のブロック及び機能の幾つかが追加されることが可能である。
4.1 命令メモリ
プログラマブルMBISTコントローラ100の一例示的形態では、9ビットの命令ワードを記憶するためにレジスタが用いられる。これらの命令は、アルゴリズム・ステップ、並びにデータ及びアドレスの各種構成を記述するために用いられる。更に、これらの命令は、制御信号の指定も行う。アルゴリズムの命令の数によっては、アルゴリズム全体がチップに格納されてから実行されることが可能である。別のシナリオでは、アルゴリズムに対応する命令群が、ATE(自動テスト装置)(Automatic Test Equipment)に待機することが可能である。そのようなケースでは、最初の命令群(例えば、第1のペアの命令)が実行されているときに、次の命令群(例えば、第2のペアの命令)がATEからチップにアップロードされることが可能である。これは、チップの必要メモリが少なくてよいこととともに、アルゴリズムが、望ましくは、メモリの動作速度で実行されることを可能にする。命令メモリ102は、ユーザの要求に応じて、チップとATEとの間に分散されることが可能である。この例のMBISTコントローラ・ハードウェアの残りの部分は、テストされるメモリ(例えば、MUT 101)回路を含む集積回路チップに含まれる。命令をチップにロードするために、JTAGコントローラが利用可能である。
4.2 命令デコーダ
プログラマブル・コントローラ100は、メモリの動作速度で実行可能であることが望ましい。非常に高い速度での実行が可能であるアーキテクチャを推進するために、命令デコーダ108の望ましい一形態は、3つのサブデコーダ、即ち、プリデコーダ110と、アルゴリズム命令デコーダ112と、構成命令デコーダ114と(図5)を含むか、これらで構成される。
・例示的プリデコーダ110は、命令がアルゴリズム命令か構成命令かを判別する。これは、この例では、命令ワードのLSB(最下位ビット)に基づく。更に、プリデコーダは、望ましくは、命令メモリにある命令群のループ境界をデコードすることにより、ベース・ループの単一アルゴリズム・ステップを、入れ子ローカル・ループ122に関連する全ての操作とともに、ベース・ループ・バッファ120にロードすることを支援する。
・アルゴリズム命令デコーダは、命令が、テストされるメモリに対して実際に実行される必要がある操作に関連するとして分類された場合(例えば、アルゴリズム命令として分類された場合)のみ、アクティブ化される。
・構成命令デコーダは、命令が、後続のアルゴリズム・ステップに関する構成を定義することに関連付けられているとして分類された場合(例えば、構成構築として分類された場合)のみ、アクティブ化される。
ケンスを示し、ローカル・ループは、全てのローカル・アドレスに対して実行される操作のシーケンスである。例えば、ほとんどのMarchアルゴリズムは、ローカル・ループを必要としない。これに対し、(w,(r,r),w)で表されるGALPATステップの場合は、ベース・ループ内の書き込み操作のペアの間に、2つの読み出し操作を有するローカル・ループがある。前述のセクション2で挙げられたアルゴリズムの場合(前述のセクション2.1.3.5における一部のケースを除く)、ローカル・ループは、常にベース・ループ内の入れ子であることが望ましい。ローカル・アドレスは、それらのアルゴリズムに記述された特定のスキームに従って、各ベース・アドレスについて導出される。
・各ベース・アドレスに対して、ベース・ループ命令が、ベース・ループ・バッファから読み出され、実行される。
・入れ子ローカル・ループがある場合、ローカル・ループ操作は、ローカル・ループ・バッファに待機する。ただちに、制御がローカル・バッファにシフトされ、ローカル・ループ操作が実行される。
・ローカル・ループ操作が完了した後、制御がベース・ループ・プログラム・カウンタに戻される。ベース・ループに後続の操作がある場合は、それが実行される。後続の操作がない場合は、ベース・ループに関する次のステップが待機しているbuf1に、制御が切り替えられる。その後、マルチプレクサ136がbuf1を選択し、buf1に対応する操作がデコードされ、実行される。
・2つの後続のベース・ループ・ステップのために一方のバッファと他方のバッファとを切り替えることによって、同じプロセスが繰り返される。操作が一方のバッファ・ペアから実行されているときに、他方のバッファ・ペアは、次のベース・ステップを、入れ子ローカル・ループ・ステップとともに、命令メモリからロードされることが可能である。
150(図4)を非常にシンプルにする。これは、プログラム・カウンタが、逆方向にジャンプする必要がなく、常に順方向に進んでいるからである。しかしながら、プログラム・カウンタは、別のデータ・バックグラウンドが使用されたときには逆方向にジャンプしてもよい。前述の例示的設計は、診断を考慮していないこと、並びに、実動作速度診断のための「リスタート」操作のような操作をサポートするように強化されることが可能であることに注意されたい。各バッファ(buf0及びbuf1)は、専用のバッファ・プログラム・カウンタを有することが望ましい。バッファ・プログラム・カウンタは、望ましくは、バッファの先頭から開始し、次のロケーションまで進み、ループの最後の命令が実行されたら最初のロケーションに戻る。命令群がローカル・ループ・バッファにもロードされた場合は、待ちポインタを用いて、ローカル・ループ・バッファ内の命令の完了後に実行が再開される場所を示すために、ベース・ループ操作のロケーションを記憶することが可能である。
4.2.1 アドレス方向のデコード
ベース・アドレスが変化する方向は、構成命令内にエンコードされていることが望ましい。メモリがアドレス指定されるスキームは、望ましくは、1つのステップにおいては全ての操作について同じままであり、ステップ間にのみ変更される。従って、後続ステップのアドレス指定スキームは、現在のステップがまだ実行中である間に、プリデコーダによって決定されることが可能である。このことは、アドレス指定スキームをデコードする時間をより長くとることを可能にし、このアプローチでは、クリティカルなタイミング・パスの一部にならない。状態機械を用いて、各種ステップ間でのアドレス指定スキームの変更を制御することが可能である。
4.2.2 最終アドレスの計算
アルゴリズム命令デコーダ112は、マルチプレクサ136を介して、2つのバッファを切り替える。この切り替えは、この例では、ベース・ループ操作及びローカル・ループ操作の両方についての最終アドレスの計算に依存する。一般的には、最終アドレスは、最大メモリ・アドレスであるが、テストされるメモリについて任意のアドレス範囲をユーザが指定できることが望ましいので、ユーザ指定であってもよい。コントローラが実動作速度で実行されている間は、(大きな面積オーバヘッドをこうむることなく)1クロック・サイクル以内に、現在のアドレスと、意図された最大アドレスとを比較して決定を下すことは、ほとんど不可能である。BIST動作のスロー・ダウンを避けるために、アルゴリズム命令デコーダと、最終アドレスを示す信号を発生させるロジックとの間に、2つ(以上)のパイプライン段が挿入されることが望ましい。本質的に、最終アドレスかどうかを判別する処理は、最終アドレスに対する操作の実行の前に、2つのサイクルを開始する。このことは、最終アドレスが実際に必要になる前に比較器動作(最終アドレス検出動作)を完了させるのに十分な時間を与える。
合には、最終アドレスに達したかどうかを示す信号は、最終アドレスにおいてアルゴリズム・ステップが実行される前の1クロック・サイクルの間、アサートされたままである。これは、アドレスがインクリメントされている場合でも、デクリメントされている場合でも起こる。しかしながら、入れ子ローカル・ループを有する、より複雑なアルゴリズムでは、最終アドレスを示す信号が同様に計算されることが不可能な場合もある。これは、ベース・アドレス・ステップの中に、何百ものクロック・サイクルを要するローカル・アドレス操作が多数含まれる可能性があるためである。そのような場合、ベース・アドレスは早めに計算されるが、最終ベース・アドレスに関係する信号が実際にアサートされるのは、最終ローカル・アドレスに対してである。しかしながら、何れの場合においても、最終ベース・アドレス及び最終ローカル・アドレスを示す信号のアサートは、複数のクロック・サイクルにわたって行われることが可能であり、それによって、コントローラに対するあらゆるタイミング制約を少なくすることが可能である。
4.3 アドレス・ジェネレータ
アドレス・ジェネレータ155(図4)の例示的な一形態は、2つの部分、即ち、(ベース・アドレス・ジェネレータとも呼ばれる)ベース・ループ160(図6)用アドレス・ジェネレータと、(ローカル・アドレス・ジェネレータとも呼ばれる)ローカル・ループ200(図7)用アドレス・ジェネレータとを含むことが望ましい。最終アドレス・インジケータ(図6の最終ベース・アドレス・インジケータ180と図7の最終ローカル・アドレス・インジケータ182)も含まれることが可能である。この例では、ベース・アドレス及びローカル・アドレスの両方が、2つの部分、即ち、行アドレスと列アドレスとに分けられていることが望ましい。このアプローチは、行アドレスと列アドレスとを独立に操作することを可能にする。
・ベース・アドレスと等しいローカル・アドレスを設定する(ブロック221、223)。
・ベース・アドレスと2nとの排他的論理和をとることによってアドレスを生成する(nはアドレスのビット数)(ブロック229、231)。
・2nにベース・アドレスを加算するか、2nからベース・アドレスを減算することによってローカル・アドレスを生成する(ブロック233、235)。
・最終ベース行アドレスに達している。行のみアドレス指定スキーム及び斜めアドレス指定スキームの場合。
・最終ベース列アドレスに達している。列のみアドレス指定の場合。
・最終行アドレス及び最終列アドレスの両方に達している。行アドレス指定又は列アドレス指定の場合。
ローカル・アドレスの場合、最終アドレス信号インジケータは、例えば、ローカル・アドレスがベース・アドレス指定スキームに依存しない場合のみ、上述の場合と同じ状況下でアサートされることが可能である。これに対し、ローカル・アドレス指定スキームがベース・アドレスに依存する場合は、コントローラによってテストされる全てのメモリが同じサイズであれば、MSB(最上位ビット)を用いて、最終ローカル・アドレスを示すことが可能である。同じサイズでない場合は、別個の比較スキームを用いて、最終アドレスに達しているかどうかを判別することが可能である。最終アドレス・インジケータ(最終ローカル・インジケータ)182は、この例では、最終ベース・アドレス信号と最終ローカル・アドレス信号とを生成することが可能である。最終ベース・アドレス信号は、次の条件のうちの1つが満たされた場合にアサートされることが望ましい。(1)行のみアドレス指定又は斜めアドレス指定の場合に、最終ベース行アドレスに達している。(2)列のみアドレス指定の場合に、最終ベース列アドレスに達している。又は(3)行アドレス指定又は列アドレス指定の場合に、最終ベース行アドレス及び最終ベース列アドレスの両方に達している。最終ローカル・アドレス信号については、ローカル・アドレスがベース・アドレスと独立に生成されるのであれば、条件は、最終ベース・アドレス信号の場合と同じである。しかしながら、ローカル・アドレスが、ベース・アドレスと2nとの排他的論理和、或いはベース・アドレスと2nとの加算又は減算によって生成されるのであれば、最上位ビット(MSB)が最終ローカル・アドレスを示す。
4.4 データ・ジェネレータ
図示された形態のデータ・ジェネレータ300(図4)は、2つの主要機能を有する。第1のタスクは、現在のクロック・サイクルの間に特定のメモリ・ロケーションに書き込まれるべき正しいデータを生成することである。第2のタスクは、読み出し操作時にそのメモリ・ロケーションから読み出されたデータと比較されるべき適正な期待データを生成することに関連付けられる。読み出し及び書き込みの操作がパイプライン化されることが望ましい例では、適正な期待データを生成することがより複雑になる。プログラマブルM
BISTコントローラは、生成された期待データと、実際にあらかじめ(例えば、数クロック・サイクル前に)メモリに書き込まれたデータとが突き合わせされる(対応する)ことを保証することが望ましい。
データ・バックグラウンドは、例えば、2つのスキームに基づいて更新されることが可能であることが望ましい。第1に、ユーザは、(log2w+1)個のありうるデータ・バックグラウンドから、使用可能な任意のデータを選択することが可能である。第2に、セクション2で挙げられたアルゴリズムの幾つかについては、データ・バックグラウンドが、2w−1に設定されている現在のバックグラウンドを1ビットだけシフトすることに
よって変更されることが可能である(wはデータ・ワードの幅)。プログラマブル・コントローラは、両方のスキームを、アルゴリズムに基づいてサポートすることが望ましい。
4.5 制御ジェネレータ
制御ジェネレータ500(図4)は、この例に示された一形態では、アルゴリズムの実行を管理する、必要な全ての制御信号を生成する役割を有する。この機能は、命令自体の中にワン・ホット・エンコードされていることが望ましいので、制御ジェネレータの構成は、シンプル且つ直接的である。図示された例の制御信号は、命令デコーダから直接到来し、プログラマブルMBISTコントローラ内の各ブロックにルーティングされる。
4.6 出力応答アナライザ
図示された一形態の出力応答アナライザ450は、メモリから読み出されたデータと、プログラマブルMBISTコントローラから生成された期待データとを比較する。このアナライザは、2つの値を比較する比較器を備えることが可能である。メモリの幅が非常に大きい場合は、比較器のロジックの深さが大きくなり、従って、実動作速度のBIST操作を望ましくは可能にするためにパイプライン段が挿入されることが可能である。代替として、出力応答アナライザは、メモリ応答を圧縮する圧縮器であってよい。圧縮器のアプローチは、特にROMのテストに適用可能である。出力アナライザは、テストされたメモリがテストにパスしたか失敗したか、或いは、メモリ内の特定のセルがテストにパスしたか失敗したかを示す出力452のような、任意の好適な出力を提供することが可能である。代替として、この後に説明されるように、結果が、診断モニタ900に渡され、解析されて、出力902で診断データが生成されることが可能である。
5.0.ハードウェア設計の例示的な代替形態
この実施形態の基本的なハードウェアは、図4にも示されている。しかしながら、この実施形態は、代替設計のステップ・コントローラのような、代替構成要素形態を利用する。この代替実施形態のハードウェア設計は、図3Aに示された形態のアルゴリズム命令ワードに特に適用可能である。
5.1 命令メモリ
命令メモリ102は、別の形態では、プログラマブルMBISTコントローラと、MBISTコントローラによって実行される命令シーケンスのソースとの間に、FIFOバッファを形成する。これは、一般に、約8個の9ビット・ワードのレジスタ・ファイルから形成されることが可能である。このブロックの中の制御ロジックは、命令メモリが満杯でない場合に、外部ソースが、更なる命令群を命令メモリにスキャン・ロードすることを可能にする。従って、MBISTコントローラが命令群の処理を開始して、それらが命令メモリから除去されれば、更なる命令群が命令メモリにロードされることが可能である。
TAP TCK又は外部ATEクロックが、命令のロードに用いられることが可能である。命令メモリ・ブロックは、そのような例における2つのクロック・ドメインの間に同期ロジックを含むことが望ましい。ほとんどのBISTアルゴリズム・ステップは、ある範囲のアドレスにわたって動作し、多数の高速クロック・ドメイン・サイクルを費やすので、BISTコントローラが現在のセットを実行しているときに、並行して次の命令シーケンスをメモリにロードするのには十分な余裕がある。
完全にはめ込まれている場合は、ワード数が少ないので、低速の外部ソースが新たな命令群を使用可能にするのをMBISTコントローラが待つ時間が長くなる可能性がある。命令メモリのワード数の8という値が、性能とレジスタ・サイズとの間の良好な妥協点になると考えられている。
5.2 命令デコーダ
命令デコーダ108(図4)の代替形態は、次の2つの部分から構成される。
・命令がアルゴリズム命令か構成命令かを決定する部分。
・構成命令をデコードする部分。
5.3 ステップ・コントローラ
ステップ・コントローラ130は、様々であってよいが、一具体例では、1ステップのプリデコードされたアルゴリズム命令群と、そのステップにおけるループのためのアドレス構成と、テスト・ステップの実行の制御とを記憶することが可能である。
5.3.1 命令バッファ及びバッファ制御
プログラマブルMBISTコントローラに関連付けられたメモリに対して多数のメモリ・テスト・アルゴリズムを実行するメモリ・テスト・プログラムを考えることができる。それらのテスト・アルゴリズムは、プログラマブルMBISTコントローラが、生成時(例えば、フィールド・プログラミング時)に、並行メモリ・テストのために構成されている場合には、全てのメモリに同時に適用されることが可能である。代替として、それらのアルゴリズムは、プログラマブルMBISTコントローラが、生成時に、順次メモリ・テストのために構成されている場合には、各メモリに順番に適用されることが可能である。後者の場合は、プログラマブルMBISTコントローラにより、異なるアルゴリズムが各メモリに適用されることが可能である。これにより、メモリの個々の要件と、任意のダイ位置に固有の変形形態とに対してカスタマイズされる厳密なテストが可能になる。
例では、最大で4レベルのループがいつでも同時にアクティブであることが可能である。メモリ・アクセス操作の数と、ループ入れ子の深さとは、プログラマブルMBISTコントローラの生成時に、構成可能であるように拡張されることが可能である。
5.3.1.1 命令のロード
メモリ・テスト・ステップ命令の実行は、ループに基づく。第1の完全なループが遭遇されると、ただちに、そのループ内のメモリ・アクセス操作の実行と、そのループ自体とがトリガされる。このようにして、ループの実行が実動作速度で行われるが、ループ間では、更なる命令群が命令バッファから転送され、デコードされるために、遅延がある可能性がある。
及び第3のループの両方における最初の操作である。このため、操作OPIの実行の前に両方のループが初期設定されることが必要である。この情報は、命令バッファ内に、操作と並んで格納される。
5.3.1.2 ループに入る
命令バッファから操作が読み出されると、現在の操作から始まる1つ又は複数のループについて、初期設定が必要かどうかがチェックされる。ループに入ることとそのループの最初の操作を実行することとの前に実行される必要がある、デコードされたアドレス構成命令群が、その最初の操作に関連付けられる。操作は複数のループの開始操作であることが可能なので、操作に関して初期設定されることが必要なループが複数あってもよい。前述のテスト・アルゴリズム・ステップの例では、メモリ・アクセス操作OP1は、第2及び第3のループの両方における開始操作である。従って、これらのループは、初期設定される。このことはまた、ループの各入れ子レベルに対して少なくとも1つのアドレス・レジスタを設けることが望ましいことを示している。
・最初に、全てのレジスタが、初期設定されていないとしてマーキングされる。
・初期設定インデックス・バッファが、初期設定される必要がある開始ループ番号を示す
。
・初期設定されていない各アドレス・レジスタが、アドレス構成バッファにある情報を用いて初期設定される。
・ループが反復される。
・ループが完了すると、アドレス・レジスタは、初期設定されていないとしてマーキングされる。
5.3.1.3 ループから出る
ループが終了すると、この例では、実行レベルが1だけ戻り、ループのアドレス・レジスタが、初期設定されていないとしてマーキングされる。同じ操作に対して複数のループを終了させることが可能なので、この例では、プログラマブルMBISTコントローラが、ジャンプ・アドレス・バッファ及び最終ループ・バッファの中の値を通って、設定されている最終ループ・バッファ値に遭遇するまで、各ループを次の反復に進めようとするか、そのループを終了させようとする。
5.3.2 アドレス構成バッファ
アドレス構成バッファ502(図8)は、テスト・アルゴリズム・ステップに必要な全てのループについて、アドレス・ループに関係する、部分的にデコードされた情報を追跡する。構成命令バッファと同様に、アドレス構成バッファ内の情報は、テスト・アルゴリズム・ステップ内のアドレス・ループ構成命令群が遭遇されたときに構築される。アドレス構成バッファ502の全内容は、一実施形態では、最も外側のアドレス・ループの最後が処理された後にのみ、使用可能である。
1.アドレス・バッファ。これは、各アドレス・ループに対応する、部分的にデコードされたアドレス・スキームを収容する。
2.関係バッファ。これは、各アドレス・ループに対応する、部分的にデコードされたアドレス関係値を収容する。
5.3.3 アルゴリズム命令デコーダ
アルゴリズム命令デコーダ504は、図8による一実施形態では、現在実行されている、命令バッファ500からのメモリ・アクセス操作命令を完全にデコードする。このデコード情報は、制御ジェネレータによって実行されているメモリ・アクセス操作に対応するメモリ制御信号アクティベーションの生成をトリガするために用いられる。
5.3.4 アドレス構成デコーダ
アドレス構成デコーダ506は、図8による一実施形態では、アドレス構成バッファ502に格納されているアドレス構成命令を完全にデコードする。この情報は、アドレス・ジェネレータによって使用される。
5.4 アドレス・ジェネレータ
図11に示された、例示的形態のアドレス・ジェネレータ600は、(この例では3に等しい、入れ子ループの最大数に対応する)3レベルの602、604、606を有し、更に、次の2つの主要機能を有する。
1.インター反復アドレス生成。アドレス反復ループによって使用される現在及び次のアドレス値の生成(ブロック610)。これは、この例では、ループのアドレス構成命令群によって決定される。これを制御するために、アドレス構成バッファ502(図8)にある、部分的にデコードされたアドレス/ループ構成命令値及びアドレス/関係構成命令値の両方が用いられる。
2.イントラ反復アドレス生成。アドレス反復ループ(ブロック620)内の各メモリ・アクセス操作に関して、メモリに適用される実際のアドレスの生成(ブロック630)。メモリ・アクセス操作のアドレス・レベル・フィールド及びアドレス操作フィールドは、この例では、操作に用いられるメモリ・アドレスを構築するために用いられる。このアドレスは、オプションで、ビット極性を与えられることも可能である。
在のアドレスの反転であることが可能である。一例では、テスト・プログラムにおいて、アドレス・インデックスがロードされる。インデックスのデフォルト値は、例えば、「1」に設定される。例示的イントラ反復アドレス・ジェネレータ750(図11のブロック620)の高レベル図を、図14に示す。レベルnは、アルゴリズム命令で指定されることが可能である。
5.5 データ・ジェネレータ
データ・ジェネレータ300(図4)は、一実施形態では、次の機能を実行する。
・現在のクロック・サイクルにおいて現在のメモリ・ロケーションに書き込まれるべきデータ値を生成する。
・現在のメモリ・ロケーションから読み出されたデータが使用可能になったときに比較されるべき適正な期待データを生成する。
0 00000000
1 01010101
2 00110011
3 00001111
2.Checkerboardアルゴリズムの場合は、トポロジカル・データ・バックグラウンド「01...01」及びその反転が必要とされる。実際のデータ値は、アドレスに依存する。
5.6 制御ジェネレータ
制御ジェネレータ500(図4)の役割は、この実施形態では、現在のメモリ・アクセス操作に必要な全ての制御信号を生成することである。これは、最高速度の同期メモリの場合には、部分的にデコードされたメモリ・アクセス操作の命令値によって直接駆動される、シンプルなメモリ制御信号アサーションである。非同期メモリのような、他の場合は、状態カウンタを用いて、カウンタ状態に基づいて制御信号をアクティベーションすることが可能である。
5.7 出力応答アナライザ
出力応答アナライザ450は、この実施形態では、メモリから読み出されたデータと、コントローラから生成された期待データとを比較する。望ましい一形態では、出力アナライザは、その2つの値を比較する比較器を備える。メモリの幅が非常に大きい場合は、比較器のロジックの深さが大きくなり、従って、実動作速度のMBIST操作を保証するためにパイプライン段が挿入されることが可能である。
6.0 選択されたアルゴリズムの例示的擬似コード
図3及び表3において前述されたような、提案されたプログラマブルMBISTコントローラの命令について、プログラマブルMBISTコントローラが(例えば、フィールド・プログラミングにより)サポートできる、幾つかの例示的アルゴリズムの擬似コードを、以下に示す。
図3A及び表4において前述されたような、提案されたプログラマブルMBISTコントローラの命令についての、プログラマブルMBISTコントローラが(例えば、フィールド・プログラミングにより)サポートできる、例示的アルゴリズムの擬似コードは、自明であろう。例えば、march1、march2、march3、col_march1、unique、checkerboard、Rom1、Rom2、galloping、アドレス・デコーダPMOS開放、及び既に説明されたものを含む他のアルゴリズムは、このアーキテクチャを用いて実装されることが可能である。サポートされることが可能な、チェッカーボード・タイプのアルゴリズムの一具体例は、保持CBアルゴリズムであって、これは、以下に示すような擬似コードで表される。
以下の代替実施形態では、図3、表3、及びセクション4に関連して前述された基本又は第1の実施形態[以下、「基本実施形態」と呼ぶ]と比較して、より柔軟なアドレス・スキームと、より多くのレベルのループとが可能になる。更に、ループ制御が、基本実施形態より柔軟になる。柔軟性は、図3A、表4、及びセクション5に関連して前述された実施形態によっても示されている。
例示的ループ制御命令は、ジャンプ・アドレスと各ループのレベルとを指定する構成をロードする。ループ制御命令に続くワードは、一具体例では、次の形式を有する。
8.0.1 ループ操作
命令バッファは、望ましくは埋め込まれ、テスト・ステップをホールドすることが可能である。テスト・ステップは、複数のループを収容することが可能である。従って、ループの境界と、ループの始めと終わりとを定義するアプローチが提供される。ループの適正な初期設定及び実行も達成される。
次のように書くことができるテスト・ステップ(図15)が与えられるとする。
(OP0,((OP1),(OP2,OP3)),(OP4,OP5))
これは、セクション5.3.1で前述されたものと同じ例であるが、このアプローチでは、以下に説明するように、(ループ)の番号の付け方が異なる。
8.1 ループに入る
命令バッファ800から読み出し操作が読み出されると、現在の操作から始まる1つ又は複数のループについて、初期設定が必要かどうかを調べる第1のチェックが実行される。ループに入る前に実行される必要がある構成は、この第1の操作に関連付けられる。操作は複数のループの開始操作であることが可能なので、操作に関して実行されるべきループ構成が複数あってもよい。例えば、図15のOP1は、ループ0及びループ2の両方の開始操作である。従って、ループ0及びループ2の両方の構成が実行されなければならない。これはまた、このアプローチにおいて、各レベルに少なくとも1つのアドレス・レジスタがあることが望ましい理由でもある。
レベルを減らすための初期設定は、ループ実行の前に行われる。
8.2 ループから出る
この例では、ループから出ることは、構成を変更することも伴う。図15の例では、ループ1の完了後に、処理がループ2に戻る。この場合は、ループ2のためのアドレスが更新されなければならないので、構成は、ループ2について設定される。
8.3 バッファ・アドレス制御
各ループの最終操作に対しては、関連付けられたジャンプ・アドレスが与えられる。ジャンプ・アドレスは、現在のループが完了していない場合にジャンプすべき先のアドレスを指定する。この具体例では更に、ループが、その最終操作が現在の操作である最終ループかどうかを示すフラグが、各ループにアタッチされる。
8.4 アドレス・スキーム構成
1つのテスト・ステップは、複数のループを有することが可能であり、各ループは、異なるアドレス・スキームを有することが可能である。従って、この例の各ループは、その構成をプログラマブルMBISTコントローラに格納することが望ましい。望ましいアドレス・スキームは、この例では、2つの部分、即ち、アドレス方向とアドレス関係とからなる。アドレス方向は、アドレスがどのように変更されるか(例えば、列アドレス指定、行アドレス指定、その他)を指定する。アドレス関係は、アドレスが別のアドレスとどのように関連付けられるかを指定する(例えば、特定レベルのアドレスは、より低いレベルの別のアドレスの関数であることが可能である(図12を参照))。例えば、ループ0(レベル2)内のアドレスは、ループ4(レベル0)内のアドレスの関数であることが可能である。しかしながら、この例では、ループのアドレスは、より高いレベルのループを入れ子にしない、より低いレベルのループの中のアドレスの関数にならないことが望ましい。例えば、ループ1内のアドレスは、ループ3内のアドレスの関数にならない。この場合、アドレスがレベルL−1のループにあれば、アドレスの関係の最大数は、L−1である。多くの現実的又は実用的なアルゴリズムでは、このループ関係は、より一層簡略化される。例えば、場合によっては、レベル0のループと、現在のループを直接の入れ子にするループとにのみ、アドレスが関連付けられることがある。このような場合は、ループ関係が2つだけであり、命令設計は簡略化される。
8.5 構成変更制御
8.5.1 初期設定
ループに入る場合は、一般に初期設定が必要である。図19は、ループの開始操作に初期設定構成インデックスをアタッチすることを伴うアプローチを示す。例えば、OP2に達した場合である。
8.5.2 ループから出る
ステップ内のループは、それぞれの最終操作によって順序付けられることが望ましく、構成は、同じ順序で構成バッファに格納されることが望ましい(例えば、図20の構成バッファ880を参照)。このアプローチでは、ループから出たときに、次の構成が、必ず、構成バッファ内の次の構成である。例えば、ループ0が完了すると、処理は、自動的にループ2に移動する。
8.6 追加サイクル
上述の説明から明らかであるように、これらの、後の方の代替実施形態の図示されたアプローチでは、ループに入るときとループから出るときとに、追加のテスト・サイクルが必要である。つまり、ループが別のループを入れ子にしない場合は、最高速度のテストが実現されるが、ループが別のループを入れ子にする場合には、これらの、後の方の代替実施形態のループ間で、最高速度より若干遅い速度のテストが実現される。
8.7 アドレス・ジェネレータ
どのレベルのアドレスも、より高いレベルのループで用いられる可能性があるので、ループの各レベルに対して、少なくとも1つのアドレス・レジスタが用いられることが望ましい。(例えば、図18の850のように)各レベルに対して1つのアドレス・レジスタが用いられることが望ましいが、減算や加算のような演算のためのアドレス・ロジックは、異なるレベルのアドレス・レジスタ間で共用されることが可能である。レベルの数が増えるにつれ、ロジックの共用は、速度低下をもたらす。そのため、各レベルに対して少なくとも1つのアドレス・ジェネレータを有することが、非常に望ましい場合がある。
8.8 他の部分
命令デコーダ、制御信号ジェネレータ、データ・ジェネレータ、レイテンシ調節器、及び出力応答アナライザのメカニズムは、既に説明された基本実施形態と同様であってよく、従って、本明細書のこの部分では、詳細には説明しない。
9.0 ATEとの相互作用
一例示的実施形態によれば、命令は、複数のブロックに分けられることが望ましい。各ブロックは、1つのタイプの命令(構成命令又はアルゴリズム命令)だけを含むことが望ましい。
命令メモリ内の命令は、その後、デコードされ、分類されてから、構成デコーダによってデコードされるか、命令バッファにロードされる。1つのブロックが処理されると、ロード要求がATEに送られることが望ましい。ATEは、まだロードされていない命令が残っていれば、追加データを命令メモリにロードする。
しい。結果として、命令をロードする時間は、実質的に隠される。ATEの命令ロードによる干渉を避けるために、ATEによってロードが実行されているときは、命令メモリから読み出された命令が、NOPに設定される。
(1)これらの数は、ATEにロードされるファイル(block_bound)に格納される。このバージョンでは、命令メモリ全体がシフト・レジスタ890を含み、命令はメモリにシフト・インされる(図21)。或いは、
(2)この数は、ブロックが読み出されたときに、プログラム・カウンタ(PC)から直接進めされる。その後、プログラマブルMBISTコントローラは、命令メモリが再度満杯になるまで、ATEからのロードを要求する。このバージョンでは、9ビットのシフト・レジスタが1つしかない。1つの命令がまずシフト・レジスタにシフト・インされ、その後、その命令は、命令メモリ内にクロッキングされる(図22の896を参照)。
(1)命令が最初に命令メモリにロードされる場合。
(2)シンプルな方向構成命令以外の構成ブロックが、2つのアルゴリズム・ブロックの間に位置する場合。
(3)ブロックをロードする時間が長すぎて、1つのテスト・ステップを終了するのに必要な時間より長い時間がロードに必要な場合。
BISTクロック周期がPbであり、ATEクロック周期がPaであり、アドレス範囲がRであり、命令のワード・サイズが9ビットであるとする。この状況が最も起こりやすいのは、実行されるステップが操作を1つしか含まない場合である。命令メモリにロードされることが可能な命令の数をNとすれば、Nは次式を満たさなければならない。
N*9*Pa<Pb*R
例えば、N<(Pb/Pa)*R/9
この例は、異なる2つのクロックの間の同期時間を考慮していない。比Pb/Paは、常に1以下である。この比が小さいほど、テストに必要な時間を超えるロードに必要な追加時間を用いずに命令メモリにロードされることが可能な命令の数が少なくなる。即ち、ATEとBISTとの間の速度の隔たりが大きすぎる場合は、命令のロードの完了を可能にするために、テストを一時停止しなければならない可能性がある。
1.ATEが、命令を命令メモリにロードする必要がある。
2.MBISTコントローラがATEに診断データを送っている。
3.保持テストが進行中であり、MBISTコントローラが再開信号を待っている。
9.1 テスト・アルゴリズムのロード
9.1.1 自走メモリ・ロード・クロック
この実施形態でのATEの役割は、MBISTコントローラの命令メモリに命令をロードすることである。命令メモリは、任意のサイズであってよく、所与のアルゴリズムの面積オーバヘッドとテスト適用時間との間で最適になるように選択されることが可能である。この例では、命令を命令メモリにロードするために、ATEによって用いられることが可能な信号が3つあり、それらは、load_clock(ロード・クロック)、load_enable(ロード・イネーブル)、及びload_data(ロード・データ)である(図23)。load_clock信号は、MBISTコントローラ内の診断クロックによって共用されることが可能であり、load_data信号は、この例では、実際の命令データをコントローラに与える、単一ビットのシリアル入力である。load_request(ロード要求)信号は、MBISTコントローラによって使用され、ATEが命令のロードを開始できるようになったことを、ATEに通知する。
a)「ループ・オフセット」命令の後に非ループ・オフセット命令が見つかった。
b)命令メモリ内の全ての命令のフェッチが完了している。
9.1.2 オン・デマンドのメモリ・ロード・クロック
この例では、命令を命令メモリにロードするために、ATEによって用いられる信号が2つあり、それらは、load_clock及びload_dataである(図25)。load_data信号及びload_request信号は、例えば、前述と同様であってよい。
ティブなときだけである。ATEが命令をロードしているのをコントローラが検知すると、load_request信号がデアサートされる。
9.2 診断モニタ
一実施形態では、必須ではないが、診断データを取り込み、故障データをATEにシフト・アウトするために、診断モニタが用いられることが望ましい。一形態では、診断モニタは、一方がBISTクロック・ドメインで動作し、もう一方が診断クロック・ドメインで動作する、2つの有限状態機械(FSM)を備えることが望ましく、それらだけで構成されることが更に望ましい。以下では、この2つのFSMについて説明する(図27及び28を参照)。
9.2.1.cont_state(BISTクロック・ドメインFSM)
CONT_IDLE(制御_アイドル)状態のcont_state(制御状態) FSMによって故障が見つかると、このFSMは、CONT_SCAN(制御_スキャン)状態に移り、diag_state(診断状態) FSMに向けてstart_diag(診断開始)信号を発行する。診断データがシフト・アウトされると、同期しているdiag_done(診断完了)信号がdiag_state FSMから送られる。この信号により、cont_state FSMは、CONT_SCAN状態からCONT_SYN(制御_同期)状態に動く。同期した信号diag_doneがローになり、リスタート信号(int_restart)がアサートされると、CONT_SYN状態がCONT_IDLE状態に戻る。これは、start_diagがローになり、diag_state FSMによってイベントが確認されているが、同時に、第2の故障が検出されたことを示す。しかしながら、CONT_SYN状態においてリスタート信号がアサートされない場合、cont_stateは、CONT_REC(制御_記録)状態に入る。この場合、状態機械は、リカバリ・サイクルが指定の数になるまで待機する。このFSMがCONT_REC状態にあるときに故障が検出された場合、FSMは、再度CONT_SCANに入って、CONT_REC状態において検出された最初の故障をシフト・アウトするか、CONT_IDLE状態に戻る。
、セクション9.2.2で後述されるセーフ・ポイントからアルゴリズムの実行が開始される。
9.2.2.diag_state(診断クロック・ドメインFSM)
DIAG_IDLE(診断_アイドル)状態にあるFSMによって、同期したstart_diagが確認されると、diag_state(診断_状態) FSMは、DIAG_SHIFT(診断_シフト)状態に移り、この状態において、診断データがATEにシフト・アウトされる。全てのデータがシフト・アウトされると、diag_state
FSMは、DIAG_SYN(診断_同期)状態にシフトし、この状態において、このFSMは、start_diag信号がローになるのを待つ。同時に、diag_done信号がcont_state FSMに送られる。診断FSMは、同期したstart_diagがローになるのを確認すると、DIAG_IDLE状態に移り、新しいstart_diag信号を待つ。
内部診断−データ・シフト・クロックは、この例では、図29を参照することによってわかるように、診断データの取り込み及びシフト・アウトの両方を行うために、MBISTクロック及び診断クロックから生成されることが望ましいことに注意されたい。
図30に斜体で示された信号は、診断クロック・ドメインにある。図30の他の信号(非斜体)は、BISTクロック・ドメインにある。
9.3 診断データのスキャン・アウト
9.3.1 テスト・プログラムの先頭からのリスタート
一例示的実施形態では、ATEとMBISTコントローラとの間の診断インターフェースの一部として、4つの信号が用いられ、それらは、ATEからの自走diag_clockと、diag_dout信号と、restart(リスタート)信号と、コントローラからのfail_flag信号とである(図31を参照)。図31のFP−MBISTは、フィールド・プログラマブルMBISTを意味する。
いるためである。
9.3.2 テスト・ステップの先頭からのリスタート(デフォルト動作)
この実施形態の例では、ATEとMBISTコントローラとの間の診断目的に用いられる信号が3つあり、それらは、ATEからMBISTコントローラへのdiag_clockと、MBISTコントローラからATEへのdiag_dout信号及びfail_flagとである(図33を参照)。
Eは、fail_flagがいったんデアサートされると、diag_clockをディスエーブルにする。
9.3.3 診断データのフォーマット
診断データの例示的フォーマットは、次のように表すことができる。
ため)、アドレス1は、0に等しい(テスト・ステップが1つのレベルだけを有し、アドレス1が使用されないため)。
[1, 00000111, 1100, 0000, 00000010]
このアプローチでは、ATEは、実際の診断データの前にパディング・ビット「1」を受け取る。
[1, 00000111, 1100, 00000010]
9.3.4 診断クロック及びメモリ・ロード・クロックの共用
命令メモリのロード・クロック及び診断クロックは、同じ入力ピン「shift_clk(シフト・クロック)」を共用することが可能である。これらのクロックが自走でない場合、「shift_clk」は、要求に応じて(load_requestがあった場合、fail_flagがアサートされた場合、又はその両方)コントローラに送られることが可能である。
9.3.5 保持テスト・インターフェース
保持テストの場合、一例では、MBISTコントローラとATEとの間で伝達される2つの信号を伴うハンド・シェイク・メカニズムが使用されることが可能である。PAUSE(一時停止)命令は、この例では、保持テストのために用いられる。内部的には、命令がデコードされるとただちに、保持テストの開始を通知するpause(一時停止)信号が、MBISTコントローラとATEとに発行される。MBISTコントローラは、応答として、「ホールド」状態に移り、ATEは、この例では、MBISTセッションを再開するためにはresume(再開)信号がMBISTコントローラに送られる必要があることを認識する。resume信号がATEによってアサートされると、MBISTセッションの再開が、MBISTコントローラに通知される。
10.0 コントローラの生成
新しいプログラマブルMBISTコントローラは、好適なEDAツールによって生成(プログラム)されることが可能である。そのようなツールの一例が、MBIST Architectである。プログラマブルMBISTコントローラは、そのようなツールの既存メモリMBIST挿入フローにおいて直接使用されることが望ましい。
が可能である。この新しいツールは、MBISTコントローラの、生成時の構成状態の永続的なバージョンを収容することが可能である。
11.March専用コントローラ
本明細書で開示される技術は、前述のような、より完全にプログラマブルなMBISTコントローラではなく、指定された1つ又は複数のアルゴリズムをサポートするMBISTコントローラを提供するように適合されることが、容易に可能である。一例として、例えばエンド・ユーザの要望に応じて、信号タイプのアルゴリズムをサポートするように、アーキテクチャを修正及び簡略化することが可能である。このアプローチの有利な例を、March専用コントローラに関して、以下で説明する。March専用コントローラは、Marchタイプのアルゴリズムだけをサポートする。このタイプの専用コントローラは、既に説明されたフィールド・プログラマブルMBISTコントローラのアーキテクチャの、Marchアルゴリズムの過度に単純化された性質による簡略化を考慮している。11.1 命令セット
アルゴリズム命令の場合、この例では、ビット[7:6]は使用されない。3つのイントラループ・アドレス操作方法(アドレス、アドレス+インデックス、及びアドレス−インデックス)が使用される。この例では、データは、データ・バックグラウンドであってもデータ・バックグラウンドの反転であってもよい。メモリ操作は、読み出し操作であっても、比較なしの読み出し操作であっても、書き込み操作であってもよい。
アーキテクチャの最高レベル図は、図4と同じであってよい。
そのロジック・ブロックは、以下のように説明される。
11.2.1 命令メモリ
March専用MBISTコントローラの一形態では、命令メモリは、プログラマブルMBISTコントローラと、MBISTコントローラによって実行される命令シーケンスのソースとの間のバッファである。命令メモリは、(例えば、8ビット・ワードの)レジスタ・ファイルから形成される。命令メモリのサイズは、増減が可能である。
11.2.2 命令デコーダ
例示的March専用MBISTコントローラの命令デコーダには、次の2つの論理機能がある。
・命令がアルゴリズム命令か構成命令かを決定する。
・構成命令をデコードする。
11.2.3 ステップ・コントローラ
このMarch専用MBISTコントローラの例のステップ・コントローラは、一形態では、1ステップ分のプリデコードされたアルゴリズム命令と、ステップのためのアドレス構成とを記憶し、テスト・ステップの実行を制御する。ステップ・コントローラは、4
つのサブブロック、即ち、命令バッファ及びバッファ制御と、アドレス構成バッファと、アドレス構成デコーダと、アルゴリズム命令デコーダとを備えるか、これらで構成される。ステップ・コントローラの例示的形態の詳細図は、既に図8で示されている。
11.2.4 アドレス・ジェネレータ
March専用データ・ジェネレータの一形態は、2つの部分、即ち、この例ではインター反復アドレス生成部分と、イントラ反復アドレス生成部分とを備えるか、これらで構成される。インター反復アドレス生成部分は、構成命令によって定義されるアドレス指定スキーム(行アドレス指定又は列アドレス指定)に従って、アドレスを更新する。イントラ反復アドレス生成部分は、ビット[5:4]と、インター反復アドレス生成部分によって生成されるアドレスとに基づいて、アドレスを生成する。イントラ反復アドレスは、インター反復アドレスであってもよく、インター反復アドレス±インデックスであってもよい(インデックスは、このバージョンでは、例えば1に設定されることが可能である)。11.3 データ・ジェネレータ
このMarch専用MBISTコントローラの好適なデータ・ジェネレータは、現在のメモリ操作の現在のメモリ・ロケーションに書き込まれるか、そこから読み出されるデータ値を生成する。
0 00000000
1 01010101
2 00110011
3 00001111
比較として、Checkerboardアルゴリズムの場合は、トポロジカル・データ・バックグラウンド「01...01」及びその反転が必要とされる。実際のデータ値は、アドレスに依存する。行ストライプ及び列ストライプ・アルゴリズムの場合は、メモリ
の偶数アドレス及び奇数アドレスに基づいてデータが生成されることが可能である。行ストライプ・アルゴリズムでは、例えば、1回の実行で、偶数行に「11...11」が書き込まれ、奇数行に「00.00」が書き込まれる。第2の実行では、データ・バックグラウンドが反転される。同様に、列ストライプ・アルゴリズムでは、交互の列がそれぞれ全て1及び全て0を有するようにデータが書き込まれることが可能である。一意データ・アルゴリズムの場合は、対応するメモリ・アドレスが、全てのメモリ・ロケーションの一意データとして用いられる。
11.4 制御ジェネレータ
このMarch専用の例の制御ジェネレータの役割は、現在のメモリ・アクセス操作に必要な全ての制御信号を生成することである。これは、最高速度の同期メモリの場合には、命令メモリに格納されたアルゴリズム命令によって直接駆動される、シンプルなメモリ制御信号アサーションであることが可能である。非同期メモリのような、他の場合は、一例では、状態カウンタと、カウンタ状態に基づく制御信号のアクティベーションとが用いられることが可能である。
11.5 出力応答アナライザ
出力応答アナライザは、メモリから読み出されたデータと、MBISTコントローラから生成された期待データとを比較する。このアナライザは、一形態では、2つの値を比較する比較器を備えるか、それで構成されることが可能である。メモリの幅が非常に大きい場合は、比較器のロジックの深さが大きくなり、従って、実動作速度のBIST操作を保証するためにパイプライン段が挿入されることが可能である。
11.6 診断モニタ
好適な診断モニタの例については、先述のセクション9.2を参照されたい。セクション9.1.2のアプローチは、テスト・プログラムのロードと、診断データのスキャン・アウトの両方のために実装されることが可能である。
12.0 プログラマブルMBISTコントローラの内部の例示的なブロック図及びインターフェース
本明細書のこのセクションでは、モジュール間の例示的インターフェースについて説明する。それらのモジュールは、図4の機能ブロック図から多少変更されている。
する。
自動テスト・パターン生成のための幾つかの制御ロジックが、メモリ制御信号入力に更に追加されることが可能である。
命令メモリ・モジュール102(図4及び37)(InstrMem)は、ATEからの命令ロードを制御し、命令のブロックを格納する。モジュール102は、load_request信号をATEに送って、命令のロードをATEに要求する。load_dataがATEから入力される。これは、この例では、命令で構成されるシリアル・データ・ストリームであることが可能である。ロードには、shift_clk信号が用いられる。
13.0 選択された機能の概要
フィールド・プログラマブル・メモリBISTコントローラの図示された基本実施形態及び代替実施形態の例示的機能は、おおまかには、以下のカテゴリに分類される。
のタイプがあり、それらは、構成命令及びアルゴリズム命令である。ハードウェアは、命令メモリと、命令デコーダと、プログラム・カウンタ・ジェネレータと、制御信号ジェネレータと、アドレス・ジェネレータと、データ・ジェネレータと、レイテンシ調節器と、出力応答アナライザとを備えるか、これらで構成されることが可能である。
ループ:テストされるメモリの、あらかじめ定義された全てのアドレスに対して、繰り返し実行される、一連の操作である。ループを表すために、「()」が用いられる。例えば、March要素は、ループを表す(RWR)として書かれることが可能である。
ベース・ループ:他のどのループにも埋め込まれないループ
ローカル・ループ:ベース・ループに埋め込まれたループ
ベース・セル:ベース・ループの反復のたびに更新されるアドレスを有するメモリ・セルローカル・セル:ローカル・ループの反復のたびに更新されるアドレスを有するメモリ・セル
テスト・ステップ:ローカル・ループを含んでも含まなくてもよいベース・ループ
14.0 その他の例
以下、2つの例を示す。
U(Wb0),U(Wb1,(Rl0,Rb1),Wb0),U(Wb1),U(Wb0,(Rl1,Rb0),Wb1)
この例示的アルゴリズムには、4つのテスト・ステップがある。「U」は、アドレスが大きくなる方向を意味する。(WbO)は、ベース・セルに「0」が書き込まれるベース・ループを表す。添え字「b」は、ベース・セルを意味する。(Wb1,(Rl0,Rb1),Wb0)は、ローカル・ループ(Rl0,Rb1)が入れ子になったベース・ループを意味する。Rl0は、ローカル・セルに「0」を書き込むことを表し、添え字「l」は、ローカル・セルを意味する。ローカル・ループがベース・セルに対して操作を実行できるのは明らかであるが、ベース・ループ操作(ローカル・ループ内にない操作)は、ローカル・セルに対して実行されることができない。
U(WO),U(R0W1R1),U(R1W0R0),D(R0W1R1),D(R1W0R0),D(R0)
Marchアルゴリズムには入れ子ループがないので、全てのメモリ・セルがベース・セルである。この例では、添え字「b」が省略されている。以下の説明では、便宜上、アドレス方向の「U」又は「D」、及びデータ・バックグラウンドの「0」又は「1」が省略されている場合がある。
ビット[4:3]は、アクセスされるべきメモリ・セル/ワードを表す。メモリ・セル/ワードは、ベース・ループ内のベース・セル/ワード、ローカル・ループ内のローカル・セル/ワード、又はベース・セル/ワードに近接するセル/ワードであることが可能である。
ビット[1]は、メモリ・セル/ワードに対して実行される操作を指定する。ビット指向メモリは、ワード指向メモリの、ワード・サイズが1である特殊なケースなので、以下の説明は、ワード指向メモリに基づいて行う。
込みを行う。上記の3つのマルチ・サイクル命令は、実際に第2のループ操作を実行するが、これらは、第1の実施形態では、便宜上、ベース・ループ・バッファにロードされることが望ましい。
一例示的プログラマブルMBISTコントローラの設計には、Marchアルゴリズム、Galloping/Walkingアルゴリズム、Butterflyテスト、Sliding diagonalテスト、及びアドレスPMOS開放故障のテストの全てが含まれる。しかしながら、例えばハードウェアの制限やテスト時間の制限などにより、これらのテストの全てが、いつも使用されたり、使用されることを許可されたりするわけではない。そのため、様々なタイプのアルゴリズムからアルゴリズムが選択されて含まれるようにプログラムされることが可能なプログラマブル・コントローラを提供することが望ましい。プログラマブルMBISTコントローラの実施形態の一基本形態に組み込まれることが可能な、これらの例示的テスト・アルゴリズムは、5つのグループ(March、Galloping/Walking、Butterfly、Sliding diagonal、及びアドレスPMOS開放故障用テスト)に分けることができる。Marchアルゴリズムは、基本的であり、例えば、プログラマブルMBISTの基本形態に必ず含まれることが可能である。他のグループについては、一部又は全てがプログラマブルMBISTに含まれてもよく、全く含まれなくてもよい。従って、この例によれば、(例えば、フィールドにおいて)どのアルゴリズム及びアルゴリズムの組合せがコントローラに組み込まれるかに応じて、最大16個の異なるバージョンの基本プログラマブルMBISTが可能である。
スとに分けられることが可能である。この例では、Marchアルゴリズム用のロジックは、全てのグループによって共用される。
法は、幾つかの、時間に関連した故障を検出し損なう可能性がある。第3の方法の利点は、テスト品質を損なわないことである。
診断のための例示的拡張命令を、次の表13に列挙する。
Claims (69)
- 少なくとも1つのメモリを備える集積回路であって、前記メモリをテストすべく、前記メモリの少なくとも1つのメモリ・テスト・アルゴリズムのためのテスト・データを適用するために、前記メモリは、セルと、前記集積回路の製造後に命令をプログラムすることによってプログラム可能なメモリ・ビルト・イン・セルフ・テスト(MBIST)回路とを備え、前記少なくとも1つのメモリ・テスト・アルゴリズムは、前記MBIST回路をプログラムすることによって決定され、前記MBIST回路は、
プログラミング命令を受け取ることに適合された命令メモリと、
プログラミング命令を受け取り、デコードすることに適合された命令デコーダと、
前記デコードされたプログラミング命令に応答して、前記少なくとも1つのテスト・アルゴリズムを実行するためにテスト・データを適用されるべき、前記メモリのセルのアドレス指定を決定するアドレス・ジェネレータであって、前記デコードされたプログラミング命令に応答して、少なくとも1つの入れ子ループを有する少なくとも1つのメモリ・テスト・アルゴリズムが実行されるように前記メモリのセルをアドレス指定するアドレス・ジェネレータと、
前記デコードされたプログラミング命令に従って、前記メモリの、前記アドレス指定されたセルにテスト・データを適用することと、前記適用されたテスト・データに対する、前記アドレス指定されたセルからの期待応答の出力を提供することとに適合されたデータ・ジェネレータであって、前記メモリは、前記適用されたテスト・データに応答して、前記アドレス指定されたセルから出力されたテスト結果を提示する、データ・ジェネレータと、
前記適用されたテスト・データに対する、前記メモリの1つ又は複数のセルからの期待応答と、前記適用されたテスト・データに対する、そのような1つ又は複数のセルについての対応するテスト結果とを比較するよう動作可能な出力アナライザと、を備える、集積回路。 - 請求項1に記載の集積回路であって、前記アルゴリズムは、複数のステップを含み、ステップ内に少なくとも2つの入れ子ループがあり、前記ステップ内で前記入れ子ループに対して実行されるメモリ操作は、前記メモリの動作可能動作速度で実行される、集積回路。
- 請求項1に記載の集積回路であって、前記プログラミング命令は、アルゴリズム命令ワードと構成命令ワードとを含み、前記構成命令ワードは、前記メモリのセルのベース・アドレスを変更する形式に関する命令を含む、集積回路。
- 請求項1に記載の集積回路であって、前記プログラミング命令は、アルゴリズム命令ワードと構成命令ワードとを含み、前記アルゴリズムは、複数のステップからなり、現在のアルゴリズム・ステップ内の全ての操作に対してアドレス指定スキームが同じままであることによって、前記デコーダは、前記現在のアルゴリズム・ステップの操作が実行されている間に、次のアルゴリズム・ステップのための前記アドレス・スキームを構成命令ワードから決定するよう動作可能である、集積回路。
- 請求項1に記載の集積回路であって、前記メモリは、アレイの形に配列されたセルを備え、各セルは、前記アレイ内のセルの行及び列に対応するアドレスを有し、前記アドレス・ジェネレータは、ベース・アドレス・ジェネレータ部分を含み、前記ベース・アドレス・ジェネレータ部分は、セルのベース行アドレス及びベース列アドレスを並行して決定するよう動作可能であり、且つ、最終ベース・アドレスを示すよう動作可能であり、前記アドレス・ジェネレータは、更に、ローカル・アドレス・ジェネレータ部分を含み、前記ローカル・アドレス・ジェネレータ部分は、セルのローカル行アドレス及びローカル列アド
レスを並行して決定するよう動作可能であり、且つ、最終ローカル・アドレスを示すよう動作可能である、集積回路。 - 請求項5に記載の集積回路であって、前記ローカル・アドレス・ジェネレータ部分は、第1の行及び第1の列のアドレス以外の、前記メモリ内の選択された行及び選択された列にあるセルから開始するよう、選択的に動作可能である、集積回路。
- 請求項5に記載の集積回路であって、前記ローカル・アドレス・ジェネレータ部分は、前記メモリの基準セル・ロケーションから開始するよう、選択的に動作可能である、集積回路。
- 請求項1に記載の集積回路であって、前記デコーダは、少なくとも1つの命令バッファを備え、前記少なくとも1つの命令バッファは、アルゴリズム命令デコーダ部分と、少なくとも1つのアドレス構成バッファ及びアドレス構成デコーダとに結合された部分を受け取る、集積回路。
- 請求項1に記載の集積回路であって、前記プログラミング命令は、アルゴリズム命令ワードと構成命令ワードとを含み、1つ又は複数の構成命令ワードが、前記構成ワードのサブセットであるアドレス構成命令部分を含み、前記命令デコーダは、アルゴリズム命令ワード及びアドレス構成命令部分をバッファリング及びデコードするよう動作可能なステップ・コントローラ部分を含み、前記デコーダは、更に、前記構成ワードの、アドレス構成命令部分以外の部分をデコードするよう動作可能な構成ワード・デコーダ部分を含む、集積回路。
- 請求項9に記載の集積回路であって、前記ステップ・コントローラは、OPレベル・バッファ部分と、命令バッファ部分と、初期設定インデックス・バッファ部分と、最終初期設定バッファ部分と、ジャンプ・アドレス・インデックス・バッファ部分と、最終ループ・バッファ部分とを含む、集積回路。
- 請求項1に記載の集積回路であって、前記アドレス・ジェネレータは、デコードされたプログラミング命令に応答して、少なくとも複数の入れ子ループを有する少なくとも1つのテスト・アルゴリズムを実行するテスト・データが前記メモリに適用されるように、セルのアドレスを指定する、集積回路。
- 請求項1に記載の集積回路であって、前記アドレス・ジェネレータは、デコードされたプログラミング命令に応答して、Galloping、Walking 0/1、及びアドレス・デコーダPMOS開放故障の各テスト・アルゴリズムからなるグループのテスト・アルゴリズムのうちの1つ又は複数を実行するテスト・データが前記メモリに適用されるように、セルのアドレスを指定する、集積回路。
- 請求項12に記載の集積回路であって、前記アドレス・ジェネレータは、デコードされたプログラミング命令に応答して、March1、March2、March3、列March、一意、Checkerboard、Sliding diagonal、Butterfly、ポート相互作用、ポート隔離、書き込みイネーブル故障検出、メモリ制御信号テスト、ROM1、及びROM2の各アルゴリズムからなるグループの追加テスト・アルゴリズムのうちの任意の1つ又は複数を実行するテスト・データが前記メモリに適用されるように、セルのアドレスを指定する、集積回路。
- 請求項1に記載の集積回路であって、前記アドレス・ジェネレータは、入れ子ループのアルゴリズム・ステップに関連付けられた操作の間にデータが適用されるべき、各セルの
実アドレスを生成するよう動作可能な、イントラ反復アドレス・ジェネレータと、前記入れ子ループに関連付けられた操作の実行の後に到達されるべきループに対応する、次のループ・アドレス値を生成するよう動作可能な、インター反復アドレス・ジェネレータとを備える、集積回路。 - 請求項14に記載の集積回路であって、前記メモリは、各セルが行アドレス及び列アドレスを有するセルのアレイを備え、前記イントラ反復アドレス・ジェネレータは、各セルの行アドレスと、各セルの列アドレスとを、並行して決定し、前記インター反復アドレス・ジェネレータは、前記次のループ・アドレス値の行アドレスと、前記次のループ・アドレス値の列アドレスとを、並行して決定する、集積回路。
- セルのアレイを備える少なくとも1つのメモリを備える集積回路であって、各セルは、行アドレス及び列アドレスを有し、前記集積回路は、更に、前記少なくとも1つのメモリに結合された、少なくとも1つのメモリ・ビルト・イン・セルフ・テスト(MBIST)回路を備え、前記MBIST回路は、
プログラミング命令をデコードするように適合されたデコーダを備え、前記プログラミング命令は、構成命令ワードとアルゴリズム命令ワードとを含み、前記デコーダは、アルゴリズム命令ワードと構成命令ワードとを区別することと、前記アルゴリズム命令ワードと前記構成命令ワードとを別々にデコードすることとに適合され、前記構成命令ワードは、少なくとも1つのテスト・アルゴリズムを指定するアルゴリズム指定部分を含み、前記テスト・アルゴリズムは、前記テスト・アルゴリズムに従って前記メモリをテストするために適用されるべきテスト・ステップを含み、前記アルゴリズム命令ワードは、テスト・ステップ中に実行されるべきメモリ操作を指定するメモリ・アクセス操作部分を含む、集積回路。 - 請求項16に記載の集積回路であって、前記MBIST回路は、前記デコーダと、
前記デコーダと結合され、前記プログラミング命令を受け取るように適合された命令メモリと、
前記デコーダに結合され、前記プログラミング命令に応答し、テスト・アルゴリズムの実行時にテスト・データを適用されるべき、前記メモリのセルのアドレス指定を決定するように構成された、アドレス・ジェネレータと、
前記デコードされたプログラミング命令に従って、前記アドレス指定されたセルに前記テスト・データを適用することと、前記適用されたテスト・データに対する、前記アドレス指定されたセルからの期待応答の出力を提供することとに適合されたデータ・ジェネレータであって、前記メモリは、前記適用されたテスト・データに応答して、前記アドレス指定されたセルから出力されたテスト結果を提示する、データ・ジェネレータと、
適用されたテスト・データに対する、セルからの、少なくとも選択された期待応答と、前記対応するセルから出力されたテスト結果とを比較して、前記少なくとも1つのメモリに関するテスト結果を提供するよう動作可能な出力アナライザと、を備える、集積回路。 - 請求項17に記載の集積回路であって、前記第1及び第2のバッファ部分のそれぞれは、ベース・ループ・バッファ部分及びローカル・ループ・バッファ部分を含む、集積回路。
- 請求項18に記載の集積回路であって、前記ベース・ループ・バッファ部分は、ベース・ループの間に、メモリの少なくとも選択されたベース・アドレスに対して実行されるベース・アドレス操作のシーケンスを記憶し、前記ローカル・バッファは、ローカル・ループの間に、前記ベース・アドレス以外の、少なくとも選択されたローカル・アドレスに対して実行されるローカル・アドレス操作のシーケンスを記憶し、前記MBIST回路は、ローカル・アドレス操作の前記シーケンスが開始されたベース・アドレスを記憶し、前記
ローカル・アドレス操作の完了後にその次のベース・アドレス操作から操作を再開するよう動作可能である、集積回路。 - 請求項16に記載の集積回路であって、前記構成命令は、メモリ回路テスト操作である
(a)前記MBIST回路によってテストされる複数のメモリに対し、任意の1つ又は複数のテスト・アルゴリズムを、順次連続的に適用することと、
(b)前記MBIST回路によってテストされる複数のメモリに対し、任意の1つ又は複数のテスト・アルゴリズムを、順次インタリーブ的に適用することと、
(c)テストのために前記MBIST回路に割り当てられた複数のメモリから、1つ又は複数のメモリを選択することと、のうちの1つ又は複数が実行されるようにテスト・アルゴリズムを実行するために、前記MBIST回路の実行時に前記MBIST回路をプログラムする命令を含む、集積回路。 - 請求項16に記載の集積回路であって、前記構成命令は、
(a)テストのために、少なくとも1つのメモリからなるメモリ・バンクを選択する操作と、
(b)テストのために、少なくとも1つのメモリからなるページを選択する操作と、
(c)テストのために、少なくとも1つのメモリからなるポートを選択する操作と、
(d)テストされるメモリのメモリ・アドレス範囲の一部を選択する操作と、
(e)診断モニタリングが実行されるべきかどうかを選択する操作と、
(f)1つ又は複数の特定のアルゴリズムに対して診断モニタリングが実行されるべきかどうかを選択する操作と、のうちの任意の1つ又は複数を実行するために、前記MBIST回路の実行時に前記MBIST回路をプログラムする命令を含む、集積回路。 - 請求項16に記載の集積回路であって、前記構成命令は、テスト時にデータ・ワードの指定された部分を使用するために、前記MBIST回路の実行時に前記MBIST回路をプログラムする命令を含む、集積回路。
- 請求項16に記載の集積回路であって、前記デコーダは、アルゴリズム命令をデコードするアルゴリズム・デコーダ部分と、構成命令をデコードする構成デコーダ部分とを含む、集積回路。
- 請求項23に記載の集積回路であって、前記アルゴリズム・デコーダ部分及び構成デコーダ部分は、並行して動作して、アルゴリズム命令のデコードと、構成命令のデコードとを、それぞれが並行して行う、集積回路。
- 請求項24に記載の集積回路であって、前記アルゴリズム・デコーダ部分は、アルゴリズム命令を第1の速度でデコードするよう動作可能であり、前記構成デコーダ部分は、前記構成命令の少なくとも一部を第2の速度でデコードするよう動作可能であり、前記第2の速度は、前記第1の速度より遅い、集積回路。
- 請求項25に記載の集積回路であって、前記第1の速度は、少なくとも、前記メモリの動作可能動作速度である、集積回路。
- 請求項24に記載の集積回路であって、前記アルゴリズム・デコーダ部分は、少なくとも第1及び第2のバッファ部分を含み、前記第1及び第2のバッファ部分は、前記第1のバッファ部分が、以前に受け取ったアルゴリズム命令ワードをアルゴリズム・デコーダに供給している間に、前記第2のバッファ部分がアルゴリズム命令ワードを受け取り、前記第2のバッファ部分が、以前に受け取ったアルゴリズム命令ワードをアルゴリズム・デコーダに供給している間に、前記第1のバッファ部分がアルゴリズム命令ワードを受け取る
ように、並行して動作する、集積回路。 - 請求項27に記載の集積回路であって、前記第1及び第2のバッファ部分のそれぞれは、ベース・ループ・バッファ部分及びローカル・ループ・バッファ部分を含む、集積回路。
- 請求項28に記載の集積回路であって、前記ベース・ループ・バッファ部分は、ベース・ループの間に、メモリの少なくとも選択されたベース・アドレスに対して実行されるベース・アドレス操作のシーケンスを記憶し、前記ローカル・バッファは、ローカル・ループの間に、前記ベース・アドレス以外の、少なくとも選択されたローカル・アドレスに対して実行されるローカル・アドレス操作のシーケンスを記憶し、前記MBIST回路は、ローカル・アドレス操作の前記シーケンスが開始されたベース・アドレスを記憶し、前記ローカル・アドレス操作の完了後にその次のベース・アドレス操作から操作を再開するよう動作可能である、集積回路。
- 請求項29に記載の集積回路であって、前記構成命令ワードは、前記ベース・アドレスを変更する形式に関する命令を含む、集積回路。
- 請求項30に記載の集積回路であって、ステップ内の全ての操作に対して前記アドレス指定スキームが同じままであることによって、前記デコーダは、現在のアルゴリズム・ステップの操作が実行されている間に、次のアルゴリズム・ステップのための前記アドレス・スキームを構成ワードから決定するよう動作可能である、集積回路。
- 請求項17に記載の集積回路であって、前記メモリは、アレイの形に配列されたセルを備え、各セルは、前記アレイ内のセルの行及び列に対応するアドレスを有し、前記アドレス・ジェネレータは、ベース・アドレス・ジェネレータ部分を含み、前記ベース・アドレス・ジェネレータ部分は、セルのベース行アドレス及びベース列アドレスを並行して決定するよう動作可能であり、且つ、最終ベース・アドレスを示すよう動作可能であり、前記アドレス・ジェネレータは、更に、ローカル・アドレス・ジェネレータ部分を含み、前記ローカル・アドレス・ジェネレータ部分は、セルのローカル行アドレス及びローカル列アドレスを並行して決定するよう動作可能であり、且つ、最終ローカル・アドレスを示すよう動作可能である、集積回路。
- 請求項32に記載の集積回路であって、前記ローカル・アドレス・ジェネレータ部分は、第1の行及び第1の列のアドレス以外の、前記メモリ内の選択された行及び選択された列にあるセルから開始するよう、選択的に動作可能である、集積回路。
- 請求項32に記載の集積回路であって、前記ローカル・アドレス・ジェネレータ部分は、前記メモリの基準セル・ロケーションから開始するよう、選択的に動作可能である、集積回路。
- 請求項16に記載の集積回路であって、前記デコーダは、少なくとも1つの命令バッファを備え、前記少なくとも1つの命令バッファは、アルゴリズム命令デコーダ部分と、少なくとも1つのアドレス構成バッファ及びアドレス構成デコーダとに結合された部分を受け取る、集積回路。
- テストされるべき少なくとも1つのメモリと、メモリ・ビルト・イン・テスト(MBIST)回路とを備える集積回路であって、前記MBIST回路は、自動テスト装置(ATE)から受け取った命令に応答して、少なくとも1つのテスト・アルゴリズムを、前記少なくとも1つのメモリに適用するように構成され、前記MBIST回路は、
前記ATEから命令を受け取るように適合された命令メモリと、
前記命令をデコードし、構成命令とアルゴリズム命令とを分離するよう動作可能な命令デコーダと、
前記デコードされた命令に応答して、前記デコードされた命令から決定されたアドレス指定スキームに従って、前記テストされるメモリのセルをアドレス指定するアドレス・ジェネレータであって、前記アドレス指定スキームは、前記アドレス指定されたセルにテスト・データが適用されると、前記少なくとも1つのメモリをテストするために前記少なくとも1つのテスト・アルゴリズムが実行されるように、前記メモリのセルをアドレス指定する、アドレス・ジェネレータと、
前記デコードされた命令から決定されたように、前記少なくとも1つのテスト・アルゴリズムが前記メモリに対して実行されるように、アドレス指定されたメモリ・セルにテスト・データを適用するデータ・ジェネレータであって、前記メモリは、前記データ・ジェネレータからデータを受け取った、少なくとも選択されたセルからのテスト応答出力を提示する、データ・ジェネレータと、
テスト結果を提供すべく、期待応答データと、前記選択されたセルから出力された実際のテスト応答とを比較するよう動作可能な出力応答アナライザと、
前記テスト結果によって故障が示された場合に診断データを記録する診断モニタと、を備える集積回路。 - 請求項36に記載の集積回路であって、前記命令メモリは、前記ATEから命令を受け取るように適合されたシフト・レジスタを備え、前記シフト・レジスタは、受け取った命令を、先入れ先出し(FIFO)バッファが満杯になるまで、FIFOバッファにパラレルにロードし、満杯になったら、受け取った命令のロードを一時停止し、前記FIFOバッファからの命令は、命令バッファに転送され、前記FIFOバッファが空になった後に、前記ATEが、前記シフト・レジスタに命令を供給するよう合図され、前記FIFOバッファが、満杯になるまで、前記シフト・レジスタによってリロードされ、この操作は、MBISTテストの間、繰り返される、集積回路。
- 請求項36に記載の集積回路であって、前記命令メモリから命令を受け取るように、前記命令メモリに結合された命令バッファを備える集積回路であって、現在のテスト・アルゴリズムの実行中に故障が検出された場合に、前記診断モニタが、前記故障に関する診断データを記録し、前記MBIST回路が、前記現在のステップの実行を一時停止し、前記診断データが、前記ATEにスキャン・アウトされ、前記診断データがスキャン・アウトされた後に、前記MBIST回路が、(a)前記命令バッファにある前記現在のアルゴリズム・ステップを、前記現在のアルゴリズム・ステップの先頭から再実行し、(b)前記メモリを、前記現在のステップの現在の状態が開始される前に存在した状態に再初期設定する、集積回路。
- 請求項36に記載の集積回路であって、前記診断モニタは、故障が検出された時点で診断データをロードされる単一レジスタを備え、前記診断データは、前記ATEにスキャン・アウトされる、集積回路。
- 請求項36に記載の集積回路であって、前記テスト・アルゴリズムのテスト・ステップ内のメモリ操作の間に、前記メモリの動作の少なくとも定格動作速度又は動作可能動作速度で、テストされる前記メモリにデータが適用され、前記診断モニタは、前記メモリの少なくとも定格動作速度又は動作可能動作速度でメモリ操作が実行されているときに、診断データを記録するよう動作可能である、集積回路。
- 請求項36に記載の集積回路であって、前記診断モニタは、BISTクロック・ドメインで動作する第1の有限状態機械と、診断クロック・ドメインで動作する第2の有限状態
機械と、を備える、集積回路。 - 集積回路に含まれる少なくとも1つのメモリをテストする方法であって、
前記集積回路のメモリ・テスト部分の命令メモリに配信される構成命令及びアルゴリズム命令をデコードするステップと、
前記メモリに適用されるべきテスト・ステップを含む少なくとも1つのテスト・アルゴリズムを、前記デコードされた命令から決定するステップと、
前記少なくとも1つのテスト・アルゴリズムに従って、前記メモリ内の少なくとも選択されたセルをテストするために、テスト・データを適用されるべき前記セルをアドレス指定するステップと、と含み、前記選択されたセルをアドレス指定する操作は、テスト・ステップ内の、少なくとも特定のメモリ・アクセス操作の間に、前記メモリの動作可能動作速度でセルがアドレス指定されるように達成され、
前記アドレス指定されたセルにテスト・データを適用するステップと、
テスト・データが適用された、少なくとも選択されたセルから読み出された出力結果を解析して、前記テスト結果が、前記適用されたテスト・データに対する応答としての、前記選択されたセルからの期待テスト結果と一致するかどうかを判定するステップと、を含む方法。 - 請求項42に記載の方法であって、前記アドレス指定操作は、前記テスト・アルゴリズムのうちの1つの、少なくとも1つの外側ループの中に入れ子にされた、前記テスト・アルゴリズムのうちの1つの、少なくとも1つの内側ループのセルをアドレス指定するステップを含み、前記アドレス指定動作は、入れ子ループ・アルゴリズムを含む少なくとも1つのテスト・アルゴリズムが実装されるように、前記内側ループのセルと前記外側ループのセルとの間の遷移をアドレス指定するステップを含む、方法。
- 請求項43に記載の方法であって、前記アドレス指定操作は、複数の入れ子ループのセルをアドレス指定するステップを含み、前記アドレス指定動作は、複数の入れ子ループを含む少なくとも1つのテスト・アルゴリズムが実装されるように、異なるループのセル間の遷移をアドレス指定するステップを含む、方法。
- 請求項44に記載の方法であって、前記アドレス指定操作は、少なくともループ内のメモリ・アクセス操作の間に、前記メモリの前記動作可能動作速度でセルをアドレス指定するステップを含む、方法。
- 請求項45に記載の方法であって、動作可能動作速度テストによって明らかになった、選択されたエラーに関して、診断データを記録する操作を含む、方法。
- 請求項42に記載の方法であって、複数のテスト・アルゴリズムを実装するために、構成命令及びアルゴリズム命令を前記集積回路に配信する操作を含む、方法。
- 請求項42に記載の方法であって、前記デコード操作は、アルゴリズム命令をデコードするステップと、構成命令をデコードするステップを、並行して行うことを含む、方法。
- 請求項48に記載の方法であって、前記デコード操作に加えて、少なくとも1つの第2のバッファが後続のテスト・ステップのメモリ操作を受け取っている間に、少なくとも1つの第1のバッファに格納された1つのテスト・ステップのメモリ操作を実行し、前記第1のバッファが次の後続のテスト・ステップのメモリ操作を受け取っている間に、前記第2のバッファに格納された前記後続のテスト・ステップの操作を実行する操作を含む、方法。
- 請求項49に記載の方法であって、前記少なくとも1つの第1のバッファは、テスト・ステップに従って全てのベース・アドレスに対して実行される操作のシーケンスを格納する、少なくとも1つの第1のベース・ループ・バッファを備え、前記少なくとも1つの第2のバッファは、テスト・アルゴリズム・ステップに従って全てのベース・アドレスに対して実行される操作のシーケンスを格納する、少なくとも1つの第2のベース・ループ・バッファを備え、前記少なくとも1つの第1のバッファは、更に、前記第1のベース・ループ・バッファの操作に関連付けられたベース・アドレスと異なるローカル・アドレスに対して実行される操作のシーケンスを格納する第1のローカル・ループ・バッファを備え、前記少なくとも1つの第2のバッファは、更に、前記第2のベース・ループ・バッファの操作に関連付けられたベース・アドレスと異なるローカル・アドレスに対して実行される操作のシーケンスを格納する第2のローカル・ループ・バッファを備える、方法。
- 請求項50に記載の方法であって、前記ローカル・アドレスは、前記ベース・アドレスに関連付けられた操作に関する、前記ベース・アドレス以外の、前記メモリ・セルの全てのアドレスを含む、方法。
- 請求項50に記載の方法であって、前記ローカル・アドレスは、前記ベース・アドレスに関連付けられた操作に関する、前記ベース・アドレス以外の、前記メモリ・セルのアドレスの、全てより少ないサブセットを含む、方法。
- 請求項50に記載の方法であって、前記ベース・ループ・バッファ内の現在のベース・アドレスに関連付けられたローカル・アドレス・バッファに格納された動作のシーケンスが実行された後に、前記現在のベース・アドレスから、前記ベース・ループ・バッファ内の次のベース・アドレスに達する操作を含む、方法。
- 請求項50に記載の方法であって、前記メモリ内の少なくとも選択されたセルをアドレス指定する操作は、前記選択されたセルのそれぞれについて、行アドレス及び列アドレスを、並行して決定するステップを含む、方法。
- 請求項50に記載の方法であって、前記アドレス指定操作は、選択されたセルのグループの第1のセルから、前記選択されたセルのグループの最後のセルまでのアドレスを指定するステップを含む、方法。
- 請求項50に記載の方法であって、前記アドレス指定操作は、基準セルから始まる、前記メモリの全てのセルをアドレス指定するステップを含む、方法。
- 請求項56に記載の方法であって、前記基準セルは、前記メモリのセルのアレイの第1の行アドレス及び第1の列アドレスにある、方法。
- 装置であって、
構成命令ワード及びアルゴリズム命令ワードを受け取る手段と、
構成命令ワード及びアルゴリズム命令ワードをデコードする手段と、
前記デコードされたプログラミング命令に応答して、メモリ・セルに対する少なくとも1つのテスト・アルゴリズムの実行を達成するために、前記メモリ・セルをアドレス指定する手段と、
前記デコードされたプログラミング命令に従って、前記アドレス指定されたセルにデータを適用し、前記適用されたデータに対する、アドレス・セルからの期待応答の出力を提供する手段と、
前記メモリのセルからの少なくとも選択された期待応答と、適用されたデータに対する応答としての、アドレス・セルからのテスト・データ出力とを解析して、前記メモリにつ
いてのテスト結果を提供する手段と、
前記テスト結果から診断データを収集する手段とを、備える装置。 - MBIST回路を提供する方法であって、
ユーザが、集積回路の1つ又は複数のメモリをテストするために、MBIST回路によって実行されることをユーザが望む1つ又は複数のメモリ・テスト・アルゴリズムを適用するために必要な入れ子ループの数を、指定することと、
前記ユーザによって指定された数の入れ子ループを有するメモリ・テスト・アルゴリズムを実行することが可能であるように構成されたMBIST回路を合成するステップとを、含む方法。 - 請求項59に記載の方法であって、前記ユーザによって指定された入れ子ループが少なくとも2レベルある、方法。
- MBIST回路を提供する方法であって、
ユーザが、複数のカテゴリのメモリ・テスト・アルゴリズムの中から、少なくとも1つのカテゴリのアルゴリズムを指定することと、
前記ユーザによって指定された前記少なくとも1つのカテゴリのアルゴリズムからなるメモリ・テスト・アルゴリズムを実行することが可能であるように構成されたMBIST回路を合成するステップとを、含む方法。 - 請求項61に記載の方法であって、前記ユーザ指定された少なくとも1つのカテゴリのアルゴリズムは、複数の入れ子ループを含む少なくとも1つのアルゴリズムを含む、方法。
- MBISTコントローラを提供する方法であって、
実行されることをユーザが望むメモリ・テスト・アルゴリズムをMBIST回路が実行するために必要なアドレス・ジェネレータの数を、ユーザが指定することと、
実行されることを前記ユーザが望む前記メモリ・テスト・アルゴリズムを実行するために、前記ユーザによって指定された数のアドレス・ジェネレータを有するように構成されたMBIST回路を合成するステップと、含む方法。 - 集積回路であって、
前記集積回路の少なくとも1つのメモリに、1つ又は複数のメモリ・テスト・アルゴリズムを適用することに用いられるMBIST回路を備え、前記MBIST回路は、
少なくとも1つの入れ子ループを含むメモリ・テスト・アルゴリズムを実行するために、ATEからの命令によってプログラムされることが可能な、第1のプログラマブルMBIST回路部分を含む、集積回路。 - 請求項64に記載の集積回路であって、前記MBIST回路は、前記第1のプログラマブルMBIST回路部分に加えて、有限状態機械のハード・コードされた命令によって決定される少なくとも1つのメモリ・テスト・アルゴリズムを実行する前記ハード・コードされた命令を含む、集積回路。
- 請求項64に記載の集積回路であって、前記第1のプログラマブルMBIST回路部分は、複数のループを含むアルゴリズム・ステップ内で、前記アルゴリズム・ステップを含むアルゴリズムによってテストされるメモリの動作可能動作速度でメモリ操作を実行するために、ATEからの命令によってプログラムされることが可能である、集積回路。
- 少なくとも1つのメモリを備える集積回路であって、前記メモリをテストすべく、前記
メモリの少なくとも1つのメモリ・テスト・アルゴリズムのためのテスト・データを適用するために、前記メモリは、セルと、前記集積回路の製造後に命令をプログラムすることによってプログラム可能なメモリ・ビルト・イン・セルフ・テスト(MBIST)回路とを備え、前記少なくとも1つのメモリ・テスト・アルゴリズムは、前記MBIST回路をプログラムすることによって決定され、前記MBIST回路は、
プログラミング命令を受け取ることに適合された命令メモリと、
プログラミング命令を受け取り、デコードすることに適合された命令デコーダと、
前記デコードされたプログラミング命令に応答して、前記少なくとも1つのテスト・アルゴリズムを実行するためにテスト・データを適用されるべき、前記メモリのセルのアドレス指定を決定するアドレス・ジェネレータであって、前記デコードされたプログラミング命令に応答して、少なくとも1つの入れ子ループを有する少なくとも1つのメモリ・テスト・アルゴリズムが実行されるように前記メモリのセルをアドレス指定するアドレス・ジェネレータと、
前記デコードされたプログラミング命令に従って、前記メモリの、前記アドレス指定されたセルにテスト・データを適用することと、前記適用されたテスト・データに対する、前記アドレス指定されたセルからの期待応答の出力を提供することとに適合されたデータ・ジェネレータであって、前記メモリは、前記適用されたテスト・データに応答して、前記アドレス指定されたセルから出力されたテスト結果を提示する、データ・ジェネレータと、
前記適用されたテスト・データに対する、前記メモリの1つ又は複数のセルからの期待応答と、前記適用されたテスト・データに対する、そのような1つ又は複数のセルについての対応するテスト結果とを比較するよう動作可能な出力アナライザと、を備え、
前記プログラミング命令は、アルゴリズム命令ワード及び構成命令ワードを含み、前記アルゴリズムは、複数のステップからなり、アルゴリズム・ステップの現在のループ内の全ての操作に対してアドレス指定スキームが同じままである、集積回路。 - メモリ・ビルト・イン・セルフ・テスト(MBIST)回路を備える集積回路であって、前記MBIST回路は、MBIST回路要素である、
(a)少なくとも1つのインター反復アドレス・ジェネレータ及び少なくとも1つのイントラ反復アドレス・ジェネレータと、
(b)MBISTテストに用いられる場合に、アルゴリズム・ステップ内でのマルチレベル入れ子ループの実行を可能にする、少なくとも1つのステップ・コントローラと、
(c)MBISTテストに用いられる場合に、命令を前記命令レジスタから先入れ先出し(FIFO)バッファにパラレルにロードすることを可能にする、前記FIFOバッファに結合されたレジスタを備える命令メモリと、
(d)MBISTテストに用いられる場合に、故障が検出されたステップに対応する現在のアルゴリズム・ステップからテストをリスタートすることを可能にする、診断モニタと、のうちの1つ又は複数を、前記集積回路を収容するチップに含む、集積回路。 - 請求項1に記載の集積回路であって、前記プログラミング命令は、アルゴリズム命令ワード及び構成命令ワードを含み、前記アルゴリズムは、複数のステップからなり、アルゴリズム・ステップの現在のアルゴリズム・ループ内の全ての操作に対してアドレス指定スキームが同じままであり、前記アドレス指定スキームは、アルゴリズム・ステップのループ間で調整可能である、集積回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62939504P | 2004-11-18 | 2004-11-18 | |
US73349305P | 2005-11-04 | 2005-11-04 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007543319A Division JP4494474B2 (ja) | 2004-11-18 | 2005-11-18 | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009259398A true JP2009259398A (ja) | 2009-11-05 |
Family
ID=36407815
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007543319A Active JP4494474B2 (ja) | 2004-11-18 | 2005-11-18 | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 |
JP2009185404A Pending JP2009259398A (ja) | 2004-11-18 | 2009-08-10 | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007543319A Active JP4494474B2 (ja) | 2004-11-18 | 2005-11-18 | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (3) | US7428680B2 (ja) |
EP (1) | EP1825479A4 (ja) |
JP (2) | JP4494474B2 (ja) |
WO (1) | WO2006055862A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017502386A (ja) * | 2013-12-26 | 2017-01-19 | インテル・コーポレーション | 集積回路の欠陥検出および修復 |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7533309B2 (en) * | 2004-02-26 | 2009-05-12 | Nilanjan Mukherjee | Testing memories using algorithm selection |
US7558948B2 (en) * | 2004-09-20 | 2009-07-07 | International Business Machines Corporation | Method for providing zero overhead looping using carry chain masking |
US7447965B2 (en) * | 2005-05-03 | 2008-11-04 | Agere Systems Inc. | Offset test pattern apparatus and method |
US7272756B2 (en) * | 2005-05-03 | 2007-09-18 | Agere Systems Inc. | Exploitive test pattern apparatus and method |
US20070033471A1 (en) * | 2005-06-09 | 2007-02-08 | Raguram Damodaran | Hardware Configuration of pBIST |
EP1899877A4 (en) * | 2005-06-27 | 2011-12-28 | Arithmosys Inc | METHOD FOR SPECIFICATION OF STATE-OF-THE-ART TRANSACTION-ORIENTED SYSTEMS AND FLEXIBLE PICTURE DEVICES TO A STRUCTURALLY CONFIGURABLE IN-STORAGE PROCESSING SEMICONDUCTOR COMPONENT |
DE102006004168A1 (de) * | 2005-08-04 | 2007-02-08 | Robert Bosch Gmbh | Überprüfung eines Adressdecoders |
US7945823B2 (en) * | 2006-03-02 | 2011-05-17 | Netlogic Microsystems, Inc. | Programmable address space built-in self test (BIST) device and method for fault detection |
US20080016421A1 (en) * | 2006-07-13 | 2008-01-17 | International Business Machines Corporation | Method and apparatus for providing programmable control of built-in self test |
US20080195901A1 (en) * | 2007-02-12 | 2008-08-14 | Marvell Semiconductor Israel Ltd. | Op-code based built-in-self-test |
US7840865B2 (en) * | 2007-03-23 | 2010-11-23 | Mentor Graphics Corporation | Built-in self-test of integrated circuits using selectable weighting of test patterns |
JP4407722B2 (ja) * | 2007-05-23 | 2010-02-03 | ソニー株式会社 | 表示装置 |
US7805644B2 (en) * | 2007-12-29 | 2010-09-28 | Texas Instruments Incorporated | Multiple pBIST controllers |
JP4799580B2 (ja) * | 2008-03-31 | 2011-10-26 | 株式会社東芝 | 半導体集積回路 |
US7882406B2 (en) * | 2008-05-09 | 2011-02-01 | Lsi Corporation | Built in test controller with a downloadable testing program |
US8156391B2 (en) * | 2008-05-27 | 2012-04-10 | Lsi Corporation | Data controlling in the MBIST chain architecture |
US8046643B2 (en) * | 2008-06-09 | 2011-10-25 | Lsi Corporation | Transport subsystem for an MBIST chain architecture |
US8170857B2 (en) * | 2008-11-26 | 2012-05-01 | International Business Machines Corporation | In-situ design method and system for improved memory yield |
US7906983B2 (en) * | 2008-12-08 | 2011-03-15 | Intuitive Research And Technology | Programmable logic device having an embedded test logic with secure access control |
US7908530B2 (en) * | 2009-03-16 | 2011-03-15 | Faraday Technology Corp. | Memory module and on-line build-in self-test method thereof for enhancing memory system reliability |
US20100257415A1 (en) * | 2009-04-01 | 2010-10-07 | Faraday Technology Corp. | Instruction-based programmable memory built-in self test circuit and address generator thereof |
US8065572B2 (en) * | 2009-06-30 | 2011-11-22 | Oracle America, Inc. | At-speed scan testing of memory arrays |
US8489943B2 (en) * | 2009-12-15 | 2013-07-16 | Stmicroelectronics International N.V. | Protocol sequence generator |
NL2004407C2 (en) * | 2010-03-16 | 2011-09-20 | Tu Delft | Generic march element based memory built-in self test. |
US8433976B1 (en) * | 2010-04-27 | 2013-04-30 | Altera Corporation | Row column interleavers and deinterleavers with efficient memory usage |
JP2012027734A (ja) * | 2010-07-23 | 2012-02-09 | Panasonic Corp | メモリコントローラおよびメモリアクセスシステム |
US8468408B2 (en) | 2010-09-16 | 2013-06-18 | Advanced Micro Devices, Inc. | Memory built-in self test (MBIST) circuitry configured to facilitate production of pre-stressed integrated circuits and methods |
US8423846B2 (en) * | 2010-09-16 | 2013-04-16 | Advanced Micro Devices, Inc. | Integrated circuit with memory built-in self test (MBIST) circuitry having enhanced features and methods |
US8392772B2 (en) * | 2010-09-16 | 2013-03-05 | Texas Instruments Incorporated | On-chip memory testing |
US8239818B1 (en) | 2011-04-05 | 2012-08-07 | International Business Machines Corporation | Data structure for describing MBIST architecture |
CN102737725A (zh) * | 2011-04-13 | 2012-10-17 | 复旦大学 | 自动优化存储器性能的可编程内建自测系统和方法 |
US20130019130A1 (en) * | 2011-07-15 | 2013-01-17 | Synopsys Inc. | Testing electronic memories based on fault and test algorithm periodicity |
CN103021467B (zh) * | 2011-09-27 | 2016-09-07 | 意法半导体研发(深圳)有限公司 | 故障诊断电路 |
US9910086B2 (en) | 2012-01-17 | 2018-03-06 | Allen Czamara | Test IP-based A.T.E. instrument architecture |
US8872322B2 (en) | 2012-10-22 | 2014-10-28 | International Business Machines Corporation | Stacked chip module with integrated circuit chips having integratable built-in self-maintenance blocks |
US8853847B2 (en) | 2012-10-22 | 2014-10-07 | International Business Machines Corporation | Stacked chip module with integrated circuit chips having integratable and reconfigurable built-in self-maintenance blocks |
US9194912B2 (en) | 2012-11-29 | 2015-11-24 | International Business Machines Corporation | Circuits for self-reconfiguration or intrinsic functional changes of chips before vs. after stacking |
US9436567B2 (en) * | 2012-12-18 | 2016-09-06 | Advanced Micro Devices, Inc. | Memory bit MBIST architecture for parallel master and slave execution |
US9773570B2 (en) | 2013-03-06 | 2017-09-26 | International Business Machines Corporation | Built-in-self-test (BIST) test time reduction |
US9251915B2 (en) * | 2013-11-11 | 2016-02-02 | Advantest Corporation | Seamless fail analysis with memory efficient storage of fail lists |
KR20150064452A (ko) * | 2013-12-03 | 2015-06-11 | 에스케이하이닉스 주식회사 | 내장형 셀프 테스트 회로 및 이를 포함한 반도체 장치 |
US9564245B2 (en) * | 2013-12-26 | 2017-02-07 | Intel Corporation | Integrated circuit defect detection and repair |
US9316689B2 (en) | 2014-04-18 | 2016-04-19 | Breker Verification Systems | Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models |
US20160003900A1 (en) * | 2014-07-04 | 2016-01-07 | Texas Instruments Incorporated | Self-test methods and systems for digital circuits |
US9514842B2 (en) * | 2014-09-24 | 2016-12-06 | Apple Inc. | Memory testing system |
US9836373B2 (en) * | 2014-11-26 | 2017-12-05 | Texas Instruments Incorporated | On-chip field testing methods and apparatus |
US9946620B2 (en) | 2015-02-03 | 2018-04-17 | Invecas, Inc. | Memory built-in self test system |
US10153055B2 (en) * | 2015-03-26 | 2018-12-11 | International Business Machines Corporation | Arbitration for memory diagnostics |
US11119893B2 (en) * | 2015-09-22 | 2021-09-14 | Advanced Micro Devices, Inc. | Computing system with wireless debug code output |
CN106409343B (zh) * | 2016-08-31 | 2019-10-25 | 上海华力微电子有限公司 | 适用于各类周期性测试算法的存储器内建自测试电路 |
US10318433B2 (en) * | 2016-12-20 | 2019-06-11 | Texas Instruments Incorporated | Streaming engine with multi dimensional circular addressing selectable at each dimension |
CN110082672B (zh) * | 2018-01-25 | 2020-09-11 | 大唐移动通信设备有限公司 | 一种芯片内逻辑模型的测试方法及装置 |
US10408876B2 (en) * | 2018-01-29 | 2019-09-10 | Oracle International Corporation | Memory circuit march testing |
US10593419B1 (en) * | 2018-02-12 | 2020-03-17 | Cadence Design Systems, Inc. | Failing read count diagnostics for memory built-in self-test |
US10685730B1 (en) | 2018-03-20 | 2020-06-16 | Seagate Technology Llc | Circuit including efficient clocking for testing memory interface |
US10665319B1 (en) * | 2018-09-20 | 2020-05-26 | Amazon Technologies, Inc. | Memory device testing |
US10818374B2 (en) | 2018-10-29 | 2020-10-27 | Texas Instruments Incorporated | Testing read-only memory using memory built-in self-test controller |
US10910081B2 (en) * | 2018-12-17 | 2021-02-02 | Micron Technology, Inc. | Management of test resources to perform reliability testing of memory components |
US11101015B2 (en) | 2018-12-17 | 2021-08-24 | Micron Technology, Inc. | Multi-dimensional usage space testing of memory components |
CN111833959B (zh) * | 2020-07-20 | 2022-08-02 | 北京百度网讯科技有限公司 | 存储器的测试的方法、装置、电子设备和计算机可读存储介质 |
CN112363875B (zh) * | 2020-10-21 | 2023-04-07 | 海光信息技术股份有限公司 | 一种系统缺陷检测方法、设备、电子设备和存储介质 |
CN112951314B (zh) * | 2021-02-01 | 2023-05-05 | 上海航天计算机技术研究所 | 一种基于tsc695处理器的可加载型通用ram自测试方法 |
US11847035B2 (en) * | 2021-08-23 | 2023-12-19 | International Business Machines Corporation | Functional test of processor code modification operations |
TWI777889B (zh) * | 2022-01-10 | 2022-09-11 | 芯測科技股份有限公司 | 用於產生記憶體自我測試演算法電路之方法 |
US12051476B2 (en) | 2022-05-11 | 2024-07-30 | Nxp Usa, Inc. | Testing disruptive memories |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS621031A (ja) * | 1985-03-25 | 1987-01-07 | Hitachi Ltd | デ−タ処理装置 |
JPS63263535A (ja) * | 1987-04-22 | 1988-10-31 | Hitachi Ltd | デ−タ処理システム |
JPH04343132A (ja) * | 1991-05-20 | 1992-11-30 | Advantest Corp | 中央演算処理装置 |
JPH0943317A (ja) * | 1995-07-26 | 1997-02-14 | Advantest Corp | 高速パターン発生方法及びこの方法を用いた高速パターン発生器 |
JP2673602B2 (ja) * | 1990-07-13 | 1997-11-05 | ソニー・テクトロニクス株式会社 | 制御装置 |
WO1998047152A1 (fr) * | 1997-04-16 | 1998-10-22 | Hitachi, Ltd. | Circuit integre a semi-conducteur et procede pour tester la memoire |
JP2860655B2 (ja) * | 1988-08-31 | 1999-02-24 | 日本テキサス・インスツルメンツ株式会社 | 並列命令実行型プロセッサ |
JPH1173774A (ja) * | 1997-06-26 | 1999-03-16 | Fujitsu Ltd | 半導体記憶装置 |
JP2968288B2 (ja) * | 1989-11-07 | 1999-10-25 | 株式会社リコー | 中央演算処理装置 |
JP2001148199A (ja) * | 1999-11-19 | 2001-05-29 | Mitsubishi Electric Corp | 自己テスト回路内蔵半導体記憶装置 |
JP2002140900A (ja) * | 2000-07-26 | 2002-05-17 | Internatl Business Mach Corp <Ibm> | マイクロコードと有限状態機械セルフテストを組み合わせるプログラマブル・メモリビルトイン・セルフテスト |
JP2003029966A (ja) * | 2001-07-17 | 2003-01-31 | Hitachi Ltd | データ処理装置 |
JP2004030783A (ja) * | 2002-06-26 | 2004-01-29 | Sony Corp | パターン発生回路及び半導体装置並びに半導体装置の試験方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5173906A (en) | 1990-08-31 | 1992-12-22 | Dreibelbis Jeffrey H | Built-in self test for integrated circuits |
US5253349A (en) * | 1991-01-30 | 1993-10-12 | International Business Machines Corporation | Decreasing processing time for type 1 dyadic instructions |
US5469443A (en) | 1993-10-01 | 1995-11-21 | Hal Computer Systems, Inc. | Method and apparatus for testing random access memory |
US6070252A (en) * | 1994-09-30 | 2000-05-30 | Intel Corporation | Method and apparatus for interactive built-in-self-testing with user-programmable test patterns |
US5661732A (en) * | 1995-05-31 | 1997-08-26 | International Business Machines Corporation | Programmable ABIST microprocessor for testing arrays with two logical views |
US20020071325A1 (en) * | 1996-04-30 | 2002-06-13 | Hii Kuong Hua | Built-in self-test arrangement for integrated circuit memory devices |
US6347256B1 (en) * | 1998-11-02 | 2002-02-12 | Printcafe System, Inc. | Manufacturing process modeling techniques |
KR100308621B1 (ko) | 1998-11-19 | 2001-12-17 | 윤종용 | 반도체 메모리 장치를 위한 프로그램 가능한 내장 자기 테스트 시스템 |
US6415403B1 (en) * | 1999-01-29 | 2002-07-02 | Global Unichip Corporation | Programmable built in self test for embedded DRAM |
US6567942B1 (en) * | 1999-11-08 | 2003-05-20 | International Business Machines Corporation | Method and apparatus to reduce the size of programmable array built-in self-test engines |
US6553527B1 (en) * | 1999-11-08 | 2003-04-22 | International Business Machines Corporation | Programmable array built-in self test method and controller with programmable expect generator |
US6671837B1 (en) | 2000-06-06 | 2003-12-30 | Intel Corporation | Device and method to test on-chip memory in a production environment |
US6874111B1 (en) * | 2000-07-26 | 2005-03-29 | International Business Machines Corporation | System initialization of microcode-based memory built-in self-test |
US6769081B1 (en) * | 2000-08-30 | 2004-07-27 | Sun Microsystems, Inc. | Reconfigurable built-in self-test engine for testing a reconfigurable memory |
US7168005B2 (en) * | 2000-09-14 | 2007-01-23 | Cadence Design Systems, Inc. | Programable multi-port memory BIST with compact microcode |
US6671843B1 (en) * | 2000-11-13 | 2003-12-30 | Omar Kebichi | Method for providing user definable algorithms in memory BIST |
US6760872B2 (en) * | 2001-03-19 | 2004-07-06 | Cypress Semiconductor Corp. | Configurable and memory architecture independent memory built-in self test |
CA2345605A1 (en) | 2001-04-30 | 2002-10-30 | Robert A. Abbott | Method of testing embedded memory array and embedded memory controller for use therewith |
US6347056B1 (en) * | 2001-05-16 | 2002-02-12 | Motorola, Inc. | Recording of result information in a built-in self-test circuit and method therefor |
US6950974B1 (en) | 2001-09-07 | 2005-09-27 | Synopsys Inc. | Efficient compression and application of deterministic patterns in a logic BIST architecture |
EP1343173A1 (en) * | 2002-03-04 | 2003-09-10 | iRoC Technologies | Prgrammable test for memories |
EP1387255B1 (en) | 2002-07-31 | 2020-04-08 | Texas Instruments Incorporated | Test and skip processor instruction having at least one register operand |
DE60216268D1 (de) | 2002-08-08 | 2007-01-04 | St Microelectronics Srl | Eingebaute Selbsttestschaltung für integrierte Schaltungen |
JP4205396B2 (ja) * | 2002-10-30 | 2009-01-07 | エルピーダメモリ株式会社 | 半導体集積回路装置 |
US7020820B2 (en) * | 2002-12-20 | 2006-03-28 | Sun Microsystems, Inc. | Instruction-based built-in self-test (BIST) of external memory |
US7062694B2 (en) * | 2003-02-07 | 2006-06-13 | Sun Microsystems, Inc. | Concurrently programmable dynamic memory built-in self-test (BIST) |
US6959256B2 (en) * | 2003-05-16 | 2005-10-25 | Analog Devices, Inc. | Universally accessible fully programmable memory built-in self-test (MBIST) system and method |
US7444564B2 (en) * | 2003-11-19 | 2008-10-28 | International Business Machines Corporation | Automatic bit fail mapping for embedded memories with clock multipliers |
US7325178B2 (en) * | 2003-12-05 | 2008-01-29 | Texas Instruments Incorporated | Programmable built in self test of memory |
US7533309B2 (en) | 2004-02-26 | 2009-05-12 | Nilanjan Mukherjee | Testing memories using algorithm selection |
US7206979B1 (en) | 2004-06-28 | 2007-04-17 | Sun Microsystems, Inc. | Method and apparatus for at-speed diagnostics of embedded memories |
US7181659B2 (en) | 2005-02-10 | 2007-02-20 | International Business Machines Corporation | Memory built-in self test engine apparatus and method with trigger on failure and multiple patterns per load capability |
-
2005
- 2005-11-18 JP JP2007543319A patent/JP4494474B2/ja active Active
- 2005-11-18 US US11/283,527 patent/US7428680B2/en active Active
- 2005-11-18 WO PCT/US2005/042029 patent/WO2006055862A2/en active Application Filing
- 2005-11-18 EP EP05849415A patent/EP1825479A4/en not_active Withdrawn
- 2005-11-18 US US11/282,938 patent/US7434131B2/en active Active
- 2005-11-18 US US11/283,499 patent/US7426668B2/en active Active
-
2009
- 2009-08-10 JP JP2009185404A patent/JP2009259398A/ja active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS621031A (ja) * | 1985-03-25 | 1987-01-07 | Hitachi Ltd | デ−タ処理装置 |
JPS63263535A (ja) * | 1987-04-22 | 1988-10-31 | Hitachi Ltd | デ−タ処理システム |
JP2860655B2 (ja) * | 1988-08-31 | 1999-02-24 | 日本テキサス・インスツルメンツ株式会社 | 並列命令実行型プロセッサ |
JP2968288B2 (ja) * | 1989-11-07 | 1999-10-25 | 株式会社リコー | 中央演算処理装置 |
JP2673602B2 (ja) * | 1990-07-13 | 1997-11-05 | ソニー・テクトロニクス株式会社 | 制御装置 |
JPH04343132A (ja) * | 1991-05-20 | 1992-11-30 | Advantest Corp | 中央演算処理装置 |
JPH0943317A (ja) * | 1995-07-26 | 1997-02-14 | Advantest Corp | 高速パターン発生方法及びこの方法を用いた高速パターン発生器 |
WO1998047152A1 (fr) * | 1997-04-16 | 1998-10-22 | Hitachi, Ltd. | Circuit integre a semi-conducteur et procede pour tester la memoire |
JPH1173774A (ja) * | 1997-06-26 | 1999-03-16 | Fujitsu Ltd | 半導体記憶装置 |
JP3723340B2 (ja) * | 1997-06-26 | 2005-12-07 | 富士通株式会社 | 半導体記憶装置 |
JP2001148199A (ja) * | 1999-11-19 | 2001-05-29 | Mitsubishi Electric Corp | 自己テスト回路内蔵半導体記憶装置 |
JP2002140900A (ja) * | 2000-07-26 | 2002-05-17 | Internatl Business Mach Corp <Ibm> | マイクロコードと有限状態機械セルフテストを組み合わせるプログラマブル・メモリビルトイン・セルフテスト |
JP2003029966A (ja) * | 2001-07-17 | 2003-01-31 | Hitachi Ltd | データ処理装置 |
JP2004030783A (ja) * | 2002-06-26 | 2004-01-29 | Sony Corp | パターン発生回路及び半導体装置並びに半導体装置の試験方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017502386A (ja) * | 2013-12-26 | 2017-01-19 | インテル・コーポレーション | 集積回路の欠陥検出および修復 |
US9922725B2 (en) | 2013-12-26 | 2018-03-20 | Intel Corporation | Integrated circuit defect detection and repair |
Also Published As
Publication number | Publication date |
---|---|
WO2006055862A3 (en) | 2006-09-14 |
US20060146622A1 (en) | 2006-07-06 |
US7434131B2 (en) | 2008-10-07 |
US20060156133A1 (en) | 2006-07-13 |
JP4494474B2 (ja) | 2010-06-30 |
EP1825479A4 (en) | 2008-04-16 |
US20060156134A1 (en) | 2006-07-13 |
EP1825479A2 (en) | 2007-08-29 |
JP2008521159A (ja) | 2008-06-19 |
WO2006055862A2 (en) | 2006-05-26 |
US7428680B2 (en) | 2008-09-23 |
US7426668B2 (en) | 2008-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4494474B2 (ja) | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 | |
KR970004074B1 (ko) | 메모리 장치 및 이를 포함한 집적 회로 | |
Du et al. | Full-speed field-programmable memory BIST architecture | |
US20020059543A1 (en) | Full-speed bist controller for testing embedded synchronous memories | |
US7533309B2 (en) | Testing memories using algorithm selection | |
JP4809568B2 (ja) | メモリ自己テストの方法と装置 | |
JP5336692B2 (ja) | 内部アットスピード論理bistを用いた論理ブロックの自動故障試験 | |
US6553527B1 (en) | Programmable array built-in self test method and controller with programmable expect generator | |
Boutobza et al. | Programmable memory BIST | |
JP3640350B2 (ja) | マイクロコードと有限状態機械セルフテストを組み合わせるプログラマブル・メモリビルトイン・セルフテスト | |
EP1411435A2 (en) | Command set for a software programmable verification tool having built-in selftest (bist) for testing and debugging an embedded device under test (dut) | |
CN110415751B (zh) | 一种可参数化配置的存储器内建自测试电路 | |
JP2001297598A (ja) | 半導体集積回路装置、及び半導体集積回路装置の自己テスト方法 | |
Wang et al. | A built-in self-test and self-diagnosis scheme for heterogeneous SRAM clusters | |
Du et al. | A field programmable memory BIST architecture supporting algorithms with multiple nested loops | |
Cheng | Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs | |
Zarrineh et al. | Self test architecture for testing complex memory structures | |
Shen et al. | A high speed BIST architecture for DDR-SDRAM testing | |
Nourmandi-Pour | A programmable IEEE 1500-compliant wrapper for testing of word-oriented memory cores | |
EP1411433A2 (en) | A software programmable verification tool having multiple built-in self-test (bist) modules for testing and debugging multiple devices under test (dut) | |
Du et al. | Full-speed field programmable memory BIST supporting multi-level looping | |
JP3628545B2 (ja) | メモリー素子用内蔵自己テスト回路 | |
KR20060018542A (ko) | 메모리 자체 테스트 회로 생성기 | |
JP2002243801A (ja) | 半導体集積回路 | |
EP1338014A1 (en) | AT-SPEED BUILT-IN SELF TESTING OF MULTI-PORT COMPACT sRAMs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090907 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100311 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100524 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101015 |