(57)【特許請求の範囲】
【請求項１】
複数の集積回路チップを備えた回路について行われる境界走査相互接続テストの診断分解能を増大させるための方法であって、該複数の集積回路チップの各々が、複数の別個の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを有するものであり、該方法が、
(1) 境界走査相互接続テストの実行中に生成されるネット識別特性のリストを受信し、
(2) 同一のネット識別特性を有するネットを、短絡し得るネットのグループへとグループ化し、
(3) 前記回路の基板の物理的記述に含まれるx、y座標データを調べて該回路中のＩ／Ｏピン間における半径方向の隣接性を識別し、該Ｉ／Ｏピン間における半径方向の隣接性が、各Ｉ／Ｏピンを中心とした半径方向において各Ｉ／Ｏピンが互いの半径方向距離ｒ内にある場合に存在し、
(4) 前記短絡し得るネットのグループの各々毎に、該グループ中の前記ネットの前記Ｉ／Ｏピン間における半径方向の隣接性に基づき、互いに短絡している可能性のあるネットを判定する、
という各ステップを含む、前記方法。
【請求項２】
(5) 半径方向に隣接するＩ／Ｏピンを調べて短絡の可能性のある位置を判定する、というステップを更に含む、請求項１に記載の方法。
【請求項３】
前記ステップ(3)が、前記回路中の各ネット毎に半径方向に隣接する複数のネットを含む隣接性リストを生成するステップを含む、請求項１に記載の方法。
【請求項４】
前記ステップ(4)が、前記短絡し得るネットのグループ内の各ネット毎に前記隣接性リストをチェックするステップを含む、請求項３に記載の方法。
【請求項５】
複数の集積回路チップを含む回路の境界走査相互接続テストを実行するための自動化された方法であって、該複数の集積回路チップの各々が、複数の別個の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを有するものであり、該方法が、
(1) 走査経路を介して前記回路内へテストベクトルを直列に走査し、
(2) 該テストベクトルを前記回路中の複数の出力バッファから前記導電性ネットを介してブロードキャストし、
(3) 前記テストベクトルを前記回路中の複数の受信レジスタセルに捕捉し、
(4) 前記走査経路を介して前記受信レジスタセルからの前記テストベクトルを直列に走査し、
(5) 前記ステップ(1)〜(4)を複数のテストベクトルについて繰り返し、
(6) 前記複数の捕捉されたテストベクトルから複数のネット識別特性を生成し、
(7) 同一のネット識別特性を有するネットを短絡し得るネットのグループへとグループ化し、
(8) 前記回路の基板の物理的記述に含まれるx,y座標データを調べて該回路中のＩ／Ｏピン間における半径方向の隣接性を識別し、該Ｉ／Ｏピン間における半径方向の隣接性が、各Ｉ／Ｏピンを中心とした半径方向において各Ｉ／Ｏピンが互いの半径方向距離ｒ内にある場合に存在し、
(9) 前記短絡し得るネットの各グループ毎に、該短絡しうるネットのグループ中の前記ネットのＩ／Ｏピン間における半径方向の隣接性に基づいてどのネットが互いに短絡している可能性があるかを判定する、
という各ステップを含むことを特徴とする、前記方法。
【請求項６】
複数の集積回路チップを備えた回路の境界走査相互接続テストのための検出及び診断テストパターンを生成するための方法であって、該複数の集積回路チップの各々が、複数の別個の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを有するものであり、該方法が、
(1) 半径方向に隣接するＩ／Ｏピンを有する導電性ネットをグループ化し、該半径方向に隣接するＩ／Ｏピンの各々が、互いに各Ｉ／Ｏピンを中心とした半径方向距離ｒ内にあり、
(2) 高度診断テストパターンに従って前記グループ中の各導電性ネットに一意の識別番号を割り当て、同じネット識別番号を他のグループで再利用することが可能であり、２つ以上のグループに共通する前記導電性ネットが単一の一意のネット識別番号のみを受容し、
(3) 簡潔テストパターンに従って各グループに一意のグループ識別番号を割り当て、
(4) 該各グループ毎の該グループ識別番号を、該各グループ中の各導電性ネット毎の前記ネット識別番号に付加して、各導電性ネット毎の一意のネット識別子を形成し、
(5) 該ネット識別子を組み合わせてマトリクスを形成し、該マトリクスの各行が前記ネット識別子のうちの１つであり、該マトリクスの各列が境界走査テストに利用可能な一意のテストベクトルである、
という各ステップを含む、前記方法。
【請求項７】
前記高度診断テストパターンが移動ビットテストパターンである、請求項６に記載の方法。
【請求項８】
前記簡潔テストパターンが計数テストパターンである、請求項７に記載の方法。
【請求項９】
複数の集積回路チップを備えた回路の境界走査相互接続テストのための検出及び診断テストパターンを生成するための方法であって、該複数の集積回路チップの各々が、複数の別個の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを有するものであり、該方法が、
(1) 前記回路中の前記集積回路チップ間における論理的な相互接続を規定する論理相互接続データを受信し、
(2) 前記回路中の前記集積回路チップのＩ／Ｏピンに関するＩ／Ｏピン座標データを受信し、
(3) 前記回路の製造中に前記隣接するＩ／Ｏピン間で不正な相互接続が生じる可能性のある所定の半径方向距離を受信し、該半径方向距離により半径方向の隣接性を規定し、
(4) 一導電性ネットに関する各Ｉ／Ｏピンを、他の導電性ネットに関するＩ／Ｏピンに対する半径方向の隣接性について解析し、
(5) 半径方向に隣接するＩ／Ｏピンを有する導電性ネットをグループ化し、
(6) 高度診断テストパターンに従って１グループ中の各導電性ネットに一意のネット識別番号を割り当て、同じネット識別番号を他のグループで再利用することが可能であり、２つ以上のグループに共通する前記導電性ネットが単一の一意のネット識別番号のみを受容し、
(7) 簡潔テストパターンに従って各グループに一意のグループ識別番号を割り当て、
(8) 該各グループ毎の該一意のグループ識別番号を、該各グループ中の各導電性ネット毎の前記ネット識別番号に付加して、各導電性ネット毎の一意のネット識別子を形成し、
(9) 該ネット識別子を組み合わせてマトリクスを形成し、該マトリクスの各行が前記ネット識別子のうちの１つであり、該マトリクスの各列が境界走査テストに利用可能な一意のテストベクトルである、
という各ステップを含む、前記方法。
【請求項１０】
前記高度診断テストパターンが移動ビットテストパターンである、請求項９に記載の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、回路基板の相互接続テストの分野に関し、特に、境界走査相互接続テストための検出および診断テストパターンを生成し、および、境界走査その他の相互接続テストの実行後におけるそれらテストの診断分解能を増大させる方法に関する。
【０００２】
【従来の技術】
回路基板レベルでの複雑なディジタル回路のテストは、ＡＴＥ（自動テスト装置）システム上で行われることが非常に多い。HP3070テスタは、ＡＴＥシステムの一例である。HP3070は、ヒューレット・パッカード・カンパニー（Palo Alto, California）から入手可能なものである。HP3070に関する詳細な操作情報については、HP部品番号44930Aでヒューレット・パッカード・カンパニーから入手可能な「HP3070 Board Test System User's Documentation Set(1989)」に記載されている。
【０００３】
ＡＴＥシステム上で実施されるテストには、機能テストおよび回路内テストが含まれる。機能テストは、従来は、回路基板の外部入力に入力信号を加え、その基板の外部出力からの出力信号を観測することを伴うものである。このタイプのテストは、大規模回路の場合には極めて複雑になり、限られた診断しか提供することができないものとなる。
【０００４】
最近のテストでは、次第に、その伝統的な機能テストを回路内要素テストで補うようになってきている。回路内要素テストは、各ディジタル集積回路（ＩＣ）の性能を１つの機能ユニットとしてテストする一種の機能テストである。即ち、基板上の各要素（例えばディジタルＩＣ）は、その要素が周囲の回路から電気的に絶縁されているかのようにテストされる。回路内要素テストを実施するため、テスタ（例えばＡＴＥ）は、ＤＵＴ（被テスト装置）の入力に入力信号を直接加え、そのＤＵＴの出力にアクセスして出力応答を観測しなければならない。
【０００５】
HP3070等のＡＴＥシステムは、「ベッド・オブ・ネイル」（即ち、基板表面上のパッドからのデバイスＩ／Ｏ（入力／出力）ピンと直接接触するプローブ）固定具を使用して、基板上の必要なノードにアクセスする。残念ながら、回路内テストにより必要とされるノードアクセスは、回路の複雑さ（例えば、小型部品、マルチチップモジュール、ＡＳＩＣ等）の増大や表面実装およびシリコン−オン−シリコンといった技術の利用の増大によって妨げられる場合が多い。
【０００６】
境界走査の開発により、ノードアクセスが改善されて、回路内テストが容易になった。境界走査は、各デバイスピンとＩＣチップの内部論理回路との間にシフトレジスタが位置するように設計されたデバイスを伴う、標準化された（例えばIEEE規格1149.1-1990）テスト技法である。これにより、境界走査チップ上のあらゆる入力および出力信号にテスタがアクセスすることが可能になり、また、テスタが、コア論理回路から独立してＩ／Ｏピンの制御を行うこと、および／または、Ｉ／Ｏピンから独立してコア論理回路の制御を行うことが可能になる。
【０００７】
例えば、境界走査ＩＣチップ100を図１に示す。境界レジスタ102は複数の境界レジスタセル104から形成される。各セル104は、チップ100のＩ／Ｏ端子106(a)〜(b)と内部論理回路108との間に配置されている。慣習上、入力端子106(a)がチップ100の左側に示され、出力端子106(b)がチップ100の右側に示されている。そのＩ／Ｏ端子の中には双方向性のものもある。ただし、双方向性ピンは、相互接続テストに関しては入力または出力の何れか一方として固定される。従って、図示上の目的のため、双方向性ピンは、入力（受信手段）として機能する場合にはチップ100の左側に示し、出力（ドライバ）として機能する場合にはチップ100の右側に示すこととする。
【０００８】
走査経路または走査チェーン110は、境界レジスタ102を通って形成される。チップ100には、IDCODE（即ち識別子）レジスタ112、バイパスレジスタ114、および命令レジスタ116も含まれる。IDCODEレジスタ112は、チップ100についての識別データを提供する。バイパスレジスタ114は、境界レジスタ102のバイパスを可能にする１ビットレジスタである。命令レジスタ116は、テストモードを選択するために、および、テスト中にチップの動作モードを制御するために用いられる命令ビットをデコードするものである。
【０００９】
テストアクセスポート（ＴＡＰ）コントローラ118は、境界レジスタ102を制御する状態マシンである。境界走査に適応させるために、チップには５つのＩ／Ｏ端子が追加されている。これら５つの端子がテストアクセスポート（ＴＡＰ）を構成している。TDI（テストデータイン）端子は、走査経路110へシリアルテストデータおよび命令ビットを供給する。TDO（テストデータアウト）端子は、走査経路110にシリアル出力を供給する。TCK（テストクロック）端子は、チップ100に独立したテストクロックを提供する。TMS（テストモード選択）端子は、ＴＡＰコントローラ118の状態を変更させるのに必要な論理レベルを供給する。TRST（テストリセット）端子はチップ100のリセットに使用される。破線で示すTRST端子は随意選択のものである。
【００１０】
境界走査に関する一層詳細な説明については、IEEE規格1149.1-1990「IEEE Standard Test Access Port and Boundary-Scan Architecture」（IEEE Standards Board）、および「HP Boundary-Scan Tutorial and BSDL Reference Guide」（ヒューレット・パッカード・カンパニー、HP部品番号E1017-90001）に記載されている。なお、上記引用をもってその開示内容を本明細書中に包含させたものとし、その詳細な説明は省略することとする。
【００１１】
本発明に最も関連することは、相互接続テストに境界走査を用いることである。基板の製造テストを行う場合には、基板上に部品を取り付ける前にデバイスの相互接続（例えばプリント回路トレース）がテストされる。同様に、その基板への取り付け前に部品がテストされる。基板への部品の取り付け後に相互接続の再テストを行うのが望ましい。このテストが、境界走査相互接続テストと呼ばれている。
【００１２】
境界走査相互接続テストは、回路基板上への集積回路チップ(ＩＣ)の取り付け時に導入された問題の位置を突き止めようとするものである。主たる故障には、開路、短絡、欠落部品または故障部品、および配向を誤った（例えば180゜回転されている）部品等が含まれる。開路は、破損したピンまたは「コールド」ハンダ接続に起因して生じることが多い。短絡は、１つのＩＣピン接続部と次のピン接続部とのギャップが過剰なハンダで橋絡されることにより生じ得るものである。
【００１３】
相互接続テストには、基板上の各導電性「ネット」または「ノード」をテストして、適当なデバイス（例えば、１つ以上のＩＣチップの入力バッファおよび／または出力バッファ）を接続していることを確認することが含まれる。ここで、「ネット」または「ノード」は、物理的導体によって形成される等電位面として定義されるものである。
【００１４】
テストすべきサンプル回路200を図２に示す。この回路200は、６つの相互接続されたＩＣU1〜U6を含んでいる。各ＩＣには境界レジスタセル104が示されている。慣習に従い、入力セルは各ＩＣの左側に示され、出力セルは各ＩＣの右側に示されている。各ＩＣの各ピンは、左下隅から連番が付されており、ＩＣの符号と共にそれら番号によって参照される。例えば、U1-3は、U1のピン3を表している。
【００１５】
ＩＣU1〜U6のレジスタセル104を接続する走査経路110が示されている。走査経路110におけるセル104が境界レジスタ（図１の符号102）を形成している。ネットｎ1は、ピンU1-4をピンU4-3に接続している。ネットｎ2は、ピンU1-5をピンU4-2およびピンU5-4に接続している。ネットｎ3は、ピンU1-6,U2-5をピンU5-2に接続している。ネットｎ4は、ピンU2-4をピンU4-1,U5-3に接続している。ネットｎ5は、ピンU2-6をピンU5-1に接続している。ネットｎ6は、ピンU3-4をピンU6-3に接続している。ネットｎ7は、ピンU3-5をピンU6-1に接続している。ネットｎ8は、ピンU3-6をピンU6-2に接続している。
【００１６】
境界走査相互接続テスト回路200の方法を図３に示す。ステップ302において、テストベクトル（即ちテストデータ）が境界レジスタ102へと直列シフト出力される。ステップ304において、そのテストベクトルが、適当な出力バッファ（ドライバ）からそれに対応するネットを介して受信入力バッファへとブロードキャストされる。次いで、そのブロードキャストデータがステップ306で受信レジスタセルに捕捉される。その捕捉されたテストデータは、ステップ308で、境界レジスタ102からシフト出力される。最後に、ステップ310において、捕捉されたテストデータが、ブロードキャストされたテストデータと比較される。捕捉されたデータとブロードキャストされたデータとの相違は故障を表すものである。捕捉されたテストデータには、そのテストデータがブロードキャストされたネットの状態に関する情報が含まれているので、本書では「ネット識別特性(signature)」とも呼ばれる。
【００１７】
単一のテストベクトルは、１つの故障を検出することが可能なものではあるが、ごく僅かな診断情報しか提供しないものとなる。従って、故障状態を診断するためには、複数のテストベクトルが必要になる。複数のテストベクトルがブロードキャストされて捕捉された後に、その捕捉データが解析されて故障診断が行われる。
【００１８】
ネットｎ3が２つのドライバ（図２のピンU1-6,U2-5）によって駆動される点に留意されたい。最適なテスト方法では、境界走査テスト中にそれらのドライバを両方とも利用することはない。これは、その両方のドライバを用いることが非効率的であり、境界走査テストを不必要に複雑にするからである。代替的には、１つのドライバが選択されて相互接続テストに用いるよう指定される。また、別のドライバが非指定ドライバのリストに加えられる。相互接続テストが完了すると、バステスト（即ち、短絡回路のテストは境界走査相互接続テストによって既に行われているので、接続だけを検査するテスト）中に非指定ドライバのテストが行われる。このバステストは、全ての非指定ドライバを並列にテストすることにより極めて迅速に実施可能なものである。
【００１９】
相互接続の故障には、単一ネット故障とマルチネット故障とがある。単一ネット故障は、１つのネットにしか関連せず、HIGH状態の固定(stuck HIGH)と、LOW状態の固定(stuck LOW)と、開路故障とを含むものである。また、マルチネット故障は、２つ以上のネットを接続する短絡によって生じるものである。単一ネット故障は、その検出および位置発見が簡単なものである。しかし、マルチネット故障は、その診断が困難になる可能性のあるものである。例えば、２つの短絡ノードが第３の良好なノードと同様に「偽り(alias)」(即ち挙動し）、このため、第３の良好なノードも短絡に関連しているのか否かを判定することができなくなる場合がある。同様に、それぞれ、２つ以上のノードを各々が含んでいる２つの短絡が同一の作用を示す可能性があり、これにより、１つの大きな短絡が存在するのか２つの別個の短絡が存在するのかが不明確になる。この現象は「混同(confounding)」として知られるものである。
【００２０】
マルチネット故障の実際の結果は、関連するネットのタイプによって決まる。３タイプのネットには、単純ネット、ワイヤネット、および３状態ネットがある。単純ネットは、単一のバッファ／ドライバにより駆動される。ワイヤネットは、２つ以上のバッファ／ドライバにより駆動される。ワイヤネットは、ワイヤANDネットまたはワイヤORネットとすることが可能なものである。ワイヤANDネットは、優位(dominant)LOW状態を有するドライバを備えたネットである。即ち、２つのドライバが互いに短絡した場合には、LOW信号が優位となり、その結果として信号の論理積が生じることになる。ワイヤORネットは、優位HIGH状態を有するドライバを備えたネットである。即ち、２つのドライバが互いに短絡した場合には、HIGH信号が優位となり、その結果として信号の論理和が生じることになる。３状態ネットは、２つ以上の３状態バッファ／ドライバにより駆動されるネットである。
【００２１】
マルチネット故障の結果には、確定的（予測可能）なものもあれば、非確定的（予測不能）なものもある。確定的な故障には、OR型の短絡（即ちワイヤORネット間の短絡）と、AND型の短絡（即ちワイヤANDネット間の短絡）と、強力なドライバの短絡（即ち、優位なドライバがその他のドライバにかかわらずネットの状態を制御する場合のネット間の短絡）とがある。故障診断の一層詳細な解析については、N.Jarwala および C.W.Yau 著の「A New Framework for Analyzing Test Generation and Diagnosis Algorithms for Wiring Interconnects」(Proceedings of International Test Conference 1989, pp63〜70 (IEEE Order No. CH2742-5/0000/0063)）を参照されたい。なお、本引用をもってその開示内容を本明細書中に包含させたものとし、その詳細な説明は省略する。
【００２２】
相互接続境界走査テストを行う場合には、故障（即ち相互接続上の問題）を検出すると共にその故障の位置の発見に有用な診断情報を提供するテストパターンの利用が求められる。更に、そのテストパターンを可能な限り短く維持することが望ましい。これは、各テストベクトルを、各テストクロック（TCK）サイクル毎に１ビットずつ境界レジスタへ直列にシフト入力（および境界レジスタから直列にシフト出力）しなければならないからである。
【００２３】
残念ながら、それらの目的は矛盾する関係にあり、このため、診断能力のために簡潔さが犠牲になる（またはその逆の）場合が多い。簡潔さを主たる目的としたテストパターンは、簡潔テストパターンと呼ばれる。簡潔テストパターンは、診断を制限されたものとする傾向にある。診断能力を主たる目的としたテストパターンは、高度診断テストパターンと呼ばれる。高度診断テストパターンは長いものとなる傾向にある。
【００２４】
移動(walking)ビットテストパターン
例えば、「移動ビット」は、最適な診断分解能を提供する従来のテストパターンである。この移動ビットパターンは、各ネットに一意のＩＤ（識別）番号を割り当てる。各ＩＤ番号は、同一のビットフィールドのビットとは異なる単一相補ビット（例えば、論理HIGHまたは論理LOW）を含んでいる。単一相補ビットは、各ＩＤ番号毎に異なる一意のビット位置または列にあるものである。例えば、移動１パターンは、単一の論理HIGHまたは「１」のビットを有している。
【００２５】
図４は、回路200のテストに利用可能な移動１テストパターンを示すものである。一意の移動１ネットＩＤ番号を各ネットに割り当てると、その結果として、テストデータのマトリクス400が生じる。そのマトリクスの水平行はＩＤ番号を含み、垂直列はブロードキャストすべきテストフレームまたはテストベクトルを含んでいる。ネットｎ1に割り当てられたサンプルネットＩＤ番号402およびテストベクトル404が図示されている。
【００２６】
各テストベクトルは、移動１テストパターンによる単一の「１」を含むものである、ということに留意されたい。従って、テスト時には、各テストベクトルおよび各ネット毎に単一の「１」だけしかブロードキャストされないことになる。各テストベクトル毎に単一の「１」だけしか使用されないので、どのネットが互いに短絡し、どのネットが開路になっているかを識別するのは簡単である。従って、極めて良好な診断分解能が利用可能となる。
【００２７】
移動ビットテストの主な欠点は、それが大がかりで（即ち大量のテスタメモリを必要とする）冗長なものとなり、大規模回路の場合には管理不能となり得るという点である。移動ビットパターンに必要なテストクロック（TCK）サイクル数は、１ベクトル当たりのテスト信号数（ビット）をテストベクトル数に乗算した値、即ち概算的にはネット数を２乗した値（Ｎ2）の関数となる（例えばその値に比例する）。これは、大まかな概算値でしかない。何故なら、実際には、ドライバおよび受信レジスタセルの両者を含む走査経路において適当なドライバに有意テストビットを適正に位置合わせするために、各テストベクトルに位置ホルダ(place holder)ビットを挿入しなければならないからである。図４に示す８ネットの例の場合、完全なテストを行うためには８つのテストベクトルが必要となる。その各テストベクトルは、36ビット長（８つの有意テストビットを有する走査経路中の各セル毎に１ビットずつと28の位置ホルダビット）を有するものである。これは、８×36即ち288のテストクロックサイクルに等しい。5000ネットを有する回路の場合、テスト長は、50002即ち25,000,000のテストクロックサイクルに比例する（即ち、この概算値は位置ホルダビットを考慮していない）。
【００２８】
計数テストパターン
簡潔テストパターンの一例として計数テストパターンがある。計数テストは、移動ビットパターンの代替策となるものである。計数パターンでは、各ネットに一意のＩＤ番号が割り当てられる。ネットＩＤ番号は、結果的にテストベクトル数の対数圧縮が生じるように２進計数様式で増大する。
【００２９】
「修正型」計数テストパターンは、全てゼロまたは全て１からなるＩＤ番号を排除して各ＩＤ番号が少なくとも１つの「１」および少なくとも１つの「０」を含むようにした点を除き、計数テストパターンと等価なものである。この修正により、固定(stuck-at)故障テストが可能になる。特に指定しない限り、本書で用いる計数テストは、計数テストと修正型計数テストとの両者を表すものとする。
【００３０】
図５には、回路200に関するサンプル修正型計数パターンが示されている。テストベクトルのマトリクス500はＩＤ番号から形成されている。このマトリクスの水平行はネットＩＤ番号を含み、垂直列はブロードキャストすべきテストフレームまたはテストベクトルを含んでいる。ネットｎ1に割り当てられたサンプルネットＩＤ番号502およびサンプルテストベクトル504が図示されている。
【００３１】
マトリクス500は、移動ビットパターンが必要とする８つのテストベクトルではなく４つのテストベクトルだけしか含んでいない点に留意されたい。一般に、移動ビットパターンは、回路中のネット数に等しいＮのテストベクトルを必要とする。log2(Ｎ)(を次の最大の整数へと丸めた数）のテストベクトルだけしか必要としない計数パターンと、log2(Ｎ＋２)(を次の最大の整数へと丸めた数）のテストベクトルだけしか必要としない修正型計数パターンとを対比されたい。修正型計数パターンの場合にＮに加えられる２の和は、その修正型計数パターンが全てが１の数または全てがゼロの数を使用しないという事実を説明するものである。図５に示す８ネットの例の場合、完全な修正型計数パターンテストを行うためには、４つのテストベクトルが必要となる。その各テストベクトルは、36ビット長（８つの有意テストビットを有する走査経路中の各セル毎に１ビットずつと28の位置ホルダビット）を有するものである。これは、４×36即ち144のテストクロックサイクルに等しい。5000ネットを有する回路の場合、テスト長は、13×5000即ち65,000のテストクロックサイクルに比例することになる（即ち、この概算値は位置ホルダビットを考慮に入れていない）。これは、移動ビットテストに比べると大幅な資源の節約となる。
【００３２】
テストベクトル数が減少することによる欠点は、その減少に対応してテストの診断分解能が低下することである。例えば、ワイヤORネットを用いたネットｎ1とネットｎ2との短絡により、ネットｎ3のＩＤ番号が生じ、ｎ3も短絡しているか否かを判定することができなくなる可能性がある。
【００３３】
当業界では、計数テストパターンの処理速度および簡潔さと共に移動ビットテストパターンの詳細な診断を提供するテストが必要とされている。
【００３４】
適応テストパターン
上述の従来の試みは、テスト生成段階における偽りおよび混同のみを排除しようとするものであった。一方、適応アルゴリズム法は、テストの実行中におけるこれらの問題を除去しようとするものである。この方法は、典型的には、簡潔なテスト法（例えば計数シーケンス）を利用して不良ネットの小サブセットを識別する。次いで、高度診断テスト法（例えば移動１シーケンス）を動的に導出してその不良ネットのサブセットについて実行することにより、詳細な診断が提供される。しかし、この適応型による解決策は、時間を浪費するものであり、また資源を高価なものとするものである。
【００３５】
【発明が解決しようとする課題】
従って、当業界では、時間的および資源的に効率が良く、相互接続テストにおける偽りおよび混同の問題を解消するテスト機構が、依然として必要とされている。
【００３６】
【課題を解決するための手段】
本発明は、回路基板について相互接続テストを行うための方法および装置である。短絡は、ごく近接したピン間のハンダによる橋絡により生じる可能性が最も高いものである、という前提を利用することによってテストが簡略化され、診断分解能が増大する。近接したＩ／Ｏピンを持たないネットは短絡しにくいものであると仮定される。Ｉ／Ｏピンの隣接性に関するデータは、基板についてのＣＡＤ／ＣＡＭ（コンピュータ支援設計／コンピュータ支援製造）データベースから各ピン毎にｘ,ｙ座標の形で得ることが可能である。代替的には、ピンの隣接性に関するデータは、ピン番号から推論することも可能である（即ち、ＩＣチップのピン１とピン２は近接しているものと仮定することができる）。
【００３７】
第１の実施例の場合、改良された検出および診断テストパターンは、境界走査相互接続テストのために生成される。本発明は、簡潔テストパターンの処理速度および簡潔さと共に、高度診断テストパターンの詳細な診断を提供する。これは、テストされる各回路毎にカスタムテストパターンを生成することにより行われる。半径方向に隣接するピンを備えたネットは、１つにグループ化される。次いで、高度診断テストパターンに従ってグループ中の各ネットに一意のネットＩＤ番号が割り当てられる。２つ以上のグループに共通するネットは、単一の一意のネットＩＤ番号しか受容しない。各グループには、簡潔テストパターンに従って一意のグループＩＤ番号が割り当てられる。
【００３８】
グループＩＤ番号が各ネットＩＤ番号に付加されて、各ネット毎に一意のネット識別子が形成される。その一意のネット識別子が組み合わされてマトリクスが形成される。そのマトリクスの各行は、一意のネット識別子の１つである。また、そのマトリクスの各列は、境界走査テストに利用可能な一意のテストベクトルである。
【００３９】
第２の実施例の場合、境界走査相互接続テストの診断分解能は、そのテストの実行後に改善される。テストの実行が完了した後に、捕捉されたテストベクトルが解析されて、どのネットが同一のネット識別特性を生成した（即ち捕捉した）かが判定される。各ネットには、本来は一意のネットＩＤ番号が割り当てられているので、番号の重複は故障を表している。共通の識別特性を有するネットは、１つにグループ化される。各ネットグループが解析されて、それぞれのグループ内のネットのいずれかの間で短絡が生じた可能性があるか否かが判定される。これは、隣接性（半径方向の隣接性）に基づいて行われる。近接したＩ／Ｏピンを有さないネットは短絡しにくいものと仮定される。逆に、半径方向に近接したＩ／Ｏピンを有する同一グループ内のネットは、その半径方向に隣接するピンにより互いに短絡する可能性のあるものとなる。従って、半径方向に隣接するＩ／Ｏピンを有するグループ内の全てのネットは、短絡の可能性のあるネットとしてマークされる。半径方向に隣接するＩ／Ｏピンを有さないグループ内のネットは、おそらくは互いに短絡することはない。本発明を利用することにより、あらゆる境界走査相互接続テストパターンの診断分解能を増大させることができる。
【００４０】
第３の実施例の場合、非給電式の短絡テストの診断が増大する。非給電式の短絡テストにより短絡が示された場合には、データベースがチェックされて、最も短絡の可能性の高い物理的位置が判定される。その可能性のある位置には、或るネットのＩ／Ｏピンが別のネットのＩ／Ｏピンと半径方向に隣接しているポイントが含まれる。これら物理的位置がテスト技術者に提供されて、故障位置の発見が促進される。
【００４１】
本発明の上述その他の目的、特徴、利点は、図示の本発明の好適実施例についての以下の詳細な説明から明らかとなろう。
【００４２】
【実施例】
図面を参照して本発明の好適実施例を詳細に説明する。なお、それらの図面において、同様の符号は同様の構成要素を表しており、また、各符号の最も左側の数字は、その符号が最初に使用された図に対応している。特定の構成部品および／または構成について説明するが、これは、単に例示を目的としたものである、ということが理解されよう。本発明の思想および範囲から逸脱することなく、他の構成部品および構成を利用可能であることは、当業者には自明であろう。
【００４３】
相互接続は、回路基板上に部品を取り付ける前に広範囲にわたりテストされる。従って、ネット間に短絡が生じることとなった場合、その短絡は、近接するＩ／Ｏピン間のハンダによる橋絡によって生じたものである可能性がある。本発明は、相互接続の実施にあたり、この概念を最重要視したものである。
【００４４】
テストされる基板に関する物理的レイアウトまたはピン座標データを解析することにより、製造／ハンダ付けプロセスによって短絡が生じるのに十分な程度に他のネットのピンに近接したネットのデバイスＩ／Ｏピンを識別することが可能となる。そのピン座標データは、各ピン毎にｘ,ｙ座標の形をとることが多く、基板に関するＣＡＤ／ＣＡＭ（コンピュータ支援設計／コンピュータ支援製造）データベースから得ることが可能なものである。代替的に、ＣＡＤ／ＣＡＭデータを得ることができない場合には、ピンの隣接性に関するデータは、ピン番号から推論することが可能である（即ち、ＩＣチップのピン１とピン２は近接しているものとみなすことができる）。
【００４５】
基板およびＩＣピンの寸法と、ＩＣデバイスを基板に取り付けるのに用いられるハンダ付けプロセスの仕様とを用いて半径方向距離ｒが決定される。その半径方向距離ｒを越える場合には短絡が発生する可能性はない。テストされる特定の回路基板に関して最適な決定を行うために、技術的判定(Engineering judgement)を用いることも可能である。次いで、その所定の半径方向距離が、基板に関する相互接続リストおよび物理的レイアウトデータと関連して利用されて、どのネットが互いに短絡を生じる可能性があるかが判定される。本明細書では、その所定の半径方向距離ｒ内にあるデバイスピンを「半径方向隣接ピン」と称し、半径方向に隣接するピンを有するネットを「半径方向隣接ネット」と称することとする。
【００４６】
この点について、サンプル集積回路チップ(ＩＣ)600を示す図６に関連して説明する。ＩＣ600は、入力／出力(Ｉ／Ｏ)ピン601〜603を含んでいる。ピン602が選択され、ピン601〜603の各々が別個のネットに接続されている場合には、ピン601,603がピン602と短絡する可能性を判定することが望ましい。ハンダの橋絡により、半径方向距離ｒだけ離れた２つのピンが潜在的に接続され得ると判定された場合には、技術者／ユーザは、短絡半径が少なくともこの距離ｒと同じ大きさに設定されていることを確認することを望むと思われる。次いで、テスト実施者は、基板に関する物理的データを利用してピン601,603がピン602に対する半径方向距離ｒ内にあるか否かを判定することができる。図６には、ピン601,603が両方ともピン602の半径方向距離ｒ内にあることを図示するために弧604が示されている。従って、ピン601,603の各々は、ピン602に半径方向に隣接している。
【００４７】
図７は、境界走査相互接続テストに含まれる３つのステップを示すものである。まず、ステップ702で、テストパターン（即ちテストベクトル）が生成される。各ネットには一意のＩＤ番号が割り当てられる。ステップ704で、ＡＴＥシステムを介して回路基板のテストが実行される。次いでステップ706で、そのテスト結果がテスト診断のために解析される。テスト診断には、テスト結果を解析して故障箇所を突き止めることが含まれる。
【００４８】
本発明は、テスト生成段階およびテスト診断段階の両方でテスト分解能を増大させる（即ち、偽りおよび混同を低減させる）ものである。これら実施例の各々について以下で詳述する。
【００４９】
テスト生成
図８は、本発明のステップを示す上位レベルのフローチャートである。ステップ802で、テスト対象の基板を解析して、どのネットが隣接するネットと物理的な近接により短絡を生じる可能性があるかが判定される。これは、上述のように半径方向に隣接するピンを求めてネットを調べることによって実施される。ステップ804では、選択されたネットのピンに半径方向に隣接するピンを有する全てのネットが１つにグループ化される。このグループ化は、全てのネットについて繰り返される。ステップ806では、高度診断テストパターン（例えば移動ビットテストパターン）に従って、ネットＩＤ番号がグループ内の各ネットに割り当てられる。特定のグループ内の各ネットは、そのグループ内の他のネットに対して一意のネットＩＤ番号を有しているが、ネットＩＤ番号は、各グループ間で繰り返されるものである。即ち、他のグループはネットＩＤ番号を再利用することができる。２つ以上のグループに共通するネットには、ＩＤ番号は１つしか割り当てられない。
【００５０】
ステップ808では、簡潔テストパターン（例えば計数パターン）に従って、グループＩＤ番号が各グループに割り当てられる。グループＩＤ番号は各グループ毎に一意のものである。ステップ810では、ネットＩＤ番号およびグループＩＤ番号が組み合わされて、組み合わせネット識別子が形成される。
【００５１】
テスト全体を通して一貫性が維持される限り、グループＩＤ番号およびネットＩＤ番号はいかなる順序で結合させることも可能である。グループＩＤ番号は、任意選択に関して以下に示す例では、各ネット識別子の左側に示されている。この順序は逆にすることが可能である。更に、テストベクトルが形成された場合、それらテストベクトルは、いかなる順序でも、テスト対象の回路に加えることが可能である。
【００５２】
ネットを選択してグループ化する順序は、そのグループ化の結果に重大な影響を及ぼすものとなる、ということが理解されよう。任意の順序（ランダムを含む）でネットを選択してグループ化することは許容可能であるが、そのグループ化の順序によっては、別の順序の場合よりも良好な結果が生成されることがある。多数の小グループを生成する方法が望ましい。
【００５３】
グループ化の体系づけおよびグループサイズの最小化に利用可能な方法の一例として、（基板の縁部の近傍のネットは半径方向に隣接するネットが少ないので小グループが形成されるものと仮定して）基板の周辺部に位置するネットからグループ化を開始し、全ネットのグループ化が完了するまで、基板の中央に向かい、その基板の周辺部をまわって内方へと作業を進める、という方法がある。
【００５４】
本発明は、理論的に他のグループのネットとの短絡が生じにくいネットをグループ化するものであるので、必要とあらばグループＩＤ番号の付与機構をなくすことも可能である、ということに留意されたい。これを実施した場合には、回路内の各ネットにはもはや一意の識別子が割り当てられていないことになるので、予測不能なエラー（例えば、期待サイズを超えた大きさのハンダによる橋絡）の診断ができなくなる可能性がある。
【００５５】
次に、図９に関連して本発明の方法について詳述する。好適実施例の場合、グループＩＤ番号の付与機構はそのまま残されている。また、高度診断テストパターンに移動ビットパターンが用いられ、簡潔テストパターンに計数パターンが使用される。識別子の移動ビット部分のため、完成した各識別子に少なくとも１つの「１」と少なくとも１つの「０」が現れることになるので、修正型計数パターンを用いてグループＩＤ番号を生成する必要がない、という点に留意されたい。
【００５６】
本方法はステップ902で開始される。ステップ904で、まだＩＤ番号が割り当てられていないネットが処理のために選択される。次いで、ステップ908で、基板についてのネットリスト906が、ピン座標データ910および所定の半径（即ち半径方向距離）912に関連して調べられる。ステップ914で、選択されたネットのピンに半径方向に隣接する（即ち所定の半径方向距離内の）ピンを有する全てのネットが識別されて、グループ916中にリストされる。
【００５７】
ステップ918で、グループ916がチェックされて、そのグループ中にリストされているネットのうち別のグループでリストされているために既にネットＩＤ番号が割り当てられているものがあるか否かが判定される。既にネットＩＤ番号が割り当てられているネットがそのグループに含まれている場合には、ステップ920で、それらネット（別のグループと共通のもの）が前記グループから排除される。共通のネットは、テスト上の目的のためグループから排除されるが、テスト生成上の目的のために、グループ中で使用されるネット識別子は、共通のネットに使用されるネット識別子に対して一意となるように選択されなければならない（以下のステップ924を参照のこと）。
【００５８】
ステップ922で、グループをチェックして、ステップ920の後にネットが残っているか否かが判定される。グループ内にネットが残っていない場合には、そのグループは空グループであり無視される。また、グループ内に少なくとも１つのネットが残っている場合には、ステップ924で、移動ビットパターンに従って残りの各ネットにＩＤ番号が割り当てられる。排除されたネットを識別するのに使用されたネットＩＤ番号は複製されない。本方法は次いでステップ928に進む。
【００５９】
また、ステップ918で、既にネットＩＤ番号が割り当てられたネットをグループ916が含んでいない場合には、ステップ926で、移動ビットパターンに従ってその各ネットにネットＩＤ番号が割り当てられる。
【００６０】
ステップ928で、計数パターンを使用してグループに一意のグループＩＤ番号が割り当てられる。ステップ930で、ネットリスト906をチェックして、基板上の各ネットへのネットＩＤ番号の割り当てが完了しているか否かが判定される。そのネットＩＤ番号の割り当てが完了していない場合には、該方法は、ステップ904に戻って、次のネットを処理のために選択する。また、全てのネットに対するネットＩＤ番号の割り当てが完了している場合には、ステップ932で、ネットＩＤ番号とグループＩＤ番号とが組み合わされて、各ネット毎の一意のネット識別子が形成される。次いでステップ934で該方法が終了する。
【００６１】
図１０は、図２の回路200のためのテストパターンの生成を示す表である。グループ化を簡略化するため、短絡の半径方向距離は、回路200のすぐ隣接するピンしか含まないものと仮定する。列1002には、回路200の各ネットがリストされている。列1004には、半径方向の隣接性の判定（ステップ914で）後の各ネット毎の対応するグループ内に含まれるネットがリストされている。列1006には、グループ内の各ネットに関するネットＩＤ番号の割り当てがリストされている。
【００６２】
ネットｎ1に対応するグループには、ネットｎ1（選択されたネットがそのネット自体のグループに含まれている）およびネットｎ2が含まれる。ネットＩＤ番号がグループ内の両方のネットに割り当てられる点に留意されたい。こうして形成されたグループが、列1008にグループＡで示されている。
【００６３】
ネットｎ2に対応するグループには、ネットｎ1,ｎ2,ｎ3,ｎ4が含まれる。ネットＩＤ番号の割り当てはネットｎ3,ｎ4について行われる（ステップ924）。しかし、ネットｎ1,ｎ2についてはネットＩＤ番号の割り当ては行われない。これは、それらのネットがグループＡと共通のものであり、従って、既にネットＩＤ番号が割り当てられているからである（ステップ918,920を参照のこと）。ネットｎ3,ｎ4についてのネットＩＤ番号は、共通のネットｎ1,ｎ2のネットＩＤ番号に対して一意のものである点に留意されたい。ネットｎ2のキーイングオフ(keying off)によって形成されるグループは、列1008にグループＢで示されている。
【００６４】
ネットｎ3に対応するグループには、ネットｎ2,ｎ3,ｎ4,ｎ5が含まれる。ネットＩＤ番号の割り当ては、ネットｎ5についてのみ行われる（ステップ924）。ネットｎ2,ｎ3,ｎ4は、グループＡ,Ｂの両方または一方と共通のものであり、従って、既にネットＩＤ番号が割り当てられている（ステップ918,920を参照のこと）ので、それらのネットのいずれにもネットＩＤ番号の割り当ては行われない。上記と同様に、ネットｎ5についてのネットＩＤ番号が、共通のネットｎ2,ｎ3,ｎ4についてのネットＩＤ番号に対して一意のものである点に留意されたい。ネットｎ3のキーイングオフによって形成されるグループはグループＣで示されている。
【００６５】
ネットｎ4に対応するグループには、ネットｎ2,ｎ3,ｎ4が含まれる。しかし、これらのネットは、グループＡ,Ｂ,Ｃの全てまたはいずれかに共通するものであり、従って、既にネットＩＤ番号が割り当てられているので（ステップ918,920を参照のこと）、これらのネットのいずれにもネットＩＤ番号の割り当ては行われない。従って、ネットｎ4のキーイングオフによって形成されるグループは、メンバーを含まない空グループとなる。
【００６６】
同様に、ネットｎ5に対応するグループには、ネットｎ3,ｎ5が含まれ、その両方とも他のグループと共通のものである。従って、ネットｎ5のキーイングオフによって形成されるグループもまた、メンバーを含まない空グループとなる。
【００６７】
ネットｎ6に対応するグループには、ネットｎ6,ｎ7,ｎ8が含まれる。ネットＩＤ番号の割り当ては、これらのネットの各々について行われる。これにより形成されるグループは、グループＤで示されている。
【００６８】
ネットｎ7およびネットｎ8に対応する各グループにはネットｎ6,ｎ7,ｎ8が含まれ、それら全ネットはグループＤと共通のものである。従って、それらのグループは両方とも空グループとなる。
【００６９】
全部で４つのグループ（Ａ,Ｂ,Ｃ,Ｄ）が形成された。共通のメンバーを排除する前の最大のグループは、４つのメンバーを有するグループＢである。この最大のグループは、移動ビットパターンによるネットの一意の識別に必要なビット数（例えば４）を指示するものとなる。グループ数（空グループは含めない）を用いて、計数パターンによる各グループの一意の識別に必要なビット数が決定される。その必要なビット数は、log2(グループ数）を次の最大の整数に丸めた値に等しい。図２の例の場合、一意のグループの識別に２ビットが必要となる。修正型計数パターンも使用可能であり、その場合には３ビットが必要となる。
【００７０】
図１１は、上述のテスト生成の結果として生じるサンプルテストパターンを示すものである。最大のグループには４つのメンバーが含まれているので、移動ビットパターンによるネットＩＤ番号の割り当てには４ビットが必要となる。また４つのグループが存在するので、グループＩＤ番号の割り当てにはlog2(４）即ち２ビットが必要になる。従って、各々の一意のネット識別子の生成には６ビットが必要になる。
【００７１】
マトリクス1100は、ネット識別子を集めることにより形成される。そのマトリクスの水平行には、各ネット毎のネット識別子が含まれ、その垂直列には、ブロードキャストすべきテストフレームまたはテストベクトルが含まれている。サンプルネット識別子1102およびサンプルテストベクトル1104が図示されている。
【００７２】
各ネットは、隣接した即ち近接して配置されたネットに対して移動ビットパターンにより識別され、また、他のネットに対して計数パターンにより識別される、という点に留意されたい。このようにして、極めて良好な診断情報を提供すると共に長さが最短であるテストパターンが生成される。各々が６ビットを有する６つのテストフレームが回路200に関して生成される点に留意されたい。結果的に、36のテストクロックサイクルに比例したテスト長が得られる。これは、移動ビットパターンに比べると、テスト資源の大幅な節約となる。
【００７３】
5000のネットを有する回路は、典型的には、20のネットからなる最大グループを有する1250のグループ（例えばネット数／４）を備えることができる。その結果として、識別子のサイズは、20＋log2(1250）(を最も近い整数へと丸めた値）＝31ビットとなる。従って、総テスト長は、5000ネット×31ビット、即ち155,000テストクロックサイクルに比例することになる（即ち、この推定は位置ホルダビットを考慮していない）。これは、従来の移動ビットパターンにより最低必要とされる25,000,000のテストクロックサイクルに比べると、テスト資源の大幅な節約となる。計数パターンの場合に最低必要とされる65,000のテストクロックサイクルに比べるとかなり多くなるが、一層良好な診断を得ることができる。
【００７４】
本発明の方法によりテストベクトルを生成してしまえば、それらのベクトルを従来の方法によりテスト対象回路に適用することができる。その方法は、図３に関連して既述の通りである。
【００７５】
テスト診断
上述のように、従来のテスト方法は、テスト生成段階（図７のステップ702）でテスト分解能を改善（即ち偽りおよび混同の低減）しようとするものである。実際に、上述の方法によれば、テスト生成段階でテスト分解能が大幅に増大することになる。上述のテスト生成方法に加えて、発明者の発見によれば、テスト診断段階（ステップ706）は、テスト分解能を増大させるのに極めて良好な機会を提供するものとなる。更に、このテスト分解能の増大は、ステップ702で生成されてステップ704で実行されるテストパターンのタイプにかかわらず利用することが可能である。
【００７６】
好適実施例の場合、テスト診断（ステップ706）は、テストの実行時にエラーが生じた場合にのみ行われる。ステップ704におけるテストの実行中に、走査経路を介して回路から走査出力された捕捉されたテストベクトルが累算器または識別特性生成器（例えば並列入力多項識別特性解析器）に入力されて、一意のテスト識別特性が生成される。この「テスト識別特性」を、単一のネットの状態を表す「ネット識別特性」（上述）と混同してはならない。テスト識別特性は、一連のビットを論理的に組み合わせ、その論理的組み合わせにより一意のテスト識別特性または最終生成物が生成される確率が統計的に極めて高くなるように生成される。識別特性生成器への各データ項の入力により一意のテスト識別特性に影響を与えることになるので、所定の期待される識別特性との比較により、データエラーが生じたか否かが示されることになる。
【００７７】
図１２は、本発明の診断方法を示す上位レベルのフローチャートである。好適実施例では、本診断方法は、上述のようにテスト識別特性により故障が示された場合にのみ実行される。ステップ1202で、テストデータ（捕捉されたテストベクトル）の解析を行って、どのネットが同一のネット識別特性を生成したか（即ち捕捉されたか）が判定される。各ネット識別特性は、一意のネットＩＤ番号の送信の結果としてネットの受信レジスタセルで受信された捕捉ビットからなる。成功したネット識別特性は、一意のネットＩＤ番号と同一となる。失敗したネット識別特性は、送信されたネットＩＤ番号と一致しないことになる。
【００７８】
各ネットには、本来は一意のネットＩＤ番号が割り当てられているので、重複する番号は故障を表している。従って、ステップ1202で捕捉テストデータを探索して、重複するネット識別特性を見つけ出す。ステップ1204で、共通のネット識別特性を有するネットの各グループを解析して、グループ内のネット間で短絡が生じている可能性があるか否かを判定する。本発明の診断方法は、半径方向に隣接するネット間でしか短絡は生じないものと仮定している。
【００７９】
図１３は、本発明の診断方法を詳細に示すフローチャートである。ステップ1302で、ネット識別特性を解析して、どのネットが共通のネット識別特性を有しているかを判定する。ステップ1304で、共通の識別特性を有する各ネットを、その識別特性を共有するネットとグループ化させる。共通の識別特性は、短絡状態を表している可能性があるので、グループ1306中の各ネットはＰＳＮ（potentially shorted net:短絡の可能性のあるネット）と呼ばれる。
【００８０】
ステップ1308で、診断のために１つのグループが選択され、次いで、ステップ1310で、その選択されたグループの中から特定のＰＳＮが選択される。ステップ1312,1318で、基板の物理的記述を解析して（ステップ1312）、選択されたＰＳＮのＩ／Ｏピンであってその選択されたグループ中の他のネットのＩ／Ｏピンと半径方向に隣接しているかものがあるか否かが判定される（ステップ1318）。この判定を行うために、回路基板の物理的記述1314、および、所定の半径1316が使用される。
【００８１】
回路基板の物理的記述1314は、回路基板の完全なトポロジ記述を提供するものである。これは、膨大な量のデータであり、所望のＩ／Ｏピンの相互接続および配置データを収集するために調べるのに大量のテスト時間を要するものとなる。従って、この方法の効率を改善するために、物理的記述1314から隣接性リストが生成される。この隣接性リストは、基板上のネットを含み、および、半径方向に隣接するネットの各ネット毎のリストを含むものである。この隣接性リストは更に、ネットの何れのＩ／Ｏピンが半径方向に隣接しているかに関する情報も含んでいる。従って、好適実施例の場合、物理的記述1314は、回路基板の全てのトポロジ記述ではなく、隣接性リストとなる。
【００８２】
選択されたＰＳＮと半径方向に隣接するＰＳＮが存在しない場合には（ステップ1318）、その選択されたＰＳＮに関する短絡状態は存在しそうにない（ステップ1320）。短絡は存在しそうにないが、そのネットが正しくない識別特性を有するようにする何らかの問題をそのネットは有している。従って、そのネットは、問題のあるネットのリスト1321に追加される。次いで、この方法はステップ1326に進む。
【００８３】
また、半径方向に隣接するＰＳＮが存在する場合には、ステップ1322で、短絡の可能性のある位置のリスト1324が生成される。この短絡の可能性のある位置のリストは、ＰＳＮの半径方向に隣接するＩ／Ｏピンを含んでいる。ステップ1326で、選択されたグループ内の全てのＰＳＮについての調査が完了している場合には、この方法はステップ1328に進む。また、ステップ1326で、選択されたグループ内の全てのＰＳＮについての調査が完了していない場合には、この方法はステップ1310に戻り、そのグループ内の各ＰＳＮについてステップ1310〜1326が繰り返される。
【００８４】
この方法の効率を改善するために、ステップ1310〜1326で調査された各ＰＳＮが、その後にそのグループにおける以降の検討から除外され、次のＰＳＮが選択された際にステップ1318で再チェックされることがないようになっている。これは、短絡が反射的である（即ち、ネットＡがネットＢに対して短絡すると、必然的に、ネットＢがネットＡに対して短絡する）ために行われる。
【００８５】
ステップ1328で、全てのグループのＰＳＮが短絡の可能性について調査されているか否かが判定される。全グループのＰＳＮの調査が完了していない場合には、この方法はステップ1308に戻り、次のグループのＰＳＮについてステップ1308〜ステップ1328が繰り返される。全グループのＰＳＮの調査が完了している場合には、この方法はステップ1330で終了する。
【００８６】
本発明の方法により、２つのリスト、即ちリスト1321およびリスト1324が生成される。リスト1321には、問題のあるネットであるがおそらくはそのＩ／Ｏピンで短絡していることはないＰＳＮが含まれている。また、リスト1324には、（おそらく）短絡している各ＰＳＮとその短絡先のＰＳＮとが含まれている。また、それには、関連する実際のＩ／Ｏピンも含まれている。
【００８７】
この方法により、テストの実行後にそのテストの診断分解能を高めることが可能になる。例えば、ネットＡ,Ｂが同一のネット識別特性を有している場合には、この方法は、隣接性リストを調べることにより、ネットＡ,Ｂが短絡している可能性があるか否かを判定することになる。同様に、ネットＡ,Ｂ,Ｃ,Ｄの全てが同一のネット識別特性を有している場合には、この方法は、ネットＡ〜Ｄを含む１つの大きな短絡が存在するか否か、または、２つの小さな短絡（例えばＡとＢ,ＣとＤ）が存在するか否かを判定することができる。
【００８８】
この方法は、完全な診断を提供するものではなく、依然として「だまされる」可能性はある。例えば、ネットＡ,Ｂが互いに短絡してネットＣのネット識別特性と等価なネット識別特性が生成され、ネットＣがネットＡ,Ｂのいずれにも半径方向に隣接している場合には、そのネットＣも短絡しているか否かをこの方法により判定することは不可能である。しかし、そのような状況が発生する確率は極めて低い。例えば、ネットＩＤ番号がランダムに割り当てられる場合には、ネットＡ,ＢによりネットＣのネット識別特性が生成される確率は1/(N-1)（Ｎは回路内のネット数）となる。その回路が1000のネットを有する場合には、その確率は、数分の１パーセントにしかならない。
【００８９】
可能性のある組み合わせが隣接のネット識別特性と一致することがないようにネットＩＤ番号を規則正しい方法により割り当てた（例えば上述の強化型テストパターン）場合には、最適な長さの計数シーケンスを使用したままで、分解能の増大（偽りおよび混同の低減）を、100倍、あるいは1000倍にさえ増強することができる。
【００９０】
この診断方法に必要とされる計算上の作業は最小限のものとなり、とりわけ、物理的記述1314が回路基板の全てのトポロジ記述ではなく（上述の）隣接性リストである場合に最小限となる。更に、隣接性リストは、各回路基板タイプ毎に１度だけ生成すれば良いものである。
【００９１】
本発明の方法は極めて柔軟性を有するものである。短絡半径は、様々なハンダ付けプロセスや基板レイアウト等の要件に合うように簡単に調整される。しかし、短絡半径を変更した場合には、隣接性リストの再生成が（それを使用する場合には）必要となる。
【００９２】
好適実施例では、本発明と共に修正型計数テストパターンが使用される。例えば、８〜15ネットを有する基板の場合には、９ビットを含むＩＤ番号を使用することができる。最初の４ビットセクションは２進計数値である。第２セクションは３ビットセクションとなり、これは、前記４ビット部分の下位３ビットの補数である。最後の２ビットは、常に「１」である第１のビットと常に「０」である第２のビットとが含まれている。この修正型計数パターンにより、比較的短いテストを維持したままで偽りの大幅な初期低減が可能になる。
【００９３】
上述の本発明の実施例は、主として境界走査型または給電式の相互接続テストに関するものである。しかし、本発明は、他のタイプのテストにも用途を有し、また応用が可能なものである。例えば、本発明は、非給電式の相互接続または短絡テストの診断を簡略化するために利用することが可能である。
【００９４】
非給電式の短絡テストは、回路基板上の構成要素に電力を供給する前に行われる一種の相互接続テストである。ＡＴＥのテストプローブによりアクセス可能な各ネットがテストされて、隣接するネットから電気的に絶縁された状態を維持していることが確かめられる。このテストの目的は、テスタがアクセスしたネット間の短絡を見つけ出すことである。このテストの実行中には回路基板には電力が供給されないので、構成要素を損傷させる可能性は大幅に低減される。従って、このようにして可能な限り多くのネットをテストすることが望ましい。
【００９５】
従来、非電力供給短絡テストは、回路基板上のｎ個のネットの各々にテストプローブを接触させることにより行われてきた。次いで、他の全てのネットを接地したまま、選択されたネットに電圧が印加される。その印加電圧は、回路基板上の構成要素の半導体接合をオンにさせるには不十分な大きさ（例えば0.1ボルト）を有するように選択される。選択されたネットに対応するプローブから流れる電流が監視されて、テストされるネット間に短絡状態が存在するか否かが判定される。電流がしきい値を超えていない場合には、選択ネットについて短絡が示されることはなく、その選択されたネットが、テストされるｎ個のネットからなる集合から除去される。残りのｎ−１個のネットから選択された次のネットについてテストが繰り返される。このテストは、テスタでアクセス可能な全てのネットについて上記態様によるテストが完了するまで続行される。
【００９６】
また、選択されたネットについて電流がしきい値を超えている場合には、短絡状態が示される。その短絡は、分離技法(isolation technique)を用いて探し出される。例えば、短絡したネットを探し出すまで、選択されたネットに電力供給を行うと共に、残りの各ネットを１度に１つずつ接地させることができる。一層効率の良い代替策として、２進チョップ分離技法を利用することも可能である。これは、ネットの半分だけを接地させて、選択されたネットにおける電流をチェックすることを含むものである。電流がしきい値を超えている場合には、１つ以上の短絡したネットが識別されるまで、接地されたネットが更に半分にされて上記プロセスが繰り返される。
【００９７】
多数のネットを有する回路基板の場合、従来の分離技法は、時間的および資源的に大きなものとなる可能性がある。更に、短絡したネットの識別の完了後には、ネット間における短絡の特定位置を見つけ出すという問題が残る。これは、通常は、回路基板レイアウトの印刷物を身につけたテスト技術者により行われる。
【００９８】
しかしながら、本発明を利用することにより、短絡の分離および位置発見を迅速に行うことができる。図１４は、本発明による非給電式短絡テストの実施方法を示すものである。ステップ1402で、回路基板上の各ネットが、対応するテストプローブと接触する。ステップ1404で、第１の電位（例えば0.1ボルト）が、選択されたネットに印加される。ステップ1406で、第２の電位（例えば接地電位）が他の全てのネットに印加される。ステップ1408で、選択されたネットを流れる電流が監視される。ステップ1408で電流が所定のしきい値を超えた場合には、ステップ1410で短絡状態が示される。最後に、ステップ1412で、短絡の可能性のある位置が、選択されたネットのＩ／Ｏピンとその他の全てのネットのＩ／Ｏピンとの間における半径方向の隣接性に基づいて判定される。
【００９９】
ステップ1412で、上記で簡単に説明したような従来方法の任意のものを用いて短絡を実際に分離することが可能である。しかし、その分離プロセスは、選択されたネットと半径方向に隣接するネットについてのみ短絡を捜すことにより迅速に処理される。例えば、100のネットからなる回路においてネット1について短絡が示され、半径方向に隣接するネットがネット5、ネット8、ネット52、ネット80を含んでいる場合には、それら４つの半径方向に隣接するネットのみをテストして短絡を探し出せばよい。その結果、100のネットではなく４つのネットについて故障の探索が行われるので、テストの診断が大幅に簡略化されることになる。
【０１００】
更に、半径方向に隣接するネットの半径方向に隣接するピンが既知であるので、短絡の可能性のある物理的位置をテスト技術者に自動的に提示して故障位置の発見を容易化することが可能である。例えば、ネット52がネット1と短絡していると判定され、ネット52のピン１がネット1のピン14に半径方向に隣接していることが既知である場合には、故障の可能性のある位置として、ネット52、ピン１およびネット1、ピン14の物理的位置（例えばｘ,ｙ座標）を技術者に提示することが可能である。発明者の意図するところによれば、この物理的位置は、ＡＴＥの表示画面上に表示される回路基板の画像上に強調表示させることが可能である。これにより、テスト技術者が短絡故障の位置を迅速に突き止めてその修理を行うことが可能になる。
【０１０１】
好適実施例に関連して本発明を特定的に図示および説明してきたが、本発明の思想および範囲から逸脱することなく、その形態および細部に様々な変更を加えることが可能であることが当業者には理解されよう。
【０１０２】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
【０１０３】
１．複数の個別の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを各々が有する複数の集積回路チップを備えた回路について行われる境界走査相互接続テストの診断分解能を増大させるための方法であって、この方法が、
(1)境界走査相互接続テストの実行中に生成されるネット識別特性のリストを受信し、
(2)同一のネット識別特性を有するネットをグループ化し、
(3)前記グループ中の前記ネットのＩ／Ｏピン間における半径方向の隣接性に基づいてそのグループ中のどのネットが互いに短絡する可能性があるかを判定する、
という各ステップを含むことを特徴とする、前記方法。
【０１０４】
２．前記ステップ(3)が、前記グループ中の各ネットについて隣接性リストをチェックすることを含むことを特徴とする、前項１記載の方法。
【０１０５】
３．(4)半径方向に隣接するＩ／Ｏピンを調べて短絡の可能性のある位置を判定する、というステップを更に含むことを特徴とする、前項１記載の方法。
【０１０６】
４．複数の個別の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを各々が有する複数の集積回路チップを備えた回路の境界走査相互接続テストを行うための方法であって、この方法が、
(1)走査経路を介して前記回路内へテストベクトルを直列に走査し、
(2)前記テストベクトルを前記回路中の複数の出力バッファから前記導線性ネットを介してブロードキャストし、
(3)前記テストベクトルを前記回路中の複数の受信レジスタセルに捕捉し、
(4)前記走査経路を介して前記受信レジスタセルからの前記テストベクトルを直列に走査し、
(5)前記ステップ(1)〜(4)を複数のテストベクトルについて繰り返し、
(6)前記複数の捕捉されたテストベクトルから複数のネット識別特性を生成し、(7)同一のネット識別特性を有するネットをグループ化し、
(8)前記グループ中の前記ネットのＩ／Ｏピン間における半径方向の隣接性に基づいてそのグループ中のどのネットが互いに短絡する可能性があるかを判定する、
という各ステップを含むことを特徴とする、前記方法。
【０１０７】
５．複数の個別の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを各々が有する複数の集積回路チップを備えた回路の境界走査相互接続テストのための検出および診断テストパターンを生成するための方法であって、この方法が、
(1)半径方向に隣接するＩ／Ｏピンを有する導電性ネットをグループ化し、
(2)高度診断テストパターンに従って前記グループ中の各導電性ネットに一意の識別番号を割り当てる、
という各ステップを含み、前記一意のネット識別番号が前記グループ間で複製され、２つ以上のグループに共通する導電性ネットは単一の一意のネット識別番号しか受容しないことを特徴とする、前記方法。
【０１０８】
６．(3)前記ネット識別番号を組み合わせてマトリクスを形成するというステップを更に含み、前記マトリクスの各行が前記ネット識別番号の１つであり、前記マトリクスの各列が境界走査テストに利用可能なテストベクトルであることを特徴とする、前項５記載の方法。
【０１０９】
７．前記高度診断テストパターンが移動ビットテストパターンであることを特徴とする、前項６記載の方法。
【０１１０】
８．(3)簡潔テストパターンに従って各グループに一意のグループ識別番号を割り当て、
(4)各グループについての前記グループ識別番号を、前記各グループ中の各導電性ネットについての前記ネット識別番号に付加して、各導電性ネットについての一意のネット識別子を形成し、
(5)前記ネット識別子を組み合わせてマトリクスを形成する、
という各ステップを更に含み、前記マトリクスの各行が前記ネット識別子の１つであり、前記マトリクスの各列が境界走査テストに利用可能な一意のテストベクトルであることを特徴とする、前項５記載の方法。
【０１１１】
９．前記高度診断テストパターンが移動ビットテストパターンであることを特徴とする、前項８記載の方法。
【０１１２】
１０．前記簡潔テストパターンが計数テストパターンであることを特徴とする、前項９記載の方法。
【０１１３】
１１．複数の個別の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを各々が有する複数の集積回路チップを備えた回路の境界走査相互接続テストのための検出および診断テストパターンを生成するための方法であって、この方法が、
(1)回路中の集積回路チップ間における論理的な相互接続を規定する論理相互接続データを受信し、
(2)回路中の集積回路チップのＩ／Ｏピンに関するＩ／Ｏピン座標データを受信し、
(3)隣接するＩ／Ｏピン間で不正な相互接続が生じる可能性のある所定の半径方向距離を受信し、その半径方向距離により半径方向の隣接性を規定し、
(4)或る導電性ネットに関する各Ｉ／Ｏピンを、他の導電性ネットに関するＩ／Ｏピンに対する半径方向の隣接性について解析し、
(5)半径方向に隣接するＩ／Ｏピンを有する導電性ネットをグループ化し、
(6)高度診断テストパターンに従ってグループ中の各導電性ネットに一意のネット識別番号を割り当て、その一意のネット識別番号は前記グループ間で複製され、２つ以上のグループに共通する導電性ネットは単一の一意のネット識別番号しか受容せず、
(7)簡潔テストパターンに従って各グループに一意のグループ識別番号を割り当て、
(8)各グループについての前記一意のグループ識別番号を、前記各グループ中の各導電性ネットについての前記ネット識別番号に付加して、各導電性ネットについての一意のネット識別子を形成し、
(9)前記ネット識別子を組み合わせてマトリクスを形成し、前記マトリクスの各行が前記ネット識別子の１つであり、前記マトリクスの各列が境界走査テストに利用可能な一意のテストベクトルである、
という各ステップを含むことを特徴とする、前記方法。
【０１１４】
１２．前記高度診断テストパターンが移動ビットテストパターンであることを特徴とする、前項１１記載の方法。
【０１１５】
１３．前記簡潔テストパターンが計数テストパターンであることを特徴とする、前項１２記載の方法。
【０１１６】
１４．複数の個別の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを各々が有する複数の集積回路チップを備えた回路の境界走査相互接続テストを行うための方法であって、この方法が、
(1)半径方向に隣接するＩ／Ｏピンを有する導電性ネットをグループ化し、
(2)高度診断テストパターンに従ってグループ中の各導電性ネットに一意のネット識別番号を割り当て、その一意のネット識別番号は前記グループ間で複製され、２つ以上のグループに共通する導電性ネットは単一の一意のネット識別番号しか受容せず、
(3)簡潔テストパターンに従って各グループに一意のグループ識別番号を割り当て、
(4)各グループについての前記グループ識別番号を、前記各グループ中の各導電性ネットについての前記ネット識別番号に付加して、各導電性ネットについての一意のネット識別子を形成し、
(5)前記ネット識別子を組み合わせてマトリクスを形成し、前記マトリクスの各行が前記ネット識別子の１つであり、前記マトリクスの各列が境界走査テストに利用可能な一意のテストベクトルであり、
(6)走査経路を介して選択されたテストベクトルを回路内へ直列に走査し、
(7)前記回路中の複数の出力バッファから前記導線性ネットを介して前記選択されたテストベクトルをブロードキャストし、
(8)前記導電性ネットを介してブロードキャストされた前記選択されたテストベクトルを前記回路中の複数の受信レジスタセルに捕捉し、
(9)前記回路の前記複数の受信レジスタセルに捕捉された前記選択されたテストベクトルを前記走査経路を介して直列に走査出力し、
(10)前記回路から走査出力された前記選択されたテストベクトルを、前記回路内へ直列に走査された前記選択されたテストベクトルと比較し、
(11)前記マトリクス中の各テストベクトルについて前記ステップ(6)〜(10)を繰り返す、
という各ステップを含むことを特徴とする、前記方法。
【０１１７】
１５．複数の個別の導電性ネットを介して電気的な相互接続を行う複数のＩ／Ｏピンを各々が有する複数の集積回路チップを備えた回路基板の相互接続テストを行うための方法であって、この方法が、
(1)前記回路基板上の複数のネットの各々に複数のテストプローブを１つずつ同時に接触させ、
(2)前記複数のネットのうちの選択されたネットにそれに対応するテストプローブを介して第１の電位を印加し、
(3)前記複数のネットの残りの全てに前記複数のテストプローブを介して第２の電位を印加し、
(4)前記対応するテストプローブに流れる電流を監視し、
(5)前記電流がしきい値を超えた場合に、前記複数のネットのうちの前記選択されたネットについて短絡を示し、
(6)前記複数のネットのうちの前記選択されたネットのＩ／Ｏピンと、前記複数のネットの残りの全てのＩ／Ｏピンとの間の半径方向の隣接性に基づいて前記短絡の可能性のある位置を判定する、
という各ステップを含むことを特徴とする、前記方法。
【０１１８】
１６．前記第１の電位が、ゼロボルトよりも高く、及び、前記回路基板上の複数の集積回路チップにおける半導体接合をターンオンさせる電圧よりも低い電圧であり、前記第２の電位がゼロボルトであることを特徴とする、前項１５記載の方法。
【０１１９】
１７．前記短絡の可能性のある位置を判定するステップ(6)が、
(a)前記複数のネットのうちの前記選択されたネットについて隣接性リストをチェックし、
(b)前記隣接性リストから、半径方向に隣接する全てのＩ／Ｏピンを識別し、その半径方向に隣接する全てのＩ／Ｏピンは、前記複数のネットの残りのＩ／Ｏピンであって、前記複数のネットのうちの前記選択されたネットのＩ／Ｏピンに半径方向に隣接するものであり、
(c)半径方向に隣接するＩ／Ｏピンの物理的位置を前記短絡の可能性のある位置として示す、
という各ステップを含むことを特徴とする、前項１５記載の方法。
【０１２０】
【発明の効果】
本発明は上述のように構成したので、時間的および資源的に効率が良く、相互接続テストにおける偽りおよび混同の問題を解消する、高い診断分解能を有するテスト機構を提供することができる。
【図面の簡単な説明】
【図１】典型的な境界走査デバイスの構造を示す説明図である。
【図２】境界走査テストの例示に用いるサンプル回路を示す概略図である。
【図３】境界走査テストの実行に含まれる各ステップを示すフローチャートである。
【図４】移動１テストパターンに従ってサンプル回路のために形成されたテストベクトルのマトリクスを示す説明図である。
【図５】修正型計数テストパターンに従ってサンプル回路のために形成されたテストベクトルのマトリクスを示す図である。
【図６】半径方向に隣接するピン間における短絡の潜在的可能性を示すＩＣチップの部分ブロック図である。
【図７】境界走査テスト法の概要を示すフローチャートである。
【図８】境界走査相互接続テストを生成する本発明のステップの概要を示すフローチャートである。
【図９】境界走査相互接続テストを生成する本発明のステップを詳細に示すフローチャートである。
【図１０】図２の回路200のための本発明によるテストパターンの生成を示す表である。
【図１１】本発明に従ってサンプル回路200のために形成されるテストベクトルのマトリクスを示す説明図である。
【図１２】境界走査テストの診断分解能を改善するための本発明のステップの概要を示す上位レベルのフローチャートである。
【図１３】境界走査テストの診断分解能を改善するための本発明のステップを詳細に示すフローチャートである。
【図１４】非給電式短絡テストを行うための本発明のステップを示すフローチャートである。
【図１】
0003686445.tif 000002
【図２】
0003686445.tif 000003
【図３】
0003686445.tif 000004
【図４】
0003686445.tif 000005
【図５】
0003686445.tif 000006
【図６】
0003686445.tif 000007
【図７】
0003686445.tif 000008
【図８】
0003686445.tif 000009
【図９】
0003686445.tif 000010
【図１０】
0003686445.tif 000011
【図１１】
0003686445.tif 000012
【図１２】
0003686445.tif 000013
【図１３】
0003686445.tif 000014
【図１４】
0003686445.tif 000015