(57)【特許請求の範囲】
【請求項１】
パターン発生器（１２）によって読出可能なプログラム記憶装置（１３）であって、集積回路チップを、前記チップ上のテストポートを介してテストするように前記パターン発生器に指示を与える可変長命令（３１，３２，３３，３７）を記憶し、
各々の可変長命令は、前記テストで用いるための少なくとも１つのシリアルビットストリーム（ＴＤＩ，ＥＴＤＯ，ＭＡＳＫ，ＴＭＳ）のセットと、前記セット中のビットストリームの数を示すコード（ＯＰ１−ＯＰ６，ＯＰ１０）とを含み、
前記セット中の各シリアルビットストリームは、ワードバウンダリ上で始まりかつ、１つのビットのインクリメントが予め定められた最小から予め定められた最大の範囲にわたる選択可能な数のビット（ＷＣＮＴ，ＢＣＮＴ）からなり、
未使用ビット（ＮＵ）のそれぞれのシリーズは、各シリアルビットストリームのすぐ後に始まりかつワードバウンダリ上で終わる、プログラム記憶装置。
【請求項２】
前記可変長命令（３１，３２，３３）は、前記チップを特定の状態に置くためのさらなる制御ビットストリーム（ＴＭＳ）を内部で生成するように前記パターン発生器（１２）に指示を与える、請求項１に記載のプログラム記憶装置（１３）。
【請求項３】
前記セットは、前記チップに書込むべき単一のビットストリーム（ＴＤＩ）からなり、前記制御ビットストリーム（ＴＭＳ）は、書込が起こる状態に前記チップを置く、請求項２に記載のプログラム記憶装置（１３）。
【請求項４】
前記セットは、前記チップからの出力データを選択しかつ比較するための２つのビットストリーム（ＥＴＤＯ，ＭＡＳＫ）からなり、前記制御ビットストリーム（ＴＭＳ）は、前記チップを、選択および比較が起こる状態に置く、請求項２に記載のプログラム記憶装置（１３）。
【請求項５】
前記セットは、前記チップにそれぞれ書込み、前記チップからの出力データを選択しかつ比較すべき３つのビットストリーム（ＴＤＩ，ＥＴＤＯ，ＭＡＳＫ）からなり、前記制御ビットストリーム（ＴＭＳ）は、前記チップを、書込、選択および比較が起こる状態に置く、請求項２に記載のプログラム記憶装置（１３）。
【請求項６】
前記セットは、前記チップを特定の状態に置く制御ビットストリーム（ＴＭＳ）を含む、請求項１に記載のプログラム記憶装置（１３）。
【請求項７】
前記セットは、前記チップが前記特定の状態にある間に前記チップに書込むべき１つのデータビットストリーム（ＴＤＩ）をさらに含む、請求項６に記載のプログラム記憶装置（１３）。
【請求項８】
前記セットは、前記チップが前記特定の状態にある間に前記チップからの出力データを選択しかつ比較するための２つのデータビットストリーム（ＥＴＤＯ，ＭＡＳＫ）をさらに含む、請求項６に記載のプログラム記憶装置（１３）。
【請求項９】
前記セットは、前記チップが前記特定の状態にある間に、前記チップにそれぞれ書込み、前記チップからの出力データを選択しかつ比較すべき３つのデータビットストリーム（ＴＤＩ，ＥＴＤＯ，ＭＡＳＫ）をさらに含む、請求項６に記載のプログラム記憶装置（１３）。
【請求項１０】
前記セットは、前記記憶装置中でワード（Ｗ１−２（ＷＣＮＴ））ごとにインタリーブされる多数のシリアルビットストリーム（ＥＴＤＯ，ＭＡＳＫ）を含む、請求項１に記載のプログラム記憶装置（１３）。
【請求項１１】
各シリアルビットストリームの前記範囲は少なくとも１０００ビットである、請求項１に記載のプログラム記憶装置（１３）。
【請求項１２】
各ワードは、シリアルビットストリームの８ビットの整数倍を保持する、請求項１に記載のプログラム記憶装置（１３）。
【請求項１３】
前記プログラム記憶装置は集積回路メモリである、請求項１に記載のプログラム記憶装置（１３）。
【請求項１４】
前記プログラム記憶装置は磁気記憶媒体である、請求項１に記載のプログラム記憶装置（１３）。
【発明の詳細な説明】
【０００１】
［関連事件］
この発明は、上記事件登録番号および名称によって識別されるように、他の２件の発明に関連し、それらは１つの共通の発明の詳細な説明によって本明細書中に記載される。これらの２件の関連発明は、米国連続番号第…号を有する、「異なるビットストリームをチップドライバ回路の選択可能なセットに同時にブロードキャストする、選択可能な数のパターン発生器を有する、チップをテストするための電子システム」（“Ａｎ Ｅｌｅｃｔｒｏｎｉｃ Ｓｙｓｔｅｍ ｆｏｒ Ｔｅｓｔｉｎｇ Ｃｈｉｐｓ Ｈａｖｉｎｇ ａ Ｓｅｌｅｃｔａｂｌｅ Ｎｕｍｂｅｒ ｏｆ Ｐａｔｔｅｒｎ Ｇｅｎｅｒａｔｏｒｓ ｔｈａｔ Ｃｏｎｃｕｒｒｅｎｔｌｙ Ｂｒｏａｄｃａｓｔ Ｄｉｆｆｅｒｅｎｔ Ｂｉｔ Ｓｔｒｅａｍｓ ｔｏ Ｓｅｌｅｃｔａｂｌｅ Ｓｅｔｓ ｏｆ Ｃｈｉｐ Ｄｒｉｖｅｒ Ｃｉｒｃｕｉｔｓ”）と題された事件登録番号５５０，６１０および；米国連続番号第…号を有する、「チップの電力消費を限定する、プログラム制御下の選択可能なサブセット中で多数のチップの組を同時にまたは順次にテストするための電子システム」（“Ａｎ Ｅｌｅｃｔｒｏｎｉｃ Ｓｙｓｔｅｍ ｆｏｒ Ｔｅｓｔｉｎｇ ａ Ｓｅｔ ｏｆ Ｍｕｌｔｉｐｌｅ Ｃｈｉｐｓ Ｃｏｎｃｕｒｒｅｎｔｌｙ ｏｒ Ｓｅｑｕｅｎｔｉａｌｌｙ ｉｎ Ｓｅｌｅｃｔａｂｌｅ Ｓｕｂｓｅｔｓ Ｕｎｄｅｒ Ｐｒｏｇｒａｍ Ｃｏｎｔｒｏｌ ｔｏ Ｌｉｍｉｔ Ｃｈｉｐ Ｐｏｗｅｒ Ｄｉｓｓｉｐａｔｉｏｎ”）と題された事件登録番号５５０，６１１として識別される。これら３件の発明に関する特許出願は、１９９９年…に米国特許庁に同時出願された。
【０００２】
【発明の背景】
この発明は、請求項に記載されるように、ワードバウンダリ上で終端する未使用ビットによって間隔をあけられかついかなる長さのチップテストビットストリームも生成する命令を含むプログラム記憶装置を含む。先行技術では、チップをテストするための関連の電子システムが米国特許第５，３９０，１２９号に開示されている。この先行技術のシステムは、同様にこの発明の譲受人であるユニシス・コーポレイション（Ｕｎｉｓｙｓ Ｃｏｒｐｏｒａｔｉｏｎ）に譲渡されている。
【０００３】
先行技術のチップテストシステムの単純化されたブロック図が特許’１２９の図２に示される。このシステムは、時分割バス５２を介して複数のドライバボード１００に結合されるコンピュータ５０を含み、各々のドライバボード１００は、テストされるべきいくつかの集積回路チップを保持するそれぞれのバーンインボード５００に結合される。
【０００４】
動作において、コンピュータ５０は、各々のドライバボード１００に、チップをテストするのに用いる、別個の組のテストデータパターンを順次送る。これらのテストデータパターンは大きなＳＲＡＭ中の各ドライバボードに記憶され、これは図３に参照番号１０７で示され、図９に参照番号１４５でより詳細に示される。任意のある時間にどの特定のドライバボードがテストデータパターンを受けかつ記憶するかは、図２のブロック図に示されるように、ドライバボード上のアドレス回路１００Ａによって定められる。
【０００５】
テストデータパターンがすべてのドライバボード１００上のＳＲＡＭ１４５に記憶された後、すべてのバーンインボード５００上のチップを並行してテストすることができる。それを行なうため、テストパターンは、ＳＲＡＭのすべてから同時に読出されかつ、図１４に示されるように、それぞれの出力ドライバモジュール１６４を通してバーンインボード５００のすべての上のチップに送られる。
【０００６】
特許’１２９中のチップテストシステムの１つの特定の特徴は、各バーンインボードが、ボード上でテストすべきチップのタイプを識別するＩＤコードを含むことである。そのＩＤコードはドライバボード１００によって感知され、コンピュータ５０に送られる。応答して、コンピュータ５０がドライバボードに送るテストデータパターンが、感知されるＩＤコードに適合される。
【０００７】
しかしながら、特許’１２９中のチップテストシステムは、図２のアーキテクチャが課すいくつかの大きな限界も有する。たとえば、コンピュータ５０は、ドライバボード１００のすべてにとって、テストデータパターンの唯一のソースである。その結果、チップテストシステムの動作の速度が限定される。なぜなら、コンピュータ５０は、バス５２を介して、テストデータパターンを一度に単一のドライバボードにしか送ることができないからである。
【０００８】
特許’１２９中のチップテストシステムの別の限界は、各々のドライバボード１００がバーンインボード５００上のチップのすべてを同時に常にテストすることである。しかしながら、各々のバーンインボードは、ボード上のチップが消費可能な総電力量に対する限界を元来有している。したがって、各バーンインボード５００上での総電力消費をある限界よりも下に保つためには、チップ当りの最大電力消費が増加するに従って、各バーンインボード上のチップの総数を減らさなければならない。
【０００９】
特許’１２９のチップテストシステムのさらに別の限界は、各ドライバボード上の大きなＳＲＡＭ１４５中の記憶済テストデータパターンがＳＲＡＭメモリセルを非常に非効率的に利用する可能性があることである。特許’１２９の図９は、各々のＳＲＡＭ１４５が１９アドレスビットを受取り、８データ出力ビットを有することを示し、したがって各ドライバ回路上のＳＲＡＭ１４５は８００万個のメモリセルを有する。しかしながら、あるタイプのチップは、時間によって数が異なるシリアルビットストリームのシーケンスをそれらに送ることによってテストされる。したがって、１つの時間間隔の間にＳＲＡＭ１４５がビットストリームを４つ送り、他の時間間隔の間にビットストリームを２つだけ送るならば、ビットストリームを２つ送っているときはＳＲＡＭの半分が無駄である。
また、先行技術では、米国特許第４，６８０，７３３号が可変長のビット構成をシリアル化／デシリアル化するための装置を開示し；米国特許第５，６５７，４４３号が特定用途向けメモリ機構のための向上したテストシステムを開示し；米国特許第５，２４３，２７４号がＡＳＩＣテスタを開示する。しかしながら、これらの特許は技術の一般的状態を規定するだけであり、特許’１２９の限界をいかに克服するかという問題に特に関連性があるわけではない。
【００１０】
したがって、本明細書中に開示されるチップテストシステムの主要な目的は、上記限界のすべてを扱いかつ克服することである。
【００１１】
【発明の概要】
この発明は、請求項に記載されるように、テストデータパターンの非効率な記憶に関する上記限界を扱う、開示されたチップテストシステムの１つの局面を含む。この発明に従うと、集積回路チップをテストするためのシステムは、チップをテストするため、ビットストリームのセットを指定する可変長命令を記憶するメモリに結合されるパターン発生器を含む。各々の可変長命令は、セット中のビットストリームの数を示すコードを含む。セット中の各々のビットストリームは、ワードバウンダリ上で始まりかつ１つのビットのインクリメントが異なる、選択可能な数のビットからなる。未使用ビットのそれぞれのシリーズは、各々のビットストリームのすぐ後に始まり、ワードバウンダリ上で終端する。
【００１２】
セット中のビットストリームの数が１つだけであることをコードが示せば、その１つのビットストリームがメモリの連続するワードに記憶される。セット中のビットストリームの数が１よりも多いことをコードが示せば、それらの多数のビットストリームは、メモリ中の連続するワードの中にインタリーブされた態様で記憶される。この結果、無駄になるメモリセルは、各ビットストリームの後で未使用ビットを記憶するもののみとなる。しかしながら、それらの未使用ビットにより、次のビットストリームがワードバウンダリ上で始まるようになり、そのことが、パターン発生器が各ビットストリームをアドレス指定するのに用いる回路構成を単純化する。
【００１３】
【詳細な説明】
ここで図１を参照して、この発明に従う集積回路チップをテストするシステムの１つの実施例が説明される。このシステムは５つの異なるタイプのモジュール１０−１４を含み、各モジュールの説明が以下の表１に与えられる。
【００１４】
【表１】
表１
モジュール…説明
１０…各モジュール１０は、チップをテストする間にいくつかの集積回路チップ１０ａを保持するチップアセンブリである。図１のシステムにおいては、チップアセンブリ１０の総数を選択可能である。各チップアセンブリ１０は１つのプリント回路基板１０ｂを含み、その上にいくつかのソケット１０ｃがはんだ付けされ、各ソケットはチップ１０ａのうち１つを保持する。プリント回路基板１０ｂの端縁上にコネクタ１０ｄが装着され、プリント回路基板中の電気導体１０ｅがコネクタ１０ｄとチップ１０ａとの間でテスト信号を搬送する。
１１…各モジュール１１はチップドライバ回路である。図１のシステムでは、各チップアセンブリ１０ごとに別個のチップドライバ回路１１が設けられる。各チップドライバ回路１１は、図６、図８、図９および図１０に示される回路構成のすべてを含む。その回路構成により、テスト信号が、プログラム可能なさまざまなビットシリアルシーケンスとしてチップ１０ａに送られかつそれから受取られる。
１２…各項目１２はパターン発生器である。図１のシステムでは、各パターン発生器１２は、バス１２ａを介して、選択可能な数のチップドライバ回路に結合される。図１は、チップドライバ回路１１のすべてがサブグループに区分される例を示し、別個のパターン発生器１２が別個のバス１２ａを介して各サブグループに結合される。これに代えて、チップドライバ回路１１のすべてを単一のバス１２ａで単一のパターン発生器に結合することができる。または、各チップドライバ回路１１を別個のバス１２ａで別個のパターン発生器に結合することができる。各パターン発生器１２は、図５および図６に示される回路構成のすべてを含む。その回路構成により、各パターン発生器１２は、チップ１０ｃをテストするために特定のビット−シリアルシーケンスを指定するプログラム可能命令の別個のシーケンスを実行する。命令を実行する際、各パターン発生器１２はビット−シリアルシーケンスをワードに区分し、そのバス１２ａに結合されるチップドライバ回路１１のすべてにワードをブロードキャストする。
１３…各項目１３はランダムアクセス読出−書込メモリである。各パターン発生器１２ごとに別個のメモリ１３が設けられる。各メモリ１３は、対応するパターン発生器が実行するプログラム可能命令の別個のシーケンスを記憶する。これらの命令は、アクセスポート１３ａを介してパターン発生器１２によってメモリ１３から読出され、それらは別のアクセスポート１３ｂを介してメモリに書込まれる。両アクセスポートは同時に動作するため、いくつかの命令をポート１３ａから読出すことができる一方、同時に、他の命令をポート１３ｂに書込むことができる。
１４…モジュール１４は、図１のシステム全体の動作を指示する単一のホストコンピュータである。ホストコンピュータ１４はバス１３ｃを介してメモリ１３のすべての上のポート１３ｂに結合される。ホストコンピュータ１４内には、ディスク１４ａ、キーボード１４ｂおよびモニタ１４ｃが含まれる。ディスク１４ａには、パターン発生器１２のためのいくつかのプログラムが記憶され、各々のそのようなプログラムは、チップ１０ｃをテストするために信号の特定のビット−シリアルシーケンスを指定するプログラム可能命令の異なるセットを含む。プログラムのうち１つを選択し、特定のパターン発生器のメモリ１３にそれを送るため、オペレータ（図示せず）は、キーボード１４ｂを介してさまざまなコマンドをホストコンピュータ１４に入力する。その後、選択されたプログラムを用いてチップをテストすることから得られる結果をパターン発生器によりメモリ１３中に記憶し、ホストコンピュータ１４によりそれらをモニタ１４ｃに表示する。
【００１５】
次に図２を参照して、これは、モジュール１０−１４のすべてがどのように１つのシステムとしてともに物理的にパッケージされるかを示す。図２の項目２０は、スタック状に互いの上に配置される、多数の水平方向スロット２１−１、２１−２などを有する機械的ラックである。各スロットは、１つのドライバ回路１１および１つのチップアセンブリ１０を選択的に保持するかまたは、１つのパターン発生器１２および１つのメモリ１３を保持するかのいずれかである。
【００１６】
図２は、ラック２０の中のスロットの総数が１４である例を示す。一番上のスロットが２１−１であり、次のスロットが２１−２であり、以下同じである。図２では、スロット２１−１から２１−１４は以下のように占められる。
【００１７】
スロット２１−１から２１−７の各々はドライバ回路１１およびチップアセンブリ１０を保持し、次のスロット２１−８は１つのパターン発生器１２およびそのメモリ１３を保持する。スロット２１−８中のパターン発生器１２は、バス１２ａでスロット２１−１から２１−７中の７つのドライバ回路に結合される。スロット２１−８中のパターン発生器は、そのバス上に、スロット２１−１から２１−７中のチップドライバ回路の７つすべてへビット−シリアルテスト信号をブロードキャストする。
【００１８】
スロット２１−９はドライバ回路１１およびチップアセンブリ１０を保持し、スロット２１−１０は１つのパターン発生器１２およびそのメモリ１３を保持する。スロット２１−１０中のパターン発生器はバス１２ａでスロット２１−９中のドライバ回路に結合され、スロット２１−１０中のパターン発生器は、そのバス上に、スロット２１−９中の１つのチップドライバ回路のみにビット−シリアルテスト信号を送る。
【００１９】
スロット２１−１１から２１−１３の各々はドライバ回路１１およびチップアセンブリ１０を保持し、次のスロット２１−１４は１つのパターン発生器１２およびそのメモリ１３を保持する。スロット２１−１４中のパターン発生器は、バス１２ａでスロット２１−１１から２１−１４中の３つのドライバ回路に結合され、スロット２１−１４中のパターン発生器は、そのバス上に、スロット２１−１１から２１−１３中のチップドライバ回路の３つすべてへビット−シリアルテスト信号をブロードキャストする。
【００２０】
スロット２１−８、２１−１０および２１−１４中のメモリ１３の各々は、パターン発生器１２がブロードキャストするビット−シリアルテスト信号を規定するいくつかのタイプの命令の異なるシーケンスを記憶する。３つの異なるタイプの命令が図３に示される。命令３１は第１のタイプであり、命令３２は第２のタイプであり、命令３３は第３のタイプである。
【００２１】
第１のタイプの各々の命令３１は、動作コードＯＰ、ワードカウントＷＣＮＴおよびビットカウントＢＣＮＴを含むワードＷ０を含む。動作コードが特定の値ＯＰ１を有すると、命令３１は、ビットストリームＴＤＩを、テストされるチップ１０ａ中にあるデータレジスタに書込ませる。動作コードが別の特定の値ＯＰ２を有すると、命令３１は、ＴＤＩビットストリームを、チップ１０ａ中にある命令レジスタに書込ませる。
【００２２】
動作コードＯＰ１およびＯＰ２の両者について、書込まれるべきＴＤＩビットストリームは、図３に示されるように、命令３１内に指定される。このＴＤＩビットストリームはワードＷ０のすぐ後に始まり、それは、１つのビットのインクリメントが異なる長さを有する。ＴＤＩビットストリーム中のビットの総数は（ＷＣＮＴ−１）（Ｘ）＋ＢＣＮＴであり、式中、Ｘはワード当りのビット数である。ＴＤＩビットストリームを指定しない、最後のワード中のすべてのビットが未使用である。
【００２３】
第２のタイプの各々の命令３２は、動作コード、ワードカウントＷＣＮＴおよびビットカウントＢＣＮＴを含むワードＷ０を含む。動作コードが特定の値ＯＰ３を有すると、命令３２は、チップ１０ａ中のデータレジスタの中身が読出されかつ命令の中のデータストリームと選択的に比較されるようにする。動作コードが別の特定の値ＯＰ４を有すると、命令３２は、チップ１０ａ中の命令レジスタの中身が読出されかつ命令の中のデータストリームと選択的に比較されるようにする。
【００２４】
動作コードＯＰ３およびＯＰ４の両者について、比較動作で用いるために２つのビットストリームＥＴＤＯおよびＭＡＳＫが命令３２内に指定される。それらの２つのビットストリームはワードＷ０のすぐ後に始まり、それらは、図３に示されるように、ワードごとにインタリーブされる。ＭＡＳＫビットストリーム中のｉ番目のビットが「１」ならば、チップから読出されるｉ番目のビットが比較動作に加わり、チップからのその特定のビットがＥＴＤＯビットストリーム中のｉ番目のビットと比較される。ビットストリームＥＴＤＯおよびＭＡＳＫの各々は長さが可変であり、それらのビットストリームの各々の中のビット総数は（ＷＣＮＴ−１）（Ｘ）＋ＢＣＮＴである。ＥＴＤＯおよびＭＡＳＫビットストリームを指定しない、最後の２つのワード中のビットのすべてが未使用である。
【００２５】
第３のタイプの各々の命令３３は、動作コードＯＰ、ワードカウントＷＣＮＴおよびビットカウントＢＣＮＴを含むワードＷ０を含む。動作コードが特定の値ＯＰ５を有すると、命令３３は、ビットストリームＴＤＩがチップ１０ａ中のデータレジスタに書込まれるようにし、同時に、命令３３は、チップ１０ａ中のデータレジスタの中身が読出されかつ命令の中のデータストリームと選択的に比較されるようにする。動作コードが別の特定の値ＯＰ６を有すると、命令３３は、ＴＤＩビットストリームがチップ１０ａ中の命令レジスタの中に書込まれるようにし、同時に、命令３３は、チップ１０ａ中の命令レジスタの中身が読出されかつ命令の中のデータストリームと選択的に比較されるようにする。
【００２６】
動作コードＯＰ５およびＯＰ６の両者について、ＴＤＩビットストリームは命令３３内に指定され、２つの他のビットストリームＥＴＤＯおよびＭＡＳＫも、比較動作で用いるために命令内に指定される。これらの３つのビットストリームはワードＷ０のすぐ後に始まり、それらは、図３に示されるように、ワードごとにインタリーブされる。ＭＡＳＫビットストリーム中のｉ番目のビットが「１」ならば、チップから読出されるｉ番目のビットが比較動作に加わり、チップからのその特定のビットがＥＴＤＯビットストリーム中のｉ番目のビットと比較される。３つのビットストリームＴＤＩ、ＥＴＤＯおよびＭＡＳＫの各々は長さが可変であり、それらのビットストリームの各々の中のビットの総数は（ＷＣＮＴ−１）（Ｘ）＋（ＢＣＮＴ）である。ＴＤＩ、ＥＴＤＯおよびＭＡＳＫビットストリームを指定しない、最後の３つのワード中のビットのすべてが未使用である。
【００２７】
パターン発生器１２が命令３１、３２および３３の各々を実行するとき、それは、図３の命令内に述べられていないさらなるビットストリームも生成する。そのさらなるビットストリームは、ＴＭＳと呼ばれる制御信号として用いられ、これは、チップ１０ａを特定の状態に置いて、データレジスタを選択的に読出したり、データレジスタに書込んだり、命令レジスタを読出したりまたは命令レジスタに書込んだりする。各々のＴＭＳビットストリームは、命令レジスタまたはデータレジスタのいずれを用いるべきかを指定する動作コードＯＰ１−ＯＰ６と、ＴＭＳ信号中のビット数を決定するＷＣＮＴおよびＢＣＮＴカウントとに応答して生成される。
【００２８】
図４は、３つのタイプの命令３１、３２および３３がどのようにパターン発生器１２の各メモリ１３内に異なるシーケンスで記憶されるかの例を示す。図４の例では、命令のシーケンスはＩ（ｋ）、Ｉ（ｋ＋１）…などである。命令Ｉ（ｋ＋１）およびＩ（ｋ＋３）は第１のタイプ３１であり、命令Ｉ（ｋ）およびＩ（ｋ＋４）は第２のタイプ３２であり、命令Ｉ（ｋ＋２）およびＩ（ｋ＋５）は第３のタイプ３３である。
【００２９】
第１のタイプの各々の命令３１は動作コードＯＰ１またはＯＰ２で識別され、それは単一の可変長ビットストリームＴＤＩを指定する。第２のタイプの各々の命令３２は動作コードＯＰ３またはＯＰ４で識別され、それは２つの可変長ビットストリームＥＴＤＯおよびＭＡＳＫを指定する。第３のタイプの各々の命令３３は動作コードＯＰ５またはＯＰ６で識別され、それは３つの可変長ビットストリームＴＤＩ、ＥＴＤＯおよびＭＡＳＫを指定する。用いられていないビット（ＮＵ）のそれぞれのシリーズは各シリアルビットストリームのすぐ後に始まり、ワードバウンダリ上で終端する。これにより、シーケンス中の次の命令が常にワードバウンダリ上で始まるのが可能になる。
【００３０】
ここで図５を参照して、各パターン発生器１２内の回路構成の詳細を説明する。その回路構成は、順序ステートマシン４０、カウンタ４１、７つのレジスタ４２−４８の組、マルチプレクサ４９および発振器５０を含む。示されるように、それらの構成要素４０−５０のすべてが互いに相互接続されている。
【００３１】
カウンタ４１およびレジスタ４２−４８の各々は、データ入力Ｄおよびクロック入力Ｃの組を有する。入力Ｄ上のデータをカウンタまたは特定のレジスタに記憶するため、ステートマシン４０はクロックパルスをクロック入力Ｃに送る。カウンタ４２はカウントダウン入力ＣＤも有し、カウンタは、ＣＤ入力上でパルスを受取るとその記憶されたカウントを１だけデクリメントする。
【００３２】
動作において、ステートマシン４０は、構成要素４１−４８の各々を用いて以下の情報を記憶する。レジスタ４２は、図３の命令３１、３２および３３の第１のワードＷ０中で生じる動作コードＯＰを記憶する。カウンタ４１はワードカウントＷＣＮＴを記憶し、レジスタ４３は、図３の命令のうち各々の第１のワードＷ０中で生じるビットカウントＢＣＮＴを記憶する。
【００３３】
レジスタ４４は、図３の命令３１および３３中で生じるビットストリームＴＤＩの１つのワードを記憶する。レジスタ４５は、図３の命令３２および３３中で生じるビットストリームＥＴＤＯの１つのワードを記憶する。また、レジスタ４６は、図３の命令３２および３３中で生じるビットストリームＭＡＳＫの１つのワードを記憶する。
【００３４】
レジスタ４７は、図３の命令の実行の間にパターン発生器１２が内部で生成するさらなるビットストリームＴＭＳの１つのワードを記憶する。レジスタ４８は、少し後で説明される態様でパターン発生器１２およびチップドライバ回路１１の両者が内部で用いるさまざまな制御ビットを記憶する汎用レジスタである。
【００３５】
図３の命令のうち１つの実行の始めに、パターン発生器１２はメモリ１３から命令の第１のワードＷ０を読出す。その読出動作を行なうため、ステートマシン４０は、図１に示されるメモリ１３のポート１３ａに向かう１組のアドレス線４０ａの上にメモリアドレスＭＡＤＤＲを送る。応答して、メモリ１３のポート１３ａは、１組のデータ線４０ｂの上に、メモリデータＭＤＡＴＡとしてアドレス指定されたワードをステートマシン４０に戻す。次に、ステートマシン４０は３つのクロックライン４０ｃ−４０ｅ上にクロックパルスを送ってレジスタ４２にＯＰコードを記憶し、カウンタ４１にワードカウントＷＣＮＴを記憶しかつ、レジスタ４３にビットカウントＢＣＮＴを記憶する。
【００３６】
その後、ステートマシン４０は、レジスタ４２中のＯＰコードを調査する。レジスタ４２中のＯＰコードが、命令がＴＤＩデータストリームを含むタイプのものであることを示せば、そのデータストリームの第１のワードをメモリ１３から読出し、レジスタ４４に記憶する。レジスタ４２中のＯＰコードが、命令がＥＴＤＯデータストリームを含むタイプのものであることを示せば、そのデータストリームの第１のワードをメモリ１３から読出し、レジスタ４５に記憶する。レジスタ４２中のＯＰコードが、命令がＭＡＳＫデータストリームを含むタイプのものであることを示せば、ＭＡＳＫデータストリームの第１のワードをメモリ１３から読出し、レジスタ４６に記憶する。
【００３７】
メモリアドレスをアドレス線４０ａ上に順次送ることおよびデータ線４０ｂ上でメモリ１３から戻るアドレス指定されたワードを受取ることによって、パターン発生器ステートマシン４０を介して上記データストリームワードを一度に１つずつ入手する。メモリ１３からの受取った各々のワードは、クロックライン４０ｆ、４０ｇまたは４０ｈのうち１つの上にクロックパルスを送ることにより、適切なレジスタ４４、４５または４６に記憶される。
【００３８】
上記動作の後に、ステートマシン４０は、前に説明されたさらなるビットストリームＴＭＳの１つのワードを内部で生成する。その内部で生成された、ＴＭＳビットストリームのワードが１組の信号線４０ｉの上に送られ、それは、クロックライン４０ｊ上のクロックパルスによってＴＭＳレジスタ４７にロードされる。
【００３９】
その後、ステートマシン４０はマルチプレクサ４９を用いて、以前にロードされたレジスタ４４−４７の出力を、ＪＤＡＴＡと呼ばれるデータ信号を搬送する１組のデータ線５５上に順次伝える。マルチプレクサ４９を通して特定のレジスタの出力を伝えるため、ステートマシン４０は、マルチプレクサ４９に向かう１組の制御線４０ｋ上に、ＳＥＬ（ｉ）と呼ばれる制御信号を生成する。
【００４０】
レジスタの出力をＪＤＡＴＡ線５５上に送る間に、ステートマシン４０は、１組のアドレス線５６上に、ＪＡＤＤＲと呼ばれるアドレス信号も生成し、それらのアドレス信号がＪＤＡＴＡ信号の宛先を定める。ＪＤＡＴＡ信号およびＪＡＤＤＲ信号がいつ送られているかを示すため、ステートマシン４０は、クロックライン５７上に、ＪＳＴＲＯＢＥと呼ばれるパルスを送る。また、ステートマシン４０は、クロックライン５８上に、ＢＵＳＣＫと呼ばれる自走クロックを送る。線５５−５８のすべてが、選択可能な数のチップドライバ回路１１にパターン発生器１２を接続する、図１および図２に示されるバス１２ａをともに構成する。
【００４１】
次に、図６を参照して、チップドライバ回路１１の各々の中の回路構成の詳細を説明する。その回路構成は、アドレスデコーダ６０、５つのレジスタ６１−６５の組、４つのパラレル−シリアルシフトレジスタ６６−６９の組、シフト制御回路７０および可変遅延線７１を含む。図６に示されるように、構成要素６０−７１のすべては互いに相互接続されている。
【００４２】
レジスタ６１−６５の各々は、データ入力Ｄ、イネーブル入力Ｅおよびクロック入力Ｃの組を有する。データ入力Ｄは図５のパターン発生器からデータ信号ＪＤＡＴＡを受取り、クロック入力Ｃはパターン発生器からＪＳＴＲＯＢＥクロックパルスを受取る。ＪＤＡＴＡ信号を特定のレジスタ６１−６５に記憶するため、別個のイネーブル信号Ｅ１−Ｅ６がそのレジスタのイネーブル入力Ｅに送られる。
【００４３】
レジスタ６１−６５のためのイネーブル信号Ｅ１−Ｅ５のすべては、アドレスデコード回路６０により１組の信号線６０ａ−６０ｅ上に生成される。イネーブル信号Ｅ１はレジスタ６１に送られ、イネーブル信号Ｅ２はレジスタ６２に送られ、以下同じである。これらのイネーブル信号Ｅ１−Ｅ５はＪＡＤＤＲアドレス線５６上の特定のアドレスをデコードすることによりアドレスデコーダ６０で生成される。
【００４４】
動作において、図５のパターン発生器ステートマシン４０は、レジスタ６２−６５が以下の情報を記憶するように、ＪＡＤＤＲ、ＪＤＡＴＡおよびＪＳＴＲＯＢＥ信号を送る。ＭＡＳＫビットストリームの１つのワードをレジスタ６２に記憶し、そのワードを図５のレジスタ４６からマルチプレクサ４９を通して送る。ＴＤＩビットストリームの１つのワードをレジスタ６３に記憶し、そのワードを図５のレジスタ４４からマルチプレクサ４９を通して送る。ＥＴＤＯビットストリームの１つのワードをレジスタ６４に記憶し、そのワードを図５のレジスタ４５からマルチプレクサ４９を通して送る。ＴＭＳビットストリームの１つのワードをレジスタ６５に記憶し、そのワードを図５のレジスタ４７からマルチプレクサ４９を通して送る。
【００４５】
レジスタ６２−６５の各々は、パラレル−シリアルシフトレジスタ６６−６９のうち１つの上のデータ入力Ｄにそれぞれ結合される。それらのパラレル−シリアルシフトレジスタはロード入力Ｌおよびクロック入力Ｃも有する。クロック入力ＣがＳＥＲＩＡＬＣＫクロック信号の立上がり縁を受けるときに入力Ｌ上のＬＯＡＤ信号が「１」状態にあれば、データ入力信号のすべてをパラレル−シリアルシフトレジスタ６６−６９に記憶する。そうでなく、ＳＥＲＩＡＬＣＫクロック信号の立上がり縁が発生するときにＬＯＡＤ信号が「０」状態にあれば、レジスタ６６−６９のすべてが、それらが記憶するデータの１つのビットを外にシフトする。
【００４６】
ＬＯＡＤ信号およびＳＥＲＩＡＬＣＫクロック信号の両者がシフト制御回路７０によって生成され、それは、ＴＭＳビットストリームのワードをレジスタ６５にロード可能にするイネーブル信号Ｅ５に応答して動作する。イネーブル信号Ｅ５が、ＴＭＳレジスタがロードされるようにした後、シフト制御回路７０は線７０ａ上にＳＥＲＩＡＬＣＫクロック信号を生成し始める。これは、バスクロック信号ＢＵＳＣＫをクロックライン５８からクロックライン７０ａへゲート制御することによって行なわれる。
【００４７】
ＳＥＲＩＡＬＣＫクロック信号の第１のサイクルの間、シフト制御回路７０は、シリアル−パラレルレジスタ６６−６９のすべてに「１」としてＬＯＡＤ信号を送る。それにより、レジスタ６６−６９は、レジスタ６２−６５に保持されるビットストリームの１つのワードを記憶するようになる。次に、シフト制御回路７０は「０」としてＬＯＡＤ信号を生成し、これは、パラレル−シリアルレジスタ６６−６９の各々に、レジスタが記憶したビットストリームのワードを外にシフトさせる。
【００４８】
レジスタ６６−６９からの各ビットはＳＥＲＩＡＬＣＫクロックと同期してシフトされる。ＭＡＳＫビットストリームは信号線６６ａ上にシフトされ、ＴＤＩビットストリームは信号線６７ａ上にシフトされ、ＥＴＤＯビットストリームは信号線６８ａ上にシフトされ、ＴＭＳビットストリームは信号線６９ａ上にシフトされる。このシフトは、ＬＯＡＤ信号の「０」状態に応答して、シフトレジスタ６６−６９の各々が空になるまで継続する。
【００４９】
ビットストリームＭＡＳＫ、ＴＤＩ、ＥＴＤＯおよびＴＭＳのいずれの１つが第２のワードの中に延びても、それらのワードは、上記シフトが起こっている間にパターン発生器ステートマシン４０によってメモリ１３から読出され、レジスタ６２−６５にロードされる。その場合、シフト制御回路７０は、イネーブル信号Ｅ５がＴＭＳレジスタ６５に二度目として再送されたことを覚えている。
【００５０】
後に、シフトレジスタ６６−６９が空になると、シフト制御回路７０は、第２のイネーブル信号Ｅ５が送られたか否かを見るためにチェックを行なう。送られていれば、シフト制御回路７０は、シリアル−パラレルレジスタ６６−６９のすべてに「１」としてＬＯＡＤ信号を再送する。それにより、レジスタ６６−６９は、レジスタ６２−６５に保持されるビットストリームの第２のワードを記憶するようになる。次に、シフト制御回路７０は、パラレル−シリアルレジスタ６６−６９の各々が、それらが記憶したビットストリームの第２のワードを外にシフトするまで、「０」としてＬＯＡＤ信号を生成する。
【００５１】
上記ロードおよびシフトは、メモリ１３の命令について、シリアルビットストリームの終端に到達するまで継続する。次に、ビットストリームの最後のビットがレジスタ６６−６９からシフトされると、シフト制御回路７０は、クロックライン７０ａ上にクロック信号ＳＥＲＩＡＬＣＫを生成するのを止める。
【００５２】
上述の動作のすべてに加えて、図６のチップドライバ回路は、クロックライン７１ａ上にクロック信号ＴＣＫも生成する。このＴＣＫクロック信号は、線５３上のＢＵＳＣＫ信号の遅延した複製であり、これは可変遅延回路７１によって生成される。可変遅延回路による遅延の量は、レジスタ６１に記憶される信号線６１ａ上の制御信号によって選択される。
【００５３】
次に図７を参照して、これは、図５のパターン発生器および図６のチップドライバ回路が図３の各命令を実行するシーケンス全体を図示する。まず、パターン発生器ステートマシン４０は状態Ｓ１にあり、ここで、そのメモリ１３から命令の第１のワードＷ０を読出す。その後、状態Ｓ２で、ステートマシン４０はレジスタ４２中の動作コードを調査し、それが実行中の命令のタイプを判断する。
【００５４】
命令が第１のタイプ３１または第３のタイプ３３ならば、ステートマシン４０はＴＤＩビットストリームの１つのワードを読出し、これは状態Ｓ３で起こる。そのワードはステートマシン４０によりレジスタ４４に記憶される。
【００５５】
命令が第２のタイプ３２または第３のタイプ３３ならば、ステートマシン４０はＥＴＤＯビットストリームの１つのワードを読出し、これは状態Ｓ４で起こる。ＥＴＤＯビットストリームのそのワードは、ステートマシン４０によりレジスタ４５に記憶される。
【００５６】
同様に、命令が第２のタイプ３２または第３のタイプ３３ならば、ステートマシン４０はＭＡＳＫビットストリームの１つのワードを読出し、これは状態Ｓ５で起こる。ＭＡＳＫビットストリームのそのワードは、ステートマシン４０によりレジスタ４６に記憶される。
【００５７】
その後、ステートマシン４０はＴＭＳビットストリームの１つのワードを内部で生成し、これは状態Ｓ６で起こる。ＴＭＳビットストリームのそのワードは、ステートマシン４０によりレジスタ４７に記憶される。
【００５８】
次に状態Ｓ７で、ステートマシン４０は、それが第１または第３のタイプの命令３１または３３を実行中ならば、ＴＤＩビットストリームの１つのワードをブロードキャストする。ＴＤＩビットストリームのこのワードは、レジスタ４４からマルチプレクサ４９を通って送られ、パターン発生器に接続される各々のチップドライバ回路のレジスタ６３の中に送られる。
【００５９】
次に状態Ｓ８で、ステートマシン４０は、それが第２または第３のタイプの命令３２または３３を実行中ならば、ＥＴＤＯビットストリームの１つのワードをブロードキャストする。ＥＴＤＯビットストリームのこのワードは、レジスタ４５からマルチプレクサ４９を通って送られ、パターン発生器に接続される各々のチップドライバ回路のレジスタ６４の中に送られる。
【００６０】
次に状態Ｓ９で、ステートマシン４０は、それが第２または第３のタイプの命令３２または３３を実行中ならば、ＭＡＳＫビットストリームの１つのワードをブロードキャストする。ＭＡＳＫビットストリームのこのワードは、レジスタ４６からマルチプレクサ４９を通って送られ、パターン発生器に接続される各々のチップドライバ回路のレジスタ６２の中に送られる。
【００６１】
次に状態Ｓ１０で、ステートマシン４０はＴＭＳビットストリームの１つのワードをブロードキャストする。ＴＭＳビットストリームのこのワードは、レジスタ４７からマルチプレクサ４９を通って送られ、パターン発生器に接続される各々のチップドライバ回路のレジスタ６５の中に送られる。
【００６２】
次に状態Ｓ１１で、ステートマシン４０はカウンタ４１中のワードカウントＷＣＮＴを１だけデクリメントし、結果が０であるかどうかを見るようにチェックを行なう。結果が０でなければ、状態Ｓ３−Ｓ１０の動作のすべてが繰返される。そうでなく、結果が０ならば、ステートマシン４０は、状態Ｓ１に入ることによって次の命令を実行し始める。
【００６３】
状態Ｓ１０でステートマシン４０がＴＭＳビットストリームのワードをブロードキャストするたびに、パターン発生器に接続される各々のチップドライバ回路中のシフト制御回路７０がそのイベントを覚える。このとき、パラレル−シリアルシフトレジスタ６６−６９が空ならば、保持レジスタ６２−６５の中身でそれらをロードする。これはチップドライバ回路が状態Ｓ２１にあるときに起こる。
【００６４】
その後、パラレル−シリアルシフトレジスタ６６−６９の中身が信号線６６ａ−６９ａ上にシフトされる。これは、チップドライバ回路が状態Ｓ２２にあるときに起こる。次に、シフトレジスタ６６−６９中の最後のビットが外にシフトされているとき、シフト制御回路７０は、レジスタ６５がＴＭＳビットストリームの別のワードでロードされたかどうかを見るようにチェックを行なう。ロードされていれば、状態Ｓ２１およびＳ２２のロードおよびシフト動作を繰返す。
【００６５】
ＴＤＩ、ＥＴＤＯ、ＭＡＳＫおよびＴＭＳのビットストリームが数ワードの長さであるとき、チップドライバ回路１１中の状態Ｓ２１およびＳ２２はパターン発生器１２中の状態Ｓ３−Ｓ１１と同時に起こる。その同時の動作により、チップドライバ回路１１およびパターン発生器１２は、パターン発生器がビットストリームの次のワードを読出しかつブロードキャストする間にチップドライバ回路がビットストリームの１つのワードからビットをシフトさせる、多段パイプラインとして働く。
【００６６】
また、パターン発生器ステートマシン４０が次の命令を実行し始めると、チップドライバ回路１１は、状態Ｓ２２で、パラレル−シリアルシフトレジスタ６６−６９の中に残るいずれのビットもシフトし続ける。その同時の動作により、チップドライバ回路１１およびパターン発生器１２はここでも、パターン発生器が次の命令のワードＷ０を読出しかつデコードしている間に１つの命令のビットストリーム中のビットをシフトさせる、多段パイプラインとして働く。
【００６７】
ここで図８を参照して、これは、各チップドライバ回路がどのように、テストされる集積回路チップと相互結合されるかについてのさらなる詳細を示す。図８で、参照番号１０は図１および図２に示されるのと同じチップアセンブリを識別し、参照番号１０ａは、アセンブリ１０中のテストされるべきチップを識別する。
【００６８】
アセンブリ１０中のテストされるべき各チップ１０ａごとに、４つの送信器８１−８４および１つの受信器８５の別個の組がチップドライバ回路１１に設けられる。各々の送信器８１は、線７１ａから別個のチップ１０ａにクロック信号ＴＣＫを送る。各々の送信器８２は、線６７ａから別個のチップ１０ａにビットストリームＴＤＩを送る。各々の送信器８３は、線６９ａから別個のチップ１０ａにビットストリームＴＭＳを送る。また、各々の送信器８４は、それぞれの高周波クロックＨＦＣＫ（ｉ）を別個のチップ１０ａに送るが、これは図９および図１０に関連して後に説明される。
【００６９】
送信器８１−８４から受ける信号に応答して、アセンブリ１０中の各チップ１０ａは、ＴＤＯと呼ばれる別個の出力ビットストリームを生成する。各チップ１０ａからのそのＴＤＯビットストリームは、チップドライバ回路上の別個の受信器８５に送られる。受信器８５から、ＴＤＯビットストリームのすべては、図８に示される、チップドライバ回路の残余の構成要素９０−９８により、並行して処理される。
【００７０】
図８の構成要素９０は排他的ＯＲゲートであり、構成要素９１はＡＮＤゲートであり、構成要素９２はフリップフロップである。受信器８５の各々ごとに構成要素９０−９２の別個の組が設けられる。図８の構成要素９３はマルチプレクサであり、構成要素９４はデコーダ回路であり、構成要素９５は可変遅延回路であり、構成要素９６はレジスタであり、構成要素９７はデコーダ回路であり、構成要素９８はレジスタであり、構成要素９９はデコーダ回路である。
【００７１】
動作において、ビットストリームＥＴＤＯ、ＭＡＳＫおよびＴＣＫは可変遅延回路９５を通って送られ、それにより、それぞれＤＥＴＤＯ、ＤＭＡＳＫおよびＤＴＣＫと呼ばれる３つの対応の遅延ビットストリームを生成する。可変遅延回路９５による遅延の量は、レジスタ９６の出力によって選択され、その遅延が、ＴＤＯビットストリームを生成する各チップ１０ａ内で発生する遅延を補う。特定の遅延を選択するため、レジスタ９６は、デコーダ回路９７が予め定められたＪＡＤＲアドレスを検出するときにＪＤＡＴＡ信号でロードされる。
【００７２】
遅延回路９５から、排他的ＯＲゲート９０のすべてに遅延ビットストリームＤＥＴＤＯが送られ、ここでそれは受信器８５のすべてから来るＴＤＯビットストリームと比較される。ＤＥＴＤＯビットストリーム中の任意のビットとＴＤＯ（ｉ）ビットストリーム中の対応するビットとの間で比較ミス（ｍｉｓｃｏｍｐａｒｅ）が起これば、比較ミスが起こる排他的ＯＲゲート９０は、「１」状態の出力信号ＥＲＡ（ｉ）を生成する。
【００７３】
排他的ＯＲゲート９０からのエラー信号ＥＲＡ（ｉ）の各々はＡＮＤゲート９１の別個の１つに送られ、それらのＡＮＤゲートは他の２つの入力信号も受取る。一方のそのような入力信号が遅延ビットストリームＤＭＡＳＫであり、他方の入力信号がレジスタ９８からの別個のイネーブル信号ＥＮ（ｉ）である。エラー信号ＥＲＡ（ｉ）がＴＤＯ（ｉ）ビットストリーム中の特定のビットに対して「１」であり、ＤＭＡＳＫ信号中の対応するビットも「１」であり、イネーブル信号ＥＮ（ｉ）も「１」ならば、ｉ番目のＡＮＤゲートからの出力信号ＥＲＢ（ｉ）は「１」である。
【００７４】
ビットストリームＴＤＯ（ｉ）中の任意の１つの特定のビット中の比較ミスを無視するため、ＤＭＡＳＫビットストリーム中の対応するビットが「０」にセットされる。また、対応するイネーブル信号ＥＮ（ｉ）を「０」にセットすることにより、ビットストリームＴＤＯ（ｉ）全体を無視することができる。
【００７５】
ＡＮＤゲート９１のいずれの１つからのエラー信号ＥＲＢ（ｉ）も「１」になると、これは、対応するフリップフロップ９２をセットされた状態にする。セットされた状態の各フリップフロップ９２はその後、パターン発生器１２によって読出されかつリセットされるまで、セットされた状態のままである。
【００７６】
エラーフリップフロップ９２を読出すため、パターン発生器１２は特定のＪＡＤＲアドレスをデコーダ回路９４に送る。応答して、デコーダ回路９４は、出力９４ａ上に、フリップフロップ９２のすべてからマルチプレクサ９３を通ってエラー信号をＪＤＡＴＡ線５０に伝える信号を生成する。次に、パターン発生器１２は別のＪＡＤＲアドレスを送り、これは、デコーダ回路９４に、出力９４ｂ上に、フリップフロップ９２のすべてをリセットする信号を生成させる。
【００７７】
次に図９を参照して、チップドライバ回路１１の各々の中に含まれるいくつかのさらなる回路構成要素１００−１０９を説明する。これらの構成要素１００−１０９のすべては相互作用して、テストされている各チップ１０ａごとに別個の高周波クロック信号ＨＦＣＫ（ｉ）を生成する。
【００７８】
図９では、構成要素１００は自走高周波発振器であり、構成要素１０１はデコーダ回路であり、構成要素１０２はレジスタであり、構成要素１０３は、選択可能な整数Ｎで除算する除算器回路である。構成要素１０４は順序ステートマシンであり、構成要素１０５はステートマシン１０４に対してカウントを保持するカウンタ回路であり、構成要素１０６は、ステートマシン１０４に対する制御信号を保持するメモリである。構成要素１０７はフリップフロップであり、構成要素１０８はＯＲゲートであり、構成要素１０９は送信器である。生成される各高周波クロック信号ＨＦＣＫ（ｉ）ごとに、構成要素１０７−１０９の別個の組１１０（ｉ）が設けられる。
【００７９】
動作において、発振器１００は、単一の高周波数で自走クロックＦＲＣＫ１を生成する。そのクロック信号ＦＲＣＫ１は除算器回路１０３に送られ、ここでこれは選択可能な整数Ｎだけ周波数を減じられる。次に、除算器１０３からの出力クロックＦＲＣＫ２が回路１０７−１０９の各組１１０（ｉ）に送られる。
【００８０】
回路１１０（ｉ）の各組は、選択可能なサイクルの自走クロックＦＲＣＫ２を伝えることにより、高周波クロック信号ＨＦＣＫ（ｉ）を生成する。伝えられるそれらのサイクルは、２つの制御信号ＳＴＡＲＴ（ｉ）およびＳＴＯＰ（ｉ）によって選択され、それらは順序ステートマシン１０４によって生成される。
【００８１】
信号ＳＴＯＰ（ｉ）が「１」として生成されると、フリップフロップ１０７は、自走クロック信号ＦＲＣＫ２と同期してセットする。フリップフロップ１０７のそのセット状態は、ＯＲゲート１０８の出力が常に「１」を生成するようにする。したがって、高周波クロック信号ＨＦＣＫ（ｉ）は「１」状態で止められる。
【００８２】
フリップフロップ１０７をリセットするには、ステートマシン１０４はＳＴＯＰ（ｉ）信号を「０」として生成し、ＳＴＡＲＴ（ｉ）信号を「１」として生成する。フリップフロップ１０７のそのリセット状態により、ＯＲゲート１０８がクロック信号ＦＲＣＫ２を伝えるようになり、ＯＲゲート１０８の出力から、高周波クロックＦＲＣＫ２が送信器１０９を通って伝わり、ここでそれはクロック信号ＨＦＣＫ（ｉ）になる。
【００８３】
回路１１０（ｉ）の各組ごとに制御信号ＳＴＯＰ（ｉ）およびＳＴＡＲＴ（ｉ）を生成するため、ステートマシン１０４は、制御メモリ１０６に記憶されるさまざまな制御ビットを読出す。それらの制御ビットの例が図１０の「１」および「０」で示される。１組の制御ビットを読出すため、ステートマシン１０４はアドレス線１０４ａ上のアドレスをメモリ１０６に送る。応答して、メモリは、アドレス指定された組の制御ビットを信号線１０４ｂ上のステートマシン１０４に送る。
【００８４】
図１０は、制御ビットの各組が、ビットＢ１−Ｂ１６として識別される１６ビットからなる例を示す。始めの１４ビットＢ１−Ｂ１４の各々は、回路１１０（ｉ）のうち特定の１つの動作を制御する。ビットＢ１は回路１１０（１）を制御し、ビットＢ２は回路１１０（２）を制御し、以下同じである。残余のビットＢ１５およびＢ１６は、ステートマシン１０４をシーケンスモードまたは自走モードのいずれかで動作させるモード制御ビットである。
【００８５】
ＪＤＡＴＡ線上の特定のメモリアドレスとともにＳＴＡＲＴコマンドがデコーダ１０１からステートマシン１０４に送られるとき、それは、そのアドレスでメモリ１０６から制御ビットの組を読出す。ステートマシン１０４が、ビットＢ１５が「１」である制御ビットの組を読出せば、ステートマシンはシーケンスモードで動作する。そのモードでは、ステートマシン１０４は、それがメモリ１０６に送るアドレスを順次インクリメントし、応答して、ステートマシンは、制御信号のアドレス指定された組を受取る。動作のこのシーケンスモードは、ビットＢ１６が「１」である制御ビットの組を読出すまで継続し、このときに動作のシーケンスモードが停止する。
【００８６】
シーケンスモードで読出される制御信号の各組ごとに、ステートマシン１０４は制御ビットＢ１−Ｂ１４を調査する。「１」である、ビットＢ１−Ｂ１４の各々は、ステートマシン１０４にＳＴＯＰ（ｉ）およびＳＴＡＲＴ（ｉ）を生成させ、それにより回路１１０（ｉ）は、カウンタ１０５が指定する数のサイクルの間クロックＦＲＣＫ２を伝える。
【００８７】
図１０では、アドレス「Ａ」が読出す制御ビットの組は、「１」にセットされたビットＢ１−Ｂ４を有する。したがって、その組の制御ビットに応答して、ステートマシン１０４は、回路１１０（１）から１１０（４）の各々が、カウンタ１０５が指定する数のサイクルの間クロック信号ＦＲＣＫ２を伝えるようにする。
【００８８】
次に、アドレス「Ａ＋１」が読出す制御ビットの組は、「１」にセットされたビットＢ５−Ｂ７を有する。したがって、その組の制御ビットに応答して、ステートマシン１０４は、回路１１０（５）から１１０（７）の各々が、カウンタ１０５が指定する数のサイクルの間クロック信号ＦＲＣＫ２を伝えるようにする。
【００８９】
次に、アドレス「Ａ＋２」が読出す制御ビットの組は、「１」にセットされたビットＢ８−Ｂ１１を有する。したがって、制御ビットのその組に応答して、ステートマシン１０４は、回路１１０（８）から１１０（１１）の各々が、カウンタ１０５が指定する数のサイクルの間クロック信号ＦＲＣＫ２を伝えるようにする。
【００９０】
最後に、アドレス「Ａ＋３」が読出す制御ビットの組は、「１」にセットされたビットＢ１２−Ｂ１４を有する。したがって、制御ビットのその組に応答して、ステートマシン１０４は、回路１１０（１２）から１１０（１４）の各々が、カウンタ１０５が指定する数のサイクルの間クロック信号ＦＲＣＫ２を伝えるようにする。
【００９１】
比較して、ステートマシン１０４が、ビットＢ１５が「０」である１組の制御ビットを読出せば、ステートマシンは自走モードで動作する。そのモードでは、ステートマシン１０４は、それがメモリ１０６に送るアドレスをインクリメントしないが、代わりにステートマシンは、それが読出すただ１つの組の制御信号と連続して動作する。
【００９２】
その単一の組の制御信号を用いて、ステートマシン１０４はここでも制御ビットＢ１−Ｂ１４を調査する。「１」であるビットＢ１−Ｂ１４の各々は、ステートマシン１０４にＳＴＯＰ（ｉ）およびＳＴＡＲＴ（ｉ）信号を生成させ、それにより回路１１０（ｉ）は連続してクロックＦＲＣＫ２を伝える。動作のこの自走モードを終了させるには、ステートマシン１０４に、デコーダ１０１からＳＴＯＰコマンドを送る必要がある。そのコマンドは、デコーダ１０１が特定のＪＡＤＲアドレスを受取るときに送られる。
【００９３】
図１０では、アドレス「Ａ＋４」が読出す制御ビットの組は、「０」にセットされたビットＢ１５を有し、それはステートマシン１０４を自走モードに置く。アドレス「Ａ＋４」にある制御ビットの組においても、ビットＢ１−Ｂ１４のすべてが「１」にセットされるため、応答して、ステートマシン１０４は、ＳＴＯＰコマンドを受取るまで、回路１１０（１）から１１０（１４）の各々がクロック信号ＦＲＣＫ２を連続して伝えるようにする。
【００９４】
同様に図１０では、アドレス「Ａ＋５」が読出す制御ビットの組は、「０」にセットされたＢ１５も有し、それはステートマシン１０４を自走モードに置く。しかしながら、アドレス「Ａ＋５」にある制御ビットの組では、ビットＢ２のみが「１」にセットされるため、応答して、ステートマシン１０４は、回路１１０（２）のみにクロック信号ＦＲＣＫ２を連続して伝えさせる。
【００９５】
図９および図１０の回路構成を用いて達成される１つの特定の特徴は、それが、チップアセンブリ１０中のチップ１０ａを、選択可能なサブセットの中で順次にまたは１組として同時にテスト可能にすることである。この特徴は、テスト中のチップ１０ａが、高周波クロック信号ＨＦＣＫ（ｉ）を受けるときに大量の電力を消費するが、高周波クロック信号を受けないときには実質的により少ない電力しか消費しないタイプのものであるときに望ましい。そのようなチップは、たとえば、ＣＭＯＳマイクロプロセッサチップおよびＣＭＯＳメモリチップを含む。高周波クロック信号ＨＦＣＫ（ｉ）を同時に受けるチップ１０ａの数を限定することにより、チップ１０ａのすべてにおいて消費される総電力量を、チップのすべてが高周波クロック信号を受けるとすれば超えてしまうであろういかなる予め定められた電力限界よりも下に保つことができる。
【００９６】
図９および図１０の回路構成を用いて達成される別の特定の特徴は、それが、ビットの一意なストリームをチップ１０ａの各々の中に別個に書込むのを可能にすることである。それは、高周波クロック信号ＨＦＣＫ（ｉ）をチップ１０ａの各々に一度に１つずつ送るようにする、メモリ１０６中の制御ビットを記憶することによって達成される。また、１つの特定のチップが高周波クロック信号ＨＦＣＫ（ｉ）を受けているとき、そのチップに書込まれるべきデータは、ＴＤＩビットストリームとしてチップ１０ａのすべてに送られる。この特徴は、シリアル番号などのある一意な情報を、テスト中の各チップ１０ａに書込む必要があるときに望ましい。
【００９７】
ここで図１１を参照して、これは、図３の、以前に説明された命令３１、３２、３３とともに、メモリ１３のチップテストプログラムに含まれ得る３つのさらなる命令３４、３５および３６を示す。命令３４は、動作コードＯＰ７、ＪＡＤＲフィールド３４ａおよびＪＤＡＴＡフィールド３４ｂを含むただ１つの単一ワードＷ０からなる内部制御命令である。命令３４がパターン発生器１２によって実行されると、ステートマシン４０はＪＡＤＲ信号線５６上にＪＡＤＲフィールド３４ａを送り、それはＪＤＡＴＡ信号線５５上にＪＤＡＴＡフィールド３４ｂを送る。
【００９８】
命令３４を用いて、図６のレジスタ６１をロードし、図１０のレジスタ９６および９８をロードしかつ図９のレジスタ１０２をロードすることができる。また、命令３４を用いて、図８のデコーダ９４にアドレスを送り、図９のカウンタ１０５にカウントを送り、１０６上の制御メモリに制御ビットの各組を書込むこともできる。また、命令３４を用いて、デコーダ１０１からステートマシン１０４へＳＴＡＲＴおよびＳＴＯＰコマンドを送ることもできる。
【００９９】
命令３５は、同様にただ１つの単一ワードＷ０からなる分岐命令である。命令３５は、動作コードＯＰ８、テスト条件フィールド３５ａおよびジャンプアドレスフィールド３５ｂを含む。命令３５がパターン発生器１２によって実行されると、ステートマシン４０は、テスト条件フィールド３５ａが指定する条件をテストする。そのテストされる条件が真ならば、メモリ１３から実行される次の命令が、フィールド３５ｂ中のジャンプアドレスを引いた分岐命令３５のアドレスで生じる。
【０１００】
命令３６は、同様に単一ワードＷ０からなる書込メモリ命令である。命令３６は、それを書込メモリ命令として識別する動作コードＯＰ９を含み、メモリアドレスフィールド３６ａを含む。命令３６がパターン発生器１２によって実行されると、エラー信号が図８のマルチプレクサ９３から読出され、メモリアドレスフィールド３６ａにメモリ１３に書込まれる。
【０１０１】
この発明に従う集積回路チップをテストするシステムの１つの好ましい実施例が詳細に説明された。しかしながら、さらに、この発明の性質および精神から逸脱することなく、この実施例の詳細に対してさまざまな変更および修正をなすことができる。
【０１０２】
たとえば、図２は、合計で１４のスロットを有するラック２０にチップテストシステムを収容する例を１つだけ図示する。しかしながら、修正例として、ラック２０はいずれの数のスロットも含み得、多数のラックが存在し得る。また、各ラック中のスロットに、チップアセンブリ１０、ドライバ回路１１およびそのそれぞれのメモリ１３を備えるパターン発生器１２のいずれの組合せを入れることもできる。
【０１０３】
同様に、図１は、各チップアセンブリ１０が、テストすべき集積回路チップ１０ａの４つのみを保持する例を１つだけ示す。しかしながら、修正例として、各チップアセンブリ１０はいずれの所望の数の集積回路チップ１０ａも保持することができる。
【０１０４】
また、別の修正例として、図１に示されるモジュール１１、１２、１３および１４の各々は、どのタイプの回路構成からも構築可能である。たとえば、（図５、図６、図８、図９および図１０に詳細に示されるような）チップドライバ回路１１中の回路構成のすべておよびパターン発生器１２中の回路構成のすべてをＴＴＬ回路、ＥＣＬ回路、ＭＯＳ回路およびＣＭＯＳ回路から構築することができる。同様に、図１の各メモリモジュール１３を、フリップフロップもしくはキャパシタの中にまたは磁気記憶媒体もしくは光学記憶媒体上にデータビットを記憶するものなどの、いずれのタイプのメモリセルからも構築可能である。
【０１０５】
同様に、図示されたチップテストシステム中の順序制御回路の各々は、いずれのタイプの内部構造も有し得る。それらの順序制御回路は、図５のパターン発生器ステートマシン４０、図６のシフト制御回路７０および図９のクロックシーケンスステートマシン１０４を含む。パターン発生器ステートマシン４０のためのいずれの内部構造も、それが図７の状態Ｓ１−Ｓ１１に従って動作する限りは好適である。チップ制御回路構成７０のためのいずれの内部構造も、それが図７の状態Ｓ２１−Ｓ２３に従って動作する限りは好適である。また、図９のクロックシーケンスステートマシン１０４のためのいずれの内部構造も、図１０と関連して説明されたように、それがシーケンスモードおよび自走モードで動作する限りは好適である。
【０１０６】
また、別の修正例として、各メモリモジュール１３からワードとして読出されるビットの数は、いずれの予め定められた数でもあり得る。図３は、メモリモジュール１３中の各ワードが「Ｘ」ビットからなるのを示す。好適には、Ｘは、１６ビット、３２ビット、４８ビット、６４ビットなどの整数バイトである。
【０１０７】
さらに、別の修正例として、テストされるチップ１０ａを特定の状態に置くように生成される各ＴＭＳビットストリームは、いずれの予め規定されたビットのシリーズでもあり得る。各々のビットストリームがどのようであるべきかは、チップ１０ａの内部構造によって定められる。１つの具体例として、ＴＭＳビットストリームを、以下に表２に示されるように予め規定しかつ生成することができる。
【０１０８】
【表２】
0003581688.tif 000002
【０１０９】
表２中の各ＴＭＳヘッダの後に「１」ビットのシリーズが続くが、これは、命令／データレジスタから読出されるＴＤＯビットの数またはそれらのレジスタに書込まれるＴＤＩビットの数と等しい。「１」ビットのそのシリーズの後に、「０」ビットのシリーズが続き、これは次のＴＭＳヘッダが始まるまで継続する。
【０１１０】
別の例として、各ＴＭＳビットストリームを、いずれの所望の標準に従って予め規定しかつ生成することもできる。１つのそのような標準がＩＥＥＥ１１４９．１バウンダリスキャン標準であり、これは本明細書中に引用により援用されている。
【０１１１】
さらに、図１２は、パターン発生器が送るビットストリームＴＤＩ、ＥＴＤＯ、ＭＡＳＫおよびＴＭＳの４つすべてが命令３７内に明確に指定されるさらに別の修正例を示す。この命令３７は、第１のワードＷ０中の動作コードＯＰ１０によって識別される。命令３７は、送られるべきＴＭＳビットストリームを指定する１つの新たなＴＭＳフィールドを含む。他のフィールドＢＣＮＴ、ＷＣＮＴ、ＴＤＩ、ＥＴＤＯおよびＭＡＳＫのすべては、図３の命令３３について以前説明された対応のフィールドと同じである。
【０１１２】
命令３７内にＴＭＳビットストリームを明確に規定できることにより、単一のパターン発生器１２は、異なるＴＭＳビットストリームが同じ状態に入るのを必要とする異なるタイプのチップを順次テストすることができる。しかしながら、テスト中のチップがすべて同じＴＭＳ信号シーケンスを用いるならば、命令３３が命令３７よりも好ましい。なぜなら命令３３は２５％より少ないメモリ空間を占めるからである。
【０１１３】
別の修正例として、命令３７中のビットストリームＴＤＩ、ＥＴＤＯおよびＭＡＳＫのどの１つもその命令から除去することができる。ＴＤＩビットストリームが除去されれば、ＴＭＳビットストリームを所望のように指定可能であることを除き、結果は図３の以前説明された命令３２と同様である。ＥＤＴＯおよびＭＡＳＫビットストリームが命令３７から除去されれば、ここでもＴＭＳビットストリームを所望のように指定可能であることを除き、結果は図３の以前説明された命令３１と同様である。
【０１１４】
したがって、この発明はいずれの１つの特定の実施例または修正例の詳細に限定されるものではなく、添付の請求項によって規定されることを理解されたい。
【図面の簡単な説明】
【図１】この発明の１つの好ましい実施例を構成するチップテストシステムのブロック図である。
【図２】図１のチップテストシステムがどのように物理的にパッケージされるかを示す図である。
【図３】集積回路チップをテストするため、図１のシステムが実行する３つの異なるタイプの可変長命令を示す図である。
【図４】テストプログラムを形成するため、図３の命令がどのようにシーケンスに配置されるかの例を示す図である。
【図５】図１のシステム中に選択された量で発生する、パターン発生器の内部詳細図である。
【図６】図１のシステム中に選択可能な量で発生する、チップドライバ回路の内部詳細図である。
【図７】図５のパターン発生器および図６のチップドライバ回路がどのように図１のシステム中で相互作用するかを示す図である。
【図８】各チップドライバ回路上のさらなる回路構成であって、それにより、テストされるチップ中のエラーが検出される、図である。
【図９】各ドライバ回路上のさらなる回路構成であって、それにより、多数のチップがプログラム制御下の選択可能なサブセット中で同時にまたは順次にテストされる、図である。
【図１０】図９の回路構成の一部である制御メモリの構造を示す図である。
【図１１】図１のチップテストシステムが実行するさらなる３つのタイプ命令を示す図である。
【図１２】図３に示される３つの命令に対してなされ得る修正を示す図である。
【図１】
0003581688.tif 000003
【図２】
0003581688.tif 000004
【図３】
0003581688.tif 000005
【図４】
0003581688.tif 000006
【図５】
0003581688.tif 000007
【図６】
0003581688.tif 000008
【図７】
0003581688.tif 000009
【図８】
0003581688.tif 000010
【図９】
0003581688.tif 000011
【図１０】
0003581688.tif 000012
【図１１】
0003581688.tif 000013
【図１２】
0003581688.tif 000014