JP4972244B2 - 低コストで使用が容易な自動テスト・システム用ソフトウェア - Google Patents
低コストで使用が容易な自動テスト・システム用ソフトウェア Download PDFInfo
- Publication number
- JP4972244B2 JP4972244B2 JP50287199A JP50287199A JP4972244B2 JP 4972244 B2 JP4972244 B2 JP 4972244B2 JP 50287199 A JP50287199 A JP 50287199A JP 50287199 A JP50287199 A JP 50287199A JP 4972244 B2 JP4972244 B2 JP 4972244B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- data
- spreadsheet
- program
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012360 testing method Methods 0.000 title claims description 269
- 239000004065 semiconductor Substances 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 38
- 230000014509 gene expression Effects 0.000 claims description 10
- 238000013479 data entry Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 description 51
- 230000018109 developmental process Effects 0.000 description 27
- 238000011161 development Methods 0.000 description 26
- 239000013598 vector Substances 0.000 description 25
- 238000004519 manufacturing process Methods 0.000 description 19
- 230000000007 visual effect Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000005259 measurement Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 239000000523 sample Substances 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 230000007547 defect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 101000969594 Homo sapiens Modulator of apoptosis 1 Proteins 0.000 description 3
- 102100021440 Modulator of apoptosis 1 Human genes 0.000 description 3
- 230000002950 deficient Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 101000979001 Homo sapiens Methionine aminopeptidase 2 Proteins 0.000 description 2
- 101000969087 Homo sapiens Microtubule-associated protein 2 Proteins 0.000 description 2
- 102100021118 Microtubule-associated protein 2 Human genes 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000001994 activation Methods 0.000 description 2
- 238000013502 data validation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 206010033546 Pallor Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31903—Tester hardware, i.e. output processing circuits tester configuration
- G01R31/31912—Tester/user interface
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Tests Of Electronic Circuits (AREA)
Description
自動テスト装置は、半導体の製造において広く用いられている。半導体は、その製造の間に少なくとも1回はテストがなされるのが一般的であり、時には、製造プロセスにおいて複数回のテストがなされることもある。すべての素子がテストされるのであるから、テスト速度は、半導体の経済的な製造にとって重要である。ゆっくりとテストを行うのでは、半導体素子を製造するのに必要となる高価な設備である装置を完全に用いないことになる。
現代の半導体素子は非常に複雑であり、多くの動作状態を有する。完全なテストを実行するには、これらの動作状態のそれぞれを確認してみなければならない。従って、自動テスト装置は、テスト・データを半導体デバイスに与え、多数の測定を製造過程において行うように設計されている。図1には、従来技術による自動テスト・システムが一般化された態様で示されている。完全で迅速なテストを行うには、自動テスト・システムは、テスタ(試験装置)本体112と、コンピュータ化されたワークステーション110と、操作デバイス(handling device)114とを含むのが一般的である。
コンピュータ・ワークステーション110は、操作デバイス114とテスタ本体112との両方を制御する。コンピュータ・ワークステーション110は、半導体デバイス(図示せず)をテスタ本体112上の多数のテスト・プローブ118と接触する位置に位置決めするように、操作デバイス114を制御する。多くの場合、テスタは、テスト・プローブ118を含む別個のテスト・ヘッドを含んでいる。しかし、そのような区別は、本発明には重要ではない。
ワークステーション110は、次に、テスト対象であるデバイスに対して一連のテストを実行するように、テスタ本体112を制御する。それぞれのテストは、制御信号がワークステーション110からテスタ本体112に送られるセットアップ部分を含むのが一般的である。制御信号は、通常、バス116を介して送られるデジタル値である。これらの制御信号は、テストに必要な測定を行うようにテスタ本体112内のハードウェアのコンフィギュレーションを定める。テスタ本体内部のハードウェアは、制御信号に従って、刺激を与え、テスト対象デバイスからの応答を測定する。
図1には、テスタ本体112内のハードウェアがピン124として識別される多数の回路を含んでいる様子が示されている。それぞれのピン124は、テスト・プローブ118の1つに対して信号を発生し測定を行う。それぞれのピンは、静的(static)な、すなわち直流信号を提供しうる。また、それぞれのピン124は、時には「バースト(burst)」とも称される状況では、変化するデータを提供又は測定することもあり得る。
バーストの間には、テスタ本体112は、タイミング及びシーケンシング(sequencing)回路120によって制御される。タイミング及びシーケンシング回路120は、ピン124のそれぞれに、関連するメモリ128から一連のデータ値を読み出させる。それぞれのデータ値は、ピンがその関連するテスト・プローブ118で特定の時点において与えるべき又は測定を予測すべき信号のタイプを示す。ピンが測定値を予測値と比較すると、その結果もまたメモリ128に記憶されうる。
1回にすべてのピン124が提供すべき又は測定を予測すべき値を定義するデータ値の組は、「ベクトル」と称される。バーストの間には、多くのベクトルが実行される。テスト対象デバイスの実際の動作条件をシミュレートするには、ベクトルは、非常な高速で実行されなければならない。半導体デバイスをテストするのに必要なバーストを定義するには、数百万のベクトルが存在する。これらのベクトルは、典型的には、テスト・システムが特定のタイプのパーツをテストするようにプログラムされている時刻において、メモリ128にロードされる。このローディング・プロセスには数分を要することがあり、それぞれのバーストに対して反復されない。むしろ、それぞれのバーストに対して、ワークステーション110は、どのベクトルがバーストの一部として実行されるべきかを示すコマンドを送る。バーストがいったん完了すると、ワークステーション110は、バーストの結果を、メモリ128又はタイミング及びシーケンシング回路120から読み出す。
更に、テスタ本体112は、1つ又は複数の器具(instruments)126を含む。1つの器具が、特定のテスト機能を実行する。器具は、例えば、正弦波などの特定のテスト信号を発生しうる。また、器具は、高速で信号をサンプリングし、それによって、後でデジタル信号プロセッサによる解析が可能にすることもある。これらの機能は、あるバーストの一部として実行されることもあるし、バーストとは別に実行されることもある。
1つのパーツの完全なテストは、時には「ジョブ」と呼ばれるが、直流測定又は器具126による測定に対して散在する一連のバーストから構成される。バーストは、テスト対象デバイスの特定の機能的属性(functional attributes)を測定するのに用いられ得る。また、それぞれのバーストは、テスト対象デバイスを直流測定が実行可能な状態におく目的だけに用いられることもある。テストのこれらの構成要素が実行される順序は、時には「フロー」とも呼ばれるが、ワークステーション110内のソフトウェアによって決定される。
あるデバイスが完全にテストされる、又は、欠陥があると判断される時点までテストされると、ワークステーション110は、制御信号を操作デバイス114に対して発生する。すると、操作デバイス114は、次にテストされるべきデバイスをテスタ本体112に提供し、プロセスが反復される。ワークステーション110は、また、特定のデバイスがテストに合格した又は失格したことに関するデータを収集する。ワークステーション110は、このデータを処理し欠陥のあるデバイスが廃棄されるようにすることができるし、また、欠陥の傾向に関するデータを解析するなど、それ以外の機能を実行することもできる。
ワークステーション110の中のソフトウェアのもう1つの重要な機能として、特定のデバイスに対するテストの開発(development)中や、更にはデバイスの設計それ自体の間にも、補助的機能を果たすことがある。開発の間には、テスト・エンジニアは、テスタ本体112内部のハードウェアに対する設定などを特定できなければならない。技術者は、また、テストのフローを特定できなければならない。テスタを制御するソフトウェアは、融通性があり、学習及び使用が非常に容易であることが非常に望ましい。半導体チップの市場は、非常に競争が激しく、多くの場合、技術革新によって左右される。従って、チップが可能な限り迅速に開発され製造の準備が整うことは、重要である。テスト・エンジニアがテスタのプログラム方法を学ぶ必要があるために遅れが生じるようなことは望ましくない。
図2には、ワークステーション110内のソフトウェアのための伝統的なソフトウェア・アーキテクチャが示されている。このソフトウェアは、テストの開発及び解析時に用いられる要素と、テストの実行時に用いられるソフトウェアとに分けられる。
テストを定義する第1のステップは、一般的には、デバイス・データを特定することである。図2には、デバイス・データ開発ツール210が示されている。伝統的には、これらのツールは、テスト対象である特定のデバイスに関するデータを集め、そのテスタのためにカスタム開発されたデータベースに記憶している。この情報は、これらをピン・グループ及びタイム・セット(time set)として定義する。半導体デバイスは、多くのデバイス・リードを有する。これらのリードは、グループとしてまとまって動作することが多い。例えば、あるグループは、アドレス・バス又はデータ・バスを表すことがあり得る。従って、あるツールによって、リードのグループを特定することが可能になる。別のツールによれば、デバイス上の特定のリードとテスタ上のピンとの間の相関関係を特定することが可能になる。場合によっては、特定のデータを、その値を別のデータ値に関係付ける方程式によって定義することが可能である。しかし、従来技術では、方程式を扱う能力は限定的なものであった。
他のツールによれば、信号のタイミングを特定することが可能となる。それぞれのピン124は、タイミング「エッジ」に関係して定義される信号を発生又は測定することができる。それぞれのピンには、1組のタイミング・エッジが存在する。それぞれのエッジは、実行されるそれぞれのベクトルに対して1回生じうる。それぞれのエッジが生じる時間は、プログラムすることができる。それぞれのピンに対するそれぞれのエッジに対するプログラムされた時間が、1組のタイミング・データを表す。異なるバーストにおいて又は同一のバーストの中でも所望のプログラミングは異なりうるので、複数のタイム・セットが特定されるのが通常である。それぞれのタイム・セットの組が入力され記憶されなければならない。この情報は、伝統的には、特定のテスタに対して設計されたカスタム・データベース・プログラムを介して入力されてきた。カスタム・データベースを介して入力された情報は、デバイス・データ・ファイル214に記憶される。
入力されなければならない別のタイプの情報は、あるテストのために実行されなければならない特定のステップである。この情報は、テスト・テンプレート220において特定される。テンプレートとは、どのような特定のデバイス・データ・ファイルの値とも独立に記述されるステップの組である。テスト・テンプレートは、特定のテスト・システムに対して定義されたフォーマットのデータ・ファイルとして記録されてきた。これらのファイルは、一般的には、テスタを製造した者によって提供され、典型的には、高速な実行速度で知られているCプログラミング言語などのプログラミング言語で書かれている。場合によっては、テスト・エンジニアが、テスト・テンプレートをカスタマイズする。
テスト・テンプレートは、コンパイラ250によってコンパイルされる。コンパイルされたプログラムは、翻訳された(interpreted)プログラムよりも高速に実行可能であると、通常考えられている。テスタにおける実行速度に関する要件のために、コンパイルされたテスト・プログラムの方が好まれてきた。
カスタム・フロー・ツール218はまた、テストの順序の特定を可能にする。フローは、プログラム・フロー222として記録される。伝統的には、フローは、テーブルへの一連のエントリとして特定されるが、伝統的なプログラミング言語と類似する特別なプログラミング言語でも可能である。
フローのステップを特定するために、特定のテスト・テンプレートを、そのステップに対して用いられるべきデバイス・データ・ファイルと共に特定することもできる。あるテンプレートによって、実行されるバーストが特定される。また、他のテンプレートによって、テストの結果がテスタ112の中のハードウェアから読み出されることや、そのハードウェアが特定の方法でセットアップされることが決まる。フローの他のステップとして、伝統的なプログラミング言語において見られる分岐(branching)及びルーピング(looping)命令などの制御ステートメントがある。
プログラム・フローは、カスタム・エグゼクティブ(custom executive)224として機能する。カスタム・エグゼクティブ224は、プログラム・フローにおいて特定されたテンプレートの中に、デバイス・データ・ファイル214からのデータを満たす。これによって、テスト・オブジェクトが作成される。
テスト時間においては、カスタム・エグゼクティブ224は、テスト・オブジェクトを処理し、テスタ112を実際に制御する。カスタム・エグゼクティブ224は、データ及びコマンドをデバイス・ドライバ228を介してテスタ112に送る。カスタム・エグゼクティブ224の動作速度が全体のテスト時間を決定するのに大きな意味を有するので、カスタム・エグゼクティブは、伝統的に、プログラマにその実行を特定し従って最適化するオプションを与えるC言語などのプログラミング言語で書かれてきた。
デバイス・ドライバ228は、バス116を介して情報を送受信してテスタ112内部のハードウェアを制御するプログラム手順である。デバイス・ドライバ228は、低レベルのハードウェア制御を実行するので、そのような制御を許容するC言語などのプログラミング言語で書かれている。
すべてのデバイスができるだけ迅速にテストされることが、強く望まれる。従って、プログラム・フローにおけるそれぞれのステップを実行するのに要求される時間は、非常に短いことが望ましい。テスタ112又は操作デバイス114がコマンドに応答する又はそれを「実行」するのにかかる実際の時間は、ワークステーション110内のソフトウェアとは無関係である。しかし、ワークステーション110内のソフトウェアは、それぞれのコマンドを設定するのにかかる時間の長さである「オーバヘッド」を決定する。1つのジョブの実行時間を非常に短くするために、かなりの努力がなされている。従って、オーバヘッド時間もまた非常に短いことが非常に重要である。従来技術のシステムでは、これは、カスタム・エグゼクティブ224を用いて達成された。カスタム・エグゼクティブ224は、伝統的にC言語で書かれている。C言語は、設計されうるエグゼクティブの開発が迅速になされることを可能にする言語であると広く認められている。
C言語でカスタム・エグゼクティブ224を準備するのに伴う主な問題は、そのようなエグゼクティブを書くのに非常に長い時間がかかるということである。そのための費用は、文字通り数百万ドルになる可能性があり、数年の努力を要する可能性がある。カスタム・エグゼクティブを有することに伴う別の問題として、ユーザ・インターフェースもまたカスタム・インターフェースであるということがある。これは、テスタを操作している技術者は、テスタをプログラムする方法を学習するのに時間をかけなければならないことを意味しているが、これは、ほとんどのユーザにとって望ましくない。しかし、これまでは、これらの短所は、テスタを迅速に動作させるためには必要であると考えられてきた。
C言語でのカスタム・エグゼクティブの別の欠点として、ユーザ・インターフェース能力が極めて限定される可能性が大きいということがある。ユーザ・インターフェースは、テスタにとって特に重要である。というのは、テスタは、非常に異なったスキルのレベルを有する複数の人間によって様々な時に操作されるからである。デバイス及びテストの開発段階では、テスタは、熟練度の高い技術者によって操作される。しかし、いったんデバイス及びテストが開発されてしまうと、テスタは、中程度のスキルを有するプロダクション・ワーカー(production worker)によって操作される。従って、ユーザ・インターフェースは、生産段階では、極めて単純化されていなければならない。
テスタは、伝統的には、ワークステーション110上で動作する別個の生産インターフェースを有している。ユーザ・インターフェースは、伝統的には、1つのメニュとして実現されてきた。テスト・エンジニアは、メニュ上に、生産段階のテストにおいてオペレータが必要とするコマンドだけを配置する。従って、テスタと共に提供されるソフトウェアでは、メニュの形式でユーザ・インターフェースを作成することしかできなかった。不運なことであるが、メニュは階層的であるが、多くの操作はそうではない。従って、非階層的なインターフェースを迅速かつ容易に開発することを可能にするソフトウェアをテスタに提供することが望ましいだろう。
図2には、ワークステーション110に含まれる他のソフトウェア要素が示されている。メモリ128(図1)にロードされたベクトルは、大量のデータを表す。これらは、通常、ソフトウェア・シミュレータによって開発されるか、又は、自動化された方法で導かれる。これらは、ユーザによってマニュアルで入力されるのが通常である。ベクトル開発ツールによって、ユーザは、ベクトル・ファイルを編集することが可能になり、ベクトル・ファイルは、その後で、ベクトル及び結果ファイル234に記憶される。ベクトル・ファイルは、テストに先立って、メモリ128にロードされる。
同様にして、多数の連続するサイクルの間にテスト対象デバイスにおいて例えば測定された値を表している大量のデータがテストの間に集められた場合には、それは、バス116(図1)を介して戻される(passed back)。
ベクトル・ファイル234は、デバグ及び解析ツール230によってもアクセス可能である。デバグ及び解析ツールは、テストを開発しているエンジニア又はテスト対象のパーツを開発しているエンジニアによって用いられる。これらのツールによれば、ベクトルや結果をグラフィカルに表示したり、ユーザが、ベクトル・ファイルを修正したり予測される値を測定された値の上に重ね書きすることが可能になる。更に、デバグ及び解析ツールによると、ユーザは、テスタ112におけるハードウェアを直接にプログラムすることができるようになる。従って、これらのツールは、時には、デバイス・ドライバ228をコールすることもある。
典型的なシナリオでは、デバイス・データ及び開発ツール212と、テスト及びフロー開発ツール218と、デバグ及び解析ツールと、テスト・ベクトル開発ツール232とは、テスタと共に供給される。テスト対象デバイスがまだ開発中である間も、ユーザは、デバイス・データ及び開発ツール212を用いて、デバイスの特性を特定する。テスト及びフロー開発ツール218は、デバイス上でなされるいくつかのテストを特定するのに用いられる。
サンプル・デバイスが製造される。テスト・プログラムが動かされ、デバグ及び解析ツールが用いられて、これらのサンプル・デバイスがチェックされる。このプロセスでは、サンプル・デバイスにおける欠陥が検出される又はプログラムに伴う問題点が検出される。これらの問題点は、訂正され、更なるテストが作られ動作される。
開発プロセスが終了すると、半導体デバイスは、テスト・プログラムと共に、生産に移行される。生産においては、それぞれのパーツは、製造される際にテストがなされる。
発明の概要
以上の背景を鑑みると、本発明の目的は、迅速かつ安価に開発することができるテスタ制御ソフトウェアを提供することである。
更に、ユーザが容易かつ迅速に使い方を学習できるテスタ用ソフトウェアを提供することも本発明の目的である。
以上の及びそれ以外の目的は、市販のスプレッドシート・ソフトウェアを用いて、デバイス・データ・ファイルとテスト・テンプレートとプログラム・フローとを開発することで達成される。市販のスプレッドシート・ソフトウェアが、これらの機能のすべてを、要求される速度をもって、非常な低コストで提供することができ、更に、ユーザが高価なトレーニングを受けなくとも学習できる標準的なユーザ・インターフェースを与えてくれるという長所を有することを見いだされた。
【図面の簡単な説明】
本発明は、次の添付した図面と以下の詳細な説明を参照することによって、よりよく理解されるはずである。
図1は、従来技術によるテスタのハードウェア・ブロック図である。
図2は、従来技術によるテスタのためのソフトウェアのソフトウェア・ブロック図である。
図3は、本発明によるソフトウェアのソフトウェア・ブロック図である。
図4Aないし9は、本発明と共に用いられるデバイス・データ・シートを図解している。
図10Aないし11Cは、本発明と共に用いられるフロー・データ・シートを図解している。
図12A及び12Bは、サンプル・テスト・テンプレートを示している。
図13は、本発明によるフロー制御ソフトウェアの動作を示している図である。
図14は、本発明によって容易に実現され得るオプショナルなプログラミング・インターフェースである。
図15は、別の市販のスプレッドシート・プログラムを用いて実現されるデバイス・データ・シートの例である。
図16A及び16Bは、オプショナルなデバイス・データ及びフロー開発ツールの例である。
好適実施例の説明
図3は、従来技術によるテスタにおけるカスタム・ソフトウェアの機能のほとんどは市販のスプレッドシート・プログラムによって実行されうるという認識から生じるユニークなソフトウェア・アーキテクチャを示している。この好適実施例では、米国ワシントン州レドモンド(Redmond)所在のマイクロソフト社(Microsoft)によるエクセル(EXCEL)が用いられる。
エクセルは、ユーザが「ワークブック(workbook)」を作成することを可能にするスプレッドシート・プログラムである。ワークブックは、異なるスプレッドシートとして構成されたデータの集まりである。スプレッドシートとは、単に、セル(cell)の格子(グリッド:grid)であり、それぞれのセルは、1つのデータ又はデータ値が他のセルにおける値からいかにして計算されるべきかを定義する方程式を保持する。セルは、順序付けられたグリッドに現れる。セルは、一般的に、関連するデータが特定のロー(行、row)又は特定のコラム(列、column)にあるセルの中に生じるように構成されている。セルのそれぞれに対して作用するツールは、データが何を表しているかとは無関係に、同一である。ワークブックの内部では、スプレッドシートのどれにもアクセス可能であり、あるスプレッドシートの中のデータを別のスプレッドシートにおいて用いることができる。
エクセルは、また、スプレッドシートを定義し、「アプリケーション」を開発するという特徴も含む。エクセルは、会計システムの開発などのアプリケーションに用いられてきた。スプレッドシートの外観を特定して、ユーザが、特定のタスクに関係するセルだけを見るようにすることができる。表示を、『エクセル・アプリケーション開発者ガイド』やキュー・コーポレーション(Que Corporation)から1996年に刊行されたJeff Webbによる“Using Excel Visual Basic for Applications”(ISBN 0-7897-0269-X)に説明されている他の方法に変更することもできる。これらの書籍は、この出願において援用する。
エクセルを用いてアプリケーションを作成することができる第2の方法では、ビジュアル・ベーシック(Visual Basic)(登録商標)を用いる。ビジュアル・ベーシックは、エクセルの中に組み入れられるプログラミング言語である。その名称が示唆するように、ビジュアル・ベーシックの基本的な目的は、ユーザがデータを入力するために与えられる際のスプレッドシートの外観を制御することである。ビジュアル・ベーシックは、一般的には、複数のスプレッドシートのどれをアプリケーションが実行されている間の任意の時点においてユーザに提供するかを選択するのに用いられる。選択は、一般的には、ユーザによって入力されたデータ又はコマンドに基づいており、それによって、任意の与えられたタスクが実行されている間に、ユーザは、そのタスクに関連するデータを見ることになる。従って、ビジュアル・ベーシックは、動作しているアプリケーションがユーザにとってどのように見えるのかを制御するのに用いることができる多くのコマンドを含む。ビジュアル・ベーシックは、また、分岐(ブランチング:branching)及びルーピング(looping)のための条件ステートメントなどのプログラム・フローを制御するプログラミング・コマンドを含む。
本発明者は、半導体テスタのワークステーションにおいて用いられるときにテストの実行を制御するだけでなく、テスト・テンプレートを書くのにも、ビジュアル・ベーシックを用いることができることを発見した。特に、エクセルなどの市販のスプレッドシート・プログラムをカスタマイズして、データ及びテスト・テンプレートからのテスト・プログラムを非常に迅速にアセンブルすることができるので、カスタム・エグゼクティブと比較してテストを実行する速度がほとんど失われないということを発見した。この認識によって、多数の長所を達成することができた。このようなソフトウェア・アプリケーションの開発は非常に迅速である。更に、ほとんどのプログラマは市販のスプレッドシート・プログラムに親しんでいるので、誰かが、そのアプリケーションの使用法を学習するのは非常に容易である。更にまた、テスタ制御ソフトウェアは、コンテキスト・センシティブなヘルプや編集コマンドなど、カスタム・スプレッドシート・プログラムの中に組み込まれている多くの特徴を利用することができる。
図3は、デバイス・データ及びフロー開発ツール310を示している。この好適実施例では、これらのツールは、エクセル・ワークブックの中のスプレッドシートをカスタマイズすることによって、実現される。デバイス・データを保持するためには、ピン・マップと、それぞれのピンにおいて印加される信号のレベルと、タイム・セットとに対するスプレッドシートが存在する。チャネル・マップ、様々な定数値の仕様、エッジ・セットなどのデータに対する他のスプレッドシートも、オプションとして、存在しうる。それぞれのタイプのスプレッドシートは複数あり得るが、これは、異なるデータ値が異なる種類のテストに必要であるからである。それぞれのスプレッドシートは、「データ・セット」と称される。ある好適実施例において用いられるデバイス・データのためのスプレッドシートが、図4ないし9において図解されている。
テスト・フローは、ワークブック内のスプレッドシートとしても表される。テスト・フローは、実行される一連のステップによって特定される。それぞれのステップと関連するデータが存在し、それぞれのステップは、スプレッドシートにおける1つのローとして表される。それぞれのステップにおいて実行される厳密な動作は、1つ又は複数のフラグの状態によって影響されうる。ステップの実行によって、これらのフラグのいずれかの状態が変更されることもあり得る。これにより、ブランチング又はそれ以外の同様な制御の構築が達成されうる。
フローにおけるあるステップに対して特定されるデータの1つとして、どのテスト・テンプレートがどのデータ・セットと共に用いられるかがある。テスト・テンプレートとそのテスト・テンプレートと共に用いるデータ・セットとは、「インスタンス(instance)」と称される。インスタンスは、スプレッドシートとしても記述することができる。ある好適実施例において用いられるフロー情報のためのスプレッドシートが、図10ないし11に図解されている。
それぞれのスプレッドシートの構造は、ワークステーション110内のソフトウェアによって定義される。それぞれのスプレッドシートの構造は、市販のスプレッドシート・プログラムの広く知られたメカニズムを用いてテンプレートを特定することによって、作成される。それぞれのスプレッドシートに対するデータ値は、テスト・エンジニアによって入れられ、これらの値は、テスト対象のデバイスのタイプに左右される。
本発明によるテスタ制御ソフトウェアは、従来技術の場合のように、デバグ及び解析ツールとテスト・ベクトル開発ツールとを用いる。これらのアイテムは、簡潔にするために、図3には示されていない。この好適実施例では、ベクトル・ファイルは、市販のスプレッドシート・プログラムで容易に扱うには、大きすぎる。その理由で、これらは、エクセルにおいては実現されない。
次に図4A及び4Bを参照すると、ピンマップ・デバイス・データ・シートがアクセスされている間のワークステーション110上の表示が示されている。図4A及び4Bが、1つのウィンドウを表す。このウィンドウは、ワークステーション110上のエクセル・ソフトウェアによって表示される。エクセル・ソフトウェアは、Windows NT(マイクロソフト社の登録商標)オペレーティング・システムによって制御されるので、一度に複数のウィンドウを、スクリーン上に表示することができる。
それぞれのウィンドウは、いくつかのフィールドを含む。フィールド410は、ツール・バーとして知られている。フィールド420は、メニュ・バーとして知られている。フィールド430は、データ・セル・フィールドである。フィールド440は、タブ・フィールドである。これらのフィールドのコンテンツは、多くの場合に、ワークステーション110を制御するソフトウェアの準備の一部として特定される。しかし、これらのフィールドのそれぞれの配置及び一般的な動作は、エクセルを用いて開発されるすべてのアプリケーションに対して標準的である。従って、本発明によっても、エクセルが、半導体テスト・システムの制御に用いられ、エクセルや他のエクセル・アプリケーションに親しんでいる者であれば、このソフトウェアの使用法を一般的に理解するであろう。このようにして、本発明によれば、使用が容易であるから、カスタム・ソフトウェア・システムと比較して、著しい時間及びコストの削減が達成される。
ツール・バー410は、ツール・アイコン412及び414など、多くのツール・アイコンを含む。後により詳しく説明されるように、テスタ112のためのテスト・プログラムは、様々なスプレッドシートにデータを入れることによって、大部分が特定される。データは財務上のデータや市販のスプレッドシート・プログラムが通常用いられるそれ以外のタイプのデータとは異なり半導体テスタに対する制御情報を表すという事実にもかかわらず、データは、同じように操作されなければならない。従って、データ操作ツールが必要であるが、エクセルと共に用いられる標準的なデータ操作ツールでよい。これらのツールは、データのコピー、データの削除、スプレッドシートのコンピュータ・ファイルへのセーブなどの機能を実行する。これらのツールは、マウスやトラックボールなどの入力デバイスを操作して特定のツール・アイコンを選択するユーザによってアクセスされる。
更に、フィールド410は、カスタム・ツールを用いてカスタマイズすることができる。エクセルによれば、カスタム・ツールを特定してツール・バーに追加することができる。望む場合には、テスト・プログラムの生成に対して一意的な機能を実行するカスタム・ツールを、ツール・バー410に追加することもできる。例えば、一方で、テスト・プログラムを実行するカスタム・ツールもあれば、他方では、デバイス・データをチェックしてエラーや非一貫性(不一致)を検出するカスタム・ツールもある。
メニュ・バー420は、422や424などのシステム・メニュ・アイテムを含む。これらのアイテムは、ユーザによってアクセスされると、このシステム・メニュ・アイテムに関係する作用の複数の選択肢を提供するように拡張する。例えば、ファイル(FILE)というシステム・メニュ・アイテムの下には、保存(save)、削除(delete)、印刷(print)などの選択肢がある。ツール・バー410とメニュ・バー420とからアクセスできるツールの間にはいくらかの重複がある。一般的には、ほとんどの共通のツールは、ツール・バー410上に現れ、システム・メニュ・アイテムの1つの下にある選択肢の1つとして複写されることが多い。
メニュ・アイテムのほとんどは、自動テスト・システムに用いられるデータに特定ではない機能を表す。従って、エクセル・アプリケーションに対するデフォルト条件として提供されるシステム・メニュ・アイテムを、ほとんどのメニュ・アイテムに対して用いることができる。しかし、自動テスト・システムに特定の機能も多く存在する。この好適実施例では、これらの機能は、ユーザがカスタム・メニュ・アイコン426からの選択肢を選択することによって実行される。エクセルは、上述したエクセル・アプリケーション開発ガイドにおいて提供されている命令に従って、アプリケーションに対してカスタマイズすることができる。カスタム・メニュの選択肢は、システム・メニュ・アイテムと同じメニュ・バー又は別個のカスタム・メニュ・バーの上に現れる。
デバイス・データを含むデータ・シートに対しては、カスタム・メニュ・アイテムによって、データ・シートの「有効化確認(validate)」を可能にする。すでに述べたように、データ・シートにおける様々なセルは、データ有効化機能をそれらと関係付けしている場合がある。これらのデータ有効化機能は、現在のデータ・シートのコンテキストにおける不適切なデータ値を検出することができる。例えば、特定のフィールドが数値を保持することを意図されていれば、入力される値が文字を含む場合には、エラーが検出されうる。また、別のセルが正の値だけに限定されている場合には、入力される値が負であれば、エラーが指示される。しかし、複数のシートに依存する有効化機能もある。例えば、ピンの総数は、1つのシート上で特定され、ある属性は、それぞれのピンに対して別のシート上で特定される場合がある。属性があまりに少数のピンに対して特定されている場合には、これは、2つのシートを比較することによって検出されるだけである。様々な有効化機能を、テスタ・ハードウェアの要件及び制限に基づいて定義することができる。これらの有効化機能は、カスタム・メニュ・アイテムから選択することができる。また、同じ機能を、ツールバー・ボタンを用いて選択することもできる。
更に、フロー・データ・シートに対しては、そのフローによって定義されるテストを実行する方法が存在することが要求される。フロー・シートと関連するカスタム・メニュ・アイテムによって、フローが実行され、また、実行の態様も決定される。例えば、フローの実行においてブレーク・ポイントを設定する、又は、一度に1つのステップずつフローを実行することが望ましい場合がある。これらの機能のそれぞれは、カスタム・メニュ又はツールバー・ボタンからのメニュ選択として特定することができる。
カスタム・メニュ・アイテムは、シートのそれぞれとは異なることがある。エクセルによると、その何らかの属性を、それぞれのデータ・シートに対して特定することが可能である。これらの属性の1つに、カスタム・メニュ・アイテムがある。このようにして、カスタム・メニュを、特定のシートに表示される特定のデータ・タイプに適する操作だけを含むように修正することができる。以下では、ソフトウェア制御テスタ112によって実行される他の操作について説明する。これらの操作は、カスタム・メニュ上に現れるメニュ・アイテムにマップされる機能として定義することができる。
データ・セル・フィールド430は、テスタ112を制御するようにカスタマイズされたデータ・セルを含む。セルのレイアウトは、エクセルによって提供される。しかし、ウィンドウにおいて見ることができるロー及びコラムの数は、エクセルをプログラムすることによって、決定される。図4A及び4Bは、デバイス・ピンマップ・データ・シートを表している。従って、データ・セル・フィールド430は、デバイス・ピンマップ・データを受け取るように設定されたセルのロー及びコラムを含む。
半導体テスタでは、デバイス・ピンマップ(device pinmap)は、論理的な名称を物理的なピン118(図1)に、テスト・プログラムが動いている間にこれらのピン118がどのようにテスト対象デバイスと接触するかに基づいて、割り当てる。データ・セル・フィールド430は、データ・セル432A、・・・、432Dの4つのコラムと共に示されている。これらのコラムのそれぞれは、先頭に、ヘッダ・セル434などのセルを有する。ヘッダ・セル434は、そのコラムの残りのセルに入れられるデータのタイプの記述を含む。スプレッドシートがエクセルにおいて定義されるときには、ヘッダ・セルなどのいくつかのセルには、固定値を与えることができる。
データを入力しチェックするための規則(ルール)は、図4A及び4Bでは見ることができない。しかし、市販されているスプレッドシート・プログラムの特徴の1つとして、様々なセルに入力される際にデータが有効化されるということがある。また、データ・セルによっては、他のセルに入力された値に基づいて計算されうるものもある。市販のスプレッドシートは、大量の財務データを入力するなどの目的で、この特徴を備えているように開発された。しかし、データをテスタ制御のために用いる場合でも、いくつかのデータ入力規則は可能であり、用いることができる。
図4A及び4Bにおける別のフィールドとして、タブ・フィールド440がある。タブ・フィールド440は、442及び444などの一連のタブを含む。それぞれのタブは、テスト・プログラムを含むワークブックの中にある1つのスプレッドシートを表す。ユーザは、タブの1つを付勢する(アクティブにする)ことによって、どのスプレッドシートがアクティブであるかを選択する。図4A及び4Bの図解では、pinmap. pmpという名称を有するタブ443が、他のタブの最上位にある。これが選択されたタブであり、図4A及び4Bに示されているピンマップ・スプレッドシートに対応する。
タブ・フィールド440は、すべてのデバイス・データを1つのワークブックとしてセットアップするという重要な効果を図解している。異なるタイプのデータが異なるツールに入力されていた従来技術によるテスタとは対照的に、すべてのデバイス・データが、1つのエクセル・ワークブックに入力される。すべてのデータを1つのワークブックにおいて有することによって、1つのスプレッドシートにおけるデータ値が別のスプレッドシートに入力されたデータに依存することが可能となる。更に、これにより、テスト・プログラムを開発している人間が、異なるタイプのデータに対するシートの間で迅速に切り替えを行うことが可能となる。テスタのためのカスタム・プログラム環境が適切に開発された場合にはこれらの操作のそれぞれが可能であり得るのに対し、データを1つのプログラミング・ツールから別のプログラミング・ツールに送ることの複雑性なしに、この簡潔性が比較的低コストで達成される。更に、これは、プログラマが迅速に理解することが概念的に容易であるような態様で実現される。
図5を参照すると、第2のデバイス・データ・スプレッドシートが示されている。図5は、チャネル・マップ(channel map)データが入力される間に現れるワークステーション110のスクリーン上のウィンドウを示している。チャネル・マップ・データはピン・マップ・データとは異なっているが、図4A/4Bと図5とのスクリーン表示は非常に類似していることに注意することは重要である。
図5におけるスクリーン表示は、図4A及び4Bと同じフィールドを有する。ツール・バー510は、ツール・バー410と同じである。メニュ・バー520は、メニュ・バー420と同じである。メニュ・バー510におけるいくつかのメニュ・アイテムがメニュ・バー410におけるアイテムと異なることはあり得る。例えば、いくつかの機能はチャネル・マップ・データにだけ適用可能であるような場合には、そうである。その場合には、これらの機能に対するメニュ・アイテム又はサブメニュ・アイテムは、メニュ・バー510にだけ現れる。好適実施例では、表示されているスプレッドシートにおけるテスタ・データのタイプに依存するこれらの機能は、カスタム・メニュ・アイテム526の下のサブメニュ・アイテムとして現れる。また、データに依存する機能は、カスタム・ツール・バー・アイテムを介してアクセスすることもできる。
テスタのためのソフトウェアを実現するのに用いられる市販のスプレッドシートは、異なるタイプのデータ・シートの定義を許容し、更に、表示されるサブメニュ・アイテムが用いられるデータ・シートのタイプに依存することを許容するという特徴を含むことが好ましい。
タブ・フィールド540では、それぞれのタブがその上に2つの部分からなる名称を有していることに注意すべきである。第1の部分は、スプレッドシートに対する識別子である。名称の第2の部分、又は、拡張子は、スプレッドシートのタイプである。例えば、図5は、ChannelMap. cmpとラベル付けされたタブを示している。チャネル・マップを定義するタイプであるデータを保持するすべてのスプレッドシートは、. cmpという拡張子を有する。しかし、テスト・エンジニアが特定の識別子を選択する。好適実施例では、ワークステーション110上で動いている市販のスプレッドシート・プログラムによれば、アプリケーションの開発者は、そのタイプのスプレッドシートに対してどのメニュ・アイテム及びサブメニュ・アイテムがメニュ・バー420上に現れるかを特定することができる。
次に、図6を参照すると、スペック・シート(spec sheet)に対するスプレッドシートが示されている。他のすべてのデータ・ツールと同じように、このスプレッドシートは、ツール・バー610と、メニュ・バー620と、タブ・フィールド640とを有している。タブ・フィールド640は、「SpecSheet, sps」とラベル付けされた現在のスプレッドシートがハイライトされて示されている。同様に、SpecSheetは、多くのデータ・セルがロー及びコラムとして構成されているデータ・フィールド630を有している。ここで、それぞれのローは、特定のテスト対象デバイスと関連するパラメータに対するシンボルを含む。それぞれのパラメータには、様々な情報が与えられる。図6は、データ・フィールド630のそれぞれのローにおける7つのコラムを示している。シンボル名に加えて、それぞれのローは、値と、その値に対する単位と、シンボルの説明のためのテキスト・フィールドと、適切に動作するパーツのための最小値及び最大値と、コメント・フィールドとを含む。データ・シートはすべて1つのエクセル・ワークブックにおいて開発されるので、これらのシンボルは、他のスプレッドシートにおける名称によって参照することができる。より重要なこととして、それぞれのシンボルと関連するパラメータは、他のスプレッドシートにおいても用いることができる。更に、スペック・シートの名称は、テスト・インスタンスが開発される際に、特定のテスト・テンプレートにパラメータとして送られうる。これによって、テスト・テンプレートが、テスト対象デバイスが仕様の範囲内で動作しているかどうか(すなわち、テストに合格なのか不合格なのか)を決定するなど、スペック・シート・データと比較することが可能になる。
図6は、1つの仕様シートを示している。1つのジョブの中において、異なるタイプのテストのために異なる仕様が要求されることもあり得る。従って、複数の仕様シートを用いることができる。データ・マネジャ316との関係で後に説明されるように、特定のタイプを有する複数のデータの組を有するための用意(provisions)がなされている。
図7は、エッジ・セット(edge set)を定義するのに用いられる別のデバイス・データ・シートを示している。図1に示されているように、テスタ112は、複数のピン124を含む。それぞれのピンは、それぞれがエッジを発生しエッジ発生器と称される複数の回路を含む。エッジは、ピン124による何らかの作用を計時するのに用いられる信号である。例えば、ピンによって生じるパルスの開始及び停止時間などのパラメータを制御する4つのエッジ信号が存在しうる。それぞれのエッジが発生される時間は、プログラムすることができる。1つのピンに対するそれぞれのエッジがプログラムされる時間は、エッジ・セットとして定義される。エッジが特定のピンに対してプログラムされる時間はジョブの間に変化しうるので、それぞれのピンに対して複数のエッジ・セットがあり得る。
図7は、1つのピンに対するエッジ・セットを示している。コラム750は、エッジ・セットが特定されるピンは、「QdataPins」と称されることを示している。他のピンに対するエッジ・セットは、データ・フィールド730にローを更に加えることによって追加することが可能である。コラム752は、ピンQdataPinsに対する1つのエッジ・セットは、「LooseFunction 1」と称されることを示している。データ・フィールド730にローを加えることによって追加することが可能である。
コラム754及び756は、ピン124をセットアップし所望の信号を発生するのに必要なそれ以外の情報を与える。コラム758は、そのピンの中のエッジをリスト化し、隣接するコラム760及び762は、これらのエッジが生じる時間に対する値を与える。
コラム760及び762は、市販のスプレッドシートを用いてテスタ112を制御することの有益な長所を図解している。スプレッドシートは、自動的に方程式から値を計算することができる。従って、コラム762によって、それぞれのエッジに対する時間値が、他のスプレッドシートにおいて定義された他の定数又はパラメータとの関係で方程式として特定されることを可能になる。コラム760は、そのフィールドに対してプログラムされた数値がコラム762における方程式を評価することによってスプレッドシート・プログラムによって自動的に計算されることを示している。
セル766、768、770及び772は、市販のスプレッドシート・プログラムを用いることによって得られる他の効果を示している。データ・フィールド730におけるドロップ・ダウン・リスト・ボックスは、データ・フィールド730におけるデータ・セルの表示又は値を制御するのに用いることができる。これらのセルは、ドロップ・ダウン・ボックスとして実現されるが、これは、エクセルにおける標準的なオブジェクトである。それぞれのドロップ・ダウン・ボックスは、固定された数の値の中の1つを有することができる。これらの値は、固定されたリストとして、又は、ワークブックの中のスプレッドシートの1つに入力された値を参照して特定することができ、入力された値が変化すると、これらの値も変化する。
テスタ112に多数のピンが与えられると、エッジ・セット・スプレッドシートは、潜在的に多くのローを含みうる。セル766、768、770及び772は、一度に表示されるデータの量を制限するのに用いることができる。セル766は、特定のピン又はピン・グループの名称を含む。そのピン又はグループ内の複数のピンに対するエッジ・セットだけが、データ・フィールド730の中に表示される。同様にして、セル768及び770は、特定のタイミング・モードと選択された数のエッジだけとに対するエッジ・セットを表示する。セル772は、同様に、ドロップ・ダウン・ボックスであるが、値コラム760に入力される値に対する単位を特定するのに用いられる。
図8Aは、エクセル・ワークブック内の別のデータ・シートを示している。図8Aにおけるシートは、タイム・セットに対するデータを与えており、他のデータ・シートと同じフォーマットを有している。タイム・セットは、エッジ・セットの集合であり、ピン124のそれぞれに1つが対応する。複数のタイム・セットが定義され、異なるプログラムされた時間が1つのジョブの中で用いられることも多い。
図8Aは、タイム・セットの名称の上にデータの入力を許容するコラムを示している。周期は、そのタイム・セットとピン又はピン・グループと関連している。それぞれのピン又はピン・グループに対しては、テーブル内に1つのローが存在する。それぞれのピン又はピン・グループに対しては、そのピンのエッジに対するプログラムされた時間がエッジ・セット又は方程式のどちらかを参照することによって特定されることを可能にするコラムが存在する。図8Aはまた、ドロップ・ダウン・ボックス832A及び834Aを示している。ドロップ・ダウン・ボックス832Aは、どのタイム・セットが表示されるかを選択する。ドロップ・ダウン・ボックス834Aは、すべての時間値が表示される単位を指定する。
図8Bは、市販のスプレッドシート・プログラムを用いる結果として得られる別の効果を図解している。複数のスプレッドシート・テンプレートを、同じデータに対して定義することができる。同じスプレッドシートに対して複数のテンプレートを有することによって、同じデータが異なって表示され、それにより、ユーザは、現在自分が作業しているタスクが何であってもそれに対して最も便利なフォーマットでそのデータを見ることが可能になる。図8Bは、エッジ・セット・データを表示する別のテンプレートを示している。これは、ドロップ・ダウン・ボックス832Aのようなドロップ・ダウン・ボックス832Bを有する。これはまた、データ・フィールド830Aと類似のデータ・フィールド830Bを有する。しかし、データ・フィールド830A及び830Bにおけるコラムは、異なる態様で構成されている。
図8Aに示されているテンプレートは、例えば、ピン・グループを特定のタイム・セットに割り当てるのに用いられ得る。図8Bにおけるテンプレートは、例えば、それぞれのピンがどのエッジに割り当てられているかを判断するのに用いられ得る。好適実施例では、図8Bのテンプレートは、リード・オンリ・テンプレートである。
図9は、ユーザによって一貫したフォーマットで容易に入力されうる更に別のタイプのデータを示している。図9は、他のスプレッドシートに用いられるのと同じツール・バーとメニュ・バーとを示している。図9は、様々な名称のパラメータと関連するレベルを特定するスプレッドシートを示している。これらのパラメータは、同様に、様々の測定値又は刺激信号と関連する電圧及び電流レベルである。エクセルによれば、これらの名称付きのパラメータは、他のスプレッドシートにおける名称によって、参照されることが可能である。また、パラメータの値を、他の名称付きの値を組み入れている方程式によって特定することも可能である。
図10Aを参照すると、本発明の効果の1つを見ることができる。図10Aは、「フロー・タイプの」スプレッドシートを表している。図10Aは、テスト「インスタンス」が特定のテストに対して定義される態様を表す。半導体テスト・システムは、一般的に、限定された数のものに対するテストを行うのに必要とされる。例えば、このテスト・システムは、パターン「バースト」をランさせることもありうる。バーストの間には、テスタは、特定された刺激を与え、いくつかの予測される応答をチェックする。刺激及び応答に対する値は、「ベクトル・ファイル」において特定される。ベクトル・ファイルの中の異なる値は、異なる種類のパーツをテストする、又は、同じパーツ上で異なるテストを行うのに用いられる。しかし、ベクトル・ファイルを用いるためにテスタが実行する動作は、その中の特定のデータ値とは関係なく、同一であるのが一般的である。
テスト・システムがパターン・バーストを実行するのに経験する一連のステップは、「テンプレート」と称される。テンプレートは、特定のベクトル・ファイル又は必要とされるそれ以外のデータの記述のためのブランク・スペースと同等のプログラミングを用いて実行されなければならない一連のステップである。このようにして、テンプレートは、それが用いる特定のデータ値がいったん特定されると、任意のテストに対して用いることができる。データが特定のテンプレートと共に用いられるために特定されると、このテンプレートの「インスタンス」が作成される。インスタンスは、プログラムにおいて用いることができる。
テスタの製造業者は、一般に、その制御ソフトウェアの一部として複数のテスト・テンプレートを提供する。テスト・テンプレートは、パターン・バーストをランしたり、漏れ電流の測定を行ったり、テスト対象デバイスのリード上の直流レベルやそれ以外のテスタ動作をチェックするのに用いられる。後で更に詳しく説明されるように、好適実施例のテンプレートは、ビジュアル・ベーシックで書かれているが、これは、スプレッドシート・プログラムであるエクセルと関連するプログラミング言語である。それぞれのテンプレートは、ビジュアル・ベーシックの手順として書かれ、データ値は、手順への引数(argument)として特定される。
図10Aは、プログラム・インスタンスが作成される方法を図解している。データ・フィールド1030は、テスト・ジョブにおいて用いられ得るインスタンスの名称をリスト化するコラム1032Aを含む。コラム1032Bは、インスタンスを作成するのに用いられるテンプレートの名称を含む。
図10Bは、特定のデータがあるテンプレートとどのように関連するかを示している。エクセルは、ダイアログ・ボックス1036をデータ・フィールド1030における特定のセルと関連させることを可能とするプログラミング上の特徴を含む。セルにおける又はどれか別のセルにおける値に依存して、異なるダイアログ・ボックスを選択することができる。例えば、図10Bでは、ダイアログ・ボックス1036は、セル1034と関連するように示されている。セル1034は、特定のデータ値をセル1035の中にリスト化されたテンプレートと関連付けることによって、作成されるインスタンスの名称である。この例では、ダイアログ・ボックス1036のフォーマットは、セル1035にリスト化されたテンプレートに基づいて選択される。
ダイアログ・ボックス1036は、領域1038及び1050と含んでおり、それぞれが、セル1035におけるテンプレートが関連付けられるいくつかのデータ値がリスト化されるフィールドを備えている。「30Mhzfunc」とラベル付けされるテスト・インスタンスを作成するために、ダイアログ・ボックス1036の中の値は、引数として、「functional」という名称のテンプレートに送られる。
図10Bは、データ・フィールド1030が多くのローを含むことを示している。テスト・ジョブにおいて必要とされるそれぞれのテスト・インスタンスに対して、1つのローが存在する。「Functional」と命名されたテンプレートは2つの異なるインスタンスを作成するのに用いられる。異なる引数をダイアログ・ボックス1036において特定することによって、同じテンプレートを用いて異なるインスタンスが作成される。
図10A及び10Bは、テスト・フローを特定する際のステップを示している。しかし、このユーザ・インターフェースは、図4ないし9のデータ・スプレッドシートのためのユーザ・インターフェースと同じであることに注意すべきである。従って、プログラム・フローを特定するために、特別のトレーニングは何も必要とならない。また、ダイアログ・ボックス1036に入力される引数は、他のスプレッドシートの名称か、又は、スプレッドシートの中で定義される値であることがほとんどである。従って、デバイス・データは、プログラム・フロー情報との組合せが容易であり、ソフトウェアの開発時間をかなり節約することができる。この利点は、デバイス・データとプログラム・フローとの両方がスプレッドシートにおいて表されているという事実に起因する。
他のプログラム・フロー情報は、図11Aに示されているスプレッドシートに入力される。インスタンスがいったん定義されると、実行される順序が特定されなければならない。更に、インスタンスがテスト・ジョブの中のテストを記述するので、テスト・インスタンスが合格するか又は失敗する場合にどのイベントが生じるかに関する情報が提供されなければならない。この情報の全体が、他のフローやデバイス・データ・スプレッドシートと同じインターフェースを用いて、スプレッドシートの中にユーザによって入力される。
データ・フィールド1130の中には、テスト・ジョブにおけるそれぞれのステップに対して特定されなければならない情報を保持する複数のコラムが存在する。データ・フィールド1130におけるそれぞれのローは、テスト・ジョブにおける1つのステップに関する情報を保持している。コラム132は「OPCODE」とラベル付けされる。このコラムは、この特定のステップにおいて何が起こるのかを指示する。一般的に、OPCODEコラム132におけるそれぞれのエントリは、テスト・インスタンスである。
コラム1134は、テストにおけるステップ番号を含む。ステップ番号は、テスト・システムがそのテストの実行に関する報告に用いることができる。例えば、欠陥がテストの間に検出された場合には、欠陥が検出されたステップ番号を報告することができる。
コラム1136は、合格ビン番号(pass bin number)を含む。それぞれのデバイスがテストされる際に、テスタは、一般に、テスト対象デバイスに、テストの結果に対応する「ビン」番号を割り当てる。ビン番号は、パーツのグレード付け(grading)を示す。例えば、あるビン番号は、デバイス仕様の程度まで動作するパーツを表す。他のビン番号は、欠陥があり役に立たないパーツを示す。更に別のビン番号は、仕様の範囲内の動作はしないが、程度を落とした仕様の程度であれば十分に機能を果たすデバイスを示す。テスト・エンジニアが、ビン番号とその意味とを割り当てる。
コラム1138も同様である。これには、テストが失敗した場合に割り当てられるビン番号を含む。
データ・フィールド1130は、示されている範囲を超えたそれ以外のコラムを含みうる。図11Bは、より複雑なフロー制御のためのより多くのコラムの情報によって拡張されたデータ・フィールド1130Bを有するフロー・シートを示している。例えば、データ・フィールド1130Bは、フラグ・フィールド1156及び1158を含む。フラグ・フィールド1156は、オプションで、あるステップで特定されたテストに合格した場合に「真」(true)であると設定されるフラグ、すなわち、ブール変数(boolean variable)と同じものを含む。フィールド1158も同様であるが、テストが不合格であった場合に設定されるフラグの名称を含む。
データ・フィールド1130Bにおける他のコラムは、複数のデバイスが同時にテストされるような場合のより複雑なフローに用いられ得る。例えば、コラム1152は、任意のローにおいて特定されたステップがどのデバイスに適用され得るかを示している。それまでのすべてのテストに合格してきたデバイスにだけ他のテストを実行することがありうる。また、先行する1回のテストに合格しなかったデバイスにだけ他のテストを実行することがありうる。
コラム1154は、テストの結果をどのデバイスに適用すべきかを特定する。
これらの示されているもの以外のコラムを用いることもありうる。そのステップにおけるテスト・インスタンスの実行の前に、あるブール表現の評価が与えられている条件フィールドを含むコラムもありうる。このようにして、条件的なプログラム・フローを実現することができる。この機能は、それがブール表現をとることを許容することによって、コラム1152と組み合わせることができる。真であると評価されるブール表現は、テストがすべてのデバイスに対して実行されることを示す。逆に、表現が偽(false)であると評価される場合には、テストはすべてのデバイスに対して行われるとは限らない。ブール表現をそれぞれのデバイスに対して特定できる場合には、混合的(ハイブリッド)な状況もありうる。図11Bの例では、コラム1152は、「すべて」に関して一定値を有する何らかの値を含む。そのような値は、そのローにおいて参照されたテストがすべてのデバイスに対して無条件的に実行されるべきであることを示している。しかし、他のローは、先行するローにおいてコラム1156又は1158にリスト化されているフラグを参照するブール表現を示している。更に、これは、セルがその中ではある値に設定されデバッギング・ブレーク・ポイント(debugging break point)のように作用するコラムを含みうる。
図11Bに示されている情報は、既存のテスタをプログラムするために特定されなければならない情報と類似している。しかし、図11Bのフロー情報は、複数のローとして構成され、それぞれのローは、それぞれの中に複数の種類の情報を有している複数のコラムを含む。フロー情報をテキスト・ファイルの中に記憶するのと比較すると、市販のスプレッドシート・プログラムを用いることから帰結されるロー及びコラムの構成は、プログラマにとってははるかに直感的であり、それによって、プログラマは、フローをより迅速にプログラムすることを学ぶことになる。第2の利点は、図11Bに示されているフロー情報を操作するための構造及びツールが、市販のスプレッドシート・プログラムによって提供されるということである。このようにして、ソフトウェアの開発をより迅速に行うことができる。
図11Cは、フロー制御情報を特定することができる別の方法を示している。図11Cは、低級の制御ソフトウェア314(図3)のオプションを修正するオプションを特定するのに用いることができるポップアップ・オプション・ボックスを示している。オプションは、ダイアログ・ボックスの中の選択肢の上をクリックすることによって、人間であるテスト・エンジニアによって特定される。例えば、「すべてを実行せよ」というオプションによれば、1つのステップが失敗した場合であってもフロー制御ソフトウェア314にプログラム・フローにおけるすべてのステップを動作させることになる。このオプションが選択されないときには、特定のパーツのテストは、1つのステップが失敗すると、停止することになる。別の例としては、「最終のものを印刷せよ」というオプションの場合には、テスト・ジョブが終了すると、テストの結果が印刷されることになる。選択されないときには、結果は印刷されないが、ユーザによって読み出されるまで記憶されていることになる。更に別の例として、「計時を実行」(Do Time)のオプションによると、フロー制御ソフトウェアは、ジョブの開始とジョブの終了の時間を記録し、それによって、ジョブに要した時間の長さを記憶することができる。以下で説明されるように、フロー・データ・シートは、フロー・データ構造に変換される。特定されたオプションによって、この変換がなされる実際の方法が影響を受ける。
図12A及び12Bは、テスト・テンプレートのサンプルを示している。テスト・テンプレートは、ビジュアル・ベーシックで書かれているが、このビジュアル・ベーシックは、スプレッドシートに添付されたマクロを書くのに用いることができるプログラミング言語である。それぞれのマクロは、プログラミング言語における手順として用いることができ、従って、テスト・テンプレートとして用いることができる。
図12A及び12Bでは、複数の重要なポイントを見ることができる。第1に、全体的なプログラミング環境は、情報をデバイス・データとフロー・スプレッドシートに入力するのに用いられるものと同一である。同じツール・バー1210と、メニュ・バー1220と、タブ・フィールド1240とを有している。しかし、データ・フィールドの代わりに、テスト・テンプレート・スクリーンは、複数のラインのプログラム・コードを含む。
プログラム・コードのそれぞれのラインは、テスタ製造業者によって開発された他の手順をコールすることができるし、又は、ユーザが書くこともできる。ライン1250及び1254は、テスタ製造業者によって提供される機能へのコールを表している。ライン1250では、「PinHi」は、デバイス・ドライバ328(図3)の1つにアクセスし、特定されたピンをハイ(high)状態に設定する手順である。ライン1254では、「StartPatgen」は、タイミング及びシーケンシング回路120(図1)の動作を開始させるのと同じ機能である。
図12A及び12Bは、また、デバグ・ツール・バー1232を示している。新たな半導体デバイスが最初に開発されているときには、デバイス・エンジニアは、このデバイスの実際のパフォーマンスを測定しその設計が適切であるかどうかを評価することが必要である。欠陥が検出されたときには、デバイス・エンジニアは、何がうまくいかなかったのかを正確に割り出すことを望む。そのために、デバイス・エンジニアは、テスタを「デバグ・モード」で用いる。デバイス・エンジニアは、テスタが一度に1つの動作を実行するように制御し、それによって、それぞれの動作の結果を解析できるようにする。デバグ・ツール・バー1232は、好ましくは、市販のスプレッドシート・プログラムの一部として提供されている。
デバグ・ツール・バー1232は、様々なデバグ機能を実行するツールを含む。例えば、ツール1234は、コードにおけるブレーク・ポイントを設定する。ライン1254は、そのラインにおいてブレーク・ポイントが設定されていることを示すためにハイライトされる。テストを実行する間には、ブレーク・ポイントのマークが記されているラインを実行する前に、実行は停止する。とのときに、デバイス・エンジニアは、テスタ又はデバイスの状態をチェックすることができる。
ブレーク・ポイントにおいて実行が停止したときには、デバグ・ツール・バー1232上の他のツールが、実行がどのように継続するかを制御する。例えば、ツール1236によって、実行がそれ以後のすべての手順までステップ・バイ・ステップで進行することが可能になる。対照的に、他のツールでは、手順をスキップしてとばすことが可能になるし、更に別のツールによると、ある値が検査されることが可能になる。このようにして、デバイス・エンジニアは、デバイスの動作について多くのことを観察することができる。同じデバグ・ツールは、テスト対象デバイスのためのテストを開発しているテスト・エンジニアによって用いられることも可能である。有意義なことに、これらの能力のすべては、デバグ・ツールを備えたプログラミング言語と関連付けされている市販のスプレッドシート・プログラムを用いることによって、非常に低コストで提供され得る。
テスト・ジョブのためのデータ及びフロー情報がテスト・エンジニア又はシステムのそれ以外のユーザによって入力されると、ワークステーション110内のソフトウェアを動作させ、テスト・ジョブを制御することができる。図3に示されているように、テスト・ジョブの実行は、ユーザ入力に応答して、フロー制御ソフトウェア314によってなされる。図解されている実施例では、フロー制御ソフトウェア314は、C++言語として実現されている。より詳しくは、それは、DLLである。
図13は、フロー制御ソフトウェア314の動作を説明する流れ図である。フロー制御ソフトウェア314は、アイドル状態1310から始動する。フロー制御ソフトウェア314は、ソフトウェアへの入力に基づき、3つの異なる作用の中の1つを実行することができる。フロー制御ソフトウェア314がとりうる1つの作用として、テスト・ジョブのためのデータをテスト・ジョブの間にアクセスすることができるデータ構造に構成することがある。図10及び11と共に既に説明したように、テスト・ジョブは、インスタンスのリストとして特定され、インスタンスは、特定のデバイス・データとあるテンプレートとの関連付けによって特定される。更に、特定のインスタンスが実行される順序は、プログラムのフロー・データ・シートに入力される条件によって影響される。
ユーザ・コマンドに応答して、フロー制御ソフトウェア314は、実行されるそれぞれのテンプレートとそのテンプレートの実行のために用いられるデータとをリスト化するジョブ制御データ構造を構築する。テンプレートの実行順序を条件から決定することができる場合には、それは、テンプレートがコア・ブロック制御データ構造の中に配置される前に決められる。しかし、テンプレートの実行順序がテスト・ジョブが実行されるまで決められない場合には、ジョブ制御データ構造は、単に、テンプレートが実行される順序を決定するのに評価される条件に関する情報を含む。ジョブ制御データ構造は、インデクス付きのリストでありうるが、それ以外の実現例も可能である。
ジョブ制御データ構造を構築する際には、実行は、ステップ1312に進む。ステップ1312では、第1のテンプレートが決定される。テンプレートは、フロー・データ・シートにおける第1のインスタンスから決定される。このインスタンスと関連するテンプレートは、インスタンス・データ・シートから決定される。テンプレートに対するノーテーション(記号、notation)は、ジョブ制御データ構造に入力される。好適実施例では、このノーテーションは、テンプレートを実行するようにコールするサブプログラムの名称を示す。
ステップ1314では、選択されたテンプレート・サブプログラムのコールの際に送られるデータが識別される。どのデータを用いるべきかは、インスタンス・データ・シートから決定される。
ステップ1316では、特定のテスト・テンプレートのための用いられるデータのIDがジョブ制御データ構造に追加される。図3に示されているように、データ・マネジャが、データを、テスタ112(図1)に与えるために、エクセル・ワークブックからデバイス・ドライバに送る。後で詳細に説明されるように、データ・マネジャ316は、テスト・ジョブの間のテスタ112に送られる特定のデータを保持するパラメータ・データ構造をアセンブルする。パラメータ・データ構造におけるデータは、「コンテナ」(容器、containers)の中に構成されることにより、データに正しい「コンテナ」の名称を提供することによって、正しいデータがパラメータ・データ構造から選択されることが可能になる。フロー制御データ構造に加えられる引数は、データ・マネジャ316がパラメータ・データ構造から選択する正しい「コンテナ」を特定する。この情報は、好適実施例では、データ・シートに与えられた名称に基づいて選択されるテキスト・ストリングとして表される。コンテナには、同じテキスト・ストリングが関連付けされる。しかし、コンテナを識別する別の方法を、代わりに用いることもできる。
「コンテナ」の名称を表す引数に加えて、データ値である引数が特定のテンプレートによって用いられ、更に、アクチュエータ・データ構造に追加されることもありうる。
テンプレートを識別する情報とデータ値とがジョブ制御データ構造に追加されると、実行は、ステップ1318に進む。ステップ1318では、フロー・シートにおいて特定された次のテンプレートを実行するための条件が決定される。この条件は、実行すべき次のインスタンスでありうるフロー・シートにおけるすべてのありうるインスタンスを決定するために計算される。更に、それぞれのインスタンスが次になる条件が、論理方程式として表現される。テスト・ジョブの間に評価されなければならない値に対して、変数が用いられる。これらの論理的表現は、ジョブ制御データ構造にステップ1320において入力される。これらの論理的表現は、伝統的なプログラミングにおけるブランチング(分岐)命令と何が等しくなりうるかの条件として用いられる。
フロー制御シートの1つのローに対する情報が入力されると、実行は、ステップ1322に進む。ステップ1322は、フロー制御データ・シートにローが更にあるかどうかをチェックする。あるならば、実行は、ステップ1312までループする。フロー制御データ・シートにそれ以上ローがない場合には、フロー制御ソフトウェア314は、アイドル状態1310に戻る。
フロー制御ソフトウェア314は、そのアイドル状態にあるときには、ユーザからテスト・ジョブを実行せよとのコマンドを受け取ったり、又は、操作デバイス114から、テスト対象デバイスがロードされテストの準備ができていることを示す開始信号を受け取ったりする。テスト・ジョブを実行するようにとのコマンドを受け取ったときには、実行は、ステップ1324に進む。ステップ1324では、ジョブ制御データ構造からの第1のテンプレートが読み出される。テンプレートは、ジョブ制御データ構造からの特定の引数を伴うサブプログラムとしてコールされる。次に、テンプレート・サブプログラムが実行され、フロー制御ソフトウェア314に戻る。
テストを表すそれぞれのテンプレート・サブプログラムは、テストが合格だったのか不合格だったのかを指示する。テストの結果が指示されうる1つの方法として、テンプレート・サブプログラムが、値を、そのサブプログラム・テンプレートによって行われたテストの結果を指示するコール・プログラムに戻すようにコード化されているかどうかである。また、テンプレートか、又は、適切な場合にデバイス・ドライバは、テスタの状態をチェックしてテストが合格であった不合格であったかを判断するフローDLLの中の機能をコールすることができる。ステップ1326では、テスト・ジョブの状態は、コールされたばかりのテスト・テンプレートによって戻された値に基づいて更新される。例えば、テストは、エラーを検出することなく(すなわち、テストは合格)テスト・テンプレートが実行されたか又はエラーが検出されたかを示す。場合によっては、エラーは、テスト対象デバイスのビニング(binning)を容易にする数値を有することがある。
ステップ1328では、テストの新たな状態を用いて、ステップ1328においてジョブ・フロー・データ構造に記憶された論理的表現を評価する。この評価に基づき、次のテンプレートが、ステップ1320において記憶されたブランチング情報を用いて選択される。
実行は、次に、ステップ1330に進む。ステップ1330では、実行すべき別のテンプレートがあるかどうかが評価される。ある場合には、ジョブ実行は、ステップ1324へのループ上に戻る。それ以上のテンプレートがない場合には、フロー制御ソフトウェア314は、そのアイドル状態に戻る。
好適実施例では、テスト・ジョブの結果は、テストが終了したときに、ユーザ又は操作デバイス114に与えられることはない。データを提供すると、テスト・ジョブの実効速度を低下させることになる。従って、好適実施例では、それぞれのテスト・ジョブの実行結果は、リクエストがなされるまで、コンピュータ・メモリに記憶される。結果をリクエストすると、フロー制御ソフトウェア314が、アイドル状態1310からステップ1332に移動することになる。ステップ1332では、結果を人間であるユーザのために表示したり、操作デバイス114に送ったりすることができる。結果は、ユーザに都合の良い態様又は操作デバイスに対して適切な態様で表示のためにフォーマット化することができる。
データ・マネジャ316に関する詳細をここで述べることにする。データ・マネジャ316は、一連のC++「クラス」から構成されている。クラスは、関連する状態図(state diagram)を有さない。クラスは、他のプログラミング要素からのリクエストに応答して動作を実行する。クラスは、関連する「方法」を有する。それぞれの方法は、従来のプログラミング機能のようにコールして、クラス内に記憶されているデータにアクセスすることができる。
C++の方法は、他のC++プログラムによって直接的にコールされることができる。図3の実施例では、デバイス・ドライバ328は、C++手順として実現されているので、方法をコールしてデータ・マネジャ316内のデータを直接に読み出す又は変更することができる。エクセル・ワークブックは、C++ではないので、データ・マネジャ316からのデータを記憶したり検索したりする方法をコールするのにAPI(Application Program Interfaces)を必要とする。しかし、APIは、広く知られたプログラミング構造である。データは、ビジュアル・ベーシックのマクロを含むエクセル・プログラムと「SafeArray」と称されるフォーマットのデータ・マネジャ316との間でやりとりされる。SafeArrayは、市販のスプレッドシート・プログラムであるマイクロソフト・エクセルと共に用いることができるマイクロソフトOLE(Object Linking and Embedding Language)の一部である。
データ・マネジャ316は、「コンテナ」と称される。一連のメモリ構造として実現される。コンテナのフォーマットは、記憶されるデータのタイプに依存する。例えば、ピン・マップ・データは、レベル・シート・データを保持しているコンテナとは異なるフォーマットでコンテナに記憶されている。コンテナのフォーマットは、記憶される情報に基づき、既知のプログラミング技術を用いて定義される。
コンテナは、入れ子状(nested)にすることができる。例えば、ピン・マップに対するコンテナ内部には、複数のピン・グループが存在しうる。それぞれのピン・グループの中には、複数のピンが存在しうる。この例では、コンテナは、3つのレベルの入れ子構造(nesting)を有している。しかし、任意のレベルの入れ子構造を採用することができる。
C++STL(スタンダード・テンプレート・ライブラリ)は、クラス内のデータを操作するのに有用な方法を含む。これらの方法の中の2つとして、MAP及びVECTORがある。一般に、「コンテナ」は、コンピュータ・メモリの中に、論理的な順序ではなくプログラムによって作成された順序で配分されている。しかし、情報の検索をより容易にするために、コンテナの名称とメモリ内のその物理的位置との間に1組の「キー」(鍵)が作成される。これらのキーは、正確なキーを見つけることによって所望のデータを見つけることができるように、インデクスとして機能する。
MAPの方法は、バイナリ・ツリー(二進木、binary tree)のように分岐している1組のキーを作成する。VECTORの方法は、リストのような、順序付けがなされたインデクスを作成する。MAPの方法の長所は、ランダムなアイテムを迅速に発見することができるということである。MAPの方法の短所は、順序付けが失われているということである。例えば、ピンマップ・データ・シートにおけるピンの順序は、テスト・プログラムにとって重要な情報である。MAPの方法だけを用いると、結果として、順序が失われてしまう。データをデータ・マネジャ316に記憶する方法は、MAP及びVECTORのSTLの組合せを用いて、それぞれの長所を達成している。
記憶及び検索機能に加えて、データ・マネジャ316は、必要となるデータ管理機能を実行する他の方法を含む。追加的な機能は、SELECT DEFAULT機能である。既に述べたように、1つのテスト・ジョブに複数のピン・マップが存在することがありうる。SELECT DEFAULTの方法は、どのデータの組をデフォルトとして用いるかを指示する。例えば、テスト・ジョブが2つのピン・マップPIN MAP1及びPIN MAP2を有する場合には、PIN MAP1が、デフォルトに設定される。ピン・マップ・データを検索する検索する検索機能をどのように用いても、検索動作が実行されるときにPIN MAP2が明白に指示されていなければ、データは、PIN MAP1から取得される。
データ・マネジャ316には、SELECT ACTIVEの方法もまた、含まれうる。この方法は、SELECT DEFAULTと類似しているが、用いられ得るコンテナを特定する。
含まれうる別の方法に、REPLACEの方法がある。既に述べたように、データ・マネジャ316は、テスト・ジョブが特定のデバイスをテストするデータのための一連のコンテナである。テスト・ジョブの開発の間に、又は、特定のジョブにおけるテストの間に、そのデバイスに対するデータのいくつかを変更することが望ましい場合がありうる。REPLACEの方法によれば、1組のデータが別のものと交換されることが可能となる。例えば、ユーザがテスト・ジョブの開発プロセスの一部としてデバイスのピン・マップ・スプレッドシートを編集した場合には、ピン・マップ・データ・シートと関連するマクロは、自動的にREPLACEの方法をコールして、テスト・ジョブが実行されるときに新たなデータが用いられることを確認する。データが変更されたときに自動的に実行されるのではなく、REPLACEの方法は、ユーザ入力に応答して動作するマクロによってコールされる。
データ・マネジャにおけるデータがデバイス・ドライバ328によって変更される場合には、同様の方法が必要となる。既に述べたように、データ・マネジャ316は、本質的に、エクセル・ワークブックの中に維持されるデータとは別個のデータのコピーを維持する。エクセル・ワークブックの中の変更は、REPLACEの方法によって、データ・マネジャ316において反映される。データ・マネジャの中のデータがワークブックの内部においてではなく変更された場合には、REPLICATEの方法が必要となる。例えば、デバイス・ドライバたデータ・マネジャにおけるコンテナの1つの中の値を変更する場合には、データ・マネジャ316は、REPLICATEの方法をコールすることになる。
REPLICATEの方法は、現在のデータをデータ・マネジャ316から読み戻すエクセル・ツールをコールする。データは、適当なエクセルのスプレッドシートの中にロードされ、これによって、ワークブックと関連するエクセルの機能は、変更されたデータに基づいてすべてのデータを再計算することになる。そして、変更されたすべてのスプレッドシートにおけるデータは、データ・マネジャにおいて、交換される。データ・マネジャによって記憶されたデータを変更する動作を実行するテスト・テンプレートは、実行を終了すると、REPLICATEの方法を用いる。
動作
以上で、テスタ112を制御するソフトウェアの構造を説明した。このソフトウェアの多くの使用が可能である。1つの可能性のある使用法は、最初にテスト・ジョブを開発し、次に半導体デバイスを製造する間にそのテスト・ジョブを反復的に実行するように用いることである。また、可能性のある使用法は、デバイス・エンジニアが、必要であれば、最初にテスト・テンプレート320を編集することであろう。非常に少数のテスト・テンプレートで多くの種類のデバイスをテストすることができることが意図されている。従って、テスト・テンプレートの編集が要求される可能性は低い。
半導体テスト・デバイスの開発者が選択する可能性のある次のステップは、デバイス・データとフロー開発ツール310(図3)とを用いることである。これらのツールは、開発されている特定のデバイスに対してエクセル・ワークブックを開くことによってアクセスすることができる。特に、これらのツールは、図4ないし11に示されているスプレッドシートを表している。マクロ又はウィザードを用いて、これらのフォームに関してユーザを誘導することができる。有効化マクロを、特定のシートに対するデータ・エントリが完了したときに動作させ、他のデータと一貫性のないデータはすべて検出され訂正されるようにすることができる。例えば、プログラマは、ピン・マップにない特定のピンに対するデータ値を入力することができる。しかし、そのような入力は、エラーを示すのであり、その理由は、そのピンがピン・マップから偶然に取り去られたからであったり、又は、特定のピンに対して誤った名称が用いられたからである。
好適実施例では、ソフトウェアは、データが入力されなかった又は変更され有効化されなかった場合にはテスト・ジョブが動作しないようにコード化される。有効化は、ユーザによって、カスタム・メニュ・バーから選択されうる。
データがいったん入力されると、ユーザは、「コンパイル」のオプションを選択する。好適実施例では、このコンパイル・オプションは、フロー・データ・シートに関連するカスタム・メニュ・アイテムから選択される。コンパイル・オプションによって、フロー制御ソフトウェア314が、ジョブ・フロー・データ構造を構築することがトリガされる。また、これによって、データ・マネジャ316内の方法が、エクセル・ワークブックからデータ・マネジャにデータを転送することになる。
開発環境では、テスト・エンジニアは、次に、プログラムのデバッギングのプロセスを開始する。おそらく、このエンジニアは、デバイスをテスタ112に接続する。また、テスト・エンジニアは、シミュレータを用いてテスト・プログラムをデバッギングする可能性もある。シミュレータとは、それに接続されたデバイスを用いてテスタ112の動作をシミュレートするソフトウェア・プログラムである。
エンジニアは、既に述べたようなデバッギング・ツールを用いて、プログラムを検査することがありうる。テスト・エンジニアは、プログラムにおけるエラーを検出する際に、テスト・テンプレートを編集することもありうる。テスト・テンプレートは翻訳された言語であるビジュアル・ベーシックで書かれているので、テスト・ジョブをリコンパイル(recompile)することなく、この変更は直ちに効力を生じることができる。
また、テスト・エンジニアは、デバイス・データ構造の1つにおいてデータのいくつかを変更する必要が生じることもある。テスト・エンジニアは、図4ないし11に示されたスプレッドシート・スクリーンを介してデータにアクセスし得る。次に、有効化プロセスが再び動作する。有効化プロセスの一部として、REPLACEツールが自動的にランする。REPLACEツールを自動的に用いることによって、データ・マネジャ316が日付データまでを提供することが保証される。
デバッギングの一部としてテスト・エンジニアがプログラム・フローを変更する場合には、フローは、新たなジョブ・フロー構造が構築され得るようにリコンパイルされなければならない。
要求された変更がデバイス・データ、テスト・テンプレート又はデバイス・フローに対してなされると、テスト・ジョブを再度ランさせることができる。テスト・プログラムに変更を加えるのに要する時間は、非常に短いことがありうる。従来技術によるいくつかのシステムでは、テスト・ジョブに対するどのような変更でも、非常にわずかなものであっても、完全なリコンパイルが要求された。結果として、そのような変更でも、1時間程度を要することがあった。本発明では、テンプレートへの変更は、リコンパイルを全く要求しない。デバイス・データへの変更がなされると、変更されたデータが再ロードされることだけが要求される。変更された場合にコンパイルされなければならないのは、プログラム・フローだけである。コンパイルはフローだけを扱うのであって、すべてのデータを扱うとは限らないので、数秒で実行することができる。
典型的な開発のセッティングでは、テスト・エンジニアは、テスト・ジョブが予測されたとおりに実行されるまでは、テスト・ジョブを変更するプロセスを反復する。完了すると、テスト・ジョブは、製造のセッティングに転送される。製造セッティングでは、デバイス・データ及びフロー開発ツールは、用いられない。同様に、カスタム・インターフェースが開発される。カスタム・インターフェースは、テスタを動かしてパーツをテストするのに必要な制御だけを提供し、基本的な出力情報だけを表示してオペレータにテストが進行していることを知らせる。テスタは多くのデータを測定し記憶することができるが、製造環境ではオペレータに対しほんのわずかな部分だけが提示される。
ソフトウェアはエクセルを用いて実現されているが、ビジュアル・ベーシックのプログラミング言語を用いて、カスタム製造インターフェースを準備することができる。インターフェースにおいて可能性のあるのは、テストを開始し、テストを終了し、いずれかのテストに合格しなかったデバイスの数を示す表示を行うという制御である。
他の実施例
以上で1つの実施例を説明したが、多くの別の実施例又は変更例が可能である。例えば、本発明は、本体(ボディ)と別個のコンピュータ化されたワークステーションとを有するテスタに関して説明されている。しかし、コンピュータ化されたワークステーションがテスタ本体と物理的に分離していることは必要ない。例えば、テスタ本体の内部に組み入れることも可能である。それ以外の構成も可能である。例えば、テスタには、メインフレームとテスト・ヘッドとを有するものがある。しかし、本発明の目的のためには、テスタは、1つ又は複数の異なるパッケージであってもよい。
特定のデータ及びフロー・シートの例を与えてきた。それぞれのローは、特定の数のコラムを有し、それぞれのコラムは、フローにおけるアイテム又はステップに関する特定のタイプの情報を含むように、示した。動作されるタイプによって、テスタのハードウェアや、テスト対象のデバイスの要件、それぞれのローに含まれる情報の数及び種類は、異なることがある。より多く又はより少ないコラムでもかまわない。1つの可能性としては、それぞれのタイプのスプレッドシートに対してスーパー・セット(super set)の可能なコラムを有することである。ユーザは、次に、どのコラムが特定のジョブに対して重要であるのかを選択する。ウィザード(Wizard)を提供して、選択プロセスによってプログラマを誘導することもできる。ウィザードとは、ユーザに選択を促すマクロである。特定のスクリーン上の表示のために選択されていないスーパー・セットにおけるこれらのコラムは、スプレッドシートから全体を削除することができるし、与えられるが表示されないことも可能である。存在するが表示されないコラムは、無視されるか、又は、デフォルト値を与えられる。
フロー制御ソフトウェア314はC++で書かれているものとして説明してきた。C++はビジュアル・ベーシックよりも高速に実行することができると広く考えられている。ビジュアル・ベーシックは、市販のスプレッドシート・プログラムであるエクセルの一部であるプログラミング言語である。しかし、フロー制御ソフトウェアがC++で書かれている場合にはより高速に実行されるが、デバイスへのインターフェースと、エクセル・プログラムを用いたフロー・データ入力とに要する時間は、より低速であることが認識された。従って、場合によっては、フロー制御ソフトウェアをビジュアル・ベーシックや、市販のスプレッドシート・プログラムの一部である他のマクロ・プログラミング言語で実現することが好ましい。
図13との関係で既に述べたことであるが、フロー制御ソフトウェア314は、単一のパーツをテストするテスト・ジョブを制御する。テスタ112は、数百から数千個のピン124を有していることが多い。従って、複数のパーツをテスタ112に同時に接続するのに十分なだけのピンが存在している。この場合には、ピンは、「サイト」(sites)としてグループ化されている。それぞれのサイトにおけるピンは、同一のデータを取得し、同じ測定を行う。しかし、1つのサイトが1つのエラーを検出する場合には、異なる処理がそのサイトに対して必要となる可能性がある。従って、フロー制御ソフトウェア314は、複数のサイトに対して複数のテストを同時に実行するように構成することができる。しかし、どれかのサイトが故障する場合には、そのサイトは、別個にテストされることになる。この機能を実行するには、ステップ1326を変更し、サイトの状態を別々にトラッキングすることがありうる。次に、ステップ1328は、変更され、それぞれのサイトにおけるデバイスがテスト・ジョブにおける何らかのテストに合格したか不合格であったかによって、それぞれのサイトに対するテンプレートを選択する。
また、テスト・システムは半導体素子をテストすると説明してきた。プリント回路ボード又はそれ以外のデバイスに対するテスト・システムを制御するのにも、同様のソフトウェアを用いることもできる。
更に、市販のスプレッドシート・プログラムを用いることによってテスト・システムを制御するソフトウェアをユーザが容易に理解することができる態様で迅速に実現することができるようになることを説明してきた。図14は、実現可能な別のツールの例を示している。図14は、デバグ又は解析ツールとして用いられることが主に意図されたツールを示している。ここでは、データ入力スクリーンが示されている。このスクリーンは、スプレッドシートではなくビジュアル・ベーシックを用いてダイアログ・ボックスとして実現されている。図14の特定の例は、ただ1つのピン(図1)のハードウェア・セットアップに関係する。ダイアログ・ボックスは、データを入力することができる複数のフィールドを含んでいる。データは、テスタにおけるハードウェアに送られる値を表す。このダイアログ・ボックスが用いられるときには、これは、フロー制御314を介する通常のデータ経路をバイパスし、直接にデバイス・ドライバ328をコールしてテスタ・ハードウェアにアクセスする。
可能性のある変更の別の例として、市販のスプレッドシート・プログラムは、エクセル以外のものや、図面に示したもの以外のバージョンのエクセルを用いることもできる。図15には、マイクロソフト社から販売された市販のスプレッドシート・プログラムであるエクセル97を用いて実現されたデータ・エントリ・スクリーンの例を示してある。複数の追加的な特徴が、エクセル97を用いることを通じて可能である。制御要素1510は、グループ表示制御である。複数のローのデータが同じグループに書き込まれた場合には、表示は、ただ1つのローだけがそのグループを表示する専用となるように、隠れてしまう可能性がある。図15では、例えば、1512及び1514において示されたローは、すべて、「rdcycle」と命名されるタイム・セットの中にある。すべてのローが示されており、グループは拡張(復活)したと称される。しかし、グループ表示制御1510が用いられる場合には、ただ1つのローだけがそのグループに対して示される。他のローを見ることができないにもかかわらず、それらのローは、図15のデータ・エントリ・スクリーンを用いて実行される任意の動作によって作用を受ける。
エクセル97の使用を介して用いられる別の特徴として、データを、そのタイプに基づいて異なる外観にすることがある。例えば、セル1516内のデータは、セル1518の中のデータとは異なる外観を有する。この理由は、セル1516におけるデータには、アドレス・バスのためのタイプが割り当てられ、セル1518の中のデータには、データ・バスのためのタイプが割り当てられているからである。異なるタイプのデータを視覚的に区別することによって、ソフトウェアをより容易に用いることが可能になる。
図16A及び16Bには、行うことができるそれ以外の強化策(enhancements)が図解されている。グループ制御要素1610は、その拡張(展開)状態で示されている。従って、「General Info」として示されているグループに対して示された要素のリストが存在する。対照的に、グループ制御1612は、その非拡張状態で示されている。このように、グループ「Digital Setup」に対するエントリは示されていない。
図16A及び16Bは、また、グループを視覚的に区別可能とすることの利点を強調している。例えば、フィールド1614及び1616は、異なるタイプのデータを含むために異なる外観を呈する。
図16A及び16Bに示されている別の特徴は、ナビゲーションの特徴である。これまでの例では、ツールにアクセスするには、スクリーンの最下部にあるタブを選択することによった。図16A及び16Bは、スクリーンは「ホット・リンク」を用いて相互にリンクすることが可能であることを示している。別のスクリーンからスクリーンの名称をクリックすることにより、ユーザは、スクリーン表示を変更することができる。また、ナビゲーション・ツール・バーは、所望のデータ・スクリーンを見つけるために有用なツールを含んでいる。ナビゲーション・ツール・バーは、インターネット・ナビゲータで見出されるツールを含む。このツールは、先のスクリーンに移動するとか、予め特定しておいた好みのスクリーンに行くなどの動作を実行する。
エクセル97を用いることの別の利点として、それが、オブジェクト指向言語である点がある。それぞれのデータ・スクリーンはオブジェクトである。データ・スクリーンなどのそれぞれのオブジェクトは、それに関連するクラスを有している。すべてのデータ・シートにベース・クラスを与えることが可能であり、このベース・クラスが、任意のデータ・シートに共通の動作を定義する。例えば、エラー処理、データ・タイプ及びフォーマッティングなどが、ベース・クラスにおいて定義されうる。データの有効化やデータのデータ・マネジャへの送出などそれ以外の機能は、そのベース・クラスに対する「公共的な方法」(public methods)として定義することができる。このようにして、これらの能力の全体が、すべてのデータ・スクリーンに提供される。ただし、これらが特定されるのは1回だけである。等しく重要なことであるが、それぞれのデバイス・データ又はフロー・データ・ツールは、同じように動作する。
オブジェクト指向プログラミングを用いることによって可能となるこれ以外の変更は、シート間のエラー(inter-sheet errors)を瞬間的に有効化することである。有効化規則は特定することができ、データは、入力されたときにチェックされる。複数のシートの間で一貫性のないデータをチェックする有効化ルーチンは、依然として動作させることができる。
従って、本発明は、請求の範囲の精神と範囲とによってだけ限定されるべきものである。
Claims (8)
- 複数のテスト信号を生成及び測定する電子回路(120、122、124、126、128)を保持するテスタ本体(112)と、
前記テスタ本体(112)内の前記電子回路に制御情報を提供するコンピュータ・ワークステーション(110)と、
を有する半導体テスト・システムにおいて、
前記コンピュータ・ワークステーションは、制御ソフトウェアによって制御され、該制御ソフトウェアは、
それぞれが前記テスタ本体内の前記電子回路の一部を制御するように配置された複数のデバイス・ドライバ・プログラム要素(328)と、
市販のスプレッドシート・プログラムにより作成された複数タイプのスプレッドシート(312)であって、
テスト対象デバイスに関するデータを保持するように構成された第1タイプのスプレッドシートと、
テスト対象デバイスに対するテスト・ジョブの間に実行されるステップに影響を及ぼすテストフロー情報を保持するように構成された第2タイプのスプレッドシートと、
を含む複数タイプのスプレッドシートと、
前記第2タイプのスプレッドシートからテストフロー情報を受け取り、前記受け取ったテストフロー情報によって決定される前記第1タイプのスプレッドシートに含まれるデータを、前記受け取ったテストフロー情報によって決定される順序で前記複数のデバイス・ドライバ・プログラム要素に提供することによってテスト・ジョブの実行を制御する制御プログラム手段(314、316、320)であって、前記第2タイプのスプレッドシートからテストフロー情報を読み出すように統合された前記スプレッドシート・プログラムに含まれる統合型プログラム言語で書かれたフロー制御プログラム手段(314)を含む制御プログラム手段と、
を備えることを特徴とする、半導体テスト・システム。 - 請求項1に記載の半導体テスト・システムにおいて、前記複数タイプのスプレッドシートはワークブックに構成され、前記ワークブック内の1つのスプレッドシートにおけるデータは、前記ワークブック内の別のスプレッドシートにおいて利用可能である、半導体テスト・システム。
- 請求項1又は2のいずれかに記載の半導体テスト・システムにおいて、前記制御ソフトウェアは、前記テスト・ジョブの1つのステップの間に実行される機能をそれぞれ表す複数のテスト・プログラム要素を更に含み、前記第2タイプのスプレッドシートの一つは複数のローを含むフロー・シートであり、前記複数のローの少なくとも一部は、それぞれが、
前記テスト・プログラム要素に対する識別子と、
前記テスト・プログラム要素が実行にあたり失敗を示した場合に、前記テスト対象デバイスに割り当てられる分類の表示と、
を含む、半導体テスト・システム。 - 請求項3記載の半導体テスト・システムにおいて、フロー・シートにおける前記複数のローの少なくとも一部は、それぞれが、
前記テスト・プログラム要素が実行にあたり失敗を示した場合に設定されるフラグの名称と、
前記テスト・プログラム要素がどのテスト対象デバイスに適用されるべきかを指示するブール表現であって、1つのローにおける前記ブール表現は、先行する他のローにリスト化されているフラグを参照する、ブール表現と、
を更に含む、半導体テスト・システム。 - 請求項3又は4記載の半導体テスト・システムにおいて、それぞれのフロー・シートは、該フロー・シートと関連付けられた手段であって、前記テスト・ジョブの実行を修正する引数を入力する手段を更に備える、半導体テスト・システム。
- 請求項3〜5のいずれかに記載の半導体テスト・システムにおいて、前記テスト・プログラム要素のそれぞれはテスト・テンプレート(320)を含み、前記複数のスプレッドシートの前記第2タイプのスプレッドシートの一つは、複数のローを含むインスタンス・シートであり、前記複数のローの少なくとも一部は、それぞれが前記テスト・テンプレートを用いてテスト・インスタンスを定義し、
前記テスト・テンプレートに対する識別子と、
前記テスト・インスタンスに対する識別子と、
を含み、
前記インスタンス・シートは、前記テスト・テンプレートと組み合わされて前記テスト・インスタンスを形成する前記第1タイプのスプレッドシートのうちの選択されたスプレッドシートを特定する手段(1036)を更に含み、
前記フロー・シートにおけるテスト・プログラム要素に対する前記識別子は、テスト・インスタンスに対する前記識別子である、
半導体テスト・システム。 - 請求項6記載の半導体テスト・システムにおいて、前記テスト・テンプレートのそれぞれは、翻訳されたプログラミング言語で書かれている、半導体テスト・システム。
- 請求項1〜7のいずれかに記載の半導体テスト・システムであって、前記制御ソフトウェアは、
市販のスプレッドシート・プログラムにおけるアプリケーションとして実現され、
前記コンピュータ・ワークステーションのディスプレイに表示されて、テスト対象デバイスに関するデータ及びテスト・プログラムのフローに関するデータのユーザによる入力をそれぞれ受け取る複数のデータ入力画面を生成する、制御ソフトウェアであり、
前記データ入力画面のそれぞれは、
a)ロー及びコラムに形成された複数のデータ・セルを有するデータ・セル・フィールドであって、それぞれのコラムは同一タイプのデータを保持し、前記複数のデータ入力画面のうち第1部分に含まれる一又は複数のデータ入力画面におけるデータ・セルはテスト対象半導体デバイスに関するデータを保持し、前記複数のデータ入力画面のうち第2部分に含まれる一又は複数のデータ入力画面におけるデータ・セルは前記テスト対象半導体デバイスのためのテスト・プログラム実行のフローに関するデータを保持する、データ・セル・フィールドと、
b)複数のツール・アイコンを有するツール・バー・フィールドであって、前記ツール・アイコンは、前記テスト対象半導体デバイスに関するデータまたは前記テスト・プログラム実行フローに関するデータを変更する操作機能を表す、ツール・バー・フィールドと、
c)前記複数のデータ入力画面をそれぞれ表す複数のタブを有し、それぞれのタブが異なるデータ入力画面にアクセスするように選択可能であるタブ・フィールドと、
d)それぞれが複数のサブメニュ・アイテムを示すように選択可能である複数のメニュ・アイテムを有するメニュ・バー・フィールドであって、前記メニュ・アイテムの少なくとも1つの下にある前記サブメニュ・アイテムは、前記タブ・フィールドで選択されたタブに応じて現れるサブメニュ・アイテムを含む、メニュ・バー・フィールドと、
を有する複数のデータ入力画面であって、
前記データ・セル・フィールド、前記ツール・バー・フィールド、前記タブ・フィールド及び前記メニュ・バー・フィールドが、前記複数のデータ入力画面のそれぞれにおいて同じ位置にレイアウトされるデータ入力画面を生成する制御ソフトウェアを備える、半導体テスト・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/874,615 | 1997-06-13 | ||
US08/874,615 US5910895A (en) | 1997-06-13 | 1997-06-13 | Low cost, easy to use automatic test system software |
PCT/US1998/011557 WO1998057187A1 (en) | 1997-06-13 | 1998-06-04 | Low cost, easy to use automatic test system software |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002505000A JP2002505000A (ja) | 2002-02-12 |
JP4972244B2 true JP4972244B2 (ja) | 2012-07-11 |
Family
ID=25364174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50287199A Expired - Lifetime JP4972244B2 (ja) | 1997-06-13 | 1998-06-04 | 低コストで使用が容易な自動テスト・システム用ソフトウェア |
Country Status (6)
Country | Link |
---|---|
US (1) | US5910895A (ja) |
EP (1) | EP0988558B1 (ja) |
JP (1) | JP4972244B2 (ja) |
KR (1) | KR20010013719A (ja) |
DE (1) | DE69826659T2 (ja) |
WO (1) | WO1998057187A1 (ja) |
Families Citing this family (105)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047293A (en) * | 1997-09-16 | 2000-04-04 | Teradyne, Inc. | System for storing and searching named device parameter data in a test system for testing an integrated circuit |
US6029262A (en) * | 1997-11-25 | 2000-02-22 | Mosaid Technologies Incorporated | Graphical editor for defining memory test sequences |
US6834388B1 (en) | 1998-03-13 | 2004-12-21 | Iconics, Inc. | Process control |
US6077312A (en) * | 1998-05-06 | 2000-06-20 | International Business Machines Corporation | Apparatus, program product and method of debugging utilizing a context sensitive breakpoint |
JP2000122886A (ja) * | 1998-10-10 | 2000-04-28 | Advantest Corp | 半導体試験装置のプログラム作成方式 |
AU1115700A (en) | 1998-10-16 | 2000-05-08 | Iconics, Inc. | Process control |
US7017116B2 (en) | 1999-01-06 | 2006-03-21 | Iconics, Inc. | Graphical human-machine interface on a portable device |
US6499121B1 (en) * | 1999-03-01 | 2002-12-24 | Formfactor, Inc. | Distributed interface for parallel testing of multiple devices using a single tester channel |
US6452411B1 (en) | 1999-03-01 | 2002-09-17 | Formfactor, Inc. | Efficient parallel testing of integrated circuit devices using a known good device to generate expected responses |
US6480978B1 (en) * | 1999-03-01 | 2002-11-12 | Formfactor, Inc. | Parallel testing of integrated circuit devices using cross-DUT and within-DUT comparisons |
US20030121011A1 (en) * | 1999-06-30 | 2003-06-26 | Cirrus Logic, Inc. | Functional coverage analysis systems and methods for verification test suites |
US6490600B1 (en) | 1999-08-09 | 2002-12-03 | Cognex Technology And Investment Corporation | Processing continuous data streams in electronic spreadsheets |
US7882426B1 (en) * | 1999-08-09 | 2011-02-01 | Cognex Corporation | Conditional cell execution in electronic spreadsheets |
US6859907B1 (en) | 1999-08-09 | 2005-02-22 | Cognex Technology And Investment Corporation | Large data set storage and display for electronic spreadsheets applied to machine vision |
US6681351B1 (en) | 1999-10-12 | 2004-01-20 | Teradyne, Inc. | Easy to program automatic test equipment |
US6959433B1 (en) | 2000-04-14 | 2005-10-25 | International Business Machines Corporation | Data processing system, method, and program for automatically testing software applications |
US6687834B1 (en) | 2000-04-14 | 2004-02-03 | International Business Machines Corporation | Data processing system, method and program for generating a job within an automated test environment |
US6531972B2 (en) | 2000-04-19 | 2003-03-11 | Texas Instruments Incorporated | Apparatus and method including an efficient data transfer for analog to digital converter testing |
EP1167981A1 (en) * | 2000-06-19 | 2002-01-02 | Tektronix, Inc. | Method of operating a measurement instrument using a spreadsheet program |
US7155667B1 (en) * | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
CA2800037C (en) * | 2000-06-21 | 2014-12-16 | Microsoft Corporation | System and method for integrating spreadsheets and word processing tables |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US6507842B1 (en) | 2000-07-10 | 2003-01-14 | National Instruments Corporation | System and method for importing and exporting test executive values from or to a database |
TW594029B (en) * | 2000-08-25 | 2004-06-21 | Aidc Aerospace Ind Dev Corp | Human interface development system for test program of circuit board device |
US20020129334A1 (en) * | 2000-10-13 | 2002-09-12 | Dane Mark W.P. | Interface based design using a tabular paradigm |
DE10060206A1 (de) * | 2000-12-04 | 2002-06-13 | Siemens Ag | Programmiergerät |
US20020194217A1 (en) * | 2001-04-26 | 2002-12-19 | International Business Machnies Corporation | Metadata graphial user interface |
US6745140B2 (en) * | 2001-10-23 | 2004-06-01 | Agilent Technologies, Inc. | Electronic test system with test results view filter |
US20030145300A1 (en) * | 2002-01-28 | 2003-07-31 | Tran Trung M. | Layout tracking solutions |
US20030184294A1 (en) * | 2002-04-01 | 2003-10-02 | Boskamp Eddy Benjamin | Multiple channel, neuro vascular array coil for magnetic resonance imaging |
US7010782B2 (en) * | 2002-04-04 | 2006-03-07 | Sapphire Infotech, Inc. | Interactive automatic-test GUI for testing devices and equipment using shell-level, CLI, and SNMP commands |
EP1398717A1 (en) * | 2002-09-11 | 2004-03-17 | Atsmai Technology | Data refreshing process for a computer application |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7171587B2 (en) * | 2003-04-28 | 2007-01-30 | Teradyne, Inc. | Automatic test system with easily modified software |
JP4240293B2 (ja) * | 2003-05-27 | 2009-03-18 | 株式会社ソニー・コンピュータエンタテインメント | マルチメディア再生装置およびマルチメディア再生方法 |
US7152227B1 (en) * | 2003-06-17 | 2006-12-19 | Xilinx, Inc. | Automated assessment of programming language coverage by one or more test programs |
US9715678B2 (en) | 2003-06-26 | 2017-07-25 | Microsoft Technology Licensing, Llc | Side-by-side shared calendars |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7707255B2 (en) | 2003-07-01 | 2010-04-27 | Microsoft Corporation | Automatic grouping of electronic mail |
CN1567223A (zh) * | 2003-07-09 | 2005-01-19 | 松下电器产业株式会社 | 程序生成装置、方法及程序 |
KR20050009912A (ko) | 2003-07-18 | 2005-01-26 | 삼성전자주식회사 | 성능측정 시스템 |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US7376917B1 (en) * | 2003-08-25 | 2008-05-20 | Xilinx, Inc. | Client-server semiconductor verification system |
US7673197B2 (en) | 2003-11-20 | 2010-03-02 | Practical Engineering Inc. | Polymorphic automatic test systems and methods |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US7318063B2 (en) * | 2004-02-19 | 2008-01-08 | Microsoft Corporation | Managing XML documents containing hierarchical database information |
JP2005300324A (ja) * | 2004-04-09 | 2005-10-27 | Agilent Technol Inc | 被試験対象デバイスの測定データ解析方法、プログラム、および測定データ解析システム |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
US7290238B2 (en) * | 2004-05-12 | 2007-10-30 | International Business Machines Corporation | Method, system and program product for building an automated datapath system generating tool |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US20050273685A1 (en) * | 2004-06-08 | 2005-12-08 | Sanjay Sachdev | Automated and customizable generation of efficient test programs for multiple electrical test equipment platforms |
US7931661B2 (en) * | 2004-06-14 | 2011-04-26 | Usgi Medical, Inc. | Apparatus and methods for performing transluminal gastrointestinal procedures |
US7703036B2 (en) | 2004-08-16 | 2010-04-20 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US8255828B2 (en) | 2004-08-16 | 2012-08-28 | Microsoft Corporation | Command user interface for displaying selectable software functionality controls |
US8146016B2 (en) | 2004-08-16 | 2012-03-27 | Microsoft Corporation | User interface for displaying a gallery of formatting options applicable to a selected object |
US9015621B2 (en) * | 2004-08-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Command user interface for displaying multiple sections of software functionality controls |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US7904801B2 (en) | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US8010515B2 (en) | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
US20070011544A1 (en) * | 2005-06-15 | 2007-01-11 | Hsiu-Huan Shen | Reprogramming of tester resource assignments |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US8627222B2 (en) | 2005-09-12 | 2014-01-07 | Microsoft Corporation | Expanded search and find user interface |
KR100790470B1 (ko) | 2005-12-05 | 2008-01-02 | 한국전자통신연구원 | 디바이스 드라이버 테스트를 위한 테스트 케이스 자동 생성방법 및 장치 |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US9166809B2 (en) * | 2006-04-03 | 2015-10-20 | Verizon Patent And Licensing Inc. | Automated network testing |
US7567947B2 (en) * | 2006-04-04 | 2009-07-28 | Optimaltest Ltd. | Methods and systems for semiconductor testing using a testing scenario language |
US9727989B2 (en) | 2006-06-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
JP2008014778A (ja) * | 2006-07-05 | 2008-01-24 | Anritsu Corp | 携帯端末用デバイス測定装置 |
US7532024B2 (en) * | 2006-07-05 | 2009-05-12 | Optimaltest Ltd. | Methods and systems for semiconductor testing using reference dice |
JP4684183B2 (ja) | 2006-08-09 | 2011-05-18 | 株式会社日立ハイテクエンジニアリングサービス | 半導体試験装置のテストプログラム生成システム |
US8762880B2 (en) | 2007-06-29 | 2014-06-24 | Microsoft Corporation | Exposing non-authoring features through document status information in an out-space user interface |
US8484578B2 (en) | 2007-06-29 | 2013-07-09 | Microsoft Corporation | Communication between a document editor in-space user interface and a document editor out-space user interface |
FR2918759B1 (fr) * | 2007-07-13 | 2009-09-18 | Eurocopter France | Procede de test d'un systeme electronique |
US8131387B2 (en) | 2007-08-09 | 2012-03-06 | Teradyne, Inc. | Integrated high-efficiency microwave sourcing control process |
US20100023897A1 (en) * | 2008-02-20 | 2010-01-28 | Pikus Fedor G | Property-Based Classification In Electronic Design Automation |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US9665850B2 (en) | 2008-06-20 | 2017-05-30 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
EP2321751A4 (en) * | 2008-07-07 | 2014-03-05 | Quali Systems Ltd | SYSTEM AND METHOD FOR HARDWARE SEQUENCING AND AUTOMATIC SOFTWARE OF COMPUTER-AIDED DESIGN (CAD) FUNCTIONAL TESTING |
US20100229133A1 (en) * | 2009-03-03 | 2010-09-09 | Pikus Fedor G | Property-Based Classification In Electronic Design Automation |
US9046983B2 (en) | 2009-05-12 | 2015-06-02 | Microsoft Technology Licensing, Llc | Hierarchically-organized control galleries |
JP2011174730A (ja) * | 2010-02-23 | 2011-09-08 | Yokogawa Electric Corp | 測定装置 |
JP5566265B2 (ja) * | 2010-11-09 | 2014-08-06 | 東京エレクトロン株式会社 | 基板処理装置、プログラム、コンピュータ記憶媒体及び基板の搬送方法 |
DE102012205207A1 (de) * | 2012-03-30 | 2013-10-02 | Rheinmetall Defence Electronics Gmbh | Verfahren zum Erstellen eines Prüfprogramms für eine automatische Teststation |
CN103116617B (zh) * | 2013-01-29 | 2016-02-10 | 北京时代民芯科技有限公司 | 一种集成电路测试数据的处理方法 |
KR102218200B1 (ko) * | 2014-03-06 | 2021-02-23 | 삼성전자주식회사 | 스프레드 시트를 이용한 rtl 자동 합성 시스템, 방법 및 기록매체 |
CN106405373B (zh) * | 2016-08-29 | 2019-06-21 | 北京自动测试技术研究所 | 一种主动式测试向量匹配方法 |
US10592370B2 (en) * | 2017-04-28 | 2020-03-17 | Advantest Corporation | User control of automated test features with software application programming interface (API) |
CN107885711B (zh) * | 2017-11-13 | 2021-04-30 | 中国电子科技集团公司第四十一研究所 | 一种智能仪器的自动交检方法 |
CN110740009B (zh) * | 2018-07-20 | 2022-08-12 | 富联精密电子(天津)有限公司 | 数据传输校验装置及方法 |
US11169203B1 (en) | 2018-09-26 | 2021-11-09 | Teradyne, Inc. | Determining a configuration of a test system |
US11461222B2 (en) | 2020-04-16 | 2022-10-04 | Teradyne, Inc. | Determining the complexity of a test program |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860291A (en) * | 1987-12-28 | 1989-08-22 | Tektronix, Inc. | Test vector definition system employing template concept |
US5371851A (en) * | 1989-04-26 | 1994-12-06 | Credence Systems Corporation | Graphical data base editor |
US5495578A (en) * | 1992-04-06 | 1996-02-27 | Hewlett-Packard Company | Apparatus and method for changing the behavior of a computer program while retaining control of program execution |
US5303146A (en) * | 1993-03-11 | 1994-04-12 | Borland International, Inc. | System and methods for improved scenario management in an electronic spreadsheet |
US5471612A (en) * | 1994-03-03 | 1995-11-28 | Borland International, Inc. | Electronic spreadsheet system and methods for compiling a formula stored in a spreadsheet into native machine code for execution by a floating-point unit upon spreadsheet recalculation |
US5603021A (en) * | 1994-09-02 | 1997-02-11 | Borland International, Inc. | Methods for composing formulas in an electronic spreadsheet system |
US5721847A (en) * | 1994-10-21 | 1998-02-24 | Microsoft Corporation | Method and system for linking controls with cells of a spreadsheet |
US5673272A (en) * | 1996-02-13 | 1997-09-30 | Teradyne, Inc. | Apparatus and method for performing digital signal processing in an electronic circuit tester |
-
1997
- 1997-06-13 US US08/874,615 patent/US5910895A/en not_active Expired - Lifetime
-
1998
- 1998-06-04 KR KR1019997011734A patent/KR20010013719A/ko not_active Application Discontinuation
- 1998-06-04 EP EP98928897A patent/EP0988558B1/en not_active Expired - Lifetime
- 1998-06-04 JP JP50287199A patent/JP4972244B2/ja not_active Expired - Lifetime
- 1998-06-04 WO PCT/US1998/011557 patent/WO1998057187A1/en not_active Application Discontinuation
- 1998-06-04 DE DE69826659T patent/DE69826659T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69826659T2 (de) | 2005-10-06 |
DE69826659D1 (de) | 2004-11-04 |
EP0988558A1 (en) | 2000-03-29 |
US5910895A (en) | 1999-06-08 |
KR20010013719A (ko) | 2001-02-26 |
WO1998057187A1 (en) | 1998-12-17 |
EP0988558B1 (en) | 2004-09-29 |
JP2002505000A (ja) | 2002-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4972244B2 (ja) | 低コストで使用が容易な自動テスト・システム用ソフトウェア | |
US6681351B1 (en) | Easy to program automatic test equipment | |
US6408403B1 (en) | Method for integrating automated software testing with software development | |
US7302675B2 (en) | System and method for analyzing a graphical program using debugging graphical programs | |
US6473707B1 (en) | Test executive system and method including automatic result collection | |
US6397378B1 (en) | Test executive system and method including distributed type storage and conflict resolution | |
US6577981B1 (en) | Test executive system and method including process models for improved configurability | |
US6047293A (en) | System for storing and searching named device parameter data in a test system for testing an integrated circuit | |
JP3448106B2 (ja) | 高スループット検査装置 | |
US20070101196A1 (en) | Functional testing and verification of software application | |
EP1361446A2 (en) | Method and apparatus for generating electronic test programs and data structure | |
CN1892245A (zh) | 利用分级测试开发树指定器件及其测试设置的方法和装置 | |
US8527964B2 (en) | Measurement project analyzer | |
US7050921B2 (en) | Electronic test program with run selection | |
US8798971B2 (en) | System and method for using a truth table graphical function in a statechart | |
US7451358B2 (en) | Test executive system with automatic expression logging and parameter logging | |
Gooding et al. | Evaluation of three ATE test environments | |
Schott et al. | Closed-Loop Approach on Formal Specification for Semiconductor Test | |
CN112098769A (zh) | 一种元器件测试方法、装置及系统 | |
Kittross | Easy mixed signal test creation with test elements and procedures | |
Wegener et al. | Yet Another Computer-Aided Software Testing Tool? | |
McNeill | School of Mathematics, Statistics and Computer Science | |
Meunier et al. | DTULive: functional digital programming environment | |
Valle et al. | VISTA: virtual instrument standard test architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070925 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071225 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080325 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120228 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120409 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150413 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |