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