IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社アドバンテストの特許一覧

<>
  • 特許-試験装置 図1
  • 特許-試験装置 図2
  • 特許-試験装置 図3
  • 特許-試験装置 図4
  • 特許-試験装置 図5
  • 特許-試験装置 図6
  • 特許-試験装置 図7
  • 特許-試験装置 図8
  • 特許-試験装置 図9
  • 特許-試験装置 図10
  • 特許-試験装置 図11
  • 特許-試験装置 図12
  • 特許-試験装置 図13
  • 特許-試験装置 図14
  • 特許-試験装置 図15
  • 特許-試験装置 図16
  • 特許-試験装置 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-13
(45)【発行日】2023-06-21
(54)【発明の名称】試験装置
(51)【国際特許分類】
   G01R 31/28 20060101AFI20230614BHJP
   G01R 31/3183 20060101ALI20230614BHJP
   G01R 31/26 20200101ALI20230614BHJP
【FI】
G01R31/28 M
G01R31/3183
G01R31/28 R
G01R31/28 Y
G01R31/26 G
【請求項の数】 6
(21)【出願番号】P 2019100391
(22)【出願日】2019-05-29
(65)【公開番号】P2020193900
(43)【公開日】2020-12-03
【審査請求日】2021-10-13
(73)【特許権者】
【識別番号】390005175
【氏名又は名称】株式会社アドバンテスト
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100133215
【弁理士】
【氏名又は名称】真家 大樹
(72)【発明者】
【氏名】豊田 直哉
(72)【発明者】
【氏名】秋田 康樹
【審査官】青木 洋平
(56)【参考文献】
【文献】特開2002-196051(JP,A)
【文献】特開2018-117400(JP,A)
【文献】特開2017-015477(JP,A)
【文献】特開2016-223828(JP,A)
【文献】特開2008-216030(JP,A)
【文献】特開2008-164563(JP,A)
【文献】特開2000-266811(JP,A)
【文献】特開2019-060792(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01R 31/28
G01R 31/26
(57)【特許請求の範囲】
【請求項1】
パターンプログラムを実行し、被試験デバイスにテストパターンを供給するとともに、前記テストパターンに応答して前記被試験デバイスから戻ってくる信号を測定する少なくともひとつの試験モジュールと、
前記被試験デバイスの電源電圧または電源電流である電気信号を所定のサンプリングレートでデジタル信号に変換するA/Dコンバータを含み、前記デジタル信号の列である波形データを取得する波形データ取得モジュールと、
記試験モジュールにパターンプログラムの実行開始を指示し、前記波形データ取得モジュールに対して、前記A/Dコンバータによるサンプリングの開始を指示するとともに、前記波形データ取得モジュールにおいて得られた前記波形データを、前記少なくともひとつの試験モジュールにおける前記パターンプログラムの進行と対応付けて収集する上位コントローラと、
を備えることを特徴とする試験装置。
【請求項2】
前記上位コントローラは、テストプランに含まれる複数の試験項目それぞれの開始時刻および/または終了時刻のタイムスタンプを記録することを特徴とする請求項1に記載の試験装置。
【請求項3】
前記波形データ取得モジュールは、
第1バンクおよび第2バンクと、
前記第1バンクおよび前記第2バンクの一方に前記デジタル信号を連続して書き込み、メモリフルになると前記上位コントローラにメモリフルであることを通知するとともに、書き込み先のメモリを他方に切り替えるメモリコントローラと、
を含むことを特徴とする請求項1または2に記載の試験装置。
【請求項4】
前記上位コントローラは、前記通知に応答して前記メモリフルである前記第1バンクおよび前記第2バンクの一方からデータを読み出すことを特徴とする請求項3に記載の試験装置。
【請求項5】
前記試験装置は、収集したデータおよびそれから得られるデータの少なくとも一方を、データサーバに送信可能に構成されることを特徴とする請求項1から4のいずれかに記載の試験装置。
【請求項6】
前記試験モジュールは、前記被試験デバイスから戻ってくる信号とその期待値との一致、不一致を判定し、
前記上位コントローラは、前記試験モジュールから、前記一致、不一致を示すパスフェイルのデータ列を含むデータログを収集し、前記パスフェイルのデータ列と前記波形データは、時間軸上で対応付けて保存されることを特徴とする請求項1から5のいずれかに記載の試験装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体試験装置に関する。
【背景技術】
【0002】
近年、さまざまな電子機器に利用される半導体デバイスの種類は、非常に多岐にわたっている。半導体デバイスとしては、(i)DRAM(Dynamic Random Access Memory)やフラッシュメモリなどのメモリデバイスや、(ii)CPU(Central Processing Unit)やMPU(Micro-Processing Unit)、マイクロコントローラなどのプロセッサ、あるいは(iii)デジタル/アナログ混載デバイス、SoC(System On Chip)などの多機能デバイスが例示される。これらの半導体デバイスを試験するために、半導体試験装置(以下、単に試験装置ともいう)が利用される。
【0003】
半導体デバイスの試験項目は、主としてファンクション試験、ACパラメトリック試験、DC(直流)特性試験(DC試験)に大別される。ファンクション試験では、DUT(被試験デバイス)が設計通りに正常に動作するか否かが判定され、不良箇所が特定される。ACパラメトリック試験は、タイミングパラメータや周波数測定の試験行われる。DC試験では、DUTのリーク電流測定、動作電流(電源電流)測定、耐圧などが測定される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
半導体デバイスに流れる電源電流は、半導体デバイスの動作と直結しているため、電源電流波形には、半導体デバイスの状態を解析する上で有益な情報が多く含まれている。電源電圧は、電源電流の変動に応じて変動するため、電源電圧波形にもデバイスの解析に有益な情報が含まれている。
【0005】
また、一般的に半導体試験装置では、試験項目とその実行の流れを装置に指示するため、テストプランと呼ばれるプログラムが使われる。テストプランは、量産を実施する前に、被試験デバイスに対し、破壊を引き起こすような異常電圧、電流が印加することが無いか、確認することがある。ところが、従来の半導体試験装置には、テストプランの実施と並行して、時間的な制約なく膨大な電源電圧などの波形データと取り込み続ける機能がなかった。したがってユーザは、その必要がある場合には、半導体試験装置とは別に、オシロスコープなどのハードウェアを追加し、半導体試験装置を走らせながら、それと並行して、電源電圧波形などを測定する必要があった。
【0006】
通常、テストプランは、いくつかの試験項目を含む。この場合、取り込んだ波形と、テストプランの試験項目を対応付けることで、被試験デバイスに関する多くの情報が得られることが期待される。しかしながらオシロスコープなどの外部のハードウェアを追加する場合、波形と試験項目の対応付けは容易ではない。
【0007】
本発明は係る課題に鑑みてされたものであり、そのある態様の例示的な目的のひとつは、デバイスの試験中に、試験の進行と対応付けて、電源電流や電源電圧などのアナログ信号の波形データを取得可能な試験装置の提供にある。
【課題を解決するための手段】
【0008】
本発明のある態様は、試験装置に関する。試験装置は、被試験デバイスを試験する少なくともひとつの試験モジュールと、被試験デバイスに関連する電気信号を所定のサンプリングレートでデジタル信号に変換し、デジタル信号の列である波形データを取得する波形データ取得モジュールと、少なくともひとつの試験モジュールおよび波形データ取得モジュールを制御するとともに、波形データ取得モジュールにおいて得られた波形データを、少なくともひとつの試験モジュールの動作状態と対応付けて収集する上位コントローラと、を備える。
【0009】
上位コントローラは、波形データ取得モジュールにより得られる波形データと、試験モジュールにおいて得られるパスフェイルのデータ列とを時間軸上で対応付けて取得してもよい。
【0010】
なお、以上の構成要素を任意に組み合わせたもの、あるいは本発明の表現を、方法、装置などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明のある態様によれば、デバイス試験中に、デバイス試験の進行と対応付けて、電源電流や電源電圧などのアナログ信号の波形データを取得できる。
【図面の簡単な説明】
【0012】
図1】実施の形態に係る試験装置のブロック図である。
図2】波形データ取得モジュールのブロック図である。
図3】メモリコントローラおよび第1メモリ、第2メモリの構成例を示すブロック図である。
図4】メモリアクセスの書き込みに関するタイムチャートである。
図5】データの読み出しに関するタイムチャートである。
図6】メモリのオーバーフローの検出を説明するタイムチャートである。
図7】上位コントローラおよび波形データ取得モジュールのブロック図である。
図8】上位コントローラと波形データ取得モジュールの間のデータアクセスを説明するシーケンス図である。
図9】直接割り込みのパケット生成に関するブロック図である。
図10図9のパケット生成部の動作を説明する図である。
図11】試験装置のブロック図である。
図12図11の試験装置の動作を説明するタイムチャートである。
図13】試験装置により得られる波形データと、ファンクション試験モジュールにおけるPG命令の対応関係の一例を示す図である。
図14】複数の試験項目と波形データの関係を示す図である。
図15】テストシステムのブロック図である。
図16図15のテストシステムのスペクトルデータの収集を説明する図である。
図17図15のテストシステムにおけるデータ収集を説明する図である。
【発明を実施するための形態】
【0013】
(実施の形態の概要)
本明細書に開示される一実施の形態は試験装置に関する。試験装置は、被試験デバイスを試験する少なくともひとつの試験モジュールと、被試験デバイスに関連する電気信号を所定のサンプリングレートでデジタル信号に変換し、デジタル信号の列である波形データを取得する波形データ取得モジュールと、少なくともひとつの試験モジュールおよび波形データ取得モジュールを制御するとともに、波形データ取得モジュールにおいて得られた波形データを、少なくともひとつの試験モジュールの動作状態と対応付けて収集する上位コントローラと、を備える。
【0014】
複数の試験項目を切り替えて実施する場合に、電気信号の波形の各部分が、複数の試験項目のいずれの部分において得られたものであるのかを知ることができる。
【0015】
波形データ取得モジュールは、第1バンクおよび第2バンクと、第1バンクおよび第2バンクの一方にデジタル信号を連続して書き込み、メモリフルになると上位コントローラにメモリフルであることを通知するとともに、書き込み先のメモリを他方に切り替えるメモリコントローラと、を含んでもよい。上位コントローラは、通知に応答してメモリフルである第1バンクおよび第2バンクの一方からデータを読み出してもよい。この波形データ取得モジュールによれば、2個のバンクに交互に波形データを格納することで、時間的な制約を受けずに波形データを取り込み続けることができる。
【0016】
試験装置は、収集したデータおよびそれから得られるデータの少なくとも一方を、データサーバに送信可能に構成されてもよい。これにより量産時に検査した多くの被試験デバイスについて得られた波形データやスペクトルデータを蓄積し、ビッグデータを生成できる。そしてビッグデータを活用することで、従来とは異なる不良解析、スクリーニングが可能となったり、設計、製造、試験工程の改善の知見を得ることが期待される。
【0017】
上位コントローラは、試験モジュールからパスフェイルのデータ列を含むデータログを収集してもよい。パスフェイルのデータ列と波形データは、時間軸上で対応付けて保存されてもよい。これにより、パスフェイルと電気信号の波形を関連づけて調べることができ、詳細な検証が可能となる。
【0018】
一実施の形態において、試験装置は、被試験デバイスに関連する電気信号を所定のサンプリングレートでデジタル信号に変換し、デジタル信号の列である波形データを取得する波形データ取得モジュールと、被試験デバイスを試験する試験モジュールと、波形データ取得モジュールおよび試験モジュールを制御するとともに、波形データ取得モジュールおよび試験モジュールにおいて得られたデータを収集する上位コントローラと、を備える。上位コントローラは、波形データ取得モジュールにより得られる波形データと、試験モジュールにおいて得られるパスフェイルのデータ列とを時間軸上で対応付けて取得する。
【0019】
電気信号は、被試験デバイスの電源電圧または電源電流であってもよい。
【0020】
(実施の形態)
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【0021】
(テストシステム全体について)
図1は、実施の形態に係る試験装置100のブロック図である。この試験装置100は、複数のDUT(被試験デバイス)2それぞれについて、ファンクション試験を実行しながら、それと並行してDUT2の電気的状態を示す電気信号の波形をキャプチャする。試験装置100がキャプチャするDUT2の電気信号の種類は特に限定されないが、たとえば電源電圧や電源電流などが例示される。
【0022】
一般的に、DUT2の試験は、サンプリングレートFsに比べて非常に長い時間を要する。試験装置100は、テストプランの開始から終了までの長い時間全体にわたり(あるいはその一部分について)、電気信号の波形を取り込み続ける機能を備える。以下、試験装置100がキャプチャする電源電圧や電源電流を、電源信号と総称する。
【0023】
試験装置100は、上位コントローラ110、バススイッチ120、複数のファンクション試験モジュール130_1~130_N、複数の波形データ取得モジュール140_1~140_Nを備える。
【0024】
上位コントローラ110は、試験装置100全体を統括的に制御するコントローラであり、後述するようにCPU(Central Processing Unit)、メモリ、CPUが実行するプログラムなどで構成される。ファンクション試験モジュール130_1~130_Mおよび波形データ取得モジュール140_1~140_Mは、バススイッチ120を介して上位コントローラ110と接続される。上位コントローラ110は、ファンクション試験モジュール130および波形データ取得モジュール140に対して、指令を与え、あるいはそれらからデータを読み出す。上位コントローラ110は、波形データ取得モジュール140が測定した複数チャンネル分の膨大なデータ(ビッグデータ)を収集する。
【0025】
複数のDUT2は、複数のグループGP1~GPMにわけられる。ファンクション試験モジュール130_i(i=1~M)と波形データ取得モジュール140_iはペアをなしており、共通のグループGPiに割り当てられる。ファンクション試験モジュール130_iは、たとえば、割り当てられたグループGPi内の複数のDUT2それぞれに対して、データ(テストパターン)を与え、データを読み出して、期待値と比較することにより、DUT2の良否を判定する。DUT2の種類は限定されないが、マイコン(Microcontroller)、メモリ、CPU(Central Processing Unit)などが例示される。
【0026】
波形データ取得モジュール140_iは、割り当てられたグループGP_i内の複数のDUT2それぞれの電源信号の波形をキャプチャする。波形データ取得モジュール140はそれぞれ、Nチャンネル(CH1~CHN)で構成される。1チャンネルは、1つのピンと対応付けられ、チャンネルごとに、1個の電気信号の波形をキャプチャすることができる。
【0027】
1個のDUT2について、電源電圧と電源電流を測定する場合、Nチャンネルの波形データ取得モジュール140によって、N/2個のDUT2が割り当てられる。N=96の場合、48個のDUT2の電源電圧と電源電流の波形が取得される。
【0028】
波形データ取得モジュール140に、試験開始から終了までにわたる電源信号の波形を完全に保存しようとすると、波形データ取得モジュール140に非常に大きな容量のメモリが必要となり、コストの観点から現実的ではない。そこで以下では、1個の波形データ取得モジュール140に搭載するメモリの容量を削減するためのアーキテクチャを説明する。
【0029】
(波形データ取得モジュール)
図2は、波形データ取得モジュール140のブロック図である。上述のように、波形データ取得モジュール140は、複数チャンネルCH1~CHNの信号波形をキャプチャ可能に構成される。
【0030】
波形データ取得モジュール140は、複数のチャンネルCH1~CHNに対応する複数のキャプチャユニット150_1~150_Nと、モジュールインタフェース180と、を備える。
【0031】
複数のキャプチャユニット150_1~150_Nは同様に構成される。キャプチャユニット150は、A/Dコンバータ152、信号処理部154、第1メモリ156A、第2メモリ156B、メモリコントローラ160を備える。信号処理部154およびメモリコントローラ160は、FPGA(Field Programmable Gate Array)で構成してもよい。この場合においてメモリ156A,156Bは、FPGAに内蔵されるSRAMであってもよい。
【0032】
A/Dコンバータ152は、所定のサンプリングレートで、キャプチャの対象である電源信号(アナログ信号)S1を、デジタル信号S2に変換する。サンプリングレートは、チャンネルごとに個別に設定可能である。
【0033】
信号処理部154は、必要に応じて、デジタル信号S2に対して信号処理を施す。信号処理の内容は特に限定されないが、たとえばキャリブレーション処理が例示される。信号処理部154における信号処理後のデジタルデータS3は、メモリコントローラ160に入力される。
【0034】
メモリコントローラ160には2個のメモリ156A,156Bが接続される。メモリ156A、156Bを、バンクA(BANKA),バンクB(BANKB)とも表記する。メモリ156A、156Bは、たとえば8kワード程度の安価なメモリを採用することができる。
【0035】
メモリコントローラ160は、2個のメモリ156A,156Bを時分割で交互に使用する。具体的にはデジタルデータS3を2個のメモリ156A,156Bの一方156#(#=A,B)に書き込んでいき、メモリ156#がフルになると、デジタルデータS3の書き込み先を他方のメモリに切り替える。またメモリコントローラ160は、一方のメモリ156#がフルになったことを示すフラグMEMORY_FULL_#(#=A,B)をアサートする。
【0036】
モジュールインタフェース180は、上位コントローラ110と複数のキャプチャユニット150_1~150_Nとのインタフェースである。
【0037】
モジュールインタフェース180は、複数のチャンネルCH1~CHNそれぞれにおけるフラグMEMORY_FULL_#(#=A,B)を監視し、どのチャンネルのメモリがフルになっているかを、上位コントローラ110に通知する。
【0038】
またモジュールインタフェース180は、キャプチャユニット150_1~150_Nにおいて発生するエラーを監視し、エラーの状態を上位コントローラ110に通知する。モジュールインタフェース180から上位コントローラ110への通知には後述の直接割り込みが使用される。
【0039】
上位コントローラ110は、モジュールインタフェース180からの通知によって、どのチャンネルにおいてメモリ156がフルになっているかを知ることができる。上位コントローラ110は、フルになっているチャンネルを指定し、モジュールインタフェース180にリード命令を発行する。
【0040】
本実施の形態において、1つのメモリ命令によって、任意の複数のチャンネルを同時に指定可能となっている。モジュールインタフェース180は、上位コントローラ110からリード命令を受けると、指定されたチャンネルに対して順番に、ローカルの読み出し命令LOCAL_READを与える。モジュールインタフェース180から、ローカルの読み出し命令LOCAL_READを受信したメモリコントローラ160は、フルになっているバンクからデータを読み出し、それを出力する。フルになっているバンクからのデータの読み出しが完了すると、そのバンクに関するメモリフルフラグMEMORY_FULL_#がネゲート(デアサート)される。
【0041】
上位コントローラ110が1回のリードで取得するデータは、波形データの1部分である。上位コントローラ110は、同じチャンネルの波形データの部分を繋ぎ合わせて、元の連続した波形データを復元する。
【0042】
波形データ取得モジュール140によれば、2個のメモリ156A,156Bに交互に波形データを格納することで、時間的な制約なく、膨大な波形データを取り込み続けることができる。またメモリフルとなるたびに、上位コントローラ110に通知を送信することで、上位コントローラ110にデータの読み出しを促すことができる。
【0043】
(メモリコントローラ)
図3は、メモリコントローラ160およびメモリ156A,156Bの構成例を示すブロック図である。この例において、メモリ156A,156Bは1ワード19ビットのデュアルポートメモリである。メモリ156A,156Bはそれぞれ8kワードの容量を有する。
【0044】
各メモリ156は、ポートaのアドレス入力address_a[12:0]、ポートaのデータ入力data_a[18:0]、ポートaのライトイネーブルwren_a、ポートbのアドレス入力address_b[12:0]、ポートbのデータ入力data_b[18:0]、ポートbのライトイネーブルwren_bを有する。
【0045】
メモリコントローラ160には、信号処理部154からのデジタルデータS3と、それと同期したライトイネーブル信号MEAS_MEMORY_WENが入力される。デジタルデータS3は、18ビットのデータCAL_DATA[17:0]である。ライトイネーブル信号MEAS_MEMORY_WENは、信号処理部154によって、CAL_DATA[17:0]が生成されるたびにアサートされる。
【0046】
またメモリコントローラ160には、測定アドレスMEAS_ADDRESS[28:0]が入力される。測定アドレスMEAS_ADDRESS[28:0]は、測定開始からのサンプリング回数を示してもよい。
【0047】
またメモリコントローラ160には、信号処理部154からのエラー信号OVER,OVR_STBYが入力される。エラー信号OVERは、信号処理部154での演算中にオーバーフローが発生したこと、あるいは測定データにオーバーフローがあることを示すフラグである。またエラー信号OVR_STYBは、A/Dコンバータ152による測定中にオーバーフローが発生したことを示すフラグである。
【0048】
メモリコントローラ160は、メモリへのデータの書き込みに関して、ライトエンコーダ162、ライトセレクタ164、ライトカウンタ166、ステートマシン168を備える。
【0049】
ライトエンコーダ162は、データCAL_DATA[17:0]、エラー信号OVER,OVR_STBYを受け、メモリ156A,156Bに書き込むべき19ビットのデータmem_data[18:0]を生成する。エラーが発生していないとき、データmem_data[18:0]は、元のデータCAL_DATA[17:0]またはそれを加工したデータを含んでおり、エラーが発生しているとき、データmem_data[18:0]は所定のコードを含む。
【0050】
ライトセレクタ164は、測定アドレスMEAS_ADDRESS[28:0]と、測定メモリライトイネーブル信号MEAS_MEMORY_WENを受ける。MEAS_ADDRESS[28:0]は、イネーブル信号MEAS_MEMORY_WENのアサートごとにインクリメントされる。
【0051】
ライトセレクタ164は、測定アドレスMEAS_ADDRESS[28:0]の下位14ビット目MEAS_ADDRESS[13]にもとづいて、書き込み先のメモリ(156A,156B)を選択する。具体的には、MEAS_ADDRESS[13]が0のとき、メモリ156Aが選択され、1のときメモリ156Bが選択される。ライトセレクタ164は、選択したメモリ156#のアドレス入力address_#[12:0]に、測定アドレスMEAS_ADDRESS[28:0]の下位13ビットMEAS_ADDRESS[13:0]を供給し、選択したメモリ156#のライトイネーブルwren_#に、ライトイネーブル信号MEAS_MEMORY_WENを供給する。
【0052】
これにより、新たな測定データCAL_DATAが生成されるたびに、それが適切なメモリ(バンク)に書き込まれていく。
【0053】
ライトカウンタ166は、ライトイネーブル信号MEAS_MEMORY_WENを監視し、書き込み回数をカウントする。このカウント値はステートマシン168に供給される。
【0054】
ステートマシン168は、現在の書き込み先である一方のメモリ156#がフルになると、そのメモリがフルであることを示すフラグMEMORY_FULL_#をアサートする。
【0055】
以上がメモリコントローラ160の書き込みに関する構成である。続いて読み出しに関する構成を説明する。メモリコントローラ160は、データの読み出しに関して、命令デコーダ170、リードカウンタ172、出力セレクタ174を備える。
【0056】
命令デコーダ170は、モジュールインタフェース180からの制御信号(命令)を受け、それをデコードする。命令デコーダ170は、ローカルの読み出し命令LOCAL_READを受けると、フルになっている書き込み完了後のメモリ156#から、データを読み出す。リードカウンタ172は、読み出した回数をカウントする。リードカウンタ172のカウント値は、メモリ156#のアドレス信号MW:ADC_MEMORY_ADDRESS[12:0]として、メモリ156#のポートbのアドレス入力address_b[12:0]に供給される。これにより、メモリ156#の先頭のアドレスから最後のアドレスに向かって、1ワードずつデータが読み出されていく。出力セレクタ174は、メモリ156A,156Bのポートbの出力q_bのデータを受け、バンクセレクト信号BANL_SELに応じた一方を選択する。バンクセレクト信号BANL_SELは、現在フルになっているメモリ(つまり読み出すべきバンク)を指定するフラグであり、0のとき、メモリ156Aが選択され、1のとき、メモリ156Bが選択される。
【0057】
またリードカウンタ172のカウント値は、ステートマシン168に供給される。ステートマシン168は、リードカウンタ172のカウント値を参照し、メモリ156#のすべてのアドレスからデータが読み出されると、フラグMEMORY_FULL_#をネゲートする。フラグMEMORY_FULL_#がネゲートされると、BANK_SELをトグルし、上位コントローラ110がデータを読み出すべきメモリを入れ替える。
【0058】
ステートマシン168は、2つのフラグMEMORY_FULL_A,MEMORY_FULL_Bを監視し、両方が同時にアサートされると、メモリの読み出しに失敗したことを示すフラグMEMORY_OVER_FLOWをアサートする。フラグMEMORY_OVER_FLOWは、一方のバンクがフルの状態で、次のバンクもフルになったことを示す。これは、元のバンクに新たなデータが上書きされてデータが破壊されていることを示すエラー信号である。
【0059】
続いてメモリアクセスの動作を説明する。図4は、メモリアクセスの書き込みに関するタイムチャートである。BANKの番号は、切り替え毎に1ずつインクリメントしており、奇数のバンク番号は、メモリ156Aが書き込み先であることを示し、偶数のバンク番号は、メモリ156Bが書き込み先であることを示す。
【0060】
測定アドレスMEAS_ADDRESS[28:0]は、1ずつインクリメントする。測定アドレスの値が0x0~0x1FFFの間は、メモリ156Aにデータが書き込まれ、測定アドレスの値が0x2000~0x3FFFの間は、メモリ156Bにデータが書き込まれ、測定アドレスの値が0x4000~0x5FFFの間は、メモリ156Aにデータが書き込まれ、測定アドレスの値が0x6000~0x7FFFの間は、メモリ156Bにデータが書き込まれ、測定アドレスの値が0x8000~0x9FFFの間は、メモリ156Aにデータが書き込まれる。
【0061】
フラグMEMORY_FULL_Aは、メモリ156Aのすべてのアドレス0x0~0x1FFFへのデータ書き込みが完了するとアサートされる。また上位コントローラ110によってすべてのアドレスのデータ読み出しが完了するとネゲートされる。この動作が、2つのメモリ156A,156Bで交互に繰り返される。
【0062】
図5は、データの読み出しに関するタイムチャートである。フラグMEMORY_FULL_Aがアサートされると、上位コントローラ110に通知される。MEMORY_FULL_Aのアサートから、次のMEMORY_FULL_Bのアサートまでの間が、メモリ156Aに対するデータ読み出し期間となり、この期間の間に、上位コントローラ110は、リード命令を発生し、メモリ156Aからすべてのデータを読み出さなければならない。
【0063】
上位コントローラ110が発生したリード命令に応答して、メモリ156Aのリードアクセスが発生し、8192回すなわち全アドレス0x0~0x1FFFの読み出しが完了すると、フラグMEMORY_FULL_Aはネゲートされる。この動作が、2つのメモリ156A,156Bで交互に繰り返される。
【0064】
図6は、メモリのオーバーフローの検出を説明するタイムチャートである。この例では、メモリ156A(BANK1)への書き込みが完了し、フラグMEMORY_FULL_Aがアサートされる。その後、メモリ156B(BANK2)への書き込みが完了し、フラグMEMORY_FULL_Bがアサートされるまでが、BANK1に対するデータ読み出し期間となる。読み出し期間の間に発生したリード回数が8192回に満たないとき、すなわち読み出し期間の間に、フラグMEMORY_FULL_Aがネゲートされないと、オーバーフローを示すフラグMEMORY_OVER_FLOWがアサートされる。
【0065】
(バスインタフェースについて)
以上がローカルのメモリアクセスに関する説明である。続いて、波形データ取得モジュール140と上位コントローラ110との間のインタフェースについて説明する。
【0066】
図7は、上位コントローラ110および波形データ取得モジュール140のブロック図である。上位コントローラ110は、CPU112、バスインタフェース114、メモリ118を備える。バスインタフェース114は、PCI Express(登録商標)カードなどであり、DMA(Direct Memory Access)コントローラ116を有する。DMAコントローラ116は、CPU112からのメモリアクセス命令にもとづいて、波形データ取得モジュール140にアクセスし、読み出したデータをメモリ118に格納する(バースト伝送)。
【0067】
モジュールインタフェース180は、複数のチャンネルCH1~CHNのうち、どのチャンネルのメモリがフルになっているかをバスインタフェース114を経由してCPU112に通知する。たとえば、CPU112は、複数のチャンネルCH1~CHNをいくつかのセットに分類して管理する。そして、同じセットに含まれるチャンネルのメモリがすべてフルになったことを検出すると、そのセットに含まれるすべてのチャンネルのメモリを対象とするリード命令(バースト伝送命令)を発生する。このリード命令に応答して、DMAコントローラ116は、モジュールインタフェース180に対して、リード命令を送信する。
【0068】
モジュールインタフェース180はシーケンサ182を含む。シーケンサ182は、DMAコントローラ116からのリード命令READが指定する複数のチャンネルのキャプチャユニット150に対して、順にローカルのリード命令LOCAL_READを発生する。たとえば、DMAコントローラ116からのリード命令が、CH1~CH4を指定したリード命令である場合、シーケンサ182は、CH1~CH4に対して、順にローカルのリード命令を発生する。その結果、チャンネルごとのデータが順にバスインタフェース114に送信される。DMAコントローラ116は、各チャンネルのデータを、メモリ118の対応するアドレスに格納する。
【0069】
従来のバースト伝送では、複数のチャンネルにまたがったデータ伝送は不可能であったが、モジュールインタフェース180にシーケンサ182を実装することで、複数のチャンネルを指定したバースト伝送が可能となる。
【0070】
図8は、上位コントローラ110と波形データ取得モジュール140の間のデータアクセスを説明するシーケンス図である。はじめにCPU112によって、アクセスすべき波形データ取得モジュール140の番号と、チャンネル番号が指定される。アクセスすべき波形データ取得モジュール140の番号に応じて、バススイッチ120が切り替えられる。またチャンネル番号が波形データ取得モジュール140に送信される(S100)。
【0071】
続いてDMAコントローラ116に起動指示が与えられる(S102)。DMAコントローラ116は、モジュールインタフェース180に対してリード命令を出力する(S104)。モジュールインタフェース180のシーケンサ182は、指定されたチャンネル(この例では全チャンネルCH1~CHN)に対して順に、ローカルのリード命令を発行する(S106)。各チャンネルのリード命令に応答して、データが上位コントローラ110のメモリ118に対してバースト伝送される(S108)。そして全チャンネルの伝送が完了すると、DMA終了の割り込みがバスインタフェース114からCPU112に出力される(S110)。
【0072】
(直接割り込み)
続いて、波形データ取得モジュール140から上位コントローラ110への各種通知について説明する。波形データ取得モジュール140は、割り込みによって、メモリフルの通知、メモリのオーバーフローの通知および、波形測定が完了したことの通知を、上位コントローラ110に送信する。この割り込みには、レガシーの割り込み線を用いた通知を用いてもよいが、本実施の形態では、それとは異なる割り込み(以下、直接割り込みという)によって、これらの情報を上位コントローラ110に送信する。
【0073】
直接割り込みでは、メモリフルに関する情報、メモリオーバーフローに関する情報、波形測定完了の通知が、パケット化され、上位コントローラ110に送信される。
【0074】
図9は、直接割り込みのパケット生成に関するブロック図である。複数のチャンネルCH1~CHNは、12チャンネルごとに分割される。12チャンネルのセットを、1スプリットと称する。モジュールインタフェース180は、1スプリットごとに、割り込みパケットを生成するパケット生成部184を組む。チャンネル数Nが96チャンネルの場合、96/12=8個のパケット生成部184が設けられる。
【0075】
パケット生成部184には、12チャンネル分のメモリフルフラグMEMORY_FULL_A,Bをまとめた割り込みデータMEMFUL_INT[11:0]、12チャンネル分の波形測定完了フラグADC_DONEをまとめた割り込みデータADDONE_INT[11:0]、12チャンネル分のメモリオーバーフローフラグMEMORY_OVER_FLOWをまとめた割り込みデータMEMOFL_INT[11:0]が入力される。MEMFUL_INT[i]は、チャンネルCHiにおける2個のフラグMEMORY_FULL_A,MEMORY_FULL_Bの論理和であってもよい。
【0076】
パケット生成部184は、パケットデータSEND_TCM_STATUSと、ステータスフラグSBDTCM2Oを生成する。ステータスフラグSBDTCM2Oは、割り込みデータMEMFUL_INT[11:0]、ADDONE_INT[11:0]、MEMOFL_INT[11:0]のいずれかのビットに1が立つと、アサートされる。
【0077】
上位コントローラ110のメモリ118には、割り込み専用のアドレスが用意されている。モジュールインタフェース180は、パケットデータSEND_TCM_STATUSを、その割り込み専用のアドレスに書き込む。上位コントローラ110のCPU112は、割り込み専用のアドレスを監視しており、割り込みを検出すると同時に、割り込み要因などを取得する。
【0078】
割り込みデータMEMFUL_INT[11:0]、ADDONE_INT[11:0]、MEMOFL_INT[11:0]は全部で36ビット存在する。この36ビットをパケット化する際に、全ビットを含めると、パケットのサイズが大きくなり、パケットデータを複数に分割して送信する必要がある。そこでパケット生成部184は、メモリオーバーフローを示す割り込みデータMEMOFL_INT[11:0]については、全ビットをOR演算して1ビットにまとめて、パケットデータSEND_TCM_STATUSに含めることとした。
【0079】
一方、割り込みパケットの送信ごとに、割り込みデータMEMFUL_INT[11:0],ADDONE_INT[11:0]を交互に、パケットデータSEND_TCM_STATUSに含めて送信することとしている。パケットデータSEND_TCM_STATUSは、現在、MEMFUL_INT[11:0],ADDONE_INT[11:0]のいずれを含んでいるかを示すフラグOUTPUT_STATUSを含む。1ビットのMEMOFLは、MEMFUL_INT[11:0]とともに送信される。
【0080】
ステータスラッチ信号status_latchが発生する度に、出力ステータスOUTPUT_STATUSがトグルする。OUTPUT_STATUS=0は、MEMFUL_INTを通知する状態を、OUTPUT_STATUS=1は、ADDONE_INTを通知する状態を表す。
【0081】
MEMORY_FULL_CLR信号は、OUTPUT_STATUSのネガエッジごとにアサートされる。MEMORY_FULL_CLR信号のアサートに応答して、フリップフロップFF2の値(MEMORY_FULLのステータス)が確定し、後段のマルチプレクサMUXに出力される。またMEMORY_FULL_CLR信号のアサートに応答してフリップフロップFF1の値が0となり、MEMORY_FULLに関連する割り込み要因がクリアされる。
【0082】
MEMORY_FULL_CLR信号は、フリップフロップFF5,FF6にも供給される。MEMORY_FULL_CLR信号のアサートに応答して、フリップフロップFF6の値(MEMORY_OVER_FLOWのステータス)が確定し、後段のマルチプレクサMUXに出力される。またMEMORY_FULL_CLR信号のアサートに応答してフリップフロップFF5の値が0となり、MEMORY_OVER_FLOWに関連する割り込み要因がクリアされる。
【0083】
ADC_DONE_CLR信号は、OUTPUT_STATUSのポジエッジごとにアサートされる。ADC_DONE_CLR信号のアサートに応答して、フリップフロップFF4の値(ADC_DONEのステータス)が確定し、後段のマルチプレクサMUXに出力される。またADC_DONE_CLR信号のアサートに応答して、フリップフロップFF3の値がゼロとなり、ADC_DONEに関連する割り込み要因がクリアされる。
【0084】
図10は、図9のパケット生成部184の動作を説明する図である。時刻tに、MEMFUL_INT[11:0]のいずれかのビットに1が立つと、対応するチャンネルのフリップフロップFF1に1が格納され、SBDTCM2O信号がハイとなる。続いて、SEND_TCM_STATUSパケットを送信するためのバスコマンドが生成され、status_latch信号がアサートされる。status_latch信号のネガエッジによって、出力ステータスがMEMORY_FULLに切り替わり、MEMORY_FULL_CLR信号がアサートされ、フリップフロップFF1(およびFF5)の値が0となり、MEMORY_FULLの割り込み要因がクリアされる。またフリップフロップFF2の出力が、フリップフロップFF5の出力とともにマルチプレクサMUXに入力され、SEND_TCM_STATUSパケットに格納される。
【0085】
時刻tに、再びMEMFUL_INT[11:0]のいずれかのビットに1が立つと、対応するチャンネルのフリップフロップFF1に1が格納され、SBDTCM2O信号がハイとなる。続いて、SEND_TCM_STATUSパケットを送信するためのバスコマンドが生成され、status_latch信号がアサートされる。status_latch信号のネガエッジによって、出力ステータスがADC_DONEに切り替わり、ADC_DONE_CLR信号がアサートされる。ADC_DONE_CLR信号がアサートされると、FF4の出力がマルチプレクサMUXに入力され、SEND_TCM_STATUSパケットに格納され、送信される。ただし、このパケットには、送信すべき割り込み要因であるMEMORY_FULLに関する情報は含まれない。
【0086】
ADC_DONE_CLR信号がアサートでは、フリップフロップFF1の値(すなわちMEMORY_FULLの割り込み要因)はクリアされないため、SBDTCM2O信号はハイを維持する。したがって、ふたたび、バスコマンドSEND_TCM_STATUSが生成され、status_latch信号がアサートされる。status_latch信号のネガエッジによって、出力ステータスがMEMORY_FULLに切り替わり、MEMORY_FULL信号がアサートされる。これにより、MEMORY_FULLに関する情報を含むパケットSEND_TCM_STATUSが生成され、送信される。またフリップフロップFF1がクリアされ、SBDTCM2O信号がローとなる。
【0087】
時刻tに、MEMORY_FULL,MEMORY_OVER_FLOW,ADC_DONEのすべての割り込み要因が発生し、SBDTCM2O信号はハイとなる。それに続くバスコマンドSEND_TCM_STによって、ADC_DONEに関する割り込みが、上位コントローラ110に送信され、割り込み要因がクリアされる。
【0088】
時刻tに、ADC_DONE[11:0]のいずれかのビットに1が立つと、対応するチャンネルのフリップフロップFF3に1が格納される。
【0089】
続くバスコマンドSEND_TCM_STによって、MEMORY_FULLに関する割り込みが上位コントローラ110に送信され、割り込み要因がクリアされる。
【0090】
この状態では、時刻tに発生した割り込み要因がまだ残っているため、SBDTCM2O信号はハイを維持している。そして次のバスコマンドSEND_TCM_STによって、ADC_DONEに関する割り込みが上位コントローラ110に送信され、割り込み要因がクリアされる。
【0091】
以上が直接割り込みの説明である。続いて直接割り込みの利点を説明する。従来の割り込みでは、CPUは、割り込み信号を監視し、割り込みを検出すると、波形データ取得モジュール140にアクセスして割り込み要因を読み出す必要があったため、オーバーヘッドが大きかった。
【0092】
これに対して本実施の形態では、直接割り込みを受けた上位コントローラ110のCPU112は、パケットSEND_TCM_STATUSの中身を見ることにより、どのチャンネルでどのような割り込み要因が発生したかを直接知ることができる。したがって従来の割り込みよりも高速な通知が可能となる。
【0093】
(エラー検出)
図7を参照する。バスインタフェース114は、波形データ取得モジュール140にリード命令を発行してから所定時間内にデータを受け取れない場合、処理を打ち切り、CPU112にエラー割り込みをかける。
【0094】
モジュールインタフェース180は、ローカルのリード命令を発行した後に、所定の時間内にキャプチャユニット150からデータが出力されない場合、処理を打ち切る。モジュールインタフェース180が処理を打ち切ると、上位コントローラ110のバスインタフェース114にもデータは伝送されなくなる。結果として、バスインタフェース114が所定時間内にデータを受け取れなくなるため、CPU112にエラー割り込みがかかる。
【0095】
続いて、パターンプログラムの進行と対応付けて、電源電流や電源電圧などのアナログ信号の波形データを取得するためのアーキテクチャを説明する。
【0096】
図11は、試験装置100のブロック図である。上述のように、試験装置100は多チャンネルで構成されるが、図11では簡略化して1チャンネル分の構成のみを示す。
【0097】
試験装置100は、上位コントローラ110、波形データ取得モジュール140、ファンクション試験モジュール130を備える。
【0098】
波形データ取得モジュール140は、A/Dコンバータ152、信号処理部154、第1メモリユニット155、モジュールインタフェース180を備える。A/Dコンバータ152は、DUT2に関連する電気信号S1(たとえば電源電圧や電源電流)を、所定のサンプリングレートFsでデジタル信号S2に変換するデジタイザである。
【0099】
信号処理部154は、必要に応じて、A/Dコンバータ152の出力であるデジタル信号S2に対して信号処理を施す。信号処理の内容は特に限定されないが、たとえばキャリブレーション処理が例示される。
【0100】
第1メモリユニット155は、A/Dコンバータ152により得られるデジタル信号S2にもとづくデジタルデータS3の列である波形データを格納する。第1メモリユニット155は、図2で説明したアーキテクチャで実装してもよく、メモリコントローラ160および2バンクのメモリ156A,156Bを含みうる。
【0101】
モジュールインタフェース180は、上位コントローラ110とのインタフェースである。
【0102】
ファンクション試験モジュール130は、試験ユニット132、第2メモリユニット134、モジュールインタフェース136を含む。試験ユニット132は、DUT2のためのパターンプログラムを実行する。パターンプログラムは、DUT2に与えるべき信号(1/0)の組み合わせ(テストパターンあるいはテストベクトル)と、与えた信号に応答してDUT2から戻ってくるべき信号(期待値)の組み合わせを記述するPG命令を、実行順にリスト化したものである。パターンプログラムは、その他、条件分岐、待機、トリガーを発生するためのPG命令などを組み合わせて構成される。
【0103】
試験ユニット132の構成は特に限定されるものではないが、たとえば、パターンプログラムに記述されるテストパターンをDUT2に供給するドライバDRと、与えたテストパターンに応答してDUT2からの出力される信号を受信するレシーバ、レシーバが受信した信号をその期待値と比較し、一致、不一致を判定するコンパレータ、などを含む。
【0104】
第2メモリユニット134は、試験ユニット132によって得られた判定結果を記録する。モジュールインタフェース136は、上位コントローラ110とのインタフェースである。
【0105】
上位コントローラ110は、波形データ取得モジュール140およびファンクション試験モジュール130を制御するとともに、波形データ取得モジュール140およびファンクション試験モジュール130において得られたデータを収集する。
【0106】
図12は、図11の試験装置100の動作を説明するタイムチャートである。上位コントローラ110は、波形データ取得モジュール140にサンプリングの開始を指示する(S100)とともに、その時刻tのタイムスタンプを保持する。この時刻tは、上位コントローラ110の時間管理機能にもとづいて生成される。
【0107】
波形データ取得モジュール140のモジュールインタフェース180がサンプリング開始の指示(S100)を受けると、第1メモリユニット155は、サンプリングの開始の時刻t’のタイムスタンプを記録する。この時刻t’は、上位コントローラ110から送信されるわけではなく、波形データ取得モジュール140のローカルの時間管理機能にもとづいて生成される。
【0108】
また上位コントローラ110は、ファンクション試験モジュール130に対して、パターンプログラムの実行開始を指示(S102)するとともにその時刻tのタイムスタンプを保持する。ファンクション試験モジュール130のモジュールインタフェース136が、パターンプログラムの実行開始の指示(S102)を受けると、第2メモリユニット134は、パターンプログラムの実行開始の時刻tのタイムスタンプを記録する。この時刻tは、ファンクション試験モジュール130のローカルの時間管理機能にもとづいて生成される。
【0109】
パターンプログラム中に、条件分岐や、待機が含まれない場合は、パターンプログラムの開始時刻だけ記録しておけば、それに続く各命令の実行時刻は推定することができる。ところが、実際のパターンプログラムは、条件分岐や、ループ、待機を含む場合が多く、その場合には、第2メモリユニット134は、時刻tに加えて、パターンプログラムに含まれる所定のアドレス…の命令(図12においてハッチングを付す)の実行時刻t3_1,t3_1…のタイムスタンプを記録する。これによりパターンプログラムの進行と、波形を対応付けることができる。
【0110】
タイムスタンプを残すべき命令は、ユーザが指定可能である。パターンプログラムに、指定したアドレスの実行時刻においてタイムスタンプを残すための命令を追加してもよい。あるいは、パターンプログラムとは別に、タイムスタンプをとるべき箇所(パターンプログラムのアドレス)を指定するリストをユーザが用意して、ファンクション試験モジュール130がそのリストを読んで、タイムスタンプをとるようにしてもよい。
【0111】
また第2メモリユニット134は、所定のアドレスADR,ADR…の命令の実行ごとに、そのとき、あるいはその直前のDUT2への入力値を記録してもよい。DUT2への入力値は、たとえばテストベクトルやテストパターンであってもよいし、その他の制御パラメータであってもよい。
【0112】
また第2メモリユニット134は、所定のイベントEVT,EVT…ごとに、各イベントEVT(i=1,2…)の種類を示す識別子IDとその発生時刻のタイムスタンプを記録してもよい。イベントEVTは、ファンクション試験モジュール130による異常検知などであってもよい。
【0113】
上位コントローラ110は、適切なタイミングで第1メモリユニット155にアクセスし、波形データと開始時刻t’を読み出す。
【0114】
また上位コントローラ110は、適切なタイミングで第2メモリユニット134にアクセスし、試験ユニット132が生成したデータと、開始時刻t’や、所定命令の実行時刻tのタイムスタンプを読み出す。
【0115】
A/Dコンバータ152のサンプリングレートFは既知であり、波形データ取得モジュール140のローカルの時間軸での波形データのj番目のデータの時刻t’は、
’=t’+j×1/F
で表される。
【0116】
上位コントローラ110は、波形データ取得モジュールのローカル時刻t’を、上位コントローラの時間軸の時刻tにアラインする。このとき、上位コントローラ110の時間軸での波形データのj番目のデータの時刻tは、
=t+j×1/F
に修正される。
またファンクション試験モジュールのローカル時刻t’を上位コントローラの時刻tにアラインすることで、波形データと、ファンクション試験の進行を対応付けることができる。
【0117】
図13は、試験装置100により得られる電源電流IDDの波形データと、パターンプログラムのPG命令の対応関係の一例を示す図である。
【0118】
いま、DUT2の状態を、切り替えながら、電源電流IDDを測定するケースを考える。時刻t’はパターンプログラムの実行開始時刻である。パターンプログラムは先頭のアドレスから順に実行されていく。そして、状態設定のためのPG命令群300が実行されることにより、DUT2の内部状態が第1状態となる。PG命令群300の実行が完了すると、測定のトリガー命令302が実行される。このトリガー命令302は、本来、電源電流IDDの測定開始(取り込み開始)を示すが、本実施の形態では、トリガー命令302より前に、電源電流IDDは連続的にサンプリングされていることに留意されたい。そして、測定の完了まで待機を指示する待機命令304が実行される。待機命令304の実行が完了すると、第1状態での電源電流IDDの測定が完了する。
【0119】
続いて、DUT2を第2状態に設定するためのPG命令群306が実行され、DUT2の内部状態が切り替えられる。命令群306の実行が完了すると、測定のトリガー命令308が実行され、待機命令310が実行される。待機命令310の実行が完了すると、第2状態での電源電流IDDの測定が完了する。
【0120】
このような試験を行う際に、たとえば、トリガ命令302,308の実行時刻t3_1,t3_3を示すタイムスタンプを残してもよい。このタイムスタンプを後からチェックすることにより、DUTの状態が安定していたか、電流を取り込むべきタイミングとして適切であったか、を確認できる。具体的には、実行時刻t3_1、t3_3のタイムスタンプにもとづいて、それらに対応する時刻における電源電流IDDの波形をチェックできる。この例では、タイムスタンプt3_1における電源電流IDDは安定しており、したがってDUTの状態が安定していることが確認できる。一方、タイムスタンプt3_3において電源電流IDDは過渡的に遷移しており、したがってDUTの状態が安定しておらず、電源電流IDDの測定タイミングとして不適切であったことを確認できる。
【0121】
また時刻t3_2のタイムスタンプを記録しておくと、トリガー命令302に対して、待機命令の待ち時間が適切であったかを確認することができる。この情報は、待機命令304の設定時間を変更するような修正をパターンプログラムを施す際にも役立つ。
【0122】
なお図13の波形は一例であり、実行されるパターンプログラムの中身や、タイムスタンプを残すべき命令は、ユーザが自由に決めることができる。
【0123】
試験装置100によれば、図13に示すように、波形データと、ファンクション試験モジュール130における命令(イベント)とを時間軸上で対応付けることが可能となり、パターンプログラムのどの工程において、監視対象の電気信号がどのように振る舞うのかを知ることができる。
【0124】
ここまでの説明では、DC試験においてパターンプログラムと同期した波形データの取得を説明したが、DC試験以外の試験、たとえばACパラメトリック試験やファンクション試験、マージン試験についても、それらにおいて実行されるパターンプログラムと同期して、波形データを取得することができる。
【0125】
たとえば、波形データ取得モジュール140は、ACパラメトリック試験やファンクション試験に必要な機能ブロックやIPをさらに含んでもよく、この場合、波形データ取得モジュール140は、それぞれの試験ユニットを兼ねることとなる。
【0126】
図13には、1個のDUTについて得られる波形データのみが示されるが、実施の形態に係る試験装置100は、複数のDUTを同時に測定可能である。一般に、複数のDUTを同時測定する際には、DUTごとのファンクション試験モジュール130は独立に異なるタイミングで動作するところ、試験装置100によれば、多数のDUTそれぞれの波形データを、それぞれを制御するパターンプログラムの進行と対応付けて取得することができる。
【0127】
図14は、複数の試験項目と、波形データの関係を示す図である。この例では、テストプランにしたがってコンタクト試験S200、入力電流試験S201、ファンクション試験S202、Iddq試験S206、Tpd(入出力遅延時間)試験208、周波数測定試験210、が順に実行され、試験が終了する。
【0128】
ファンクション試験S202は、複数の試験項目VCC(typ)、VCC(min)を含む。たとえばVCC(typ)は、電源電圧をスペックシートの典型値に設定して行う試験を、VCC(Min)は電源電圧を動作保証する最低電圧に設定して行う試験を表している。
【0129】
試験開始のトリガーが、上位コントローラ110から波形データ取得モジュール140に与えられ、そのトリガーとともに波形データ取得モジュール140は電源電流Iddの波形取り込みをスタートし、タイムスタンプt’を記録する。
【0130】
上位コントローラ110は、テストプランを実行し、ファンクション試験モジュール130や波形データ取得モジュール140に、必要なトリガや制御信号を与える。上位コントローラ110は、各試験S200,S201,S202,S204,S206,S208,S210の開始時刻や終了時刻を示すタイムスタンプを保持することができる。
【0131】
第1メモリユニット155は、波形取り込みの開始の時刻t1’のスタンプに加えて、波形データ取得モジュール140の内部で発生するイベントの発生時刻を示すタイムスタンプを記録してもよい。
【0132】
図14には、1個のDUTについて得られる波形データのみが示されるが、実施の形態に係る試験装置100は、複数のDUTを同時に測定可能である。一般に、複数のDUTを同時測定する際には、ファンクション試験モジュール130は独立に異なるタイミングで動作するところ、試験装置100によれば、多数のDUTそれぞれの波形データを、それぞれのファンクション試験の工程(あるいはその他の試験の工程)と対応付けて取得することができる。
【0133】
図15は、テストシステムのブロック図である。テストシステム200は、複数(K個)のテストサイト210_1~210_Kと、システムコントローラ220と、データサーバ230を備える。
【0134】
テストサイト210はそれぞれ、図1の試験装置100に相当しており、複数のファンクション試験モジュール130、複数の波形データ取得モジュール140、複数のDC試験ユニット(DPU)190および上位コントローラ110を含んでいる。
【0135】
各テストサイト210は、テストプログラムにしたがって、ファンクション試験モジュール130やDPU190を利用して、ファンクション試験やDC試験など、複数の試験項目を実行する。また複数の試験項目を実行する間、波形データ取得モジュール140は、複数のDUTそれぞれの電源電流の波形を測定する。
【0136】
上述のように、各テストサイト210において上位コントローラ110は、複数の波形データ取得モジュール140それぞれのメモリ(バンク)から、複数のDUTの電源電流の波形データを読み出す。上述のように、波形データは、時間的な制約を受けずに長時間にわたり測定し続けることができるが、上位コントローラ110には、メモリ(バンク)の容量で規定される波形データの一部を単位として、データが集積される。
【0137】
上位コントローラ110は、波形データを読み出すたびに、必要な演算処理を施し、演算が完了すると、演算処理後のデータをシステムコントローラ220に送信する。その限りでないが、たとえば上位コントローラ110は、波形データをFFT(高速フーリエ変換)してスペクトルデータに変換し、スペクトルデータをシステムコントローラ220に送信してもよい。
【0138】
この動作が繰り返されて、各テストサイト210は、テスト開始からテスト終了に渡る全期間の電源電流を、すべてのDUT2について測定することができる。システムコントローラ220には、複数のテストサイト210_1~210_Kから、複数のDUTの電源電流の全テスト期間の電源電流の波形を得ることができる。
【0139】
図16は、図15のテストシステム200のスペクトルデータの収集を説明する図である。各DUTの電源電流Iddは、所定期間を単位として上位コントローラ110に送信される。所定単位の長さは、波形データ取得モジュール140のメモリ(バンク)がフルになるのに要する時間に対応付けられる。上位コントローラ110は、電源電流Iddの区間波形をそれぞれ、高速フーリエ変換によってスペクトルデータに変換する。上位コントローラ110は、FFT演算が完了すると、直ちに、電源電流Iddの区間波形のスペクトルデータを、システムコントローラ220に送信する。この動作を繰り返すことにより、システムコントローラ220には、全DUTについて、テスト開始から終了までの全区間に渡る電源電流Iddのスペクトルデータが集約される。
【0140】
上位コントローラ110は、スペクトルデータに加えて、あるいはそれに代えて、電源電流Iddの波形そのものをシステムコントローラ220に送信してもよい。
【0141】
図15に戻る。各テストサイト210において、テストプランを実行する間、試験の種類の切り替え、パラメータの変更をイベントして記録する。これらのイベントの発生時刻や、デバイスへの入力値は、上位コントローラ110が記録する。
【0142】
上位コントローラ110は、波形データ取得モジュール140により得られる波形データと、ファンクション試験モジュール130において得られるパスフェイルのデータ列とを、時間軸上で対応付けて取得する。パスフェイルのデータ列は、以下で説明するデータログに含めることができる。
【0143】
図17は、図15のテストシステム200におけるデータ収集を説明する図である。この例においてファンクション試験モジュール130は、複数の試験項目(zzz,yyy,zzz)を実施する。これらの試験項目は、図14のファンクション試験S202に含まれる、VCC(typ),VCC(Min)に対応する。
【0144】
上位コントローラ110は、各試験項目ごとに、それを記述するデータログを生成し、システムコントローラ220に送信する。データログには、試験項目の名称、そのID、使用したピンの番号、判定レンジ、パスフェイルの判定結果およびその試験項目を開始した時刻のタイムスタンプを含む。データログに含まれるタイムスタンプは、上位コントローラ110の時間軸に修正された値が用いられる。また上位コントローラ110は、波形データIddを上位コントローラ110の時間軸に修正する。これにより、波形データIddと、パスフェイルの時系列データとを、同じ時間軸上で対応付けることが可能となる。また、試験内容、結果と電気信号の波形を関連づけて調べることが可能となる。
【0145】
システムコントローラ220は、すべてのテストサイト210_1~210_Kにおいて試験が完了すると、蓄積した波形データやスペクトルデータおよびデータログを、データサーバ230に送信する。これによりデータサーバ230には、量産時に検査した多くの被試験デバイスについて得られた波形データやスペクトルデータが蓄積され、ビッグデータが生成される。こうして得られたビッグデータを活用することで、従来とは異なる不良解析、スクリーニングが可能となったり、設計、製造、試験工程の改善のための知見を得ることが期待される。
【0146】
実施の形態にもとづき本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【0147】
DUT 2
100 試験装置
110 上位コントローラ
112 CPU
114 バスインタフェース
116 DMAコントローラ
118 メモリ
120 バススイッチ
130 ファンクション試験モジュール
132 試験ユニット
134 第2メモリユニット
136 モジュールインタフェース
140 波形データ取得モジュール
150 キャプチャユニット
152 A/Dコンバータ
154 信号処理部
155 第1メモリユニット
156A,156B メモリ
160 メモリコントローラ
162 ライトエンコーダ
164 ライトセレクタ
166 ライトカウンタ
168 ステートマシン
170 命令デコーダ
172 リードカウンタ
174 出力セレクタ
180 モジュールインタフェース
182 シーケンサ
184 パケット生成部
200 テストシステム
210 テストサイト
220 システムコントローラ
230 データサーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17