以下に添付図面を参照して、この解析装置および解析方法の好適な実施の形態を詳細に説明する。この解析装置および解析方法は、メモリ試験の各アルゴリズムに対応する各計算式を記憶しておき、試験結果が示すアルゴリズムに対応する計算式と試験パターン情報とに基づいてFBMを作成することで、試験パターン情報のデータ量を大幅に削減する。
(実施の形態)
(解析装置の構成)
図1は、実施の形態にかかる解析装置を示す図である。図1に示す不良解析パターン111は、March Cアルゴリズム、WalkingアルゴリズムまたはGallopingアルゴリズムなどのメモリ試験のアルゴリズムなどを示す情報である。不良解析パターン111はテスタ110へ入力される。
テスタ110は、入力された不良解析パターン111に従ってメモリ試験を行い、メモリ試験の結果を示すFAIL情報112(試験結果)を出力する。たとえば、テスタ110は、試験対象のメモリの各アドレスに所定のデータを書き込み、試験対象のメモリからデータを読み出して期待値照合する。このときの期待値は書き込み時のデータ値である。そして、テスタ110は、比較結果を試験結果として出力する。
解析装置120は、試験パターン情報121と、関数ライブラリ122と、テスタ110から出力されたFAIL情報112を入力する。試験パターン情報121は、試験対象のメモリの回路情報や全テストブロックのパターン情報をまとめた情報である。解析装置120は、入力された関数ライブラリ122と、試験パターン情報121と、FAIL情報112と、に基づいてFBM情報123を作成する。
FBM情報123(Fail Bit Map:フェイルビットマップ)は、テスタ110による試験対象のメモリセルの不良発生箇所を視覚的に示す情報である。解析装置120は、作成したFBM情報123をFBM表示装置124へ出力する。FBM表示装置124は、解析装置120から出力されたFBM情報123を表示する。
図2は、図1に示した解析装置の構成を示すブロック図である。図2に示すように、解析装置120(図1参照)は、関数ライブラリ入力部211と、関数ライブラリ格納メモリ212と、試験パターン情報入力部221と、試験パターン情報格納メモリ222と、FAIL情報解析部230と、計算処理部240と、を備えている。
関数ライブラリ入力部211には関数ライブラリ(図1の関数ライブラリ122)が入力される。関数ライブラリには、不良アドレスを計算する不良アドレス計算式と、不良ビットを計算する不良ビット計算式と、期待値を計算する期待値計算式と、の計算式群が複数含まれている。複数の計算式群は、それぞれ異なる関数名と対応付けられている。
関数ライブラリに含まれる各計算式の具体例については後述する(図11〜図13参照)。関数ライブラリ入力部211は、入力された関数ライブラリを関数ライブラリ格納メモリ212へ出力する。関数ライブラリ格納メモリ212は、関数ライブラリ入力部211から出力された関数ライブラリを格納する。
試験パターン情報入力部221には試験パターン情報(図1の試験パターン情報121)が入力される。たとえば、試験パターン情報には、パターン情報、インスタンス情報およびセル情報などが含まれている。パターン情報、インスタンス情報およびセル情報は、それぞれテストブロック名、インスタンス情報IDまたはセル情報IDなどの名前や番号と対応付けられている。試験パターン情報の具体例については後述する(図4〜図7参照)。試験パターン情報入力部221は、入力された試験パターン情報を試験パターン情報格納メモリ222へ出力する。
FAIL情報解析部230は、FAIL情報(図1のFAIL情報112)を取得する。FAIL情報解析部230は、外部端子名取得部231と、テストブロック名取得部232と、パターン情報特定部233と、情報ID取得部234と、試験パターン情報取得部235と、試験サイクル数取得部236と、アルゴリズム特定部237と、計算式選択部238と、を備えている。
外部端子名取得部231は、FAIL情報解析部230へ入力されたFAIL情報に含まれる外部端子名を取得し、取得した外部端子名を情報ID取得部234へ出力する。テストブロック名取得部232は、FAIL情報解析部230へ入力されたFAIL情報に含まれるテストブロック名を取得し、取得したテストブロック名をパターン情報特定部233へ出力する。パターン情報特定部233は、テストブロック名取得部232から出力されたテストブロック名に基づいてパターン情報を特定する。パターン情報特定部233は、特定したパターン情報を情報ID取得部234へ出力する。
情報ID取得部234は、テストブロック名取得部232から出力されたテストブロック名と、パターン情報特定部233から出力されたパターン情報と、に基づいてインスタンス情報ID、セル情報IDおよびチェーン情報IDを取得する。情報ID取得部234は、取得したインスタンス情報ID、セル情報IDおよびチェーン情報IDを試験パターン情報取得部235へ出力する。
試験パターン情報取得部235は、情報ID取得部234から出力されたインスタンス情報ID、セル情報IDおよびチェーン情報IDに対応する試験パターン情報(インスタンス情報などを含む)を試験パターン情報格納メモリ222から取得する。試験パターン情報取得部235は、取得した試験パターン情報を計算処理部240へ出力する。
試験サイクル数取得部236は、FAIL情報解析部230へ入力されたFAIL情報に含まれる試験サイクル数(パターン番号)を取得し、取得した試験サイクル数をアルゴリズム特定部237へ出力する。アルゴリズム特定部237は、試験サイクル数取得部236から出力された試験サイクル数に基づいて、メモリ試験のアルゴリズム名を特定し、特定したアルゴリズム名を計算式選択部238へ出力する。
計算式選択部238は、アルゴリズム特定部237から出力されたアルゴリズム名に付随する関数名に対応する不良アドレス計算式、不良ビット計算式および期待値計算式を関数ライブラリ格納メモリ212から取得する。不良ビット計算式は、たとえば、何番目のメモリ出力端子に対応するビットであるかを示す不良ビット番号を計算するための不良ビット番号計算式である。計算式選択部238は、取得した各計算式を計算処理部240へ出力する。
計算処理部240は、FAIL情報解析部230から出力された試験パターン情報と、不良アドレス計算式、不良ビット計算式および期待値計算式と、に基づいてFBM情報を作成する。具体的には、計算処理部240は、不良ビット計算部241と、不良アドレス計算部242と、期待値計算部243と、FBM情報作成部244と、を備えている。
不良ビット計算部241は、FAIL情報解析部230から出力された試験パターン情報と不良ビット計算式とに基づいて不良ビットを算出する。不良ビット計算部241は、算出した不良ビットをFBM情報作成部244へ出力する。ビットの計算においては「試験パターン情報」から「チェーン情報ID」で得られるチェーン情報と「セル情報ID」で得られるセル情報を用いてもよい(図6,図7参照)。
不良アドレス計算部242は、FAIL情報解析部230から出力された試験パターン情報と不良アドレス計算式とに基づいて不良アドレスを算出し、算出した不良アドレスをFBM情報作成部244へ出力する。期待値計算部243は、FAIL情報解析部230から出力された試験パターン情報と期待値計算式とに基づいて期待値を算出し、算出した期待値をFBM情報作成部244へ出力する。
期待値計算部243が算出する期待値は、セルの値が1または0のいずれの場合の不良かを判定するための期待値である。なお、解析装置120へ入力されたFAIL情報(図1に示したFAIL情報112)に期待値が含まれている場合は、期待値計算部243を省いた構成としてもよい。また、この場合は、計算式選択部238による期待値計算式の取得の動作を省いてもよい。
不良ビット計算部241、不良アドレス計算部242および期待値計算部243における引数は、たとえばアルゴリズムがMarch Cの場合は、試験パターン情報のインスタンス情報に含まれる最大ビット数B、最大ワード数N、オフセット値Sa、シフトサイクル数Sb、試験対象メモリのセル固有の構成要素であるポート数Pなどである。
FBM情報作成部244には、不良ビット計算部241から出力された不良ビットと、不良アドレス計算部242から出力された不良アドレスと、期待値計算部243から出力された期待値と、が入力される。また、図示しないが、FBM情報作成部244には、試験パターン情報取得部235から出力された試験パターン情報と、アルゴリズム特定部237から出力されたアルゴリズム名も入力されるようにしてもよい。
FBM情報作成部244は、入力された試験パターン情報(たとえばメモリインスタンス名など)、アルゴリズム名、不良ビット、不良アドレスおよび期待値などを視覚的に表示するためのFBM情報を作成する。FBM情報作成部244は、作成したFBM情報を出力する。FBM情報作成部244から出力されたFBM情報は、たとえば図1に示したFBM表示装置124へ入力され、FBM表示装置124によって表示される。
(解析装置の動作)
図3は、図2に示した解析装置の動作の一例を示すフローチャートである。図2に示した解析装置120は、たとえば以下のような解析動作を行う。まず、関数ライブラリ入力部211が、関数ライブラリの入力を受け付ける(ステップS301)。ステップS301によって入力された関数ライブラリは関数ライブラリ格納メモリ212に格納される。
つぎに、試験パターン情報入力部221が、試験パターン情報の入力を受け付ける(ステップS302)。ステップS302によって入力された試験パターン情報は試験パターン情報格納メモリ222に格納される。つぎに、FAIL情報解析部230が、たとえば図1に示したテスタ110からFAIL情報の入力を受け付ける(ステップS303)。
つぎに、パターン情報特定部233が、ステップS303によって入力されたFAIL情報に含まれるテストブロック名に基づいてパターン情報の特定を行う(ステップS304)。つぎに、試験パターン情報取得部235が、ステップS303によって入力されたFAIL情報に含まれる外部端子名と、ステップS304によって特定されたパターン情報と、に基づいてインスタンス情報の取得を行う(ステップS305)。つぎに、アルゴリズム特定部237が、ステップS303によって取得されたFAIL情報に含まれる試験サイクル数に基づいてアルゴリズム名の特定を行う(ステップS306)。
つぎに、計算式選択部238が、ステップS306によって特定されたアルゴリズム名に付随する関数名に対応する各計算式の選択を行う(ステップS307)。ステップS307によって選択される各計算式には、不良アドレス計算式、不良ビット計算式および期待値計算式が含まれている。つぎに、不良アドレス計算部242が、ステップS303によって取得されたFAIL情報と、ステップS307によって選択された不良アドレス計算式と、に基づいて不良アドレスの算出を行う(ステップS308)。
つぎに、不良ビット計算部241が、ステップS303によって取得されたFAIL情報と、ステップS307によって選択された不良ビット計算式と、に基づいて不良ビットの算出を行う(ステップS309)。つぎに、期待値計算部243が、ステップS303によって取得されたFAIL情報と、ステップS307によって選択された期待値計算式と、に基づいて期待値の算出を行う(ステップS310)。
つぎに、ステップS303によって入力されたFAIL情報のすべてについてステップS304〜S310の処理を行ったか否かを判断する(ステップS311)。FAIL情報のすべてについて処理を行っていない場合(ステップS311:No)は、ステップS304に戻り、処理を行っていないFAIL情報について処理を行う。
ステップS311において、FAIL情報のすべてについて処理を行った場合(ステップS311:Yes)は、ステップS308〜S310によって算出された不良アドレス、不良ビットおよび期待値を含むFBM情報の作成を行う(ステップS312)。つぎに、ステップS312によって作成されたFBM情報を出力し(ステップS313)一連の動作を終了する。ステップS313においては、たとえば図1に示したFBM表示装置124へFBM情報を出力する。
(試験パターン情報)
図4は、試験パターン情報の一例を示す図である。試験パターン情報格納メモリ222には、たとえば図4に示す試験パターン情報400が格納される。試験パターン情報400には、パターン情報411,412,413,…と、インスタンス情報421,422,423,…と、セル情報431,432,433,…と、が含まれている。
パターン情報411,412,413,…は、テストブロックの数だけ試験パターン情報400に含まれている。パターン情報411,412,413,…のそれぞれにはアルゴリズム情報が含まれている。パターン情報411,412,413,…のそれぞれに含まれるアルゴリズム情報の数は、BIST回路に依存する。
インスタンス情報421,422,423,…は、チップ内に搭載したメモリに接続したBIST回路の数だけ試験パターン情報400に含まれている。インスタンス情報421,422,423,…のそれぞれにはチェーン情報が含まれている。インスタンス情報421,422,423,…のそれぞれに含まれるチェーン情報の数は、BIST回路に依存する。たとえば、図16〜図19に示す例では1個のメモリにつきチェーン情報は1つであり、図20および図21に示す例では1個のメモリにつきチェーン情報は2つである。
セル情報431,432,433,…は、チップ内に搭載したメモリのセルライブラリであり、試験対象のメモリセル固有の情報である。セル情報431,432,433,…のそれぞれにはセル端子情報が含まれている。
図5は、図4に示した試験パターン情報に含まれるパターン情報の一例を示す図である。図5においては、図4に示したパターン情報411について説明するが、図4に示したパターン情報412,413,…についても同様である。パターン情報411は、テストブロック名毎に定義された情報である。パターン情報411には、テストブロック名と、メモリパターン情報と、が含まれている。テストブロック名は、テスタ(図1に示したテスタ110)が1回に処理するパターン集合のデータに付けた名前である。
メモリパターン情報は、メモリのインスタンス毎に定義された情報である。メモリパターン情報には、インスタンス情報IDと、チェーン情報IDと、アルゴリズム情報と、が含まれている。インスタンス情報IDは、回路内の試験対象メモリの個々のIDである。チェーン情報IDは、BIST回路に依存するチェーン情報の個々のIDである。アルゴリズム情報は、試験アルゴリズム毎に定義される情報である。
アルゴリズム情報には、アルゴリズム名と、開始試験サイクル数と、関数名と、ポート番号Pと、を含んでいる。アルゴリズム名は、インスタンス情報IDのメモリで適用する試験のアルゴリズム名である。開始試験サイクル数は、アルゴリズムの開始のパターン番号である。関数名は、適用する計算式の名前である。ポート番号Pは、試験対象となるメモリのポート番号である。ポート番号Pは、シングルポートのメモリであれば1であり、デュアルポートのメモリであれば1または2となる。
図6は、図4に示した試験パターン情報に含まれるインスタンス情報の一例を示す図である。図6においては、図4に示したインスタンス情報421について説明するが、図4に示したインスタンス情報422,423,…についても同様である。インスタンス情報421は、インスタンス名毎に定義された情報である。インスタンス情報421は、パターン情報411内のインスタンス情報ID(図5参照)で参照される。
インスタンス情報421は、インスタンス名と、セル情報ID(reg_no)と、チェーン情報と、BIST情報と、を含んでいる。インスタンス名は、インスタンス情報IDのメモリのインスタンス名(TOP階層からの連結名)である。セル情報IDは、インスタンス情報IDのメモリの参照先となるライブラリセルの個々のIDである。
チェーン情報は、試験対象のメモリの各ビットの読み出し結果を得るための情報である。チェーン情報は、パターン情報411内のチェーン情報ID(図5参照)で参照される。チェーン情報には、外部端子名と、セル端子名と、が含まれている。外部端子名は、テスタ(図1に示したテスタ110)によるメモリ試験の試験結果として得られるチップ外部端子を示す情報である。セル端子名は、上記のチップ外部端子へのチェーン接続となるFF(Flip Flop)に接続するメモリセルの端子名である。
BIST情報は、BIST回路に依存する情報である。BIST情報には、最大チェーン長と、最大ビット数Bと、最大ワード数Nと、オフセット値Saと、シフトサイクル数Sbと、が含まれている。最大チェーン長は、チップ外部入力からチップ外部出力へのFF数が同時測定のメモリインスタンスの中で最大となるチェーン長である。
最大ビット数Bは、同時測定のメモリインスタンスの中で最大のビット数である。最大ワード数Nは、同時測定のメモリインスタンスの中で最大のワード数である。オフセット値Saは、開始試験サイクル数から計算式を適用するまでのオフセット値である。オフセット値Saは、メモリセル内を初期化するためのライトコマンド実行などに必要なサイクル数となる。シフトサイクル数Sbは、ビット読み出し(最大ビット数×ポート数)以外に必要なシフト動作のサイクル数である。
図7は、図4に示した試験パターン情報に含まれるセル情報の一例を示す図である。図7においては図4に示したセル情報431について説明するが、図4に示したセル情報432,433,…についても同様である。セル情報431は、セル名毎に定義するライブラリセル情報である。セル情報431は、インスタンス情報421内のセル情報ID(図6参照)で参照される。
セル情報431には、セル名と、セルタイプ(構成要素)と、ビット数と、ワード数と、カラム数Cと、ポート数と、セル端子情報と、が含まれている。セル名は、セルの任意の名前である。セルタイプ(構成要素)は、RAMまたはROMやポート構成を識別するための情報である。ビット数、ワード数、カラム数Cおよびポート数は、RAM/ROMセルを構成する物理的な要素である。
セル端子情報は、RAM/ROMセルを構成する端子の情報である。セル端子情報には、端子名と、ポート番号と、ビット番号と、属性と、が含まれている。端子名は、セル端子の端子名である。ポート番号は、端子名が属するポート番号である。ビット番号は、端子名が属するビット番号である。属性は、端子名の機能を識別するための名前である。
(March Cアルゴリズムのパターン)
図8は、March Cアルゴリズムのパターンの一例を示す図である。図8において、横軸は時間軸を示し、縦軸はアドレスNを示している。「W0」、「R0W1」、「R1W0」、「ROW1」、「R1W0」および「R0」のそれぞれは、MarchCアルゴリズムをさらに分解して表現したフェーズの略称である。
フェーズ「W0」は、アドレス0からMAX(アドレスの最大値)への順で1アドレス毎に全ビットに0を書き込む(Write)フェーズである。フェーズ「R0W1」は、アドレス0からMAXへの順で1アドレス毎に0を読み込み(Read)、1を書き込む(Write)フェーズである。
フェーズ「R1W0」は、アドレス0からMAXへの順で1アドレス毎に1を読み込み(Read)、0を書き込む(Write)フェーズである。フェーズ「W0」に続くフェーズ「R0W1」の先頭部分810について、図9によって説明する。フェーズ「R0」は、アドレス0からMAXへの順で1アドレス毎に0を読み込む(Read)フェーズである。
図9は、図8に示したR0W1フェーズの先頭部分を示すタイミングチャートの図である。図9に示すタイミングチャート900の詳細については、たとえば特許文献(特開2008−10072号公報)に記載されている。タイミングチャート900においては、試験対象を4ビットのメモリとしている。試験対象のメモリには、各ビットの出力にFF31_0〜FF31_3が接続されている。
FF31_0〜FF31_3は、期待値の比較結果を保持しておくためのFFである。符号910に示す各読み込み動作後のFMTSEが1の区間においては、符号920に示すように、比較結果(FFの値)をチップ外部端子のMDOに出力している。
この場合は、March Cのアドレスは7サイクル毎にカウントアップしており、不良アドレスfaはfa=(tp−n)/(B+3)によって求めることができる。ここで、tpは試験サイクル(パターン番号)、nはフェーズ「W0」の終了時の試験サイクル、Bはメモリのビット数(タイミングチャート900の例ではB=4)である。たとえば、試験サイクルtp=n+3のときは、fa=0となる(小数点以下は切り捨て)。
フェーズ「W0」は0を書き込むフェーズである。不良ビットfbは、FMTSE=1の区間で何番目か(reg_no)を求め、チェーン情報(図6参照)を参照して算出される。FMTSEが1の区間で何番目かを求める式は、たとえば、reg_no=(tp−n)%(B+3)である(%は余りを求める演算子)。tp=n+3のときは、reg_no=3となる。
(アルゴリズム情報)
図10は、図4に示した試験パターン情報に含まれるアルゴリズム情報の一例を示す図である。図4に示したパターン情報411,412,413,…には、たとえば図10に示すアルゴリズム情報1000が含まれている。アルゴリズム情報1000において、「kind」はアルゴリズム名を示している。また、「func」は関数名を示している。
Marchアルゴリズムには、複数の種類があり、BIST回路にも依存する。このため、適用する計算式を特定するために関数名(func)を定義することで多種のアルゴリズムに対応可能となる。
アルゴリズム情報1000に含まれている関数名が示すMarch_C(March C)アルゴリズムやMarch_X(March X)アルゴリズムは、一般的に知られているMarchアルゴリズムの例である。March Cアルゴリズムは、「W0」、「R0W1↑」、「R1W0↑」、「R0W1↓」、「R1W0↓」、「R0」の6つのフェーズに分解することができる。
「↑」は、アドレス0からアドレスMAXへのアドレシングを示している。また、「↓」はアドレスMAXからアドレス0へのアドレシングを示している。また、March Xアルゴリズムは、「W0」、「R0W1↑」、「R1W0↑」、「R0」の4つのフェーズに分解することができる。
March CアルゴリズムおよびMarch Xアルゴリズムについて、「W0」や「R0」のアドレシングは任意である。また、March CやMarch X以外のアルゴリズムにおいても、フェーズ毎に分解し、分解したフェーズ毎に定義した計算式の組み合わせで不良アドレス、不良ビットおよび期待値の算出が可能となる。
(計算式の例)
図11は、不良アドレス計算式の一例を示す図である。図11に示すように、不良アドレスfa(t)の計算式は、フェーズ1110毎に定められている。各計算式のBは、同時測定対象メモリの中の最大ビット数を示している。また、Pは、試験対象メモリのセル固有の構成要素であるポート数を示している。Sbは、ビット読み出し以外のシフト動作のサイクル数を示している。また、INT(x)は、実数xの整数部分を示している。
また、ROUNDUP(x)は、実数xの小数点以下を整数に切り上げた値を示している。Nは、最大ワード数を示している。tは、現在の試験サイクル数から前のフェーズの終了時の試験サイクル数を引いた相対的な試験サイクル数である。
図11に示すように、フェーズ「R0↑」および「R1↑」において不良アドレスfa(t)を算出する計算式は、INT((t−1)/(B×P+Sb+1))である。また、フェーズ「R0W1↑」および「R1W0↑」において不良アドレスfa(t)を算出する計算式は、INT((t−1)/(B×P+Sb+2))である。
また、フェーズ「R0↓」および「R1↓」において不良アドレスfa(t)を算出する計算式は、N−ROUNDUP((t−1)/(B×P+Sb+1))である。また、フェーズ「R0W1↓」および「R1W0↓」において不良アドレスfa(t)を算出する計算式は、N−ROUNDUP((t−1)/(B×P+Sb+2))である。
フェーズ「R0↑」、「R1↑」、「R0↓」および「R1↓」における計算式の「+1」は、各フェーズのリードコマンドに必要な1サイクルである。フェーズ「R0W1↑」、「R1W0↑」、「R0W1↓」および「R1W0↓」における計算式の「+2」は、各フェーズのリードコマンドに必要な2サイクルである。
図12は、不良ビット番号計算式の一例を示す図である。図12に示すように、不良ビット番号fb(t)の計算式は、フェーズ1210毎に定められている。各計算式の%は、余りを求める式である。図12に示す不良ビット番号fb(t)は、外部端子「EXTO」から何番目に接続されているFFで検出したかを示す番号である(図17参照)。したがって、不良ビット番号fb(t)は、不良ビットがチップ外部端子からチェーンの接続順で何番目のビットであるかを示す。
フェーズ「R0↑」、「R1↑」、「R0↓」および「R1↓」において不良ビット番号fb(t)を算出する計算式は、t%(B×P+Sb+1)−1である。また、フェーズ「R0W1↑」、「R1W0↑」、「R0W1↓」および「R1W0↓」において不良ビット番号fb(t)を算出する計算式は、t%(B×P+Sb+2)−1である。
図13は、期待値計算式の一例を示す図である。図13に示すように、期待値fe(t)の計算式は、フェーズ1310およびパターン1320毎に定められている。各計算式において、「 ̄」は反転を示している。たとえば、 ̄1=0である。また、Cはカラム数(図7参照)である。まず、フェーズ「R0↑」、「R0↓」、「R0W1↑」および「R0W1↓」において期待値fe(t)を計算する計算式について説明する。
パターンが「ALL0」である場合は、期待値fe(t)は0である。また、パターンが「RowStripe」である場合は、期待値fe(t)はINT(fa/C)%2である。また、パターンが「Checker」である場合は、期待値fe(t)は( ̄(C%2)(INT(fa/C)%2)+(fa%2))%2である。
つぎに、フェーズ「R1↑」、「R1↓」、「R1W0↑」および「R1W0↓」において期待値fe(t)を計算する計算式について説明する。パターンが「ALL1」である場合は、期待値fe(t)は1である。また、パターンが「RowStripe」である場合は、期待値fe(t)は ̄INT(fa/C)%2である。また、パターンが「Checker」である場合は、期待値fe(t)は ̄( ̄(C%2)(INT(fa/C)%2)+(fa%2))%2である。
(March Cアルゴリズムにおける計算例)
図14は、March Cアルゴリズムに対応する不良アドレスの計算例を示す図である。図14のテーブル1400は、メモリ試験のアルゴリズムがMarch Cアルゴリズムである場合の不良アドレス計算部242による不良アドレスの計算例を示している。tpは、開始試験サイクル数からのパターン番号を示している。オフセット値Sa、シフトサイクル数Sbは、BIST情報のパラメータである。
メモリ試験のアルゴリズムがMarch Cアルゴリズムである場合は、フェーズの移行が「W0」、「R0W1↑」、「R1W0↑」、「R0W1↓」、「R1W0↓」、「R0」の順であるため、図11に示した各計算式から該当する各フェーズの計算式を取り出し、テーブル1400に示すように関数名「March_C」を定義しておくとよい。
最初のフェーズ「W0↑」のパターン番号tpは1〜Saとする。つぎのフェーズ「R0W1↑」のパターン番号tpは、Sa+1〜2N(B×P+Sb+2)+Saとする。このときの不良アドレスfa(tp)を算出する計算式は、INT((t−1)/(B×P+Sb+2))である。また、t=tp−Saである。
つぎのフェーズ「R1W0↑」のパターン番号tpは、パラメータ2N(B×P+Sb+2)+Sa+1〜4N(B×P+Sb+2)+Saとする。このときの不良アドレスfa(tp)を算出する計算式は、INT((t−1)/(B×P+Sb+2))である。また、t=tp−2N(B×P+Sb+2)−Saである。
つぎのフェーズ「R0W1↓」のパターン番号tpは、パラメータ4N(B×P+Sb+2)+Sa+1〜6N(B×P+Sb+2)+Saとする。このときの不良アドレスfa(tp)を算出する計算式は、N−ROUNDUP((t−1)/(B×P+Sb+2))である。また、t=tp−4N(B×P+Sb+2)−Saである。
つぎのフェーズ「R1W0↓」のパターン番号tpは、パラメータ6N(B×P+Sb+2)+Sa+1〜8N(B×P+Sb+2)+Saとする。このときの不良アドレスfa(tp)を算出する計算式は、N−ROUNDUP((t−1)/(B×P+Sb+2))である。また、t=tp−6N(B×P+Sb+2)−Saである。
つぎのフェーズ「R0↑」のパターン番号tpは、パラメータ8N(B×P+Sb+2)+Sa+1〜8N(B×P+Sb+2)+Sa+N(B×P+Sb+1)とする。このときの不良アドレスfa(tp)を算出する計算式は、INT((t−1)/(B×P+Sb+1))である。また、t=tp−8N(B×P+Sb+2)−Saである。
図15は、March Cアルゴリズムに対応する不良ビット番号の計算例を示す図である。図15のテーブル1500は、メモリ試験のアルゴリズムがMarch Cアルゴリズムである場合の不良ビット計算部241による不良ビット番号の計算例を示している。tpは、開始試験サイクル数からのパターン番号を示している。オフセット値Sa、シフトサイクル数Sbは、BIST情報のパラメータである。
アルゴリズムがMarch Cアルゴリズムである場合は、フェーズの移行が「W0」、「R0W1↑」、「R1W0↑」、「R0W1↓」、「R1W0↓」、「R0」の順であるため、図12に示した各計算式から該当する各フェーズの計算式を取り出し、図15に示すように関数名「March_C」を定義しておくとよい。
最初のフェーズ「W0↑」のパターン番号tpは1〜Saとする。つぎのフェーズ「R0W1↑」のパターン番号tpは、Sa+1〜2N(B×P+Sb+2)+Saとする。このときの不良ビット番号fb(tp)を算出する計算式は、t%(B×P+Sb+2)−1である。また、t=tp−Saである。
つぎのフェーズ「R1W0↑」のパターン番号tpは、パラメータ2N(B×P+Sb+2)+Sa+1〜4N(B×P+Sb+2)+Saとする。このときの不良ビット番号fb(tp)を算出する計算式は、t%(B×P+Sb+2)−1である。また、t=tp−2N(B×P+Sb+2)−Saである。
つぎのフェーズ「R0W1↓」のパターン番号tpは、パラメータ4N(B×P+Sb+2)+Sa+1〜6N(B×P+Sb+2)+Saとする。このときの不良ビット番号fb(tp)を算出する計算式は、t%(B×P+Sb+2)−1である。また、t=tp−4N(B×P+Sb+2)−Saである。
つぎのフェーズ「R1W0↓」のパターン番号tpは、パラメータ6N(B×P+Sb+2)+Sa+1〜8N(B×P+Sb+2)+Saとする。このときの不良ビット番号fb(tp)を算出する計算式は、t%(B×P+Sb+2)−1である。また、t=tp−6N(B×P+Sb+2)−Saである。
つぎのフェーズ「R0↑」のパターン番号tpは、パラメータ8N(B×P+Sb+2)+Sa+1〜8N(B×P+Sb+2)+Sa+N(B×P+Sb+1)とする。このときの不良ビット番号fb(tp)を算出する計算式は、t%(B×P+Sb+2)−1である。また、t=tp−8N(B×P+Sb+2)−Saである。
図16は、回路の接続例1を示すブロック図である。図16に示す回路1600は、RAM/ROM1610と、FF1621〜1624と、を備えている。RAM/ROM1610にはセル端子が4つ設けられており、各セル端子のセル端子名はA[0]〜A[3]となっている。FBM情報における不良ビットは、図16に示すセル端子名A[0]〜A[3]として算出される。
FF1621〜1624は、互いに直列に接続されている。セル端子A[0]〜A[3]には、それぞれFF1621〜1624が接続されている。図16に示した回路1600に対応するチェーン情報の具体例について、図17において説明する。
図17は、図16に示した回路の接続例1に対応するチェーン情報の具体例を示す図である。不良ビット番号計算式によって算出される不良ビット番号fb(tp)は、図17に示すチェーン情報1700におけるFF番号(reg_no)の「reg_0」〜「reg_4」として算出される。
「reg_0」には外部端子「EXTO」が対応付けられている。また、「reg_1」にはセル端子名A[3]が対応付けられている。また、「reg_2」にはセル端子名A[2]が対応付けられている。また、「reg_3」にはセル端子名A[1]が対応付けられている。また、「reg_4」にはセル端子名A[0]が対応付けられている。
不良ビット計算部241は、算出した不良ビット番号fb(tp)に対応する「reg_0」〜「reg_4」が、チェーン情報1700において対応付けられているセル端子名(A[0]〜A[3])を、不良ビットとして算出する。たとえば、不良ビット計算部241は、算出した不良ビット番号fb(tp)が「reg_2」であった場合は、FF番号「reg_2」に対応付けられたセル端子名A[2]を不良ビットとして算出する。
図18は、回路の接続例2を示すブロック図である。図18に示す回路1800は、多ポートRAM/ROM回路である。具体的には、回路1800は、RAM/ROM1810と、FF1821〜1828と、を備えている。RAM/ROM1810にはセル端子が8つ設けられており、各セル端子のセル端子名は、それぞれA[0]、B[0]、A[1]、B[1]、A[2]、B[2]、A[3]、B[3]となっている。
FBM情報における不良ビットは、図18に示すセル端子名A[0]〜B[3]として算出される。FF1821〜1828は、互いに直列に接続されている。セル端子A[0]〜B[3]には、それぞれFF1821〜1828が接続されている。図18に示した回路1800に対応するチェーン情報の具体例について、図19において説明する。
図19は、図18に示した回路の接続例2に対応するチェーン情報の具体例を示す図である。不良ビット番号計算式によって算出される不良ビット番号fb(tp)は、図19に示すチェーン情報1900におけるFF番号(reg_no)の「reg_0」〜「reg_8」として算出される。
「reg_0」には外部端子「EXTO」が対応付けられている。また、「reg_1」にはセル端子名B[3]が対応付けられている。また、「reg_2」にはセル端子名A[3]が対応付けられている。また、「reg_3」にはセル端子名B[2]が対応付けられている。また、「reg_4」にはセル端子名A[2]が対応付けられている。
「reg_5」〜「reg_8」については説明を省略する。不良ビット計算部241は、算出した不良ビット番号fb(tp)に対応する「reg_0」〜「reg_8」が、チェーン情報1900において対応付けられているセル端子名(A[0]〜B[3])を、不良ビットとして算出する。たとえば、不良ビット計算部241は、算出した不良ビット番号fb(tp)が「reg_1」であった場合は、FF番号「reg_1」に対応付けられたセル端子名B[3]を不良ビットとして算出する。
図20は、回路の接続例3を示すブロック図である。図20に示す回路2000は、RAM/ROMの最終段のビットに接続するFFから外部端子「EXTO」までの間にFFがある多ポート回路である。具体的には、回路2000は、RAM/ROM2010と、セレクタ2021〜2024と、FF2031〜2037と、を備えている。
RAM/ROM2010にはセル端子が8つ設けられており、各セル端子のセル端子名は、それぞれA[0]〜A[7]となっている。FBM情報における不良ビットは、図20に示すセル端子名A[0]〜A[7]として算出される。セレクタ2021〜2024は、セル端子A[0]〜A[7]に接続されている。
セレクタ2021は、セル端子A[0]およびセル端子A[1]のいずれか一方の出力をFF2031へ出力する。セレクタ2022は、セル端子A[2]およびセル端子A[3]のいずれか一方の出力をFF2032へ出力する。セレクタ2023は、セル端子A[4]およびセル端子A[5]のいずれか一方の出力をFF2033へ出力する。セレクタ2024は、セル端子A[6]およびセル端子A[7]のいずれか一方の出力をFF2034へ出力する。
FF2031〜2037は、互いに直列に接続されている。FF2031〜2034は、それぞれセレクタ2021〜2024に接続されている。FF2035〜2037は、RAM/ROM2010の最終段のビットに接続するFF2031から外部端子「EXTO」までの間に設けられている。FF2035〜2037には、それぞれ回路名FF[1]〜FF[3]が割り当てられている。
図21は、図20に示した回路の接続例3に対応するチェーン情報の具体例を示す図である。図20に示した回路2000においては、セレクタ2021〜2024の切替によって2つのチェーン情報2110およびチェーン情報2120が存在する。不良ビット番号計算式によって算出される不良ビット番号fb(tp)は、図21に示すチェーン情報2110およびチェーン情報2120におけるFF番号(reg_no)の「reg_0」〜「reg_7」として算出される。
チェーン情報2110において、「reg_0」には外部端子「EXTO」が対応付けられている。また、「reg_1」にはFF2035の回路名FF[1]が対応付けられている。また、「reg_2」にはFF2036の回路名FF[2]が対応付けられている。また、「reg_3」にはFF2037の回路名FF[3]が対応付けられている。
また、「reg_4」にはセル端子名A[6]が対応付けられている。また、「reg_5」にはセル端子名A[4]が対応付けられている。また、「reg_6」にはセル端子名A[2]が対応付けられている。また、「reg_7」にはセル端子名A[0]が対応付けられている。チェーン情報2120については、チェーン情報2110と同様であるため説明を省略する。
図22は、March Cアルゴリズムに対応する期待値の計算例を示す図である。図22のテーブル2200は、メモリ試験のアルゴリズムがMarch Cアルゴリズムである場合の期待値計算部243による期待値の計算例を示している。tpは、開始試験サイクル数からのパターン番号を示している。オフセット値Sa、シフトサイクル数Sbは、BIST情報のパラメータである。
アルゴリズムがMarch Cアルゴリズムである場合は、フェーズの移行が「W0」、「R0W1↑」、「R1W0↑」、「R0W1↓」、「R1W0↓」、「R0」の順であるため、図13に示した各計算式から該当する各フェーズの計算式を取り出し、図22に示すように関数名「March_C」を定義しておくとよい。
最初のフェーズ「W0↑」のパターン番号tpは1〜Saとする。つぎのフェーズ「R0W1↑」のパターン番号tpは、Sa+1〜2N(B×P+Sb+2)+Saとする。このときの期待値fe(tp)は0である。つぎのフェーズ「R1W0↑」のパターン番号tpは、パラメータ2N(B×P+Sb+2)+Sa+1〜4N(B×P+Sb+2)+Saとする。このときの期待値fe(tp)は1である。
つぎのフェーズ「R0W1↓」のパターン番号tpは、パラメータ4N(B×P+Sb+2)+Sa+1〜6N(B×P+Sb+2)+Saとする。このときの期待値fe(tp)は0である。つぎのフェーズ「R1W0↓」のパターン番号tpは、パラメータ6N(B×P+Sb+2)+Sa+1〜8N(B×P+Sb+2)+Saとする。このときの期待値fe(tp)は1である。
つぎのフェーズ「R0↑」のパターン番号tpは、パラメータ8N(B×P+Sb+2)+Sa+1〜8N(B×P+Sb+2)+Sa+N(B×P+Sb+1)とする。このときの期待値fe(tp)は0である。このように、March_Cアルゴリズムにおいては、期待値fe(tp)は0または1である。このため、テーブル2200は、図13に示したパターン「ALL0」および「ALL1」を抜き出したものになる。
(解析装置のハードウェア構成)
図23は、図2に示した解析装置のハードウェア構成を示すブロック図である。解析装置120(図2参照)は、たとえば図23に示すコンピュータ2300によって実現することができる。コンピュータ2300は、入力インタフェース2310と、演算部2320と、メモリ2330と、出力インタフェース2340と、を備えている。
入力インタフェース2310は、外部からの情報の入力を受け付けるインタフェースである。図2に示した関数ライブラリ入力部211および試験パターン情報入力部221は、たとえば入力インタフェース2310によって実現することができる。たとえば、入力インタフェース2310は、図1に示した試験パターン情報121、関数ライブラリ122およびFAIL情報112の入力を受け付ける。
演算部2320は、コンピュータ2300全体の制御を行うとともに、メモリ2330をワーキングメモリとして用いて各種の演算処理を行う。図2に示したFAIL情報解析部230および計算処理部240は、たとえば演算部2320によって実現することができる。演算部2320は、たとえばCPU(Central Processing Unit)である。
メモリ2330は、演算部2320のワーキングメモリとして使用されるとともに、入力インタフェース2310から入力される各種の情報を記憶する。図2に示した関数ライブラリ格納メモリ212および試験パターン情報格納メモリ222は、たとえばメモリ2330によって実現することができる。
出力インタフェース2340は、外部へ情報を出力するインタフェースである。図2に示した計算処理部240から出力されたFBM情報は、たとえば出力インタフェース2340から外部へ出力される。たとえば、出力インタフェース2340は、FBM情報を図1に示したFBM表示装置124へFBM情報を出力する。
たとえば、演算部2320によって実現されるFAIL情報解析部230は、取得したFAIL情報をメモリ2330に書き込む。また、アルゴリズム特定部237は、メモリ2330に書き込まれたFAIL情報を読み出し、読み出した試験結果に基づいてアルゴリズムを特定し、特定したアルゴリズムをメモリ2330に書き込む。
また、演算部2320によって実現される計算式選択部238は、アルゴリズム特定部237によってメモリ2330に書き込まれたアルゴリズムを読み出し、読み出したアルゴリズムに対応する計算式を選択し、選択した計算式をメモリ2330に書き込む。
また、演算部2320によって実現される計算処理部240は、FAIL情報解析部230によってメモリ2330に書き込まれた試験結果と、計算式選択部238によってメモリ2330に書き込まれた計算式と、を読み出す。計算処理部240は、読み出した試験結果と計算式とに基づいてFBM情報を作成し、作成したFBM情報をメモリ2330に書き込む。また、出力インタフェース2340は、メモリ2330に書き込まれたFBM情報を読み出し、読み出したFBM情報を出力する。
以上説明したように、解析装置および解析方法によれば、不良アドレスや期待値などをアルゴリズムに対応した計算式によって算出できるため、試験パターン情報から不良アドレスや期待値などを削減してもフェイルビットマップを作成することができる。このため、試験パターン情報のデータ量の削減を図ることができる。
なお、本実施の形態で説明した解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。