(57)【要約】【課題】複数のパイプラインを備える試験装置から互いに同期した複数の試験信号を出力する。【解決手段】各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置であって、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、それぞれの条件分岐命令を配置すべき位置を使用者に対して表示する表示部とを備える支援装置を提供する。【選択図】図５
2009250695.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置であって、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、
それぞれの前記条件分岐命令を配置すべき位置を使用者に対して表示する表示部と、
を備える支援装置。
【請求項２】
前記検索部は、前記条件分岐命令として、ループを抜けて次の処理に進むことを指示する前記指示信号を受け取らなかった場合にループを繰り返し、前記指示信号を受け取った場合にループから抜ける条件分岐命令を検索し、
前記配置決定部は、前記複数のパイプライン間で前記条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中におけるループ内のいずれの試験命令を新たな前記条件分岐命令とすべきかを決定する
請求項１に記載の支援装置。
【請求項３】
前記配置決定部は、
前記複数のパイプライン間で前記条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中におけるループ内のいずれの試験命令を前記新たな条件分岐命令とすべきかを決定する命令決定部と、
元のループにおける先頭の試験命令から前記新たな条件分岐命令に変更すべき試験命令までのループ前半の試験命令列を元のループの後に挿入する命令挿入部と、
元の前記条件分岐命令を無条件に次の試験命令を実行する命令に変更し、挿入された前記ループ前半の試験命令列の末尾を、元のループにおける前記新たな条件分岐命令に変更すべき試験命令の次の試験命令へと条件分岐する前記新たな条件分岐命令に変更する命令変更部と、
を有し、
前記表示部は、それぞれの前記試験シーケンスの変更部分を表示する
請求項２に記載の支援装置。
【請求項４】
前記命令決定部は、それぞれの前記試験シーケンス中の前記条件分岐命令における前記条件判断ステージのタイミングを、前記複数の試験シーケンスが同期するループの末尾のタイミングに揃えるように、それぞれの前記試験シーケンス中における元のループ内のいずれの試験命令を前記新たな条件分岐命令とすべきかを決定する請求項３に記載の支援装置。
【請求項５】
前記命令挿入部は、元のループにおける前記新たな条件分岐命令に変更すべき試験命令の次の試験命令から元のループにおける末尾の試験命令までのルール後半の試験命令列を、元のループの後に挿入した前記ループ前半の試験命令列の後に挿入し、
前記命令変更部は、挿入された前記ループ後半の試験命令列の末尾を、無条件に次の試験命令を実行する命令に変更する
請求項３に記載の支援装置。
【請求項６】
前記命令挿入部は、変更前の試験シーケンスにおいて元のループを抜けて次に実行される試験命令に対応付けられた試験パターンが、前記指示信号を受け取った場合に前記複数のパイプライン間で同期して出力されるように、当該次に実行される試験命令の前に、元のループ内の試験命令列を更に挿入する
請求項５に記載の支援装置。
【請求項７】
前記複数の試験シーケンスの少なくとも１つについて１ループ当たりの時間が異なる場合に、１ループ当たりの時間を公倍数の時間に合わせるべく、１ループ当たりの時間が前記公倍数の時間に満たないループをアンローリングするアンローリング部を更に備える
請求項６に記載の支援装置。
【請求項８】
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置であって、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、
それぞれの前記試験シーケンスについて、前記条件分岐命令を前記配置決定部が決定した位置に変更した変更済試験シーケンスを生成する変更部と、
を備える支援装置。
【請求項９】
被試験デバイスを試験する試験装置であって、
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインと、
前記複数のパイプライン間の同期をとるべく試験シーケンスを変更するシーケンス変更部と、
を備え、
前記シーケンス変更部は、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、
それぞれの前記試験シーケンスについて、前記条件分岐命令を前記配置決定部が決定した位置に変更した変更済試験シーケンスを生成する変更部と、
それぞれの前記試験シーケンスに代えて、対応する前記変更済試験シーケンスを対応する前記パイプラインに供給する供給部と、
を有する試験装置。
【請求項１０】
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援方法であって、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索し、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定し、
それぞれの前記条件分岐命令を配置すべき位置を使用者に対して表示する
支援方法。
【請求項１１】
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援方法であって、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索し、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定し、
それぞれの前記試験シーケンスについて、前記条件分岐命令を決定した位置に変更した変更済試験シーケンスを生成する
支援方法。
【請求項１２】
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、
それぞれの前記条件分岐命令を配置すべき位置を使用者に対して表示する表示部と、
して機能させるプログラム。
【請求項１３】
互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記複数のパイプラインにより実行される複数の前記試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、
前記複数のパイプライン間で、それぞれの前記条件分岐命令について前記指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの前記試験シーケンス中において対応する前記条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、
それぞれの前記試験シーケンスについて、前記条件分岐命令を前記配置決定部が決定した位置に変更した変更済試験シーケンスを生成する変更部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、支援装置、試験装置、支援方法およびプログラムに関する。特に本発明は、互いに異なる試験周期に応じて試験シーケンスを実行する複数のパイプラインを備える試験装置を支援する支援装置、試験装置、支援方法およびプログラムに関する。
【背景技術】
【０００２】
試験装置は、半導体装置等の被試験デバイスの複数のピンのそれぞれに対して試験信号を与えて、被試験デバイスが正常に動作するか否かを判定する。各試験信号は、試験装置に備えられた複数の試験モジュールにより生成される。
【０００３】
複数の試験モジュールのそれぞれは、試験シーケンスに含まれる試験命令を、指定された試験周期で順次に実行し、実行された試験命令に対応付けられた試験パターンをパターンメモリから読み出す。そして、複数の試験モジュールのそれぞれは、パターンメモリから読み出した試験パターンに応じた波形の試験信号を生成する。これにより、試験装置は、複数の試験信号を被試験デバイスに与えて、当該被試験デバイスを試験することができる。また、複数の試験モジュールは、互いに同期した複数の試験信号を被試験デバイスに与えることが好ましい。
【０００４】
また、複数の試験モジュールのそれぞれは、パイプラインを有する。パイプラインは、直列に接続され、試験パターンを試験周期で順次に転送する複数のフリップフロップを含む。パイプラインは、複数のフリップフロップの各段において、それぞれ試験パターンに対して所定の処理を施す。
【０００５】
ここで、複数の試験モジュールのそれぞれは、パイプライン内のフリップフロップの段数が互いに異なる場合がある。また、複数の試験モジュールのそれぞれは、試験シーケンスに含まれる試験命令を、互いに異なる試験周期により実行する場合がある（特許文献１及び２参照）。このような場合、パイプライン同士で遅延時間が異なるので、複数の試験モジュールから出力される試験パターンの出力タイミングが同期しない。そこで、複数の試験モジュールには、パイプラインの最終段フリップフロップにおける試験パターンの出力タイミングが複数の試験モジュール間で同期するように、各試験命令の実行タイミングが予め調整された試験シーケンスが、与えられることが好ましい。
【０００６】
【特許文献１】国際公開第２００３／０６２８４３号パンフレット
【特許文献２】特開平１１−１４７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、複数の試験モジュールにより実行される複数の試験シーケンスは、所定の信号を受け取らなかったことを条件として同一の試験命令列（ループ）を繰り返して実行し、所定の信号を受け取ったことを条件として一斉にループを抜けて次の命令を実行する条件分岐命令を含んでよい。このような条件分岐命令を含むことにより、複数の試験シーケンスは、一例として、試験装置または被試験デバイスが所定状態に遷移するまで、所定波形の試験信号を繰返して出力し続け、試験装置又は被試験デバイスが所定状態に遷移したことを条件として、新たな試験信号を一斉に出力することができる。
【０００８】
しかし、複数の試験モジュールにより実行される複数の試験シーケンスは、試験モジュール毎にパイプラインのフリップフロップの段数または試験周期が異なる場合、パイプラインの最終段フリップフロップにおける試験パターンの出力タイミングが同期するように、条件分岐命令が互いに異なるタイミングで実行される。従って、複数の試験モジュールは、パイプラインのフリップフロップの段数または試験周期が互いに異なる場合、所定の信号を受け取った場合において、互いに同一タイミングでループを抜けることができなかった。この結果、複数の試験モジュールは、ループ直後に出力すべき複数の試験パターンを、パイプラインの最終段のフリップフロップから同期して出力することができなかった。
【０００９】
そこで本発明は、上記の課題を解決することのできる支援装置、試験装置、支援方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の形態においては、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置であって、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、それぞれの条件分岐命令を配置すべき位置を使用者に対して表示する表示部と、を備える支援装置を提供する。
【００１１】
本発明の第２の形態においては、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置であって、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、それぞれの試験シーケンスについて、条件分岐命令を配置決定部が決定した位置に変更した変更済試験シーケンスを生成する変更部と、を備える支援装置を提供する。
【００１２】
本発明の第３の形態においては、被試験デバイスを試験する試験装置であって、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインと、複数のパイプライン間の同期をとるべく試験シーケンスを変更するシーケンス変更部と、を備え、シーケンス変更部は、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、それぞれの試験シーケンスについて、条件分岐命令を配置決定部が決定した位置に変更した変更済試験シーケンスを生成する変更部と、それぞれの試験シーケンスに代えて、対応する変更済試験シーケンスを対応するパイプラインに供給する供給部と、を有する試験装置を提供する。
【００１３】
本発明の第４の形態においては、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援方法であって、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索し、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定し、それぞれの条件分岐命令を配置すべき位置を使用者に対して表示する支援方法を提供する。
【００１４】
本発明の第５の形態においては、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援方法であって、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索し、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定し、それぞれの試験シーケンスについて、条件分岐命令を決定した位置に変更した変更済試験シーケンスを生成する支援方法を提供する。
【００１５】
本発明の第６の形態においては、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置として、コンピュータを機能させるプログラムであって、コンピュータを、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、それぞれの条件分岐命令を配置すべき位置を使用者に対して表示する表示部と、して機能させるプログラムを提供する。
【００１６】
本発明の第７の形態においては、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行し、各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイスに供給する複数のパイプラインを備える試験装置においてパイプライン間の同期をとるための試験シーケンスの変更を支援する支援装置として、コンピュータを機能させるプログラムであって、コンピュータを、複数のパイプラインにより実行される複数の試験シーケンスのそれぞれから、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令を検索する検索部と、複数のパイプライン間で、それぞれの条件分岐命令について指示信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応する条件分岐命令をどの位置に配置すべきかを決定する配置決定部と、それぞれの試験シーケンスについて、条件分岐命令を配置決定部が決定した位置に変更した変更済試験シーケンスを生成する変更部と、して機能させるプログラムを提供する。
【００１７】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１９】
図１は、本実施形態に係る試験システム１０を被試験デバイス３００とともに示す。試験システム１０は、試験装置１２と、支援装置２０とを備える。
【００２０】
試験装置１２は、互いに同期した複数の試験信号を被試験デバイス３００に与えて、当該被試験デバイス３００を試験する。試験装置１２は、試験部１４と、制御部１６とを備える。
【００２１】
試験部１４は、それぞれが試験信号を出力する複数の試験モジュール３０を備える。各試験モジュール３０は、予め試験シーケンスが与えられる。試験シーケンスは、順次に実行される複数の試験命令と、それぞれが試験命令に対応付けられた複数の試験パターンとを含む。各試験モジュール３０は、互いに異なる試験周期に応じて試験シーケンスに含まれる各試験命令を実行する。そして、各試験モジュール３０は、実行した各試験命令に対応付けられた試験パターンに基づく試験信号を被試験デバイス３００に供給する。
【００２２】
また、複数の試験モジュール３０のそれぞれは、パイプラインを備える。各パイプラインは、それぞれが指定された試験周期で試験命令を実行し、実行した各試験命令に対応付けられた試験パターンを試験周期で順次に転送する複数のフリップフロップを有する。
【００２３】
制御部１６は、例えばバスを介して各試験モジュール３０と接続される。制御部１６は、各試験モジュール３０に対して、対応する試験シーケンスを試験に先立って供給する。
【００２４】
支援装置２０は、複数の試験モジュール３０内のパイプライン間の同期をとるための試験シーケンスの変更を支援する。支援装置２０は、一例として、複数の試験モジュール３０に与えられるべき複数の試験シーケンスを、複数の試験モジュール３０に与えられる前に制御部１６から取得する。支援装置２０は、複数の試験モジュール３０内のパイプライン間の同期をとるべく、取得した試験シーケンスを変更する。そして、支援装置２０は、取得した複数の試験シーケンスのそれぞれに代えて、対応する変更済みの試験シーケンスを制御部１６に戻す。
【００２５】
なお、支援装置２０は、一例として、試験装置１２の外部に接続されてよい。これに代えて、支援装置２０は、試験装置１２内にシーケンス変更部として備えられる構成であってもよい。この場合、シーケンス変更部として機能する支援装置２０は、制御部１６から複数の試験モジュール３０に与えられるべき複数の試験シーケンスを取得して、取得した複数の試験シーケンスに代えて、複数の変更済試験シーケンスのそれぞれを対応する試験モジュール３０に供給する。
【００２６】
図２は、試験部１４の構成の一例を示す。試験部１４は、複数の試験モジュール３０（３０−１〜３０−Ｎ）と、同期化部３２と、スタート信号用ＦＦ回路３４と、コンティニュー信号用ＦＦ回路３６とを備える。
【００２７】
各試験モジュール３０は、パターン発生器４２と、チャネル回路４４とを有する。パターン発生器４２は、試験に先立って予め試験シーケンスが与えられる。パターン発生器４２は、与えられた試験シーケンスに含まれる各試験命令を試験周期毎に実行し、実行した各試験命令に対応付けられた試験パターンを試験周期毎に出力する。
【００２８】
チャネル回路４４は、被試験デバイス３００の対応するピンに接続され、当該ピンに試験信号を供給する。チャネル回路４４は、パターン発生器４２が出力した試験パターンを受け、試験周期毎に試験パターンに応じた波形を成形する。そして、チャネル回路４４は、試験パターンに応じた波形を有する試験信号を、被試験デバイス３００に供給する。
【００２９】
同期化部３２は、複数の試験モジュール３０内のパターン発生器４２のそれぞれから試験周期を受け取り、各試験周期の最小公倍数の周期を表わす基準クロックを生成する。そして、同期化部３２は、生成した基準クロックを複数の試験モジュール３０内のパターン発生器４２に与える。これにより、同期化部３２は、複数の試験モジュール３０内のパターン発生器４２が互いに異なる試験周期で動作している場合であっても、複数の試験周期の最小公倍数の周期のタイミングにおいて複数の試験モジュール３０内のパターン発生器４２を同期させることができる。
【００３０】
スタート信号用ＦＦ回路３４は、試験の開始を指示するスタート信号を、基準クロックのタイミングで受け取る。そして、スタート信号用ＦＦ回路３４は、基準クロックのタイミングで受け取ったスタート信号を、複数の試験モジュール３０内のパターン発生器４２に与える。これにより、スタート信号用ＦＦ回路３４は、複数の試験モジュール３０内のパターン発生器４２の動作を、互いに同期したタイミングで開始させることができる。
【００３１】
コンティニュー信号用ＦＦ回路３６は、各試験モジュール３０内のパターン発生器４２を待機状態から動作状態に遷移させることを指示するコンティニュー信号を、基準クロックのタイミングで受け取る。そして、コンティニュー信号用ＦＦ回路３６は、基準クロックのタイミングで受け取ったコンティニュー信号を、複数の試験モジュール３０内のパターン発生器４２に与える。これにより、スタート信号用ＦＦ回路３４は、複数の試験モジュール３０内のパターン発生器４２を互いに同期したタイミングで待機状態から動作常態へ遷移させることができる。
【００３２】
なお、ここで、各試験モジュール３０内のパターン発生器４２により実行される試験シーケンスには、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令が含まれてよい。より具体的には、試験シーケンスには、ループを抜けて次の処理に進むことを指示する指示信号を受け取らなかった場合にループを繰り返し、指示信号を受け取った場合にループから抜ける条件分岐命令が含まれてよい。本実施形態において、コンティニュー信号は、このような非分岐を指示する指示信号（より具体的には、ループを抜けて次の処理に進むことを指示する指示信号）の一例である。
【００３３】
図３は、パターン発生器４２の構成の一例を示す。パターン発生器４２は、メインメモリ５０と、命令実行部５２と、パイプライン処理部５４と、レート生成部５６とを含む。
【００３４】
メインメモリ５０は、試験シーケンスを記憶する。メインメモリ５０には、記憶すべき試験シーケンスが制御部１６から与えられる。また、メインメモリ５０には、制御部１６に代えて、シーケンス変更部として機能する支援装置２０から、記憶すべき試験シーケンスが与えられてもよい。
【００３５】
命令実行部５２は、試験シーケンスに含まれる試験命令を順次に実行する。より詳しくは、命令実行部５２は、スタート信号を受け取ると、スタートアドレスにより指定されたアドレスの試験命令をメインメモリ５０に記憶された試験シーケンス中から読み出す。続いて、命令実行部５２は、読み出した試験命令に応じた処理を実行して、次に実行すべき試験命令のアドレスを特定する。続いて、命令実行部５２は、次に実行すべきとして特定したアドレスの試験命令をメインメモリ５０に記憶された試験シーケンス中から読み出す。
【００３６】
そして、命令実行部５２は、読み出した試験命令に応じた処理を実行して、更に次に実行すべき試験命令のアドレスを特定する。命令実行部５２は、以上の処理を、試験命令の実行を終了することを指示する命令を読み出すまで繰り返す。このようにして命令実行部５２は、試験シーケンスに記述された試験命令を順次に実行することができる。
【００３７】
さらに、命令実行部５２は、試験周期を表わすレート信号のタイミングに同期して、試験命令の読み出しおよび試験命令の実行をする。これにより、パターン発生器４２は、試験周期に同期した動作をすることができる。
【００３８】
また、命令実行部５２は、試験シーケンスから条件分岐命令を読み出した場合、コンティニュー信号を受け取ったか否かを判断する条件判断ステージを実行する。命令実行部５２は、条件判断ステージにおいて、コンティニュー信号を受け取らなかった場合にループを繰り返し、コンティニュー信号を受け取った場合にループから抜ける。
【００３９】
命令実行部５２は、一例として、条件判断ステージにおいて、コンティニュー信号を受け取らなかった場合、所定の試験周期前に実行された試験命令のアドレスを次に実行すべき試験命令のアドレスとして特定してよい。また、命令実行部５２は、一例として、条件判断ステージにおいて、コンティニュー信号を受け取った場合、所定の試験周期前に実行された試験命令から当該条件分岐命令までの間に含まれていない試験命令のアドレス（例えば当該条件分岐命令の次のアドレス）を、次に実行すべき試験命令のアドレスとして特定する。このようにして、命令実行部５２は、条件判断ステージにおいて、コンティニュー信号を受け取らなかった場合にループを繰り返し、コンティニュー信号を受け取った場合にループから抜けることができる。
【００４０】
パイプライン処理部５４は、命令実行部５２により順次に実行された試験命令のそれぞれに対応付けられた試験パターンを、メインメモリ５０から順次に読み出す。パイプライン処理部５４は、メインメモリ５０から読み出した試験パターンを、複数段のフリップフロップ６０によりレート信号に同期して順次に転送する。そして、パイプライン処理部５４は、順次に転送した試験パターンを、最終段のフリップフロップ６０−Ｍから外部に出力する。
【００４１】
また、パイプライン処理部５４は、複数段のフリップフロップ６０の各ステージにおいて、試験パターンに対して複数の処理部６２により各種の処理を実行してよい。このようにして、パイプライン処理部５４は、メインメモリ５０から読み出した試験パターンに対してパイプライン処理を実行することができる。
【００４２】
レート生成部５６は、試験周期を表わすレート信号を発生して、命令実行部５２およびパイプライン処理部５４に供給する。レート生成部５６は、一例として、試験パターンに含まれるタイミング情報をメインメモリ５０から取得し、取得した当該タイミング情報内の試験周期を指定する値に基づき、レート信号を発生してよい。このような構成のパターン発生器４２は、それぞれが指定された試験周期で試験命令を実行し、実行した各試験命令に対応付けられた試験パターンを試験周期で順次に転送するパイプラインとして機能する。
【００４３】
図４は、試験シーケンスの一例を示す。試験シーケンスには、一例として、シーケンシャルに並べられた複数の試験命令と、複数の試験命令のそれぞれに対応付けられた試験パターン及びタイミングセットとが含まれる。
【００４４】
シーケンシャルに並べられた複数の試験命令のそれぞれには、アドレスが付けられている。各アドレスは、一例として、所定の一の試験命令（例えば先頭の試験命令）からのオフセット量により表わされた値であってよい。
【００４５】
試験シーケンスに含まれる試験命令には、命令実行部５２に指定された処理を実行させる各種の命令が含まれる。試験シーケンスに含まれる試験パターンには、一例として、出力すべき試験信号の波形を表わす論理値パターンが含まれてよい。また、試験シーケンスに含まれるタイミングセット（ＴＳ）には、一例として、試験周期を指定する情報、および、試験周期内における論理変化点の位相を表わす情報等が含まれてよい。
【００４６】
試験シーケンスに含まれる試験命令には、一例として、ＮＯＰ命令、ＥＸＩＴ命令、ＪＥＣＨ命令、ＪＮＩ命令等が含まれてよい。ＮＯＰ命令は、無条件に次の試験命令を実行する命令である。命令実行部５２は、メインメモリ５０からＮＯＰ命令を読み出した場合には、次に実行すべき試験命令のアドレスとして、当該ＮＯＰ命令の次のアドレスを特定する。
【００４７】
ＥＸＩＴ命令は、試験命令の実行を終了する命令である。命令実行部５２は、メインメモリ５０からＥＸＩＴ命令を読み出した場合には、次に実行すべき試験命令のアドレスを特定せずに、当該試験シーケンスの実行を終了する。
【００４８】
ＪＥＣＨ命令は、非分岐を指示する指示信号を受け取らなかった場合に分岐する条件分岐命令の一例である。すなわち、ＪＥＣＨ命令は、ループを抜けて次の処理に進むことを指示する指示信号（コンティニュー信号）を受け取らなかった場合にループを繰り返し、指示信号（コンティニュー信号）を受け取った場合にループから抜ける条件分岐命令の一例である。
【００４９】
より具体的には、ＪＥＣＨ命令は、コンティニュー信号を受け取らなかった場合、当該ＪＥＣＨ命令のアドレスから、当該ＪＥＣＨ命令のオペランドにより指定されたオフセット量だけ前のアドレスを、次に実行すべき試験命令のアドレスとして特定する。そして、ＪＥＣＨ命令は、コンティニュー信号を受け取った場合、当該ＪＥＣＨ命令のアドレスから１つ後のアドレスを、次に実行すべき試験命令のアドレスとして特定する。
【００５０】
ＪＮＩ命令は、指定された回数分、ループを繰り返す繰返し命令の一例である。より具体的には、ＪＮＩ命令は、当該ＪＮＩ命令の実行回数がオペランドにより指定された回数に達していない場合、指定されたオフセット量だけ前のアドレスを次に実行すべき試験命令のアドレスとして特定する。そして、ＪＮＩ命令は、当該ＪＮＩ命令の実行回数がオペランドにより指定された回数に達した場合、当該ＪＮＩ命令のアドレスから１つ後のアドレスを、次に実行すべき試験命令のアドレスとして特定する。
【００５１】
命令実行部５２は、メインメモリ５０からＪＮＩ命令を読み出した場合には、当該ＪＮＩ命令のオペランドにより指定された回数を内部レジスタに格納して、指定されたオフセット量だけ実行すべき試験命令を前に戻す。命令実行部５２は、次以降に同一のＪＮＩ命令を読み出した場合には、内部レジスタに格納した回数をデクリメントして、指定されたオフセット量だけ実行すべき試験命令を前に戻す。そして、命令実行部５２は、内部レジスタに格納された回数が０回に達した場合、ループを抜けて次のアドレスの試験命令を実行する。
【００５２】
図５は、本実施形態に係る支援装置２０の機能構成を示す。支援装置２０は、試験装置１２に備えられる複数のパイプラインにより実行される複数の試験シーケンスを制御部１６から受け取り、複数のパイプライン間の同期をとるべく受け取った複数の試験シーケンスを変更する。
【００５３】
支援装置２０は、取込部７２と、記憶部７４と、検索部７６と、配置決定部７８と、表示部８０と、変更部８２と、供給部８４とを備える。取込部７２は、複数の試験シーケンスを受け取り、受け取った複数の試験シーケンスを記憶部７４に書き込む。記憶部７４は、取込部７２が受け取った複数の試験シーケンスを記憶する。検索部７６は、記憶部７４に記憶されている複数の試験シーケンスのそれぞれから、ＪＥＣＨ命令を検索する。
【００５４】
配置決定部７８は、複数のパイプライン間で、それぞれのＪＥＣＨ命令についてコンティニュー信号を受け取ったか否かを判断する条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中において対応するＪＥＣＨ命令をどの位置に配置すべきかを決定する。本実施形態においては、配置決定部７８は、複数のパイプライン間で条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中におけるＪＥＣＨ命令によって形成されるループ内の、いずれの試験命令を新たなＪＥＣＨ命令とすべきかを決定する。
【００５５】
表示部８０は、それぞれの試験シーケンスについてＪＥＣＨ命令を配置すべき位置を使用者に対して表示する。表示部８０は、一例として、それぞれの試験シーケンスについて、ＪＥＣＨ命令を変更した後の全ての変更済試験シーケンスを使用者に対して表示してよい。これに代えて、表示部８０は、一例として、それぞれの試験シーケンスの変更部分を表示してよい。また、表示部８０は、一例として、それぞれの試験シーケンスをどのように変更するかを表わす情報（例えば、ＪＥＣＨ命令の移動量および挿入すべきループの回数を表わす不足ループ数）を表示してもよい。
【００５６】
変更部８２は、記憶部７４に記憶されている複数の試験シーケンスを読み出して、読み出したそれぞれの試験シーケンスについて、ＪＥＣＨ命令を配置決定部７８が決定した位置に変更した変更済試験シーケンスを生成する。変更部８２は、一例として、使用者から変更指示を受けたことに応じて、変更済試験シーケンスを生成してよい。
【００５７】
供給部８４は、当該支援装置２０が受け取った複数の試験シーケンスのそれぞれに代えて、変更部８２により変更された複数の変更済試験シーケンスを制御部１６に供給する。なお、当該支援装置２０が試験装置１２内にシーケンス変更部として備えられる構成の場合においては、供給部８４は、制御部１６から複数のパイプラインに与えられるそれぞれの試験シーケンスに代えて、対応する変換済試験シーケンスを対応するパイプラインに供給する。
【００５８】
図６は、本実施形態に係る配置決定部７８の構成を示す。配置決定部７８は、命令決定部８６と、命令挿入部８８と、命令変更部９０とを有する。
【００５９】
命令決定部８６は、複数のパイプライン間で条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中における元のＪＥＣＨ命令により形成されるループ内の、いずれの試験命令を新たなＪＥＣＨ命令とすべきかを決定する。命令決定部８６は、一例として、それぞれの試験シーケンス中のＪＥＣＨ命令における条件判断ステージのタイミングを、複数の試験シーケンスが同期するループの末尾のタイミングに揃えるように、それぞれの試験シーケンス中における元のループ内のいずれの試験命令を新たなＪＥＣＨ命令とすべきかを決定してよい。さらに、命令決定部８６は、変更前の試験シーケンスにおいて元のループを抜けて次に実行される試験命令（即ち、変更前の試験シーケンスにおけるＪＥＣＨ命令の次のアドレスの試験命令）に対応付けられた試験パターンが、コンティニュー信号を受け取った場合に複数のパイプライン間において最終段のフリップフロップ６０から同期して出力されるように、当該次に実行される試験命令の前に挿入すべき元のループ内の試験命令列の繰返し回数を決定する。
【００６０】
命令挿入部８８は、元のループにおける先頭の試験命令から元のループにおける末尾の試験命令までのループ内の試験命令列を、元のループの後に挿入する。すなわち、命令挿入部８８は、元のループにおける先頭の試験命令から新たなＪＥＣＨ命令に変更すべき試験命令までのループ前半の試験命令列（プリアンブル）を元のループの後に挿入する。これに加えて、命令挿入部８８は、元のループにおける新たなＪＥＣＨ命令に変更すべき試験命令の次の試験命令から元ループにおける末尾の試験命令までのループ後半の試験命令列（ポストアンブル）を、元のループの後に挿入したループ前半の試験命令列（プリアンブル）の後に挿入する。
【００６１】
さらに、命令挿入部８８は、変更前の試験シーケンスにおいて元のループを抜けて次に実行される試験命令に対応する試験パターンが、コンティニュー信号を受け取った場合において複数のパイプライン間で同期して出力されるように、当該次に実行される試験命令の前に、元のループ内の試験命令列を決定された繰返し回数分更に挿入する。
【００６２】
命令変更部９０は、元のＪＥＣＨ命令をＮＯＰ命令に変更する。また、命令変更部９０は、挿入されたループ前半の試験命令列（プリアンブル）の末尾を、元のループにおける新たなＪＥＣＨ命令に変更すべき試験命令の次の試験命令へと条件分岐する新たなＪＥＣＨ命令に変更する。さらに、命令変更部９０は、挿入されたループ後半の試験命令列（ポストアンブル）の末尾を、ＮＯＰ命令に変更する。
【００６３】
図７は、本実施形態に係る支援装置２０における、パイプライン間の同期をとるための試験シーケンスの変更処理フローを示す。図８は、当該支援装置２０によりパイプライン間の同期を取るために変更がされる試験命令列の一例を示す。
【００６４】
支援装置２０は、複数の試験シーケンスを取り込んで記憶部７４内に記憶する。そして、支援装置２０は、以下のステップＳ１０１からステップＳ１０７の処理を順次に実行する。
【００６５】
まず、検索部７６は、複数の試験シーケンスのそれぞれから、ＪＥＣＨ命令を検索する（Ｓ１０１）。より具体的には、検索部７６は、コンティニュー信号を受け取らなかったことを条件として、複数の試験シーケンスの全てがループを繰返し（図８のＡ）、コンティニュー信号を受け取ったことを条件として、複数の試験シーケンスの全てが一斉にループを抜ける（図８のＢ）ＪＥＣＨ命令を検索する。
【００６６】
ここで、複数の試験シーケンスのそれぞれのＪＥＣＨ命令は、１ループ当たりの時間（ループ周期）が互いに同一となるように、ループ内の試験命令の数が設定されている。すなわち、各ＪＥＣＨ命令は、試験周期とループ内の試験命令の数とを乗じた値が、同一となるように設定されている。なお、以下、ＪＥＣＨ命令により形成されるループ周期を、メッシュとも呼ぶ。
【００６７】
続いて、配置決定部７８は、複数の試験シーケンスのそれぞれに対して、順次にステップＳ１０３の処理を実行する（Ｓ１０２、Ｓ１０４）。ステップＳ１０３において、配置決定部７８は、複数のパイプライン間で条件判断ステージが略同一タイミングとなるように、それぞれの試験シーケンス中における元のＪＥＣＨ命令によって形成されるループ内の、いずれの試験命令を新たなＪＥＣＨ命令とすべきかを決定する。さらに、ステップＳ１０３において、配置決定部７８は、変更前の試験シーケンスにおけるＪＥＣＨ命令の次のアドレスの試験命令が、コンティニュー信号を受け取った場合に複数のパイプライン間で同期して実行されるように、当該次のアドレスの試験命令の前に挿入すべき元のループ内の試験命令列の繰返し回数を決定する。なお、配置決定の処理（Ｓ１０３）については、図８を参照して詳細に説明する。
【００６８】
続いて、表示部８０は、それぞれの試験シーケンスについてＪＥＣＨ命令を配置すべき位置を使用者に対して表示する（Ｓ１０５）。表示部８０は、一例として、詳細を後述の図１０及び図１１で説明するＪＥＣＨ命令の移動量および不足ループ数を表示してもよい。
【００６９】
続いて、変更部８２は、記憶部７４に記憶されている複数の試験シーケンスを読み出して、読み出したそれぞれの試験シーケンスについてＪＥＣＨ命令を新たに決定した位置に変更し、さらに、必要な試験シーケンスについて新たな試験命令列を挿入する（Ｓ１０６）。続いて、供給部８４は、当該支援装置２０が受け取った複数の試験シーケンスのそれぞれに代えて、変更した複数の変更済試験シーケンスを制御部１６に供給する（Ｓ１０７）。
【００７０】
図９は、本実施形態に係る配置決定部７８の処理フローを示す。配置決定部７８は、図３のステップＳ１０３において、以下に示すステップＳ１１１〜ステップＳ１１３の処理を実行する。
【００７１】
まず、配置決定部７８の命令決定部８６は、ＪＥＣＨ命令の移動量を算出する（Ｓ１１１）。ステップＳ１１１の処理の詳細については、図１０において説明する。
【００７２】
続いて、配置決定部７８の命令決定部８６は、不足ループ数を算出する（Ｓ１１２）。ステップＳ１１２の処理の詳細については、図１１において説明する。
【００７３】
続いて、配置決定部７８の命令挿入部８８および命令変更部９０は、ステップＳ１１１およびステップＳ１１２により算出されたＪＥＣＨ命令の移動量および不足ループ数に基づき、対象となる試験シーケンスの配置を決定する（ステップＳ１１３）。ステップＳ１１３の処理の詳細については、図１３において説明する。
【００７４】
図１０は、本実施形態に係る命令決定部８６によるＪＥＣＨ命令の移動量の算出処理フローを示す。命令決定部８６は、図９のステップＳ１１１において、以下のステップＳ１２１〜ステップＳ１２４の処理を実行する。
【００７５】
まず、命令決定部８６は、ループ周期（メッシュ）を算出する（Ｓ１２１）。命令決定部８６は、一例として、ＪＥＣＨ命令により形成されるループに含まれる試験命令の数と、試験周期とを乗じた値を、メッシュとして算出してよい。命令決定部８６は、メッシュが既に算出されている場合には、既に算出されているメッシュをメモリ等から取得してよい。
【００７６】
続いて、命令決定部８６は、当該試験シーケンスが実行されるパイプラインにおける、試験パターンがメインメモリ５０から読み出されてから、当該試験パターンがパイプライン処理部５４の最終段のフリップフロップ６０から出力されるまでの絶対遅延時間（ｔｐｄ）を算出する（Ｓ１２２）。命令決定部８６は、一例として、パイプライン処理部５４内のフリップフロップ６０の段数と、試験周期とを乗じた値を、絶対遅延時間（ｔｐｄ）として算出してよい。
【００７７】
続いて、命令決定部８６は、メッシュに対する絶対遅延時間（ｔｐｄ）の剰余を算出する（Ｓ１２３）。続いて、命令決定部８６は、ステップＳ１２３において算出した剰余を試験周期で除算し、除算結果をＪＥＣＨ命令の移動量とする（Ｓ１２４）。このようにしてＪＥＣＨ命令の移動量を算出することにより、命令決定部８６は、それぞれの試験シーケンス中のＪＥＣＨ命令における条件判断ステージのタイミングを、複数の試験シーケンスが同期するループの末尾のタイミングに揃えることができる。
【００７８】
図１１は、本実施形態に係る命令決定部８６による不足ループ数の算出処理フローを示す。命令決定部８６は、図９のステップＳ１１２において、以下のステップＳ１３１〜ステップＳ１３４の処理を実行する。
【００７９】
まず、命令決定部８６は、当該試験シーケンスが実行されるパイプラインの絶対値遅延時間（ｔｐｄ）をループ周期（メッシュ）により除算し、除算結果を当該試験シーケンスの必要ループ回数とする（Ｓ１３１）。続いて、命令決定部８６は、最も試験周期の長い試験シーケンスが実行されるパイプラインの絶対値遅延時間（ｔｐｄ）をループ周期（メッシュ）により除算し、除算結果を最大必要ループ回数とする（Ｓ１３２）。
【００８０】
続いて、命令決定部８６は、当該試験シーケンスの必要ループ回数から、最長試験周期の試験シーケンスの必要ループ回数を減算する（Ｓ１３３）。続いて、命令決定部８６は、図１０のステップＳ１２４において算出されたＪＥＣＨ命令の移動量に基づき、ステップＳ１３３において算出された減算結果を補正して、補正結果を不足ループ数とする（Ｓ１３４）。
【００８１】
図１２は、図１１のステップＳ１３４において用いられる補正テーブルを示す。命令決定部８６は、図１２に示された補正テーブルに基づき、ステップＳ１３３において算出された減算結果を補正する。
【００８２】
より具体的には、命令決定部８６は、当該試験シーケンスにおけるＪＥＣＨ命令の移動量が０、かつ、最も試験周期の長い試験シーケンスのＪＥＣＨ命令の移動量が０である場合、ステップＳ１３３において算出された減算結果をそのまま不足ループ数とする。また、命令決定部８６は、当該試験シーケンスにおけるＪＥＣＨ命令の移動量が０、かつ、最も試験周期の長い試験シーケンスのＪＥＣＨ命令の移動量が１以上である場合、ステップＳ１３３において算出された減算結果に１を加算した値を不足ループ数とする。
【００８３】
また、命令決定部８６は、当該試験シーケンスにおけるＪＥＣＨ命令の移動量が１以上、かつ、最も試験周期の長い試験シーケンスのＪＥＣＨ命令の移動量が０である場合、ステップＳ１３３において算出された減算結果から１を減算した値を不足ループ数とする。また、命令決定部８６は、当該試験シーケンスにおけるＪＥＣＨ命令の移動量が１以上、かつ、最も試験周期の長い試験シーケンスのＪＥＣＨ命令の移動量が１以上である場合、ステップＳ１３３において算出された減算結果をそのまま不足ループ数とする。このようにして不足ループ数を算出することにより、命令決定部８６は、変更前の試験シーケンスにおいて元のループを抜けて次に実行される試験命令（即ち、変更前の試験シーケンスにおけるＪＥＣＨ命令の次のアドレスの試験命令）に対応する試験パターンを、コンティニュー信号を受け取った場合に複数のパイプライン間で同期して出力させることができる。
【００８４】
図１３は、本実施形態に係る命令挿入部８８および命令変更部９０による、配置決定処理の算出処理フローを示す。命令挿入部８８および命令変更部９０は、図９のステップＳ１１３において、以下のステップＳ１４１〜ステップＳ１４７の処理を実行する。なお、以下、ステップＳ１４１〜ステップＳ１４７の処理を、図１４〜図１６の具体例を参照しながら説明する。
図１４は、命令挿入部８８および命令変更部９０による処理前の試験シーケンスの一例を示す。図１４の（Ａ）は、第１パイプラインにより実行される試験シーケンス（試験周期＝４ｎ秒、１ループ当たりの試験命令数＝４、第１パイプラインのフリップフロップ６０の段数＝５段）の一例を示す。図１４の（Ｂ）は、第２パイプラインにより実行される試験シーケンス（試験周期＝８ｎ秒、１ループ当たりの試験命令数＝２、第２パイプラインのフリップフロップ６０の段数＝５段）の一例を示す。
【００８５】
また、図１５は、図１４の（Ａ）に示される第１パイプラインにより実行される試験シーケンスに対する配置決定例を示す。また、図１６は、図１４の（Ｂ）に示される第２パイプラインにより実行される試験シーケンスに対する配置決定例を示す。
【００８６】
まず、命令挿入部８８は、図９のステップＳ１１２において算出された不足ループ数が１以上か否かを判断する（Ｓ１４１）。命令挿入部８８は、不足ループ数が１以上の場合（Ｓ１４１のＹｅｓ）、処理をステップＳ１４２に進め、不足ループ数が０の場合（Ｓ１４１のＮｏ）、処理をステップＳ１４５に進める。
【００８７】
続いて、ステップＳ１４２において、命令挿入部８８は、ＪＥＣＨ命令により形成されるループ内の試験命令列をコピーし、コピーした試験命令列を元のループの後ろに２つ挿入する。命令挿入部８８は、一例として、図１５の（Ａ）のアドレス４〜７の４個の試験命令列をコピーし、図１５の（Ｂ）のアドレス８〜１５に示されるようにコピーした試験命令列を元のループの後ろに２つ挿入する。
【００８８】
続いて、ステップＳ１４３において、命令変更部９０は、元のループ内のＪＥＣＨ命令および挿入した１個目のループ内のＪＥＣＨ命令を、それぞれＮＯＰ命令に変更する。命令変更部９０は、一例として、図１５の（Ｃ）のアドレス７およびアドレス１１に示されるように、ＪＥＣＨ命令をＮＯＰ命令に変更する。
【００８９】
続いて、ステップＳ１４１において、命令変更部９０は、挿入した２個目のループのＪＥＣＨ命令を、ＪＮＩ命令に変更する。ここで、ＪＮＩ命令において指定されるループ数は、図９のステップＳ１１２において算出された不足ループ数の値とする。ただし、命令変更部９０は、図９のステップＳ１１２において算出された不足ループ数が１の場合には、挿入した２個目のループのＪＥＣＨ命令を、ＮＯＰ命令に変更する。
【００９０】
一方、ステップＳ１４５において、命令挿入部８８は、ＪＥＣＨ命令により形成されるループ内の試験命令列をコピーし、コピーした試験命令列を元のループの後ろに１個挿入する。命令挿入部８８は、一例として、図１６の（Ａ）のアドレス２〜３の２個の試験命令列をコピーし、図１６の（Ｂ）のアドレス４〜５に示されるようにコピーした試験命令列を元のループの後ろに１個挿入する。
【００９１】
続いて、ステップＳ１４６において、命令変更部９０は、元のループ内のＪＥＣＨ命令および挿入したループ内のＪＥＣＨ命令を、それぞれＮＯＰ命令に変更する。命令変更部９０は、一例として、図１６の（Ｃ）のアドレス３およびアドレス５に示されるように、ＪＥＣＨ命令をＮＯＰ命令に変更する。
【００９２】
ステップＳ１４４またはステップＳ１４６を終えると、命令変更部９０は、処理をステップＳ１４７に進める。ステップＳ１４７において、命令変更部９０は、元のループのＪＥＣＨ命令から図９のステップＳ１１１において算出された移動量分アドレスを進めた位置の試験命令を、ＪＥＣＨ命令に変更する。なお、この場合において、新たなＪＥＣＨ命令により指定されるループの大きさは、元のＪＥＣＨ命令により形成されるループの大きさと同一とする。
【００９３】
命令変更部９０は、一例として、図１５の（Ｃ）のアドレス８に示されるように、ＮＯＰ命令を、１ループ当たりの試験命令数が４個のＪＥＣＨ命令（即ち、前に戻らせるオフセット量が−３のＪＥＣＨ命令）に変更する。また、命令変更部９０は、一例として、図１６の（Ｃ）のアドレス４に示されるように、ＮＯＰ命令を、１ループ当たりの試験命令数が２個のＪＥＣＨ命令（即ち、前に戻らせるオフセット量が−１のＪＥＣＨ命令）に変更する。これにより、命令変更部９０は、元のＪＥＣＨ命令と同一の大きさのループを形成することができる。
【００９４】
図１７は、図１４に示された変更前の試験シーケンスを試験装置１２が実行した場合の、試験パターンのメモリ出力タイミング（メインメモリ５０から試験パターンが出力されるタイミング）、および、試験パターンの最終段ＦＦ出力タイミング（パイプラインの最終段のフリップフロップ６０から試験パターンが出力されるタイミング）を示す。変更前の試験シーケンスを試験装置１２が実行した場合、ＪＥＣＨ命令に対応付けられた試験パターンの最終段ＦＦ出力タイミングは、複数のパイプライン同士で一致している。例えば、図１７に示されるように、第１パイプラインのアドレス７の試験パターンの最終段ＦＦ出力タイミングと、第２パイプラインのアドレス３の試験パターンのタイミングの最終段ＦＦ出力タイミングは、一致している。
【００９５】
しかし、変更前の試験シーケンスを試験装置１２が実行した場合、ＪＥＣＨ命令の実行タイミング（すなわち、ＪＥＣＨ命令に対応付けられた試験パターンのメモリ出力タイミング）は、複数のパイプライン同士で互いに異なっている。例えば、図１７に示されるように、第１パイプラインにより実行されるＪＥＣＨ命令のメモリ出力タイミングと、第２パイプラインのＪＥＣＨ命令のメモリ出力タイミングは、異なっている。
【００９６】
図１８は、ステップＳ１１１において算出されたＪＥＣＨ命令の移動量を示す。図１９は、図１４に示された試験シーケンスを変更した変更済試験シーケンスを試験装置１２が実行した場合の、試験パターンのメモリ出力タイミングおよび最終段ＦＦ出力タイミングを示す。
【００９７】
命令決定部８６は、それぞれの試験シーケンス中のＪＥＣＨ命令の実行のタイミングがメッシュの末尾のタイミングに揃うように、ＪＥＣＨ命令を移動する。例えば、図１８に示されるように、命令決定部８６は、第１パイプラインのＪＥＣＨ命令および第２パイプラインにより実行されるＪＥＣＨ命令のそれぞれの実行タイミングを、１命令ずつ後ろに移動する。そして、このような変更済試験シーケンスを試験装置１２が実行した場合、図１９に示されるように、複数のパイプラインは、互いに同一のタイミングでＪＥＣＨ命令を実行することができる。
【００９８】
図２０は、図１４に示された試験シーケンスを変更した変更済試験シーケンスの実行中に、試験装置１２がコンティニュー信号を受け取った場合の、試験パターンのメモリ出力タイミングおよび最終段ＦＦ出力タイミングを示す。この図２０に示されるように、複数のパイプラインは、ＪＥＣＨ命令の実行タイミングが同一であるので、コンティニュー信号を受け取った場合において、互いに同一のタイミングでループを抜けることができる。
【００９９】
また、命令決定部８６は、変更前の試験シーケンスにおけるＪＥＣＨ命令の次のアドレスの試験命令に対応する試験パターンを、複数のパイプライン間で同期して出力させるように、不足分のループを挿入する。これにより、複数のパイプラインは、変更前の試験シーケンスにおけるＪＥＣＨ命令の次のアドレスの試験命令に対応する試験パターンを、同期して出力することができる。例えば、図２０に示されるように、命令決定部８６は、第１パイプラインにより実行される試験シーケンスに１ループ分の試験命令列を挿入する。これにより、第１パイプラインおよび第２パイプラインは、変更前の試験シーケンスにおけるＪＥＣＨ命令の次のアドレスの試験命令に対応する試験パターンを、同期して出力することができる。
【０１００】
以上のように本実施形態に係る支援装置２０は、指示信号（コンティニュー信号）を受け取った場合、複数のパイプラインが条件分岐命令（ＪＥＣＨ命令）を同一タイミングで実行する試験シーケンスを、生成することができる。さらに、支援装置２０によれば、指示信号（コンティニュー信号）を受け取った場合、変更前の試験シーケンスにおける条件分岐命令（ＪＥＣＨ命令）の次の試験命令に対応する試験パターンを、複数のパイプラインから同期して出力する試験シーケンスを、生成することができる。
【０１０１】
図２１は、本実施形態の変形例に係る支援装置２０の構成を示す。本変形例に係る支援装置２０は、図５に示された支援装置２０と略同一の構成および機能を採るので、図５に示された支援装置２０が備える部材と略同一の構成および機能の部材に同一の符号を付け、以下相違点を除き説明を省略する。
【０１０２】
本変形例に係る支援装置２０は、アンローリング部９２を更に備える。アンローリング部９２は、複数の試験シーケンスの少なくとも１つについて１ループ当たりの時間が異なる場合に、１ループ当たりの時間を公倍数の時間に合わせるべく、１ループ当たりの時間が公倍数の時間に満たないループをアンローリングする。
【０１０３】
すなわち、アンローリング部９２は、複数の試験シーケンスの１ループ当たりの時間が異なる場合、複数の試験シーケンスの各ループの公倍数（例えば、最小公倍数）をループ周期（メッシュ）として設定する。続いて、アンローリング部９２は、複数の試験シーケンスのそれぞれのループ内の試験命令列を、設定したループ周期（メッシュ）でループする試験命令列に展開する。そして、アンローリング部９２は、設定したループ周期（メッシュ）でループする試験命令列に展開された複数の試験シーケンスを配置決定部７８に供給する。これにより、本変形例に係る支援装置２０によれば、１ループ当たりの時間が互いに同一となっていない複数の試験シーケンスが与えられ場合であっても、本実施形態と同様の効果を得ることができる。
【０１０４】
図２２は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【０１０５】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１０６】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【０１０７】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【０１０８】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１０９】
コンピュータ１９００にインストールされ、コンピュータ１９００を支援装置２０として機能させるプログラムは、取込モジュールと、記憶モジュールと、検索モジュールと、配置決定モジュールと、表示モジュールと、変更モジュールと、供給モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取込部７２、記憶部７４、検索部７６、配置決定部７８、表示部８０、変更部８２および供給部８４としてそれぞれ機能させる。
【０１１０】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取込部７２、記憶部７４、検索部７６、配置決定部７８、表示部８０、変更部８２および供給部８４として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の支援装置２０が構築される。
【０１１１】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１１２】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【０１１３】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１１４】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１１５】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１１６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【０１１７】
【図１】図１は、本実施形態に係る試験システム１０を被試験デバイス３００とともに示す。
【図２】図２は、試験部１４の構成の一例を示す。
【図３】図３は、パターン発生器４２の構成の一例を示す。
【図４】図４は、試験シーケンスの一例を示す。
【図５】図５は、本実施形態に係る支援装置２０の機能構成を示す。
【図６】図６は、本実施形態に係る配置決定部７８の構成を示す。
【図７】図７は、本実施形態に係る支援装置２０における、パイプライン間の同期をとるための試験シーケンスの変更処理フローを示す。
【図８】図８は、当該支援装置２０によりパイプライン間の同期を取るために変更がされる試験命令列の一例を示す。
【図９】図９は、本実施形態に係る配置決定部７８の処理フローを示す。
【図１０】図１０は、本実施形態に係る命令決定部８６によるＪＥＣＨ命令の移動量の算出処理フローを示す。
【図１１】図１１は、本実施形態に係る命令決定部８６による不足ループ数の算出処理フローを示す。
【図１２】図１２は、図１１のステップＳ１３４において用いられる補正テーブルを示す。
【図１３】図１３は、本実施形態に係る命令挿入部８８および命令変更部９０による、配置決定処理の算出処理フローを示す。
【図１４】図１４は、命令挿入部８８および命令変更部９０による処理前の試験シーケンスの一例を示す。
【図１５】図１５は、図１４の（Ａ）に示される第１パイプラインにより実行される試験シーケンスに対する配置決定例を示す。
【図１６】図１６は、図１４の（Ｂ）に示される第２パイプラインにより実行される試験シーケンスに対する配置決定例を示す。
【図１７】図１７は、図１４に示された変更前の試験シーケンスを試験装置１２が実行した場合の、試験パターンのメモリ出力タイミング、および、試験パターンの最終段ＦＦ出力タイミングを示す。
【図１８】図１８は、ステップＳ１１１において算出されたＪＥＣＨ命令の移動量を示す。
【図１９】図１９は、図１４に示された試験シーケンスを変更した変更済試験シーケンスを試験装置１２が実行した場合の、試験パターンのメモリ出力タイミングおよび最終段ＦＦ出力タイミングを示す。
【図２０】図２０は、図１４に示された試験シーケンスを変更した変更済試験シーケンスの実行中に、試験装置１２がコンティニュー信号を受け取った場合の、試験パターンのメモリ出力タイミングおよび最終段ＦＦ出力タイミングを示す。
【図２１】図２１は、本実施形態の変形例に係る支援装置２０の構成を示す。
【図２２】本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【符号の説明】
【０１１８】
１０  試験システム
１２  試験装置
１４  試験部
１６  制御部
２０  支援装置
３０  試験モジュール
３２  同期化部
３４  スタート信号用ＦＦ回路
３６  コンティニュー信号用ＦＦ回路
４２  パターン発生器
４４  チャネル回路
５０  メインメモリ
５２  命令実行部
５４  パイプライン処理部
５６  レート生成部
６０  フリップフロップ
６２  処理部
７２  取込部
７４  記憶部
７６  検索部
７８  配置決定部
８０  表示部
８２  変更部
８４  供給部
８６  命令決定部
８８  命令挿入部
９０  命令変更部
９２  アンローリング部
３００  被試験デバイス
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2009250695.tif 000003
【図２】
2009250695.tif 000004
【図３】
2009250695.tif 000005
【図４】
2009250695.tif 000006
【図５】
2009250695.tif 000007
【図６】
2009250695.tif 000008
【図７】
2009250695.tif 000009
【図８】
2009250695.tif 000010
【図９】
2009250695.tif 000011
【図１０】
2009250695.tif 000012
【図１１】
2009250695.tif 000013
【図１２】
2009250695.tif 000014
【図１３】
2009250695.tif 000015
【図１４】
2009250695.tif 000016
【図１５】
2009250695.tif 000017
【図１６】
2009250695.tif 000018
【図１７】
2009250695.tif 000019
【図１８】
2009250695.tif 000020
【図１９】
2009250695.tif 000021
【図２０】
2009250695.tif 000022
【図２１】
2009250695.tif 000023
【図２２】
2009250695.tif 000024