(57)【要約】イベント型半導体試験システムに用いる、高速で各種のタイプとタイミングのテストイベントを発生して、半導体デバイスを評価するためのイベントパイプライン・サミング装置。イベントパイプライン・サミング装置は、イベントカウント遅延ロジックと、バーニアデータ復元ロジックと、イベントバーニアサミングロジックと、イベントスケーリングロジックと、ウィンドウストローブロジックとにより構成されている。本発明のイベントパイプライン・サミング方法および装置は、パイプライン構造を用いて、高速度でイベントタイミングデータを処理するように設計されている。ウィンドウストローブロジックは、ウィンドウストローブの要求を検出してウィンドウストローブを発生させるためのユニークな手段を有している。
2005533253.tif 000002
【特許請求の範囲】
【請求項１】
イベント型試験システムのイベントメモリに格納されたイベンデータを処理するためのイベントパイプライン・サミング装置において：
イベントデータで規定された数についてクロックを計数することにより、イベントデータの整数部であるイベントカウントデータの総合遅延を形成するためのイベントカウント遅延ロジックと；
イベントデータの端数部であるイベントバーニアデータを復元するバーニアデータ復元ロジックと；
そのバーニアデータ復元ロジックからのバーニアデータを加算してイベントバーニア合計データを形成するイベントバーニアサミングロジックと；
イベントカウント遅延ロジックからのイベントカウントデータとイベントバーニアサミングロジックからのイベントバーニア合計データをスケール計数に比例して変更するイベントスケーリングロジックと；
により構成され、１または２以上のパイプラインが上記イベントバーニアサミングロジックに用いられて、イベントバーニアデータを並列に処理する、イベントパイプライン・サミング装置。
【請求項２】
２つの連続したイベントのイベントデータが互いに一致するとき、ウィンドウストローブを発生するためのウィンドウストローブロジックをさらに有する、請求項1に記載のイベントパイプライン・サミング装置。
【請求項３】
各イベントの上記イベントカウントデータは、１またはそれ以上のワードで構成され、そのイベントカウントデータの各ワードは、イベントメモリの異なるアドレスに格納される、請求項１に記載のイベントパイプライン・サミング装置。
【請求項４】
各イベントの上記イベントバーニアデータは、バーニア遅延データとイベントタイプデータとにより構成され、その各イベントの上記イベントバーニアデータは、１またはそれ以上のセグメントに分割され、その各セグメントは上記イベントメモリの同一または異なるアドレスに格納される、請求項１に記載のイベントパイプライン・サミング装置。
【請求項５】
上記イベントカウント遅延ロジックは：
イベントカウントデータをロードして、クロックによりそのイベントカウントデータを計数して、カウント結果が所定値に達するとターミナルカウント信号を形成するイベントカウンタと；
上記イベントカウントデータを上記イベントカウンタにロードするプロセス、イベントカウンタからのターミナルカウント信号に応答してイベントトリガを発生するプロセスを含むイベントパイプライン・サミング装置の全体的な動作を制御するステートマシンと、
により構成される、請求項１に記載のイベントパイプライン・サミング装置。
【請求項６】
各イベントの上記イベントバーニアデータは、１またはそれ以上のセグメントに分割され、上記バーニアデータ復元ロジックは：
そのイベントバーニアデータの１またはそれ以上のセグメントを先取りするための複数の先取りレジスタと；
そのイベントバーニアデータのセグメントについてループ動作を実行するために、その先取りレジスタからのバーニアデータを格納する複数のループ記憶レジスタと；
少なくともその先取りレジスタとループ記憶レジスタの動作を含むバーニアデータ復元の動作を制御するステートマシンと、を有する請求項１に記載のイベントパイプライン・サミング装置。
【請求項７】
上記イベントバーニアデータは、ベースバーニアと他の１以上のバーニアに分割され、上記イベントバーニアサミングロジックは：
全ての以前のイベントと現在のイベントのベースバーニアにおけるバーニア遅延を累積するベースアキュミュレータと；
全ての以前のイベントと現在のイベントの他バーニアにおけるバーニア遅延を累積し、その累積した結果をベースアキュミュレータからの累積したベースバーニアに累積する複数のアキュミュレータと；
上記バーニア遅延を累積する際にキャリーが生じたときは、現在イベントカウントサイクルに１サイクルの待ち状態を挿入するように上記イベントスケーリングロジックに指示を送出する動作を含むイベントバーニアサミングロジックの総合動作を制御するステートマシンと、を有する請求項１に記載のイベントパイプライン・サミング装置。
【請求項８】
上記イベントスケーリングロジックは：
上記イベントバーニアサミングロジックからの上記バーニア合計データをスケール計数によりスケーリングすることにより、各パイプラインについてイベントイネーブル信号を形成するイベントバーニアスケーリングロジックと；
上記スケール計数に基づいてイベントクロックを形成し、そのイベントクロックを上記イベントカウント遅延ロジックに供給するイベントカウントスケーリングロジックと、を有する請求項１に記載のイベントパイプライン・サミング装置。
【請求項９】
上記イベントカウントスケーリングロジックは：
イベントカウントスケーリングが開始されたときクロックを計数するためのスケーリングカウンタロジックと；
そのスケーリングカウンタロジックの出力と上記スケール計数を比較して、そのスケーリングカウンタロジックの出力が上記スケール計数より１少ない数に達したときターミナルカウント信号を形成する比較器と；
上記イベントバーニアサミングロジックからの追加サイクルのリクエストと上記比較器からのターミナルカウント信号に基づいてイベントクロックを形成するANDロジックと、を有する請求項８に記載のイベントパイプライン・サミング装置。
【請求項１０】
上記イベントバーニアスケーリングロジックは：
上記イベントバーニアサミングロジックからのバーニア合計データを上記スケール計数より１少ない数の回数について累積するためのアキュミュレータ、を有する請求項８に記載のイベントパイプライン・サミング装置。
【請求項１１】
上記ウィンドウストローブロジックは：
２つの連続したイベントのイベントタイプデータを比較してウィンドウストローブイベントと他のイベントを区別し、上記イベントバーニアスケーリングロジックにウィンドウストローブ信号を供給するためのバーニアデータ比較ロジック、を有する請求項２に記載のイベントパイプライン・サミング装置。
【請求項１２】
イベント型試験システムのためのイベントパイプライン・サミング方法は：
イベントデータで規定された数についてクロックを計数することにより、イベントデータの整数部であるイベントカウントデータの総合遅延を形成するステップと；
イベントデータの端数部であるイベントバーニアデータを復元するステップと；
複数の並列に備えられたパイプラインのバーニアデータをクロックのタイミングでシフトして、復元したイベントバーニアデータに基づいてバーニアデータを加算してイベントバーニア合計データを形成するステップと；
イベントカウントデータとイベントバーニアデータをスケール計数に比例して変更するステップと；
により構成される、イベントパイプライン・サミング方法。
【請求項１３】
イベントデータを解釈して、２つの連続したイベントのイベントデータが互いに一致するとき、ウィンドウストローブを発生するためのステップをさらに有する、請求項１２に記載のイベントパイプライン・サミング方法。
【請求項１４】
上記イベントカウントデータの総合遅延を形成するステップは：
クロックによりそのイベントカウントデータを計数して、カウント結果が所定値に達するとターミナルカウント信号を形成するステップと；
そのターミナルカウント信号に応答してイベントトリガを発生するステップと、を有する請求項１２に記載のイベントパイプライン・サミング方法。
【請求項１５】
各イベントの上記イベントバーニアデータは、ベースバーニアと他の1またはそれ以上のバーニアに分割されており、上記イベントバーニアを加算するステップは：
全ての以前のイベントと現在のイベントのベースバーニアにおけるバーニア遅延を累積するステップと；
全ての以前のイベントと現在のイベントの他のバーニアにおけるバーニア遅延を累積し、その累積した結果を累積したベースバーニアに累積するステップと；
上記バーニア遅延を累積する際にキャリーが生じたときは、現在イベントカウントサイクルに１サイクルの待ち状態を挿入するように要求するステップと、を有する請求項１２に記載のイベントパイプライン・サミング方法。
【請求項１６】
上記イベントカウントデータとイベントバーニアデータを変更するステップは：
上記バーニア合計データをスケール計数によりスケーリングして各パイプラインについてイベントイネーブル信号を形成するステップと；
上記スケール計数に基づいてイベントクロックを形成し、そのイベントクロックを計数してイベントカウントデータの総合遅延を形成するステップと、を有する請求項１２に記載のイベントパイプライン・サミング方法。
【請求項１７】
上記イベントクロックを形成するステップは：
クロックを計数するステップと；
その計数結果と上記スケール計数を比較して、その計数結果がスケール計数より１少ない数に達したときターミナルカウント信号を形成するステップと；
そのターミナルカウント信号に基づいてイベントクロックを形成するステップと、を有する請求項１６に記載のイベントパイプライン・サミング方法。
【請求項１８】
上記バーニア合計データを上記スケール計数によりスケーリングするステップは、そのバーニア合計データをそのスケール計数より１少ない数の回数について累積するステップ、を有する請求項１７に記載のイベントパイプライン・サミング方法。
【請求項１９】
上記ウィンドウストローブを発生するステップは：
２つの連続したイベントのイベントタイプデータを比較してウィンドウストローブイベントと他のイベントを区別するステップ、を有する請求項１２に記載のイベントパイプライン・サミング方法。
【発明の詳細な説明】
【発明の分野】
【０００１】
この発明は、半導体デバイスを試験するための半導体試験システムに関し、特に、イベント型半導体試験システムに用いる、高速で各種のタイプとタイミングのテストイベントを発生して、半導体デバイスを評価するためのイベントパイプライン・サミング方法およびその装置に関する。
【発明の背景】
【０００２】
IC、LSIなどの試験半導体素子をICテスターのような半導体試験システムによりテストする場合には、ICテスターによって形成されたテスト信号を、予め定めたなテストタイミングと波形で、被試験半導体IC素子の適切なピンに供給する。ICテスターは、テスト信号に応答して対応して形成された被試験ICデバイスからの出力信号を受信する。出力信号は予め定めたなタイミングでストローブされ、その結果は期待値データと比較されて、ICデバイスが正しく機能するかが決定される。
【０００３】
この発明の譲受人は、必要なテスト信号とストローブ信号が、イベントメモリからのイベントデータによって直接にパーピンベースで形成することができるイベント型試験システムを開発した。イベント型試験システムでは、テストデータは、イベントとして記述されている。ここでイベントとは、被試験半導体デバイスを試験するために使用される信号における論理状態のあらゆる変化とそのタイミングである。例えば、そのような変化点は、テスト信号（ドライブイベント）の立ち上がりエッジや立ち下がりエッジ、ストローブ信号（ストローブイベントあるいはサンプルイベント）の発生点である。通常、それぞれのイベントのタイミングは、最新のイベント（現在イベントの直前のイベント）からの時間長かあるいはイベントの絶対時間として定義される。
【０００４】
イベントテスターの基本設計は、米国特許番号6,532,561と6,360,341において開示されており、ここでそれを簡単に説明する。イベント型試験システムの基本構成の例が、図１のブロック図に示されている。図１の例では、イベント型試験システムは、ホストコンピュータ１２とバスインタフェイス１３の双方がシステムバス１４に接続されている。試験システムはさらに、内部のバス１５、アドレス制御ロジック（アドレスコントローラ）１８、フェイルメモリ１７、イベントカウントメモリ（イベントカウントRAM）２０およびイベントバーニアメモリ（イベントバーニアRAM）２１とにより構成するイベントメモリ３０、イベントサミング・スケーリングロジック２２、イベント発生器ユニット２４、およびピンエレクトロニクス２６を有している。イベント型試験システムは、ピンエレクトロニクス２６に接続された被試験デバイス（DUT）２８を評価する。
【０００５】
ホストコンピュータ１２の例は、UNIX（登録商標）、ウィンドウ、または他のオペレーティングシステムを有するワークステーションである。またホストコンピュータ１２は、ユーザインタフェースとして機能し、ユーザが、テストの開始や停止動作の命令、テストプログラムや他の条件のロード命令、あるいはホストコンピュータによるテスト結果分析の実行命令をすることを可能にする。ホストコンピュータ１２は、システムバス１４とバスインタフェイス１３を通してハードウェア試験システムとインターフェイスしている。
【０００６】
内部のバス１５は、アドレス制御ロジック（アドレスコントローラ）１８、フェイルメモリ１７、イベントサミング・スケーリングロジック２２、およびイベント発生器２４等の機能ブロックとのインターフェイスを行うための試験システムハードウエア内のバスである。アドレス制御ロジック１８の例は、ハードウェア試験システムに専用のテスタープロセッサである。テスタープロセッサ（アドレス制御ロジック）１８は、ホストコンピュータ１２からのテストプログラムとテスト条件に基づいて、試験システムの他の機能ブロックへ指示を行い、またイベントメモリ３０とフェイルメモリ１７のアドレスデータを発生する。フェイルメモリ１７は、DUT２８に関する故障情報などの試験結果を保存する。フェイルメモリ１７に保存された情報は、DUTの故障分析の段階で使用される。
【０００７】
実際の試験システムでは、多くのイベントカウントメモリとイベントバーニアメモリの組が設けられ、通常、それらの各組は、試験システムのテストピンに対応している。イベントカウント２０とバーニアメモリ２１は、テスト信号やストローブのような各イベントのためのタイミングデータを保存する。イベントカウントメモリ（RAM）２０は、基準クロックの整数倍であるタイミングデータ（イベントカウントデータ）を格納し、イベントバーニアメモリ（RAM）２１は、基準クロックの端数であるタイミングデータ（イベントバーニアデータ）を格納する。
【０００８】
イベントサミング・スケーリングロジック２２は、イベントカウントメモリ２０およびイベントバーニアメモリ２１からのタイミングデータに基づいて、各イベントの総合的なタイミングを示す信号を形成する。基本的に、そのような総合タイミング信号（イベントイネーブル）は、イベントカウントデータ（整数倍データ）とイベントバーニアデータ（端数データ）を加算することにより形成される。また、イベントサミング・スケーリングロジック２２は、タイミングデータを加算するプロセスの間、端数データのキャリオーバ動作（整数倍データに追加）をさらに行う。さらに、総合タイミング信号を形成するプロセスの間、スケーリングファクタによりタイミングデータを変更でき、それにより総合タイミングを変更できる。
【０００９】
イベント発生器２４は、イベントサミング・スケーリングロジック２２からの総合タイミング信号とバーニア合計データに基づいて、イベントを実際に発生する。通常、イベントは、バーニア合計データに示された値で総合タイミング信号を遅延させることにより形成される。ピンエレクトロニクス２６を通して、このようにして形成されたイベント（ドライブイベント、ストローブイベント）をDUT２８に提供する。ピンエレクトロニクス２６は、多くの素子により構成され、各素子は、ドライバーと比較器を有するとともに、DUT２８との入出力関係を確立するためのスイッチを有している。
【００１０】
高精度タイミングを形成するために、上述したように、イベントの間の時間長（遅延値）は、基準クロックの整数部（イベントカウントデータ）と基準クロックの端数部（イベントバーニアデータ）の組合せによって定義されている。イベントカウントとイベントバーニアとのタイミング関係を、図２Ａ−２Ｄのタイムチャートに示す。この実施例では、図２Ａの基準クロック（例えば、マスタークロック）は、クロック周期Ｔを有している。図２Ｃにおいて、イベント０、イベント１、およびイベント２のタイミングは、図２Ｃに示すような関係となっている。イベント０を基準としてイベント１のタイミングを記述するために、これらの２つのイベント間の時間差「ＮＴ+ΔＴ」が図２Ｂに示されており、ここでNはイベントカウントデータをあらわし、Ｔは基準クロック周期をあらわし、ΔＴは基準クロック周期Ｔの端数部分であるイベントバーニアデータをあらわしている。
【００１１】
イベントのタイプは、図２Ｃに示されたドライブイベントか、図２Ｄで示されたサンプリング（ストローブ）イベントである。ドライブイベントは、テスターピンかDUT入力ピンを特定の電圧レベルに駆動する。ストローブイベントは、そのタイミングでDUTピンの出力を抽出する。ストローブ波形は通常、ＤＵＴの出力を抽出するための単一のタイミングを定義するので、パルス幅を有しない。しかし大きいパルス幅、すなわちウィンドウストローブ（本発明の主題の１つである）、を有する別のタイプのストローブがあることも図２Ｄは示している。
【００１２】
上述したように、イベント型試験システムでは、イベントメモリのイベントデータは、現在のイベントと直前のイベントとの間の時間差によって表現される。したがって、イベントデータによりイベントを形成するためには、イベント型試験システムは、現在イベントまでの各イベントの遅延の合計を計算しなければならない。これは、試験システムにおいて、イベントメモリ３０からのイベントカウントデータとイベントバーニアデータとで現された遅延時間を連続して計数するためのロジックを必要とする。
【００１３】
この発明の同じ譲受人によって所有されている米国特許番号6,360,343と6,557,133と米国出願番号10/318,959において、イベントメモリからのイベントデータを用いて、現在のイベントのタイミングを計算するためのイベントサミング・スケーリングロジックが開示されている。しかしながら、これらの先の発明で開示されたイベントサミング・スケーリングロジックでは、イベントを高速で再生するためのパイプライン処理の使用は十分にはなされていなかった。さらに、メモリのスペース節約するために、イベントメモリにイベントデータを保存する際に、圧縮技術が使用される。先の発明で開示されたイベントサミング・スケーリングロジックでは、復元（伸長）されたバーニアイベントの高速処理は、並列パイプラインの使用で実行する技術については十分に確立されてはいなかった。
したがって、パイプライン方式の使用で高速イベントタイミング処理を実行できる高速イベント型試験システムのためのイベント処理装置とその方法が必要となっている。
【発明の概要】
【００１４】
したがって、本発明の目的は、イベントパイプライン・バーニア加算ロジックを使用して高速にテストベクトルを形成するための高速イベント型半導体試験システムを提供することにある。
本発明の別の目的は、復元したバーニアデータを処理するための複数のパイプラインを並列に有するイベントパイプライン・バーニアサミングロジックのアーキテクチャを提供することにある。
【００１５】
より具体的には、本発明のイベントパイプライン・サミング装置は：イベントデータで規定された数についてクロックを計数することにより、イベントデータの整数部であるイベントカウントデータの総合遅延を形成するためのイベントカウント遅延ロジックと；イベントデータの端数部であるイベントバーニアデータを復元するバーニアデータ復元ロジックと；そのバーニアデータ復元ロジックからのバーニアデータを加算してイベントバーニア合計データを形成するイベントバーニアサミングロジックと；イベントカウント遅延ロジックからのイベントカウントデータとイベントバーニアサミングロジックからのイベントバーニア合計データをスケール計数に比例して変更するイベントスケーリングロジックと；により構成されている。
このイベントパイプライン・サミング装置は、１または２以上のパイプラインが上記イベントバーニアサミングロジックに用いられて、イベントバーニアデータを並列に処理する。イベントパイプライン・サミング装置はさらに、２つの連続したイベントのイベントデータが互いに一致するとき、ウィンドウストローブを発生するためのウィンドウストローブロジックを有している。
【００１６】
好ましい実施例において、各イベントの上記イベントカウントデータは、１またはそれ以上のワードで構成され、そのイベントカウントデータの各ワードは、イベントメモリの異なるアドレスに格納される。各イベントの上記イベントバーニアデータは、バーニア遅延データとイベントタイプデータとにより構成され、その各イベントの上記イベントバーニアデータは、１またはそれ以上のセグメントに分割され、その各セグメントは上記イベントメモリの同一または異なるアドレスに格納される。
【００１７】
上記イベントカウント遅延ロジックは、イベントカウントデータをロードして、クロックによりそのイベントカウントデータを計数して、カウント結果が所定値に達するとターミナルカウント信号を形成するイベントカウンタと、上記イベントカウントデータを上記イベントカウンタにロードするプロセス、イベントカウンタからのターミナルカウント信号に応答してイベントトリガを発生するプロセスを含むイベントパイプライン・サミング装置の全体的な動作を制御するステートマシンと、により構成される。
【００１８】
上記バーニアデータ復元ロジックは、イベントバーニアデータの１またはそれ以上のセグメントを先取りするための複数の先取りレジスタと、そのイベントバーニアデータのセグメントについてループ動作を実行するために、その先取りレジスタからのバーニアデータを格納する複数のループ記憶レジスタと、少なくともその先取りレジスタとループ記憶レジスタの動作を含むバーニアデータ復元の動作を制御するステートマシンと、を有する。
【００１９】
上記イベントバーニアサミングロジックは、全ての以前のイベントと現在のイベントのベースバーニアにおけるバーニア遅延を累積するベースアキュミュレータと、全ての以前のイベントと現在のイベントの他バーニアにおけるバーニア遅延を累積し、その累積した結果をベースアキュミュレータからの累積したベースバーニアに累積する複数のアキュミュレータと、上記バーニア遅延を累積する際にキャリーが生じたときは、現在イベントカウントサイクルに１サイクルの待ち状態を挿入するように上記イベントスケーリングロジックに指示を送出する動作を含むイベントバーニアサミングロジックの総合動作を制御するステートマシンと、を有する。
【００２０】
上記イベントスケーリングロジックは、上記イベントバーニアサミングロジックからの上記バーニア合計データをスケール計数によりスケーリングすることにより、各パイプラインについてイベントイネーブル信号を形成するイベントバーニアスケーリングロジックと、上記スケール計数に基づいてイベントクロックを形成し、そのイベントクロックを上記イベントカウント遅延ロジックに供給するイベントカウントスケーリングロジックと、を有する。
【００２１】
上記イベントカウントスケーリングロジックは、イベントカウントスケーリングが開始されたときクロックを計数するためのスケーリングカウンタロジックと、そのスケーリングカウンタロジックの出力と上記スケール計数を比較して、そのスケーリングカウンタロジックの出力が上記スケール計数より１少ない数に達したときターミナルカウント信号を形成する比較器と、上記イベントバーニアサミングロジックからの追加サイクルのリクエストと上記比較器からのターミナルカウント信号に基づいてイベントクロックを形成するANDロジックと、を有する。
【００２２】
本発明のもう一つの態様は、イベント型試験システムに用いるイベントパイプライン・サミング方法である。イベントパイプライン・サミング方法は、上述したイベントパイプライン・サミング機能を実行するための様々なステップで構成されている。
【００２３】
本発明によれば、高速度イベント型試験システムのためのイベント処理に実施して、ドライブイベントやストローブイベントを形成することができる。イベントデータは、２またはそれ以上の小さなワードあるいはセグメントに分割することにより圧縮されて、２以上のパイプラインを介して並列に処理される。デコンプレッション（復元）、サミング（加算）、およびスケーリングのプロセスが、本発明のパイプライン構成を通して行われる。また、イベントパイプライン・サミングロジックは、イベントデータを解釈して、ウィンドウストローブを発生するためのウィンドウストローブロジックを有している。その結果、本発明のイベントパイプライン・サミングロジックは、イベント型試験システムにおいて高速イベント処理と高安定性を実現している。
【発明の詳細な説明】
【００２４】
本発明の実施例を添付した図面を参照して説明する。本発明のイベントパイプライン・サミング（EVP）方法と装置は、パイプライン方式の使用により高速なイベントタイミング処理を実行するように設計されている。本発明のイベントパイプライン・サミング方法および装置は、主として図１のイベント型試験システムにおけるイベントサミング・スケーリングロジック２２およびイベントアドレスコントローラ１８とにより実施される。
【００２５】
図３は、本発明のイベントパイプライン・サミングロジック３３の基本構成を示している。イベントパイプライン・サミングロジック３３は、アドレスコントローラ１８に指示を送って、そこからアドレス情報を受ける。また、イベントパイプライン・サミングロジック３３は、イベントメモリ（イベントカウントメモリ２０とイベントバーニアメモリ２１）からイベントデータを受ける。イベントパイプライン・サミングロジック３３は、イベントデータを処理して、イベントデータの最終値をイベント発生器２４に送る、イベント発生器２４は、イベントデータに基づいて、被試験デバイス（DUT）を検査するために、テストベクトルとストローブを発生する。上述したように、イベントデータは、イベントカウントデータ（クロック周期の整数部）、イベントバーニアデータ（クロックの端数部）、およびイベントタイプデータで構成される。
【００２６】
図３において、イベントパイプライン・サミングロジック３３は、イベントカウント遅延ロジック３４、バーニアデータ復元（デコンプレッション）ロジック３５、イベントバーニア・サミング（加算）ジック３６、イベントスケーリングロジック３７、およびウィンドウストローブロジック３８を有して構成している。イベントカウント遅延ロジック３４は、イベントカウントメモリ２０からのイベントデータにおける整数部の総合遅延を形成する。バーニアデータ復元ロジック３５は、イベントバーニアメモリ２１からの圧縮されたバーニアデータに基づいてバーニアデータを復元（伸長）させる。イベントバーニアサミングロジック３６は、バーニアデータ復元ロジック３５からのバーニアデータを加算することによりイベントバーニア合計データを形成する。イベントスケーリングロジック３７は、スケール計数に比例してイベントカウント遅延ロジック３４とイベントバーニアサミングロジック３６からのイベントタイミングデータを変更する。ウィンドウストローブロジック３８は、イベントタイプデータとバーニアデータをモニターして、予め定めた条件が満たされるとき、ウィンドウストローブを形成する。
【００２７】
図３のイベントパイプライン・サミングロジック３３の各構成要素の構造や動作の詳細を説明する前に、本発明にかかわる基本コンセプトを、一連（シリーズ）の波形、その波形を作成するためのイベントデータ、およびそのイベントデータを処理するための回路構成を参照して説明する。最初に、イベントタイミングの計算のプロセスを図４Ａ−４Ｂおよび図５を参照して検討する。図４Ａはイベントのシーケンスを示す波形図であり、図４Ｂは図４Ａのイベントのシリーズを発生するためにイベントメモリに保存されたイベントデータを示すデータテーブルである。図４Ａの波形は、イベントクロック（スケール計数が“１”の場合にはマスタークロック）に対するイベント間のタイミング関係を示している。図４Ｂのデータテーブルでは、各イベントのタイミングデータは、１組のイベントカウントデータ（基準クロックの整数部）とイベントバーニアデータ（基準クロックの端数部）により規定されている。
【００２８】
図４Ｂのデータテーブルにおいて、Ｅ０−Ｅ８の各イベント（図４Ａ）は、直前のイベントからの時間差である。そのような時間差は図４Ａの波形チャートにおいて、ΔV0、ΔV1、ΔV2…  ΔV8  として表している。各時間差は２つの隣接するイベントの間の時間長であるので、そのような時間差はイベントカウントデータとイベントバーニアデータの組合せによって表される。データテーブルにおいて、イベントカウントデータC0-C8は「イベントカウント」欄に、バーニアデータV0-V8は「イベントバーニア」欄に示されている。イベントタイプ」欄は「ドライブロウ（1〜0）」や「ドライブハイ（0〜1）」などの各イベントのタイプを規定している。
【００２９】
例えばイベントＥ２はイベントＥ１からΔV2だけ離れており、イベントカウントデータC2（整数部値）とバーニアデータはV2（端数部値）とにより定義されている。その結果イベントＥ２は、ΔV2＝C2ｘTp+V2  として表現される。ここでTpは、クロック（マスタークロック）の１周期の時間長である。そして、同様に、イベントＥ３はイベント２ＥからΔV3だけ離れているので、イベントカウントデータC3（整数部値）とバーニアデータV3（端数部値）によって定義される。したがって、イベントＥ３は、ΔV3＝Ｃ3ｘTp+V3  として表現される。規定されたタイミングで図４Ａのようなイベント波形を形成するためには、そのようなイベント間の時間差をΔV0、ΔV1、ΔV2、ΔV3、…を累積して現在のイベントのタイミングを決定しなければならないことに留意されたい。
【００３０】
図５は図４Ｂに示されたイベントデータを加算するためのイベントサミングロジックの簡略化した構成を示すブロック図である。すなわち、イベントサミングロジックは、イベントタイミングを計算することによって、図４Ａのイベント波形で示されたタイミング関係を再生させる。イベントサミングロジックは、イベント処理ステートマシン４１と、加算器４３とレジスタ４４により構成するアキュミュレータ（累積器）と、イベントカウントロジック（イベントカウンタ）４２により構成されている。クロックがステートマシン４１、イベントカウントロジック４２、およびレジスタ４４に共通に供給されている。イベントメモリからのイベントカウントデータはイベントカウントロジック４２に供給され、イベントメモリからのイベントバーニアデータは加算器４３に供給されている。
【００３１】
イベントカウントロジック４２は、例えばイベントカウントデータによって表された数値によってプリセットされるダウンカウンタである。したがって、処理（プロセッシング）クロック数を計数することによりその計数結果が所定値、例えばゼロに達すると、イベントカウントロジック４２はターミナルカウントパルスを形成する。イベントカウントロジック４２からのターミナルカウントパルスを受けると、イベント処理ステートマシン４１は、処理クロックに同期してバリッドデータイネーブル（イベントトリガ、イベントイネーブル）を形成してそれをアキュミュレータに送付する。イベント処理ステートマシン４１からバリッドデータイネーブルを受けると、アキュミュレータ（累算器）は、バーニアデータを累積して、累積したバーニアデータ（バーニア合計データ）を形成する。したがって、累積したバーニアデータが、イベントカウントデータ（有効データエネイブル）によって定義されたタイミングで、イベント発生器２４に供給される。イベント発生器２４は、累積したバーニアデータにより定義された遅延時間をバリッドデータイネーブルのタイミングに追加するための遅延回路を有している。
【００３２】
したがって、例えば、イベントＥ２については、イベントカウントデータはC2であり、イベントバーニアデータはV2であるので、プロセッシングクロックをC2回計数すると、ターミナルカウントパルスがイベントカウントロジック４２により形成される。ターミナルカウントパルスを受けると、イベントステートマシン４１は、アキュミュレータに送出するバリッドデータイネーブルを形成する。アキュミュレータにおいて、バーニアデータV2は先のバーニアデータに加算され、そして結果としての累積バーニアデータは、イベントステートマシン４１からバリッドデータイネーブルのタイミングで形成される。イベントサミングロジックからの累積バーニアデータイベントメモリからのイベントタイプデータ（ドライブハイあるいはドライブロー等）に基づいて、イベント発生器２４は、イベント２Ｅをイベント１ＥからΔV2  だけ離れた位置に形成する。
【００３３】
半導体デバイス試験の応用では、２つのイベントの間の時間差は数ナノ秒から数１００ミリ秒までにわたっている。さらに、半導体デバイスの試験は高いタイミング精度と確度を必要とする。したがって、イベントデータによりそれぞれのイベントのタイミングを記述するには多くのビット数を使用する必要があり、したがって大容量のイベントメモリが必要となる。したがって、望ましくは、より効率的に記憶容量を使用するために、イベントメモリにイベントデータを保存する際に圧縮技術を用いる。
【００３４】
図６Ａ−６Ｃは、そのようなイベントデータ圧縮法の例を示している。図６Ａはイベントシリーズの例を示すタイムチャートであり、図６Ｂは、圧縮を使用しないで図６Ａの波形を形成するためのイベントデータのデータ構造例である。図６Ｃは、圧縮技術を取り入れて図６Ａの波形を形成するためのイベントデータのデータ構造例である。この発明と同じ譲受人が所有する米国特許番号6,226,765と6,578,169には、イベント型試験システムのための圧縮と復元技術の詳細および他の圧縮方法を開示している。
【００３５】
図６Ａの波形を形成するために、イベントデータとして図６Ｂに示すような基本データ構造を使用できる。図解の簡略のために、イベントタイプデータは、図６Ｂおよび６Ｃには示されていない。この例では、各イベントについて、合計２７のデータビットがイベントカウントデータ（イベントカウントメモリ）に割り当てられており、２８のデータビットがイベントバーニアデータ（イベントバーニアメモリ）に割り当てられている。これは各データが、予想される最大の時間長と分解能をカバーするために、そのような多くのビット数の使用が必要となるからである。しかしながら、多くの場合、隣接しているイベント間のそれぞれの時間差は、最大の可能な時間長よりはるかに短いので、より短いデータビット長で十分である。
【００３６】
したがって、イベントメモリにイベントデータを保存するとき、図６Ｃのデータ構造のように、データ圧縮（メモリ圧縮）技術を使用している。この例では、イベントカウントデータは１−４ワードにより構成され、１のワードは８ビットで構成されている。イベントカウントデータの１つのワードが、イベントカウントメモリの１のアドレスに格納されている。イベントバーニアデータは４つによって構成され、それぞれのバーニア遅延は７ビットである。１のイベントについて１以上のバーニア遅延を使用でき、最大４つのバーニア遅延が１のイベントに割り当てられる。この様に、ワードの最大の数は実際の応用においては、頻繁には必要でないので、イベントカウントデータとイベントバーニアデータを２つ以上の小さいワードに分けて使用することによって、総合的なデータ量を大幅に減少できる。
【００３７】
ここで、図３のイベントパイプライン・サミング装置３３における各ロジックについて詳細に説明する。図７は図３のイベントカウント遅延ロジック３４の構成を示すブロックダイアグラムである。イベントカウント遅延ロジック３４は、試験システムのイベントクロックに基づいて、イベントの総合的遅延を形成する。より具体的には、イベントカウント遅延値は、被試験デバイス（DUT）におけるイベントの間の整数倍イベントクロックカウント数とバーニアイベント数を表わしている。上で述べたように、イベントカウント（クロックカウント整数値の合計によって定義された遅延時間）の最終的なクロック周期に引き続いて、バーニアイベント値（１未満のクロック）による微細遅延を形成する。
【００３８】
本発明の開示において、イベントクロックはイベントデータの処理レートであり、マスタークロックはハードウエアがイベント処理を実行するために使用するクロックである。イベントクロックの繰返しレートは、マスタークロックのそれと同一となる場合がある。後で説明するように、マスタークロックにスケール計数を掛けることにより、イベントクロックを作成できる。言い換えれば、ハードウエア構成要素は、マスタークロックのレートで処理され、イベントタイミングは、イベントクロックのレートにより変更される。
【００３９】
図７において、イベントカウント遅延ロジック３４は、イベントカウントステートマシン（ECS）４１と２７ビットのイベントカウンタ４２を有しており、これは図５に示した構成と基本的に同一である。本発明の説明の全体を通して、特に指定された場合を除き、全てのクロック入力はマスタークロックを使用している。イベントカウントステートマシン４１は、図３のイベントパイプライン・サミングロジック（EVP）３３の総合的動作を制御するためのマスターコントローラである。すなわち、イベントカウントステートマシン４１は、イベントパイプライン・サミングロジック３３のマスターコントローラとして作動して、バーニアイベント間のイベントクロック遅延数を決定する。
【００４０】
イベントカウントステートマシン（ＥＣＳ）４１は、イベントカウンタ４２とイベントバーニアパイプライン（例えば、図３のバーニアデータ圧縮３５とイベントバーニアサミング３６）の双方の動作を制御する。本発明の好ましい実施例では、後で説明するように、図６Ｃの例で示したと同様の圧縮法を取り入れている。したがって、イベントカウントステートマシン４１は、イベントカウンタ４２にイベントカウントデータをロードするプロセスを制御する。特に、イベントカウントステートマシン４１は以下の機能を行う：
【００４１】
（１）テーブル１で定義される「スタート」信号および「継続」信号の状態に基づいて、イベントカウンタ４２へのイベントデータのローディング。
【００４２】
2005533253.tif 000003
【００４３】
（２）イベントバーニアサミングロジック３６におけるイベントバーニアステートマシン（図１４）と図３のイベントパイプライン・サミングロジック３３で示されたイベントスケーリングロジック３７におけるイベントスケーリングステートマシン（図示せず）とのハンドシェイク。
（３）バーニアデータについてマスタイネーブとして機能するイベントトリガ信号を発生する。後で詳細に説明するように、イベントトリガ信号は、イベントカウントデータを加算し、且つイベントバーニア加算あるいはイベントバーニアスケーリングの結果、キャリーオーバが生じるときは追加の遅延を加入することにより形成される。
（４）各イベントカウントの終了時にバーニアパイプラインを累進するためのパイプライン制御信号を発生する。
（５）スタートあるいは継続の動作のいずれにおいてもイベントカウントRAMのアドレスカウンタ（アドレス制御装置１８）を完全に制御する。
（６）通常動作の間は真（ツルー）である「ビジー」状態信号を発生する。データ処理の終了時点でEVP（イベントパイプライン・サミングロジック３３）の最終データ値がパイプラインから廃棄されるまで、この「ビジー」状態信号を継続する。イベントカウントステートマシンは、EVPパイプラインのデータが廃棄されたことをイベント型試験システムに通知するための信号を送出する手段を備えている。この動作は、イベントカウントステートマシン４１において特定の状態を必要としない。
【００４４】
イベントカウントステートマシン４１は２つの方法でイベントパイプライン・サミングロジック３３内の他のステートマシンとのハンドシェイクを行う。１番目は単に新しいイベントカウントの開始の合図をすることである。この動作は主としてイベントバーニアステートマシン（図１４）内でのみ行われる。２番目のタイプのハンドシェイクでは、ステートマシン４１は処理サイクルに待ち状態を挿入する。この動作は、イベントカウントステートマシン４１とイベントスケーリングロジック（図１６−１８）との間で行われる。
【００４５】
図８はイベントカウントステートマシン４１の動作の基本的な流れを示す状態図である。この図における状態は以下の通り定義される：
「アイドル」状態５１は、各データ処理セッションの間、イベントパイプライン・サミングロジック（EVP）３３の現在の状態を保持する。次の処理セッションは処理の「スタート」あるいは処理の「継続」により開始することができる。
「パイプラインの初期化」状態５２は、次の有効なデータに備えてEVPパイプラインを初期化する。初期化は必要な動作に依存する。したがって、初期化が、全体のEVPパイプラインを初期化する必要がある場合、または単にパイプラインが以前のデータ処理を再開することを必要とする場合がある。「スタート」信号および「継続」信号は、必要な動作を決定する。
【００４６】
「イベントカウントロード」状態５３は、イベントカウントメモリ２０からのデータに基づいてイベント遅延カウンタ４２をロードする。このロード動作は１−４バイトのイベントカウントデータ（図９）により構成している。０または１のイベントカウントデータをロードするためには、イベントカウントステートマシン４１は、次のイベントクロック周期の間、別のロード動作を実行することを必要とする。イベントカウントが１（図９のbit[7]）を越えるまで、この動作を継続する。
「イベント遅延カウント」状態５４は、イベントカウンタ４２からのターミナルカウント信号に基づいて、各イベントに遅延を追加する。
この状態図では、イベントスケーリングロジックからのパイプラインイネーブル（図７）を示していないが、この信号はイベントカウントステートマシン４１のパイプラインクロックとして作用する。イベントカウントスケーリングロジック３７からのパイプラインイネーブルは、イベントカウントステートマシン４１の動作を、マスタークロック周期に基づく動作からイベントクロック周期に基づく動作に変換する。言い換えれば、パイプラインイネーブルは、イベントクロックの繰返しレートになっている。
【００４７】
図７のブロック図に戻り、好ましい実施例では、イベントカウンタ４２は２７ビットのダウンカウンタにより構成している。イベントカウントステートマシン（ＥＣＳ）４１は、イベントカウントメモリ２０に保存された遅延データのフォーマットに基づいてダウンカウンタをロードする。図６Ａ−６Ｃを参照して上述したように、イベントメモリを効率的に使用するために、１またはそれ以上の小さなワードにより各イベントデータを記述することが好ましい。
そのような実施例を図９−１１に示す。図７と図９−１１の例では、イベントカウントデータは４タイプのフォーマットを有している可能性がある：すなわち、単一ワード、２ワード、３ワード、および４ワードである。したがって、特定のイベントカウントデータが、例えば３ワードによって構成される場合では、イベントカウントメモリ２０からイベントカウンタ４２への８ビット（１ワード）のデータのロード動作は、３回繰り返される。
【００４８】
図９は本発明におけるイベントカウントメモリ２０のデータ構造の例を示している。この例では、８ビットワードは、５ビットのカウントデータCOUNT[4:0]と、２ビットのバーニア数.データEVCNT  [6:5]と、１ビットのflag[7]により構成されている。COUNTデータは、特定のイベントを遅延するためのクロック周期の数、すなわち、イベントデータの整数部を示している。EVCNTデータは、プロセッシング（処理）サイクルにおけるバーニアイベントの数を示している。図６Ｃおよび図９−１１に示した圧縮方法を用いているために、特定のイベントについて、イベントメモリの特定のアドレスに、何個のバーニアデータが存在するかを知る必要がある。EVCNTデータはそのような情報を示している。flag[7]は、残りのワードがあるか（フラグ０）あるいはそれが最後のワードであるか（フラグ１）を示すことにより、イベントカウントデータのタイプを識別するためのものである。
【００４９】
図９のイベントカウントデータをイベントカウンタ４２にロードするために、アドレスコントローラ１８（図３）は、イベントカウントメモリ２０にアドレスを供給する。イベントカウントデータの各ロード動作に続いて、イベントカウントステートマシン４１は、アドレスコントローラ１８へアドレス累進（インクリメント）信号を供給して次のアドレスに累進させる。必要なロード動作の数によってイベントカウントデータが減少されたと想定される。単一バイトカウント値については、イベントカウンタ４２計数の間にその動作を停止する必要がないので、なんらの減少を必要としない。２以上のバイトカウントについては、それぞれのバイトごとに、カウンタを１イベントクロック周期だけ待たせることを必要とする。例えば、４ワードのイベントカウントデータをロードする場合には、その全体の値がイベントカウントメモリ２０にロードされる前に、ソフトウェアにより３回のイベントクロック計数サイクルだけ減少されることを意味する。すべてのカウントサイクルについて、イベントカウンタ４２の未使用のビットは、最初のデータロードのサイクルで強制的にゼロにされる。
【００５０】
図３のイベントバーニアデータ復元（デコンプレッション）ロジック３５について図１０−１１と図１２Ａ−１２Ｂを参照して詳細に説明する。イベントバーニアデータ復元ロジック３５は、イベントバーニアメモリ２１に保存された圧縮されたバーニアデータを復元（伸長）する機能を実行する。メモリ容量を効率的に使用するために、好ましい実施例では、図６Ｃに示したと同様の圧縮技術を用いている。すなわち、イベントバーニアデータは、１ビット以上の小さなデータに分割され、各イベントが１−４のバーニア遅延（第１から第４バーニアデータ）を持つことになる。各バーニアデータは、バーニア遅延データ（７ビット）と１のイベントタイプデータ（３ビット）を有する。イベントカウントメモリ２０は、それぞれのイベントクロック周期におけるバーニア遅延データ数を、図９に示すようなイベントカウントパラメータEVCNT[1:0]として提供する。
【００５１】
バーニアデータは、図６Ｃと図１０に示すような形で、イベントバーニアメモリ２１に連続的に保存される。すなわち、イベントバーニアメモリの各アドレスは、４ワードのバーニアデータを格納している。本発明では、そのようなバーニアデータは、後で説明するように、４つのパイプラインを通して並列に処理される。したがって、図１０のイベントバーニアメモリでは、イベントバーニアデータはバーニアパイプライン０で開始して、バーニアパイプライン１，２、および３に続くそれぞれのパイプラインに連続して格納される。
【００５２】
図１０の例では、イベント０は、３つのバーニア遅延（バーニア０−２）を有しており、イベント２は、１つのバーニア遅延（バーニア０）を有しており、イベント１は４つのバーニア遅延（バーニア０−３）を有している。図１０は、１または２以上のバーニア遅延がメモリアドレス境界にまたがることがあることを示している。例えば、イベントバーニアメモリのアドレス１にはイベント１のバーニア１−３があり、アドレス０にはイベント１のバーニア０がある。しかしながら、それぞれのイベントカウント遅延は、１クロック周期の遅延を必要とするだけである。したがって、イベントバーニアデータ復元ロジック３５（図１２Ａ−１２Ｂ）は、すべてのバーニアデータがそれぞれのマスタークロック周期の間各イベントに利用可能であることを保障するために、イベントメモリの少なくとも２つのメモリアドレスからバーニアデータを先取りしなければならない。また、図１０は、２つ以上のイベントが１つのバーニアアドレスを使用できることを示す。例えば、イベント３、イベント４、およびイベント５のためのイベントデータが、バーニアメモリのアドレス２に格納されている。これは、イベントカウントメモリ２０のアドレスポインタは、イベントバーニアメモリ２１のアドレスポインタと関係が全くないこと、すなわち互いに独立していることを意味する。
【００５３】
図１１は各イベントについてのイベントデータとイベントバーニアデータとの関係を示している。簡単ために、この例では、イベントカウントメモリには１バイトのイベントカウントデータがロードされていると想定する。上で述べたように、EVCNTは各イベントにかかわるバーニアデータの数を示す。ECRアドレスは、イベントカウントメモリ（イベントカウントRAM）のアドレスを表示し、ＥＶＲアドレスはイベントバーニアメモリ（イベントバーニアRAM）のアドレスを示す。バーニアデータはバーニアパイプライン０−３に割り当てられる。
【００５４】
図１１では、各イベントについての有効なバーニアパイプラインデータが図１０のイベントバーニアデータ形式で定義されたようにリストされている。この例では、イベント１とイベント５は、イベントバーニアデータがイベントバーニアメモリのアドレスにまたがっている。同様に、イベントカウントメモリのアドレスが密接にイベント番号と対応しており、一方、イベントバーニアメモリのあらゆるアドレスにおいても複数のイベントのためのバーニアデータを有している。
【００５５】
図１２Ａ−１２Ｂはイベントバーニアデータ復元ロジック３５の基本アーキテクチャを示している。イベントバーニアデータ復元ロジック３５は、イベントバーニアデータ圧縮ステートマシン５６、２バンクのループ記憶レジスタ、および２バンクの先取り（プリフェッチ）キューレジスタにより構成している。図１２Ａのイベントバーニアデータ圧縮ステートマシン５６は、イベントバーニア復元の全体的な動作を制御する。図１２Ｂは、バーニア先取りレジスタがイベントメモリ２０からのバーニア数データEVCNT[1:0]に基づいてイベントバーニアデータを取得して、４個のバーニアデータに対応する並列なパイプライン０−３に供給されている状態を示している。この例では、それぞれのバーニアデータバスは、７ビットのバーニア遅延データと３ビットのイベントタイプデータを供給している。上で述べたように、4つのパイプラインがこのロジックで構成されているので、先取りキューレジスタとループ記憶レジスタは、対応するパイプラインに対して４分割されている。
【００５６】
上で述べたように、各イベントのバーニアデータを２つの別のメモリアドレスから取り出す必要がある場合がある。単一ポートRAMを使用するとき、２つの別々のアドレスからのデータを同時に取り出すことは物理的に不可能である。したがって、初期化の間に２つのアドレスからその内容を検索する先取り（プリフェッチ）を実行しなければならない。したがって、マルチポートRAMをイベントバーニアメモリとして使用するときは、先取りキューレジスタは必要でない。ループ動作をする場合には、ループレジスタは、先取りレジスタの状態を回復するために使用される。そのような回復プロセスは、復元ロジックの適切な動作のために必要である。
【００５７】
イベントバーニアデータ復元ロジック３５では、イベントバーニアデータ復元ステートマシン５６は、各イベントのバーニア０を追跡するためのイベントポインタを維持する。図１０−１１に示すように、バーニア０は各イベントのベースバーニアを表わしている。イベントバーニアデータ復元ステートマシン５６は、イベントカウントステートマシン４１（図７）とハンドシェイクを行って、新たなイベントカウントの開始点を決定する。イベントバーニアデータ復元ステートマシン５６は、すべての有効なバーニアパイプラインを識別するために必要なイネーブル信号を発生し、「スタート」動作または「継続」動作の全ての間について、イベントバーニアアドレスカウンタを完全に制御する。
【００５８】
また、イベントバーニアデータ復元ステートマシン５６は、どんなループ動作の前にもイベントポインタと各バーニアパイプラインの両方の状態をセーブする。これは図１０および図１１に示されるように、バーニアデータの圧縮をしているからである。ループ制御信号は、テーブル２に示すうように定義される。
【００５９】
2005533253.tif 000004
【００６０】
ループ動作では、各イベントからの最も長いバーニア値（バーニア１，２、または３における）が、ループ動作の間、次のバーニア０から少なくとも１つのイベントクロック離れていなければならないことに留意されたい。これは非ループ動作では必要ではない。
【００６１】
イベントバーニアプリフェッチ（先取り）キューレジスタは、上述したように、２バンクで構成されている。各バンクはそれぞれ１０ビット（バーニアデータの７ビットとイベントタイプデータの３ビット）から成る最大４つのイベントバーニアデータを保存できる。ループ記憶レジスタは、プリフェッチレジスタと等しい格納サイズを有する。バーニアデータ復元ステートマシン５６は、これらの各レジスタの組について、ロードや選択の制御を行う。
【００６２】
図１３はイベントバーニアデータ復元ステートマシン５６の動作の基本的な流れを示す状態図である。この図における状態は以下の通り定義される：
「アイドル」状態６１は、それぞれのデータ処理セッションの間において、先取りキュー制御の現在状態を保持する。次の処理セッションは処理スタートか処理継続により開始できる。
「先取りキューの初期化」状態６２は、次の有効なデータに備えてイベントバーニア先取りキューを初期化する。この初期化は、先取りキューレジスタの全体を再初期化する必要がある場合、あるいは単にキューが前のデータ処理を再開する必要がある場合がある。「スタート」信号および「継続」信号は、必要な動作を決定する。
【００６３】
「先取りキュー再ロード」状態６３は、イベントカウントメモリ２０からの特定のイベントにかかわるバーニア遅延の数を示すEVCNT[1:0]データに基づいて、イベントバーニア先取りレジスタのバンクをロードする。より具体的には、先取りキューレジスタは、バンクが交互にロードするピンポンバッファとして機能する。また、この状態でループ動作のためのデータの格納と検索を実行できる。ループデータ検索は、LOOP_INT信号（テーブル２）が出されたときに実施され、先取りキューレジスタバンクがイベントバーニアメモリ２１から再ロードされるまで一連の選択ビットをイネーブルにする。同様に、バーニアパイプラインポインタは、LOOP_INT信号が出されている間、自動的に復元される。ループ動作は別々の状態を必要としない。
【００６４】
図３のイベントバーニアサミングロジック３６について、図１４を参照して詳細に説明する。イベントバーニアサミングロジック３６は、クロック周期内でバーニア遅延を正しく決定する。イベントバーニアサミングとは、イベントバーニアメモリ２１からのイベントバーニアデータによって表されるイベントクロックサイクル内での端数遅延を計算することに集約される。図１０および図１１に示すように、好ましい実施例では圧縮技術を取り入れているので、バーニア遅延として２つのタイプが可能である。１番目は「n」がn番目のイベントを示すバーニア０遅延値（ΔVn0）である。バーニア０遅延は、各イベントのクロックサイクル内でのベース遅延値である。残りのバーニア遅延値（ΔVn1、ΔVn2、ΔVn3）は、各イベントについて、このベース遅延値に付加される。したがって、各イベントの総合バーニア遅延は、バーニア０遅延値と残りのバーニア遅延値との合計である。例えば、イベント１について、総合バーニア遅延ΔV1は、バーニア０遅延ΔV10と、残りのバーニア遅延ΔVn1、ΔVn2、ΔVn3の合計である。イベントバーニアサミングロジック３６は、以前の全てのイベントバーニ遅延と現在のイベントのバーニア遅延との合計を計算することに注意されたい。
【００６５】
図１４はイベントバーニアサミングロジック３６の基本アーキテクチャを示している。特に指定されない限り、全てのクロック入力はマスタークロックを使用している。イベントバーニアサミングロジック３６は、バーニア０累積ロジックと、バーニアキャリサムステートマシン、およびバーニアパイプライン合計ロジックにより構成している。バーニア０累積ロジックは、ALU（論理演算装置）７５とレジスタにより構成するアキュミュレータにより構成され、マルチプレクサ（MUX）７３を介して、各イベントのバーニア０遅延を累積する。この例では、累算された下側の６ビットのみが維持される。
【００６６】
この累積の間にキャリーが検出されると、キャリサムステートマシン７１は、追加クロック周期を挿入する時期を決定しなければならない。これは、蓄積されたイベントバーニアがクロックの一周期を超えるとき、追加のサイクルをイベントカウント合計値に加えられなければならないことを意味する。キャリサムステートマシン７１は、図１６のスケーリングカウンタロジック９１とハンドシェークして、現在のイベントカウントサイクルに１回の待ち状態を挿入する。これは現在のイベントと次のイベントの間に、１回の追加イベントクロックを加える効果を果たす。キャリーが生じたときに１回のクロックを追加する動作の唯一の例外は、イベントのイベントカウント遅延がゼロのときに起こる。クロック周期がゼロイベントカウントと次のイベントの間に挿入されているので、キャリーはこの条件の下では無意味である。
【００６７】
イベントバーニア累積ロジック３６によって実行される最終的な動作は、累積されたバーニア０遅延（ΔV0sum）を残りのバーニア遅延（ΔVn1、ΔVn2およびΔVn3）に加えることである。バーニアサミングロジック３６は、累積されたバーニア０遅延を残りのバーニア遅延に加えるために、それぞれがALU（演算論理装置）を持つ４つのパイプライン０−３を有している。この例では、各パイプラインは５つのセル（Cell  1-5）を有し、マスタークロック毎にデータが１つのセルずつ連続してシフトすることを示している。上記のプロセスは、非スケーリング動作の間、それぞれのバーニアパイプラインについての最終的なバーニア遅延（バーニア合計データ）を形成する。
【００６８】
図１４のイベントバーニアサミングロジックは、バーニアパイプラインのどれにおいてもイベントタイプデータの処理は行わない。図に示していないが、イベントタイプデータはバーニアデータのデータ配列を維持するために、パイプラインを素通りする。
【００６９】
図３のイベントスケーリングロジック３７について、図１５−１９を参照して詳細に説明する。図１５はイベントスケーリングロジックの基本概念とイベントサミングロジックとの関係を示す簡略図である。イベントサミングロジック８２は、イベントカウントサミング８３とイベントバーニアサミング８４を有している。イベントカウントサミング８３は、イベントカウント遅延３４（図７）に対応しており、イベントバーニアサミング８４はイベントバーニア加算３６（図１４）に対応している。イベントスケーリングロジック８６は、イベントカウントサミングとイベントバーニアサミングにスケール計数を掛けるために乗算器８８と８９を有している。スケーリングされたデータは、加算器８７により合計されてイベント発生器２４（図３）に供給される。
【００７０】
上で述べたように、イベントスケーリングロジック３７は、イベント間の遅延をかけ算する手段を提供する。好ましい実施例では、かけ算（スケール）計数は８ビットで構成され、イベントの間の遅延が２５６倍までに拡大できる。図１５に示すように、スケーリングには、２つの部品がある：イベントカウントスケーリング（乗算器８８）とイベントバーニアスケーリング（乗算器８９）である。イベントカウントスケーリングは、累積したイベントカウントデータをスケーリング計数でかけ算することであり、イベントバーニアスケーリングは、累積したイベントバーニアデータをスケーリング計数でかけ算することである。
【００７１】
図１６はイベントカウントスケーリングロジックの基本アーキテクチャを描いている。イベントカウントスケーリングロジックは、スケーリングカウンタ９１、比較器９３、スケール計数レジスタ９５、およびANDロジックを含んでいる。典型的にスケーリングカウンタ９１は、マスタークロックの数を計測するアップカウンタである。比較器９３は、スケーリングカウンタ９１の出力とレジスタ９５からのとスケーリング計数を比較する。この例では、計数結果Ａがスケーリング計数Ｂより１だけ小さい値、すなわち、A=B-1に達したとき、比較器９３はターミナルカウント信号を形成する。スケール計数レジスタ９５は、上述した８ビットのスケーリング計数を保存する。ANDロジックは、比較器９３からのターミナルカウント信号とイベントバーニアサミングロジック（図１４）におけるキャリサムステートマシン７１からの付加的なサイクル遅延に基づいて、イベントクロック（イベントパイプラインエネイブル）を形成する。
【００７２】
基本的に、イベントデータをスケーリングするために、図１６のイベントカウントスケーリングロジックは、マスタークロックのスケール計数倍の時間周期を有するイベントクロックを形成する。例えば、イベントタイミングを２倍に増加するためには、スケール計数は２である。この場合、図１６のイベントカウントスケーリングロジックは、マスタ−ロックの時間周期より２倍の時間周期であるイベントクロックを形成する。イベントクロックは比較器９３からのターミナルカウント信号に基づいてANDロジックを通して発生される。イベントクロックは、図７のイベントカウント遅延ロジックにおけるイベントカウントステートマシン４１に供給され、その結果、イベントバーニアサミングロジック（図１４）へのイベントトリガ信号を、イベントクロックに基づいて形成する。
【００７３】
換言すれば、比較器９３からのターミナルカウント信号は、現在のスケールサイクル計数値とスケール計数から1を引いた数との結果となっている。この動作により、パイプラインのイネーブルなどの信号が、スケールカウンタロジックのターミナルカウント（最終計数）サイクルの間に発生することを可能にしている。しかしながら、これはスケールカウント値とスケールイネーブル信号との間に1クロック周期のオフセットを形成することとなる。したがって、スケールイネーブル信号は、カウンタの最後から２番目のサイクル（m-1）ではなく最後のサイクル（m）を有効とすべきである。
【００７４】
スケールモード信号は単にスケールイネーブル信号の反転信号である。スケールモード信号は、次のスケーリングされたイベントクロック周期のためにバーニアアキュムレータロジックの最初の値をロードする。アキュムレータロジックについては、後で詳細に議論する。
【００７５】
図１６のブロックダイアグラムでは、イベントカウントステートマシンあるいはイベントバーニアステートマシンのいずれからの制御接続も全く示していない。スケールカウンタロジック９１は、スケールイネーブル信号によって制御され、このスケールイネーブル信号はアドレスコントローラ（AC）１８内のレジスタに保持された静的（スタティック）ビットである。スケーリングーリングの処理が開始前に、この静的ビットは、セットまたはリセットされる。したがって、全ての出力信号がイベントデータ処理の開始前に有効になっている。スケール計数レジスタが更新されるときは、スケールイネーブル信号を無効にする必要がある。これにより、スケーリングカウンタロジック９１が新たなスケール計数を使用する前に最大限２５６カウントの範囲までインクリメント（累進）することを防止する。
【００７６】
イベントカウントスケーリング動作は、イベントパイプラインイネーブルや、イベントカウントステートマシンへのパイプラインクロックイネーブル（イベントクロック）や、イベントバーニアステートマシンへのパイプラインクロックイネーブル（イベントクロック）等の信号を介してスケールカウンタロジック９１によって完全に制御される。これらの信号は、データ動作がスケーリングされたイベントクロック周期より速く進行することは全くないことを保障するパイプラインクロックイネーブルを提供する。
【００７７】
イベントカウントスケーリングロジックは、スケーリング計数と等価の待ち状態をイベントカウントステートマシン４１（図７）に挿入する構成となっている。例えば、スケール計数「２」は、各イベントクロックサイクルが２サイクルのマスタ−クロックを使用することを意味する。スケール計数「３」は、各イベントクロックサイクルが３サイクルのマスタ−クロックを使用することを意味する。これらの待ち状態は、図１６のスケールカウンタロジック（アップカウンタ）９１により形成される。スケールカウンタロジック９１は、待ち状態を挿入する両方の手段と、各バーニア遅延がいつ有効であるかを決定する方法（例えば、イベントトリガ）をバーニア遅延スケーリングロジックに与える手段との双方を有している。
【００７８】
図１６のイベントカウントスケーリングロジックは、イベントサイクル信号であるピリオド信号を発生する。ピリオド信号はそれぞれのイベントクロック周期の開始を示す。スケーリング動作をしない場合、イベントクロック周期はマスタークロック周期と等しい。ピリオド信号は有効な処理サイクルの間いつも出力される。
【００７９】
スケーリング動作を実行する場合、それぞれのイベントクロック周期は「ｋ」マスタークロックと等しい。ここで「ｋ」（１，２，３等）はスケール（かけ算）計数である。ピリオド信号は、各イベントクロック周期の最初のマスタークロック周期の間だけ出力される。好ましい実施例では、イベントスケーリングロジックは、イベント発生器パイプラインをフラッシュ（空に）するために、処理シーケンスの最後に２つの追加のピリオド信号を発生する。
【００８０】
図１７と図１８は、イベントバーニアスケーリングロジックの基本アーキテクチャを示す。バーニアデータはパイプライン１−４を介してマスタークロックのタイミングによってシフトされる。図１７は、バーニアデータを整数回加算するためのバーニアデータアキュムレータを示している。一方、図１８は、図１６のスケールカウンタロジック９１からのスケール計数と図１７のアキュムレータの最上位ビットとの最終比較を実施する部分を示している。イベントカウントスケーリングロジックに使用されるパイプラインイネーブルは、単なるデータ通過であるイベントバーニアスケーリングロジックには使用されない。イベントパイプライン・サミングロジック３３の前半部の構成からの出力が、既に正しく遅延されてイベントバーニアスケーリングロジックに供給されている。
【００８１】
図１６−１８のこれらのブロックダイアグラムは、スケーリングカウント値データは、スケールイネーブル信号より１遅延分少ないことを示している。この余分の遅延を除去することにより、スケールカウントの開始点がスケールイネーブル信号の後に来る最初のマスタークロック周期に整列する。
【００８２】
上で述べたように、イベントカウントスケーリングロジックは、スケール計数と等価な待ち状態をイベントカウントステートマシン４１に挿入する。図１７のイベントバーニアスケーリングロジックは、各バーニア合計値にスケール計数を掛ける。バーニア遅延にスケール計数を掛ける最も簡単な手段は、スケール計数によって示された回数だけ各遅延を単に累積（加算）することである。例えば、スケール計数が「２」の場合は、マスタークロックのサイクルが各イベントクロックに２回あることを意味する。したがって、これらの2回のクロックにより、各バーニア遅延値がそれ自己加算（１＋１＝２）することができる。スケール計数が「３」の場合は、各バーニア遅延値がそれ２回自己加算（１＋１＋１＝３）することを意味する。これを達成するために、累積サイクルには遅延値が単に通過されるロードサイクルを有している。このロードサイクルの後に、累積サイクルが実行されて、遅延値が継続するクロックサイクル毎に累積される（１＋１＋….＋１＝ｋ）。
【００８３】
したがって、図１７のバーニアサミングロジックでは、図１４のバーニアサミングロジックからのバーニア合計データを対応するパイプラインに供給する。それぞれのパイプラインにおける最初のセル（Cell  5）は、論理演算装置とレジスタから成る累積器（アキュムレータ）である。バーニア合計データにスケール計数「ｋ」を掛けるために、各アキュムレータは累積サイクルを上に述べたように「ｋ−１」回繰り返す。スケーリングされたバーニア合計データは、パイプライン（Cell  9）からシフト出力される。
【００８４】
スケーリングされたバーニア合計遅延値は、イベントクロック長より大きくなることはない。しかしながら、スケーリング動作により、複数のマスタークロック周期にわたるバーニア遅延値をもたらすことができる。最大の追加遅延は、８ビットすなわち２５６マスタークロック周期である。正確で有効なマスタークロック周期を決定するために、バーニア遅延合計の最上位ビットとスケーリングされた各イベントクロック内のマスタークロックサイクル数を比較する必要がある。これは図１８の各比較器により行われ、最終的なバーニアスケール値（Vernier  Sum[14:7]）の最上位ビットと図１６のイベントスケーリングロジックからのスケールカウント値との比較結果が比較器から出力される。図１６のイベントスケーリングロジックは、このサイクル数を発生し、それを正しくパイプラインに合わせて通過させ、図１７および１８のバーニアスケーリングロジックに送出する。
【００８５】
図１９Ａ−１９Ｈは、スケーリング動作におけるこれらのコンセプトをスケール計数が「３」の場合の例により描いている。図１９Ａは本発明のイベントパイプライン・サミングロジック３３の第一次クロックであるマスタークロックを示している。図１９Ｂは、図１６のスケーリングカウンタロジック９１の出力信号であるスケールカウント値を示す。好ましい実施例では、スケーリングカウンタ９１はアップカウンタなので、スケールカウント値はマスタークロック毎に増加する。図１９Ｃは図１７のバーニヤアキュムレータの出力を示している。上述したように、バーニアかけ算動作は、アキュムレータによって、バーニアデータをロードした後に複数回の加算動作を行うことにより実施される。したがって、例えばスケール計数は「３」であり、バーニアデータはVnである場合、スケーリングされたバーニアデータ３Vnを形成するために２回加算が行われる。
【００８６】
図１９Ｄはスケーリングされたバーニアの最終値を示しており、これはバーニアかけ算動作の最終結果（図１７のVernier  Sum[14:7]）である。この結果はそれぞれのスケーリングされたクロック周期の終わりでのみ更新される。最終値はスケールサイクルの比較動作の前に安定していなければならない。図１９Ｅは、図１８の比較器の出力を示しており、これは図１６のイベントスケーリングロジックからのスケール計数値とバーニアスケール最終値（図１７のVernier  Sum[14:7]）との比較結果を表している。スケーリングされたバーニアデータは、マスタークロック周期を決定し、比較を有効とする。それは単一の、スケーリングされたイベントクロック周期を形成する３マスタクロック周期のいずれでも起こることができる。
【００８７】
図１９Ｆはイベントクロックを識別するイベントトリガであり、バーニアデータが有効であることを示す。イベントトリガ信号は、図７のイベントカウントステートマシン４１により発生される。この図では各イベントの最後のサイクルだけ凝縮して示しているので、イベントトリガ信号は常にハイになっている。より長い範囲の図であれば、この信号が各イベントの最終イベントクロック周期までローになっている状態が示されるであろう。図１９Ｇは、有効なバーニアデータを持つバーニアパイプライン（パイプライン０−３）を示すためのイベントバリッド信号に示している。この信号が全体のイベント期間（イベントカウントとバーニア遅延の両方を含んでいる）にわたって出力され、そのバーニアパイプラインは有効データを有していることを示す。
【００８８】
図１９Ｈは、イベント発生器２４が使用するバーニア合計データが有効であるイベントクロック周期を示すイベントイネーブル信号を示している。この信号はスケールサイクル比較信号（図１９Ｅ）と、スケールイネーブル信号（図１６）と、イベントバリッド信号は（図１９Ｇ）との組み合わせにより形成される。したがって、イベント発生器２４（図３）は、図１９Ｈのイベントイネーブル信号に遅延時間を付加してイベントを発生させる。その遅延時間は図１７に示されたイベントバーニアスケーリングロジックからのスケーリングされたバーニア合計データである。
【００８９】
図３のウィンドウストローブロジック３８について図２０−２３を参照して詳細に説明する。通常、ストローブは試験中の装置の出力を抽出するためのタイミング信号であるので、パルス幅を全く持っていない。そのような通常のストローブと異なり、ウィンドウストローブは広いパルス幅（ウィンドウ）を有したストローブ信号である。ウィンドウストローブは被試験デバイスの出力に予見可能は信号変化、例えばグリッチを検出するのに有効である。
【００９０】
図２０Ａ−２０Ｄのタイムチャートは、ウィンドウストローブが使用され状況例を示している。図２０Ａは上の例で用いたマスタークロックまたはイベントクロックを示している。図２０Ｂは、デバイス入力ピンに供給されるドライブイベント（入力スティミュラス）を示す。デバイス出力ピンが、図２０Ｃに示されるような波形の場合、そのパルスＰ１は図２０Ｄのストローブイベントのタイミングによりサンプル（標本化）される。しかしながら、Ｐ２やＰ３のようなグリッチ状の波形をサンプルするためにストローブのタイミングを設定することは難しい。したがって、本発明のイベント型試験システムは、より簡単で正確にそのようなグリッチとらえるために、図２０Ｄのウィンドウストローブを発生することができるように設計されている。
【００９１】
ウィンドウストローブを発生するためのイベントデータの例を図２１に示す。図２１のデータテーブルにおけるイベント番号は、図２０Ｄの波形で示されたイベント番号に対応している。簡略するために、イベントタイプデータはイベントバーニアデータとは別に描かれているが、上記の実施例のように、バーニアデータにイベントタイプデータを含めてもよい。
【００９２】
この例において、ストローブ（イベントＥ２）を発生するために、「Strobe（ストローブ）」がイベントタイプとして記述されている。通常のストローブでは、パルス幅を定義する必要がないので、イベント発生器２４はストローブをイベントタイミングデータとイベントタイプデータに基づいて発生する。ウィンドウストローブを発生するためには、イベントタイプ「Strobe」は２以上の連続したイベントとして指定される。図２１では、イベントＥ４とイベントＥ５がイベントタイプ「Strobe」として割り当てられている。ウィンドウストローブロジック３８は、２つの連続したイベントのイベントタイプデータをモニターし、２つの連続したストローブイベントがあるときはウィンドウストローブを発生すべきものと解釈する。
【００９３】
すなわち、２つのイベントバーニアデータ（バーニア遅延とイベントタイプ）が一致していると、ウィンドウストローブロジック３８は、ウィンドウストローブ出力を発生する。図２２は本発明の好ましい実施例におけるウィンドウストローブロジック３８の基本アーキテクチャの例を示す。図２３は重複したイベントを除くためにウィンドウストローブロジック３８に設けられる回路例を示す。図２２と２３のウィンドウストローブロジック３８には、上述した実施例と同様のパイプライン構成を有している。この例は、２つのイベントのバーニア遅延とイベントタイプの双方が一致するときに、ウィンドウストローブが形成される場合を示している。ウィンドウストローブを発生する場合には、図２２のウィンドウストローブロジックは、ウィンドウストローブイネーブルを形成してそれを、図１８のスケーリングロジックに送り、そこで最終的なウィンドウストローブを形成する。
【００９４】
テーブル３は、有効なウィンドウストローブを形成するためのイベントタイプを示している。
【００９５】
2005533253.tif 000005
【００９６】
図２２のウィンドウストローブロジックは、図１２Ａと１２Ｂに示されたイベントバーニアステートマシンとイベントバーニア先取りキューから、各バーニアパイプラインのイベントバーニアデータ（バーニア遅延とイベントタイプ信号）を受け取る。各データ値は他の全てのデータ比較される。図２２の例では、以下の決定をするための比較動作を行う。
（１）いずれか2つのイベントが一致しているか。
（２）各イベントはイベントタイプ４、５または６（テーブル３）か。
（a）他の全てのイベントは、有効なウィンドウストローブイベントでないので考慮しない。
（３）イベントバーニアがベースバーニア（バーニア０）であるとき。
（a）これはバーニア０にのみ適用される。
（b）ベースバーニアはイベントカウントステートマシンロジックにより出力された信号により特定される。
（c）一致しているイベントタイプはバーニア０を有しているかをチェック。
（４）イベントバーニアがベースバーニアでないとき。
（a）これらはバーニア１，２、および３である。
（b）ベースバーニアはイベントカウントステートマシンロジックにより出力された信号により特定される。
（c）イベントタイプとイベントバーニアの両方が等しいかどうかチェック。
【００９７】
バーニア圧縮の結果に応じて、バーニア０は４つの処理パイプラインのいずれかに存在しうることに注意されたい。したがって、上の規則は一連の比較を必要とする。イベントタイプについて以下の比較が実行される：
（１）タイプ０について
（a）タイプ０＝タイプ１か。
（b）タイプ０＝タイプ２か。
（c）タイプ０＝タイプ３か。
（２）タイプ１について
（a）タイプ１＝タイプ２か。
（b）タイプ１＝タイプ３か。
（３）タイプ２について
（a）タイプ２＝タイプ３か。
【００９８】
上の比較は図２２のウィンドウストローブロジック内の６個の比較器に対応している。この比較規則は図２３Ａのテーブルにより視覚的に表される。マーク「X」は２つのイベントタイプ間の比較を示す。イベントバーニア比較のために同様のマトリクスを構成でき、それは図２３Ｂに示されている）。
ウィンドウストローブロジックの目的の１つは、いずれか２つのイベントが同じタイプがあるかを決定することである。図２３Ａと２３Ｂのテーブルは、利用可能な比較を示している。図２２の例では、Type  0の比較のみを行っている。
【００９９】
さらに、検出されたタイプ０（Type  0）に一致するイベントが対応するバーニア０を有するとき、ウィンドウストローブであると定義される。バーニアビットのすべてについて「OR」論理を取ることにより、バーニアがゼロであるかを決定できる（図２２のロジックの入力において）。OR動作では、どんな入力論理「１」も出力論理「１」を形成する。これはゼロではないバーニアを検出することになる。したがって、４のゼロ決定における３比較を結合して、ウィンドウストローブを決定できる。
【０１００】
図２４Ａのテーブルは、バーニア０についてウィンドウストローブが決定される状態を示しており、マーク「W」のある部分が検出されたウィンドウストローブを示す。左欄の上側にバーニア０を示している。左欄の下側にはゼロではないバーニアを示している。
【０１０１】
バーニア１、２および３のウィンドウストローブは、図２４Ｂのテーブルに示したように、バーニア０の場合と同様の方法で決定している。主な相違は、ここではバーニア値の間の一致がとれなければならないということである。この決定において、タイプ０との比較は無視される。各決定において、イベントバーニア値とイベントタイプの両方が一致していなければならない、またイベントタイプはタイプ０であってはならない。
【０１０２】
イベントタイプがバーニア０であるイベントが他のいかなるバーニアパイプラインのイベントと一致し、その一致するバーニアパイプラインの遅延値がゼロのとき、ウィンドウストローブロジック３８は１クロックパルスを発生する。またウィンドウストローブロジック３８は、いずれか２個のバーニア１，２、および３が、バーニア遅延値とイベントタイプの双方が一致するとき、１クロックパルスを発生する。上の双方の場合において、いかなる２つのバーニア遅延も完全な同一時間に同一イベントタイプであることはできないので、一致がとれたバーニアパイプラインの１つを有効でないとする。
【０１０３】
したがって、図２５に示された回路構成により、そのような重複したイベントを除去する。この例では、図２６のテーブルに従って、除去動作が実行される。この動作のための規則は、２つのイベントから１つを取り除かなければならないということである。このテーブルでは、除去対象として、より高い番号の付いたイベントタイプとバーニアを選択している。この決定により、一連のイベントエネイブルを発生することができる。イベントタイプとバーニアのイベントイネーブルはディスエイブルされる。イベントバリッド信号の論理“AND”を取ることにより、どのイベントデータ値が無効にされるかを決定する（図２６のANDゲート）。これによりイベント発生器からの発生動作が禁止される。
【０１０４】
これらの各場合において、一致しているバーニアパイプラインの１つは有効なまま残る。このバーニアパイプラインには、対応するウィンドウストローブイネーブル信号が出力される。ウィンドウストローブイネーブル信号は、ウィンドウストローブに伴うイベントタイプとのバーニア値を特定する。上で概説した規則のすべては、有効なウィンドウストローブのイベントタイプにのみ適用される。
【０１０５】
図１８に示すように、ウィンドウストローブロジック３８は、ウィンドウストローブ条件を発生したバーニアデータにウィンドウストローブ出力を同期させる。したがって通常の動作の間、すべてのバーニア遅延とイベントタイプは、同一クロックサイクルにおいて有効である。したがって、各イベントにおいて、すべてのウィンドウストローブが同じポイントで有効になる。スケーリング動作の間、バーニア値は多くのマスタークロックサイクル間にまたがることがある。したがって、その場合のウィンドウストローブは、スケーリングされたイベントクロックサイクルにおける任意な点で起こり、それはトリガーするバーニアデータに対応する。
【０１０６】
図２７Ａ−２７Ｂから図３１Ａ−３１Ｂは、本発明における動作例を示すタイミング図である。このタイミング図は以下の信号を示している。
「M_CLK」：マスタークロック。
「START」：サミングおよびスケーリングのプロセスの開始を告げるスタート信号。すべてのステートマシンはパイプラインを再初期化する。
「CONTINUE」：すべてのプロセスが再開すべきであることを告げる継続信号。パイプラインロジックは何らの初期化も要求されない。
【０１０７】
「ECR_ADR[17:0]」：イベントカウントメモリのアドレスバスにおけるアドレスデータ。
「ECR-AP_INC」：イベントカウントメモリのアドレスポインタの累進（インクリメント）。この信号はイベントカウントアドレスポインタをインクリメントする。
「ECR_CNTR[26:0]」：イベントカウンタのカウント値（図７のイベントカウンタ42）。イベントカウンタ４２は最大４セグメントのイベントカウントデータがロードされる２７ビットのカウンタ。
「ECR_CNT_LD[3:0]」：イベントカウンタのロードストローブ（図７のイベントカウントステートマシン４１とイベントカウンタ４２）。イベントカウンタ４２には、４つの搭載（ロード）可能なセグメント（図９の単一ワードから４ワードまで）を有する。
【０１０８】
「EVT_PIPE_EN」：メインエベントバーニアパイプラインイネーブル（図１２Ａのイベントバーニアステートマシン５６の入力）。
「ECR_CNTR_TC」：イベントカウンタのターミナルカウント出力（図７のイベントカウンタ４２の出力）。このカウンタのターミナルカウントは、図２９Ａ−３１Ｂにおいて「２」で起こる。
「EVT_TRG」：イベントトリガ信号（図７のイベントカウントステートマシン４１の出力、そして図１８のイベントスケーリングロジックの入力）。これはバーニアデータの出力をイネーブルにするイベントカウントステートマシンからのメインイネーブルである。
【０１０９】
「EVR_ADR[17:0]」：イベントバーニアメモリアドレスバスにおけるアドレスデータ。
「EVR_AP-INC」：イベントバーニアのメモリアドレスポインタのインクリメント（累進）。この信号はイベントバーニアのアドレスポインタをインクリメントする。
「EVNT_CNT[1:0]」：イベントバーニアの数を示すデータ（図９のEVCNT）。これはこのイベントカウントサイクル内のバーニアイベントの数を表すデータである。
「EVR_PTR[2:0]」：バーニア０を有するバーニアパイプライン決定するために先取りロジックにより使用されるイベントバーニアメモリポインタ。
「EVR_PREF_LD[1:0]」：イベントバーニア先取りロードイネーブル。これらの信号はイベントバーニア先取りレジスタ（図１２Ｂ）へのロードを制御する。
【０１１０】
「SCALE_MODE」：スケールモード信号（図１６のイベントカウントスケーリングロジックの出力）。スケーリング動作の間、この信号は各バーニアパイプラインについてスケーリングアキュミュレータのロードを制御する。
「ZERO_CY_FLG」：図７のイベントカウントステートマシン４１から図１４のキャリーサムステートマシン７１への出力。このフラグは、キャリーサムステートマシンはキャリーが検出されたとき、１サイクルを加入すべきでないことを意味する。
「ONE_CY_FLG」：現在のサイクルに単一のイベントクロックカウントを含むことを示す組合せ信号。
「EXTRA_CY_EN」：図１４のキャリーサムステートマシン７１から図１６のスケールカウンタロジック９３への出力であり、１のイベントクロックカウントの追加を要求する。
【０１１１】
「CARRY_SUM」：キャリービットがあったことを示す、図１４のバーニア0アキュミュレータからの出力。
「VER_DAT_nP[6:0]」：パイプライン「ｎ」へバーニアデータ（図12B。このデータは遅延データとイベントタイプデータを含む）。
「VER_ENBL_nP」：パイプライン「ｎ」へのバーニアデータイネーブル。これは図１９Ｈのイベントイネーブルに等価であり、スケーリングされたバーニア合計データで示される遅延時間を加えたイベントをイベント発生器２４により発生するためのものである。
「PERIOD_T」：スケーリングされたクロック周期（図１６の出力）の開始点を示すピリオド信号であり、イベント発生器動作をサポートする。
「WSTB」：ウィンドウストローブ（図１８の出力）。２つの連続したイベントのイベントタイプとバーニア遅延が予め定めたな条件に一致するとき、ウィンドウストローブが発生される。
【０１１２】
図２７Ａ−２７Ｂと図２８Ａ−２８Ｂは、イベントカウントパイプラインおよびイベントバーニアパイプラインがどのように動作するかの例を示している。この例では、動作プロセスは「START」による初期化により開始される。イベントカウントメモリ２０のアドレス「ECR_ADR[17:0]」が、インクリメント信号「ECR_AP_INC」によりインクリメント（累進）される。イベントバーニアメモリ２１のアドレス「EVR_ADR[17:0]」が、インクリメント信号「EVR_AP_INC」によりインクリメント（累進）される。イベントカウンタ４２は、イベントカウンタロードストローブ「ECR_CNT_LD[3:0]」に応答して、１バイト、２バイト、３バイトあるいは４バイトのイベントカウントデータ「ECR_CNTR[26:0]」をロードし処理する。
【０１１３】
クロックをイベント計数データで指定された回数だけ計数することによって、イベントカウンタ４２はイベントカウントステートマシン４１に供給するターミナルカウント出力「ECR_CNTR_TC」を形成する。これに応答して、イベントカウントステートマシン４１は、イベントトリガ信号「EVT_TRIG」を形成する。このイベントトリガ信号は、バーニアデータの出力をイネーブルとするためにイベントバーニアサミング（図１４）とイベントスケーリングロジック（図１８）のキャリーサムステートマシン７１に送出される。
【０１１４】
特定のイベントサイクルにおけるバーニアイベントの数は「EVNT_CNT[1:0]」により、イベントカウントデータ（図９）の一部として記述される。このデータに基づいて、イベントバーニアメモリポインタは、先取りレジスタ「EVR_PTR[2:0]」ためのバーニア０を有するバーニアパイプラインを決定する。したがって、イベントバーニア先取りロードイネーブル「EVR_PREF_LD[1:0]」に基づいて、バーニアデータはイベントバーニア先取りレジスタ（図１２Ｂ）にロードされる。
【０１１５】
図２８Ｂのプロセスは、図１４のキャリーサムステートマシン７１で検出したキャリーにより、付加的なクロック周期を挿入するための動作を示している。図７のイベントカウントステートマシン４１の出力「ZERO_CY_FLG」は、イベントクロックカウントを要求するために、図１４のキャリーサムステートマシン７１に送られる。キャリーサムステートマシン７１は、付加サイクルイネーブル「EXTRA_CY_EN」を形成して、それを図１６のスケールカウンタロジック９３に送り、そこでANDロジックで付加的なサイクルが加えられる。
【０１１６】
また図２８Ｂのプロセスは、ウィンドウストローブの発生を示している。２つのイベントバーニアデータ（バーニア遅延とイベント・タイプ）が互いに一致するとき、ウィンドウストローブロジック３８（図２２）は、ウィンドウストローブ出力を発生する。ウィンドウストローブWSTBは、バーニアデータエネーブルの１つの形態であり、図１８の回路構成により、図２８Ｂのバーニアデータイネーブル「VER_ENBL_nP」（イベントエネイブル）のタイミングで発生する。
【０１１７】
図２９Ａ−２９Ｂ、図３０Ａ−３０Ｂ、および図３１Ａ−３１Ｂは、スケール計数が「２」であるときに、イベントカウントとイベントバーニアパイプラインがどう作動するかの例を示している。これらの図は、図２７Ａ−２７Ｂ、図２８Ａおよび図２８Ｂにそれぞれ示されたタイミングに基づいている。スケーリングされたタイミングは、各クロック周期の間における待ち状態の効果を示している。すなわち、図１６のイベントカウントスケーリングロジックは、スケール計数と等価の待ち状態をイベントカウントステートマシン４１に挿入する。スケール計数が「２」であるので、各イベントクロック周期は、マスタークロック周期を２つ使用している。したがって、図２９Ａ、図３０Ａ、および図３１Ａでは、例えばイベントカウントデータは、マスタークロックの２倍のクロック周期を持つイベントクロックのレートでイベントカウンタ４２にロードされる。また図２９Ｂ、図３０Ｂ、および図３１Ｂのピリオド信号PERIOD_Tは、イベントクロックと同じ繰返しレートを示している。
【０１１８】
図３１Ａ−３１Ｂの例は、バーニアデータイネーブル「VER_ENBL_nP」（イベントイネーブル）とウィンドウストローブWSTBでのスケーリングの効果を示している。これらの信号は、バーニア遅延データのために発生されたスケーリングされた値に依存する。したがって、これらの信号は2つのマスタクロック周期のいずれかで発生する。上述したように、ウィンドウストローブWSTBは、バーニアデータイネーブル「VER_ENBL_nP」（イベントイネーブル）と同じタイミングで発生される。
【０１１９】
上述したように、本発明によれば、高速度イベント型試験システムのためのイベント処理に実施して、ドライブイベントやストローブイベントを形成することができる。イベントデータは、2またはそれ以上の小さなワードあるいはセグメントに分割することにより圧縮されて、2以上のパイプラインを介して並列に処理される。デコンプレッション（復元）、サミング（加算）、およびスケーリングのプロセスが、本発明のパイプライン構成を通して行われる。また、イベントパイプライン・サミングロジックは、イベントデータを解釈して、ウィンドウストローブを発生するためのウィンドウストローブロジックを有している。その結果、本発明のイベントパイプライン・サミングロジックは、イベント型試験システムにおいて高速イベント処理と高安定性を実現する。
【０１２０】
好ましい実施例のみを格別にここで図示して説明しているが、上の教示と添付したクレームに基づいて、本発明の多くの変更や変形が、本発明の範囲やスピリットから逸脱することなく、可能であることが理解されよう。
【図面の簡単な説明】
【０１２１】
【図１】図１は本発明によるイベントパイプライン・サミング方法およびその装置を実施するためのイベント型試験システムの基本構成を示す概略ブロック図である。
【図２】図２Ａ−２Ｄは、イベント型試験システムにおける基準クロックとイベントのタイミングとの間の基本的な関係を示すタイミングチャートである。
【図３】図３は、本発明のイベントパイプライン・サミング装置の基本構成を示すブロック図である。
【図４Ａ】図４Ａは、一連のイベントの波形例を示すタイミングチャートである。
【図４Ｂ】図４Ｂは、図４Ａに示した一連のイベントを形成するために、イベントメモリに格納されたイベントデータのデータ構造のコンセプトを示す概略ブロック図である。
【図５】図５は、図４Ｂのイベントデータを使用して、図４Ａのイベント波形を形成するための図３Ｂのイベントカウント遅延ユニットとイベントバーニア加算ユニットの基本構成を示すブロック図である。
【図６】図６Ａ−６Ｃは、イベントデータの圧縮方法の例を示しており、図６Ａは一連のイベントの例を示すタイムチャートであり、図６Ｂは圧縮なしで図６Ａの波形を形成するためのイベントデータの構造の例を示し、図６Ｃは、図６Ａの波形を作成するために圧縮技術を取り入れたイベントデータのデータ構造の例を示している。
【図７】図７は、イベントデータの整数部を加算するための、本発明のイベントパイプライン・サミングロジックにおける、イベントカウント遅延ロジックの基本構成を示す概略ブロック図である。
【図８】図８は、図７のイベントカウント遅延ロジックにおけるイベントカウントステートマシンの動作例を示す状態図である。
【図９】図９は、図７のイベントカウンタにロードされる、イベントカウントメモリからのイベントカウントデータのデータフォーマットの例を示す図である。
【図１０】図１０は、イベントバーニアメモリにおける圧縮技術を使用したイベントバーニアデータのデータフォーマットの例を示す図である。
【図１１】図１１は、各イベントについて、図９に示したイベントデータフォーマットと図１０に示したバーニアデータフォーマットとの関係を示す図である。
【図１２】図１２Ａ−１２Ｂは、図３のイベントバーニアデータ復元ロジックの基本アーキテクチャに示しブロック図であり、図１２Ａはイベントバーニアステートマシンを示し、図１２Ｂは各イベントについて１またはそれ以上のバーニアデータを復元するための並列回路構成を示している。
【図１３】図１３は、図１２Ａ−１２Ｂに示したイベントバーニアデータ復元ロジックに組み込まれたイベントバーニアデータ復元ステートマシン基本動作の例を示す状態図である。
【図１４】図１４は、並列パイプラインを通して一連のイベントのバーニアデータを累積するための図３のイベントバーニアサミングロジックの構成例を示すブロック図である。
【図１５】図１５は、イベントカウントデータとイベントバーニアデータをスケーリングする本発明のイベントスケーリングロジックの基本コンセプトを示す概要図である。
【図１６】図１６は、図７のイベントカウント遅延ロジックからのイベントカウントデータをスケーリングする本発明のイベントスケーリングロジックの基本アーキテクチャを示すブロック図である。
【図１７】図１７は、図１４のイベントバーニアサミングロジックからのイベントバーニアデータをスケーリングする本発明のイベントバーニアスケーリングロジックの構成例を示すブロック図である。
【図１８】図１８は、図１６のイベントスケーリングロジックからのスケール計数値を最終比較するための本発明のイベントバーニアスケーリングロジックの構成例を示すブロック図である。
【図１９】図１９Ａ−１９Ｈは、スケール計数が“３”の場合における図１６−１８の本発明のイベントスケーリングロジックによるスケーリング動作例を示す波形チャートである。
【図２０】図２０Ａ−２０Ｄは、DUTの出力におけるグリッチ状の波形を検出するためのウィンドウストローブについて説明するためのイベント試験システムにおける波形例を示すタイミングチャートである。
【図２１】図２１は、図２０Ｄのウィンドウストローブを発生するためにイベントメモリに保存されたイベントデータの例を示す概要図である。
【図２２】図２２は、データに基づいてウィンドウストローブを発生するためのイベントバーニアデータとイベントタイプデータを検出するためのウィンドウストローブロジックの構成例を示すブロック図である。
【図２３】図２３Ａ−２３Ｂは、ウィンドウストローブを検出するために、図２２のウィンドウストローブロジックでの比較規則の例を示す図ある。
【図２４】図２４Ａ−２４Ｂは、ウィンドウストローブを検出するために、図２２と図２３のウィンドウストローブロジックでウィンドウストローブを決定する例を示す図である。
【図２５】図２５は、有効なウィンドウストローブを検出するための重複イベント除去ロジックの構成例を示すブロック図である。
【図２６】図２６は、図２５の回路構成により、ウィンドウストローブイベントを除去する動作例を示す図である。
【図２７Ａ】図２７Ａは、スケール計数が“１”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作例を示すタイムチャートである。
【図２７Ｂ】図２７Ｂは、スケール計数が“１”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作例を示すタイムチャートである。
【図２８Ａ】図２８Ａは、スケール計数が“１”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作の別の例を示すタイムチャートである。
【図２８Ｂ】図２８Ｂは、スケール計数が“１”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作の別の例を示すタイムチャートである。
【図２９Ａ】図２９Ａは、スケール計数が“２”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作のさらに別の例を示すタイムチャートである。
【図２９Ｂ】図２９Ｂは、スケール計数が“２”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作のさらに別の例を示すタイムチャートである。
【図３０Ａ】図３０Ａは、スケール計数が“２”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作のさらに別の例を示すタイムチャートである。
【図３０Ｂ】図３０Ｂは、スケール計数が“２”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作のさらに別の例を示すタイムチャートである。
【図３１Ａ】図３１Ａは、スケール計数が“２”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作のさらに別の例を示すタイムチャートである。
【図３１Ｂ】図３１Ｂは、スケール計数が“２”である場合における本発明のイベントパイプライン・バーニアサミング方法および装置の動作のさらに別の例を示すタイムチャートである。
【図１】
2005533253.tif 000006
【図２】
2005533253.tif 000007
【図３】
2005533253.tif 000008
【図４Ａ】
2005533253.tif 000009
【図４Ｂ】
2005533253.tif 000010
【図５】
2005533253.tif 000011
【図６】
2005533253.tif 000012
【図７】
2005533253.tif 000013
【図８】
2005533253.tif 000014
【図９】
2005533253.tif 000015
【図１０】
2005533253.tif 000016
【図１１】
2005533253.tif 000017
【図１２】
2005533253.tif 000018
【図１３】
2005533253.tif 000019
【図１４】
2005533253.tif 000020
【図１５】
2005533253.tif 000021
【図１６】
2005533253.tif 000022
【図１７】
2005533253.tif 000023
【図１８】
2005533253.tif 000024
【図１９】
2005533253.tif 000025
【図２０】
2005533253.tif 000026
【図２１】
2005533253.tif 000027
【図２２】
2005533253.tif 000028
【図２３】
2005533253.tif 000029
【図２４】
2005533253.tif 000030
【図２５】
2005533253.tif 000031
【図２６】
2005533253.tif 000032
【図２７Ａ】
2005533253.tif 000033
【図２７Ｂ】
2005533253.tif 000034
【図２８Ａ】
2005533253.tif 000035
【図２８Ｂ】
2005533253.tif 000036
【図２９Ａ】
2005533253.tif 000037
【図２９Ｂ】
2005533253.tif 000038
【図３０Ａ】
2005533253.tif 000039
【図３０Ｂ】
2005533253.tif 000040
【図３１Ａ】
2005533253.tif 000041
【図３１Ｂ】
2005533253.tif 000042
【国際調査報告】
2005533253.tif 000043
2005533253.tif 000044