(57)【要約】  被試験デバイスを試験する試験装置であって、被試験デバイスを試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶するパターンメモリと、パターンメモリから読み出された試験命令列を非圧縮形式に展開する展開部と、展開部により展開された試験命令列をキャッシングする命令キャッシュと、命令キャッシュに格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生するパターン発生部と、試験パターンに基づく試験信号を生成し、被試験デバイスに供給する信号出力部とを備える試験装置を提供する。
2008126747.tif 000002
【特許請求の範囲】
【請求項１】
被試験デバイスを試験する試験装置であって、
前記被試験デバイスを試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶するパターンメモリと、
前記パターンメモリから読み出された試験命令列を非圧縮形式に展開する展開部と、
前記展開部により展開された試験命令列をキャッシングする命令キャッシュと、
前記命令キャッシュに格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生するパターン発生部と、
前記試験パターンに基づく試験信号を生成し、前記被試験デバイスに供給する信号出力部と
を備える試験装置。
【請求項２】
前記パターンメモリは、前記試験命令列における、予め定められた種類の命令を圧縮する圧縮形式で記憶し、
前記展開部は、前記パターンメモリから読み出された前記試験命令列において圧縮された前記予め定められた種類の命令を展開して非圧縮形式とし、前記命令キャッシュに書き込む
請求項１に記載の試験装置。
【請求項３】
前記予め定められた種類の命令は、前記試験シーケンスの変更および当該試験装置内のレジスタ値の明示的な変更を伴わないＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）命令を含む請求項２に記載の試験装置。
【請求項４】
前記パターンメモリは、
前記被試験デバイスを試験するための試験パターン列を更に記憶し、
ＮＯＰ命令を削除した圧縮形式により、前記試験命令列に含まれる圧縮対象でない各命令を記憶し、
圧縮対象でない各命令に対応して、各命令に対応する試験パターンのオフセットを記憶し、
前記展開部は、前記パターンメモリから読み出した試験命令列における第１の命令のオフセットと、前記パターンメモリ中において前記第１の命令の次に記憶された第２の命令のオフセットとが連続しない場合において、前記第１の命令の次のオフセットから前記第２の命令の前のオフセットまでの各オフセットに対応してＮＯＰ命令を再生する
請求項３に記載の試験装置。
【請求項５】
前記パターン発生部は、
前記命令キャッシュに格納された命令を順次読み出して実行し、実行される命令および対応する試験パターンのオフセットを記憶するオフセットレジスタの値を更新するベクタ生成制御部と、
前記ベクタ生成制御部の前記オフセットレジスタに記憶されたオフセットに対応する試験パターンを出力するパターン発生器と
を有し、
前記ベクタ生成制御部は、順次実行される各命令を実行する度に前記オフセットをインクリメントし、分岐命令を実行する場合に分岐先の命令のオフセットを前記オフセットレジスタにロードする
請求項４に記載の試験装置。
【請求項６】
前記試験命令列は、少なくとも１つのＮＯＰ命令と、前記少なくとも１つのＮＯＰ命令の次に位置する、前記少なくとも１つのＮＯＰ命令の実行中に前記被試験デバイスの出力信号が予め指定した値と一致しないことを条件として前記少なくとも１つのＮＯＰ命令の先頭に分岐するマッチ制御命令とを含み、
前記展開部は、前記パターンメモリから前記マッチ制御命令が読み出された場合に、前記マッチ制御命令に先行する前記少なくとも１つのＮＯＰ命令を展開し、前記マッチ制御命令によるループ内に位置することを前記パターン発生部が識別可能な命令として前記命令キャッシュにキャッシングさせる
請求項５に記載の試験装置。
【請求項７】
前記展開部は、前記マッチ制御命令によるループ内に位置する命令のそれぞれに、前記マッチ制御命令の次の命令のオフセットを対応付けて前記命令キャッシュにキャッシングさせ、
前記ベクタ生成制御部は、前記マッチ制御命令によるループ内に位置する命令の実行時に前記被試験デバイスの出力信号が前記予め指定した値と一致したことを条件として、当該ＮＯＰ命令に対応付けられた前記オフセットを前記オフセットレジスタにロードすることにより前記マッチ制御命令の次の命令に分岐する
請求項６に記載の試験装置。
【請求項８】
前記試験命令列は、前記被試験デバイスの出力信号が予め指定した値と一致しないことを条件として、自身または先行する命令に分岐するマッチ制御命令を含み、
前記展開部は、前記パターンメモリから読み出された前記マッチ制御命令における分岐先の相対オフセットを、絶対オフセットに変換して前記命令キャッシュにキャッシングさせ、
前記パターン発生部は、前記マッチ制御命令の実行時に前記被試験デバイスの出力信号が前記予め指定した値と一致しないことを条件として、前記絶対オフセットを前記オフセットレジスタにロードする
請求項５に記載の試験装置。
【請求項９】
前記ベクタ生成制御部は、
１以上の命令を含むループ区間を繰り返し実行する繰返し回数を指定する回数指定命令の実行において、回数指定命令により指定された繰返し回数をスタックにプッシュし、
前記ループ区間の末尾に配置されたループ分岐命令の実行において、前記スタックの先頭に記録された繰返し回数が０でないことを条件として前記スタックの先頭の繰返し回数をデクリメントして前記ループ区間の先頭に分岐し、前記スタックの先頭の繰返し回数が０であることを条件として当該繰返し回数を前記スタックからポップして次の命令に制御を移し、
前記ループ区間中においてループを終了させることを指示するブレーク命令を実行する場合において前記スタックの先頭の繰返し回数を０として、前記ループ区間中における当該ブレーク命令以降の各命令を実行した後に前記ループ分岐命令の次の命令を実行する
請求項５に記載の試験装置。
【請求項１０】
指定した繰返し回数実行される繰返し命令が前記パターンメモリから読み出された場合において、前記展開部は、前記繰返し回数が１回であることを検出したことに応じて、前記繰返し命令をＮＯＰ命令に置換して前記命令キャッシュにキャッシングさせる
請求項４に記載の試験装置。
【請求項１１】
電子デバイスであって、
被試験回路と、
前記被試験回路を試験する試験回路とを備え、
前記試験回路は、
前記被試験回路を試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶するパターンメモリと、
前記パターンメモリから読み出された試験命令列を非圧縮形式に展開する展開部と、
前記展開部により展開された試験命令列をキャッシングする命令キャッシュと、
前記命令キャッシュに格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生するパターン発生部と、
前記試験パターンに基づく試験信号を生成し、前記被試験回路に供給する信号出力部と
を有する電子デバイス。
【請求項１２】
被試験デバイスを試験する試験方法であって、
前記被試験デバイスを試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶する段階と、
前記パターンメモリから読み出された試験命令列を非圧縮形式に展開する段階と、
前記展開された試験命令列をキャッシングする段階と、
前記格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生する段階と、
前記試験パターンに基づく試験信号を生成し、前記被試験デバイスに供給する段階と
を備える試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験装置、試験方法、および電子デバイスに関する。特に本発明は、被試験デバイスを試験する試験装置および試験方法、および、被試験回路を試験する試験回路を備える電子デバイスに関する。本出願は、下記の米国特許出願に関連する。文献の参照による組み込みが認められる指定国については、下記の出願に記載された内容を参照により本出願に組み込み、本出願の一部とする。
１．米国特許出願  １１／７３３，１７４    出願日  ２００７年０４月０９日
【背景技術】
【０００２】
半導体等の被試験デバイスを試験する試験装置が知られている。試験装置は、所定の論理パターンの試験信号を被試験デバイスに供給し、当該試験信号に応じて被試験デバイスから出力される信号を検出する。そして、試験装置は、検出した信号と期待値と比較することにより、当該被試験デバイスの良否を判定する。【０００３】
試験装置は、試験パターンを順次に発生するパターン発生器と、試験パターンに応じた論理の試験信号を出力する試験信号出力部とを備える（例えば、特許文献１参照）。パターン発生器は、メモリに格納されたシーケンスデータ（試験命令列）から順次に命令を読み出し、読み出した命令を実行する。そして、パターン発生器は、実行した各命令に対応するパターンデータをメモリから読み出し、読み出したパターンデータを試験パターンとして順次に出力する。これにより、試験装置は、所定の論理パターンの試験信号を被試験デバイスに供給することができる。
【特許文献１】日本国特許出願  特開２０００−２０６２１０号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、被試験デバイスの機能の向上に伴い試験項目および内容が増大し、シーケンスデータに含まれる命令数が多くなっている。このため、試験装置によれば、シーケンスデータを記憶するメモリの容量が大きくなってしまっていた。【０００５】
そこで本発明の１つの側面においては、上記の課題を解決することのできる試験装置、試験方法、および電子デバイスを提供することを目的とする。この目的は請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００６】
本発明の第１の形態においては、被試験デバイスを試験する試験装置であって、被試験デバイスを試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶するパターンメモリと、パターンメモリから読み出された試験命令列を非圧縮形式に展開する展開部と、展開部により展開された試験命令列をキャッシングする命令キャッシュと、命令キャッシュに格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生するパターン発生部と、試験パターンに基づく試験信号を生成し、被試験デバイスに供給する信号出力部とを備える試験装置を提供する。【０００７】
本発明の第２の形態においては、電子デバイスであって、被試験回路と、被試験回路を試験する試験回路とを備え、試験回路は、被試験回路を試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶するパターンメモリと、パターンメモリから読み出された試験命令列を非圧縮形式に展開する展開部と、展開部により展開された試験命令列をキャッシングする命令キャッシュと、命令キャッシュに格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生するパターン発生部と、試験パターンに基づく試験信号を生成し、被試験回路に供給する信号出力部とを有する電子デバイスを提供する。【０００８】
本発明の第３の形態においては、被試験デバイスを試験する試験方法であって、被試験デバイスを試験するための試験シーケンスを定める試験命令列を圧縮形式で記憶する段階と、パターンメモリから読み出された試験命令列を非圧縮形式に展開する段階と、展開された試験命令列をキャッシングする段階と、格納された命令を順次読み出して実行し、実行される命令に対する試験パターンを発生する段階と、試験パターンに基づく試験信号を生成し、被試験デバイスに供給する段階とを備える試験方法を提供する。【０００９】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一つの実施形態に係る試験装置２００の構成の一例を示す図である。
【図２】試験モジュール１００の構成の一例を示す図である。
【図３】パターンリストメモリ１４が格納するパターンリスト、メインメモリ４０が格納するシーケンスデータ、及びパターンデータの一例を説明する図である。
【図４】本実施形態に係るパターン発生部７０の構成の一例を、メインメモリ４０およびパターン発生制御部２０とともに示す図である。
【図５】圧縮前のシーケンスデータ（試験命令列）の一例を示す図である。
【図６】圧縮前のシーケンスデータ、ＮＯＰ命令を削除した圧縮形式のシーケンスデータおよび圧縮形式のシーケンスデータを展開したシーケンスデータの一例を示す図である。
【図７】マッチ制御命令（ＪＦＦ命令）を含むシーケンスデータの一例を示す図である。
【図８】回数指定命令（ＳＴＩ命令）およびループ分岐命令（ＪＮＩ命令）を含むシーケンスデータの一例を示す図である。
【図９】ブレーク命令（ＢＲＫ命令）を含むシーケンスデータの一例を示す図である。
【図１０】繰返し命令（ＩＤＸＩ命令）を含むシーケンスデータの一例を示す図である。
【図１１】本発明の一つの実施形態に係る電子デバイス４００の構成の一例を示す図である。
【符号の説明】
【００１１】
１０    チャネル制御部
１２    インターフェイス部
１４    パターンリストメモリ
１６    結果メモリ
２０    パターン発生制御部
３０    レート発生部
４０    メインメモリ
５０    チャネル回路
５２    波形成形部
５４    ドライバ
５６    タイミング発生部
５８    コンパレータ
６０    タイミング比較部
６２    判定部
６４    キャプチャメモリ
７０    パターン発生部
８０    ベクタ発生部
９０    パターンキャッシュメモリ
１００  試験モジュール  
１１０  システム制御装置
１３０  サイト制御装置
１４０  切替部
２００  試験装置
３００  被試験デバイス
３１２  一次キャッシュ
３１４  展開部
３１６  命令キャッシュ
３１８  命令実行部
３３０  オフセットレジスタ
３３２  ベクタ生成制御部
３３４  パターン発生部
３３６  マッチ信号入力部
３４０  スタック
４００  電子デバイス
４１０  被試験回路
４２０  試験回路
４３０  入出力ピン
４４０  ＢＩＳＴピン
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【００１３】
図１は、本発明の一つの実施形態に係る試験装置２００の構成の一例を示す図である。試験装置２００は、半導体回路等の被試験デバイス３００を試験する装置であって、システム制御装置１１０、複数のサイト制御装置１３０、切替部１４０、及び複数の試験モジュール１００を備える。【００１４】
システム制御装置１１０は、試験装置２００が被試験デバイス３００の試験に用いる試験制御プログラム、試験プログラムデータ、及び試験パターンデータ等を外部のネットワーク等を介して受信して格納する。複数のサイト制御装置１３０は、通信ネットワークを介してシステム制御装置１１０と接続される。【００１５】
サイト制御装置１３０ａ〜ｃは、いずれかの被試験デバイス３００の試験を制御する。例えば複数のサイト制御装置１３０は、複数の被試験デバイス３００と一対一に対応して設けられ、それぞれのサイト制御装置１３０は、対応する被試験デバイス３００の試験を制御する。【００１６】
図１においては、サイト制御装置１３０ａは被試験デバイス３００ａの試験を制御して、サイト制御装置１３０ｂは被試験デバイス３００ｂの試験を制御する。これに代えて、複数のサイト制御装置１３０は、それぞれ複数の被試験デバイス３００の試験を制御してもよい。【００１７】
より具体的には、サイト制御装置１３０は、システム制御装置１１０から試験制御プログラムを取得し実行する。次に、サイト制御装置１３０は、試験制御プログラムに基づいて、対応する被試験デバイス３００の試験に用いる試験プログラムデータ（例えば、後述するシーケンスデータ）及び試験パターンデータ（例えば、後述するパターンデータ）をシステム制御装置１１０から取得する。尚、以下では試験プログラムデータ及び試験パターンデータを、試験データ列と総称する。試験データ列は、試験プログラムデータ及び試験パターンデータの少なくとも一方を含むデータであってよい。【００１８】
またサイト制御装置１３０は、切替部１４０を介して当該被試験デバイス３００の試験に用いる１又は複数の試験モジュール１００等のモジュールに格納する。次に、サイト制御装置１３０は、試験プログラムデータ及び試験パターンデータに基づく試験の開始を切替部１４０を介して試験モジュール１００に指示する。そして、サイト制御装置１３０は、試験が終了したことを示す割込み等を例えば試験モジュール１００から受信して、試験結果に基づいて次の試験を試験モジュール１００に行なわせる。【００１９】
切替部１４０は、複数のサイト制御装置１３０のそれぞれを、当該サイト制御装置１３０が制御する１又は複数の試験モジュール１００に接続して、これらの間の通信を中継する。ここで、予め定められた一のサイト制御装置１３０は、試験装置２００の使用者、試験制御プログラム等の指示に基づいて、複数のサイト制御装置１３０のそれぞれを、当該サイト制御装置１３０が被試験デバイス３００の試験に用いる１以上の試験モジュール１００に接続させるべく切替部１４０を設定してよい。【００２０】
例えば、図１においては、サイト制御装置１３０ａは、複数の試験モジュール１００ａに接続するように設定され、これらを用いて被試験デバイス３００ａの試験を行なう。ここで、他のサイト制御装置１３０が試験モジュール１００を用いて被試験デバイス３００を試験するための構成及び動作は、サイト制御装置１３０ａが被試験デバイス３００ａを試験するための構成及び動作と同一であってよい。以下では、サイト制御装置１３０ａが被試験デバイス３００ａを試験するための構成及び動作を中心に説明する。【００２１】
試験モジュール１００ａは、サイト制御装置１３０ａの指示に基づいて、被試験デバイス３００ａの試験に用いる試験信号を生成すべきタイミング信号を生成する。また、いずれかの試験モジュール１００ａは、他の試験モジュール１００ａにおける試験結果を受信して、試験結果の良否に対応したシーケンスを複数の試験モジュール１００ａに実行させてよい。【００２２】
複数の試験モジュール１００ａは、被試験デバイス３００ａが有する複数の端子の一部ずつにそれぞれ接続され、サイト制御装置１３０ａにより格納されたシーケンスデータ及びパターンデータに基づいて被試験デバイス３００ａの試験を行なう。被試験デバイス３００ａの試験において、試験モジュール１００ａは、後述するパターンリストにより指定されたシーケンスデータ及びパターンデータに基づいて、パターンデータから試験信号を生成して、当該試験モジュール１００ａに接続された被試験デバイス３００ａの端子に試験信号を供給する。【００２３】
次に、試験モジュール１００ａは、被試験デバイス３００ａが試験信号に基づいて動作した結果出力する出力信号を取得して、期待値と比較する。ここで複数の試験モジュール１００ａは、シーケンスデータ及びパターンデータに基づいて、試験信号のサイクル周期を動的に変化させるべく、異なるサイクル周期に基づいて試験信号を生成してよい。【００２４】
また、試験モジュール１００ａは、試験プログラムデータの処理が完了した場合、試験プログラムデータの実行中に異常が生じた場合等において、サイト制御装置１３０ａに対して割込みを発生する。この割込みは、切替部１４０を介して当該試験モジュール１００ａに対応するサイト制御装置１３０ａに通知され、サイト制御装置１３０ａが有するプロセッサにより割込み処理が行われる。【００２５】
以上において、試験装置２００は、オープンアーキテクチャにより実現され、オープンアーキテクチャ規格を満たす各種のモジュールを使用することができる。そして、試験装置２００は、試験モジュール１００等のモジュールを、切替部１４０が有する任意の接続スロットに挿入して使用することができる。【００２６】
この際、試験装置２００の使用者等は、例えばサイト制御装置１３０ａを介して切替部１４０の接続形態を変更して、被試験デバイス３００の試験に用いる複数のモジュールを、当該被試験デバイス３００の試験を制御するサイト制御装置１３０に接続させることができる。これにより、試験装置２００の使用者は、複数の被試験デバイス３００のそれぞれの端子数、端子の配置、端子の種類、又は試験の種類等に応じて適切なモジュールを選択して、試験装置２００に実装することができる。【００２７】
また、試験装置２００又は試験モジュール１００は、試験対象となる被試験回路と共に同一の電子デバイスに設けられた試験回路であってもよい。当該試験回路は、電子デバイスのＢＩＳＴ回路等として実現され、被試験回路を試験することにより電子デバイスの診断等を行う。これにより、当該試験回路は、被試験回路となる回路が、電子デバイスが本来目的とする通常動作を行うことができるかどうかをチェックすることができる。【００２８】
また、試験装置２００又は試験モジュール１００は、試験対象となる被試験回路と同一のボード又は同一の装置内に設けられた試験回路であってもよい。このような試験回路も、上述したように被試験回路が本来目的とする通常動作を行うことができるかどうかをチェックすることができる。【００２９】
図２は、試験モジュール１００の構成の一例を示す図である。試験モジュール１００は、チャネル制御部１０及び複数のチャネル回路５０を有する。本例では、一つのチャネル回路５０の機能及び構成を説明するが、他のチャネル回路５０も同一の機能及び構成を有してよい。【００３０】
それぞれのチャネル回路５０は、被試験デバイス３００の対応する入出力ピンに接続され、当該入出力ピンに試験信号を供給してよい。また、それぞれのチャネル回路５０は、当該入出力ピンからの出力信号を測定してよい。尚、被試験デバイス３００の入出力ピンは、入力ピン又は出力ピンのいずれかであってもよい。【００３１】
チャネル制御部１０は、それぞれのチャネル回路５０を制御する。例えばチャネル制御部１０は、それぞれのチャネル回路５０を制御して試験信号を生成させる。また、チャネル制御部１０は、それぞれのチャネル回路５０を制御して、被試験デバイス３００の出力信号を測定させる。【００３２】
また、チャネル制御部１０は、いずれかのチャネル回路５０における測定結果に基づいて、他のチャネル回路５０を制御してもよい。例えば、いずれかのチャネル回路５０における測定結果が所定の条件を満たすまで、他の少なくとも一つのチャネル回路５０に所定の動作を繰り返し行わせ、測定結果が所定の条件を満たした場合に、当該他のチャネル回路５０に、次に行うべき動作を行わせてよい。【００３３】
チャネル制御部１０は、インターフェイス部１２、パターンリストメモリ１４、結果メモリ１６、パターン発生制御部２０、メインメモリ４０、レート発生部３０、及びパターン発生部７０を有する。インターフェイス部１２は、サイト制御装置１３０と、試験モジュール１００との間でデータを受け渡す。【００３４】
メインメモリ４０は、複数種類のシーケンスデータと、シーケンスデータに対応するパターンデータとを格納する。メインメモリ４０は、サイト制御装置１３０から与えられるシーケンスデータ及びパターンデータを、被試験デバイス３００の試験前に予め格納してよい。またメインメモリ４０は、シーケンスデータ及びパターンデータを圧縮して格納してもよい。【００３５】
例えばサイト制御装置１３０は、シーケンスデータ、パターンデータ、及びこれらのデータをメインメモリ４０の指定アドレスに格納すべき命令を、インターフェイス部１２に入力してよい。パターン発生制御部２０は、インターフェイス部１２が受け取った命令に応じて、これらのデータをメインメモリ４０に格納する。【００３６】
シーケンスデータは、例えば順次実行すべき命令群を示すデータであってよい。ここで、シーケンスデータにおける一つの命令が、試験データに対応してよく、複数の命令が試験データに対応してもよい。【００３７】
パターンデータは、例えば論理値パターンを示すデータであり、複数の命令と一対一に対応付けて格納されてよい。例えばシーケンスデータは、それぞれのパターンデータを、所定の順序で出力させることにより、試験パターンを生成させる命令群であってよい。ここで、パターンデータにおいて、一つの命令に対するデータが試験データに対応してよく、複数の命令に対するデータが試験データに対応してもよい。【００３８】
このとき、シーケンスデータは、それぞれのパターンデータを複数回用いて、試験パターンを生成してよい。例えばシーケンスデータは、ループ命令、ジャンプ命令等を含んでよい。チャネル制御部１０が、このようなシーケンスデータを実行することにより、対応するパターンデータを展開して、シーケンスデータ及びパターンデータに応じた試験信号を生成することができる。メインメモリ４０が格納するシーケンスデータ及びパターンデータの一例は、図３において後述する。【００３９】
パターンリストメモリ１４は、メインメモリ４０が格納したシーケンスデータを実行すべき順序を示すパターンリストを格納する。例えばパターンリストメモリ１４は、実行すべきシーケンスデータの、メインメモリ４０におけるアドレスを順次指定するパターンリストを格納してよい。パターンリストメモリ１４は、メインメモリ４０と同様に、サイト制御装置１３０から与えられるパターンリストを、被試験デバイス３００の試験前に予め格納してよい。パターンリストは、上述した試験制御プログラムの一例であってよく、試験制御プログラムの一部であってもよい。【００４０】
パターン発生制御部２０は、被試験デバイス３００の試験を開始する場合に、パターンリストメモリ１４からパターンリストを読み出す。例えばサイト制御装置１３０から試験を開始する旨の命令を受けた場合に、パターン発生制御部２０は、パターンリストメモリ１４からパターンリストを読み出してよい。【００４１】
パターン発生制御部２０は、メインメモリ４０が格納したシーケンスデータ及び対応するパターンデータを、パターンリストに基づく順序で読み出す。パターン発生制御部２０は、読み出したシーケンスデータを、パターン発生部７０のベクタ発生部８０に送信する。また、パターン発生制御部２０は、読み出したパターンデータを、パターン発生部７０のパターンキャッシュメモリ９０に送信する。【００４２】
パターン発生制御部２０は、後段の回路のキャッシュメモリ、ＦＩＦＯ等に、所定の空き領域が生じた場合に、次のシーケンスデータ及びパターンデータを読み出して送信してよい。この場合、パターン発生制御部２０は、シーケンスデータ及びパターンデータを格納すべき全てのキャッシュメモリ、ＦＩＦＯ等に、所定の空き領域が生じたことを条件として、次のシーケンスデータ及びパターンデータを読み出して、これらのキャッシュメモリ、ＦＩＦＯ等に送信してよい。【００４３】
パターン発生部７０は、パターン発生制御部２０から順次受け取るシーケンスデータ及びパターンデータに基づいて、試験パターンを順次生成する。本例のパターン発生部７０は、ベクタ発生部８０及びパターンキャッシュメモリ９０を有する。【００４４】
上述したように、ベクタ発生部８０は、パターン発生制御部２０からシーケンスデータを受け取る。ベクタ発生部８０は、受け取ったシーケンスデータを所定のキャッシュエントリ（以下、エントリと称する）に格納するシーケンスキャッシュメモリを有してよい。パターンキャッシュメモリ９０は、パターン発生制御部２０からパターンデータを受け取り、所定のエントリに格納する。エントリとは、例えば一つ又は複数のアドレスで指定される記憶領域であってよい。【００４５】
ベクタ発生部８０は、シーケンスキャッシュメモリに格納したシーケンスデータを順次実行して、パターンキャッシュメモリ９０のアドレスを順次指定する。例えばシーケンスデータの各命令には、当該命令に応じて指定すべきパターンデータのアドレスが対応付けられていてよい。そして、ベクタ発生部８０は、シーケンスデータに含まれるループ命令、ジャンプ命令等に応じてパターンキャッシュメモリ９０のアドレスを順次指定する。【００４６】
パターンキャッシュメモリ９０は、順次指定されるアドレスのパターンデータを出力する。このような構成により、シーケンスデータ及びパターンデータに応じた論理パターンを有する試験パターンを生成することができる。また、シーケンスキャッシュメモリ及びパターンキャッシュメモリ９０は、シーケンスデータの実行が終了した場合に、当該シーケンスデータ及び対応するパターンデータの記憶領域を開放してよい。シーケンスデータは、命令群の末尾に、シーケンスデータの終了を示す終了命令を有してよい。【００４７】
それぞれのチャネル回路５０は、パターン発生部が出力する試験パターンに基づいて試験信号を成形して、被試験デバイス３００に入力する。また被試験デバイス３００の出力信号を測定する。チャネル回路５０は、波形成形部５２、ドライバ５４、タイミング発生部５６、コンパレータ５８、タイミング比較部６０、判定部６２、及びキャプチャメモリ６４を有する。【００４８】
波形成形部５２は、パターン発生部７０が生成した試験パターンに基づいて、試験信号を成形する。例えば波形成形部５２は、当該試験パターンに応じた論理パターンを有する試験信号を生成してよい。また、波形成形部５２は、与えられるタイミング信号に応じて、試験信号を生成してよい。例えば波形成形部５２は、与えられるタイミング信号に応じて論理値が遷移する試験信号を生成してよい。【００４９】
ドライバ５４は、波形成形部５２が生成した試験信号を、被試験デバイス３００に入力する。ドライバ５４は、波形成形部５２が生成した試験信号がＨ論理を示すときに所定のＨレベルの電圧を出力して、試験信号がＬ論理を示すときに所定のＬレベルの電圧を出力することにより、試験信号の電圧レベルを、被試験デバイス３００に入力すべき信号レベルに変換してよい。【００５０】
コンパレータ５８は、被試験デバイス３００の出力信号を受け取り、出力信号の電圧レベルと、予め設定される参照レベルとを比較することにより、出力信号を２値の論理信号に変換してよい。例えばコンパレータ５８は、出力信号の電圧レベルが参照レベルより大きい場合にＨ論理を出力して、出力信号の電圧レベルが参照レベル以下である場合にＬ論理を出力してよい。【００５１】
タイミング比較部６０は、与えられるストローブ信号に応じて、コンパレータ５８が出力する信号の論理値を取得する。これにより、出力信号の論理パターンを検出することができる。【００５２】
タイミング発生部５６は、予め与えられるタイミングセットの設定値に応じて、上述したタイミング信号及びストローブ信号を生成する。例えばタイミング発生部５６は、レート発生部３０からタイミングセットに応じた周期で与えられるレート信号を、与えられるタイミングセットに応じた遅延量で遅延させたタイミング信号及びストローブ信号を生成してよい。【００５３】
タイミングセットは、例えば一つのシーケンスデータを実行する毎に、レート発生部３０及びタイミング発生部５６に与えられてよい。例えばメインメモリ４０は、当該シーケンスデータに対応するパターンデータの一部に、タイミングセットのデータを含んでよい。パターン発生部７０は、それぞれのシーケンスデータを実行する毎に、当該シーケンスデータに対応するタイミングセットを、レート発生部３０及びタイミング発生部５６に設定してよい。【００５４】
判定部６２は、タイミング比較部６０が検出した論理パターンと、期待値パターンとを比較する。これにより、被試験デバイス３００の良否を判定することができる。期待値パターンは、パターン発生部７０が生成してよい。例えば期待値パターンは、パターン発生部７０が生成する試験パターンに含まれる、被試験デバイス３００に入力される試験信号の論理パターンと同一であってよい。これに加え、判定部６２は、一例として、タイミング比較部６０が検出した論理パターンと、期待値とが一致したか否かを検出してもよい。これにより、判定部６２は、被試験デバイス３００の出力信号が予め指定した値と一致したことを検出することができる。判定部６２は、被試験デバイス３００の出力信号が予め指定した値と一致したことを示すマッチ信号をパターン発生部７０に供給してよい。【００５５】
キャプチャメモリ６４は、判定部６２における判定結果を格納する。例えばキャプチャメモリ６４は、判定部６２におけるパス（一致）及びフェイル（不一致）の判定結果を、試験パターン毎に格納してよい。また、キャプチャメモリ６４は、判定部６２におけるフェイルの判定結果を選択して格納してもよい。【００５６】
また、チャネル制御部１０の結果メモリ１６は、それぞれのチャネル回路５０の判定部６２における判定結果を格納する。結果メモリ１６は、それぞれの判定部６２におけるパス（一致）及びフェイル（不一致）の判定結果を、試験パターン毎にそれぞれのチャネルに対応付けて格納してよい。また、結果メモリ１６は、それぞれの判定部６２におけるフェイルの判定結果を選択して格納してもよい。【００５７】
上述したように、キャプチャメモリ６４は、試験パターン毎のフェイル情報を、チャネル回路５０毎に格納してよい。これに対し、結果メモリ１６は、パターンリストメモリ１４に格納されたシーケンスデータ毎のフェイル情報を、例えば被試験デバイス３００毎に格納してよい。【００５８】
図３は、パターンリストメモリ１４が格納するパターンリスト、メインメモリ４０が格納するシーケンスデータ、及びパターンデータの一例を説明する図である。上述したように、メインメモリ４０は、複数のシーケンスデータ（シーケンスデータ１、シーケンスデータ２、・・・）と、それぞれ対応するパターンデータを格納する。【００５９】
上述したように、シーケンスデータは複数の命令を含む。パターン発生部７０は、それぞれの命令を実行した場合に、当該命令に対応するパターンデータを出力してよい。例えばシーケンスデータは、対応するパターンデータを出力して次の命令に移行するＮＯＰ命令、対応するパターンデータを出力して、更に所定のアドレスの命令にジャンプするＪＭＰ命令、対応するパターンデータを出力して、更に指定されたアドレス範囲の命令を所定の回数繰り返すＬＯＯＰ命令等を含んでよい。【００６０】
このような命令群を実行することにより、それぞれのパターンデータをシーケンスデータに応じた順序で出力して、所定の試験パターンを生成する。例えば、シーケンスデータ２を実行した場合、パターン発生部７０は、パターンデータＡを出力した後、パターンデータＢからパターンデータＣまでを、ＬＯＯＰ命令で指定される回数繰り返して出力する。【００６１】
また、メインメモリ４０は、複数のチャネル回路５０に共通して、シーケンスデータを格納してよい。また、メインメモリ４０は、それぞれのチャネル回路５０に対してパターンデータを格納してよい。例えばシーケンスデータのそれぞれの命令に対して、複数のチャネル回路５０に対応するパターンデータを格納してよい。図３の例では、メインメモリ４０は、各チャネル回路５０に対応するパターンデータを、それぞれのアドレスの異なるビット位置に格納する。【００６２】
パターンリストメモリ１４は、実行すべきシーケンスデータの順序を格納する。図３に示した例では、パターンリストメモリ１４は、シーケンスデータ２、シーケンスデータ１、・・・を順に指定するパターンリストを格納する。【００６３】
また、図２に示した例では、シーケンスデータ及びパターンデータを格納するメインメモリ４０をチャネル制御部１０に設けている。これに対し他の例では、シーケンスデータを格納するメインメモリ４０をチャネル制御部１０に設け、それぞれのチャネル回路５０のパターンデータを格納するメモリを、それぞれのチャネル回路５０に設けてもよい。【００６４】
この場合、それぞれのチャネル回路５０にパターンキャッシュメモリ９０を設けてよい。そして、ベクタ発生部８０が順次指定するアドレスを、それぞれのチャネル回路５０に設けたパターンキャッシュメモリ９０に分配してよい。【００６５】
図４は、本実施形態に係るパターン発生部７０の構成の一例を、メインメモリ４０およびパターン発生制御部２０とともに示す図である。ベクタ発生部８０は、一次キャッシュ３１２と、展開部３１４と、命令キャッシュ３１６と、命令実行部３１８とを含む。【００６６】
メインメモリ４０は、上述したように、被試験デバイス３００を試験するための試験シーケンスを定める試験命令列（シーケンスデータ）を記憶する。メインメモリ４０は、シーケンスデータを圧縮形式で記憶する。さらに、メインメモリ４０は、圧縮前のシーケンスデータに含まれる各命令に対応付けられた試験パターンを含む試験パターン列（パターンデータ）を記憶する。【００６７】
ベクタ発生部８０に含まれる一次キャッシュ３１２は、シーケンスデータを圧縮形式で記憶する。一次キャッシュ３１２は、本発明に係るパターンメモリの一例である。パターンキャッシュメモリ９０は、パターンデータを記憶する。【００６８】
パターン発生制御部２０は、メインメモリ４０に記憶されたシーケンスデータをパターンリストの記述に従って読み出して、一次キャッシュ３１２に書き込む。パターン発生制御部２０は、メインメモリ４０に記憶されたパターンデータをパターンリストの記述に従って読み出して、パターンキャッシュメモリ９０に書き込む。【００６９】
展開部３１４は、一次キャッシュ３１２からシーケンスデータを読み出して、命令キャッシュ３１６に書き込む。この場合において、展開部３１４は、一次キャッシュ３１２から読み出された圧縮形式のシーケンスデータを非圧縮形式に展開する。【００７０】
命令キャッシュ３１６は、展開部３１４により一次キャッシュ３１２から読み出され、非圧縮形式に展開されたシーケンスデータをキャッシングする。命令キャッシュ３１６によりキャッシングされているシーケンスデータに含まれる各命令は、パターンキャッシュメモリ９０により記憶されているパターンデータに含まれる試験パターンに対応付けられている。【００７１】
命令実行部３１８は、命令キャッシュ３１６に記憶されたシーケンスデータに含まれる命令を順次に読み出して実行する。ここで、シーケンスデータに含まれる各命令には、当該シーケンスデータ中における、当該命令の位置を示すオフセットが割り付けられている。命令実行部３１８は、命令を実行し、実行した当該命令に応じて定められる次に実行すべき命令のオフセットを特定し、特定したオフセットの命令を命令キャッシュ３１６から読み出し、読み出した命令を実行する、といった処理を繰り返す。これにより、命令実行部３１８によれば、当該シーケンスデータにより定められた試験シーケンスを実行することができる。【００７２】
更に、命令実行部３１８は、命令を実行した場合、当該命令に割り付けられたオフセットを、当該命令に対応した試験パターンを指定するベクタアドレスに変換する。命令実行部３１８は、当該ベクタアドレスをパターンキャッシュメモリ９０に与え、パターンキャッシュメモリ９０から実行した命令に対応する試験パターンを出力させる。パターンキャッシュメモリ９０は、試験パターンをチャネル回路５０に供給する。そして、チャネル回路５０は、供給された試験パターンに応じた試験信号を生成し、被試験デバイス３００に供給する。チャネル回路５０は、本発明に係る信号出力部の一例である。パターンキャッシュメモリ９０は、一例として、試験パターンを波形成形部５２、タイミング発生部５６および判定部６２に供給する。【００７３】
また、シーケンスデータに含まれる各命令には、対応する当該試験パターンを出力するためのタイミングの組を指定するタイミングセット情報（ＴＳ）が対応付けられている。命令実行部３１８は、命令を実行した場合、当該命令に対応付けられたタイミングセット情報を、パターンキャッシュメモリ９０から出力する試験パターンに対応させて、当該パターンキャッシュメモリ９０からレート発生部３０およびタイミング発生部５６に出力させる。【００７４】
本実施形態において、命令実行部３１８は、オフセットレジスタ３３０と、ベクタ生成制御部３３２と、パターン発生部３３４と、マッチ信号入力部３３６と、スタック３４０とを含む。オフセットレジスタ３３０は、ベクタ生成制御部３３２により次に実行される命令および対応する試験パターンのオフセットを記憶する。【００７５】
ベクタ生成制御部３３２は、命令キャッシュ３１６に格納された命令を順次読み出して実行する。より具体的には、ベクタ生成制御部３３２は、オフセットレジスタ３３０により指定されたオフセットの命令を、命令キャッシュ３１６から読み出して実行する。さらに、ベクタ生成制御部３３２は、実行した命令に応じて、オフセットレジスタ３３０の値を更新する。より具体的には、ベクタ生成制御部３３２は、順次実行される各命令を実行する度にオフセットレジスタ３３０の値をインクリメントする。また、ベクタ生成制御部３３２は、分岐命令を実行する場合に分岐先の命令のオフセットを、オフセットレジスタ３３０にロードする。【００７６】
なお、ベクタ生成制御部３３２は、一例として、オフセットレジスタ３３０に記憶されたオフセットを、クロックサイクルに同期させて命令キャッシュ３１６に与えることにより、命令を読み出してよい。また、ベクタ生成制御部３３２が例えばクロックサイクルと非同期で命令を読み出す場合、命令キャッシュ３１６は、ベクタ生成制御部３３２を介さずオフセットレジスタ３３０からオフセットが与えられてもよい。【００７７】
パターン発生部３３４は、オフセットレジスタ３３０に記憶されたオフセットに対応する試験パターンを出力する。より具体的には、パターン発生部３３４は、オフセットレジスタ３３０に記憶されたオフセットをベクタアドレスに変換して、パターンキャッシュメモリ９０に与える。【００７８】
マッチ信号入力部３３６は、タイミング比較部６０により出力された、被試験デバイス３００の出力信号が予め指定した値と一致したこと示すマッチ信号を入力する。そして、マッチ信号入力部３３６は、入力したマッチ信号を、例えばベクタ生成制御部３３２により読み出し可能なレジスタに格納する。【００７９】
スタック３４０は、１以上の命令を含むループ区間を繰り返し実行する場合において、当該ループ区間を実行すべき繰返し回数を格納する。ここで、スタック３４０は、複数の繰返し回数を格納することができる。スタック３４０は、最後に入力（プッシュ）した繰返し回数を先頭に格納し、最後に入力した繰返し回数から順に取り出（ポップ）される。【００８０】
図５は、圧縮前のシーケンスデータ（試験命令列）の一例を示す図である。圧縮前のシーケンスデータには、一例として、ＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）命令、ジャンプ命令（ＪＭＰ命令）、繰返し命令（ＩＤＸＩ命令）、終了命令（ＥＸＩＴ命令）等が含まれてよい。【００８１】
ＮＯＰ命令は、試験シーケンスの変更および当該試験装置２００内のレジスタ値の明示的な変更を伴わない命令である。命令実行部３１８は、ＮＯＰ命令を実行した場合、当該ＮＯＰ命令の次のオフセットが割り付けられた命令を次に実行すべき命令として特定する。【００８２】
ジャンプ命令（ＪＭＰ命令）は、指定された条件に一致しない場合（又は一致する場合）、当該ＪＭＰ命令より前の実行済みの命令を、次に実行すべき命令として特定させる。これにより、命令実行部３１８は、処理を再び実行済みの命令に戻し、当該実行済み命令から当該ＪＭＰ命令までの処理を繰り返すことができる。更に、ＪＭＰ命令は、指定された条件に一致した場合（又は一致しない場合）、当該ＪＭＰ命令の次のオフセットが割り付けられた命令を、次に実行すべき命令として特定させる。これにより、命令実行部３１８は、ループ処理を抜けて、処理を次の命令に進めることができる。【００８３】
繰返し命令（ＩＤＸＩ命令）は、対応するパターンデータを指定した回数分繰り返し出力させる命令である。命令実行部３１８は、ＩＤＸＩ命令を実行した場合、当該ＩＤＸＩ命令を実行してから指定されたサイクルをカウントするまでの間においては次の命令に処理を移さない。そして、命令実行部３１８は、ＩＤＸＩ命令を実行した場合、指定されたサイクルが経過した後に、当該ＩＤＸＩ命令の次のオフセットが割り付けられた命令を、次に実行すべき命令として特定する。【００８４】
終了命令（ＥＸＩＴ命令）は、シーケンスデータの実行を終了させる命令である。命令実行部３１８は、ＥＸＩＴ命令を実行した場合、次に実行すべき命令を特定せず、当該シーケンスデータの実行を終了する。そして、命令実行部３１８は、ＥＸＩＴ命令を実行すると、次に実行すべき他のシーケンスデータへ処理を移す。【００８５】
図６は、圧縮前のシーケンスデータ、ＮＯＰ命令を削除した圧縮形式のシーケンスデータおよび圧縮形式のシーケンスデータを展開したシーケンスデータの一例を示す図である。メインメモリ４０および一次キャッシュ３１２は、圧縮形式のシーケンスデータを記憶する。圧縮形式のシーケンスデータは、試験シーケンスを定めるための全ての命令が記述されたシーケンスデータよりも、データ量が少ない。【００８６】
メインメモリ４０および一次キャッシュ３１２は、一例として、シーケンスデータにおける、予め定められた種類の命令を圧縮する圧縮形式で記憶してよい。予め定められた種類の命令は、一例として、ＮＯＰ命令であってよい。メインメモリ４０および一次キャッシュ３１２は、一例として、ＮＯＰ命令を削除した圧縮形式により、シーケンスデータに含まれる圧縮対象でない各命令を記憶してよい。すなわち、メインメモリ４０および一次キャッシュ３１２は、ＩＤＸＩ命令、ＪＭＰ命令、ＥＸＩＴ命令等のＮＯＰ以外の命令を含むシーケンスデータを記憶してよい。【００８７】
更に、メインメモリ４０および一次キャッシュ３１２は、圧縮対象でない各命令に対応して、各命令に対応する試験パターンのオフセットを記憶する。すなわち、メインメモリ４０および一次キャッシュ３１２は、圧縮対象でない各命令（ＮＯＰ命令以外の各命令）に対応して、各命令が圧縮されていない状態において割り付けられていたオフセットを記憶する。【００８８】
展開部３１４は、一次キャッシュ３１２から読み出されたシーケンスデータを非圧縮形式に展開する。予め定められた種類の命令を圧縮する圧縮形式で一次キャッシュ３１２にシーケンスデータが記憶されている場合、展開部３１４は、一次キャッシュ３１２から読み出されたシーケンスデータにおいて圧縮された予め定められた種類の命令を展開して非圧縮形式とし、命令キャッシュ３１６に書き込む。【００８９】
例えばＮＯＰを削除した圧縮形式で一次キャッシュ３１２にシーケンスデータが記憶されている場合であれば、展開部３１４は、ＮＯＰ命令を再生し、ＮＯＰ命令を含む非圧縮形式のシーケンスデータを命令キャッシュ３１６に書き込む。より具体的には、展開部３１４は、一次キャッシュ３１２から読み出したシーケンスデータにおける第１の命令のオフセットと、一次キャッシュ３１２中において第１の命令の次に記憶された第２の命令のオフセットとが連続しない場合において、第１の命令の次のオフセットから第２の命令の前のオフセットまでの各オフセットに対応してＮＯＰ命令を再生する。【００９０】
例えば、図６に示すように、４番目以前のオフセットの命令が全てＮＯＰ命令であり、更に、５番目のオフセットのＩＤＸＩ命令と、９番目のオフセットのＪＭＰ命令との間の命令が全てＮＯＰ命令であったとする。すなわち、メインメモリ４０および一次キャッシュ３１２に格納されるシーケンスデータは、５番目のオフセットのＩＤＸＩ命令と、９番目のオフセットのＪＭＰ命令とを含み、１〜４番目、６番目〜８番目のＮＯＰ命令が削除されている。【００９１】
この場合、展開部３１４は、１〜４番目のオフセットのＮＯＰ命令、および、５番目〜９番目のＮＯＰ命令を再生する。これにより、展開部３１４によれば、圧縮形式のシーケンスデータを、命令実行部３１８により実行ができる非圧縮形式のシーケンスデータに変換することができる。【００９２】
以上のようにパターン発生部７０によれば、データ量の小さい圧縮形式のシーケンスデータをメインメモリ４０および一次キャッシュ３１２に格納することができる。これにより、パターン発生部７０によれば、メインメモリ４０および一次キャッシュ３１２の容量を小さくすることができる。【００９３】
なお、本実施形態において、展開部３１４は、削除されていたＮＯＰ命令を再生する場合、当該ＮＯＰ命令を、ＮＯＰ命令と同様の内容の命令であるＥＮＯＰ命令に置き換えて、命令キャッシュ３１６に書き込む。また、本実施形態において、展開部３１４は、一次キャッシュ３１２からＩＤＸＩ命令を読み出した場合、当該ＩＤＸＩ命令と同様の内容の命令であるＥＩＤＸＩ命令に置き換えて、命令キャッシュ３１６に書き込む。また、本実施形態において、展開部３１４は、一次キャッシュ３１２からＪＭＰ命令を読み出した場合、当該ＪＭＰ命令と同様の内容の命令であるＥＪＭＰ命令に置き換えて、命令キャッシュ３１６に書き込む。【００９４】
図７は、マッチ制御命令（ＪＦＦ命令）を含むシーケンスデータの一例を示す図である。圧縮前のシーケンスデータは、一例として、図７のＡに示すように、少なくとも１つの連続したＮＯＰ命令（順次実行区間）と、当該順次実行区間の次に位置するマッチ制御命令（ＪＦＦ命令）とを含んでよい。【００９５】
ＪＦＦ命令は、順次実行区間に含まれる各ＮＯＰ命令および当該ＪＦＦ命令（ループ区間の各命令）の実行中において、被試験デバイス３００の出力信号が予め指定した値と一致しないことを条件として、当該順次実行区間の先頭のＮＯＰ命令に制御を分岐させる。また、ＪＦＦ命令は、ループ区間の各命令の実行中において、被試験デバイス３００の出力信号が予め指定した値と一致したことを条件として、当該ＪＦＦ命令の次のオフセットの命令に制御を移す。【００９６】
ＪＦＦ命令は、一例として、ループ区間の各命令の実行中にマッチ信号入力部３３６がマッチ信号を入力しなかったことを条件として、ループ区間の先頭のＮＯＰ命令に分岐してよい。また、ＪＦＦ命令は、一例として、ループ区間の各命令の実行中にマッチ信号入力部３３６がマッチ信号を入力したことを条件として、当該ＪＦＦ命令の次の命令に制御を移してよい。このようなＪＦＦ命令によれば、被試験デバイス３００から予め定められた出力信号が出力されるまで、ループ区間において試験の実行を待機させ、被試験デバイス３００から予め定められた出力信号が出力されたことを条件として、試験を再開させることができる。【００９７】
なお、図７のＢに示すように、ＪＦＦ命令は、分岐先の命令（ループ区間の各命令）を指定する値を、オペランドとして含む。圧縮形式のシーケンスデータに含まれるＪＦＦ命令のオペランドは、当該ＪＦＦ命令と、分岐先の命令（ループ区間の先頭のＮＯＰ命令）とのオフセットの差で表されている。すなわち、ＪＦＦ命令のオペランドは、当該ＪＦＦ命令に対する、分岐先の命令（ループ区間の先頭のＮＯＰ命令）の相対オフセットにより表される。【００９８】
展開部３１４は、一次キャッシュ３１２からＪＦＦ命令を読み出した場合、図７のＣに示すように、当該ＪＦＦ命令を、前方向分岐命令（ＥＭＴＡＩＬ命令）に置き換えて、命令キャッシュ３１６にキャッシングさせる。ＥＭＴＡＩＬ命令は、当該ＥＭＴＡＩＬ命令の実行時において、被試験デバイス３００の出力信号が予め指定した値と一致しないことを条件として、ループ区間の先頭の命令に制御を分岐させる。また、ＥＭＴＡＩＬ命令は、当該ＥＭＴＡＩＬ命令の実行時において、被試験デバイス３００の出力信号が予め指定した値と一致したことを条件として、当該ＥＭＴＡＩＬ命令の次のオフセットの命令に制御を移す。【００９９】
ＥＭＴＡＩＬ命令は、分岐先の命令（ループ区間の先頭の命令）を指定する値を、オペランドとして含む。非圧縮形式のシーケンスデータに含まれるＥＭＴＡＩＬ命令のオペランドは、分岐先の命令（ループ区間の先頭の命令）の絶対オフセットで表されている。すなわち、ＥＭＴＡＩＬ命令のオペランドは、分岐先の命令（ループ区間の先頭の命令）の、シーケンスデータ中の絶対位置により表される。そこで、展開部３１４は、一次キャッシュ３１２から読み出されたＪＦＦ命令における分岐先の相対オフセットを、絶対オフセットに変換して命令キャッシュ３１６にキャッシングさせる。【０１００】
そして、ベクタ生成制御部３３２は、ＥＭＴＡＩＬ命令の実行において、被試験デバイス３００の出力信号が予め指定した値と一致しないことを条件として、当該ＥＭＴＡＩＬ命令のオペランドにより指定された絶対オフセットをオフセットレジスタ３３０にロードする。これにより、ベクタ生成制御部３３２によれば、オフセットレジスタ３３０にループ区間の先頭の命令のオフセットを格納することができるので、制御をループ区間の先頭の命令に戻すことができる。【０１０１】
更に、ベクタ生成制御部３３２は、ＥＭＴＡＩＬ命令の実行において、被試験デバイス３００の出力信号が予め指定した値と一致したことを条件として、オフセットレジスタ３３０の値をインクリメントする。これにより、ベクタ生成制御部３３２によれば、オフセットレジスタ３３０にＥＭＴＡＩＬ命令の次の命令のオフセットを格納することができるので、制御をＥＭＴＡＩＬ命令の次の命令に移すことができる。【０１０２】
また、展開部３１４は、一次キャッシュ３１２からＪＦＦ命令を読み出した場合、当該ＪＦＦ命令に先行する順次実行区間に含まれる各ＮＯＰ命令を展開する。この場合において、展開部３１４は、図７のＣに示すように、順次実行区間に含まれる各ＮＯＰ命令を、後方向分岐命令（ＥＭＢＯＤＹ命令）に置き換えて、命令キャッシュ３１６にキャッシングさせる。ＥＭＢＯＤＹ命令は、当該ＥＭＢＯＤＹ命令の実行時において、被試験デバイス３００の出力信号が予め指定した値と一致したことを条件として、ＥＭＴＡＩＬ命令の次の命令に制御を分岐させる。また、ＥＭＢＯＤＹ命令は、当該ＥＭＢＯＤＹ命令の実行時において、被試験デバイス３００の出力信号が予め指定した値と一致しないことを条件として、当該ＥＭＢＯＤＹ命令の次の命令に制御を移す。【０１０３】
ＥＭＢＯＤＹ命令は、ＪＦＦ命令によるループ内に位置することをベクタ生成制御部３３２が識別可能な命令の一例である。また、ＥＭＢＯＤＹ命令は、分岐先の命令（ＥＭＴＡＩＬ命令の次の命令）を指定する値を、オペランドとして含む。非圧縮形式のシーケンスデータに含まれるＥＭＢＯＤＹ命令のオペランドは、分岐先の命令（ＥＭＴＡＩＬ命令の次の命令）の絶対オフセットで表されている。【０１０４】
ベクタ生成制御部３３２は、ＥＭＢＯＤＹ命令の実行において、被試験デバイス３００の出力信号が予め指定した値と一致しないことを条件として、オフセットレジスタ３３０の値をインクリメントする。これにより、ベクタ生成制御部３３２によれば、オフセットレジスタ３３０に各ＥＭＢＯＤＹ命令の次の命令のオフセットを順次に格納することができるので、順次実行区間の各命令を順次に実行することができる。【０１０５】
更に、ベクタ生成制御部３３２は、ＥＭＢＯＤＹ命令の実行において、被試験デバイス３００の出力信号が予め指定した値と一致したことを条件として、当該ＥＭＢＯＤＹ命令のオペランドにより指定された絶対オフセットをオフセットレジスタ３３０にロードする。これにより、ベクタ生成制御部３３２によれば、オフセットレジスタ３３０にＥＭＴＡＩＬ命令の次の命令のオフセットを格納することができるので、ＥＭＴＡＩＬ命令の次の命令に制御を分岐することができる。【０１０６】
以上のように非圧縮形式のシーケンスデータにＥＭＴＡＩＬ命令が含まれていることにより、ベクタ生成制御部３３２によれば、ループ区間の先頭の命令から当該ＥＭＴＡＩＬ命令までの各命令を、被試験デバイス３００の出力信号が予め指定した値と一致するまで、繰返して実行することができる。更に、非圧縮形式のシーケンスデータにＥＭＢＯＤＹ命令が含まれていることにより、ベクタ生成制御部３３２によれば、順次実行区間の各命令を被試験デバイス３００の出力信号が予め指定した値と一致するまで、順次に実行することができる。【０１０７】
ここで、ベクタ生成制御部３３２は、クロックサイクル毎に試験パターンを発生するために、命令キャッシュ３１６からの命令の読出処理、命令の実行処理、次の命令のオフセット発生処理という一連の処理を、１クロックサイクルで行わなければならない。さらに、ベクタ生成制御部３３２は、より短いクロックサイクルで試験パターンを発生できることが望ましい。しかしながら、もし、分岐先の命令が相対オフセットにより指定されている場合、ベクタ生成制御部３３２は、分岐先の命令のオフセットを発生するために、分岐命令の実行中において、当該分岐命令のオフセットから相対オフセットを減算しなければならない。【０１０８】
これに対して、本実施形態において、ベクタ生成制御部３３２は、分岐先の命令の絶対オフセットがオペランドとして指定されたＥＭＴＡＩＬ命令およびＥＭＢＯＤＹ命令を実行する。従って、ベクタ生成制御部３３２は、ＥＭＴＡＩＬ命令およびＥＭＢＯＤＹ命令の実行において、オペランドの値をそのままオフセットレジスタ３３０にロードすればよく、減算処理を行わなくても分岐処理ができる。これにより、ベクタ生成制御部３３２によれば、分岐命令の実行における処理が軽減し、より短いクロックサイクルで試験パターンを発生できる。【０１０９】
さらに、本実施形態において、展開部３１４は、順次実行区間における各ＮＯＰ命令を、ＥＭＢＯＤＹ命令に置き換えている。これにより、ベクタ生成制御部３３２によれば、ループ区間の末尾のみならず、ループ区間の途中においても分岐処理ができるので、被試験デバイス３００の出力信号が予め指定した値と一致してから、試験が再開させるまでの応答時間を短くすることができる。また、ＪＦＦ命令およびＥＭＴＡＩＬ命令は、ループ回数が定められていない無限ループを形成する命令であってもよいし、ループ回数が予め定められた有限ループを形成する命令であってもよい。【０１１０】
また、ＪＦＦ命令は、出力信号が予め指定した値と一致しないことを条件として、自身または先行する命令に分岐してもよい。ＪＦＦ命令が自身に分岐する場合（すなわち、オペランドとして０が指定されている場合）、展開部３１４は、ＪＦＦ命令をＥＭＴＡＩＬ命令に置き換えて命令キャッシュ３１６にキャッシングさせ、ＥＭＢＯＤＹ命令を命令キャッシュ３１６にキャッシングさせない。【０１１１】
そして、ベクタ生成制御部３３２は、ＥＭＴＡＩＬ命令の実行において、被試験デバイス３００の出力信号が予め指定した値と一致したことを条件として、当該ＥＭＴＡＩＬ命令のオペランド（この場合、０となっている。）をオフセットレジスタ３３０にロードする。これにより、ベクタ生成制御部３３２によれば、分岐命令の実行における処理を軽減することができる。【０１１２】
図８は、回数指定命令（ＳＴＩ命令）およびループ分岐命令（ＪＮＩ命令）を含むシーケンスデータの一例を示す図である。圧縮前のシーケンスデータは、一例として、図８のＡに示すように、回数指定命令（ＳＴＩ命令）およびループ分岐命令（ＪＮＩ命令）を含んでよい。【０１１３】
ＳＴＩ命令は、１以上の命令を含むループ区間を繰り返し実行する繰返し回数を指定する。より具体的には、ＳＴＩ命令は、ＪＮＩ命令により形成されるループ区間の繰返し回数を指定する。ＳＴＩ命令は、一例として、繰返し回数をオペランドとして含む。ＳＴＩ命令は、シーケンスデータにおける、ループ区間より前に配置される。【０１１４】
ＪＮＩ命令は、１以上の命令を含むループ区間の末尾に配置される。なお、ループ区間は、１つのＪＮＩ命令のみであってもよい。この場合、ループ区間の先頭および末尾は一致する。ＪＮＩ命令は、ループ区間の実行回数が、直前のＳＴＩ命令において指定された繰返し回数に達していないことを条件として、当該ループ区間の先頭の命令に制御を分岐させる。また、ＪＮＩ命令は、ループ区間の実行回数が、直前のＳＴＩ命令において指定された繰返し回数に達したことを条件として、当該ＪＮＩ命令の次の命令に制御を移す。【０１１５】
なお、図８のＢに示すように、ＪＮＩ命令は、分岐先の命令（ループ区間の先頭の命令）を指定する値を、オペランドとして含む。ループ区間が１つのＪＮＩ命令のみである場合、ＪＮＩ命令は、自身を指定する値をオペランドとして含む。圧縮形式のシーケンスデータに含まれるＪＮＩ命令のオペランドは、当該ＪＮＩ命令と、分岐先の命令（ループ区間の先頭の命令）とのオフセットの差で表されている。すなわち、ＪＮＩ命令のオペランドは、当該ＪＮＩ命令に対する、分岐先の命令（ループ区間の先頭の命令）の相対オフセットにより表される。【０１１６】
展開部３１４は、一次キャッシュ３１２からＳＴＩ命令を読み出した場合、図８のＣに示すように、当該ＳＴＩ命令を、当該ＳＴＩ命令と同様の回数指定命令であるＥＳＴＩ命令に置き換えて、命令キャッシュ３１６にキャッシングさせる。また、展開部３１４は、ＪＮＩ命令を読み出した場合、当該ＪＮＩ命令を、ＥＪＮＩ命令に置き換えて命令キャッシュ３１６にキャッシングさせる。ＥＪＮＩ命令は、ループ区間の実行回数が、直前のＥＳＴＩ命令において指定された繰返し回数に達していないことを条件として、当該ループ区間の先頭の命令に制御を分岐させる。また、ＥＪＮＩ命令は、ループ区間の実行回数が、直前のＥＳＴＩ命令において指定された繰返し回数に達したことを条件として、当該ＥＪＮＩ命令の次の命令に制御を移す。【０１１７】
ＥＪＮＩ命令は、分岐先の命令（ループ区間の先頭の命令）を指定する値を、オペランドとして含む。非圧縮形式のシーケンスデータに含まれるＥＳＴＩ命令のオペランドは、分岐先の命令（ループ区間の先頭の命令）の絶対オフセットで表されている。従って、展開部３１４は、一次キャッシュ３１２から読み出されたＪＮＩ命令における分岐先の相対オフセットを、絶対オフセットに変換して命令キャッシュ３１６にキャッシングさせる。これにより、ベクタ生成制御部３３２は、ＥＪＮＩ命令の実行において、オペランドの値をそのままオフセットレジスタ３３０にロードすれば、分岐処理をすることができる。【０１１８】
ベクタ生成制御部３３２は、ＥＳＴＩ命令の実行において、当該ＥＳＴＩ命令により指定された繰返し回数をスタック３４０にプッシュする。これにより、スタック３４０は、当該ＥＳＴＩ命令において指定された繰返し回数を先頭に記憶することができる。【０１１９】
ベクタ生成制御部３３２は、ＥＪＮＩ命令の実行において、スタック３４０の先頭に記録された繰返し回数が０でないことを条件として、スタック３４０の先頭の繰返し回数をデクリメントする。この場合において、ベクタ生成制御部３３２は、当該ＥＪＮＩ命令のオペランドにより指定された絶対オフセットをオフセットレジスタ３３０にロードする。これにより、ベクタ生成制御部３３２は、ループ区間の先頭に処理を戻すことができる。また、ベクタ生成制御部３３２は、スタック３４０の先頭の繰返し回数が０であることを条件として、当該繰返し回数をスタック３４０からポップして、次の命令に制御を移す。これにより、ベクタ生成制御部３３２によれば、指定された繰返し回数分ループ区間が実行されたことに応じて、当該ループ区間の次の命令に制御を移すことができる。【０１２０】
図９は、ブレーク命令（ＢＲＫ命令）を含むシーケンスデータの一例を示す図である。圧縮前のシーケンスデータは、一例として、図９のＡに示すように、ＪＮＩ命令により形成されるループ区間中に、ブレーク命令（ＢＲＫ命令）を含んでよい。【０１２１】
ＢＲＫ命令は、ＪＮＩ命令によるループを終了させることを指示する。より具体的には、ＢＲＫ命令は、当該ＢＲＫ命令の後のＪＮＩ命令の実行において、ループ区間の処理を抜けて、ＪＮＩ命令の次の命令に制御を移す。【０１２２】
展開部３１４は、一次キャッシュ３１２からＢＲＫ命令を読み出した場合、図９のＢおよびＣに示すように、当該ＢＲＫ命令を、当該ＢＲＫ命令と同様のブレーク命令であるＥＢＲＫ命令に置き換えて、命令キャッシュ３１６にキャッシングさせる。ベクタ生成制御部３３２は、ＥＢＲＫ命令の実行において、スタック３４０の先頭の繰返し回数を０とする。そして、ベクタ生成制御部３３２は、ループ区間中における当該ＥＢＲＫ命令以降の各命令（すなわち、ＥＢＲＫ命令からＥＪＮＩ命令までの各命令）を実行した後に、ＥＪＮＩ命令の次の命令を実行する。これにより、ベクタ生成制御部３３２によれば、ＳＴＩ命令において指定された繰返し回数に関わらず、強制的にループを終了することができる。【０１２３】
図１０は、繰返し命令（ＩＤＸＩ命令）を含むシーケンスデータの一例を示す図である。圧縮前のシーケンスデータは、一例として、図１０のＡに示すように、ＩＤＸＩ命令を含んでよい。【０１２４】
展開部３１４は、一次キャッシュ３１２から、ＩＤＸＩ命令を一次キャッシュ３１２から読み出した場合、当該ＩＤＸＩ命令において指定された繰返し回数が１回であることを検出したことに応じて、当該ＩＤＸＩ命令をＮＯＰ命令に置換して命令キャッシュ３１６にキャッシングさせる。本実施形態においては、展開部３１４は、１回の繰返し回数を指定するＩＤＸＩ命令を、ＥＮＯＰ命令に置換して、命令キャッシュ３１６にキャッシングさせる。【０１２５】
ここで、ＩＤＸＩ命令を実行する場合、ベクタ生成制御部３３２は、レジスタから現在の繰返し回数を読み出す読出処理、読み出した繰返し回数が０であるか否かを判断する判断処理、読み出した繰返し回数が０でないことを条件としてレジスタをデクリメントするデクリメント処理を、１クロックサイクル中において実行しなければならない。これに加え、ベクタ生成制御部３３２は、ＩＤＸＩ命令の１サイクル目の実行においては、これらの処理に先立って、指定された繰返し回数をレジスタにロードするロード処理をしなければならない。【０１２６】
これに対して、本実施形態においては、ＩＤＸＩ命令において指定される繰返し回数が２以上であることが保証される。従って、ベクタ生成制御部３３２は、ＩＤＸＩ命令の１サイクル目の実行においては、読出処理、判断処理およびデクリメント処理を実行せずに、ロード処理だけを実行すればよい。従って、ベクタ生成制御部３３２は、ＩＤＸＩ命令の１サイクル目において実行すべき処理数を少なくすることができる。これにより、ベクタ生成制御部３３２によれば、ＩＤＸＩ命令の実行における処理が軽減し、より短いクロックサイクルで試験パターンを発生できる。【０１２７】
図１１は、本発明の一つの実施形態に係る電子デバイス４００の構成の一例を示す図である。電子デバイス４００は、被試験回路４１０、試験回路４２０、入出力ピン４３０、及びＢＩＳＴピン４４０を有する。被試験回路４１０は、電子デバイス４００の実装時に動作する回路であってよい。被試験回路４１０は、電子デバイス４００の実装時に入出力ピン４３０から与えられる信号に応じて動作する。【０１２８】
例えば電子デバイス４００がメモリデバイスである場合、被試験回路４１０は、電子デバイス４００のメモリセルを含む回路であってよい。例えば被試験回路４１０は、メモリセル及びメモリセルを制御する制御回路であってよい。制御回路は、メモリセルへのデータの書き込み、メモリセルからのデータの読み出しを制御する回路であってよい。【０１２９】
試験回路４２０は、被試験回路４１０と同一の半導体チップに設けられ、被試験回路４１０を試験する。試験回路４２０は、図１から図１０に関連して説明した試験モジュール１００と同一の構成を有してよい。また試験回路４２０は、試験モジュール１００の一部の構成を有してもよい。また試験回路４２０は、試験モジュール１００の一部の機能を行う回路であってよい。例えば試験回路４２０は、結果メモリ１６を有さなくてよい。また試験回路４２０のレート発生部３０及びタイミング発生部５６は、固定されたタイミングセットの設定値により動作してよい。【０１３０】
また試験回路４２０は、外部の試験装置からＢＩＳＴピン４４０を介して被試験回路４１０のセルフテストを行う旨の信号が与えられた場合に、被試験回路４１０を試験してよい。ＢＩＳＴピン４４０は、電子デバイス４００の実装時には用いられないピンであることが好ましい。また試験回路４２０は、被試験回路４１０の試験結果を、ＢＩＳＴピン４４０から外部の試験装置に出力してよい。【０１３１】
外部の試験装置は、図１に関連して説明したサイト制御装置１３０と同様の動作を行ってよい。つまり、試験回路４２０を、図１から図１０に関連して説明した試験モジュール１００と同様に機能させるべく、試験制御プログラム、試験プログラム、試験データ等を試験回路４２０に供給してよい。【０１３２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【図１】
2008126747.tif 000003
【図２】
2008126747.tif 000004
【図３】
2008126747.tif 000005
【図４】
2008126747.tif 000006
【図５】
2008126747.tif 000007
【図６】
2008126747.tif 000008
【図７】
2008126747.tif 000009
【図８】
2008126747.tif 000010
【図９】
2008126747.tif 000011
【図１０】
2008126747.tif 000012
【図１１】
2008126747.tif 000013
【国際調査報告】
2008126747.tif 000014
2008126747.tif 000015
2008126747.tif 000016
2008126747.tif 000017