JP3591646B2 - Icチップを試験するための多段アルゴリズムパターン生成器 - Google Patents
Icチップを試験するための多段アルゴリズムパターン生成器 Download PDFInfo
- Publication number
- JP3591646B2 JP3591646B2 JP2001535069A JP2001535069A JP3591646B2 JP 3591646 B2 JP3591646 B2 JP 3591646B2 JP 2001535069 A JP2001535069 A JP 2001535069A JP 2001535069 A JP2001535069 A JP 2001535069A JP 3591646 B2 JP3591646 B2 JP 3591646B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- register
- output
- registers
- pattern generator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012360 testing method Methods 0.000 title claims description 128
- 230000015654 memory Effects 0.000 claims description 115
- 230000004044 response Effects 0.000 claims description 54
- 238000000034 method Methods 0.000 claims description 12
- 239000004020 conductor Substances 0.000 description 87
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 10
- 230000006872 improvement Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 6
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- BATBOVZTQBLKIL-UHFFFAOYSA-N [1-(5,8-dihydroxy-1,4-dioxonaphthalen-2-yl)-4-methylpent-3-enyl] 3-methylbut-2-enoate Chemical compound C1=CC(O)=C2C(=O)C(C(OC(=O)C=C(C)C)CC=C(C)C)=CC(=O)C2=C1O BATBOVZTQBLKIL-UHFFFAOYSA-N 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 229910003092 TiS2 Inorganic materials 0.000 description 1
- 229910010322 TiS3 Inorganic materials 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- XREKLQOUFWBSFH-UHFFFAOYSA-N dimethyl 2-acetylbutanedioate Chemical compound COC(=O)CC(C(C)=O)C(=O)OC XREKLQOUFWBSFH-UHFFFAOYSA-N 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000010587 phase diagram Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31917—Stimuli generation or application of test patterns to the device under test [DUT]
- G01R31/31926—Routing signals to or from the device under test [DUT], e.g. switch matrix, pin multiplexing
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/31813—Test pattern generators
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Tests Of Electronic Circuits (AREA)
Description
【0001】
(関連事例)
前記事件整理番号及び題名によって特定されるような発明は、4つのそれ以外の発明に関係する。これらの発明のすべてに関する特許出願は、1999年11月 日に同時に提出され、それらは1つの共通した詳細説明を有する。これら4つの関連発明は、以下のように特定される。
1.米国出願番号第 号を有する「記憶されているあるいは内部で生成されるビットストリームを用いて選択的にICチップを試験するためのシステム(SYSTEM FOR TESTING IC CHIPS SELECTIVELY WITH STORED OR INTERNALLY GENERATED BIT STREAMS)」と題される事件整理番号第550,612号
2.米国出願番号第 号を有する「ICチップを試験するための多段アルゴリズムパターン生成器(MULTI−STAGE ALGORITHMIC PATTERN GENERATOR FOR TESTING IC CHIPS)」と題される事件表第550,613号
3.米国出願番号第 号を有する「ICチップを試験するための多段アルゴリズムパターン生成器の中間段(INTERMEDIATE STAGE OF A MULTI−STAGE ALGORITHMIC PATTERN GENERATOR FOR TESTING IC CHIPS)」と題される事件表第550,615号
4.米国出願番号第 号を有する「ICチップを試験するための多段アルゴリズムパターン生成器の出力段(OUTPUT STAGE OF A MULTI−STAGE ALGORITHMIC PATTERN GENERATOR FOR TESTING IC CHIPS)」と題される事件表第550,616号
【0002】
(発明の背景)
従来の技術において、チップを試験するための電子システムは、米国特許第5,390,129号に開示されている。従来の技術によるシステムは、本発明の譲受人でもあるユニシス・コーポレイション(Unisys Corporation)に譲渡されている。
従来の技術によるチップ試験システムの簡略化されたブロック図は、特許第129号の図2に図示されている。そのシステムは、時分割されているバス52を介して複数のドライバボード100に結合されるコンピュータ50を含み、各ドライバボード100は、試験されなければならない複数の集積回路チップを保持するそれぞれのバーンインボード500に結合される。
【0003】
動作中、コンピュータ50は、各ドライバボード100に、チップを試験するために使用される試験データパターンの別個の集合を連続して送信する。これらの試験データパターンは、参照番号107によって図3に示され、参照番号145によって図9にさらに詳細に示される大型SRAM内の各ドライバボード上に記憶される。どの特定のドライバボードが任意の一時点で試験データパターンを受信、記憶するのかは、ドライバボード上にあり、図2のブロック図に図示されているアドレス回路100Aによって決定される。
【0004】
試験データパターンがドライバボード100のすべてのSRAM145内に記憶された後に、バーンインボード500のすべてでのチップが並列で試験できる。それを行うために、試験パターンはSRAMのすべてから同時に読み出され、図14に図示されるように、それぞれの出力ドライバモジュール164を通してバーンインボード500のすべてのチップに送信される。
【0005】
特許第’129号のチップ試験システムのある特定の特徴とは、それぞれのバーンインボードが、ボード上で試験されるチップの種別を特定するIDコードを含むという点である。そのIDコードはドライバボード100によって感知され、コンピュータ50に送信される。応じて、コンピュータ50がドライバボードに送信する試験データパターンは、感知されるIDコードに合わせられる。
【0006】
しかしながら、特許第’129号のチップ試験システムは、図2のアーキテクチャによって課されるいくつかの主要な制約も有する。例えば、コンピュータ50は、ドライバボード100のすべてについての試験データパターンの唯一のソースである。その結果、チップ試験システムの動作速度は、コンピュータ50が、バス52上で一度に単一ドライバボードに試験データパターンを送信することができるために制限される。
【0007】
特許第’129号のチップ試験システムの別の制約とは、各ドライバボード100がつねにバーンインボード500上のチップのすべてを同時に試験するという点である。ただし、それぞれのバーンインボードは本来ボード上のチップが消散できる電力総量に限度を有している。このようにして、各バーンインボード500での総電力消散を一定の限度以下に保つためには、各バーンインボードでのチップの総数が、チップあたりの最大電力消散が上昇するにつれて減少しなければならない。
【0008】
特許第’129号のチップ試験システムの依然として別の制約とは、各ドライバボードの大型SRAM145に記憶されている試験データパターンがSRAMメモリセルを非常に非効率的に利用するという点である。特許第’129号の図9は、各SRAM145が19個のアドレスビットを受信し、8個のデータ出力ビットを有することを示す。このようにして、各ドライバ回路上のSRAM145は、800万個のメモリセルを有する。しかし、一定の種類のチップは、時間とともに数が変化する直列ビットストリームのシーケンスをそれらに送信することによって試験される。このようにして、SRAM145が一方の時間間隔の間に4個のビットストリームを送信し、他方の時間間隔の間に2個のビットストリームだけを送信する場合には、2個のビットストリームが送信されているときにSRAMの半分が浪費される。
【0009】
特許第’129号のチップ試験システムで前記問題に対処するために、本発明人は、以下のとおりに特定される1999年8月31日に3つの米国特許出願を提出した。
【0010】
1.「チップドライバ回路の選択可能な集合に異なるビットストリームを同時に一斉送信する選択可能な数のパターン生成器を有するチップを試験するための電子システム(An Electronic System for Testing Chips Having A Selectable Number of Pattern Generators That Concurrently Broadcast Different Bit Streams To Selectable Sets of Chip Driver Circuits)と題されるUSSN第09/386,946号。
【0011】
2.「ワード境界で終わり、任意の長さのチップ試験ビットストリームを生成する未使用ビットによって間隔をあけて配置される命令を含むプログラム記憶装置(A Program Storage Device Containing Instructions That Are Spaced Apart By Unused Bits That End On Word Boundaries And Which Generate Chip Testing Bit Streams of Any Length)」と題されるUSSN第09/387,197号。
【0012】
3.「チップ電力消散を制限するためにプログラム制御下にある選択可能な部分集合で同時にまたは連続して複数のチップの集合を試験するための電子システム(An Electronic System For Testing A Set Of Multiple Chips Concurrently Or Sequentially In Selectable Subsets Under Program Control To Limit Chip Power Dissipation)」と題されるUSSN第09/386,945号。
【0013】
前記特許出願のそれぞれは、図1から図12の同じセットを含み、それらはそれぞれ同じ詳細な説明を有する。また、前記特許出願のそれぞれは、開示されているチップ試験システムのさまざまな態様をカバーする請求項の別個のセットを有する。
【0014】
USSN第09/386,946号に請求されるような発明は、動作の速度に関する特許第’129号の制約に取り組む。特に、それらのクレームは、そのそれぞれが、別個のバスを介して、選択可能な数のチップドライバ回路へ結合される選択可能な数のパターン生成器から構成される集積回路チップを試験するためのシステムをカバーする。各パターン生成器は、そのそれぞれのメモリからワード単位で異なるビットストリームを記憶するそれぞれのメモリにも結合される。そして、それは、同時にその別個のバスに結合されるチップドライバ回路のすべてに、読み取られるワードを送信する。それが発生している間、各チップドライバは、それが送信されるワードを、並列で複数の集積回路チップを試験するビット直列試験信号に変換する。
【0015】
1つの別個のバスに結合されるすべてのチップドライバ回路は、1つのパターン生成器から同時にビットストリームのワードを受信するので、動作の速度は従来の技術より加速される。また、パターン生成器のすべてが別個のバス上で同時にさまざまなビットストリームを送信するので、動作の速度は従来の技術よりさらに加速される。
【0016】
USSN第09/387,197号では、請求されるような発明は、試験データパターンを記憶するためのメモリの非効率的な使用に関する特許第’129号の制約に取り組む。特に、これらの請求項は、チップを試験するためのビットストリームの集合を指定する可変長命令を記憶するメモリに結合されるパターン生成器から構成される集積回路チップを試験するためのシステムをカバーする。各可変長命令は、集合の中のビットストリームの数を示す符号を含む。集合の中の各ビットストリームは、ワード境界で開始し、1ビットという増分で変化する選択可能な数のビットから成り立つ。未使用のビットのそれぞれの行列は、各ビットストリームの直後に開始し、ワード境界で終了する。
【0017】
符号が、集合内のビットストリームの数が1にすぎないことを示す場合、該1つのビットストリームは、メモリの連続的なワードに記憶される。符号が、集合のビットストリームの数が1より多いことを示す場合、それらの複数のビットストリームがメモリ内の連続ワードにインタリーブされた様式で記憶される。その結果、浪費されるメモリセルだけが、各ビットストリームの後に未使用のビットを記憶するセルである。しかし、それらの未使用のビットは、ビットストリームのそれぞれが長いときには、数の上で無意味である。
【0018】
USSN第09/386,945号では、請求されるような発明が、バーンインボードで試験されているチップによる総電力消散に関する特許第’129号の制約に取り組む。特に、それらのクレームは、クロック信号を生成する信号生成器、及びクロック信号を受信する第1入力、コマンドを受信するための第2入力、及び複数の出力を有する制御回路から構成される集積回路チップを試験するためのシステムをカバーする。コマンドソースは、制御回路の第2入力にコマンドのプログラム可能なシーケンスを送信し、制御回路内の手段はコマンドに応じて特定の出力を選択し、第1入力から選択された出力だけにクロック信号を渡す。
【0019】
制御回路の出力のすべては、試験されなければならないさまざまなチップにそれぞれのクロック送信機を通して結合される。このようにして、プログラム可能コマンドに応じて、クロック信号は、選択可能な部分集合で、試験されるチップに連続して送信することができる。このような順序付けによって、試験されるチップの総電力消散は、チップが、それらがクロック信号を受信するときに大量の電力を消散するが、それらがクロック信号を受信しないときには実質的にはより少ない電力を消散する型であるときに調節することができる。このようなチップは、例えば、CMOSマイクロプロセッサチップ及びCMOSメモリチップを含む。
【0020】
前記3つの特許出願(これ以降「ベースシステム」)に開示されるチップの特徴のすべてにも関わらず、本発明人は、さらに、そのシステムに対する主要な改善策を発見した。この改善されたシステムによって、チップ用の試験信号を定義するために必要とされるメモリの量は、数桁削減される。
【0021】
改善されたシステムの好ましい実施態様はここに、及び1ページに特定される4つの関連ケースのそれぞれで説明される。それぞれのケースでは、改善されたシステムは、図及び同じ詳細な説明とともに説明される。また、それぞれのケースは、改善されたシステムの異なる態様をカバーするクレームの別個のセットを有する。
【0022】
改善されたシステムの構造及び動作を完全に理解するために、まず、3つの参照される特許出願第09/386,946号と第09/387,197号、及び第09/386,945号に説明されるベースシステムの理解を有することが必要である。結果的に、それらの詳細な説明だけではなく、それらの出願の図1から図12もここで繰り返される。それから、改善されたシステムは、ここで図1から図12のベースシステムに対する改良として、図13から図22とともに説明される。
また、従来の技術において、集積回路チップを試験するための別のシステムが、欧州特許出願EP第0 859 367 A2号(参考資料D1)に説明されている。しかしながら、参考資料D1のシステムは、一般的な先端技術を定義しているに過ぎず、ここに請求されているシステムと特に関連しているとは見なされない。本出願の請求項1は、唯一の独立クレームであり、それは明示的に参考文献D1によって教示または示唆されていない複数の構造上の特徴を明示的に列挙する。
【0023】
(発明の簡略概要)
本発明は、請求されるように、メモリに記憶されている第1ビットストリームまたは内部で生成される第2ビットストリームで選択的にICチップを試験するためのシステムの1つの特定の部分をカバーする。システムの中で、内部で第2ビットストリームを生成することにより達成される主要な利点とは、メモリ内に必要とされる記憶の量が大幅に削減されるという点である。例えば、第2ビットストリームが、合計10億ビットを含む可能性がある。しかし、それは、メモリ内の記憶の1000ビット未満を必要とする命令で生成することができる。
【0024】
本発明として請求されるシステムの特定の部分は、ICチップを試験するためのビットストリームを生成する多段アルゴリズムパターン生成器である。この多段アルゴリズムパターン生成器は、3段パイプラインとしてともに結合される、初期段、中間段、及び出力段から構成される。好ましくは、初期段は、外部ソースからの一連の命令に応えて第1アドレスの複数の集合を連続して生成する。中間段は、初期段からの第1アドレスの各集合を連続して記憶し、第1アドレスの記憶されている集合をアドレスの第2集合に変換し、出力段は、中間段からアドレスの各第2集合を連続して記憶し、アドレスの記憶されている第2集合からビットを選択することによって、チップを試験するための出力信号を生成する。
【0025】
前記算法パターン生成器を用いて、初期段によって連続して生成される第1アドレスは、仮想または仮説のメモリ内の仮想アドレスとなることがあり、それらの仮想アドレスは、中間段によって試験されなければならない実際のメモリチップの物理アドレスに変換することができる。この特徴は、複数の異なる種類のメモリチップが試験される必要がある場合、及びチップの種類ごとに、メモリセルが、異なる非連続アドレスによってアドレス指定される行と列で配列される場合に特に有効である。このようなチップを試験するために、仮想アドレスは、連続アドレスの1つの固定シーケンスとして初期段によって生成することができ、物理アドレスは、試験されなければならない特定の種類のメモリチップへのその仮想アドレスから物理アドレスへの変換を調整することによって中間段で生成することができる。
【0026】
(詳細説明)
まず図1〜図12に関して、集積回路チップを試験するためのベースシステムのある実施態様が説明されるだろう。それ以降、本発明を構成するベースシステムに対する修正は、図13〜図22に関して説明されるだろう。図1が示すように、ベースシステムは、5つの異なる種類のモジュール10〜14から構成され、各モジュールの説明が、表1の中に以下に示される。
【0027】
表1
モジュール 説明
10 各モジュール10は、それらが試験される間に複数の集積回路チップ10aを保持するチップアセンブリである。図1のシステムでは、チップアセンブリ10の総数が選択可能である。各チップアセンブリ10は、複数のソケット10cがはんだつけされる1枚のプリント回路基板10bを含み、各ソケットは、チップ10aの1つを保持する。コネクタ10dはプリント回路基板10bの端縁に取り付けられ、プリント回路基板内の電気導体10eがコネクタ10dとチップ10aの間で試験信号を搬送する。
11 各モジュール11は、チップドライバ回路である。図1のシステムでは、別個のチップドライバ回路11がチップアセンブリ10ごとに提供される。各チップドライバ回路11は、図6、図8、図9、及び図10に示される回路構成要素のすべてを含む。その回路構成要素により、試験信号は、プログラム可能である多様なビット直列シーケンスとして、チップ10aに送信され、チップ10aから受信される。
【0028】
表1(続き)
モジュール 説明
12 各モジュール12はパターン生成器である。図1のシステムでは、各パターン生成器12は、バス12aを介して、選択可能な数のチップドライバ回路に結合される。図1は、チップドライバ回路11のすべてがサブグループに区分され、1つの別個のパターン生成器12が別個のバス12aを介して各サブグループに結合される例を示す。代わりに、チップドライバ回路11のすべては、単一バス12aによって単一パターン生成器に結合できる。あるいは、各チップドライバ回路11は、別個のバス12aによって別個のパターン生成器に結合できる。各パターン生成器12は、図5と図6に示される回路構成要素のすべてを含む。その回路構成要素によって、各パターン生成器12は、チップ10cを試験するための特定のビット直列シーケンスを指定するプログラム可能な命令の別個のシーケンスを実行する。命令を実行する際に、各パターン生成器12は、ビット直列シーケンスをワードに区分し、該ワードを、そのバス12aに結合されるチップドライバ回路11のすべてに一斉送信する。
13 各項目13は、ランダムアクセス読み書きメモリである。別個のメモリ13が、パターン生成器12ごとに提供される。各メモリ13は、対応するパターン生成器によって実行されるプログラム可能命令の別個のシーケンスを記憶する。これらの命令は、アクセスポート13aを介してパターン生成器12によってメモリ13から読み取られ、それらは別のアクセスポート13bを介してメモリの中に書き込まれる。両方のアクセスポートとも同時に動作する。したがって、いくつかの命令をポート13aから読み取ることができるが、同時にその他の命令をポート13bの中に書き込むことができる。
14 モジュール14は、図1のシステム全体の動作を命令する単一ホストコンピュータである。ホストコンピュータ14は、バス13cを介して、メモリ13のすべてでポート13bに結合される。ホストコンピュータ14の中に含まれているのは、ディスク14a、キーボード14b、及びモニタ14cである。ディスク14aに記憶されているのは、パターン生成器12用の複数のプログラムであり、それぞれのこのようなプログラムがチップ10cを試験するための信号の特定のビット直列シーケンスを指定するプログラム可能命令の別のセットを含む。プログラムの内の1つを選択し、特定のパターン生成機のメモリ13にそれを送信するために、オペレータ(図示されていない)はキーボード14bを介してホストコンピュータ14に多様なコマンドを入力する。それ以降、選択されたプログラムでチップを試験することから得られる結果は、メモリ13内のパターン生成器によって記憶され、それらはホストコンピュータ14によってモニタ14cの上で表示される。
【0029】
次に図2を参照すると、それは、モジュール10〜14のすべてが、どのようにして1つのシステムとしてともに物理的に実装されるのかを示す。図2のアイテム20は、スタック内で互いの上に配列される複数の水平スロット21−1、21−2等を有する機械的なラックである。それぞれのスロットは、1チップアセンブリ10を加えた1つのドライバ回路11を保持するか、あるいはそれは1つのメモリ13を加えた1つのパターン生成器12を保持する。
【0030】
図2は、ラック20内のスロットの総数が14である例を示す。一番上のスロットは21−1であり、次のスロットは21−2である等。図2では、スロット21−1〜21−14が以下のように占有される。
【0031】
スロット21−1〜21−7のそれぞれが、チップアセンブリ10を加えたドライバ回路11を保持し、次のスロット21−8は、そのメモリ13を加える1つのパターン生成器12を保持する。スロット21−8内のパターン生成器12は、バス12aによってスロット21−1〜21−7の7つのドライバ回路に結合される。そのバス上では、スロット21−8内のパターン生成器が、スロット21−1〜21−7内にあるチップドライバ回路のすべて7つにビット直列試験信号を一斉送信する。
【0032】
スロット21−9は、チップアセンブリ10を加えるドライバ回路11を保持し、スロット21−10は、そのメモリ13を加える1つのパターン生成器12を保持する。スロット21−10内のパターン生成器は、バス12aによってスロット21−9内のドライバ回路に結合され、そのバス上で、スロット21−10内のパターン生成器が、スロット21−9内の1チップドライブ回路だけにビット直列試験信号を送信する。
【0033】
スロット21−11〜21−13のそれぞれが、チップアセンブリ10を加えたドライバ回路11を保持し、次のスロット21−14が、そのメモリ13を加えた1つのパターン生成器12を保持する。スロット21−14内のパターン生成器は、バス12aによってスロット21−11〜21−14内の3つのドライバ回路に結合され、そのバスの上でスロット21−14内のパターン生成器が、スロット21−11〜21−13内にあるチップドライバ回路の3つすべてにビット直列試験信号を一斉送信する。
【0034】
スロット21−8、21−10、及び21−14内のメモリ13のそれぞれが、パターン生成器12によって一斉送信されるビット直列試験信号を定義する複数の種類の命令の異なるシーケンスを記憶する。3つの異なる種類の命令が図3に示される。命令31は、第1の種類であり、命令32は、第2の種類であり、命令33は第3の種類である。
【0035】
第1種類の各命令31は、演算コードOP、ワードカウントWCNT、及びビットカウントBNCTを含むワードW0を含む。演算コードがOP1というある特定の値を有するとき、命令31は、ビットストリームTDIを、試験されるチップ10aないにあるデータレジスタの中に書き込ませる。演算コードがOP2という別の特定の値を有するとき、命令31は、チップ10a内にある命令レジスタの中にTDIビットストリームを書き込ませる。
【0036】
演算コードOP1とOP2の両方について、書き込まれるTDIビットストリームは、図3に図示されるように命令31の中で指定される。このTDIビットストリームは、ワードW0の直後に開始し、それは1ビットの増分で変化する長さを有する。TDIビットストリームのビット総数は(WCNT−1)(X)+BCNTであり、この場合Xはワード当たりのビット数である。TDIビットストリームを指定しない最後のワードの中のすべてのビットが未使用である。
【0037】
第2種類の各命令32は、演算コード、ワードカウントWCNT、及びビットカウントBCNTを含むワードW0を含む。演算コードがOP3というある特定の値を有するとき、命令32が、チップ10a内のデータレジスタの内容を読み取らせ、選択的に命令の中のデータストリームと比較させる。演算コードがOP4という別の特定の値を有するとき、命令32は、チップ10a内の命令レジスタの内容を読み取らせ、選択的に命令の中のデータストリームと比較させる。
【0038】
演算コードOP3とOP4の両方について、2つのビットストリームETD0とMASKが、比較動作で使用するために命令32の中で指定される。それらの2つのビットストリームはワードW0の直後に開始し、それらは図3に図示されるようにワード単位でインタリーブされる。MASKビットストリーム内のi番目のビットが「1」である場合には、チップから読み出されるi番目のビットは比較動作に参加し、チップからのその特定のビットはETDOビットストリーム内のI番目のビットに比較される。ビットストリームETDO及びMASKは長さが可変であり、それらのビットストリームのそれぞれでのビット総数は(WCNT−1)(X)+BCNTである。ETDOビットストリームとMASKビットストリームを指定しない最後の2つのワード内のビットのすべては未使用である。
【0039】
第3種類の各命令33は、演算コードOP、ワードカウントWCNT、及びビットカウントBCNTを含むワードW0を含む。演算コードがOP5というある特定の値を有するとき、命令33は、ビットストリームTDIをチップ10a内のデータレジスタの中に書き込ませると同時に、命令33はチップ10a内のデータレジスタの内容を読み取らせ、命令の中のデータストリームと選択的に比較させる。演算コードがOP6という別の特定の値を有するときには、命令33は、TDIビットストリームをチップ10aの中の命令レジスタの中に書き込ませると同時に、命令33は、チップ10aの命令レジスタのコンテンツを読み取らせ、命令の中のデータストリームと選択的に比較させる。
【0040】
演算コードOP5とOP6の両方について、TDIビットストリームは、命令33内で指定され、2つのそれ以外のビットストリームETD0とMASKも比較動作で使用するために命令の中で指定される。これらの3つのビットストリームはワードW0の直後に開始し、それらは図3に図示されるようにワード単位でインタリーブされる。MASKビットストリームのi番目のビットが「1」である場合には、チップから読み出されるI番目のビットが比較動作に参加し、チップからのその特定のビットはETDOビットストリームのI番目のビットに比較される。3つのビットストリームTDI、ETDO、及びMASKのそれぞれは長さが可変である。それらのビットストリームのそれぞれでのビットの総数は(WCNT−1)(X)+(BCNT)である。TDIビットストリーム、ETDOビットストリーム及びMASKビットストリームを指定しない最後の3つのワード内のビットのすべてが未使用である。
【0041】
パターン生成器12が命令31、32、及び33のそれぞれを実行するとき、それは、図3の命令の中で述べられない追加のビットストリームも生成する。その追加のビットストリームは、チップ10aを、データレジスタを選択的に読み取り、データレジスタを書き込み、命令レジスタを読み取るか、あるいは命令レジスタを書き込む特定の状態にするTMSと呼ばれる制御信号として使用される。各TMSビットストリームは、命令レジスタまたはデータレジスタのどちらかが使用される必要があると指定する演算コードOP1〜OP6、及びTMS信号内のビット数を決定するWCNTカウント及びBCNTカウントに応じて生成される。
【0042】
図4は、3種類の命令31、32及び33が、パターン生成器12用の各メモリ13内の異なるシーケンスにどのようにして記憶されるのかの例を示す。図4の例では、命令のシーケンスはI(k)、I(k+1)...等である。命令I(k+1)とI(k+3)は、第1種類31であり、命令I(k)とI(k+4)は第2種類であり、命令I(k+2)とI(k+5)は第3種類33である。
【0043】
第1種類の各命令31は、OP1またはOP2という演算コードで特定され、それは単一の可変長ビットストリームTDIを指定する。第2種類の各命令32はOP3またはOP4という演算コードによって特定され、それは2つの可変長ビットストリームETDOとMASKを指定する。第3種類の各命令33はOP5またはOP6という演算コードによって特定され、それは3つの可変長ビットストリームTDI、ETDO及びMASKを指定する。使用されないビットのそれぞれの系列(NU)は、各直列ビットストリームの直後に開始し、ワード境界で終了し、それがシーケンス内の次の命令をつねにワード境界で開始できるようにする。
【0044】
ここで図5を見ると、各パターン生成器12内にある回路構成要素の詳細が説明されるだろう。その回路構成要素は、順次状態機械40、カウンタ41、7台のレジスタ42−48のセット、マルチプレクサ49、及び発振器50を含む。それらの構成部品40〜50のすべてが、図示されているように互いに相互接続されている。
【0045】
レジスタ42〜48のそれぞれだけではなく、カウンタ41もデータ入力Dとクロック入力Cのセットを有する。入力Dに関するデータをカウンタまたはある特定のレジスタに記憶するために、状態機械40はクロックパルスをクロック入力Cに送信する。カウンタ42は、カウントダウン入力CDも有し、該カウンタは、パルスがCD入力で受信されるとその記憶されているカウントを1減分する。
【0046】
動作中、構成部品41〜48のそれぞれは、以下の情報を記憶するために状態機械40によって使用される。レジスタ42は、図3の命令31、32、及び33の第1ワードW0で発生する演算コードOPを記憶する。カウンタ41は、ワードカウントWCNTを記憶し、レジスタ43はビットカウントBCNTを記憶し、それは図3の命令のそれぞれの第1ワードW0で発生する。
【0047】
レジスタ44は、図3の命令31と33で発生するビットストリームTDIの1ワードを記憶する。レジスタ45は、図3の命令32と33で発生するビットストリームETDOの1つのワードを記憶する。そして、レジスタ46は、図3の命令32と33で発生するビットストリームMASKの1つのワードを記憶する。
【0048】
レジスタ47は、図3の命令の実行中にパターン生成器12によって内部で生成される追加のビットストリームTMSの1つのワードを記憶する。レジスタ48は、まもなく説明されるだろう方法でパターン生成器12とチップドライバ回路11の両方によって内部で使用される多様な制御ビットを記憶する汎用目的レジスタである。
【0049】
図3の命令の1つの実行の開始時に、パターン生成器12は、メモリ13から命令の第1ワードW0を読み取る。その読み取り動作を実行するために、状態機械40は、図1に示されるメモリ13のポート13aに移動するアドレス線路40aの集合でメモリアドレスMADDRを送信する。応じて、メモリ13のポート13aは、データ線路40bの集合上でのめ森データMDATAとしてアドレス指定されるワードを状態機械40に送信する。それから、状態機械40は、レジスタ42にOP符号を記憶するため、カウンタ41にワードカウントWCNTを記憶するため、及びレジスタ43にビットカウントBCNTを記憶するために3つのクロック線路40c〜40eでクロックパルスを送信する。
【0050】
それ以降、状態機械40は、レジスタ42内にあるOP符号を調べる。レジスタ42内のOP符号が、命令がTDIデータストリームを含む種類であることを示す場合には、そのデータストリームの第1ワードはメモリ13から読み出され、レジスタ44に記憶される。レジスタ42内のOP符号が、命令がETDOデータストリームを含む型であることを示す場合、そのデータストリームの第1ワードがメモリ13から読み出され、レジスタ45に記憶される。レジスタ42内のOP符号が、MASKデータストリームを含む型であることを示す場合には、MASKデータストリームの第1ワードはメモリ13から読み取られ、レジスタ46に記憶される。
【0051】
前記データストリームワードは、アドレス線路40aでメモリアドレスを連続して送信し、データ回線40bでメモリ13からアドレス指定されたワードを受信することによって、パターン生成器状態機械40を介して一度に1つ得られる。メモリ13からのそれぞれの受信されたワードは、クロック回線40f、40gまたは40hの1つでクロックパルスを送信することによって、適切なレジスタ44、45または46に記憶される。
【0052】
前記動作に続いて、状態機械40は、前述された追加のビットストリームTMSの1つのワードを内部で生成する。TMSビットストリームのその内部で生成されたワードは、信号線路40iの集合で送信され、それはクロック線路40jでクロックパルスによってTMSレジスタ47にロードされる。
【0053】
それ以降、状態機械40は、JDATAと呼ばれるデータ信号を搬送するデータ線路55の集合に、過去にロードされたレジスタ44〜47の出力を連続して渡すためにマルチプレクサ49を使用する。マルチプレクサ49を通してある特定のレジスタの出力を渡すために、状態機械40は、マルチプレクサ49につながる制御線路40kの集合で、SEL(i)と呼ばれる信号を生成し、制御する。
【0054】
レジスタの出力がJDATA線路55で送信される間、状態機械40は、アドレス線路56の集合でJADDRと呼ばれるアドレス信号も生成し、それらのアドレス信号がJDATA信号の目的地を決定する。JDATA信号及びJADDR信号が送信されているときを示すために、状態機械40は、クロック線路57上でJSTROSEと呼ばれるパルスを送信する。また、状態機械40は、クロック線路58でBUSCKと呼ばれる自由に動作するクロックを送信する。線路55〜58のすべてが、パターン生成器12を選択可能な数のチップドライバ回路11に接続する図1と図2に示されているバス12aをともに構成する。
【0055】
次に、図6に関して、チップドライバ回路11のそれぞれの中にある回路構成要素の詳細が説明されるだろう。その回路構成要素は、アドレスデコーダ60、5台のレジスタ61〜65のセット、4つの並列から直列へのシフトレジスタ66−69、シフト制御回路70、及び可変遅延線路71を含む。構成部品60〜71のすべては、図6に示されるように互いに相互接続される。
【0056】
レジスタ61〜65のそれぞれは、データ入力D、及びイネーブル入力E、及びクロック入力Cの集合を有する。データ入力Dは図5のパターン生成器からデータ信号JDATAを受信し、クロック入力Cはパターン生成器からJSTROBEクロックパルスを受信する。JDATA信号を特定のレジスタ61〜65の中に記憶するために、別個のイネーブル信号E1〜E6がそのレジスタのイネーブル入力Eに送信される。
【0057】
レジスタ61〜65用のイネーブル信号のすべては、信号回線60a−60eの集合でアドレス復号回路60によって生成される。イネーブル信号E1はレジスタ61に送信される。イネーブル信号E2はレジスタ62に送信される等である。これらのイネーブル信号E1〜E5は、JADDRアドレス線路56の特定のアドレスを復号することによってアドレスデコーダ60内に生成される。
【0058】
動作中、図5のパターン生成器状態機械40は、レジスタ62〜65が以下の情報を記憶するように、JADDR信号、JDATA信号及びJSTROBE信号を送信する。MASKビットストリームの1つのワードはレジスタ62に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ47から送信される。TDIビットストリームの1つのワードはレジスタ63に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ44から送信される。ETDOビットストリームの1つのワードは、レジスタ64に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ45から送信される。TMSビットストリームの1つのワードはレジスタ65に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ47から送信される。
【0059】
レジスタ62〜65のそれぞれは、並列/直列シフトレジスタ66−69の1つでデータ入力Dにそれぞれ結合される。それらの並列/直列シフトレジスタは、LOAD入力L及びCLOCK入力Cも有する。クロック入力CがSERIALCKクロック信号の立ち上がり縁を受信するときに入力LでのLOAD信号が「1」状態にある場合、データ入力信号のすべてが並列/直列シフトレジスタ66〜69に記憶される。それ以外の場合、SERIALCKクロック信号の立ち上がり縁が発生するときにLOAD信号が「0」状態にある場合、レジスタ66〜69のすべては、それらが記憶するデータの1ビットを外にシフトする(shift out)。
【0060】
LOAD信号及びSERIALCK信号の両方とも、シフト制御回路70によって生成され、それはTMSビットストリームのワードをレジスタ65の中にロードできるようにするイネーブル信号e5に応じて動作する。イネーブル信号E5によってTMSレジスタがロードされた後、シフト制御回路70は線路70aでSERIALCKクロック信号の生成を開始する。これは、クロック線路58からクロック線路70aにバス黒く信号BUSCKの動作をゲート制御することによって行われる。
【0061】
SERIALCKクロック信号の第1サイクルの場合、シフト制御回路70は、「1」としてのLOAD信号を直列/並列レジスタ66〜69のすべてに送信し、それによりレジスタ66〜69は、レジスタ62〜65に保持されるビットストリームの1つのワードを記憶する。それから、シフト制御回路70はLOAD信号を「0」として生成し、それにより並列/直列レジスタ66〜69のそれぞれに、それらが記憶していたビットストリームのワードを外にシフトさせる。
【0062】
レジスタ66〜69からのそれぞれのビットはSERIALCKクロックと同期してシフトされる。MASKビットストリームは信号線路66aにシフトされ、TDIビットストリームは信号線路67aにシフトされ、ETDOビットストリームは信号線路68aにシフトされ、TMSビットストリームは信号線路69aにシフトされる。このシフトは、シフトレジスタ66〜69のそれぞれが空にされるまでLOAD信号の「0」状態に応じて続行する。
【0063】
ビットストリームMASK、TDI、ETDO及びTMSのどれか1つが第2ワードの中に拡張すると、それらのワードは、前記シフトが発生している間に、パターン生成器状態機械40によってメモリ13から読み取られ、レジスタ62〜65の中にロードされる。そのケースでは、シフト制御回路70は、イネーブル信号E5が再びTMSレジスタ65に2度目に送信されたことを思い出すだろう。
【0064】
後に、シフトレジスタ66〜69が空になると、シフト制御回路70は、第2イネーブル信号E5が送信されたかどうかを確かめるためにチェックするだろう。送信されていた場合、シフト制御回路70は、再び、直列/並列レジスタ66〜69のすべてにLOAD信号を「1」として送信し、それによりレジスタ66〜69は、レジスタ62〜65に保持されるビットストリームの第2ワードを記憶するだろう。それから、シフト制御回路70は、並列/直列レジスタ66〜69が、それらが記憶しているビットストリームの第2のワードを外にシフトするまでLOAD信号を「0」として生成するだろう。
【0065】
前記ロード及びシフトは、メモリ13の中の命令について直列ビットストリームの終わりに達するまで続行する。それから、ビットストリームの最後のビットがレジスタ66〜69からシフトされると、シフト制御回路70はクロック線路70aでクロック信号SERIALCKを生成するのを停止する。
【0066】
前述された動作のすべてに加えて、図6のチップドライバ回路は、クロック線路71aでクロック信号TCKも生成する。このTCKクロック信号は、線路53上のBUSCK信号の遅延されたレプリカであり、それは可変遅延回路71によって生成される。可変遅延回路を通る遅延の量は、レジスタ61に記憶される信号線路61aの制御信号によって選択される。
【0067】
次に図7を参照すると、それは図3の各命令が図5のパターン生成器及び図6のチップドライバ回路によって実行される全体的なシーケンスを描く。当初、パターン生成器状態機械40は、それがそのメモリ13から命令の第1ワードW0を読み出す状態S1にある。それ以降、状態S2では、状態機械40が、それが実行している命令の種類を決定するためにレジスタ42内の演算コードを調べる。
【0068】
命令が第1種類31または第3種類33である場合、状態機械40はTDIビットストリームの1つのワードを読み取り、これは状態S3で発生する。そのワードは、状態機械40によってレジスタ44に記憶される。
【0069】
命令が第2種類32または第3種類33である場合、状態機械40はETDOビットストリームの1つのワードを読み取り、これは状態S4で発生する。ETDOビットストリームのそのワードはレジスタ45に記憶される。
【0070】
また、命令が第2種類32または第3種類33である場合には、状態機械40は、MASKビットストリームの1つのワードを読み取り、これは状態S5で発生する。MASKビットストリームのそのワードは、状態機械40によってレジスタ46に記憶される。
【0071】
それ以降、状態機械40は、TMSビットストリームの1つのワードを内部で生成し、これが状態S6で発生する。TMSビットストリームのそのワードは、状態機械40によってレジスタ47に記憶される。
【0072】
次に状態S7では、状態機械40が、それが第1種類命令31または第3種類命令33を実行している場合には、TDIビットストリームの1つのワードを一斉送信する。TDIビットストリームのこのワードは、レジスタ44からマルチプレクサ49を通って、パターン生成器に接続される各チップドライバ回路のレジスタ63の中に送信される。
【0073】
次に状態S8では、状態機械40が、それが第2種類命令32または第3種類命令33を実行している場合には、ETDOビットストリームの1つのワードを一斉送信する。ETDOビットストリームのこのワードは、レジスタ45からマルチプレクサ49を通って、パターン生成器に接続される各チップドライバ回路のレジスタ64の中に送信される。
【0074】
次に状態S9では、状態機械40は、それが第2種類命令32または第3種類命令33を実行している場合には、MASKビットストリームの1つのワードを一斉送信する。MASKビットストリームのこのワードは、マルチプレクサ49を通ってレジスタ46から、パターン生成機に接続される各チップドライバ回路のレジスタ62の中に送信される。
【0075】
次に状態S10では、状態機械40がTMSビットストリームの1つのワードを一斉送信する。TMSビットストリームのこのワードはレジスタ47からマルチプレクサ49を通って、パターン生成器に接続される各チップドライバ回路のレジスタ65の中に送信される。
【0076】
それから状態S11では、状態機械40は、カウンタ41内のワードカウントWCNTを1減ビンし、結果がゼロであるかどうかを確かめるためにチェックする。結果がゼロではない場合には、状態S3〜S10での動作のすべてが繰り返される。それ以外の場合、結果がゼロである場合には、状態機械40は状態S1になることによって次の命令の実行を開始する。
【0077】
状態機械40が状態S10のTMSビットストリームのワードを一斉送信するたびに、そのイベントは、パターン生成器に接続される各チップドライバ回路内のシフト制御回路70によって思い出される。それから並列/直列シフトレジスタ66〜69が空である場合には、それらは保持レジスタ62〜65の内容をロードされる。これは、チップドライバ回路が状態S21にあるときに発生する。
【0078】
それ以降、並列/直列シフトレジスタ66〜69のコンテンツが信号線路66a〜69aにシフトされる。それは、チップドライバ回路が状態S22にあるときに発生する。それから、シフトレジスタ66〜69の最後のビットが外にシフトされているときには、シフト制御回路70は、レジスタ65がTMSビットストリームの別のワードをロードされたかどうかを確かめるためにチェックする。ロードされている場合、状態S21とS22のシフト動作が繰り返される。
【0079】
TDI、ETD0、MASK及びTMSのビットストリームの長さが数ワードであるときには、チップドライバ回路11内の状態S21とS22がパターン生成器12の状態S3〜S11と同時に発生する。その同時動作のために、チップドライバ回路11及びパターン生成機12は、チップドライバ回路が、パターン生成器がビットストリームの次のワードを読み取り、一斉送信する間にビットストリームの1つのワードからビットをシフトする多段パイプラインとしての役割を果たす。
【0080】
また、パターン生成器状態機械40が次の命令の実行を開始するとき、チップドライバ回路11は、状態S22で、並列/直列シフトレジスタ66〜69に残るあらゆるビットをシフトするために状態S22で続行する。その同時動作のため、チップドライバ回路11およびパターン生成器12は、再び、チップドライバ回路が、パターン生成器が次の命令のワードW0を読み取り、復号している間に、1つの命令のビットストリーム内でビットをシフトする多段パイプラインとしての役割を果たす。
【0081】
ここで図8を見ると、それは、各チップドライバ回路が試験される集積回路チップとどのようにして相互結合されるのかに関する追加の詳細を示す。図8では、参照番号10は、図1と図2に示される同じチップアセンブリを特定し、参照番号10aは、試験されなければならないアセンブリ10の中でチップを特定する。
【0082】
アセンブリ10の中で試験されなければならない各チップ10aについて、1台の受信機85を加えた4台の送信機81〜84の別個の集合がチップドライバ回路11で提供される。各送信機81は、線路71aから別個のチップ10aにクロック信号TCKを送信する。各送信機82はビットストリームTDIを線路67aから別個のチップ10aに送信する。各送信機83は、線路69aから別個のチップ10aにビットストリームTMSを送信する。そして、各送信機84は、図9と図10とともに後に後述されるだろうそれぞれの高周波クロックHFCK(i)を、別個のチップ10aに送信する。
【0083】
送信機81〜84から受信される信号に応じて、アセンブリ10の中のそれぞれのチップ10aが、TDOと呼ばれる別個の出力ビットストリームを生成する。そのTDOビットストリームは、各チップ10aから、チップドライバ回路上の別個の受信機85に送信される。受信機85から、TD0ビットストリームのすべてが、図8に図示されるチップドライバ回路の残りの構成部品90〜98によって並列で処理される。
【0084】
図8の構成部品90は、排他的論理和ゲートであり、構成部品91は論理積ゲートであり、構成部品92はフリップフロップである。構成部品90〜92の別個の集合が受信機85のそれぞれに提供される。図8の構成部品93はマルチプレクサであり、構成部品94はデコーダ回路であり、構成部品95は可変遅延回路であり、構成部品96はレジスタであり、構成部品97はデコーダ回路であり、構成部品98はレジスタであり、構成部品99はデコーダ回路である。
【0085】
動作中、ビットストリームETDO、MASKおよびTCKは可変遅延回路95を通って送信され、それによりそれぞれDETDO、DMASK、およびDTCKと呼ばれる3つの対応する遅延されたビットストリームを生成する。可変遅延回路95を通る遅延の量は、レジスタ96の出力によって選択され、その遅延が、TDOビットストリームを生成する各チップ10a内で発生する遅延を補償する。ある特定の遅延を選択するために、レジスタ96は、デコーダ回路97が所定のJADRアドレスを検出するときにJDATA信号をロードされる。
【0086】
遅延回路95から、遅延ビットストリームDETDOは、それが受信機85のすべてから生じるTDOビットストリームに比較される排他的論理和ゲート90のすべてに送信される。DETDOビットストリーム内の任意のビットとTDO(i)ビットストリーム内の対応するビットの間でmiscompareが発生すると、miscompareが発生する排他的論理和ゲート90は「1」状態で出力信号ERA(I)を生成するだろう。
【0087】
排他的論理和ゲート90からのエラー信号ERA(i)のそれぞれが、論理積ゲート91の別個の1つに送信され、それらの論理積ゲートは、その他の入力信号も受信する。一方のこのような入力信号は遅延されたビットストリームDMASKであり、他方の入力信号はレジスタ98からの別個のイネーブル信号EN(I)である。エラー信号ERA(i)がTDO(i)ビットストリーム内のある特定のビットについて「1」であり、DMASK信号の対応するビットも「1」であり、イネーブル信号EN(i)も「1」である場合には、I番目の論理積ゲートからの出力信号ERB(I)は「1」である。
【0088】
ビットストリームTDO(i)内の任意の1つの特定のビットでのmiscompareを無視するために、DMASビットストリームの対応するビットは「0」に設定される。また、ビットストリームTDO(I)全体が、対応するイネーブル信号EN(i)を「0」に設定することによって無視することができる。
【0089】
論理積ゲート91の任意の1つからのエラー信号ERB(i)が「1」になると、それにより、対応するフリップフロップ92が設定されることになる。設定されるようになる各フリップフロップ92は、それ以降、それがパターン生成器12によって読み取られ、リセットされるまで設定されたままとなるだろう。
【0090】
エラーフリップフロップ92を読み取るために、パターン生成器12はある特定のJADRアドレスをデコーダ回路94に送信し、応じてデコーダ回路94が、マルチプレクサ93を通してJDATA線路50上にフリップフロップ9のすべてからのエラー信号を渡す出力94aで信号を生成する。それからパターン生成器12は、デコーダ回路94に、フリップフロップ92のすべてをリセットする出力94bで信号を生成させる。
【0091】
次に図9に関して、チップドライバ回路のそれぞれの中に含まれる複数の追加回路構成部品100〜109が説明されるだろう。これらの構成部品100〜109のすべては、試験されているチップ10aごとに別個の高周波クロック信号HFCK(i)を生成するために相互作用する。
【0092】
図9では、構成部品100は自由継続高周波発振器である。構成部品101はデコーダ回路である。構成部品102はレジスタであり、構成部品103は、選択可能な整数Nで除算する割り算器回路である。構成部品104は順次状態機械である。構成部品105は、状態機械104のためにカウントを保持するカウンタ回路であり、構成部品106は、状態機械104について制御信号を保持するメモリである。構成部品107はフリップフロップである。構成部品108は論理和ゲートであり、構成部品109は送信機である。構成部品107〜109の別個の集合110(i)は、生成される高周波クロック信号HFCK(i)ごとに提供される。
【0093】
動作中、発振器100は、単一高周波で自由継続クロックFRCK1を生成する。そのクロック信号FRCK1は、それが選択可能な整数N分、周波数で削減される割り算器回路103に送信される。それから、割り算器103からの出力クロックFRCK2が、回路107〜109の各集合10(i)に送信される。
【0094】
回路110(i)の各集合は、自由継続クロックFRCK2の選択可能なサイクルを渡すことによって、高周波クロック信号HFCK(i)を生成する。渡されるそれらのサイクルは、2つの制御信号START(i)とSTOP(i)によって選択され、それらは順次状態機械104によって生成される。
【0095】
信号STOP(i)が「1」として生成されるとき、フリップフロップ107は自由継続クロック信号FRCk2と同期してセットする。フリップフロップ107のそのセット状態により、論理積ゲート108の出力は絶えず「1」を生成する。そしてこのようにして、高周波クロック信号HFCK(i)が「1」の状態で停止されるだろう。
【0096】
フリップフロップ107をリセットするために、状態機械104がSTOP(i)信号を「0」として生成し、それはSTART(i)信号を「1」として生成する。フリップフロップのそのリセット状態が、論理積ゲート108にクロック信号FRCK2を渡させ、論理積ゲート108の出力から、高周波クロックFRCK2は、それがクロック信号HFCK(i)になる送信機109を通して渡す。
【0097】
回路110(i)の集合ごとに制御信号STOP(i)とSTART(i)を生成するために、状態機械104は、制御メモリ106に記憶される多様な制御ビットを読み取る。それらの制御ビットの例は、図10の「1」と「0」に示される。制御ビットの1つの集合を読み取るために、状態機械104は、アドレス線路104aのアドレスをメモリ106に送信し、応じてメモリが制御ビットのアドレス指定された集合を、信号線路104b上の状態機械104に送り返す。
【0098】
図10は、制御ビットの各集合がビットB1〜B16として特定される16個のビットから成り立つ例を示す。第1の14個のビットB1〜B14のそれぞれが、回路110(i)のある特定の回路の動作を制御する。ビットB1は回路110(1)を制御する。ビットB2は回路110(2)を制御する等である。残りのビットB15とB16は、状態機械104をまたは自由継続モードのどちらかで動作させるモード制御ビットである。
【0099】
状態機械104がJDATA線路上のある特定のメモリアドレスとともにデコーダ101からSTARTコマンドを送信されると、それはそのアドレスにあるメモリ106から制御ビットの集合を読み取るだろう。状態機械104が、ビットB15が「1」である制御ビットの集合を読み取る場合には、状態機械がシーケンスモードで動作する。そのモードでは、状態機械104は、それがメモリ106に送信するアドレスを連続して増分し、応答して状態機械が制御信号のアドレス指定された集合を受信する。このシーケンス動作モードは、制御ビットの集合が読み取られるまで続行し、そこではビットB16は「1」であり、それからシーケンス動作モードが停止する。
【0100】
シーケンスモードで読み取られる制御信号の集合ごとに、状態機械104は、制御ビットB1〜B14を調べる。「1」であるビットB1〜B14のそれぞれが状態機械104に、回路110(i)が、カウンタ105によって指定されるサイクルの数、クロックFRCK2を渡すように、STOP(i)信号およびSTART(I)信号を生成させる。
【0101】
図10では、アドレス「A」によって読み取られる制御ビットの集合がビットB1〜B4を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路110(1)〜110(4)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0102】
次に、アドレス「A+1」によって読み取られる制御ビットの集合は、ビットB5〜B7を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路105(5)〜110(7)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0103】
次に、アドレス「A+2」によって読み取られる制御ビットの集合は、ビットB8〜B11を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路110(8)〜110(1)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0104】
最後に、アドレス「A+3」によって読み取られる制御ビットの集合は、ビットB12〜B14を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路110(12)〜110(4)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0105】
比較によって、状態機械104がビットB15が「0」である制御ビットの集合を読み取る場合には、状態機械は自由継続モードで動作する。そのモードでは、状態機械104は、それがメモリ106に送信するアドレスを増分しないが、代わりに、状態機械は、それが読み取った制御信号の1つの集合だけで連続して動作する。
【0106】
制御信号のその単一の集合を使用して、状態機械104は、再び制御ビットB1〜B14を調べる。「1」であるビットB1〜B14のそれぞれが、回路110(i)がクロックFRCK2を連続して渡すように、状態機械104にSTOP(i)信号およびSTART(i)信号を生成させる。この運転の自由継続モードを終了する場合には、状態機械104は、デコーダ101から停止コマンドを送信される必要があり、そのコマンドは、デコーダ101がある特定のJADRアドレスを受け取るときに送信される。
【0107】
図10では、アドレス「A+4」によって読み取られる制御ビットの集合はビットB15を「0」に設定させ、それにより状態機械104が自由継続モードに入る。また、アドレス「A+4」にある制御ビットの集合では、ビットB1〜B14のすべてが「1」に設定されるため、応じて、状態機械104は、回路110(1)〜110(14)のそれぞれに、STOPコマンドが受け取られるまでクロック信号FRCK2を連続して渡させる。
【0108】
図10においても同様に、アドレス「A+5」によって読み取られる制御ビットの集合は、B15を「0」に設定させ、それにより状態機械104は自由継続モードに入る。しかしながら、アドレス「A+5」での制御ビットの集合では、ビットB2だけが「1」に設定されるため、応じて、状態機械104は回路110(2)だけにクロック信号FRCK2を渡させるだろう。
【0109】
図9および図10の回路構成要素で達成される1つの特定の特徴とは、それがチップ汗名振10の中のチップ10aを1つの集合として同時に、あるいは選択可能な部分集合で連続的に試験できるようにする点である。この特徴は、試験されているチップ10aが、それらが高周波クロック信号HFCK(i)を受信するときに大量の電力を消散するが、それらが高周波クロック信号を受信しないときには実質的にはより少ない電力を消散する型であるときに望ましい。このようなチップは、例えばCMOSマイクロプロセッサチップおよびCMOSメモリチップを含む。高周波クロック信号HFCK(i)を同時に受信するチップ10aの数を制限することによって、チップ10aのすべてで消散される電力の総量は、チップのすべてが高周波クロック信号を受信したならば、それ以外の場合に超えられるだろう任意の所定の電力制限以下に保つことができる。
【0110】
図9と図10の回路構成要素で達成される別の特定の特徴とは、それがビットの一意のストリームをチップ10aのそれぞれに別個に書き込むことができるようにするという点である。それは、攻守はクロック信号HFCK(i)を、一度に1つづつチップ10aのそれぞれに送信させるメモリ106内に制御ビットを記憶することによって達成される。それから、ある特定的なチップが高周波クロック信号HFCK(i)を受信しているときには、そのチップに書き込まれなければならないデータは、チップ10aのすべてに対するTDIビットストリームとして送信される。この特徴は、シリアルナンバーなどの一定の一意の情報を、試験されているそれぞれのチップ10aに買い込むことが必要なときに望ましい。
【0111】
ここで図11を見ると、それは、図3の前述された命令31、32、33とともに、メモリ13内のチップ試験プログラムに含むことができる3つの追加の命令34、35および36を示す。命令34は、演算コードOP7、JADRフィールド34a、およびJDATAフィールド34bを含む単一ワードW0だけから成り立つ内部制御命令である。命令34がパターン生成器12によって実行されるとき、状態機械40は、JADR信号線路56の上にJADRフィールド34aを送信し、それはJDATA信号線路55の上にJDATAフィールド34bを送信する。
【0112】
命令34は、図6のレジスタ61をロードするために、図10のレジスタ96と98をロードするために、及び図9のレジスタ102をロードするために使用できる。また、命令34は、図8のデコーダ94にアドレスを送信するため、図9のカウンタにカウントを送信するため、制御ビットの各集合を106での制御メモリに書き込むために使用できる。また、命令34は、デコーダ101から状態機械104にSTARTコマンドとSTOPコマンドを送信するために使用することもできる。
【0113】
命令35は、また単一のワードW0だけから成り立つ分岐命令である。命令35は、演算コードOP8、試験条件フィールド35a、及びジャンプアドレスフィールド35bを含む。命令35がパターン生成器12によって実行されると、状態機械40は、試験条件フィールド35aによって指定される条件を試験する。その試験された条件が真である場合には、メモリ13から実行される次の命令は、フィールド35bでジャンプアドレスを差し引いた分岐命令35のアドレスで発生する。
【0114】
命令36は、やはり単一ワードW0から成り立つメモリ書き込み命令である。命令36は、メモリ書き込み命令としてそれを特定する演算コードOP9を含み、それはメモリアドレスフィールド36aを含む。命令36がパターン生成器12によって実行されると、エラー信号が図8のマルチプレクサ93から読み取られ、メモリアドレスフィールド36aでメモリ13の中に書き込まれる。
【0115】
集積回路チップを試験するベースシステムの1つの好ましい実施態様がここで詳細に説明された。ただし、さらに、多様な変更及び修正をこの実施態様の詳細に加えることができる。
【0116】
例えば、図2は、チップ試験システムが、合計14のスロットを有するラック20に収納される1つの例だけを示す。しかし、改良策として、ラック20は任意の数のスロットを有することができ、複数のラックがある場合がある。また、各ラックのスロットは、そのそれぞれのメモリ13とともに、チップアセンブリ10、ドライバ回路11、及びパターン生成器12の任意の組み合わせで充填することができる。
【0117】
同様に、図1は、各チップアセンブリ10が、試験されなければならない集積回路チップ10aのうちの4つだけを保持する1つの例だけを示す。しかし、改良策として、各チップアセンブリ10は、任意の所望される数の集積回路チップ10aを保持することができる。
【0118】
また、別の改良策として、図1に示されるモジュール11、12、13、及び14のそれぞれは、任意の種類の回路構成要素から構築できる。例えば、チップドライバ回路11内の回路構成要素のすべて、及び(図5、図6、図8、図9、及び図10に詳しく図示されるように)パターン生成器12内の回路構成要素のすべては、TTL回路、ECL回路、MOS回路、及びCMOS回路から構築することができる。同様に、図1の各メモリモジュール13は、フリップフロップに、またはコンデンサに、または磁気記憶媒体、または光学記憶媒体にデータビットを記憶する、任意の種類のメモリセルから構築することができる。
【0119】
同様に、示されているチップ試験システム内にある順次制御回路のそれぞれは、任意の種類の内部構造を有することができる。それらの順次制御回路は、図5のパターン生成器状態機械40、図6のシフト制御回路70、及び図9のクロックシーケンス状態機械104を含む。パターン生成器状態機械40の内部構造は、それが図7の状態S1〜S11に従って動作する限り適切である。チップ制御回路構成要素70の内部構造は、それが図7の状態S21〜S23に従って動作する限り適切である。そして、図9のクロックシーケンス状態機械104の内部構造は、それが、図10とともに示されるように、シーケンスモード及び自動継続モードで動作するかぎり適切である。
【0120】
また、別の改良策として、各メモリモジュール13からワードとして読み取られるビットの数は任意の所定の数である。図3は、メモリモジュール13内の各ワードが「X」個のビットから成り立つことを示す。適切には、Xは、16ビット、32ビット、48ビット、64ビット等バイトの整数である。
【0121】
さらに、別の改良策として、試験されるチップ10aをある特定の状態にするために生成される各TMSビットストリームは、ビットの任意の事前に定義された系列である場合がある。各ビットストリームがどのようである必要があるのかは、チップ10aの内部構造によって決定される。1つの特定的な例として、TMSビットストリームは、表1Aに後述されるように事前に定義し、生成することができる。
【0122】
表1A
TMSヘッダ ヘッダに応えたチップ10aの状態
010000 命令レジスタを読み取る。
011000 命令レジスタに書き込む。
011100 データレジスタを読み取る。
011110 データレジスタに書き込む。
【0123】
表1Aの各TMSヘッダの後には、命令レジスタ/データレジスタから読み取られるTDOビットの数、またはそれらのレジスタに書き込まれるTDIビットの数に等しい、「1」ビットの系列が続く。「1」ビットのその系列の後には、次のTMSヘッダが開始するまで続行する「0」ビットの系列が後に続く。
【0124】
別の例として、各TMSビットストリームを、任意の所望される規格に従って事前に定義し、生成することができる。このような規格は、参照してここに組み込まれるIEEE 1149.1境界走査規格である。
【0125】
さらに、図12は、それによってビットストリームTDI、ETDO、MASK及びTMSの4つすべてがパターン生成器によって送信され、命令37内で明示的に指定される依然として別の改良策を示す。この命令37は、第1ワードW0のOP10という演算コードによって特定される。命令37は、送信されなければならないTMSビットストリームを指定する1つの新しいTMSフィールドを含む。それ以外のフィールドBCNT、WCNT、TDI、ETDO及びMASKのすべては、図3の命令33について前述された対応するフィールドと同じである。
【0126】
命令37の中でTMSビットストリームを明示的に定義することができることによって、単一パターン生成器12は、さまざまなTMSビットストリームが同じ状態になることを必要とするさまざまな種類のチップを連続して試験することができる。しかしながら、試験されているチップが、すべて同じTMS信号シーケンスを使用する場合には、命令33はメモリ空間を25%少なく占有するため、命令33が命令37より好ましい。
【0127】
別の改良策として、ビットストリームTDI、ETDO、及びMASKの任意の1つを、その命令から削除することができる。TDIビットストリームが削除される場合には、結果は、TMSビットストリームを所望されるように指定できるという点を除き、前述された図3の命令32に類似する。ETDOビットストリーム及びMASKビットストリームが命令37から削除されると、結果は、TMSビットストリームが再び所望されるように指定できるという点を除き、前述された図3の命令31に類似する。
【0128】
ここでは本発明に従って、ここではアルゴリズムパターン生成器(APG)と呼ばれる1つまたは複数の追加のモジュールが、図1の前述されたチップ試験システムに組み込まれる、修正されたシステムが説明されるだろう。この修正されたシステムは図13に示される。そこで、図1のモジュール10、11及び14が繰り返され、モジュール12と13がモジュール12’と13’に修正され、新規に追加されたAPGモジュールが参照番号200によって特定される。
【0129】
図13は、別個のAPGモジュール200が、前述されたモジュール12’のあらゆるモジュールに別個のインタフェース201を介して結合される。しかしながら、代わりに、別個のAPGモジュール200が、その別個のインタフェース201を介して、モジュール12’の任意の部分集合に結合されてよい。例えば、モジュール12’のただ1つだけをAPGモジュール200に結合してよい。
【0130】
動作中、各APGモジュール200は、チップアセンブリ10内にあるチップ10aを試験する、TDI試験信号、ETDO試験信号、及びMASK試験信号を内部で生成する。それらの試験信号を内部で生成するには、APGモジュール200が、動作の複雑なシーケンスを実行し、それらの動作はメモリ13’のAPG命令によって指定される。これらのAPG命令、及びAPGモジュール200内でそれらを実行する回路構成要素は、図13〜図22のすべてとともにここに詳細に説明されるだろう。
【0131】
TDI試験信号、ETDO試験信号及びMASK試験信号をAPGモジュール200内で内部で生成することによって達成される1つの特定の恩恵とは、メモリ13’で必要とされる記憶の量が大幅に削減されるという点である。例えば、TDI試験信号、ETDO試験信号、及びMASK試験信号が合計10億ビットを含む場合に、APGモジュール200は、試験ビットのすべてを生成するためのAPG命令を記憶するために、メモリ13’内で1000ビット未満の記憶を必要とする可能性がある。比べると、試験ビットのすべてがメモリ13’で記憶される場合には、10億ビットの記憶が必要とされるだろう。
【0132】
他方、TDI試験信号、ETDO試験信号及びMASK試験信号のビット総数が減少するにつれ、図1〜図12の前述された回路構成要素は、それらの試験信号をチップ10aに提示するためのさらに経済的な手段となる傾向がある。その結果、図13の修正されたシステムは2つの運転モードを有する。第1モードでは、モジュール12’が、図1〜図12に関連して前述されたように、試験信号TDI、ETDO、及びMASKをメモリ13’から読み取り、それらを直列ビットストリームでチップ10aに送信する。第2の運転モードでは、モジュール12’は、メモリ13’からAPG命令を読み取り、それらを実行のためにAPGモジュール200に渡す。それらのAPG命令の実行中、APGモジュール200は、TDIビットストリーム、ETDOビットストリーム及びMASKビットストリームのワードを連続して生成し、それはそれらをモジュール12’に送信する。それから、モジュール12’の中で、試験信号のワードが、チップ10aに送信される直列ビットストリームに変換される。
【0133】
ここで図14aを見ると、APGモジュール200の1つの好ましい内部構造が説明されるだろう。この特定の構造によって、APGモジュール200は、3段パイプラインから構成され、それらの段は参照番号210、220及び230で特定される。第1段210は、算術論理段(ALS)である。第2段220はスクランブラ段であり、第3段230がフォーマッタ段である。これらの3つの段210、220及び230は、制御装置240の制御下で動作する。
【0134】
動作中、ALS段210及びスクランブラ段220及びフォーマッタ段230は、同時に実行し、その同時動作中、パイプラインの各段は、データの異なる集合でさまざまな動作を実行する。これらの同時動作が発生できるようにするために、パイプラインの各段には、入力レジスタの独自の集合及び出力レジスタの独自の集合が提供される。
【0135】
ALU段の入力レジスタのすべては、参照番号210aによって特定される。これらの入力レジスタ210aは3つの集合に区分され、それぞれの集合には4台のレジスタがある。「X」集合は、レジスタXA、XB、XC、及びXDから成り立つ。「Y」集合は、レジスタYA、YB、YC及びYDから成り立ち、「Z」集合は、レジスタZA、ZB、ZC及びZDから成り立つ。
【0136】
その入力レジスタ210aのコンテンツで開始して、ALU段は、多様な算術演算及び論理演算を実行し、その出力レジスタ210aでそれらの演算の結果を記憶する。それらの出力レジスタは、それぞれ5台のレジスタから成る2つの集合に区分される。第1集合は、レジスタX1A’、Y1A’、Z1A’、X1D’、及びY1D’から成り立ち、第2集合はレジスタX2A’、Y2A’、Z2A’、X2D’、及びY2D’から成り立つ。
【0137】
同様に、参照番号220aは、スクランブラ段200aの入力レジスタのすべてを特定する。ALU段の出力レジスタ210bごとのスクランブラ段では別個の入力レジスタが提供される。例えば、入力レジスタX1Aは、出力レジスタX1A’に対応し、入力レジスタY1Aは、出力レジスタY1A’に対応する等である。
【0138】
APGパイプラインの動作中の一定のときに、ALU段210からの出力レジスタ210bのすべての内容が、スクランブラ段220の対応する入力レジスタ220aに転送される。それから、スクランブラ段220は、その入力レジスタの内容に対し多様なスクランブル動作を実行し、それはその出力レジスタ220bに結果を記憶する。それらの出力レジスタは、それぞれ3台のレジスタから成る2つの集合に区分される。第1集合は、レジスタX1’、Y1’、及びD1’から成り立ち、第2集合は、レジスタX2’、Y2’及びD2’から成り立つ。
【0139】
同様に、フォーマッタ段230の入力レジスタのすべては参照番号230aで特定され、対応する入力レジスタが、スクランブラ段の各出力レジスタに提供される。例えば、入力レジスタX1は、出力レジスタX1’に対応する。入力レジスタY1は、出力レジスタY1’に対応する等である。
【0140】
一定のときに、スクランブラ段からの出力レジスタ220bの内容は、フォーマッタ段の入力レジスタ230aに転送される。それが発生した後、フォーマッタ段は、その入力レジスタの内容に対して多様な動作を実行し、それが試験信号TDI、ETDO、及びMASKのそれぞれの複数のワードを生成する。これらの試験信号は、フォーマッタ出力レジスタ230bに、一度に1ワード記憶される。これらの出力レジスタ230bには、それらがAPGで内部で生成されるTDI信号、ETDO信号及びMASK信号を保持することを示す目的で、ATDI、AETDO、及びAMASKとラベルが付けられる。
【0141】
パイプライン段210、220及び230のそれぞれで実行される動作のすべては、制御装置240から段のそれぞれに送信される制御信号のそれぞれの集合によって制御される。算術論理段210に送信される制御信号は、導体211の集合で発生する。スクランブラ段220に送信される制御信号は、導体221の集合で発生し、フォーマッタ段230に送信される制御信号は、導体213の集合で発生する。
【0142】
パイプライン段210、220、及び230のそれぞれは、制御装置240に応答信号も送り返す。算術論理段210によって送信される応答信号は、導体212の集合で発生する。スクランブラ段220によって送信される応答信号は、導体222の集合で発生し、フォーマッタ段230によって送信される応答信号は、導体232の集合で発生する。
【0143】
また、制御装置240は、図13’のモジュール12’と対話するためにAPGインタフェース201を活用し、インタフェース接続の詳細は、図14Aの一番上の部分及び図14Bの下の左部分で図示される。図14Bは、前述された図5に類似する。しかし、図14Bは、APGインタフェース201とともに動作する4つの追加構成部品250〜253も含み、それは追加される構成部品と対話する修正された状態機械40’を含む。
【0144】
構成部品250は、図13のメモリからAPG命令を受信するレジスタであり、それらの命令は、レジスタ250からAPG制御回路240に、導体201aの集合で送信される。構成部品251は、導体201b、201c、201d、及び40bの4つの集合から4つの異なる入力を受信する4x1のマルチプレクサである。導体201bは、フォーマッタ出力レジスタATDIから発信するTDI試験信号のワードを搬送する。導体201cは、フォーマッタ出力レジスタAETDOから発信するETDO試験信号のワードを搬送し、導体201dは、フォーマッタ出力レジスタAMASKから発信するMASK信号のワードを搬送する。構成部品252と253は、図21と図22に関連して後述されるそれぞれのカウンタである。
【0145】
APGがTDI試験信号、ETDO試験信号、MASK試験信号を生成しているとき、それらの信号は、マルチプレクサ251を通して渡され、レジスタ44、45及び46の中にロードされる。逆に、TDI試験信号、ETDO試験信号及びMASK試験信号がメモリ13’から読み出されているとき、それらの試験信号は、(図5に関連して前述されたように)導体40bからマルチプレクサ251を通ってレジスタ44、45及び46の中に渡される。
【0146】
導体201eと201fの2つのその他の集合も、APGインタフェース201に含まれる。導体201eでは、田追うなタイミング信号及び制御信号が、図14Bの状態機械40’から図14AのAPG制御回路240に送信される。例えば、それらの制御信号は、いつAPG命令が導体201aに存在するのかを制御回路240に告げる。
【0147】
導体201fでは、多様なタイミング信号及び制御信号が、図14AのAPG制御回路240から図14bの状態機械40’に送信される。例えば、それらの制御信号は、いつフォーマッタ段230が導体201b、201c、及び201dで、TDI試験信号、ETDO試験信号及びMASK試験信号のワードを生成したのかを状態機械40’に告げる。
【0148】
ここで図15A〜図15Bに関して、ALU段210の好ましい実施態様が説明されるだろう。この特定の実施態様は、参照番号210a〜210pによって図15A〜図15Bに特定される構成部品のすべてから構成され、それらの構成部品のそれぞれが、表2に後述される。
【0149】
表2
構成部品 説明
210a
図15Aの中の構成部品210aは、ALU段200用の入力レジスタのすべてから成り立つ。それらは、「X」集合XA、XB、XC及びXDと「Y」集合YA、YB、YC及びYDと「Z」集合ZA、ZB、ZC及びZDに区分される。これらの入力レジスタは、図14Aに図示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力D及び出力Qを有する。
【0150】
210b
図15Bの中の構成部品210bは、ALU段200用の出力レジスタのすべてから成り立つ。それらは、第1集合、X1A’、Y1A’、Z1A’、X1D’、Y1D’、及び第2集合X2A’、Y2A’、Z2A’、X2D’、Y2D’に区分される。これらの出力レジスタは、図14Aに図示されるのと同じ出力レジスタである。各レジスタは、入力D及び出力Qを有する。
【0151】
210c
図15Aの中の構成部品210cは、入力レジスタ用の読み書き制御回路である。この制御回路により、入力レジスタ210aの内容は、Aバス、Bバス、Cバス、及びDバスと呼ばれる4つのバスに選択的に読み取られる。また、この制御回路によって、INバスと呼ばれるバス上のデータは選択的に入力レジスタ210aに書き込まれる。読み書きされる特定のレジスタは、集合211の中の導体211aで発生する制御信号OP21、XYZ及びDESTによって、及び集合211の中の導体211bで発生する制御信号OP22、XYZ及びABCDによって決定される。
【0152】
210d
図15Bの中の構成部品210dは、レジスタX1A’、X2A’、Y1A’、Y2A’、Z1A’及びZ2A’から成り立つ出力レジスタ210bの部分集合用の書き込み制御回路である。1つのレジスタが、集合211の中にある導体211cのグループで発生する制御信号ADRに応じて選択され、書き込まれる。
【0153】
210e
図15Bの中の構成部品210eは、レジスタX1D’、X2D’、Y1D’、及びY2D’から成り立つ出力レジスタ210bの部分集合書き込み制御回路である。1つのレジスタが、集合211の中にある構成個211dのグループで発生する制御信号DDRに応じて選択され、書き込まれる。
【0154】
210f
図15Aの中の構成部品210fは、6かける1のマルチプレクサである。このマルチプレクサ210fに対する入力は、すべての0の集合とすべての1の集合だけではなくAバス、Bバス、Cバス及びDバスの上に読み取られる入力レジスタ210aの特定の集合の内容である。このマルチプレクサ210fは、j−バスと呼ばれているバスにその入力の1つを選択的に渡し、それらの信号は、集合211の中にある導体211eのグループで発生する。
【0155】
210g
図15Aの中の構成部品210gは、6かける1のマルチプレクサである。このマルチプレクサ210gに対する入力は、マルチプレクサ210fに対する入力と同じである。このマルチプレクサ21fは、制御信号KSELに応じてKバスと呼ばれているバスにその入力の1つを渡し、それらの信号は、集合211の中にある導体211fのグループで発生する。
【0156】
210h
図15Aの中の構成部品210hは、以下の演算を選択的に実行する実用可能の回路である。つまり、繰り上がった数を含む加算、繰り上がった数を含まない加算、借りてくる数(borrow)を含む減算、借りてくる数を含まない減算、増分、減分、排他的論理和、排他的否定和、及び論理和、否定、及び無操作命令である。それらの演算は、Jバス及びKバスによって搬送される信号で実行される。構成部品210hによって実行されるそれぞれの特定の演算は、集合211の中にある導体211gのグループで発生する制御信号ALOPによって選択される。
【0157】
210i
図15Aの中の構成部品210iは、2かける1のマルチプレクサである。マルチプレクサ210iに対する入力の1つは、実用可能な回路210hから生じ、マルチプレクサ210iに対する第2入力は境界チェック回路210kから生じる。どの特定の入力がマルチプレクサ出力に転送されるようになるのかは、境界チェック回路210kで内部的に生成されるCROSSED_Bと呼ばれる制御信号によって決定される。
【0158】
210j
図15Aの中の構成部品210jは、マルチプレクサ210iからの出力を選択的に回転する回転体回路である。その選択的な回転の結果は、Rバスと呼ばれるバスに送信される。回転体回路210jによって実行される回転の種類は、集合211の中にある導体211hのグループで発生する制御信号ROTLによって選択される。
【0159】
210k
図15Aの中の構成部品210kは、境界チェック回路である。この回路は、図15Fに詳細に図示される内部構造を有し、境界チェック回路210kの構造と動作はその図と関連してここに説明される。
【0160】
210L
図15Aの中の構成部品210Lは、2かける1のマルチプレクサである。マルチプレクサ210lへの1つの入力がRバスであり、マルチプレクサ210Lに対する第2入力が制御信号DIRECT_Dを搬送する導体211iのグループである。どの特定な入力がINバスにマルチプレクサ210Lを通して渡されるのかは、胴体211jのグループで発生するその他の制御信号OP22によって決定される。導体211iと211jの両方のグループとも集合211の中にある。
【0161】
210m
図15Bの中の構成部品210mは、7かける1のマルチプレクサである。このマルチプレクサに対する入力はRバス、Aバス、Bバス、Cバス、Dバス、0の集合及び1の集合である。これらの入力は、集合211の中にある導体211kのグループで発生する制御信号OUTSELに応じて、マルチプレクサ210Mを通して選択的に渡される。
【0162】
210n
図15Bの中の構成部品210nは、インバータ回路である。この構成部品は、マルチプレクサ210Mから生じる出力信号のすべてを反転する。
【0163】
210o
図15Bの中の構成部品210oは、2かける1 のマルチプレクサである。マルチプレクサ210oに対する入力の一方はマルチプレクサ210mの出力であり、他方の入力はインバータ回路210nの出力である。マルチプレクサ210oに対するこれら2つの入力は、集合211の中にある導体211Lのグループで発生する制御信号INVに応じてマルチプレクサを通して選択的に渡される。
【0164】
210p
図15Bの中の構成部品210bは、7かける1のマルチプレクサである。このマルチプレクサに対する入力は、マルチプレクサ210mに対する入力と同じである。どの特定の入力がマルチプレクサ210mを通過させられるのかは、集合211の中にある導体211mのグループで発生する制御し号DGENSELによって決定される。
【0165】
図15Aと図15Bにおいて、多くの異なる制御信号が、導体211a〜211mのそれぞれのグループで発生するとして示される。それらの導体のすべては、制御装置240から生じる集合211の中にある。これらの制御信号がどのようにして生成されるのかは、ここで図15Cと図15Dと関連して説明されるだろう。
【0166】
最初に図15Cを考えると、それは、図15Aと図15Bの回路構成要素のすべてによって実行される1つの特定のAPG命令251を示す。この命令251は、導体201aを介して図14AのAPG制御装置240で受信され、応じて、APG制御装置240が、図15Aと図15Bの段210に、導体211での多様な制御信号を送信する。
【0167】
APG命令251は、2つのワードW0とW1から成り立ち、この特定の命令はワードW0で発生するOP21という操作符号で特定される。命令251のワードW0は、図15Aの入力レジスタ210aから、レジスタのX集合またはレジスタのy集合またはレジスタのZ集合のいずれかを選択するXYZフィールドも含む。選択されるレジスタの特定の集合の内容は、Aバス、Bバス、Cバス及びDバスに同時に読み取られる。
【0168】
命令251のワードW1は、以下の制御信号のすべてを指定する複数のフィールドを含む。つまり、DGENSEL、OUTSEL、JSEL、KSEL、DEST、ALOP、INV、ROTL、CC、DDR及びADRである。これらの制御信号のそれぞれは、デジタルで符号化される複数の異なる値のいずれか1つを有することがあり、各値が図15Cに示されるようにある特定の関数を指定する。
【0169】
例えば、JSEL信号が「2」という値を有するとき、Cバス上にあるレジスタの内容は、マルチプレクサ210fを通される。同様に、ALOPフィールドが「5」という値を有するとき、実用可能な回路210hが、Jバス上にあるデータを1増分し、結果をOバスに渡す。
【0170】
選択された入力レジスタの内容が構成部品210f〜210pのすべてによって処理された後で、結果は選択的に入力レジスタ210a及び出力レジスタ210bの中に記憶される。どの特定の入力レジスタがマルチプレクサ210lからの結果を記憶するのかは、DESTフィールドによって選択される。どの特定の出力レジスタがマルチプレクサ210oからの結果を記憶するのかは、ADRフィールドによって選択され、どの特定の出力レジスタがマルチプレクサ210pからの結果を記憶するのかは、DDRフィールドによって選択される。
【0171】
ここで図15Dを見ると、それは、図15Aの回路構成要素により実行される別のAPG命令252を示す。この特定の命令252は、2つのワードW0とW1から成り立ち、それはワードW0内の演算コードOP22によって特定される。
【0172】
命令252を使用することによって、入力レジスタ210aのいずれか1つが、初期値をロードできる。ワードW0のフィールドXYZは、入力レジスタのX集合、またはY集合またはZ集合のどれかを選択し、ワードW0の別のフィールドABCDが選択された集合の中の1つのレジスタを選択する。
【0173】
ワードW1は、選択されたレジスタに直接的に書き込まれるデータフィールドDIRECT_Dを含む。そのデータは、命令252が実行されるときに、マルチプレクサ210Lを選択されたレジスタの中に通過する。他のすべてのときには、マルチプレクサ210Lは、Rバス上にある信号を渡す。マルチプレクサ210bは、いつ命令51が実行されているのかを示す導体211f上の制御信号OP22に応じて動作する。
【0174】
次に図15Eと図15Fを参照すると、境界チェック回路210kの内部構造及び動作に関する詳細が説明されるだろう。最初に図15Eを考慮すると、それは、境界チェック回路210kと関連して実行されるAPG命令253を示す。命令253は、2つのワードW0とW1から成り立ち、それはワードW0の演算コードOP23によって特定される。
【0175】
命令253によって、入力レジスタ210aの集合ごとに、それぞれの最大限度とそれぞれの最小限度が確立される。ワードW0内の1つのフィールドXYZは、入力レジスタのX集合または入力レジスタのY集合、または入力レジスタのZ集合のどれかを選択する。その選択される集合について、ワードW1のフィールドMAXLIMは最大限度を指定し、フィールドMINLIMは最小限度を指定する。これらの限度は、境界チェック回路210k内に記憶される。
【0176】
限度の3つの集合が境界チェック回路210kに記憶された後、その回路は該限度を各命令251の実行中にRバスで生成される信号に比較する。ある特定の命令251がDESTフィー都度を介してレジスタのX集合を選択し、ALOPフィールドによって指定される動作を介してその内容を増加する場合、Rバスの結果は境界チェック回路210kによって、レジスタのX集合のために確立された最大限度に比較される。その最大限度がRバスの信号に等しい場合には、境界チェック回路が、次の命令251が再びレジスタのX集合を選択するときにマルチプレクサ210iを通してレジスタのX集合の最小限度を渡すだろう。
【0177】
逆に、1つの特定の命令251がDESTフィールドを介してレジスタのX集合を選択し、ALOPフィールドで指定される動作を介してその内容を減少するときに、Rバスの結果は、レジスタのx集合のために確立された最小限度に比較されある。その最小限度及びRバスの信号が等しいと、境界チェック回路210kが、次の命令251が再びレジスタのX集合を選択すると、マルチプレクサ210iを通してレジスタのX集合の最大限度を渡すだろう。
【0178】
同様に、1つの特定の命令251がDESTフィールドを介してレジスタのY集合(またはZ集合)を選択肢、ALOPフィールドを介してその内容を増加するときには、Rバスの結果がレジスタのX集合(またはZ集合)に確立された最大限度に比較される。その最大限度がRバスの信号に等しい場合には、境界チェック回路が、次の命令251が再びレジスタのY集合(またはZ集合)を選択すると、マルチプレクサ210iを通してレジスタのY集合(またはZ集合)に対する最小限度を渡すだろう。
【0179】
逆に、ある特定の命令251が、DESTフィールドを介してレジスタのY集合(またはZ集合)を選択し、ALOPフィールドを介してその内容を減少するときには、Rバス上の結果がレジスタのY集合(またはz集合)のために確立された最小限度に比較される。その最小限度及びRバス上の信号が等しい場合に、境界チェック回路210kが、レジスタのY集合(またはz集合)の最大限度を、次の命令251が再びレジスタのY集合(またはZ集合)を選択するときにマルチプレクサ210iを通して渡すだろう。
【0180】
境界チェック回路210kの中で前述された動作を実行するために、その回路は、図15Fに示される構成部品のすべてを含む。それらの構成部品は、参照番号210q〜210wで特定され、それらの構成部品のそれぞれは表3に後述される。
【0181】
表3
構成部品 説明
210q
図15Fの中の構成部品210qは、XMAXレジスタとXMINレジスタ、YMAXレジスタとYMINレジスタ、及びZMAXレジスタとZMINレジスタである3組のレジスタから成り立つ。各レジスタは、データ入力及び出力Qを有する。命令253からのMAXLMフィールドは、XMAXレジスタまたはYMAXレジスタまたはZMAXレジスタのどれかに選択的に記憶され、命令253からのMINLIMフィールドはXMINレジスタまたはYMINレジスタまたはZMINレジスタのどれかに選択的に記憶される。MAXLIMフィールドとMINLIMフィールドは、集合211内にある導体211nのグループのレジスタqに送信される。
【0182】
210r
図15Fの中の構成部品は、レジスタ210qの読み取り/書き込み制御回路である。書き込むためのレジスタの1つの特定の組を選択するために、回路210rは、集合211の中にある導体2110oのグループで命令253からXYZフィールド及びOP23フィールドを受信する。読み取るためのレジスタの1つの特定の組を選択するために、回路211rは、集合211の中にある導体211pのグループの命令251からXYZフィールドを受信する。
【0183】
210s
図15Fの中の構成部品は、1組の入力I1とI2及び1組の出力O1とO2を有する回路である。入力I1とI2はそれぞれ、レジスタ210qから読み取られる最大限度と最小限度を受信する。命令251のALOPフィールドが追加または増分演算を指定する場合には、入力I1とI2に対する限度はそれぞれO1出力及びO2出力に渡される。ALOPフィールドが減算または減分演算を指定する場合、入力I1に対する限度が出力O2に渡され、入力I2に対する限度が出力O1に渡される。ALOPフィールドは、集合211の中にある導体211qのグループで回路210sに送信される。
【0184】
210t
図15Fの中の構成部品210tは、Rバス上にある信号を、構成部品210sの02出力に渡される信号に比較する比較回路である。それらの比較された信号が同じ場合には、回路210tは出力としてEQUAL信号を生成する。
【0185】
210u
図15Fの中の構成部品210uは、XEQ、YEQ及びZEQと呼ばれる3つのフリップフロップの集合である。各フリップフロップは、別の構成部品210vによって読み書きされる。
【0186】
210v
図15Fの中の構成部品210vは、フリップフロップ210uの読み書き制御回路である。XEQフリップフロップは、命令251のフィールドDESTがレジスタのX集合を選択すると読み取られる。YEQフリップフロップは、DESTフィールドがレジスタのY集合を選択するときに読み取られ、ZEQフリップフロップは、DESTフィールドがレジスタのz集合を選択するときに読み取られる。読み取られるフリップフロップの出力は、制御信号CROSSED_Bになる。また、フリップフロップ210uの一方が命令251によって読み取られるたびに、その特定のフリップフロップは、命令の実行の終了時にセットまたはリセットされるかのどちらかである。EQUAL信号が真である場合には、フリップフロップがセットされる。それ以外の場合、それはリセットされる。DESTフィールドは、集合211内の導体211Rのグループで受け取られる。
【0187】
210w
図15Fの中の構成部品210wは、図15Aの実用可能な回路210hのための carry−in信号(CIN)を生成するフリップフロップである。このフリップフロップは、命令251が実行されるたびにセットまたはリセットされる。フリップフロップ210wは、コンパレータ210tからのEQUAL信号が命令251の実行の最後で真である場合にセットされる。それ以外の場合、フリップフロップ210wがリセットされる。
【0188】
ここでは、図15A〜図15Fの回路構成要素及び命令が、どのようにして、集積回路チップを試験するTDI信号、ETDO信号及びMASK信号をともに生成する3つの段の第1として使用できるのかを示す例を考える。この例では、試験されるチップが、メモリセルの4つの矩形アレイを含むメモリチップであると仮定し、さらにセルが各アレイ内で1024行と64列で配列されると仮定する。
【0189】
前記例の中のそれぞれのメモリセルが、「仮想」行番号及び「仮想」列番号によって指定される「仮想」アドレスを有する。これらの行番号及び列番号がなぜ「仮想」番号であるのかが、まもなく説明されるだろう。
【0190】
第1アレイについて、仮想行番号はVR0〜VR1023であり、仮想列番号はVC0〜VC63である。第2アレイについて、仮想行番号はVR0〜VR1023であり、仮想列番号はV64〜VC127である。第3アレイについて、仮想行番号はVR1024〜VR2047であり、仮想列番号はVC0〜V63である。第4アレイについては、仮想行番号はVR1024〜VR2047であり、仮想列番号はVC64〜VC127である。
【0191】
4つのアレイのそれぞれにおいて、仮想b行番号は、アレイの上部からアレイの底部に連続して増加し、仮想列番号はアレイの左側からアレイの右側に連続して増加する。このようにして、例えば、第1アレイの左上角にあるメモリセルは、仮想行VR0と仮想列VC0にあり、第1アレイの左下角にあるメモリセルは仮想行VR1023及び仮想列VC63にある。同様に、第4アレイの左上角にあるメモリセルは、仮想行VR1024及び仮想列VC64にあり、第4アレイの右下角にあるメモリセルは、仮想行VR2047と仮想列VC127内にある。
【0192】
ここで、TDI試験信号、ETDO試験信号、及びMASK試験信号が、以下の順序でメモリセルのそれぞれに生成されなければならないと仮定する。第1に、試験信号は、行VR0内にあるメモリセルのそれぞれのセルに生成され、列VC0での行VR0内のメモリセルで開始し、列VC63での行VR0にあるメモリセルで終了する。それから、このシーケンスは、第1アレイ内の残りの行R1からVR1023のそれぞれに連続して繰り返されなければならない。それ以降、前記シーケンスは、第2アレイのセルごとに繰り返されなければならず、それから前記シーケンスは第3アレイのセルごとに繰り返されなければならず、シーケンスは第4アレイのセルごとに繰り返されなければならない。
【0193】
図15A〜図15Fの回路構成要素及び命令を活用することにより、メモリセルの仮想あどレスは、セルが試験されなければならない順序で連続して生成できる。例えば、レジスタのX集合は、試験されているセルの仮想行の番号を生成するために使用することができ、レジスタのY集合は、試験されているセルの仮想列の番号を生成するために使用することができ、レジスタのZ集合は、試験されているアレイの数を生成するために使用することができる。
【0194】
適切な順序で前記アドレスを連続して生成するために、命令251のシーケンスがプログラムループで実行できる。また、最初に前記アドレスの開始値を設定するために、命令252が実行できる。さらに、ある行の最後から次の連続行の始まりへ、及びある列の最後から次の連続列の始まりまで、プログラムループで自動的に生成されるセルのアドレスを変更するために、命令253が使用できる。
【0195】
仮想列アドレスと仮想行アドレスが生成されるたびに、それらのアドレスは出力レジスタ210bに記憶される。例えば、仮想行アドレスは、レジスタX1A’に記憶することができ、仮想列アドレスはレジスタY1A’に記憶することができる。さらに、一定のデータが各仮想行アドレスと各仮想列アドレスととものい使用される必要がある場合、そのデータは、命令251と252によってプログラムループでも生成でき、そのデータは出力レジスタX1D’とY1D’に記憶できる。
【0196】
また、一定の種類のメモリ試験について、仮想アドレスとその対応するデータの2つの別個のシーケンスが同時に生成される必要がある可能性がある。例えば、仮想アドレスの第1シーケンスは、前述された順序でセルからセルに移動できるだろう。一方仮想アドレスの第2シーケンスは反対の順序でセルからセルに移動できるだろう。このようにして、第2シーケンスは、最高の番号の仮想行と仮想列にあるセルで開始し、最小の番号の仮想行と仮想列にあるセルで終了するだろう。
【0197】
仮想アドレスのこれらの2つの別個のシーケンスは、命令251、252、及び253を使用する第1プログラムループと第2プログラムループによって同時に生成できる。第1プログラムループが仮想アドレス及びその対応するデータを生成するたびに、それらは出力レジスタX1A’、Y1A’、Z1A’、X1D’、及びY1D’から成る第1集合に記憶され、第2プログラムループがその対応するデータで仮想アドレスを生成するたびに、それらは出力レジスタX2A’、Y2A’、Z2A’、X2D’及びY2D’から成る第2集合に記憶される。
【0198】
前記説明を通して、試験される実際の物理メモリチップ内では、メモリセルの行及び列は連続して番号付けされなくてよいために、用語「仮想」行と「仮想」列が使用された。例えば、実際のメモリチップ内で、アドレス10を有する行は、アドレス20を有する行に隣接してよいことがある。同様に、実際のメモリチップでは、アドレス100を有する列が、アドレス110を有する列に隣接してよい。
【0199】
その結果、このような差異に対処するため、ALU段210は、好ましくは、隣接する行と列が連続するアドレスを有する、仮想メモリ(つまり、仮説的なメモリ)の仮想アドレス及びデータを生成する。そして、スクランブラ段220は、試験される実際の物理的なメモリチップのための物理的なアドレス及びデータに、仮想アドレスとデータを変換するために提供される。スクランブラ段220によって実行される多様な動作を開始するために、図15Gに示される別のAPG命令254が実行される。この命令254は、2つのワードW0とw1から成り立ち、それはワードW0の演算コードOP24によって特定される。
【0200】
命令254の各実行は、第1段210の出力レジスタ内の仮想アドレス及び対応するデータが、第2段220によって動作される準備ができていることを示す。このようにして、それらの仮想アドレス及び対応するデータが、前述されたようにプログラムループで生成されると、プログラムループの1つのサイクルが完了されるたびに、APG命令254が実行される。命令254のワードW1 は、図15Gに図示されるように、COUNTとPAGEと呼ばれる2つの追加フィールドも含むが、それらのフィールドはAPGの第3段によって使用されるだけである。したがってCOUNTフィールドとPAGEフィールドは、第3段に関連して後述される。
【0201】
第2段220の1つの好ましい実施態様は、図16A〜図16Cに詳細に図示される。この特定の実施態様は、参照番号220a〜220zjによって図16A〜図16Cに特定されるすべての構成部品から構成され、それらの構成部品のそれぞれが、表4に後述される。
【0202】
表4
構成部品 説明
220a
構成部品220aは、部分的に図16Aに、部分的に図16Bに示され、それはスクランブラ段220のための入力レジスタのすべてから成り立つ。これらの入力レジスタは、レジスタX1A、Y1A、Z1A、X1D及びY1Dから成り立つ第1集合、及びレジスタX2A、Y2A、Z2A、X2D及びY2Dから成り立つ第2集合に区分される。これらの入力レジスタは、図14Aに図示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力D及び出力Qを有する。
【0203】
220b
図16Cの中の構成部品220bは、スクランブラ段220の出力レジスタのすべてから成り立つ。それらの出力レジスタは、第1集合X1’、Y1’、及びD1’、ならびに第2集合X2’、Y2’及びD2’に区分される。これらの出力レジスタは、図14Aに示されるのと同じ出力レジスタである。各レジスタは、データ入力D及び出力Qを有する。
【0204】
220c
図16Aと図16bの構成部品220cは、入力レジスタ220aのすべてのための書き込み制御回路である。この書き込み制御回路は、入力レジスタ220aのすべてに、第1段210から対応する出力レジスタ210bの内容をロードする。この動作は、集合221の中にある導体221a上にある制御信号UPDATE_STAGE_2に応じて発生する。
【0205】
220d
図16Cの中の構成部品220dは、出力レジスタ220bのすべてのための書き込み制御回路である。この書き込み制御回路によって、それぞれの出力レジスタは、選択的に、そのデータ入力D上にある信号をロードされる。レジスタX1’は、制御信号UPDATEX1’に応じてロードされる。レジスタX2’は、制御信号UPDATEX2’等に応じてロードされる。これらの信号は、集合221の中にある導体221bのグループで発生する。
【0206】
220e
図16Aの中の構成部品220eは、2かける1のマルチプレクサである。マルチプレクサ220eに対する入力の一方は、レジスタX1A内のアドレスであり、他方の入力はレジスタX2A内のアドレスである。X1A入力は、制御信号SEL1が真であるときにXAバスに渡される。それ以外の場合、X2A入力はX2Aバスに渡される。制御信号SEL1は、集合221の中にある導体221cで発生する。
【0207】
220f
図16Aの中の構成部品220fは、2かける1のマルチプレクサである。マルチプレクサ220fに対する入力の一方は、レジスタY1A内のアドレスであり、他方の入力はレジスタY2A内のアドレスである。Y1A入力は、制御信号SEL1が真であるときにYAバスに渡される。それ以外の場合、Y2A入力がYAバスに渡される。
【0208】
220g
図16Aの中の構成部品220gは、2かける1のマルチプレクサである。マルチプレクサ220gに対する入力の一方は、レジスタZ1A内のアドレスであり、他方の入力はレジスタZ2A内のアドレスである。Z1A入力は、制御信号SEL1が真であるときにZAバスに渡される。それ以外の場合、Z2A入力がZAバスに渡される。
【0209】
220h
図16Aの中の構成部品220hは、16回繰り返される48かける1のマルチプレクサである。このマルチプレクサの各インスタンスは、メモリアドレスビットA0〜A15のそれぞれ1つを生成する。簡略さのために、図16Aは、これらのマルチプレクサの最初のインスタンスと最後のインスタンスだけを示し、残りのマルチプレクサは3つの点の集合で表される。それぞれのマルチプレクサ220hが、並列で、XAバス、YAバス及びZAバスにある入力アドレスビットのすべてを受け取り、それぞれのマルチプレクサが、単一メモリアドレスビットをそれによって生成するために入力アドレスビットのそれぞれ1つを選択的に渡す。
【0210】
220i
図16Aの中の構成部品220iは、Xスクランブラ制御レジスタ、Yスクランブラ制御レジスタ、及びZスクランブラ制御レジスタと呼ばれる制御レジスタの3つの集合である。各集合は、16台のマルチプレクサ220hのそれぞれに1台づつ、16台のレジスタを含む。レジスタの1つの集合の内容が選択され、導体221dのマルチプレクサ220hに送信される。それらの信号は各マルチプレクサに、その出力にそれぞれの入力を渡すように命令する。
【0211】
220j
図16Aの中の構成部品220jは、XYZスクランブラ制御レジスタ220iのための書き込み制御回路である。この回路によって、3つの集合の1つでの単一制御レジスタが選択される。これは、制御信号OP33、XYZ、SA0かSA15に応じて発生する。それから、選択されたレジスタは、SETTINGと呼ばれるデータフィールドで書き込まれる。これらの信号のすべてが、集合221の中にある導体221eのグループで発生する。
【0212】
220k
図16Aの中の構成部品220kは、XYZスクランブラ制御レジスタ220iのための読み取り制御回路である。導体221dの上に読み取られるレジスタの特定の集合は、集合221の中にある導体221fのグループえ発生する3つの制御信号SELX、SELY、及びSELZによって選択される。
【0213】
220L
図16Aの中の構成部品220Lは、64Kのワードを記憶するランダムアクセスメモリであり、各ワードは別個のアドレスを有する。1つの16ビットワードは、アドレスA15〜A0に応じて読み取られ、そのワードはXMEMと呼ばれる出力で発生する。この出力XMEMは、図16Cで出力レジスタX1’とX2’に移動する。
【0214】
220m
図16Aの中の構成部品220mは、64Kのワードを記憶するランダムアクセスメモリであり、各ワードは別個のアドレスを有する。1つの16ビットワードが、アドレスA15〜A0に応じて読み取られ、そのワードはYMEMと呼ばれる出力で発生する。この出力YMEMは、図16Cの出力レジスタY1’とY2’に移動する。
【0215】
220n
図16Aの中の構成部品220nは、64Kのビットを記憶するランダムアクセスメモリであり、各ビットは別個のアドレスを有する。1ビットワードがアドレスA15〜A0に応じて読み取られ、そのビットはZMEMと呼ばれる出力で発生する。この出力ZMEMは、図16Cのマルチプレクサ220ziに移動する。
【0216】
220o
図16Bの中の構成部品220oは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力は、レジスタX1Dのコンテンツであり、他方入力はレジスタX2Dのコンテンツである。マルチプレクサ220は、制御信号SEL1が真であるときに、X1D入力をXDバスに渡し、それ以外の場合、それはXDバスにX2D入力を渡す。
【0217】
220p
図16Bの中の構成部品220pは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力はレジスタY1Dの内容であり、他方入力はレジスタY2Dのコンテンツである。マルチプレクサ220は、制御信号SEL1が真であるときに、Y1D入力をYDバスに渡す。
【0218】
220q
図16Bの中の構成部品220qは、16かける1のマルチプレクサである。このマルチプレクサは、入力としてXDバスを受信し、それはそのバスの1ビットをその出力に渡す。渡される特定のビットは、集合21の中にある導体221gで発生する制御信号XSELによって選択される。
【0219】
220r
図16Bの中の構成部品220rは、16かける1のマルチプレクサである。このマルチプレクサは、入力としてYDバスを受信し、それはそのバスの1ビットをその出力に渡す。渡される特定のビットは、集合221の中にある導体221hで発生する制御信号YSELによって選択される。
【0220】
220s
図16Bの中の構成部品220sは、インバータである。それはマルチプレクサ220qの出力を受信し、その信号を出力として反転する。
【0221】
220t
図16Bの中の構成部品220tは、インバータである。それはマルチプレクサ220rの出力を受信し、それはその信号を出力として反転する。
【0222】
220u
図16Bの中の構成部品220uは、4かける1のマルチプレクサである。このマルチプレクサは、制御信号LFUNCに応じてその出力にその4つの入力の内の1つを選択的に渡す。それらの制御信号は、集合221の中にある導体221iで発生する。
【0223】
220v
図16bの中の構成部品220vは4かける1のマルチプレクサである。このマルチプレクサは、制御信号MFUNCに応じて、選択的に、その4つの入力の内の1つをその出力に渡す。それらの制御信号は、集合221の中にある導体221jで発生する。
【0224】
220w
図16Bの中の構成部品220wは、マルチプレクサ220uと220vから生じる1組の入力で選択可能な演算を実行する算術回路である。構成部品220wによって実行される特定の演算は、集合221の中にある導体221kで発生する制御信号DALUOPによって選択される。その動作の結果は、DALUバスで発生する。
【0225】
220X
図16Bの中の構成部品220xは、データ入力D及び出力Qを有するMASKレジスタである。このレジスタの中に選択的に書き込まれるデータは、MASK DATAと呼ばれ、それは集合221の中にある導体220Lで発生する。
【0226】
220y
図16Bの中の構成部品220yは、MASKレジスタ220Xのための書き込み制御回路である。この回路220yは、集合221の中にある導体221mの上で制御信号OP32に応じてMASK_DATAをレジスタ220xの中に書き込む。
【0227】
220z
図16Bの中の構成部品220zは、選択的な比較回路である。入力として、回路220zは、XDバス、YDバス、上にある信号、及びMASKレジスタ220xに記憶される信号を受信する。それから、「0」であるMASKレジスタ内のビットごとに、回路220zは、XDバス及びYDバス上にある対応するビットを比較する。すべてんこのような比較が等しい場合、回路220zは出力信号XD=YDを生成する。
【0228】
220za
図16Cの中の構成部品220zaは、インバータである。それは、DALUバスで信号を受信し、それはそれらの信号を出力として反転する。
【0229】
220zb
図16Cの中の構成部品220zbは、インバータである。それは信号XD=YDを受信し、その信号を出力として反転する。
【0230】
220zc
図16Cの中の構成部品220zcは、6かける1のマルチプレクサである。このマルチプレクサは、制御信号OUTSELに応じて、選択的に、その6つの入力の1つをその出力に渡す。それらの制御信号は、集合221の中にある導体221nで発生する。
【0231】
220zd
図16Cの中の構成部品220zdは、データ入力Dおよび出力Qを有するレジスタである。VALUE−DATAと呼ばれる信号が、このレジスタの中に選択的に書き込まれ、それらは、集合221の中にある導体221oで発生する。
【0232】
220ze
図16Cの中の構成部品220zeは、レジスタ220zdのための書き込み制御回路である。この回路は、集合221の中の導体221pで発生する制御信号OP34に応じてレジスタ220zdの中にVALUE−DATA信号を書き込む。
【0233】
220zf
図16Cの中の構成部品220zfは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力は、6かける1のマルチプレクサzcからの出力であり、他方の入力はレジスタ220zdの内容である。どの特定の入力がマルチプレクサ220zfの出力に渡されるようになるのかは、集合221の中の導体221qで発生する制御信号VALSELによって決定される。
【0234】
220zg
図16Cの中の構成部品は、マルチプレクサ220zfからの出力を選択的に転する回転体回路である。回転体回路220zgによって実行される回転の種類は、集合221の中の導体221rのグループで発生する制御信号ROTによって選択される。
【0235】
220zh
図16Cの中の構成部品220zhは、インバータである。それは、回転体回路220zgから出力信号を受信し、それはそれらの信号の逆数を生成する。
【0236】
220zi
図16Cn中の構成部品220ziは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力は回転体回路220zgの出力であり、他方の入力は、インバータ220zhから生じる回転体回路の反転された出力である。このマルチプレクサは、制御信号ZMEMが真であるときに反転された入力を渡し、それ以外の場合、それは反転されていない入力を渡す。
【0237】
図16A、図16B、及び図16Cにおいては、多くのさまざまな制御信号が、導体221a〜221mのそれぞれのグループで発生するとして示される。それらの導体のすべては、制御装置240から生じる集合221の中にある。それらの制御信号がどのようにして生成されるのかは、図16D〜図16Gに関連してここに説明されるだろう。
【0238】
まず図16Dを参照すると、それは図16A〜図16Cの回路構成要素によって実行される、ある特定のAPG命令261を示す。この命令261は、導体201aを介して図14AのAPG制御装置240で受け取られ、応じてAPG制御装置240が、図16A〜図16Cの段220に導体221上の多様な制御信号を送信する。
【0239】
命令261は、2つのワードW0とW1から成り立つ。ワードW0は、命令を特定するOP31という演算コードを含む。ワードW1は複数のフィールドを含み、それらは以下の制御信号のすべてを指定する。つまり、XSEL、YSEL、LFUNC、MFUNC、DALUOP、OUTSEL、VALSEL及びROTである。これらの制御信号のそれぞれは、デジタルで符号化される複数の異なる値のいずれか1つを有することがあり、それぞれの値が図16Dに示されるようにある特定の関数を指定する。
【0240】
例えば、フィールドXSELが「0」という値を有するときに、マルチプレクサ220qはXDバスのビット0での信号をその出力に渡す。フィールドXSELが「1」という値を有するとき、マルチプレクサ220qはXDバスのビット1での信号をその出力に渡す等である。別の例として、フィールドLFUNCが「1」という値を有するとき、マルチプレクサ220uは、インバータ220sからの信号をその出力に渡す。別の例として、フィールドDALUOPが「5」という値を有するとき、回路220wは、その入力に対し排他的否定和を実行し、DALUバスで結果を生成する。依然として別の例として、フィールドOUTSELが「3」という値を有するときに、マルチプレクサ220zcは信号XD=YDの逆数をその出力に渡す。
【0241】
ここで図16Eを参照すると、それは、図16Aの回路構成要素によって実行される別のAPG命令272を示す。この特定の命令は、2つのワードW0とW1から成り立ち、それはワードW0で発生するOP32という演算コードによって特定される。そのワードは、図16Aの構成部品221内にある、スクランブラ制御レジスタのX集合またはスクランブラ制御レジスタのY集合またはスクランブラ制御レジスタのz集合のいずれかを選択するXYZフィールドも含む。
【0242】
命令262のワードW1は、SETTINGとSA15〜SA0と呼ばれる2つのフィールドを含む。フィールドSA15〜SA0は、XYZフィールドによって選択される集合の中の16台のレジスタの内の1つを選択する。その1つの選択されたレジスタは、図16Aの書き込み制御回路220jによって作成される。このようにして命令262を活用することにより、XYZスクランブラ制御レジスタのそれぞれ1つが任意の所望される設定値で作成できる。
【0243】
ここで図16Fを見ると、それは、図16Bの回路構成要素によって実行される依然として別のAPG命令を示す。この特定の命令は、2つのワードW0とW1から成り立ち、それはワードW0で発生する演算コードOP33によって特定される。命令263ののワードW1がMASK_DATAと呼ばれるフィールドを含み、MASK_DATAフィールドは図16Bのレジスタ220xの中に書き込まれる。その書き込みは、導体221jの上の制御信号OP33に応じて動作する書き込み制御回路220yによって実行される。
【0244】
次に図16Gを参照すると、それは、図16Cの回路構成要素によって実行される別のAPG命令264を示す。このAPG命令は、2つのワードW01とW1から成り立ち、それはワードW0で発生する演算コードOP34によって特定される。ワードW1はVALUE_DATAと呼ばれるフィールドを含む。命令264が実行されると、フィールドVALUE_DATAは図16Cのレジスタ220zdに記憶される。その書き込みは、導体221mで発生する制御信号OP34に応じて書き込み制御回路220zeによって実行される。
【0245】
ここで、図16A〜図16Gの回路構成要素及び命令が、集積回路チップを紙面するTDI信号、ETDO信号、及びMASK信号を生成するために、どのようにして3段パイプラインの第2段として使用できるのかを示す例を考える。この例では、試験されるチップは、第1段210とともに前述されたのと同じメモリチップである。チップは、メモリセルの4つの矩形アレイを含み、それぞれのアレイのセルは1,024行と64列で配列された。
【0246】
前記例では、第1段210が、仮想アドレス及び対応するデータの1つまたは2つの別個のシーケンスを生成し、それらのアドレス及びデータは出力レジスタ210bに連続して記憶された。ここで一定の時に、第1段の出力レジスタ210bの内容が、第2段の入力レジスタ220aに転送される。それから、第2段入力レジスタ220aにある仮想アドレス及びデータは、図16A〜図16Cの回路構成要素によって処理されるようになる。
【0247】
第2段の前記処理は、6つの連続時間間隔△t1〜△t6で発生する。最初に、時間間隔△t1の間、3つの入力レジスタX1A、Y1A及びZ1Aは、図16Aの回路構成要素によって作用され、それがレジスタX1’に記憶される出力を生成する。次に、時間間隔△t2の間、3台の入力レジスタX2A、Y2A、及びZ2Aの内容は、図16Aの回路構成要素によって作用され、それが、レジスタX2’に記憶される出力を生成する。それから、時間間隔△t3の間、3台のレジスタX1A、Y1A及びZ1Aは、図16A内の回路構成要素によって作用され、それがレジスタY1’内で記憶される出力を生成する。それから、時間間隔△t4の間、3台の入力レジスタX2A、Y2A、及びZ2Aが、図16Aの回路構成要素によって作用され、それがレジスタY2’に記憶される出力を生成する。
【0248】
次に、時間間隔△t5の間、5台の入力レジスタX1A、Y1A、Z1A、X1D、及びY1Dが、図16A〜図16Cの回路構成要素のすべてによって作用され、それがレジスタD1’に記憶される出力を生成する。最後に、時間間隔△t6の間に、5台の入力レジスタX2A、Y2A、Z2A、X2D、及びY2Dが、図16A〜図16Cの回路構成要素のすべてによって作用され、それが、レジスタD2’に記憶される出力を生成する。
【0249】
時間間隔△t1、△t3、及び△t5の3つを通して、2かける1のマルチプレクサ220e、220f、220g、220o及び220pが、それぞれそれらの入力X1A、Y1A、Z1A、X1D及びY1Dを渡す。逆に、その他の3つの時間間隔△t2、△t4、及び△t6を通して、それらのマルチプレクサが、それぞれそれらの入力X2A、Y2A、Z2A、X2D及びY2Dを渡す。
【0250】
また、時間間隔△t1と△t2の2つを通して、読み取り制御回路220kが、導体221d上のXスクランブラ制御レジスタの内容をマルチプレクサ220hに送信する。時間間隔△t3と△t4の間、読み取り制御回路220kは、導体220dでのYスクランブラ制御レジスタの内容をマルチプレクサ220hに送信する。そして、時間間隔△t5と△t6の間、読み取り制御回路220kが、導体221dでのZスクランブラ制御レジスタの内容をマルチプレクサ220hに送信する。
【0251】
第2段220の中での前記処理のために、入力レジスタX1A、X2A、Y1A及びY2Aの中にある仮想アドレスのすべてが、対応する物理アドレスに変換されるようになる。例えば、レジスタX1Aの仮想アドレスを変換するために、16台のマルチプレクサ220hは、それぞれXAバスまたはYAバスまたはZAバスである特定のビットを選択する。それらの選択されたビットがXメモリ220Lの中のワードを読み取るアドレスを形成し、そのワードが物理アドレスとしてレジスタX1’に記憶されるようになる。同様にして、レジスタY1A内の仮想アドレスを変換するために、16台のマルチプレクサ220hは、それぞれXAバスまたはYAバスまたはZAバスからビットを選択する。それらの選択されたビットは、Yメモリ220M内のワードを読み取るアドレスを形成し、そのワードは、物理アドレスとしてレジスタY1’に記憶されるようになる。
【0252】
やはり第2段220内での前記処理のために、入力レジスタX1DとY1Dからのデータが、出力レジスタD1内に記憶される異なるデータに変換されるようになる。同様に、入力レジスタX2DとY2Dからのデータは、それから出力レジスタD2’に記憶される別のデータに変換されるようになる。このデータ変換プロセスの間に、図16B及び図16Cでの回路は、制御信号XSEL、YSEL、LFUNC、MFUNC、DALUOP、OUTSEL、VALSEL及びROTによって指定される多様な演算を実行する。それらの制御信号は、最後に実行された図16Dの命令261によって設定され、それらは図14Aの制御装置240の内側にあるレジスタ(図示されていない)に保持される。
【0253】
6つの連続時間間隔△t1〜△t6での処理のすべてが第2段220によって完了された後に、第2段出力レジスタ220bが、第3段230の入力レジスタ220aに転送される準備ができている(つまり、フォーマッタ段)。その転送が発生すると、フォーマッタ段は、それにより集積回路チップを紙面する信号ATDI、AETDO及びAMASKを生成するその入力レジスタの内容に対して追加の処理を実行するだろう。
【0254】
フォーマッタ段230の1つの好ましい実施態様が、図17Aと図17Bに詳細に示される。この特定の実施態様は、参照番号230a〜230qによって図17Aと図17Bに特定される構成部品のすべてから構成され、それらの構成部品のそれぞれが表5に後述される。
【0255】
表5
構成部品 説明
230a
図17Aの中の構成部品230aは、フォーマッタ段230への入力レジスタのすべてから成り立つ。これらの入力レジスタは、レジスタX1、Y1、及びD1から成り立つ第1集合、及びレジスタX2、Y2及びD2から成り立つ第2集合に区分される。これらの入力レジスタは、図14Aに示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力D及び出力Qを有する。
【0256】
230b
図17Aの中の構成部品230bは、フォーマッタ段230の中の出力レジスタのすべてから成り立つ。これらの出力レジスタは、ATDIレジスタ、AETDOレジスタ及びAMASKレジスタであり、それらは図14Aに示されるのと同じ出力レジスタである。各出力レジスタは、データ入力D、クロック入力CK、及び出力Qを有する。これらの出力レジスタは、それぞれ、導体201b、201c、及び201dでの出力信号ATDI、AETDO及びAMASKを送信し、それらの導体は、図14Aと図14Bに図示されるのと同じ導体である。
【0257】
230c
図17Aの中の構成部品230cは、入力レジスタ230aのすべてのための書き込み制御回路である。この書き込み制御回路は、同時に入力レジスタ230aのすべてに、第2段220からの対応する出力レジスタをロードする。この動作は、集合231の中にある導体230a上にある、制御信号UPDATE−STAGE−3に応じて発生する。
【0258】
230d
図17Aの中の構成部品230dは、138の入力と1つの出力を有するマルチプレクサである。各入力レジスタX1、X2、Y1及びY2は、マルチプレクサ230dに16のビットアドレスを送信する。それぞれの入力レジスタD1とD2は、マルチプレクサ230dに36のビットデータワードを送信し、残りの入力は「0」と「1」である。どの特定的な入力が、マルチプレクサ230Dを通して渡されるようになるのかは、図17Bによって示されるように、フォーマッタ段によって内部的に生成される制御信号CFMD1によって選択される。
【0259】
230e
図17Aの中の構成部品230eは74の入力と単一の出力を有するマルチプレクサである。各入力レジスタD1とD2は、マルチプレクサ230eに36ビットのデータワードを送信し、残りの入力は「0」と「1」である。どの特定の入力がマルチプレクサ230eを通って渡されるようになるのかは、図17Bに図示されるように、フォーマッタ段によって内部に生成される制御信号CFMD2によって選択される。
【0260】
230f
図17Aの中の構成部品230fは、直列入力D及び並列出力Qを有する直列/並列シフトレジスタである。入力Dでの直列データは、マルチプレクサ230dの出力から生じる。その直列データの1ビットは、BITCLKと呼ばれるクロック信号のそれぞれの正の端縁によってレジスタ230fの中に時刻を記録される。BITCLK信号は、集合231の中にある導体231bで発生する。
【0261】
230g
図17Aの中の構成部品230gは、直列入力D及び並列出力Qを有する直列/並列シフトレジスタである。入力Dでの直列データは、マルチプレクサ230eの出力から生じる。その直列データの1ビットが、クロック信号BITCLKのそれぞれの正の端縁によってレジスタ230gの中に時刻を記録される。
【0262】
230h
図17Aの中の構成部品230hは、直列入力Dと並列出力Qを有する直列/並列レジスタである。直列データ入力Dは、図17Bのレジスタ220qから信号CFMD3を受信する。その直列データの1つのビットが、クロック信号BLTCLKのそれぞれの正の端縁によってレジスタ230hの中に時刻を記録される。
【0263】
230i
図17Aの中の構成部品230iは、1組の入力D1とD2、及び対応する組の出力Q1とQ2を有する遅延バッファである。入力D1は、レジスタ230gから並列出力信号を受信し、入力D2は、レジスタ230hから並列出力信号を受信する。D1入力とD2入力での信号は、集合231の中にある導体231b上で発生する、WDCLKと呼ばれるクロック信号のそれぞれの正の端縁に応じて遅延バッファ230iに記憶される。それらの記憶されている信号は、それ以降、クック信号WDCLKの所定数のサイクルの後に出力Q1とQ2で再生される。
【0264】
230j
図17Bの中の構成部品230jは、データ入力Dと出力Qを有するレジスタである。データ入力Dは、図15Gに図示されるように、命令254のワードW1であるPAGEフィールドを受信する。PAGEフィールドは、集合231の中にある導体231dで送信される。
【0265】
230k
図17Bの中の構成部品230kは、データ入力D及び出力Qを有するレジスタである。データ入力Dは、図15Gに示されるように、命令254のワードW1内にあるCOUNTフィールドを受信する。COUNTフィールドは、集合231の中にある導体231eで送信される。
【0266】
230L
図17Bの構成部品230Lは、レジスタ230jと230kのための書き込み制御回路である。この回路は、図15Gの命令254が実行中であることを示す制御信号OP24に応じて、PAGEフィールドをレジスタ230jに書き込み、COUNTフィールドをレジスタ230kに書き込む。信号OP24は、集合231の中の導体231fで発生する。
【0267】
230m
図17bの中の構成部品230mは、データ入力D、出力Q、及びロード制御入力Lを有するレジスタである。このレジスタは、フォーマッタ段の中でアクティブに使用されているページ数を保持し、そのページ数はQ出力のACTIVE−PG信号によって指定される。アクティブページ番号は、導体231aでのUPDATE−STATE−3に応じて、レジスタ230jから受信される。
【0268】
230n
図17Bの中の構成部品230nは、データ入力D、出力Q、クロック入力CK及びロード入力Lを有するカウンタである。このカウンタは、フォーマッタ段の中でアクティブに使用されているカウントを保持し、そのカウントは、Q出力でのACTIVE−CNT信号によって示される。初期カウントは、UPDATE−STAGE−3制御信号に応じてレジスタ230kから受信される。カウンタ230nは、それがクロック信号BITCLKの正の端縁を受信するたびに、それが保持するカウントを1、減分する。
【0269】
230o
図17Bの中の構成部品230oは、カウンタ230n内でのアクティブなカウントがいつゼロに減分されたのかを検出する回路である。それが発生すると、構成部品230oは、制御モジュール240に移動する集合231導体232aでZERO−CNTと呼ばれる制御信号を生成する。
【0270】
230p
構成要素230pはCFMDと呼ばれる複数の制御ワードを記憶するメモリである。これらの制御ワードは、メモリ内の「M」枚のページに区分され、各ページが「N」個の制御ワードを保持する。ある実施態様では、Mは1024であり、Nは256である。メモリ230p内でのある特定のページは、レジスタ230mからのACTIVE−PG信号によってアドレス指定され、アドレス指定されるページの中の1つの特定の制御ワードは、カウンタ230nからACTIVE−CNT信号によって選択される。
【0271】
230q
構成部品230qは、データ入力D、出力Q及びクロック入力CKを有するレジスタである。データ入力Dは、ACTIVE−PG信号及びACTIVE−CNT信号によって制御メモリからそれぞれの特定の制御ワードCFMDを連続して受信する。1つの制御ワードは、それがクロック信号BITCLKの正の端縁を受信するたびにレジスタ220qに記憶される。
【0272】
ここで、図17Aと図17Bの構成部品のすべてがATDI試験信号、ATEDO試験信号、及びAMASK試験信号を生成するために対話する方法が説明されるだろう。当初、図15Gの命令254が、第1段の出力レジスタが、第2段によって処理される準備ができている仮想アドレス及びデータワードを保持することを示すために実行されるだろう。その命令254が実行されると、PAGEフィールドとCOUNTフィールドが、図17Bのレジスタ230jと230kの中に書き込まれるだろう。
【0273】
それ以降、第1段の出力レジスタの内容は、第2段の入力レジスタに転送されるだろう。それから、第2段の入力レジスタの内容は、前述されたように6つの連続する時間期間△T1〜△T6の間に処理されるだろう。それが発生した後、第2段からの出力レジスタの内容が、第3段の入力レジスタに転送される準備ができている。
【0274】
第3段入力レジスタへの実際の転送は、集合231の中の導体231aでのAPG制御装置240からの制御信号UPDATE−STAGE−3に応じて発声する。また、UPDATE−STAGE−3制御信号に応じて、レジスタ230j内のPAGEは、アクティブページレジスタ230mに転送され、レジスタ230k内のCOUNTがカウンタ230nに転送される。
【0275】
カウンタ230nがロードされた後、それが含むカウントは、クロック信号BITCLKの各正の端縁に応じて1減分される。また、カウンタ230nによって生成されるカウントごとに、1つの制御ワードがメモリ230pから読み出され、レジスタ230qに記憶される。
【0276】
レジスタ230qに記憶される各制御ワードは、それぞれマルチプレクサ230d、マルチプレクサ230e、及び直列/並列シフトレジスタ230hに送信される制御信号CFMD1、CFMD2、及びCFMD3に区分される。CFMD1信号は、マルチプレクサ220dにシフトレジスタ230fのために1ビットを選択させ、CFMD2信号はマルチプレクサ230eにシフトレジスタ230gのために1つのビットを選択させ、CFMD3信号はシフトレジスタ230hに直接的に送信される。
【0277】
ビットクロック信号のそれぞれの正の端縁が発生すると、シフトレジスタ230f、230g及び230hは、そのD入力に送信されるビットを記憶する。それから、合計16個のビットがシフトレジスタ230f、230g、及び230hのそれぞれに記憶された後で、それらの並列出力が使用される。具体的には、シフトレジスタ230fの並列出力は、ATDI出力レジスタにロードされ、シフトレジスタ230gと230hの並列出力は、遅延バッファ230iのそれぞれDI入力とD2入力にロードされる。遅延バッファ230iにロードされるそれらの信号は、それ以降、クロック信号WDCKの所定数のサイクル後に、それ以降、出力レジスタAETDOとAMASKに送信される。
【0278】
出力レジスタ230bから、導体201b、201c及び201dが、それぞれ信号ATDI、AETDO、及びAMASKを、図14Bの前述された回路に搬送し、それらの回路が、試験されなければならない集積回路チップに信号を送信する。試験プロセスの間、信号ATDIは、チップの中に直列に書き込まれ、それが信号AETDOとAMASKと直列に比較される直列応答を生じさせる。チップからのこの応答は、信号ATDIがチップの中に書き込まれる時間を基準にして一定の遅延後に発生し、その遅延は、図17Aの遅延バッファ230iによって補償される。
【0279】
シフトレジスタ230f、230g、及び230jを直列にロードし、16ビットのワードでのそれらの出力を出力レジスタ230gに送信する前述のプロセスは、カウンタ230ンがそのカウントをゼロに減分するまで繰り返す様式で進行する。これが発生すると、ゼロ検出回路230oが、導体232aでのZERO−CNT信号を図14AのAPG制御回路240に送信する。
【0280】
APG制御装置240内で、第2段220の状態は、出力レジスタ220bが、第3段230の入力レジスタに転送する準備ができている新しいデータを含むかどうかを判断するために試験される。このような状態が損座右する場合には、APG制御装置240は、導体230aで制御信号UPDATE−STAGE−3を生成する。応じて、第2段220の出力レジスタの内容は、第3段230の入力レジスタに転送される。230jのレジスタ内の別のPAGEは、アクティブなページレジスタ230mに転送され、レジスタ230k内の別のCOUNTは、カウンタ230nに転送される。それから、プロセス全体が、前述されたように続行する。
【0281】
ここで図18を見ると、それは、3つの段が動作するシーケンスを描くタイミング図を示す。図18では、第1段210が、時間間隔T1S2の間に仮想アドレス及び対応するデータの第1集合を生成する。それ以降、時下ン間隔T1S2の間、第2段220が、仮想アドレスと対応するデータの第1集合を、物理アドレスと対応するデータの第1集合に変換する。それ以降、時間間隔T1S3の間、第3段230は、物理アドレスと対応するデータの第1集合を使用して、集積回路チップを試験する直列ビットストリームATDI、AETDO、及びAMASKを生成する。
【0282】
時間間隔TiS1で第1段によって生成される仮想アドレスの集合ごとに、第2段及び第3段が、それぞれ時間間隔TiS2とTiS3デ対応するタスクを実行する。ここえは「1」は任意の正の整数である。このようにして、例えば、仮想ドレスの第3集合及び物理アドレスの第3集合及び出力信号の第3集合は、それぞれ時間間隔T3S1、T3S2、及びT3S3中に生成される。このプロセスは、図18に示されるように、第1段が仮想アドレス及び対応するデータの新しい集合を生成するのを停止するまで3つのドットの集合によって図18に示される。
【0283】
図18の検査は、一定のときに、段210、220、及び230の3つすべてが、アドレスとデータの異なる集合で同時に動作することを示す。例えば、3つの時間間隔T3S1、T2S2、及びT1S3の部分が重複する。時間間隔T3S1の間、第1段210は仮想アドレスと対応するデータの第3の集合を生成する。時間間隔T2S2の間、第2段220が、仮想アドレスと対応するデータの第2集合を、物理アドレスと対応するデータの第2集合に変換しており、時間間隔T1S3の間に、第3段230が、出力信号ATDI、AETDO及びAMASKの第1集合を生成している。
【0284】
図18の検査は、さらに、第3段時間間隔T1S3、T2S3、T3S3等の間に隙間が発生しないことを示す。その結果として、第3段出力信号ATDI、ETDO及びAMASKは、ある時間間隔から次の時間間隔へ連続的である直列ビットストリームで発生する。この連続的な出力を達成するために、第1段の時間間隔T1S1、T1S2等のそれぞれと、第2段の時間間隔S2T1、S2T2等のそれぞれは、第1段の時間間隔のそれぞれより短くなくてはならない。
【0285】
前記制約のために、第1段時間間隔の間では隙間が発生し、第2段時間間隔の間で隙間が発生する。第1段時間間隔間の隙間の間、第1段210は、それが、仮想アドレスと対応するデータの別の集合を生成し続ける前に、一定のイベントが発生するまで留まる待機状態にある。同様に、第2段時間間隔のそれぞれの間の隙間の間、第2段220は、それが、仮想アドレスを物理アドレスに変換するプロセスを進める前に、一定のイベントが発生するまで留まる待機状態にある。
【0286】
第1段210と第2段220が前記待機状態にどのようにして入り、終了するのかが、ここで図19に関連して説明されるだろう。その図では、3つの段のそれぞれに別個の状態図が示されている。図19に描かれている状態のすべて、及びある状態から別の状態への遷移は、図14Aの制御モジュール24Dによって実現される。
【0287】
図19の状態図の多様な点で、図20に図示される2つの状態制御フリップフロップが参照され、それらの2つのフリップフロップ241と242は、図14Aの制御装置240内に含まれる。各フリップフロップは、設定された入力S及びリセットされた入力R、及び出力Rを有する。フリップフロップ241は、第1段出力レジスタ210bの内容が、第2段220によって処理される準備ができているときに設定され、フリップフロップ242は、第2段出力レジスタ220bの内容が、第3段230によって処理される準備ができているときに設定される。これは、それぞれ「STAGE−1 OR’S READY(段1論理和準備完了)」及び「STAGE−2 OR’S READY(段2論理和準備完了)」である2つのフリップフロップ241と242の出力信号によって示される。
【0288】
ここで図19の状態図を考えると、それは第1段210が実行するための命令を待機する状態301を示す。それらの命令は、図15C、図15D、図15E、及び図15Gに関連して前述された命令である。それらの命令の1つは制御装置240によって受信され、その制御装置は、図15Gの命令254が受信されたかどうかを判断するために、参照番号302によって示されるように、試験を行う。命令254が受信されなかった場合には、制御装置240は、図15A〜図15Fに関連して前述されたように、導体211a,211b等で第1段210に制御信号を送信し、応じて、第1段210は受信された命令を実行する。これは、参照番号303によって示される。それから、第1段210が状態301に再び入る。
【0289】
比較して、制御装置240が試験302によって、図15Gの命令が受信されたと判断する場合には、制御装置240は、第1段出力レジスタの内容が、第2段によって処理される準備ができていることを示すフリップフロップ241を設定する。それから、第1段は、それがリセットされるためにフリップフロップ241を待機する状態305に入る。そのリセットが発生すると、第1段は状態301に再び入り、実行するための別の命令を待機する。
【0290】
次に、第2段220の図19の状態図を考えると、それは、第2段が、第1段の出力レジスタの内容が第2段によって処理される準備ができるまで留まる状態310を示す。そのイベントの発生は、設定されているフリップフロップ241によって示される。このようにして、フリップフロップ241が設定されるようになると、第2段220は別の状態311に入る。
【0291】
第2段220は、それが、第3段に転送される必要がある専用の出力レジスタ220bの中に物理アドレス及び対応するデータを有する場合に状態311に留まる。第2段出力レジスタ220b内の物理アドレスとデータの存在は、設定されているフリップフロップ242によって示される。このようにして、状態311は、フリップフロップ242がリセットされるようになるまで終了される。
【0292】
状態311が終了されると、制御装置240は、制御信号UPDATE_STAGE2を導体221a上の第2段に送信し、それはフリップフロップ241をリセットする。これは、参照番号312で示される。それから、UPDATE_STAGE2制御信号に応じて、第2段220は、連続的に物理アドレスと対応するデータの集合を生成し、それはその出力レジスタ220bにそれらを記憶する。これは、参照番号313によって示される。それから、制御装置240は、参照番号314によって示されるようにフリップフロップ242を設定し、それは第2段出力レジスタ220bが第3段230によって処理される準備ができていることを意味する。
【0293】
次に、第3段230について図19の状態図を考えると、それは、第3段が、第2段出力レジスタ220bの内容が第3段によって処理される準備ができるまで留まる状態320を示す。そのイベントの発生は、設定されているフリップフロップ242によって示される。このようにして、状態320は、フリップフロップ242が設定されるときに終了される。それから、参照番号321によって示されるように、制御装置240は、制御信号UPDATE_STAGE3を導体231a上の第3段に送信し、それはフリップフロップ242をリセットする。
【0294】
UPDATE_STAGE3制御信号に応じて、第2段出力レジスタ220bの内容が第3状態の入力レジスタ230aに転送される。また、新しいページは、第3段のレジスタ230jからアクティブページレジスタ23mに転送され、新しいカウントは第3段のレジスタ230kからアクティブカウンタ230nに転送される。それ以降、第3状態230は、前述されたように、アクティブページとアクティブカウントを使用し、出力ビットストリームATDI、AETDO、及びAMASKを連続して生成し、これが参照番号322と343によって示される。そのプロセスは、アクティブカウントが、その時点で第3段が状態320に再び入る、ゼロというカウントに達するまで続行する。
【0295】
状態320に再び入るときにフリップフロップ242が設定される場合、状態320は直ちに終了するだろう。それから、参照番号321、322、及び323によって示されるイベントのすべてが繰り返され、その結果として、第3段によって生成されるビットストリームATDI、AETDO、及びAMASKでは隙間は発生しないだろう。状態320に再び入ると、フリップフロップ242が、事実上設定されることを保証するために、図18の第1段時間間隔及び第2段時間間隔は、第3段時間間隔より短くなる必要がある。
【0296】
ここで図21を見ると、それは、集積回路チップを試験する、出力ビットストリームATDI、ATEDO、及びAMASKを生成するために使用されるプログラムを示す。このプログラムは、図13のメモリ13’に記憶され、それは、図13及び以下の図と関連して、説明された回路構成要素のすべてによって実行される。
【0297】
図21では、描かれているプログラムは、ステップS101〜S115として特定されるステップのシーケンスとして実行される。第1の5つのステップS101〜S105によって、多様な初期値が確立される。それ以降、以下のステップS106〜S115では、その間に出力信号ATDI、ATEDO及びAMASKが生成される2つのプログラムループが実行される。
【0298】
図21のプログラムによって生成される出力信号のすべては、メモリセルの物理的なアレイのためであり、それぞれのメモリセルは物理的な行アドレスと物理的な列アドレスを有する。しかし、図21のプログラムでは、物理的な行と列のアドレスは、仮想行と仮想列のアドレスから生成される。
【0299】
ステップS101によって、開始仮想行アドレスは第1段210の入力レジスタXAに送信され、開始仮想列アドレスは第1段の入力レジスタYAに送信される。その後、ステップS102では、仮想アドレス限度が第1段の境界チェック回路210kに送信される。このステップによって、図15FのレジスタXMINとXMAXには、それぞれ、最小仮想行アドレスと最大仮想行アドレスがロードされ、同様にして、レジスタYMINとYMAXにはそれぞれ最小仮想列アドレスと最大仮想列アドレスがロードされる。
【0300】
次に、ステップS103では、第2段スクランブラ制御レジスタのすべてが初期化される。それらのレジスタは、図16Aの参照番号220iで特定される。このステップによって確立される設定値が、導体221b上でマルチプレクサ220hに送信される制御信号を決定する。
【0301】
次に、ステップS104では、複数の制御信号が、図16Bと図16Dに示される第2段のデータ処理部分で確立される。具体的には、このステップS104は、図16Dに関連して残術された制御信号XSEL、YSEL、LFUNC、MFUNC、DALUOP、OUTSEL、VALSEL、及びROTのすべてを確立する。
【0302】
次に、ステップS105では、それぞれの初期値が図14Bの行カウンタ252と列カウンタ253に送信される。ここでは、行カウンタに送信される初期値は、仮想メモリアレイ内の行数であり、列カウンタに送信される初期値は仮想メモリアレイ内にある列数である。
【0303】
次に、ステップS106では、第1段の入力レジスタXA内にある仮想行アドレスが、第1段の出力レジスタX1A’とX1D’に送信される。それから、ステップS107で、第1段の入力レジスタYA内にある仮想列アドレスが、出力レジスタY1A’とY1D’に送信される。やはりステップ107によって、レジスタYA内にある仮想列アドレスは1増分される。これらの演算は、図15Cの命令251を実行することによって達成される。
【0304】
次に、ステップS108では、図15Gの命令254が実行され、その結果としてフリップフロップ241が設定される。これは、第1段210の出力レジスタの内容が第2段220によって処理される準備ができていることを示す。その結果として、第2段220は、図19の段の2つの状態図に関連して前述されたように、第1段出力レジスタの内容を記憶し、処理するために進むだろう。それ以降、第2段220の出力レジスタの内容は第3段による処理のために準備ができるだろう。それが起こると、第3段230は、図19の第3段状態図に関連して前述されたように、第2段出力レジスタの内容を記憶し、処理するだろう。
【0305】
次に、列カウンタ253内のカウントが、図14Bの状態機械40によって1減分されるステップS109が実行される。残りのステップS110〜S115だけではなく、このステップS109も、ステップS108によって開始された第2段220と第3段230のための多様なタスクと並列で実行される。
【0306】
次に、ステップS110では、図14Bの状態機械40’が、それがゼロというカウントに達したかどうかを確かめるために列カウンタ242を試験する。カウントがゼロではない場合には、ステップS111が実行される。そこで、図14Bの状態機械40’が、第1段出力レジスタの内容が、段S106とS107によって確立されるように、第1段の入力レジスタに転送されたかどうかを判断するために試験を行う。この試験は、図20のフリップフロップ241の出力信号を調べることによって行われる。フリップフロップ241が設定される場合、ステップS111は、フリップフロップ241がリセットされるまで繰り返される。それが発生すると、分岐はステップS106まで戻される。
【0307】
比較して、列カウンタ253のカウントがステップS110でゼロである場合には、ステップS112に分岐される。そこで、第1段の入力レジスタXA内にある業アドレスが1増分される。それから、ステップS113では、行カウンタ252のカウントが1減分される。
【0308】
次に、ステップS114では、図14Bの状態機械40’が、行カウンタ252内のカウントを試験する。そのカウントがゼロに等しくならない場合には、列カウンタ253が、仮想メモリアレイ内にある列の数で再初期化されるステップS115が実行される。それから、ステップS111に分岐される。それ以外の場合、行カウンタのカウントがステップS114でゼロに等しくなると、試験信号は、アレイ内のあらゆるセルについて生成された。そしてこのようにして、試験信号の生成は完了する。
【0309】
図21のプログラム内の各ステップは、図13のメモリ13内の1つまたは複数の命令によって指定される。例えば、ステップS101でロードされる初期値は、図15Dの命令252の2つによって指定される。同様に、ステップS102の最小と最大のアドレス限度は、図15Eの命令253の2つによって指定される。同様に、ステップS103のマルチプレクサ制御信号は、図16Eの命令262の16によってXレジスタに指定され、Yレジスタ用のマルチプレクサ制御信号はそれらの命令の16以上によって指定される。さらに、ステップS104で確立さえる制御信号は、図16Bの単一命令261によって定義される。
【0310】
ステップS110、S111、及びS114で発生する試験及び分岐を実行するために、図11の条件付きジャンプ命令32が実行される。それから、行カウンタ252及び列カウンタ253のロード及び減分を実行するために、図22の別の命令265が実行される。この命令265は、OP=35という演算コードによって特定される。
【0311】
命令265は、COUNT、DECLD、及びROWCOLと呼ばれる3つのフィールドを有する。ROWCOLフィールドは、行カウンタ252を選択する「0」という値、及び列カウンタ253を選択する「1」という値を有する。DECLDフィールドは、減分演算を指定する「0」という値、及びロード演算を指定する「1」という値を有する。ロード演算が指定される場合には、COUNTフィールドがROWCOLフィールドによって特定されるカウンタにロードされる。減分演算が指定される場合には、ROWCOLフィールドによって特定されるカウンタが1減分される。
【0312】
図21の前述されたプログラムの1つの特定の特徴とは、それぞれが行と列の異なる物理的なレイアウトを有する任意の数のメモリアレイについて同じプログラムが使用できるという点である。この特徴は、任意の1つのアレイの特定の物理的なレイアウトが、段2のマルチプレクサ制御レジスタが初期化されるステップS103で対処されるために達成される。それらのレジスタを適切に初期化することによって、各仮想アドレスは、図16Aのマルチプレクサ220h及びメモリ220Lと220mを介して、任意の所望される物理アドレスに変換される。
【0313】
図21のプログラムの別の特徴は、それが、ステップS104を実現する命令を単に変更することによって、多くの異なるデータパターンについて試験信号ATDI、AETDO、及びAMASKを生成できるという点である。例えば、ステップS104がDALUバスにレジスタX1D内のビットゼロを送信する、図16Dの1つの命令261で実現される場合、メモリアレイの中のそれぞれの偶数番号の行が「0」で作成され、アレイの中でそれぞれの基数番号の行が「1」で作成されるだろう。比較して、ステップS104が、レジスタY1D内のビットゼロの逆数をDALUバスに送信する図16Dの1つの命令261によって実現される場合には、アレイのそれぞれの基数番号の列が「0」で作成され、アレイのそれぞれの偶数番号の列が「1」で作成されるだろう。
【0314】
また、算術パターン生成器を介した試験信号ATDI、AETDO、及びAMASKの生成が、図13のシステムのただ1つの運転モードの間にだけ発生することが強調されなければならない。別の運転モードでは、試験信号TDI、ETDO、及びMASKはメモリ13’から読み取られ、試験されなければならないチップに送信される。これらの2つの運転モードでは、図5、図6、図8、図9、及び図10に図示される回路構成要素のすべては時分割される。このようにして、どちらかの運転モードでは、TMS信号が状態機械40’によって生成され、レジスタ47に送信される。レジスタ44〜48のビットストリームのワードは、チップドライバ回路11のすべてに導体12a上で一斉送信され、チップドライバ回路は、試験されるチップからの予想される応答を、それらのチップからの実際の応答と比較する。
【0315】
本発明の1つの好ましい実施態様は、ここで詳細に説明されてきた。しかしながら、さらに、多様な変更及び修正が、発明の性質及び精神から逸脱することなく、描かれた好ましい実施態様の詳細に加えることができる。
【0316】
例えば、図13〜図22に説明されるアルゴリズムパターン生成器を用いると、ビットストリームATDI、AETDO及びAMASKのすべて3つが生成される。ただし、改良策として、それらのビットストリームの1つだけまたは2つが生成できる。この改良策を用いると、未使用のビットストリームを作成する回路構成要素は排除することができる。このようにして、例えば、ATDIビットストリームだけが生成され、ATDOビットストリームおよびAMASKビットストリームを生成するために使用される回路構成要素は排除できるだろう。
【0317】
同様に、図14Aでは、アルゴリズムパターン生成器の好ましい実施態様が、3つの段を含むと図示されている。しかしながら、改良策としては、それらの段の数は、減少または増加できるだろう。例えば、なんらかの新しい演算を実行するための追加段は、第2段と第3段の間に挿入できるだろう。代わりに、第2段及び第3段によって実行される関数は、単一の段の中に組み込むことができるだろう。
【0318】
また、改良策として、アルゴリズムパターン生成器の3つの段の任意の1つは、違うふうに構築される類似した段と置換できるだろう。このようにしてここに開示されているAPGの各段は、別のアルゴリズムパターン生成器内で使用できる別個のモジュールである。
【0319】
また、別の改良策として、演算パターン生成器の各段によって実行される多様な命令は変更することができる。例えば、図15Cでは、第1段によって実行される多様な関数を定義する、複数のフィールドが示され、それらのフィールドは第1段が実行する特定の演算を変更するために修正できる。同様にして、図16Dでは、第2段によって実行される関数を定義する複数のフィールドが示され、それらのフィールドは、第2段が実行する関数を変更するために修正できる。
【0320】
その結果、発明が、示されている好ましい実施態様の詳細のすべてに制限されるのではなく、添付請求項によって定義されることが理解されるべきである。
【図面の簡単な説明】
【図1】集積回路チップを試験するためのベースシステムのブロック図を示す。そして、そのベースシステムは、本発明に従って、図13〜図22でここに示されるように修正される。
【図2】図1のチップ試験システムがどのようにして物理的に実装されるのかを示す。
【図3】集積回路チップを試験するために、図1のシステムによって実行される3つの異なる種類の可変長命令を示す。
【図4】図3の命令が試験プログラムを形成するためにどのようにして順番に配列されるのかの例を示す。
【図5】図1のシステムで選択可能な量発生するパターン生成器の内部詳細を示す。
【図6】図1のシステムで選択可能な量で発生するチップドライバ回路の内部詳細を示す。
【図7】図5のパターン生成器及び図6のチップドライバ回路が図1のシステムでどのように対話するのかを示す。
【図8】試験されたチップ内のエラーが検出される図1の各チップドライバ回路上の追加回路構成要素を示す。
【図9】複数のチップが、プログラム制御下の選択可能な部分集合の中で同時にまたは連続して試験される、図1の各ドライバ回路の追加回路構成要素を示す。
【図10】図9の回路構成要素の一部である制御メモリの構造を示す。
【図11】図1のチップ試験システムによって実行される3つの追加の種類の命令を示す。
【図12】図3に示されている3つの命令に対して加えることのできる修正を示す。
【図13】本発明に従って集積回路チップを試験する改良されたシステムを示す。そしてこの改良されたシステムは、アルゴリズムパターン生成器(APG)を図1のベースシステムに組み込むことによって得られる。
【図14A】図13のAPGのための好ましい内部構造を示す。
【図14B】図14Aのアルゴリズムパターン生成器を図13のシステムの残りに結合する、図13の中のモジュール12’の詳細を示す。
【図15A】図14AのAPGの第1段のある部分の詳細な論理図である。
【図15B】図14AのAPGの第1段の別の部分の詳細な論理図である。
【図15C】図15Aと図15Bの第1段論理回路によって実行されるある命令を示す。
【図15D】図15Aと図15Bの第1段論理回路によって実行される別の命令を示す。
【図15E】図15Aと図15Bの第1段論理回路によって実行される第3命令を示す。
【図15F】図15Aの第1段論理回路内に含まれる境界チェック回路の追加の詳細を示す。
【図15G】図14AのAPG内の第1段によって部分的に、及び図14AのAPGの第2段と第3段によっても部分的に実行される命令を示す。
【図16A】図14AのAPG内の第2段のある部分の詳細な論理図である。
【図16B】図14AのAPG内の第2段の別の部分の詳細な論理図である。
【図16C】図14AのAPG内の第2段の依然として別の部分の詳細な論理図である。
【図16D】図16A〜図16Cの第2段論理回路によって実行される命令を示す。
【図16E】図16C〜図16Eの第2段論理回路によって実行される別の命令を示す。
【図16F】図16A〜図16Cの第2段論理回路によって実行される依然として別の命令を示す。
【図16G】図16A〜図16Cの第2段論理回路によって実行される依然として別の命令を示す。
【図17A】APGの第3段のある部分の詳細な論理図である。
【図17B】図14aのAPGの第3段の別の部分の詳細な論理図である。
【図18】図14Aの第1段、第2段、及び第3段のための動作のシーケンスを示すタイミング図である。
【図19】図14のAPGの第1段、第2段及び第3段のためのそれぞれの状態図を示す。
【図20】図19の状態図に参照される2状態制御フリップフロップを示す。
【図21】図13のシステムのメモリ内に記憶されるAPG用のプログラムを示す。
【図22】図21のプログラム内での図15C、図15D、図15E、図15G、図16D、図16E、図16F及び図16Gの命令とともに使用される別の命令を示す。
(関連事例)
前記事件整理番号及び題名によって特定されるような発明は、4つのそれ以外の発明に関係する。これらの発明のすべてに関する特許出願は、1999年11月 日に同時に提出され、それらは1つの共通した詳細説明を有する。これら4つの関連発明は、以下のように特定される。
1.米国出願番号第 号を有する「記憶されているあるいは内部で生成されるビットストリームを用いて選択的にICチップを試験するためのシステム(SYSTEM FOR TESTING IC CHIPS SELECTIVELY WITH STORED OR INTERNALLY GENERATED BIT STREAMS)」と題される事件整理番号第550,612号
2.米国出願番号第 号を有する「ICチップを試験するための多段アルゴリズムパターン生成器(MULTI−STAGE ALGORITHMIC PATTERN GENERATOR FOR TESTING IC CHIPS)」と題される事件表第550,613号
3.米国出願番号第 号を有する「ICチップを試験するための多段アルゴリズムパターン生成器の中間段(INTERMEDIATE STAGE OF A MULTI−STAGE ALGORITHMIC PATTERN GENERATOR FOR TESTING IC CHIPS)」と題される事件表第550,615号
4.米国出願番号第 号を有する「ICチップを試験するための多段アルゴリズムパターン生成器の出力段(OUTPUT STAGE OF A MULTI−STAGE ALGORITHMIC PATTERN GENERATOR FOR TESTING IC CHIPS)」と題される事件表第550,616号
【0002】
(発明の背景)
従来の技術において、チップを試験するための電子システムは、米国特許第5,390,129号に開示されている。従来の技術によるシステムは、本発明の譲受人でもあるユニシス・コーポレイション(Unisys Corporation)に譲渡されている。
従来の技術によるチップ試験システムの簡略化されたブロック図は、特許第129号の図2に図示されている。そのシステムは、時分割されているバス52を介して複数のドライバボード100に結合されるコンピュータ50を含み、各ドライバボード100は、試験されなければならない複数の集積回路チップを保持するそれぞれのバーンインボード500に結合される。
【0003】
動作中、コンピュータ50は、各ドライバボード100に、チップを試験するために使用される試験データパターンの別個の集合を連続して送信する。これらの試験データパターンは、参照番号107によって図3に示され、参照番号145によって図9にさらに詳細に示される大型SRAM内の各ドライバボード上に記憶される。どの特定のドライバボードが任意の一時点で試験データパターンを受信、記憶するのかは、ドライバボード上にあり、図2のブロック図に図示されているアドレス回路100Aによって決定される。
【0004】
試験データパターンがドライバボード100のすべてのSRAM145内に記憶された後に、バーンインボード500のすべてでのチップが並列で試験できる。それを行うために、試験パターンはSRAMのすべてから同時に読み出され、図14に図示されるように、それぞれの出力ドライバモジュール164を通してバーンインボード500のすべてのチップに送信される。
【0005】
特許第’129号のチップ試験システムのある特定の特徴とは、それぞれのバーンインボードが、ボード上で試験されるチップの種別を特定するIDコードを含むという点である。そのIDコードはドライバボード100によって感知され、コンピュータ50に送信される。応じて、コンピュータ50がドライバボードに送信する試験データパターンは、感知されるIDコードに合わせられる。
【0006】
しかしながら、特許第’129号のチップ試験システムは、図2のアーキテクチャによって課されるいくつかの主要な制約も有する。例えば、コンピュータ50は、ドライバボード100のすべてについての試験データパターンの唯一のソースである。その結果、チップ試験システムの動作速度は、コンピュータ50が、バス52上で一度に単一ドライバボードに試験データパターンを送信することができるために制限される。
【0007】
特許第’129号のチップ試験システムの別の制約とは、各ドライバボード100がつねにバーンインボード500上のチップのすべてを同時に試験するという点である。ただし、それぞれのバーンインボードは本来ボード上のチップが消散できる電力総量に限度を有している。このようにして、各バーンインボード500での総電力消散を一定の限度以下に保つためには、各バーンインボードでのチップの総数が、チップあたりの最大電力消散が上昇するにつれて減少しなければならない。
【0008】
特許第’129号のチップ試験システムの依然として別の制約とは、各ドライバボードの大型SRAM145に記憶されている試験データパターンがSRAMメモリセルを非常に非効率的に利用するという点である。特許第’129号の図9は、各SRAM145が19個のアドレスビットを受信し、8個のデータ出力ビットを有することを示す。このようにして、各ドライバ回路上のSRAM145は、800万個のメモリセルを有する。しかし、一定の種類のチップは、時間とともに数が変化する直列ビットストリームのシーケンスをそれらに送信することによって試験される。このようにして、SRAM145が一方の時間間隔の間に4個のビットストリームを送信し、他方の時間間隔の間に2個のビットストリームだけを送信する場合には、2個のビットストリームが送信されているときにSRAMの半分が浪費される。
【0009】
特許第’129号のチップ試験システムで前記問題に対処するために、本発明人は、以下のとおりに特定される1999年8月31日に3つの米国特許出願を提出した。
【0010】
1.「チップドライバ回路の選択可能な集合に異なるビットストリームを同時に一斉送信する選択可能な数のパターン生成器を有するチップを試験するための電子システム(An Electronic System for Testing Chips Having A Selectable Number of Pattern Generators That Concurrently Broadcast Different Bit Streams To Selectable Sets of Chip Driver Circuits)と題されるUSSN第09/386,946号。
【0011】
2.「ワード境界で終わり、任意の長さのチップ試験ビットストリームを生成する未使用ビットによって間隔をあけて配置される命令を含むプログラム記憶装置(A Program Storage Device Containing Instructions That Are Spaced Apart By Unused Bits That End On Word Boundaries And Which Generate Chip Testing Bit Streams of Any Length)」と題されるUSSN第09/387,197号。
【0012】
3.「チップ電力消散を制限するためにプログラム制御下にある選択可能な部分集合で同時にまたは連続して複数のチップの集合を試験するための電子システム(An Electronic System For Testing A Set Of Multiple Chips Concurrently Or Sequentially In Selectable Subsets Under Program Control To Limit Chip Power Dissipation)」と題されるUSSN第09/386,945号。
【0013】
前記特許出願のそれぞれは、図1から図12の同じセットを含み、それらはそれぞれ同じ詳細な説明を有する。また、前記特許出願のそれぞれは、開示されているチップ試験システムのさまざまな態様をカバーする請求項の別個のセットを有する。
【0014】
USSN第09/386,946号に請求されるような発明は、動作の速度に関する特許第’129号の制約に取り組む。特に、それらのクレームは、そのそれぞれが、別個のバスを介して、選択可能な数のチップドライバ回路へ結合される選択可能な数のパターン生成器から構成される集積回路チップを試験するためのシステムをカバーする。各パターン生成器は、そのそれぞれのメモリからワード単位で異なるビットストリームを記憶するそれぞれのメモリにも結合される。そして、それは、同時にその別個のバスに結合されるチップドライバ回路のすべてに、読み取られるワードを送信する。それが発生している間、各チップドライバは、それが送信されるワードを、並列で複数の集積回路チップを試験するビット直列試験信号に変換する。
【0015】
1つの別個のバスに結合されるすべてのチップドライバ回路は、1つのパターン生成器から同時にビットストリームのワードを受信するので、動作の速度は従来の技術より加速される。また、パターン生成器のすべてが別個のバス上で同時にさまざまなビットストリームを送信するので、動作の速度は従来の技術よりさらに加速される。
【0016】
USSN第09/387,197号では、請求されるような発明は、試験データパターンを記憶するためのメモリの非効率的な使用に関する特許第’129号の制約に取り組む。特に、これらの請求項は、チップを試験するためのビットストリームの集合を指定する可変長命令を記憶するメモリに結合されるパターン生成器から構成される集積回路チップを試験するためのシステムをカバーする。各可変長命令は、集合の中のビットストリームの数を示す符号を含む。集合の中の各ビットストリームは、ワード境界で開始し、1ビットという増分で変化する選択可能な数のビットから成り立つ。未使用のビットのそれぞれの行列は、各ビットストリームの直後に開始し、ワード境界で終了する。
【0017】
符号が、集合内のビットストリームの数が1にすぎないことを示す場合、該1つのビットストリームは、メモリの連続的なワードに記憶される。符号が、集合のビットストリームの数が1より多いことを示す場合、それらの複数のビットストリームがメモリ内の連続ワードにインタリーブされた様式で記憶される。その結果、浪費されるメモリセルだけが、各ビットストリームの後に未使用のビットを記憶するセルである。しかし、それらの未使用のビットは、ビットストリームのそれぞれが長いときには、数の上で無意味である。
【0018】
USSN第09/386,945号では、請求されるような発明が、バーンインボードで試験されているチップによる総電力消散に関する特許第’129号の制約に取り組む。特に、それらのクレームは、クロック信号を生成する信号生成器、及びクロック信号を受信する第1入力、コマンドを受信するための第2入力、及び複数の出力を有する制御回路から構成される集積回路チップを試験するためのシステムをカバーする。コマンドソースは、制御回路の第2入力にコマンドのプログラム可能なシーケンスを送信し、制御回路内の手段はコマンドに応じて特定の出力を選択し、第1入力から選択された出力だけにクロック信号を渡す。
【0019】
制御回路の出力のすべては、試験されなければならないさまざまなチップにそれぞれのクロック送信機を通して結合される。このようにして、プログラム可能コマンドに応じて、クロック信号は、選択可能な部分集合で、試験されるチップに連続して送信することができる。このような順序付けによって、試験されるチップの総電力消散は、チップが、それらがクロック信号を受信するときに大量の電力を消散するが、それらがクロック信号を受信しないときには実質的にはより少ない電力を消散する型であるときに調節することができる。このようなチップは、例えば、CMOSマイクロプロセッサチップ及びCMOSメモリチップを含む。
【0020】
前記3つの特許出願(これ以降「ベースシステム」)に開示されるチップの特徴のすべてにも関わらず、本発明人は、さらに、そのシステムに対する主要な改善策を発見した。この改善されたシステムによって、チップ用の試験信号を定義するために必要とされるメモリの量は、数桁削減される。
【0021】
改善されたシステムの好ましい実施態様はここに、及び1ページに特定される4つの関連ケースのそれぞれで説明される。それぞれのケースでは、改善されたシステムは、図及び同じ詳細な説明とともに説明される。また、それぞれのケースは、改善されたシステムの異なる態様をカバーするクレームの別個のセットを有する。
【0022】
改善されたシステムの構造及び動作を完全に理解するために、まず、3つの参照される特許出願第09/386,946号と第09/387,197号、及び第09/386,945号に説明されるベースシステムの理解を有することが必要である。結果的に、それらの詳細な説明だけではなく、それらの出願の図1から図12もここで繰り返される。それから、改善されたシステムは、ここで図1から図12のベースシステムに対する改良として、図13から図22とともに説明される。
また、従来の技術において、集積回路チップを試験するための別のシステムが、欧州特許出願EP第0 859 367 A2号(参考資料D1)に説明されている。しかしながら、参考資料D1のシステムは、一般的な先端技術を定義しているに過ぎず、ここに請求されているシステムと特に関連しているとは見なされない。本出願の請求項1は、唯一の独立クレームであり、それは明示的に参考文献D1によって教示または示唆されていない複数の構造上の特徴を明示的に列挙する。
【0023】
(発明の簡略概要)
本発明は、請求されるように、メモリに記憶されている第1ビットストリームまたは内部で生成される第2ビットストリームで選択的にICチップを試験するためのシステムの1つの特定の部分をカバーする。システムの中で、内部で第2ビットストリームを生成することにより達成される主要な利点とは、メモリ内に必要とされる記憶の量が大幅に削減されるという点である。例えば、第2ビットストリームが、合計10億ビットを含む可能性がある。しかし、それは、メモリ内の記憶の1000ビット未満を必要とする命令で生成することができる。
【0024】
本発明として請求されるシステムの特定の部分は、ICチップを試験するためのビットストリームを生成する多段アルゴリズムパターン生成器である。この多段アルゴリズムパターン生成器は、3段パイプラインとしてともに結合される、初期段、中間段、及び出力段から構成される。好ましくは、初期段は、外部ソースからの一連の命令に応えて第1アドレスの複数の集合を連続して生成する。中間段は、初期段からの第1アドレスの各集合を連続して記憶し、第1アドレスの記憶されている集合をアドレスの第2集合に変換し、出力段は、中間段からアドレスの各第2集合を連続して記憶し、アドレスの記憶されている第2集合からビットを選択することによって、チップを試験するための出力信号を生成する。
【0025】
前記算法パターン生成器を用いて、初期段によって連続して生成される第1アドレスは、仮想または仮説のメモリ内の仮想アドレスとなることがあり、それらの仮想アドレスは、中間段によって試験されなければならない実際のメモリチップの物理アドレスに変換することができる。この特徴は、複数の異なる種類のメモリチップが試験される必要がある場合、及びチップの種類ごとに、メモリセルが、異なる非連続アドレスによってアドレス指定される行と列で配列される場合に特に有効である。このようなチップを試験するために、仮想アドレスは、連続アドレスの1つの固定シーケンスとして初期段によって生成することができ、物理アドレスは、試験されなければならない特定の種類のメモリチップへのその仮想アドレスから物理アドレスへの変換を調整することによって中間段で生成することができる。
【0026】
(詳細説明)
まず図1〜図12に関して、集積回路チップを試験するためのベースシステムのある実施態様が説明されるだろう。それ以降、本発明を構成するベースシステムに対する修正は、図13〜図22に関して説明されるだろう。図1が示すように、ベースシステムは、5つの異なる種類のモジュール10〜14から構成され、各モジュールの説明が、表1の中に以下に示される。
【0027】
表1
モジュール 説明
10 各モジュール10は、それらが試験される間に複数の集積回路チップ10aを保持するチップアセンブリである。図1のシステムでは、チップアセンブリ10の総数が選択可能である。各チップアセンブリ10は、複数のソケット10cがはんだつけされる1枚のプリント回路基板10bを含み、各ソケットは、チップ10aの1つを保持する。コネクタ10dはプリント回路基板10bの端縁に取り付けられ、プリント回路基板内の電気導体10eがコネクタ10dとチップ10aの間で試験信号を搬送する。
11 各モジュール11は、チップドライバ回路である。図1のシステムでは、別個のチップドライバ回路11がチップアセンブリ10ごとに提供される。各チップドライバ回路11は、図6、図8、図9、及び図10に示される回路構成要素のすべてを含む。その回路構成要素により、試験信号は、プログラム可能である多様なビット直列シーケンスとして、チップ10aに送信され、チップ10aから受信される。
【0028】
表1(続き)
モジュール 説明
12 各モジュール12はパターン生成器である。図1のシステムでは、各パターン生成器12は、バス12aを介して、選択可能な数のチップドライバ回路に結合される。図1は、チップドライバ回路11のすべてがサブグループに区分され、1つの別個のパターン生成器12が別個のバス12aを介して各サブグループに結合される例を示す。代わりに、チップドライバ回路11のすべては、単一バス12aによって単一パターン生成器に結合できる。あるいは、各チップドライバ回路11は、別個のバス12aによって別個のパターン生成器に結合できる。各パターン生成器12は、図5と図6に示される回路構成要素のすべてを含む。その回路構成要素によって、各パターン生成器12は、チップ10cを試験するための特定のビット直列シーケンスを指定するプログラム可能な命令の別個のシーケンスを実行する。命令を実行する際に、各パターン生成器12は、ビット直列シーケンスをワードに区分し、該ワードを、そのバス12aに結合されるチップドライバ回路11のすべてに一斉送信する。
13 各項目13は、ランダムアクセス読み書きメモリである。別個のメモリ13が、パターン生成器12ごとに提供される。各メモリ13は、対応するパターン生成器によって実行されるプログラム可能命令の別個のシーケンスを記憶する。これらの命令は、アクセスポート13aを介してパターン生成器12によってメモリ13から読み取られ、それらは別のアクセスポート13bを介してメモリの中に書き込まれる。両方のアクセスポートとも同時に動作する。したがって、いくつかの命令をポート13aから読み取ることができるが、同時にその他の命令をポート13bの中に書き込むことができる。
14 モジュール14は、図1のシステム全体の動作を命令する単一ホストコンピュータである。ホストコンピュータ14は、バス13cを介して、メモリ13のすべてでポート13bに結合される。ホストコンピュータ14の中に含まれているのは、ディスク14a、キーボード14b、及びモニタ14cである。ディスク14aに記憶されているのは、パターン生成器12用の複数のプログラムであり、それぞれのこのようなプログラムがチップ10cを試験するための信号の特定のビット直列シーケンスを指定するプログラム可能命令の別のセットを含む。プログラムの内の1つを選択し、特定のパターン生成機のメモリ13にそれを送信するために、オペレータ(図示されていない)はキーボード14bを介してホストコンピュータ14に多様なコマンドを入力する。それ以降、選択されたプログラムでチップを試験することから得られる結果は、メモリ13内のパターン生成器によって記憶され、それらはホストコンピュータ14によってモニタ14cの上で表示される。
【0029】
次に図2を参照すると、それは、モジュール10〜14のすべてが、どのようにして1つのシステムとしてともに物理的に実装されるのかを示す。図2のアイテム20は、スタック内で互いの上に配列される複数の水平スロット21−1、21−2等を有する機械的なラックである。それぞれのスロットは、1チップアセンブリ10を加えた1つのドライバ回路11を保持するか、あるいはそれは1つのメモリ13を加えた1つのパターン生成器12を保持する。
【0030】
図2は、ラック20内のスロットの総数が14である例を示す。一番上のスロットは21−1であり、次のスロットは21−2である等。図2では、スロット21−1〜21−14が以下のように占有される。
【0031】
スロット21−1〜21−7のそれぞれが、チップアセンブリ10を加えたドライバ回路11を保持し、次のスロット21−8は、そのメモリ13を加える1つのパターン生成器12を保持する。スロット21−8内のパターン生成器12は、バス12aによってスロット21−1〜21−7の7つのドライバ回路に結合される。そのバス上では、スロット21−8内のパターン生成器が、スロット21−1〜21−7内にあるチップドライバ回路のすべて7つにビット直列試験信号を一斉送信する。
【0032】
スロット21−9は、チップアセンブリ10を加えるドライバ回路11を保持し、スロット21−10は、そのメモリ13を加える1つのパターン生成器12を保持する。スロット21−10内のパターン生成器は、バス12aによってスロット21−9内のドライバ回路に結合され、そのバス上で、スロット21−10内のパターン生成器が、スロット21−9内の1チップドライブ回路だけにビット直列試験信号を送信する。
【0033】
スロット21−11〜21−13のそれぞれが、チップアセンブリ10を加えたドライバ回路11を保持し、次のスロット21−14が、そのメモリ13を加えた1つのパターン生成器12を保持する。スロット21−14内のパターン生成器は、バス12aによってスロット21−11〜21−14内の3つのドライバ回路に結合され、そのバスの上でスロット21−14内のパターン生成器が、スロット21−11〜21−13内にあるチップドライバ回路の3つすべてにビット直列試験信号を一斉送信する。
【0034】
スロット21−8、21−10、及び21−14内のメモリ13のそれぞれが、パターン生成器12によって一斉送信されるビット直列試験信号を定義する複数の種類の命令の異なるシーケンスを記憶する。3つの異なる種類の命令が図3に示される。命令31は、第1の種類であり、命令32は、第2の種類であり、命令33は第3の種類である。
【0035】
第1種類の各命令31は、演算コードOP、ワードカウントWCNT、及びビットカウントBNCTを含むワードW0を含む。演算コードがOP1というある特定の値を有するとき、命令31は、ビットストリームTDIを、試験されるチップ10aないにあるデータレジスタの中に書き込ませる。演算コードがOP2という別の特定の値を有するとき、命令31は、チップ10a内にある命令レジスタの中にTDIビットストリームを書き込ませる。
【0036】
演算コードOP1とOP2の両方について、書き込まれるTDIビットストリームは、図3に図示されるように命令31の中で指定される。このTDIビットストリームは、ワードW0の直後に開始し、それは1ビットの増分で変化する長さを有する。TDIビットストリームのビット総数は(WCNT−1)(X)+BCNTであり、この場合Xはワード当たりのビット数である。TDIビットストリームを指定しない最後のワードの中のすべてのビットが未使用である。
【0037】
第2種類の各命令32は、演算コード、ワードカウントWCNT、及びビットカウントBCNTを含むワードW0を含む。演算コードがOP3というある特定の値を有するとき、命令32が、チップ10a内のデータレジスタの内容を読み取らせ、選択的に命令の中のデータストリームと比較させる。演算コードがOP4という別の特定の値を有するとき、命令32は、チップ10a内の命令レジスタの内容を読み取らせ、選択的に命令の中のデータストリームと比較させる。
【0038】
演算コードOP3とOP4の両方について、2つのビットストリームETD0とMASKが、比較動作で使用するために命令32の中で指定される。それらの2つのビットストリームはワードW0の直後に開始し、それらは図3に図示されるようにワード単位でインタリーブされる。MASKビットストリーム内のi番目のビットが「1」である場合には、チップから読み出されるi番目のビットは比較動作に参加し、チップからのその特定のビットはETDOビットストリーム内のI番目のビットに比較される。ビットストリームETDO及びMASKは長さが可変であり、それらのビットストリームのそれぞれでのビット総数は(WCNT−1)(X)+BCNTである。ETDOビットストリームとMASKビットストリームを指定しない最後の2つのワード内のビットのすべては未使用である。
【0039】
第3種類の各命令33は、演算コードOP、ワードカウントWCNT、及びビットカウントBCNTを含むワードW0を含む。演算コードがOP5というある特定の値を有するとき、命令33は、ビットストリームTDIをチップ10a内のデータレジスタの中に書き込ませると同時に、命令33はチップ10a内のデータレジスタの内容を読み取らせ、命令の中のデータストリームと選択的に比較させる。演算コードがOP6という別の特定の値を有するときには、命令33は、TDIビットストリームをチップ10aの中の命令レジスタの中に書き込ませると同時に、命令33は、チップ10aの命令レジスタのコンテンツを読み取らせ、命令の中のデータストリームと選択的に比較させる。
【0040】
演算コードOP5とOP6の両方について、TDIビットストリームは、命令33内で指定され、2つのそれ以外のビットストリームETD0とMASKも比較動作で使用するために命令の中で指定される。これらの3つのビットストリームはワードW0の直後に開始し、それらは図3に図示されるようにワード単位でインタリーブされる。MASKビットストリームのi番目のビットが「1」である場合には、チップから読み出されるI番目のビットが比較動作に参加し、チップからのその特定のビットはETDOビットストリームのI番目のビットに比較される。3つのビットストリームTDI、ETDO、及びMASKのそれぞれは長さが可変である。それらのビットストリームのそれぞれでのビットの総数は(WCNT−1)(X)+(BCNT)である。TDIビットストリーム、ETDOビットストリーム及びMASKビットストリームを指定しない最後の3つのワード内のビットのすべてが未使用である。
【0041】
パターン生成器12が命令31、32、及び33のそれぞれを実行するとき、それは、図3の命令の中で述べられない追加のビットストリームも生成する。その追加のビットストリームは、チップ10aを、データレジスタを選択的に読み取り、データレジスタを書き込み、命令レジスタを読み取るか、あるいは命令レジスタを書き込む特定の状態にするTMSと呼ばれる制御信号として使用される。各TMSビットストリームは、命令レジスタまたはデータレジスタのどちらかが使用される必要があると指定する演算コードOP1〜OP6、及びTMS信号内のビット数を決定するWCNTカウント及びBCNTカウントに応じて生成される。
【0042】
図4は、3種類の命令31、32及び33が、パターン生成器12用の各メモリ13内の異なるシーケンスにどのようにして記憶されるのかの例を示す。図4の例では、命令のシーケンスはI(k)、I(k+1)...等である。命令I(k+1)とI(k+3)は、第1種類31であり、命令I(k)とI(k+4)は第2種類であり、命令I(k+2)とI(k+5)は第3種類33である。
【0043】
第1種類の各命令31は、OP1またはOP2という演算コードで特定され、それは単一の可変長ビットストリームTDIを指定する。第2種類の各命令32はOP3またはOP4という演算コードによって特定され、それは2つの可変長ビットストリームETDOとMASKを指定する。第3種類の各命令33はOP5またはOP6という演算コードによって特定され、それは3つの可変長ビットストリームTDI、ETDO及びMASKを指定する。使用されないビットのそれぞれの系列(NU)は、各直列ビットストリームの直後に開始し、ワード境界で終了し、それがシーケンス内の次の命令をつねにワード境界で開始できるようにする。
【0044】
ここで図5を見ると、各パターン生成器12内にある回路構成要素の詳細が説明されるだろう。その回路構成要素は、順次状態機械40、カウンタ41、7台のレジスタ42−48のセット、マルチプレクサ49、及び発振器50を含む。それらの構成部品40〜50のすべてが、図示されているように互いに相互接続されている。
【0045】
レジスタ42〜48のそれぞれだけではなく、カウンタ41もデータ入力Dとクロック入力Cのセットを有する。入力Dに関するデータをカウンタまたはある特定のレジスタに記憶するために、状態機械40はクロックパルスをクロック入力Cに送信する。カウンタ42は、カウントダウン入力CDも有し、該カウンタは、パルスがCD入力で受信されるとその記憶されているカウントを1減分する。
【0046】
動作中、構成部品41〜48のそれぞれは、以下の情報を記憶するために状態機械40によって使用される。レジスタ42は、図3の命令31、32、及び33の第1ワードW0で発生する演算コードOPを記憶する。カウンタ41は、ワードカウントWCNTを記憶し、レジスタ43はビットカウントBCNTを記憶し、それは図3の命令のそれぞれの第1ワードW0で発生する。
【0047】
レジスタ44は、図3の命令31と33で発生するビットストリームTDIの1ワードを記憶する。レジスタ45は、図3の命令32と33で発生するビットストリームETDOの1つのワードを記憶する。そして、レジスタ46は、図3の命令32と33で発生するビットストリームMASKの1つのワードを記憶する。
【0048】
レジスタ47は、図3の命令の実行中にパターン生成器12によって内部で生成される追加のビットストリームTMSの1つのワードを記憶する。レジスタ48は、まもなく説明されるだろう方法でパターン生成器12とチップドライバ回路11の両方によって内部で使用される多様な制御ビットを記憶する汎用目的レジスタである。
【0049】
図3の命令の1つの実行の開始時に、パターン生成器12は、メモリ13から命令の第1ワードW0を読み取る。その読み取り動作を実行するために、状態機械40は、図1に示されるメモリ13のポート13aに移動するアドレス線路40aの集合でメモリアドレスMADDRを送信する。応じて、メモリ13のポート13aは、データ線路40bの集合上でのめ森データMDATAとしてアドレス指定されるワードを状態機械40に送信する。それから、状態機械40は、レジスタ42にOP符号を記憶するため、カウンタ41にワードカウントWCNTを記憶するため、及びレジスタ43にビットカウントBCNTを記憶するために3つのクロック線路40c〜40eでクロックパルスを送信する。
【0050】
それ以降、状態機械40は、レジスタ42内にあるOP符号を調べる。レジスタ42内のOP符号が、命令がTDIデータストリームを含む種類であることを示す場合には、そのデータストリームの第1ワードはメモリ13から読み出され、レジスタ44に記憶される。レジスタ42内のOP符号が、命令がETDOデータストリームを含む型であることを示す場合、そのデータストリームの第1ワードがメモリ13から読み出され、レジスタ45に記憶される。レジスタ42内のOP符号が、MASKデータストリームを含む型であることを示す場合には、MASKデータストリームの第1ワードはメモリ13から読み取られ、レジスタ46に記憶される。
【0051】
前記データストリームワードは、アドレス線路40aでメモリアドレスを連続して送信し、データ回線40bでメモリ13からアドレス指定されたワードを受信することによって、パターン生成器状態機械40を介して一度に1つ得られる。メモリ13からのそれぞれの受信されたワードは、クロック回線40f、40gまたは40hの1つでクロックパルスを送信することによって、適切なレジスタ44、45または46に記憶される。
【0052】
前記動作に続いて、状態機械40は、前述された追加のビットストリームTMSの1つのワードを内部で生成する。TMSビットストリームのその内部で生成されたワードは、信号線路40iの集合で送信され、それはクロック線路40jでクロックパルスによってTMSレジスタ47にロードされる。
【0053】
それ以降、状態機械40は、JDATAと呼ばれるデータ信号を搬送するデータ線路55の集合に、過去にロードされたレジスタ44〜47の出力を連続して渡すためにマルチプレクサ49を使用する。マルチプレクサ49を通してある特定のレジスタの出力を渡すために、状態機械40は、マルチプレクサ49につながる制御線路40kの集合で、SEL(i)と呼ばれる信号を生成し、制御する。
【0054】
レジスタの出力がJDATA線路55で送信される間、状態機械40は、アドレス線路56の集合でJADDRと呼ばれるアドレス信号も生成し、それらのアドレス信号がJDATA信号の目的地を決定する。JDATA信号及びJADDR信号が送信されているときを示すために、状態機械40は、クロック線路57上でJSTROSEと呼ばれるパルスを送信する。また、状態機械40は、クロック線路58でBUSCKと呼ばれる自由に動作するクロックを送信する。線路55〜58のすべてが、パターン生成器12を選択可能な数のチップドライバ回路11に接続する図1と図2に示されているバス12aをともに構成する。
【0055】
次に、図6に関して、チップドライバ回路11のそれぞれの中にある回路構成要素の詳細が説明されるだろう。その回路構成要素は、アドレスデコーダ60、5台のレジスタ61〜65のセット、4つの並列から直列へのシフトレジスタ66−69、シフト制御回路70、及び可変遅延線路71を含む。構成部品60〜71のすべては、図6に示されるように互いに相互接続される。
【0056】
レジスタ61〜65のそれぞれは、データ入力D、及びイネーブル入力E、及びクロック入力Cの集合を有する。データ入力Dは図5のパターン生成器からデータ信号JDATAを受信し、クロック入力Cはパターン生成器からJSTROBEクロックパルスを受信する。JDATA信号を特定のレジスタ61〜65の中に記憶するために、別個のイネーブル信号E1〜E6がそのレジスタのイネーブル入力Eに送信される。
【0057】
レジスタ61〜65用のイネーブル信号のすべては、信号回線60a−60eの集合でアドレス復号回路60によって生成される。イネーブル信号E1はレジスタ61に送信される。イネーブル信号E2はレジスタ62に送信される等である。これらのイネーブル信号E1〜E5は、JADDRアドレス線路56の特定のアドレスを復号することによってアドレスデコーダ60内に生成される。
【0058】
動作中、図5のパターン生成器状態機械40は、レジスタ62〜65が以下の情報を記憶するように、JADDR信号、JDATA信号及びJSTROBE信号を送信する。MASKビットストリームの1つのワードはレジスタ62に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ47から送信される。TDIビットストリームの1つのワードはレジスタ63に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ44から送信される。ETDOビットストリームの1つのワードは、レジスタ64に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ45から送信される。TMSビットストリームの1つのワードはレジスタ65に記憶され、そのワードはマルチプレクサ50を通って図5のレジスタ47から送信される。
【0059】
レジスタ62〜65のそれぞれは、並列/直列シフトレジスタ66−69の1つでデータ入力Dにそれぞれ結合される。それらの並列/直列シフトレジスタは、LOAD入力L及びCLOCK入力Cも有する。クロック入力CがSERIALCKクロック信号の立ち上がり縁を受信するときに入力LでのLOAD信号が「1」状態にある場合、データ入力信号のすべてが並列/直列シフトレジスタ66〜69に記憶される。それ以外の場合、SERIALCKクロック信号の立ち上がり縁が発生するときにLOAD信号が「0」状態にある場合、レジスタ66〜69のすべては、それらが記憶するデータの1ビットを外にシフトする(shift out)。
【0060】
LOAD信号及びSERIALCK信号の両方とも、シフト制御回路70によって生成され、それはTMSビットストリームのワードをレジスタ65の中にロードできるようにするイネーブル信号e5に応じて動作する。イネーブル信号E5によってTMSレジスタがロードされた後、シフト制御回路70は線路70aでSERIALCKクロック信号の生成を開始する。これは、クロック線路58からクロック線路70aにバス黒く信号BUSCKの動作をゲート制御することによって行われる。
【0061】
SERIALCKクロック信号の第1サイクルの場合、シフト制御回路70は、「1」としてのLOAD信号を直列/並列レジスタ66〜69のすべてに送信し、それによりレジスタ66〜69は、レジスタ62〜65に保持されるビットストリームの1つのワードを記憶する。それから、シフト制御回路70はLOAD信号を「0」として生成し、それにより並列/直列レジスタ66〜69のそれぞれに、それらが記憶していたビットストリームのワードを外にシフトさせる。
【0062】
レジスタ66〜69からのそれぞれのビットはSERIALCKクロックと同期してシフトされる。MASKビットストリームは信号線路66aにシフトされ、TDIビットストリームは信号線路67aにシフトされ、ETDOビットストリームは信号線路68aにシフトされ、TMSビットストリームは信号線路69aにシフトされる。このシフトは、シフトレジスタ66〜69のそれぞれが空にされるまでLOAD信号の「0」状態に応じて続行する。
【0063】
ビットストリームMASK、TDI、ETDO及びTMSのどれか1つが第2ワードの中に拡張すると、それらのワードは、前記シフトが発生している間に、パターン生成器状態機械40によってメモリ13から読み取られ、レジスタ62〜65の中にロードされる。そのケースでは、シフト制御回路70は、イネーブル信号E5が再びTMSレジスタ65に2度目に送信されたことを思い出すだろう。
【0064】
後に、シフトレジスタ66〜69が空になると、シフト制御回路70は、第2イネーブル信号E5が送信されたかどうかを確かめるためにチェックするだろう。送信されていた場合、シフト制御回路70は、再び、直列/並列レジスタ66〜69のすべてにLOAD信号を「1」として送信し、それによりレジスタ66〜69は、レジスタ62〜65に保持されるビットストリームの第2ワードを記憶するだろう。それから、シフト制御回路70は、並列/直列レジスタ66〜69が、それらが記憶しているビットストリームの第2のワードを外にシフトするまでLOAD信号を「0」として生成するだろう。
【0065】
前記ロード及びシフトは、メモリ13の中の命令について直列ビットストリームの終わりに達するまで続行する。それから、ビットストリームの最後のビットがレジスタ66〜69からシフトされると、シフト制御回路70はクロック線路70aでクロック信号SERIALCKを生成するのを停止する。
【0066】
前述された動作のすべてに加えて、図6のチップドライバ回路は、クロック線路71aでクロック信号TCKも生成する。このTCKクロック信号は、線路53上のBUSCK信号の遅延されたレプリカであり、それは可変遅延回路71によって生成される。可変遅延回路を通る遅延の量は、レジスタ61に記憶される信号線路61aの制御信号によって選択される。
【0067】
次に図7を参照すると、それは図3の各命令が図5のパターン生成器及び図6のチップドライバ回路によって実行される全体的なシーケンスを描く。当初、パターン生成器状態機械40は、それがそのメモリ13から命令の第1ワードW0を読み出す状態S1にある。それ以降、状態S2では、状態機械40が、それが実行している命令の種類を決定するためにレジスタ42内の演算コードを調べる。
【0068】
命令が第1種類31または第3種類33である場合、状態機械40はTDIビットストリームの1つのワードを読み取り、これは状態S3で発生する。そのワードは、状態機械40によってレジスタ44に記憶される。
【0069】
命令が第2種類32または第3種類33である場合、状態機械40はETDOビットストリームの1つのワードを読み取り、これは状態S4で発生する。ETDOビットストリームのそのワードはレジスタ45に記憶される。
【0070】
また、命令が第2種類32または第3種類33である場合には、状態機械40は、MASKビットストリームの1つのワードを読み取り、これは状態S5で発生する。MASKビットストリームのそのワードは、状態機械40によってレジスタ46に記憶される。
【0071】
それ以降、状態機械40は、TMSビットストリームの1つのワードを内部で生成し、これが状態S6で発生する。TMSビットストリームのそのワードは、状態機械40によってレジスタ47に記憶される。
【0072】
次に状態S7では、状態機械40が、それが第1種類命令31または第3種類命令33を実行している場合には、TDIビットストリームの1つのワードを一斉送信する。TDIビットストリームのこのワードは、レジスタ44からマルチプレクサ49を通って、パターン生成器に接続される各チップドライバ回路のレジスタ63の中に送信される。
【0073】
次に状態S8では、状態機械40が、それが第2種類命令32または第3種類命令33を実行している場合には、ETDOビットストリームの1つのワードを一斉送信する。ETDOビットストリームのこのワードは、レジスタ45からマルチプレクサ49を通って、パターン生成器に接続される各チップドライバ回路のレジスタ64の中に送信される。
【0074】
次に状態S9では、状態機械40は、それが第2種類命令32または第3種類命令33を実行している場合には、MASKビットストリームの1つのワードを一斉送信する。MASKビットストリームのこのワードは、マルチプレクサ49を通ってレジスタ46から、パターン生成機に接続される各チップドライバ回路のレジスタ62の中に送信される。
【0075】
次に状態S10では、状態機械40がTMSビットストリームの1つのワードを一斉送信する。TMSビットストリームのこのワードはレジスタ47からマルチプレクサ49を通って、パターン生成器に接続される各チップドライバ回路のレジスタ65の中に送信される。
【0076】
それから状態S11では、状態機械40は、カウンタ41内のワードカウントWCNTを1減ビンし、結果がゼロであるかどうかを確かめるためにチェックする。結果がゼロではない場合には、状態S3〜S10での動作のすべてが繰り返される。それ以外の場合、結果がゼロである場合には、状態機械40は状態S1になることによって次の命令の実行を開始する。
【0077】
状態機械40が状態S10のTMSビットストリームのワードを一斉送信するたびに、そのイベントは、パターン生成器に接続される各チップドライバ回路内のシフト制御回路70によって思い出される。それから並列/直列シフトレジスタ66〜69が空である場合には、それらは保持レジスタ62〜65の内容をロードされる。これは、チップドライバ回路が状態S21にあるときに発生する。
【0078】
それ以降、並列/直列シフトレジスタ66〜69のコンテンツが信号線路66a〜69aにシフトされる。それは、チップドライバ回路が状態S22にあるときに発生する。それから、シフトレジスタ66〜69の最後のビットが外にシフトされているときには、シフト制御回路70は、レジスタ65がTMSビットストリームの別のワードをロードされたかどうかを確かめるためにチェックする。ロードされている場合、状態S21とS22のシフト動作が繰り返される。
【0079】
TDI、ETD0、MASK及びTMSのビットストリームの長さが数ワードであるときには、チップドライバ回路11内の状態S21とS22がパターン生成器12の状態S3〜S11と同時に発生する。その同時動作のために、チップドライバ回路11及びパターン生成機12は、チップドライバ回路が、パターン生成器がビットストリームの次のワードを読み取り、一斉送信する間にビットストリームの1つのワードからビットをシフトする多段パイプラインとしての役割を果たす。
【0080】
また、パターン生成器状態機械40が次の命令の実行を開始するとき、チップドライバ回路11は、状態S22で、並列/直列シフトレジスタ66〜69に残るあらゆるビットをシフトするために状態S22で続行する。その同時動作のため、チップドライバ回路11およびパターン生成器12は、再び、チップドライバ回路が、パターン生成器が次の命令のワードW0を読み取り、復号している間に、1つの命令のビットストリーム内でビットをシフトする多段パイプラインとしての役割を果たす。
【0081】
ここで図8を見ると、それは、各チップドライバ回路が試験される集積回路チップとどのようにして相互結合されるのかに関する追加の詳細を示す。図8では、参照番号10は、図1と図2に示される同じチップアセンブリを特定し、参照番号10aは、試験されなければならないアセンブリ10の中でチップを特定する。
【0082】
アセンブリ10の中で試験されなければならない各チップ10aについて、1台の受信機85を加えた4台の送信機81〜84の別個の集合がチップドライバ回路11で提供される。各送信機81は、線路71aから別個のチップ10aにクロック信号TCKを送信する。各送信機82はビットストリームTDIを線路67aから別個のチップ10aに送信する。各送信機83は、線路69aから別個のチップ10aにビットストリームTMSを送信する。そして、各送信機84は、図9と図10とともに後に後述されるだろうそれぞれの高周波クロックHFCK(i)を、別個のチップ10aに送信する。
【0083】
送信機81〜84から受信される信号に応じて、アセンブリ10の中のそれぞれのチップ10aが、TDOと呼ばれる別個の出力ビットストリームを生成する。そのTDOビットストリームは、各チップ10aから、チップドライバ回路上の別個の受信機85に送信される。受信機85から、TD0ビットストリームのすべてが、図8に図示されるチップドライバ回路の残りの構成部品90〜98によって並列で処理される。
【0084】
図8の構成部品90は、排他的論理和ゲートであり、構成部品91は論理積ゲートであり、構成部品92はフリップフロップである。構成部品90〜92の別個の集合が受信機85のそれぞれに提供される。図8の構成部品93はマルチプレクサであり、構成部品94はデコーダ回路であり、構成部品95は可変遅延回路であり、構成部品96はレジスタであり、構成部品97はデコーダ回路であり、構成部品98はレジスタであり、構成部品99はデコーダ回路である。
【0085】
動作中、ビットストリームETDO、MASKおよびTCKは可変遅延回路95を通って送信され、それによりそれぞれDETDO、DMASK、およびDTCKと呼ばれる3つの対応する遅延されたビットストリームを生成する。可変遅延回路95を通る遅延の量は、レジスタ96の出力によって選択され、その遅延が、TDOビットストリームを生成する各チップ10a内で発生する遅延を補償する。ある特定の遅延を選択するために、レジスタ96は、デコーダ回路97が所定のJADRアドレスを検出するときにJDATA信号をロードされる。
【0086】
遅延回路95から、遅延ビットストリームDETDOは、それが受信機85のすべてから生じるTDOビットストリームに比較される排他的論理和ゲート90のすべてに送信される。DETDOビットストリーム内の任意のビットとTDO(i)ビットストリーム内の対応するビットの間でmiscompareが発生すると、miscompareが発生する排他的論理和ゲート90は「1」状態で出力信号ERA(I)を生成するだろう。
【0087】
排他的論理和ゲート90からのエラー信号ERA(i)のそれぞれが、論理積ゲート91の別個の1つに送信され、それらの論理積ゲートは、その他の入力信号も受信する。一方のこのような入力信号は遅延されたビットストリームDMASKであり、他方の入力信号はレジスタ98からの別個のイネーブル信号EN(I)である。エラー信号ERA(i)がTDO(i)ビットストリーム内のある特定のビットについて「1」であり、DMASK信号の対応するビットも「1」であり、イネーブル信号EN(i)も「1」である場合には、I番目の論理積ゲートからの出力信号ERB(I)は「1」である。
【0088】
ビットストリームTDO(i)内の任意の1つの特定のビットでのmiscompareを無視するために、DMASビットストリームの対応するビットは「0」に設定される。また、ビットストリームTDO(I)全体が、対応するイネーブル信号EN(i)を「0」に設定することによって無視することができる。
【0089】
論理積ゲート91の任意の1つからのエラー信号ERB(i)が「1」になると、それにより、対応するフリップフロップ92が設定されることになる。設定されるようになる各フリップフロップ92は、それ以降、それがパターン生成器12によって読み取られ、リセットされるまで設定されたままとなるだろう。
【0090】
エラーフリップフロップ92を読み取るために、パターン生成器12はある特定のJADRアドレスをデコーダ回路94に送信し、応じてデコーダ回路94が、マルチプレクサ93を通してJDATA線路50上にフリップフロップ9のすべてからのエラー信号を渡す出力94aで信号を生成する。それからパターン生成器12は、デコーダ回路94に、フリップフロップ92のすべてをリセットする出力94bで信号を生成させる。
【0091】
次に図9に関して、チップドライバ回路のそれぞれの中に含まれる複数の追加回路構成部品100〜109が説明されるだろう。これらの構成部品100〜109のすべては、試験されているチップ10aごとに別個の高周波クロック信号HFCK(i)を生成するために相互作用する。
【0092】
図9では、構成部品100は自由継続高周波発振器である。構成部品101はデコーダ回路である。構成部品102はレジスタであり、構成部品103は、選択可能な整数Nで除算する割り算器回路である。構成部品104は順次状態機械である。構成部品105は、状態機械104のためにカウントを保持するカウンタ回路であり、構成部品106は、状態機械104について制御信号を保持するメモリである。構成部品107はフリップフロップである。構成部品108は論理和ゲートであり、構成部品109は送信機である。構成部品107〜109の別個の集合110(i)は、生成される高周波クロック信号HFCK(i)ごとに提供される。
【0093】
動作中、発振器100は、単一高周波で自由継続クロックFRCK1を生成する。そのクロック信号FRCK1は、それが選択可能な整数N分、周波数で削減される割り算器回路103に送信される。それから、割り算器103からの出力クロックFRCK2が、回路107〜109の各集合10(i)に送信される。
【0094】
回路110(i)の各集合は、自由継続クロックFRCK2の選択可能なサイクルを渡すことによって、高周波クロック信号HFCK(i)を生成する。渡されるそれらのサイクルは、2つの制御信号START(i)とSTOP(i)によって選択され、それらは順次状態機械104によって生成される。
【0095】
信号STOP(i)が「1」として生成されるとき、フリップフロップ107は自由継続クロック信号FRCk2と同期してセットする。フリップフロップ107のそのセット状態により、論理積ゲート108の出力は絶えず「1」を生成する。そしてこのようにして、高周波クロック信号HFCK(i)が「1」の状態で停止されるだろう。
【0096】
フリップフロップ107をリセットするために、状態機械104がSTOP(i)信号を「0」として生成し、それはSTART(i)信号を「1」として生成する。フリップフロップのそのリセット状態が、論理積ゲート108にクロック信号FRCK2を渡させ、論理積ゲート108の出力から、高周波クロックFRCK2は、それがクロック信号HFCK(i)になる送信機109を通して渡す。
【0097】
回路110(i)の集合ごとに制御信号STOP(i)とSTART(i)を生成するために、状態機械104は、制御メモリ106に記憶される多様な制御ビットを読み取る。それらの制御ビットの例は、図10の「1」と「0」に示される。制御ビットの1つの集合を読み取るために、状態機械104は、アドレス線路104aのアドレスをメモリ106に送信し、応じてメモリが制御ビットのアドレス指定された集合を、信号線路104b上の状態機械104に送り返す。
【0098】
図10は、制御ビットの各集合がビットB1〜B16として特定される16個のビットから成り立つ例を示す。第1の14個のビットB1〜B14のそれぞれが、回路110(i)のある特定の回路の動作を制御する。ビットB1は回路110(1)を制御する。ビットB2は回路110(2)を制御する等である。残りのビットB15とB16は、状態機械104をまたは自由継続モードのどちらかで動作させるモード制御ビットである。
【0099】
状態機械104がJDATA線路上のある特定のメモリアドレスとともにデコーダ101からSTARTコマンドを送信されると、それはそのアドレスにあるメモリ106から制御ビットの集合を読み取るだろう。状態機械104が、ビットB15が「1」である制御ビットの集合を読み取る場合には、状態機械がシーケンスモードで動作する。そのモードでは、状態機械104は、それがメモリ106に送信するアドレスを連続して増分し、応答して状態機械が制御信号のアドレス指定された集合を受信する。このシーケンス動作モードは、制御ビットの集合が読み取られるまで続行し、そこではビットB16は「1」であり、それからシーケンス動作モードが停止する。
【0100】
シーケンスモードで読み取られる制御信号の集合ごとに、状態機械104は、制御ビットB1〜B14を調べる。「1」であるビットB1〜B14のそれぞれが状態機械104に、回路110(i)が、カウンタ105によって指定されるサイクルの数、クロックFRCK2を渡すように、STOP(i)信号およびSTART(I)信号を生成させる。
【0101】
図10では、アドレス「A」によって読み取られる制御ビットの集合がビットB1〜B4を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路110(1)〜110(4)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0102】
次に、アドレス「A+1」によって読み取られる制御ビットの集合は、ビットB5〜B7を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路105(5)〜110(7)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0103】
次に、アドレス「A+2」によって読み取られる制御ビットの集合は、ビットB8〜B11を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路110(8)〜110(1)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0104】
最後に、アドレス「A+3」によって読み取られる制御ビットの集合は、ビットB12〜B14を「1」に設定させる。このようにして、制御ビットのその集合に応じて、状態機械104は、回路110(12)〜110(4)のそれぞれに、カウンタ105によって指定されるサイクルの数、クロック信号FRCK2を渡させる。
【0105】
比較によって、状態機械104がビットB15が「0」である制御ビットの集合を読み取る場合には、状態機械は自由継続モードで動作する。そのモードでは、状態機械104は、それがメモリ106に送信するアドレスを増分しないが、代わりに、状態機械は、それが読み取った制御信号の1つの集合だけで連続して動作する。
【0106】
制御信号のその単一の集合を使用して、状態機械104は、再び制御ビットB1〜B14を調べる。「1」であるビットB1〜B14のそれぞれが、回路110(i)がクロックFRCK2を連続して渡すように、状態機械104にSTOP(i)信号およびSTART(i)信号を生成させる。この運転の自由継続モードを終了する場合には、状態機械104は、デコーダ101から停止コマンドを送信される必要があり、そのコマンドは、デコーダ101がある特定のJADRアドレスを受け取るときに送信される。
【0107】
図10では、アドレス「A+4」によって読み取られる制御ビットの集合はビットB15を「0」に設定させ、それにより状態機械104が自由継続モードに入る。また、アドレス「A+4」にある制御ビットの集合では、ビットB1〜B14のすべてが「1」に設定されるため、応じて、状態機械104は、回路110(1)〜110(14)のそれぞれに、STOPコマンドが受け取られるまでクロック信号FRCK2を連続して渡させる。
【0108】
図10においても同様に、アドレス「A+5」によって読み取られる制御ビットの集合は、B15を「0」に設定させ、それにより状態機械104は自由継続モードに入る。しかしながら、アドレス「A+5」での制御ビットの集合では、ビットB2だけが「1」に設定されるため、応じて、状態機械104は回路110(2)だけにクロック信号FRCK2を渡させるだろう。
【0109】
図9および図10の回路構成要素で達成される1つの特定の特徴とは、それがチップ汗名振10の中のチップ10aを1つの集合として同時に、あるいは選択可能な部分集合で連続的に試験できるようにする点である。この特徴は、試験されているチップ10aが、それらが高周波クロック信号HFCK(i)を受信するときに大量の電力を消散するが、それらが高周波クロック信号を受信しないときには実質的にはより少ない電力を消散する型であるときに望ましい。このようなチップは、例えばCMOSマイクロプロセッサチップおよびCMOSメモリチップを含む。高周波クロック信号HFCK(i)を同時に受信するチップ10aの数を制限することによって、チップ10aのすべてで消散される電力の総量は、チップのすべてが高周波クロック信号を受信したならば、それ以外の場合に超えられるだろう任意の所定の電力制限以下に保つことができる。
【0110】
図9と図10の回路構成要素で達成される別の特定の特徴とは、それがビットの一意のストリームをチップ10aのそれぞれに別個に書き込むことができるようにするという点である。それは、攻守はクロック信号HFCK(i)を、一度に1つづつチップ10aのそれぞれに送信させるメモリ106内に制御ビットを記憶することによって達成される。それから、ある特定的なチップが高周波クロック信号HFCK(i)を受信しているときには、そのチップに書き込まれなければならないデータは、チップ10aのすべてに対するTDIビットストリームとして送信される。この特徴は、シリアルナンバーなどの一定の一意の情報を、試験されているそれぞれのチップ10aに買い込むことが必要なときに望ましい。
【0111】
ここで図11を見ると、それは、図3の前述された命令31、32、33とともに、メモリ13内のチップ試験プログラムに含むことができる3つの追加の命令34、35および36を示す。命令34は、演算コードOP7、JADRフィールド34a、およびJDATAフィールド34bを含む単一ワードW0だけから成り立つ内部制御命令である。命令34がパターン生成器12によって実行されるとき、状態機械40は、JADR信号線路56の上にJADRフィールド34aを送信し、それはJDATA信号線路55の上にJDATAフィールド34bを送信する。
【0112】
命令34は、図6のレジスタ61をロードするために、図10のレジスタ96と98をロードするために、及び図9のレジスタ102をロードするために使用できる。また、命令34は、図8のデコーダ94にアドレスを送信するため、図9のカウンタにカウントを送信するため、制御ビットの各集合を106での制御メモリに書き込むために使用できる。また、命令34は、デコーダ101から状態機械104にSTARTコマンドとSTOPコマンドを送信するために使用することもできる。
【0113】
命令35は、また単一のワードW0だけから成り立つ分岐命令である。命令35は、演算コードOP8、試験条件フィールド35a、及びジャンプアドレスフィールド35bを含む。命令35がパターン生成器12によって実行されると、状態機械40は、試験条件フィールド35aによって指定される条件を試験する。その試験された条件が真である場合には、メモリ13から実行される次の命令は、フィールド35bでジャンプアドレスを差し引いた分岐命令35のアドレスで発生する。
【0114】
命令36は、やはり単一ワードW0から成り立つメモリ書き込み命令である。命令36は、メモリ書き込み命令としてそれを特定する演算コードOP9を含み、それはメモリアドレスフィールド36aを含む。命令36がパターン生成器12によって実行されると、エラー信号が図8のマルチプレクサ93から読み取られ、メモリアドレスフィールド36aでメモリ13の中に書き込まれる。
【0115】
集積回路チップを試験するベースシステムの1つの好ましい実施態様がここで詳細に説明された。ただし、さらに、多様な変更及び修正をこの実施態様の詳細に加えることができる。
【0116】
例えば、図2は、チップ試験システムが、合計14のスロットを有するラック20に収納される1つの例だけを示す。しかし、改良策として、ラック20は任意の数のスロットを有することができ、複数のラックがある場合がある。また、各ラックのスロットは、そのそれぞれのメモリ13とともに、チップアセンブリ10、ドライバ回路11、及びパターン生成器12の任意の組み合わせで充填することができる。
【0117】
同様に、図1は、各チップアセンブリ10が、試験されなければならない集積回路チップ10aのうちの4つだけを保持する1つの例だけを示す。しかし、改良策として、各チップアセンブリ10は、任意の所望される数の集積回路チップ10aを保持することができる。
【0118】
また、別の改良策として、図1に示されるモジュール11、12、13、及び14のそれぞれは、任意の種類の回路構成要素から構築できる。例えば、チップドライバ回路11内の回路構成要素のすべて、及び(図5、図6、図8、図9、及び図10に詳しく図示されるように)パターン生成器12内の回路構成要素のすべては、TTL回路、ECL回路、MOS回路、及びCMOS回路から構築することができる。同様に、図1の各メモリモジュール13は、フリップフロップに、またはコンデンサに、または磁気記憶媒体、または光学記憶媒体にデータビットを記憶する、任意の種類のメモリセルから構築することができる。
【0119】
同様に、示されているチップ試験システム内にある順次制御回路のそれぞれは、任意の種類の内部構造を有することができる。それらの順次制御回路は、図5のパターン生成器状態機械40、図6のシフト制御回路70、及び図9のクロックシーケンス状態機械104を含む。パターン生成器状態機械40の内部構造は、それが図7の状態S1〜S11に従って動作する限り適切である。チップ制御回路構成要素70の内部構造は、それが図7の状態S21〜S23に従って動作する限り適切である。そして、図9のクロックシーケンス状態機械104の内部構造は、それが、図10とともに示されるように、シーケンスモード及び自動継続モードで動作するかぎり適切である。
【0120】
また、別の改良策として、各メモリモジュール13からワードとして読み取られるビットの数は任意の所定の数である。図3は、メモリモジュール13内の各ワードが「X」個のビットから成り立つことを示す。適切には、Xは、16ビット、32ビット、48ビット、64ビット等バイトの整数である。
【0121】
さらに、別の改良策として、試験されるチップ10aをある特定の状態にするために生成される各TMSビットストリームは、ビットの任意の事前に定義された系列である場合がある。各ビットストリームがどのようである必要があるのかは、チップ10aの内部構造によって決定される。1つの特定的な例として、TMSビットストリームは、表1Aに後述されるように事前に定義し、生成することができる。
【0122】
表1A
TMSヘッダ ヘッダに応えたチップ10aの状態
010000 命令レジスタを読み取る。
011000 命令レジスタに書き込む。
011100 データレジスタを読み取る。
011110 データレジスタに書き込む。
【0123】
表1Aの各TMSヘッダの後には、命令レジスタ/データレジスタから読み取られるTDOビットの数、またはそれらのレジスタに書き込まれるTDIビットの数に等しい、「1」ビットの系列が続く。「1」ビットのその系列の後には、次のTMSヘッダが開始するまで続行する「0」ビットの系列が後に続く。
【0124】
別の例として、各TMSビットストリームを、任意の所望される規格に従って事前に定義し、生成することができる。このような規格は、参照してここに組み込まれるIEEE 1149.1境界走査規格である。
【0125】
さらに、図12は、それによってビットストリームTDI、ETDO、MASK及びTMSの4つすべてがパターン生成器によって送信され、命令37内で明示的に指定される依然として別の改良策を示す。この命令37は、第1ワードW0のOP10という演算コードによって特定される。命令37は、送信されなければならないTMSビットストリームを指定する1つの新しいTMSフィールドを含む。それ以外のフィールドBCNT、WCNT、TDI、ETDO及びMASKのすべては、図3の命令33について前述された対応するフィールドと同じである。
【0126】
命令37の中でTMSビットストリームを明示的に定義することができることによって、単一パターン生成器12は、さまざまなTMSビットストリームが同じ状態になることを必要とするさまざまな種類のチップを連続して試験することができる。しかしながら、試験されているチップが、すべて同じTMS信号シーケンスを使用する場合には、命令33はメモリ空間を25%少なく占有するため、命令33が命令37より好ましい。
【0127】
別の改良策として、ビットストリームTDI、ETDO、及びMASKの任意の1つを、その命令から削除することができる。TDIビットストリームが削除される場合には、結果は、TMSビットストリームを所望されるように指定できるという点を除き、前述された図3の命令32に類似する。ETDOビットストリーム及びMASKビットストリームが命令37から削除されると、結果は、TMSビットストリームが再び所望されるように指定できるという点を除き、前述された図3の命令31に類似する。
【0128】
ここでは本発明に従って、ここではアルゴリズムパターン生成器(APG)と呼ばれる1つまたは複数の追加のモジュールが、図1の前述されたチップ試験システムに組み込まれる、修正されたシステムが説明されるだろう。この修正されたシステムは図13に示される。そこで、図1のモジュール10、11及び14が繰り返され、モジュール12と13がモジュール12’と13’に修正され、新規に追加されたAPGモジュールが参照番号200によって特定される。
【0129】
図13は、別個のAPGモジュール200が、前述されたモジュール12’のあらゆるモジュールに別個のインタフェース201を介して結合される。しかしながら、代わりに、別個のAPGモジュール200が、その別個のインタフェース201を介して、モジュール12’の任意の部分集合に結合されてよい。例えば、モジュール12’のただ1つだけをAPGモジュール200に結合してよい。
【0130】
動作中、各APGモジュール200は、チップアセンブリ10内にあるチップ10aを試験する、TDI試験信号、ETDO試験信号、及びMASK試験信号を内部で生成する。それらの試験信号を内部で生成するには、APGモジュール200が、動作の複雑なシーケンスを実行し、それらの動作はメモリ13’のAPG命令によって指定される。これらのAPG命令、及びAPGモジュール200内でそれらを実行する回路構成要素は、図13〜図22のすべてとともにここに詳細に説明されるだろう。
【0131】
TDI試験信号、ETDO試験信号及びMASK試験信号をAPGモジュール200内で内部で生成することによって達成される1つの特定の恩恵とは、メモリ13’で必要とされる記憶の量が大幅に削減されるという点である。例えば、TDI試験信号、ETDO試験信号、及びMASK試験信号が合計10億ビットを含む場合に、APGモジュール200は、試験ビットのすべてを生成するためのAPG命令を記憶するために、メモリ13’内で1000ビット未満の記憶を必要とする可能性がある。比べると、試験ビットのすべてがメモリ13’で記憶される場合には、10億ビットの記憶が必要とされるだろう。
【0132】
他方、TDI試験信号、ETDO試験信号及びMASK試験信号のビット総数が減少するにつれ、図1〜図12の前述された回路構成要素は、それらの試験信号をチップ10aに提示するためのさらに経済的な手段となる傾向がある。その結果、図13の修正されたシステムは2つの運転モードを有する。第1モードでは、モジュール12’が、図1〜図12に関連して前述されたように、試験信号TDI、ETDO、及びMASKをメモリ13’から読み取り、それらを直列ビットストリームでチップ10aに送信する。第2の運転モードでは、モジュール12’は、メモリ13’からAPG命令を読み取り、それらを実行のためにAPGモジュール200に渡す。それらのAPG命令の実行中、APGモジュール200は、TDIビットストリーム、ETDOビットストリーム及びMASKビットストリームのワードを連続して生成し、それはそれらをモジュール12’に送信する。それから、モジュール12’の中で、試験信号のワードが、チップ10aに送信される直列ビットストリームに変換される。
【0133】
ここで図14aを見ると、APGモジュール200の1つの好ましい内部構造が説明されるだろう。この特定の構造によって、APGモジュール200は、3段パイプラインから構成され、それらの段は参照番号210、220及び230で特定される。第1段210は、算術論理段(ALS)である。第2段220はスクランブラ段であり、第3段230がフォーマッタ段である。これらの3つの段210、220及び230は、制御装置240の制御下で動作する。
【0134】
動作中、ALS段210及びスクランブラ段220及びフォーマッタ段230は、同時に実行し、その同時動作中、パイプラインの各段は、データの異なる集合でさまざまな動作を実行する。これらの同時動作が発生できるようにするために、パイプラインの各段には、入力レジスタの独自の集合及び出力レジスタの独自の集合が提供される。
【0135】
ALU段の入力レジスタのすべては、参照番号210aによって特定される。これらの入力レジスタ210aは3つの集合に区分され、それぞれの集合には4台のレジスタがある。「X」集合は、レジスタXA、XB、XC、及びXDから成り立つ。「Y」集合は、レジスタYA、YB、YC及びYDから成り立ち、「Z」集合は、レジスタZA、ZB、ZC及びZDから成り立つ。
【0136】
その入力レジスタ210aのコンテンツで開始して、ALU段は、多様な算術演算及び論理演算を実行し、その出力レジスタ210aでそれらの演算の結果を記憶する。それらの出力レジスタは、それぞれ5台のレジスタから成る2つの集合に区分される。第1集合は、レジスタX1A’、Y1A’、Z1A’、X1D’、及びY1D’から成り立ち、第2集合はレジスタX2A’、Y2A’、Z2A’、X2D’、及びY2D’から成り立つ。
【0137】
同様に、参照番号220aは、スクランブラ段200aの入力レジスタのすべてを特定する。ALU段の出力レジスタ210bごとのスクランブラ段では別個の入力レジスタが提供される。例えば、入力レジスタX1Aは、出力レジスタX1A’に対応し、入力レジスタY1Aは、出力レジスタY1A’に対応する等である。
【0138】
APGパイプラインの動作中の一定のときに、ALU段210からの出力レジスタ210bのすべての内容が、スクランブラ段220の対応する入力レジスタ220aに転送される。それから、スクランブラ段220は、その入力レジスタの内容に対し多様なスクランブル動作を実行し、それはその出力レジスタ220bに結果を記憶する。それらの出力レジスタは、それぞれ3台のレジスタから成る2つの集合に区分される。第1集合は、レジスタX1’、Y1’、及びD1’から成り立ち、第2集合は、レジスタX2’、Y2’及びD2’から成り立つ。
【0139】
同様に、フォーマッタ段230の入力レジスタのすべては参照番号230aで特定され、対応する入力レジスタが、スクランブラ段の各出力レジスタに提供される。例えば、入力レジスタX1は、出力レジスタX1’に対応する。入力レジスタY1は、出力レジスタY1’に対応する等である。
【0140】
一定のときに、スクランブラ段からの出力レジスタ220bの内容は、フォーマッタ段の入力レジスタ230aに転送される。それが発生した後、フォーマッタ段は、その入力レジスタの内容に対して多様な動作を実行し、それが試験信号TDI、ETDO、及びMASKのそれぞれの複数のワードを生成する。これらの試験信号は、フォーマッタ出力レジスタ230bに、一度に1ワード記憶される。これらの出力レジスタ230bには、それらがAPGで内部で生成されるTDI信号、ETDO信号及びMASK信号を保持することを示す目的で、ATDI、AETDO、及びAMASKとラベルが付けられる。
【0141】
パイプライン段210、220及び230のそれぞれで実行される動作のすべては、制御装置240から段のそれぞれに送信される制御信号のそれぞれの集合によって制御される。算術論理段210に送信される制御信号は、導体211の集合で発生する。スクランブラ段220に送信される制御信号は、導体221の集合で発生し、フォーマッタ段230に送信される制御信号は、導体213の集合で発生する。
【0142】
パイプライン段210、220、及び230のそれぞれは、制御装置240に応答信号も送り返す。算術論理段210によって送信される応答信号は、導体212の集合で発生する。スクランブラ段220によって送信される応答信号は、導体222の集合で発生し、フォーマッタ段230によって送信される応答信号は、導体232の集合で発生する。
【0143】
また、制御装置240は、図13’のモジュール12’と対話するためにAPGインタフェース201を活用し、インタフェース接続の詳細は、図14Aの一番上の部分及び図14Bの下の左部分で図示される。図14Bは、前述された図5に類似する。しかし、図14Bは、APGインタフェース201とともに動作する4つの追加構成部品250〜253も含み、それは追加される構成部品と対話する修正された状態機械40’を含む。
【0144】
構成部品250は、図13のメモリからAPG命令を受信するレジスタであり、それらの命令は、レジスタ250からAPG制御回路240に、導体201aの集合で送信される。構成部品251は、導体201b、201c、201d、及び40bの4つの集合から4つの異なる入力を受信する4x1のマルチプレクサである。導体201bは、フォーマッタ出力レジスタATDIから発信するTDI試験信号のワードを搬送する。導体201cは、フォーマッタ出力レジスタAETDOから発信するETDO試験信号のワードを搬送し、導体201dは、フォーマッタ出力レジスタAMASKから発信するMASK信号のワードを搬送する。構成部品252と253は、図21と図22に関連して後述されるそれぞれのカウンタである。
【0145】
APGがTDI試験信号、ETDO試験信号、MASK試験信号を生成しているとき、それらの信号は、マルチプレクサ251を通して渡され、レジスタ44、45及び46の中にロードされる。逆に、TDI試験信号、ETDO試験信号及びMASK試験信号がメモリ13’から読み出されているとき、それらの試験信号は、(図5に関連して前述されたように)導体40bからマルチプレクサ251を通ってレジスタ44、45及び46の中に渡される。
【0146】
導体201eと201fの2つのその他の集合も、APGインタフェース201に含まれる。導体201eでは、田追うなタイミング信号及び制御信号が、図14Bの状態機械40’から図14AのAPG制御回路240に送信される。例えば、それらの制御信号は、いつAPG命令が導体201aに存在するのかを制御回路240に告げる。
【0147】
導体201fでは、多様なタイミング信号及び制御信号が、図14AのAPG制御回路240から図14bの状態機械40’に送信される。例えば、それらの制御信号は、いつフォーマッタ段230が導体201b、201c、及び201dで、TDI試験信号、ETDO試験信号及びMASK試験信号のワードを生成したのかを状態機械40’に告げる。
【0148】
ここで図15A〜図15Bに関して、ALU段210の好ましい実施態様が説明されるだろう。この特定の実施態様は、参照番号210a〜210pによって図15A〜図15Bに特定される構成部品のすべてから構成され、それらの構成部品のそれぞれが、表2に後述される。
【0149】
表2
構成部品 説明
210a
図15Aの中の構成部品210aは、ALU段200用の入力レジスタのすべてから成り立つ。それらは、「X」集合XA、XB、XC及びXDと「Y」集合YA、YB、YC及びYDと「Z」集合ZA、ZB、ZC及びZDに区分される。これらの入力レジスタは、図14Aに図示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力D及び出力Qを有する。
【0150】
210b
図15Bの中の構成部品210bは、ALU段200用の出力レジスタのすべてから成り立つ。それらは、第1集合、X1A’、Y1A’、Z1A’、X1D’、Y1D’、及び第2集合X2A’、Y2A’、Z2A’、X2D’、Y2D’に区分される。これらの出力レジスタは、図14Aに図示されるのと同じ出力レジスタである。各レジスタは、入力D及び出力Qを有する。
【0151】
210c
図15Aの中の構成部品210cは、入力レジスタ用の読み書き制御回路である。この制御回路により、入力レジスタ210aの内容は、Aバス、Bバス、Cバス、及びDバスと呼ばれる4つのバスに選択的に読み取られる。また、この制御回路によって、INバスと呼ばれるバス上のデータは選択的に入力レジスタ210aに書き込まれる。読み書きされる特定のレジスタは、集合211の中の導体211aで発生する制御信号OP21、XYZ及びDESTによって、及び集合211の中の導体211bで発生する制御信号OP22、XYZ及びABCDによって決定される。
【0152】
210d
図15Bの中の構成部品210dは、レジスタX1A’、X2A’、Y1A’、Y2A’、Z1A’及びZ2A’から成り立つ出力レジスタ210bの部分集合用の書き込み制御回路である。1つのレジスタが、集合211の中にある導体211cのグループで発生する制御信号ADRに応じて選択され、書き込まれる。
【0153】
210e
図15Bの中の構成部品210eは、レジスタX1D’、X2D’、Y1D’、及びY2D’から成り立つ出力レジスタ210bの部分集合書き込み制御回路である。1つのレジスタが、集合211の中にある構成個211dのグループで発生する制御信号DDRに応じて選択され、書き込まれる。
【0154】
210f
図15Aの中の構成部品210fは、6かける1のマルチプレクサである。このマルチプレクサ210fに対する入力は、すべての0の集合とすべての1の集合だけではなくAバス、Bバス、Cバス及びDバスの上に読み取られる入力レジスタ210aの特定の集合の内容である。このマルチプレクサ210fは、j−バスと呼ばれているバスにその入力の1つを選択的に渡し、それらの信号は、集合211の中にある導体211eのグループで発生する。
【0155】
210g
図15Aの中の構成部品210gは、6かける1のマルチプレクサである。このマルチプレクサ210gに対する入力は、マルチプレクサ210fに対する入力と同じである。このマルチプレクサ21fは、制御信号KSELに応じてKバスと呼ばれているバスにその入力の1つを渡し、それらの信号は、集合211の中にある導体211fのグループで発生する。
【0156】
210h
図15Aの中の構成部品210hは、以下の演算を選択的に実行する実用可能の回路である。つまり、繰り上がった数を含む加算、繰り上がった数を含まない加算、借りてくる数(borrow)を含む減算、借りてくる数を含まない減算、増分、減分、排他的論理和、排他的否定和、及び論理和、否定、及び無操作命令である。それらの演算は、Jバス及びKバスによって搬送される信号で実行される。構成部品210hによって実行されるそれぞれの特定の演算は、集合211の中にある導体211gのグループで発生する制御信号ALOPによって選択される。
【0157】
210i
図15Aの中の構成部品210iは、2かける1のマルチプレクサである。マルチプレクサ210iに対する入力の1つは、実用可能な回路210hから生じ、マルチプレクサ210iに対する第2入力は境界チェック回路210kから生じる。どの特定の入力がマルチプレクサ出力に転送されるようになるのかは、境界チェック回路210kで内部的に生成されるCROSSED_Bと呼ばれる制御信号によって決定される。
【0158】
210j
図15Aの中の構成部品210jは、マルチプレクサ210iからの出力を選択的に回転する回転体回路である。その選択的な回転の結果は、Rバスと呼ばれるバスに送信される。回転体回路210jによって実行される回転の種類は、集合211の中にある導体211hのグループで発生する制御信号ROTLによって選択される。
【0159】
210k
図15Aの中の構成部品210kは、境界チェック回路である。この回路は、図15Fに詳細に図示される内部構造を有し、境界チェック回路210kの構造と動作はその図と関連してここに説明される。
【0160】
210L
図15Aの中の構成部品210Lは、2かける1のマルチプレクサである。マルチプレクサ210lへの1つの入力がRバスであり、マルチプレクサ210Lに対する第2入力が制御信号DIRECT_Dを搬送する導体211iのグループである。どの特定な入力がINバスにマルチプレクサ210Lを通して渡されるのかは、胴体211jのグループで発生するその他の制御信号OP22によって決定される。導体211iと211jの両方のグループとも集合211の中にある。
【0161】
210m
図15Bの中の構成部品210mは、7かける1のマルチプレクサである。このマルチプレクサに対する入力はRバス、Aバス、Bバス、Cバス、Dバス、0の集合及び1の集合である。これらの入力は、集合211の中にある導体211kのグループで発生する制御信号OUTSELに応じて、マルチプレクサ210Mを通して選択的に渡される。
【0162】
210n
図15Bの中の構成部品210nは、インバータ回路である。この構成部品は、マルチプレクサ210Mから生じる出力信号のすべてを反転する。
【0163】
210o
図15Bの中の構成部品210oは、2かける1 のマルチプレクサである。マルチプレクサ210oに対する入力の一方はマルチプレクサ210mの出力であり、他方の入力はインバータ回路210nの出力である。マルチプレクサ210oに対するこれら2つの入力は、集合211の中にある導体211Lのグループで発生する制御信号INVに応じてマルチプレクサを通して選択的に渡される。
【0164】
210p
図15Bの中の構成部品210bは、7かける1のマルチプレクサである。このマルチプレクサに対する入力は、マルチプレクサ210mに対する入力と同じである。どの特定の入力がマルチプレクサ210mを通過させられるのかは、集合211の中にある導体211mのグループで発生する制御し号DGENSELによって決定される。
【0165】
図15Aと図15Bにおいて、多くの異なる制御信号が、導体211a〜211mのそれぞれのグループで発生するとして示される。それらの導体のすべては、制御装置240から生じる集合211の中にある。これらの制御信号がどのようにして生成されるのかは、ここで図15Cと図15Dと関連して説明されるだろう。
【0166】
最初に図15Cを考えると、それは、図15Aと図15Bの回路構成要素のすべてによって実行される1つの特定のAPG命令251を示す。この命令251は、導体201aを介して図14AのAPG制御装置240で受信され、応じて、APG制御装置240が、図15Aと図15Bの段210に、導体211での多様な制御信号を送信する。
【0167】
APG命令251は、2つのワードW0とW1から成り立ち、この特定の命令はワードW0で発生するOP21という操作符号で特定される。命令251のワードW0は、図15Aの入力レジスタ210aから、レジスタのX集合またはレジスタのy集合またはレジスタのZ集合のいずれかを選択するXYZフィールドも含む。選択されるレジスタの特定の集合の内容は、Aバス、Bバス、Cバス及びDバスに同時に読み取られる。
【0168】
命令251のワードW1は、以下の制御信号のすべてを指定する複数のフィールドを含む。つまり、DGENSEL、OUTSEL、JSEL、KSEL、DEST、ALOP、INV、ROTL、CC、DDR及びADRである。これらの制御信号のそれぞれは、デジタルで符号化される複数の異なる値のいずれか1つを有することがあり、各値が図15Cに示されるようにある特定の関数を指定する。
【0169】
例えば、JSEL信号が「2」という値を有するとき、Cバス上にあるレジスタの内容は、マルチプレクサ210fを通される。同様に、ALOPフィールドが「5」という値を有するとき、実用可能な回路210hが、Jバス上にあるデータを1増分し、結果をOバスに渡す。
【0170】
選択された入力レジスタの内容が構成部品210f〜210pのすべてによって処理された後で、結果は選択的に入力レジスタ210a及び出力レジスタ210bの中に記憶される。どの特定の入力レジスタがマルチプレクサ210lからの結果を記憶するのかは、DESTフィールドによって選択される。どの特定の出力レジスタがマルチプレクサ210oからの結果を記憶するのかは、ADRフィールドによって選択され、どの特定の出力レジスタがマルチプレクサ210pからの結果を記憶するのかは、DDRフィールドによって選択される。
【0171】
ここで図15Dを見ると、それは、図15Aの回路構成要素により実行される別のAPG命令252を示す。この特定の命令252は、2つのワードW0とW1から成り立ち、それはワードW0内の演算コードOP22によって特定される。
【0172】
命令252を使用することによって、入力レジスタ210aのいずれか1つが、初期値をロードできる。ワードW0のフィールドXYZは、入力レジスタのX集合、またはY集合またはZ集合のどれかを選択し、ワードW0の別のフィールドABCDが選択された集合の中の1つのレジスタを選択する。
【0173】
ワードW1は、選択されたレジスタに直接的に書き込まれるデータフィールドDIRECT_Dを含む。そのデータは、命令252が実行されるときに、マルチプレクサ210Lを選択されたレジスタの中に通過する。他のすべてのときには、マルチプレクサ210Lは、Rバス上にある信号を渡す。マルチプレクサ210bは、いつ命令51が実行されているのかを示す導体211f上の制御信号OP22に応じて動作する。
【0174】
次に図15Eと図15Fを参照すると、境界チェック回路210kの内部構造及び動作に関する詳細が説明されるだろう。最初に図15Eを考慮すると、それは、境界チェック回路210kと関連して実行されるAPG命令253を示す。命令253は、2つのワードW0とW1から成り立ち、それはワードW0の演算コードOP23によって特定される。
【0175】
命令253によって、入力レジスタ210aの集合ごとに、それぞれの最大限度とそれぞれの最小限度が確立される。ワードW0内の1つのフィールドXYZは、入力レジスタのX集合または入力レジスタのY集合、または入力レジスタのZ集合のどれかを選択する。その選択される集合について、ワードW1のフィールドMAXLIMは最大限度を指定し、フィールドMINLIMは最小限度を指定する。これらの限度は、境界チェック回路210k内に記憶される。
【0176】
限度の3つの集合が境界チェック回路210kに記憶された後、その回路は該限度を各命令251の実行中にRバスで生成される信号に比較する。ある特定の命令251がDESTフィー都度を介してレジスタのX集合を選択し、ALOPフィールドによって指定される動作を介してその内容を増加する場合、Rバスの結果は境界チェック回路210kによって、レジスタのX集合のために確立された最大限度に比較される。その最大限度がRバスの信号に等しい場合には、境界チェック回路が、次の命令251が再びレジスタのX集合を選択するときにマルチプレクサ210iを通してレジスタのX集合の最小限度を渡すだろう。
【0177】
逆に、1つの特定の命令251がDESTフィールドを介してレジスタのX集合を選択し、ALOPフィールドで指定される動作を介してその内容を減少するときに、Rバスの結果は、レジスタのx集合のために確立された最小限度に比較されある。その最小限度及びRバスの信号が等しいと、境界チェック回路210kが、次の命令251が再びレジスタのX集合を選択すると、マルチプレクサ210iを通してレジスタのX集合の最大限度を渡すだろう。
【0178】
同様に、1つの特定の命令251がDESTフィールドを介してレジスタのY集合(またはZ集合)を選択肢、ALOPフィールドを介してその内容を増加するときには、Rバスの結果がレジスタのX集合(またはZ集合)に確立された最大限度に比較される。その最大限度がRバスの信号に等しい場合には、境界チェック回路が、次の命令251が再びレジスタのY集合(またはZ集合)を選択すると、マルチプレクサ210iを通してレジスタのY集合(またはZ集合)に対する最小限度を渡すだろう。
【0179】
逆に、ある特定の命令251が、DESTフィールドを介してレジスタのY集合(またはZ集合)を選択し、ALOPフィールドを介してその内容を減少するときには、Rバス上の結果がレジスタのY集合(またはz集合)のために確立された最小限度に比較される。その最小限度及びRバス上の信号が等しい場合に、境界チェック回路210kが、レジスタのY集合(またはz集合)の最大限度を、次の命令251が再びレジスタのY集合(またはZ集合)を選択するときにマルチプレクサ210iを通して渡すだろう。
【0180】
境界チェック回路210kの中で前述された動作を実行するために、その回路は、図15Fに示される構成部品のすべてを含む。それらの構成部品は、参照番号210q〜210wで特定され、それらの構成部品のそれぞれは表3に後述される。
【0181】
表3
構成部品 説明
210q
図15Fの中の構成部品210qは、XMAXレジスタとXMINレジスタ、YMAXレジスタとYMINレジスタ、及びZMAXレジスタとZMINレジスタである3組のレジスタから成り立つ。各レジスタは、データ入力及び出力Qを有する。命令253からのMAXLMフィールドは、XMAXレジスタまたはYMAXレジスタまたはZMAXレジスタのどれかに選択的に記憶され、命令253からのMINLIMフィールドはXMINレジスタまたはYMINレジスタまたはZMINレジスタのどれかに選択的に記憶される。MAXLIMフィールドとMINLIMフィールドは、集合211内にある導体211nのグループのレジスタqに送信される。
【0182】
210r
図15Fの中の構成部品は、レジスタ210qの読み取り/書き込み制御回路である。書き込むためのレジスタの1つの特定の組を選択するために、回路210rは、集合211の中にある導体2110oのグループで命令253からXYZフィールド及びOP23フィールドを受信する。読み取るためのレジスタの1つの特定の組を選択するために、回路211rは、集合211の中にある導体211pのグループの命令251からXYZフィールドを受信する。
【0183】
210s
図15Fの中の構成部品は、1組の入力I1とI2及び1組の出力O1とO2を有する回路である。入力I1とI2はそれぞれ、レジスタ210qから読み取られる最大限度と最小限度を受信する。命令251のALOPフィールドが追加または増分演算を指定する場合には、入力I1とI2に対する限度はそれぞれO1出力及びO2出力に渡される。ALOPフィールドが減算または減分演算を指定する場合、入力I1に対する限度が出力O2に渡され、入力I2に対する限度が出力O1に渡される。ALOPフィールドは、集合211の中にある導体211qのグループで回路210sに送信される。
【0184】
210t
図15Fの中の構成部品210tは、Rバス上にある信号を、構成部品210sの02出力に渡される信号に比較する比較回路である。それらの比較された信号が同じ場合には、回路210tは出力としてEQUAL信号を生成する。
【0185】
210u
図15Fの中の構成部品210uは、XEQ、YEQ及びZEQと呼ばれる3つのフリップフロップの集合である。各フリップフロップは、別の構成部品210vによって読み書きされる。
【0186】
210v
図15Fの中の構成部品210vは、フリップフロップ210uの読み書き制御回路である。XEQフリップフロップは、命令251のフィールドDESTがレジスタのX集合を選択すると読み取られる。YEQフリップフロップは、DESTフィールドがレジスタのY集合を選択するときに読み取られ、ZEQフリップフロップは、DESTフィールドがレジスタのz集合を選択するときに読み取られる。読み取られるフリップフロップの出力は、制御信号CROSSED_Bになる。また、フリップフロップ210uの一方が命令251によって読み取られるたびに、その特定のフリップフロップは、命令の実行の終了時にセットまたはリセットされるかのどちらかである。EQUAL信号が真である場合には、フリップフロップがセットされる。それ以外の場合、それはリセットされる。DESTフィールドは、集合211内の導体211Rのグループで受け取られる。
【0187】
210w
図15Fの中の構成部品210wは、図15Aの実用可能な回路210hのための carry−in信号(CIN)を生成するフリップフロップである。このフリップフロップは、命令251が実行されるたびにセットまたはリセットされる。フリップフロップ210wは、コンパレータ210tからのEQUAL信号が命令251の実行の最後で真である場合にセットされる。それ以外の場合、フリップフロップ210wがリセットされる。
【0188】
ここでは、図15A〜図15Fの回路構成要素及び命令が、どのようにして、集積回路チップを試験するTDI信号、ETDO信号及びMASK信号をともに生成する3つの段の第1として使用できるのかを示す例を考える。この例では、試験されるチップが、メモリセルの4つの矩形アレイを含むメモリチップであると仮定し、さらにセルが各アレイ内で1024行と64列で配列されると仮定する。
【0189】
前記例の中のそれぞれのメモリセルが、「仮想」行番号及び「仮想」列番号によって指定される「仮想」アドレスを有する。これらの行番号及び列番号がなぜ「仮想」番号であるのかが、まもなく説明されるだろう。
【0190】
第1アレイについて、仮想行番号はVR0〜VR1023であり、仮想列番号はVC0〜VC63である。第2アレイについて、仮想行番号はVR0〜VR1023であり、仮想列番号はV64〜VC127である。第3アレイについて、仮想行番号はVR1024〜VR2047であり、仮想列番号はVC0〜V63である。第4アレイについては、仮想行番号はVR1024〜VR2047であり、仮想列番号はVC64〜VC127である。
【0191】
4つのアレイのそれぞれにおいて、仮想b行番号は、アレイの上部からアレイの底部に連続して増加し、仮想列番号はアレイの左側からアレイの右側に連続して増加する。このようにして、例えば、第1アレイの左上角にあるメモリセルは、仮想行VR0と仮想列VC0にあり、第1アレイの左下角にあるメモリセルは仮想行VR1023及び仮想列VC63にある。同様に、第4アレイの左上角にあるメモリセルは、仮想行VR1024及び仮想列VC64にあり、第4アレイの右下角にあるメモリセルは、仮想行VR2047と仮想列VC127内にある。
【0192】
ここで、TDI試験信号、ETDO試験信号、及びMASK試験信号が、以下の順序でメモリセルのそれぞれに生成されなければならないと仮定する。第1に、試験信号は、行VR0内にあるメモリセルのそれぞれのセルに生成され、列VC0での行VR0内のメモリセルで開始し、列VC63での行VR0にあるメモリセルで終了する。それから、このシーケンスは、第1アレイ内の残りの行R1からVR1023のそれぞれに連続して繰り返されなければならない。それ以降、前記シーケンスは、第2アレイのセルごとに繰り返されなければならず、それから前記シーケンスは第3アレイのセルごとに繰り返されなければならず、シーケンスは第4アレイのセルごとに繰り返されなければならない。
【0193】
図15A〜図15Fの回路構成要素及び命令を活用することにより、メモリセルの仮想あどレスは、セルが試験されなければならない順序で連続して生成できる。例えば、レジスタのX集合は、試験されているセルの仮想行の番号を生成するために使用することができ、レジスタのY集合は、試験されているセルの仮想列の番号を生成するために使用することができ、レジスタのZ集合は、試験されているアレイの数を生成するために使用することができる。
【0194】
適切な順序で前記アドレスを連続して生成するために、命令251のシーケンスがプログラムループで実行できる。また、最初に前記アドレスの開始値を設定するために、命令252が実行できる。さらに、ある行の最後から次の連続行の始まりへ、及びある列の最後から次の連続列の始まりまで、プログラムループで自動的に生成されるセルのアドレスを変更するために、命令253が使用できる。
【0195】
仮想列アドレスと仮想行アドレスが生成されるたびに、それらのアドレスは出力レジスタ210bに記憶される。例えば、仮想行アドレスは、レジスタX1A’に記憶することができ、仮想列アドレスはレジスタY1A’に記憶することができる。さらに、一定のデータが各仮想行アドレスと各仮想列アドレスととものい使用される必要がある場合、そのデータは、命令251と252によってプログラムループでも生成でき、そのデータは出力レジスタX1D’とY1D’に記憶できる。
【0196】
また、一定の種類のメモリ試験について、仮想アドレスとその対応するデータの2つの別個のシーケンスが同時に生成される必要がある可能性がある。例えば、仮想アドレスの第1シーケンスは、前述された順序でセルからセルに移動できるだろう。一方仮想アドレスの第2シーケンスは反対の順序でセルからセルに移動できるだろう。このようにして、第2シーケンスは、最高の番号の仮想行と仮想列にあるセルで開始し、最小の番号の仮想行と仮想列にあるセルで終了するだろう。
【0197】
仮想アドレスのこれらの2つの別個のシーケンスは、命令251、252、及び253を使用する第1プログラムループと第2プログラムループによって同時に生成できる。第1プログラムループが仮想アドレス及びその対応するデータを生成するたびに、それらは出力レジスタX1A’、Y1A’、Z1A’、X1D’、及びY1D’から成る第1集合に記憶され、第2プログラムループがその対応するデータで仮想アドレスを生成するたびに、それらは出力レジスタX2A’、Y2A’、Z2A’、X2D’及びY2D’から成る第2集合に記憶される。
【0198】
前記説明を通して、試験される実際の物理メモリチップ内では、メモリセルの行及び列は連続して番号付けされなくてよいために、用語「仮想」行と「仮想」列が使用された。例えば、実際のメモリチップ内で、アドレス10を有する行は、アドレス20を有する行に隣接してよいことがある。同様に、実際のメモリチップでは、アドレス100を有する列が、アドレス110を有する列に隣接してよい。
【0199】
その結果、このような差異に対処するため、ALU段210は、好ましくは、隣接する行と列が連続するアドレスを有する、仮想メモリ(つまり、仮説的なメモリ)の仮想アドレス及びデータを生成する。そして、スクランブラ段220は、試験される実際の物理的なメモリチップのための物理的なアドレス及びデータに、仮想アドレスとデータを変換するために提供される。スクランブラ段220によって実行される多様な動作を開始するために、図15Gに示される別のAPG命令254が実行される。この命令254は、2つのワードW0とw1から成り立ち、それはワードW0の演算コードOP24によって特定される。
【0200】
命令254の各実行は、第1段210の出力レジスタ内の仮想アドレス及び対応するデータが、第2段220によって動作される準備ができていることを示す。このようにして、それらの仮想アドレス及び対応するデータが、前述されたようにプログラムループで生成されると、プログラムループの1つのサイクルが完了されるたびに、APG命令254が実行される。命令254のワードW1 は、図15Gに図示されるように、COUNTとPAGEと呼ばれる2つの追加フィールドも含むが、それらのフィールドはAPGの第3段によって使用されるだけである。したがってCOUNTフィールドとPAGEフィールドは、第3段に関連して後述される。
【0201】
第2段220の1つの好ましい実施態様は、図16A〜図16Cに詳細に図示される。この特定の実施態様は、参照番号220a〜220zjによって図16A〜図16Cに特定されるすべての構成部品から構成され、それらの構成部品のそれぞれが、表4に後述される。
【0202】
表4
構成部品 説明
220a
構成部品220aは、部分的に図16Aに、部分的に図16Bに示され、それはスクランブラ段220のための入力レジスタのすべてから成り立つ。これらの入力レジスタは、レジスタX1A、Y1A、Z1A、X1D及びY1Dから成り立つ第1集合、及びレジスタX2A、Y2A、Z2A、X2D及びY2Dから成り立つ第2集合に区分される。これらの入力レジスタは、図14Aに図示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力D及び出力Qを有する。
【0203】
220b
図16Cの中の構成部品220bは、スクランブラ段220の出力レジスタのすべてから成り立つ。それらの出力レジスタは、第1集合X1’、Y1’、及びD1’、ならびに第2集合X2’、Y2’及びD2’に区分される。これらの出力レジスタは、図14Aに示されるのと同じ出力レジスタである。各レジスタは、データ入力D及び出力Qを有する。
【0204】
220c
図16Aと図16bの構成部品220cは、入力レジスタ220aのすべてのための書き込み制御回路である。この書き込み制御回路は、入力レジスタ220aのすべてに、第1段210から対応する出力レジスタ210bの内容をロードする。この動作は、集合221の中にある導体221a上にある制御信号UPDATE_STAGE_2に応じて発生する。
【0205】
220d
図16Cの中の構成部品220dは、出力レジスタ220bのすべてのための書き込み制御回路である。この書き込み制御回路によって、それぞれの出力レジスタは、選択的に、そのデータ入力D上にある信号をロードされる。レジスタX1’は、制御信号UPDATEX1’に応じてロードされる。レジスタX2’は、制御信号UPDATEX2’等に応じてロードされる。これらの信号は、集合221の中にある導体221bのグループで発生する。
【0206】
220e
図16Aの中の構成部品220eは、2かける1のマルチプレクサである。マルチプレクサ220eに対する入力の一方は、レジスタX1A内のアドレスであり、他方の入力はレジスタX2A内のアドレスである。X1A入力は、制御信号SEL1が真であるときにXAバスに渡される。それ以外の場合、X2A入力はX2Aバスに渡される。制御信号SEL1は、集合221の中にある導体221cで発生する。
【0207】
220f
図16Aの中の構成部品220fは、2かける1のマルチプレクサである。マルチプレクサ220fに対する入力の一方は、レジスタY1A内のアドレスであり、他方の入力はレジスタY2A内のアドレスである。Y1A入力は、制御信号SEL1が真であるときにYAバスに渡される。それ以外の場合、Y2A入力がYAバスに渡される。
【0208】
220g
図16Aの中の構成部品220gは、2かける1のマルチプレクサである。マルチプレクサ220gに対する入力の一方は、レジスタZ1A内のアドレスであり、他方の入力はレジスタZ2A内のアドレスである。Z1A入力は、制御信号SEL1が真であるときにZAバスに渡される。それ以外の場合、Z2A入力がZAバスに渡される。
【0209】
220h
図16Aの中の構成部品220hは、16回繰り返される48かける1のマルチプレクサである。このマルチプレクサの各インスタンスは、メモリアドレスビットA0〜A15のそれぞれ1つを生成する。簡略さのために、図16Aは、これらのマルチプレクサの最初のインスタンスと最後のインスタンスだけを示し、残りのマルチプレクサは3つの点の集合で表される。それぞれのマルチプレクサ220hが、並列で、XAバス、YAバス及びZAバスにある入力アドレスビットのすべてを受け取り、それぞれのマルチプレクサが、単一メモリアドレスビットをそれによって生成するために入力アドレスビットのそれぞれ1つを選択的に渡す。
【0210】
220i
図16Aの中の構成部品220iは、Xスクランブラ制御レジスタ、Yスクランブラ制御レジスタ、及びZスクランブラ制御レジスタと呼ばれる制御レジスタの3つの集合である。各集合は、16台のマルチプレクサ220hのそれぞれに1台づつ、16台のレジスタを含む。レジスタの1つの集合の内容が選択され、導体221dのマルチプレクサ220hに送信される。それらの信号は各マルチプレクサに、その出力にそれぞれの入力を渡すように命令する。
【0211】
220j
図16Aの中の構成部品220jは、XYZスクランブラ制御レジスタ220iのための書き込み制御回路である。この回路によって、3つの集合の1つでの単一制御レジスタが選択される。これは、制御信号OP33、XYZ、SA0かSA15に応じて発生する。それから、選択されたレジスタは、SETTINGと呼ばれるデータフィールドで書き込まれる。これらの信号のすべてが、集合221の中にある導体221eのグループで発生する。
【0212】
220k
図16Aの中の構成部品220kは、XYZスクランブラ制御レジスタ220iのための読み取り制御回路である。導体221dの上に読み取られるレジスタの特定の集合は、集合221の中にある導体221fのグループえ発生する3つの制御信号SELX、SELY、及びSELZによって選択される。
【0213】
220L
図16Aの中の構成部品220Lは、64Kのワードを記憶するランダムアクセスメモリであり、各ワードは別個のアドレスを有する。1つの16ビットワードは、アドレスA15〜A0に応じて読み取られ、そのワードはXMEMと呼ばれる出力で発生する。この出力XMEMは、図16Cで出力レジスタX1’とX2’に移動する。
【0214】
220m
図16Aの中の構成部品220mは、64Kのワードを記憶するランダムアクセスメモリであり、各ワードは別個のアドレスを有する。1つの16ビットワードが、アドレスA15〜A0に応じて読み取られ、そのワードはYMEMと呼ばれる出力で発生する。この出力YMEMは、図16Cの出力レジスタY1’とY2’に移動する。
【0215】
220n
図16Aの中の構成部品220nは、64Kのビットを記憶するランダムアクセスメモリであり、各ビットは別個のアドレスを有する。1ビットワードがアドレスA15〜A0に応じて読み取られ、そのビットはZMEMと呼ばれる出力で発生する。この出力ZMEMは、図16Cのマルチプレクサ220ziに移動する。
【0216】
220o
図16Bの中の構成部品220oは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力は、レジスタX1Dのコンテンツであり、他方入力はレジスタX2Dのコンテンツである。マルチプレクサ220は、制御信号SEL1が真であるときに、X1D入力をXDバスに渡し、それ以外の場合、それはXDバスにX2D入力を渡す。
【0217】
220p
図16Bの中の構成部品220pは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力はレジスタY1Dの内容であり、他方入力はレジスタY2Dのコンテンツである。マルチプレクサ220は、制御信号SEL1が真であるときに、Y1D入力をYDバスに渡す。
【0218】
220q
図16Bの中の構成部品220qは、16かける1のマルチプレクサである。このマルチプレクサは、入力としてXDバスを受信し、それはそのバスの1ビットをその出力に渡す。渡される特定のビットは、集合21の中にある導体221gで発生する制御信号XSELによって選択される。
【0219】
220r
図16Bの中の構成部品220rは、16かける1のマルチプレクサである。このマルチプレクサは、入力としてYDバスを受信し、それはそのバスの1ビットをその出力に渡す。渡される特定のビットは、集合221の中にある導体221hで発生する制御信号YSELによって選択される。
【0220】
220s
図16Bの中の構成部品220sは、インバータである。それはマルチプレクサ220qの出力を受信し、その信号を出力として反転する。
【0221】
220t
図16Bの中の構成部品220tは、インバータである。それはマルチプレクサ220rの出力を受信し、それはその信号を出力として反転する。
【0222】
220u
図16Bの中の構成部品220uは、4かける1のマルチプレクサである。このマルチプレクサは、制御信号LFUNCに応じてその出力にその4つの入力の内の1つを選択的に渡す。それらの制御信号は、集合221の中にある導体221iで発生する。
【0223】
220v
図16bの中の構成部品220vは4かける1のマルチプレクサである。このマルチプレクサは、制御信号MFUNCに応じて、選択的に、その4つの入力の内の1つをその出力に渡す。それらの制御信号は、集合221の中にある導体221jで発生する。
【0224】
220w
図16Bの中の構成部品220wは、マルチプレクサ220uと220vから生じる1組の入力で選択可能な演算を実行する算術回路である。構成部品220wによって実行される特定の演算は、集合221の中にある導体221kで発生する制御信号DALUOPによって選択される。その動作の結果は、DALUバスで発生する。
【0225】
220X
図16Bの中の構成部品220xは、データ入力D及び出力Qを有するMASKレジスタである。このレジスタの中に選択的に書き込まれるデータは、MASK DATAと呼ばれ、それは集合221の中にある導体220Lで発生する。
【0226】
220y
図16Bの中の構成部品220yは、MASKレジスタ220Xのための書き込み制御回路である。この回路220yは、集合221の中にある導体221mの上で制御信号OP32に応じてMASK_DATAをレジスタ220xの中に書き込む。
【0227】
220z
図16Bの中の構成部品220zは、選択的な比較回路である。入力として、回路220zは、XDバス、YDバス、上にある信号、及びMASKレジスタ220xに記憶される信号を受信する。それから、「0」であるMASKレジスタ内のビットごとに、回路220zは、XDバス及びYDバス上にある対応するビットを比較する。すべてんこのような比較が等しい場合、回路220zは出力信号XD=YDを生成する。
【0228】
220za
図16Cの中の構成部品220zaは、インバータである。それは、DALUバスで信号を受信し、それはそれらの信号を出力として反転する。
【0229】
220zb
図16Cの中の構成部品220zbは、インバータである。それは信号XD=YDを受信し、その信号を出力として反転する。
【0230】
220zc
図16Cの中の構成部品220zcは、6かける1のマルチプレクサである。このマルチプレクサは、制御信号OUTSELに応じて、選択的に、その6つの入力の1つをその出力に渡す。それらの制御信号は、集合221の中にある導体221nで発生する。
【0231】
220zd
図16Cの中の構成部品220zdは、データ入力Dおよび出力Qを有するレジスタである。VALUE−DATAと呼ばれる信号が、このレジスタの中に選択的に書き込まれ、それらは、集合221の中にある導体221oで発生する。
【0232】
220ze
図16Cの中の構成部品220zeは、レジスタ220zdのための書き込み制御回路である。この回路は、集合221の中の導体221pで発生する制御信号OP34に応じてレジスタ220zdの中にVALUE−DATA信号を書き込む。
【0233】
220zf
図16Cの中の構成部品220zfは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力は、6かける1のマルチプレクサzcからの出力であり、他方の入力はレジスタ220zdの内容である。どの特定の入力がマルチプレクサ220zfの出力に渡されるようになるのかは、集合221の中の導体221qで発生する制御信号VALSELによって決定される。
【0234】
220zg
図16Cの中の構成部品は、マルチプレクサ220zfからの出力を選択的に転する回転体回路である。回転体回路220zgによって実行される回転の種類は、集合221の中の導体221rのグループで発生する制御信号ROTによって選択される。
【0235】
220zh
図16Cの中の構成部品220zhは、インバータである。それは、回転体回路220zgから出力信号を受信し、それはそれらの信号の逆数を生成する。
【0236】
220zi
図16Cn中の構成部品220ziは、2かける1のマルチプレクサである。このマルチプレクサに対する一方の入力は回転体回路220zgの出力であり、他方の入力は、インバータ220zhから生じる回転体回路の反転された出力である。このマルチプレクサは、制御信号ZMEMが真であるときに反転された入力を渡し、それ以外の場合、それは反転されていない入力を渡す。
【0237】
図16A、図16B、及び図16Cにおいては、多くのさまざまな制御信号が、導体221a〜221mのそれぞれのグループで発生するとして示される。それらの導体のすべては、制御装置240から生じる集合221の中にある。それらの制御信号がどのようにして生成されるのかは、図16D〜図16Gに関連してここに説明されるだろう。
【0238】
まず図16Dを参照すると、それは図16A〜図16Cの回路構成要素によって実行される、ある特定のAPG命令261を示す。この命令261は、導体201aを介して図14AのAPG制御装置240で受け取られ、応じてAPG制御装置240が、図16A〜図16Cの段220に導体221上の多様な制御信号を送信する。
【0239】
命令261は、2つのワードW0とW1から成り立つ。ワードW0は、命令を特定するOP31という演算コードを含む。ワードW1は複数のフィールドを含み、それらは以下の制御信号のすべてを指定する。つまり、XSEL、YSEL、LFUNC、MFUNC、DALUOP、OUTSEL、VALSEL及びROTである。これらの制御信号のそれぞれは、デジタルで符号化される複数の異なる値のいずれか1つを有することがあり、それぞれの値が図16Dに示されるようにある特定の関数を指定する。
【0240】
例えば、フィールドXSELが「0」という値を有するときに、マルチプレクサ220qはXDバスのビット0での信号をその出力に渡す。フィールドXSELが「1」という値を有するとき、マルチプレクサ220qはXDバスのビット1での信号をその出力に渡す等である。別の例として、フィールドLFUNCが「1」という値を有するとき、マルチプレクサ220uは、インバータ220sからの信号をその出力に渡す。別の例として、フィールドDALUOPが「5」という値を有するとき、回路220wは、その入力に対し排他的否定和を実行し、DALUバスで結果を生成する。依然として別の例として、フィールドOUTSELが「3」という値を有するときに、マルチプレクサ220zcは信号XD=YDの逆数をその出力に渡す。
【0241】
ここで図16Eを参照すると、それは、図16Aの回路構成要素によって実行される別のAPG命令272を示す。この特定の命令は、2つのワードW0とW1から成り立ち、それはワードW0で発生するOP32という演算コードによって特定される。そのワードは、図16Aの構成部品221内にある、スクランブラ制御レジスタのX集合またはスクランブラ制御レジスタのY集合またはスクランブラ制御レジスタのz集合のいずれかを選択するXYZフィールドも含む。
【0242】
命令262のワードW1は、SETTINGとSA15〜SA0と呼ばれる2つのフィールドを含む。フィールドSA15〜SA0は、XYZフィールドによって選択される集合の中の16台のレジスタの内の1つを選択する。その1つの選択されたレジスタは、図16Aの書き込み制御回路220jによって作成される。このようにして命令262を活用することにより、XYZスクランブラ制御レジスタのそれぞれ1つが任意の所望される設定値で作成できる。
【0243】
ここで図16Fを見ると、それは、図16Bの回路構成要素によって実行される依然として別のAPG命令を示す。この特定の命令は、2つのワードW0とW1から成り立ち、それはワードW0で発生する演算コードOP33によって特定される。命令263ののワードW1がMASK_DATAと呼ばれるフィールドを含み、MASK_DATAフィールドは図16Bのレジスタ220xの中に書き込まれる。その書き込みは、導体221jの上の制御信号OP33に応じて動作する書き込み制御回路220yによって実行される。
【0244】
次に図16Gを参照すると、それは、図16Cの回路構成要素によって実行される別のAPG命令264を示す。このAPG命令は、2つのワードW01とW1から成り立ち、それはワードW0で発生する演算コードOP34によって特定される。ワードW1はVALUE_DATAと呼ばれるフィールドを含む。命令264が実行されると、フィールドVALUE_DATAは図16Cのレジスタ220zdに記憶される。その書き込みは、導体221mで発生する制御信号OP34に応じて書き込み制御回路220zeによって実行される。
【0245】
ここで、図16A〜図16Gの回路構成要素及び命令が、集積回路チップを紙面するTDI信号、ETDO信号、及びMASK信号を生成するために、どのようにして3段パイプラインの第2段として使用できるのかを示す例を考える。この例では、試験されるチップは、第1段210とともに前述されたのと同じメモリチップである。チップは、メモリセルの4つの矩形アレイを含み、それぞれのアレイのセルは1,024行と64列で配列された。
【0246】
前記例では、第1段210が、仮想アドレス及び対応するデータの1つまたは2つの別個のシーケンスを生成し、それらのアドレス及びデータは出力レジスタ210bに連続して記憶された。ここで一定の時に、第1段の出力レジスタ210bの内容が、第2段の入力レジスタ220aに転送される。それから、第2段入力レジスタ220aにある仮想アドレス及びデータは、図16A〜図16Cの回路構成要素によって処理されるようになる。
【0247】
第2段の前記処理は、6つの連続時間間隔△t1〜△t6で発生する。最初に、時間間隔△t1の間、3つの入力レジスタX1A、Y1A及びZ1Aは、図16Aの回路構成要素によって作用され、それがレジスタX1’に記憶される出力を生成する。次に、時間間隔△t2の間、3台の入力レジスタX2A、Y2A、及びZ2Aの内容は、図16Aの回路構成要素によって作用され、それが、レジスタX2’に記憶される出力を生成する。それから、時間間隔△t3の間、3台のレジスタX1A、Y1A及びZ1Aは、図16A内の回路構成要素によって作用され、それがレジスタY1’内で記憶される出力を生成する。それから、時間間隔△t4の間、3台の入力レジスタX2A、Y2A、及びZ2Aが、図16Aの回路構成要素によって作用され、それがレジスタY2’に記憶される出力を生成する。
【0248】
次に、時間間隔△t5の間、5台の入力レジスタX1A、Y1A、Z1A、X1D、及びY1Dが、図16A〜図16Cの回路構成要素のすべてによって作用され、それがレジスタD1’に記憶される出力を生成する。最後に、時間間隔△t6の間に、5台の入力レジスタX2A、Y2A、Z2A、X2D、及びY2Dが、図16A〜図16Cの回路構成要素のすべてによって作用され、それが、レジスタD2’に記憶される出力を生成する。
【0249】
時間間隔△t1、△t3、及び△t5の3つを通して、2かける1のマルチプレクサ220e、220f、220g、220o及び220pが、それぞれそれらの入力X1A、Y1A、Z1A、X1D及びY1Dを渡す。逆に、その他の3つの時間間隔△t2、△t4、及び△t6を通して、それらのマルチプレクサが、それぞれそれらの入力X2A、Y2A、Z2A、X2D及びY2Dを渡す。
【0250】
また、時間間隔△t1と△t2の2つを通して、読み取り制御回路220kが、導体221d上のXスクランブラ制御レジスタの内容をマルチプレクサ220hに送信する。時間間隔△t3と△t4の間、読み取り制御回路220kは、導体220dでのYスクランブラ制御レジスタの内容をマルチプレクサ220hに送信する。そして、時間間隔△t5と△t6の間、読み取り制御回路220kが、導体221dでのZスクランブラ制御レジスタの内容をマルチプレクサ220hに送信する。
【0251】
第2段220の中での前記処理のために、入力レジスタX1A、X2A、Y1A及びY2Aの中にある仮想アドレスのすべてが、対応する物理アドレスに変換されるようになる。例えば、レジスタX1Aの仮想アドレスを変換するために、16台のマルチプレクサ220hは、それぞれXAバスまたはYAバスまたはZAバスである特定のビットを選択する。それらの選択されたビットがXメモリ220Lの中のワードを読み取るアドレスを形成し、そのワードが物理アドレスとしてレジスタX1’に記憶されるようになる。同様にして、レジスタY1A内の仮想アドレスを変換するために、16台のマルチプレクサ220hは、それぞれXAバスまたはYAバスまたはZAバスからビットを選択する。それらの選択されたビットは、Yメモリ220M内のワードを読み取るアドレスを形成し、そのワードは、物理アドレスとしてレジスタY1’に記憶されるようになる。
【0252】
やはり第2段220内での前記処理のために、入力レジスタX1DとY1Dからのデータが、出力レジスタD1内に記憶される異なるデータに変換されるようになる。同様に、入力レジスタX2DとY2Dからのデータは、それから出力レジスタD2’に記憶される別のデータに変換されるようになる。このデータ変換プロセスの間に、図16B及び図16Cでの回路は、制御信号XSEL、YSEL、LFUNC、MFUNC、DALUOP、OUTSEL、VALSEL及びROTによって指定される多様な演算を実行する。それらの制御信号は、最後に実行された図16Dの命令261によって設定され、それらは図14Aの制御装置240の内側にあるレジスタ(図示されていない)に保持される。
【0253】
6つの連続時間間隔△t1〜△t6での処理のすべてが第2段220によって完了された後に、第2段出力レジスタ220bが、第3段230の入力レジスタ220aに転送される準備ができている(つまり、フォーマッタ段)。その転送が発生すると、フォーマッタ段は、それにより集積回路チップを紙面する信号ATDI、AETDO及びAMASKを生成するその入力レジスタの内容に対して追加の処理を実行するだろう。
【0254】
フォーマッタ段230の1つの好ましい実施態様が、図17Aと図17Bに詳細に示される。この特定の実施態様は、参照番号230a〜230qによって図17Aと図17Bに特定される構成部品のすべてから構成され、それらの構成部品のそれぞれが表5に後述される。
【0255】
表5
構成部品 説明
230a
図17Aの中の構成部品230aは、フォーマッタ段230への入力レジスタのすべてから成り立つ。これらの入力レジスタは、レジスタX1、Y1、及びD1から成り立つ第1集合、及びレジスタX2、Y2及びD2から成り立つ第2集合に区分される。これらの入力レジスタは、図14Aに示されるのと同じ入力レジスタである。それぞれのレジスタは、データ入力D及び出力Qを有する。
【0256】
230b
図17Aの中の構成部品230bは、フォーマッタ段230の中の出力レジスタのすべてから成り立つ。これらの出力レジスタは、ATDIレジスタ、AETDOレジスタ及びAMASKレジスタであり、それらは図14Aに示されるのと同じ出力レジスタである。各出力レジスタは、データ入力D、クロック入力CK、及び出力Qを有する。これらの出力レジスタは、それぞれ、導体201b、201c、及び201dでの出力信号ATDI、AETDO及びAMASKを送信し、それらの導体は、図14Aと図14Bに図示されるのと同じ導体である。
【0257】
230c
図17Aの中の構成部品230cは、入力レジスタ230aのすべてのための書き込み制御回路である。この書き込み制御回路は、同時に入力レジスタ230aのすべてに、第2段220からの対応する出力レジスタをロードする。この動作は、集合231の中にある導体230a上にある、制御信号UPDATE−STAGE−3に応じて発生する。
【0258】
230d
図17Aの中の構成部品230dは、138の入力と1つの出力を有するマルチプレクサである。各入力レジスタX1、X2、Y1及びY2は、マルチプレクサ230dに16のビットアドレスを送信する。それぞれの入力レジスタD1とD2は、マルチプレクサ230dに36のビットデータワードを送信し、残りの入力は「0」と「1」である。どの特定的な入力が、マルチプレクサ230Dを通して渡されるようになるのかは、図17Bによって示されるように、フォーマッタ段によって内部的に生成される制御信号CFMD1によって選択される。
【0259】
230e
図17Aの中の構成部品230eは74の入力と単一の出力を有するマルチプレクサである。各入力レジスタD1とD2は、マルチプレクサ230eに36ビットのデータワードを送信し、残りの入力は「0」と「1」である。どの特定の入力がマルチプレクサ230eを通って渡されるようになるのかは、図17Bに図示されるように、フォーマッタ段によって内部に生成される制御信号CFMD2によって選択される。
【0260】
230f
図17Aの中の構成部品230fは、直列入力D及び並列出力Qを有する直列/並列シフトレジスタである。入力Dでの直列データは、マルチプレクサ230dの出力から生じる。その直列データの1ビットは、BITCLKと呼ばれるクロック信号のそれぞれの正の端縁によってレジスタ230fの中に時刻を記録される。BITCLK信号は、集合231の中にある導体231bで発生する。
【0261】
230g
図17Aの中の構成部品230gは、直列入力D及び並列出力Qを有する直列/並列シフトレジスタである。入力Dでの直列データは、マルチプレクサ230eの出力から生じる。その直列データの1ビットが、クロック信号BITCLKのそれぞれの正の端縁によってレジスタ230gの中に時刻を記録される。
【0262】
230h
図17Aの中の構成部品230hは、直列入力Dと並列出力Qを有する直列/並列レジスタである。直列データ入力Dは、図17Bのレジスタ220qから信号CFMD3を受信する。その直列データの1つのビットが、クロック信号BLTCLKのそれぞれの正の端縁によってレジスタ230hの中に時刻を記録される。
【0263】
230i
図17Aの中の構成部品230iは、1組の入力D1とD2、及び対応する組の出力Q1とQ2を有する遅延バッファである。入力D1は、レジスタ230gから並列出力信号を受信し、入力D2は、レジスタ230hから並列出力信号を受信する。D1入力とD2入力での信号は、集合231の中にある導体231b上で発生する、WDCLKと呼ばれるクロック信号のそれぞれの正の端縁に応じて遅延バッファ230iに記憶される。それらの記憶されている信号は、それ以降、クック信号WDCLKの所定数のサイクルの後に出力Q1とQ2で再生される。
【0264】
230j
図17Bの中の構成部品230jは、データ入力Dと出力Qを有するレジスタである。データ入力Dは、図15Gに図示されるように、命令254のワードW1であるPAGEフィールドを受信する。PAGEフィールドは、集合231の中にある導体231dで送信される。
【0265】
230k
図17Bの中の構成部品230kは、データ入力D及び出力Qを有するレジスタである。データ入力Dは、図15Gに示されるように、命令254のワードW1内にあるCOUNTフィールドを受信する。COUNTフィールドは、集合231の中にある導体231eで送信される。
【0266】
230L
図17Bの構成部品230Lは、レジスタ230jと230kのための書き込み制御回路である。この回路は、図15Gの命令254が実行中であることを示す制御信号OP24に応じて、PAGEフィールドをレジスタ230jに書き込み、COUNTフィールドをレジスタ230kに書き込む。信号OP24は、集合231の中の導体231fで発生する。
【0267】
230m
図17bの中の構成部品230mは、データ入力D、出力Q、及びロード制御入力Lを有するレジスタである。このレジスタは、フォーマッタ段の中でアクティブに使用されているページ数を保持し、そのページ数はQ出力のACTIVE−PG信号によって指定される。アクティブページ番号は、導体231aでのUPDATE−STATE−3に応じて、レジスタ230jから受信される。
【0268】
230n
図17Bの中の構成部品230nは、データ入力D、出力Q、クロック入力CK及びロード入力Lを有するカウンタである。このカウンタは、フォーマッタ段の中でアクティブに使用されているカウントを保持し、そのカウントは、Q出力でのACTIVE−CNT信号によって示される。初期カウントは、UPDATE−STAGE−3制御信号に応じてレジスタ230kから受信される。カウンタ230nは、それがクロック信号BITCLKの正の端縁を受信するたびに、それが保持するカウントを1、減分する。
【0269】
230o
図17Bの中の構成部品230oは、カウンタ230n内でのアクティブなカウントがいつゼロに減分されたのかを検出する回路である。それが発生すると、構成部品230oは、制御モジュール240に移動する集合231導体232aでZERO−CNTと呼ばれる制御信号を生成する。
【0270】
230p
構成要素230pはCFMDと呼ばれる複数の制御ワードを記憶するメモリである。これらの制御ワードは、メモリ内の「M」枚のページに区分され、各ページが「N」個の制御ワードを保持する。ある実施態様では、Mは1024であり、Nは256である。メモリ230p内でのある特定のページは、レジスタ230mからのACTIVE−PG信号によってアドレス指定され、アドレス指定されるページの中の1つの特定の制御ワードは、カウンタ230nからACTIVE−CNT信号によって選択される。
【0271】
230q
構成部品230qは、データ入力D、出力Q及びクロック入力CKを有するレジスタである。データ入力Dは、ACTIVE−PG信号及びACTIVE−CNT信号によって制御メモリからそれぞれの特定の制御ワードCFMDを連続して受信する。1つの制御ワードは、それがクロック信号BITCLKの正の端縁を受信するたびにレジスタ220qに記憶される。
【0272】
ここで、図17Aと図17Bの構成部品のすべてがATDI試験信号、ATEDO試験信号、及びAMASK試験信号を生成するために対話する方法が説明されるだろう。当初、図15Gの命令254が、第1段の出力レジスタが、第2段によって処理される準備ができている仮想アドレス及びデータワードを保持することを示すために実行されるだろう。その命令254が実行されると、PAGEフィールドとCOUNTフィールドが、図17Bのレジスタ230jと230kの中に書き込まれるだろう。
【0273】
それ以降、第1段の出力レジスタの内容は、第2段の入力レジスタに転送されるだろう。それから、第2段の入力レジスタの内容は、前述されたように6つの連続する時間期間△T1〜△T6の間に処理されるだろう。それが発生した後、第2段からの出力レジスタの内容が、第3段の入力レジスタに転送される準備ができている。
【0274】
第3段入力レジスタへの実際の転送は、集合231の中の導体231aでのAPG制御装置240からの制御信号UPDATE−STAGE−3に応じて発声する。また、UPDATE−STAGE−3制御信号に応じて、レジスタ230j内のPAGEは、アクティブページレジスタ230mに転送され、レジスタ230k内のCOUNTがカウンタ230nに転送される。
【0275】
カウンタ230nがロードされた後、それが含むカウントは、クロック信号BITCLKの各正の端縁に応じて1減分される。また、カウンタ230nによって生成されるカウントごとに、1つの制御ワードがメモリ230pから読み出され、レジスタ230qに記憶される。
【0276】
レジスタ230qに記憶される各制御ワードは、それぞれマルチプレクサ230d、マルチプレクサ230e、及び直列/並列シフトレジスタ230hに送信される制御信号CFMD1、CFMD2、及びCFMD3に区分される。CFMD1信号は、マルチプレクサ220dにシフトレジスタ230fのために1ビットを選択させ、CFMD2信号はマルチプレクサ230eにシフトレジスタ230gのために1つのビットを選択させ、CFMD3信号はシフトレジスタ230hに直接的に送信される。
【0277】
ビットクロック信号のそれぞれの正の端縁が発生すると、シフトレジスタ230f、230g及び230hは、そのD入力に送信されるビットを記憶する。それから、合計16個のビットがシフトレジスタ230f、230g、及び230hのそれぞれに記憶された後で、それらの並列出力が使用される。具体的には、シフトレジスタ230fの並列出力は、ATDI出力レジスタにロードされ、シフトレジスタ230gと230hの並列出力は、遅延バッファ230iのそれぞれDI入力とD2入力にロードされる。遅延バッファ230iにロードされるそれらの信号は、それ以降、クロック信号WDCKの所定数のサイクル後に、それ以降、出力レジスタAETDOとAMASKに送信される。
【0278】
出力レジスタ230bから、導体201b、201c及び201dが、それぞれ信号ATDI、AETDO、及びAMASKを、図14Bの前述された回路に搬送し、それらの回路が、試験されなければならない集積回路チップに信号を送信する。試験プロセスの間、信号ATDIは、チップの中に直列に書き込まれ、それが信号AETDOとAMASKと直列に比較される直列応答を生じさせる。チップからのこの応答は、信号ATDIがチップの中に書き込まれる時間を基準にして一定の遅延後に発生し、その遅延は、図17Aの遅延バッファ230iによって補償される。
【0279】
シフトレジスタ230f、230g、及び230jを直列にロードし、16ビットのワードでのそれらの出力を出力レジスタ230gに送信する前述のプロセスは、カウンタ230ンがそのカウントをゼロに減分するまで繰り返す様式で進行する。これが発生すると、ゼロ検出回路230oが、導体232aでのZERO−CNT信号を図14AのAPG制御回路240に送信する。
【0280】
APG制御装置240内で、第2段220の状態は、出力レジスタ220bが、第3段230の入力レジスタに転送する準備ができている新しいデータを含むかどうかを判断するために試験される。このような状態が損座右する場合には、APG制御装置240は、導体230aで制御信号UPDATE−STAGE−3を生成する。応じて、第2段220の出力レジスタの内容は、第3段230の入力レジスタに転送される。230jのレジスタ内の別のPAGEは、アクティブなページレジスタ230mに転送され、レジスタ230k内の別のCOUNTは、カウンタ230nに転送される。それから、プロセス全体が、前述されたように続行する。
【0281】
ここで図18を見ると、それは、3つの段が動作するシーケンスを描くタイミング図を示す。図18では、第1段210が、時間間隔T1S2の間に仮想アドレス及び対応するデータの第1集合を生成する。それ以降、時下ン間隔T1S2の間、第2段220が、仮想アドレスと対応するデータの第1集合を、物理アドレスと対応するデータの第1集合に変換する。それ以降、時間間隔T1S3の間、第3段230は、物理アドレスと対応するデータの第1集合を使用して、集積回路チップを試験する直列ビットストリームATDI、AETDO、及びAMASKを生成する。
【0282】
時間間隔TiS1で第1段によって生成される仮想アドレスの集合ごとに、第2段及び第3段が、それぞれ時間間隔TiS2とTiS3デ対応するタスクを実行する。ここえは「1」は任意の正の整数である。このようにして、例えば、仮想ドレスの第3集合及び物理アドレスの第3集合及び出力信号の第3集合は、それぞれ時間間隔T3S1、T3S2、及びT3S3中に生成される。このプロセスは、図18に示されるように、第1段が仮想アドレス及び対応するデータの新しい集合を生成するのを停止するまで3つのドットの集合によって図18に示される。
【0283】
図18の検査は、一定のときに、段210、220、及び230の3つすべてが、アドレスとデータの異なる集合で同時に動作することを示す。例えば、3つの時間間隔T3S1、T2S2、及びT1S3の部分が重複する。時間間隔T3S1の間、第1段210は仮想アドレスと対応するデータの第3の集合を生成する。時間間隔T2S2の間、第2段220が、仮想アドレスと対応するデータの第2集合を、物理アドレスと対応するデータの第2集合に変換しており、時間間隔T1S3の間に、第3段230が、出力信号ATDI、AETDO及びAMASKの第1集合を生成している。
【0284】
図18の検査は、さらに、第3段時間間隔T1S3、T2S3、T3S3等の間に隙間が発生しないことを示す。その結果として、第3段出力信号ATDI、ETDO及びAMASKは、ある時間間隔から次の時間間隔へ連続的である直列ビットストリームで発生する。この連続的な出力を達成するために、第1段の時間間隔T1S1、T1S2等のそれぞれと、第2段の時間間隔S2T1、S2T2等のそれぞれは、第1段の時間間隔のそれぞれより短くなくてはならない。
【0285】
前記制約のために、第1段時間間隔の間では隙間が発生し、第2段時間間隔の間で隙間が発生する。第1段時間間隔間の隙間の間、第1段210は、それが、仮想アドレスと対応するデータの別の集合を生成し続ける前に、一定のイベントが発生するまで留まる待機状態にある。同様に、第2段時間間隔のそれぞれの間の隙間の間、第2段220は、それが、仮想アドレスを物理アドレスに変換するプロセスを進める前に、一定のイベントが発生するまで留まる待機状態にある。
【0286】
第1段210と第2段220が前記待機状態にどのようにして入り、終了するのかが、ここで図19に関連して説明されるだろう。その図では、3つの段のそれぞれに別個の状態図が示されている。図19に描かれている状態のすべて、及びある状態から別の状態への遷移は、図14Aの制御モジュール24Dによって実現される。
【0287】
図19の状態図の多様な点で、図20に図示される2つの状態制御フリップフロップが参照され、それらの2つのフリップフロップ241と242は、図14Aの制御装置240内に含まれる。各フリップフロップは、設定された入力S及びリセットされた入力R、及び出力Rを有する。フリップフロップ241は、第1段出力レジスタ210bの内容が、第2段220によって処理される準備ができているときに設定され、フリップフロップ242は、第2段出力レジスタ220bの内容が、第3段230によって処理される準備ができているときに設定される。これは、それぞれ「STAGE−1 OR’S READY(段1論理和準備完了)」及び「STAGE−2 OR’S READY(段2論理和準備完了)」である2つのフリップフロップ241と242の出力信号によって示される。
【0288】
ここで図19の状態図を考えると、それは第1段210が実行するための命令を待機する状態301を示す。それらの命令は、図15C、図15D、図15E、及び図15Gに関連して前述された命令である。それらの命令の1つは制御装置240によって受信され、その制御装置は、図15Gの命令254が受信されたかどうかを判断するために、参照番号302によって示されるように、試験を行う。命令254が受信されなかった場合には、制御装置240は、図15A〜図15Fに関連して前述されたように、導体211a,211b等で第1段210に制御信号を送信し、応じて、第1段210は受信された命令を実行する。これは、参照番号303によって示される。それから、第1段210が状態301に再び入る。
【0289】
比較して、制御装置240が試験302によって、図15Gの命令が受信されたと判断する場合には、制御装置240は、第1段出力レジスタの内容が、第2段によって処理される準備ができていることを示すフリップフロップ241を設定する。それから、第1段は、それがリセットされるためにフリップフロップ241を待機する状態305に入る。そのリセットが発生すると、第1段は状態301に再び入り、実行するための別の命令を待機する。
【0290】
次に、第2段220の図19の状態図を考えると、それは、第2段が、第1段の出力レジスタの内容が第2段によって処理される準備ができるまで留まる状態310を示す。そのイベントの発生は、設定されているフリップフロップ241によって示される。このようにして、フリップフロップ241が設定されるようになると、第2段220は別の状態311に入る。
【0291】
第2段220は、それが、第3段に転送される必要がある専用の出力レジスタ220bの中に物理アドレス及び対応するデータを有する場合に状態311に留まる。第2段出力レジスタ220b内の物理アドレスとデータの存在は、設定されているフリップフロップ242によって示される。このようにして、状態311は、フリップフロップ242がリセットされるようになるまで終了される。
【0292】
状態311が終了されると、制御装置240は、制御信号UPDATE_STAGE2を導体221a上の第2段に送信し、それはフリップフロップ241をリセットする。これは、参照番号312で示される。それから、UPDATE_STAGE2制御信号に応じて、第2段220は、連続的に物理アドレスと対応するデータの集合を生成し、それはその出力レジスタ220bにそれらを記憶する。これは、参照番号313によって示される。それから、制御装置240は、参照番号314によって示されるようにフリップフロップ242を設定し、それは第2段出力レジスタ220bが第3段230によって処理される準備ができていることを意味する。
【0293】
次に、第3段230について図19の状態図を考えると、それは、第3段が、第2段出力レジスタ220bの内容が第3段によって処理される準備ができるまで留まる状態320を示す。そのイベントの発生は、設定されているフリップフロップ242によって示される。このようにして、状態320は、フリップフロップ242が設定されるときに終了される。それから、参照番号321によって示されるように、制御装置240は、制御信号UPDATE_STAGE3を導体231a上の第3段に送信し、それはフリップフロップ242をリセットする。
【0294】
UPDATE_STAGE3制御信号に応じて、第2段出力レジスタ220bの内容が第3状態の入力レジスタ230aに転送される。また、新しいページは、第3段のレジスタ230jからアクティブページレジスタ23mに転送され、新しいカウントは第3段のレジスタ230kからアクティブカウンタ230nに転送される。それ以降、第3状態230は、前述されたように、アクティブページとアクティブカウントを使用し、出力ビットストリームATDI、AETDO、及びAMASKを連続して生成し、これが参照番号322と343によって示される。そのプロセスは、アクティブカウントが、その時点で第3段が状態320に再び入る、ゼロというカウントに達するまで続行する。
【0295】
状態320に再び入るときにフリップフロップ242が設定される場合、状態320は直ちに終了するだろう。それから、参照番号321、322、及び323によって示されるイベントのすべてが繰り返され、その結果として、第3段によって生成されるビットストリームATDI、AETDO、及びAMASKでは隙間は発生しないだろう。状態320に再び入ると、フリップフロップ242が、事実上設定されることを保証するために、図18の第1段時間間隔及び第2段時間間隔は、第3段時間間隔より短くなる必要がある。
【0296】
ここで図21を見ると、それは、集積回路チップを試験する、出力ビットストリームATDI、ATEDO、及びAMASKを生成するために使用されるプログラムを示す。このプログラムは、図13のメモリ13’に記憶され、それは、図13及び以下の図と関連して、説明された回路構成要素のすべてによって実行される。
【0297】
図21では、描かれているプログラムは、ステップS101〜S115として特定されるステップのシーケンスとして実行される。第1の5つのステップS101〜S105によって、多様な初期値が確立される。それ以降、以下のステップS106〜S115では、その間に出力信号ATDI、ATEDO及びAMASKが生成される2つのプログラムループが実行される。
【0298】
図21のプログラムによって生成される出力信号のすべては、メモリセルの物理的なアレイのためであり、それぞれのメモリセルは物理的な行アドレスと物理的な列アドレスを有する。しかし、図21のプログラムでは、物理的な行と列のアドレスは、仮想行と仮想列のアドレスから生成される。
【0299】
ステップS101によって、開始仮想行アドレスは第1段210の入力レジスタXAに送信され、開始仮想列アドレスは第1段の入力レジスタYAに送信される。その後、ステップS102では、仮想アドレス限度が第1段の境界チェック回路210kに送信される。このステップによって、図15FのレジスタXMINとXMAXには、それぞれ、最小仮想行アドレスと最大仮想行アドレスがロードされ、同様にして、レジスタYMINとYMAXにはそれぞれ最小仮想列アドレスと最大仮想列アドレスがロードされる。
【0300】
次に、ステップS103では、第2段スクランブラ制御レジスタのすべてが初期化される。それらのレジスタは、図16Aの参照番号220iで特定される。このステップによって確立される設定値が、導体221b上でマルチプレクサ220hに送信される制御信号を決定する。
【0301】
次に、ステップS104では、複数の制御信号が、図16Bと図16Dに示される第2段のデータ処理部分で確立される。具体的には、このステップS104は、図16Dに関連して残術された制御信号XSEL、YSEL、LFUNC、MFUNC、DALUOP、OUTSEL、VALSEL、及びROTのすべてを確立する。
【0302】
次に、ステップS105では、それぞれの初期値が図14Bの行カウンタ252と列カウンタ253に送信される。ここでは、行カウンタに送信される初期値は、仮想メモリアレイ内の行数であり、列カウンタに送信される初期値は仮想メモリアレイ内にある列数である。
【0303】
次に、ステップS106では、第1段の入力レジスタXA内にある仮想行アドレスが、第1段の出力レジスタX1A’とX1D’に送信される。それから、ステップS107で、第1段の入力レジスタYA内にある仮想列アドレスが、出力レジスタY1A’とY1D’に送信される。やはりステップ107によって、レジスタYA内にある仮想列アドレスは1増分される。これらの演算は、図15Cの命令251を実行することによって達成される。
【0304】
次に、ステップS108では、図15Gの命令254が実行され、その結果としてフリップフロップ241が設定される。これは、第1段210の出力レジスタの内容が第2段220によって処理される準備ができていることを示す。その結果として、第2段220は、図19の段の2つの状態図に関連して前述されたように、第1段出力レジスタの内容を記憶し、処理するために進むだろう。それ以降、第2段220の出力レジスタの内容は第3段による処理のために準備ができるだろう。それが起こると、第3段230は、図19の第3段状態図に関連して前述されたように、第2段出力レジスタの内容を記憶し、処理するだろう。
【0305】
次に、列カウンタ253内のカウントが、図14Bの状態機械40によって1減分されるステップS109が実行される。残りのステップS110〜S115だけではなく、このステップS109も、ステップS108によって開始された第2段220と第3段230のための多様なタスクと並列で実行される。
【0306】
次に、ステップS110では、図14Bの状態機械40’が、それがゼロというカウントに達したかどうかを確かめるために列カウンタ242を試験する。カウントがゼロではない場合には、ステップS111が実行される。そこで、図14Bの状態機械40’が、第1段出力レジスタの内容が、段S106とS107によって確立されるように、第1段の入力レジスタに転送されたかどうかを判断するために試験を行う。この試験は、図20のフリップフロップ241の出力信号を調べることによって行われる。フリップフロップ241が設定される場合、ステップS111は、フリップフロップ241がリセットされるまで繰り返される。それが発生すると、分岐はステップS106まで戻される。
【0307】
比較して、列カウンタ253のカウントがステップS110でゼロである場合には、ステップS112に分岐される。そこで、第1段の入力レジスタXA内にある業アドレスが1増分される。それから、ステップS113では、行カウンタ252のカウントが1減分される。
【0308】
次に、ステップS114では、図14Bの状態機械40’が、行カウンタ252内のカウントを試験する。そのカウントがゼロに等しくならない場合には、列カウンタ253が、仮想メモリアレイ内にある列の数で再初期化されるステップS115が実行される。それから、ステップS111に分岐される。それ以外の場合、行カウンタのカウントがステップS114でゼロに等しくなると、試験信号は、アレイ内のあらゆるセルについて生成された。そしてこのようにして、試験信号の生成は完了する。
【0309】
図21のプログラム内の各ステップは、図13のメモリ13内の1つまたは複数の命令によって指定される。例えば、ステップS101でロードされる初期値は、図15Dの命令252の2つによって指定される。同様に、ステップS102の最小と最大のアドレス限度は、図15Eの命令253の2つによって指定される。同様に、ステップS103のマルチプレクサ制御信号は、図16Eの命令262の16によってXレジスタに指定され、Yレジスタ用のマルチプレクサ制御信号はそれらの命令の16以上によって指定される。さらに、ステップS104で確立さえる制御信号は、図16Bの単一命令261によって定義される。
【0310】
ステップS110、S111、及びS114で発生する試験及び分岐を実行するために、図11の条件付きジャンプ命令32が実行される。それから、行カウンタ252及び列カウンタ253のロード及び減分を実行するために、図22の別の命令265が実行される。この命令265は、OP=35という演算コードによって特定される。
【0311】
命令265は、COUNT、DECLD、及びROWCOLと呼ばれる3つのフィールドを有する。ROWCOLフィールドは、行カウンタ252を選択する「0」という値、及び列カウンタ253を選択する「1」という値を有する。DECLDフィールドは、減分演算を指定する「0」という値、及びロード演算を指定する「1」という値を有する。ロード演算が指定される場合には、COUNTフィールドがROWCOLフィールドによって特定されるカウンタにロードされる。減分演算が指定される場合には、ROWCOLフィールドによって特定されるカウンタが1減分される。
【0312】
図21の前述されたプログラムの1つの特定の特徴とは、それぞれが行と列の異なる物理的なレイアウトを有する任意の数のメモリアレイについて同じプログラムが使用できるという点である。この特徴は、任意の1つのアレイの特定の物理的なレイアウトが、段2のマルチプレクサ制御レジスタが初期化されるステップS103で対処されるために達成される。それらのレジスタを適切に初期化することによって、各仮想アドレスは、図16Aのマルチプレクサ220h及びメモリ220Lと220mを介して、任意の所望される物理アドレスに変換される。
【0313】
図21のプログラムの別の特徴は、それが、ステップS104を実現する命令を単に変更することによって、多くの異なるデータパターンについて試験信号ATDI、AETDO、及びAMASKを生成できるという点である。例えば、ステップS104がDALUバスにレジスタX1D内のビットゼロを送信する、図16Dの1つの命令261で実現される場合、メモリアレイの中のそれぞれの偶数番号の行が「0」で作成され、アレイの中でそれぞれの基数番号の行が「1」で作成されるだろう。比較して、ステップS104が、レジスタY1D内のビットゼロの逆数をDALUバスに送信する図16Dの1つの命令261によって実現される場合には、アレイのそれぞれの基数番号の列が「0」で作成され、アレイのそれぞれの偶数番号の列が「1」で作成されるだろう。
【0314】
また、算術パターン生成器を介した試験信号ATDI、AETDO、及びAMASKの生成が、図13のシステムのただ1つの運転モードの間にだけ発生することが強調されなければならない。別の運転モードでは、試験信号TDI、ETDO、及びMASKはメモリ13’から読み取られ、試験されなければならないチップに送信される。これらの2つの運転モードでは、図5、図6、図8、図9、及び図10に図示される回路構成要素のすべては時分割される。このようにして、どちらかの運転モードでは、TMS信号が状態機械40’によって生成され、レジスタ47に送信される。レジスタ44〜48のビットストリームのワードは、チップドライバ回路11のすべてに導体12a上で一斉送信され、チップドライバ回路は、試験されるチップからの予想される応答を、それらのチップからの実際の応答と比較する。
【0315】
本発明の1つの好ましい実施態様は、ここで詳細に説明されてきた。しかしながら、さらに、多様な変更及び修正が、発明の性質及び精神から逸脱することなく、描かれた好ましい実施態様の詳細に加えることができる。
【0316】
例えば、図13〜図22に説明されるアルゴリズムパターン生成器を用いると、ビットストリームATDI、AETDO及びAMASKのすべて3つが生成される。ただし、改良策として、それらのビットストリームの1つだけまたは2つが生成できる。この改良策を用いると、未使用のビットストリームを作成する回路構成要素は排除することができる。このようにして、例えば、ATDIビットストリームだけが生成され、ATDOビットストリームおよびAMASKビットストリームを生成するために使用される回路構成要素は排除できるだろう。
【0317】
同様に、図14Aでは、アルゴリズムパターン生成器の好ましい実施態様が、3つの段を含むと図示されている。しかしながら、改良策としては、それらの段の数は、減少または増加できるだろう。例えば、なんらかの新しい演算を実行するための追加段は、第2段と第3段の間に挿入できるだろう。代わりに、第2段及び第3段によって実行される関数は、単一の段の中に組み込むことができるだろう。
【0318】
また、改良策として、アルゴリズムパターン生成器の3つの段の任意の1つは、違うふうに構築される類似した段と置換できるだろう。このようにしてここに開示されているAPGの各段は、別のアルゴリズムパターン生成器内で使用できる別個のモジュールである。
【0319】
また、別の改良策として、演算パターン生成器の各段によって実行される多様な命令は変更することができる。例えば、図15Cでは、第1段によって実行される多様な関数を定義する、複数のフィールドが示され、それらのフィールドは第1段が実行する特定の演算を変更するために修正できる。同様にして、図16Dでは、第2段によって実行される関数を定義する複数のフィールドが示され、それらのフィールドは、第2段が実行する関数を変更するために修正できる。
【0320】
その結果、発明が、示されている好ましい実施態様の詳細のすべてに制限されるのではなく、添付請求項によって定義されることが理解されるべきである。
【図面の簡単な説明】
【図1】集積回路チップを試験するためのベースシステムのブロック図を示す。そして、そのベースシステムは、本発明に従って、図13〜図22でここに示されるように修正される。
【図2】図1のチップ試験システムがどのようにして物理的に実装されるのかを示す。
【図3】集積回路チップを試験するために、図1のシステムによって実行される3つの異なる種類の可変長命令を示す。
【図4】図3の命令が試験プログラムを形成するためにどのようにして順番に配列されるのかの例を示す。
【図5】図1のシステムで選択可能な量発生するパターン生成器の内部詳細を示す。
【図6】図1のシステムで選択可能な量で発生するチップドライバ回路の内部詳細を示す。
【図7】図5のパターン生成器及び図6のチップドライバ回路が図1のシステムでどのように対話するのかを示す。
【図8】試験されたチップ内のエラーが検出される図1の各チップドライバ回路上の追加回路構成要素を示す。
【図9】複数のチップが、プログラム制御下の選択可能な部分集合の中で同時にまたは連続して試験される、図1の各ドライバ回路の追加回路構成要素を示す。
【図10】図9の回路構成要素の一部である制御メモリの構造を示す。
【図11】図1のチップ試験システムによって実行される3つの追加の種類の命令を示す。
【図12】図3に示されている3つの命令に対して加えることのできる修正を示す。
【図13】本発明に従って集積回路チップを試験する改良されたシステムを示す。そしてこの改良されたシステムは、アルゴリズムパターン生成器(APG)を図1のベースシステムに組み込むことによって得られる。
【図14A】図13のAPGのための好ましい内部構造を示す。
【図14B】図14Aのアルゴリズムパターン生成器を図13のシステムの残りに結合する、図13の中のモジュール12’の詳細を示す。
【図15A】図14AのAPGの第1段のある部分の詳細な論理図である。
【図15B】図14AのAPGの第1段の別の部分の詳細な論理図である。
【図15C】図15Aと図15Bの第1段論理回路によって実行されるある命令を示す。
【図15D】図15Aと図15Bの第1段論理回路によって実行される別の命令を示す。
【図15E】図15Aと図15Bの第1段論理回路によって実行される第3命令を示す。
【図15F】図15Aの第1段論理回路内に含まれる境界チェック回路の追加の詳細を示す。
【図15G】図14AのAPG内の第1段によって部分的に、及び図14AのAPGの第2段と第3段によっても部分的に実行される命令を示す。
【図16A】図14AのAPG内の第2段のある部分の詳細な論理図である。
【図16B】図14AのAPG内の第2段の別の部分の詳細な論理図である。
【図16C】図14AのAPG内の第2段の依然として別の部分の詳細な論理図である。
【図16D】図16A〜図16Cの第2段論理回路によって実行される命令を示す。
【図16E】図16C〜図16Eの第2段論理回路によって実行される別の命令を示す。
【図16F】図16A〜図16Cの第2段論理回路によって実行される依然として別の命令を示す。
【図16G】図16A〜図16Cの第2段論理回路によって実行される依然として別の命令を示す。
【図17A】APGの第3段のある部分の詳細な論理図である。
【図17B】図14aのAPGの第3段の別の部分の詳細な論理図である。
【図18】図14Aの第1段、第2段、及び第3段のための動作のシーケンスを示すタイミング図である。
【図19】図14のAPGの第1段、第2段及び第3段のためのそれぞれの状態図を示す。
【図20】図19の状態図に参照される2状態制御フリップフロップを示す。
【図21】図13のシステムのメモリ内に記憶されるAPG用のプログラムを示す。
【図22】図21のプログラム内での図15C、図15D、図15E、図15G、図16D、図16E、図16F及び図16Gの命令とともに使用される別の命令を示す。
Claims (12)
- 集積回路チップを試験するための出力信号を生成する多段を有するタイプのアルゴリズムパターン生成器(100)であって、
前記多段が、互いに直列に結合される初期段(210)、中間段(220)および出力段(230)を含み、
前記初期段(210)が、出力レジスタ(X1A’〜Z1A’)の第1集合の中の仮想アドレスの第1シーケンス、及び出力レジスタ(X2A’〜Z2A’)の第2集合の中の仮想アドレスの第2シーケンスを同時に生成する回路(210a〜210p)を有し、
前記中間段(220)が、前記初期段(210)の前記出力レジスタからの前記仮想アドレスを記憶する入力レジスタ(X1A〜Z1A、X2A〜Z2A)を有し、記憶されている仮想アドレスを物理アドレスの集合に変換する回路(220a〜220zi)を有し、
前記出力段(230)が、前記中間段からの物理アドレスの各集合を連続して記憶する入力レジスタ(230a)を有し、物理アドレスの記憶されている集合からビットを選択することによって、前記チップを試験するために前記出力信号を生成する回路(230b〜230q)を有することを特徴とする、集積回路チップを試験するためのアルゴリズムパターン生成器(200)。 - 前記仮想アドレスが、仮説仮想メモリ内のアドレスであり、前記物理アドレスが、前記出力信号で試験される実際の物理メモリ内のアドレスである、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記初期段と前記中間段と前記出力段に、前記アドレスの異なる集合で同時に動作するように命令する、前記初期段(210)及び前記中間段(220)及び前記出力段(230)に結合される制御モジュール(240)をさらに含む、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記初期段(210)が、前記初期段(210)が前記仮想アドレスを生成するのを停止するある特定の命令(302)に応えて入る待機状態(305)を有する、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記初期段(210)が、前記待機状態(305)を終了し、前記初期段(210)から前記仮想アドレスの集合を記憶する前記中間段(220)に応えて前記仮想アドレスを生成し続ける、請求項4に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記中間段(220)が、前記中間段(220)が、前記仮想アドレスの記憶されている集合を前記物理アドレスの集合に変換することを終了するときに入る待機状態(311)を有する、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記中間段(220)が前記待機状態(311)を終了し、前記中間段(220)からの前記物理アドレスの集合を記憶する前記出力段(230)に応じて前記仮想アドレスを変換し続ける、請求項6に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記出力段(230)が、前記出力段(230)が、そのときに、前記中間段(220)が物理アドレスの別の集合を生成していない場合に、物理アドレスの前記記憶されている集合から特定のビット数(322、323)を選択することを終了したときに入る待機状態(320)を有する、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記特定の数(323)がプログラム可能であり、前記物理アドレスの集合ごとに命令によって確立される、請求項8に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記出力段(230)が、ある特定の時間間隔(T1S3)内の物理アドレスの記憶されている集合から前記ビットを選択し、と同時に前記初期段(210)及び中間段(220)がそれぞれ、前記仮想アドレスの1つの集合及び前記物理アドレスの別の集合を、さらに短い時間間隔(T3S1、t2S2)内であるが生成する、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記仮想アドレスが、命令(301、302、303)によってプログラムされる可変数の前記仮想アドレスを含む、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
- 前記初期段(210)が、前記仮想アドレスとともに第1データワードを生成し、前記中間段(220)が前記第1データワードから第2データワードを生成し、前記出力段(230)が、前記第2データワードと物理アドレスの両方からビットを選択することによって前記出力信号を生成する、請求項1に記載の集積回路チップを試験するための多段アルゴリズムパターン生成器(200)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/432,965 US6415408B1 (en) | 1999-11-03 | 1999-11-03 | Multi-stage algorithmic pattern generator for testing IC chips |
US09/432,965 | 1999-11-03 | ||
PCT/US2000/029301 WO2001033236A1 (en) | 1999-11-03 | 2000-10-24 | Multi-stage algorithmic pattern generator for testing ic chips |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003513285A JP2003513285A (ja) | 2003-04-08 |
JP3591646B2 true JP3591646B2 (ja) | 2004-11-24 |
Family
ID=23718291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001535069A Expired - Fee Related JP3591646B2 (ja) | 1999-11-03 | 2000-10-24 | Icチップを試験するための多段アルゴリズムパターン生成器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6415408B1 (ja) |
EP (1) | EP1226444B1 (ja) |
JP (1) | JP3591646B2 (ja) |
DE (1) | DE60006992D1 (ja) |
WO (1) | WO2001033236A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934900B1 (en) * | 2001-06-25 | 2005-08-23 | Global Unichip Corporation | Test pattern generator for SRAM and DRAM |
KR100487535B1 (ko) * | 2002-08-14 | 2005-05-03 | 삼성전자주식회사 | 다른 종류의 반도체 장치들을 동시에 테스트하는 시스템 |
DE10322541A1 (de) * | 2003-05-19 | 2004-12-16 | Infineon Technologies Ag | Speicherbaustein mit integrierter Adressscramblereinheit und Verfahren zum Verscrambeln einer Adresse in einem integrierten Speicher |
US7228478B2 (en) * | 2004-08-11 | 2007-06-05 | International Business Machines Corporation | Built-in self-test (BIST) for high performance circuits |
JP5843358B2 (ja) * | 2010-01-15 | 2016-01-13 | 国立大学法人 奈良先端科学技術大学院大学 | 半導体集積回路のテストパターン生成方法、プログラム、およびコンピュータ読み取り可能な記録媒体 |
US9202592B2 (en) * | 2013-12-30 | 2015-12-01 | Unisys Corporation | Systems and methods for memory management in a dynamic translation computer system |
US9360523B2 (en) * | 2014-04-18 | 2016-06-07 | Breker Verification Systems | Display in a graphical format of test results generated using scenario models |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359569A (en) * | 1991-10-29 | 1994-10-25 | Hitachi Ltd. | Semiconductor memory |
US5390129A (en) * | 1992-07-06 | 1995-02-14 | Motay Electronics, Inc. | Universal burn-in driver system and method therefor |
US5696929A (en) * | 1995-10-03 | 1997-12-09 | Intel Corporation | Flash EEPROM main memory in a computer system |
JPH09244961A (ja) * | 1996-03-08 | 1997-09-19 | Mitsubishi Electric Corp | フラッシュata−pcカード |
US5883905A (en) * | 1997-02-18 | 1999-03-16 | Schlumberger Technologies, Inc. | Pattern generator with extended register programming |
US5923675A (en) * | 1997-02-20 | 1999-07-13 | Teradyne, Inc. | Semiconductor tester for testing devices with embedded memory |
-
1999
- 1999-11-03 US US09/432,965 patent/US6415408B1/en not_active Expired - Fee Related
-
2000
- 2000-10-24 JP JP2001535069A patent/JP3591646B2/ja not_active Expired - Fee Related
- 2000-10-24 EP EP00920251A patent/EP1226444B1/en not_active Expired - Lifetime
- 2000-10-24 WO PCT/US2000/029301 patent/WO2001033236A1/en active Search and Examination
- 2000-10-24 DE DE60006992T patent/DE60006992D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1226444B1 (en) | 2003-12-03 |
DE60006992D1 (de) | 2004-01-15 |
US6415408B1 (en) | 2002-07-02 |
EP1226444A1 (en) | 2002-07-31 |
WO2001033236A1 (en) | 2001-05-10 |
JP2003513285A (ja) | 2003-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1212629B1 (en) | Tester for concurrently testing multiple chips | |
JP3591647B2 (ja) | 記憶されているビットストリームまたは内部で生成されたビットストリームで選択的にicチップを試験するためのシステム | |
US5883905A (en) | Pattern generator with extended register programming | |
JP3762701B2 (ja) | Icチップを試験するためのアルゴリズム試験パターン生成器 | |
JP3591646B2 (ja) | Icチップを試験するための多段アルゴリズムパターン生成器 | |
US9575122B2 (en) | Interface with write strobe sequencer, first and second series registers | |
US4870346A (en) | Distributed pseudo random sequence control with universal polynomial function generator for LSI/VLSI test systems | |
US7447962B2 (en) | JTAG interface using existing I/O bus | |
US6477676B1 (en) | Intermediate stage of a multi-stage algorithmic pattern generator for testing IC chips | |
CN101009141B (zh) | 半导体存储设备 | |
US5872797A (en) | Burn-in signal pattern generator | |
US6480981B1 (en) | Output stage of a multi-stage algorithmic pattern generator for testing IC chips | |
US6363504B1 (en) | Electronic system for testing a set of multiple chips concurrently or sequentially in selectable subsets under program control to limit chip power dissipation | |
EP1212628B1 (en) | Variable length pattern generator for chip tester system | |
JPH1164469A (ja) | 半導体試験装置用パターン発生器 | |
CN117872103B (zh) | 一种通用测试芯粒 | |
EP4194866A1 (en) | Scan test in a single-wire bus circuit | |
KR960016139B1 (ko) | 바운더리 스캔 구조의 3tdi(3테스트 데이터 입력)을 집적 회로에 입력하는 장치 | |
KR20080066219A (ko) | 반도체 메모리장치의 테스트 모드 셋팅 방법 및 회로 | |
KR960015560B1 (ko) | 바운더리 스캔 구조의 2tdi(2테스트 데이터 입력)을 집적 회로에 입력하는 장치 | |
JPH04282476A (ja) | プログラマブルロジックデバイス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040818 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |