(57)【特許請求の範囲】
【請求項１】
入力テストアルゴリズムをマクロ命令のシーケンスに翻訳する第一の有限マシンと、前記マクロ命令の各々をワンホットコード化されたテストパターンのシーケンスに解釈する第二の有限マシンと、前記第一の有限マシンと前記第二の有限マシンとの間の同期バッファとして働く先送り先出しレジスターと、前記ワンホットコード化されたテストパターンの複数のワンホットコードの各々をメモリー素子により定義されたコードにマッピングするエンコーダと、前記内蔵自己テスト回路とメモリー素子との間のバッファとして働く出力バッファと、期待メモリー応答を遅延させる遅延バッファと、前記メモリー素子が正常に機能しているか否かを判断するために、前記メモリー素子の出力応答と前記遅延バッファから供給された前記期待メモリー応答とを比較する比較器と、を備えたことを特徴とするメモリー素子用の内蔵自己テスト回路。
【請求項２】
請求項１に記載の内蔵自己テスト回路において、前記メモリー素子がダイナミックランダムアクセスメモリーであることを特徴とするメモリー素子用の内蔵自己テスト回路。
【請求項３】
請求項１に記載の内蔵自己テスト回路において、前記マクロ命令のシーケンスが、前記メモリー素子により定義されたメモリーコマンドのシーケンスにより定義されていることを特徴とする相互接続構造。
【請求項４】
請求項１に記載の内蔵自己テスト回路において、さらに、内蔵自己テスト回路とメモリー素子との間にマルチプレクサーを備えていることを特徴とする内蔵自己テスト回路。
【請求項５】
請求項１に記載の内蔵自己テスト回路において、前記遅延バッファが先送り先出しレジスターを備えていることを特徴とする内蔵自己テスト回路。
【請求項６】
テストアルゴリズムからマクロ命令のシーケンスを作成するプロデューサと、前記マクロ命令の各々をテストパターンのシーケンスに翻訳するスケジューラと、マスタ−スレーブ同期メカニズム、すなわち、前記スケジューラにより信号"next"が表明され、前進操作を実行し、同時にプロデューサにより作られた新しいマクロ命令がラッチされ、前記スケジューラにより前記信号"next"が表明されないときには操作が実行されないというメカニズムに従って、前記プロデューサと前記スケジューラとの間のラッチ及び前進操作に関連づけられたキューと、テストパターンのワンホットコードをDRAMに定義された２進コードにエンコードするエンコーダーと、テストを実行する前記DRAMに送られる前記２進コードのためのバッファとして働くBIST出力バッファと、前記テストパターンに従って、期待DRAM応答を遅延させる遅延バッファと、前記DRAMの出力応答と前記遅延バッファから供給された期待DRAM応答とを比較する比較器と、を備えたことを特徴とするDRAMのテスト用の内蔵自己テスト回路。
【請求項７】
請求項６に記載の内蔵自己テスト回路において、前記DRAMにより定義されたメモリーコマンドのシーケンスに従って、マクロ命令のシーケンスが作成されることを特徴とする内蔵自己テスト回路。
【請求項８】
請求項６に記載の内蔵自己テスト回路において、プロデューサ及びスケジューラの状態をエンコードするために、前記ワンホットコードが使用されることを特徴とする内蔵自己テスト回路。
【請求項９】
請求項６に記載の内蔵自己テスト回路において、プロデューサ及びスケジューラの出力をエンコードするために、前記ワンホットコードが使用されることを特徴とする内蔵自己テスト回路。
【請求項１０】
請求項６に記載の内蔵自己テスト回路において、プロデューサと、キューと、スケジューラと、エンコーダーとによって構成された３段階パイプラインを備えていることを特徴とする内蔵自己テスト回路。
【請求項１１】
前記プロデューサが、２サイクルパス成分であるか、または、すべての２クロックサイクルのマクロ命令を作成するものであることを特徴とする内蔵自己テスト回路。
【請求項１２】
請求項６に記載の内蔵自己テスト回路において、前記マクロ命令を連続クロックサイクルで作成することなく、前記スケジューラを設計するために、マスタ−スレーブ同期メカニズムが使用されることを特徴とする内蔵自己テスト回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリーのテスト法及びテスト用ハードウェアに関する。さらに具体的には、同一チップに埋め込まれたメモリー素子用の内蔵自己テスト回路に関する。
【０００２】
【従来の技術、及び、発明が解決しようとする課題】
メモリーは、チップ上あるいはマスク上のダスト粒子や、きずや、ゲート酸化物ピンホール等の、電気的短絡のもとになるものに起因した製造プロセス関連の不良に影響されやすい。これまで、メモリーが正常に機能するかどうかをテストするための方法やハードウェアが、かなり開発されてきた。しかしながら、集積回路技術が進歩するほど、メモリーの機能がはるかに複雑になっている。そのため、メモリーの機能テストを行うため、しばしば長時間を要し、また、複雑な回路が必要になっている。
【０００３】
上記問題を解決するため、メモリー用内蔵自己テスト（ＢＩＳＴ）法がに開発された。このメモリー用内蔵自己テスト法においては、テストアルゴリズムが、テスト中のメモリーに与えられるコマンド、データ、アドレスのシーケンスに翻訳される。従来、この翻訳過程を実行するためには、配線して構成された有限ステートマシン（ＦＳＭ）が使われている。スピードテストの能力を発揮するため、ＢＩＳＴ回路は、テスト中のメモリーと同じスピードで作動する。このアプローチの欠点は、有限ステートマシンが、テストアリゴリズムに依存する複雑さを有するテストパターンの特定のセットに合わせて作られていることである。テストアリゴリズムの複雑さが増すほど、この有限ステートマシンが大型化しすぎ、また、遅くなりすぎて、テスト用のメモリを徹底的にテストするための個々のクロックサイクルのテストパターンを作ることができないので、このアプローチは好ましくない。
【０００４】
プログラム可能な、すなわち、構成可能なＢＩＳＴ回路が、１９９２年に  Ｄｒｅｉｂｅｌｂｉｓ氏らによって開示された、米国特許第５，１７３，９０６号明細書”Ｂｕｉｌｔ−ｉｎ  Ｓｅｌｆ−Ｔｅｓｔ  ｆｏｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ”において参照できる。また、テストパターンを作るために読み込み専用メモリの内容物内に定義されたマイクロコード化シーケンスを使う回路が、１９９３年にＰｏｐｙａｃｋ氏らによって米国特許第５，２２４，１０１号明細書に開示されている。さらには、Ｔａｌｌｅｙ氏らによって米国特許第５，３０１，１５６号明細書の”Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｓｅｌｆ−Ｔｅｓｔ  ｆｏｒ  Ｅｍｂｅｄｄｅｄ  ＲＡＭｓ”おいて、回路のアドレス部、コマンド部、データ部を経由する直列経路を有し、テストを開始し、あるいは、パターンを制御し、そして、その結果を取り出すというスキャン（各スキャンは、７個のクロックサイクルを要する。）を行う回路が開示されている。
【０００５】
ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）用のテストアルゴリズムは、通常複雑であり、テストを行うためには比較的長い時間がかかる。上記先行技術においては、いずれにも、テストスピードの問題を解決するため、特にＤＲＡＭに適用可能な方法や構造は開示されていない。
【０００６】
【課題を解決するための手段】
本発明は、メモリーテスト用の回路、特に、ＤＲＡＭテスト用の回路を提供する。この回路は、パイプライン法を採用するため、２個の有限ステートマシンを備えている。また、これら２個の有限マシン間を交信するプロトコルが確立されている。さらに、設計のタイミングクリティカリティが緩和されている。
【０００７】
本発明は、同じチップ内に埋め込まれたメモリテスト用、特に、ＤＲＡＭテスト用の内蔵自己テスト回路を提供する。このビルトイン回路は、２個の有限ステートマシンと、キューと、エンコーダーと、メモリー入力バッファと、遅延バッファと、比較器とをパイプライン構造で備えている。
【０００８】
前記有限ステートマシンのうちの一方は、プロデューサとよばれ、テストアルゴリズムをマクロ命令のシーケンスに翻訳する。もう一方の有限ステートマシンは、スケジューラとよばれ、さらにそれらのマクロ命令の各々を一連のストパターンに解釈する。前記キューは、同期バッファとして働いて、プロデューサとスケジューラとの間を結合する。そして、ラッチ及び前進（ｌａｔｃｈ−ａｎｄ−ｓｈｉｆｔ  ｆｏｒｗａｒｄ）操作が実行される。次に、そのテストパターンが、前記スケジューラからエンコーダにインプットされる。ここで、このエンコーダは、前記テストパターンをコード化して、ワンホットコードをメモリーにより定義される２進コードに変換する。前記パイプラインは、３段階を備えている。第一段階では、テストアリゴリズムをマクロ命令に翻訳する。第二段階では、そのマクロ命令をテストパターンに解釈する。第三段階では、ワンホットコードを２進コードで定義されたメモリにコード化する。ＢＩＳＴ回路により導入された、メモリの潜在的なパフォーマンスの低下により、前記エンコーダが、さらにＢＩＳＴ出力バッファ（ＢＯＢ）に接続される。
【０００９】
前記遅延バッファは、ＢＩＳＴ出力バッファと比較器との間に接続される。メモリーの期待応答が、それによって計算される。
【００１０】
前記遅延バッファは、期待応答の計算結果を前記比較器に出力する。そして、比較器が、期待応答とメモリーのテスト応答とを比較して、メモリが合格か不良かを判断する。
【００１１】
さらに、本発明は、メモリのテスト法、特にＤＲＡＭのテスト法を提供する。テストアリゴリズムが、入力され、第一の有限マシンによりマクロ命令のシーケンスに翻訳される。交信プロトコルにしたがって、キューにより同期されるので、個々のマクロ命令は、ワンホットコード化されたテストパターンのシーケンスに解釈される。そして、このワンホットコード化されたテストパターンの各々は、ＤＲＡＭにより定義されたコードにマップされる。テストを実行するため、そのマップされたコードが、ＢＩＳＴ遅延バッファを経由してＤＲＡＭに送られる。図に示したように、マルチプレクサ（ＭＵＭ）が、さらに、ＢＩＳＴ回路とＤＲＡＭの間にインストールされる。ＤＲＡＭの出力応答と期待メモリ応答の双方のテスト結果は、比較器へ入力される。比較器は、ＤＲＡＭの出力応答と期待メモリ応答とを比較する。メモリーのテスト応答が期待応答と同じときは、ＢＩＳＴ回路は「合格」情報を示す。一方、メモリーテスト応答が期待応答と異なるときは、ＢＩＳＴ回路は「不合格」の情報を示す
。
【００１２】
これまでの一般的な記述、及び、次からの詳細な記述の双方とも、例示のため、かつ、説明のためのものであり、クレームしているように本発明を制限するものではない。
【００１３】
【発明の実施の形態】
図１は、第一の有限マシンにおける進行アルゴリズムの状態遷移図であり、図２は、第二の有限マシンに対する状態遷移図であり、個々のノードはサブマシンを示し、図３）は、ＲＥＡＤ＿Ａ＿ＲＯＷ、ＷＲＩＴＥ＿Ａ＿ＲＯＷ、及び、ＲＷＲ＿Ａ＿ＲＯＷのマクロ命令に対応するサブマシンを示し、図４は、本発明の好ましい実施形態による内蔵自己テスト回路のブロック図であり、図５は、第一及び第二の有限マシンとの間の同期メカニズムを示す図である。
【００１４】
メモリー素子のテストを実行するためのものとして、高水準言語のプログラムとして書かれたテストアルゴリズムがしばしば提案されている。Ｒ行Ｃ列を備えたＤＲＡＭをテストする場合、進行アルゴリズムは、４段階を有している。第１段階では、すべてのセルに”０”が書き込まれる。第２段階では、順次、全アレイ、すなわち、第１行の第１番目のセルから最終行の最後のセルまでを走査する。各セルにおいては、いわゆるＲＥＡＤ（０）−ＷＲＩＴＥ（１）−ＲＥＡＤ（１）操作が実行される。メモリーセルの潜在的な動的欠陥をより確実に見つけ出す試みにおいて、そのＲＥＡＤ−ＷＲＩＴＥ−ＲＥＡＤ操作が提案されている。第３段階では、最後のセルから最初のセルまでの全セルを走査する。個々のセルでは、ＲＥＡＤ（１）−ＷＲＩＴＥ（０）−ＲＥＡＤ（０）操作が実行される。このアルゴリズムの第４段階では、全セルの値が前３段階の後もまだゼロであるか否かをチェックする。
【００１５】
以下に、高水準言語でプログラムが書かれた進行アルゴリズムの例を示す。
0003628545.tif 000002
【００１６】
本発明においては、高水準アルゴリズムを、ＢＩＳＴ回路によってテストされるメモリー素子用のテストパターンに翻訳するための３段階を備えたパイプラインが開示されている。このアルゴリズムは、まず、第１段階でマクロ命令のシーケンスに翻訳される。次に、第２段階で、そのマクロ命令の各々が、テストパターンのシーケンスに解釈される。続いて、そのテストパターンのワンホットコードが、メモリー素子に定義された２進コードにエンコードされる。
【００１７】
この実施形態では、ＤＲＡＭはテスト用の例としてとらえられている。ＤＲＡＭをテストするため、基礎的な動作には、しばしば、ＤＲＡＭで定義されたメモリコマンド｛ｍｅｍ＿ｎｏｐ、ｍｅｍ＿ａｃｔｉｖｅ、ｍｅｍ＿ｒｅａｄ、ｍｅｍ＿ｗｒｉｔｅ、ｍｅｍ＿ｐｒｅｃｈａｒｇｅ、ｍｅｍ＿ｒｅｆｒｅｓｈ｝のうちの少なくとも一つを備えている。
ここで、
ｍｅｍ＿ｎｏｐは、操作させないことを、
ｍｅｍ＿ａｃｔｉｖｅは、行のワード線を作動させることを、
ｍｅｍ＿ｒｅａｄは、メモリ読み取りコマンドを発することを、
ｍｅｍ＿ｐｒｅｃｈａｒｇｅは、コラムの電圧をプレチャージレベルにすることを、
実行させるコマンドである。
【００１８】
あるセルから他のセルへ読み取り／書き込みサイクルを実行するために必要なメモリコマンドの全シーケンスは、ＲＥＡＤ／ＷＲＩＴＥで示され、操作と呼ばれる。例えば、メモリセルへのＲＥＡＤ操作は、｛ｍｅｍ＿ａｃｔｉｖｅ―＞ｍｅｍ＿ｎｏｐ―＞ｍｅｍ＿ｒｅａｄ―＞ｍｅｍ＿ｒｅａｄ―＞ｍｅｍ＿ｎｏｐ―＞ｍｅｍ＿ｐｒｅｃｈａｒｇｅ｝のシーケンスで構成されてもよい。上記のメモリーコマンドに加えて、テストパターンは、さらに、データ値と、行アドレスと、列アドレスとを備えている。
【００１９】
マクロ命令は、４個の要素（オプコード、データ、行アドレス、列アドレス）により表現され、データと、行アドレスと、列アドレスとは、”＊”によって表わされた”Ｄｏｎ’ｔ  ｃａｒｅ．”である。この設計では、マクロ命令の７個のタイプが使用されている。
（ＮＯＰ，＊，＊，＊）は、テストパターン（ｍｅｍ＿ｎｏｐ，＊，＊，＊）に相当する。
（ＲＥＡＤ，ｎ，ｒ，ｃ）は、行アドレスｒ及び列アドレスｃのセルから期待値νを読み出す。
（ＷＲＩＴＥ，ｎ，ｒ，ｃ）は、行アドレスｒ及び列アドレスｃのセルから期待値νを書き込む。このマクロ命令は、基礎書き込みサイクルに対応する。
（ＲＥＡＤ＿Ａ＿ＲＯＷ，ｎ，ｒ，＊）は、ある行ｒのすべてのセルから期待値ｎを順次読み出す。
（ＷＲＩＴＥ＿Ａ＿ＲＯＷ，ｎ，ｒ，＊）は、ある行ｒのすべてのセルから期待値ｎを順次書き込む。
（ＲＷＲ＿Ａ＿ＲＯＷ，ｎ，ｒ，＊  ）は、行の全てのセルに順次ＲＥＡＤ−ＷＲＩＴＥ−ＲＥＡＤ操作を行う。この操作に対する３つのデータ値は、  νの値に依存する。νが０ならば、ＲＥＡＤ（０）−ＷＲＩＴＥ（１）−ＲＥＡＤ（１）が実行される。一方、νが１ならば、ＲＥＡＤ（１）−ＷＲＩＴＥ（０）−ＲＥＡＤ（０）が実行される。（ＲＥＦＲＥＳＨ＿Ａ＿ＲＯＷ，＊，ｒ，＊）は、行ｒの全セルの中味をリフレッシュする。
【００２０】
進行アルゴリズムの詳細な描像は、このパラグラフで与えられる。テスト中のメモリアレイが、Ｒ行Ｃ列であると仮定しよう。図１，図２、及び図３のそれぞれが、進行アルゴリズを実行する２個の有限マシンの状態遷移図を示している。両マシンとも、行及び／あるいは列アドレス（それぞれ変数ｒｏｗ及びｃｏｌで表す）のトラックを維持する増分を有したまま作動する。第一の有限マシンは、図１に示すように、ｓｔａｒｔ及びｆｉｎｉｓｈを除く４個の象徴的な状態を備えている。個々の遷移状態は、トリガー状態及び操作を結合する。トリガー状態は、結合状態を実行するために十分である状態であり、一方、操作は、遷移を伴って行われるアクションである。
【００２１】
例えば、現在の状態がＷＲＩＴＥ＿Ａ＿ＲＯＷ（０）でラベルされる状態であり、かつ、行アドレスが最後（すなわち、ｒｏｗ＝Ｒ−１）であるならば、マシンは、Ｔ１でレベルされた状態、かつ、以下のアクションをとる。
マクロ命令（ＷＲＩＴＥ＿Ａ＿ＲＯＷ，０，ｒｏｗ，＊  ）を作りなさい。
変数ｒｏｗを０にセットしなさい。
ＲＷＲ＿Ａ＿ＲＯＷ（０，１，１）でラベルされる次の状態に進みなさい。
【００２２】
図２、及び、図３で示すように、第一のマシンで作られたマクロ命令を入力とする第二の有限マシンは、７個のサブマシンを備えた階層型の状態マシンである。個々のサブマシンは、マクロ命令の一つの型を解釈するために使われる。単純化のために、上記進行アルゴリズム（すなわち、ＲＥＡＤ＿Ａ＿ＲＯＷ、ＷＲＩＴＥ＿Ａ＿ＲＯＷ、ＲＷＲ＿Ａ＿ＲＯＷ）に必要な３個のサブマシンだけを示している。ＤＲＡＭのさらに洗練されたテストアルゴリズムにおいては、例えば、通常使用されている行分散アルゴリズムは、前記マクロ命令を要する。
【００２３】
図４は、本発明の好ましい実施形態によるメモリテスト用のＢＩＳＴ回路のブロック図を示している。このＢＩＳＴ回路は、特に、複雑なテストアルゴリズムを必要とするメモリのテスト用、例えば、ＤＲＡＭのテスト用として適用可能である。ＢＩＳＴ回路の主な目的は、数多くの高水準の抽象的なアルゴリズムをテストパターンのシーケンスに翻訳することである。速度性能（ａｔ−ｓｐｅｅｄ）テストに使用できるためには、ＢＩＳＴ回路構成は、少なくともテスト中のメモリー素子と同じ程度の速さで操作することが必要である。しかしながら、テストアルゴリズムが複雑になるほど、高速メモリー素子に適用されるときには、１つの有限状態マシンは大型化しすぎ、かつ、遅すぎて、全てのクロックサイクルに対するテストパターンをつくることはできない。従って、本発明においては、パイプライン方式が採用され、また、二重有限状態マシンを備えた高速ＢＩＳＴアーキテクチャーが提供されている。
【００２４】
図４に示すように、ＢＩＳＴ回路は、第一の有限状態マシン、すなわち、プロデューサと、キューと、スケジューラとも呼ばれる第二の有限状態マシンと、エンコーダと、ＢＩＳＴ出力バッファと、遅延バッファと、比較器とを備えている。パイプライン方式が、ＢＩＳＴ回路を構築するために用いられている。このパイプラインは、３段階を有している。すなわち、第一段階では、プロデューサによるマクロ命令の発令、第２段階では、スケジューラによるマクロ命令のスケジューリング、第３段階では、エンコーダによるメモリーコマンドのエンコーディングである。プロデューサとスケジューラの間には、交信プロトコルが確立されており、それは以下に記載される。
【００２５】
プロデューサーは、高水準テストアルゴリズムを受け取ると、そのテストアルゴリズムをマクロ命令のシーケンスに翻訳する。これが、パイプラインの第一段階である。
【００２６】
第二の有限マシンは、個々のマクロ命令をテストパターンのシーケンスに解釈する。そのシーケンスにおけるメモリーコマンド部分は、ワンホット  エンコードされる。この成分は、メモリー素子のインターフェイスに関わり、パイプラインの第二段階を形成する。
【００２７】
キューは、好ましくは、先送り先出し（ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ）のレジスターであり、第一の有限マシンと第二の有限マシンとを接続する同期バッファとして働く。一般に、プロデューサーは、マクロ命令の全てのサイクルを発生することができる。しかしながら、スケジューラーは、多重クロックサイクルをとり、マクロ命令のプロセッシングを実行することができる。従って、プロデューサーは、過剰なマクロ命令を伴うスケジューラーをオーバーローディングすることを回避するために、ときどきストールされなければならない。そして、単純なマスタ−スレーブ（ｍａｓｔｅｒ−ｓｌａｖｅ）の同期メカニズムが使われ、そこでは、スケジューラは、”ｎｅｘｔ”と名付けられた信号を介して、プロデューサの作動および同期キューを制御するマスターである。信号”ｎｅｘｔ”が低いときは、プロデューサー及びキューは、凍結される。すなわち、キューの全フリッププロップ値は、クロッキングに関わらず、変化しないままである。一方、信号”ｎｅｘｔ”が高くなると、プロデューサーによって発っせられた現在のマクロ命令は、特定のクロックエッジでキューに挿入される。一方、プロデューサーは、次の状態を入れて、次のマクロ命令を計算する。言い換えると、信号”ｎｅｘｔ”が、引き抜かれると、キューは実行されない。こうして、このキューに関わる操作だけが、ラッチ及び前進操作である。
【００２８】
エンコーダーは、テストパターン出力における個々のメモリーコマンドの、ワンホットからメモリー素子に定義されたものへのエンコーディングを、スケジューラによってマップする結合論理の一部である。例えば、入力テストパターンの入力ベクトルが（００００１，０，０，０）のときは、”００００１”は、読み取りメモリーコマンドのワンホットコードを表わしている。エンコーダーによりプロセスされると、この読み取りメモリーコマンドは、ＢＩＳＴ回路によりテストできるように、メモリー素子に定義された読み取りメモリーコマンドの２進コードにエンコードされる。
【００２９】
ＢＩＳＴ出力バッファは、ＢＩＳＴ回路とメモリー素子との間のバッファとして働くレジスターである。このバッファは、ＢＩＳＴ回路の導入によるメモリー素子の潜在的なパフォーマンスの低下を除去するものである。
【００３０】
遅延バッファは、ＢＩＳＴ出力バッファと比較器との間の先送り先出しレジスターである。これは、主に、読み取りメモリーコマンドの期待応答を計算するためのものである。クロックサイクル数は、ＢＩＳＴ出力バッファからメモリー素子によって定義されるカラムアドレスストローブ・レーテンシ（ＣＡＳ  ｌａｔｅｎｃｙ）に対応する比較器に遅延される。
【００３１】
比較器は、メモリー素子の出力応答と遅延バッファに供給される期待値とを比較する結合論理の一部である。例えば、テストパターン（ｍｅｍ＿ｒｅａｄ，１，０，０）がメモリー素子に適用され、かつ、カラムアドレスストローブ・レーテンシが２、後に、２クロックサイクルになるならば、メモリーデバイスは、データ出力で「１」を出力することになる。一方、同じテストパターンは、遅延バッファを介して比較器に達し、テストパターン（ｍｅｍ＿ｒｅａｄ，１，０，０））のデータ部分「１」は、比較用の期待値として抽出される。
【００３２】
ワンホット  エンコーディングやリタイミングのような高パフォーマンス設計法に加えて、ＢＩＳＴ回路速度を高めるため、プロトコルベース緩和と呼ばれる方法がさらに提案されている。この方法は、３段階の中で、タイミングクリティカルパスが大抵プロデューサーであるという観察を基礎にしている。タイミングプクリティカリティーを緩和するために、プロデューサーは、マルチサイクルパス成分（すなわち、その成分は、全ての２クロックサイクル、或いはそれ以上に対する一つの結果を生み出す）に変換される。スケジューラは、プロデューサーの動作を制御するので、これは、スケジューラーを修正することによち達成されうる。修正は、信号”ｎｅｘｔ”を２つの連続したクロックサイクルに対しては高くしないというやり方で行われる必要がある。
【００３３】
前述の全マクロ命令は、ひとつのテストパターン（ｍｅｍ＿ｎｏｐ，＊，＊，＊）に元々対応するＮＯＰを実行するために、１クロックサイクル以上かかる。上記のプロトコルを満足するため、このマクロ命令を２つのｍｅｍ＿ｎｏｐメモリーパターン、すなわち、ＮＯＰ＝（ｍｅｍ＿ｎｏｐ，＊，＊，＊）−＞（ｍｅｍ＿ｎｏｐ，＊，＊，＊）に解釈する。この修正によるテスト時間の増加は無視できる一方、スピードアップのパフォーマンスは重要である。
【００３４】
上記のイントロダクションから、ＤＲＡＭのようなメモリー素子をテストする方法やＢＩＳＴ回路が、次のように簡潔に要約されうる。テストアルゴリズムがプロデューサへの入力されると、そのテストアルゴリズムは、マクロ命令のシーケンスに翻訳される。交信プロトコルに従うキューによって同期され、個々のマクロ命令は、ワンホットエンコードされたテストパターンのシーケンスに解釈される。それから、ワンホットエンコードされたテストパターンの各々は、ＤＲＡＭに定義されたコードにマップされる。テストの実行のため、そのマップされたコードは、ＢＩＳＴ遅延バッファを介して、ＤＲＡＭに送られる。図に示されたように、マルチプレクサー（ＭＵＸ）が、さらにＢＩＳＴ回路とＤＲＡＭとの間にインストールされる。テスト結果、すなわち、ＤＲＡＭの出力応答は、期待メモリー応答とともに比較器へ入力される。比較器は、ＤＲＡＭの出力応答と期待メモリー応答とを比較する。メモリーのテスト応答が期待応答と同じならば、ＢＩＳＴ回路は「合格」情報を示す。それに対して、メモリーのテスト応答が期待応答と異なるときは、「不合格」情報を示す。
【００３５】
本発明は、レジスタートランスファーレベル（ＲＴＬ）コードとして実現される。その機能の正確さの信頼性を確立するために、メモリー素子の機能モデルを用いてシミレーションされる。分析ツール、設計コンパイルが、ＲＴＬコードをネットリストに変換するために使われ、０．２５ミクロンＣＭＯＳ技術ライブラリーを利用して論理最適化が実行される。静的なタイミング分析ツール、設計時間が、クロックサイクルが２．２１ナノセカンド以下であることを示している。プレイスアンドルート（Ｐｌａｃｅ−ａｎｄ−ｒｏｏｔ）ツール、アポロ、のタイミング駆動（ｔｉｍｉｎｇ−ｄｒｉｖｅｎ）の特徴が、レイアウトを作るために使われる。ポストレイアウトタイミングチェックは、上記クロックサイクル時間の元でのタイミング違反は示さない。これらの結果を基礎にして、我々は、本発明で提案したＢＩＳＴアーキテクチャーが４５０メガヘルツと同じ速さで作動する大きな可能性を有していると結論することができ
る。
【００３６】
本発明の他の実施形態は、詳細の検討およびここで開示した発明の実施形態から、当業者には明らかである。次のクレームで示される発明の真の範囲と精神を伴っており、詳細と例は単に例として考慮されべきものである。
【図面の簡単な説明】
【図１】第一の有限マシンにおける進行アルゴリズムの状態遷移図である。
【図２】第二の有限マシンに対する状態遷移図であり、個々のノードはサブマシンを示す図である。
【図３】ＲＥＡＤ＿Ａ＿ＲＯＷ、ＷＲＩＴＥ＿Ａ＿ＲＯＷ、及び、ＲＷＲ＿Ａ＿ＲＯＷのマクロ命令に対応するサブマシンを示す図である。
【図４】本発明の好ましい実施形態による内蔵自己テスト回路のブロック図である。
【図５】第一及び第二の有限マシンとの間の同期メカニズムを示す図である。
【図１】
0003628545.tif 000003
【図２】
0003628545.tif 000004
【図３】
0003628545.tif 000005
【図４】
0003628545.tif 000006
【図５】
0003628545.tif 000007