本発明とその更なる特徴及び効果との一層完全な理解のため、添付の図面に関連する以下の記載が参照される。
本発明の実施形態には、自動化された自動試験装置と試験されるべき1つ以上の集積回路との間で動作するように構成された試験モジュールが含まれる。試験モジュールは、自動試験装置からデータ、アドレス及び命令を受信し、これらのデータ及び命令を用いて更なるデータ及びアドレスを生成するように構成されている。試験モジュールは更に、生成したデータ及びアドレスを用いて集積回路を試験し、集積回路から試験結果を受け取り、且つこれらの試験結果を自動試験装置に報告するように構成されている。
自動試験装置と試験モジュールとの間の信号伝達は、必要に応じて、試験モジュールと検査される集積回路との間の信号伝達とは異なるクロック周波数で行われる。斯くして、試験モジュールの使用により、第1の周波数で動作するように構成された自動試験装置は、より高い第2の周波数で集積回路を試験するために使用されることが可能である。例えば、記憶デバイスを150MHzで試験するように構成された自動試験装置が、300MHz又はそれ以上で記憶デバイスを試験するために使用され得る。
自動試験装置からの信号伝達より高い周波数で記憶デバイスを試験するため、試験モジュールは、自動試験装置から受信したアドレス及び試験用データに応じたメモリアドレス及び試験用データを自動的に生成するように構成された部品を含んでいる。ここで更に説明されるように、これらの部品は必要に応じて、多様な試験パターンを生成するようにプログラム可能なものにされる。
試験モジュールは更に、検査される集積回路からデータを受信し、且つこれら受信データの概要を自動試験装置に報告するか、受信データを期待データと比較し該比較の結果を自動試験装置に報告するかの何れかを行うように構成された部品を含んでいる。故に、試験モジュールは試験結果を第1の周波数で受信し、これらの結果に応答して、場合によってこの第1の周波数より低い第2の周波数で自動試験装置に信号伝達するように構成されている。
一部の実施形態において、試験モジュールは更に、該試験モジュールから検査対象の集積回路に該集積回路を試験するのに適切な間隔でコマンドを伝達するように構成されたコマンドスケジューラを含んでいる。例えば、集積回路が3クロックサイクル内に2つのコマンドを受信することを集積回路の完全な試験が要求する場合、試験モジュールは自動試験装置からこれらのコマンドを別の間隔で受信する場合であっても、コマンドスケジューラはこれらのコマンドを上記の要求される間隔で伝達するようにプログラムされ得る。
説明の目的で、ここでは記憶デバイスの試験について述べる。しかしながら、本発明の範囲及び提示される実施例は、論理デバイス、プロセッサ、アナログ回路、特定用途向け集積回路(ASIC)、通信回路又は光回路などを含むその他の種類の集積回路にも広げられるものである。さらに、本発明は、例えばシステム・オン・チップ(SoC)、システム・イン・パッケージ(SiP)、システム・イン・モジュール(SiM)、モジュール・イン・モジュール(MiM)、パッケージ・オーバー・パッケージ(POP)、パッケージ・イン・パッケージ(PiP)等の回路アセンブリの試験にも適用されるものである。これらのアセンブリの1つを参照する実施例は、その他のアセンブリにも適用可能なものである。
図1は、本発明の実施形態に従った、全体として100で指し示される試験システムのブロック図である。試験システム100は、集積回路を第1の周波数で試験するように構成された自動試験装置(ATE)110、及びATE110と検査対象の集積回路(IC)130との間のインターフェースとして機能するように構成された試験モジュール120を含んでいる。一部の実施形態において、試験モジュール120及びIC130は同一の電子デバイスに含まれている。例えば、試験モジュール120及びIC130の双方は同一のSiP内にあってもよい。一部の実施形態において、試験モジュール120及びIC130は同一のシリコンダイに含まれている。一部の実施形態において、試験モジュール120はIC130とは別個のデバイスである。
試験システム100は、必要に応じて、基準クロック信号を試験モジュール120に供給するように構成されたクロック140を更に含んでいる。ATE110は、Nチャネルインターフェース115を介して試験モジュール120と第1の周波数で通信するように構成されており、試験モジュール120は、Mチャネルインターフェース125を介してIC130と通信するように構成されている。一部の実施形態において、Nチャネルインターフェース115のチャネル数は、Mチャネルインターフェース125のチャネル数と同一である。一部の実施形態において、Mチャネルインターフェース125のチャネル数は、Nチャネルインターフェース115のチャネル数の倍数である。Nチャネルインターフェース115及びMチャネルインターフェース125は、例えば、試験用パッド、試験用プローブ、ケーブル、試験用ピン又はその他のコネクタを含むことができる。一部の実施形態において、Mチャネルインターフェース125は、システム・オン・チップ(SoC)、システム・イン・パッケージ(SiP)、システム・イン・モジュール(SiM)、モジュール・イン・モジュール(MiM)、パッケージ・オーバー・パッケージ(POP)、パッケージ・イン・パッケージ(PiP)又はこれらに類するものの内部接続を含んでいる。必要に応じて、試験モジュール120はIC130やATE110から分離可能である。
ATE110は、場合により、集積回路を試験するように構成された従来の自動試験装置である。例えば、ATE110はアドバンテスト社、テラダイン社又はアジレントテクノロジー社によって現在提供されている試験装置を含み得る。ATE110は、試験中に集積回路と信号伝達を行うように構成された最大周波数によって特徴付けられる。
ATE110は、典型的に、ユーザによって指示される特定の試験ルーチンを実行するようにプログラム可能である。これらの試験ルーチンは、Nチャネルインターフェース115を介して試験用のデータ、コマンド、及び場合によりアドレスを送信すること(すなわち、書き込むこと)を含んでいる。これらの試験用データ、コマンド及びアドレスは試験モジュール120によって受信される。ATE110は更に、Nチャネルインターフェース115を介して試験結果を受信し(すなわち、読み出し)、受信した結果を期待された結果と比較し、且つ受信した結果と期待された結果との差を報告するように構成されている。
他の実施形態においては、ATE110は試験モジュール120を1つのモジュールとして含むように構成されている。例えば、一部の実施形態において、試験モジュール120は試験の技術的要求(例えば、試験周波数、フォームファクタ、コマンド用語など)が進化すると交換及び/又はアップグレードが為され得る交換可能な部品としてATE110に含まれている。故に、一実施形態において、ATE110は試験モジュール120の要素を交換することによってアップグレードされるように構成されている。
試験モジュール120は、Nチャネルインターフェース115を介してATE110から試験用データ、コマンド、及び場合によりアドレスを受信し、この受信した情報を用いてIC130の試験用の更なる試験用データと場合により更なるアドレスとを生成するように構成されている。例えば、一部の実施形態において、試験モジュール120はATE110からメモリ制御コマンド、メモリの試験用データ、及びメモリアドレスを受け取るように構成されている。受信したメモリ制御コマンド、データ及びメモリアドレスは、メモリを試験するための更なるデータ及び更なるメモリアドレスを生成するために使用される。コマンド、更なるデータ及び更なるメモリアドレスは、試験モジュール120からMチャネルインターフェース125を介してIC130に伝達される。
試験モジュール120は更に、IC130から試験結果を受信し(すなわち、読み出し)、受信した試験結果を処理するように構成されている。一部の実施形態において、試験モジュール120はこの処理の結果をATE110に報告するように構成されている。一部の実施形態において、試験モジュール120は受信した試験結果の圧縮版をATE110に伝達するように構成されている。試験モジュール120の更なる詳細については、本明細書中の別の箇所で説明する。
IC130は試験モジュール120を介して試験される集積回路である。IC130は必ずしも、試験に先立って試験システム100の一部として含まれている必要はない。IC130は場合により、例えば特定用途向け集積回路(ASIC)、プロセッサ、マイクロプロセッサ、マイクロコントローラ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラム可能論理デバイス(PLD)、結合プログラム可能論理デバイス(CPLD)等の論理デバイスである。IC130は他の例では、アナログデバイス、モジュール、回路基板又は記憶デバイス等として実施されてもよい。
記憶デバイスであるとして、IC130は、例えばスタティック・ランダムアクセスメモリ(SRAM)、ダイナミック・ランダムアクセスメモリ(DRAM)、同期型DRAM(SDRAM)、不揮発性ランダムアクセスメモリ(NVRAM)、消去可能プログラマブルROM(EPROM)や電気的消去可能プログラマブルROM(EEPROM)等の読み出し専用メモリ(ROM)、及びフラッシュメモリ等のICメモリチップ、又はダブルデータレート(DDR)やDDR2等の好適なフォーマット若しくはプロトコルの下で動作する何らかの記憶デバイスとし得る。記憶デバイスは様々な構成(例えば、X32、X16、X8又はX4)で構成されることができ、また例えば行列状に配置された複数の記憶セルを有していてもよい。記憶セルはトランジスタ、キャパシタ、プログラム可能ヒューズ等を用いて実装されることができる。
モジュールであるとして、IC130は、システム・イン・パッケージ(SiP)、パッケージ・イン・パッケージ(PiP)、又はシステム・オン・チップ(SoC)とし得る。IC130はまたSoC、SiP及びPiPの組み合わせであってもよい。IC130は、例えば標準的なボール・グリッド・アレイ(BGA)又は薄型クワッド・フラット・パッケージ(TQFP)等の好適なパッケージ内に配置されていてもよい。パッケージは更に、例えば数例挙げると、シングル・インライン・パッケージ(SIP)、デュアル・インライン・パッケージ(DIP)、ジグザグ・インライン・パッケージ(ZIP)、プラスチック・リーディド・チップ・キャリア(PLCC)、スモール・アウトライン・パッケージ(SOP)、薄型SOP(TSOP)、フラットパック、及びクワッド・フラット・パッケージ(QFP)等の様々な表面実装技術を利用していてもよく、また様々なリード(例えばJ型リード、ガルウィング型リード)又はBGA型コネクタを利用していてもよい。
クロック140は、試験モジュール120とIC130との間での信号伝達に使用されるクロック信号を試験モジュール120に供給するように構成されている。クロック140により生成されたクロック信号は、典型的に、ATE110と試験モジュール120との間での信号伝達に使用されるクロック信号とは異なる。故に、Nチャネルインターフェース115はMチャネルインターフェース125とは異なる(例えば、より高い)周波数で動作し得る。クロック140により供給されるクロック信号は、場合によって、ATE110によって使用されるクロック信号の倍数である。クロック140は位相ロックループ、水晶発振器などを含むことができる。クロック140から受け取られるクロック信号は、典型的に、技術的に知られた様々な方法の何れかを用いて、ATE110によって使用されるクロック信号に同期化される。クロック140は、試験モジュール120がIC130との信号伝達に使用するクロック信号をATE110から受け取るクロック信号に基づいて生成するように構成されているときには随意的なものである。例えば、試験モジュール120は、一部の実施形態において、ATE110から受け取ったクロック信号を1.5倍、2倍又はそれ以上にするように構成されたロジックを含んでいる。
図2は、IC130が記憶デバイスであるときの、本発明の実施形態に従った試験モジュール120のブロック図である。図2に示された実施形態は、ATE110と信号伝達するように構成された幾つかの部品を含んでいる。これらの部品には、クロックマネージャ202、コマンドユニット204、試験制御器206及び試験DQ208が含まれる。図2に示された実施形態はまた、IC130と信号伝達するように構成された幾つかの部品を含んでいる。これらの部品には、クロックドライバ220、コマンドドライバ222、アドレスドライバ224及びデータインターフェース226が含まれる。一緒になって、これらの部品はメモリマネージャの機能と同様の機能を果たす。試験モジュール120は、ATE110と信号伝達するように構成された部品とIC130と信号伝達するように構成された部品との間に、アドレス生成器210、パターン生成ロジック214、試験モードレジスタ212、データ書込みロジック216及びデータ読出しロジック218を含んでいる。図2に例示された部品はソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせを含んでいてもよい。
クロックマネージャ202は試験用クロック(TCK)信号を例えばATE110から受信するように構成されている。この試験用クロック信号は、典型的に、集積回路の試験のためにATE110によって生成されたクロック信号である。クロックマネージャ202はまた、場合により、位相ロックループクロック(PLLCK)信号をクロック140から受信するように構成されている。TCK信号及び/又はPLLCK信号に応答して、クロックマネージャ202は1つ以上の他のクロック信号(例えば、CK0、CK、CK\)を生成する。これら他のクロック信号の一部は、受信された試験用クロック(TCK)信号より高い周波数を有していてもよい。斯くして、試験用モジュール120は、ATE110のクロック周波数より高いクロック周波数で動作するICデバイスを試験するように構成されることができる。これはICデバイスが、例えば旧式の試験装置を用いて、完全に試験されることを可能にする。クロックマネージャ202からのクロック信号出力は試験モジュール120内のその他の部品に供給され得る。このような部品には、クロックドライバ220、コマンドドライバ222、アドレスドライバ224、アドレス生成器210、データ書込みロジック216及びデータ読出しロジック218が含まれる。クロックマネージャ202の出力はクロックドライバ220を介してIC130に伝えられることが可能である。
コマンドユニット204は、様々な試験機能信号(例えば、TCKE、TDQS、TCS\、TRAS\、TCAS\、TWE\、TBA[0:2]、TA10)を受信し、これら機能信号を処理したり、あるいは試験モジュール120内のその他の部品に転送したりするように構成されている。例えば、コマンドユニット204は、コマンドドライバ222を介してIC130に渡されるコマンド信号を生成するように構成されている。このようなコマンド信号には、例えば、CKE、CS、RAS\、CAS\、WE\、BA[0:2]が含まれる。他の例においては、コマンドユニット204は、パターン生成ロジック214及びアドレス生成器210によって使用される、それぞれ、データ生成コマンド及びアドレス生成コマンドを受信するように構成されている。アドレス生成器210及びパターン生成ロジック214の動作の更なる詳細については、本明細書中の別の箇所で説明する。
一部の実施形態において、コマンドユニット204によって受信される試験機能信号には、セット(SET)、ロード(LOAD)及びコマンド(CMD)が含まれる。入力データ源及びセット信号として、コマンド(CMD)ピンを用いて、4ビット幅のストリームがレジスタに記録されることが可能である。例えば、行アクティブコマンドは一連の4つのシリアルビットb0011とすることができ、読出しコマンドはb0101とすることができる。セット信号が高(HIGH)であるときシリアルビットはTCK信号の上昇エッジに記録されることができる。一実施形態において、CMD入力を受け取るために4つのレジスタと2ビットのカウンタが使用され得る。
試験制御器206は、モジュールを試験モード、プログラム試験モード(又はフェーズ)に設定するために試験(TEST)、セット及びロード信号を受信し、且つ試験用アドレス及び/又は試験用ベクトルをロードあるいは有効化するように構成されている。また、一部の実施形態において、試験制御器206は更に、データスクランブルパターン、行アドレススクランブルパターン及び列アドレススクランブルパターンを記録するように構成されている。ここで更に説明されるように、これらのパターンは試験用アドレス及び試験用データを生成するために使用される。試験制御器206は、必要に応じて更なる処理又は使用のために試験用のコード、ベクトル、パターン等を記録あるいは転送するように作用する1つ以上の信号を試験モードレジスタ212に提供するように構成されている。例えば、試験、セット及びロード信号はATE110から試験モジュール120にアドレス生成パターンを伝達するために使用されてもよい。アドレス生成パターンは試験モードレジスタ212に記録され、必要時にアドレス生成器210によって読み出される。同様に、試験、セット及びロード信号はATE110から試験モードレジスタ212にデータスクランブルパターンを伝達するために使用されてもよい。データスクランブルパターンは、ここで更に述べられるように、データ書込みロジック216及びデータ読出しロジック218によって使用される。
試験DQ208はATE110からアドレスデータを受信して該アドレスデータを、更なるアドレスを生成する際に使用するために、アドレス生成器210に伝達するように構成されている。試験DQ208は更に、ATE110から試験データ信号(例えば、TDQ[0:7])を受信するように構成されている。受信された試験データ信号は処理されるか、試験モジュール120内のその他の部品に転送されるかする。これらの試験データ信号は、必要に応じて、パターン生成ロジック214及びデータ書込みロジック216を用いて更なる試験用データを生成するために使用される。例えば、データ書込みロジック216は試験DQ208を介して受け取った試験用データ信号を、後にデータインターフェース226を介してIC130に提供されるデータ信号を生成するために使用することができる。
試験DQ208はATE110から実際の試験用データと試験モードコマンドとの双方を受信するように構成されている。例えば、セットコマンドが試験制御器206によって受信されると、試験DQ208においては試験モードコマンドが期待される。ロードコマンドが試験制御器206によって受信されると、試験DQ208においては実際の試験用データが期待される。
図3A及び3Bは、本発明の一実施形態に従った試験モードコマンドを例示している。これらのコマンドは試験なしのアイテム1及び9、行アドレスをロードするアイテム2及び3、行カウンタの最下位ビット(LSB)を設定するアイテム5及び6、行カウンタの方向を設定するアイテム8、列アドレスをロードするアイテム10及び11、列カウンタのLSBを設定するアイテム13及び14、及び列カウンタの方向を設定するアイテム16を含んでいる。図3Bにおいて、アイテム18及び19はMRS(モードレジスタ設定)データをロードするように設定されたコマンドであり、アイテム23はチップ識別表示を読み取るためのものであり、アイテム26はデータスクランブル(生成)情報をロードするためのものであり、アイテム27は試験結果が試験モジュール120からATE110に報告されるときの形態を決定するために使用されるものであり、アイテム30は更なるデータ生成情報をロードするためのものであり、そしてアイテム31は特定クラスのメモリアーキテクチャに関してアドレス及びデータ生成を制御するためのものである。試験モジュール120はまた、エンハンストMRSコマンド、モバイルMRSコマンド等に対応するように構成されていてもよい。
行カウンタのLSB及び列カウンタのLSBは、アドレス生成中に何れの行ビット及び何れの列ビットの値が最初に増加されるかを決定するために使用される。例えば、行アドレスの2番目のビットが行カウンタのLSBとして設定される場合、該当する行アドレスは2だけ増加されることになる。また、行アドレスの3番目のビットが行カウンタのLSBとして設定される場合、該当する行アドレスは4だけ増加されることになる。行カウンタ・カウントダウン設定コマンドは、行アドレスがカウントアップされるのか、あるいはカウントダウンされるのかを決定するために使用される。場合により、メモリ境界に寄せることが望ましいときには、LSBを最初のビット以外に設定することが用いられる。
再び図2を参照するに、試験DQ208はまた、試験結果を試験モジュール120からATE110に伝えるように構成されている。例えば、IC130からデータインターフェース226を介して受信された信号は、データ読出しロジック218によって処理され、ATE110への信号伝達のために試験DQ208に提供されることができる。試験DQを介してATE110に伝達されたデータは、IC130から受信された完全な試験結果、IC130から受信された結果の凝縮版、又は結果の要約(例えば、合格又は不合格の表示)を含み得る。伝達されるデータの書式は、試験制御器206を介して試験モードレジスタ212に記録された試験基準に依存する。
アドレス生成器210はクロックマネージャ202、コマンドユニット204、試験DQ208及び試験モードレジスタ212から信号を受信するように構成されている。アドレス生成器210は、この受信情報を用いて、アドレスドライバ224を介してIC130に伝達する試験用アドレス(例えば、A[0:15])を生成するように構成されている。これらのアドレスはIC130をアドレスするために使用される。例えば、一部の実施形態において、これらのアドレスはデータインターフェース226を介してIC130にデータをロードすることを導くために使用される。例えば、データインターフェース226からIC130に書き込まれるデータは、アドレスドライバ224からIC130に書き込まれたアドレス位置でIC130内に格納され得る。ここで更に説明されるように、アドレス生成器210によって生成されたアドレスはまた、必要に応じて、試験用データを生成する際、又はIC130からの受信データを解釈する際に使用されるようにパターン生成ロジック214に提供される。
一部の実施形態において、アドレス生成器210は、関連する米国特許出願第10/205883号明細書“Internally Generating Patterns For Testing In An Integrated Circuit Devices(集積回路デバイスにおける試験パターンの内部生成)”、出願日2002年7月25日)及び米国特許出願第11/083473号明細書“Internally Generating Patterns For Testing In An Integrated Circuit Devices(集積回路デバイスにおける試験パターンの内部生成)”、出願日2005年3月18日)に記載されているようなシーケンスパターン生成器を含んでいる。なお、これらの文献は何れも参照することによりその全体がここに組み込まれる。
図4は、本発明の様々な実施形態に従ったアドレス生成器210の更なる詳細を例示している。これらの実施形態において、アドレス生成器210はMRSレジスタ410、行アドレス生成器420、列アドレス生成器430、及び必要に応じてのA10生成器440を含んでおり、これらの各々はマルチプレクサ(MUX)450にデータを提供するように構成されている。MUX450はMUX制御器460によって制御され、またプリチャージ制御器470からの入力を受け取ってもよい。
MRSレジスタ410はセット、ロード、モードレジスタ設定(MRS)及び試験用アドレス信号(TA[0:7])を受信するように構成されている。試験用アドレス信号(TA[0:7])は試験DQ208のTDQ[0:7]を介して受信される。セット、ロード及びTCNT信号、並びに行カウンタ信号を受信する行アドレス生成器420は、IC130を試験する際に使用される複数の行アドレスを生成するように構成されている。セット、ロード及びTCNT信号、並びに列カウンタ信号を受信する列アドレス生成器430は、記憶デバイス130を試験する際に使用される複数の列アドレスを生成するように構成されている。A10生成器440はTA10信号を生成するように構成されている。TA10信号はA10ビットを別個に制御するために使用される。A10ビットはプリチャージ可能な種類のメモリに見受けられるビットである。例えば、IC130がDRAMである場合、A10生成器440は、DRAM自動プリチャージコマンド、全バンクプリチャージコマンドを有効にするビットを生成するように構成されていてもよい。
マルチプレクサ(MUX)450は、MRSレジスタ410、行アドレス生成器420、列アドレス生成器430及びA10生成器440の出力を、MUX制御器460の制御下で受信するように構成されている。MUX450の出力はアドレス生成器210の出力であり、IC130に伝達されるためにアドレスドライバ224に提供される。一部の実施形態において、MUX450の出力はまた、試験用データの生成及び解釈のためにデータ書込みロジック216及びデータ読出しロジック218にも提供される。
アドレス生成器210は、典型的に、ATE110から受信した各アドレスに対して、アドレスドライバ224に送達されるアドレスを2つ以上生成するように構成されている。例えば、一部の実施形態において、アドレス生成器210はATE110から単一の基準アドレスを受信し、それに応答して一連のアドレスを生成するように構成されている。一部の実施形態において、アドレス生成器210は受信アドレス毎に2つアドレス(元のアドレスと、もう1つのアドレス)を生成するように構成されている。例えば、偶数アドレスが受信されるたびに、アドレス生成器210は対応する奇数アドレスを生成するように構成されていてもよい。様々な実施形態において、アドレス生成器210はATE110から受信した各アドレスに対して4、8、16、32、64、128個又はそれ以上のアドレスを生成するように構成される。一部の実施形態において、アドレス生成器210は次のアドレス境界に到達するのに十分なアドレスを生成するように構成される。例えば、カウント方向が増分方向であり、バースト長が4且つ最初の読出しアドレスが列0にある場合、列アドレスは次の読出しアドレスに対する列4にジャンプし、4つのアドレス(列0乃至列3)が生成される。
一部の実施形態において、試験モジュール120はATE110から受信したメモリアクセスコマンドに応答してIC130にメモリアドレスを提供するように構成されている。例えば、アクティブコマンドがATE110から受信され、IC130に伝達されるようにスケジューリングされるとき、MUX制御器460は行アドレス生成器420からのアドレスビットがアドレスドライバ224に伝達されるようにMUX450を制御するように構成される。試験モジュール120はアクティブコマンド(CS/RAS/CAS/WE=0011)及び付随するアドレスビットA[0:13](512Mb×8DRAMの場合)を試験中のDRAM(例えば、IC130)に送信する。
読出しコマンドが伝達されるようにスケジューリングされるとき、MUX制御器460はMUX450を使用して、アドレスドライバ224に送信されるべき列アドレス生成器430からのアドレスビットを選択する。試験モジュール120は読出しコマンド(CS/RAS/CAS/WE=0101)と、付随するアドレスA[0:9](512Mb×8DRAMの場合)及びA10(自動プリチャージ又は自動プリチャージなしのため)とを送信する。アドレスビットを送信することを伴う書込み及びロードモードレジスタ操作に対しても同様のことが行われる。MUX制御器460の操作は、典型的に、処理中のコマンド(例えば、ロードモードレジスタ、プリチャージ、アクティブ、読出し、書込み、選択など)の種類に応じたものである。
一部の実施形態において、試験用列アドレスは試験用行アドレスとは独立して増加されることができる。行アドレス生成器420及び列アドレス生成器430は、必要に応じて、試験中のアドレスとして使用される番号のシーケンスを内部生成するように構成される。
再び図2を参照するに、試験モードレジスタ212は、試験中にアドレス生成器210、パターン生成ロジック214、データ書込みロジック216及びデータ読出しロジック218によって使用される試験モードデータを格納するように構成されている。例えば、試験モードレジスタ212は試験DQ208から開始列アドレス及び/又は開始行アドレスを受信するとともに、試験制御器206の制御下で試験モードコマンド(例えば、図3A及び3Bに例示されたもの)を受信するように構成されている。試験中、試験用アドレス及び試験用データを生成するために、これらの値及びその他の値が試験モードレジスタ212から読み出される。
一部の実施形態において、試験モードレジスタ212は試験レジスタ設定コマンドを用いてプログラム可能であり、試験DQ208の試験用データ信号TDQ0−TDQ7によってプログラムされる。試験モードにおいて、TDQ0−TDQ7信号に関する入力は、試験用データの読み出し及び書き込み、試験モードコードの設定、行及び列アドレスのロード、行及び列カウンタの最下位ビット(LSB)のプログラミング、データスクランブルパターンの設定、データ生成ロジックの設定、及び試験用データパターンのロード等のために使用されることができる。一部の実施形態において、試験モードレジスタ212内のレジスタは如何なる時も設定されることが可能である。一部の実施形態において、コマンドユニット204におけるセットコマンドは、試験モードレジスタ212に試験モードコマンド及び試験モードデータをロードするために“高(HIGH)”状態に設定される。
一部の実施形態において、データスクランブルパターン、行アドレススクランブルパターン及び列アドレススクランブルパターンの全て又は一部は、着脱可能メモリに格納される。例えば、これらのパターンは、試験モジュール120にプラグ接続されるように、あるいはIC130の1つ以上の要素をサポートするように構成された試験用取付けボードにプラグ接続されるように構成されたEPROMに格納される。これらの実施形態においては、試験モジュール120の外部で様々なスクランブルパターンがプログラムされることが可能である。例えば、一部の実施形態において、相異なるEPROMが相異なる試験プロトコルを用いてプログラムされ、所望のプロトコルに応じて、これら相異なるEPROMの1つが試験モジュール120にプラグ接続されるように選択される。一部の実施形態において、相異なるEPROMが相異なる種類のIC130を試験するためにプログラムされる。代替的な実施形態においては、スクランブルパターンはEPROM以外の着脱可能メモリに格納される。例えば、試験モードレジスタ212はROM、フラッシュ、一回限りプログラム可能なロジック等に含められることができる。
パターン生成ロジック214、データ書込みロジック216及びデータ読出しロジック218は、IC130に書き込まれるべき試験用データを生成し、且つIC130から読み出された試験結果を解釈するように構成されている。図5は、本発明の様々な実施形態に従った、IC130にデータを書き込み且つIC130からデータを読み出すためのデータ経路の更なる詳細を例示している。
図5に例示された実施形態において、試験DQ208は入力バッファ510、出力バッファ512、データイン・レジスタ514及びデータアウト・レジスタ516を含んでいる。これらのバッファはATE110に対してデータをそれぞれ受信、送信するように構成されている。データがATE110から受信されるとき、入力バッファ510の出力はデータイン・レジスタ514に格納される。同様に、ATE110に送達されるようにデータの準備ができているとき、データはATE110によって読み出されるまでデータアウト・レジスタ516に格納される。様々な実施形態において、試験DQ208は8、16又は更に多くのバイトを並行して伝達するように構成されている。
図5に例示された実施形態において、データインターフェース226は出力バッファ520、入力バッファ522、出力シフトレジスタ524及びデータ読出し捕捉器526を含んでいる。IC130に書き込まれるべきデータは、出力シフトレジスタ524内に集められてから出力バッファ520を介して渡される。IC130から読み出されたデータは入力バッファを介して渡され、データ読出し捕捉器526によって捕捉される。典型的な実施形態において、データインターフェース226は試験DQより速いクロック周波数でデータを伝達するように構成されている。
図5に例示された実施形態において、データ書込みロジック216はデータ書込みレジスタ530及びMUX535を含んでいる。データ書込みレジスタ530は、例えば、8ビットのデータをデータイン・レジスタ514から受信するように構成されている。受信データは、データスクランブルパターンに従って、パターン生成ロジック214の制御下でデータスクランブルパターンを用いて更なるデータを生成するために展開される。典型的な実施形態において、幾つかのデータがデータ書込みレジスタ530内で並行して生成される。例えば、データ書込みレジスタ530は8個の元々のビットから8個のデータセットを並行して生成するように構成されていてもよい。これらのデータはMUX535に伝達される。様々な実施形態において、MUX535は試験DQ208によってATE110から受信されたデータの各バイトに対して、16、32、64個又は更に多くのデータビットを受信する。データ生成処理の更なる詳細については、本明細書中の別の箇所で説明する。
図5に例示された実施形態において、データ読出しロジック218はMUX545、必要に応じてのデータ読出しレジスタ540、及び必要に応じての比較ユニット550を含んでいる。一部の実施形態において、データ読出しレジスタ540及びMUX545はデータ書込みロジック216にて実行される処理と逆の処理を実行するように構成されている。例えば、MUX545はデータ読出し捕捉器526からデータを受信し、受信データを1つ以上のデータ読出しレジスタ540に渡すように構成されている。データ読出しレジスタ540は、データ書込みレジスタ530によって実行されたのと逆の処理で受信データを圧縮するために、データ書込みレジスタ530により使用されたのと同一のデータスクランブルパターンを使用するように構成されている。データ読出しレジスタ540によってMUX545から受信されたデータがデータ書込みレジスタ530によって生成されたデータと同一である場合、データ読出しレジスタ540は該データを、データ書込みレジスタ530によってデータイン・レジスタ514から受信されたデータと同一になるように圧縮することになる。一部の実施形態において、この圧縮されたデータはATE110に伝達されるようにデータアウト・レジスタ516に直接的に渡される。これらの実施形態において、比較ユニットは随意的なものである。
データ読出し捕捉器526、MUX545、データ読出しレジスタ540、比較ユニット550及びデータアウト・レジスタ516は、試験中にIC130からデータを読み出すためのデータ経路を形成している。一部の実施形態において、読出し用データ経路内の構成要素は、IC130から外部データ信号(DQ[0:31])を受信し、これらの信号を外部試験用データ信号(TDQ[0:7])に圧縮し、且つ外部試験用データ信号を外付け試験装置(例えば、ATE110)に戻すように構成される。他の実施形態においては、読出し用データ経路内の構成要素は、IC130から外部データ信号(DQ[0:30])を受信し、これらの信号を期待される値と比較し、且つこれらの比較結果をTDQ[0:7]の一部を用いて報告するように構成される。
IC130にデータを書き込むように構成されたデータ経路内の構成要素(例えば、データイン・レジスタ514、データ書込みレジスタ530、パターン生成ロジック214、MUX535及び出力シフトレジスタ524)は、ATE110から外部試験用データ信号(TDQ[0:7])を受信し、これらの信号を外部データ信号(DQ[0:31])に展開し、且つ外部データ信号をIC130に提供するように構成される。
一部の実施形態において、書込み用データ経路内の構成要素は、外付け試験装置から該試験装置の動作周波数で試験用データのビット群を受信し、試験装置から受信したデータの各ビットに対して複数のビットを生成し、且つ生成されたビット群をIC130に該IC130の動作周波数(これはATE110が動作する周波数より高くされ得る)で伝送してもよい。
一例において、書込み用データ経路内の構成要素は、ATE110から100MHzのクロック周波数で値“1”を有するTDQ3の1ビットを受信し、受信したビットから単にその値を複数回繰り返すことによってビット列“1111”を生成し、且つこのビット列を200MHzの周波数でDQ12−15としてIC130に提供してもよい。他の一例において、書込み用データ経路内の構成要素は、ATE110から100MHzのクロック周波数で値“1”を有するTDQ3の1ビットを受信し、受信したビットからオンザフライでビット列“0101”を生成し、且つ生成されたビット列を400MHzの周波数でDQ8−11としてIC130に提供してもよい。ビット“1”からのビット列“0101”の生成は、例えばビット列“1111”内の“全ての奇数ビットを反転する”ロジックを含むパターン生成ロジック214を用いて達成される。他の例においては、TDQ[0:7]の位置で受信された各ビットが、DQ[0:31]の各々の4ビット、8ビット又は更に多くのビットから成るバーストを生成するために使用される。例えば、TDQ3の位置で受信された1ビットが、DQ12、DQ13、DQ14及びDQ15の各々の位置の4ビットのバーストを生成するために使用されてもよい。このビットバーストは、パターン生成ロジック214に応じて、可能な4ビットパターンの何れかを含むことができる。
一実施形態において、読出し用データ経路内の構成要素は、IC130から該IC130のクロック周波数で試験結果のビット群を受信し、試験結果のビット列を単一のビットに変形し、且つこの単一の試験結果ビットをATE110に該ATE110のクロック周波数で提供してもよい。一実施形態において、読出し用データ経路内の構成要素は、IC130から400MHzのクロック周波数でDQ16−DQ19の試験結果ビット列“0011”を受信してもよい。読出し用データ経路の構成要素はこのビット列を、このビット列が期待される試験結果と一致するかに応じて“0”又は“1”の何れかの値に縮め、且つこの単一ビット(“0”又は“1”)をTDQ5によってATE110に提供する。
ATE110から受信したデータを“展開”し、且つIC130から受信したデータを“圧縮”することができるという試験モジュール120の能力により、より低いクロック速度で動作するように構成されたATE110を用いてIC130が規定のクロック周波数で試験され得るという技術的効果がもたらされる。
代替的な実施形態においては、データ読出しレジスタ540によって生成された圧縮データは比較ユニット550に渡される。これらの実施形態において、比較ユニット550はこのデータを、データ書込みレジスタ530によってデータイン・レジスタ514から受信されたデータの複製と比較するように構成される。比較ユニット550は、この比較に基づいて、比較されたデータが一致したか否か、例えば、試験が“合格”か“不合格”かを指し示す値を出力するように構成される。故に、データ読出し捕捉器526を介してIC130から読み出されたデータが、出力シフトレジスタ524を介してIC130に書き込まれたデータと同一である場合、データアウト・レジスタ516は比較ユニット550から“合格”を指し示す値を受信することになる。読み出されたデータが書き込まれたデータと同一でない場合には、データアウト・レジスタ516は比較ユニット550から“不合格”を指し示す値を受信することになる。比較ユニット550により為される比較は並行して実行されてもよいし、順番に実行されてもよい。
一部の実施形態において、“合格”を指し示す値は試験モジュール120によってATE110から元々受信されたデータの複製にされ、“不合格”を指し示す値はこのデータの補数にされる。この目的のため、一部の実施形態において、試験モジュール120によって元々受信された値は、試験モジュール120内に保存される。一部の実施形態において、この元データは試験モジュール120内に保存される必要がないように、ATE110から試験モジュール120に二度にわたって送信される。第2のデータセットはまた、必要に応じて、比較ユニット550によるIC130からの受信データとの比較に使用されるように展開される。一部の実施形態において、“合格”を指し示す値は、この目的のためにATE110から試験モジュール120に伝達された他の何らかの値にされる。
一部の実施形態において、データ読出しレジスタ540は随意的なものであり、比較ユニットはMUX545から直接的にデータを受信するように構成される。これらの実施形態において、比較ユニット550がデータ書込みレジスタ530から受信するデータは、データイン・レジスタ514から受信された入力ではなく、MUX535に提供されたデータ書込みレジスタ530の展開された出力の複製とされる。この展開された出力の複製はMUX545から受信されたデータと比較される。これらの実施形態において、比較ユニット550は圧縮データではなく展開データを用いて比較を行うように構成される。比較ユニット550の出力は比較が一致したか否かを反映するものである。これらの実施形態において、データ読出し捕捉器526を介してIC130から読み出されたデータは再圧縮される必要はない。データ書込みレジスタ530の展開された出力の複製は試験モジュール120内に保存されていてもよいし、あるいはデータイン・レジスタ514から受信された元データから要求に応じて再生成されてもよい。
代替的な実施形態においては、比較ユニット550はデータ読出し捕捉器526から直接的にデータを受信するように構成される。これらの実施形態において、比較ユニット550はMUX535の出力の複製を受信し、このデータをデータ読出し捕捉器526から受信したデータと比較するように構成される。これらの実施形態においては、MUX545は省略される。
パターン生成ロジック214は、データ書込みレジスタ530及びデータ読出しレジスタ540内のデータをデータスクランブルパターンに従って処理(例えば、圧縮又は展開)するために必要なロジックを含んでいる。この処理は、一部の実施形態において、例えばデータ書込みレジスタ530からの、処理対象データのパターン生成ロジック214への伝達を含む。これらの実施形態において、実際の処理はパターン生成ロジック214内で行われ、その結果は処理対象データを提供した部品に戻されるように伝達される。
代替的な実施形態においては、パターン生成ロジック214はデータスクランブルパターンや論理ルール等をデータ書込みレジスタ530及びデータ読出しレジスタ540に伝達するように構成される。これらの実施形態においては、実際の処理はデータ書込みレジスタ530及び/又はデータ読出しレジスタ540にて行われる。例えば、データスクランブルパターンはパターン生成ロジック214によってデータ書込みロジック216へと送信され、データ書込みロジック216の出力を生成するために、このデータスクランブルパターンは試験DQ208からの受信データとのXOR(排他的論理和)を取られてもよい。
一部の実施形態において、パターン生成ロジック214はIC130の試験の最中又は直前に(試験DQ208を介して)データスクランブルパターンをロードするように構成される。代替的な実施形態においては、パターン生成ロジック214は幾つかのデータスクランブルパターンを事前にロードし、これらデータスクランブルパターンの1つが試験の最中又は直前に試験パターン番号の使用を介して選択される。
パターン生成ロジック214は、コマンド制御器204、試験モードレジスタ212、試験DQ208、クロックマネージャ202及びアドレス生成器210からデータを受信するように構成されている。一部の実施形態において、パターン生成ロジック214はアドレス生成器210からデータを受信するので、試験用データの生成はアドレスに依存したものとすることができる。例えば、奇数の(列及び/又は行の)アドレスに書き込まれるべきデータと、偶数の(列及び/又は行の)アドレスに書き込まれるべきデータとに対して、相異なるデータスクランブルパターンが使用され得る。一実施形態において、データ生成のアドレス依存性は、実際の物理ストレージのロジックがアドレス依存性を有するようなIC130の要素を試験する際に使用される。例えば、一部の記憶デバイスは奇数の列アドレスにデータを記憶するために第1の電圧信号を用い、偶数の列アドレスにデータを記憶するために第1の電圧信号の反転形を用いる。故に、データ11111111は実際の物理ストレージに10101010として記録され得る。アドレスに依存したデータ生成により、試験モジュール120は、実際の物理ストレージが11111111、00000000又はこれらの何らかの置換形となるように試験パターンを走らせるように構成されることが可能である。
図6は、本発明の実施形態に従ったデータ書込みレジスタ530の更なる詳細を例示するブロック図である。試験用データ信号(TDQ)はATE110から該ATE110のクロック周波数で受信され、データイン・レジスタ514に格納される。データイン・レジスタ514からTDQ信号が偶数ブロック610及び奇数ブロック615に提供される。偶数ブロック610は、偶数アドレスに記録されるべき出力データ要素を生成するように構成され、奇数ブロック615は、奇数アドレスに記録されるべき出力データ要素を生成するように構成されている。偶数ブロック610及び奇数ブロック615はまた、パターン生成ロジック214から試験用反転ビット信号(TINV0)を受信する。この信号がHIGHである場合、偶数ブロック610又は奇数ブロック615の何れかの内部のビット群の1つがTDQ信号に対して反転される。何れのビットが反転されるかは、バーストアドレスLSB信号(CA0)の状態に依存する。一部の実施形態において、TINV0がHIGHであるとき、奇数アドレスに関連付けられたビット群が反転される。パターン生成ロジック214から、偶数ブロック610はバーストアドレスLSB信号(CA0)を受信し、奇数ブロック615は補信号(CA0\)を受信する。CA0は、例えば、その時の列アドレスのLSBである。偶数ブロック610及び奇数ブロック615は、XOR演算又はラッチとマルチプレクサとの組み合わせを用いて、それらそれぞれの出力をシリアルに生成するように構成されていてもよい。例えば、マルチプレクサはCA0に応じてラッチの反転出力又は非反転出力を選択するように構成されていてもよい。
偶数ブロック610及び奇数ブロック615の出力は、それぞれ、反転ブロック620及び反転ブロック625に渡される。反転ブロック620は更にパターン生成ロジック214からINV0信号を受信し、反転ブロック625は更にパターン生成ロジック214からINV1信号を受信する。反転ブロック620及び反転ブロック625の各々は、それぞれ、INV0及びINV1に応じて偶数ブロック610及び奇数ブロック615の出力を反転させる、あるいは反転させないように構成されている。例えば、一部の実施形態において、INV0及びINV1がHIGHであるとき、入力データは反転される。
反転ブロック620及び反転ブロック625はデータ書込み偶数(DW_E)信号及びデータ書込み奇数(DW_O)信号を出力するように構成されており、これらの信号はレジスタブロック630に提供される。一部の実施形態において、INV0及びINV1信号がHIGHであるとき、DW_E及びDW_O信号の各々は、それぞれ、偶数ブロック610及び奇数ブロック615の出力の元々の値と補数との双方を含むことになる。INV0及びINV1信号が低(LOW)であるとき、DW_E及びDW_O信号の各々は、偶数ブロック610及び奇数ブロック615の出力の元々の値の複製を2つ含むことになる。INV0及びINV1信号の状態はパターン生成ロジック214内のロジックに依存し、パターン生成ロジック214がIC130の特定の例に対してプログラムされる場合、これらの状態はIC130のアーキテクチャ及びトポロジーに依存し得る。
本明細書の別の箇所で説明されるように、パターン生成ロジック214の動作は行アドレス及び/又は列アドレスに応じることが可能である。例えば、一部の実施形態において、IC130内のメモリアレイにソリッドパターンを書き込むために、INV0=(RA0 XOR RA1) XOR RA8というロジックが使用されてもよい(ただし、RA0、RA1及びRA8は行アドレスビットであり、XORは排他的論理和関数である)。これは、行アドレスがRA0=1、RA1=0且つRA8=0であるとき、INV0は値1を有することになり、データは反転ブロック620で反転されることを意味している。本発明は、場合により、実際の論理ビットストレージがアドレス依存型であるメモリを補償するために使用される。大抵の場合、INV0はINV1と同一になるので、1つの信号のみが必要とされる。
典型的に、データ書込みレジスタ530は、ATE110から受信した各TDQデータ要素(例えば、TDQ0乃至TDQ7)を処理するように構成された一組の同様な部品を含む。例えば、TDQ0が1に等しく、CA0(列アドレスのLSB)が0、且つTINV0が1である場合、反転ブロック620への入力は1になり、反転ブロック625への入力は0になる(TINV0=1は奇数ビットの反転がアクティブであることを意味する)。反転ブロック620及び反転ブロック625は、INV0又はINV1信号がアクティブである場合にもデータを反転することになる。INV0又はINV1信号の値はパターン生成ロジック214の出力に依存する。
レジスタブロック630は、一部の実施形態において、DW_E及びDW_Oを受信するように構成された複数の先入れ先出し(FIFO)レジスタを含んでいる。図6に例示されるように、これらのFIFOレジスタはEV_0レジスタ635、EV_1レジスタ640、OD_0レジスタ645及びOD_1レジスタ650を含み得る。EV_0レジスタ635及びEV_1レジスタ640は、反転ブロック620から受信されて試験モジュール120の出力の偶数ビットに含められるべきデータを処理するように構成されており、一方、OD_0レジスタ645及びOD_1レジスタ650は対応する奇数ビットを処理するように構成されている。EV_0レジスタ635及びEV_1レジスタ640は、DW_E信号からのデータ書込み偶数0(DW_E0)信号及びデータ書込み偶数1(DW_E1)信号を格納するように構成されている。OD_0レジスタ645及びOD_1レジスタ650は、DW_O信号からのデータ書込み奇数0(DW_O0)信号及びデータ書込み奇数1(DW_O1)信号を格納するように構成されている。これらDW_E0、DW_E1、DW_O0及びDW_O1信号はMUX535に並行して提供される。MUX535はこれらパラレル信号からシリアルストリームを生成するように構成されている。このシリアルストリームはデータ信号(DQ)内の一連のデータ(例えば4ビット)として、出力シフトレジスタ524を介してIC130に提供される。故に、図6に例示された実施形態においては、ATE110からのTDQデータの1ビットにより、IC130に伝えられるDQデータの4ビットがもたらされる。
“Architecture and Method for Testing of an Integrated Circuit Device(集積回路デバイスの試験のためのアーキテクチャ及び方法)”という発明名称の米国特許出願第11/207581号明細書に記載されているように、試験モジュール120の読出し用データ経路内にも、図6に例示されたのと同様の部品が含まれていてもよい。一部の実施形態において、IC130から受信したデータがIC130に提供された試験用データと同一である場合、試験モジュール120は該試験モジュール120がATE110から元々受信したのと同一のデータをATE110に送り返すように構成され、またIC130から受信したデータがIC130に提供されたデータと同一でない場合、試験モジュール120は該試験モジュール120がATE110から元々受信したデータの補数をATE110に送るように構成される。
図7A及び7Bは、図6に示されたシステムを用いるデータ展開の幾つかの例を例示する表を含んでいる。これらの表は、データイン・レジスタ514から受信したデータビットを表すTDQの欄710、偶数ブロック610及び奇数ブロック615によって受信されたCA0及びCA0\の値を指し示すCA0の欄720、及び最初のビットが偶数アドレス又は奇数アドレスの何れに関連しているかを表す偶数データビットの欄730を含んでいる。これらの表は更に、レジスタブロック630の出力(例えば、DW_E0、DW_E1、DW_O0及びDW_O1)を指し示す4部構成の欄740を含んでいる。図7Aにおいては、4部構成の欄740はTINV0がLOWであるときのデフォルトモードを表しており、図7Bにおいては、4部構成の欄740はTINV0がHIGHであるときのデフォルトモードを表している。最後に、図7A及び7Bに含まれている表は、出力シフトレジスタ524に提供される4つのDQ出力の値を表す4部構成の欄750を含んでいる。
図8A−8Hは、本発明の実施形態に従って試験モジュール120からIC130に届けられ得る多様な試験用データパターンを例示していている。図8A及び8Bは、例えば全てが1あるいは全てが0である、均一なビットアレイをもたらす試験用データパターンを含んでいる。図8C及び8Dは、例えば1ビットごとに反転される、単一の反転形を有する試験用データパターンを含んでいる。図8E及び8Fは、例えばビット対ごとに反転される、二重の反転形を有する試験用データパターンを含んでいる。そして図8G及び8Hは、例えば4ビットの組ごとに反転される、四重の反転形を有する試験用データパターンを含んでいる。その他の試験用データパターンは市松模様、列ストライプ行ストライプの二重の列、二重の行、又は類似のビットストレージをIC130にもたらす。
IC130に生じる試験用データの実際の物理ストレージパターンは、IC130に提供されるビットパターンとは異なっていてもよい。例えば、一部の種類のメモリストレージは偶数列アドレスと奇数列アドレスとに対して相異なる表を使用する。これらのメモリにおいて、図8Cの試験用データパターンは、(パターンの最初のビットが偶数列アドレスのものであると仮定して)偶数列アドレスに対応する全てが1の表と、奇数列アドレスに対応する全てが0の表とをもたらし得る。図8Dの試験用データパターンが使用された場合には、第1の表が全て0になり、第2の表が全て1になる。さらに、これらのメモリにおいては、図8E及び8Fの試験用データパターンは2つの表の各々に市松模様をもたらす。
メモリにおいて、本明細書の別の箇所で説明されるように、一部の種類のメモリは、データの実際の物理ストレージのロジックがアドレスに依存するアーキテクチャを使用する。例えば、論理“1”は偶数アドレスの列(及び/又は行)ではHIGHの電圧で表され、奇数アドレスの列(及び/又は行)ではLOWの電圧で表されてもよい。これらの種類のメモリにおいては、図8A及び8Bの試験用データパターンは市松模様の電圧値をもたらす一方で、図8C及び8Dの試験用データパターンは同一の実際の電圧値で満たされたメモリセルアレイをもたらす。試験モジュール120内での試験用データの生成は列アドレス及び/又は行アドレスに依存したものとし得るので、試験モジュール120は、実際の物理ストレージがアドレス依存型であるような種類のメモリに、所望の試験用パターンを適用することができる。
再び図2を参照するに、クロックドライバ220はIC130にクロック信号を供給するように構成されている。このクロック信号は、典型的にクロックマネージャ202を用いて生成され、ATE110から受け取るクロック周波数より速いものであってもよい。
コマンドドライバ222はコマンド制御器204から受信したコマンドをIC130に伝えるように構成されている。例えば、コマンドドライバ222はロード、読出し、プリチャージ又は類似のコマンドを、記憶デバイスを含むIC130の要素に提供するように構成される。本発明の一部の実施形態において、コマンドドライバ222は試験モジュール120からIC130に伝達されるコマンド(又はデータ)のタイミングを制御するように設定可能なスケジューラを含んでいる。例えば、IC130がコマンドを所定の速度で受け入れることができることを試験することが望ましいことがあり得る。
図9は、IC130へのコマンドの配信を計画するように構成されたコマンドドライバ222の一実施形態を例示している。この実施形態は一組の同期化D型フリップフロップ(D−FF)920、先入れ先出し(FIFO)バッファ930、コマンド復号器940、スケジュールカウンタ950及び状態機械960を含んでいる。同期化D−FF920は、コマンド制御器204を介してATE110の周波数(TCK)で受信したコマンドを試験モジュール120のクロック周波数(CK0)に同期させるように構成されている。CK0はTCKの2倍以上とし得る。CK0がクロックマネージャ202によってTCKに同期される実施形態においては、僅か2つのD−FFを用いての同期化が可能である。
FIFOバッファ930は同期化D−FF920から受信したコマンドを、IC130への伝達の準備が整うまで格納する。FIFOバッファ930は、例えば、深さ16のFIFOバッファとされ得る。コマンドはまた、コマンド復号器940にて復号化され、スケジュールカウンタ950に渡される。スケジュールカウンタ950はテーブル索引を用いて、どれだけのクロックサイクルが或るコマンドとその先行コマンドとの間に経過させられるべきかを決定する。先行コマンドは、必要に応じて、スケジュールカウンタ950によってFIFOバッファ930から読み出される。コマンドはFIFOバッファ930から取り出される(ポップされる)と、状態機械960によって受信される。状態機械960は、スケジュールカウンタ950によって決定されたクロックサイクル数だけ待ってからコマンドをIC130に伝えるように構成されている。
プログラムされた遅延がクロック刻み(clock tick)に関して設定され得る。故に、一部のコマンドは、次のコマンドがIC130に伝達される前に1、2、3、4又は更に多くのクロック刻みを生じさせ得る。コマンド間の実際の遅延時間は、クロック刻みに関して遅延を設定すること、又は試験モジュール120とIC130との間の信号伝達に使用されるクロックの周波数を変化させることによって制御されることが可能である。
図10は、本発明の実施形態に従った、コマンドスケジューリングに基づくクロックサイクルを例示する表を含んでいる。この表内で、パラメータ欄1010は状態機械960にて定められる様々なコマンドセットを含んでいる。例えば、書込み/読出しコマンドに続かれるアクティブコマンドのタイミング特性が第3行に示されている。初期設定のクロック周期(tCK)は3.75nsであり、その他の時間はtCKの倍数として表されている。典型的に、tCKは試験モジュール120とIC130との間の信号伝達に使用されるクロック周期である。示されたデータは特定種類のSDRAM(同期型ダイナミック・ランダムアクセスメモリ)に適用可能である。代替的な実施形態においては、その他のクロック速度及び遅延が用いられてもよい。試験モジュール120内での待ち時間の影響を低減するために、スケジューリングが用いられることができる。
再び図2を参照するに、アドレスドライバ224はIC130にアドレスを提供するように構成されている。これらのアドレスは、典型的に、データインターフェース226を介してデータの読み出し又は書き込みを行うためのものである。データインターフェース226は試験モジュール120とIC130との間でデータを伝達するように構成されている。一部の実施形態において、データインターフェース226は、IC130との電気的な接触を為すように構成された試験用のパッド、接触ピン、ソケット又はこれらに類するものを含んでいる。
図11は、本発明の実施形態に従った、少なくとも1つの試験モジュール120とIC130を受け入れるように構成された少なくとも1つのマウント部1120とを含む試験用取付けボード1110を例示している。試験用取付けボード1110はプリント回路基板モジュール又はこれに類するものを含むことができる。一部の実施形態において、試験モジュール120は10×10mmの144ピンBGA(バイナリ・ゲートアレイ)として実装され、マウント部1120はSDRAMのBGAソケットにされる。
図12は、本発明の実施形態に従った、複数の試験用取付けボード1110を含む試験用アレイ1210を例示している。様々な実施形態において、試験用アレイ1210は2、4、8、32又は更に多くの試験用取付けボード1110を含んでいる。試験用アレイ1210は更に、必要に応じて、試験パラメータを記憶するように構成され且つ試験用取付けボード1110の各々に電気的に結合されたメモリ1220を含んでいる。例えば、様々な実施形態において、メモリ1220はデータスクランブルパターン、列アドレススクランブルパターン、行アドレススクランブルパターン、その他の試験パラメータ、及び/又はこれらに類するものを含んでいる。メモリ1220は、典型的に、例えばスタティックRAM又はフラッシュ等の不揮発性メモリである。メモリ1220は必要に応じて脱着可能にされる。一部の実施形態において、試験用取付けボード1110は随意的なものであり、マウント部1120及び試験モジュール120は試験用アレイ1210に取り付けられる。単一の試験モジュール120が、各々が異なるマウント部1120に搭載された複数の集積回路を試験するように構成されてもよい。この複数の集積回路は単一の試験モジュール120によって生成されたデータ信号又はアドレス信号を用いて並行して試験されてもよい。
図13は、本発明の実施形態に従った、試験モジュール120を使用してIC130を試験する方法を例示している。これらの方法において、試験モジュール120はATE110及びIC130に接続され、IC130に特有の試験を実行するように構成される。これらの試験は、試験モジュール120が、ATE110から試験信号を受信し、受信した試験信号に基づいて試験用アドレス及び試験用データを生成し、生成した試験信号をIC130に送信し、IC130から試験結果を受信し、且つATE110に報告を返すことを含んでいる。
より具体的には、ATE取付け段階1310にて、試験モジュール120はNチャネルインターフェース115によってATE110に電気的に結合される。一部の実施形態において、この結合段階は、ATE110に含まれる標準試験プローブに試験モジュール120を接続することを含む。一部の実施形態において、この結合段階は、試験モジュール120が搭載されるプリント回路基板にATE110を結合させることを含む。
IC取付け段階1320にて、試験モジュール120は、例えばIC130である1つ又は複数の試験対象の集積回路に電気的に結合される。この結合段階は、Mチャネルインターフェース125及び/又は試験用アレイ1210によって行われてもよい。例えば、一部の実施形態において、IC取付け段階1320は、試験用アレイ内のマウント部1120に複数のIC130をプラグ接続することを含む。一部の実施形態において、この複数のIC130は複数の記憶デバイスを含んでいる。
試験モジュール設定段階1330にて、試験モジュール120はIC130の試験を実行するように設定される。この設定は、ATE110と試験モジュール120との間での信号伝達に使用されるクロック周波数とは異なるような、IC130と信号伝達するためのクロック周波数の指定を含み得る。この設定は更に、IC130を試験する際に使用するために試験モジュール120内で試験用アドレス及び試験用データを生成するパラメータの指定を含むことができる。一部の実施形態において、試験モジュール120を設定することは、幾つかある選択的な所定の試験設定から1つを選択することを含む。一部の実施形態において、試験モジュール120を設定することは、試験パラメータを記憶している不揮発性メモリを試験モジュール120に結合させることを含む。一部の実施形態において、試験モジュール設定段階1330は、ATE110から試験モジュール120に設定コマンド及びデータを伝達することを含む。これらのデータは、場合により、試験モードレジスタ212に格納される。
試験モジュール設定段階1330、IC取付け段階1320及びATE取付け段階1310は、場合によって、これに代わる順序で実行される。
試験信号受信段階1340にて、試験モジュール120はATE110からNチャネルインターフェース115を介して試験信号を受信する。これらの試験信号は第1のクロック周波数で受信され、またIC130用のコマンド、アドレス及び試験用データを含み得る。典型的に、受信された試験信号はATE110の構成に依存したものである。
生成段階1350にて、試験モジュール120が使用され、試験信号受信段階1340にて受信した試験信号と試験モジュール設定段階1330にて指定された設定とに応じて、試験用アドレス及び試験用データが生成される。生成段階1350は、典型的に、試験用アドレスを生成するためにアドレス生成器210を使用することと、試験用データを生成するためにパターン生成ロジック214及びデータ書込みロジック216を使用することとを含む。
様々な実施形態において、生成段階1350は、試験信号受信段階1340にてATE110から受信された各データ要素に対して、2、4、6、8個又は更に多くのデータ要素を生じさせる。生成段階1350は、場合により、アドレスデータに応じて試験用データを生成することを含む。例えば、偶数アドレスに格納されるデータと奇数アドレスに格納されるデータとで、生成処理が異なっていてもよい。生成された試験用データは、場合により、IC130に特定のデータパターンを生じさせるように構成される。これらのパターンには、全て1、全て0、市松模様、1ビットごとの反転、ビット対ごとの反転、交互の列、又は交互の行などが含まれ得る。
試験信号送信段階1360にて、生成段階1350にて生成された試験用データが、例えばMチャネルインターフェース125を用いて第2のクロック周波数で、試験モジュール120からIC130に伝送される。第2のクロック周波数は、必要に応じて、第1のクロック周波数より速くされる。一部の実施形態において、試験信号送信段階1360は試験モジュール120からIC130へのコマンド配信をスケジューリングすることを含んでいる。
必要に応じての結果受信段階1370にて、例えばMチャネルインターフェース125を介して、試験結果が試験モジュール120によってIC130から受信される。これらの試験結果は試験信号送信段階1360にて送信された試験信号に応答するものである。
必要に応じての報告段階1380にて、受信された試験結果は試験モジュール120によって処理され、ATE110に報告が為される。この処理は、一部の実施形態において、生成段階1350にて用いられたデータ生成処理を逆にしたものを含む。一部の実施形態において、この処理は受信した試験結果を期待される試験結果と比較することを含む。ATE110に提供される報告は、“合格”又は“不合格”を指し示すデータ、ATE110によって期待されるデータ若しくはこのデータの補数、又はこれらに類するものを含むことができる。
必要に応じてのIC取外し段階1390にて、IC130はマウント部1120から取り外される。典型的に、IC130は試験モジュール120から分離された通常モードで動作するように設定される。試験モジュール120は別のIC130を受け入れ、図13に示された方法を各々に対して繰り返す。
図14は、本発明の実施形態に従った試験用データを生成する方法を例示している。これらの方法は、例えば、図13の生成段階1350に含められてもよい。図示された方法において、データ生成は試験モジュール設定段階1330にて決定された試験モジュール120の設定と、ATE110から受信されたアドレス及び試験用データとに応じたものである。
入力受信段階1410にて、試験モジュール120はATE110から試験用データ、及び必要に応じての試験用アドレスを受信する。受信された試験用データは単一ビット、8ビットバイト、16ビットワード、一対の8ビットバイト等を含み得る。受信されたデータは、必要に応じて、例えばデータイン・レジスタ514等の入力バッファに格納される。この試験用データは第1のクロック周波数で受信される。
必要に応じてのアドレスベース反転段階1420にて、入力受信段階1410にて受信されたデータの1ビットが複製される。この複製は該ビットの2つの要素(元々の要素及び新たな要素)を生じさせる。アドレスデータに応じて、2つの要素の一方又は双方が反転され、あるいは2つの要素の何れも反転されない。例えば、一部の試験モジュール120の設定において、偶数アドレスに格納されるビットコピーは反転され、奇数アドレスに格納されるビットコピーは反転されない。
アドレスベース反転段階1420は、場合により、図6に例示された偶数ブロック610及び奇数ブロック615を用いて実行される。アドレスベース反転段階1420は、典型的に、入力受信段階1410にて受信されたデータの各ビットに並行して適用される。アドレスベース反転段階1420により、試験用データビット数が倍増される。
パターンベース反転段階1430にて、利用可能な試験用ビットの各々が複製され、それぞれのビットの2つの要素が生成される。試験パターンに応じて、2つの要素の一方又は双方が反転され、あるいは2つの要素の何れも反転されない。例えば、一部の実施形態において、反転ブロック620及び反転ブロック625が、各ビットを複製し且つ該ビットの新たな要素を、それぞれ、INV0及びINV1に応じて反転するために使用される。INV0及びINV1はパターン生成ロジック214から受信される。パターンベース反転段階1430の結果は、必要に応じて、ラッチ又は例えばレジスタブロック630等のレジスタブロックに格納される。
アドレスベース反転段階1420及びパターンベース反転段階1430は、場合により、異なる順序で実行される。これらの段階は一緒になって、利用可能な試験用データを4倍にする。例えば、ATE110から受信された8ビットの試験用データにより、32ビットの利用可能な試験用データがもたらされることになる。一部の実施形態において、更なるデータを生成するために、これらの段階の一方又は双方は更なる回数にわたって実行される。
シリアル化段階1440にて、アドレスベース反転段階1420を用いて生成されたビット群は、例えばMUX535等のマルチプレクサを用いてシリアル化される。このシリアル化処理により、配列されたビットシーケンスが得られる。この配列されたシーケンスは、必要に応じて、出力シフトレジスタ524に格納される。
配信段階1450にて、配列されたビットシーケンスは、例えばIC130である試験中の集積回路に配信される。この配信は第2のクロック周波数で行われ、この第2のクロック周波数は必要に応じて、入力受信段階1410での第1のクロック周波数に対して異なる(速い、あるいは遅い)ものにされる。
図15は、本発明の実施形態に従った、集積回路から受信した試験結果を処理する方法を例示している。これらの実施形態において、試験結果は、例えば図14に関連して説明されたデータ生成処理をほぼ逆にした処理に掛けられる。
試験結果受信段階1510にて、試験モジュール120はIC130からデータを受信する。このデータは、例えば図13及び14に例示された方法によって以前にIC130に提供された試験用データに応答するものである。一部の実施形態において、データはIC130に送信された読出しコマンドに応じて受信されてもよい。受信データは第1のクロック周波数で受信される。
シリアル圧縮段階1520にて、受信データはパターン生成ロジック214から受信された反転信号に基づいて順番に圧縮される。例えば、一部の実施形態において、受信データはINV0及びINV1信号に応じて圧縮される。シリアル圧縮段階1520は、受信データに含まれるビット数を1/2に削減するものであり、反転ブロック620及び反転ブロック625を逆に用いて実行され得る。必要に応じてのシリアル圧縮段階1530にて、受信データはアドレス情報に応じて更に圧縮される。例えば、奇数アドレスから受信されたデータは、奇数アドレスから受信されたデータとは異なるロジックを用いて圧縮されてもよい。シリアル圧縮段階1530は、偶数ブロック610及び奇数ブロック615を逆に用いて実行されてもよく、データを更に1/2に削減する。
シリアル圧縮段階1520及びシリアル圧縮段階1530は、場合によって、これに代わる順序で実行される。これらの段階は一緒になって、受信データを1/4に圧縮する。例えば、IC130から32ビットが受信される場合、これらの段階は8ビットの圧縮データを生じさせることになる。より大きい圧縮率を達成するため、これらの段階の何れかが繰り返されてもよい。
報告段階1540にて、シリアル圧縮段階1520及びシリアル圧縮段階1530を用いて生成された圧縮データがATE110に伝達される。この伝達は、必要に応じて、第1のクロック周波数とは異なるクロック周波数で行われる。
図16は、本発明の実施形態に従った、集積回路から受信した試験結果を処理する代替方法を例示している。これらの実施形態においては、試験結果は期待される結果と比較され、この比較の出力がATE110への伝達に使用される。この比較は、IC130から受信されたときのデータを用いて、IC130から受信されて1つの圧縮段階(例えば、シリアル圧縮段階1520又はシリアル圧縮段階1530)に従った後のデータを用いて、あるいはIC130から受信されて2つ以上の圧縮段階に従った後のデータを用いて行われることができる。ATE110への伝達は、“合格”又は“不合格”を指し示す値を含むこともできるし、それに代えてATE110によって期待されるデータを含むこともできる。
試験結果受信段階1610にて、試験モジュール120はIC130からデータを受信する。このデータは、例えば図13及び14に例示された方法によって以前にIC130に提供された試験用データに応答するものである。一部の実施形態において、データはIC130に送信された読出しコマンドに応じて受信されてもよい。受信データは第1のクロック周波数で受信される。
期待結果アクセス段階1620にて、試験モジュール120は期待される結果にアクセスする。期待される結果は、試験結果受信段階1610にて受信されたデータが期待される結果との比較に先立って圧縮されるか否かに応じて異なり得るものである。例えば、受信データが如何なる圧縮にも先立って比較される場合、期待される結果は、例えば報告段階1380又は配信段階1450にて試験モジュール120からIC130に送信されるデータの複製とし得る。この複製は試験モジュール120内に前もって格納されていてもよく、あるいは必要時に期待結果アクセス段階1620の一部として再生成されてもよい。他の一例においては、受信データが1つ又は複数の圧縮段階後に比較される場合、期待される結果は、図14に例示された方法の適当な段階におけるデータの複製とし得る。この複製は前もって保存されていてもよく、あるいは、例えば入力受信段階1410にてATE110から元々受信したデータからオンザフライで再生成されてもよい。
一部の実施形態において、期待結果アクセス段階1620は、期待される結果をATE110から受信することを含む。例えば、期待される結果は試験DQ208及びこの処理特有のコマンドを用いてATE110から試験モジュール120にロードされてもよい。これらの実施形態は、IC130から受信された結果がIC130に送信されたものと異なると予期される場合に有利になり得る。一部の実施形態において、ATE110から試験モジュール120に期待結果をロードすることは、特有の期待結果ロードコマンド又は専用の入力を用いることを含む。
比較段階1630にて、比較ユニット550が使用され、期待結果アクセス段階1620にてアクセスされた期待される結果が、IC130から受信されたデータ(又はその圧縮版)と比較される。
報告段階1640にて、比較段階1630にて為された比較の出力がATE110との信号伝達のために使用される。一部の実施形態において、この出力は“合格”を指し示す値がATE110に送信されるべきか“不合格”を指し示す値がATE110に送信されるべきかを決定するために使用される。一部の実施形態において、期待されるデータがIC130から受信されたことを比較段階1630の出力が指し示す場合、期待されるデータの複製がATE110に送信され、期待されるデータがIC130から受信されなかったことを比較段階1630の出力が指し示す場合、期待されるデータの補数がATE110に送信される。
図15及び16に例示された方法は、必要に応じて、様々な組み合わせで用いられる。例えば、1つの比較段階の後に期待されるデータとの比較が行われてもよい。IC130からATE110に提供される報告は、必要に応じて、試験モジュール120によってIC130から受信されたデータとは異なる周波数で提供される。
図17は、本発明の実施形態に従ったアドレスデータを生成する方法を例示している。これらの方法は、例えば、アドレス生成器210を用いて実行され得る。
行カウンタ設定段階1710にて、試験モジュール120内で行カウンタの初期値が設定される。この初期値は試験DQ208とコマンド制御器204における適当なコマンドとを用いて試験モジュール120にロードされ得る。他の例では、この初期値は、該初期値が事前にロードされた不揮発性メモリを試験モジュール120に結合させることによって試験モジュール120にロードされてもよい。一部の実施形態において、試験用の初期データが格納されるIC130内のメモリアドレスを指し示すように、行の初期値が設定される。
列カウンタ設定段階1720にて、試験モジュール120内で列カウンタの初期値が設定される。この段階は行カウンタ設定段階1710と同様にして実行され得る。一部の実施形態において、試験用の初期データが格納されるIC130内のメモリアドレスを指し示すように、列の初期値が設定される。
行カウント方向設定段階1730にて、試験モジュール120内で行カウント方向が設定される。この段階は行カウンタ設定段階1710と同様にして実行され得る。カウント方向は、カウントアップの場合には“正”、カウントダウンの場合には“負”とすることができる。
列カウント方向設定段階1740にて、試験モジュール120内で列カウント方向が設定される。この段階は行カウンタ設定段階1710と同様にして実行され得る。カウント方向は、カウントアップの場合には“正”、カウントダウンの場合には“負”とすることができる。
行LSB設定段階1750にて、行カウントに関するLSB(最下位ビット)が設定される。この段階は行カウンタ設定段階1710と同様にして実行され得る。LSBはカウント処理にて最初に変更されることになるビットである。最低値のビットがLSBである場合、カウントは1ずつ行われることになる。次のビットがLSBとして設定される場合、カウントは2ずつ行われることになり、更に次のビットがLSBとして設定される場合、カウントは4ずつ行われることになり、その更に次なども同様である。
列LSB設定段階1760にて、列カウントに関するLSBが設定される。この段階は行カウンタ設定段階1710と同様にして実行され得る。行カウント段階1770にて、段階1710、1730及び1750で設定された値に応じて行アドレスが変更される。列カウント段階1780にて、段階1720、1740及び1760で設定された値に応じて行アドレスが変更される。アドレスシリアル化段階1790にて、変更された列アドレスと変更された行アドレスとが、IC130にアクセスするために使用され得る完全なアドレスを形成するようにシリアルに並べられる。
様々な実施形態において、図17に例示された段階の1つ以上は随意的なものである。例えば、デフォルト設定により、カウント方向は常に正にされてもよく、行及び/又は列のLSBは常に最低値のビットにされてもよく、また行及び/又は列のカウンタの初期値は0又は1にされてもよい。
図18は、本発明の実施形態に従ったコマンドスケジューリング方法を例示している。これらの方法において、コマンドはIC130への配信のために試験モジュール120によって受信される。これらのコマンドは、典型的に、試験モジュール120からIC130に配信されるときとは異なる(例えば、遅い)クロック周波数でATE110から受信される。IC130へのコマンドの配信タイミングを制御するため、コマンドは一時的に試験モジュール120に保持され、配信スケジュールに従って配信されてもよい。図18に例示された方法により、IC130が特定の速度でコマンドを受信し、それに応答することができるかを試験モジュール120のユーザが試験することが可能になる。
コマンド受信段階1810にて、試験モジュール120がIC130からコマンドを受信する。受信されたコマンドは、例えば、読出しコマンド、書込みコマンド、アクティブコマンド、リフレッシュコマンド、プリチャージコマンド等を含み得る。
コマンド格納段階1820にて、受信コマンドが格納される。一部の実施形態において、コマンドはD型フリップフロップでの一時的な保管に続いて、例えばFIFOバッファ930といったFIFOバッファに格納される。同期型D−FF920といったD型フリップフロップは、典型的に、第1のクロック周波数に同期がとられた第2のクロック周波数で動作する。一部の実施形態において、第2のクロック周波数は第1のクロック周波数の2倍以上である。様々な実施形態において、FIFOバッファは4、8、16、32個又は更に多くのコマンドを格納するように構成される。
コマンド遅延決定段階1830にて、受信されたコマンドに必要とされる遅延が決定される。この遅延量は、典型的に、第2のクロック周波数のクロックサイクル単位で測定される。この遅延量は、場合により、先に受信されたコマンドに依存する。例えば、プリチャージコマンドと読出しコマンドとの間の遅延は、読出しコマンドとプリチャージコマンドとの間の遅延と異なるものとし得る。コマンド遅延の更なる例が図10に示されている。
一部の実施形態において、コマンド遅延決定段階1830は、受信コマンドを復号化するためにコマンド復号器940を用いること、及び適切な遅延を決定するためにスケジュールカウンタ950を用いることを含んでいる。スケジュールカウンタ950は、典型的に、図10に示されたのと同様の表で遅延時間を調べるように構成されている。このデータは、必要に応じて、試験モジュール120内、あるいは試験モジュール120にアクセス可能なメモリ内に記憶される。スケジュールカウンタ950は先行するコマンドをFIFOバッファ930から受信するように構成されている。
コマンド取出し段階1840にて、ATE110からの受信コマンドがFIFOバッファ930からポップされ、状態機械960にロードされる。
遅延段階1850にて、受信コマンドは、スケジュールカウンタ950からの入力によって決定されるように、適切な遅延時間が経過するまで状態機械960内に保持される。適切な遅延時間後、配信段階1860にて、受信コマンドは試験モジュール120からIC130に渡される。
図19は、本発明の実施形態に従った、複数の集積回路を試験するための試験用アレイの構成方法を例示している。これらの方法において、例えば試験用アレイ1210といった試験用アレイは、2つ以上のIC130を試験することに使用されるように設定された試験パラメータをロードされる。試験パラメータは、一部の実施形態において、試験手順を含む不揮発性メモリの挿入によって試験用アレイ1210にロードされる。その他の実施形態においては、試験パラメータは、試験手順を(関連する試験パラメータとともに)試験用アレイ1210に伝達することによって試験用アレイ1210にロードされる。試験パラメータは、場合により、複数の試験モジュール120に共有された試験モードレジスタ212に格納される。
IC選択段階1910にて、例えばIC130といった集積回路が試験のために選択される。この選択は、例えば、特定の製造者からの特定種類の集積回路を選択することを含み得る。
手順選択段階1920にて、選択された集積回路を試験するための試験手順が選択される。この試験手順は、典型的に、選択された集積回路用に、あるいは相異なる集積回路用に設定された幾つかある選択的な試験手順の1つである。選択的な試験手順の各々は一組の試験パラメータに関連付けられている。これらのパラメータは、本明細書の別の箇所で説明されるように、試験モードレジスタ212に格納され得るデータを含んでいる。これらのパラメータはまた、IC130へのコマンド配信をスケジューリングする際に使用される例えば図10に示されたような遅延データを含んでいてもよい。
IC挿入段階1930にて、IC選択段階1910で選択された集積回路が1つ以上、試験用アレイ1210に挿入される。例えば、一部の実施形態において、幾つかのメモリチップが、試験用アレイ1210の複数の試験用取付けボード内の対応するマウント部1120に挿入される。
手順プログラム段階1940にて、選択された試験手順を特徴付ける試験パラメータが試験用アレイ1210にロードされる。一部の実施形態において、手順をプログラムすることは、試験パラメータを含む不揮発性メモリをメモリ1220に挿入することを含む。その他の実施形態において、手順をプログラムすることは、メモリ1220が試験用アレイ1210に挿入された後に、試験パラメータをメモリ1220に信号伝達することを含む。メモリ1220は試験用アレイ1210内の複数の試験モジュール120によって共有されるように構成されている。その他の実施形態において、手順をプログラムすることは、幾つかの試験モジュール120の各々に対して、並行して、複数の付随する試験モードレジスタ212に試験パラメータがロードされるように信号伝達することを含む。
必要に応じてのIC試験段階1950にて、試験用アレイ1210に挿入された集積回路の1つが、自動化された試験装置と手順プログラム段階1940で試験用アレイ1210にロードされた試験パラメータとを用いて試験される。
図20は、試験モジュール120が複数のIC130を並行して試験するように構成されている本発明の実施形態を例示している。これらの実施形態において、クロックドライバ220、コマンドドライバ222、アドレスドライバ224及び/又はデータインターフェース226の出力は、2つ以上のIC130に並行して提供される。例えば、データインターフェース226の生成データ出力(例えば、DQ[0:31])は、4つの別個のIC130の間で分割され、第1のIC130がDQ[0:7]を受け取り、第2のIC130がDQ[8:15]を受け取り、第3のIC130がDQ[16:23]を受け取り、そして第4のIC130がDQ[24:31]を受け取ってもよい。クロックドライバ220、コマンドドライバ222及び/又はアドレスドライバ224の出力もまた、各IC130が典型的にこれらの要素から同一データを受信するように、4つの別個のIC130の各々に分散される。
一部の実施形態において、図20に例示された複数のIC130の各々は同一の電子デバイス内に配置されている。例えば、各IC130はSiP内の別個のメモリチップであってもよい。他の例では、図20に例示された複数のIC130の各々は別個の電子デバイスに配置されていてもよい。例えば、複数のIC130の各々は、試験用アレイ1210内の別々の試験用取付けボード1110に取り付けられる。図20に例示された試験モジュール120の実施形態において、ATE110は、試験モジュール120を用いない場合に1つのIC130を試験するのに要することになる時間内に、2、3、4個又は更に多くのIC130を試験するように使用されることができる。さらに、2つ以上のIC130が並行して試験される場合であっても、試験はATE110のクロック周波数より高いクロック周波数で行われることができる。
図21は、全体として2100で示された、IC130からのデータの読み出し後のシリアル圧縮にて使用されるロジックを例示している。シリアル圧縮は、ATE110から受信する期待データと、パターン生成ロジック214から受信する必要に応じてのデータスクランブル情報とを用いて達成される。期待されるデータは、場合により、試験データ(TDQ)と同時にATE110から試験モジュール120に伝達される。一部の実施形態において、期待されるデータは1つ以上の付加的なデータピンを介して伝達される。例えば、一部の実施形態において、Nチャネルバス115は、期待データを伝えるように構成された試験モジュール120のピンへの2つの接続を含んでいる。一部の実施形態において、期待データはコマンドピンを介して多重化される。これらの実施形態は、DDRメモリや、コマンドに続いて追加クロックサイクルを含むその他のデバイスの試験に適用され得る。
図21に例示されたロジック2100によって実行される圧縮は、圧縮に使用されるビット群が逐次的に受信・処理される点、及び圧縮が2つのステージで行われる点でシリアルなものである。ロジック2100が適用される第1ステージは、部分的に、受信される最初のデータが偶数アドレスからであるか奇数アドレスからであるかに依存し、このロジックが適用される第2ステージは、部分的に、隣接するビット対からの結果に依存する。第1ステージには、全体として2110A及び2110Bで示された二組に分割され、且つ期待データと受信した実際のデータとに依存する出力を生成するように構成された論理ゲート群2120が含まれている。期待されるデータはイネーブルマッチ(enable match)値EM00、EM11、EM01及びEM10で表されている。EM00は期待される出力“0”を有するイネーブルマッチ“0,0”であり、EM11は期待される出力“1”を有するイネーブルマッチ“1,1”であり、EM01は期待される出力“0”を有するイネーブルマッチ“0,1”であり、そしてEM10は期待される出力“1”を有するイネーブルマッチ“1,0”である。典型的に、EM00、EM11、EM01及びEM10入力は、ATE110からの期待データにて受信されたときに、これらの値を論理ゲート2120内のナンド(NAND)、アンド(AND)又はオア(OR)ゲートの入力に与えることによって使用される。EM01又はEM10は、奇数ビットの反転がオン状態である場合に真(true)であり、EM00又はEM11は奇数ビットの反転がオフ状態であるときに真である。
実際に受信されたデータはDRe0、DRo0、DRe1及びDRo1(DRは読出しデータ)と表されている。DRe0は偶数アドレスから読み出された第1の実際のビット値であり、DRo0は奇数アドレスから読み出された第1の実際のビット値である。そしてDRe1は偶数アドレスから読み出された第2の実際のビット値であり、DRo1は奇数アドレスから読み出された第2の実際のビット値である。
論理ゲートの組2110Aは2つのビット(DRe0及びDRo0)を処理するように構成されており、論理ゲートの組2110Bは2つのビット(DRe1及びDRo1)を処理するように構成されている。図示された例において、論理ゲート2120は4ビット全体を処理するように構成されている。典型的な実施形態において、論理ゲートの組2110A及び2110Bは、交互のクロックサイクルで順番に使用される。故に、第1のクロックサイクルで2つのビットが処理され、第2のクロックサイクルで2つのビットが処理される。論理ゲートの組2110A及び2110Bの各々はイネーブルマッチ値EM00、EM11、EM01及びEM10を用いて2ビットを1ビット(それぞれ、DR0及びDR1)に圧縮するように構成されている。
MUX2130Aは論理ゲートの組2110A内の論理ゲート群2120の出力の1つを選択するように構成されており、MUX2130Bは論理ゲートの組2110B内の論理ゲート群2120の出力の1つを選択するように構成されている。これらの選択は、EM00、EM11、EM01及びEM10の値の何れが真であるかに依存する。この選択により、論理ゲートの組2110A及び2110Bの各々に対して、例えばDR0及びDR1である単一ビットの結果が生成される。
図21に例示されたシリアル圧縮ロジック2100の第2ステージは、全体として2110Cで示された論理ゲートの第3の組を含んでいる。これらの論理ゲート群2140は、EM00、EM11、EM01及びEM10、並びにDR0及びDR1に応答する。論理ゲートの組2110Cは、このシリアル圧縮ロジックの第1ステージの2つの結果(DR0及びDR1)を比較するように構成されている。これらの結果の各々はそれ自体、一対のビット間の比較結果であるので、第2ステージの出力は4つの入力ビットの状態に依存する。各論理ゲート2140の出力はMUX2130Cによって受信され、MUX2130Cはこれらの出力から、EM00、EM11、EM01及びEM10に応じて、図21に例示された圧縮ロジックの出力TDRとなるべき1つを選択する。
図21に例示されたシリアル圧縮ロジック2100は4対1の圧縮率をもたらす。期待されるデータの値EM00、EM11、EM01及びEM10の各々は2対1の圧縮を可能にする。故に、これらの期待値を2つの論理ステージで用いることにより、二度の2対1の圧縮が実現されることができ、それにより4対1というシステムの圧縮率がもたらされる。これら2つの論理ステージはまた、この圧縮が、データが読み出されたアドレスの最下位ビットが奇数であるか偶数であるかと、奇数(又は偶数)のビットが反転されたかとに依存することを可能にする。4対1の圧縮率は単一の論理ステージでも実現可能であろうが、その場合には典型的に、4つより多い期待データ値が必要とされることになるか、あるいはアドレスが奇数であったか偶数であったか又はビットが反転されたかに依存しなくなる。代替的な実施形態においては、単一の論理ステージでの圧縮及び/又は更に高い圧縮率を実現するため、4つより多い期待データ値が使用される。
図22A及び22Bは、図21の圧縮ロジックの適用を例示している。図22Aにおいて、表2210Aは入力TDQ(0−3)2220が如何にしてTDQ出力2260をもたらすかを示している。この出力の値は、入力値、最初のデータビットが偶数アドレスからのものであるか否か(LSBは0であるか否か)2230、システムは(偶数又は奇数のビットが反転されるモード2240Bとは対照的な)ビット反転を用いないデフォルトモード2240Aで動作しているかどうか、並びにEM00及びEM11の値に応答する。表2210Aに示された値はデフォルトモード2240Aでの結果を表しており、表2210Bに示された値は奇数ビットが反転されるモードでの結果を表している。
図23は、全体として2300で示された、IC130からの受信データのパラレル圧縮にて使用されるロジックを例示している。ロジック2300は、例えば、32対8のデータ圧縮を実現するように構成されることができる。ロジック2300の第1ステージ2340において、図21に関連して説明されたデータを圧縮するために一連のロジック2100(図21)が使用される。上述のように、ロジック2100の各々は逐次的にビットを受信・圧縮する。第1ステージ2340において、このシリアル圧縮が幾つか(例えば、8、16、32、64個又は更に多く)のロジック2100によって並行して実行される。各ロジック2100の出力は、スキーム2320から受け取ったクロスバー多重化スキームに基づくパラレル圧縮を実行するように構成されたMUX2310によって受信される。スキーム2320は所望の圧縮スキームを反映するようにプログラムされたバッファである。
この所望の圧縮スキームは、必要に応じて、試験データ(TDQ)と同時にATE110から試験モジュール120に伝達される。一部の実施形態において、期待されるデータは1つ以上の付加的なデータピンを介して伝達される。例えば、一部の実施形態において、Nチャネルバス115は、圧縮スキームを伝達するように構成された試験モジュールのピンへの2、3、4個又は更に多くの接続を含んでいる。一部の実施形態において、圧縮スキームはコマンドピンを介して多重化される。一部の実施形態において、圧縮スキームはパターン生成ロジック214から受信される。
MUX2310はプログラマブル・ゲートアレイ、又は例えばクロスバー多重化スキーム等の論理演算を実行するための技術的に知られたその他の回路とし得る。MUX2310はハードコードされるか、あるいはソフトウェア又はファームウェアを用いてプログラムされるかし得る。様々な実施形態において、MUX2310は16対8、32対8、64対8、128対8、32対16、64対16、128対16、又は128ビットより多くを伴う同様の圧縮スキームを実行するようにプログラムされてもよい。
MUX2310の出力は出力バッファ2330によって受信される。出力バッファ2330は、8、16、32ビット又は更に多くのビットを含み得る圧縮データを受信するように構成されている。一部の実施形態において、出力バッファ2330はデータアウト・レジスタ516を含んでいる。
図24は、本発明の実施形態に従ったデータ圧縮方法を例示している。この方法において、IC130から受信されたデータは図21及び23に例示されたロジックを用いて圧縮される。必要に応じてのATE取付け段階2410にて、試験モジュール120がATE110に取り付けられる。IC取付け段階2420にて、IC130が試験モジュール120に取り付けられる。受信段階2430にて、試験用データが試験モジュール120によってIC130内のアドレスから受信される。圧縮段階2440にて、圧縮データを生成するように受信データが圧縮される。この圧縮は、場合により、図21及び23に例示されたロジックを用いて実行される。この圧縮はまた、場合により、期待されるデータ、IC130のアドレス、及び/又は或る一定のビットが反転されるモードに依存したものにされる。この反転は1ビットごと(例えば、偶数ビット又は奇数ビット)の反転、又は対ごとの反転(例えば、2ビットは反転されず、2ビットは反転され、2ビットは反転されず、・・・等)を含んでいてもよい。提供段階2450にて、圧縮されたデータがATE110に提供される。
ここでは、幾つかの実施形態が具体的に図示され、且つ/或いは説明された。しかしながら、認識されるように、本発明の意図及び範囲を逸脱することなく、上述の教示及び添付の特許請求の範囲に含まれる改良及び変更が為され得る。例えば、一部の実施形態において、試験モジュール120の全て又は一部は脱着可能モジュールとしてATE110に組み込まれる。これらの実施形態において、試験モジュール120は場合によってATE110をアップグレードするために置換可能にされる。試験モジュール120は、場合により、ATE110の読取りヘッドに含められる。様々な実施形態において、試験モジュール120はATE110から長さ10、15、25、50、100、500、1000、1500、2000又は3000cmのケーブルによって隔てられる。一部の実施形態において、試験モジュール120は場合により、IC130の修理を実行するように構成される。例えば、試験モジュール120は、IC130内のヒューズを焼き切るように、あるいはATE110からIC130に修理信号を伝達するように構成された回路を含んでいてもよい。ここでは奇数ビットの反転が説明されたが、当業者に認識されるように、等価な手法で偶数ビットの反転が行われてもよい。
本発明の一部の実施形態において、試験モジュール120は電子デバイス内の複数の部品の中から試験すべき部品を選択するように構成される。例えば、試験モジュール120はSiPに含まれていてもよく、SiP内の複数の相異なるメモリの1つを試験のために選択するように構成されていてもよい。これらの実施形態において、第1の試験モジュール120はSiPに含まれ、第2の試験モジュールはATE110とSiPとの間に配置されてもよい。第1の試験モジュール120は何れの回路が試験モードで試験されるべきかを選択するために使用され、第2の試験モジュール120はATE110より高いクロック周波数でSiPを試験するために使用される。
ここで説明された実施形態は本発明を例示するものである。本発明のこれらの実施形態は例を参照して記載されているので、記載された方法及び/又は具体的構造の様々な改良又は適応が当業者には明らかになるであろう。本発明の教示に基づく改良、適応又は変更の全ては、本発明の意図及び範囲に含まれるものである。従って、ここでの記載及び図面は限定的なものとして解されるべきではなく、本発明は決して、例示された実施形態のみに限定されるものではない。