(57)【特許請求の範囲】
【請求項１】
外部メモリと接続可能なプログラマブルデバイスで、該外部メモリと接続して結線エラーを検出する結線エラー検出装置であって、
前記外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、前記外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、前記外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成する比較部と、
前記比較部によって生成された比較結果に係る情報を用いて、前記外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出する解析部と、
前記解析部によって検出された検出結果を外部に出力する出力部と、
を備えることを特徴とする結線エラー検出装置。
【請求項２】
前記比較部は、前記比較結果に係る情報として、いずれかのタイミングで全てのリードデータが読み出されているかを示す全パターン比較結果、いずれかのタイミングで正常に読み出されたデータビットがあるかを示すデータビット比較結果、いずれのタイミングでデータビットが読み出されているかを示すレーテンシー比較結果の少なくとも１つの比較結果を生成することを特徴とする請求項１に記載の結線エラー検出装置。
【請求項３】
前記解析部は、前記比較結果に係る情報から正常なデータビットのみを組み合わせてアドレス信号の正当性を解析することを特徴とする請求項１または２に記載の結線エラー検出装置。
【請求項４】
前記比較部は、回路に対応するプログラムのデータである結線エラー検出用のＲＯＭデータが事前に所定の記憶部に書き込まれた場合に、当該ＲＯＭデータに従って、前記読出タイミングと前記期待タイミングとを比較して、比較結果に係る情報を生成し、
前記解析部は、前記ＲＯＭデータに従って、前記比較結果に係る情報を用いて前記外部メモリとの結線について解析し、前記外部メモリ間の結線エラーを検出して不具合箇所を特定することを特徴とする請求項１〜３のいずれか一つに記載の結線エラー検出装置。
【請求項５】
プログラマブルデバイスと外部メモリとが接続され、当該プログラマブルデバイスと外部メモリとの間の結線エラーを検出する結線エラー検出方法であって、
前記プログラマブルデバイスが、前記外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、前記外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、前記外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成する比較工程と、
前記プログラマブルデバイスが、前記比較工程によって生成された比較結果に係る情報を用いて、前記外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出する解析工程と、
前記プログラマブルデバイスが、前記解析工程によって検出された検出結果を外部に出力する出力工程と、
を含んだことを特徴とする結線エラー検出方法。
【請求項６】
プログラマブルデバイスと外部メモリとが接続され、当該プログラマブルデバイスと外部メモリとの間の結線エラーを検出する結線エラー検出方法をコンピュータに実行させる結線エラー検出プログラムであって、
前記外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、前記外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、前記外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成する比較手順と、
前記比較手順によって生成された比較結果に係る情報を用いて、前記外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出する解析手順と、
前記解析手順によって検出された検出結果を外部に出力する出力手順と、
をコンピュータに実行させることを特徴とする結線エラー検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、外部メモリと接続可能で、該外部メモリと接続して結線エラーを検出する結線エラー検出装置、結線エラー検出方法及び結線エラー検出プログラムに関する。
【背景技術】
【０００２】
近年のシステムでは、大規模な外部メモリ（例えば、ＤＤＲ−ＳＤＲＡＭ等）を使用する事が一般的になっている（特許文献１参照）。このようなシステムの中でもプログラマブルデバイス（例えば、ＦＰＧＡ等）を搭載したボードを作成した場合に、メモリ間インターフェースで、データ疎通がうまくいかなった場合の不具合箇所を特定する技術が知られている（特許文献２および特許文献３参照）。
【０００３】
従来、不具合箇所を特定する技術として、プログラマブルデバイスから外部メモリに対して、特定データをリードライトし、そのリードライトの結果データをプロセッサ（例えば、ＤＳＰ等）を経由して、外部装置に通知し、当該外部装置がリードライトの結果データを用いて解析する事によりエラー箇所の特定を行うという手法がとられてきた。
【０００４】
【特許文献１】特開平５−８８９９２号公報
【特許文献２】特開２００２−１３２５９０号公報
【特許文献３】国際公開第２０００／６２３３９号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来技術のように、特定データをリードライトし、そのリードライトの結果データを用いて解析するだけでは、不具合箇所の特定を正確に行うことが困難であるという課題があった。
【０００６】
特に、ＤＤＲ等のデータの多重等に加え、クロックの高速化により、配線に問題が無い場合でもレーテンシー（データを要求してから実際に読み出されるまでの遅延時間）等により期待のデータが読めない場合（図１４参照）など、外部メモリ間の結線エラーは多種の要因に起因するので、これらの要因の特定が困難であり、多大な時間を要し、システム開発が遅延するという課題があった。
【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、レーテンシーを考慮しつつ、正確に不具合箇所を特定するとともに、容易に不具合箇所の特定を行う結線エラー検出装置、結線エラー検出方法及び結線エラー検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、この装置は、外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成し、生成された比較結果に係る情報を用いて、外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出し、検出された検出結果を外部に出力することを要件とする。
【発明の効果】
【０００９】
開示の装置は、レーテンシーを考慮しつつ外部メモリ間の結線エラーを検出し、正確かつ容易に不具合箇所の特定を行うという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に添付図面を参照して、この発明に係る結線エラー検出装置、結線エラー検出方法及び結線エラー検出プログラムの実施例を詳細に説明する。
【実施例１】
【００１１】
以下の実施例では、実施例１に係るＦＰＧＡの構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。なお、以下では、外部メモリに接続されるＦＰＧＡを搭載したボードに、外部メモリとの結線エラーを検出する装置を適用する例を説明する。
【００１２】
［ＦＰＧＡの構成］
次に、図１を用いて、ＦＰＧＡ１０の構成を説明する。図２は、実施例１に係るＦＰＧＡ１０の構成を示すブロック図である。同図に示すように、このＦＰＧＡ１０は、メモリＩ／Ｆ１１、書きこみデータ通知部１２、メモリ制御部１３、データ遅延回路１４、比較部１５、比較結果格納部１６、解析部１７および通知部１８を備え、外部メモリ２０とバス等を介して接続される。以下にこれらの各部の処理を説明する。
【００１３】
メモリＩ／Ｆ１１は、接続される外部メモリ２０との間でやり取りする各種情報に関する通信を制御する。具体的には、メモリＩ／Ｆ１１は、データ信号の書き込みおよび読み出しを行う。
【００１４】
書きこみデータ通知部１２は、事前に格納された書きこみデータをメモリ制御部１３に通知する。また、書きこみデータ通知部１２は、期待タイミングを比較部１５に通知する。ここで、期待タイミングとは、外部メモリ２０との結線が正常である場合に期待されるリードデータタイミングのことをいう。つまり、外部メモリ２０との結線が正常である場合に、ＦＰＧＡ１０がデータ信号を読み出す期待タイミング（後に詳述する図２参照）である。
【００１５】
メモリ制御部１３は、外部メモリとの結線確認処理の開始時に、メモリの初期化を行い、メモリ内を「０」クリアする（つまり、メモリ内の全アドレスの全ｂｉｔを「Ｌ」レベルとなるデータを書いて初期化する）。また、メモリ制御部１３は、書きこみデータ通信部１２から書きこみデータを受信し、メモリＩ／Ｆ１１を介して、外部メモリ２０に書き込みを行う。なお、メモリ制御部１３は、書きこみデータ通信部１２が通知した書きこみデータを受信するのではなく、書きこみデータ通信部１２が格納している書き込みデータを読み出すようにしてもよい。
【００１６】
データ遅延回路１４は、同じクロック信号を共有したＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）を含み、メモリＩ／Ｆ１１を介して、外部メモリ２０から読み出されたデータ信号を受け取る。そして、データ遅延回路１４は、データ信号が読み出されたタイミングを比較部１５に通知する。
【００１７】
比較部１５は、実際にリードデータが来たタイミングであるリードデータタイミングと、書きこみデータ通知部１２から受信した期待タイミングとを比較し、比較結果を生成する。
【００１８】
具体的には、比較部１５は、書きこみデータ通知部１２から期待タイミングを受信した後、データ信号の正当性及び遅延状況の確認のために、アドレス信号（アドレスを示すデータ）を固定（例えば、ＡＬＬ「０」等の特定値）とした上で、データ信号を１ｂｉｔずつ「１」として書き込み／読み出しを行い、比較結果に係る情報を生成し、比較結果格納部１６に格納するデータ信号確認処理を行う。
【００１９】
つまり、比較部１５は、図２〜図５に例示するように、データ信号確認処理において生成される比較結果情報として、「期待値データとの比較結果」を生成した後、「期待値データとの比較結果」を用いて、「全パターンでの比較結果」、「Ｄａｔａ  ｂｉｔ比較結果」、「レーテンシー比較結果」を生成し、比較結果格納部１６に通知して格納させる。
【００２０】
ここで、図２〜図６を用いてデータ信号確認処理について具体的な例を挙げて説明する。図２の例では、アドレス信号を「０００」に固定し、データ信号として「００００」、「０００１」、「００１０」、「０１００」、「１０００」の順にライトリードした結果、全てのリードデータについて期待タイミングに誤りなく来た場合を説明する。図２の上段に示すように、ＦＰＧＡ１０は、メモリ制御部１３から出される制御信号であるライト信号（図２では「Ｗ」と記載）、リード信号（図２では「Ｒ」と記載）に従って、アドレス「０００」に対するデータ信号のライトおよびリードを外部メモリ２０に対して順次行っている。
【００２１】
そして、比較部１５は、データ遅延回路１４から取り込んだデータ信号のタイミングと書きこみデータ通知部１２から受信した期待タイミングとを用いて、リードデータタイミングと期待タイミングとを比較する。具体的には、比較部１５は、リードデータタイミングが期待タイミング前２段、期待タイミング前１段、期待タイミング、期待タイミング後１段、期待タイミング後２段のいずれであるかを判定する。なお、実際のリードデータタイミングが期待タイミングより早い場合には、期待タイミング前段にデータ信号が取り込まれ、実際のリードデータタイミングが期待タイミングより遅い場合には、期待タイミング後段にデータ信号が取り込まれる。また、上記では、５つのタイミングを判定するが、期待タイミング、期待タイミング前段および期待タイミング後段の３つのタイミングを判定する場合でも良いし、３つ以上のタイミングを判定しても良い。
【００２２】
続いて、比較部１５は、期待値データとの比較結果を生成する。詳しく説明すると、図２の後段（１）に示すように、比較部１５は、リードデータ（例えば、００００）と、期待タイミング前２段、期待タイミング前１段、期待タイミング、期待タイミング後１段、期待タイミング後２段で取り込んだデータとがそれぞれ一致するか判定し、一致する場合には「０」とし、一致しない場合には「１」とする。図２の例では、全てのリードデータについて期待タイミングに誤りなく来た場合の例であるため、期待タイミングが全て「１」となる。
【００２３】
なお、リードデータを取り込んでいないタイミングでは、バスが開いていない状態であり、「１１１１」を取り込んだこととなる。つまり、図２の例では、期待タイミング前２段、期待タイミング前１段、期待タイミング後１段、期待タイミング後２段では、データ信号「００００」の場合には、「１１１１」に対して全て一致しないので、比較結果が「００００」となり、データ信号「０００１」の場合には、「１１１１」に対して４桁目のみが一致するので、比較結果が「０００１」（つまり、４ｂｉｔ（［３：０］）のデータについて、３〜１ｂｉｔ目が‘Ｌ’レベル、０ｂｉｔ目が‘Ｈ’レベルの場合）となる。
【００２４】
そして、比較部１５は、生成された比較結果を、各読み出しタイミング毎にすべて「１」であるかどうかを確認した結果、「全パターンでの比較結果」を生成する（図２の後段（１）右側参照）。つまり、「全パターンでの比較結果」では、どこかのタイミングで全てのリードデータがきているか否かを示している。例えば、図３に例示する期待タイミングの１クロック後に全てのリードデータが来た場合では、期待タイミング後１段にすべて「１」となり、図４に例示する期待タイミングにリードデータが来た場合で下位２ｂｉｔ目が接続されている場合では、全てのタイミングにおいて、全てのリードデータがきていないので、全て「０」となる。
【００２５】
続いて、比較部１５は、図２の後段（２）に示すように、読み出しタイミング内での対応するＤａｔａ  ｂｉｔ毎に全て１であるかを確認した結果をもとに、Ｄａｔａ  ｂｉｔ比較結果およびレーテンシー比較結果を生成する。つまり、Ｄａｔａ  ｂｉｔ比較結果では、いずれかのタイミングで正常に読み出されたＤａｔａ  ｂｉｔがあるか否かを示している。また、レーテンシー比較結果では、いずれのタイミングでＤａｔａ  ｂｉｔが読み出されているかを示す。つまり、図６に例示する下位２ｂｉｔ目だけ期待タイミングより１クロック遅れてリードデータ来た場合では、期待タイミングおよび期待タイミング後１段が「１」となる。
【００２６】
比較結果格納部１６は、比較部１５から通知された比較結果情報を格納する。具体的には、比較結果格納部１６は、比較結果情報として、「期待値データとの比較結果」、「全パターンでの比較結果」、「Ｄａｔａ  ｂｉｔ比較結果」および「レーテンシー比較結果」を格納する。
【００２７】
解析部１７は、比較結果格納部１６に格納された比較結果情報を用いて、外部メモリ２０との結線について解析し、外部メモリ間の結線エラーを検出して不具合箇所を特定する。具体的には、解析部１７は、比較結果格納部１６に格納された全パターンでの比較結果を読み出し、全パターンでの比較結果がすべて「０」（つまり、ＡＬＬ「０」、全ビットが‘Ｌ’レベル）であるかを判定する。
【００２８】
その結果、解析部１７は、全て「０」である場合（つまり、読み出しタイミングの中の何れにも、正常なタイミングがない場合）には、読み出しタイミングの中の何れかで、各Ｄａｔａ  ｂｉｔの中に正常に読み出されたｂｉｔが有るかを判断する為に、生成したＤａｔａ  ｂｉｔ比較結果がすべて「０」であるかを判定する。
【００２９】
解析部１７は、生成したＤａｔａ  ｂｉｔ比較結果がすべて「０」である場合には、読み出しタイミングの中の何れにも正常に読み出されたＤａｔａ  ｂｉｔが無いため、アドレス信号確認処理を行わずに、外部メモリ２０との結線が異常である旨の情報を作成し、通知部１８に送信する。
【００３０】
解析部１７は、生成したＤａｔａ  ｂｉｔ比較結果がすべて「０」でない場合には、または、全パターンでの比較結果が全て「０」でない場合（つまり、読み出しタイミングの中の何れかで、正常なタイミングが有る場合）には、エラーの無いＤａｔａ  ｂｉｔのみを組み合わせ、アドレス信号の正当性の確認の為に、アドレス信号のインクリメントとともに書き込みを行う。
【００３１】
続いて、解析部１７は、書き込み終了後に、アドレスをインクリメントし読み出しを行うとともに、生成した各ｂｉｔの遅延タイミングでのデータを取り込み、全書き込みデータとの比較を行い、その結果をもとにＡｄｄｒｅｓｓ  ｂｉｔ確認結果を生成して通知部１８に送信する。解析部１７は、Ａｄｄｒｅｓｓ  ｂｉｔ確認結果が全て「１」の場合には全Ａｄｄｒｅｓｓ  ｂｉｔが正常と判断し、それ以外はパターンにより、どのＡｄｄｒｅｓｓ  ｂｉｔがＮＧかの判断を行うアドレス信号確認処理を行う。
【００３２】
ここで、アドレス信号確認処理について、図６〜図１０を用いて詳しく説明する。まず、図６を用いてアドレス信号確認処理を具体的に説明する。図６の例では、データ信号確認処理において、下位２ｂｉｔ目だけ期待タイミングより１クロック遅れてリードデータが来た場合を例として記載する。例えば、リードデータ「０００１」を取り込む場合に、期待タイミングでデータ信号「００Ｘ１」を取り込み、期待タイミングから１クロック遅れた期待タイミング後段でデータ信号「ＸＸ０Ｘ」を取り込む。
【００３３】
同図に示すように、解析部１７は、Ｄａｔａ  ｂｉｔ比較結果より、エラーの無いＤａｔａ  ｂｉｔのみを組み合わせ（正常なデータビットのみを組み合わせ）、アドレス信号の正当性の確認の為に、アドレス信号のインクリメントとともに書き込みを行う。つまり、図６の例では、Ｄａｔａ  ｂｉｔ比較結果より、アドレス信号確認において全ｂｉｔが接続ＯＫ（つまり、Ｄａｔａ  ｂｉｔ比較結果が全て「１」である場合）という事を判定し、Ｄａｔａ全ｂｉｔの組み合わせにより、アドレス信号の正当性の確認の為に、アドレス信号のインクリメントとともに書き込みを行う。
【００３４】
そして、解析部１７は、アドレス信号「０００」から順次インクリメントして読み出しを行うとともに、取り込んだリードデータと全書き込みデータとの比較を行い、その結果をデータベースに格納する。データベースに格納された結果をもとに、アドレス信号確認用の書き込みと期待値データとを対応付けたテーブルを生成する（図７参照）。
【００３５】
つまり、図７に示すように、取り込んだリードデータと書き込みデータとの比較を行った結果、一致する場合には「１」とし、一致しない場合には「０」とする。つまり、図８の左上に例示するように、アドレス全ｂｉｔが問題無く接続されている場合には、全てがＡｄｒｅｓｓ  ｂｉｔ確認結果が全て「１」となる。
【００３６】
生成されるテーブルの例を図８〜図１０に示す。同図に示すように、アドレス信号と期待値データとを対応付けたテーブルから「Ａｄｒｅｓｓ  ｂｉｔ確認結果」を生成する。つまり、図８の左上のテーブルに示すように、Ａｄｒｅｓｓ  ｂｉｔ確認結果が全て「１」の場合には、全Ａｄｄｒｅｓｓｂｉｔが正常であることを示す。また、Ａｄｒｅｓｓ  ｂｉｔ確認結果が全て「１」の場合以外は、パターンに応じて、どのＡｄｄｒｅｓｓ  ｂｉｔがＮＧかの判断を行い、その結果を通知部１８に送信する。
【００３７】
通知部１８は、解析部１７からの送信された情報および比較結果格納部１７に格納された情報を基に、外部に通知するデータを生成し、図１１に例示するように、外部（例えば、モニタ端子、ＬＥＤ等）に出力を行う。
【００３８】
［ＦＰＧＡによる処理］
次に、図１２を用いて、実施例１に係るＦＰＧＡ１０による処理を説明する。図１２は、実施例１に係るＦＰＧＡ１０の処理動作を示すフローチャートである。
【００３９】
図１２に示すように、ＦＰＧＡ１０は、メモリの初期化を行い、メモリ内を「０」クリアする（ステップＳ１０１）。そして、ＦＰＧＡ１０は、データ信号の正当性及び遅延状況の確認のために、アドレス信号を固定（例えば、ＡＬＬ「０」等の特定値）とした上で、データ信号を１ｂｉｔずつ「１」として書き込み／読み出しを行い、実際にリードデータが来たタイミングであるリードデータタイミングと、期待タイミングとを比較してデータ信号を確認する処理を行う（ステップＳ１０２）。
【００４０】
続いて、ＦＰＧＡ１０は、読み出しタイミングの中の何れかで、全Ｄａｔａ  ｂｉｔが正常に読み出されたタイミングが有るかを判断する為に、生成した全パターンでの比較結果がすべて「０」であるかを判定する（ステップＳ１０３）。
【００４１】
その結果、ＦＰＧＡ１０は、全て「０」である場合（つまり、読み出しタイミングの中の何れにも、正常なタイミングがない場合）には（ステップＳ１０３肯定）、読み出しタイミングの中の何れかで、各Ｄａｔａ  ｂｉｔの中に正常に読み出されたｂｉｔが有るかを判断する為に、生成したＤａｔａ  ｂｉｔ比較結果がすべて「０」であるかを判定する（ステップＳ１０４）。
【００４２】
その結果、ＦＰＧＡ１０は、生成したＤａｔａ  ｂｉｔ比較結果がすべて「０」である場合には（ステップＳ１０４肯定）、読み出しタイミングの中の何れにも正常に読み出されたＤａｔａ  ｂｉｔが無いため、アドレス信号確認処理を行わずに、ステップＳ１０６に進む。
【００４３】
一方、ＦＰＧＡ１０は、生成したＤａｔａ  ｂｉｔ比較結果がすべて「０」でない場合には（ステップＳ１０４否定）、または、全パターンでの比較結果が全て「０」でない場合（つまり、リードデータを読み出したタイミングの中の何れかで、正常なタイミングが有る場合）には（ステップＳ１０３否定）、エラーの無いＤａｔａ  ｂｉｔのみを組み合わせ（正常なデータビットのみを組み合わせ）、アドレス信号の正当性の確認の為に、アドレス信号のインクリメントとともに書き込みを行う。
【００４４】
続いて、ＦＰＧＡ１０は、書き込み終了後に、アドレス信号をインクリメントし読み出しを行うとともに、取り込んだリードデータと書き込みデータとの比較を行い、その結果をもとにＡｄｄｒｅｓｓ  ｂｉｔ確認結果を生成するアドレス信号確認処理を行う（ステップＳ１０５）。その後、ＦＰＧＡ１０は、生成された情報をもとに、外部に通知するデータを生成し（ステップＳ１０６）、出力を行う（ステップＳ１０７）。
【００４５】
ところで、実施例１に係るＦＰＧＡ１０では、回路に対応するプログラムのデータである結線エラー検出用のＲＯＭデータが事前にＦＰＧＡ１０内の記憶部に書き込まれ、ＲＯＭデータに従って上述した処理を自律で行っている。ここで、図１３を用いて上記した処理を行う前の処理として、ＦＰＧＡ１０に書き込まれるＲＯＭデータの生成処理動作を説明する。図１３は、実施例１に係るＦＰＧＡ１０に書き込まれるＲＯＭデータの生成処理動作を示すフローチャートである。
【００４６】
同図に示すように、レジスタと回路の関係を記述するための言語であるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）を生成し（ステップＳ２０１）、各部の回路が設定により生成したものとデバイスベンダーが提供しているマクロ等を結合する（ステップＳ２０２）。
【００４７】
そして、トータルの回路を生成し、生成された回路に対して合成やインプリメントを行い（ステップＳ２０３）、ＰＦＧＡ１０に書き込むＲＯＭデータを生成し（ステップＳ２０４）、ＲＯＭデータをＰＦＧＡ１０に書き込む（ステップＳ２０５）。つまり、このように生成したＲＯＭデータをＰＦＧＡ１０に書き込む事で、外部メモリ２０との結線確認を自律で行い、結果を外部に通知することができる。
【００４８】
[実施例１の効果]
上述してきたように、ＦＰＧＡ１０は、外部メモリ２０から実際にデータ信号が読み出されたタイミングである読出タイミングと、外部メモリ２０との結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成し、生成された比較結果に係る情報を用いて、外部メモリ２０との結線について解析し、当該外部メモリ２０間の結線エラーを検出するので、読み出しタイミングと期待タイミングとを比較してレーテンシーを考慮して、外部メモリ２０間の結線エラーを検出し、正確かつ容易に不具合箇所を特定することが可能である。
【００４９】
また、実施例１によれば、比較結果に係る情報として、いずれかのタイミングで全てのリードデータが読み出されているかを示す全パターン比較結果情報、いずれかのタイミングで正常に読み出されたデータビットがあるかを示すデータビット比較結果、いずれのタイミングでデータビットが読み出されているかを示すレーテンシー比較結果のいずれかまたは複数を生成するので、レーテンシーやデータの配線等を考慮しつつ、より正確かつ容易に不具合箇所を特定することが可能である。
【００５０】
また、実施例１によれば、比較結果に係る情報から異常なデータビットがわかり、正常なデータビットのみを組み合わせてアドレス信号の正当性を解析するので、異常なデータビットについては処理を省略できる結果、より容易に不具合箇所を特定することが可能である。
【００５１】
また、実施例１によれば、書き込まれたＲＯＭデータに従って、読出タイミングと期待タイミングとを比較して、比較結果に係る情報を生成し、書き込まれたＲＯＭデータに従って、比較結果に係る情報を用いて、外部メモリ２０との結線について解析し、当該外部メモリ２０間の結線エラーを検出するので、自律でエラー箇所を絞り込むことが可能である。
【００５２】
また、実施例１によれば、書き込まれたＲＯＭデータに従って、解析された解析結果を外部に出力するので、自律で解析結果を外部に出力することが可能である。
【実施例２】
【００５３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００５４】
（１）システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、解析部１７と通知部１８を統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５５】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５６】
なお、本実施例で説明した結線エラー検出方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【００５７】
以上の実施例１〜２を含む実施形態に関し、更に以下の付記を開示する。
【００５８】
（付記１）外部メモリと接続可能なプログラマブルデバイスで、該外部メモリと接続して結線エラーを検出する結線エラー検出装置であって、
前記外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、前記外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、前記外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成する比較部と、
前記比較部によって生成された比較結果に係る情報を用いて、前記外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出する解析部と、
前記解析部によって検出された検出結果を外部に出力する出力部と、
を備えることを特徴とする結線エラー検出装置。
【００５９】
（付記２）前記比較部は、前記比較結果に係る情報として、いずれかのタイミングで全てのリードデータが読み出されているかを示す全パターン比較結果、いずれかのタイミングで正常に読み出されたデータビットがあるかを示すデータビット比較結果、いずれのタイミングでデータビットが読み出されているかを示すレーテンシー比較結果の少なくとも１つの比較結果を生成することを特徴とする付記１に記載の結線エラー検出装置。
【００６０】
（付記３）前記解析部は、前記比較結果に係る情報から正常なデータビットのみを組み合わせてアドレス信号の正当性を解析することを特徴とする付記１または２に記載の結線エラー検出装置。
【００６１】
（付記４）前記比較部は、回路に対応するプログラムのデータである結線エラー検出用のＲＯＭデータが事前に所定の記憶部に書き込まれた場合に、当該ＲＯＭデータに従って、前記読出タイミングと前記期待タイミングとを比較して、比較結果に係る情報を生成し、
前記解析部は、書き込まれたＲＯＭデータに従って、前記比較結果に係る情報を用いて前記外部メモリとの結線について解析し、外部メモリ間の結線エラーを検出して不具合箇所を特定することを特徴とする付記１〜３のいずれか一つに記載の結線エラー検出装置。
【００６２】
（付記５）プログラマブルデバイスと外部メモリとが接続され、当該プログラマブルデバイスと外部メモリとの間の結線エラーを検出する結線エラー検出方法であって、
前記プログラマブルデバイスが、前記外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、前記外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、前記外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成する比較工程と、
前記プログラマブルデバイスが、前記比較工程によって生成された比較結果に係る情報を用いて、前記外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出する解析工程と、
前記プログラマブルデバイスが、前記解析工程によって検出された検出結果を外部に出力する出力工程と、
を含んだことを特徴とする結線エラー検出方法。
【００６３】
（付記６）前記比較工程は、前記比較結果に係る情報として、いずれかのタイミングで全てのリードデータが読み出されているかを示す全パターン比較結果情報、いずれかのタイミングで正常に読み出されたデータビットがあるかを示すデータビット比較結果、いずれのタイミングでデータビットが読み出されているかを示すレーテンシー比較結果の少なくとも１つの比較結果を生成することを特徴とする付記５に記載の結線エラー検出方法。
【００６４】
（付記７）前記解析工程は、前記比較結果に係る情報から正常なデータビットのみを組み合わせてアドレス信号の正当性を解析することを特徴とする付記５または６に記載の結線エラー検出方法。
【００６５】
（付記８）前記比較工程は、回路に対応するプログラムのデータである結線エラー検出用のＲＯＭデータが事前に所定の記憶部に書き込まれた場合に、当該ＲＯＭデータに従って、前記読出タイミングと前記期待タイミングとを比較して、比較結果に係る情報を生成し、
前記解析工程は、書き込まれたＲＯＭデータに従って、前記比較結果に係る情報を用いて前記外部メモリとの結線について解析し、外部メモリ間の結線エラーを検出して不具合箇所を特定することを特徴とする付記５〜７のいずれか一つに記載の結線エラー検出方法。
【００６６】
（付記９）プログラマブルデバイスと外部メモリとが接続され、当該プログラマブルデバイスと外部メモリとの間の結線エラーを検出する結線エラー検出方法をコンピュータに実行させる結線エラー検出プログラムであって、
前記外部メモリにデータ信号を書き込み、当該データ信号の読み出しを行い、前記外部メモリから実際にデータ信号が読み出されたタイミングである読出タイミングと、前記外部メモリとの結線が正常である場合に読み出されるタイミングである期待タイミングとを比較し、比較結果に係る情報を生成する比較手順と、
前記比較手順によって生成された比較結果に係る情報を用いて、前記外部メモリとの結線について解析し、当該外部メモリ間の結線エラーを検出する解析手順と、
前記解析手順によって検出された検出結果を外部に出力する出力手順と、
をコンピュータに実行させることを特徴とする結線エラー検出プログラム。
【００６７】
（付記１０）前記比較手順は、前記比較結果に係る情報として、いずれかのタイミングで全てのリードデータが読み出されているかを示す全パターン比較結果情報、いずれかのタイミングで正常に読み出されたデータビットがあるかを示すデータビット比較結果、いずれのタイミングでデータビットが読み出されているかを示すレーテンシー比較結果の少なくとも１つの比較結果を生成することを特徴とする付記９に記載の結線エラー検出プログラム。
【００６８】
（付記１１）前記解析手順は、前記比較結果に係る情報から正常なデータビットのみを組み合わせてアドレス信号の正当性を解析することを特徴とする付記９または１０に記載の結線エラー検出プログラム。
【００６９】
（付記１２）前記比較手順は、回路に対応するプログラムのデータである結線エラー検出用のＲＯＭデータが事前に所定の記憶部に書き込まれた場合に、当該ＲＯＭデータに従って、前記読出タイミングと前記期待タイミングとを比較して、比較結果に係る情報を生成し、
前記解析手順は、書き込まれたＲＯＭデータに従って、前記比較結果に係る情報を用いて前記外部メモリとの結線について解析し、外部メモリ間の結線エラーを検出して不具合箇所を特定することを特徴とする付記９〜１１のいずれか一つに記載の結線エラー検出プログラム。
【図面の簡単な説明】
【００７０】
【図１】実施例１に係るＦＰＧＡの構成を示すブロック図である。
【図２】データ信号確認処理について説明するための図である。
【図３】データ信号確認処理について説明するための図である。
【図４】データ信号確認処理について説明するための図である。
【図５】データ信号確認処理について説明するための図である。
【図６】アドレス信号確認処理について説明するための図である。
【図７】アドレス信号確認処理について説明するための図である。
【図８】アドレス信号確認処理について説明するための図である。
【図９】アドレス信号確認処理について説明するための図である。
【図１０】アドレス信号確認処理について説明するための図である。
【図１１】外部に通知するデータの出力例を示す図である。
【図１２】実施例１に係るＦＰＧＡによる処理の流れを示すフローチャートである。
【図１３】実施例１に係るＦＰＧＡ１０に書き込まれるＲＯＭデータの生成処理動作を示すフローチャートである。
【図１４】ＦＰＧＡとメモリとの接続イメージを示す図である。
【符号の説明】
【００７１】
１０  ＦＰＧＡ
１１  メモリＩ／Ｆ
１２  書き込みデータ通知部
１３  メモリ制御部
１４  データ遅延回路
１５  比較部
１６  比較結果格納部
１７  解析部
１８  通知部
【図１】
0005136164.tif 000002
【図２】
0005136164.tif 000003
【図３】
0005136164.tif 000004
【図４】
0005136164.tif 000005
【図５】
0005136164.tif 000006
【図６】
0005136164.tif 000007
【図７】
0005136164.tif 000008
【図８】
0005136164.tif 000009
【図９】
0005136164.tif 000010
【図１０】
0005136164.tif 000011
【図１１】
0005136164.tif 000012
【図１２】
0005136164.tif 000013
【図１３】
0005136164.tif 000014
【図１４】
0005136164.tif 000015