(57)【特許請求の範囲】
【請求項１】
加えられた命令に応答してテスト信号を生成する命令デコーダと、
テスト固有命令と該テスト固有命令以外の命令とを含む命令を記憶し、前記テスト固有命令以外の命令を前記命令デコーダに供給するマイクロコード命令ストアと、
前記テスト固有命令が前記マイクロコード命令ストアによって出力されるのに応答して、複数の命令を生成し、前記テスト固有命令以外の命令と並行して前記複数の命令を前記命令デコーダに供給する有限状態機械とを備えた、集積回路用のビルトイン・セルフテスト（ＢＩＳＴ）構成。
【請求項２】
前記集積回路が組込み型メモリを含み、前記命令デコーダがテスト信号を前記組込み型メモリに加える請求項１に記載のＢＩＳＴ構成。
【請求項３】
前記組込み型メモリが複合従属メモリ構造である請求項２に記載のＢＩＳＴ構成。
【請求項４】
前記有限状態機械が命令生成モジュールを備える請求項１に記載のＢＩＳＴ構成。
【請求項５】
前記有限状態機械が、複数の命令生成モジュールのうち１つを備える請求項１に記載のＢＩＳＴ構成。
【請求項６】
少なくとも１つの機能セクションと、前記機能セクションをテストするビルトイン・セルフテスト（ＢＩＳＴ）構成を有する集積回路であって、前記ＢＩＳＴ構成が、
そこに加えられる命令に応答してテスト信号を生成する命令デコーダと、
テスト固有命令と該テスト固有命令以外の命令とを含む命令を記憶し、前記テスト固有命令以外の命令を前記命令デコーダに供給するマイクロコード命令ストアと、
前記テスト固有命令が前記マイクロコード命令ストアによって出力されるのに応答して、複数の命令を生成し、前記テスト固有命令以外の命令と並行して前記複数の命令を前記命令デコーダに供給する有限状態機械とを含む集積回路。
【請求項７】
前記機能セクションが組込み型メモリを含み、前記命令デコーダがテスト信号を前記組込み型メモリに加える請求項６に記載の集積回路。
【請求項８】
前記組込み型メモリが複合従属メモリ構造である請求項７に記載の集積回路。
【請求項９】
前記有限状態機械が命令生成モジュールを備える請求項６に記載の集積回路。
【請求項１０】
前記有限状態機械が、複数の命令生成モジュールのうち１つを備える請求項６に記載の集積回路。
【請求項１１】
集積回路の部分をテストする方法であって、前記方法が、
命令を命令ストアからディスパッチするステップと、
テスト固有命令が前記命令ストアからディスパッチされるのに応答して命令生成器を活動化するステップと、
複数の命令を生成し、前記複数の命令を前記命令生成器から命令デコーダに送達するステップと、
前記命令生成器からの前記複数の命令と並行して、前記命令ストアからディスパッチされた他の命令を前記命令デコーダに送達するステップを含む方法。
【請求項１２】
前記複数の命令を生成および送達するステップが、有限状態機械の各状態に従って実行される請求項１１に記載の方法。
【請求項１３】
前記命令生成器が前記活動化ステップによって活動化されないとき、次の命令をディスパッチするステップをさらに含む請求項１２に記載の方法。
【請求項１４】
最後の命令が前記命令デコーダから出力されるのに応答して、命令生成器を非活動化するステップをさらに含む請求項１１に記載の方法。
【請求項１５】
命令の有効性を示す命令ビットをアサートするステップをさらに含む請求項１１に記載の方法。
【請求項１６】
最後の命令が前記命令生成器から出力されると、前記命令ビットをアサート解除するステップをさらに含む請求項１５に記載の方法。
【請求項１７】
前記命令ビットが無効な命令とともにアサートされているとき、テストは未完了であると判定するステップをさらに含む請求項１６に記載の方法。
【請求項１８】
前記集積回路の部分が組込み型メモリである請求項１１に記載の方法。
【請求項１９】
前記組込み型メモリが複合従属メモリである請求項１８に記載の方法。
【請求項２０】
前記複数の命令の各々が、前記集積回路の前記部分を用いて、テスト結果のキャプチャを制御する請求項１１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にメモリ構造のテストに関し、より詳細には、超大規模集積回路（ＶＬＳＩ）に含まれるメモリ構造のテストに関する。
【０００２】
【従来の技術】
集積回路の集積密度が増大したことにより、単一の半導体チップに含むことのできる回路の性能および機能性が大幅に高まっている。言うまでもなく、機能性が高まると回路がより複雑になることが避けられず、現行技術では、加算器、プロセッサ、論理配列、バッファ、デコーダ、レベル変換器など、機能的に区別された多くの領域が単一チップ上に含まれることがある。このような機能的に区別された領域は、異なるクロック速度や時には異なる電圧でも動作するように設計されることが多いが、一方で一般には同期化された様式で互いと通信することが必要とされる。
【０００３】
記憶装置の設計およびその製造過程は非常に高度なものとなり、その結果製造工程コストが非常に低くなり、メモリ・セル・エリアは非常に小さくなっている。したがって現在では、比較的多数の記憶セルをデジタル信号処理回路とともに単一のチップ上に形成することが実用的であり、さらに、チップ上の機能コンポーネント間の通信にマルチポート・メモリを使用すると極めて高速かつ効率的であることが分かり、比較的広く使用されるようになっている。このようなメモリは、集積回路チップ上に記憶機能以外の機能を有する回路とともに含まれる場合に、一般に組込み型メモリ（embedded memory）と呼ばれる。
【０００４】
それでも特にデータを容量的に保管する動的タイプのメモリ・セルは比較的精巧なデバイスであり、使用開始後に劣化の損傷を受けやすい。このようなデバイスが機能的領域またはコンポーネント間の通信やデータ転送に使用されると、記憶の信頼性がチップ全体の適切な動作に対して極めて危機的なものになる。したがって操作容易性を確実にするために、記憶セルを定期的にテストするか、あるいはチップのパワーアップなど特定の作動状態においてテストすることが望ましい。
【０００５】
しかし特にチップ・スペースおよび外部接続が限られている場合は、テストのために組込み型メモリにアクセスすることが困難なことが多い。この理由から、チップ自体にセルフテスト回路を形成することが好ましい。こうした構成は多数のタイプが知られており、一般にはビルトイン・セルフテスト（ＢＩＳＴ）回路またはエンジンと呼ばれる。選択されたテスト方法論に基づいて、テスト・シーケンスを動的に変更させることができる形態のＢＩＳＴ回路が開発されている。ＢＩＳＴに効率的に割当てられるチップ・スペースの量は非常に限られており、一般にはテストする記憶装置のエリアの約２％である。このエリアには、メモリ構造のセルフテストに必要なすべてのコンポーネントが含まれる。
【０００６】
通信および他機能を容易にする組込み型メモリの設計も、いくつかの種類および形態が開発されている。組込み型メモリへのデータ、アドレス、制御信号の入力が別の組込み型メモリからのものである場合、その組込み型メモリは従属性であるということになる。そうでない場合、その組込み型メモリは独立性であるということになる。従属性メモリがある場合、データ、アドレスあるいは制御信号、またはそれらすべてを供給している組込み型メモリはソースと呼ばれ、データ、アドレス、または制御信号を受け取る従属組込み型メモリはシンク（sink）と呼ばれる。
【０００７】
また従属メモリのデータ、アドレスまたは制御信号などのメモリ・コンポーネントは、所望のメモリ動作に応じてその機能を任意に選択できる論理を通じて、同一の従属メモリの入力にフィード・バックすることができる。このタイプの独立（self-dependent）のメモリ構造は、複合従属メモリ構造と呼ばれる。上記のフィードバックがない場合、そのメモリは単純従属メモリ構造と呼ばれる。１つのＲＡＭがアドレスまたはデータを別のＲＡＭに供給する２つの例示的単純従属ＲＡＭ構造と、複合従属メモリ構造をそれぞれ、図１、図２、図３に示す。これらの図は従属メモリ構造の高レベルな説明を例証するものであり、本発明に関して従来技術であるとは認められない。
【０００８】
複合従属メモリ構造中のメモリ・コンポーネントのフィードバックにより、特にこのようなメモリを用いなければならない動作の組み合わせが多数ある場合にテストは複雑になり、概してその結果高いテスト論理オーバーヘッドが生じる。例えばマルチポート・メモリをテストする場合、単一ポート・メモリに対する従来のテストに加えて、隣接するポートのビット・ラインとアドレス・デコーダ間のショートといった生じる可能性のある相互作用をテストしなければならない。さらに、高速データ・バスに隣接していることが複合従属メモリ構造の特徴である。こうした高速バスも、それらの間で起こりうるショートについてテストしなければならない。これらのバスへのアクセスは組込み型メモリ構造を通じてのみ可能であり、またバスは複合従属メモリ構造のフィードバック・ループの一部なので、連続的動作のテスト・パターンが必要とされる。
【０００９】
ＢＩＳＴ構造は特定のアプリケーションおよびメモリ構成に適応させなければならず、またチップ設計に組み込まなければならないので、基本的なＢＩＳＴユニット・ハードウェアの修正を必要とせずに、異なるテスト・アルゴリズムを提供するためのプログラマブルＢＩＳＴアーキテクチャが開発されている。プログラマブルＢＩＳＴモジュールには例えば、プログラマブルＢＩＳＴコントローラと、テスト・データ、アドレス、制御信号の生成を制御するための他のコンポーネントを含むことができる。例示的なマイクロコード・ベースのプログラマブルＢＩＳＴアーキテクチャ１０を図４に示す（これは高レベルの説明であり、本発明に関して従来技術であるとは認められない）。
【００１０】
メモリＢＩＳＴコントローラ２０は、コントローラ２０中の命令ストア・モジュール４０に保管されたサポートされる命令セットの観点から記述されるメモリ・テスト・アルゴリズムに従って、所望のテスト信号を供給するのに必要なストレージ量を減らすために、マイクロコード・ベースのコントローラと、命令デコード論理を含む。したがって命令ストア・モジュール４０のサイズは必要命令の数によって決まり、ＢＩＳＴユニットのエリア・オーバーヘッドに対して最大の割合を占める。
【００１１】
プログラマブルＢＩＳＴコントローラ２０およびそのコンポーネント内でのプロセスの流れを図５に示す（これも本発明に関して従来技術であるとは認められない）。３０、３１に示すように、テスト・アルゴリズムが設計されコンパイルされると、プログラマブルＢＩＳＴコントローラは、例えば外部のテスタを通じて、選択されたテスト・アルゴリズムを表す命令セットによって初期化される３２。３４で最後の命令であると判定されテスト・プロセスを終了する場合以外は、最初の命令が命令デコード論理３５にディスパッチされる（３３）。その命令は１つまたは複数のテスト信号パターンにデコードされて順次メモリに加えられ、同時にその応答が集められおそらくは評価される。次いで次の命令がフェッチまたはディスパッチされ、プロセスは、テスト・パターンを生成するための命令がすべて実行されるまで繰り返される。
【００１２】
複合組み込みマルチポート・メモリ構造のテストには特に複雑なテスト・アルゴリズムが必要であるが、このアルゴリズムも、多数の命令と、一般には上記で触れた２％のエリア・オーバーヘッドの制限内では提供することのできない大型のマイクロコード・ベース・コントローラを必要とする。したがってプログラマブルＢＩＳＴアーキテクチャは、複合マルチポート・メモリ構造に効率的に適用することができない。エリア・オーバーヘッドに対する唯一の代替策はテスト手順の徹底性を低減することであるが、これはメモリ構造の高信頼性を確保しなければならないために実行には適さない。
【００１３】
さらに、マルチポート複合メモリ構造のテストが可能なプログラマブルＢＩＳＴアーキテクチャのために多数の命令セットを開発し、コンパイルするための設計労力およびコストと、その命令セットをチップ上に組み込んだＢＩＳＴ回路の設計により、チップの設計コストが大幅に増すことが認識されよう。ＢＩＳＴコントローラと、テスト中のメモリに加えられる各信号に対する命令デコード論理の個々の部分と見なすことのできる、図４に示すような周辺装置３０とを再設計せずに、テストする異なる回路に適応できるようにすることがプログラマブルＢＩＳＴ回路の基本の目標なので、この追加のコストについては特に意識される。言うまでもなく、カスタムハードウェア設計に対する必要性を回避することの利点は、多数の追加命令に適合させるためにそのハードウェア設計を広範囲にわたって修正しなければならない場合には失われてしまう。さらにストレージ・スペースが比較的大きい場合にはこのようなプログラマブルＲＯＭのテストも難しいので、プログラマブルＲＯＭにおける命令の供給は、それ自体自滅的（self-defeating）な部分がある。
【００１４】
【発明が解決しようとする課題】
したがって本発明の目的は、複合マルチポート組込み型メモリ構造をテストするための、エリア上効率的なプログラマブルＢＩＳＴ構成を提供することである。
【００１５】
本発明の別の目的は、ハードウェアの修正やマイクロコード・ベースのプログラマブルＢＩＳＴ回路の再設計を必要としない、複合マルチポート・メモリ構造に適した多数のテスト命令を提供することである。
【００１６】
本発明の別の目的は、設計コストを最小限に抑えて、複合マルチポート・メモリ構造に適応することのできるＢＩＳＴ回路の汎用設計を提供することである。
【００１７】
本発明の別の目的は、セルフテスト手順の所与の複合性に対してチップ・エリアが縮小されたＢＩＳＴ回路を提供することである。
【００１８】
【課題を解決するための手段】
本発明の上記の目的および他の目的を達成するために、集積回路用のビルトイン・セルフテスト（ＢＩＳＴ）構成と、そのようなＢＩＳＴ構成を含んだ集積回路が提供され、ＢＩＳＴ構成には、加えられた命令に応答するテスト信号を生成するための命令デコーダと、命令を命令デコーダに供給するためのマイクロコード命令ストアと、複数の命令を生成して、それを前記マイクロコード命令ストアによる出力であるテスト固有命令に応答する、命令デコーダに供給する有限状態機械とが含まれる。
【００１９】
本発明の別の態様によるとメモリをテストする方法が提供され、この方法には、命令を命令ストアからディスパッチするステップと、テスト固有命令が命令ストアからディスパッチされるのに応答して命令生成器を活動化するステップと、複数の命令を生成し、それを命令生成器から命令デコーダに送達するステップと、命令ストアからディスパッチされた他の命令を命令デコーダに送達するステップが含まれる。
【００２０】
有限状態機械を使用して、保管された命令を命令ストアから送達するのに並列して命令を生成することにより、ＢＩＳＴ構成のためにチップ・スペースをより効率的に利用することができる。さらに有限状態機械が状態から状態へ遷移する際の逐次的性質により、テストの結果にそれ以外の方法ではアクセスできないときに、テスト信号シーケンスのテスト信号間に散在する時間におけるデータ・キャプチャを援助する命令が容易に生成できるようになる。
【００２１】
ＦＳＭの設計方法論は十分に練られたものであり、チップ・レイアウトは比較的単純な動作の記述で大幅に自動化できるので、有限状態機械を使用すること自体によりチップ設計がある程度節減される。この発明（ＦＳＭをモジュラ命令生成器として提供する）の好ましい形態のアーキテクチャにより、ＢＩＳＴアーキテクチャ・モジュールの既存モジュールを再使用し節約的に修正することが可能になり、新チップの設計コストがさらに削減される。
【発明の実施の形態】
【００２２】
次に図面、詳細には図６に、この発明による機能強化型のプログラマブル・メモリＢＩＳＴモジュールを非常に概念化した図を示す。図の命令デコーダ３０およびマイクロコード・ストア４０などエレメントの一部は、図４に示す上記のプログラマブルＢＩＳＴアーキテクチャ中に示した対応するエレメントと実質的に類似のものである。ただし下記で図７との関連で説明するように、命令ストア４０に保管されたマイクロコードは、図４のアーキテクチャで使用されるものとはやや変えられている。本発明によるＢＩＳＴコントローラ２０’については、図９に関連して下記でより完全に説明する。
【００２３】
ＢＩＳＴモジュール１００のフィーチャで特に特徴的なのは、有限状態機械（ＦＳＭ）を備える命令生成モジュール１１０の使用である。概念的には、有限状態機械は有限数の状態のいずれか１つをとることができる回路を備え、状態間の変化は任意ではあるが指定された条件に応答して実行され、各状態は、総称して動作と呼ぶこともある１つまたは複数のアクションと関連付けることができる。複数の条件または入力の各々に対して許可される状態間の変化は、状態シーケンスを形成するように定義してもよい。状態シーケンスは、呈される条件やテスト手順の過程で得られるテスト結果に応じて可変であってもよい（例えばブランチを提供してもよい）。
【００２４】
テストに適した例示的な状態機械が図８に示され、ＦＳＭは２つの入力および２つの出力を有する５つの状態を含んでいる。２つの入力信号はＦＳＭを活動化し、状態間の遷移の際にＦＳＭでとられる経路をそれぞれ決定する。２つの出力信号はそれぞれ、データ値Ｄと、アドレス・カウンタを増分する信号である。データ値（非データ値）Ｄ（ＤＢ）は、読み出すべき予測の結果の極性かまたはメモリ・セルに書き込むべきデータの極性を判定するのに使用される。状態間の遷移は矢印で表され、遷移が応答する条件／入力および出力値（例えばＤ，０）は、状態遷移を表す各矢印の横に示される。一般にこのような状態機械は、集積回路として形成される場合、あるいは例えば条件レジスタ中の信号によって制御されるトランスミッション・ゲートといった回路部分として形成される場合に、非常に容易にかつ極めてコンパクトなフットプリントで実現することができる。
【００２５】
したがって特にメモリ・テストに関しては、有限状態機械は、任意で長い状態シーケンスを供給するように調整することができ、さらに命令デコーダとの組み合わせにより、各状態は相当の長さのテスト・パターン・シーケンスを生成することができる。さらにプログラマブル・マイクロコード・ベース・コントローラとの組み合わせにより、マイクロコードからもテスト・パターンを生成することができ、下記で詳細に説明するように、本発明によると任意数のＦＳＭをＢＩＳＴモジュールで使用することもできる。
【００２６】
言うまでもなく、ＦＳＭの数は実際上はＢＩＳＴモジュールのチップ・スペースの制約によって制限される。ただし使用される各ＦＳＭは、ストレージから供給できるほぼ同数のマイクロコード命令に必要とされるエリアに対して、チップ・エリアを相当量節減する。さらにＦＳＭは、知られている方法論により、所望の動作の比較的単純な記述から容易に設計することができ、またチップ・レイアウトは大幅に自動化することができる。この発明で利用され、本発明によるＢＩＳＴモジュール中のマイクロコード・ベースのＢＩＳＴコントローラと組み合わされるＦＳＭは実質的にモジュラであり、図６に示すように所望の設計に事実上「プラグ・イン」することができる。
【００２７】
次いで図７に、本発明による例示的マイクロコード・コマンドを示す。従属メモリ構造のテストでは、すべてのメモリ・セルからの読出しおよびすべてのメモリ・セルへの書込みを行う通常の命令と、固有のアドレス位置からの読出しまたはそこへの書込み動作を実行するためのアドレス特定命令を、プログラマブルＢＩＳＴモジュールがサポートすることが必要である。ＦＳＭ命令生成モジュールの活動化は、テスト固有命令と呼ばれる特別な命令をマイクロコード・ベースのコントローラで実行することにより行われ、この命令は、８ビットのプレ命令およびテスト・データ・パターン・フィールドを作成するビット・セット（例えば３９ビット）を備えることが好ましい。
【００２８】
マイクロコード・パターンまたはフォーマットは、当業者には下記の種々のフィールドから明らかになろう多くの形態のいずれをとることができるが、これらのフィールドは好ましいと考えられるものであり、本発明を適切に実行するためにその順序、サイズ、数は重要ではない。例えばプレ命令フィールドの第１ビットは命令が有効であるか否かを示す。第２および第３のビットは、テスト固有命令など命令タイプを指定する。それに続く４つの各ビットは、結果としてＦＳＭベースの命令生成モジュールを活動化するメモリ・テスト・アルゴリズムのタイプを示す。プレ命令フィールドの最後のビットは、従属メモリ構造のどのメモリ・コンポーネントがテストされているのかを示す。
【００２９】
同様にテスト・データ・パターン・フィールドでは、最初の２ビットは、テスト中のメモリを初期化するのに使用されるテスト・データ・パターンを示す。次の３ビットのフィールドは、フィールドの残りでそれぞれ指定される４ビットのテスト・データ・パターンの数を示す。これらの４ビット・データ・パターンは、テスト中のメモリに加えられる真および補数（the true and complement）のテスト・データ・パターンを指定する。残りのビットはいずれも単純に使用されない。
【００３０】
使用される命令生成モジュール・グループはテスト固有モジュール１３０と呼ばれ、図９から明らかなように、各命令生成モジュールは基本的にＦＳＭベースのマイクロコントローラ１１０である。描写が内部では異なった表現になっているが、図６および図９がどちらも、本発明による機能強化型のＢＩＳＴコントローラの機能部分を高レベルに描写していることを理解されたい。図６はより概念的な図であり、図９はより機能的な図である。
【００３１】
詳細には図９のレイアウトは、命令ストア・モジュール４０あるいは命令生成モジュールの１つのどちらかが、バス１４０を通じて命令デコード・モジュール３０に信号を供給し、それに対して命令デコード・モジュール３０がテスト中のメモリを用いるための信号を供給することを示すものである。制御信号および状況信号が、命令ストア・モジュールと任意のアクティブな命令生成モジュールの双方に供給される一方で、いずれの特定の命令生成モジュール１１０の活動化は、接続１５０で示されるように命令ストア・モジュール４０から読み出されたマイクロコードによって制御される。すなわち、ＦＳＭおよびＦＳＭパラメータに対する活動化／非活動化信号は、マイクロコード・ベースのコントローラから命令生成モジュールに供給され、「最後の命令」、「有効な命令」、「モジュール・アクティブ」、「完了」の信号は、命令生成モジュールからマイクロコード・ベースのコントローラ／命令モジュールに送信される。
【００３２】
具体的には、マイクロコード命令を命令ストア・モジュール４０からデコード・モジュール３０に直接供給すべき場合、その命令は接続１６０を通じてバス１４０に直接置かれる。ただし、マイクロコード命令のプレ命令の第２および第３のビットがテスト固有命令を示し、第４から第７のビットが特定のＦＳＭベースのコントローラ／命令生成モジュール１１０を示す場合、そのＦＳＭベース・コントローラは活動化され、バス・ポートはその出力を受け取って、ＦＳＭの各状態シーケンスに対応する信号または信号シーケンスを命令デコード・モジュール３０に送達するように制御される。
【００３３】
命令デコード・モジュールが、命令ストア・モジュールからのマイクロコード命令か、またはアクティブな命令生成モジュール１１０からの最後の命令信号に対応するテスト信号の送信を完了すると、別のマイクロコード命令が命令ストア・モジュール４０から呼び出され、同一または別の命令生成モジュールを実際に活動化することができる。マイクロコード命令で指定される命令生成モジュールがない場合命令はノー・オペレーション・コマンドとして処理され、いくつかのメモリ構成のために作成されたマイクロコード命令セットを、より単純なメモリ構成で使用するか、または数個のマイクロコード命令だけによって呼び出される１つまたは複数の命令生成モジュールを追加することにより、より複雑なメモリ構成に拡張することができる。
【００３４】
次いで図１０の流れ図を参照して、本発明の好ましい動作モードを詳細に説明する。図の動作の他のシーケンスが可能であり、これは当業者には下記の好ましい動作モードの説明から明らかになろうことが認識されよう。
【００３５】
セルフテストのプロセスは、外部から加えられるテスト・コマンド（例えば外部のテスタから）によって開始されるか、または、関連付けられた外部または内部の読出し専用メモリなどから読み出されたチップのパワーアップ・シーケンス中のコマンドなど、内部で生成されるコマンドによって開始される。そのような信号またはコマンドに応答して、各メモリ・セルの内容を所定の所望のデジタル論理状態にセットすることにより、テストするメモリ構造が２００に示すように初期化され、２０１に示すように最初の命令ビットがアサートされる。初期化が完了すると、２０５に示すようにマイクロコード命令が命令ストア・モジュール４０（図９）からディスパッチされる。上記で触れたように、この命令は図７に示す上記のフォーマットであることが好ましい。命令は２１０でテストされ、それが有効な命令であるかを判定する。第１の命令ビットがチェックされ、第１の命令ビットがアサートされている場合、プロセスは２１６で終了する（未完了）。そうでない場合プロセスは２１５で終了する。
【００３６】
命令が有効な命令である場合は、命令ヘッダまたはプレ命令の「命令タイプ」ビットがテストされ、その命令がテスト固有命令であるかを２２０で判定する。テスト固有命令でない場合、その命令は、２２５に示すように接続１６０およびバス１４０を介して命令デコード・モジュール３０に転送され、テスト中のメモリに加えられる信号を命令デコード・モジュールによって生成する。ただし命令がテスト固有命令である場合は、命令生成モジュールが、プレ命令の「事前定義のテスト」ビットに従って活動化される（２３０）。
【００３７】
上記で触れたように、テスト中の特定メモリは、１つだけかあるいは数個の命令生成モジュール１１０で十分にテストすることができるが、本発明に従ってマイクロコードまたは他のアーキテクチャを提供すると利便または経済的、あるいはその両方である（例えば、さらにメモリ固有のテスト・アルゴリズム設計を行うコストを回避するために他のメモリ用に開発された、コードおよび回路設計を使用する）。それでもメモリをより拡張的に用いると、特にメモリの全機能性に関する有用な情報が引き出されない場合には、テスト手順の時間が不必要に延長される。したがってテスト信号の特定シーケンスを省略できる場合は、特定のＦＳＭベースの命令生成モジュールを単純にＢＩＳＴ構造から省いてもよい。したがって命令生成モジュール１１０の活動化を確かめるためのテスト２３５は、指定された命令生成モジュールがある場合には、それが実際に活動化されているかどうかを判定する機能と、あるいは命令生成モジュールがない場合は、２０５にループする（２４０）ことにより「ノー・オペレーション」を機能的に実行して、次のマイクロコード命令を獲得する機能という２つの機能を有する。
【００３８】
指定の命令生成モジュールが活動化されている場合は、２４０に示すように、有限状態機械（ＦＳＭ）の現在の状態に従って、活動化された命令生成モジュールから命令が生成される。１つまたは複数の命令を、ＦＳＭのいずれの特定状態から生成することができる。命令生成モジュールのＦＳＭの状態変更は、テスト結果と予測の結果との比較、あるいは命令または命令シーケンスの所与回数の繰り返しを含むいずれの所望の方式で制御することができるがこれらに制限されるものではなく、各命令はテスト中のメモリを用いるための１つまたは複数の信号を供給する。テストの結果にそれ以外の方法では直接アクセスできないときに、メモリ構造中のアクセス可能なポイントでの情報キャプチャを制御する命令を生成することもできる。
【００３９】
各命令生成モジュールは、生成すべき命令がそれ以上ないときには、最後の命令信号をアサートする。この信号はテストされ（２４５）、アサートされていない場合、命令は２５０に示すようにバス１４０を介して命令デコード・モジュール３０に転送される。その命令が、活動化された命令生成モジュールによって生成すべき最後の命令である場合は、命令を命令デコード・モジュールに転送する前にそのモジュールが非活動化される（２５５）。生成された各命令を命令デコード・モジュールに加えることは、上記のように、命令ストア・モジュール４０から読み出されたマイクロコード命令を命令デコード・モジュール３０に加えることと正確に並列して行われる。ただしＦＳＭベースの命令生成モジュールから獲得可能な、可能性として多数の命令が実時間で生成されるのと同時にテストが実行されており、それに対応する多数のマイクロコード命令をストアするために、ストレージ・スペースを割当てる必要がないことは容易に理解できよう。
【００４０】
したがって、本発明によるプロセスでは２６０に示すように、次の３つの方法のいずれかで命令を命令デコード・モジュール３０に送達する。ストアされたマイクロコード命令またはアドレス特定命令は、それがテスト固有命令でない場合には直接送達することができる。あるいは、テスト固有命令または通常の命令は、その命令が、活動化された命令生成モジュールによって生成された最後の命令であるか否かに基づいて、活動化されたＦＳＭベースの命令生成モジュールにより、モジュールを非活動化するかまたは非活動化せずに、実時間で生成し送達することができる。命令デコード・モジュール３０が、テスト中のメモリに加えられる１つまたは複数の信号の生成を開始することにより命令を実行すると、２６５に示すように次の命令が呼び出され、命令カウンタを増分し、最初の命令ビットをアサート解除し、少なくとも１つの有効命令の実行がうまく行われたことを示し、２３５にループし（２７０）、命令生成モジュールが活動化されているかどうかを再度判定する。
【００４１】
命令生成モジュール１１０が活動化状態のままである場合、命令生成モジュールによって生成された最後の命令に達してモジュールが非活動化されるまで、上記のプロセスが繰り返される。ループ２７０を実行してモジュールが非活動化される場合、プロセスはループ２４０により２０５にループし、そこで別のマイクロコード命令を命令ストア・モジュール４０から獲得し、その結果、そのマイクロコード命令がテスト固有命令であるか否かに応じて、別のまたは同一の命令生成モジュール１１０を活動化するか、または活動化しない。
【００４２】
２０５でフェッチ／ディスパッチされた命令が無効な命令である場合にはテスト・プロセスは完了し（２６０での先行命令のデコードはまだ完了しておらず、テスト結果の評価は始まっているかあるいは始まっていないか、あるいは進行中なので、少なくともメモリに加えるべき信号を指定する点までは完了している）、メモリ・テストは２１５を終了する。無効な命令の場合には（２１０）最初の命令ビットの状況がテストされ、その最初の命令ビットがアサートされている場合、メモリ・テストは未完了であるということになる。ただし最初の命令ビットがアサートされていない場合には、プロセスは完了していると考えられる。このプロセスは上記のいずれの場合に終了する。
【００４３】
前述の内容を考慮すると、この発明により、新しいメモリ設計に適したテストを提供するための設計コストを低減または除去する、ＢＩＳＴ回路用のモジュラ・アーキテクチャが提供されることが認識されよう。本発明によるＢＩＳＴ構成は、メモリに割当てられるチップ・エリアが非常に制限される複合メモリのテストに適応することができる。本発明による有限状態機械の命令生成器を使用して得られるチップ・エリアの効率性により、テストの所与の複合性のために必要とされるチップ・エリアを大幅に縮小することが可能になる。特に、意図した性能に他の介在（intervene）論理が一致しない、複合メモリまたは他の高速データ・リンクの部分内において、有限状態機械が提供できる信号の逐次的性質は信号キャプチャにも非常に適している。ＦＳＭベースの命令生成器のモジュラ・アーキテクチャは、既存のＢＩＳＴ設計の再使用と、より単純化された修正を提供して新しいチップ設計を一層節減する。ＦＳＭの設計方法論もよく知られており、チップ・レイアウトはその大部分を自動化することができ、それによりさらに節減を達成できる可能性がある。
【００４４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４５】
（１）加えられた命令に応答してテスト信号を生成する命令デコーダと、
命令を前記命令デコーダに供給するマイクロコード命令ストアと、
複数の命令を生成し、テスト固有命令が前記マイクロコード命令ストアによって出力されるのに応答して、前記複数の命令を前記命令デコーダに供給する有限状態機械とを備えた、集積回路用のビルトイン・セルフテスト（ＢＩＳＴ）構成。
（２）前記集積回路が組込み型メモリを含み、前記命令デコーダがテスト信号を前記組込み型メモリに加える上記（１）に記載のＢＩＳＴ構成。
（３）前記組込み型メモリが複合従属メモリ構造である上記（２）に記載のＢＩＳＴ構成。
（４）前記有限状態機械が命令生成モジュールを備える上記（１）に記載のＢＩＳＴ構成。
（５）前記有限状態機械が、複数の命令生成モジュールのうち１つを備える上記（１）に記載のＢＩＳＴ構成。
（６）少なくとも１つの機能セクションと、前記機能セクションをテストするビルトイン・セルフテスト（ＢＩＳＴ）構成を有する集積回路であって、前記ＢＩＳＴ構成が、
そこに加えられる命令に応答してテスト信号を生成する命令デコーダと、
命令を前記命令デコーダに供給するマイクロコード命令ストアと、
複数の命令を生成し、テスト固有命令が前記マイクロコード命令ストアによって出力されるのに応答して、前記複数の命令を前記命令デコーダに供給する有限状態機械とを含む集積回路。
（７）前記機能セクションが組込み型メモリを含み、前記命令デコーダがテスト信号を前記組込み型メモリに加える上記（６）に記載の集積回路。
（８）前記組込み型メモリが複合従属メモリ構造である上記（７）に記載のＢＩＳＴ構成。
（９）前記有限状態機械が命令生成モジュールを備える上記（６）に記載のＢＩＳＴ構成。
（１０）前記有限状態機械が、複数の命令生成モジュールのうち１つを備える上記（６）に記載のＢＩＳＴ構成。
（１１）集積回路の部分をテストする方法であって、前記方法が、
命令を命令ストアからディスパッチするステップと、
テスト固有命令が前記命令ストアからディスパッチされるのに応答して命令生成器を活動化するステップと、
複数の命令を生成し、それを前記命令生成器から命令デコーダに送達するステップと、
前記命令ストアからディスパッチされた他の命令を前記命令デコーダに送達するステップを含む方法。
（１２）前記複数の命令を生成および送達するステップが、有限状態機械の各状態に従って実行される上記（１１）に記載の方法。
（１３）前記命令生成器が前記活動化ステップによって活動化されないとき、次の命令をディスパッチするステップをさらに含む上記（１２）に記載の方法。
（１４）最後の命令が前記命令デコーダから出力されるのに応答して、命令生成器を非活動化するステップをさらに含む上記（１１）に記載の方法。
（１５）命令の有効性を示す命令ビットをアサートするステップをさらに含む上記（１１）に記載の方法。
（１６）最後の命令が前記命令生成器から出力されると、前記命令ビットをアサート解除するステップをさらに含む上記（１５）に記載の方法。
（１７）前記命令ビットが無効な命令とともにアサートされているとき、テストは未完了であると判定するステップをさらに含む上記（１６）に記載の方法。
（１８）前記集積回路の部分が組込み型メモリである上記（１１）に記載の方法。
（１９）前記組込み型メモリが複合従属メモリである上記（１８）に記載の方法。
（２０）前記複数の命令の各々が、前記集積回路の前記部分を用いて、テスト結果のキャプチャを制御する上記（１１）に記載の方法。
【図面の簡単な説明】
【図１】例示的な単純マルチポート依存型のメモリ構造をきわめて概略的に示した図である。
【図２】例示的な単純マルチポート依存型のメモリ構造をきわめて概略的に示した図である。
【図３】例示的な複合マルチポート依存型のメモリ構造をきわめて単純化した図である。
【図４】例示的なプログラマブルＢＩＳＴアーキテクチャを示すブロック図である。
【図５】図４のＢＩＳＴコントローラ中のアクセスの流れを示す流れ図である。
【図６】本発明によるプログラマブルＢＩＳＴアーキテクチャをきわめて概念化した図である。
【図７】例示的テスト命令のコードの概略図である。
【図８】本発明の好ましい実施形態で使用することのできる例示的有限状態機械の図である。
【図９】本発明によるＢＩＳＴコントローラのブロック図である。
【図１０】図９のＢＩＳＴコントローラの動作を表す流れ図である。
【符号の説明】
１０  プログラマブルＢＩＳＴアーキテクチャ
１００  ＢＩＳＴモジュール
１３０  テスト固有モジュール
２１５  ＢＩＳＴコントローラの動作
【図１】
0003640350.tif 000002
【図２】
0003640350.tif 000003
【図３】
0003640350.tif 000004
【図４】
0003640350.tif 000005
【図５】
0003640350.tif 000006
【図６】
0003640350.tif 000007
【図７】
0003640350.tif 000008
【図８】
0003640350.tif 000009
【図９】
0003640350.tif 000010
【図１０】
0003640350.tif 000011