JP2005134290A - 接続検査装置及びこれに用いるプログラム - Google Patents
接続検査装置及びこれに用いるプログラム Download PDFInfo
- Publication number
- JP2005134290A JP2005134290A JP2003372108A JP2003372108A JP2005134290A JP 2005134290 A JP2005134290 A JP 2005134290A JP 2003372108 A JP2003372108 A JP 2003372108A JP 2003372108 A JP2003372108 A JP 2003372108A JP 2005134290 A JP2005134290 A JP 2005134290A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- bit line
- bus
- writing
- 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.)
- Pending
Links
Images
Landscapes
- Testing Of Short-Circuits, Discontinuities, Leakage, Or Incorrect Line Connections (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】 複数のデバイス間を繋ぐバスラインの接続状態について効率的かつ信頼性の高い確認作業を行う。
【解決手段】 メモリ等のデバイス5とCPU等のデバイス4とを繋ぐバスライン6の接続検査装置1を用いて、JTAG経由でバスライン接続確認用プログラムを実行する。そして、アドレスバスの接続状態をチェックする場合に、デバイス5に対して、複数のアドレスを順次に指定して該アドレス毎に異なるデータを書き込んだ後、最初に指定したアドレスのデータを読み出し、実際に読み出されたデータが、最初に指定したアドレスへのデータ書き込み時に指示したデータと異なるか否かを調べる。また、データバスの接続状態をチェックする場合に、デバイス5に対して、アドレスを指定して予め決められたデータを書き込んだ後、該アドレスのデータを読み出し、実際に読み出されたデータが、当該アドレスへの書き込み時に指示したデータと異なるか否かを調べる。
【選択図】 図1
【解決手段】 メモリ等のデバイス5とCPU等のデバイス4とを繋ぐバスライン6の接続検査装置1を用いて、JTAG経由でバスライン接続確認用プログラムを実行する。そして、アドレスバスの接続状態をチェックする場合に、デバイス5に対して、複数のアドレスを順次に指定して該アドレス毎に異なるデータを書き込んだ後、最初に指定したアドレスのデータを読み出し、実際に読み出されたデータが、最初に指定したアドレスへのデータ書き込み時に指示したデータと異なるか否かを調べる。また、データバスの接続状態をチェックする場合に、デバイス5に対して、アドレスを指定して予め決められたデータを書き込んだ後、該アドレスのデータを読み出し、実際に読み出されたデータが、当該アドレスへの書き込み時に指示したデータと異なるか否かを調べる。
【選択図】 図1
Description
本発明は、複数のデバイスがバスラインで繋がれた対象物に関して、バスラインの接続状態を検査するものである。例えば、CPU(中央処理装置)とメモリ等を接続するバスライン(アドレスバス、データバス)の各信号線が正しく接続されているかどうかを検査する場合に、JTAG(Joint Test Action Group)等のインターフェースを用いて基板を検査装置に接続し、効率の良いテストプログラムを実行することにより、記憶用デバイスに係るテストデータの読み書きの結果に基いて接続検査を行うための技術に関する。
回路基板上の複数のデバイスあるいは同一チップ内のコンポーネント同士を繋いでいる接続ライン、例えば、CPUとメモリとを結ぶバスラインの接続確認方法として、これまで以下に示す方法が知られている。
(1)バスラインに直接プローブを当ててCPU−メモリ間で導通を調べる方法
(2)JTAG等でテストプログラムを動かしてメモリの特定のアドレスに、事前に決められた固定データ([0x0000]、[0xFFFF]、[0x5555]等。「0x」は16進数表記であることを示す。)や、インクリメントデータ等の書き込んで、読み出すことにより確認する方法
(3)(テストプログラムでない)プログラムを実際に動かしてみて、予期しない動作等が行われないことを確認する方法
(4)目視又はX線撮影により接続状態を確認する方法。
(2)JTAG等でテストプログラムを動かしてメモリの特定のアドレスに、事前に決められた固定データ([0x0000]、[0xFFFF]、[0x5555]等。「0x」は16進数表記であることを示す。)や、インクリメントデータ等の書き込んで、読み出すことにより確認する方法
(3)(テストプログラムでない)プログラムを実際に動かしてみて、予期しない動作等が行われないことを確認する方法
(4)目視又はX線撮影により接続状態を確認する方法。
しかしながら、従来の検査装置や検査方法にあっては、接続確認の作業性や作業時間、信頼性等に関して充分な対策が講じられておらず、確認作業の効率が低い場合に製品コスト上昇等の原因となってしまう。
例えば、上記方法(1)では以下の問題点が挙げられる。
(1−1)IC(集積回路)の形状によっては、端子間隔が狭いためにプローブを当てるのが困難であったり、あるいは端子に直接プローブを当てることが物理的に不可能な場合があること(CSPパッケージ等)
(1−2)高速のバスラインを用いる場合には通常、ダンピング抵抗が入っているためテスタの導通確認で接続を確認できないこと
(1−3)バスラインのビット線についてその1本1本に手作業でプローブを当てる必要があるため、作業時間がかかり、人為的ミスの低減が困難であること。
(1−2)高速のバスラインを用いる場合には通常、ダンピング抵抗が入っているためテスタの導通確認で接続を確認できないこと
(1−3)バスラインのビット線についてその1本1本に手作業でプローブを当てる必要があるため、作業時間がかかり、人為的ミスの低減が困難であること。
(1−4)バスラインの各ビット線についてCPU−メモリ間で導通があり、ビット線間で導通がないことが仮に確認できたとしても、実際に高速でバスを動かした場合、信号線間の干渉などによってバスラインが正しく動かない場合があること。
また、上記方法(2)では以下の問題点が挙げられる。
(2−1)アドレスバスに不具合がある場合には、間違ったアドレスにデータが書き込まれることになるが、そのデータを読み出して正しく書かれたかどうかをチェックするときにも、この間違ったアドレスから正しいデータを読み出してしまっていたので、チェック漏れが起きてしまうこと
(2−2)同じビット線を何回もチェックするため、時間がかかり、また、書き込み回数に制限が課せられたメモリ(フラッシュメモリ等)をチェックする場合に、メモリの劣化を早めてしまうこと(書き込み残存回数の減少)
(2−3)バスラインに不具合があった場合に、「どのアドレス」の「どのデータ」で不具合があったことしか分からず、「どのバスライン」の「どのビット線」に「どのような」不具合があるかということを特定するのが困難であること。
(2−2)同じビット線を何回もチェックするため、時間がかかり、また、書き込み回数に制限が課せられたメモリ(フラッシュメモリ等)をチェックする場合に、メモリの劣化を早めてしまうこと(書き込み残存回数の減少)
(2−3)バスラインに不具合があった場合に、「どのアドレス」の「どのデータ」で不具合があったことしか分からず、「どのバスライン」の「どのビット線」に「どのような」不具合があるかということを特定するのが困難であること。
上記方法(3)では以下の問題点が挙げられる。
(3−1)プログラムのメモリマップによっては、バスラインに不具合があるにも関わらず、偶然にプログラムが動くことがあるため、プログラムの変更やバージョンアップ時に出るかもしれない不具合(バグ等)を見逃してしまう虞があること
(3−2)バスラインに不具合が見つかった場合に、それがバスラインのハードウェア上での不具合であることを特定することが極めて困難であること。
(3−2)バスラインに不具合が見つかった場合に、それがバスラインのハードウェア上での不具合であることを特定することが極めて困難であること。
上記方法(4)では以下の問題点が挙げられる。
(4−1)バスラインが物理的に接続されているように見えても、電気的に接続していないか接続が不完全な場合があること
(4−2)コネクタ部の接触抵抗等の影響でバスラインの信号波形が大きく変化して正しく動作しない場合に、本方法ではそれが分からないこと
(4−3)目視検査には熟練が必要とされ、また、X線等で接続確認を行うための装置が高価であうこと。
(4−2)コネクタ部の接触抵抗等の影響でバスラインの信号波形が大きく変化して正しく動作しない場合に、本方法ではそれが分からないこと
(4−3)目視検査には熟練が必要とされ、また、X線等で接続確認を行うための装置が高価であうこと。
そこで、本発明は、複数のデバイス間を繋ぐバスラインの各信号線の接続状態について効率的かつ信頼性の高い確認作業を行えるようにすることを課題とする。
本発明は、上記した課題を解決するために、先ず、アドレスバスの接続状態検査に関して、下記に示す構成を有するものである。
(I)記憶用の第二のデバイスとバスラインで繋がれた第一のデバイスとの接続用インターフェースを経由してバスラインの接続確認用プログラムを実行すること。
(II)記憶用のデバイスに対して、複数のアドレスを順次に指定して該アドレス毎に異なるデータを書き込んだ後、最初に指定したアドレスのデータを読み出し、実際に読み出されたデータが、最初に指定したアドレスへのデータ書き込み時に指示したデータと異なるか否かを調べることにより、アドレスバスの各ビット線の接続状態を検査すること。
よって、この発明では、第二のデバイスに対してデータを読み書きした結果を用いてアドレスビット線の接続状態を確認することができ、バスラインにプローブ等を当てたり、X線等の照射や撮影が不要である。また、アドレスバスをチェックする場合に、複数のアドレス指定によるデータ書き込みによって、最初に指定したアドレスのデータが書き換えられたか否かを調べることで接続不良を容易に判定することができる。
本発明に係るデータバスの接続状態検査については、上記(I)及び下記(III)に示す構成を有するものである。
(III)記憶用のデバイスに対して、アドレスを指定して予め決められたデータを書き込んだ後、該アドレスのデータを読み出し、実際に読み出されたデータが、当該アドレスへの書き込み時に指示したデータと異なるか否かを調べることにより、データバスの各ビット線の接続状態を検査すること。
よって、この発明によれば、第二のデバイスに対してデータを読み書きした結果を用いてデータビット線の接続状態を確認することができ、バスラインにプローブ等を当てたり、X線等の照射や撮影が不要である。また、仮にアドレスビット線に不具合があることが原因で、指定アドレスとは異なるアドレスにデータが書き込まれた場合でも、該アドレスから読み出されたデータが最初に指定したデータと異なっている場合には、アドレス指定の如何には関係なくデータバスに不具合が起きていることが分かるので、ビット値の変化に基いてデータバスのチェックを容易にかつ効率的に行える。
本発明によれば、バスラインの接続状態の確認や検査の作業効率を高めることができ、また、接続確認時において、実際に動作させるプログラムを実行させる必要がなく、作業時間を短縮化することができる。そして、作業が記憶用デバイスについてのデータ読み書き及びデータ照合に基いて行われ、プログラム処理による作業の自動化に適しており、人為的なミスをなくし、信頼性を向上させることができる。さらには、プログラム処理に従う系統立った作業内容の実現が可能であり、同じビット線について重複した作業を繰り返す必要がなく、書き込み回数に制限が課せられたデバイスへの適用が可能となる。
アドレスバスの接続状態のチェック時には、最初に指定する第一のアドレスを0番地又は最大番地に規定して、該アドレスに予め決められた第一のデータを書き込み、その次に、一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第二のアドレスに第一のデータとは異なる値の第二のデータを書き込む。その後に、第一のアドレスからデータを読み出して、該データが第一のデータに一致するか否かを判断することによって、アドレスビット線とグランド線又は電源線との接触又は干渉が起きているかどうかの判定及びその位置の特定を容易に行うことができる。
また、一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第一のアドレスに予め決められた第一のデータを書き込み、次に上記アドレスビット線に隣り合うビット線又は上記アドレスビット線から一定のビット数だけ離れたビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレスに、上記第一のデータとは異なる値の第二のデータを書き込む。その後、第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断することによって、隣り合うビット線同士の接触若しくは干渉又は一定のビット数だけ離れたビット線同士の干渉が起きているかどうかの判定及びその位置の特定を容易に行うことができる。
そして、データバスの接続状態のチェック時には、アドレスを指定して予め決められたデータを書き込んだ後、該アドレスのデータを読み出し、実際に読み出されたデータが当該アドレスへの書き込み時に指示したデータと異なるか否かを調べることにより、データバスの各ビット線の接続状態を容易に確認することができる。
例えば、任意のアドレスに対して、全ビット線が正論理又は負論理における論理値「1」を示すデータを書き込んでから当該アドレスのデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断することによって、データビット線とグランド線との接触又は干渉が起きているかどうかの判定及びその位置の特定を行うことができる。
また、任意のアドレスに対して、全ビット線が正論理又は負論理における論理値「0」を示すデータを書き込んでから当該アドレスのデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断することによって、データビット線と電源線との接触又は干渉が起きているかどうかの判定及びその位置の特定を行うことができる。
そして、任意のアドレスに対して、あるビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示すデータを書き込んでから当該アドレスのデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断することによって、データバスの隣り合うビット線同士の接触若しくは干渉又は距離を置いた異なるビット線同士の相互干渉が起きているかどうかを容易に判定することができる。
さらには、このようなデータビット線の接続チェックを行い、データバスの全ビット線について正しい接続状態が確認された後で、上記したアドレスバスの接続状態をチェックすることによって、アドレスバスの接続検査を正確に行うことができる。
図1は、本発明に係る接続検査装置の構成例を示したものである。
接続検査装置1は、バスラインで接続された複数のデバイスを備えた検査対象2について、該バスラインの各ビット線が正しく接続されているか否かを確認する装置である。例えば、CPU、メモリ等を含む情報処理装置(コンピュータ機器等)が用いられ、所定のプログラム処理によって接続状態を検査するものである。
本例において、検査対象2の基板3上には、第一のデバイス4としてCPUやMPU等の演算処理用デバイスが実装されており、該デバイスに対してバスラインで接続された第二のデバイス5が実装されている。尚、本発明の適用において、各デバイス4、5を別個のものとして基板3上に配置した構成形態でも良いし、また、両デバイスを同一の集積回路(LSI等)内に内蔵させた1チップ形態(所謂System On Chip)でも構わない。
第二のデバイス5は記憶用デバイスとされ、例えば、CPUとのバス接続によってデータの読み書き(Read/Write)を行えるメモリが挙げられ、該デバイス5が基板3に直接に又はソケットを介して実装される。
デバイス4とデバイス5は、アドレスバス6Aとデータバス6Dを含むバスライン6によって接続されている。尚、アドレスバス6Aとデータバス6Dのバス幅(ビット数)については任意である。
第一のデバイス4、例えば、CPUについては、JTAGインターフェースを用いたデバッグが可能とされ、JTAGの動作に必要な信号線群7(図1には単線で簡略化して示す。)がCPUから基板3上に引き出されており、基板3上に実装された接続部(JTAGコネクタ)8に繋がれている。そして、この接続部8がケーブル9を介して接続検査装置1に接続されるが、ケーブル9が長い場合には基板3と接続検査装置1との間にバッファ10を入れることがある。尚、JTAG(IEEE1149.1規格のグループ名称)では、バウンダリスキャン・アークテクチャー及びこの機能に外部からアクセスするためのシリアルポート仕様を規定しており、IC内部のコアロジックと各ピンとの間に、テストプローブと等価な働きをするセル(レジスタ)を配置し、これらを結合してシフトレジスタを構成して、該レジスタを制御することによりテストコードの入力とその応答に基いてテストを実行することができる。
デバイス同士を繋ぐバスライン6に起き得る不具合については、アドレスバス6Aで発生するものとデータバス6Dに発生するものに類別される。
先ず、アドレスバスの不具合に関して、例えば、以下に示す状況が挙げられる(図2参照。この図で各信号線(水平線)がアドレスビット線を示すものとする。)。
(I)ビット線とグランド(GND)線との接触又は干渉(図2の「case1」参照)
(II)ビット線と電源線との接触又は干渉(図2の「case2」参照)
(III)隣接するビット線同士の接触又は干渉(図2の「case3」参照)。
(II)ビット線と電源線との接触又は干渉(図2の「case2」参照)
(III)隣接するビット線同士の接触又は干渉(図2の「case3」参照)。
先ず、上記(I)では、アドレスバスにおいて、あるビット線11がGND線に接触している場合が挙げられる。例えば、アドレスの不具合ビット線11に対応するビットが常に論理値「0」になってしまった場合に、当該ビットが論理値「1」であるアドレスには正しくアクセスできない(以下、このような場合を「アドレスバス不具合case1」という。)。
また、上記(II)では、アドレスバスにおいて、あるビット線12が正電圧電源線(丸印中に「+」を付して示す。)に接触している場合(電源線との混触)が挙げられる。例えば、アドレスの不具合ビット線12に対応するビットが常に論理値「1」になってしまった場合に、このビットが論理値「0」であるアドレスに正しくアクセスできない(以下、この場合を「アドレスバス不具合case2」という。)。
上記(III)では、アドレスバスにおいて、あるビット線13(例えば、bit n)が隣のビット線14(例えば、bit n+1)に接触している場合(線間短絡等)が挙げられる。このような場合、不具合をもつ各ビット線13、14に対応するビットが常に同じ論理値(「0」または「1」)になってしまった場合に、この2ビットが異なる値のアドレスには正しくアクセスできない(以下、この場合を「アドレスバス不具合case3」という。)。
この他には、一定のビット数(2ビット以上)だけ離れたアドレスビット線同士の干渉(電磁干渉等)が起きている場合が挙げられる。
次に、「アドレスバス不具合case1」、「アドレスバス不具合case2」を検出する場合のアルゴリズムについて、図3に示すフローチャート図を用いて説明する。この接続検査の処理においては、デバイス4との接続用インターフェースを経由してアドレスバスの接続確認用プログラムを実行する。つまり、図3に説明するアルゴリズムに従って接続確認用プログラムを予め作成しておいて、接続検査装置1からJTAG経由で該プログラムが実行される。
尚、以下の説明において、データバスには何ら不具合がないことが確認されているものとする(データバスの接続状態の検査については後述する。)。また、以下では理解し易いように正論理として説明するが、負論理の場合にも同様の処理を適用できることは勿論である。
処理手順としては、例えば、次のようなステップで実行される。
(S1)アドレス[0]へのデータ[a]の書き込み
(S2)アドレス[P(n)]へのデータ[b]の書き込み
(S3)アドレス[0]からのデータ読み出し
(S4)「データ=[a]?」の条件判断(データが[a]である場合に(S5)に進み、データが[a]でない場合に(S6)に進む。)
(S5)アドレスバスbit nの接続OK(正しい接続)
(S6)アドレスバスbit nの接続NG(接続の不具合)。
(S2)アドレス[P(n)]へのデータ[b]の書き込み
(S3)アドレス[0]からのデータ読み出し
(S4)「データ=[a]?」の条件判断(データが[a]である場合に(S5)に進み、データが[a]でない場合に(S6)に進む。)
(S5)アドレスバスbit nの接続OK(正しい接続)
(S6)アドレスバスbit nの接続NG(接続の不具合)。
先ず、上記プログラムの実行が開始されると、(S1)に進んで、特定のアドレス、例えば、アドレス[0](0番地)にデータ[a]を書き込む。尚、データ[a]は事前に決めた値を示す(任意の値で良い。)。
次ステップ(S2)では、アドレス[P(n)]にデータ[b]を書き込む。このデータ[b]は任意の値でよいが、データ[a]とは異なる値でなければいけない(図3の破線枠内「a≠b」参照。)。また、アドレス[P(n)]は、接続確認をしたいビット(例えば、「bit n」とする。)が「1」で、残りのビットはすべて「0」である(図3の破線枠内を参照。)。
次ステップ(S3)に進み、アドレス[0]からデータを読み出した後、ステップ(S4)に進んで、読み出されたデータが[a]であるかどうか(「データ=[a]?」)の判断を行う。そして、「データ=[a]」である場合(真)にはステップ(S5)に進むが、「データ=[a]」でない場合(偽)にはステップ(S6)に進む。
ステップ(S5)では、「アドレスバスbit n接続OK」、つまり、アドレスバスのbit nに「アドレスバス不具合case1」及び「アドレスバス不具合case2」がないと判断した後で、処理を終了する。
他方、ステップ(S6)では、「アドレスバスbit n接続NG」、つまり、アドレスバスのbit nに「アドレスバス不具合case1」又は「アドレスバス不具合case2」があると判断した後で、処理を終了する。
このような一連の処理(S1)乃至(S6)を、全てのアドレスバスのビットについて繰り返すこと(即ち、ステップ(S2)においてアドレス[P(n)]のn値を変えて「1」の位置をずらしたアドレスにデータ[b]を書き込むこと)によって、それぞれのアドレスバスが正しく接続されているか否かが判明する。
図4は、「アドレスバス不具合case1」及び「アドレスバス不具合case2」を検出する場合に、実際に行われるメモリアクセスについての説明図である。尚、図中に示す「*[]」はアドレスポインタの値を示し、[]内の「P(n)」や「0x0」(16進0番地)がアドレスを示している。また、「a」や「b」の右脇の括弧内に示す「OK」は上記「アドレスバスbit n接続OK」を意味し、「NG」は上記「アドレスバスbit n接続NG」を意味する。
先ず、「アドレスバス不具合case1」、「アドレスバス不具合case2」がない場合(正常状態)には、下記のようになる。
・上記(S1)でアドレス[0]にデータ[a]が書き込まれる(矢印A参照)
・上記(S2)でアドレス[P(n)]にデータ[b]が書きこまれる(矢印B参照)
・上記(S3)でアドレス[0]からデータが読み出される。即ち、データ[a]が読み出され、上記(S4)から(S5)に進み、「アドレスバスbit n接続OK」と判断される。
・上記(S2)でアドレス[P(n)]にデータ[b]が書きこまれる(矢印B参照)
・上記(S3)でアドレス[0]からデータが読み出される。即ち、データ[a]が読み出され、上記(S4)から(S5)に進み、「アドレスバスbit n接続OK」と判断される。
次に、「アドレスバス不具合case1」が発生した場合(アドレスバスにおけるn番目のビット線「bit n」がGND線に接触しているものとする。)には、下記のようになる。
・上記(S1)でアドレス[0]にデータ[a]が書き込まれる(矢印A参照)
・上記(S2)では、本来アドレス[P(n)]にデータ[b]が書き込まれる筈であるが、n番目のビット線がGND線との接触によって「0」を示すため、実際にはアドレス[0]にデータ[b]が上書きで書き込まれる(矢印β参照)
・上記(S3)ではアドレス[0]からデータが読み出される。即ち、上書き後のデータ[b]が読み出され、これはデータ[a]でないので上記(S4)から(S6)に進み、「アドレスバスbit n接続NG」と判断される。
・上記(S2)では、本来アドレス[P(n)]にデータ[b]が書き込まれる筈であるが、n番目のビット線がGND線との接触によって「0」を示すため、実際にはアドレス[0]にデータ[b]が上書きで書き込まれる(矢印β参照)
・上記(S3)ではアドレス[0]からデータが読み出される。即ち、上書き後のデータ[b]が読み出され、これはデータ[a]でないので上記(S4)から(S6)に進み、「アドレスバスbit n接続NG」と判断される。
このように、アドレス[0]に書き込まれるべきデータ[a]がデータ[b]によって上書きされてしまうことを利用して不具合の発生を検出することができる。
また、「アドレスバス不具合case2」が発生した場合(アドレスバスにおけるn番目のビット線「bit n」が正電圧電源線に接触しているものとする。)には、下記のようになる。
・上記(S1)では本来アドレス[0]にデータ[a]が書き込まれる筈であるが、n番目のビット線が電源線との接触によって「1」を示すため、実際にはアドレス[P(n)]にデータ[a]が書き込まれる(矢印α参照)
・上記(S2)ではアドレス[P(n)]にデータ[b]が上書きで書き込まれる(矢印B参照)
・上記(S3)ではアドレス[0]ではなく、実際にはアドレス[P(n)]からデータが読み出される。即ち、データ[b]が読み出され、データ[a]でないので上記(S4)から(S6)に進み、「アドレスバスbit n接続NG」と判断される。
・上記(S2)ではアドレス[P(n)]にデータ[b]が上書きで書き込まれる(矢印B参照)
・上記(S3)ではアドレス[0]ではなく、実際にはアドレス[P(n)]からデータが読み出される。即ち、データ[b]が読み出され、データ[a]でないので上記(S4)から(S6)に進み、「アドレスバスbit n接続NG」と判断される。
このように、アドレス[0]の読み出し時に、誤ったアドレス[P(n)]からデータ[b]が読み出されることを利用して不具合の発生を検出することができる。
上記した手順についてのプログラム処理をまとめると、最初に指定する第一のアドレスを0番地(又は最大番地)として下記(1)乃至(3)のようになる。
(1)第一のアドレスに予め決められた第一のデータ[a]を書き込む処理ステップ
(2)一本のアドレスビット線だけが所定の論理値を示しかつ当該アドレスビット線以外がその否定論理値を示す第二のアドレス[P(n)]に第一のデータ[a]とは異なる値の第二のデータ[b]を書き込む処理ステップ
(3)第一のアドレスからデータを読み出して、該データが第一のデータ[a]に一致するか否かを判断して、両データの不一致時にアドレスビット線とグランド線又は電源線との接触又は干渉が起きていることを判定する処理ステップ。
(2)一本のアドレスビット線だけが所定の論理値を示しかつ当該アドレスビット線以外がその否定論理値を示す第二のアドレス[P(n)]に第一のデータ[a]とは異なる値の第二のデータ[b]を書き込む処理ステップ
(3)第一のアドレスからデータを読み出して、該データが第一のデータ[a]に一致するか否かを判断して、両データの不一致時にアドレスビット線とグランド線又は電源線との接触又は干渉が起きていることを判定する処理ステップ。
これによれば、(3)において「アドレスバス不具合case1」又は「アドレスバス不具合case1」のいずれかが発生しているかどうかを知ることができる(但し、そのどちらかを特定するためにはさらに調べる必要がある。)。また、どのアドレスビットに不具合が起きているかを特定することができる。
次に、上記「アドレスバス不具合case3」について、アドレスバスのあるビット線(bit n)が隣のビット線(bit n+1)に接触している場合を例にして説明する。尚、このような場合、隣り合う各ビット線に対応するビット値が常に同じ論理値(「0」又は「1」)になってしまうことになる(この2ビット(隣接ビット)が異なる値をもつアドレスへの正しいアクセスができなくなる。)。
「アドレスバス不具合case3」の検出に係るアルゴリズムについて、図5に示すフローチャート図を用いて説明する。尚、図5に説明するアルゴリズムに従って接続確認用プログラムを予め作成しておいて、接続検査装置1からJTAG経由で該プログラムを実行する。
図5では、次のようなステップで実行される。
(S11)アドレス[P(n)]へのデータ[a]の書き込み
(S12)アドレス[P(n+1)]へのデータ[b]の書き込み
(S13)アドレス[P(n)]からのデータ読み出し
(S14)「データ=[a]?」の条件判断(データが[a]である場合に(S15)に進み、データが[a]でない場合に(S16)に進む。)
(S15)アドレスバスbit n,n+1接続OK(正しい接続)
(S16)アドレスバスbit n,n+1接続NG(接続の不具合)。
(S12)アドレス[P(n+1)]へのデータ[b]の書き込み
(S13)アドレス[P(n)]からのデータ読み出し
(S14)「データ=[a]?」の条件判断(データが[a]である場合に(S15)に進み、データが[a]でない場合に(S16)に進む。)
(S15)アドレスバスbit n,n+1接続OK(正しい接続)
(S16)アドレスバスbit n,n+1接続NG(接続の不具合)。
先ず、プログラムの実行が開始されると、(S11)に進んで、アドレス[P(n)]にデータ[a]を書き込む(データ[a]は任意の値で良い。)。
次ステップ(S12)では、アドレス[P(n+1)]にデータ[b]書き込む(データ[b]は任意の値でよいが、データ[a]とは異なる値でなければいけない。)。尚、アドレス[P(n)]は、接続確認をしたいビット(bit nとする。)のみ「1」で、残りのビットは全て「0」である。また、アドレス[P(n+1)]は、bit nに隣り合うビット(これを「bit n+1」とする。)のみ「1」で、残りのビットは全て「0」である。
次ステップ(S13)に、アドレス[P(n)]からデータを読み出す。そして、ステップ(S14)に進み、読み出されたデータが[a]であるかどうか(「データ=[a]?」)の判断を行う。「データ=[a]」である場合(真)にはステップ(S15)に進むが、「データ=[a]」でない場合(偽)にはステップ(S16)に進む。
ステップ(S15)では、「アドレスバスbit n,n+1接続OK」、つまり、アドレスバスにおいてbit nとbit n+1の間に「アドレスバス不具合case3」がないと判断した後で、処理を終了する。
他方、ステップ(S16)では、「アドレスバスbit n,n+1接続NG」、つまり、アドレスバスにおいてbit nとbit n+1の間に「アドレスバス不具合case3」があると判断した後で、処理を終了する。
このような処理(S11)乃至(S16)を、全ての隣り合うアドレスバスのビットについて繰り返すこと(即ち、ステップ(S11)乃至(S13)においてアドレス[P(n)]のn値を変えて「1」の位置を順次にずらす処理を行う。)によって、それぞれのアドレスバスが正しく接続されているか否かが判明する。
図6は、「アドレスバス不具合case3」を検出する場合に、実際に行われるメモリアクセスについての説明図である。尚、図中に示す「*[]」や、[]内の「P(n)」、「P(n+1)」は既述の通りである。また、「a」や「b」の右脇の括弧内に示す「OK」は上記「アドレスバスbit n,n+1接続OK」を意味し、「NG」は上記「アドレスバスbit n,n+1接続NG」を意味する。
先ず、「アドレスバス不具合case3」がない場合には、下記のようになる。
・上記S(11)でアドレス[P(n)]にデータ[a]が書き込まれる(矢印A参照)
・上記S(12)でアドレス[P(n+1)]にデータ[b]が書き込まれる(矢印B参照)
・上記S(13)ではアドレス[P(n)]からデータが読み出される。即ち、データ[a]が読み出され、(S14)から(S15)に進み、「アドレスバスbit n,n+1接続OK」と判断される。
・上記S(12)でアドレス[P(n+1)]にデータ[b]が書き込まれる(矢印B参照)
・上記S(13)ではアドレス[P(n)]からデータが読み出される。即ち、データ[a]が読み出され、(S14)から(S15)に進み、「アドレスバスbit n,n+1接続OK」と判断される。
また、「アドレスバス不具合case3」が発生した場合(アドレスバスのnビット目と「n+1」ビット目が接触しているものとする。)には、下記のようになる。
・上記(S11)では、アドレスバスドライブ能力に応じたデータ書き込みが行われる。つまり、アドレス信号のLレベルがHレベルよりも優位とされる場合(Low>High)には、本来の書き込むべきP(n)ではなく、アドレス[0]にデータ[a]が書き込まれる(矢印αL参照)。また、アドレス信号のHレベルがLレベルよりも優位とされる場合(Low<High)には、アドレス[P(n)||P(n+1)](「||」は論理和演算子を表す。)にデータ[a]が書き込まれる(矢印αH参照)。
・上記(S12)では、アドレスバスドライブ能力に応じたデータ書き込みが行われる。つまり、アドレス信号のLレベルがHレベルよりも優位とされる場合(Low>High)には、本来の書き込むべきP(n+1)ではなく、アドレス[0]にデータ[b]が上書きで書き込まれる(矢印βL参照)。また、アドレス信号のHレベルがLレベルよりも優位とされる場合(Low<High)には、アドレス[P(n)||P(n+1)]にデータ[b]が上書きで書き込まれる(矢印βH参照)。
・上記(S13)では、上記「Low>High」の場合にアドレス[0]からデータが読み出されるが、上記「Low<High」の場合にはアドレス[P(n)||P(n+1)]からデータが読み出される。従って、いずれの場合でも、データ[b]が読み出され、データ[a]でないので上記(S14)から(S16)に進み、「アドレスバスbit n,n+1接続NG」と判断される。
このように、本来の書き込むべきアドレスP(n)やP(n+1)以外のアドレスにデータ[a]が書き込まれ、さらにこれがデータ[b]に上書きされることを利用して不具合の発生を検出することができる。
上記した手順についてのプログラム処理をまとめると、下記(1)乃至(3)のようになる。
(1)一本のアドレスビット線だけが所定の論理値を示しかつ当該アドレスビット線以外がその否定論理値を示す第一のアドレス[P(n)]に予め決められた第一のデータ[a]を書き込む処理ステップ
(2)上記アドレスビット線に隣り合うビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレス[P(n+1)]に、第一のデータとは異なる値の第二のデータ[b]を書き込む処理ステップ
(3)第一のアドレス[P(n)]からデータを読み出して、該データが第一のデータ[a]に一致するか否かを判断して、両データの不一致時に隣り合うビット線同士の接触又は干渉が起きていることを判定する処理ステップ。
(2)上記アドレスビット線に隣り合うビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレス[P(n+1)]に、第一のデータとは異なる値の第二のデータ[b]を書き込む処理ステップ
(3)第一のアドレス[P(n)]からデータを読み出して、該データが第一のデータ[a]に一致するか否かを判断して、両データの不一致時に隣り合うビット線同士の接触又は干渉が起きていることを判定する処理ステップ。
尚、本例の処理は、一定のビット数「k」(k>1)をもって隔たった2つのビット線同士の干渉にも適用することができ、上記した(2)、(3)の内容を以下のように変更すれば良い。
(2)上記アドレスビット線から一定のビット数だけ離れたビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレス[P(n+k)]に、第一のデータとは異なる値の第二のデータ[b]を書き込む処理ステップ
(3)第一のアドレス[P(n)]からデータを読み出して、該データが第一のデータ[a]に一致するか否かを判断して、両データの不一致時に、一定のビット数だけ離れたビット線同士の干渉が起きていることを判定する処理ステップ。
(3)第一のアドレス[P(n)]からデータを読み出して、該データが第一のデータ[a]に一致するか否かを判断して、両データの不一致時に、一定のビット数だけ離れたビット線同士の干渉が起きていることを判定する処理ステップ。
こうして、アドレスビット線間の短絡や干渉が起きているかどうかを知ることができ、また、どのアドレスビットに不具合が起きているかを特定することができる。
以上の説明から分かるように、デバイス4からデバイス5(図1参照)に対して、複数のアドレスを順次指定して該アドレス毎に異なるデータを書き込んだ後、最初に指定したアドレスのデータを読み出す。この時に、実際に読み出されたデータが、最初に指定したアドレスへのデータ書き込み時に指示したデータと異なるか否かを調べれば、アドレスバスの各ビット線の接続状態を確認することができる。
つまり、「アドレスバス不具合case1」や「アドレスバス不具合case2」の場合には、最初の指定アドレス[0]からデータを読み出し、該データが予期されるデータ[a]に一致するか否かを判断し、データ[a]から別のデータ[b]に書き換わっていれば、アドレスビット線とグランド線又は電源線との接触又は干渉が起きていると判定する。
また、「アドレスバス不具合case3」の場合には、最初の指定アドレス[P(n)]からデータを読み出して、該データが予期される第一のデータ[a]に一致するか否かを判断し、データ[a]から別のデータ[b]に書き換わっていれば、隣り合うビット線同士の接触若しくは干渉が起きていると判定し、あるいは一定のビット数だけ離れたビット線同士の干渉が起きていると判定する。
尚、上記の説明では、データバスに不具合が起きていない場合を想定したが、データバスのビット線に不具合が生じた場合には、例えば、上記データ[a]、[b]以外のデータが読み出されることで、ある程度の不具合を検出することはできる。しかし、確率は極度に低いが、例えば、データ[b]が誤ってデータ[a]と書き込まれた場合には、アドレスバスの接続状態としては本来正しくないにも関わらず、データバスの不具合によってアドレス不具合case1乃至3が起きていないと誤判断されてしまう危険性が残る。
以下では、そのような弊害を防止するために、データバスに起き得る不具合の検出について説明する。
データバスの不具合に関して、以下に示す状況が挙げられる(図2参照。但し、各信号線(水平線)がデータバスのビット線を示すものとする。)。
(A)ビット線とグランド(GND)線との接触又は干渉(図2の「case1」参照)
(B)ビット線と電源線との接触又は干渉(図2の「case2」参照)
(C)隣接するビット線同士の接触又は干渉(図2の「case3」参照)。
(B)ビット線と電源線との接触又は干渉(図2の「case2」参照)
(C)隣接するビット線同士の接触又は干渉(図2の「case3」参照)。
先ず、上記(A)では、データバスにおいて、あるビット線11がGND線に接触している場合が挙げられる。例えば、データの不具合ビット線11に対応するビットが常に「0」になってしまうために、当該ビットが「1」であるデータは正しくアクセスできない(以下では、この場合を「データバス不具合case1」という。)。
また、上記(B)では、データバスにおいて、あるビット線12が正電圧電源線に接触している場合が挙げられる。例えば、データの不具合ビット線12に対応するビットが常に「1」になってしまうために、当該ビットが「0」であるデータは正しくアクセスできない(以下、この場合を「データバス不具合case2」という。)。
上記(C)では、データバスにおいて、あるビット線13が隣のビット線14に接触している場合が挙げられる。例えば、データの不具合ビット線13、14に対応するビットが常に同じ値(「0」または「1」)になってしまうために、当該2ビットが異なる値のデータを正しくアクセスできない(以下、この場合を「データバス不具合case3」という。)。
データバスの接続状態の検査では、アドレスを指定して予め決められたデータを書き込んだ後、該アドレスのデータを読み出す。この時、実際に読み出されたデータが、当該アドレスへの書き込み時に指示したデータと異なるか否かを調べることによって、データバスの各ビット線の接続状態を確認することができる。
先ず、上記(A)について説明する。
図7は、「データバス不具合case1」の検出に係るアルゴリズムについて説明するためのフローチャート図である。尚、図7に説明するアルゴリズムに従って接続確認用プログラムを予め作成しておいて、接続検査装置1からJTAG経由で該プログラムを実行する。
処理手順としては、例えば、次のようなステップで実行される。
(S21)アドレス[a]へのデータ[0xFF..FF]の書き込み
(S22)アドレス[a]からのデータ読み出し
(S23)「データ=[0xFF..FF]?」の条件判断(データが[0xFF..FF]である場合に(S24)に進み、データが[0xFF..FF]でない場合に(S25)に進む。)
(S24)データバス接続OK(正しい接続)
(S25)データバス接続NG(接続の不具合)。
(S22)アドレス[a]からのデータ読み出し
(S23)「データ=[0xFF..FF]?」の条件判断(データが[0xFF..FF]である場合に(S24)に進み、データが[0xFF..FF]でない場合に(S25)に進む。)
(S24)データバス接続OK(正しい接続)
(S25)データバス接続NG(接続の不具合)。
先ず、プログラムの実行が開始されると、(S21)に進んで、アドレス[a]にデータ[0xFF..FF](全データビットが「1」の値を示す。「..」は途中の16進「F」の省略を意味する。)を書き込む。尚、アドレス[a]については任意の値で良い。
次ステップ(S22)でアドレス[a]からデータを読み出した後、次ステップ(S23)では、読み出されたデータが[0xFF..FF]であるかどうか(「データ=[0xFF..FF]?」)について判断する。そして、該データが[0xFF..FF]である場合には、(S24)に進み、該データが[0xFF..FF]でない場合には、(S25)に進む。
(S24)では「データバス接続OK」、即ち、データバスの全てのビット線に「データバス不具合case1」がないと判断した後、処理を終了する。
また、(S25)では「データバス接続NG」、即ち、データバスのいずれかのビット線に「データバス不具合case1」があると判断した後、処理を終了する。この場合、読み出されたデータのビットが「0」になっているところに対応するビット線が、「データバス不具合case1」の起きているビット線である(当該ビット線でGND線に接触してLレベルとなっている。)。
このような処理(S21)乃至(S25)を1回行うだけで、データバスが正しく接続されているか否か及び正しくない場合にはそのビット線の位置が判明する。
「データバス不具合case1」を検出する場合、以下のようなメモリアクセスが行われる。
先ず、「データバス不具合case1」がない場合には、下記のようになる。
・上記(S21)でアドレス[a]にデータ[0xFF..FF]が書き込まれる
・上記(S22)でアドレス[a]からデータ[0xFF..FF]が読み出される。よって、上記(S23)から(S24)に進み、「データバス接続OK」と判断される。
・上記(S22)でアドレス[a]からデータ[0xFF..FF]が読み出される。よって、上記(S23)から(S24)に進み、「データバス接続OK」と判断される。
また、「データバス不具合case1」が発生した場合(データバスのビット線bit nがGND線に接触しているものとする。)には、下記のようになる。
・上記(S21)ではアドレス[a]にデータ[not P(n)](「not」は論理否定演算子を示し、nは「データバス不具合case1」のあるビットを示す。つまり、nビット目が「0」で、それ以外が「1」のデータである。)が書き込まれる
・上記(S22)ではアドレス[a]からデータ[not P(n)]が読み出される。よって、これはデータ=[0xFF..FF]」でないので、(S23)から(S25)に進み、「データバス接続NG」と判断される。つまり、「0」を示す位置、nビット目において不具合が検出される。
・上記(S22)ではアドレス[a]からデータ[not P(n)]が読み出される。よって、これはデータ=[0xFF..FF]」でないので、(S23)から(S25)に進み、「データバス接続NG」と判断される。つまり、「0」を示す位置、nビット目において不具合が検出される。
上記したプログラム処理についてまとめると下記のようになる。
(1)指定された任意のアドレスに対して、全ビット線が論理値「1」を示すデータを書き込む処理ステップ
(2)指定アドレスからデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「0」を示すビット線とグランド線との接触又は干渉が起きていることを判定する処理ステップ。
(2)指定アドレスからデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「0」を示すビット線とグランド線との接触又は干渉が起きていることを判定する処理ステップ。
次に、上記(B)について説明する。
図8は「データバス不具合case2」の検出に係るアルゴリズムについて説明するためのフローチャート図であり、本アルゴリズムに従って接続確認用プログラムを予め作成しておいて、接続検査装置1からJTAG経由で該プログラムを実行する。
本例では、次のようなステップで実行される。
(S31)アドレス[a]へのデータ[0]の書き込み
(S32)アドレス[a]からのデータ読み出し
(S33)「データ=[0]?」の条件判断(データが[0]である場合に(S34)に進み、データが[0]でない場合に(S35)に進む。)
(S34)データバス接続OK(正しい接続)
(S35)データバス接続NG(接続の不具合)。
(S32)アドレス[a]からのデータ読み出し
(S33)「データ=[0]?」の条件判断(データが[0]である場合に(S34)に進み、データが[0]でない場合に(S35)に進む。)
(S34)データバス接続OK(正しい接続)
(S35)データバス接続NG(接続の不具合)。
先ず、プログラムの実行が開始されると、(S31)に進み、アドレス[a]にデータ[0]を書き込む(アドレス[a]は任意の値で良い。)。
次ステップ(S32)でアドレス[a]からデータを読み出した後、(S33)に進んで、読み出されたデータが[0]であるかどうか(「データ=[0]?」)を判断する。そして、該データが[0]である場合は(S34)に進み、該データが[0]でない場合には(S35)に進む。
(S34)では、「データバス接続OK」、即ち、データバスの全てのビット線に「データバス不具合case2」がないと判断した後、処理を終了する。
また、(S35)では、「データバス接続NG」、即ち、データバスのいずれかのビット線に「データバス不具合case2」があると判断した後、処理を終了する。この場合、読み出されたデータのビットが「1」になっているところに対応するビット線が「データバス不具合case2」があるビット線である(当該ビット線で電源線に接触してHレベルとなっている。)。
このような処理(S31)乃至(S35)を1回行うだけで、データバスが正しく接続されているか否か及び正しくない場合にはそのビット線が判明する。
「データバス不具合case2」を検出する場合、以下のようなメモリアクセスが行われる。
先ず、「データバス不具合case2」がない場合には、下記のようになる。
・上記(S31)でアドレス[a]にデータ[0]が書き込まれる
・上記(S32)でアドレス[a]からデータ[0]が読み出される。よって、上記(S33)から(S34)に進み、「データバス接続OK」と判断される。
・上記(S32)でアドレス[a]からデータ[0]が読み出される。よって、上記(S33)から(S34)に進み、「データバス接続OK」と判断される。
また、「データバス不具合case2」が発生した場合(データバスのビット線(bit n)が正電圧電源線に接触しているものとする。)には、下記のようになる。
・上記(S31)ではアドレス[a]にデータ[P(n)](nは「データバス不具合case2」のあるビットを示す。)が書き込まれる
・上記(S32)ではアドレス[a]からデータ[P(n)]が読み出される。よって、これはデータ[0]でないので、上記(S33)から(S35)に進み、「データバス接続NG」と判断される。
・上記(S32)ではアドレス[a]からデータ[P(n)]が読み出される。よって、これはデータ[0]でないので、上記(S33)から(S35)に進み、「データバス接続NG」と判断される。
上記したプログラム処理についてまとめると下記のようになる。
(1)指定された任意のアドレスに対して、全ビット線が論理値「0」を示すデータを書き込む処理ステップ
(2)指定アドレスからデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「1」を示すビット線と電源線との接触又は干渉が起きていることを判定する処理ステップ。
(2)指定アドレスからデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「1」を示すビット線と電源線との接触又は干渉が起きていることを判定する処理ステップ。
次に上記(C)について説明する。
図9は「データバス不具合case3」の検出に係るアルゴリズムについて説明するためのフローチャート図であり、本アルゴリズムに従って接続確認用プログラムを予め作成しておいて、接続検査装置1からJTAG経由で該プログラムを実行する。
処理手順としては、次のようなステップで実行される。
(S41)アドレス[a]へのデータ[P(n)]の書き込み
(S42)アドレス[a]からのデータ読み出し
(S43)「データ=[P(n)]?」の条件判断(データが[P(n)]である場合に(S44)に進み、データが[P(n)]でない場合に(S45)に進む。)
(S44)データバスbit n,n+1接続OK(正しい接続)
(S45)データバスbit n,n+1接続NG(接続の不具合)。
(S42)アドレス[a]からのデータ読み出し
(S43)「データ=[P(n)]?」の条件判断(データが[P(n)]である場合に(S44)に進み、データが[P(n)]でない場合に(S45)に進む。)
(S44)データバスbit n,n+1接続OK(正しい接続)
(S45)データバスbit n,n+1接続NG(接続の不具合)。
先ず、プログラムの実行が開始されると、(S41)に進み、アドレス[a]にデータ[P(n)]を書き込む(データ[a]は任意の値で良い。)。尚、データ[P(n)]は、接続確認をしたいビット(bit nとする)のみ「1」で、残りのビットは全て「0」である。
次ステップ(S42)でアドレス[a]からデータを読み出した後、(S43)に進んで、読み出されたデータがP(n)であるかどうか(「データ=[P(n)]?」)を判断する。そして、該データが[P(n)]である場合には(S44)に進み、該データが[P(n)]でない場合には(S45)に進む。
(S44)では、「データバスbit n,n+1接続OK」、即ち、データバスにおいて隣接するbit nとbit n+1との間に「データバス不具合case3」がないと判断した後、処理を終了する。
また、(S45)では、「データバスbit n,n+1接続NG」、即ち、データバスにおいて隣接するbit nとbit n+1との間に「データバス不具合case3」があると判断した後、処理を終了する。
このような処理(S41)乃至(S45)を、全ての隣り合うデータビットについて繰り返すことによって、データバスが正しく接続されているか否かが判明する。
「データバス不具合case3」を検出する場合に、以下のようなメモリアクセスが行われる。
先ず、「データバス不具合case3」がない場合には、下記のようになる。
・上記(S41)でアドレス[a]にデータ[P(n)]が書き込まれる
、・上記(S42)でアドレス[a]からデータが読み出される。つまり、データ[P(n)]が読み出されるので、上記(S43)から(S44)に進み、「データバスbit n接続OK」と判断される。
、・上記(S42)でアドレス[a]からデータが読み出される。つまり、データ[P(n)]が読み出されるので、上記(S43)から(S44)に進み、「データバスbit n接続OK」と判断される。
また、「データバス不具合case3」が発生した場合(データバスのnビット目と「n+1」ビット目が接触しているものとする。)には、下記のようになる。
・上記(S41)ではデータバスドライブ能力に応じてデータ書き込みが行われる。つまり、LレベルがHレベルより優位の場合(Low>High)には、アドレス[a]にデータ[0]が書き込まれ、また、HレベルがLレベルよりも優位の場合(Low<High)にはアドレス[a]にデータ[P(n)||P(n+1)](「||」は論理和演算子を示す。)が書き込まれる
・上記(S42)では上記「Low>High」の場合に、アドレス[a]からデータ[0]が読み出され、また、上記「Low<High」の場合には、アドレス[a]からデータ[P(n)||P(n+1)]が読み出される。よって、これらのデータは[P(n)]」でないので、上記(S43)から(S45)に進み、「データバスbit n,n+1接続NG」と判断される。
・上記(S42)では上記「Low>High」の場合に、アドレス[a]からデータ[0]が読み出され、また、上記「Low<High」の場合には、アドレス[a]からデータ[P(n)||P(n+1)]が読み出される。よって、これらのデータは[P(n)]」でないので、上記(S43)から(S45)に進み、「データバスbit n,n+1接続NG」と判断される。
上記したプログラム処理についてまとめると下記のようになる。
(1)指定された任意のアドレスに対して、あるデータビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示すデータを書き込む処理ステップ
(2)指定アドレスからデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断して、両データの不一致時にデータバスの隣り合うビット線同士の接触若しくは干渉又は距離を置いた異なるビット線同士の相互干渉が起きていることを判定する処理ステップ。
(2)指定アドレスからデータを読み出して、該データが書き込み時に指定されたデータに一致するか否かを判断して、両データの不一致時にデータバスの隣り合うビット線同士の接触若しくは干渉又は距離を置いた異なるビット線同士の相互干渉が起きていることを判定する処理ステップ。
尚、(2)において両データの不一致時の原因としては、データバスの隣り合うビット線同士の接触や干渉の他、一定の距離を隔てたビット線同士の干渉(電磁干渉等)が挙げられる(但し、それらの特定にはさらに調査が必要である。)。
以上(A)乃至(C)の処理において、アドレスバス不具合case1乃至3が起きている場合には、指定したアドレスとは異なるアドレスについてデータ書き込みや読み出しが行われるだけであり、データバス不具合case1乃至3の判定結果には影響しない。
従って、バスラインの接続状態のチェックにおいては、先ず、上記した(A)乃至(C)の処理手順に従うデータバスの接続状態をチェックし、その全ビット線について正しい接続状態、即ち、データバス不具合case1乃至3がないことが確認された後で、前記した処理手順に従ってアドレスバスの接続状態をチェックすることが作業の正確さを期す上で望ましい。
また、データバスの接続状態をチェックした結果、データバス不具合case1乃至3のいずれかが発覚したデータビット線の存在を前提にして、前記した処理手順に従ってアドレスバスの接続状態をチェックする場合には、データビット線の不具合の影響を受けないように、上記アドレスバスチェック時に用いるデータ[a]や[b]の値を適切に選定する必要がある。
例えば、データバスのmビット目にデータバス不具合case1が見つかった場合には、上記データ[a]や[b]として、それらのmビット目が「0」である値を選ぶ。こうすれば、データバス不具合case1の影響を無視できる(データ[a]や[b]の値は変わらない。)。同様にして、データバスのmビット目にデータバス不具合case2が見つかった場合には、上記データ[a]や[b]として、それらのmビット目が「1」である値を選べば良く、データバスのmビット目にデータバス不具合case3が見つかった場合には、上記データ[a]や[b]として、データバスドライブ能力に応じて、それらのmビット目が「0」又は「1」である値を選べば良いことが分かる。尚、この方法はデータバス不具合case1乃至3が複合された状況について一般化することもできるが、詳細な説明は省略する(説明が徒らに複雑化するだけで益が少ないこと及び実際上の起きる不具合の発生確率が非常に低いこと等の理由に依る。)。
上記に説明した構成によれば、下記に示す利点が得られる。
・例えば、JTAG等を用いてCPUとメモリ間のバスラインの接続確認を容易に行うことができ、汎用性が高く、コストがかからない。つまり、一般的なコンピュータ機器と、JTAGケーブル、解析用ソフトウェアを使用すれば良い。また、特殊な測定方法を用いる必要がなく、工数等を削減できる。
・バスラインの接続状態について具体的にどのビット線に不具合があるかが判明するので、不具合があった場合の解析が容易である。また、不具合のあるビット線が、電源端子や電源線、GND線にショート(又は干渉)しているか、あるいは、隣り合うビット線同士がショート(又は干渉)しているのかが分かるので、不具合があった場合の解析が容易である。
・接続確認時にビット線へのアクセスを必要最小限で行えるので、測定時間が短い。
・メモリの無駄な読み書きを行わないので、アクセス回数に制限のあるデバイス(フラッシュメモリ等)への劣化を最小限に抑えることができる。
・プログラム実行による自動測定に好適であり、測定時間が短く、人為的ミスが起こりにくい。
・高速バスラインでも実際の使用時と同じ周波数で動作させた状態でチェックを行えるので、実際の使用時の状態に近い状態で動作確認を行うことができ、開発工数の削減に寄与する。
・CPUやメモリがBGAパッケージ等とされる場合、バスラインの端子に直接プローブを当てることができないが、上記構成を用いて接続確認を容易に行えるので、チェック漏れの箇所が減り、その結果、品質を高めることができる。また、接続確認のために特殊な装置を必要としないのでコスト低減に有効である。
・バスラインにダンピング抵抗が入っていて普通のテスタでは導通確認ができない場合でも、バスとして正しく機能しているかどうかについて接続の確認を行えるので、チェック漏れの箇所が減り、その結果、品質を高めることができる。しかも、そのために特殊な装置を必要としないので、コスト低減に有効である。
・測定結果(検査結果)をコンピュータ機器に保存できるので、不具合があった場合の解析が容易であり、また、品質管理が容易である。さらには、保存したデータをもとにして、傾向不良等の統計的な分析を容易に行うことができる。
・アドレスバス及びデータバスについてそれぞれに接続状態を確認できるので、品質の向上に寄与し、工数削減が可能となる。
・接続確認時に抜けや漏れがないので、品質の向上に繋がる。
・接続確認に係るアルゴリズムが単純かつ明確であり、プログラム作成時の人為的ミスが起こり難いのでバグ等の発生が少なく、また、プログラム作成に要する工数や時間を短縮化できる。
尚、本発明の適用において、前記した装置やこれに用いるプログラムに限らず、上記したバスライン接続確認の機能を有するプログラムを記録した情報記録媒体(情報処理機器に装着してそのプログラムをメモリロードできるようにした各種の記録媒体や記憶媒体)や、バスラインに係る接続状態の検査方法等に幅広く適用することができる。
1…接続検査装置、2…検査対象、4…第一のデバイス、5…第二のデバイス、6…バスライン、6A…アドレスバス、6D…データバス、11、12、13、14…ビット線
Claims (18)
- 第一のデバイス及び該デバイスにバスラインで接続された記憶用の第二のデバイスを備えた検査対象について、該バスラインの各ビット線が正しく接続されているか否かを確認するための接続検査装置において、
上記第一のデバイスとの接続用インターフェースを経由して上記バスラインの接続確認用プログラムを実行することによって、上記第一のデバイスから上記第二のデバイスに対して、複数のアドレスを順次に指定して該アドレス毎に異なるデータを書き込んだ後、最初に指定したアドレスのデータを読み出し、実際に読み出されたデータが、最初に指定したアドレスへのデータ書き込み時に指示したデータと異なるか否かを調べて、アドレスバスの各ビット線の接続状態を検査する
ことを特徴とする接続検査装置。 - 請求項1に記載した接続検査装置において、
上記最初に指定した第一のアドレスが0番地又は最大番地とされており、
上記第一のアドレスに予め決められた第一のデータを書き込み、その次に、一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第二のアドレスに第一のデータとは異なる値の第二のデータを書き込んだ後、
上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断し、両データの不一致時にアドレスビット線とグランド線又は電源線との接触又は干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 請求項1に記載した接続検査装置において、
一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第一のアドレスに予め決められた第一のデータを書き込み、次に、上記アドレスビット線に隣り合うビット線又は上記アドレスビット線から一定のビット数だけ離れたビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレスに、上記第一のデータとは異なる値の第二のデータを書き込んだ後、
上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断して、両データの不一致時に隣り合うアドレスビット線同士の接触若しくは干渉又は一定のビット数だけ離れたアドレスビット線同士の干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 第一のデバイス及び該デバイスにバスラインで接続された記憶用の第二のデバイスを備えた検査対象について、該バスラインの各ビット線が正しく接続されているか否かを確認するための接続検査装置において、
上記第一のデバイスとの接続用インターフェースを経由して上記バスラインの接続確認用プログラムを実行することによって、上記第一のデバイスから上記第二のデバイスに対して、アドレスを指定して予め決められたデータを書き込んだ後、該アドレスのデータを読み出し、実際に読み出されたデータが、当該アドレスへの書き込み時に指示したデータと異なるか否かを調べることにより、データバスの各ビット線の接続状態を検査する
ことを特徴とする接続検査装置。 - 請求項4に記載した接続検査装置において、
任意のアドレスに対して、全ビット線が論理値「1」を示すデータを書き込み、次に、当該アドレスからデータを読み出して、該データが書き込み時に指定された上記データに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「0」を示すビット線とグランド線との接触又は干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 請求項4に記載した接続検査装置において、
任意のアドレスに対して、全ビット線が論理値「0」を示すデータを書き込み、次に、当該アドレスからデータを読み出して、該データが書き込み時に指定された上記データに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「1」を示すビット線と電源線との接触又は干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 請求項4に記載した接続検査装置において、
任意のアドレスに対して、あるビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示すデータを書き込み、次に、当該アドレスからデータを読み出して、該データが書き込み時に指定された上記データに一致するか否かを判断して、両データの不一致時にデータバスの隣り合うビット線同士の接触若しくは干渉又は距離を置いた異なるビット線同士の相互干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 請求項4に記載した接続検査装置において、
上記データバスの全ビット線について正しい接続状態が確認された後で、最初に指定する第一のアドレスを0番地又は最大番地に規定し、
上記第一のアドレスに予め決められた第一のデータを書き込み、その次に、一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第二のアドレスに第一のデータとは異なる値の第二のデータを書き込んだ後、
上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断し、両データの不一致時にアドレスビット線とグランド線又は電源線との接触又は干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 請求項4に記載した接続検査装置において、
上記データバスの全ビット線について正しい接続状態が確認された後で、一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第一のアドレスに予め決められた第一のデータを書き込み、次に、上記アドレスビット線に隣り合うビット線又は上記アドレスビット線から一定のビット数だけ離れたビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレスに、上記第一のデータとは異なる値の第二のデータを書き込んだ後、
上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断して、両データの不一致時に隣り合うアドレスビット線同士の接触若しくは干渉又は一定のビット数だけ離れたアドレスビット線同士の干渉が起きていると判定する
ことを特徴とする接続検査装置。 - 第一のデバイス及び該デバイスにバスラインで接続された記憶用の第二のデバイスを備えた検査対象の接続検査装置によって実行され、該バスラインの各ビット線が正しく接続されているか否かを確認するための、接続検査装置に用いるプログラムにおいて、
上記第一のデバイスから上記第二のデバイスに対して、複数のアドレスを順次に指定して該アドレス毎に異なるデータを書き込む処理ステップと、
最初に指定したアドレスのデータを読み出し、実際に読み出されたデータが、最初に指定したアドレスへのデータ書き込み時に指示したデータと異なるか否かを調べて、アドレスバスの各ビット線の接続状態を検査する処理ステップを有する
ことを特徴とするプログラム。 - 請求項10に記載したプログラムにおいて、
上記最初に指定した第一のアドレスが0番地又は最大番地とされており、
(1)上記第一のアドレスに予め決められた第一のデータを書き込む処理ステップ、
(2)一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第二のアドレスに第一のデータとは異なる値の第二のデータを書き込む処理ステップ、
(3)上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断し、両データの不一致時にアドレスビット線とグランド線又は電源線との接触又は干渉が起きていると判定する処理ステップ、
を有することを特徴とするプログラム。 - 請求項10に記載したプログラムにおいて、
(1)一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第一のアドレスに予め決められた第一のデータを書き込む処理ステップ、
(2)上記アドレスビット線に隣り合うビット線又は上記アドレスビット線から一定のビット数だけ離れたビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレスに、上記第一のデータとは異なる値の第二のデータを書き込む処理ステップ、
(3)上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断して、両データの不一致時に隣り合うビット線同士の接触若しくは干渉又は一定のビット数だけ離れたビット線同士の干渉が起きていると判定する処理ステップ、
を有することを特徴とするプログラム。 - 第一のデバイス及び該デバイスにバスラインで接続された記憶用の第二のデバイスを備えた検査対象の接続検査装置によって実行され、該バスラインの各ビット線が正しく接続されているか否かを確認するための、接続検査装置に用いるプログラムにおいて、
上記第一のデバイスから上記第二のデバイスに対して、アドレスを指定して予め決められたデータを書き込む処理ステップと、その後に該アドレスのデータを読み出し、実際に読み出されたデータが、当該アドレスへの書き込み時に指示したデータと異なるか否かを調べることにより、データバスの各ビット線の接続状態を検査する処理ステップを有する
ことを特徴とするプログラム。 - 請求項13に記載したプログラムにおいて、
任意のアドレスに対して、全ビット線が論理値「1」を示すデータを書き込む処理ステップと、その次に当該アドレスからデータを読み出して、該データが書き込み時に指定された上記データに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「0」を示すビット線とグランド線との接触又は干渉が起きていると判定する処理ステップを有する
ことを特徴とするプログラム。 - 請求項13に記載したプログラムにおいて、
任意のアドレスに対して、全ビット線が論理値「0」を示すデータを書き込む処理ステップと、その次に当該アドレスからデータを読み出して、該データが書き込み時に指定された上記データに一致するか否かを判断して、両データの不一致時にデータバスのうち論理値「1」を示すビット線と電源線との接触又は干渉が起きていると判定する処理ステップを有する
ことを特徴とするプログラム。 - 請求項13に記載したプログラムにおいて、
任意のアドレスに対して、あるビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示すデータを書き込む処理ステップと、その次に当該アドレスからデータを読み出して、該データが書き込み時に指定された上記データに一致するか否かを判断して、両データの不一致時にデータバスの隣り合うビット線同士の接触若しくは干渉又は距離を置いた異なるビット線同士の相互干渉が起きていると判定する処理ステップを有する
ことを特徴とするプログラム。 - 請求項13に記載したプログラムにおいて、
(1)上記データバスの全ビット線について正しい接続状態が確認された後で、最初に指定する第一のアドレスを0番地又は最大番地に規定する処理ステップ、
(2)上記第一のアドレスに予め決められた第一のデータを書き込む処理ステップ、
(3)一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第二のアドレスに第一のデータとは異なる値の第二のデータを書き込む処理ステップ、
(4)上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断し、両データの不一致時にアドレスビット線とグランド線又は電源線との接触又は干渉が起きていると判定する処理ステップ、
を有することを特徴とするプログラム。 - 請求項13に記載したプログラムにおいて、
(1)上記データバスの全ビット線について正しい接続状態が確認された後で、一本のアドレスビット線だけが所定の論理値を示しかつ当該ビット線以外がその否定論理値を示す第一のアドレスに予め決められた第一のデータを書き込む処理ステップ、
(2)上記アドレスビット線に隣り合うビット線又は上記アドレスビット線から一定のビット数だけ離れたビット線のみが上記所定の論理値を示し当該ビット線以外がその否定論理値を示す第二のアドレスに、上記第一のデータとは異なる値の第二のデータを書き込む処理ステップ、
(3)上記第一のアドレスからデータを読み出して、該データが上記第一のデータに一致するか否かを判断して、両データの不一致時に隣り合うアドレスビット線同士の接触若しくは干渉又は一定のビット数だけ離れたアドレスビット線同士の干渉が起きていると判定する処理ステップ、
を有することを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003372108A JP2005134290A (ja) | 2003-10-31 | 2003-10-31 | 接続検査装置及びこれに用いるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003372108A JP2005134290A (ja) | 2003-10-31 | 2003-10-31 | 接続検査装置及びこれに用いるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005134290A true JP2005134290A (ja) | 2005-05-26 |
Family
ID=34648572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003372108A Pending JP2005134290A (ja) | 2003-10-31 | 2003-10-31 | 接続検査装置及びこれに用いるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005134290A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011504579A (ja) * | 2007-10-15 | 2011-02-10 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 論理モジュール内のアドレスバスを検査する方法 |
CN110275089A (zh) * | 2018-03-13 | 2019-09-24 | 开利公司 | 串行总线连接部件中的布线故障的检测 |
-
2003
- 2003-10-31 JP JP2003372108A patent/JP2005134290A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011504579A (ja) * | 2007-10-15 | 2011-02-10 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 論理モジュール内のアドレスバスを検査する方法 |
CN110275089A (zh) * | 2018-03-13 | 2019-09-24 | 开利公司 | 串行总线连接部件中的布线故障的检测 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6550023B1 (en) | On-the-fly memory testing and automatic generation of bitmaps | |
US6971054B2 (en) | Method and system for determining repeatable yield detractors of integrated circuits | |
US7650547B2 (en) | Apparatus for locating a defect in a scan chain while testing digital logic | |
US7596731B1 (en) | Test time reduction algorithm | |
US7870429B2 (en) | Control apparatus | |
JPS6134639A (ja) | 電子回路試験装置 | |
JP2680259B2 (ja) | 自動開放検出方法 | |
JP5545771B2 (ja) | 診断装置、診断方法および診断プログラム診断方法 | |
JP2005134290A (ja) | 接続検査装置及びこれに用いるプログラム | |
CN111562998A (zh) | 一种集成电路的内存诊断方法、诊断设备及存储介质 | |
US7185248B2 (en) | Failure analysis system and failure analysis method of logic LSI | |
KR20170060297A (ko) | 반도체 장치 및 그를 포함하는 반도체 시스템 | |
CN113407372B (zh) | 一种独立于操作系统的计算机系统内存检测方法及系统 | |
JP2800755B2 (ja) | Cmos集積回路の故障診断装置及び診断方法 | |
CN100348992C (zh) | 一种外围互连线的测试方法 | |
US6717870B2 (en) | Method for assessing the quality of a memory unit | |
JP2010097330A (ja) | アドレス線の試験方法及び試験装置 | |
US20050216805A1 (en) | Methods for debugging scan testing failures of integrated circuits | |
Kirkland et al. | Recurrent TPS development issues or ascertaining the excellence of an automated unit test | |
JP2006349548A (ja) | 組み込み自己検査回路 | |
Zhao et al. | Adaptive fault detection and diagnosis of RAM interconnects | |
KR100809800B1 (ko) | 메모리 디바이스를 이용한 시스템 버스 상태 검증 방법 | |
JP2800507B2 (ja) | 診断装置および診断方法 | |
CN114911653A (zh) | 一种接口检测方法、装置、电子设备、系统及介质 | |
JPS6019806B2 (ja) | エラ−検出方式 |