JPH11274261A - 集積回路を試験するデバイスの構成要素の許容差を試験するシステム - Google Patents

集積回路を試験するデバイスの構成要素の許容差を試験するシステム

Info

Publication number
JPH11274261A
JPH11274261A JP10324877A JP32487798A JPH11274261A JP H11274261 A JPH11274261 A JP H11274261A JP 10324877 A JP10324877 A JP 10324877A JP 32487798 A JP32487798 A JP 32487798A JP H11274261 A JPH11274261 A JP H11274261A
Authority
JP
Japan
Prior art keywords
test
driver
error
level
printf
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.)
Withdrawn
Application number
JP10324877A
Other languages
English (en)
Inventor
Heather L Stickler
ヘザー・エル・スティックラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH11274261A publication Critical patent/JPH11274261A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R35/00Testing or calibrating of apparatus covered by the other groups of this subclass
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31908Tester set-up, e.g. configuring the tester to the device under test [DUT], down loading test patterns
    • G01R31/3191Calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/165Indicating that current or voltage is either above or below a predetermined value or within or outside a predetermined range of values
    • G01R19/16528Indicating that current or voltage is either above or below a predetermined value or within or outside a predetermined range of values using digital techniques or performing arithmetic operations

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)

Abstract

(57)【要約】 【課題】自動試験装置の精度を改善する。 【解決手段】試験ヘッドに配置された複数の試験コネク
タを持ち、各試験コネクタが試験チャネルの電気信号を
運ぶ導体を持ち、各試験コネクタが少なくとも1つのド
ライバおよびレシーバを備える回路基板に対応している
集積回路を試験するデバイスの構成要素の許容差を試験
するシステムであって、第1および第2の試験コネクタ
の導体間に低インピーダンスの電気的な接続を確立し、
第1の回路基板の第1のドライバが、低インピーダンス
の経路を介して第2の回路基板の測定ユニットに電気的
に接続される短絡手段と、第1のドライバを制御して予
め定められた目標値の電気信号を出力するよう構成され
るコントローラと、測定ユニットにより受け取られた電
圧レベルが、予め定められた目標値の予め定められた量
の範囲内にあるか検証するよう構成される検証手段とを
備えるシステム。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、自動試験機を試験
するためのシステム、より具体的には、デジタル試験デ
バイスの信号の電圧レベルの精度を試験するための方法
および装置に関する。
【0002】
【従来の技術】様々な自動試験装置(ATE)が、電子
回路、デバイスおよび他の半導体や電子製品を試験する
のに長く知られている。一般に、自動試験装置は、2つ
のおおまかな種類、すなわちアナログ試験器(テスタ
ー)およびデジタル試験器に分類される。名前が意味す
るように、一般にアナログ試験器は、アナログ回路デバ
イスを試験するために設計され、デジタル試験器は、デ
ジタル回路デバイスを試験するために設計される。デジ
タル試験器は、既知であるように、一般に試験デバイス
を備える。試験デバイスは、プログラム可能なように制
御される試験信号を生成するいくつかの内部回路カード
またはチャネルを持ち、DUT(Device Under Test)を
試験して評価する。とくにATEは、プラグラム可能な
ように制御され、様々な方法で様々なデバイスを試験す
るのに適合または構成される。これは、出力信号をプロ
グラムすることにより達成され、DUT上のあるピンま
たは信号線に、ある信号(または信号の遷移)を注入す
る。この点について、デジタル試験器は、一般に試験ヘ
ッドを含み、これにより電気信号が試験器に入力され、
また試験器から電気信号が出力される。試験ヘッドはい
くつかのコネクタを備え、それぞれのコネクタはチャネ
ルを規定し、チャネルは、ケーブルまたは別の手段を介
して、試験されるデバイスに接続されることができる。
デジタル試験器内の電子回路は、試験ヘッドを介してD
UTに信号を入力することができ、またはDUTから信
号を出力することができる。
【0003】非常に単純な例として、とりわけ2つの入
力ANDゲートを備えるウェーハを試験するよう構成さ
れるデジタル試験器を考えてみる。ANDゲートの入力
に対応する2つの信号線に論理1を適用し、出力に対応
する信号線の信号を受け取って、それが確実に論理1に
なるよう、デジタル試験器を構成することができる。A
NDゲートの出力が、応答して論理1から論理0へ遷移
するのを検証するため、ANDゲートの入力に対応する
2つの信号線のそれぞれに論理0の信号を交互に適用す
るよう、試験器を構成することができる。このような試
験は、ANDゲートの機能演算を検証するけれども、追
加の試験を実行して、タイミングおよびANDゲートの
他の側面を検証しなければならない。
【0004】例えば、ANDゲートへの2つの入力信号
が論理1および論理0であり、また出力が論理0とす
る。第2の入力が論理0から論理1に遷移するとき(そ
れにより2つの入力は論理1となる)、ANDゲートの
出力は論理0から論理1へと遷移する。しかし、出力は
十分に「高い(ハイ、high)」状態に遷移することが重
要である。具体的には、既知であるように、デジタル論
理デバイスは、0から5ボルトの範囲で一般に動作す
る。ここで0ボルトは論理0であり、5ボルトは論理1
である。デバイスに負荷がかかった状態になると、デバ
イスはしばしば出力信号を完全に5ボルトにすることが
できない。したがって、ある範囲が、論理1とみなされ
る。例えば、2.4ボルト以上の出力(デバイスの仕様
に依存する)を、論理1と扱うことができる。このよう
にANDゲートの例を続けると、両方の入力が2.4ボ
ルト以上であるとき、出力レベルも少なくとも2.4ボ
ルトにならなければならない。自動試験器が、間違って
2.3ボルトの出力電圧を2.4ボルトとして解釈した
とする。試験された構成要素は「良好」と思われること
があり、この時実際には、それは製造者の仕様の許容差
(tolerance)からはずれている。上記の所与の例は非
常に単純な例であり、単に例示の目的のためだけに提示
されることは理解されるであろう。また当該技術分野の
当業者は、デジタル試験器が非常に精密であり、非常に
精密で複雑な試験ルーチンを実行することができること
を理解するであろう。
【0005】したがって、デジタル試験器も含めてAT
Eの非常に重要な側面は、試験装置が、非常に正確な許
容差を維持しているということである。そうでなけれ
ば、DUTの測定値が、DUT内のエラーまたは矛盾を
反映しているかどうか、あるいはエラーまたは矛盾が、
構成要素またはATE構成要素における他の許容差のば
らつきから生じているのかどうか、明らかでない。この
点について、一般に自動試験装置の製造者は、自動試験
装置に一組の内蔵試験(built-in-test,BIT)ルーチ
ンを備える。しかし、以下に詳しく記述するように、こ
れらの製造者により提供されるBITルーチンは、高速
な構成要素および大量製造の設備の今日の市場では、一
般に不十分なことがわかっている。
【0006】デジタル試験器は、一般にいくつかの類似
した(同一でない場合)チャネルを備える。それぞれの
チャネルはいくつかのドライバまたはレシーバを備え
て、出力信号を駆動(ドライブ)し、または入力信号を
受け取る(試験器からの出力または試験器への入力)。
これらのチャネル(1つの基板上に一般に構成される)
は、しばしばPMU(Parametric Measuring Unit、パ
ラメトリック測定ユニット)または他の種類の測定デバ
イスを備え、信号の大きさを感知して測定する。既知で
あるように、PMUは、実装されている構成要素を較正
(calibration)することで知られている。このように、
所与のドライバがある振幅の信号を生成するようプログ
ラムされるとき、実装されているPMUは、その信号の
振幅が適当な値であるかどうか判断するため、その信号
を監視して測定することができる。
【0007】さらにこの種の試験を、手動で、正確な外
付けの試験装置を使用することで達成することができ
る。例えば、電圧計を電圧レベルを試験するのに使用す
ることができ、オシロスコープをタイミング側面を評価
するのに使用することができる。しかし、ATEの外付
けの試験は非常に時間がかかり、したがって逆に生産量
に影響を与えることが認められる。特に、近年注意すべ
き特定の問題は、精度を自己診断するデジタル試験器の
能力に関する。この点に関する試験デバイスの一般的な
失敗の結果、回路設計者は固有の試験器について試験を
設計するのに精通してきた。すなわち、回路設計者は試
験パラメータを持つ試験を設計して、所与の自動試験デ
バイスの試験要件に試験が合格するようにすることがで
き、一方で他の試験器のこれら同じ試験に落ちるように
することができる。多様な自動試験装置のある特性の追
跡を続けるチャートが生成されてきた。回路設計者は、
所与の試験器の試験に合格する試験パラメータを設計す
るため、これらのチャート内に含まれる情報を使用して
きた。しかし、このアプローチは、大量の製造環境を介
する材料の流れだけでなく、設計される製品の全体の生
産に逆に影響を及ぼして嫌悪されることが明らかであ
る。
【0008】
【発明が解決しようとする課題】したがって、高精度で
デジタル試験器の性能を検証することにより、自動試験
装置(とくにデジタル試験器)の精度を改善するシステ
ムを開発する必要性がある。
【0009】
【課題を解決するための手段】本発明の目的、利点およ
び新しい特徴は、ある程度は以下に続く記述で説明され
て以下の考察について当該技術分野の当業者に明らかに
なり、または本発明の実行で習得することができる。本
発明の目的および利点を、特に特許請求の範囲で指摘さ
れる概念およびその組合せの手段により理解して取得す
ることができる。
【0010】利点および新しい特徴を達成するため、本
発明は、一般に集積回路を試験するデバイスの構成要素
の許容差を試験するシステムおよび方法のためのもので
ある。デバイスは、試験ヘッドに配置された複数の試験
コネクタを持ち、それぞれの試験コネクタは、試験チャ
ネルの電気信号を運ぶ導体を持つ。ここでそれぞれの試
験チャネルは、少なくとも1つのドライバおよび少なく
とも1つのレシーバを備える回路基板に対応する。本発
明の幅広い概念および教示によると、装置および方法
は、第1の基板のドライバから第2の基板のレシーバへ
相互接続することにより(逆の場合も同じ)、ドライバ
およびレシーバの構成要素を比較するよう動作する。試
験器の製造者により提供される内蔵の試験手順は、1つ
の基板のドライバおよびレシーバを、その同じ基板上に
提供される測定ユニットで典型的に較正するので、その
基板の測定ユニットが仕様からはずれる場合には、その
基板のドライバおよびレシーバが、検出することなく仕
様からはずれることが起こりうる。したがって、本発明
により提供されるクロスチェック(cross-check)は、非
常に改善されたシステムおよび方法を提供し、試験器の
構成要素の動作の精度を検証する。
【0011】本発明のある側面によると、装置が提供さ
れ、第1および第2の試験コネクタの導体間に低インピ
ーダンスの電気的な接続を確立する短絡手段を備え、第
1の回路基板の第1のドライバは、低インピーダンスの
経路を介して、第2の回路基板上の電圧測定ユニットに
接続される。この「短絡手段」は、プリント回路基板を
介して実現されるのが好ましい。プリント回路基板は、
2つの試験コネクタのピンの間を短絡する、すなわち直
接的に電気的な接続を確立する金属線(metal trace)を
含む。コントローラは、第1のドライバを制御するよう
構成され、第1のドライバが予め定められた目標値の電
気信号を出力するようにする。しかし、この目標値が正
確かどうか試験するため、測定ユニットは、信号電圧レ
ベルを受け取り、受け取った信号電圧レベルを測定する
よう配置される。検証手段は、測定ユニットで受け取っ
た信号レベルが、予め定められた目標信号レベルの予め
定められた許容差内におさまっているか検証するよう構
成される。
【0012】本発明の他の側面によると、装置が提供さ
れ、第1および第2の試験コネクタの導体間に低インピ
ーダンスの電気的な接続を確立する短絡手段を備え、第
1の回路基板の第1のドライバが、低インピーダンスの
経路を介して第2の回路基板の第1のレシーバに接続さ
れるようにする。コントローラは、第1のドライバを制
御し、第1のドライバが予め定められた値の電気信号を
出力するようにする。第1のドライバが、精度について
予め試験されているので(前述したように)、この出力
値は正確であるとみなされる。したがって、この試験の
側面は、レシーバの精度を評価する。評価手段は、第1
のレシーバで受け取った信号レベルを評価するよう設計
され、検証手段は、第1のレシーバで解読された信号レ
ベルが、第1のドライバからの予め定められた信号レベ
ルの出力の予め定められた許容差内かどうか検証するよ
う構成される。
【0013】本発明の他の側面によると、方法が提供さ
れ、試験デバイスの構成要素の分散(variance)を診断す
る。この場合、試験装置デバイスは、試験ヘッドに配置
された複数の試験コネクタを持つのが好ましく、それぞ
れの試験コネクタは、試験チャネルの電気信号を運ぶ導
体を持つ。それぞれの試験チャネルは、少なくとも1つ
のドライバおよび少なくとも1つのレシーバを備える回
路基板に対応する。方法は、第1および第2の試験コネ
クタの導体間に電気的な接続を確立するステップを含
み、第1の回路基板の第1のドライバが、低インピーダ
ンスの経路を介して、第2の回路基板上の第1のレシー
バに電気的に接続されるようにする。ここで第1のドラ
イバは、規定された許容差内におさまっていることが知
られている。方法は、第1のドライバの出力を制御し、
電気信号を予め定められた値に駆動し、第1のレシーバ
で解読された信号レベルを評価する。最後に、この方法
は、第1のレシーバで解読された信号レベルが、第1の
ドライバからの予め定められた信号レベルの出力の予め
定められた許容差内におさまっているか検証する。許容
差内におさまっている場合には、システムは、試験され
た構成要素が規定された許容差内におさまっていると認
識する。許容差内に無い場合には、システムはエラーの
フラグをたて、さらに適切な是正措置を行うことができ
る。このような是正措置は、さらなる試験または適切な
試験人員への通知(Eメールまたは別の手段を介して)
を起動して、さらなる手動の試験を行うことができる。
【0014】
【発明の実施の形態】本発明の多様な側面をまとめたの
で、図面に示されるように本発明の説明を詳細に行う。
本発明をこれらの図面とともに説明するが、ここに開示
される実施形態に限定されるものではない。目的とする
ところは、特許請求の範囲で規定される本発明の精神お
よび範囲内に含まれるすべての代替、改良および均等に
及ぶことである。
【0015】図1に、「基板型(board-type)」ATEシ
ステム(試験器)100のブロック図を示す。本発明の
好ましい実施形態は、ウェーハ試験器のためのものであ
るが、概念および教示はそれほど狭く限られない。した
がって、図1は単に本発明の概念および教示を適用する
ことができる従来技術のプラットホームを示すためだけ
に示される。ATEシステム100は、試験ジェネレー
タ102および試験コントローラ104を備える。試験
ジェネレータ102は、試験されるべき基板上のそれぞ
れのデバイスについて、回路の中に組み込む方式の(in
-circuit、以下「インサーキット」という)試験を生成
する。一般的な試験計画106は、試験中の監視制御を
提供する。これは、試験を順番付ける、結果の記録を取
る、基板/取り付けのインターフェースを制御する、試
験の電源を制御する、およびユーザインターフェースを
提供することを含む。個々のインサーキットの試験およ
び試験計画106の組合せは、試験の仕様を形づくる。
【0016】デバイスモデル・ライブラリ108、物理
データベース110および電気データベース112は、
試験ジェネレータ102に必要なデータを提供すること
ができ、インサーキットの試験を生成する。電気データ
ベース112は、DUT基板116上のデバイスのリス
ト、それぞれのデバイスの電気的記述および電気的な相
互接続の情報を含むことができる。物理データベース1
10は、基板の配列の記述(topological descriptio
n)を含むことができ、試験コントローラはこれを使用
してDUT116の位置を特定することができる。物理
データベース110および電気データベース112は、
CAD/CAM(Computer Aided Design/Computer Aide
d Manufacturing)システムにより、通常は基板の設計
の間に生成される。
【0017】デバイスモデル・ライブラリ108は、一
般に使用されるデジタル集積回路チップ(IC)につい
て、複数の予め生成された包括的なモデルを含む。本質
的に、それぞれのモデルは、基板の試験仕様に挿入され
るべき(すなわち、編集されるべき)試験ルーチンであ
る。それぞれのデバイスモデルは、固有のデバイスにつ
いて、ピン配列の情報(すなわち、どのピンが入力、出
力、双方向、または使用されないのか)、試験プログラ
ム、デバイスのそれぞれの出力を予め調節する方法(以
下に記述する)、および試験パターンのレートと必要な
信号レベルを含むデバイス固有の情報を提供することが
できる。
【0018】試験コントローラ104は、試験ジェネレ
ータ102で生成されたインサーキット試験を実行す
る。ドライバ・モジュール114は、試験信号をDUT
116に印加するのに使用され、センサ(レシーバ)・
モジュール118は、DUT116の試験信号に対する
応答を受け取るのに使用される。ドライバ・モジュール
114およびセンサ・モジュール118の組合せは、試
験器チャネルとして知られる。HP83000集積回路
試験器はATEシステムの例であり、ヒューレット・パ
ッカード社から入手できる。
【0019】図2は、試験器100が動作することがで
きる環境を示す。アプリケーションプログラムを走らす
ホストコンピュータ202を、試験ハードウェア208
に接続することができる。ある実施形態では、ホストコ
ンピュータ202を、ローカルエリアネットワーク(L
AN)204を介して試験ハードウェア208に接続す
ることができる。試験ハードウェア208は、通常試験
ヘッド205を備え、試験ヘッド205は、DUT11
6へのインタフェース入出力を提供する。試験ハードウ
ェア208は、ドライバおよびレシーバのようなデバイ
スを備えることができ、これらのデバイスは、DUT1
16について試験を実行するのに使用される。ホストコ
ンピュータ202のアプリケーションプログラムは、イ
ンタープリタと通信することができ、インタープリタ
は、リモートの試験ヘッド205に特定の機能を行うよ
う命令するダイナミックリンクライブラリ(DLL)コ
ールを実行する。試験ハードウェア208は、ホストコ
ンピュータ202から命令を受け取ることができる。こ
れらの命令は、DUT116上で走る多様な試験を制御
することができる。
【0020】図3は、より詳細な試験ハードウェア20
8を図示する。ある実施形態では、16個のインストル
メント・ポート302(それぞれが高ライン(high lin
e)303および低ライン(low line)305を備える)
は、インストルメントMUX304への入力である(こ
こで、インストルメント(instrument)とは、システムの
動きを理解する目的で、システムが実行している間に測
定データを集めるプロセスに使用するものをいう)。イ
ンストルメントMUX304は、4本のインストルメン
ト・バス306に信号を出力する。組み込み形(embedde
d)コンピュータ206は、制御線314を介して、どの
インストルメント信号がインストルメント・バス306
に置かれるべきかについてインストルメントMUX30
4に命令する。その後、インストルメント・バス306
は、チャネルMUX308を介して複数のチャネルに多
重化される。
【0021】組み込み形コンピュータ206は、どの信
号がチャネルMUX308から出力されるかを、制御線
316を介して制御する。チャネルMUX308の出力
は、DUTの高ライン311およびDUTの低ライン3
10を備える。これら高ラインおよび低ラインは、イン
ストルメント308により生成される。高ラインおよび
低ラインは、試験中は試験チャネル312への入力とし
て使用され、試験チャネル312は図4に詳細に示され
る。特定の回路基板(すなわちDUT)を試験すると
き、組み込み形コンピュータ206により使用されるチ
ャネルの数は、一般に回路基板上の試験されるべきノー
ド数に等しい。
【0022】一般に、多くの試験器に共通の構造および
環境を記述してきた。図4は、HP83000試験器の
回路基板400におけるある構成要素のブロック図であ
り、設計された本発明の好ましい実施形態の好ましいプ
ラットフォームである。示されるように、回路基板40
0は、複数のドライバ402およびレシーバ404を備
える。既知であるように、ドライバ402は、試験コネ
クタのピンに信号を出力するよう構成される。HP83
000では、16個のドライバおよび16個のレシーバ
が、1つの基板/チャネル上にある。しかし、1つのP
MU406が基板400上に提供される。既知であるよ
うに、PMU406は、信号を定量化または測定するよ
う構成される。動作中、PMU406は、ドライバ40
2およびレシーバ404の較正を提供する。
【0023】またいくつかリレーが図に示されており、
動的な基板構成を一緒に提供する。とくにリレー408
は、試験コネクタとの導通から、ドライバ402および
レシーバ404を選択的に接続したり切り離したりす
る。他のリレー410は、基板400上の試験コネクタ
と他の経路(たとえばPMUと)との選択的な接続を確
立する。本発明の一部がリレーの制御信号を制御して、
適切な方法で基板400を動的に構成するようにし、本
発明の診断機能を実行することは理解されよう。さら
に、それぞれのリレーのうちの1つだけを図に示すが、
複数のリレーが存在できることが理解される。例えば、
リレー408が16個の対のドライバ402/レシーバ
404のそれぞれについて存在する。
【0024】通常の動作では、試験コネクタは、ケーブ
ルまたは別の手段を介して、DUT(試験中のデバイ
ス)に接続される。このように、ドライバ402で生成
された信号は、最終的にはDUT基板上の構成要素の入
力を駆動する。同様に、DUT基板上の構成要素からの
出力信号は、試験コネクタを介してレシーバ404に届
けられる。制御可能なようにドライバ402の出力レベ
ルを変え、レシーバ404の入力レベルを監視すること
により、DUTの機能動作を試験することができる。ま
たDUTの機能動作を検証するのに加え、試験器は、D
UT上の構成要素が、規定された許容差の値または範囲
に従って動作しているか検証することができる。しかし
前述したように、試験器の構成要素が、失敗したりまた
は規定された許容差からはずれる場合には、この種の試
験は間違いや不正確な結果を生成する。
【0025】前述したように、レベル精度を測定する既
知の方法があり、これは電圧計のような外付けの測定装
置を使用して正確なデータを集める。この方法は比較的
高い精度を達成する一方で、ユーザが、いくつかの異な
る測定セットについてそれぞれの試験器のチャネルを手
動で精査することが必要である。大量製造環境では、こ
の外付けの測定装置の方法は受け入れることができな
い。
【0026】したがって、本発明は、ある試験器の構成
要素が許容差からはずれているかを試験して判断するた
め提供される。本発明によると、試験器はそれ自身の精
度を測定するのに使用され、はるかに単純なDUT基板
およびごくわずかなユーザの対話処理を要求して、デー
タを得る。理解されるように、この方法は、製造環境へ
の影響を最小にしつつ十分な測定精度を提供するので、
非常に良い選択である。
【0027】簡単に図5を参照すると、特別に構成され
たDUT基板500が、本発明の好ましい実施形態で実
行される自己診断と関連して使用される。とくに、この
特化したDUT基板500は、試験コネクタ502およ
び504からのピンを一緒に短絡する。前述したよう
に、試験器は試験ヘッド205を備え、これを介して試
験器とのすべての電気的な接続が確立される。試験ヘッ
ド205は、試験コネクタ502および504のような
複数のコネクタを含む。チャネル01から16が、これ
らの試験コネクタ502および504のそれぞれに示さ
れる。チャネル01は、回路基板400上の第1のドラ
イバ402/レシーバ404の対に対応する。好ましい
実施形態における特別に構成されたDUT基板500
は、隣接する試験コネクタ502および504の間のチ
ャネル線を一緒に短絡する導電性の経路(たとえば図5
の506)を備える。このように、第1の回路カード4
00(例えば、試験コネクタ502に対応するカード)
のドライバは、第2の回路カード(例えば、試験コネク
タ504に対応するカード)のレシーバに接続されるこ
とができる。好ましい実施形態が、それぞれの回路基板
400上のリレー制御信号を制御して適切な信号の経路
を生じさせ、この接続を確立するようにするのは当然で
ある。好ましい実施形態では、DUT基板500上のす
べての導電性の経路(例えば、506)が、同じ長さで
ある。
【0028】好ましい実施形態の計測学の制御ツール
は、ドライブおよびレシーブの電圧レベル精度を測定す
る。それ自身のドライブレベル精度を測定するのに試験
器を使用する好ましい方法は、すべてのチャネルについ
て、規定されたドライブレベルをプログラムすることで
ある。それぞれのチャネルにより提供される実際のドラ
イブレベルは、試験器の実装された電圧測定デバイス
(すなわち、PMU406)で測定される。プログラム
されたレベルおよび測定されたレベル間の差が、ドライ
ブレベルのエラーである。この試験は、試験器チャネル
の半分を入力として、他の半分を出力として構成するこ
とにより、試験器で実行するのが好ましい。DUT基板
500は、入力および出力間のインタフェースである。
入力は、あるレベルに駆動するようプログラムされ、デ
ジタル電圧測定(DVM)の試験機能(これは、電圧計
として基板400のPMU406を使用する)は、実際
のレベルを測定する。試験器チャネルの後の半分につい
てドライブレベルのエラーを測定するには、チャネル構
成が交換(スワップ)されて試験が繰り返される。
【0029】より具体的にいうと、図6は、2つの回路
基板400aおよび400bの基板構成を示す。示され
るように、基板400aのドライバ402aを基板40
0bのPMU406bに接続するよう、多様なリレーが
構成される。前述したように、PMU406aが、その
同じ基板400a上のドライバ402aを較正するのに
使用されるので、別の基板のPMU406bでドライバ
402aからの信号レベルを検証することにより、本発
明は試験器を試験するということが重要である。
【0030】したがって、図6の回路構成は、ドライバ
構成要素の精度を検証するのに使用される。この点につ
いて、ドライバ402aは、予め定められた「目標」値
を出力するよう制御される。PMU406bにより受け
取られて測定された実際の値は、ドライバ402aが仕
様からはずれているかどうかを判断する。例えば、仮定
の値を使用して制御信号をドライバ402aに印加し、
それを目標レベルの6500mVまで駆動することがで
きる。PMU406bが、6300mVの実際の値を受
け取って測定すれば、ドライバ402aが200mVは
ずれていること判断される。ドライバのATE仕様が、
出力に少なくとも6400mVを要求する場合には、ド
ライバ402は、仕様から100mVはずれていると判
断される。
【0031】好ましい実施形態によると、ある基板のド
ライバ402aは、他の基板のPMU406bを個別に
(1つずつ)駆動することができる。リレー408、4
10をフリップして、第2の基板のドライバ402bを
第1の基板のPMU406aに接続して試験することが
できる。このように、両方の基板からすべてのドライバ
を試験することができる。下記のように、このドライバ
の検証ステップは、レシーバの精度を試験する前に行わ
れ、ドライバの精度を保証する。
【0032】試験器がそれ自身のレシーブレベルを直接
測定するようには構成されないので、レシーバの精度を
測定するには、より複雑な試験を含む。好ましい実施形
態の試験器についてレシーブレベル精度を測定するに
は、試験チャネルの半分が入力として、もう半分が出力
として構成される。DUT基板500は、入力および出
力間のインタフェースとして使用される。入力は、ある
レベルに駆動するようプログラムされ、レシーブレベル
は、そのドライブレベル周辺で変化する。この点に関し
て、レシーバ404は比較器を備える。出力「値」を生
成するというより、比較器の出力は実際上は2値である
(比較器の入力すなわち受け取った値が、基準値以上ま
たは基準値以下かを示す)。比較器の出力が状態を変え
るまで、基準値(これは、比較器への基準入力に提供さ
れる)を変化させることができ、この時点でこの基準入
力の値は、受け取った入力の値に実質的に等しい。例え
ば、レシーバが500mVの既知のドライバ電圧で試験
されているとする。比較器の基準電圧を、450mVお
よび550mVの間で制御可能なように変えることがで
きる。基準電圧が、駆動された/受け取った電圧の値よ
り小さい間は、比較器の出力は第1の状態(たとえば、
ゼロ)であることができる。しかし、基準電圧が駆動さ
れた/受け取られた電圧を越えたとたんに、比較器の出
力を、第2の状態(例えば、飽和または論理1)に駆動
することができる。この状態変化が感知されるとき、基
準電圧は実質的に受け取られた電圧に等しい。
【0033】前述のやり方では、レシーバ404が、受
け取った信号の値を「解読する(interpret)」と言うこ
ともできる。
【0034】それぞれのレシーブレベルの設定につい
て、機能試験が実行される。レシーブレベルのエラー
は、機能試験が合格を中止した(または、試験によって
は始めた)時の実際のドライブレベルと(解読された)
レシーブレベルの間の差を取得することにより、それぞ
れのチャネルについて計算される。レシーブレベルのエ
ラーを後の半分の試験器チャネルについて測定するた
め、チャネルの構成が交換されて試験が繰り返される。
【0035】図7を参照すると、2つの基板400aお
よび400bのリレー/基板の構成が示され、レシーバ
の精度を試験するよう構成される。とりわけリレーは、
ドライバ402cをレシーバ404dに接続するよう構
成される。前述したドライバの試験により、またはドラ
イバ402cのドライブレベルの精度を検証する外付け
の試験装置を使用することにより、前もってドライバ4
02cが精度について試験されていると推定して、この
試験を起動する。その後、ドライバ402cは、予め定
められたドライブレベルで信号を出力するよう構成され
る。そしてレシーバ404dは、受け取った値およびレ
シーバからの出力が駆動された信号の規定された許容差
内にあるかどうか評価される。
【0036】前述したドライブおよびレシーブレベルの
精度の試験は、500mVおよび6500mVのレベル
でチェックされるのが好ましい。これらのレベルが、好
ましい試験器の最悪な場合の設定(なおHP83000
レベルの仕様におさまる)を表すからである。1つのレ
ベルをドライブおよびレシーブするのに起こりうる
「高」および「低」の差を追跡するため、低レベルおよ
び高レベルの両方について、同じ測定が500mVおよ
び6500mVで行われる。さらに、出力スイング(ou
tput swing、揺れ)(以下に記述する)が、すべての測
定について500mVに設定される。
【0037】上記の計測学の制御ツールのロバストさ(r
obustness)および有用性を調査して、HP83000の
ドライバ/レシーバの性能についてより多くを習得する
ため、いくつかの実験が設定され、HP83000のレ
ベル仕様を実行して挑戦した。最初に、DUT基板50
0(前述された)が、ドライブおよびレシーブレベルの
精度の測定に影響するのに十分な重大な何らかの設計お
よび製造の例外があったかどうか判断するよう調べられ
た。実験は、ドライブレベルのエラーの測定を行うこと
を含み、その後DUT基板500を取り除いて同じ測定
を再び実行した。DUT基板を用いずに実行された測定
は、回路基板400のPMU406を、そのドライブレ
ベルが測定されているチャネルとして使用し、ドライブ
レベルを測定した。結果は、2つの測定方法の差が1m
Vより小さいことを示したので、DUT基板は適切であ
るとみなされた。
【0038】また、前述された方法で測定された時のド
ライブレベル精度の修正(整定)時間およびその影響を
調査した。0msから500msの修正時間について、
ドライブレベルが変動し、測定された。結果は、0ms
および500msの修正時間について測定されたドライ
ブレベル間の差は、1mVより小さいことが示された。
したがって、修正時間は、ドライブレベルの精度を測定
するのに選択された方法において要因とはならないと判
断された。
【0039】レシーブレベル精度測定へのその起こりう
る影響のため、ドライブレベルの繰り返し精度が研究さ
れた。5分間(ツールの最終的な製造バージョンにおい
てドライブおよびレシーブレベルの精度の測定を実行す
るのに必要な推定時間)のうちに、5組のドライブレベ
ル測定が得られた。結果は、ドライブレベルが1mV内
で繰り返し可能であることが示され、これは、予想され
るレシーブレベルのエラー+/−25mVおよび+/−
50mVと比較されるとき、重要ではない。
【0040】仕様を検証してドライブレベル精度測定方
法へのその影響を理解するため、HP83000「出力
スイング」の仕様が研究された。「出力スイング」は、
低レベル設定および高レベル設定間の差として定義され
る。HP83000の出力スイングは、500mVから
6000mVである。これは、低ドライブレベルおよび
高ドライブレベルの設定間の差が、500mVより小さ
くなく、6000mVより大きくないことが、すべての
他のドライバの仕様について保証されることを意味す
る。しかし、出力スイングを、100mVおよび700
0mV間でプログラムすることができることに注意すべ
きである。実験は、100mVから6500mVまで出
力スイングを変化させ、それぞれの出力スイングの設定
についてドライブレベルのエラーを測定することであっ
た。結果は、出力スイングが500mVまたはそれより
大きいとき、ドライブレベルのエラーが最小になり、こ
れはHP83000仕様を裏付けた。6000mVより
大きい出力スイングは、ドライブレベルの精度に何の影
響も持たずに現れた。
【0041】レベル計測学制御ツールで測定された最も
低いドライブレベルが500mVであるので、実験は、
500mVより小さいドライブレベルの精度をチェック
するよう行われた。ドライブレベルは、500mVから
−1500mVにプログラムされ、これらのエラーが測
定された。結果は、500mVのドライブレベルのエラ
ーが、500mVより小さいドライブレベルのエラーの
1〜2mV内であった。
【0042】他の実験は、ドライブレベルの精度回路の
測定側に置かれたドライブ402/レシーブ404回路
が、どのようにレベルのエラーに影響したかを調査し
た。不必要なドライブ402/レシーブ404の回路を
分離するため、回路の測定側のACリレー408(図4
を参照)を開き、ドライブレベルのエラーが測定され
た。このデータは、ACリレーが閉じている状態(これ
は、DVM試験機能中におけるリレーのデフォルト位置
である)で測定されたドライブレベルのエラーと比較さ
れた。結果は、ドライブレベル精度回路の測定側に置か
れたドライブ/レシーブ回路は、6500mVにプログ
ラムされたドライブレベルにエラーの余分な5〜10m
Vを与えた。6500mVドライブレベルについて+/
−50mVの予想されたエラーを想定すると、これは重
要である。上述のドライブレベル精度の測定方法が、両
方のリレーの位置について十分良いとしても、回路の測
定側でリレー408を開くと、さらに良い精度を与え
る。レベルの計測学制御ツールの最終的なバージョン
は、リレー408が開いた状態で、ドライブレベルのエ
ラーデータを得る。
【0043】図8を簡単に参照すると、これは、ドライ
バの動作を検証する方法に含まれる主要なステップの操
作フローチャートを示す。とくに、立ち上がりで、この
方法は初期化ルーチン702を実行する。初期化ルーチ
ン702は、変数の初期化および様々な初期構成作業を
実行することを含み、これらは試験器から試験器へ、ま
た実行から実行へと必然的に変化するので、ここで述べ
る必要はない。初期化の後、この方法は、ドライバ試験
を行うため、多様な試験器チャネルを判断して構成する
(ステップ706)。その後、VILについて試験を行う
(ステップ708)。さらにこの方法は、VIHについて
試験を行う(ステップ710)。
【0044】最後にステップ712で、この方法は結果
を評価し、ドライバ402が規定された許容差内におさ
まっているかどうかを判断する。しかし、この試験と関
連して、多様な是正措置である測定を行うことができる
ことが理解される。例えば、電子メール(試験器がLA
Nに接続されている場合)により、失敗した結果または
そうでないものを適切な人員に知らせることもできるの
で、その適切な人員は是正措置を行うことができる。
【0045】図9を簡単に参照すると、これはレシーバ
の動作を検証する方法に含まれる主要なステップの操作
フローチャートを示す。とくに、立ち上がりで、この方
法は初期化ルーチン802を実行する。初期化ルーチン
802は、変数の初期化および様々な初期構成作業を実
行することを含み、試験器から試験器へ、また実行から
実行へと必然的に変化するので、ここで述べる必要はな
い。しかし、この初期化がすでにステップ702(図
7)で実行されている場合には、このステップを飛ばす
ことができる。初期化の後、この方法は、レシーバの試
験を行うため多様な試験器チャネルを判断して構成する
(ステップ806)。その後、VOLについて試験を行う
(ステップ808)。さらにこの方法はVOHについて試
験を行う(ステップ810)。
【0046】好ましい実施形態では、この試験結果を図
示するグラフィック出力を生成するようルーチンを与え
ることもできる(ステップ811)。最後にステップ8
12で、この方法は結果を評価し、レシーバ404が規
定された許容差内におさまっているかどうかを判断す
る。この試験と関連して、図7と関連して言及された多
様な是正措置の対策を同様に取ることができることが理
解される。
【0047】上記の記述は、図示および記述の目的のた
めに提示された。これは、開示された精密な形に本発明
を限定するものではない。明らかな修正または様々な形
態が、上記の教示を考慮して可能である。説明した実施
の形態は、本発明の原理および実際的な応用分野の最高
の例示を示し、またそれにより当該技術分野の当業者が
様々な形態または様々な改良と共に本発明を利用するよ
う、選ばれて提供された。すべてのこのような改良およ
び様々な形態は、特許請求の範囲が、公平かつ合法的に
与えられる権利に従って解読されるとき、特許請求の範
囲により決定される本発明の範囲内におさまる。
【0048】本発明の多様な側面を記述してきたので、
本発明の好ましい実施形態の一部を実行するのに使用す
る命令コードを以下に提供する。
【0049】
【表1】 /****************************************************** * 関数: dr_lev - ドライブレベルエラーを測定 * *******************************************************/ void dr_lev() { int error; TF_PIN_RESULT pin_result[1025]; double tf_result[4]; long task_len; char task[1024]; long answer_len=1024; long ret_state; long tf_state; int i; int k; int channel; int lev; char low_level_string[100]; char high_level_string[100]; char answer[1024]; int failed_dr_level[1025]; int failed_dr_hi_low[1025]; float failed_result[1025]; int failed_channel[1025]; int g; total_p=1025; strcpy(device_path,"/fedisk2/cal/"); /****************************************************/ /* DUT基板を用いてVil測定を行う */ /****************************************************/ for(k=1;k<=2;k++) { if(k==1) { /* ピンの第1のセットのデータセットをロード --> 10101, 10301,等 */ DataManager(dm_set,dm_load,device_path,"dr_levels_a.mpc",0,&tf_stat e); } else { /* ピンの第2のセットのデータセットをロード --> 10201, 10401,等 */ DataManager(dm_set,dm_load,device_path,"dr_levels_b.mpc",0,&tf_stat e); } if(tf_state!=0) /* データセットのロードが失敗した場合 */ { printf("ERROR! DataManager load of dataset failed.\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect function did not execute successfully. Tester may still be in the connected state .\n\n"); HpTerm(); exit(CI_CALL_ERROR); } for(lev=500;lev<=6500;lev=lev+6000) { /* レベルをセット */ strcpy(task,"DRLV 1,"); sprintf(low_level_string,"%d",lev); sprintf(high_level_string,"%d",lev+500); strcat(task,low_level_string); strcat(task,","); strcat(task,high_level_string); strcat(task," ,(all_inputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=0) /* ファームウェア・コマンドが失敗した場合 */ { printf("\n\nDRLV firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* レシーブチェック試験のためACリレーを開くファームウェアコマンド ・シーケンス*/ if(error=connect()!=0) { printf("ERROR!! Call to connect function failed.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* ACリレーを開く */ strcpy(task,"RLYC IDLE,PMU,(all_outputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=0) /* ファームウェア・コマンドが失敗した場合 */ { printf("\n\nFirst RLYC firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* DRLVレベル精度チェック試験機能を実行 */ ExecTfParam("dvm;all_outputs;V;0;V;7;ms;10;DVM($P)",tf_result,&tf_s tate); if(tf_state==-1 ) /* 試験機能実行が失敗した場合 */ { printf("ERROR! Execution of test function failed.\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } GetPinResults(pin_result,&total_p,&tf_state); if(tf_state==2) { for(i=0;i<total_p;i++) { if(lev==500 && k==1) { /* ドライバチャネル番号を格納 */ channel=atoi(pin_result[i].pinname); if(channel>13100 && channel<13300)drlv_channel_a[i]=channel -1; else drlv_channel_a[i]=channel-100; /* 結果を格納 */ vil_500a[i]=pin_result[i].meas[0].value; } else if(lev==500 && k==2) { /* ドライバチャネル番号を格納 */ channel=atoi(pin_result[i].pinname); if(channel>13100 && channel<13300)drlv_channel_b[i]=channel +1; else drlv_channel_b[i]=channel+100; /* 結果を格納 */ vil_500b[i]=pin_result[i].meas[0].value; } else if(lev==6500 && k==1)vil_6500a[i]=pin_result[i].meas[0]. value; else if(lev==6500 && k==2)vil_6500b[i]=pin_result[i].meas[0]. value; } } /* if tf_state==2 をクローズ*/ /* DRLVレベル精度チェック試験を実行。この試験機能は、各ドライバ自身 のPMUでDRLVを測定する。DUT基板無しの試験だが、試験ヘッド上にD UT基板を持つのと同じ試験を行う。データが多ければ多いほど良い。 */ ExecTfParam("dvm;all_inputs;V;O;V;7;ms;10;DVM($P)",tf_result,&tf_st ate); if(tf_state==-1) /* 試験機能の実行が失敗した場合 */ { printf("ERROR! Execution of test function failed.\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } GetPinResults(pin_result,&total_p,&tf_state); if(tf_state==2) { for(i=0;i<total_p;i++) { if(lev==500 && k==1) { /* 結果を格納 */ vil_500a3[i]=pin_result[i].meas[O].value; } else if(lev==500 && k==2) { /* 結果を格納 */ vil_500b3[i]=pin_result[i].meas[O].value; } else if(lev==6500 && k==1)vil_6500a3[i]=pin_result[i].meas[O] .value; else if(lev==6500 && k==2)vil_6500b3[i]=pin_result[i].meas[O] .value; } } /* if tf_state==2 をクローズ*/ } /* 第2のループをクローズ */ } /* 第1のループをクローズ */ /*****************************************************/ /* DUT基板を用いてVih測定を行う */ /*****************************************************/ for(k=1;k<=2;k++) { if(k==1) { /* ピンの第1のセットのデータセットをロード --> 10101, 10301, 等 */ DataManager(dm_set,dm_load,device_path,"dr_levels_a.mpc",0,&tf_stat e); if(tf_state!=0) /* データセットのロードが失敗した場合 */ { printf("ERROR! DataManager load of dataset failed.\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* Vihタイミングをロード */ DataManager(dm_timing,dm_load,device_path,"timinga1.dr_levels_mpc", 0,&tf_state); } else { /* ピンの第2のセットのデータセットをロード --> 10201, 10401, 等*/ DataManager(dm_set,dm_load,device_path,"dr_levels_b.mpc",0,&tf_stat e); if(tf_state!=0) /* データセットのロードが失敗した場合 */ { printf("ERROR! DataManager load of dataset failed.\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* Vihタイミングをロード */ DataManager(dm_timing,dm_load,device_path,"timingb1.dr_levels_mpc ",0,&tf_state); } if(tf_state!=0) /* タイミングのロードが失敗した場合 */ { printf("ERROR! DataManager load of timing failed.\n\n"); if(error=disconnect()!=0)printf("WARNNG!! The disconnect function d id not execute successfully. Tester may still be in the connected state. \n\n"); HpTerm(); exit(CI_CALL_ERROR); } for(lev=500;lev<=6500;lev=lev+6000) { strcpy(task,"DRLV 1,"); sprintf(low_level_string,"%d",lev-500); sprintf(high_level_string,"%d",lev); strcat(task,;low_level_string); strcat(task,","); strcat(task,high_level_string); strcat(task,",(all_inputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=0) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nDRLV firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* レシーブチェック試験のためACリレーを開くファームウェアコマンド・シ ーケンス */ if(error=connect()!=0) { printf("ERROR!! Call to connect function failed.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* ACリレーを開く */ strcpy(task,"RLYC IDLE,PMU,(all_outputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\O'; if(ret_state!=O) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nFirst RLYC firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect ftincti on did not execute successfully. Tester may still be in the connected st ate.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* DRLVレベル精度チェック試験機能を実行 */ ExecTfParam("dvm;all_outputs;V;O;V;7;ms;lO;DVM($P)",tf_result,&tf_s tate); if(tf_state==-1) /* 試験機能実行が失敗した場合 */ { printf("ERROR! Execution of test fimction failed.\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the counected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } GetPinResults(pin_result,&total_p,&tf_state); if(tf_state==2) { for(i=0;i<total_p;i++) { if(lev==500 && k==1)vih_500a[i]=pin_result[i].meas[O].value; else if(lev==500 && k==2)vih_500b[i]=pin_result[i].meas[O].valu e; else if(lev==6500 && k==1)vih_6500a[i]=pin_result[i].meas[O].va lue; else if(lev==6500 && k==2)vih_6500b[i]=pin_result[i].meas[O].va lue; } /* 第3のループをクローズ */ } /* if tf_stateループをクローズ */ /* DRLVレベル精度チェック試験機能を実行。この試験機能は、各ドライバ 自身のPMUでDRLVを測定する。DUT基板無しの試験だが、試験ヘッド上 にDUT基板を持つのと同じ試験を行う。データが多ければ多いほど良い。 */ ExecTfParam("dvm;all_inputs;V;O;V;7;ms;10;DVM($P)"tf_result,&tf_sta te)' if(tf_state==-1) /* 試験機能実行が失敗した場合 */ { printf("ERROR! Execution of test ftinction failed.\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } GetPinResults(pin_result,&total_p,&tf_state); if(tf_state==2) { for(i=0;i<total_p;i++) { if(lev==500 && k==1)vih_500a3[i]=pin_result[i].meas[O],value; else if(lev==500 && k==2)vih_500b3[i]=pin_result[i].meas[O].val ue; else if(lev==6500 && k==1)vih_6500a3[i]=pin_result[i].meas[O].v alue; else if(lev==6500 && k==2)vih_6500b3[i]=pin_result[i].meas[O].v alue; } } } /* 第2のループをクローズ */ } /* 第1のループをクローズ */ if(error=disconnect()!=0)printf("WARNING!! The disconnect function did n
ot execute successfully. Tester may still be in the connected state.\n \n"); } /*********************************************************** * 機能: rc lev - レシーブレベルの合格/失敗ポイントを測定 * ************************************************************/ void rc_lev(void) { int shmoo_2d=0; /* 0=no shmoo 1=output shmoo */ TF_PlN_RESULT pin_result[525]; double tf_result[4]; int error; char task[1024]; char low_level_string[100]; char high_level_string[100]; char answer[1024]; long task_len; long answer_len=1024; long ret_state; long tf_state; int i; int j; int cnt=O; int vol_500a[525][150]; int vol_500b[525][15O]; int vol_6500a[525][150]; int vol_6500b[525][150]; int voh_500a[525][150]; int voh_500b[525][150]; int voh_6500a[525][150]; int voh_6500b[525][150]; int k; int l; int flag=0; float first_pass; float last_pass; int low_lev; int high_Iev; int rclv_vol_500a[525]; int rclv_vol_500b[525]; int rclv_vol_6500a[525]; int rclv_vol_6500b[525]; int rclv_voh_500a[525]; int rclv_voh_500b[525]; int rclv_voh_6500a[525]; int rclv_voh_6500b[525]; char set_compare[50]; double E; float d_i; total_p=1025; strcpy(device_path,"/fedisk2/cal"); /***************** レベル精度測定開始 *******************/ print("--> Taking Receive Level Data. . . . . .\n\n"); fflush(stdout); /***********************************************/ /* Vol測定 */ /***********************************************/ for(k=O;k<=3;k++) { /************ データセットのロード **************/ if((k==0)||(k==1)) { DataManager(dm_set,dm_load,device_path,"rc_levels_a.mpc",O,&tf_stat e); } else if((k==2)||(k==3)) { DataManager(dm_set,dm_load,device_path,"rc_levels_b.mpc",O,&tf_stat e); } if(tf_state!=O) /* データセットのロードが失敗した場合 */ { printf("ERROR! DataManager load ofthe dataset failed.\n\n"); if(error=disconnect()!=0)printf("WARNlNG!! The disconnect function did not execute successfully. Tester may still be in the connected state .\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /*********** ドライブレベルの設定 *************/ if(k==0 || k==2) { low_lev=449; strcpy(task,"DRLV 1,500,1000,(all_inputs);"); } else if(k==1 || k==3) { low_lev=6449; strcpy(task,"DRLV 1,6500,7000,(all_inputs);"); } task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\O'; if(ret_state!=O) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nDRLV firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect function did not execute successfully. Tester may still be in the connected state .\n\n"); HpTerm(); } cnt=O; /*********** レシーブレベル設定 *************/ for(i=low_lev;i<=low_lev+1OO;i=i+1) { if(low_lev==500 || low_lev==6500)low_lev++;; /* vol=500mvと 6500mv は、有効な試験ポイントでない */ /* レシーブレベル設定 */ strcpy(task,"RCLV 1,"); sprintf(low_level_string,"%d",i); sprintf(high_level_string,"%d",i+100); strcat(task,low_level_string); strcat(task,","); strcat(task,high_level_string); strcat(task,",(all_outputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\O; if(ret_state!=0) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nRCLV firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* 比較エッジのタイミングを変える */ strcpy(task,"ETIM 1,1,"); d_i=i; if((k==O) || (k==2)) E=240/fabs(d_i-500)+.1; if((k==1) || (k==3)) E=240/fabs(d_i-6500)+.1; sprintf(set_compare,"%f",E); strcat(task,set_compare); strcat(task,",0,0,0,0,0,(all_outputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=O) { printf("\n\nETIM firmware command failed!!!\n\n"); if(e
rro=disoonnect()!=0)printf("WARNING!! The disconnect function did not execute successfully. Tester may still be in the connected stat e.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* 試験機能を実行 */ ExecTfParam("functional;",tf_result,&tf_state); if(tf_state==-1) /*試験機能の実行が失敗した場合*/ { printf("ERROR! Execution of DRLV test function failed.\n"); if(error=disconnect()!=0)printf("WARNlNG!! The disconnect functio
n did not execute successfully. Tester may still be in the cormected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERBLOR); } GetPinResults(pin_result,&total_p,&tf_state); if(tf_state==1) { for(j=0;i<total_p;j++) { if(k==O) { /* 合格/失敗の結果を格納 */ vol_500a[j][cnt]=pin_result[j].meas[0].result; /* 対応するレベルを格納 */ rclv_vol_500a[cnt]=i; rclv_channel_a[j]=atoi(pin_result[j].pinname); } else if(k==1) { vol_6500a[j][cnt]=pin_result[j].meas[0].result; rclv_vol_6500a[cnt]=i; } else if(k==2) { vol_500b[j][cnt]=pin_result[j].meas[0].result; rclv_vol_500b[cnt]=i; rclv_channel_b[j]=atoi(pin_result[j].pinname); } else if(k==3) { vol_6500b[j][cnt]=pin_result[j].meas[0].result; rclv_vol_6500b[cnt]=i; } } /* ループをクローズ */ } /* if tf_state==1 をクローズ */ else { printf("GetPinResults failed for Vol measurements. tf_state = %d\n ",tf_state); printf("total_p=%d\n",total_p); if(error=disconnect()!=0)printf("WARNING!! The discormect function did not execute successfully. Tester may still be in the connected state .\n\n"); HpTerm(); exit(CI_CALL_ERROR); } cnt++; } /* 第2のループをクローズ*/ } /* 第1のループをクローズ*/ /***********************************************/ /* Voh測定 */ /***********************************************/ for(k=0;k<=3;k++) { /************ データセットをロード **************/ if((k==O)||(k==1)) { DataManager(dm_set,dm_load,device_path,"rc_levels_a.mpc",0,&tf_stat e); } else if((k==2)||(k==3)) { DataManager(dm_set,dm_load,device_path,"rc_levels_b.mpc",0,&tf_stat e); } if(tf_state!=0)/* データセットのロードが失敗した場合 */ { printf("ERROR! DataManager load of the dataset failed.\n\n"); if(error=disconnect()!=0)printf("WARNING!! The discounect function did not execute successfully. Tester may still be in the connected state .\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /*********** ベクトルレベルを「one」に変更 *************/ strcpy(task,"SQSL\"one\";"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\O'; if(ret_state!=0) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nSQSL firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf(WARNlNG!! The disconnect function d id not execute successfully. Tester may still be in the connected state. \n\n"); HpTerm(); exit(CI_CALL_ERROR); } /*********** ドライブレベルを設定 *************/ if(k==0 || k==2) { high_lev=449; strcpy(task,"DRLV 1,0,500,(all_inputs);"); } else if(k==1 || k==3) { high_lev=6449; strcpy(task,"DRLV 1,6000,6500,(all_inputs);"); } task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=0) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nDRLV firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect function did not execute successfully. Tester may still be in the connected state .\n\n"); HpTerm(); exit(CI_CALL_ERROR); } cnt=0; /*********** レシーブレベルを設定 *************/ for(i=high_lev;i<=high_lev+100;i=i+1) { if(high_lev==500 || high_lev==6500)high_lev++;;/* voh=500mv と 6500 mv は、有効な試験ポイントでない */ /* レシーブレベルを設定 */ strcpy(task,"RCLV 1,"); sprintf(low_level_string,"%d",i-100); sprintf(high_level_string,"%d",i); strcat(task_low_level_string); strcat(task,"," ); strcat(task,high_level_string); strcat(task,",(all_outputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=0) /* ファームウェアコマンドが失敗した場合 */ { printf("\n\nRCLV firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* 比較エッジタイミングを変える */ strcpy(task,"ETIM 1,1,"); d_i=i; if((k==0) || (k==2)) E=240/fabs(d_i-500)+.1; if((k==1) || (k==3)) E=240/fabs(d_i-6500)+.1; sprintf(set_compare,"%f',E); strcat(task,set_compare); strcat(task,",0,0,0,0,0,(all_outputs);"); task_len=strlen(task); HpFwTask(task,&task_len,answer,&answer_len,&ret_state); answer[1023]='\0'; if(ret_state!=0) { printf("\n\nETIM firmware command failed!!!\n\n"); if(error=disconnect()!=0)printf("WARNING!! The discounect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } /* 試験機能を実行 */ ExecTfParam("functional;",tf_result,&tf_state); if(tf_state==-1) /* 試験機能が失敗した場合 */ { printf("ERROR! Execution of RCLV test fimction failed.\n");
if(error=disconnect()!=0)printf("WARNING!! The disconnect functio n did not execute successfully. Tester may still be in the connected sta te.\n\n"); HpTerm(); exit(CI_CALL_ERROR); } GetPinResults(pin_result, &total_p,&tf_state); if(tf_state==1) { for(j=0;j<total_p;j++) { if(k==O) { /* 合格/失敗の結果を格納 */ voh_500a[j][cnt]=pin_result[j].meas[0].result; /* 対応するレベルを格納 */ rclv_voh_500a[cnt]=i; } else if(k==l) { voh_6500a[j][cnt]=pin_result[j].meas[0].result; rclv_voh_6500a[cnt]=i; } else if(k==2) { voh_5OOb[j][cnt]=pin_result[j].meas[0].result; rclv_voh_500b[cnt]=i; } else if(k==3) { voh_6500b[j][cnt]=pin_result[j].meas[0].result; rclv_voh_6500b[cnt]=i; } } } else { printf("GetPinResults failed for Voh measurements. tf_state=%d\n", tf_state); printf("total_p=%d\n",total_p); if(error=disconnect()!=0)printf("WARlNING!! The disconnect function did not exe6ute successfully. Tester may still be in the connected stat e.\n\n"); HpTerm(); exit(CI_CALL_ERROR) } cnt++; } } if(error=disconnect()!=0)printf("WARNlNG!! The disconnect function did n ot execute successfully. Tester may still be in the connected state.\n \n"); /***********************************************/ /* 2DShmooとして結果を出力 */ /* および/または */ /* . 合格/失敗のポイントをの位置を特定する */ /***********************************************/ for(k=0;k<total_p;k++) { /********** vol_500_a **********/ if(shmoo_2d==1)printf("\n\nVol measurements...\n"); flag=0; /* これは、最初の合格/失敗にフラグをたてる */ if(shmoo_2d==1)printf("%d\t",rclv_channel_a[k]); for(l=1;l<cnt;l++) { if(vol_500a[k][l]==0) { if(shmoo_2d==1)printf("*"); if(flag==O) /* これが「.」の後の最初の「*」の場合、最初の合格を 設定 */ { flag=1; first_pass=rclv_vol_500a[l]; vol_500a_error[k]=fabs(vil_500a[total_p-k-1]-rclv_vol_500a[l]); } } else { if(shmoo_2d==1)printf("."); flag=0; /* いくつかの「*」の間に「.」が発生した場合、フラグをゼ ロにリセット */ } } if(shmoo_2d==1)printf("\t%6.2f%6.2f\n",first_pass,vol_500a_error[k]) ; /********** vol_500_b **********/ flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_b[k]); for(l=1;l<cnt;l++) { if(vol_500b[k][l]==0) { if(shmoo_2d==1)printf("*"); if(flag==0) /* これが、「.」の後の最初の「*」である場合、最初の 合格を設定 */ { flag=1; first_pass=rclv_vol_500b[l]; vol_500b_error[k]=fabs(vil_500b[total_p-k-1]-rclv_vol_500b[l]); } } else { if(shmoo_2d==1)printf("."); flag=0; /* いくつかの「*」の間に「.」が発生した場合、フラグをゼ ロにリセット*/ } } if(shmoo_2d==1)pnntf("\t%6.2f%6.2f\n",first_pass,vol_500b_error[k]); /********** vol_6500_a **********/ flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_a[k]); for(l=1;l<cnt;l++) { if(vol_6500a[k][l]==0) { if(shmoo_2d==1)printf("*"); if(flag==0) /* これが、「.」の後の最初の「*」である場合、最初の 合格を設定 */ { flag=1; first_pass=rclv_vol_6500a[l]; vol_6500a_error[k]=fabs(vil_6500a[total_p-k-1]-rclv_vol_6500a[l ]); } } else { if(shmoo_2d==1)printf("."); flag=0; /* いくつかの「*」の間に「.」が発生した場合、フラグをゼ ロにリセット */ } } if(shmoo_2d==1)printf("\t%6.2f%6.2f\n",first_pass,vol_6500a_error[k] ); /********** vol_6500_b **********/ flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_b[k]); for(l=1;l<cnt;l++ ) { if(vol_6500b[k][l]==0) { if(shmoo_2d==1)printf("*"); if(flag==0) /* これが、「.」の後の最初の「*」の場合、最初の合格 を設定 */ { flag=1; firs_pass=rclv_vol_6500b[l]; vol_6500b_error[k]=fabs(vil_6500b[total_p-k-1]-rclv_vol_6500b[l ]); } } else { if(shmoo_2d==1)printf("."); flag=0; /* いくつかの「*」間で「.」が発生した場合、フラグをゼロ にリセット */ } } if(shmoo_2d==1)printf("\t%6.2f%6.2f\n",firs_pass,vol_6500b_error[k]) ; /********** voh_500_a **********/ if(shmoo_2d==1)printf("\n\nVoh measurements. . .\n"); flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_a[k]); for(l=1;l<cnt;l++) { if(voh_500a[k][l]==1) { if(shmoo_2d==1)printf("."); if(flag==0) /* これが最初の「.」の場合(最初の失敗)、最後の合格 を設定 */ { flag=1; last_pass=rclv_voh_500a[l-1]; voh_500a_error[k]=fabs(vih_500a[total_p-k-1]-rclv_voh_500a[l]); } } else { if(shmoo_2d==1)printf("*"); } } if(shmoo_2d==1)printf("\t%6.2f%6.2f\n",last_pass,voh_500a_error[k]); /********** voh_500_b **********/ flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_b[k]); for(l=1;l<cnt;l++) { if(voh_500b[k][l]==1) { if(shmoo_2d==1)printf("."); if(flag=0) /* これが、最初の「.」である場合(最初の失敗)、最後 の合格を設定 */ { flag=1; last_pass=rclv_voh_500b[l-1]; voh_500b_error[k]=fabs(vih_500b[total_p-k-1]-rclv_voh_500b[l]); } } else { if(shmoo_2d==1)printf("*"); } } if(shmoo_2d==1)printf("\t%6.2f%6.2f\n",last_pass,voh_500b_error[k];/ ********** voh_6500_a **********/ flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_a[k]); for(l=1;l<cnt;l++) { if(voh_6500a[k][l]==1) { if(shmoo_2d==1)printf("."); if(flag=0) /* これはが最初の「.」である場合(最初の失敗、最後の 合格を設定 */ { flag=1; last_pass=rclv_voh_6500a[l-1]; voh_6500a_error[k]=fabs(vih_6500a[total_p-k-1]-rclv_voh_6500a[l ]); } } else { if(shmoo_2d==1)printf("*"); } } if(shmoo_2d==1)printf("\t%6.2f%6.2f\n",last_pass,voh_6500a_error[k]) ; /********** voh 6500 b **********/ flag=0; if(shmoo_2d==1)printf("%d\t",rclv_channel_b[k]); for(l=1;l<cnt;l++) { if(voh_6500b[k][l]==1) { if(shmoo_2d==1)printf("."); if(flag=0) /* これが最初の「.」である場合(最初の失敗)、最後の 合格を設定 */ { flag=1; last_pass=rclv_voh_6500b[l-1]; voh_6500b_error[k]=fabs(vih_6500b[tota_p-k-1]-rclv_voh_6500b[l] ); } } else { if(shmoo_2d==1)printf("*"); } } if(shmoo_2d==1)pnntf("\t%6.2f%6.2f\n",last_pass,voh_6500b_error[k]); } } /* rc_lev 関数をクローズ */
【0050】本発明は例として次の実施態様を含む。 (1)試験ヘッド(205)に配置された複数の試験コネク
タを持ち、それぞれの試験コネクタが試験チャネルの電
気信号を運ぶ導体(506)を持ち、それぞれの試験チャネ
ルが少なくとも1つのドライバ(402)および少なくとも
1つのレシーバ(404)を備える回路基板(400)に対応して
いる集積回路を試験するデバイス(100)の構成要素の許
容差を試験するシステムであって、第1および第2の試
験コネクタの導体間に低インピーダンスの電気的な接続
を確立し、第1の回路基板(400a)の第1のドライバ(402
a)が、低インピーダンスの経路を介して、第2の回路基
板の測定ユニット(406a)に電気的に接続される短絡手段
(500)と、前記第1のドライバを制御して、予め定めら
れた目標値の電気信号を出力するよう構成されるコント
ローラ(206)と、前記測定ユニットにより受け取られた
電圧レベルが、前記予め定められた目標値の予め定めら
れた量の範囲内におさまっているか検証するよう構成さ
れる検証手段(206、702)と、を備える、デバイスの構成
要素の許容差を試験するシステム。
【0051】(2)試験ヘッド(205)に配置された複数
の試験コネクタを持ち、それぞれの試験コネクタが試験
チャネルの電気信号を運ぶ導体を持ち、それぞれの試験
コネクタが少なくとも1つのドライバおよび少なくとも
1つのレシーバ(404)を備える回路基板(400)に対応して
いる集積回路を試験するデバイス(100)の構成要素の許
容差を試験するシステムであって、第1および第2の試
験コネクタの導体間に、低インピーダンスの電気的な接
続を確立し、第1の回路基板(400a)の第1のドライバ(4
02a)が、低インピーダンスの経路を介して、第2の回路
基板の第1のレシーバ(402b)に電気的に接続される短絡
手段と、前記第1のドライバを制御して、予め定められ
た目標値の電気信号を出力するよう構成されるコントロ
ーラ(206)と、前記第1のレシーバに届けられた信号電
圧レベルを解読するよう設計される評価手段(206、808、8
10)と、前記解読された信号が、前記予め定められた値
の規定された量の範囲内におさまっているか検証するよ
う構成される検証手段(206、812)と、を備える集積回路
を試験するデバイスの構成要素の許容差を試験するシス
テム。
【0052】(3)前記短絡手段が、前記第1の試験コ
ネクタのピンと前記第2の試験コネクタのピンの間を導
電性の経路で直接的に確立する金属層を含むプリント回
路基板を備える上記(2)に記載のシステム。 (4)前記評価手段および検証手段が、処理ユニットの
動作を制御するプログラムコードを介して認識される上
記(2)に記載のシステム。 (5)前記処理ユニットが、マイクロプロセッサ、マイ
クロコントローラ、内蔵型のコントローラ、特定用途向
け集積回路および処理と制御機能を実行するのに特別に
設計された専用ハードウェアから成るグループから選択
されるデバイスである上記(2)に記載のシステム。
【0053】(6)試験ヘッド(205)に配置された複数
の試験コネクタを持つ集積回路を試験するための試験デ
バイス(100)において、それぞれの試験コネクタが試験
チャネルの電気信号を運ぶ導体(506)を持ち、それぞれ
の試験チャネルが少なくとも1つのドライバ(402)およ
び少なくとも1つのレシーバ(404)を含む回路基板(400)
に対応しており、第1および第2の試験コネクタの導体
間に電気的な接続を確立し、第1の回路基板(400a)の第
1のドライバ(402a)が、第2の回路基板(400b)の第1の
レシーバ(404b)に、低インピーダンスの経路を介して電
気的に接続されるようにし、該第1のドライバが、規定
された許容差内におさまっていることが知られており、
前記第1のドライバの出力を制御して、予め定められた
値に電気信号を駆動し、前記第1のレシーバで解読され
た信号レベルを評価し、前記解読された信号が、前記予
め定められた値の規定された量の範囲内におさまってい
るかを検証する構成要素の分散を診断する方法。
【0054】(7)第1および第2の試験コネクタの導
体間に電気的な接続を確立し、第1の回路基板(400a)の
第2のドライバ(402a)が、低インピーダンスの経路を介
して第2の回路基板(400b)の第2のレシーバ(404b)に電
気的に接続されるようにし、該第2のドライバが規定さ
れた許容差内におさまっていることが知られており、前
記第2のドライバの出力を制御して、予め定められた値
に電気信号を駆動し、前記第2のレシーバで解読された
信号レベルを評価し、前記第2のレシーバで解読された
信号レベルが、前記第2のドライバからの予め定められ
た値の出力の規定された量の範囲内におさまっているか
検証する上記(6)に記載の方法。
【0055】(8)前記電気的な接続を確立するステッ
プが、前記第1および第2の試験コネクタの導体間に電
気的な接続を確立し、第1の回路基板(400a)の複数のド
ライバ(402a)が、低インピーダンスの経路を介して、第
2の回路基板(400b)の複数のレシーバ(404b)に電気的に
接続されるようにし、第2の回路基板の複数のドライバ
(402b)が、低インピーダンスの経路を介して、第1の回
路基板の複数のレシーバ(404a)に電気的に接続されるよ
うにし、該複数のドライバのそれぞれが、規定された許
容差内におさまっていることが知られている上記(6)
に記載の方法。
【0056】(9)前記第1のドライバの出力を制御す
るステップが、出力高信号について規定された低い局限
(margin)を表す第1のレベルになるよう第1のドライバ
の出力を制御し、前記検証するステップが、前記第1の
レシーバで受け取られた値が、確実に少なくともこの値
であるようにする上記(6)に記載の方法。
【0057】(10)前記第1のドライバの出力を制御
するステップが、出力高信号の規定された高い局限を表
す第1のレベルになるよう第1のドライバの出力を制御
し、前記検証するステップが、前記第1のレシーバで受
け取られた値が、確実にこの値より大きくないようにす
る上記(6)に記載の方法。
【0058】
【発明の効果】本発明によると、高精度でデジタル試験
器の性能を検証することにより、自動試験装置の精度を
改善することができるようになるという効果が得られ
る。
【図面の簡単な説明】
【図1】デジタル電子回路を試験するための自動試験デ
バイスのブロック図。
【図2】自動試験装置を示すブロック図。
【図3】自動試験装置の試験ヘッドを詳細に示す図。
【図4】試験装置に複数のドライバおよびレシーバを備
える回路基板の主要な構成要素を示すブロック図。
【図5】試験装置の試験ヘッドの試験コネクタの2つの
ピン間の相互接続を示すブロック図。
【図6】ドライバエラーを試験して測定するよう構成さ
れた、図4に示される型の2つの回路基板の構成を示す
ブロック図。
【図7】レシーバエラーを試験して測定するよう構成さ
れた、図4に示される型の2つの回路基板の構成を示す
ブロック図。
【図8】ドライバエラーを試験および測定する時の主要
なステップを示すフローチャート。
【図9】レシーバエラーを試験および測定する時の主要
なステップを示すフローチャート。
【符号の説明】
100 試験器 205 試験ヘッド 206 コントローラ 400 基板 402 ドライバ 404 レシーバ 406 測定ユニット 506 導体

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】試験ヘッドに配置された複数の試験コネク
    タを持ち、それぞれの試験コネクタが試験チャネルの電
    気信号を運ぶ導体を持ち、それぞれの試験チャネルが少
    なくとも1つのドライバおよび少なくとも1つのレシー
    バを備える回路基板に対応している集積回路を試験する
    デバイスの構成要素の許容差を試験するシステムであっ
    て、 第1および第2の試験コネクタの導体間に低インピーダ
    ンスの電気的な接続を確立し、第1の回路基板の第1の
    ドライバが、低インピーダンスの経路を介して、第2の
    回路基板の測定ユニットに電気的に接続される短絡手段
    と、 前記第1のドライバを制御して、予め定められた目標値
    の電気信号を出力するよう構成されるコントローラと、 前記測定ユニットにより受け取られた電圧レベルが、前
    記予め定められた目標値の予め定められた量の範囲内に
    おさまっているか検証するよう構成される検証手段と、 を備える集積回路を試験するデバイスの構成要素の許容
    差を試験するシステム。
JP10324877A 1997-11-26 1998-11-16 集積回路を試験するデバイスの構成要素の許容差を試験するシステム Withdrawn JPH11274261A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/979,511 US6025708A (en) 1997-11-26 1997-11-26 System for verifying signal voltage level accuracy on a digital testing device
US979511 1997-11-26

Publications (1)

Publication Number Publication Date
JPH11274261A true JPH11274261A (ja) 1999-10-08

Family

ID=25526931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10324877A Withdrawn JPH11274261A (ja) 1997-11-26 1998-11-16 集積回路を試験するデバイスの構成要素の許容差を試験するシステム

Country Status (4)

Country Link
US (1) US6025708A (ja)
EP (1) EP0919822B1 (ja)
JP (1) JPH11274261A (ja)
DE (1) DE69836407T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152695A1 (ja) * 2007-06-12 2008-12-18 Fujitsu Limited 電子装置、電子装置の試験方法
CN102692597A (zh) * 2012-06-15 2012-09-26 株洲南车时代电气股份有限公司 一种感应洁具pcb板通用自动测试***及其方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192496B1 (en) * 1997-11-26 2001-02-20 Agilent Technologies, Inc. System for verifying signal timing accuracy on a digital testing device
WO2001093117A2 (en) * 2000-06-01 2001-12-06 Siemens Dematic Electronics Assembly Systems, Inc. Electronics assembly systems customer benefit modeling tools and methods
US8015333B1 (en) * 2001-06-04 2011-09-06 Digi International Inc. Method and apparatus for the detection of the end of a daisy chain
US6820226B2 (en) * 2002-01-07 2004-11-16 International Business Machines Corporation Method, apparatus and computer program product for contention testing
US6804620B1 (en) * 2003-03-21 2004-10-12 Advantest Corporation Calibration method for system performance validation of automatic test equipment
US7106081B2 (en) * 2004-07-08 2006-09-12 Verigy Ipco Parallel calibration system for a test device
US7552370B2 (en) * 2006-03-31 2009-06-23 Robert Pochowski Application specific distributed test engine architecture system and method
US7683607B2 (en) * 2007-09-25 2010-03-23 Himax Display, Inc. Connection testing apparatus and method and chip using the same
US7802160B2 (en) * 2007-12-06 2010-09-21 Advantest Corporation Test apparatus and calibration method
CN101968527B (zh) * 2009-07-27 2013-06-19 智邦科技股份有限公司 ***级封装的装置批次测试方法及其装置批次测试***
DE102011084143A1 (de) * 2011-10-07 2013-04-11 Rohde & Schwarz Gmbh & Co. Kg Messsoftware unterstütztes Messsystem und Messverfahren

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3541440A (en) * 1967-08-22 1970-11-17 Rca Corp Use in an automatic testing system of a simulator of an article being tested for testing the testing system
US4806852A (en) * 1984-09-07 1989-02-21 Megatest Corporation Automatic test system with enhanced performance of timing generators
US5225772A (en) * 1990-09-05 1993-07-06 Schlumberger Technologies, Inc. Automatic test equipment system using pin slice architecture
US5212443A (en) * 1990-09-05 1993-05-18 Schlumberger Technologies, Inc. Event sequencer for automatic test equipment
US5200696A (en) * 1990-09-10 1993-04-06 Ltx Corporation Test system apparatus with Schottky diodes with programmable voltages
US5262716A (en) * 1992-04-21 1993-11-16 Hewlett-Packard Company Tester calibration procedure which includes fixturing
US5256964A (en) * 1992-07-31 1993-10-26 International Business Machines Corporation Tester calibration verification device
JPH06148279A (ja) * 1992-10-30 1994-05-27 Yokogawa Hewlett Packard Ltd 電子デバイス試験・測定装置、およびそのタイミングならびに電圧レベル校正方法
US5504432A (en) * 1993-08-31 1996-04-02 Hewlett-Packard Company System and method for detecting short, opens and connected pins on a printed circuit board using automatic test equipment
US5390194A (en) * 1993-11-17 1995-02-14 Grumman Aerospace Corporation ATG test station
US5633596A (en) * 1994-01-11 1997-05-27 Key Solutions Ltd. Fixtureless automatic test equipment and a method for registration for use therewith
US5485096A (en) * 1994-04-05 1996-01-16 Aksu; Allen Printed circuit board tester having a test bed with spring probes and easily replaceable switch cards
US5471145A (en) * 1994-04-07 1995-11-28 Texas Instruments Incorporated Calibrating transition dependent timing errors in automatic test equipment using a precise pulse width generator
US5539305A (en) * 1994-10-03 1996-07-23 Botka; Julius K. Calibration board for an electronic circuit tester
US5590136A (en) * 1995-01-25 1996-12-31 Hewlett-Packard Co Method for creating an in-circuit test for an electronic device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152695A1 (ja) * 2007-06-12 2008-12-18 Fujitsu Limited 電子装置、電子装置の試験方法
JPWO2008152695A1 (ja) * 2007-06-12 2010-08-26 富士通株式会社 電子装置、電子装置の試験方法
KR101121823B1 (ko) * 2007-06-12 2012-03-21 후지쯔 가부시끼가이샤 전자 장치, 전자 장치의 시험 방법, 및 시험 프로그램을 기록한 기록 매체
CN102692597A (zh) * 2012-06-15 2012-09-26 株洲南车时代电气股份有限公司 一种感应洁具pcb板通用自动测试***及其方法

Also Published As

Publication number Publication date
EP0919822B1 (en) 2006-11-15
DE69836407D1 (de) 2006-12-28
EP0919822A2 (en) 1999-06-02
US6025708A (en) 2000-02-15
EP0919822A3 (en) 2003-11-12
DE69836407T2 (de) 2007-07-05

Similar Documents

Publication Publication Date Title
US6192496B1 (en) System for verifying signal timing accuracy on a digital testing device
KR100366963B1 (ko) 반도체 디바이스 시뮬레이트 장치 및 그것을 이용한반도체 테스트용 프로그램 디버그 장치
US5682472A (en) Method and system for testing memory programming devices
US8310270B2 (en) Emulating behavior of a legacy test system
US20090267628A1 (en) Circuit board test system and test method
US6556938B1 (en) Systems and methods for facilitating automated test equipment functionality within integrated circuits
JPH11274261A (ja) 集積回路を試験するデバイスの構成要素の許容差を試験するシステム
JP4698680B2 (ja) 高電圧機能を備えたピンエレクトロニクス
US10684930B2 (en) Functional testing of high-speed serial links
US6128757A (en) Low voltage screen for improving the fault coverage of integrated circuit production test programs
JP2680259B2 (ja) 自動開放検出方法
JP2008526112A (ja) 変換器試験のためのパラメトリック測定ユニットの使用
Caunegre et al. Achieving simulation-based test program verification and fault simulation capabilities for mixed-signal systems
Ungar et al. IEEE-1149. X standards: achievements vs. expectations
US6577980B1 (en) Systems and methods for facilitating testing of pad receivers of integrated circuits
Ungar et al. Effective use of Reconfigurable Synthetic Instruments in Automatic Testing of Input/Output (I/O) Buses
RU2265236C1 (ru) Способ диагностики аппаратуры
JP2000292490A (ja) Lsiテスタ及びlsiのテスト方法
Salman et al. DESIGN AND IMPLELMENTATION A PC BASED SYSTEM FOR CIRCUIT TESTING
JP2800507B2 (ja) 診断装置および診断方法
Kivenko et al. Some quality assurance aspects of automatic testing
JPH09264930A (ja) Ic試験装置およびその故障診断方法
JPH11271400A (ja) プリント配線板のテスト容易化構造
JPH0415932A (ja) 半導体製造装置
Test System Reuse of Embedded Test

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051011

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051011

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060629

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061129

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070807