(57)【特許請求の範囲】
【請求項１】
集積回路チップを試験するための出力信号を生成する多段を有するタイプのアルゴリズムパターン生成器（１００）であって、
前記多段が、互いに直列に結合される初期段（２１０）、中間段（２２０）および出力段（２３０）を含み、
前記初期段（２１０）が、出力レジスタ（Ｘ１Ａ’〜Ｚ１Ａ’）の第１集合の中の仮想アドレスの第１シーケンス、及び出力レジスタ（Ｘ２Ａ’〜Ｚ２Ａ’）の第２集合の中の仮想アドレスの第２シーケンスを同時に生成する回路（２１０ａ〜２１０ｐ）を有し、
前記中間段（２２０）が、前記初期段（２１０）の前記出力レジスタからの前記仮想アドレスを記憶する入力レジスタ（Ｘ１Ａ〜Ｚ１Ａ、Ｘ２Ａ〜Ｚ２Ａ）を有し、記憶されている仮想アドレスを物理アドレスの集合に変換する回路（２２０ａ〜２２０ｚｉ）を有し、
前記出力段（２３０）が、前記中間段からの物理アドレスの各集合を連続して記憶する入力レジスタ（２３０ａ）を有し、物理アドレスの記憶されている集合からビットを選択することによって、前記チップを試験するために前記出力信号を生成する回路（２３０ｂ〜２３０ｑ）を有することを特徴とする、集積回路チップを試験するためのアルゴリズムパターン生成器（２００）。
【請求項２】
前記仮想アドレスが、仮説仮想メモリ内のアドレスであり、前記物理アドレスが、前記出力信号で試験される実際の物理メモリ内のアドレスである、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項３】
前記初期段と前記中間段と前記出力段に、前記アドレスの異なる集合で同時に動作するように命令する、前記初期段（２１０）及び前記中間段（２２０）及び前記出力段（２３０）に結合される制御モジュール（２４０）をさらに含む、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項４】
前記初期段（２１０）が、前記初期段（２１０）が前記仮想アドレスを生成するのを停止するある特定の命令（３０２）に応えて入る待機状態（３０５）を有する、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項５】
前記初期段（２１０）が、前記待機状態（３０５）を終了し、前記初期段（２１０）から前記仮想アドレスの集合を記憶する前記中間段（２２０）に応えて前記仮想アドレスを生成し続ける、請求項４に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項６】
前記中間段（２２０）が、前記中間段（２２０）が、前記仮想アドレスの記憶されている集合を前記物理アドレスの集合に変換することを終了するときに入る待機状態（３１１）を有する、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項７】
前記中間段（２２０）が前記待機状態（３１１）を終了し、前記中間段（２２０）からの前記物理アドレスの集合を記憶する前記出力段（２３０）に応じて前記仮想アドレスを変換し続ける、請求項６に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項８】
前記出力段（２３０）が、前記出力段（２３０）が、そのときに、前記中間段（２２０）が物理アドレスの別の集合を生成していない場合に、物理アドレスの前記記憶されている集合から特定のビット数（３２２、３２３）を選択することを終了したときに入る待機状態（３２０）を有する、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項９】
前記特定の数（３２３）がプログラム可能であり、前記物理アドレスの集合ごとに命令によって確立される、請求項８に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項１０】
前記出力段（２３０）が、ある特定の時間間隔（Ｔ１Ｓ３）内の物理アドレスの記憶されている集合から前記ビットを選択し、と同時に前記初期段（２１０）及び中間段（２２０）がそれぞれ、前記仮想アドレスの１つの集合及び前記物理アドレスの別の集合を、さらに短い時間間隔（Ｔ３Ｓ１、ｔ２Ｓ２）内であるが生成する、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項１１】
前記仮想アドレスが、命令（３０１、３０２、３０３）によってプログラムされる可変数の前記仮想アドレスを含む、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【請求項１２】
前記初期段（２１０）が、前記仮想アドレスとともに第１データワードを生成し、前記中間段（２２０）が前記第１データワードから第２データワードを生成し、前記出力段（２３０）が、前記第２データワードと物理アドレスの両方からビットを選択することによって前記出力信号を生成する、請求項１に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器（２００）。
【発明の詳細な説明】
【０００１】
（関連事例）
前記事件整理番号及び題名によって特定されるような発明は、４つのそれ以外の発明に関係する。これらの発明のすべてに関する特許出願は、１９９９年１１月 日に同時に提出され、それらは１つの共通した詳細説明を有する。これら４つの関連発明は、以下のように特定される。
１．米国出願番号第 号を有する「記憶されているあるいは内部で生成されるビットストリームを用いて選択的にＩＣチップを試験するためのシステム（ＳＹＳＴＥＭ  ＦＯＲ  ＴＥＳＴＩＮＧ  ＩＣ  ＣＨＩＰＳ  ＳＥＬＥＣＴＩＶＥＬＹ  ＷＩＴＨ  ＳＴＯＲＥＤ  ＯＲ  ＩＮＴＥＲＮＡＬＬＹ  ＧＥＮＥＲＡＴＥＤ  ＢＩＴ  ＳＴＲＥＡＭＳ）」と題される事件整理番号第５５０，６１２号
２．米国出願番号第 号を有する「ＩＣチップを試験するための多段アルゴリズムパターン生成器（ＭＵＬＴＩ−ＳＴＡＧＥ  ＡＬＧＯＲＩＴＨＭＩＣ  ＰＡＴＴＥＲＮ  ＧＥＮＥＲＡＴＯＲ  ＦＯＲ  ＴＥＳＴＩＮＧ  ＩＣ  ＣＨＩＰＳ）」と題される事件表第５５０，６１３号
３．米国出願番号第 号を有する「ＩＣチップを試験するための多段アルゴリズムパターン生成器の中間段（ＩＮＴＥＲＭＥＤＩＡＴＥ  ＳＴＡＧＥ  ＯＦ  Ａ  ＭＵＬＴＩ−ＳＴＡＧＥ  ＡＬＧＯＲＩＴＨＭＩＣ  ＰＡＴＴＥＲＮ  ＧＥＮＥＲＡＴＯＲ  ＦＯＲ  ＴＥＳＴＩＮＧ  ＩＣ  ＣＨＩＰＳ）」と題される事件表第５５０，６１５号
４．米国出願番号第 号を有する「ＩＣチップを試験するための多段アルゴリズムパターン生成器の出力段（ＯＵＴＰＵＴ  ＳＴＡＧＥ  ＯＦ  Ａ  ＭＵＬＴＩ−ＳＴＡＧＥ  ＡＬＧＯＲＩＴＨＭＩＣ  ＰＡＴＴＥＲＮ  ＧＥＮＥＲＡＴＯＲ  ＦＯＲ  ＴＥＳＴＩＮＧ  ＩＣ  ＣＨＩＰＳ）」と題される事件表第５５０，６１６号
【０００２】
（発明の背景）
従来の技術において、チップを試験するための電子システムは、米国特許第５，３９０，１２９号に開示されている。従来の技術によるシステムは、本発明の譲受人でもあるユニシス・コーポレイション（Ｕｎｉｓｙｓ  Ｃｏｒｐｏｒａｔｉｏｎ）に譲渡されている。
従来の技術によるチップ試験システムの簡略化されたブロック図は、特許第１２９号の図２に図示されている。そのシステムは、時分割されているバス５２を介して複数のドライバボード１００に結合されるコンピュータ５０を含み、各ドライバボード１００は、試験されなければならない複数の集積回路チップを保持するそれぞれのバーンインボード５００に結合される。
【０００３】
動作中、コンピュータ５０は、各ドライバボード１００に、チップを試験するために使用される試験データパターンの別個の集合を連続して送信する。これらの試験データパターンは、参照番号１０７によって図３に示され、参照番号１４５によって図９にさらに詳細に示される大型ＳＲＡＭ内の各ドライバボード上に記憶される。どの特定のドライバボードが任意の一時点で試験データパターンを受信、記憶するのかは、ドライバボード上にあり、図２のブロック図に図示されているアドレス回路１００Ａによって決定される。
【０００４】
試験データパターンがドライバボード１００のすべてのＳＲＡＭ１４５内に記憶された後に、バーンインボード５００のすべてでのチップが並列で試験できる。それを行うために、試験パターンはＳＲＡＭのすべてから同時に読み出され、図１４に図示されるように、それぞれの出力ドライバモジュール１６４を通してバーンインボード５００のすべてのチップに送信される。
【０００５】
特許第’１２９号のチップ試験システムのある特定の特徴とは、それぞれのバーンインボードが、ボード上で試験されるチップの種別を特定するＩＤコードを含むという点である。そのＩＤコードはドライバボード１００によって感知され、コンピュータ５０に送信される。応じて、コンピュータ５０がドライバボードに送信する試験データパターンは、感知されるＩＤコードに合わせられる。
【０００６】
しかしながら、特許第’１２９号のチップ試験システムは、図２のアーキテクチャによって課されるいくつかの主要な制約も有する。例えば、コンピュータ５０は、ドライバボード１００のすべてについての試験データパターンの唯一のソースである。その結果、チップ試験システムの動作速度は、コンピュータ５０が、バス５２上で一度に単一ドライバボードに試験データパターンを送信することができるために制限される。
【０００７】
特許第’１２９号のチップ試験システムの別の制約とは、各ドライバボード１００がつねにバーンインボード５００上のチップのすべてを同時に試験するという点である。ただし、それぞれのバーンインボードは本来ボード上のチップが消散できる電力総量に限度を有している。このようにして、各バーンインボード５００での総電力消散を一定の限度以下に保つためには、各バーンインボードでのチップの総数が、チップあたりの最大電力消散が上昇するにつれて減少しなければならない。
【０００８】
特許第’１２９号のチップ試験システムの依然として別の制約とは、各ドライバボードの大型ＳＲＡＭ１４５に記憶されている試験データパターンがＳＲＡＭメモリセルを非常に非効率的に利用するという点である。特許第’１２９号の図９は、各ＳＲＡＭ１４５が１９個のアドレスビットを受信し、８個のデータ出力ビットを有することを示す。このようにして、各ドライバ回路上のＳＲＡＭ１４５は、８００万個のメモリセルを有する。しかし、一定の種類のチップは、時間とともに数が変化する直列ビットストリームのシーケンスをそれらに送信することによって試験される。このようにして、ＳＲＡＭ１４５が一方の時間間隔の間に４個のビットストリームを送信し、他方の時間間隔の間に２個のビットストリームだけを送信する場合には、２個のビットストリームが送信されているときにＳＲＡＭの半分が浪費される。
【０００９】
特許第’１２９号のチップ試験システムで前記問題に対処するために、本発明人は、以下のとおりに特定される１９９９年８月３１日に３つの米国特許出願を提出した。
【００１０】
１．「チップドライバ回路の選択可能な集合に異なるビットストリームを同時に一斉送信する選択可能な数のパターン生成器を有するチップを試験するための電子システム（Ａｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｔｅｓｔｉｎｇ  Ｃｈｉｐｓ  Ｈａｖｉｎｇ  Ａ  Ｓｅｌｅｃｔａｂｌｅ  Ｎｕｍｂｅｒ  ｏｆ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒｓ  Ｔｈａｔ  Ｃｏｎｃｕｒｒｅｎｔｌｙ  Ｂｒｏａｄｃａｓｔ  Ｄｉｆｆｅｒｅｎｔ  Ｂｉｔ  Ｓｔｒｅａｍｓ  Ｔｏ  Ｓｅｌｅｃｔａｂｌｅ  Ｓｅｔｓ  ｏｆ  Ｃｈｉｐ  Ｄｒｉｖｅｒ  Ｃｉｒｃｕｉｔｓ）と題されるＵＳＳＮ第０９／３８６，９４６号。
【００１１】
２．「ワード境界で終わり、任意の長さのチップ試験ビットストリームを生成する未使用ビットによって間隔をあけて配置される命令を含むプログラム記憶装置（Ａ  Ｐｒｏｇｒａｍ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ  Ｃｏｎｔａｉｎｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  Ｔｈａｔ  Ａｒｅ  Ｓｐａｃｅｄ  Ａｐａｒｔ  Ｂｙ  Ｕｎｕｓｅｄ  Ｂｉｔｓ  Ｔｈａｔ  Ｅｎｄ  Ｏｎ  Ｗｏｒｄ  Ｂｏｕｎｄａｒｉｅｓ  Ａｎｄ  Ｗｈｉｃｈ  Ｇｅｎｅｒａｔｅ  Ｃｈｉｐ  Ｔｅｓｔｉｎｇ  Ｂｉｔ  Ｓｔｒｅａｍｓ  ｏｆ  Ａｎｙ  Ｌｅｎｇｔｈ）」と題されるＵＳＳＮ第０９／３８７，１９７号。
【００１２】
３．「チップ電力消散を制限するためにプログラム制御下にある選択可能な部分集合で同時にまたは連続して複数のチップの集合を試験するための電子システム（Ａｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ｔｅｓｔｉｎｇ  Ａ  Ｓｅｔ  Ｏｆ  Ｍｕｌｔｉｐｌｅ  Ｃｈｉｐｓ  Ｃｏｎｃｕｒｒｅｎｔｌｙ  Ｏｒ  Ｓｅｑｕｅｎｔｉａｌｌｙ  Ｉｎ  Ｓｅｌｅｃｔａｂｌｅ  Ｓｕｂｓｅｔｓ  Ｕｎｄｅｒ  Ｐｒｏｇｒａｍ  Ｃｏｎｔｒｏｌ  Ｔｏ  Ｌｉｍｉｔ  Ｃｈｉｐ  Ｐｏｗｅｒ  Ｄｉｓｓｉｐａｔｉｏｎ）」と題されるＵＳＳＮ第０９／３８６，９４５号。
【００１３】
前記特許出願のそれぞれは、図１から図１２の同じセットを含み、それらはそれぞれ同じ詳細な説明を有する。また、前記特許出願のそれぞれは、開示されているチップ試験システムのさまざまな態様をカバーする請求項の別個のセットを有する。
【００１４】
ＵＳＳＮ第０９／３８６，９４６号に請求されるような発明は、動作の速度に関する特許第’１２９号の制約に取り組む。特に、それらのクレームは、そのそれぞれが、別個のバスを介して、選択可能な数のチップドライバ回路へ結合される選択可能な数のパターン生成器から構成される集積回路チップを試験するためのシステムをカバーする。各パターン生成器は、そのそれぞれのメモリからワード単位で異なるビットストリームを記憶するそれぞれのメモリにも結合される。そして、それは、同時にその別個のバスに結合されるチップドライバ回路のすべてに、読み取られるワードを送信する。それが発生している間、各チップドライバは、それが送信されるワードを、並列で複数の集積回路チップを試験するビット直列試験信号に変換する。
【００１５】
１つの別個のバスに結合されるすべてのチップドライバ回路は、１つのパターン生成器から同時にビットストリームのワードを受信するので、動作の速度は従来の技術より加速される。また、パターン生成器のすべてが別個のバス上で同時にさまざまなビットストリームを送信するので、動作の速度は従来の技術よりさらに加速される。
【００１６】
ＵＳＳＮ第０９／３８７，１９７号では、請求されるような発明は、試験データパターンを記憶するためのメモリの非効率的な使用に関する特許第’１２９号の制約に取り組む。特に、これらの請求項は、チップを試験するためのビットストリームの集合を指定する可変長命令を記憶するメモリに結合されるパターン生成器から構成される集積回路チップを試験するためのシステムをカバーする。各可変長命令は、集合の中のビットストリームの数を示す符号を含む。集合の中の各ビットストリームは、ワード境界で開始し、１ビットという増分で変化する選択可能な数のビットから成り立つ。未使用のビットのそれぞれの行列は、各ビットストリームの直後に開始し、ワード境界で終了する。
【００１７】
符号が、集合内のビットストリームの数が１にすぎないことを示す場合、該１つのビットストリームは、メモリの連続的なワードに記憶される。符号が、集合のビットストリームの数が１より多いことを示す場合、それらの複数のビットストリームがメモリ内の連続ワードにインタリーブされた様式で記憶される。その結果、浪費されるメモリセルだけが、各ビットストリームの後に未使用のビットを記憶するセルである。しかし、それらの未使用のビットは、ビットストリームのそれぞれが長いときには、数の上で無意味である。
【００１８】
ＵＳＳＮ第０９／３８６，９４５号では、請求されるような発明が、バーンインボードで試験されているチップによる総電力消散に関する特許第’１２９号の制約に取り組む。特に、それらのクレームは、クロック信号を生成する信号生成器、及びクロック信号を受信する第１入力、コマンドを受信するための第２入力、及び複数の出力を有する制御回路から構成される集積回路チップを試験するためのシステムをカバーする。コマンドソースは、制御回路の第２入力にコマンドのプログラム可能なシーケンスを送信し、制御回路内の手段はコマンドに応じて特定の出力を選択し、第１入力から選択された出力だけにクロック信号を渡す。
【００１９】
制御回路の出力のすべては、試験されなければならないさまざまなチップにそれぞれのクロック送信機を通して結合される。このようにして、プログラム可能コマンドに応じて、クロック信号は、選択可能な部分集合で、試験されるチップに連続して送信することができる。このような順序付けによって、試験されるチップの総電力消散は、チップが、それらがクロック信号を受信するときに大量の電力を消散するが、それらがクロック信号を受信しないときには実質的にはより少ない電力を消散する型であるときに調節することができる。このようなチップは、例えば、ＣＭＯＳマイクロプロセッサチップ及びＣＭＯＳメモリチップを含む。
【００２０】
前記３つの特許出願（これ以降「ベースシステム」）に開示されるチップの特徴のすべてにも関わらず、本発明人は、さらに、そのシステムに対する主要な改善策を発見した。この改善されたシステムによって、チップ用の試験信号を定義するために必要とされるメモリの量は、数桁削減される。
【００２１】
改善されたシステムの好ましい実施態様はここに、及び１ページに特定される４つの関連ケースのそれぞれで説明される。それぞれのケースでは、改善されたシステムは、図及び同じ詳細な説明とともに説明される。また、それぞれのケースは、改善されたシステムの異なる態様をカバーするクレームの別個のセットを有する。
【００２２】
改善されたシステムの構造及び動作を完全に理解するために、まず、３つの参照される特許出願第０９／３８６，９４６号と第０９／３８７，１９７号、及び第０９／３８６，９４５号に説明されるベースシステムの理解を有することが必要である。結果的に、それらの詳細な説明だけではなく、それらの出願の図１から図１２もここで繰り返される。それから、改善されたシステムは、ここで図１から図１２のベースシステムに対する改良として、図１３から図２２とともに説明される。
また、従来の技術において、集積回路チップを試験するための別のシステムが、欧州特許出願ＥＰ第０  ８５９  ３６７  Ａ２号（参考資料Ｄ１）に説明されている。しかしながら、参考資料Ｄ１のシステムは、一般的な先端技術を定義しているに過ぎず、ここに請求されているシステムと特に関連しているとは見なされない。本出願の請求項１は、唯一の独立クレームであり、それは明示的に参考文献Ｄ１によって教示または示唆されていない複数の構造上の特徴を明示的に列挙する。
【００２３】
（発明の簡略概要）
本発明は、請求されるように、メモリに記憶されている第１ビットストリームまたは内部で生成される第２ビットストリームで選択的にＩＣチップを試験するためのシステムの１つの特定の部分をカバーする。システムの中で、内部で第２ビットストリームを生成することにより達成される主要な利点とは、メモリ内に必要とされる記憶の量が大幅に削減されるという点である。例えば、第２ビットストリームが、合計１０億ビットを含む可能性がある。しかし、それは、メモリ内の記憶の１０００ビット未満を必要とする命令で生成することができる。
【００２４】
本発明として請求されるシステムの特定の部分は、ＩＣチップを試験するためのビットストリームを生成する多段アルゴリズムパターン生成器である。この多段アルゴリズムパターン生成器は、３段パイプラインとしてともに結合される、初期段、中間段、及び出力段から構成される。好ましくは、初期段は、外部ソースからの一連の命令に応えて第１アドレスの複数の集合を連続して生成する。中間段は、初期段からの第１アドレスの各集合を連続して記憶し、第１アドレスの記憶されている集合をアドレスの第２集合に変換し、出力段は、中間段からアドレスの各第２集合を連続して記憶し、アドレスの記憶されている第２集合からビットを選択することによって、チップを試験するための出力信号を生成する。
【００２５】
前記算法パターン生成器を用いて、初期段によって連続して生成される第１アドレスは、仮想または仮説のメモリ内の仮想アドレスとなることがあり、それらの仮想アドレスは、中間段によって試験されなければならない実際のメモリチップの物理アドレスに変換することができる。この特徴は、複数の異なる種類のメモリチップが試験される必要がある場合、及びチップの種類ごとに、メモリセルが、異なる非連続アドレスによってアドレス指定される行と列で配列される場合に特に有効である。このようなチップを試験するために、仮想アドレスは、連続アドレスの１つの固定シーケンスとして初期段によって生成することができ、物理アドレスは、試験されなければならない特定の種類のメモリチップへのその仮想アドレスから物理アドレスへの変換を調整することによって中間段で生成することができる。
【００２６】
（詳細説明）
まず図１〜図１２に関して、集積回路チップを試験するためのベースシステムのある実施態様が説明されるだろう。それ以降、本発明を構成するベースシステムに対する修正は、図１３〜図２２に関して説明されるだろう。図１が示すように、ベースシステムは、５つの異なる種類のモジュール１０〜１４から構成され、各モジュールの説明が、表１の中に以下に示される。
【００２７】
表１
モジュール 説明
１０  各モジュール１０は、それらが試験される間に複数の集積回路チップ１０ａを保持するチップアセンブリである。図１のシステムでは、チップアセンブリ１０の総数が選択可能である。各チップアセンブリ１０は、複数のソケット１０ｃがはんだつけされる１枚のプリント回路基板１０ｂを含み、各ソケットは、チップ１０ａの１つを保持する。コネクタ１０ｄはプリント回路基板１０ｂの端縁に取り付けられ、プリント回路基板内の電気導体１０ｅがコネクタ１０ｄとチップ１０ａの間で試験信号を搬送する。
１１  各モジュール１１は、チップドライバ回路である。図１のシステムでは、別個のチップドライバ回路１１がチップアセンブリ１０ごとに提供される。各チップドライバ回路１１は、図６、図８、図９、及び図１０に示される回路構成要素のすべてを含む。その回路構成要素により、試験信号は、プログラム可能である多様なビット直列シーケンスとして、チップ１０ａに送信され、チップ１０ａから受信される。
【００２８】
表１（続き）
モジュール          説明
１２  各モジュール１２はパターン生成器である。図１のシステムでは、各パターン生成器１２は、バス１２ａを介して、選択可能な数のチップドライバ回路に結合される。図１は、チップドライバ回路１１のすべてがサブグループに区分され、１つの別個のパターン生成器１２が別個のバス１２ａを介して各サブグループに結合される例を示す。代わりに、チップドライバ回路１１のすべては、単一バス１２ａによって単一パターン生成器に結合できる。あるいは、各チップドライバ回路１１は、別個のバス１２ａによって別個のパターン生成器に結合できる。各パターン生成器１２は、図５と図６に示される回路構成要素のすべてを含む。その回路構成要素によって、各パターン生成器１２は、チップ１０ｃを試験するための特定のビット直列シーケンスを指定するプログラム可能な命令の別個のシーケンスを実行する。命令を実行する際に、各パターン生成器１２は、ビット直列シーケンスをワードに区分し、該ワードを、そのバス１２ａに結合されるチップドライバ回路１１のすべてに一斉送信する。
１３  各項目１３は、ランダムアクセス読み書きメモリである。別個のメモリ１３が、パターン生成器１２ごとに提供される。各メモリ１３は、対応するパターン生成器によって実行されるプログラム可能命令の別個のシーケンスを記憶する。これらの命令は、アクセスポート１３ａを介してパターン生成器１２によってメモリ１３から読み取られ、それらは別のアクセスポート１３ｂを介してメモリの中に書き込まれる。両方のアクセスポートとも同時に動作する。したがって、いくつかの命令をポート１３ａから読み取ることができるが、同時にその他の命令をポート１３ｂの中に書き込むことができる。
１４  モジュール１４は、図１のシステム全体の動作を命令する単一ホストコンピュータである。ホストコンピュータ１４は、バス１３ｃを介して、メモリ１３のすべてでポート１３ｂに結合される。ホストコンピュータ１４の中に含まれているのは、ディスク１４ａ、キーボード１４ｂ、及びモニタ１４ｃである。ディスク１４ａに記憶されているのは、パターン生成器１２用の複数のプログラムであり、それぞれのこのようなプログラムがチップ１０ｃを試験するための信号の特定のビット直列シーケンスを指定するプログラム可能命令の別のセットを含む。プログラムの内の１つを選択し、特定のパターン生成機のメモリ１３にそれを送信するために、オペレータ（図示されていない）はキーボード１４ｂを介してホストコンピュータ１４に多様なコマンドを入力する。それ以降、選択されたプログラムでチップを試験することから得られる結果は、メモリ１３内のパターン生成器によって記憶され、それらはホストコンピュータ１４によってモニタ１４ｃの上で表示される。
【００２９】
次に図２を参照すると、それは、モジュール１０〜１４のすべてが、どのようにして１つのシステムとしてともに物理的に実装されるのかを示す。図２のアイテム２０は、スタック内で互いの上に配列される複数の水平スロット２１−１、２１−２等を有する機械的なラックである。それぞれのスロットは、１チップアセンブリ１０を加えた１つのドライバ回路１１を保持するか、あるいはそれは１つのメモリ１３を加えた１つのパターン生成器１２を保持する。
【００３０】
図２は、ラック２０内のスロットの総数が１４である例を示す。一番上のスロットは２１−１であり、次のスロットは２１−２である等。図２では、スロット２１−１〜２１−１４が以下のように占有される。
【００３１】
スロット２１−１〜２１−７のそれぞれが、チップアセンブリ１０を加えたドライバ回路１１を保持し、次のスロット２１−８は、そのメモリ１３を加える１つのパターン生成器１２を保持する。スロット２１−８内のパターン生成器１２は、バス１２ａによってスロット２１−１〜２１−７の７つのドライバ回路に結合される。そのバス上では、スロット２１−８内のパターン生成器が、スロット２１−１〜２１−７内にあるチップドライバ回路のすべて７つにビット直列試験信号を一斉送信する。
【００３２】
スロット２１−９は、チップアセンブリ１０を加えるドライバ回路１１を保持し、スロット２１−１０は、そのメモリ１３を加える１つのパターン生成器１２を保持する。スロット２１−１０内のパターン生成器は、バス１２ａによってスロット２１−９内のドライバ回路に結合され、そのバス上で、スロット２１−１０内のパターン生成器が、スロット２１−９内の１チップドライブ回路だけにビット直列試験信号を送信する。
【００３３】
スロット２１−１１〜２１−１３のそれぞれが、チップアセンブリ１０を加えたドライバ回路１１を保持し、次のスロット２１−１４が、そのメモリ１３を加えた１つのパターン生成器１２を保持する。スロット２１−１４内のパターン生成器は、バス１２ａによってスロット２１−１１〜２１−１４内の３つのドライバ回路に結合され、そのバスの上でスロット２１−１４内のパターン生成器が、スロット２１−１１〜２１−１３内にあるチップドライバ回路の３つすべてにビット直列試験信号を一斉送信する。
【００３４】
スロット２１−８、２１−１０、及び２１−１４内のメモリ１３のそれぞれが、パターン生成器１２によって一斉送信されるビット直列試験信号を定義する複数の種類の命令の異なるシーケンスを記憶する。３つの異なる種類の命令が図３に示される。命令３１は、第１の種類であり、命令３２は、第２の種類であり、命令３３は第３の種類である。
【００３５】
第１種類の各命令３１は、演算コードＯＰ、ワードカウントＷＣＮＴ、及びビットカウントＢＮＣＴを含むワードＷ０を含む。演算コードがＯＰ１というある特定の値を有するとき、命令３１は、ビットストリームＴＤＩを、試験されるチップ１０ａないにあるデータレジスタの中に書き込ませる。演算コードがＯＰ２という別の特定の値を有するとき、命令３１は、チップ１０ａ内にある命令レジスタの中にＴＤＩビットストリームを書き込ませる。
【００３６】
演算コードＯＰ１とＯＰ２の両方について、書き込まれるＴＤＩビットストリームは、図３に図示されるように命令３１の中で指定される。このＴＤＩビットストリームは、ワードＷ０の直後に開始し、それは１ビットの増分で変化する長さを有する。ＴＤＩビットストリームのビット総数は（ＷＣＮＴ−１）（Ｘ）＋ＢＣＮＴであり、この場合Ｘはワード当たりのビット数である。ＴＤＩビットストリームを指定しない最後のワードの中のすべてのビットが未使用である。
【００３７】
第２種類の各命令３２は、演算コード、ワードカウントＷＣＮＴ、及びビットカウントＢＣＮＴを含むワードＷ０を含む。演算コードがＯＰ３というある特定の値を有するとき、命令３２が、チップ１０ａ内のデータレジスタの内容を読み取らせ、選択的に命令の中のデータストリームと比較させる。演算コードがＯＰ４という別の特定の値を有するとき、命令３２は、チップ１０ａ内の命令レジスタの内容を読み取らせ、選択的に命令の中のデータストリームと比較させる。
【００３８】
演算コードＯＰ３とＯＰ４の両方について、２つのビットストリームＥＴＤ０とＭＡＳＫが、比較動作で使用するために命令３２の中で指定される。それらの２つのビットストリームはワードＷ０の直後に開始し、それらは図３に図示されるようにワード単位でインタリーブされる。ＭＡＳＫビットストリーム内のｉ番目のビットが「１」である場合には、チップから読み出されるｉ番目のビットは比較動作に参加し、チップからのその特定のビットはＥＴＤＯビットストリーム内のＩ番目のビットに比較される。ビットストリームＥＴＤＯ及びＭＡＳＫは長さが可変であり、それらのビットストリームのそれぞれでのビット総数は（ＷＣＮＴ−１）（Ｘ）＋ＢＣＮＴである。ＥＴＤＯビットストリームとＭＡＳＫビットストリームを指定しない最後の２つのワード内のビットのすべては未使用である。
【００３９】
第３種類の各命令３３は、演算コードＯＰ、ワードカウントＷＣＮＴ、及びビットカウントＢＣＮＴを含むワードＷ０を含む。演算コードがＯＰ５というある特定の値を有するとき、命令３３は、ビットストリームＴＤＩをチップ１０ａ内のデータレジスタの中に書き込ませると同時に、命令３３はチップ１０ａ内のデータレジスタの内容を読み取らせ、命令の中のデータストリームと選択的に比較させる。演算コードがＯＰ６という別の特定の値を有するときには、命令３３は、ＴＤＩビットストリームをチップ１０ａの中の命令レジスタの中に書き込ませると同時に、命令３３は、チップ１０ａの命令レジスタのコンテンツを読み取らせ、命令の中のデータストリームと選択的に比較させる。
【００４０】
演算コードＯＰ５とＯＰ６の両方について、ＴＤＩビットストリームは、命令３３内で指定され、２つのそれ以外のビットストリームＥＴＤ０とＭＡＳＫも比較動作で使用するために命令の中で指定される。これらの３つのビットストリームはワードＷ０の直後に開始し、それらは図３に図示されるようにワード単位でインタリーブされる。ＭＡＳＫビットストリームのｉ番目のビットが「１」である場合には、チップから読み出されるＩ番目のビットが比較動作に参加し、チップからのその特定のビットはＥＴＤＯビットストリームのＩ番目のビットに比較される。３つのビットストリームＴＤＩ、ＥＴＤＯ、及びＭＡＳＫのそれぞれは長さが可変である。それらのビットストリームのそれぞれでのビットの総数は（ＷＣＮＴ−１）（Ｘ）＋（ＢＣＮＴ）である。ＴＤＩビットストリーム、ＥＴＤＯビットストリーム及びＭＡＳＫビットストリームを指定しない最後の３つのワード内のビットのすべてが未使用である。
【００４１】
パターン生成器１２が命令３１、３２、及び３３のそれぞれを実行するとき、それは、図３の命令の中で述べられない追加のビットストリームも生成する。その追加のビットストリームは、チップ１０ａを、データレジスタを選択的に読み取り、データレジスタを書き込み、命令レジスタを読み取るか、あるいは命令レジスタを書き込む特定の状態にするＴＭＳと呼ばれる制御信号として使用される。各ＴＭＳビットストリームは、命令レジスタまたはデータレジスタのどちらかが使用される必要があると指定する演算コードＯＰ１〜ＯＰ６、及びＴＭＳ信号内のビット数を決定するＷＣＮＴカウント及びＢＣＮＴカウントに応じて生成される。
【００４２】
図４は、３種類の命令３１、３２及び３３が、パターン生成器１２用の各メモリ１３内の異なるシーケンスにどのようにして記憶されるのかの例を示す。図４の例では、命令のシーケンスはＩ（ｋ）、Ｉ（ｋ＋１）．．．等である。命令Ｉ（ｋ＋１）とＩ（ｋ＋３）は、第１種類３１であり、命令Ｉ（ｋ）とＩ（ｋ＋４）は第２種類であり、命令Ｉ（ｋ＋２）とＩ（ｋ＋５）は第３種類３３である。
【００４３】
第１種類の各命令３１は、ＯＰ１またはＯＰ２という演算コードで特定され、それは単一の可変長ビットストリームＴＤＩを指定する。第２種類の各命令３２はＯＰ３またはＯＰ４という演算コードによって特定され、それは２つの可変長ビットストリームＥＴＤＯとＭＡＳＫを指定する。第３種類の各命令３３はＯＰ５またはＯＰ６という演算コードによって特定され、それは３つの可変長ビットストリームＴＤＩ、ＥＴＤＯ及びＭＡＳＫを指定する。使用されないビットのそれぞれの系列（ＮＵ）は、各直列ビットストリームの直後に開始し、ワード境界で終了し、それがシーケンス内の次の命令をつねにワード境界で開始できるようにする。
【００４４】
ここで図５を見ると、各パターン生成器１２内にある回路構成要素の詳細が説明されるだろう。その回路構成要素は、順次状態機械４０、カウンタ４１、７台のレジスタ４２−４８のセット、マルチプレクサ４９、及び発振器５０を含む。それらの構成部品４０〜５０のすべてが、図示されているように互いに相互接続されている。
【００４５】
レジスタ４２〜４８のそれぞれだけではなく、カウンタ４１もデータ入力Ｄとクロック入力Ｃのセットを有する。入力Ｄに関するデータをカウンタまたはある特定のレジスタに記憶するために、状態機械４０はクロックパルスをクロック入力Ｃに送信する。カウンタ４２は、カウントダウン入力ＣＤも有し、該カウンタは、パルスがＣＤ入力で受信されるとその記憶されているカウントを１減分する。
【００４６】
動作中、構成部品４１〜４８のそれぞれは、以下の情報を記憶するために状態機械４０によって使用される。レジスタ４２は、図３の命令３１、３２、及び３３の第１ワードＷ０で発生する演算コードＯＰを記憶する。カウンタ４１は、ワードカウントＷＣＮＴを記憶し、レジスタ４３はビットカウントＢＣＮＴを記憶し、それは図３の命令のそれぞれの第１ワードＷ０で発生する。
【００４７】
レジスタ４４は、図３の命令３１と３３で発生するビットストリームＴＤＩの１ワードを記憶する。レジスタ４５は、図３の命令３２と３３で発生するビットストリームＥＴＤＯの１つのワードを記憶する。そして、レジスタ４６は、図３の命令３２と３３で発生するビットストリームＭＡＳＫの１つのワードを記憶する。
【００４８】
レジスタ４７は、図３の命令の実行中にパターン生成器１２によって内部で生成される追加のビットストリームＴＭＳの１つのワードを記憶する。レジスタ４８は、まもなく説明されるだろう方法でパターン生成器１２とチップドライバ回路１１の両方によって内部で使用される多様な制御ビットを記憶する汎用目的レジスタである。
【００４９】
図３の命令の１つの実行の開始時に、パターン生成器１２は、メモリ１３から命令の第１ワードＷ０を読み取る。その読み取り動作を実行するために、状態機械４０は、図１に示されるメモリ１３のポート１３ａに移動するアドレス線路４０ａの集合でメモリアドレスＭＡＤＤＲを送信する。応じて、メモリ１３のポート１３ａは、データ線路４０ｂの集合上でのめ森データＭＤＡＴＡとしてアドレス指定されるワードを状態機械４０に送信する。それから、状態機械４０は、レジスタ４２にＯＰ符号を記憶するため、カウンタ４１にワードカウントＷＣＮＴを記憶するため、及びレジスタ４３にビットカウントＢＣＮＴを記憶するために３つのクロック線路４０ｃ〜４０ｅでクロックパルスを送信する。
【００５０】
それ以降、状態機械４０は、レジスタ４２内にあるＯＰ符号を調べる。レジスタ４２内のＯＰ符号が、命令がＴＤＩデータストリームを含む種類であることを示す場合には、そのデータストリームの第１ワードはメモリ１３から読み出され、レジスタ４４に記憶される。レジスタ４２内のＯＰ符号が、命令がＥＴＤＯデータストリームを含む型であることを示す場合、そのデータストリームの第１ワードがメモリ１３から読み出され、レジスタ４５に記憶される。レジスタ４２内のＯＰ符号が、ＭＡＳＫデータストリームを含む型であることを示す場合には、ＭＡＳＫデータストリームの第１ワードはメモリ１３から読み取られ、レジスタ４６に記憶される。
【００５１】
前記データストリームワードは、アドレス線路４０ａでメモリアドレスを連続して送信し、データ回線４０ｂでメモリ１３からアドレス指定されたワードを受信することによって、パターン生成器状態機械４０を介して一度に１つ得られる。メモリ１３からのそれぞれの受信されたワードは、クロック回線４０ｆ、４０ｇまたは４０ｈの１つでクロックパルスを送信することによって、適切なレジスタ４４、４５または４６に記憶される。
【００５２】
前記動作に続いて、状態機械４０は、前述された追加のビットストリームＴＭＳの１つのワードを内部で生成する。ＴＭＳビットストリームのその内部で生成されたワードは、信号線路４０ｉの集合で送信され、それはクロック線路４０ｊでクロックパルスによってＴＭＳレジスタ４７にロードされる。
【００５３】
それ以降、状態機械４０は、ＪＤＡＴＡと呼ばれるデータ信号を搬送するデータ線路５５の集合に、過去にロードされたレジスタ４４〜４７の出力を連続して渡すためにマルチプレクサ４９を使用する。マルチプレクサ４９を通してある特定のレジスタの出力を渡すために、状態機械４０は、マルチプレクサ４９につながる制御線路４０ｋの集合で、ＳＥＬ（ｉ）と呼ばれる信号を生成し、制御する。
【００５４】
レジスタの出力がＪＤＡＴＡ線路５５で送信される間、状態機械４０は、アドレス線路５６の集合でＪＡＤＤＲと呼ばれるアドレス信号も生成し、それらのアドレス信号がＪＤＡＴＡ信号の目的地を決定する。ＪＤＡＴＡ信号及びＪＡＤＤＲ信号が送信されているときを示すために、状態機械４０は、クロック線路５７上でＪＳＴＲＯＳＥと呼ばれるパルスを送信する。また、状態機械４０は、クロック線路５８でＢＵＳＣＫと呼ばれる自由に動作するクロックを送信する。線路５５〜５８のすべてが、パターン生成器１２を選択可能な数のチップドライバ回路１１に接続する図１と図２に示されているバス１２ａをともに構成する。
【００５５】
次に、図６に関して、チップドライバ回路１１のそれぞれの中にある回路構成要素の詳細が説明されるだろう。その回路構成要素は、アドレスデコーダ６０、５台のレジスタ６１〜６５のセット、４つの並列から直列へのシフトレジスタ６６−６９、シフト制御回路７０、及び可変遅延線路７１を含む。構成部品６０〜７１のすべては、図６に示されるように互いに相互接続される。
【００５６】
レジスタ６１〜６５のそれぞれは、データ入力Ｄ、及びイネーブル入力Ｅ、及びクロック入力Ｃの集合を有する。データ入力Ｄは図５のパターン生成器からデータ信号ＪＤＡＴＡを受信し、クロック入力Ｃはパターン生成器からＪＳＴＲＯＢＥクロックパルスを受信する。ＪＤＡＴＡ信号を特定のレジスタ６１〜６５の中に記憶するために、別個のイネーブル信号Ｅ１〜Ｅ６がそのレジスタのイネーブル入力Ｅに送信される。
【００５７】
レジスタ６１〜６５用のイネーブル信号のすべては、信号回線６０ａ−６０ｅの集合でアドレス復号回路６０によって生成される。イネーブル信号Ｅ１はレジスタ６１に送信される。イネーブル信号Ｅ２はレジスタ６２に送信される等である。これらのイネーブル信号Ｅ１〜Ｅ５は、ＪＡＤＤＲアドレス線路５６の特定のアドレスを復号することによってアドレスデコーダ６０内に生成される。
【００５８】
動作中、図５のパターン生成器状態機械４０は、レジスタ６２〜６５が以下の情報を記憶するように、ＪＡＤＤＲ信号、ＪＤＡＴＡ信号及びＪＳＴＲＯＢＥ信号を送信する。ＭＡＳＫビットストリームの１つのワードはレジスタ６２に記憶され、そのワードはマルチプレクサ５０を通って図５のレジスタ４７から送信される。ＴＤＩビットストリームの１つのワードはレジスタ６３に記憶され、そのワードはマルチプレクサ５０を通って図５のレジスタ４４から送信される。ＥＴＤＯビットストリームの１つのワードは、レジスタ６４に記憶され、そのワードはマルチプレクサ５０を通って図５のレジスタ４５から送信される。ＴＭＳビットストリームの１つのワードはレジスタ６５に記憶され、そのワードはマルチプレクサ５０を通って図５のレジスタ４７から送信される。
【００５９】
レジスタ６２〜６５のそれぞれは、並列／直列シフトレジスタ６６−６９の１つでデータ入力Ｄにそれぞれ結合される。それらの並列／直列シフトレジスタは、ＬＯＡＤ入力Ｌ及びＣＬＯＣＫ入力Ｃも有する。クロック入力ＣがＳＥＲＩＡＬＣＫクロック信号の立ち上がり縁を受信するときに入力ＬでのＬＯＡＤ信号が「１」状態にある場合、データ入力信号のすべてが並列／直列シフトレジスタ６６〜６９に記憶される。それ以外の場合、ＳＥＲＩＡＬＣＫクロック信号の立ち上がり縁が発生するときにＬＯＡＤ信号が「０」状態にある場合、レジスタ６６〜６９のすべては、それらが記憶するデータの１ビットを外にシフトする（ｓｈｉｆｔ  ｏｕｔ）。
【００６０】
ＬＯＡＤ信号及びＳＥＲＩＡＬＣＫ信号の両方とも、シフト制御回路７０によって生成され、それはＴＭＳビットストリームのワードをレジスタ６５の中にロードできるようにするイネーブル信号ｅ５に応じて動作する。イネーブル信号Ｅ５によってＴＭＳレジスタがロードされた後、シフト制御回路７０は線路７０ａでＳＥＲＩＡＬＣＫクロック信号の生成を開始する。これは、クロック線路５８からクロック線路７０ａにバス黒く信号ＢＵＳＣＫの動作をゲート制御することによって行われる。
【００６１】
ＳＥＲＩＡＬＣＫクロック信号の第１サイクルの場合、シフト制御回路７０は、「１」としてのＬＯＡＤ信号を直列／並列レジスタ６６〜６９のすべてに送信し、それによりレジスタ６６〜６９は、レジスタ６２〜６５に保持されるビットストリームの１つのワードを記憶する。それから、シフト制御回路７０はＬＯＡＤ信号を「０」として生成し、それにより並列／直列レジスタ６６〜６９のそれぞれに、それらが記憶していたビットストリームのワードを外にシフトさせる。
【００６２】
レジスタ６６〜６９からのそれぞれのビットはＳＥＲＩＡＬＣＫクロックと同期してシフトされる。ＭＡＳＫビットストリームは信号線路６６ａにシフトされ、ＴＤＩビットストリームは信号線路６７ａにシフトされ、ＥＴＤＯビットストリームは信号線路６８ａにシフトされ、ＴＭＳビットストリームは信号線路６９ａにシフトされる。このシフトは、シフトレジスタ６６〜６９のそれぞれが空にされるまでＬＯＡＤ信号の「０」状態に応じて続行する。
【００６３】
ビットストリームＭＡＳＫ、ＴＤＩ、ＥＴＤＯ及びＴＭＳのどれか１つが第２ワードの中に拡張すると、それらのワードは、前記シフトが発生している間に、パターン生成器状態機械４０によってメモリ１３から読み取られ、レジスタ６２〜６５の中にロードされる。そのケースでは、シフト制御回路７０は、イネーブル信号Ｅ５が再びＴＭＳレジスタ６５に２度目に送信されたことを思い出すだろう。
【００６４】
後に、シフトレジスタ６６〜６９が空になると、シフト制御回路７０は、第２イネーブル信号Ｅ５が送信されたかどうかを確かめるためにチェックするだろう。送信されていた場合、シフト制御回路７０は、再び、直列／並列レジスタ６６〜６９のすべてにＬＯＡＤ信号を「１」として送信し、それによりレジスタ６６〜６９は、レジスタ６２〜６５に保持されるビットストリームの第２ワードを記憶するだろう。それから、シフト制御回路７０は、並列／直列レジスタ６６〜６９が、それらが記憶しているビットストリームの第２のワードを外にシフトするまでＬＯＡＤ信号を「０」として生成するだろう。
【００６５】
前記ロード及びシフトは、メモリ１３の中の命令について直列ビットストリームの終わりに達するまで続行する。それから、ビットストリームの最後のビットがレジスタ６６〜６９からシフトされると、シフト制御回路７０はクロック線路７０ａでクロック信号ＳＥＲＩＡＬＣＫを生成するのを停止する。
【００６６】
前述された動作のすべてに加えて、図６のチップドライバ回路は、クロック線路７１ａでクロック信号ＴＣＫも生成する。このＴＣＫクロック信号は、線路５３上のＢＵＳＣＫ信号の遅延されたレプリカであり、それは可変遅延回路７１によって生成される。可変遅延回路を通る遅延の量は、レジスタ６１に記憶される信号線路６１ａの制御信号によって選択される。
【００６７】
次に図７を参照すると、それは図３の各命令が図５のパターン生成器及び図６のチップドライバ回路によって実行される全体的なシーケンスを描く。当初、パターン生成器状態機械４０は、それがそのメモリ１３から命令の第１ワードＷ０を読み出す状態Ｓ１にある。それ以降、状態Ｓ２では、状態機械４０が、それが実行している命令の種類を決定するためにレジスタ４２内の演算コードを調べる。
【００６８】
命令が第１種類３１または第３種類３３である場合、状態機械４０はＴＤＩビットストリームの１つのワードを読み取り、これは状態Ｓ３で発生する。そのワードは、状態機械４０によってレジスタ４４に記憶される。
【００６９】
命令が第２種類３２または第３種類３３である場合、状態機械４０はＥＴＤＯビットストリームの１つのワードを読み取り、これは状態Ｓ４で発生する。ＥＴＤＯビットストリームのそのワードはレジスタ４５に記憶される。
【００７０】
また、命令が第２種類３２または第３種類３３である場合には、状態機械４０は、ＭＡＳＫビットストリームの１つのワードを読み取り、これは状態Ｓ５で発生する。ＭＡＳＫビットストリームのそのワードは、状態機械４０によってレジスタ４６に記憶される。
【００７１】
それ以降、状態機械４０は、ＴＭＳビットストリームの１つのワードを内部で生成し、これが状態Ｓ６で発生する。ＴＭＳビットストリームのそのワードは、状態機械４０によってレジスタ４７に記憶される。
【００７２】
次に状態Ｓ７では、状態機械４０が、それが第１種類命令３１または第３種類命令３３を実行している場合には、ＴＤＩビットストリームの１つのワードを一斉送信する。ＴＤＩビットストリームのこのワードは、レジスタ４４からマルチプレクサ４９を通って、パターン生成器に接続される各チップドライバ回路のレジスタ６３の中に送信される。
【００７３】
次に状態Ｓ８では、状態機械４０が、それが第２種類命令３２または第３種類命令３３を実行している場合には、ＥＴＤＯビットストリームの１つのワードを一斉送信する。ＥＴＤＯビットストリームのこのワードは、レジスタ４５からマルチプレクサ４９を通って、パターン生成器に接続される各チップドライバ回路のレジスタ６４の中に送信される。
【００７４】
次に状態Ｓ９では、状態機械４０は、それが第２種類命令３２または第３種類命令３３を実行している場合には、ＭＡＳＫビットストリームの１つのワードを一斉送信する。ＭＡＳＫビットストリームのこのワードは、マルチプレクサ４９を通ってレジスタ４６から、パターン生成機に接続される各チップドライバ回路のレジスタ６２の中に送信される。
【００７５】
次に状態Ｓ１０では、状態機械４０がＴＭＳビットストリームの１つのワードを一斉送信する。ＴＭＳビットストリームのこのワードはレジスタ４７からマルチプレクサ４９を通って、パターン生成器に接続される各チップドライバ回路のレジスタ６５の中に送信される。
【００７６】
それから状態Ｓ１１では、状態機械４０は、カウンタ４１内のワードカウントＷＣＮＴを１減ビンし、結果がゼロであるかどうかを確かめるためにチェックする。結果がゼロではない場合には、状態Ｓ３〜Ｓ１０での動作のすべてが繰り返される。それ以外の場合、結果がゼロである場合には、状態機械４０は状態Ｓ１になることによって次の命令の実行を開始する。
【００７７】
状態機械４０が状態Ｓ１０のＴＭＳビットストリームのワードを一斉送信するたびに、そのイベントは、パターン生成器に接続される各チップドライバ回路内のシフト制御回路７０によって思い出される。それから並列／直列シフトレジスタ６６〜６９が空である場合には、それらは保持レジスタ６２〜６５の内容をロードされる。これは、チップドライバ回路が状態Ｓ２１にあるときに発生する。
【００７８】
それ以降、並列／直列シフトレジスタ６６〜６９のコンテンツが信号線路６６ａ〜６９ａにシフトされる。それは、チップドライバ回路が状態Ｓ２２にあるときに発生する。それから、シフトレジスタ６６〜６９の最後のビットが外にシフトされているときには、シフト制御回路７０は、レジスタ６５がＴＭＳビットストリームの別のワードをロードされたかどうかを確かめるためにチェックする。ロードされている場合、状態Ｓ２１とＳ２２のシフト動作が繰り返される。
【００７９】
ＴＤＩ、ＥＴＤ０、ＭＡＳＫ及びＴＭＳのビットストリームの長さが数ワードであるときには、チップドライバ回路１１内の状態Ｓ２１とＳ２２がパターン生成器１２の状態Ｓ３〜Ｓ１１と同時に発生する。その同時動作のために、チップドライバ回路１１及びパターン生成機１２は、チップドライバ回路が、パターン生成器がビットストリームの次のワードを読み取り、一斉送信する間にビットストリームの１つのワードからビットをシフトする多段パイプラインとしての役割を果たす。
【００８０】
また、パターン生成器状態機械４０が次の命令の実行を開始するとき、チップドライバ回路１１は、状態Ｓ２２で、並列／直列シフトレジスタ６６〜６９に残るあらゆるビットをシフトするために状態Ｓ２２で続行する。その同時動作のため、チップドライバ回路１１およびパターン生成器１２は、再び、チップドライバ回路が、パターン生成器が次の命令のワードＷ０を読み取り、復号している間に、１つの命令のビットストリーム内でビットをシフトする多段パイプラインとしての役割を果たす。
【００８１】
ここで図８を見ると、それは、各チップドライバ回路が試験される集積回路チップとどのようにして相互結合されるのかに関する追加の詳細を示す。図８では、参照番号１０は、図１と図２に示される同じチップアセンブリを特定し、参照番号１０ａは、試験されなければならないアセンブリ１０の中でチップを特定する。
【００８２】
アセンブリ１０の中で試験されなければならない各チップ１０ａについて、１台の受信機８５を加えた４台の送信機８１〜８４の別個の集合がチップドライバ回路１１で提供される。各送信機８１は、線路７１ａから別個のチップ１０ａにクロック信号ＴＣＫを送信する。各送信機８２はビットストリームＴＤＩを線路６７ａから別個のチップ１０ａに送信する。各送信機８３は、線路６９ａから別個のチップ１０ａにビットストリームＴＭＳを送信する。そして、各送信機８４は、図９と図１０とともに後に後述されるだろうそれぞれの高周波クロックＨＦＣＫ（ｉ）を、別個のチップ１０ａに送信する。
【００８３】
送信機８１〜８４から受信される信号に応じて、アセンブリ１０の中のそれぞれのチップ１０ａが、ＴＤＯと呼ばれる別個の出力ビットストリームを生成する。そのＴＤＯビットストリームは、各チップ１０ａから、チップドライバ回路上の別個の受信機８５に送信される。受信機８５から、ＴＤ０ビットストリームのすべてが、図８に図示されるチップドライバ回路の残りの構成部品９０〜９８によって並列で処理される。
【００８４】
図８の構成部品９０は、排他的論理和ゲートであり、構成部品９１は論理積ゲートであり、構成部品９２はフリップフロップである。構成部品９０〜９２の別個の集合が受信機８５のそれぞれに提供される。図８の構成部品９３はマルチプレクサであり、構成部品９４はデコーダ回路であり、構成部品９５は可変遅延回路であり、構成部品９６はレジスタであり、構成部品９７はデコーダ回路であり、構成部品９８はレジスタであり、構成部品９９はデコーダ回路である。
【００８５】
動作中、ビットストリームＥＴＤＯ、ＭＡＳＫおよびＴＣＫは可変遅延回路９５を通って送信され、それによりそれぞれＤＥＴＤＯ、ＤＭＡＳＫ、およびＤＴＣＫと呼ばれる３つの対応する遅延されたビットストリームを生成する。可変遅延回路９５を通る遅延の量は、レジスタ９６の出力によって選択され、その遅延が、ＴＤＯビットストリームを生成する各チップ１０ａ内で発生する遅延を補償する。ある特定の遅延を選択するために、レジスタ９６は、デコーダ回路９７が所定のＪＡＤＲアドレスを検出するときにＪＤＡＴＡ信号をロードされる。
【００８６】
遅延回路９５から、遅延ビットストリームＤＥＴＤＯは、それが受信機８５のすべてから生じるＴＤＯビットストリームに比較される排他的論理和ゲート９０のすべてに送信される。ＤＥＴＤＯビットストリーム内の任意のビットとＴＤＯ（ｉ）ビットストリーム内の対応するビットの間でｍｉｓｃｏｍｐａｒｅが発生すると、ｍｉｓｃｏｍｐａｒｅが発生する排他的論理和ゲート９０は「１」状態で出力信号ＥＲＡ（Ｉ）を生成するだろう。
【００８７】
排他的論理和ゲート９０からのエラー信号ＥＲＡ（ｉ）のそれぞれが、論理積ゲート９１の別個の１つに送信され、それらの論理積ゲートは、その他の入力信号も受信する。一方のこのような入力信号は遅延されたビットストリームＤＭＡＳＫであり、他方の入力信号はレジスタ９８からの別個のイネーブル信号ＥＮ（Ｉ）である。エラー信号ＥＲＡ（ｉ）がＴＤＯ（ｉ）ビットストリーム内のある特定のビットについて「１」であり、ＤＭＡＳＫ信号の対応するビットも「１」であり、イネーブル信号ＥＮ（ｉ）も「１」である場合には、Ｉ番目の論理積ゲートからの出力信号ＥＲＢ（Ｉ）は「１」である。
【００８８】
ビットストリームＴＤＯ（ｉ）内の任意の１つの特定のビットでのｍｉｓｃｏｍｐａｒｅを無視するために、ＤＭＡＳビットストリームの対応するビットは「０」に設定される。また、ビットストリームＴＤＯ（Ｉ）全体が、対応するイネーブル信号ＥＮ（ｉ）を「０」に設定することによって無視することができる。
【００８９】
論理積ゲート９１の任意の１つからのエラー信号ＥＲＢ（ｉ）が「１」になると、それにより、対応するフリップフロップ９２が設定されることになる。設定されるようになる各フリップフロップ９２は、それ以降、それがパターン生成器１２によって読み取られ、リセットされるまで設定されたままとなるだろう。
【００９０】
エラーフリップフロップ９２を読み取るために、パターン生成器１２はある特定のＪＡＤＲアドレスをデコーダ回路９４に送信し、応じてデコーダ回路９４が、マルチプレクサ９３を通してＪＤＡＴＡ線路５０上にフリップフロップ９のすべてからのエラー信号を渡す出力９４ａで信号を生成する。それからパターン生成器１２は、デコーダ回路９４に、フリップフロップ９２のすべてをリセットする出力９４ｂで信号を生成させる。
【００９１】
次に図９に関して、チップドライバ回路のそれぞれの中に含まれる複数の追加回路構成部品１００〜１０９が説明されるだろう。これらの構成部品１００〜１０９のすべては、試験されているチップ１０ａごとに別個の高周波クロック信号ＨＦＣＫ（ｉ）を生成するために相互作用する。
【００９２】
図９では、構成部品１００は自由継続高周波発振器である。構成部品１０１はデコーダ回路である。構成部品１０２はレジスタであり、構成部品１０３は、選択可能な整数Ｎで除算する割り算器回路である。構成部品１０４は順次状態機械である。構成部品１０５は、状態機械１０４のためにカウントを保持するカウンタ回路であり、構成部品１０６は、状態機械１０４について制御信号を保持するメモリである。構成部品１０７はフリップフロップである。構成部品１０８は論理和ゲートであり、構成部品１０９は送信機である。構成部品１０７〜１０９の別個の集合１１０（ｉ）は、生成される高周波クロック信号ＨＦＣＫ（ｉ）ごとに提供される。
【００９３】
動作中、発振器１００は、単一高周波で自由継続クロックＦＲＣＫ１を生成する。そのクロック信号ＦＲＣＫ１は、それが選択可能な整数Ｎ分、周波数で削減される割り算器回路１０３に送信される。それから、割り算器１０３からの出力クロックＦＲＣＫ２が、回路１０７〜１０９の各集合１０（ｉ）に送信される。
【００９４】
回路１１０（ｉ）の各集合は、自由継続クロックＦＲＣＫ２の選択可能なサイクルを渡すことによって、高周波クロック信号ＨＦＣＫ（ｉ）を生成する。渡されるそれらのサイクルは、２つの制御信号ＳＴＡＲＴ（ｉ）とＳＴＯＰ（ｉ）によって選択され、それらは順次状態機械１０４によって生成される。
【００９５】
信号ＳＴＯＰ（ｉ）が「１」として生成されるとき、フリップフロップ１０７は自由継続クロック信号ＦＲＣｋ２と同期してセットする。フリップフロップ１０７のそのセット状態により、論理積ゲート１０８の出力は絶えず「１」を生成する。そしてこのようにして、高周波クロック信号ＨＦＣＫ（ｉ）が「１」の状態で停止されるだろう。
【００９６】
フリップフロップ１０７をリセットするために、状態機械１０４がＳＴＯＰ（ｉ）信号を「０」として生成し、それはＳＴＡＲＴ（ｉ）信号を「１」として生成する。フリップフロップのそのリセット状態が、論理積ゲート１０８にクロック信号ＦＲＣＫ２を渡させ、論理積ゲート１０８の出力から、高周波クロックＦＲＣＫ２は、それがクロック信号ＨＦＣＫ（ｉ）になる送信機１０９を通して渡す。
【００９７】
回路１１０（ｉ）の集合ごとに制御信号ＳＴＯＰ（ｉ）とＳＴＡＲＴ（ｉ）を生成するために、状態機械１０４は、制御メモリ１０６に記憶される多様な制御ビットを読み取る。それらの制御ビットの例は、図１０の「１」と「０」に示される。制御ビットの１つの集合を読み取るために、状態機械１０４は、アドレス線路１０４ａのアドレスをメモリ１０６に送信し、応じてメモリが制御ビットのアドレス指定された集合を、信号線路１０４ｂ上の状態機械１０４に送り返す。
【００９８】
図１０は、制御ビットの各集合がビットＢ１〜Ｂ１６として特定される１６個のビットから成り立つ例を示す。第１の１４個のビットＢ１〜Ｂ１４のそれぞれが、回路１１０（ｉ）のある特定の回路の動作を制御する。ビットＢ１は回路１１０（１）を制御する。ビットＢ２は回路１１０（２）を制御する等である。残りのビットＢ１５とＢ１６は、状態機械１０４をまたは自由継続モードのどちらかで動作させるモード制御ビットである。
【００９９】
状態機械１０４がＪＤＡＴＡ線路上のある特定のメモリアドレスとともにデコーダ１０１からＳＴＡＲＴコマンドを送信されると、それはそのアドレスにあるメモリ１０６から制御ビットの集合を読み取るだろう。状態機械１０４が、ビットＢ１５が「１」である制御ビットの集合を読み取る場合には、状態機械がシーケンスモードで動作する。そのモードでは、状態機械１０４は、それがメモリ１０６に送信するアドレスを連続して増分し、応答して状態機械が制御信号のアドレス指定された集合を受信する。このシーケンス動作モードは、制御ビットの集合が読み取られるまで続行し、そこではビットＢ１６は「１」であり、それからシーケンス動作モードが停止する。
【０１００】
シーケンスモードで読み取られる制御信号の集合ごとに、状態機械１０４は、制御ビットＢ１〜Ｂ１４を調べる。「１」であるビットＢ１〜Ｂ１４のそれぞれが状態機械１０４に、回路１１０（ｉ）が、カウンタ１０５によって指定されるサイクルの数、クロックＦＲＣＫ２を渡すように、ＳＴＯＰ（ｉ）信号およびＳＴＡＲＴ（Ｉ）信号を生成させる。
【０１０１】
図１０では、アドレス「Ａ」によって読み取られる制御ビットの集合がビットＢ１〜Ｂ４を「１」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械１０４は、回路１１０（１）〜１１０（４）のそれぞれに、カウンタ１０５によって指定されるサイクルの数、クロック信号ＦＲＣＫ２を渡させる。
【０１０２】
次に、アドレス「Ａ＋１」によって読み取られる制御ビットの集合は、ビットＢ５〜Ｂ７を「１」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械１０４は、回路１０５（５）〜１１０（７）のそれぞれに、カウンタ１０５によって指定されるサイクルの数、クロック信号ＦＲＣＫ２を渡させる。
【０１０３】
次に、アドレス「Ａ＋２」によって読み取られる制御ビットの集合は、ビットＢ８〜Ｂ１１を「１」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械１０４は、回路１１０（８）〜１１０（１）のそれぞれに、カウンタ１０５によって指定されるサイクルの数、クロック信号ＦＲＣＫ２を渡させる。
【０１０４】
最後に、アドレス「Ａ＋３」によって読み取られる制御ビットの集合は、ビットＢ１２〜Ｂ１４を「１」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械１０４は、回路１１０（１２）〜１１０（４）のそれぞれに、カウンタ１０５によって指定されるサイクルの数、クロック信号ＦＲＣＫ２を渡させる。
【０１０５】
比較によって、状態機械１０４がビットＢ１５が「０」である制御ビットの集合を読み取る場合には、状態機械は自由継続モードで動作する。そのモードでは、状態機械１０４は、それがメモリ１０６に送信するアドレスを増分しないが、代わりに、状態機械は、それが読み取った制御信号の１つの集合だけで連続して動作する。
【０１０６】
制御信号のその単一の集合を使用して、状態機械１０４は、再び制御ビットＢ１〜Ｂ１４を調べる。「１」であるビットＢ１〜Ｂ１４のそれぞれが、回路１１０（ｉ）がクロックＦＲＣＫ２を連続して渡すように、状態機械１０４にＳＴＯＰ（ｉ）信号およびＳＴＡＲＴ（ｉ）信号を生成させる。この運転の自由継続モードを終了する場合には、状態機械１０４は、デコーダ１０１から停止コマンドを送信される必要があり、そのコマンドは、デコーダ１０１がある特定のＪＡＤＲアドレスを受け取るときに送信される。
【０１０７】
図１０では、アドレス「Ａ＋４」によって読み取られる制御ビットの集合はビットＢ１５を「０」に設定させ、それにより状態機械１０４が自由継続モードに入る。また、アドレス「Ａ＋４」にある制御ビットの集合では、ビットＢ１〜Ｂ１４のすべてが「１」に設定されるため、応じて、状態機械１０４は、回路１１０（１）〜１１０（１４）のそれぞれに、ＳＴＯＰコマンドが受け取られるまでクロック信号ＦＲＣＫ２を連続して渡させる。
【０１０８】
図１０においても同様に、アドレス「Ａ＋５」によって読み取られる制御ビットの集合は、Ｂ１５を「０」に設定させ、それにより状態機械１０４は自由継続モードに入る。しかしながら、アドレス「Ａ＋５」での制御ビットの集合では、ビットＢ２だけが「１」に設定されるため、応じて、状態機械１０４は回路１１０（２）だけにクロック信号ＦＲＣＫ２を渡させるだろう。
【０１０９】
図９および図１０の回路構成要素で達成される１つの特定の特徴とは、それがチップ汗名振１０の中のチップ１０ａを１つの集合として同時に、あるいは選択可能な部分集合で連続的に試験できるようにする点である。この特徴は、試験されているチップ１０ａが、それらが高周波クロック信号ＨＦＣＫ（ｉ）を受信するときに大量の電力を消散するが、それらが高周波クロック信号を受信しないときには実質的にはより少ない電力を消散する型であるときに望ましい。このようなチップは、例えばＣＭＯＳマイクロプロセッサチップおよびＣＭＯＳメモリチップを含む。高周波クロック信号ＨＦＣＫ（ｉ）を同時に受信するチップ１０ａの数を制限することによって、チップ１０ａのすべてで消散される電力の総量は、チップのすべてが高周波クロック信号を受信したならば、それ以外の場合に超えられるだろう任意の所定の電力制限以下に保つことができる。
【０１１０】
図９と図１０の回路構成要素で達成される別の特定の特徴とは、それがビットの一意のストリームをチップ１０ａのそれぞれに別個に書き込むことができるようにするという点である。それは、攻守はクロック信号ＨＦＣＫ（ｉ）を、一度に１つづつチップ１０ａのそれぞれに送信させるメモリ１０６内に制御ビットを記憶することによって達成される。それから、ある特定的なチップが高周波クロック信号ＨＦＣＫ（ｉ）を受信しているときには、そのチップに書き込まれなければならないデータは、チップ１０ａのすべてに対するＴＤＩビットストリームとして送信される。この特徴は、シリアルナンバーなどの一定の一意の情報を、試験されているそれぞれのチップ１０ａに買い込むことが必要なときに望ましい。
【０１１１】
ここで図１１を見ると、それは、図３の前述された命令３１、３２、３３とともに、メモリ１３内のチップ試験プログラムに含むことができる３つの追加の命令３４、３５および３６を示す。命令３４は、演算コードＯＰ７、ＪＡＤＲフィールド３４ａ、およびＪＤＡＴＡフィールド３４ｂを含む単一ワードＷ０だけから成り立つ内部制御命令である。命令３４がパターン生成器１２によって実行されるとき、状態機械４０は、ＪＡＤＲ信号線路５６の上にＪＡＤＲフィールド３４ａを送信し、それはＪＤＡＴＡ信号線路５５の上にＪＤＡＴＡフィールド３４ｂを送信する。
【０１１２】
命令３４は、図６のレジスタ６１をロードするために、図１０のレジスタ９６と９８をロードするために、及び図９のレジスタ１０２をロードするために使用できる。また、命令３４は、図８のデコーダ９４にアドレスを送信するため、図９のカウンタにカウントを送信するため、制御ビットの各集合を１０６での制御メモリに書き込むために使用できる。また、命令３４は、デコーダ１０１から状態機械１０４にＳＴＡＲＴコマンドとＳＴＯＰコマンドを送信するために使用することもできる。
【０１１３】
命令３５は、また単一のワードＷ０だけから成り立つ分岐命令である。命令３５は、演算コードＯＰ８、試験条件フィールド３５ａ、及びジャンプアドレスフィールド３５ｂを含む。命令３５がパターン生成器１２によって実行されると、状態機械４０は、試験条件フィールド３５ａによって指定される条件を試験する。その試験された条件が真である場合には、メモリ１３から実行される次の命令は、フィールド３５ｂでジャンプアドレスを差し引いた分岐命令３５のアドレスで発生する。
【０１１４】
命令３６は、やはり単一ワードＷ０から成り立つメモリ書き込み命令である。命令３６は、メモリ書き込み命令としてそれを特定する演算コードＯＰ９を含み、それはメモリアドレスフィールド３６ａを含む。命令３６がパターン生成器１２によって実行されると、エラー信号が図８のマルチプレクサ９３から読み取られ、メモリアドレスフィールド３６ａでメモリ１３の中に書き込まれる。
【０１１５】
集積回路チップを試験するベースシステムの１つの好ましい実施態様がここで詳細に説明された。ただし、さらに、多様な変更及び修正をこの実施態様の詳細に加えることができる。
【０１１６】
例えば、図２は、チップ試験システムが、合計１４のスロットを有するラック２０に収納される１つの例だけを示す。しかし、改良策として、ラック２０は任意の数のスロットを有することができ、複数のラックがある場合がある。また、各ラックのスロットは、そのそれぞれのメモリ１３とともに、チップアセンブリ１０、ドライバ回路１１、及びパターン生成器１２の任意の組み合わせで充填することができる。
【０１１７】
同様に、図１は、各チップアセンブリ１０が、試験されなければならない集積回路チップ１０ａのうちの４つだけを保持する１つの例だけを示す。しかし、改良策として、各チップアセンブリ１０は、任意の所望される数の集積回路チップ１０ａを保持することができる。
【０１１８】
また、別の改良策として、図１に示されるモジュール１１、１２、１３、及び１４のそれぞれは、任意の種類の回路構成要素から構築できる。例えば、チップドライバ回路１１内の回路構成要素のすべて、及び（図５、図６、図８、図９、及び図１０に詳しく図示されるように）パターン生成器１２内の回路構成要素のすべては、ＴＴＬ回路、ＥＣＬ回路、ＭＯＳ回路、及びＣＭＯＳ回路から構築することができる。同様に、図１の各メモリモジュール１３は、フリップフロップに、またはコンデンサに、または磁気記憶媒体、または光学記憶媒体にデータビットを記憶する、任意の種類のメモリセルから構築することができる。
【０１１９】
同様に、示されているチップ試験システム内にある順次制御回路のそれぞれは、任意の種類の内部構造を有することができる。それらの順次制御回路は、図５のパターン生成器状態機械４０、図６のシフト制御回路７０、及び図９のクロックシーケンス状態機械１０４を含む。パターン生成器状態機械４０の内部構造は、それが図７の状態Ｓ１〜Ｓ１１に従って動作する限り適切である。チップ制御回路構成要素７０の内部構造は、それが図７の状態Ｓ２１〜Ｓ２３に従って動作する限り適切である。そして、図９のクロックシーケンス状態機械１０４の内部構造は、それが、図１０とともに示されるように、シーケンスモード及び自動継続モードで動作するかぎり適切である。
【０１２０】
また、別の改良策として、各メモリモジュール１３からワードとして読み取られるビットの数は任意の所定の数である。図３は、メモリモジュール１３内の各ワードが「Ｘ」個のビットから成り立つことを示す。適切には、Ｘは、１６ビット、３２ビット、４８ビット、６４ビット等バイトの整数である。
【０１２１】
さらに、別の改良策として、試験されるチップ１０ａをある特定の状態にするために生成される各ＴＭＳビットストリームは、ビットの任意の事前に定義された系列である場合がある。各ビットストリームがどのようである必要があるのかは、チップ１０ａの内部構造によって決定される。１つの特定的な例として、ＴＭＳビットストリームは、表１Ａに後述されるように事前に定義し、生成することができる。
【０１２２】
表１Ａ
ＴＭＳヘッダ ヘッダに応えたチップ１０ａの状態
０１００００            命令レジスタを読み取る。
０１１０００            命令レジスタに書き込む。
０１１１００            データレジスタを読み取る。
０１１１１０            データレジスタに書き込む。
【０１２３】
表１Ａの各ＴＭＳヘッダの後には、命令レジスタ／データレジスタから読み取られるＴＤＯビットの数、またはそれらのレジスタに書き込まれるＴＤＩビットの数に等しい、「１」ビットの系列が続く。「１」ビットのその系列の後には、次のＴＭＳヘッダが開始するまで続行する「０」ビットの系列が後に続く。
【０１２４】
別の例として、各ＴＭＳビットストリームを、任意の所望される規格に従って事前に定義し、生成することができる。このような規格は、参照してここに組み込まれるＩＥＥＥ  １１４９．１境界走査規格である。
【０１２５】
さらに、図１２は、それによってビットストリームＴＤＩ、ＥＴＤＯ、ＭＡＳＫ及びＴＭＳの４つすべてがパターン生成器によって送信され、命令３７内で明示的に指定される依然として別の改良策を示す。この命令３７は、第１ワードＷ０のＯＰ１０という演算コードによって特定される。命令３７は、送信されなければならないＴＭＳビットストリームを指定する１つの新しいＴＭＳフィールドを含む。それ以外のフィールドＢＣＮＴ、ＷＣＮＴ、ＴＤＩ、ＥＴＤＯ及びＭＡＳＫのすべては、図３の命令３３について前述された対応するフィールドと同じである。
【０１２６】
命令３７の中でＴＭＳビットストリームを明示的に定義することができることによって、単一パターン生成器１２は、さまざまなＴＭＳビットストリームが同じ状態になることを必要とするさまざまな種類のチップを連続して試験することができる。しかしながら、試験されているチップが、すべて同じＴＭＳ信号シーケンスを使用する場合には、命令３３はメモリ空間を２５％少なく占有するため、命令３３が命令３７より好ましい。
【０１２７】
別の改良策として、ビットストリームＴＤＩ、ＥＴＤＯ、及びＭＡＳＫの任意の１つを、その命令から削除することができる。ＴＤＩビットストリームが削除される場合には、結果は、ＴＭＳビットストリームを所望されるように指定できるという点を除き、前述された図３の命令３２に類似する。ＥＴＤＯビットストリーム及びＭＡＳＫビットストリームが命令３７から削除されると、結果は、ＴＭＳビットストリームが再び所望されるように指定できるという点を除き、前述された図３の命令３１に類似する。
【０１２８】
ここでは本発明に従って、ここではアルゴリズムパターン生成器（ＡＰＧ）と呼ばれる１つまたは複数の追加のモジュールが、図１の前述されたチップ試験システムに組み込まれる、修正されたシステムが説明されるだろう。この修正されたシステムは図１３に示される。そこで、図１のモジュール１０、１１及び１４が繰り返され、モジュール１２と１３がモジュール１２’と１３’に修正され、新規に追加されたＡＰＧモジュールが参照番号２００によって特定される。
【０１２９】
図１３は、別個のＡＰＧモジュール２００が、前述されたモジュール１２’のあらゆるモジュールに別個のインタフェース２０１を介して結合される。しかしながら、代わりに、別個のＡＰＧモジュール２００が、その別個のインタフェース２０１を介して、モジュール１２’の任意の部分集合に結合されてよい。例えば、モジュール１２’のただ１つだけをＡＰＧモジュール２００に結合してよい。
【０１３０】
動作中、各ＡＰＧモジュール２００は、チップアセンブリ１０内にあるチップ１０ａを試験する、ＴＤＩ試験信号、ＥＴＤＯ試験信号、及びＭＡＳＫ試験信号を内部で生成する。それらの試験信号を内部で生成するには、ＡＰＧモジュール２００が、動作の複雑なシーケンスを実行し、それらの動作はメモリ１３’のＡＰＧ命令によって指定される。これらのＡＰＧ命令、及びＡＰＧモジュール２００内でそれらを実行する回路構成要素は、図１３〜図２２のすべてとともにここに詳細に説明されるだろう。
【０１３１】
ＴＤＩ試験信号、ＥＴＤＯ試験信号及びＭＡＳＫ試験信号をＡＰＧモジュール２００内で内部で生成することによって達成される１つの特定の恩恵とは、メモリ１３’で必要とされる記憶の量が大幅に削減されるという点である。例えば、ＴＤＩ試験信号、ＥＴＤＯ試験信号、及びＭＡＳＫ試験信号が合計１０億ビットを含む場合に、ＡＰＧモジュール２００は、試験ビットのすべてを生成するためのＡＰＧ命令を記憶するために、メモリ１３’内で１０００ビット未満の記憶を必要とする可能性がある。比べると、試験ビットのすべてがメモリ１３’で記憶される場合には、１０億ビットの記憶が必要とされるだろう。
【０１３２】
他方、ＴＤＩ試験信号、ＥＴＤＯ試験信号及びＭＡＳＫ試験信号のビット総数が減少するにつれ、図１〜図１２の前述された回路構成要素は、それらの試験信号をチップ１０ａに提示するためのさらに経済的な手段となる傾向がある。その結果、図１３の修正されたシステムは２つの運転モードを有する。第１モードでは、モジュール１２’が、図１〜図１２に関連して前述されたように、試験信号ＴＤＩ、ＥＴＤＯ、及びＭＡＳＫをメモリ１３’から読み取り、それらを直列ビットストリームでチップ１０ａに送信する。第２の運転モードでは、モジュール１２’は、メモリ１３’からＡＰＧ命令を読み取り、それらを実行のためにＡＰＧモジュール２００に渡す。それらのＡＰＧ命令の実行中、ＡＰＧモジュール２００は、ＴＤＩビットストリーム、ＥＴＤＯビットストリーム及びＭＡＳＫビットストリームのワードを連続して生成し、それはそれらをモジュール１２’に送信する。それから、モジュール１２’の中で、試験信号のワードが、チップ１０ａに送信される直列ビットストリームに変換される。
【０１３３】
ここで図１４ａを見ると、ＡＰＧモジュール２００の１つの好ましい内部構造が説明されるだろう。この特定の構造によって、ＡＰＧモジュール２００は、３段パイプラインから構成され、それらの段は参照番号２１０、２２０及び２３０で特定される。第１段２１０は、算術論理段（ＡＬＳ）である。第２段２２０はスクランブラ段であり、第３段２３０がフォーマッタ段である。これらの３つの段２１０、２２０及び２３０は、制御装置２４０の制御下で動作する。
【０１３４】
動作中、ＡＬＳ段２１０及びスクランブラ段２２０及びフォーマッタ段２３０は、同時に実行し、その同時動作中、パイプラインの各段は、データの異なる集合でさまざまな動作を実行する。これらの同時動作が発生できるようにするために、パイプラインの各段には、入力レジスタの独自の集合及び出力レジスタの独自の集合が提供される。
【０１３５】
ＡＬＵ段の入力レジスタのすべては、参照番号２１０ａによって特定される。これらの入力レジスタ２１０ａは３つの集合に区分され、それぞれの集合には４台のレジスタがある。「Ｘ」集合は、レジスタＸＡ、ＸＢ、ＸＣ、及びＸＤから成り立つ。「Ｙ」集合は、レジスタＹＡ、ＹＢ、ＹＣ及びＹＤから成り立ち、「Ｚ」集合は、レジスタＺＡ、ＺＢ、ＺＣ及びＺＤから成り立つ。
【０１３６】
その入力レジスタ２１０ａのコンテンツで開始して、ＡＬＵ段は、多様な算術演算及び論理演算を実行し、その出力レジスタ２１０ａでそれらの演算の結果を記憶する。それらの出力レジスタは、それぞれ５台のレジスタから成る２つの集合に区分される。第１集合は、レジスタＸ１Ａ’、Ｙ１Ａ’、Ｚ１Ａ’、Ｘ１Ｄ’、及びＹ１Ｄ’から成り立ち、第２集合はレジスタＸ２Ａ’、Ｙ２Ａ’、Ｚ２Ａ’、Ｘ２Ｄ’、及びＹ２Ｄ’から成り立つ。
【０１３７】
同様に、参照番号２２０ａは、スクランブラ段２００ａの入力レジスタのすべてを特定する。ＡＬＵ段の出力レジスタ２１０ｂごとのスクランブラ段では別個の入力レジスタが提供される。例えば、入力レジスタＸ１Ａは、出力レジスタＸ１Ａ’に対応し、入力レジスタＹ１Ａは、出力レジスタＹ１Ａ’に対応する等である。
【０１３８】
ＡＰＧパイプラインの動作中の一定のときに、ＡＬＵ段２１０からの出力レジスタ２１０ｂのすべての内容が、スクランブラ段２２０の対応する入力レジスタ２２０ａに転送される。それから、スクランブラ段２２０は、その入力レジスタの内容に対し多様なスクランブル動作を実行し、それはその出力レジスタ２２０ｂに結果を記憶する。それらの出力レジスタは、それぞれ３台のレジスタから成る２つの集合に区分される。第１集合は、レジスタＸ１’、Ｙ１’、及びＤ１’から成り立ち、第２集合は、レジスタＸ２’、Ｙ２’及びＤ２’から成り立つ。
【０１３９】
同様に、フォーマッタ段２３０の入力レジスタのすべては参照番号２３０ａで特定され、対応する入力レジスタが、スクランブラ段の各出力レジスタに提供される。例えば、入力レジスタＸ１は、出力レジスタＸ１’に対応する。入力レジスタＹ１は、出力レジスタＹ１’に対応する等である。
【０１４０】
一定のときに、スクランブラ段からの出力レジスタ２２０ｂの内容は、フォーマッタ段の入力レジスタ２３０ａに転送される。それが発生した後、フォーマッタ段は、その入力レジスタの内容に対して多様な動作を実行し、それが試験信号ＴＤＩ、ＥＴＤＯ、及びＭＡＳＫのそれぞれの複数のワードを生成する。これらの試験信号は、フォーマッタ出力レジスタ２３０ｂに、一度に１ワード記憶される。これらの出力レジスタ２３０ｂには、それらがＡＰＧで内部で生成されるＴＤＩ信号、ＥＴＤＯ信号及びＭＡＳＫ信号を保持することを示す目的で、ＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫとラベルが付けられる。
【０１４１】
パイプライン段２１０、２２０及び２３０のそれぞれで実行される動作のすべては、制御装置２４０から段のそれぞれに送信される制御信号のそれぞれの集合によって制御される。算術論理段２１０に送信される制御信号は、導体２１１の集合で発生する。スクランブラ段２２０に送信される制御信号は、導体２２１の集合で発生し、フォーマッタ段２３０に送信される制御信号は、導体２１３の集合で発生する。
【０１４２】
パイプライン段２１０、２２０、及び２３０のそれぞれは、制御装置２４０に応答信号も送り返す。算術論理段２１０によって送信される応答信号は、導体２１２の集合で発生する。スクランブラ段２２０によって送信される応答信号は、導体２２２の集合で発生し、フォーマッタ段２３０によって送信される応答信号は、導体２３２の集合で発生する。
【０１４３】
また、制御装置２４０は、図１３’のモジュール１２’と対話するためにＡＰＧインタフェース２０１を活用し、インタフェース接続の詳細は、図１４Ａの一番上の部分及び図１４Ｂの下の左部分で図示される。図１４Ｂは、前述された図５に類似する。しかし、図１４Ｂは、ＡＰＧインタフェース２０１とともに動作する４つの追加構成部品２５０〜２５３も含み、それは追加される構成部品と対話する修正された状態機械４０’を含む。
【０１４４】
構成部品２５０は、図１３のメモリからＡＰＧ命令を受信するレジスタであり、それらの命令は、レジスタ２５０からＡＰＧ制御回路２４０に、導体２０１ａの集合で送信される。構成部品２５１は、導体２０１ｂ、２０１ｃ、２０１ｄ、及び４０ｂの４つの集合から４つの異なる入力を受信する４ｘ１のマルチプレクサである。導体２０１ｂは、フォーマッタ出力レジスタＡＴＤＩから発信するＴＤＩ試験信号のワードを搬送する。導体２０１ｃは、フォーマッタ出力レジスタＡＥＴＤＯから発信するＥＴＤＯ試験信号のワードを搬送し、導体２０１ｄは、フォーマッタ出力レジスタＡＭＡＳＫから発信するＭＡＳＫ信号のワードを搬送する。構成部品２５２と２５３は、図２１と図２２に関連して後述されるそれぞれのカウンタである。
【０１４５】
ＡＰＧがＴＤＩ試験信号、ＥＴＤＯ試験信号、ＭＡＳＫ試験信号を生成しているとき、それらの信号は、マルチプレクサ２５１を通して渡され、レジスタ４４、４５及び４６の中にロードされる。逆に、ＴＤＩ試験信号、ＥＴＤＯ試験信号及びＭＡＳＫ試験信号がメモリ１３’から読み出されているとき、それらの試験信号は、（図５に関連して前述されたように）導体４０ｂからマルチプレクサ２５１を通ってレジスタ４４、４５及び４６の中に渡される。
【０１４６】
導体２０１ｅと２０１ｆの２つのその他の集合も、ＡＰＧインタフェース２０１に含まれる。導体２０１ｅでは、田追うなタイミング信号及び制御信号が、図１４Ｂの状態機械４０’から図１４ＡのＡＰＧ制御回路２４０に送信される。例えば、それらの制御信号は、いつＡＰＧ命令が導体２０１ａに存在するのかを制御回路２４０に告げる。
【０１４７】
導体２０１ｆでは、多様なタイミング信号及び制御信号が、図１４ＡのＡＰＧ制御回路２４０から図１４ｂの状態機械４０’に送信される。例えば、それらの制御信号は、いつフォーマッタ段２３０が導体２０１ｂ、２０１ｃ、及び２０１ｄで、ＴＤＩ試験信号、ＥＴＤＯ試験信号及びＭＡＳＫ試験信号のワードを生成したのかを状態機械４０’に告げる。
【０１４８】
ここで図１５Ａ〜図１５Ｂに関して、ＡＬＵ段２１０の好ましい実施態様が説明されるだろう。この特定の実施態様は、参照番号２１０ａ〜２１０ｐによって図１５Ａ〜図１５Ｂに特定される構成部品のすべてから構成され、それらの構成部品のそれぞれが、表２に後述される。
【０１４９】
表２
構成部品 説明
２１０ａ
図１５Ａの中の構成部品２１０ａは、ＡＬＵ段２００用の入力レジスタのすべてから成り立つ。それらは、「Ｘ」集合ＸＡ、ＸＢ、ＸＣ及びＸＤと「Ｙ」集合ＹＡ、ＹＢ、ＹＣ及びＹＤと「Ｚ」集合ＺＡ、ＺＢ、ＺＣ及びＺＤに区分される。これらの入力レジスタは、図１４Ａに図示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力Ｄ及び出力Ｑを有する。
【０１５０】
２１０ｂ
図１５Ｂの中の構成部品２１０ｂは、ＡＬＵ段２００用の出力レジスタのすべてから成り立つ。それらは、第１集合、Ｘ１Ａ’、Ｙ１Ａ’、Ｚ１Ａ’、Ｘ１Ｄ’、Ｙ１Ｄ’、及び第２集合Ｘ２Ａ’、Ｙ２Ａ’、Ｚ２Ａ’、Ｘ２Ｄ’、Ｙ２Ｄ’に区分される。これらの出力レジスタは、図１４Ａに図示されるのと同じ出力レジスタである。各レジスタは、入力Ｄ及び出力Ｑを有する。
【０１５１】
２１０ｃ
図１５Ａの中の構成部品２１０ｃは、入力レジスタ用の読み書き制御回路である。この制御回路により、入力レジスタ２１０ａの内容は、Ａバス、Ｂバス、Ｃバス、及びＤバスと呼ばれる４つのバスに選択的に読み取られる。また、この制御回路によって、ＩＮバスと呼ばれるバス上のデータは選択的に入力レジスタ２１０ａに書き込まれる。読み書きされる特定のレジスタは、集合２１１の中の導体２１１ａで発生する制御信号ＯＰ２１、ＸＹＺ及びＤＥＳＴによって、及び集合２１１の中の導体２１１ｂで発生する制御信号ＯＰ２２、ＸＹＺ及びＡＢＣＤによって決定される。
【０１５２】
２１０ｄ
図１５Ｂの中の構成部品２１０ｄは、レジスタＸ１Ａ’、Ｘ２Ａ’、Ｙ１Ａ’、Ｙ２Ａ’、Ｚ１Ａ’及びＺ２Ａ’から成り立つ出力レジスタ２１０ｂの部分集合用の書き込み制御回路である。１つのレジスタが、集合２１１の中にある導体２１１ｃのグループで発生する制御信号ＡＤＲに応じて選択され、書き込まれる。
【０１５３】
２１０ｅ
図１５Ｂの中の構成部品２１０ｅは、レジスタＸ１Ｄ’、Ｘ２Ｄ’、Ｙ１Ｄ’、及びＹ２Ｄ’から成り立つ出力レジスタ２１０ｂの部分集合書き込み制御回路である。１つのレジスタが、集合２１１の中にある構成個２１１ｄのグループで発生する制御信号ＤＤＲに応じて選択され、書き込まれる。
【０１５４】
２１０ｆ
図１５Ａの中の構成部品２１０ｆは、６かける１のマルチプレクサである。このマルチプレクサ２１０ｆに対する入力は、すべての０の集合とすべての１の集合だけではなくＡバス、Ｂバス、Ｃバス及びＤバスの上に読み取られる入力レジスタ２１０ａの特定の集合の内容である。このマルチプレクサ２１０ｆは、ｊ−バスと呼ばれているバスにその入力の１つを選択的に渡し、それらの信号は、集合２１１の中にある導体２１１ｅのグループで発生する。
【０１５５】
２１０ｇ
図１５Ａの中の構成部品２１０ｇは、６かける１のマルチプレクサである。このマルチプレクサ２１０ｇに対する入力は、マルチプレクサ２１０ｆに対する入力と同じである。このマルチプレクサ２１ｆは、制御信号ＫＳＥＬに応じてＫバスと呼ばれているバスにその入力の１つを渡し、それらの信号は、集合２１１の中にある導体２１１ｆのグループで発生する。
【０１５６】
２１０ｈ
図１５Ａの中の構成部品２１０ｈは、以下の演算を選択的に実行する実用可能の回路である。つまり、繰り上がった数を含む加算、繰り上がった数を含まない加算、借りてくる数（ｂｏｒｒｏｗ）を含む減算、借りてくる数を含まない減算、増分、減分、排他的論理和、排他的否定和、及び論理和、否定、及び無操作命令である。それらの演算は、Ｊバス及びＫバスによって搬送される信号で実行される。構成部品２１０ｈによって実行されるそれぞれの特定の演算は、集合２１１の中にある導体２１１ｇのグループで発生する制御信号ＡＬＯＰによって選択される。
【０１５７】
２１０ｉ
図１５Ａの中の構成部品２１０ｉは、２かける１のマルチプレクサである。マルチプレクサ２１０ｉに対する入力の１つは、実用可能な回路２１０ｈから生じ、マルチプレクサ２１０ｉに対する第２入力は境界チェック回路２１０ｋから生じる。どの特定の入力がマルチプレクサ出力に転送されるようになるのかは、境界チェック回路２１０ｋで内部的に生成されるＣＲＯＳＳＥＤ＿Ｂと呼ばれる制御信号によって決定される。
【０１５８】
２１０ｊ
図１５Ａの中の構成部品２１０ｊは、マルチプレクサ２１０ｉからの出力を選択的に回転する回転体回路である。その選択的な回転の結果は、Ｒバスと呼ばれるバスに送信される。回転体回路２１０ｊによって実行される回転の種類は、集合２１１の中にある導体２１１ｈのグループで発生する制御信号ＲＯＴＬによって選択される。
【０１５９】
２１０ｋ
図１５Ａの中の構成部品２１０ｋは、境界チェック回路である。この回路は、図１５Ｆに詳細に図示される内部構造を有し、境界チェック回路２１０ｋの構造と動作はその図と関連してここに説明される。
【０１６０】
２１０Ｌ
図１５Ａの中の構成部品２１０Ｌは、２かける１のマルチプレクサである。マルチプレクサ２１０ｌへの１つの入力がＲバスであり、マルチプレクサ２１０Ｌに対する第２入力が制御信号ＤＩＲＥＣＴ＿Ｄを搬送する導体２１１ｉのグループである。どの特定な入力がＩＮバスにマルチプレクサ２１０Ｌを通して渡されるのかは、胴体２１１ｊのグループで発生するその他の制御信号ＯＰ２２によって決定される。導体２１１ｉと２１１ｊの両方のグループとも集合２１１の中にある。
【０１６１】
２１０ｍ
図１５Ｂの中の構成部品２１０ｍは、７かける１のマルチプレクサである。このマルチプレクサに対する入力はＲバス、Ａバス、Ｂバス、Ｃバス、Ｄバス、０の集合及び１の集合である。これらの入力は、集合２１１の中にある導体２１１ｋのグループで発生する制御信号ＯＵＴＳＥＬに応じて、マルチプレクサ２１０Ｍを通して選択的に渡される。
【０１６２】
２１０ｎ
図１５Ｂの中の構成部品２１０ｎは、インバータ回路である。この構成部品は、マルチプレクサ２１０Ｍから生じる出力信号のすべてを反転する。
【０１６３】
２１０ｏ
図１５Ｂの中の構成部品２１０ｏは、２かける１  のマルチプレクサである。マルチプレクサ２１０ｏに対する入力の一方はマルチプレクサ２１０ｍの出力であり、他方の入力はインバータ回路２１０ｎの出力である。マルチプレクサ２１０ｏに対するこれら２つの入力は、集合２１１の中にある導体２１１Ｌのグループで発生する制御信号ＩＮＶに応じてマルチプレクサを通して選択的に渡される。
【０１６４】
２１０ｐ
図１５Ｂの中の構成部品２１０ｂは、７かける１のマルチプレクサである。このマルチプレクサに対する入力は、マルチプレクサ２１０ｍに対する入力と同じである。どの特定の入力がマルチプレクサ２１０ｍを通過させられるのかは、集合２１１の中にある導体２１１ｍのグループで発生する制御し号ＤＧＥＮＳＥＬによって決定される。
【０１６５】
図１５Ａと図１５Ｂにおいて、多くの異なる制御信号が、導体２１１ａ〜２１１ｍのそれぞれのグループで発生するとして示される。それらの導体のすべては、制御装置２４０から生じる集合２１１の中にある。これらの制御信号がどのようにして生成されるのかは、ここで図１５Ｃと図１５Ｄと関連して説明されるだろう。
【０１６６】
最初に図１５Ｃを考えると、それは、図１５Ａと図１５Ｂの回路構成要素のすべてによって実行される１つの特定のＡＰＧ命令２５１を示す。この命令２５１は、導体２０１ａを介して図１４ＡのＡＰＧ制御装置２４０で受信され、応じて、ＡＰＧ制御装置２４０が、図１５Ａと図１５Ｂの段２１０に、導体２１１での多様な制御信号を送信する。
【０１６７】
ＡＰＧ命令２５１は、２つのワードＷ０とＷ１から成り立ち、この特定の命令はワードＷ０で発生するＯＰ２１という操作符号で特定される。命令２５１のワードＷ０は、図１５Ａの入力レジスタ２１０ａから、レジスタのＸ集合またはレジスタのｙ集合またはレジスタのＺ集合のいずれかを選択するＸＹＺフィールドも含む。選択されるレジスタの特定の集合の内容は、Ａバス、Ｂバス、Ｃバス及びＤバスに同時に読み取られる。
【０１６８】
命令２５１のワードＷ１は、以下の制御信号のすべてを指定する複数のフィールドを含む。つまり、ＤＧＥＮＳＥＬ、ＯＵＴＳＥＬ、ＪＳＥＬ、ＫＳＥＬ、ＤＥＳＴ、ＡＬＯＰ、ＩＮＶ、ＲＯＴＬ、ＣＣ、ＤＤＲ及びＡＤＲである。これらの制御信号のそれぞれは、デジタルで符号化される複数の異なる値のいずれか１つを有することがあり、各値が図１５Ｃに示されるようにある特定の関数を指定する。
【０１６９】
例えば、ＪＳＥＬ信号が「２」という値を有するとき、Ｃバス上にあるレジスタの内容は、マルチプレクサ２１０ｆを通される。同様に、ＡＬＯＰフィールドが「５」という値を有するとき、実用可能な回路２１０ｈが、Ｊバス上にあるデータを１増分し、結果をＯバスに渡す。
【０１７０】
選択された入力レジスタの内容が構成部品２１０ｆ〜２１０ｐのすべてによって処理された後で、結果は選択的に入力レジスタ２１０ａ及び出力レジスタ２１０ｂの中に記憶される。どの特定の入力レジスタがマルチプレクサ２１０ｌからの結果を記憶するのかは、ＤＥＳＴフィールドによって選択される。どの特定の出力レジスタがマルチプレクサ２１０ｏからの結果を記憶するのかは、ＡＤＲフィールドによって選択され、どの特定の出力レジスタがマルチプレクサ２１０ｐからの結果を記憶するのかは、ＤＤＲフィールドによって選択される。
【０１７１】
ここで図１５Ｄを見ると、それは、図１５Ａの回路構成要素により実行される別のＡＰＧ命令２５２を示す。この特定の命令２５２は、２つのワードＷ０とＷ１から成り立ち、それはワードＷ０内の演算コードＯＰ２２によって特定される。
【０１７２】
命令２５２を使用することによって、入力レジスタ２１０ａのいずれか１つが、初期値をロードできる。ワードＷ０のフィールドＸＹＺは、入力レジスタのＸ集合、またはＹ集合またはＺ集合のどれかを選択し、ワードＷ０の別のフィールドＡＢＣＤが選択された集合の中の１つのレジスタを選択する。
【０１７３】
ワードＷ１は、選択されたレジスタに直接的に書き込まれるデータフィールドＤＩＲＥＣＴ＿Ｄを含む。そのデータは、命令２５２が実行されるときに、マルチプレクサ２１０Ｌを選択されたレジスタの中に通過する。他のすべてのときには、マルチプレクサ２１０Ｌは、Ｒバス上にある信号を渡す。マルチプレクサ２１０ｂは、いつ命令５１が実行されているのかを示す導体２１１ｆ上の制御信号ＯＰ２２に応じて動作する。
【０１７４】
次に図１５Ｅと図１５Ｆを参照すると、境界チェック回路２１０ｋの内部構造及び動作に関する詳細が説明されるだろう。最初に図１５Ｅを考慮すると、それは、境界チェック回路２１０ｋと関連して実行されるＡＰＧ命令２５３を示す。命令２５３は、２つのワードＷ０とＷ１から成り立ち、それはワードＷ０の演算コードＯＰ２３によって特定される。
【０１７５】
命令２５３によって、入力レジスタ２１０ａの集合ごとに、それぞれの最大限度とそれぞれの最小限度が確立される。ワードＷ０内の１つのフィールドＸＹＺは、入力レジスタのＸ集合または入力レジスタのＹ集合、または入力レジスタのＺ集合のどれかを選択する。その選択される集合について、ワードＷ１のフィールドＭＡＸＬＩＭは最大限度を指定し、フィールドＭＩＮＬＩＭは最小限度を指定する。これらの限度は、境界チェック回路２１０ｋ内に記憶される。
【０１７６】
限度の３つの集合が境界チェック回路２１０ｋに記憶された後、その回路は該限度を各命令２５１の実行中にＲバスで生成される信号に比較する。ある特定の命令２５１がＤＥＳＴフィー都度を介してレジスタのＸ集合を選択し、ＡＬＯＰフィールドによって指定される動作を介してその内容を増加する場合、Ｒバスの結果は境界チェック回路２１０ｋによって、レジスタのＸ集合のために確立された最大限度に比較される。その最大限度がＲバスの信号に等しい場合には、境界チェック回路が、次の命令２５１が再びレジスタのＸ集合を選択するときにマルチプレクサ２１０ｉを通してレジスタのＸ集合の最小限度を渡すだろう。
【０１７７】
逆に、１つの特定の命令２５１がＤＥＳＴフィールドを介してレジスタのＸ集合を選択し、ＡＬＯＰフィールドで指定される動作を介してその内容を減少するときに、Ｒバスの結果は、レジスタのｘ集合のために確立された最小限度に比較されある。その最小限度及びＲバスの信号が等しいと、境界チェック回路２１０ｋが、次の命令２５１が再びレジスタのＸ集合を選択すると、マルチプレクサ２１０ｉを通してレジスタのＸ集合の最大限度を渡すだろう。
【０１７８】
同様に、１つの特定の命令２５１がＤＥＳＴフィールドを介してレジスタのＹ集合（またはＺ集合）を選択肢、ＡＬＯＰフィールドを介してその内容を増加するときには、Ｒバスの結果がレジスタのＸ集合（またはＺ集合）に確立された最大限度に比較される。その最大限度がＲバスの信号に等しい場合には、境界チェック回路が、次の命令２５１が再びレジスタのＹ集合（またはＺ集合）を選択すると、マルチプレクサ２１０ｉを通してレジスタのＹ集合（またはＺ集合）に対する最小限度を渡すだろう。
【０１７９】
逆に、ある特定の命令２５１が、ＤＥＳＴフィールドを介してレジスタのＹ集合（またはＺ集合）を選択し、ＡＬＯＰフィールドを介してその内容を減少するときには、Ｒバス上の結果がレジスタのＹ集合（またはｚ集合）のために確立された最小限度に比較される。その最小限度及びＲバス上の信号が等しい場合に、境界チェック回路２１０ｋが、レジスタのＹ集合（またはｚ集合）の最大限度を、次の命令２５１が再びレジスタのＹ集合（またはＺ集合）を選択するときにマルチプレクサ２１０ｉを通して渡すだろう。
【０１８０】
境界チェック回路２１０ｋの中で前述された動作を実行するために、その回路は、図１５Ｆに示される構成部品のすべてを含む。それらの構成部品は、参照番号２１０ｑ〜２１０ｗで特定され、それらの構成部品のそれぞれは表３に後述される。
【０１８１】
表３
構成部品 説明
２１０ｑ
図１５Ｆの中の構成部品２１０ｑは、ＸＭＡＸレジスタとＸＭＩＮレジスタ、ＹＭＡＸレジスタとＹＭＩＮレジスタ、及びＺＭＡＸレジスタとＺＭＩＮレジスタである３組のレジスタから成り立つ。各レジスタは、データ入力及び出力Ｑを有する。命令２５３からのＭＡＸＬＭフィールドは、ＸＭＡＸレジスタまたはＹＭＡＸレジスタまたはＺＭＡＸレジスタのどれかに選択的に記憶され、命令２５３からのＭＩＮＬＩＭフィールドはＸＭＩＮレジスタまたはＹＭＩＮレジスタまたはＺＭＩＮレジスタのどれかに選択的に記憶される。ＭＡＸＬＩＭフィールドとＭＩＮＬＩＭフィールドは、集合２１１内にある導体２１１ｎのグループのレジスタｑに送信される。
【０１８２】
２１０ｒ
図１５Ｆの中の構成部品は、レジスタ２１０ｑの読み取り／書き込み制御回路である。書き込むためのレジスタの１つの特定の組を選択するために、回路２１０ｒは、集合２１１の中にある導体２１１０ｏのグループで命令２５３からＸＹＺフィールド及びＯＰ２３フィールドを受信する。読み取るためのレジスタの１つの特定の組を選択するために、回路２１１ｒは、集合２１１の中にある導体２１１ｐのグループの命令２５１からＸＹＺフィールドを受信する。
【０１８３】
２１０ｓ
図１５Ｆの中の構成部品は、１組の入力Ｉ１とＩ２及び１組の出力Ｏ１とＯ２を有する回路である。入力Ｉ１とＩ２はそれぞれ、レジスタ２１０ｑから読み取られる最大限度と最小限度を受信する。命令２５１のＡＬＯＰフィールドが追加または増分演算を指定する場合には、入力Ｉ１とＩ２に対する限度はそれぞれＯ１出力及びＯ２出力に渡される。ＡＬＯＰフィールドが減算または減分演算を指定する場合、入力Ｉ１に対する限度が出力Ｏ２に渡され、入力Ｉ２に対する限度が出力Ｏ１に渡される。ＡＬＯＰフィールドは、集合２１１の中にある導体２１１ｑのグループで回路２１０ｓに送信される。
【０１８４】
２１０ｔ
図１５Ｆの中の構成部品２１０ｔは、Ｒバス上にある信号を、構成部品２１０ｓの０２出力に渡される信号に比較する比較回路である。それらの比較された信号が同じ場合には、回路２１０ｔは出力としてＥＱＵＡＬ信号を生成する。
【０１８５】
２１０ｕ
図１５Ｆの中の構成部品２１０ｕは、ＸＥＱ、ＹＥＱ及びＺＥＱと呼ばれる３つのフリップフロップの集合である。各フリップフロップは、別の構成部品２１０ｖによって読み書きされる。
【０１８６】
２１０ｖ
図１５Ｆの中の構成部品２１０ｖは、フリップフロップ２１０ｕの読み書き制御回路である。ＸＥＱフリップフロップは、命令２５１のフィールドＤＥＳＴがレジスタのＸ集合を選択すると読み取られる。ＹＥＱフリップフロップは、ＤＥＳＴフィールドがレジスタのＹ集合を選択するときに読み取られ、ＺＥＱフリップフロップは、ＤＥＳＴフィールドがレジスタのｚ集合を選択するときに読み取られる。読み取られるフリップフロップの出力は、制御信号ＣＲＯＳＳＥＤ＿Ｂになる。また、フリップフロップ２１０ｕの一方が命令２５１によって読み取られるたびに、その特定のフリップフロップは、命令の実行の終了時にセットまたはリセットされるかのどちらかである。ＥＱＵＡＬ信号が真である場合には、フリップフロップがセットされる。それ以外の場合、それはリセットされる。ＤＥＳＴフィールドは、集合２１１内の導体２１１Ｒのグループで受け取られる。
【０１８７】
２１０ｗ
図１５Ｆの中の構成部品２１０ｗは、図１５Ａの実用可能な回路２１０ｈのための  ｃａｒｒｙ−ｉｎ信号（ＣＩＮ）を生成するフリップフロップである。このフリップフロップは、命令２５１が実行されるたびにセットまたはリセットされる。フリップフロップ２１０ｗは、コンパレータ２１０ｔからのＥＱＵＡＬ信号が命令２５１の実行の最後で真である場合にセットされる。それ以外の場合、フリップフロップ２１０ｗがリセットされる。
【０１８８】
ここでは、図１５Ａ〜図１５Ｆの回路構成要素及び命令が、どのようにして、集積回路チップを試験するＴＤＩ信号、ＥＴＤＯ信号及びＭＡＳＫ信号をともに生成する３つの段の第１として使用できるのかを示す例を考える。この例では、試験されるチップが、メモリセルの４つの矩形アレイを含むメモリチップであると仮定し、さらにセルが各アレイ内で１０２４行と６４列で配列されると仮定する。
【０１８９】
前記例の中のそれぞれのメモリセルが、「仮想」行番号及び「仮想」列番号によって指定される「仮想」アドレスを有する。これらの行番号及び列番号がなぜ「仮想」番号であるのかが、まもなく説明されるだろう。
【０１９０】
第１アレイについて、仮想行番号はＶＲ０〜ＶＲ１０２３であり、仮想列番号はＶＣ０〜ＶＣ６３である。第２アレイについて、仮想行番号はＶＲ０〜ＶＲ１０２３であり、仮想列番号はＶ６４〜ＶＣ１２７である。第３アレイについて、仮想行番号はＶＲ１０２４〜ＶＲ２０４７であり、仮想列番号はＶＣ０〜Ｖ６３である。第４アレイについては、仮想行番号はＶＲ１０２４〜ＶＲ２０４７であり、仮想列番号はＶＣ６４〜ＶＣ１２７である。
【０１９１】
４つのアレイのそれぞれにおいて、仮想ｂ行番号は、アレイの上部からアレイの底部に連続して増加し、仮想列番号はアレイの左側からアレイの右側に連続して増加する。このようにして、例えば、第１アレイの左上角にあるメモリセルは、仮想行ＶＲ０と仮想列ＶＣ０にあり、第１アレイの左下角にあるメモリセルは仮想行ＶＲ１０２３及び仮想列ＶＣ６３にある。同様に、第４アレイの左上角にあるメモリセルは、仮想行ＶＲ１０２４及び仮想列ＶＣ６４にあり、第４アレイの右下角にあるメモリセルは、仮想行ＶＲ２０４７と仮想列ＶＣ１２７内にある。
【０１９２】
ここで、ＴＤＩ試験信号、ＥＴＤＯ試験信号、及びＭＡＳＫ試験信号が、以下の順序でメモリセルのそれぞれに生成されなければならないと仮定する。第１に、試験信号は、行ＶＲ０内にあるメモリセルのそれぞれのセルに生成され、列ＶＣ０での行ＶＲ０内のメモリセルで開始し、列ＶＣ６３での行ＶＲ０にあるメモリセルで終了する。それから、このシーケンスは、第１アレイ内の残りの行Ｒ１からＶＲ１０２３のそれぞれに連続して繰り返されなければならない。それ以降、前記シーケンスは、第２アレイのセルごとに繰り返されなければならず、それから前記シーケンスは第３アレイのセルごとに繰り返されなければならず、シーケンスは第４アレイのセルごとに繰り返されなければならない。
【０１９３】
図１５Ａ〜図１５Ｆの回路構成要素及び命令を活用することにより、メモリセルの仮想あどレスは、セルが試験されなければならない順序で連続して生成できる。例えば、レジスタのＸ集合は、試験されているセルの仮想行の番号を生成するために使用することができ、レジスタのＹ集合は、試験されているセルの仮想列の番号を生成するために使用することができ、レジスタのＺ集合は、試験されているアレイの数を生成するために使用することができる。
【０１９４】
適切な順序で前記アドレスを連続して生成するために、命令２５１のシーケンスがプログラムループで実行できる。また、最初に前記アドレスの開始値を設定するために、命令２５２が実行できる。さらに、ある行の最後から次の連続行の始まりへ、及びある列の最後から次の連続列の始まりまで、プログラムループで自動的に生成されるセルのアドレスを変更するために、命令２５３が使用できる。
【０１９５】
仮想列アドレスと仮想行アドレスが生成されるたびに、それらのアドレスは出力レジスタ２１０ｂに記憶される。例えば、仮想行アドレスは、レジスタＸ１Ａ’に記憶することができ、仮想列アドレスはレジスタＹ１Ａ’に記憶することができる。さらに、一定のデータが各仮想行アドレスと各仮想列アドレスととものい使用される必要がある場合、そのデータは、命令２５１と２５２によってプログラムループでも生成でき、そのデータは出力レジスタＸ１Ｄ’とＹ１Ｄ’に記憶できる。
【０１９６】
また、一定の種類のメモリ試験について、仮想アドレスとその対応するデータの２つの別個のシーケンスが同時に生成される必要がある可能性がある。例えば、仮想アドレスの第１シーケンスは、前述された順序でセルからセルに移動できるだろう。一方仮想アドレスの第２シーケンスは反対の順序でセルからセルに移動できるだろう。このようにして、第２シーケンスは、最高の番号の仮想行と仮想列にあるセルで開始し、最小の番号の仮想行と仮想列にあるセルで終了するだろう。
【０１９７】
仮想アドレスのこれらの２つの別個のシーケンスは、命令２５１、２５２、及び２５３を使用する第１プログラムループと第２プログラムループによって同時に生成できる。第１プログラムループが仮想アドレス及びその対応するデータを生成するたびに、それらは出力レジスタＸ１Ａ’、Ｙ１Ａ’、Ｚ１Ａ’、Ｘ１Ｄ’、及びＹ１Ｄ’から成る第１集合に記憶され、第２プログラムループがその対応するデータで仮想アドレスを生成するたびに、それらは出力レジスタＸ２Ａ’、Ｙ２Ａ’、Ｚ２Ａ’、Ｘ２Ｄ’及びＹ２Ｄ’から成る第２集合に記憶される。
【０１９８】
前記説明を通して、試験される実際の物理メモリチップ内では、メモリセルの行及び列は連続して番号付けされなくてよいために、用語「仮想」行と「仮想」列が使用された。例えば、実際のメモリチップ内で、アドレス１０を有する行は、アドレス２０を有する行に隣接してよいことがある。同様に、実際のメモリチップでは、アドレス１００を有する列が、アドレス１１０を有する列に隣接してよい。
【０１９９】
その結果、このような差異に対処するため、ＡＬＵ段２１０は、好ましくは、隣接する行と列が連続するアドレスを有する、仮想メモリ（つまり、仮説的なメモリ）の仮想アドレス及びデータを生成する。そして、スクランブラ段２２０は、試験される実際の物理的なメモリチップのための物理的なアドレス及びデータに、仮想アドレスとデータを変換するために提供される。スクランブラ段２２０によって実行される多様な動作を開始するために、図１５Ｇに示される別のＡＰＧ命令２５４が実行される。この命令２５４は、２つのワードＷ０とｗ１から成り立ち、それはワードＷ０の演算コードＯＰ２４によって特定される。
【０２００】
命令２５４の各実行は、第１段２１０の出力レジスタ内の仮想アドレス及び対応するデータが、第２段２２０によって動作される準備ができていることを示す。このようにして、それらの仮想アドレス及び対応するデータが、前述されたようにプログラムループで生成されると、プログラムループの１つのサイクルが完了されるたびに、ＡＰＧ命令２５４が実行される。命令２５４のワードＷ１  は、図１５Ｇに図示されるように、ＣＯＵＮＴとＰＡＧＥと呼ばれる２つの追加フィールドも含むが、それらのフィールドはＡＰＧの第３段によって使用されるだけである。したがってＣＯＵＮＴフィールドとＰＡＧＥフィールドは、第３段に関連して後述される。
【０２０１】
第２段２２０の１つの好ましい実施態様は、図１６Ａ〜図１６Ｃに詳細に図示される。この特定の実施態様は、参照番号２２０ａ〜２２０ｚｊによって図１６Ａ〜図１６Ｃに特定されるすべての構成部品から構成され、それらの構成部品のそれぞれが、表４に後述される。
【０２０２】
表４
構成部品 説明
２２０ａ
構成部品２２０ａは、部分的に図１６Ａに、部分的に図１６Ｂに示され、それはスクランブラ段２２０のための入力レジスタのすべてから成り立つ。これらの入力レジスタは、レジスタＸ１Ａ、Ｙ１Ａ、Ｚ１Ａ、Ｘ１Ｄ及びＹ１Ｄから成り立つ第１集合、及びレジスタＸ２Ａ、Ｙ２Ａ、Ｚ２Ａ、Ｘ２Ｄ及びＹ２Ｄから成り立つ第２集合に区分される。これらの入力レジスタは、図１４Ａに図示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力Ｄ及び出力Ｑを有する。
【０２０３】
２２０ｂ
図１６Ｃの中の構成部品２２０ｂは、スクランブラ段２２０の出力レジスタのすべてから成り立つ。それらの出力レジスタは、第１集合Ｘ１’、Ｙ１’、及びＤ１’、ならびに第２集合Ｘ２’、Ｙ２’及びＤ２’に区分される。これらの出力レジスタは、図１４Ａに示されるのと同じ出力レジスタである。各レジスタは、データ入力Ｄ及び出力Ｑを有する。
【０２０４】
２２０ｃ
図１６Ａと図１６ｂの構成部品２２０ｃは、入力レジスタ２２０ａのすべてのための書き込み制御回路である。この書き込み制御回路は、入力レジスタ２２０ａのすべてに、第１段２１０から対応する出力レジスタ２１０ｂの内容をロードする。この動作は、集合２２１の中にある導体２２１ａ上にある制御信号ＵＰＤＡＴＥ＿ＳＴＡＧＥ＿２に応じて発生する。
【０２０５】
２２０ｄ
図１６Ｃの中の構成部品２２０ｄは、出力レジスタ２２０ｂのすべてのための書き込み制御回路である。この書き込み制御回路によって、それぞれの出力レジスタは、選択的に、そのデータ入力Ｄ上にある信号をロードされる。レジスタＸ１’は、制御信号ＵＰＤＡＴＥＸ１’に応じてロードされる。レジスタＸ２’は、制御信号ＵＰＤＡＴＥＸ２’等に応じてロードされる。これらの信号は、集合２２１の中にある導体２２１ｂのグループで発生する。
【０２０６】
２２０ｅ
図１６Ａの中の構成部品２２０ｅは、２かける１のマルチプレクサである。マルチプレクサ２２０ｅに対する入力の一方は、レジスタＸ１Ａ内のアドレスであり、他方の入力はレジスタＸ２Ａ内のアドレスである。Ｘ１Ａ入力は、制御信号ＳＥＬ１が真であるときにＸＡバスに渡される。それ以外の場合、Ｘ２Ａ入力はＸ２Ａバスに渡される。制御信号ＳＥＬ１は、集合２２１の中にある導体２２１ｃで発生する。
【０２０７】
２２０ｆ
図１６Ａの中の構成部品２２０ｆは、２かける１のマルチプレクサである。マルチプレクサ２２０ｆに対する入力の一方は、レジスタＹ１Ａ内のアドレスであり、他方の入力はレジスタＹ２Ａ内のアドレスである。Ｙ１Ａ入力は、制御信号ＳＥＬ１が真であるときにＹＡバスに渡される。それ以外の場合、Ｙ２Ａ入力がＹＡバスに渡される。
【０２０８】
２２０ｇ
図１６Ａの中の構成部品２２０ｇは、２かける１のマルチプレクサである。マルチプレクサ２２０ｇに対する入力の一方は、レジスタＺ１Ａ内のアドレスであり、他方の入力はレジスタＺ２Ａ内のアドレスである。Ｚ１Ａ入力は、制御信号ＳＥＬ１が真であるときにＺＡバスに渡される。それ以外の場合、Ｚ２Ａ入力がＺＡバスに渡される。
【０２０９】
２２０ｈ
図１６Ａの中の構成部品２２０ｈは、１６回繰り返される４８かける１のマルチプレクサである。このマルチプレクサの各インスタンスは、メモリアドレスビットＡ０〜Ａ１５のそれぞれ１つを生成する。簡略さのために、図１６Ａは、これらのマルチプレクサの最初のインスタンスと最後のインスタンスだけを示し、残りのマルチプレクサは３つの点の集合で表される。それぞれのマルチプレクサ２２０ｈが、並列で、ＸＡバス、ＹＡバス及びＺＡバスにある入力アドレスビットのすべてを受け取り、それぞれのマルチプレクサが、単一メモリアドレスビットをそれによって生成するために入力アドレスビットのそれぞれ１つを選択的に渡す。
【０２１０】
２２０ｉ
図１６Ａの中の構成部品２２０ｉは、Ｘスクランブラ制御レジスタ、Ｙスクランブラ制御レジスタ、及びＺスクランブラ制御レジスタと呼ばれる制御レジスタの３つの集合である。各集合は、１６台のマルチプレクサ２２０ｈのそれぞれに１台づつ、１６台のレジスタを含む。レジスタの１つの集合の内容が選択され、導体２２１ｄのマルチプレクサ２２０ｈに送信される。それらの信号は各マルチプレクサに、その出力にそれぞれの入力を渡すように命令する。
【０２１１】
２２０ｊ
図１６Ａの中の構成部品２２０ｊは、ＸＹＺスクランブラ制御レジスタ２２０ｉのための書き込み制御回路である。この回路によって、３つの集合の１つでの単一制御レジスタが選択される。これは、制御信号ＯＰ３３、ＸＹＺ、ＳＡ０かＳＡ１５に応じて発生する。それから、選択されたレジスタは、ＳＥＴＴＩＮＧと呼ばれるデータフィールドで書き込まれる。これらの信号のすべてが、集合２２１の中にある導体２２１ｅのグループで発生する。
【０２１２】
２２０ｋ
図１６Ａの中の構成部品２２０ｋは、ＸＹＺスクランブラ制御レジスタ２２０ｉのための読み取り制御回路である。導体２２１ｄの上に読み取られるレジスタの特定の集合は、集合２２１の中にある導体２２１ｆのグループえ発生する３つの制御信号ＳＥＬＸ、ＳＥＬＹ、及びＳＥＬＺによって選択される。
【０２１３】
２２０Ｌ
図１６Ａの中の構成部品２２０Ｌは、６４Ｋのワードを記憶するランダムアクセスメモリであり、各ワードは別個のアドレスを有する。１つの１６ビットワードは、アドレスＡ１５〜Ａ０に応じて読み取られ、そのワードはＸＭＥＭと呼ばれる出力で発生する。この出力ＸＭＥＭは、図１６Ｃで出力レジスタＸ１’とＸ２’に移動する。
【０２１４】
２２０ｍ
図１６Ａの中の構成部品２２０ｍは、６４Ｋのワードを記憶するランダムアクセスメモリであり、各ワードは別個のアドレスを有する。１つの１６ビットワードが、アドレスＡ１５〜Ａ０に応じて読み取られ、そのワードはＹＭＥＭと呼ばれる出力で発生する。この出力ＹＭＥＭは、図１６Ｃの出力レジスタＹ１’とＹ２’に移動する。
【０２１５】
２２０ｎ
図１６Ａの中の構成部品２２０ｎは、６４Ｋのビットを記憶するランダムアクセスメモリであり、各ビットは別個のアドレスを有する。１ビットワードがアドレスＡ１５〜Ａ０に応じて読み取られ、そのビットはＺＭＥＭと呼ばれる出力で発生する。この出力ＺＭＥＭは、図１６Ｃのマルチプレクサ２２０ｚｉに移動する。
【０２１６】
２２０ｏ
図１６Ｂの中の構成部品２２０ｏは、２かける１のマルチプレクサである。このマルチプレクサに対する一方の入力は、レジスタＸ１Ｄのコンテンツであり、他方入力はレジスタＸ２Ｄのコンテンツである。マルチプレクサ２２０は、制御信号ＳＥＬ１が真であるときに、Ｘ１Ｄ入力をＸＤバスに渡し、それ以外の場合、それはＸＤバスにＸ２Ｄ入力を渡す。
【０２１７】
２２０ｐ
図１６Ｂの中の構成部品２２０ｐは、２かける１のマルチプレクサである。このマルチプレクサに対する一方の入力はレジスタＹ１Ｄの内容であり、他方入力はレジスタＹ２Ｄのコンテンツである。マルチプレクサ２２０は、制御信号ＳＥＬ１が真であるときに、Ｙ１Ｄ入力をＹＤバスに渡す。
【０２１８】
２２０ｑ
図１６Ｂの中の構成部品２２０ｑは、１６かける１のマルチプレクサである。このマルチプレクサは、入力としてＸＤバスを受信し、それはそのバスの１ビットをその出力に渡す。渡される特定のビットは、集合２１の中にある導体２２１ｇで発生する制御信号ＸＳＥＬによって選択される。
【０２１９】
２２０ｒ
図１６Ｂの中の構成部品２２０ｒは、１６かける１のマルチプレクサである。このマルチプレクサは、入力としてＹＤバスを受信し、それはそのバスの１ビットをその出力に渡す。渡される特定のビットは、集合２２１の中にある導体２２１ｈで発生する制御信号ＹＳＥＬによって選択される。
【０２２０】
２２０ｓ
図１６Ｂの中の構成部品２２０ｓは、インバータである。それはマルチプレクサ２２０ｑの出力を受信し、その信号を出力として反転する。
【０２２１】
２２０ｔ
図１６Ｂの中の構成部品２２０ｔは、インバータである。それはマルチプレクサ２２０ｒの出力を受信し、それはその信号を出力として反転する。
【０２２２】
２２０ｕ
図１６Ｂの中の構成部品２２０ｕは、４かける１のマルチプレクサである。このマルチプレクサは、制御信号ＬＦＵＮＣに応じてその出力にその４つの入力の内の１つを選択的に渡す。それらの制御信号は、集合２２１の中にある導体２２１ｉで発生する。
【０２２３】
２２０ｖ
図１６ｂの中の構成部品２２０ｖは４かける１のマルチプレクサである。このマルチプレクサは、制御信号ＭＦＵＮＣに応じて、選択的に、その４つの入力の内の１つをその出力に渡す。それらの制御信号は、集合２２１の中にある導体２２１ｊで発生する。
【０２２４】
２２０ｗ
図１６Ｂの中の構成部品２２０ｗは、マルチプレクサ２２０ｕと２２０ｖから生じる１組の入力で選択可能な演算を実行する算術回路である。構成部品２２０ｗによって実行される特定の演算は、集合２２１の中にある導体２２１ｋで発生する制御信号ＤＡＬＵＯＰによって選択される。その動作の結果は、ＤＡＬＵバスで発生する。
【０２２５】
２２０Ｘ
図１６Ｂの中の構成部品２２０ｘは、データ入力Ｄ及び出力Ｑを有するＭＡＳＫレジスタである。このレジスタの中に選択的に書き込まれるデータは、ＭＡＳＫ  ＤＡＴＡと呼ばれ、それは集合２２１の中にある導体２２０Ｌで発生する。
【０２２６】
２２０ｙ
図１６Ｂの中の構成部品２２０ｙは、ＭＡＳＫレジスタ２２０Ｘのための書き込み制御回路である。この回路２２０ｙは、集合２２１の中にある導体２２１ｍの上で制御信号ＯＰ３２に応じてＭＡＳＫ＿ＤＡＴＡをレジスタ２２０ｘの中に書き込む。
【０２２７】
２２０ｚ
図１６Ｂの中の構成部品２２０ｚは、選択的な比較回路である。入力として、回路２２０ｚは、ＸＤバス、ＹＤバス、上にある信号、及びＭＡＳＫレジスタ２２０ｘに記憶される信号を受信する。それから、「０」であるＭＡＳＫレジスタ内のビットごとに、回路２２０ｚは、ＸＤバス及びＹＤバス上にある対応するビットを比較する。すべてんこのような比較が等しい場合、回路２２０ｚは出力信号ＸＤ＝ＹＤを生成する。
【０２２８】
２２０ｚａ
図１６Ｃの中の構成部品２２０ｚａは、インバータである。それは、ＤＡＬＵバスで信号を受信し、それはそれらの信号を出力として反転する。
【０２２９】
２２０ｚｂ
図１６Ｃの中の構成部品２２０ｚｂは、インバータである。それは信号ＸＤ＝ＹＤを受信し、その信号を出力として反転する。
【０２３０】
２２０ｚｃ
図１６Ｃの中の構成部品２２０ｚｃは、６かける１のマルチプレクサである。このマルチプレクサは、制御信号ＯＵＴＳＥＬに応じて、選択的に、その６つの入力の１つをその出力に渡す。それらの制御信号は、集合２２１の中にある導体２２１ｎで発生する。
【０２３１】
２２０ｚｄ
図１６Ｃの中の構成部品２２０ｚｄは、データ入力Ｄおよび出力Ｑを有するレジスタである。ＶＡＬＵＥ−ＤＡＴＡと呼ばれる信号が、このレジスタの中に選択的に書き込まれ、それらは、集合２２１の中にある導体２２１ｏで発生する。
【０２３２】
２２０ｚｅ
図１６Ｃの中の構成部品２２０ｚｅは、レジスタ２２０ｚｄのための書き込み制御回路である。この回路は、集合２２１の中の導体２２１ｐで発生する制御信号ＯＰ３４に応じてレジスタ２２０ｚｄの中にＶＡＬＵＥ−ＤＡＴＡ信号を書き込む。
【０２３３】
２２０ｚｆ
図１６Ｃの中の構成部品２２０ｚｆは、２かける１のマルチプレクサである。このマルチプレクサに対する一方の入力は、６かける１のマルチプレクサｚｃからの出力であり、他方の入力はレジスタ２２０ｚｄの内容である。どの特定の入力がマルチプレクサ２２０ｚｆの出力に渡されるようになるのかは、集合２２１の中の導体２２１ｑで発生する制御信号ＶＡＬＳＥＬによって決定される。
【０２３４】
２２０ｚｇ
図１６Ｃの中の構成部品は、マルチプレクサ２２０ｚｆからの出力を選択的に転する回転体回路である。回転体回路２２０ｚｇによって実行される回転の種類は、集合２２１の中の導体２２１ｒのグループで発生する制御信号ＲＯＴによって選択される。
【０２３５】
２２０ｚｈ
図１６Ｃの中の構成部品２２０ｚｈは、インバータである。それは、回転体回路２２０ｚｇから出力信号を受信し、それはそれらの信号の逆数を生成する。
【０２３６】
２２０ｚｉ
図１６Ｃｎ中の構成部品２２０ｚｉは、２かける１のマルチプレクサである。このマルチプレクサに対する一方の入力は回転体回路２２０ｚｇの出力であり、他方の入力は、インバータ２２０ｚｈから生じる回転体回路の反転された出力である。このマルチプレクサは、制御信号ＺＭＥＭが真であるときに反転された入力を渡し、それ以外の場合、それは反転されていない入力を渡す。
【０２３７】
図１６Ａ、図１６Ｂ、及び図１６Ｃにおいては、多くのさまざまな制御信号が、導体２２１ａ〜２２１ｍのそれぞれのグループで発生するとして示される。それらの導体のすべては、制御装置２４０から生じる集合２２１の中にある。それらの制御信号がどのようにして生成されるのかは、図１６Ｄ〜図１６Ｇに関連してここに説明されるだろう。
【０２３８】
まず図１６Ｄを参照すると、それは図１６Ａ〜図１６Ｃの回路構成要素によって実行される、ある特定のＡＰＧ命令２６１を示す。この命令２６１は、導体２０１ａを介して図１４ＡのＡＰＧ制御装置２４０で受け取られ、応じてＡＰＧ制御装置２４０が、図１６Ａ〜図１６Ｃの段２２０に導体２２１上の多様な制御信号を送信する。
【０２３９】
命令２６１は、２つのワードＷ０とＷ１から成り立つ。ワードＷ０は、命令を特定するＯＰ３１という演算コードを含む。ワードＷ１は複数のフィールドを含み、それらは以下の制御信号のすべてを指定する。つまり、ＸＳＥＬ、ＹＳＥＬ、ＬＦＵＮＣ、ＭＦＵＮＣ、ＤＡＬＵＯＰ、ＯＵＴＳＥＬ、ＶＡＬＳＥＬ及びＲＯＴである。これらの制御信号のそれぞれは、デジタルで符号化される複数の異なる値のいずれか１つを有することがあり、それぞれの値が図１６Ｄに示されるようにある特定の関数を指定する。
【０２４０】
例えば、フィールドＸＳＥＬが「０」という値を有するときに、マルチプレクサ２２０ｑはＸＤバスのビット０での信号をその出力に渡す。フィールドＸＳＥＬが「１」という値を有するとき、マルチプレクサ２２０ｑはＸＤバスのビット１での信号をその出力に渡す等である。別の例として、フィールドＬＦＵＮＣが「１」という値を有するとき、マルチプレクサ２２０ｕは、インバータ２２０ｓからの信号をその出力に渡す。別の例として、フィールドＤＡＬＵＯＰが「５」という値を有するとき、回路２２０ｗは、その入力に対し排他的否定和を実行し、ＤＡＬＵバスで結果を生成する。依然として別の例として、フィールドＯＵＴＳＥＬが「３」という値を有するときに、マルチプレクサ２２０ｚｃは信号ＸＤ＝ＹＤの逆数をその出力に渡す。
【０２４１】
ここで図１６Ｅを参照すると、それは、図１６Ａの回路構成要素によって実行される別のＡＰＧ命令２７２を示す。この特定の命令は、２つのワードＷ０とＷ１から成り立ち、それはワードＷ０で発生するＯＰ３２という演算コードによって特定される。そのワードは、図１６Ａの構成部品２２１内にある、スクランブラ制御レジスタのＸ集合またはスクランブラ制御レジスタのＹ集合またはスクランブラ制御レジスタのｚ集合のいずれかを選択するＸＹＺフィールドも含む。
【０２４２】
命令２６２のワードＷ１は、ＳＥＴＴＩＮＧとＳＡ１５〜ＳＡ０と呼ばれる２つのフィールドを含む。フィールドＳＡ１５〜ＳＡ０は、ＸＹＺフィールドによって選択される集合の中の１６台のレジスタの内の１つを選択する。その１つの選択されたレジスタは、図１６Ａの書き込み制御回路２２０ｊによって作成される。このようにして命令２６２を活用することにより、ＸＹＺスクランブラ制御レジスタのそれぞれ１つが任意の所望される設定値で作成できる。
【０２４３】
ここで図１６Ｆを見ると、それは、図１６Ｂの回路構成要素によって実行される依然として別のＡＰＧ命令を示す。この特定の命令は、２つのワードＷ０とＷ１から成り立ち、それはワードＷ０で発生する演算コードＯＰ３３によって特定される。命令２６３ののワードＷ１がＭＡＳＫ＿ＤＡＴＡと呼ばれるフィールドを含み、ＭＡＳＫ＿ＤＡＴＡフィールドは図１６Ｂのレジスタ２２０ｘの中に書き込まれる。その書き込みは、導体２２１ｊの上の制御信号ＯＰ３３に応じて動作する書き込み制御回路２２０ｙによって実行される。
【０２４４】
次に図１６Ｇを参照すると、それは、図１６Ｃの回路構成要素によって実行される別のＡＰＧ命令２６４を示す。このＡＰＧ命令は、２つのワードＷ０１とＷ１から成り立ち、それはワードＷ０で発生する演算コードＯＰ３４によって特定される。ワードＷ１はＶＡＬＵＥ＿ＤＡＴＡと呼ばれるフィールドを含む。命令２６４が実行されると、フィールドＶＡＬＵＥ＿ＤＡＴＡは図１６Ｃのレジスタ２２０ｚｄに記憶される。その書き込みは、導体２２１ｍで発生する制御信号ＯＰ３４に応じて書き込み制御回路２２０ｚｅによって実行される。
【０２４５】
ここで、図１６Ａ〜図１６Ｇの回路構成要素及び命令が、集積回路チップを紙面するＴＤＩ信号、ＥＴＤＯ信号、及びＭＡＳＫ信号を生成するために、どのようにして３段パイプラインの第２段として使用できるのかを示す例を考える。この例では、試験されるチップは、第１段２１０とともに前述されたのと同じメモリチップである。チップは、メモリセルの４つの矩形アレイを含み、それぞれのアレイのセルは１，０２４行と６４列で配列された。
【０２４６】
前記例では、第１段２１０が、仮想アドレス及び対応するデータの１つまたは２つの別個のシーケンスを生成し、それらのアドレス及びデータは出力レジスタ２１０ｂに連続して記憶された。ここで一定の時に、第１段の出力レジスタ２１０ｂの内容が、第２段の入力レジスタ２２０ａに転送される。それから、第２段入力レジスタ２２０ａにある仮想アドレス及びデータは、図１６Ａ〜図１６Ｃの回路構成要素によって処理されるようになる。
【０２４７】
第２段の前記処理は、６つの連続時間間隔△ｔ１〜△ｔ６で発生する。最初に、時間間隔△ｔ１の間、３つの入力レジスタＸ１Ａ、Ｙ１Ａ及びＺ１Ａは、図１６Ａの回路構成要素によって作用され、それがレジスタＸ１’に記憶される出力を生成する。次に、時間間隔△ｔ２の間、３台の入力レジスタＸ２Ａ、Ｙ２Ａ、及びＺ２Ａの内容は、図１６Ａの回路構成要素によって作用され、それが、レジスタＸ２’に記憶される出力を生成する。それから、時間間隔△ｔ３の間、３台のレジスタＸ１Ａ、Ｙ１Ａ及びＺ１Ａは、図１６Ａ内の回路構成要素によって作用され、それがレジスタＹ１’内で記憶される出力を生成する。それから、時間間隔△ｔ４の間、３台の入力レジスタＸ２Ａ、Ｙ２Ａ、及びＺ２Ａが、図１６Ａの回路構成要素によって作用され、それがレジスタＹ２’に記憶される出力を生成する。
【０２４８】
次に、時間間隔△ｔ５の間、５台の入力レジスタＸ１Ａ、Ｙ１Ａ、Ｚ１Ａ、Ｘ１Ｄ、及びＹ１Ｄが、図１６Ａ〜図１６Ｃの回路構成要素のすべてによって作用され、それがレジスタＤ１’に記憶される出力を生成する。最後に、時間間隔△ｔ６の間に、５台の入力レジスタＸ２Ａ、Ｙ２Ａ、Ｚ２Ａ、Ｘ２Ｄ、及びＹ２Ｄが、図１６Ａ〜図１６Ｃの回路構成要素のすべてによって作用され、それが、レジスタＤ２’に記憶される出力を生成する。
【０２４９】
時間間隔△ｔ１、△ｔ３、及び△ｔ５の３つを通して、２かける１のマルチプレクサ２２０ｅ、２２０ｆ、２２０ｇ、２２０ｏ及び２２０ｐが、それぞれそれらの入力Ｘ１Ａ、Ｙ１Ａ、Ｚ１Ａ、Ｘ１Ｄ及びＹ１Ｄを渡す。逆に、その他の３つの時間間隔△ｔ２、△ｔ４、及び△ｔ６を通して、それらのマルチプレクサが、それぞれそれらの入力Ｘ２Ａ、Ｙ２Ａ、Ｚ２Ａ、Ｘ２Ｄ及びＹ２Ｄを渡す。
【０２５０】
また、時間間隔△ｔ１と△ｔ２の２つを通して、読み取り制御回路２２０ｋが、導体２２１ｄ上のＸスクランブラ制御レジスタの内容をマルチプレクサ２２０ｈに送信する。時間間隔△ｔ３と△ｔ４の間、読み取り制御回路２２０ｋは、導体２２０ｄでのＹスクランブラ制御レジスタの内容をマルチプレクサ２２０ｈに送信する。そして、時間間隔△ｔ５と△ｔ６の間、読み取り制御回路２２０ｋが、導体２２１ｄでのＺスクランブラ制御レジスタの内容をマルチプレクサ２２０ｈに送信する。
【０２５１】
第２段２２０の中での前記処理のために、入力レジスタＸ１Ａ、Ｘ２Ａ、Ｙ１Ａ及びＹ２Ａの中にある仮想アドレスのすべてが、対応する物理アドレスに変換されるようになる。例えば、レジスタＸ１Ａの仮想アドレスを変換するために、１６台のマルチプレクサ２２０ｈは、それぞれＸＡバスまたはＹＡバスまたはＺＡバスである特定のビットを選択する。それらの選択されたビットがＸメモリ２２０Ｌの中のワードを読み取るアドレスを形成し、そのワードが物理アドレスとしてレジスタＸ１’に記憶されるようになる。同様にして、レジスタＹ１Ａ内の仮想アドレスを変換するために、１６台のマルチプレクサ２２０ｈは、それぞれＸＡバスまたはＹＡバスまたはＺＡバスからビットを選択する。それらの選択されたビットは、Ｙメモリ２２０Ｍ内のワードを読み取るアドレスを形成し、そのワードは、物理アドレスとしてレジスタＹ１’に記憶されるようになる。
【０２５２】
やはり第２段２２０内での前記処理のために、入力レジスタＸ１ＤとＹ１Ｄからのデータが、出力レジスタＤ１内に記憶される異なるデータに変換されるようになる。同様に、入力レジスタＸ２ＤとＹ２Ｄからのデータは、それから出力レジスタＤ２’に記憶される別のデータに変換されるようになる。このデータ変換プロセスの間に、図１６Ｂ及び図１６Ｃでの回路は、制御信号ＸＳＥＬ、ＹＳＥＬ、ＬＦＵＮＣ、ＭＦＵＮＣ、ＤＡＬＵＯＰ、ＯＵＴＳＥＬ、ＶＡＬＳＥＬ及びＲＯＴによって指定される多様な演算を実行する。それらの制御信号は、最後に実行された図１６Ｄの命令２６１によって設定され、それらは図１４Ａの制御装置２４０の内側にあるレジスタ（図示されていない）に保持される。
【０２５３】
６つの連続時間間隔△ｔ１〜△ｔ６での処理のすべてが第２段２２０によって完了された後に、第２段出力レジスタ２２０ｂが、第３段２３０の入力レジスタ２２０ａに転送される準備ができている（つまり、フォーマッタ段）。その転送が発生すると、フォーマッタ段は、それにより集積回路チップを紙面する信号ＡＴＤＩ、ＡＥＴＤＯ及びＡＭＡＳＫを生成するその入力レジスタの内容に対して追加の処理を実行するだろう。
【０２５４】
フォーマッタ段２３０の１つの好ましい実施態様が、図１７Ａと図１７Ｂに詳細に示される。この特定の実施態様は、参照番号２３０ａ〜２３０ｑによって図１７Ａと図１７Ｂに特定される構成部品のすべてから構成され、それらの構成部品のそれぞれが表５に後述される。
【０２５５】
表５
構成部品 説明
２３０ａ
図１７Ａの中の構成部品２３０ａは、フォーマッタ段２３０への入力レジスタのすべてから成り立つ。これらの入力レジスタは、レジスタＸ１、Ｙ１、及びＤ１から成り立つ第１集合、及びレジスタＸ２、Ｙ２及びＤ２から成り立つ第２集合に区分される。これらの入力レジスタは、図１４Ａに示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力Ｄ及び出力Ｑを有する。
【０２５６】
２３０ｂ
図１７Ａの中の構成部品２３０ｂは、フォーマッタ段２３０の中の出力レジスタのすべてから成り立つ。これらの出力レジスタは、ＡＴＤＩレジスタ、ＡＥＴＤＯレジスタ及びＡＭＡＳＫレジスタであり、それらは図１４Ａに示されるのと同じ出力レジスタである。各出力レジスタは、データ入力Ｄ、クロック入力ＣＫ、及び出力Ｑを有する。これらの出力レジスタは、それぞれ、導体２０１ｂ、２０１ｃ、及び２０１ｄでの出力信号ＡＴＤＩ、ＡＥＴＤＯ及びＡＭＡＳＫを送信し、それらの導体は、図１４Ａと図１４Ｂに図示されるのと同じ導体である。
【０２５７】
２３０ｃ
図１７Ａの中の構成部品２３０ｃは、入力レジスタ２３０ａのすべてのための書き込み制御回路である。この書き込み制御回路は、同時に入力レジスタ２３０ａのすべてに、第２段２２０からの対応する出力レジスタをロードする。この動作は、集合２３１の中にある導体２３０ａ上にある、制御信号ＵＰＤＡＴＥ−ＳＴＡＧＥ−３に応じて発生する。
【０２５８】
２３０ｄ
図１７Ａの中の構成部品２３０ｄは、１３８の入力と１つの出力を有するマルチプレクサである。各入力レジスタＸ１、Ｘ２、Ｙ１及びＹ２は、マルチプレクサ２３０ｄに１６のビットアドレスを送信する。それぞれの入力レジスタＤ１とＤ２は、マルチプレクサ２３０ｄに３６のビットデータワードを送信し、残りの入力は「０」と「１」である。どの特定的な入力が、マルチプレクサ２３０Ｄを通して渡されるようになるのかは、図１７Ｂによって示されるように、フォーマッタ段によって内部的に生成される制御信号ＣＦＭＤ１によって選択される。
【０２５９】
２３０ｅ
図１７Ａの中の構成部品２３０ｅは７４の入力と単一の出力を有するマルチプレクサである。各入力レジスタＤ１とＤ２は、マルチプレクサ２３０ｅに３６ビットのデータワードを送信し、残りの入力は「０」と「１」である。どの特定の入力がマルチプレクサ２３０ｅを通って渡されるようになるのかは、図１７Ｂに図示されるように、フォーマッタ段によって内部に生成される制御信号ＣＦＭＤ２によって選択される。
【０２６０】
２３０ｆ
図１７Ａの中の構成部品２３０ｆは、直列入力Ｄ及び並列出力Ｑを有する直列／並列シフトレジスタである。入力Ｄでの直列データは、マルチプレクサ２３０ｄの出力から生じる。その直列データの１ビットは、ＢＩＴＣＬＫと呼ばれるクロック信号のそれぞれの正の端縁によってレジスタ２３０ｆの中に時刻を記録される。ＢＩＴＣＬＫ信号は、集合２３１の中にある導体２３１ｂで発生する。
【０２６１】
２３０ｇ
図１７Ａの中の構成部品２３０ｇは、直列入力Ｄ及び並列出力Ｑを有する直列／並列シフトレジスタである。入力Ｄでの直列データは、マルチプレクサ２３０ｅの出力から生じる。その直列データの１ビットが、クロック信号ＢＩＴＣＬＫのそれぞれの正の端縁によってレジスタ２３０ｇの中に時刻を記録される。
【０２６２】
２３０ｈ
図１７Ａの中の構成部品２３０ｈは、直列入力Ｄと並列出力Ｑを有する直列／並列レジスタである。直列データ入力Ｄは、図１７Ｂのレジスタ２２０ｑから信号ＣＦＭＤ３を受信する。その直列データの１つのビットが、クロック信号ＢＬＴＣＬＫのそれぞれの正の端縁によってレジスタ２３０ｈの中に時刻を記録される。
【０２６３】
２３０ｉ
図１７Ａの中の構成部品２３０ｉは、１組の入力Ｄ１とＤ２、及び対応する組の出力Ｑ１とＱ２を有する遅延バッファである。入力Ｄ１は、レジスタ２３０ｇから並列出力信号を受信し、入力Ｄ２は、レジスタ２３０ｈから並列出力信号を受信する。Ｄ１入力とＤ２入力での信号は、集合２３１の中にある導体２３１ｂ上で発生する、ＷＤＣＬＫと呼ばれるクロック信号のそれぞれの正の端縁に応じて遅延バッファ２３０ｉに記憶される。それらの記憶されている信号は、それ以降、クック信号ＷＤＣＬＫの所定数のサイクルの後に出力Ｑ１とＱ２で再生される。
【０２６４】
２３０ｊ
図１７Ｂの中の構成部品２３０ｊは、データ入力Ｄと出力Ｑを有するレジスタである。データ入力Ｄは、図１５Ｇに図示されるように、命令２５４のワードＷ１であるＰＡＧＥフィールドを受信する。ＰＡＧＥフィールドは、集合２３１の中にある導体２３１ｄで送信される。
【０２６５】
２３０ｋ
図１７Ｂの中の構成部品２３０ｋは、データ入力Ｄ及び出力Ｑを有するレジスタである。データ入力Ｄは、図１５Ｇに示されるように、命令２５４のワードＷ１内にあるＣＯＵＮＴフィールドを受信する。ＣＯＵＮＴフィールドは、集合２３１の中にある導体２３１ｅで送信される。
【０２６６】
２３０Ｌ
図１７Ｂの構成部品２３０Ｌは、レジスタ２３０ｊと２３０ｋのための書き込み制御回路である。この回路は、図１５Ｇの命令２５４が実行中であることを示す制御信号ＯＰ２４に応じて、ＰＡＧＥフィールドをレジスタ２３０ｊに書き込み、ＣＯＵＮＴフィールドをレジスタ２３０ｋに書き込む。信号ＯＰ２４は、集合２３１の中の導体２３１ｆで発生する。
【０２６７】
２３０ｍ
図１７ｂの中の構成部品２３０ｍは、データ入力Ｄ、出力Ｑ、及びロード制御入力Ｌを有するレジスタである。このレジスタは、フォーマッタ段の中でアクティブに使用されているページ数を保持し、そのページ数はＱ出力のＡＣＴＩＶＥ−ＰＧ信号によって指定される。アクティブページ番号は、導体２３１ａでのＵＰＤＡＴＥ−ＳＴＡＴＥ−３に応じて、レジスタ２３０ｊから受信される。
【０２６８】
２３０ｎ
図１７Ｂの中の構成部品２３０ｎは、データ入力Ｄ、出力Ｑ、クロック入力ＣＫ及びロード入力Ｌを有するカウンタである。このカウンタは、フォーマッタ段の中でアクティブに使用されているカウントを保持し、そのカウントは、Ｑ出力でのＡＣＴＩＶＥ−ＣＮＴ信号によって示される。初期カウントは、ＵＰＤＡＴＥ−ＳＴＡＧＥ−３制御信号に応じてレジスタ２３０ｋから受信される。カウンタ２３０ｎは、それがクロック信号ＢＩＴＣＬＫの正の端縁を受信するたびに、それが保持するカウントを１、減分する。
【０２６９】
２３０ｏ
図１７Ｂの中の構成部品２３０ｏは、カウンタ２３０ｎ内でのアクティブなカウントがいつゼロに減分されたのかを検出する回路である。それが発生すると、構成部品２３０ｏは、制御モジュール２４０に移動する集合２３１導体２３２ａでＺＥＲＯ−ＣＮＴと呼ばれる制御信号を生成する。
【０２７０】
２３０ｐ
構成要素２３０ｐはＣＦＭＤと呼ばれる複数の制御ワードを記憶するメモリである。これらの制御ワードは、メモリ内の「Ｍ」枚のページに区分され、各ページが「Ｎ」個の制御ワードを保持する。ある実施態様では、Ｍは１０２４であり、Ｎは２５６である。メモリ２３０ｐ内でのある特定のページは、レジスタ２３０ｍからのＡＣＴＩＶＥ−ＰＧ信号によってアドレス指定され、アドレス指定されるページの中の１つの特定の制御ワードは、カウンタ２３０ｎからＡＣＴＩＶＥ−ＣＮＴ信号によって選択される。
【０２７１】
２３０ｑ
構成部品２３０ｑは、データ入力Ｄ、出力Ｑ及びクロック入力ＣＫを有するレジスタである。データ入力Ｄは、ＡＣＴＩＶＥ−ＰＧ信号及びＡＣＴＩＶＥ−ＣＮＴ信号によって制御メモリからそれぞれの特定の制御ワードＣＦＭＤを連続して受信する。１つの制御ワードは、それがクロック信号ＢＩＴＣＬＫの正の端縁を受信するたびにレジスタ２２０ｑに記憶される。
【０２７２】
ここで、図１７Ａと図１７Ｂの構成部品のすべてがＡＴＤＩ試験信号、ＡＴＥＤＯ試験信号、及びＡＭＡＳＫ試験信号を生成するために対話する方法が説明されるだろう。当初、図１５Ｇの命令２５４が、第１段の出力レジスタが、第２段によって処理される準備ができている仮想アドレス及びデータワードを保持することを示すために実行されるだろう。その命令２５４が実行されると、ＰＡＧＥフィールドとＣＯＵＮＴフィールドが、図１７Ｂのレジスタ２３０ｊと２３０ｋの中に書き込まれるだろう。
【０２７３】
それ以降、第１段の出力レジスタの内容は、第２段の入力レジスタに転送されるだろう。それから、第２段の入力レジスタの内容は、前述されたように６つの連続する時間期間△Ｔ１〜△Ｔ６の間に処理されるだろう。それが発生した後、第２段からの出力レジスタの内容が、第３段の入力レジスタに転送される準備ができている。
【０２７４】
第３段入力レジスタへの実際の転送は、集合２３１の中の導体２３１ａでのＡＰＧ制御装置２４０からの制御信号ＵＰＤＡＴＥ−ＳＴＡＧＥ−３に応じて発声する。また、ＵＰＤＡＴＥ−ＳＴＡＧＥ−３制御信号に応じて、レジスタ２３０ｊ内のＰＡＧＥは、アクティブページレジスタ２３０ｍに転送され、レジスタ２３０ｋ内のＣＯＵＮＴがカウンタ２３０ｎに転送される。
【０２７５】
カウンタ２３０ｎがロードされた後、それが含むカウントは、クロック信号ＢＩＴＣＬＫの各正の端縁に応じて１減分される。また、カウンタ２３０ｎによって生成されるカウントごとに、１つの制御ワードがメモリ２３０ｐから読み出され、レジスタ２３０ｑに記憶される。
【０２７６】
レジスタ２３０ｑに記憶される各制御ワードは、それぞれマルチプレクサ２３０ｄ、マルチプレクサ２３０ｅ、及び直列／並列シフトレジスタ２３０ｈに送信される制御信号ＣＦＭＤ１、ＣＦＭＤ２、及びＣＦＭＤ３に区分される。ＣＦＭＤ１信号は、マルチプレクサ２２０ｄにシフトレジスタ２３０ｆのために１ビットを選択させ、ＣＦＭＤ２信号はマルチプレクサ２３０ｅにシフトレジスタ２３０ｇのために１つのビットを選択させ、ＣＦＭＤ３信号はシフトレジスタ２３０ｈに直接的に送信される。
【０２７７】
ビットクロック信号のそれぞれの正の端縁が発生すると、シフトレジスタ２３０ｆ、２３０ｇ及び２３０ｈは、そのＤ入力に送信されるビットを記憶する。それから、合計１６個のビットがシフトレジスタ２３０ｆ、２３０ｇ、及び２３０ｈのそれぞれに記憶された後で、それらの並列出力が使用される。具体的には、シフトレジスタ２３０ｆの並列出力は、ＡＴＤＩ出力レジスタにロードされ、シフトレジスタ２３０ｇと２３０ｈの並列出力は、遅延バッファ２３０ｉのそれぞれＤＩ入力とＤ２入力にロードされる。遅延バッファ２３０ｉにロードされるそれらの信号は、それ以降、クロック信号ＷＤＣＫの所定数のサイクル後に、それ以降、出力レジスタＡＥＴＤＯとＡＭＡＳＫに送信される。
【０２７８】
出力レジスタ２３０ｂから、導体２０１ｂ、２０１ｃ及び２０１ｄが、それぞれ信号ＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫを、図１４Ｂの前述された回路に搬送し、それらの回路が、試験されなければならない集積回路チップに信号を送信する。試験プロセスの間、信号ＡＴＤＩは、チップの中に直列に書き込まれ、それが信号ＡＥＴＤＯとＡＭＡＳＫと直列に比較される直列応答を生じさせる。チップからのこの応答は、信号ＡＴＤＩがチップの中に書き込まれる時間を基準にして一定の遅延後に発生し、その遅延は、図１７Ａの遅延バッファ２３０ｉによって補償される。
【０２７９】
シフトレジスタ２３０ｆ、２３０ｇ、及び２３０ｊを直列にロードし、１６ビットのワードでのそれらの出力を出力レジスタ２３０ｇに送信する前述のプロセスは、カウンタ２３０ンがそのカウントをゼロに減分するまで繰り返す様式で進行する。これが発生すると、ゼロ検出回路２３０ｏが、導体２３２ａでのＺＥＲＯ−ＣＮＴ信号を図１４ＡのＡＰＧ制御回路２４０に送信する。
【０２８０】
ＡＰＧ制御装置２４０内で、第２段２２０の状態は、出力レジスタ２２０ｂが、第３段２３０の入力レジスタに転送する準備ができている新しいデータを含むかどうかを判断するために試験される。このような状態が損座右する場合には、ＡＰＧ制御装置２４０は、導体２３０ａで制御信号ＵＰＤＡＴＥ−ＳＴＡＧＥ−３を生成する。応じて、第２段２２０の出力レジスタの内容は、第３段２３０の入力レジスタに転送される。２３０ｊのレジスタ内の別のＰＡＧＥは、アクティブなページレジスタ２３０ｍに転送され、レジスタ２３０ｋ内の別のＣＯＵＮＴは、カウンタ２３０ｎに転送される。それから、プロセス全体が、前述されたように続行する。
【０２８１】
ここで図１８を見ると、それは、３つの段が動作するシーケンスを描くタイミング図を示す。図１８では、第１段２１０が、時間間隔Ｔ１Ｓ２の間に仮想アドレス及び対応するデータの第１集合を生成する。それ以降、時下ン間隔Ｔ１Ｓ２の間、第２段２２０が、仮想アドレスと対応するデータの第１集合を、物理アドレスと対応するデータの第１集合に変換する。それ以降、時間間隔Ｔ１Ｓ３の間、第３段２３０は、物理アドレスと対応するデータの第１集合を使用して、集積回路チップを試験する直列ビットストリームＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫを生成する。
【０２８２】
時間間隔ＴｉＳ１で第１段によって生成される仮想アドレスの集合ごとに、第２段及び第３段が、それぞれ時間間隔ＴｉＳ２とＴｉＳ３デ対応するタスクを実行する。ここえは「１」は任意の正の整数である。このようにして、例えば、仮想ドレスの第３集合及び物理アドレスの第３集合及び出力信号の第３集合は、それぞれ時間間隔Ｔ３Ｓ１、Ｔ３Ｓ２、及びＴ３Ｓ３中に生成される。このプロセスは、図１８に示されるように、第１段が仮想アドレス及び対応するデータの新しい集合を生成するのを停止するまで３つのドットの集合によって図１８に示される。
【０２８３】
図１８の検査は、一定のときに、段２１０、２２０、及び２３０の３つすべてが、アドレスとデータの異なる集合で同時に動作することを示す。例えば、３つの時間間隔Ｔ３Ｓ１、Ｔ２Ｓ２、及びＴ１Ｓ３の部分が重複する。時間間隔Ｔ３Ｓ１の間、第１段２１０は仮想アドレスと対応するデータの第３の集合を生成する。時間間隔Ｔ２Ｓ２の間、第２段２２０が、仮想アドレスと対応するデータの第２集合を、物理アドレスと対応するデータの第２集合に変換しており、時間間隔Ｔ１Ｓ３の間に、第３段２３０が、出力信号ＡＴＤＩ、ＡＥＴＤＯ及びＡＭＡＳＫの第１集合を生成している。
【０２８４】
図１８の検査は、さらに、第３段時間間隔Ｔ１Ｓ３、Ｔ２Ｓ３、Ｔ３Ｓ３等の間に隙間が発生しないことを示す。その結果として、第３段出力信号ＡＴＤＩ、ＥＴＤＯ及びＡＭＡＳＫは、ある時間間隔から次の時間間隔へ連続的である直列ビットストリームで発生する。この連続的な出力を達成するために、第１段の時間間隔Ｔ１Ｓ１、Ｔ１Ｓ２等のそれぞれと、第２段の時間間隔Ｓ２Ｔ１、Ｓ２Ｔ２等のそれぞれは、第１段の時間間隔のそれぞれより短くなくてはならない。
【０２８５】
前記制約のために、第１段時間間隔の間では隙間が発生し、第２段時間間隔の間で隙間が発生する。第１段時間間隔間の隙間の間、第１段２１０は、それが、仮想アドレスと対応するデータの別の集合を生成し続ける前に、一定のイベントが発生するまで留まる待機状態にある。同様に、第２段時間間隔のそれぞれの間の隙間の間、第２段２２０は、それが、仮想アドレスを物理アドレスに変換するプロセスを進める前に、一定のイベントが発生するまで留まる待機状態にある。
【０２８６】
第１段２１０と第２段２２０が前記待機状態にどのようにして入り、終了するのかが、ここで図１９に関連して説明されるだろう。その図では、３つの段のそれぞれに別個の状態図が示されている。図１９に描かれている状態のすべて、及びある状態から別の状態への遷移は、図１４Ａの制御モジュール２４Ｄによって実現される。
【０２８７】
図１９の状態図の多様な点で、図２０に図示される２つの状態制御フリップフロップが参照され、それらの２つのフリップフロップ２４１と２４２は、図１４Ａの制御装置２４０内に含まれる。各フリップフロップは、設定された入力Ｓ及びリセットされた入力Ｒ、及び出力Ｒを有する。フリップフロップ２４１は、第１段出力レジスタ２１０ｂの内容が、第２段２２０によって処理される準備ができているときに設定され、フリップフロップ２４２は、第２段出力レジスタ２２０ｂの内容が、第３段２３０によって処理される準備ができているときに設定される。これは、それぞれ「ＳＴＡＧＥ−１  ＯＲ’Ｓ  ＲＥＡＤＹ（段１論理和準備完了）」及び「ＳＴＡＧＥ−２  ＯＲ’Ｓ  ＲＥＡＤＹ（段２論理和準備完了）」である２つのフリップフロップ２４１と２４２の出力信号によって示される。
【０２８８】
ここで図１９の状態図を考えると、それは第１段２１０が実行するための命令を待機する状態３０１を示す。それらの命令は、図１５Ｃ、図１５Ｄ、図１５Ｅ、及び図１５Ｇに関連して前述された命令である。それらの命令の１つは制御装置２４０によって受信され、その制御装置は、図１５Ｇの命令２５４が受信されたかどうかを判断するために、参照番号３０２によって示されるように、試験を行う。命令２５４が受信されなかった場合には、制御装置２４０は、図１５Ａ〜図１５Ｆに関連して前述されたように、導体２１１ａ，２１１ｂ等で第１段２１０に制御信号を送信し、応じて、第１段２１０は受信された命令を実行する。これは、参照番号３０３によって示される。それから、第１段２１０が状態３０１に再び入る。
【０２８９】
比較して、制御装置２４０が試験３０２によって、図１５Ｇの命令が受信されたと判断する場合には、制御装置２４０は、第１段出力レジスタの内容が、第２段によって処理される準備ができていることを示すフリップフロップ２４１を設定する。それから、第１段は、それがリセットされるためにフリップフロップ２４１を待機する状態３０５に入る。そのリセットが発生すると、第１段は状態３０１に再び入り、実行するための別の命令を待機する。
【０２９０】
次に、第２段２２０の図１９の状態図を考えると、それは、第２段が、第１段の出力レジスタの内容が第２段によって処理される準備ができるまで留まる状態３１０を示す。そのイベントの発生は、設定されているフリップフロップ２４１によって示される。このようにして、フリップフロップ２４１が設定されるようになると、第２段２２０は別の状態３１１に入る。
【０２９１】
第２段２２０は、それが、第３段に転送される必要がある専用の出力レジスタ２２０ｂの中に物理アドレス及び対応するデータを有する場合に状態３１１に留まる。第２段出力レジスタ２２０ｂ内の物理アドレスとデータの存在は、設定されているフリップフロップ２４２によって示される。このようにして、状態３１１は、フリップフロップ２４２がリセットされるようになるまで終了される。
【０２９２】
状態３１１が終了されると、制御装置２４０は、制御信号ＵＰＤＡＴＥ＿ＳＴＡＧＥ２を導体２２１ａ上の第２段に送信し、それはフリップフロップ２４１をリセットする。これは、参照番号３１２で示される。それから、ＵＰＤＡＴＥ＿ＳＴＡＧＥ２制御信号に応じて、第２段２２０は、連続的に物理アドレスと対応するデータの集合を生成し、それはその出力レジスタ２２０ｂにそれらを記憶する。これは、参照番号３１３によって示される。それから、制御装置２４０は、参照番号３１４によって示されるようにフリップフロップ２４２を設定し、それは第２段出力レジスタ２２０ｂが第３段２３０によって処理される準備ができていることを意味する。
【０２９３】
次に、第３段２３０について図１９の状態図を考えると、それは、第３段が、第２段出力レジスタ２２０ｂの内容が第３段によって処理される準備ができるまで留まる状態３２０を示す。そのイベントの発生は、設定されているフリップフロップ２４２によって示される。このようにして、状態３２０は、フリップフロップ２４２が設定されるときに終了される。それから、参照番号３２１によって示されるように、制御装置２４０は、制御信号ＵＰＤＡＴＥ＿ＳＴＡＧＥ３を導体２３１ａ上の第３段に送信し、それはフリップフロップ２４２をリセットする。
【０２９４】
ＵＰＤＡＴＥ＿ＳＴＡＧＥ３制御信号に応じて、第２段出力レジスタ２２０ｂの内容が第３状態の入力レジスタ２３０ａに転送される。また、新しいページは、第３段のレジスタ２３０ｊからアクティブページレジスタ２３ｍに転送され、新しいカウントは第３段のレジスタ２３０ｋからアクティブカウンタ２３０ｎに転送される。それ以降、第３状態２３０は、前述されたように、アクティブページとアクティブカウントを使用し、出力ビットストリームＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫを連続して生成し、これが参照番号３２２と３４３によって示される。そのプロセスは、アクティブカウントが、その時点で第３段が状態３２０に再び入る、ゼロというカウントに達するまで続行する。
【０２９５】
状態３２０に再び入るときにフリップフロップ２４２が設定される場合、状態３２０は直ちに終了するだろう。それから、参照番号３２１、３２２、及び３２３によって示されるイベントのすべてが繰り返され、その結果として、第３段によって生成されるビットストリームＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫでは隙間は発生しないだろう。状態３２０に再び入ると、フリップフロップ２４２が、事実上設定されることを保証するために、図１８の第１段時間間隔及び第２段時間間隔は、第３段時間間隔より短くなる必要がある。
【０２９６】
ここで図２１を見ると、それは、集積回路チップを試験する、出力ビットストリームＡＴＤＩ、ＡＴＥＤＯ、及びＡＭＡＳＫを生成するために使用されるプログラムを示す。このプログラムは、図１３のメモリ１３’に記憶され、それは、図１３及び以下の図と関連して、説明された回路構成要素のすべてによって実行される。
【０２９７】
図２１では、描かれているプログラムは、ステップＳ１０１〜Ｓ１１５として特定されるステップのシーケンスとして実行される。第１の５つのステップＳ１０１〜Ｓ１０５によって、多様な初期値が確立される。それ以降、以下のステップＳ１０６〜Ｓ１１５では、その間に出力信号ＡＴＤＩ、ＡＴＥＤＯ及びＡＭＡＳＫが生成される２つのプログラムループが実行される。
【０２９８】
図２１のプログラムによって生成される出力信号のすべては、メモリセルの物理的なアレイのためであり、それぞれのメモリセルは物理的な行アドレスと物理的な列アドレスを有する。しかし、図２１のプログラムでは、物理的な行と列のアドレスは、仮想行と仮想列のアドレスから生成される。
【０２９９】
ステップＳ１０１によって、開始仮想行アドレスは第１段２１０の入力レジスタＸＡに送信され、開始仮想列アドレスは第１段の入力レジスタＹＡに送信される。その後、ステップＳ１０２では、仮想アドレス限度が第１段の境界チェック回路２１０ｋに送信される。このステップによって、図１５ＦのレジスタＸＭＩＮとＸＭＡＸには、それぞれ、最小仮想行アドレスと最大仮想行アドレスがロードされ、同様にして、レジスタＹＭＩＮとＹＭＡＸにはそれぞれ最小仮想列アドレスと最大仮想列アドレスがロードされる。
【０３００】
次に、ステップＳ１０３では、第２段スクランブラ制御レジスタのすべてが初期化される。それらのレジスタは、図１６Ａの参照番号２２０ｉで特定される。このステップによって確立される設定値が、導体２２１ｂ上でマルチプレクサ２２０ｈに送信される制御信号を決定する。
【０３０１】
次に、ステップＳ１０４では、複数の制御信号が、図１６Ｂと図１６Ｄに示される第２段のデータ処理部分で確立される。具体的には、このステップＳ１０４は、図１６Ｄに関連して残術された制御信号ＸＳＥＬ、ＹＳＥＬ、ＬＦＵＮＣ、ＭＦＵＮＣ、ＤＡＬＵＯＰ、ＯＵＴＳＥＬ、ＶＡＬＳＥＬ、及びＲＯＴのすべてを確立する。
【０３０２】
次に、ステップＳ１０５では、それぞれの初期値が図１４Ｂの行カウンタ２５２と列カウンタ２５３に送信される。ここでは、行カウンタに送信される初期値は、仮想メモリアレイ内の行数であり、列カウンタに送信される初期値は仮想メモリアレイ内にある列数である。
【０３０３】
次に、ステップＳ１０６では、第１段の入力レジスタＸＡ内にある仮想行アドレスが、第１段の出力レジスタＸ１Ａ’とＸ１Ｄ’に送信される。それから、ステップＳ１０７で、第１段の入力レジスタＹＡ内にある仮想列アドレスが、出力レジスタＹ１Ａ’とＹ１Ｄ’に送信される。やはりステップ１０７によって、レジスタＹＡ内にある仮想列アドレスは１増分される。これらの演算は、図１５Ｃの命令２５１を実行することによって達成される。
【０３０４】
次に、ステップＳ１０８では、図１５Ｇの命令２５４が実行され、その結果としてフリップフロップ２４１が設定される。これは、第１段２１０の出力レジスタの内容が第２段２２０によって処理される準備ができていることを示す。その結果として、第２段２２０は、図１９の段の２つの状態図に関連して前述されたように、第１段出力レジスタの内容を記憶し、処理するために進むだろう。それ以降、第２段２２０の出力レジスタの内容は第３段による処理のために準備ができるだろう。それが起こると、第３段２３０は、図１９の第３段状態図に関連して前述されたように、第２段出力レジスタの内容を記憶し、処理するだろう。
【０３０５】
次に、列カウンタ２５３内のカウントが、図１４Ｂの状態機械４０によって１減分されるステップＳ１０９が実行される。残りのステップＳ１１０〜Ｓ１１５だけではなく、このステップＳ１０９も、ステップＳ１０８によって開始された第２段２２０と第３段２３０のための多様なタスクと並列で実行される。
【０３０６】
次に、ステップＳ１１０では、図１４Ｂの状態機械４０’が、それがゼロというカウントに達したかどうかを確かめるために列カウンタ２４２を試験する。カウントがゼロではない場合には、ステップＳ１１１が実行される。そこで、図１４Ｂの状態機械４０’が、第１段出力レジスタの内容が、段Ｓ１０６とＳ１０７によって確立されるように、第１段の入力レジスタに転送されたかどうかを判断するために試験を行う。この試験は、図２０のフリップフロップ２４１の出力信号を調べることによって行われる。フリップフロップ２４１が設定される場合、ステップＳ１１１は、フリップフロップ２４１がリセットされるまで繰り返される。それが発生すると、分岐はステップＳ１０６まで戻される。
【０３０７】
比較して、列カウンタ２５３のカウントがステップＳ１１０でゼロである場合には、ステップＳ１１２に分岐される。そこで、第１段の入力レジスタＸＡ内にある業アドレスが１増分される。それから、ステップＳ１１３では、行カウンタ２５２のカウントが１減分される。
【０３０８】
次に、ステップＳ１１４では、図１４Ｂの状態機械４０’が、行カウンタ２５２内のカウントを試験する。そのカウントがゼロに等しくならない場合には、列カウンタ２５３が、仮想メモリアレイ内にある列の数で再初期化されるステップＳ１１５が実行される。それから、ステップＳ１１１に分岐される。それ以外の場合、行カウンタのカウントがステップＳ１１４でゼロに等しくなると、試験信号は、アレイ内のあらゆるセルについて生成された。そしてこのようにして、試験信号の生成は完了する。
【０３０９】
図２１のプログラム内の各ステップは、図１３のメモリ１３内の１つまたは複数の命令によって指定される。例えば、ステップＳ１０１でロードされる初期値は、図１５Ｄの命令２５２の２つによって指定される。同様に、ステップＳ１０２の最小と最大のアドレス限度は、図１５Ｅの命令２５３の２つによって指定される。同様に、ステップＳ１０３のマルチプレクサ制御信号は、図１６Ｅの命令２６２の１６によってＸレジスタに指定され、Ｙレジスタ用のマルチプレクサ制御信号はそれらの命令の１６以上によって指定される。さらに、ステップＳ１０４で確立さえる制御信号は、図１６Ｂの単一命令２６１によって定義される。
【０３１０】
ステップＳ１１０、Ｓ１１１、及びＳ１１４で発生する試験及び分岐を実行するために、図１１の条件付きジャンプ命令３２が実行される。それから、行カウンタ２５２及び列カウンタ２５３のロード及び減分を実行するために、図２２の別の命令２６５が実行される。この命令２６５は、ＯＰ＝３５という演算コードによって特定される。
【０３１１】
命令２６５は、ＣＯＵＮＴ、ＤＥＣＬＤ、及びＲＯＷＣＯＬと呼ばれる３つのフィールドを有する。ＲＯＷＣＯＬフィールドは、行カウンタ２５２を選択する「０」という値、及び列カウンタ２５３を選択する「１」という値を有する。ＤＥＣＬＤフィールドは、減分演算を指定する「０」という値、及びロード演算を指定する「１」という値を有する。ロード演算が指定される場合には、ＣＯＵＮＴフィールドがＲＯＷＣＯＬフィールドによって特定されるカウンタにロードされる。減分演算が指定される場合には、ＲＯＷＣＯＬフィールドによって特定されるカウンタが１減分される。
【０３１２】
図２１の前述されたプログラムの１つの特定の特徴とは、それぞれが行と列の異なる物理的なレイアウトを有する任意の数のメモリアレイについて同じプログラムが使用できるという点である。この特徴は、任意の１つのアレイの特定の物理的なレイアウトが、段２のマルチプレクサ制御レジスタが初期化されるステップＳ１０３で対処されるために達成される。それらのレジスタを適切に初期化することによって、各仮想アドレスは、図１６Ａのマルチプレクサ２２０ｈ及びメモリ２２０Ｌと２２０ｍを介して、任意の所望される物理アドレスに変換される。
【０３１３】
図２１のプログラムの別の特徴は、それが、ステップＳ１０４を実現する命令を単に変更することによって、多くの異なるデータパターンについて試験信号ＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫを生成できるという点である。例えば、ステップＳ１０４がＤＡＬＵバスにレジスタＸ１Ｄ内のビットゼロを送信する、図１６Ｄの１つの命令２６１で実現される場合、メモリアレイの中のそれぞれの偶数番号の行が「０」で作成され、アレイの中でそれぞれの基数番号の行が「１」で作成されるだろう。比較して、ステップＳ１０４が、レジスタＹ１Ｄ内のビットゼロの逆数をＤＡＬＵバスに送信する図１６Ｄの１つの命令２６１によって実現される場合には、アレイのそれぞれの基数番号の列が「０」で作成され、アレイのそれぞれの偶数番号の列が「１」で作成されるだろう。
【０３１４】
また、算術パターン生成器を介した試験信号ＡＴＤＩ、ＡＥＴＤＯ、及びＡＭＡＳＫの生成が、図１３のシステムのただ１つの運転モードの間にだけ発生することが強調されなければならない。別の運転モードでは、試験信号ＴＤＩ、ＥＴＤＯ、及びＭＡＳＫはメモリ１３’から読み取られ、試験されなければならないチップに送信される。これらの２つの運転モードでは、図５、図６、図８、図９、及び図１０に図示される回路構成要素のすべては時分割される。このようにして、どちらかの運転モードでは、ＴＭＳ信号が状態機械４０’によって生成され、レジスタ４７に送信される。レジスタ４４〜４８のビットストリームのワードは、チップドライバ回路１１のすべてに導体１２ａ上で一斉送信され、チップドライバ回路は、試験されるチップからの予想される応答を、それらのチップからの実際の応答と比較する。
【０３１５】
本発明の１つの好ましい実施態様は、ここで詳細に説明されてきた。しかしながら、さらに、多様な変更及び修正が、発明の性質及び精神から逸脱することなく、描かれた好ましい実施態様の詳細に加えることができる。
【０３１６】
例えば、図１３〜図２２に説明されるアルゴリズムパターン生成器を用いると、ビットストリームＡＴＤＩ、ＡＥＴＤＯ及びＡＭＡＳＫのすべて３つが生成される。ただし、改良策として、それらのビットストリームの１つだけまたは２つが生成できる。この改良策を用いると、未使用のビットストリームを作成する回路構成要素は排除することができる。このようにして、例えば、ＡＴＤＩビットストリームだけが生成され、ＡＴＤＯビットストリームおよびＡＭＡＳＫビットストリームを生成するために使用される回路構成要素は排除できるだろう。
【０３１７】
同様に、図１４Ａでは、アルゴリズムパターン生成器の好ましい実施態様が、３つの段を含むと図示されている。しかしながら、改良策としては、それらの段の数は、減少または増加できるだろう。例えば、なんらかの新しい演算を実行するための追加段は、第２段と第３段の間に挿入できるだろう。代わりに、第２段及び第３段によって実行される関数は、単一の段の中に組み込むことができるだろう。
【０３１８】
また、改良策として、アルゴリズムパターン生成器の３つの段の任意の１つは、違うふうに構築される類似した段と置換できるだろう。このようにしてここに開示されているＡＰＧの各段は、別のアルゴリズムパターン生成器内で使用できる別個のモジュールである。
【０３１９】
また、別の改良策として、演算パターン生成器の各段によって実行される多様な命令は変更することができる。例えば、図１５Ｃでは、第１段によって実行される多様な関数を定義する、複数のフィールドが示され、それらのフィールドは第１段が実行する特定の演算を変更するために修正できる。同様にして、図１６Ｄでは、第２段によって実行される関数を定義する複数のフィールドが示され、それらのフィールドは、第２段が実行する関数を変更するために修正できる。
【０３２０】
その結果、発明が、示されている好ましい実施態様の詳細のすべてに制限されるのではなく、添付請求項によって定義されることが理解されるべきである。
【図面の簡単な説明】
【図１】集積回路チップを試験するためのベースシステムのブロック図を示す。そして、そのベースシステムは、本発明に従って、図１３〜図２２でここに示されるように修正される。
【図２】図１のチップ試験システムがどのようにして物理的に実装されるのかを示す。
【図３】集積回路チップを試験するために、図１のシステムによって実行される３つの異なる種類の可変長命令を示す。
【図４】図３の命令が試験プログラムを形成するためにどのようにして順番に配列されるのかの例を示す。
【図５】図１のシステムで選択可能な量発生するパターン生成器の内部詳細を示す。
【図６】図１のシステムで選択可能な量で発生するチップドライバ回路の内部詳細を示す。
【図７】図５のパターン生成器及び図６のチップドライバ回路が図１のシステムでどのように対話するのかを示す。
【図８】試験されたチップ内のエラーが検出される図１の各チップドライバ回路上の追加回路構成要素を示す。
【図９】複数のチップが、プログラム制御下の選択可能な部分集合の中で同時にまたは連続して試験される、図１の各ドライバ回路の追加回路構成要素を示す。
【図１０】図９の回路構成要素の一部である制御メモリの構造を示す。
【図１１】図１のチップ試験システムによって実行される３つの追加の種類の命令を示す。
【図１２】図３に示されている３つの命令に対して加えることのできる修正を示す。
【図１３】本発明に従って集積回路チップを試験する改良されたシステムを示す。そしてこの改良されたシステムは、アルゴリズムパターン生成器（ＡＰＧ）を図１のベースシステムに組み込むことによって得られる。
【図１４Ａ】図１３のＡＰＧのための好ましい内部構造を示す。
【図１４Ｂ】図１４Ａのアルゴリズムパターン生成器を図１３のシステムの残りに結合する、図１３の中のモジュール１２’の詳細を示す。
【図１５Ａ】図１４ＡのＡＰＧの第１段のある部分の詳細な論理図である。
【図１５Ｂ】図１４ＡのＡＰＧの第１段の別の部分の詳細な論理図である。
【図１５Ｃ】図１５Ａと図１５Ｂの第１段論理回路によって実行されるある命令を示す。
【図１５Ｄ】図１５Ａと図１５Ｂの第１段論理回路によって実行される別の命令を示す。
【図１５Ｅ】図１５Ａと図１５Ｂの第１段論理回路によって実行される第３命令を示す。
【図１５Ｆ】図１５Ａの第１段論理回路内に含まれる境界チェック回路の追加の詳細を示す。
【図１５Ｇ】図１４ＡのＡＰＧ内の第１段によって部分的に、及び図１４ＡのＡＰＧの第２段と第３段によっても部分的に実行される命令を示す。
【図１６Ａ】図１４ＡのＡＰＧ内の第２段のある部分の詳細な論理図である。
【図１６Ｂ】図１４ＡのＡＰＧ内の第２段の別の部分の詳細な論理図である。
【図１６Ｃ】図１４ＡのＡＰＧ内の第２段の依然として別の部分の詳細な論理図である。
【図１６Ｄ】図１６Ａ〜図１６Ｃの第２段論理回路によって実行される命令を示す。
【図１６Ｅ】図１６Ｃ〜図１６Ｅの第２段論理回路によって実行される別の命令を示す。
【図１６Ｆ】図１６Ａ〜図１６Ｃの第２段論理回路によって実行される依然として別の命令を示す。
【図１６Ｇ】図１６Ａ〜図１６Ｃの第２段論理回路によって実行される依然として別の命令を示す。
【図１７Ａ】ＡＰＧの第３段のある部分の詳細な論理図である。
【図１７Ｂ】図１４ａのＡＰＧの第３段の別の部分の詳細な論理図である。
【図１８】図１４Ａの第１段、第２段、及び第３段のための動作のシーケンスを示すタイミング図である。
【図１９】図１４のＡＰＧの第１段、第２段及び第３段のためのそれぞれの状態図を示す。
【図２０】図１９の状態図に参照される２状態制御フリップフロップを示す。
【図２１】図１３のシステムのメモリ内に記憶されるＡＰＧ用のプログラムを示す。
【図２２】図２１のプログラム内での図１５Ｃ、図１５Ｄ、図１５Ｅ、図１５Ｇ、図１６Ｄ、図１６Ｅ、図１６Ｆ及び図１６Ｇの命令とともに使用される別の命令を示す。
【図１】
0003591646.tif 000002
【図２】
0003591646.tif 000003
【図３】
0003591646.tif 000004
【図４】
0003591646.tif 000005
【図５】
0003591646.tif 000006
【図６】
0003591646.tif 000007
【図７】
0003591646.tif 000008
【図８】
0003591646.tif 000009
【図９】
0003591646.tif 000010
【図１０】
0003591646.tif 000011
【図１１】
0003591646.tif 000012
【図１２】
0003591646.tif 000013
【図１３】
0003591646.tif 000014
【図１４Ａ】
0003591646.tif 000015
【図１４Ｂ】
0003591646.tif 000016
【図１５Ａ】
0003591646.tif 000017
【図１５Ｂ】
0003591646.tif 000018
【図１５Ｃ】
0003591646.tif 000019
【図１５Ｄ】
0003591646.tif 000020
【図１５Ｅ】
0003591646.tif 000021
【図１５Ｆ】
0003591646.tif 000022
【図１５Ｇ】
0003591646.tif 000023
【図１６Ａ】
0003591646.tif 000024
【図１６Ｂ】
0003591646.tif 000025
【図１６Ｃ】
0003591646.tif 000026
【図１６Ｄ】
0003591646.tif 000027
【図１６Ｅ】
0003591646.tif 000028
【図１６Ｆ】
0003591646.tif 000029
【図１６Ｇ】
0003591646.tif 000030
【図１７Ａ】
0003591646.tif 000031
【図１７Ｂ】
0003591646.tif 000032
【図１８】
0003591646.tif 000033
【図１９】
0003591646.tif 000034
【図２０】
0003591646.tif 000035
【図２１】
0003591646.tif 000036
【図２２】
0003591646.tif 000037