(57)【特許請求の範囲】
【請求項１】
半導体デバイスを試験するために、テストパターンデータをホストコンピュータの記憶装置から、半導体試験装置内のパターンメモリに転送するために用いるコンプレッション・デコンプレッション方法において、
その記憶装置内のテストパターンファイルからベクタデータを抽出するステップと、
そのベクタデータを、第１グループは繰り返し頻度の高いデータであり、第２グループは繰り返し頻度の中間のデータであり、第３グループは第１グループや第２グループより繰り返し頻度の低いデータである、３つのグループに分類するステップと、
上記第１グループと第２グループのデータを、データ繰り返し率の順に、それぞれショートコードとロングコードに変換し、上記第３グループのデータをエスケープコードにより定義して、その第３グループのベクタデータをエスケープコードに付加するステップと、
上記第１グループのベクタデータと上記ショートコード、上記第２グループのベクタデータと上記ロングコードとの関係を示す翻訳テーブルを形成するステップと、
上記ショートコード、ロングコードおよび第３グループのベクタデータを付加したエスケープコードとを、上記記憶装置からのノンベクタデータと併合して、圧縮テストパターンを形成するステップと、
その圧縮テストパターンをデコンプレッション手段で受け取り、上記ショートコード、ロングコードおよびエスケープコードを上記圧縮テストパターンから検出するステップと、
そのデコンプレッション手段により、上記翻訳テーブルに示された関係に基づいて、上記ショートコードとロングコードを、対応する第１グループと第２グループのベクタデータに翻訳するステップと、
上記デコンプレッション手段により翻訳された、第１および第２グループのテストベクタと、上記第３グループのテストベクタを、上記半導体試験装置内のパターンメモリに送出するステップ、
とを有する半導体試験装置用パターンデータのコンプレッション・デコンプレッション方法。
【請求項２】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは１バイトで構成され、上記ロングコードは２バイトで構成される、請求項１に記載の半導体試験装置用パターンデータのコンプレッション・デコンプレッション方法。
【請求項３】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは１バイトで構成され、上記ロングコードは２バイトで構成され、上記エスケープコードは１バイトで構成され上記第３グループのベクタデータがそれに付加されるように構成される、請求項１に記載の半導体試験装置用パターンデータのコンプレッション・デコンプレッション方法。
【請求項４】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは繰り返し頻度の最も高い１２７の第１グループのベクタデータをあらわし、上記ロングコードは繰り返し頻度が次に高い１９２０の第２グループのベクタデータをあらわす、請求項１に記載の半導体試験装置用パターンデータのコンプレッション・デコンプレッション方法。
【請求項５】
半導体デバイスを試験するために、テストパターンデータをホストコンピュータの記憶装置から、半導体試験装置内のパターンメモリに転送するために用いるテストパターン圧縮・伸張装置において、
そのテストパターンデータ中のベクタデータをショートコードにデータ圧縮する第１グループと、データ圧縮をしない第２グループとに分類し、かつその第１グループのベクタデータとそのショートコードとの関係を示すルックアップテーブルを作成するためのパターン圧縮手段と、
上記ショートコード、第２グループのベクタデータ、およびルックアップテーブルとを含む圧縮テストパターンを格納するための圧縮テストパターンファイルと、
上記半導体試験装置内あるいはそれに近接して設けられ、上記圧縮テストパターンを、上記ショートコードと上記ルックアップテーブルに示された関係に基づいて伸張し、その伸張したテストパターンを上記半導体試験装置内のパターンメモリに送出するためのハードウエア伸張回路と、
により構成され、
上記パターン圧縮手段は上記テストパターンデータ中のデータ繰り返し頻度に基づいてベクタデータを分類し、上記圧縮パターンファイルは、圧縮テストパターンと、上記テストパターンデータ中のノンベクタデータとを併合して構成されることを特徴とする半導体試験装置用テストパターン圧縮・伸張装置。
【請求項６】
上記ハードウエア伸張回路は、
伸張動作の全体を制御するためのコントロールロジックと、
そのコントロールロジックの制御のもとで、上記圧縮テストパターンを受け取るラッチと、
上記圧縮テストパターンファイルからのルックアップテーブルを格納し、上記ショートコードに基づいてテストパターンデータを読み出すためのメモリと、
そのコントロールロジックの制御のもとで、上記メモリの出力データ又は上記ラッチの出力データのいずれかを選択するためのセレクタと、
により構成されることを特徴とする、請求項５に記載の半導体試験装置用テストパターン圧縮・伸張装置。
【請求項７】
上記ハードウエア伸張回路はさらに、上記コントロールロジックにより制御され、上記ショートコードの第２バイトを供給するためのＡＮＤ回路を有することを特徴とする、請求項５に記載の半導体試験装置用テストパターン圧縮・伸張装置。
【請求項８】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは１バイトあるいは２バイトで構成される、請求項５に記載の半導体試験装置用テストパターン圧縮・伸張装置。
【請求項９】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは１バイトまたは２バイトで構成され、上記第２グループのベクタデータには、１バイトで構成されるエスケープコードが付与される、請求項５に記載の半導体試験装置用テストパターン圧縮・伸張装置。
【請求項１０】
半導体デバイスを試験するために、テストパターンデータをホストコンピュータの記憶装置から、半導体試験装置内のパターンメモリに転送するために用いるコンプレッション・デコンプレッション装置において、
その記憶装置内のテストパターンファイルからベクタデータを抽出するための手段と、
その抽出したベクタデータを、第１グループは繰り返し頻度の高いデータであり、第２グループは繰り返し頻度の中間のデータであり、第３グループは第１グループや第２グループより繰り返し頻度の低いデータである、３つのグループに分類する手段と、
上記第１グループと第２グループのデータを、データ繰り返し率の順に、それぞれショートコードとロングコードに変換し、上記第３グループのデータをエスケープコードにより定義して、その第３グループのベクタデータをエスケープコードに付加する手段と、
上記第１グループのベクタデータと上記ショートコード、上記第２グループのベクタデータと上記ロングコードとの関係を示す翻訳テーブルを形成する手段と、
上記ショートコード、ロングコードおよび第３グループのベクタデータを付加したエスケープコードとを、上記記憶装置からのノンベクタデータと併合して、圧縮テストパターンを形成する手段と、
デコンプレッション（伸張）動作の全体を制御するためのコントロールロジックと、
そのコントロールロジックの制御のもとで、上記圧縮テストパターンを受け取るラッチと、
上記圧縮テストパターンファイルからのルックアップテーブルを格納し、上記ショートコードに基づいてテストパターンデータを読み出すためのメモリと、
そのコントロールロジックの制御のもとで、上記メモリの出力データ又は上記ラッチの出力データのいずれかを選択するためのセレクタと、
により構成されることを特徴とする、テストパターン圧縮・伸張装置。
【請求項１１】
上記コントロールロジックにより制御され、上記ロングコードの第２バイトを供給するためのＡＮＤ回路を有することを特徴とする、請求項１０に記載のテストパターン圧縮・伸張装置。
【請求項１２】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは１バイトで構成され、上記ロングコードは２バイトで構成される、請求項１０に記載のテストパターン圧縮・伸張装置。
【請求項１３】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは１バイトで構成され、上記ロングコードは２バイトで構成され、上記エスケープコードは１バイトで構成され第３グループのベクタデータがそれに付加されるように構成される、請求項１０に記載のテストパターン圧縮・伸張装置。
【請求項１４】
上記パターンファイルの各ベクタデータは、８バイト（６４ビット）で構成され、上記ショートコードは繰り返し頻度の最も高い１２７の第１グループのベクタデータをあらわし、上記ロングコードは繰り返し頻度が次に高い１９２０の第２グループのベクタデータをあらわす、請求項１０に記載のテストパターン圧縮・伸張装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体デバイスを試験するための半導体試験装置に用いる、パターンデータのコンプレッション（圧縮）プロセスとデコンプレッション（伸張・復元）プロセス、さらにはハードウエアによるデコンプレッションプ回路に関し、特に半導体デバイスの試験に先立ち、テストパターンを、ホストコンピュータから半導体試験装置のパターンメモリへ、短時間で転送するための、パターンデータのコンプレッションとデコンプレッションプロセス、およびその回路構成に関する。
【０００２】
【従来の技術】
ＩＣメモリやＩＣプロセッサのような半導体デバイスを、半導体試験装置により試験する場合においては、テストパターンを被試験半導体デバイスに印加して、結果としての半導体デバイスからの出力を期待値パターンと比較して、その半導体デバイスが正しく機能しているかどうかを判定する。半導体試験業界では、そのようなテストパターンや期待値パターンおよびそれらに伴う制御データを併せて、テストベクタと呼ぶことが多い。それはこのようなパターンの大部分が、例えば数学的なアルゴリズムに基づいた、パターンの繰り返しにより構成されているからである。
【０００３】
一般に、そのようなテストパターンと期待値パターン（「テストパターン」と総称する）は、半導体試験装置に備えられたテストパターン発生器により発生され、そのテストパターン発生器は半導体試験装置に設けられた、テスタコントローラにより制御される。テストパターンは対象とする半導体デバイスのタイプやデバイス試験の種類等に固有のものである。テストパターンは通常、ホストコンピュータ例えばＵｎｉｘホストの、ハードディスクあるいは外部記憶装置に、格納されている。テストパターン発生器は、テストパターンを記憶するための、大容量のパターンメモリを有している。この構成により、デバイスの試験に先立ち、テストパターンを、ホストコンピュータのハードディスクからテストパターン発生器のパターンメモリに、テスタコントローラを経由して転送する。
【０００４】
第１図は、半導体試験装置の基本構成を示す。ホストコンピュータ１１は、ユーザがアクセスできるコンピュータであり、そのオペレーティングシステムは、例えばＵｎｉｘである。テスタハードウエア１０には、パターン発生器１５、波形整形回路１７および比較器１９が設けられている。テスタハードウエア１０は、テスタコントローラ（ＴＣ）１３により、直接的に制御される。テスタコントローラ１３は、テスタハードウエア１０に専用のコンピュータであり、一般にユーザが直接的に操作することはできない。被試験半導体デバイス（ＤＵＴ）１２は、波形整形回路１７を経由して、テストパターンを受け取り、その結果としての出力は、比較器１９により期待値パターンと比較される。
【０００５】
テストパターン発生器１５は、テストパターン（テストパターンと期待値パターンを含む）を格納するためのパターンメモリ１８を有する。テストパターンは、ホストコンピュータ１１からテスタコントローラ１３とテスタバス１４を経由して、パターンメモリ１８に与えられる。通常、テストパターンはホストコンピュータ１１のハードディスク１６に、パターンファイルとして蓄積され、試験の開始に先だって、パターンメモリ１８に転送される。
【０００６】
【発明が解決しようとする課題】
このようなテストパターンの転送は、被試験デバイスの変更や異なるテストプログラムを実行するごとに、頻繁に行われる。最近の被試験半導体デバイスの複雑化により、パターンファイルのサイズは数メガバイトから、数十メガバイトあるいはそれ以上となる。したがって、パターン発生器１５内のパターンメモリ１８に、ホストコンピュータ１１からテストパターンを転送するには、大きな時間を要する。
【０００７】
半導体試験装置は、高価な大規模コンピュータシステムであるので、ユーザがこれを使用する際には、最も効率のよい方法で使用する必要がある。さらに、半導体業界では常に、試験効率を増大して、半導体デバイスの全体としての生産コストを減少させることに、強い要求がある。したがって、半導体試験装置を最高の効率で運用するためには、テストパターンを、ホストコンピュータからパターンメモリに転送するための時間を、減少させることが重要となっている。
【０００８】
したがって、この発明の目的は、テストパターンを、ホストコンピュータのハードディスクから、半導体試験装置内のパターンメモリに転送する際の転送効率を向上することができる、半導体試験装置のためのテストパターンのコンプレッション及びデコンプレッション技術を提供することにある。
この発明の他の目的は、テストパターンを、ホストコンピュータのハードディスクから、半導体試験装置に設けられたパターン発生器内のパターンメモリに転送する際の転送時間を減少させることができる、半導体試験装置のためのテストパターンのコンプレッション及びデコンプレッションを提供することにある。
この発明のさらに他の目的は、テストパターンを、ホストコンピュータのファイルから、半導体試験装置に設けられたパターン発生器内のパターンメモリに転送する際の転送時間を減少させることができる、半導体試験装置のためのテストパターンのコンプレッション用ソフトウエアとデコンプレッション用ハードウエアの組み合わせ技術を提供することにある。
【０００９】
【課題を解決するための手段】
本発明の第１の態様は、半導体デバイスを試験するために、テストパターンを、ホストコンピュータの記憶装置から、半導体試験装置内のパターンメモリに転送するためのテストパターン圧縮・伸張装置である。
本発明のテストパターン圧縮・伸張装置は、
そのテストパターンデータ中のベクタデータをショートコードにデータ圧縮する第１グループと、データ圧縮をしない第２グループとに分類し、かつその第１グループのベクタデータとそのショートコードとの関係を示すルックアップテーブルを作成するためのパターン圧縮手段と、
上記ショートコード、第２グループのベクタデータ、およびルックアップテーブルとを含む圧縮テストパターンを格納するための圧縮テストパターンファイルと、
上記半導体試験装置内あるいはそれに近接して設けられ、上記圧縮テストパターンを、上記ショートコードと上記ルックアップテーブルに示された関係に基づいて伸張し、その伸張したテストパターンを上記半導体試験装置内のパターンメモリに送出するためのハードウエア伸張回路と、により構成される。
【００１０】
本発明の第２の態様は、半導体デバイスを試験するために、テストパターンを、ホストコンピュータのファイルから、半導体試験装置内のパターンメモリに転送するためのコンプレッション・デコンプレッション方法である。
本発明のコンプレッション・デコンプレッション方法は、
その記憶装置内のテストパターンファイルからベクタデータを抽出するステップと、
そのベクタデータを、第１グループは繰り返し頻度の高いデータであり、第２グループは繰り返し頻度の中間のデータであり、第３グループは第１グループや第２グループより繰り返し頻度の低いデータである、３つのグループに分類するステップと、
上記第１グループと第２グループのデータを、データ繰り返し率の順に、それぞれショートコードとロングコードに変換し、上記第３グループのデータをエスケープコードにより定義して、その第３グループのベクタデータをエスケープコードに付加するステップと、
上記第１グループのベクタデータと上記ショートコード、上記第２グループのベクタデータと上記ロングコードとの関係を示す翻訳テーブルを形成するステップと、
上記ショートコード、ロングコードおよび第３グループのベクタデータを付加したエスケープコードとを、上記記憶装置からのノンベクタデータと併合して、圧縮テストパターンを形成するステップと、
その圧縮テストパターンをデコンプレッション手段で受け取り、上記ショートコード、ロングコードおよびエスケープコードを上記圧縮テストパターンから検出するステップと、
そのデコンプレッション手段により、上記翻訳テーブルに示された関係に基づいて、上記ショートコードとロングコードを、対応する第１グループと第２グループのベクタデータに翻訳するステップと、
上記デコンプレッション手段により翻訳された、第１および第２グループのテストベクタと、上記第３グループのテストベクタを、上記半導体試験装置内のパターンメモリに送出するステップ、
とで構成される。
【００１１】
本発明によれば、テストパターンを、ホストコンピュータのハードディスクから、半導体試験装置内のパターンメモリに転送する際の転送効率を大きく向上することができる。それはパターンデータを圧縮（コンプレッション）し、その圧縮したパターンデータを半導体試験装置に転送し、その圧縮されたパターンデータを半導体試験装置内において伸張再生（デコンプレッション）することにより行われる。本発明によるテストパターンのコンプレッション及びデコンプレッション技術では、ショートコード、ロングコード、エスケープコードのようなユニークなコードシステムと翻訳テーブルを有し、最適な転送効率と装置の単純化を実現している。
【００１２】
本発明の１の態様では、テストパターンのコンプレッション及びデコンプレッションを、ソフトウエアのみにより実現することができる。また本発明の他の態様では、テストパターンのコンプレッションをソフトウエアにより、デコンプレッションをハードウエアによるデコンプレッション回路により実現する。ソフトウエアによるコンプレッションと、ハードウエアによるデコンプレッションとの組み合わせは、ホストコンピュータのハードディスクから、半導体試験装置内のパターンメモリに転送する際の、転送時間を減少させるために最上の効果を実現できる。
【００１３】
【発明の実施の形態】
第２図は、本発明によるテストパターンのコンプレッション・デコンプレッション手法の基本的なコンセプトを示す概念図である。基本的な動作原理としては、元のテストパターンが圧縮されて、圧縮パターンファイルに格納される。半導体デバイスの試験をする際に、圧縮されたパターンデータは、半導体試験装置に転送され、そこで伸張（デコンプレッション）されることにより、テストパターンの全体としての転送効率が大きく向上する。第２図において、このパターンデータのコンプレッション・デコンプレッション（圧縮・伸張）手順がデータフローで示されている。
【００１４】
ステップＳ１１において、パターンファイルのテストパターンはベクタデータ（繰り返しデータ）とノンベクタデータ（非繰り返しデータ）に区別される。パターンファイルのベクタデータは、ステップＳ１２において、コンプレッション（圧縮）プロセスを受けて、圧縮ベクタに変換される。圧縮ベクタは、ステップＳ１３において、パターンファイルのノンベクタデータと統合されて、ステップＳ１１における元のファイルとは別の圧縮パターンファイルを形成する。したがって、圧縮パターンファイルは、ノンベクタデータと圧縮ベクタデータの組み合わせになっている。後に説明するように、圧縮パターンファイルにはさらに、デコンプレッション（伸張）プロセスで用いるための、翻訳テーブル（ルックアップ・テーブル）を有している。
【００１５】
試験の開始に先立ちステップＳ１４において、ホストコンピュータは、ハードディスクドライバを通して読み出し要求を出す。これにより、ステップＳ１５において、圧縮パターンファイルが、読み出しバッファを経由して、テスタコントローラＴＣに転送される。圧縮パターンファイルは、ステップＳ１６において、後に説明するデコンプレッションプロセスによって復元される。したがって、復元されたテストパターンは、パターン発生器内のパターンメモリ１８へ、テスタバスを経由して転送される。このホストコンピュータからパターンメモリ１８に転送するに要する総合時間（転送レート）は、第２図のコンプレッションプロセスおよびデコンプレッションプロセスにより大きく向上される。
【００１６】
ハードウエアによるデコンプレッション（伸張・復元）回路を用いることにより、より高い転送レートが実現できる。第３図（Ａ）と第３図（Ｂ）はそれぞれ、テストパターンのハードウエアによるデコンプレッション回路の、基本的構成例を示すブロック図である。第２図に示した、本発明のソフトウエアによる、コンプレッションとデコンプレッションの手法の場合と同様に、デコンプレッション（復元）されたテストパターンは、テスタコントローラＴＣからパターンメモリ１８へ、テスタバスを経由して転送される。ハードウエアデコンプレッションにおいて、圧縮テストパターンは、テスタバスにより転送され、テスタハードウエア１０内あるいはテスタハードウエア外部で、そのテストパターンにデコンプレッションプロセスが実行されて、その結果がパターンメモリ１８に格納される。
【００１７】
第３図（Ａ）は、ハードウエアによるデコンプレッション（伸張・復元）回路の基本構成例を示している。この例において、ハードウエア・デコンプレッション回路２３は、パターンメモリ１８に近接して、テスタハードウエア１０内に設けられている。例えば第２図のステップＳ１３で作成された圧縮パターンファイルは、ホストコンピュータおよびテスタプロセッサ２１から、テスタバスを経由してテスタハードウエア１０に転送される。圧縮パターンファイルは、ハードウエア・デコンプレッション回路２３において、デコンプレッション（伸張・復元）され、パターンメモリ１８に格納される。
【００１８】
第３図（Ｂ）は、ハードウエアによるデコンプレッション（伸張・復元）回路の基本構成の別の例を示している。この例において、ハードウエア・デコンプレッション回路２３は、パターンメモリ１８に近接した、テスタハードウエア１０の外部に設けられている。上述のプロセスで作成された圧縮パターンファイルは、ホストコンピュータおよびテスタプロセッサ２１から、テスタバスを経由してハードウエア・デコンプレッション回路２３に転送される。圧縮パターンファイルは、ハードウエア・デコンプレッション回路２３において、デコンプレッション（伸張・復元）される。デコンプレッションされたパターンファイルは、例えばプリント回路基板上に設けられたバスラインを経由して、テスタハードウエア１０内のパターンメモリ１８に転送される。
【００１９】
第４図は、本発明によるテストパターン圧縮プロセスを示すブロック図である。第１図に関して上述したように、まずベクタデータが抽出され、これにコンプレッション（圧縮）プロセスが施された後、ノンベクタデータと合成される。これはノンベクタ中の情報を圧縮パターンファイルに保持するためである。この合成されたデータ（圧縮パターン）は、第２図のステップＳ１３に示すように、圧縮パターンファイルに格納される。
【００２０】
本発明では、パターンデータの圧縮は、第４図に示すように、２つのルートを用いて実施される。テストパターンは、例えば８バイト長のようなパターンデータの単位が、多数集合して構成されている。テストパターンは、繰り返し性のあるデータであるベクタデータと、繰り返し性の希薄なノンベクタデータに区別される。ベクタデータは、それぞれ８バイトのパターンデータで構成されており、それらはさらに、そのデータの繰り返しの頻度に基づいて、いくつかのグループに分類される。
【００２１】
第１グループのパターンデータは、パターンファイル中の高い繰り返し率を有するデータであり、１バイトコードとそれに関する翻訳テーブルとで表現されるように変換（圧縮）される。第２グループのパターンデータは、パターンファイル中の低い繰り返し率を有するデータであり、２バイトコードとそれに関する翻訳テーブルとで表現されるように変換（圧縮）される。第３グループのパターンデータは、ベクタデータではあるが、第２グループのパターンデータより低い繰り返し率である。第３グループのパターンデータは圧縮されない。
【００２２】
したがって、第１グループと第２グループのパターンデータは、圧縮されてテスタに転送された後に伸張・復元される。それに対し、第３グループのパターンデータは、圧縮されずに９バイトコード単位（インデックス１バイトとパターンデータ８バイト）で、テスタハードウエアのパターンメモリに転送される。この場合のインデックスコードはエスケープコードとも称する。
【００２３】
後に詳述するが、１バイトコード、２バイトコードあるいは９バイトコードのいずれの場合も、最初の１バイトは、どのグループの属するコードであるかを決定するための、インデックスコードとして用いられる。
【００２４】
第１、第２および第３グループのパターンデータと翻訳テーブルは、合成された圧縮ファイルとして、ホストコンピュータのハードディスクに格納される。上述したように、第１グループ、第２グループおよび第３グループの判別は、圧縮ファイルのデータの、最初のバイトによりなされる。そのような区別は、後で説明するように、デコンプレッション（伸張・復元）プロセスで実行される。
【００２５】
上記の例では、パターンデータは８バイトワードを単位としているように扱われていた。しかし、ベクタデータの単位は、むしろ４バイトで構成される場合も多い。このような短いワードの繰り返しによるパターンデータの場合は、一般的に、より高い繰り返し率となる。しかし、そのためのコンプレッションやデコンプレッションのアルゴリズムはより複雑になる。バターンファイルデータについての経験的な結果によると、８バイトパターンをコード化する場合が、繰り返えし率、圧縮率および伸張・復元スピードについて、最もよいバランスが得られる。
【００２６】
第４図の具体例において、ステップＳ１１のパターンファイルから、ベクタデータがステップＳ２２において抽出される。抽出されたベクタデータは、データの繰り返しの頻度について分析され、その繰り返し率の順を示す頻度テーブルが形成される。この頻度テーブルに基づいて、ベクタデータは３つのグループに区分される。ステップＳ２３における第１グループは、繰り返し頻度の高いベクタデータのグループであり、ステップＳ２４における第２グループは、繰り返し頻度が第１グループのそれより低いベクタデータのグループである。またステップＳ２６における第３グループは、繰り返し頻度の最も低いベクタデータのグループである。
【００２７】
ステップＳ２５において、第１グループのパターンデータは、繰り返し頻度の順にしたがって、１バイト（８ビット）のような、ショートコードに変換される。また第２グループのパターンデータは、繰り返し頻度の順にしたがって、２バイト（１６ビット）のような、ロングコードに変換される。またステップＳ２５では、デコンプレッション（伸張・復元）プロセスで用いるための、翻訳テーブル（変換ルールを示すルックアップテーブル）が形成される。
【００２８】
第３グループのベクタデータは、繰り返し頻度が最も低いために、コンプレッションやデコンプレッションのプロセスを用いても、データの転送効率に有意義な向上が考えられない。このために、第１グループや第２グループの場合と異なり、第３グループのベクタデータは、ショートコード等に変換せず、所定のインデックスコード（エスケープコード）のみが、ステップＳ２６において付加される。例えば、第３グループのパターンデータは、９バイトで構成され、最初の１バイトは、インデックスコードであり、残りの８バイトは、元と同じパターンデータ自身であるように構成される。
【００２９】
ステップＳ２５で形成されたコード化されたベクタと翻訳テーブルと、ステップＳ２６でコード化しないと決定されたベクタは、ステップＳ２７で、コンプレッション（圧縮）ベクタデータとして、併合される。ステップＳ２７による圧縮ベクタデータと、Ｓ１１のパターンファイルのノンベクタデータは、ステップＳ１３において合成されて、圧縮パターンファイルとなる。圧縮パターンファイルは、ホストコンピュータのハードディスクに格納され、試験の開始前にテスタに転送されて、そこでデコンプレッション（伸張・復元）される。
【００３０】
第５図（Ａ）から第５図（Ｄ）は、具体例に基づいて、本発明のテストパターンの圧縮プロセスを、より詳細に説明するための図である。第５図（Ａ）は、パターンファイルにおけるテストパターンを示す概念図である。第５図（Ｂ）は、第５図（Ａ）におけるテストパターンの、データ繰り返し頻度の順を示す概念図である。第５図（Ｃ）は、翻訳テーブルの一例を示す概念図である、翻訳テーブルは第５図（Ａ）のテストパターンを、本発明によるデコンプレッションを実行するためのルックアップテーブルである。第５図（Ｄ）は、第５図（Ａ）の元のテストパターンを、第５図（Ｃ）の翻訳テーブルに基づいて圧縮したテストパターンを示す。
【００３１】
第５図（Ａ）の例において、各テストパターンは８バイト長で構成されている。第５図（Ａ）のテストパターンは、ホストコンピュータのハードディスクに格納されている。テスタハードウエアに転送される前に、テストパターンは圧縮テストパターンに変換されて、翻訳テーブルとともに、ハードディスクの圧縮パターンファイルに格納される。
【００３２】
第５図（Ａ）の全てのテストパターンは、読み出されて、そのデータの繰り返し頻度が調べられる。その結果としてのデータ繰り返しレートは、第５図（Ｂ）の頻度テーブルに表される。この例では、パターンＢが最も高い頻度を有しており、それに続きパターンＤ、パターンＡ、パターンＦの順の頻度となっている。この頻度テーブルに基づいて、パターンデータは、３つのグループに区分される。このグループ分けのプロセスは、上記の第４図におけるステップＳ２２からステップＳ２４において実行される。
【００３３】
第１のグループのテストパターンは、高い繰り返しレートを有する。この例では、第１グループには、１２７の繰り返し頻度の高いパターンが含まれている。したがって、この第１グループのテストパターンは、繰り返し頻度順に、第５図（Ｃ）に示すように、インデックス番号０ー１２６で表される１バイトコードに変換される。第２のグループのテストパターンは、第１グループのパターンより低い繰り返しレートを有する。この例では、第２グループには、１９２０の繰り返し頻度の低いパターンが含まれている。この第２グループのテストパターンは、繰り返し頻度順に、第５図（Ｃ）に示すように、インデックス番号１２８ー２０４７で表される２バイトコードに変換される。
【００３４】
第３グループのテストパターンは、繰り返し頻度が最も低いパターンである。第３グループのテストパターンは、コンプレッションやデコンプレッションのプロセスを用いても、データの転送効率に有意義な向上がないと考えられる。このために、第１グループや第２グループの場合と異なり、第３グループのベクタデータは、ショートコード等に変換せず、所定のインデックスコードが付加される。例えば、第３グループのパターンデータは、９バイトで構成され、最初の１バイトは、番号１２７を表すインデックス（エスケープ）コードであり、残りの８バイトは、元と同じパターンデータ自身である。
【００３５】
第５図（Ｃ）の翻訳テーブルに示されるように、テストパターンＢは、”０”に変換され、テストパターンＤは、”１”に変換される。同様にして、テストパターンＡ、Ｆ、Ｅ、Ｇは、それぞれ”２”、”３”、”４”、”５”に変換される。この翻訳テーブルに基づいて、第５図（Ａ）のテストパターンは、第５図（Ｄ）の圧縮されたテストパターンに変換される。第５図（Ａ）のテストパターンは、繰り返し頻度の高い最初の１２７の含まれるものなので、第５図（Ｄ）において、圧縮テストパターンのそれぞれは、１バイトで表現されている。
【００３６】
第５図（Ａ）のテストパターンの繰り返し頻度が、最初の１２７のパターンより低い場合、したがって、１２８ー２０４７番の中に含まれる場合には、それに対応する第５図（Ｄ）の圧縮テストパターンは、２バイトで表現される。第５図（Ｃ）において、最初の１バイトで示される番号が１２７の場合、これに対応する８バイトのテストパターンは、圧縮されることなく、第６図（Ｃ）に示すように、単に最初の１バイトに付加される。
【００３７】
第６図は、本発明によるテストパターンの、１バイトコード、２バイトコード、および９バイトコードの構成を示し、これらが半導体試験装置に転送される。上述したように、最初のバイトはインデックスコードとして使用される。第６図（Ａ）において、１バイトコード（インデックスコード）は、高い繰り返しレートを有する第１グループのテストパターンを現している。この例では、１バイトコードは、繰り返しレートの順番に応じて、０ー１２６の数字でパターンデータを現していいる。したがって、このコードが数字”０”の場合は、第５図の例における繰り返し頻度の一番高い、テストパターンＢを現している。また１バイトコードが数字”４”を示す場合は、第５図の例におけパターンＥを現すことになる。
【００３８】
第６図（Ｂ）は、本発明における２バイトコード例を示す。２バイトコードは、第１グループのテストパターンよりも繰り返し頻度の低い、第２グループのテストパターンを現すために用いられる。２バイトコードにおいて、最初のバイト（インデックスコード）は、１２７より大きな数値を示す。第５図と第６図の例において、繰り返し頻度が１２８ー２０４７にランクされるテストパターンは、第６図（Ｂ）の２バイトコードに圧縮される。例えば、第５図の例において、２バイトコードが数字”１２８”を示す場合、それはテストパターンＱを現す。また、２バイトコードが数字”２０４７”を示す場合は、第５図の例では、それはテストパターンＸを現している。
【００３９】
第６図（Ｃ）は、本発明の９バイトコードを示す。９バイトコードは、本発明によるコンプレッション・デコンプレッションプロセスが施されないテストパターンである。テストパターン中のデータの繰り返し率が非常に低い場合、８バイトワードのパターンデータは、圧縮されることなく、そのままインデックス（エスケープ）コードに付加される。このグループのパターンデータであることを示すために、インデックスコードは例えば数値”１２７”となっている。したがって、第６図（Ｃ）の９バイトコードが、１バイトコードや２バイトコードとともに、圧縮パターンファイルに格納される。
【００４０】
第５図（Ｄ）に示すテストパターン（したがって、第６図に示すコード）と第５図（Ｃ）の翻訳テーブルは、テスタに転送され、そこでデコンプレッション（伸張・復元）プロセスが実行される。デコンプレッションプロセスは、ソフトウエア・プログラム、あるいはハードウエア・デコンプレッション回路により実施される。ソフトウエア・デコンプレッション・プロセスは、テスタハードウエアに設けられた、テスタコントローラにより実行される。第３図に示すように、ハードウエア・デコンプレッション・プロセスは、テスタハードウエア１０内に、パターンメモリに近接して設けられたハードウエア・デコンプレッション回路、あるいはテスタハードウエア１０の外部に設けられたデコンプレッション回路により実行される。
【００４１】
第７図は、本発明のソフトウエアによる、テストパターンのデコンプレッション・プロセスを示す状態フロー図である。本発明のデコンプレッション・アルゴリズムは、１バイトコード、２バイトコード、９バイトコードを、６４ビット（８バイト）データワードに変換するシーケンスということができる。これらの各コードが入力され、出力に８バイト（６４ビット）データが得られる。上述したように、デコンプレッションプロセスの前に、圧縮テストパターンすなわち、第５図第６図に示す１バイトコード、２バイトコードおよび９バイトコードと翻訳テーブル（ルックアップテーブル）が、テスタハードウエアに転送される。
【００４２】
デコンプレッションプロセスは、ステップＳ３１において、圧縮テストパターンの、最初のバイト（インデックスコード）を読み、そのコードがショートコード（１バイトコード）、ロングコード（２バイトコード）あるいは、９バイトコードであるかを判定することから開始する。最初のバイトが、対象とするコードが１バイトコードであることを示す場合、ステップＳ３２において、その１バイトコードはインデックス番号に変換される。第５図と第６図の例では、このインデックス番号は１２７より小さな数値であった。ステップＳ３５において、このインデックス番号で指定された６４ビットワード（テストパターン）が、翻訳テーブルから取り出される。この翻訳されたテストパターンは、ステップＳ３６において、テスタハードウエア内のパターンメモリに供給される。
【００４３】
もし最初のバイトが、対象とするコードが２バイトコードであることを示す場合、ステップＳ３３において、第２バイトが読み出され、その２バイトコードはインデックス番号に変換される。第５図および第６図の例においては、このインデックス番号は１２７より大きく、２０４８より小さな数値である。ステップＳ３６において、インデックス番号で指定された６４ビットワードが翻訳テーブルから取り出される。この翻訳されたテストパターンは、ステップＳ３６において、テスタハードウエア内のパターンメモリに供給される。
【００４４】
もし最初のバイトが、対象とするコードが９バイトコードであることを示す場合、ステップＳ３４において、その最初のバイトに付加された８バイトが読み出され、それがステップＳ３６において、テストパターンとして直接的に出力される。ステップＳ３６でテストパターンが取り出される毎に、ステップＳ３１に戻って、上述のプロセスを繰り返す。コードの読み取りやインデックス番号の翻訳にエラーがあった場合は、このデコンプレッションプロセスは、ステップＳ３７でフェイルとなる。最後の圧縮テストパターンについて、デコンプレッションが実施されると、ステップＳ３８でこのプロセスは終了する。
【００４５】
第８図は、本発明によるテストパターンのデコンプレッション回路例を示すブロック図である。このデコンプレッション回路は、ラッチ４１、制御ロジック４３、ＡＮＤ回路４５、メモリ４７、およびセレクタ４９により構成されている。制御ロジック４３は、このデコンプレッション回路における動作プロセスの全体を制御する。デコンプレッション動作の開始において、メモリ４７には、圧縮パターンファイルからの、第５図（Ｃ）に示すような翻訳（ルックアップ）テーブルが与えられる。
【００４６】
圧縮パターンファイルからの圧縮パターンデータが、第８図のデコンプレッション回路の入力"Din7-0"に流入する。圧縮ファイルとデコンプレッション回路間の通信、デコンプレッション回路とパターンメモリ間の通信は、例えば、"WriteStrobe", "ReadyIn", "DataReady"および"DataAccepted"のような、第８図に示す各ライン間で、ハンドシェーク動作により行われる。この回路図には示されていないが、デコンプレッション回路は、パターンデータを受け取るための入力装置、パターンデータを送出するための出力装置をさらに有している。
【００４７】
"WriteStrobe"及び "ReadyIn"が有効のとき、制御ロジック４３はラッチ４１を起動して、１バイトの圧縮パターンデータを、ラッチ４１へ入力装置を経由して取り込む。制御ロジック４３は、ラッチ４１に取り込まれたバイト"Din7-0"が、１バイトコード、２バイトコードあるいは９バイトコードであるかを調べる。それと同時に制御ロジック４３は、"ReadyIn"を無効にする。
【００４８】
デコンプレッション回路に取り込まれた圧縮データが、１バイトコードである場合は、バイト"Din7-0"は、メモリ４７内のルックアップテーブルを基にして、６４ビット（８バイト）のパターンデータ"M63-0"に変換される。制御ロジック４３は、セレクタ４９を設定して、パターンデータ"M63-0"を出力データ"Dout63-0"として送出するとともに、ＡＮＤ回路４５の出力（第２バイト）である"A14-8"をゼロに設定する。もし"DataAccepted"が有効となると、"DataReady"ラインが起動されて、データ"Dout63-0"が出力装置に送られる。その後 "ReadyIn"が有効となる。
【００４９】
入力データが２バイトコードの場合は、制御ロジック４３は、"ReadyIn"を有効とし、入力データ"Din7-0"の次のバイトを、ラッチ４１に取り込む。ラッチ４１に取り込まれた第２バイトは、第８図においては、コード"D14-8"で現されている。制御ロジック４３は、ＡＮＤ回路４５を通して、コード"D14-8"を出力"A14-8"として取り出す。第１バイト"Din7-0"と第２バイト"A14-8"は、メモリ４７をアクセスして、ルックアップテーブルから、８バイトのパターンデータ"M63-0"を取り出す。制御ロジック４３は、セレクタ４９を設定して、パターンデータ"M63-0"を出力データ"Dout63-0"として送出する。もし"DataAccepted"が有効となると、"DataReady"ラインが起動されて、データ"Dout63-0"が出力装置に送られる。その後 "ReadyIn"が有効となる。
【００５０】
入力データが９バイトコードの場合は、制御ロジック４３は、"ReadyIn"を有効とし、入力データ"Din7-0"の次の８バイトを、"WriteStrobe"及び "ReadyIn"を交互に８回繰り返すことにより、ラッチ４１に取り込む。ラッチ４１に取り込まれた８バイトは、第８図においては、コード"D63-0"で現されている。制御ロジック４３は、セレクタ４９を設定して、パターンデータ"D63-0"を出力データ"Dout63-0"として送出する。もし"DataAccepted"が有効となると、"DataReady"ラインが起動されて、データ"Dout63-0"が出力装置に送られる。その後 "ReadyIn"が有効となる。
【００５１】
上述したように、この例のデコンプレッションプロセスは、ハードウエアによるデコンプレッション回路により実行される。第１図のテスタバス１４を伝送するデータは、圧縮されたパターンデータなので、ハードウエアによるデコンプレッション回路を用いると、テストパターンの転送レートを最大にできる。
【００５２】
本発明によれば、テストパターンを、ホストコンピュータのハードディスクから、半導体試験装置内のパターンメモリに転送する際の転送効率を向上することができる。それはパターンデータを圧縮（コンプレッション）し、その圧縮したパターンデータを半導体試験装置に転送し、その圧縮されたパターンデータを半導体試験装置内において伸張再生（デコンプレッション）することにより行われる。本発明によるテストパターンのコンプレッション及びデコンプレッション技術では、ショートコード、ロングコード、エスケープコードのようなユニークなコードシステムと翻訳テーブルを有し、最適な転送効率と装置の単純化を実現している。
【００５３】
【発明の効果】
本発明の態様では、テストパターンのコンプレッション及びデコンプレッションを、ソフトウエアのみにより実現することができる。また本発明の他の態様では、テストパターンのコンプレッションをソフトウエアにより、デコンプレッションをハードウエアによるデコンプレッション回路により実現する。ソフトウエアによるコンプレッションと、ハードウエアによるデコンプレッションとの組み合わせは、ホストコンピュータのハードディスクから、半導体試験装置内のパターンメモリに転送する際の、転送時間を減少させるために最上の効果を実現できる。
【図面の簡単な説明】
【図１】半導体デバイスを試験するための半導体試験装置の基本的な構成を示す概略ブロック図。
【図２】半導体試験装置に用いる、本発明によるテストパターンのコンプレッション・デコンプレッション手法の基本的なコンセプトを示すデータフロー図。
【図３】本発明による、ハードウエアによるデコンプレッションの構成をそれぞれ示すブロック図。
【図４】本発明による、テストパターンのコンプレッションのプロセスを示すブロック図。
【図５】本発明によるテストパターンのコンプレッション・デコンプレッション手法を具体的な例を用いて説明するための詳細図。（Ａ）はコンプレッション前のテストパターンの例を示し、（Ｂ）は、（Ａ）のテストパターンの例におけるデータの繰り返しの頻度を示す。（Ｃ）は、（Ａ）および（Ｂ）の例に基づいて作成されたデータテーブルの例を示す。（Ｄ）は、（Ａ）のテストパターンに対応する圧縮（コンプレッション）されたデータ例を示す。
【図６】本発明による圧縮されたパターンのデータ構造を、図５（Ａ）および図５（Ｂ）の例に基づいて示す概略ブロック図。（Ａ）は１バイトコードの構成を示し、（Ｂ）は２バイトコードの構成を示す。（Ｃ）は、９バイトコードの構成であり、インデックスコードと８バイトのパターンデータの組み合わせになっている。
【図７】本発明における、ソフトウエアによるデコンプレッションのプロセスを示すブロック図。
【図８】本発明における、デコンプレッション回路を示すブロック図。
【符号の説明】
１０      テスタハードウエア
１１      ホストコンピュータ
１２      被試験半導体デバイス（ＤＵＴ）
１３      テスタコントローラ（ＴＣ）
１４      テスタバス
１５      パターン発生器
１６      ハードディスク
１７      波形整形回路
１８      パターンメモリ
１９      比較器
２１      テスタプロセッサ
２３      ハードウエア・デコンプレッション回路
４１      ラッチ
４３      制御ロジック
４５      ＡＮＤ回路
４７      メモリ
４９      セレクタ
【図１】
0004294139.tif 000002
【図２】
0004294139.tif 000003
【図３】
0004294139.tif 000004
【図４】
0004294139.tif 000005
【図５】
0004294139.tif 000006
【図６】
0004294139.tif 000007
【図７】
0004294139.tif 000008
【図８】
0004294139.tif 000009