(57)【要約】  コンフィギュレーションデータの少ないロード回数で再構成可能デバイスのテストができるようにした再構成可能デバイステスト方式を得る。複数のコンフィギュレーションデータを保持し、いずれのコンフィギュレーションを実現するかを瞬時に切り替えることができる再構成可能デバイスを用いる。すなわち、この再構成性可能デバイスのコンフィギュレーションメモリに、一つの転送コンフィギュレーションデータと一つ以上のテストコンフィギュレーションデータとを、予めロードしておき、当該転送コンフィギュレーションデータと当該テストコンフィギュレーションデータとを逐次切り替えつつテストを行うよう構成する。これにより、同じコンフィギュレーションデータを何度もロードし直す必要がなくなり、従来に比べて少ないロード回数でテストを行うことができる。
2007119300.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラマブルブロックと、これらプログラマブルブロック間をプログラマブルに接続するプログラマブル配線とを含む再構成可能デバイスのテストシステムであって、
前記プログラマブルブロックの各々は、テストコンフィグレーションデータと転送コンフィグレーションデータとを予め格納したコンフィグレーションメモリと、レジスタとを有し、
テストコンフィグレーション時には、前記コンフィグレーションメモリから前記テストコンフィグレーションデータを読み出して前記プログラマブルブロックを前記テストコンフィグレーション状態にしてテストを行って前記レジスタへそのテスト結果を保持し、転送コンフィグレーション時には、前記メモリから前記転送コンフィグレーションデータを読み出して前記レジスタを直列接続して前記テスト結果を順次読み出し、前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行する制御手段を含むことを特徴とするテストシステム。
【請求項２】
前記制御手段は、状態遷移トリガーデータに基づいて前記コンフィグレーションメモリのアドレスを生成する手段を有することを特徴とする請求の範囲１記載のテストシステム。
【請求項３】
前記制御手段は、前記テストコンフィグレーション状態におけるテストデータを生成することを特徴とする請求の範囲１または２記載のテストシステム。
【請求項４】
前記制御手段は、前記状態遷移トリガーデータ及び前記テストデータを格納したデータメモリと、このデータメモリのアドレスを生成するアドレス生成手段とを有することを特徴とする請求の範囲３記載のテストシステム。
【請求項５】
前記アドレス生成手段はテストパラメータによりアドレス生成動作が制御され、前記テストパラメータは前記データメモリに保持されていることを特徴とする請求の範囲４記載のテストシステム。
【請求項６】
前記制御手段は、前記状態遷移トリガーデータ及び前記テストデータを格納したデータメモリを有し、このデータメモリのアドレスは外部から供給されるようにしたことを特徴とする請求の範囲３記載のテストシステム。
【請求項７】
前記再構成可能デバイスは、前記テスト結果と期待値との比較を行ってこの比較結果をアキュミュレートする比較手段を、更に含むことを特徴とする請求の範囲１〜６いずれか記載のテストシステム。
【請求項８】
前記比較手段は、前記プログラマブルブロックをコンフィグレーションすることにより実現されることを特徴とする請求の範囲７記載のテストシステム。
【請求項９】
前記制御手段の少なくとも一部は、前記プログラマブルブロックをコンフィグレーションすることにより実現されることを特徴とする請求の範囲１〜８いずれか記載のテストシステム。
【請求項１０】
複数のプログラマブルブロックと、これらプログラマブルブロック間をプログラマブルに接続するプログラマブル配線とを含む再構成可能デバイスのテスト方法であって、
前記プログラマブルブロックの各々に、テストコンフィグレーションデータと転送コンフィグレーションデータとを予め格納したコンフィグレーションメモリと、レジスタとを設けておき、
テストコンフィグレーション時には、前記コンフィグレーションメモリから前記テストコンフィグレーションデータを読み出して前記プログラマブルブロックを前記テストコンフィグレーション状態にしてテストを行って前記レジスタへそのテスト結果を保持するステップと、
転送コンフィグレーション時には、前記メモリから前記転送コンフィグレーションデータを読み出して前記レジスタを直列接続して前記テスト結果を順次読み出すステップと、
前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行するステップと、
を含むことを特徴とするテスト方法。
【請求項１１】
前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行するステップは、状態遷移トリガーデータに基づいて前記コンフィグレーションメモリのアドレスを生成して状態遷移をなすことを特徴とする請求の範囲１０記載のテスト方法。
【請求項１２】
前記テスト結果と期待値との比較を行ってこの比較結果をアキュミュレートするステップを、更に含むことを特徴とする請求の範囲１０または１１記載のテスト方法。
【請求項１３】
複数のプログラマブルブロックと、これらプログラマブルブロック間をプログラマブルに接続するプログラマブル配線とを含む再構成可能デバイスであって、
前記プログラマブルブロックの各々は、テストコンフィグレーションデータと転送コンフィグレーションデータとを予め格納したコンフィグレーションメモリと、レジスタとを有し、
テストコンフィグレーション時には、前記コンフィグレーションメモリから前記テストコンフィグレーションデータを読み出して前記プログラマブルブロックを前記テストコンフィグレーション状態にしてテストを行って前記レジスタへそのテスト結果を保持し、転送コンフィグレーション時には、前記メモリから前記転送コンフィグレーションデータを読み出して前記レジスタを直列接続して前記テスト結果を順次読み出し、前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行する制御手段とを含むことを特徴とする再構成可能デバイス。
【請求項１４】
前記制御手段は、状態遷移トリガーデータに基づいて前記コンフィグレーションメモリのアドレスを生成する手段を有することを特徴とする請求の範囲１３記載の再構成可能デバイス。
【請求項１５】
前記制御手段は、前記テストコンフィグレーション状態におけるテストデータを生成することを特徴とする請求の範囲１３または１４いずれか記載の再構成可能デバイス。
【請求項１６】
前記制御手段は、前記状態遷移トリガーデータ及び前記テストデータを格納したデータメモリと、このデータメモリのアドレスを生成するアドレス生成手段とを有することを特徴とする請求の範囲１５記載の再構成可能デバイス。
【請求項１７】
前記アドレス生成手段はテストパラメータによりアドレス生成動作が制御され、前記テストパラメータは前記データメモリに保持されていることを特徴とする請求の範囲１６記載の再構成可能デバイス。
【請求項１８】
前記制御手段は、前記状態遷移トリガーデータ及び前記テストデータを格納したデータメモリを有し、このデータメモリのアドレスは外部から供給されるようにしたことを特徴とする請求の範囲１５記載の再構成可能デバイス。
【請求項１９】
前記テスト結果と期待値との比較を行ってこの比較結果をアキュミュレートする比較手段を、更に含むことを特徴とする請求の範囲１３〜１８いずれか記載の再構成可能デバイス。
【請求項２０】
前記比較手段は、前記プログラマブルブロックをコンフィグレーションすることにより実現されることを特徴とする請求の範囲１９記載の再構成可能デバイス。
【請求項２１】
前記制御手段の少なくとも一部は、前記プログラマブルブロックをコンフィグレーションすることにより実現されることを特徴とする請求の範囲１３〜２０いずれか記載の再構成可能デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイスに関するものである。
【背景技術】
【０００２】
図１に、従来の再構成可能デバイスであるＦＰＧＡ（Field  Programmable  Gate  Array  ）のブロック例を示す。ＦＰＧＡはロジックブロックアレイ１００と、チップ外とのデータ入出力を担う入出力ブロック３０＿ｙ，３１＿ｘ，３２＿ｙ，３３＿ｘと、両者を仲介する周辺ブロック５０＿ｙ，５１＿ｘ，５２＿ｙ，５３＿ｘと、それらのブロック間をプログラマブルに接続するためのプログラマブル配線（例えば、１０＿１１，１０＿２１，１１＿１１，１１＿１２）からなる。ロジックブロックアレイ１００はロジックブロック１＿ｘｙの２次元アレイである。ここで、ｘ，ｙは各ブロックの位置を示す整数である。【０００３】
図１では、ロジックブロックアレイ１００が５行５列のロジックブロックからなる場合を例示している（すなわち、ｘとｙとは、それぞれ１から５までの整数）が、一般に、ＦＰＧＡのロジックブロックアレイのサイズは任意でよい。【０００４】
図１のロジックブロックの一例を図２に示す。ロジックブロック１は、プログラマブル配線１０＿Ｗおよび１２＿Ｓから一つの信号を選択して出力する入力選択器７Ａおよび７Ｂと、入力選択器７Ａおよび７Ｂの出力に対して論理演算を施して出力する機能エレメント３と、機能エレメント３の出力をクロック信号に同期して一時的に保持するレジスタ４と、レジスタ４の出力およびプログラマブル配線１３＿Ｗ，１３＿Ｅ，１４＿Ｓ，１４＿Ｎの間の相互接続を行うプログラマブルスイッチ５と、コンフィギュレーションメモリ６０とを含む。【０００５】
コンフィギュレーションメモリ６０は、入力選択器７Ａと入力選択器７Ｂとが複数の入力信号からいずれを選択して出力するかを決める信号、機能エレメント３の論理機能を決める信号、およびプログラマブルスイッチ５がどのような配線間接続を実現するかを決める信号を、それぞれ出力する。【０００６】
図１の各ロジックブロック１＿ｘｙは、全て同じく図２の構造を有している。図２のプログラマブル配線１０＿Ｗは左隣のブロックと接続され、プログラマブル配線１０＿Ｅは右隣のブロックと接続され、プログラマブル配線１１＿Ｓは下隣のブロックと接続され、プログラマブル配線１１＿Ｎは上隣のブロックと接続される。図１のロジックブロック１＿１１を例にとると、図１のプログラマブル配線１０＿１１は図２のプログラマブル配線１０＿Ｗに、図１のプログラマブル配線１０＿２１は図２のプログラマブル配線１０＿Ｅに、図１のプログラマブル配線１１＿１１は図２のプログラマブル配線１１＿Ｓに、図１のプログラマブル配線１１＿１２は図２のプログラマブル配線１１＿Ｎに、それぞれ対応する。【０００７】
図１における太線矢印は、テストコンフィギュレーションにおける２つの信号経路１５および１６を示す。信号経路１５では、信号が入出力ブロック３０＿４から入力され、プログラマブル配線を通って全ロジックブロックに供給される。信号経路１６では、信号が入出力ブロック３０＿３から入力され、プログラマブル配線を通って全ロジックブロックに供給される。両経路１５，１６上の信号は、各ロジックブロックに供給されると同時に、左隣のブロックへフォーワードされる。【０００８】
図２の太線矢印は、テストコンフィギュレーションにおける各ロジックブロック１の信号経路を示したものである。入力選択器７Ａ，７Ｂは、それぞれ経路１６，１５上の信号を出力するようにコンフィギュレーションされ、機能エレメント３はテストされるべき論理機能にコンフィギュレーションされる。さらに、プログラマブルスイッチ５は、経路１５，１６上の信号をプログラマブル配線１３＿Ｅに伝えるように（すなわち、フォーワードするように）、コンフィギュレーションされる。【０００９】
テストコンフィギュレーションにおいて、ＦＰＧＡを１クロック動作させることにより、経路１５，１６上の信号を機能エレメント３によって演算した結果がレジスタ４に保存される。【００１０】
図３は、従来のＦＰＧＡのテスト方式の転送コンフィギュレーションを示す図である。太線矢印は転送コンフィギュレーションにおける信号経路１８＿ｙを示す。すなわち、各行のロジックブロックは左から右へ直列に接続され、各々の行の出力は周辺ブロック５２＿ｙを通って入出力ブロック３２＿ｙに出力される。【００１１】
図４の太線矢印は、転送コンフィギュレーションにおける各ロジックブロック１の信号経路を示したものである。入力選択器７Ａはプログラマブル配線１２＿Ｗの信号を出力するようにコンフィギュレーションされ、機能エレメント３は入力選択器７Ａの出力をそのまま出力するようにコンフィギュレーションされる。レジスタ４の出力１２＿Ｅは左隣のロジックブロックのプログラマブル配線１２＿Ｗに接続されている。【００１２】
図３において、転送コンフィギュレーションでは、各行のロジックブロックのレジスタ４は左から右へ順に接続された珠繋ぎの接続形態になっている。このコンフィギュレーションでＦＰＧＡをＮ−１クロック動作させることで、各ロジックブロック内のレジスタ４内のデータは左隣のブロックへ順次転送され、入出力ブロックから順次読み取り出される。ここで、Ｎはロジックブロックアレイ１００の一行に含まれるロジックブロックの数である。【００１３】
図５に従来のＦＰＧＡのテスト方式のフローチャートを示す。最初のステップ５００において、複数のテストコンフィギュレーションと、各々のテストコンフィギュレーションにおいて入出力ブロックから入力するテスト入力データ、および一つの転送コンフィギュレーションを用意する。【００１４】
次に、第一のテストコンフィギュレーションをＦＰＧＡにロードし（ステップ５０５，５１０）、入出力ブロックに第一テストコンフィギュレーション用の第一テスト入力データを与える（ステップ５１５，５３０）。次に、ＦＰＧＡを１クロック動作させる（ステップ５４０）。これによって、入出力ブロックから入力されたテスト入力データをロジックブロックの機能エレメントで演算した結果、すなわちテスト結果データが、ロジックブロック内のレジスタに入る。【００１５】
次に、レジスタ内のテスト結果データを保持したまま、転送コンフィギュレーションをＦＰＧＡにロードする（ステップ５５０）。次に、ＦＰＧＡをＮ−１クロック動作させ、全ロジックブロックのレジスタ内のテスト結果データを入出力ブロックから読み出す。読み出すと同時に、テスト結果データと期待値を照合し故障が存在するかどうか調べる（ステップ５６０）。次に、第一のテストコンフィギュレーションの第二のテスト入力データを入出力ブロックに与える（ステップ５７５，５３０）。【００１６】
以後、第一のテストコンフィギュレーションのすべてのテスト入力データを尽くすまで（判定５７０）、ステップ５３０からステップ５７５までを繰り返す。次に、第二のテストコンフィギュレーションをＦＰＧＡにロードする（ステップ５８５，５１０）。以後、すべてのテストコンフィギュレーションを尽くすまで（判定５８０）、ステップ５１０からステップ５８５までを繰り返す。【００１７】
上述した従来例は、例えば、特開平７−１９８７８４号公報に開示されている。
【発明の開示】
【００１８】
このような従来のテスト方式では、テストコンフィギュレーションデータと転送コンフィギュレーションデータとを、交互にＦＰＧＡにロードする（ステップ５１０と５５０）ことを繰り返さなければならず、テスト時間が長くなるという問題がある。通常のＬＳＩのテストベクタに相当するテスト入力データに比べて、ＦＰＧＡでは、テストおよび転送コンフィギュレーションデータのほうが非常に多くロードに時間がかかる。このために、テスト時間短縮のためには、コンフィギュレーションデータのロード回数を少なくすることが望まれる。
【００１９】
本発明の目的は、コンフィギュレーションデータの少ないロード回数で再構成可能デバイスのテストができるようにした再構成可能デバイステストシステム及びその方法並びに再構成可能デバイスを提供することである。
【００２０】
本発明によるテストシステムは、複数のプログラマブルブロックと、これらプログラマブルブロック間をプログラマブルに接続するプログラマブル配線とを含む再構成可能デバイスのテストシステムであって、
前記プログラマブルブロックの各々は、テストコンフィグレーションデータと転送コンフィグレーションデータとを予め格納したコンフィグレーションメモリと、レジスタとを有し、
テストコンフィグレーション時には、前記コンフィグレーションメモリから前記テストコンフィグレーションデータを読み出して前記プログラマブルブロックを前記テストコンフィグレーション状態にしてテストを行って前記レジスタへそのテスト結果を保持し、転送コンフィグレーション時には、前記メモリから前記転送コンフィグレーションデータを読み出して前記レジスタを直列接続して前記テスト結果を順次読み出し、前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行する制御手段を含むことを特徴とする。
【００２１】
本発明によるテスト方法は、複数のプログラマブルブロックと、これらプログラマブルブロック間をプログラマブルに接続するプログラマブル配線とを含む再構成可能デバイスのテスト方法であって、
前記プログラマブルブロックの各々に、テストコンフィグレーションデータと転送コンフィグレーションデータとを予め格納したコンフィグレーションメモリと、レジスタとを設けておき、
テストコンフィグレーション時には、前記コンフィグレーションメモリから前記テストコンフィグレーションデータを読み出して前記プログラマブルブロックを前記テストコンフィグレーション状態にしてテストを行って前記レジスタへそのテスト結果を保持するステップと
転送コンフィグレーション時には、前記メモリから前記転送コンフィグレーションデータを読み出して前記レジスタを直列接続して前記テスト結果を順次読み出すステップと、
前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行するステップとを含むことを特徴とする。
【００２２】
本発明による再構成可能デバイスは、複数のプログラマブルブロックと、これらプログラマブルブロック間をプログラマブルに接続するプログラマブル配線とを含む再構成可能デバイスであって、
前記プログラマブルブロックの各々は、テストコンフィグレーションデータと転送コンフィグレーションデータとを予め格納したコンフィグレーションメモリと、レジスタとを有し、
テストコンフィグレーション時には、前記コンフィグレーションメモリから前記テストコンフィグレーションデータを読み出して前記プログラマブルブロックを前記テストコンフィグレーション状態にしてテストを行って前記レジスタへそのテスト結果を保持し、転送コンフィグレーション時には、前記メモリから前記転送コンフィグレーションデータを読み出して前記レジスタを直列接続して前記テスト結果を順次読み出し、前記テストコンフィグレーション状態と前記転送コンフィグレーション状態とを交互に実行する制御手段とを含むことを特徴とする。
【００２３】
本発明の作用を述べる。複数のコンフィギュレーションデータを保持し、いずれのコンフィギュレーションを実現するかを瞬時に切り替えることができる再構成可能デバイスを用いる。すなわち、この再構成性可能デバイスに、一つの転送コンフィギュレーションデータと一つ以上のテストコンフィギュレーションデータとをロードしておき、当該転送コンフィギュレーションデータと当該テストコンフィギュレーションデータとを逐次切り替えつつテストを行うよう構成する。これにより、同じコンフィギュレーションデータを何度もロードし直す必要がなくなり、従来に比べて少ないロード回数でテストを行うことができる。
【００２４】
本発明によれば、再構成可能デバイスのメモリ内に、一つ以上のテストコンフィギュレーションデータと一つの転送コンフィギュレーションデータとをロードしておき、これらを適宜切り替えて使い回してテストを遂行するようにしたので、少ないロード回数でテストができ、よってテストの時間短縮が可能となるという効果がある。
【図面の簡単な説明】
【００２５】
【図１】従来例におけるテストコンフィギュレーションを示す図である。
【図２】従来例のテストコンフィギュレーションにおけるロジックブロックの信号経路を示す図である。
【図３】従来例における転送コンフィギュレーションを示す図である。
【図４】従来例の転送コンフィギュレーションにおけるロジックブロックの信号経路を示す図である。
【図５】従来例におけるテスト方式のフローチャートである。
【図６】本発明の第１の実施の形態におけるテストコンフィギュレーションを示す図である。
【図７】テストコンフィギュレーションにおけるロジックブロックの信号経路を示す図である。
【図８】本発明におけるコンフィギュレーションメモリを示す図である。
【図９】テストコンフィギュレーションにおける入出力ブロックの信号経路を示す図である。
【図１０】テストコンフィギュレーションにおける周辺ブロックの信号経路の例を示す図である。
【図１１】テストコンフィギュレーションにおける周辺ブロックの信号経路の別の例を示す図である。
【図１２】本発明の第１の実施の形態における転送コンフィギュレーションを示す図である。
【図１３】転送コンフィギュレーションにおけるロジックブロックの信号経路を示す図である。
【図１４】転送コンフィギュレーションにおける周辺ブロックの信号経路を示す図である。
【図１５】図１４の比較器を示す図である。
【図１６】本発明の第１の実施の形態におけるテスト方式のフローチャートである。
【図１７】図６のコンフィギュレーションコントローラを示す図である。
【図１８】入出力ブロックの他の例を示す図である。
【図１９】本発明の第２の実施の形態を示す図である。
【図２０】本発明の第３の実施の形態を示す図である。
【図２１】本発明の第４の実施の形態を示す図である。
【符号の説明】
【００２６】
１，１＿ｘｙ  ロジックブロック
３  機能エレメント
４  レジスタ
１５，１６，１８＿ｉ  信号経路
１７  アドレス信号
５  プログラマブルスイッチ
７Ａ，７Ｂ  入力選択器
８  データメモリ
９  比較器
２０  コンフィギュレーションコントローラ
２４  遷移アドレス生成ブロック
２５  遷移信号生成ブロック
２６  コンフィギュレーションアドレス選択器
２７  遷移アドレス選択器
３０，３０＿ｉ，３１＿ｉ，３２＿ｉ，３３＿ｉ  入出力ブロック
５０，５０＿ｉ，５１＿ｉ，５２＿ｉ，５３＿ｉ  周辺ブロック
６０  コンフィギュレーションメモリ
７０  アドレスデコーダ
８０  コンフィギュレーションアドレス部
８１  遷移アドレス部
９０  期待値照合器
９６  論理和ゲート
９７  論理積ゲート
１００  ロジックブロックアレイ
２００  テストコントローラ
２１０  テストコントロールロジック
２１１  テストデータカウンター
２１２  テストコンフィギュレーションカウンター
２１３  比較期間カウンター
３１０  出力バッファ
３２０  入力バッファ
３４０  マルチプレクサ
３５１，３５２，３５３，３５４  トライステートバッファ
【発明を実施するための最良の形態】
【００２７】
以下に、図面を参照しつつ本発明の実施の形態について図面を参照しつつ詳細に説明する。図６は本発明の第１の実施の形態における再構成可能デバイスとテストコンフィギュレーション時の信号経路を示した図である。【００２８】
図６を参照すると、本発明の再構成可能デバイスは、ロジックブロックアレイ１００と、入出力ブロック３０＿ｙ，３１＿ｘ，３２＿ｙ，３３＿ｘと、周辺ブロック５０＿ｙ，５１＿ｘ，５２＿ｙ，５３＿ｘと、コンフィギュレーションコントローラ２０と、テストコントローラ２００とを含む。ロジックブロックアレイ１００はロジックブロック１＿ｘｙの２次元アレイである。ここで、ｘ，ｙは各ブロックの位置を示す整数である。図６では、ロジックブロックアレイ１００が５行５列のロジックブロックからなる場合を例示している（すなわち、ｘとｙとは、それぞれ１から５までの整数）が、一般に、ロジックブロックアレイのサイズは任意でよい。以後、ロジックブロックと周辺ブロックと入出力ブロックとを、プログラマブルブロックと総称する。【００２９】
図６の各プログラマブルブロックは、例えば、１０＿１１，１０＿２１，１１＿１１，１１＿１２で示されるプログラマブル配線によって、他のプログラマブルブロックとプログラマブルに接続される。コンフィギュレーションコントローラ２０は、コンフィギュレーションアドレス２１を各プログラマブルブロックに供給する。【００３０】
図６における太線矢印は、テストコンフィギュレーションにおける２つの信号経路１５および１６を示す。信号経路１５では、信号が入出力ブロック５０＿４から入力され、プログラマブル配線を通って全ロジックブロックに供給される。信号経路１６では、信号が入出力ブロック５０＿３から入力され、プログラマブル配線を通って全ロジックブロックに供給される。これら信号経路１５、１６上の信号は、各ロジックブロックに供給されると同時に、左隣のブロックへフォーワードされる。【００３１】
本実施の形態におけるロジックブロックの例を図７に示す。ロジックブロック１は、プログラマブル配線１０＿Ｗおよび１２＿Ｓから一つの信号を選択して出力する入力選択器７Ａおよび７Ｂと、入力選択器７Ａと入力選択器７Ｂとの出力に対して論理演算を施して出力する機能エレメント３と、機能エレメント３の出力をクロック信号に同期して一時的に保持するレジスタ４と、レジスタ４の出力およびプログラマブル配線１３＿Ｗ，１３＿Ｅ，１４＿Ｓ，１４＿Ｎの間の相互接続を行うプログラマブルスイッチ５と、コンフィギュレーションメモリ６０とを含む。【００３２】
コンフィギュレーションメモリ６０は、入力選択器７Ａおよび７Ｂが複数の入力信号からいずれを選択して出力するかを決める信号、機能エレメント３の論理機能を決める信号、およびプログラマブルスイッチ５がどのような配線間接続を実現するかを決める信号を出力する。【００３３】
図６の各ロジックブロック１＿ｘｙ（ｘ，ｙは整数）は、全て同じく図７の構成を有する。図７のプログラマブル配線１０＿Ｗは左隣のブロックと接続され、プログラマブル配線１０＿Ｅは右隣のブロックと接続され、プログラマブル配線１１＿Ｓは下隣のブロックと接続され、プログラマブル配線１１＿Ｎは上隣のブロックと接続される。図６のロジックブロック１＿１１を例にとると、図６のプログラマブル配線１０＿１１は図７のプログラマブル配線１０＿Ｗに、図６のプログラマブル配線１０＿２１は図７のプログラマブル配線１０＿Ｅに、図６のプログラマブル配線１１＿１１は図７のプログラマブル配線１１＿Ｓに、図６のプログラマブル配線１１＿１２は図７のプログラマブル配線１１＿Ｎに、それぞれ対応する。【００３４】
図７におけるコンフィギュレーションメモリ６０は複数のコンフィギュレーションデータを保持し、その中からコンフィギュレーションアドレス２１によって指定されるコンフィギュレーションデータを出力する。【００３５】
図８はこのコンフィギュレーションメモリ６０の例である。コンフィギュレーションメモリ６０は複数のワードデータ６＿ｘ（ｘ＝１，２，３，…，Ｍ）と、アドレスデコーダ７０とを備える。ここで、Ｍはコンフィギュレーションメモリのワードデータ数であり、図８では、Ｍ＝６の例を示しているが、これはどんな数でもよい。【００３６】
各々のワードデータは一つのコンフィギュレーションに対応する。すなわち、コンフィギュレーションメモリ６０は複数のコンフィギュレーションを保持することができる。コンフィギュレーションアドレス２１はアドレスデコーダ７０でデコードされ、デコード信号によって一つのワードデータすなわちコンフィギュレーションが選択されて出力６となる。【００３７】
図７の太線矢印は、テストコンフィギュレーションにおけるロジックブロック１の信号経路を示したものである。入力選択器７Ａ，７Ｂは、それぞれ経路１６，１５上の信号を出力するようにコンフィギュレーションされ、機能エレメント３はテストされるべき論理機能にコンフィギュレーションされる。さらに、プログラマブルスイッチ５は、経路１５，１６上の信号をプログラマブル配線１３＿Ｅにフォーワードするようにコンフィギュレーションされる。このようなコンフィギュレーションのためのデータは、図８のワードデータのうちいずれか（例えば、６＿１）に保持されている。【００３８】
図６のコンフィギュレーションコントローラ２０からそのコンフィギュレーションに対応するアドレスデータ２１が出力されることで、図６の太線矢印に示した信号経路が実現される。図６において、テストコントローラ２００から出力されるテストデータアドレス２２０は、入出力ブロック３０＿４，３０＿５を経由して、信号１７となり、周辺ブロック５０＿４，５０＿５に伝えられる。【００３９】
図６における入出力ブロック３０＿ｙの例を図９に示す。入出力ブロック３０は、入出力端子３００と、入出力端子３００に信号を出力する出力バッファ３１０と、入出力端子３００から信号を入力する入力バッファ３２０と、入力バッファ３２０の出力と信号２２０とのいずれかを選択して出力するマルチプレクサ３３０と、マルチプレクサ３３０の出力をプログラマブル配線１３に選択的に出力するトライステートバッファ３５１，３５２，３５３，３５４と、プログラマブル配線１３のうちいずれかの信号を選択して出力バッファ３１０の入力として与えるマルチプレクサ３４０と、コンフィギュレーションアドレス２１によってアドレッシングされるコンフィギュレーションデータを出力するコンフィギュレーションメモリ６０とを含む。【００４０】
コンフィギュレーションデータは、出力バッファ３１０、トライステートバッファ３５１，３５２，３５３，３５４およびマルチプレクサ３３０，３４０を制御する。プログラマブル配線１０は隣接する周辺ブロックと接続されている。なお、図９の信号２２０は、図６の入出力ブロック３０＿４，３０＿３においては、テストデータアドレス２２０に、入出力ブロック３０＿１，３０＿２においては、信号２２１に、それぞれ対応する。【００４１】
テストコンフィギュレーションにおいて、図６の入出力ブロック３０＿４，３０＿３は、図９の太線矢印に示すような信号経路を形成するようにコンフィギュレーションされる。すなわち、マルチプレクサ３３０はテストデータアドレス２２０を出力し、トライステートバッファ３５３はこの出力をプログラマブル配線に出力して信号１７として隣接する周辺ブロックに伝わるようにコンフィギュレーションされる。【００４２】
図６における周辺ブロック５０＿４の例を図１０に示す。周辺ブロック５０＿４は、プログラマブル配線１０＿Ｗおよび１２＿Ｓから一つの信号を選択して出力する入力選択器７Ａおよび７Ｂと、入力選択器７Ａと入力選択器７Ｂとの出力がそれぞれデータ入力ＤとアドレスＡに供給されるデータメモリ８と、データメモリ８の出力Ｑおよびプログラマブル配線１３＿Ｗ，１３＿Ｅ，１４＿Ｓ，１４＿Ｎの間の相互接続を行うプログラマブルスイッチ５と、コンフィギュレーションメモリ６０とを含む。【００４３】
コンフィギュレーションメモリ６０は、入力選択器７Ａと入力選択器７Ｂとが複数の入力信号からいずれを選択して出力するかを決める信号、データメモリを書き込みモードにするかどうかを決める信号、およびプログラマブルスイッチ５がどのような配線間接続を実現するかを決める信号を、それぞれ出力する。【００４４】
図６の他の周辺ブロック５０＿ｙも図１０と同じ構造である。しかし、コンフィギュレーションはブロック毎に異なる。テストコンフィギュレーションにおいて、図６の周辺ブロック５０＿４は、図１０の太線矢印に示すような信号経路を形成するようにコンフィギュレーションされる。すなわち、図１０の入力選択器７Ｂは信号１７を出力してデータメモリ８のアドレスＡに与え、プログラマブルスイッチ５はデータメモリの出力Ｑがプログラマブル配線１３＿Ｅと１４＿Ｓと１４＿Ｎに信号１５を与えるようにコンフィギュレーションされる。【００４５】
さらに、周辺ブロック５０＿３からプログラマブル配線１４＿Ｓ経由で来た信号１６がプログラマブル配線１４＿Ｎに伝わるように、プログラマブルスイッチ５はコンフィギュレーションされる。また、データメモリ８は読み出しモードになるようにコンフィギュレーションされる。【００４６】
図１１は、図６の周辺ブロック５０＿３のコンフィギュレーションを示す（太線矢印）。データメモリの出力Ｑを信号１６としてプログラマブル配線１３＿Ｅ，１４＿Ｓ，１４＿Ｎに伝達し、周辺ブロック５０＿４からプログラマブル配線１４＿Ｎ経由で来た信号１５をプログラマブル配線１４＿Ｓに伝達するようにプログラマブルスイッチ５はコンフィギュレーションされる。その他のコンフィギュレーションは周辺ブロック５０＿４と同じである。【００４７】
周辺ブロック５０＿３，５０＿４以外の周辺ブロック５０＿ｙは、図６の太線で示されたように、信号１５，１６を伝達するようにコンフィギュレーションされる。周辺ブロック５０＿４，５０＿３内のデータメモリ８には、テスト入力データが保持されており、図６のテストデータアドレス２２０によってアドレッシングされたデータが、信号１５，１６として全ロジックブロックに配布される。データメモリ内のデータは、コンフィギュレーションデータの一部として書き込むことができる。【００４８】
次に、図１２を用いて、本発明の第１の実施の形態における転送コンフィギュレーションについて説明する。図１２において、太線矢印は転送コンフィギュレーションにおける信号経路１８＿ｙを示す。すなわち、各行のロジックブロックは左から右へ直列に接続され、各々の行の出力は周辺ブロック５２＿ｙに入力される。ここで、ｙはブロックの座標を示す整数である。【００４９】
転送コンフィギュレーションにおけるロジックブロック内の信号経路を図１３に示す。図１３の太線矢印は、各ロジックブロック１内の信号経路を示したものである。入力選択器７Ａはプログラマブル配線１２＿Ｗの信号を出力するようにコンフィギュレーションされ、機能エレメント３は入力選択器７Ａの出力をそのまま出力するようにコンフィギュレーションされる。レジスタ４の出力１２＿Ｅは左隣のロジックブロックのプログラマブル配線１２＿Ｗに接続されている。【００５０】
図１２において、転送コンフィギュレーションでは、各行のロジックブロック内のレジスタ４が左から右へ順に接続された珠繋ぎの接続形態になる。このコンフィギュレーションで再構成可能デバイスをＮ−１クロック動作させると、各ロジックブロック内のレジスタ４内データは左隣のブロックへ順次転送され、周辺ブロックには全てのデータが入力されることになる。ここで、Ｎはロジックブロックアレイの一行あたりのロジックブロック数である。【００５１】
図６あるいは図１２の周辺ブロック５２＿ｙを図１４に示す。周辺ブロック５２は、図１０の周辺ブロック５０に比較器９を追加したものである。比較器９はデータ入力ｄと期待値ｘとを比較し、この比較結果を内部のレジスタにアキュミュレートする。比較処理を行うか否かは、図１２のテストコントローラ２００から出力される比較イネーブル信号２２３によって制御される。【００５２】
図１４の太線矢印は転送コンフィギュレーションにおける信号経路を表す。プログラマブル配線１２＿Ｗ上の信号が入力選択器７Ａの出力になるようにコンフィギュレーションされ、入力選択器７Ａの出力信号は比較器９のデータ入力ｄとなる。また、プログラマブル配線１３＿Ｗ上の信号１７が入力選択器７Ｂの出力になるようにコンフィギュレーションされ、信号１７によってデータメモリ８はアドレッシングされる。さらに、データメモリは読み出しモードにコンフィギュレーションされる。【００５３】
周辺ブロック５２のデータメモリ８には期待値が保持され、その出力Ｑは比較器９の期待値ｘとして使われる。信号１７は図１２のテストコントローラ２００から出力されるテストデータアドレス２２０であり、これは入出力ブロック３０、周辺ブロック５０、プログラマブル配線を経由して周辺ブロック５２に配布される。【００５４】
図１４における比較器９の例を図１５に示す。これは、期待値照合器９０と、レジスタ４、およびレジスタ４に付随する論理ゲート９６，９７からなる。期待値照合器９０は、比較イネーブルが論理１で、かつ期待値ｘとデータ入力ｄが同じでないとき出力９８を論理１にする。それ以外の場合は、出力９８を論理０にする。【００５５】
論理和ゲート９６と論理積ゲート９７およびレジスタ４からなる回路は、次のように動作する。まず、テスト開始時の一定期間リセット９９を論理０にし、レジスタ４に論理０を保存する（すなわち、レジスタ４をリセットする）。次に、リセット信号を論理１にし、リセットを解除する。リセット解除後、期待値照合器９０の出力９１が論理０である間は、レジスタ４には論理０が保持される。出力９１が論理１になると、レジスタ４の内容は論理１になり、以後再リセットを行うまで、出力９１の論理値にかかわらずレジスタ４は論理１を保持し続ける。なお、レジスタ４はクロック（図には示していない）に同期して内容が更新される。【００５６】
上記動作特性により、リセット解除後、データ入力ｄと期待値ｘの不一致が起こらない限りレジスタ４の内容は論理０のままであり、一度でも不一致が生じると、レジスタ４の内容は論理１となる。従って、全テスト終了後にレジスタ４の内容を読み出せば、故障が検出されたかどうかわかる。なお、レジスタ４の内容を読み出す出力線９８は、図１２（あるいは図６）には示されていない。再構成可能デバイスは、別途コンフィギュレーションデータを読み出す手段を具備しており、その手段を使って、レジスタ４の内容を読み出すことができる。【００５７】
図１６に、本発明の実施の形態におけるテスト方式のフローチャートを示す。最初のステップ５００において、一つ以上のテストコンフィギュレーションデータと、各々のテストコンフィギュレーションに対応するテスト入力データと、一つの転送コンフィギュレーションデータと、テスト入力データに対応する期待値データとを用意する。これらをテストデータセットとする。【００５８】
次に、テストデータセットを再構成可能デバイス（図６）にロードする（ステップ５１０）。テストデータセットのうち、コンフィギュレーションデータは、プログラマブルブロックのコンフィギュレーションメモリに、テスト入力データは周辺ブロック５０（図６）のデータメモリに、期待値データは周辺ブロック５２（図６）のデータメモリに、それぞれ格納される。【００５９】
次に、再構成可能デバイスをリセット（ステップ５０１）した後、動作を開始させる命令ＲＵＮをデバイスに与える（ステップ５０２）。なお、リセットしてもコンフィギュレーションメモリ、データメモリの内容は保持されるものとする。【００６０】
ステップ５０１，５０２を行うと、コンフィギュレーションコントローラ（図６の２０）から第１のテストコンフィギュレーションのアドレスが出力され（図６の２１）、デバイスは第１テストコンフィギュレーションになる（ステップ５０５，５２０）。同時に、第１テストコンフィギュレーションの第１テスト入力データが周辺ブロック（図６の５０）から出力される（ステップ５１５，５３０）。【００６１】
次に、デバイスを１クロック動作させる（ステップ５４０）。これによって、第１テスト入力データをロジックブロックの機能エレメントで演算した結果、すなわちテスト結果データが、ロジックブロックのレジスタに入る。次に、コンフィギュレーションコントローラ（図６の２０）から転送コンフィギュレーションのアドレスが出力され（図６の２１）、デバイスはレジスタの内容を保持したまま転送コンフィギュレーションになる（ステップ５５５）。【００６２】
次に、デバイスをＮ−１クロック動作させ、全ロジックブロックのレジスタ内のテスト結果データを順次周辺ブロック（図１２の５２）に入力する。周辺ブロック（図１２の５２）内では、順次テスト結果データと期待値との照合が行われ、比較結果が比較器内のレジスタにアキュミュレートされる（ステップ５６０）。【００６３】
次に、コンフィギュレーションコントローラ（図６の２０）から第１のテストコンフィギュレーションのアドレスが出力され（図６の２１）、デバイスは第１テストコンフィギュレーションになる（ステップ５２０）。同時に、第１テストコンフィギュレーションの第２テスト入力データが周辺ブロック（図６の５０）から出力される（ステップ５７５，５３０）。【００６４】
以後、第１のテストコンフィギュレーションの全てのテスト入力データを尽くすまで（判定５７０）、ステップ５２０からステップ５７５までを繰り返す。次に、コンフィギュレーションコントローラ（図６の２０）から第２のテストコンフィギュレーションのアドレスが出力され（図６の２１）、デバイスは第２テストコンフィギュレーションになる（ステップ５８５，５２０）。同時に、第２テストコンフィギュレーションの第１テスト入力データが周辺ブロック（図６の５０）から出力される（ステップ５１５，５３０）。【００６５】
以後、全てのテストコンフィギュレーションを尽くすまで（判定５８０）、ステップ５１５からステップ２８５までを繰り返す。最後に、周辺ブロック（図１２の５２）の比較器内レジスタに保持されたテスト結果を読み出し、故障が検出されたかどうかを調べる（ステップ５９０）。【００６６】
図６（あるいは図１２）のコンフィギュレーションコントローラ２０の例を図１７に示す。コンフィギュレーションコントローラ２０は、複数のワードデータ２＿１〜２＿９を持つメモリと、アドレスに応じてワードデータのうちいずれかを選択するアドレスデコーダ７０と、コンフィギュレーションアドレス選択器２６と、遷移アドレス選択器２７と、遷移アドレス生成ブロック２４と、遷移信号生成ブロック２５とかならなる。図１７では、ワードデータが９個の場合を例示したが、ワードデータ数は１より大きい任意の数であってよい。【００６７】
各ワードデータは、遷移アドレス部８０とコンフィギュレーションアドレス部８１とを有し、遷移アドレス部８０は複数の遷移アドレス（図１７では、点線で区切られた３つの遷移アドレス）を含み、コンフィギュレーションアドレス部８１は複数のコンフィギュレーションアドレス（図１７では、点線で区切られた３つのコンフィギュレーションアドレス）を含む。【００６８】
コンフィギュレーションアドレス選択器２６は、遷移信号生成ブロック２５の出力に基づき、複数のコンフィギュレーションアドレスからいずれかを選択して出力２１とする。出力２１は、再構成可能デバイス（図６）のコンフィギュレーションアドレス２１である。遷移アドレス選択器２７は、遷移信号生成ブロック２５の出力に基づき、複数の遷移アドレスからいずれかを選択して、遷移アドレス生成ブロック２４の入力とする。遷移アドレス生成ブロック２４は、入力された遷移アドレスをクロックに同期して出力する。また、遷移アドレス生成ブロック２４は、リセット時には、特定の初期アドレスを出力する。遷移アドレス生成ブロック２４の出力はアドレスデコーダ７０の入力となり、ワードデータ２＿１〜２＿９のいずれかを選択するのに使われる。【００６９】
遷移信号生成ブロック２５は、遷移トリガー２２，２３に基づき、複数の遷移アドレスおよび複数のコンフィギュレーションアドレスのいずれかを選択するための信号を出力する。遷移トリガー２２，２３が共に論理０のとき、両アドレス選択器２６，２７は第０入力を出力し、遷移トリガー２２，２３がそれぞれ論理０，１のとき、両アドレス選択器２６，２７は第１入力を出力し、遷移トリガー２２，２３がそれぞれ論理１，０のとき、両アドレス選択器２６，２７は第２入力を出力する。ワードデータ２＿１〜２＿９は、コンフィギュレーションデータの一部として、再構成可能デバイスにロードされる。【００７０】
図１６のフローチャートに示したように、本発明のテスト方式では、ステップ５２０とステップ５５５とのコンフィギュレーション遷移が繰り返される。このコンフィギュレーション遷移のためのコンフィギュレーションアドレス系列が、図１７のコンフィギュレーションコントローラ２０で生成されるのである。【００７１】
次に、本発明のテスト方式を実行するときのコンフィギュレーションコントローラ２０の動作を説明する。図１７の各ワードデータ内に書かれた数字は、本発明のテスト方式を実行する際のメモリ内容の例である。リセット後、遷移トリガー２２，２３は共に論理０であり、両アドレス選択器２６，２７の第０入力、すなわちワードデータ２＿１に書かれているアドレス値１が選択される。これにより、ワードデータ２＿１がアドレッシングされ、コンフィギュレーションアドレス２１は第１のコンフィギュレーションをアドレッシングする。ここで、第１コンフィギュレーションはテストコンフィギュレーションの一つである。【００７２】
次に、図１６のステップ５５５において、遷移トリガー２２，２３がそれぞれ論理０，１になり、両アドレス選択器２６，２７の第１入力、すなわちワードデータ２＿１に書かれているアドレス値６が選択される。これにより、コンフィギュレーションアドレス２１は第６のコンフィギュレーションをアドレッシングする。ここで、第６コンフィギュレーションは転送コンフィギュレーションとする。【００７３】
次のクロックで、図１７の遷移アドレス生成ブロック２４から遷移アドレス値６が出力され、ワードデータ２＿６がアドレッシングされる。図１６のステップ５６０では、テスト結果データと期待値との照合が終わるまで、Ｎクロックの間第６のコンフィギュレーションにとどまる。この間、図１７の遷移トリガー２２，２３は共に論理０で、両アドレス選択器２６，２７の第０入力、すなわちワードデータ２＿６に書かれているアドレス値６が選択される。これにより、ワードデータ２＿６がアドレッシングされ続け、コンフィギュレーションアドレス値６が出力され続ける。【００７４】
期待値照合後、遷移トリガー２２，２３がそれぞれ論理０，１になり、両アドレス選択器２６，２７は第１入力、すなわちワードデータ２＿６に書かれているアドレス値１が選択される。これにより、コンフィギュレーションアドレス２１は第１のコンフィギュレーションをアドレッシングする。次のクロックで、遷移信号生成ブロック２４から遷移アドレス値１が出力され、ワードデータ２＿１がアドレッシングされる。これは、図１６のステップ５７０，５７５を経由してステップ５２０に戻ることに対応する。以後、同様に、図１７のワードデータ２＿１と２＿６とを交互にアドレッシングし、第１と第６のコンフィギュレーションを交互に遷移する。【００７５】
図１６のステップ５７０では、図１７のワードデータ２＿６がアドレッシングされた状態にあるが、ステップ５７０で条件判定がＹＥＳとなった場合、遷移トリガー２２，２３がそれぞれ論理１，０になり、両アドレス選択器２６，２７は第２入力、すなわちワードデータ２＿６に書かれているアドレス値２が選択される。これにより、コンフィギュレーションアドレス２１は第２のコンフィギュレーションをアドレッシングする。第２のコンフィギュレーションは、第２のテストコンフィギュレーションである。ここまでを第１過程とする。【００７６】
次のクロックで、図１７の遷移信号生成ブロック２４５から遷移アドレス値２が出力され、ワードデータ２＿２がアドレッシングされる。これは、図１６のステップ５８０，５８５，５１５を経由してステップ５２０に戻ることに対応する。以後、第１過程におけるワードデータ２＿１と２＿６とがそれぞれワードデータ２＿２と２＿７とに対応して、第１過程と同様な動作が繰り返される。これを第２過程とする。以後、図１６のステップ５８０の条件判定がＹＥＳになるまで、同様の過程を遂行する。【００７７】
図１７において、ワードデータ２＿ｉは第ｉテストコンフィギュレーションに対応し、ワードデータ２＿（ｉ＋５）は第ｉテストコンフィギュレーションで使用される転送コンフィギュレーションに対応する（ｉ＝１，２，３，４）。ただし、転送コンフィギュレーションは第６コンフィギュレーションのみで、複数のテストコンフィギュレーションが同じ転送コンフィギュレーションを共有する。このために、転送コンフィギュレーションに対応するワードデータ２＿６，２＿７，２＿８，２＿９のコンフィギュレーションアドレス部８１の左端データ（すなわち、コンフィギュレーションアドレス選択器２６の第０入力に対応するデータ）が全て６となる。【００７８】
以上の説明で明らかなように、テスト動作は、図１７あるいは図６の遷移トリガー２２，２３を適切な時系列で与えることにより、制御される。遷移トリガー２２，２３は、例えば、図６に示したように、周辺ブロック５０＿２，５０＿１から与えられる。より詳細には、周辺ブロック５０（図１０）のデータメモリ８の出力１２＿Ｅで与えられる。このデータメモリ８のアドレスＡは、図６のテストコントローラ２００で生成される遷移トリガーアドレス２２１によって与えられる。従って、周辺ブロック５０＿２，５０＿１内のデータメモリ８に適切な順番で遷移トリガーデータを保存しておけば、テストコントローラが出力する遷移トリガーアドレスの時系列によって、適切な遷移トリガーの時系列が生成される。【００７９】
図６に示すように、テストコントローラ２００は、テストデータカウンター２１１と、テストコンフィギュレーションカウンター２１２と、比較期間カウンター２１３と、テストコントロールロジック２１０とを備える。本発明のテスト方式では、各テストコンフィギュレーションに対して、複数のテスト入力データを与える。これは、図１６のステップ５２０から５７５をテスト入力データの数だけ繰り返すことに対応する。図６のテストデータカウンター２１１はこの回数をカウントするのに使うものである。このカウンターの値に基づいて、テストデータアドレス２２０が生成される。【００８０】
また、すでに説明したように、図１６のステップ５６０では、テスト結果データと期待値との照合をＮクロックにわたって行う。期待値照合がこの期間だけ行われるようにするため、図６の周辺ブロック５２内の比較器（図１４）にこの期間だけ比較イネーブルをオンにする信号を与える。図６のテストコントローラ２００内の比較期間カウンター２１３は、この比較イネーブルオン期間をカウントするためのものである。比較期間カウンター２１３の値に基づいて比較イネーブル信号２２３は生成される。また、遷移トリガーアドレス２２１は、テストデータカウンター２１１と比較期間カウンター２１３との値に基づいて生成される。【００８１】
本発明のテスト方式では、一般に複数のテストコンフィギュレーションを使用することを想定する。これは、図１６のステップ５１５からステップ５８５をテストコンフィギュレーションの数だけ繰り返すことに対応する。図６のテストコンフィギュレーションカウンター２１２はこの回数をカウントするのに使うものである。このように、テストコントローラ２００は複数のカウンターを備えるが、それらを制御し、かつカウンターの値から出力信号２２０，２２１，２２３を生成するのが、テストコントロールロジック２１０である。【００８２】
本発明の第１の実施の形態によれば、従来に比べて大幅に少ないコンフィギュレーションデータロード回数でテストを行うことができる。これは、コンフィギュレーションメモリに一つの転送コンフィギュレーションデータと一つ以上のテストコンフィギュレーションデータを保持し、それらを適宜切り替えて使うためである。従来のテスト方式では、テストコンフィギュレーションデータと転送コンフィギュレーションデータを交互にデバイスにロードしなければならなかった。それに対し、本発明のテスト方式では、一度ロードしたコンフィギュレーションデータを繰り返し使いまわすことができ、従来のように何度もロードし直す必要がないため、非常に効率的である。【００８３】
さらに、本発明のテスト方式では、再構成可能デバイスの周辺に配置されたデータメモリにテスト入力データ、期待値データ、遷移トリガーデータを保持して使い、かつ周辺ブロックに期待値照合器を配置することで、デバイス外とのデータのやり取りを行わずに多数のテストを実行できる。一般にテストバスを介してデバイス外とのやり取りを行うことは大きな遅延を伴うため、低速でのテストしかできない。一方、本発明のテスト方式では、いったんコンフィギュレーションデータをロードしてしまえば、その後はデバイス内でのデータの動きだけでテストを遂行することができるため、テストバスの速度に律速されない高速なテストを行うことができる。これは、いわゆるＡｔ−Ｓｐｅｅｄテストを可能とし、またテスト時間の短縮にも寄与する。【００８４】
さらに、本発明の第１の実施の形態は、期待値照合を行った結果をアキュミュレートして最後にレジスタに残った結果だけを読み出せばよい方式であるので、読み出しデータ量が大幅に減り、この点でもテスト時間が短縮される。【００８５】
再構成可能デバイスは、ロジックブロックの入力選択器（図７の７Ａ，７Ｂ）やプログラマブルスイッチ（図７の５）などのスイッチが多く使用される。スイッチのテストでは、スイッチを導通状態にしたとき、入力が出力にそのまま伝播したかどうかを調べる。この場合、どのスイッチでもテスト入力データと期待値は同じである。すなわち、多数のスイッチのテストに対して、同じテスト入力データと期待値を使いまわせる。本発明のテスト方式は、そのようなテストに適している。【００８６】
従来のテスト方式では、同じテスト入力データでも外部から繰り返し入力し、かつ同じテスト結果データを繰り返し読み出さなければならない。本発明のテスト方式では、いったんテスト入力データと期待値をデータメモリに書き込んでおけば、テスト実行中に何度でもそれらを使いまわせるため、デバイス外部とのデータのやり取りを大幅に低減できる。【００８７】
以上説明したように、本発明のテスト方式によれば、従来に比べて、デバイス外とのデータのやり取りを大幅に減らし、テスト時間を短縮できる。さらに、Ａｔ−Ｓｐｅｅｄテストにも適している。【００８８】
図６、図１２では、信号が左から右へ流れる経路を例示したが、本発明はこれに限定されるものではない。例えば、図６、図１２の再構成可能デバイスにおいて、入出力ブロック３１＿ｘは図９と、周辺ブロック５１＿ｘは図１０と、周辺ブロック５３＿ｘは図１４と、それぞれ同じ構造を持つ場合、デバイスの下から上へ信号が流れるコンフィギュレーションをテストに使うことができる。なお、入出力ブロック３３＿ｘは入出力ブロック３２＿ｙと同じ構造で、例えば、図１８に示すような構造を有する。なお、図１８では、図９と同等部分は同一符号により示している。【００８９】
次に、本発明の第２の実施の形態について説明する。本発明の第２の実施の形態（図１９）では、本発明の第１の実施の形態（図６）の再構成可能デバイスに加えて、テストコントローラ２００はテストパラメータアドレス２２２を出力し、テストパラメータアドレス２２２は入出力ブロック３０＿５を介して周辺ブロック５０＿５のデータメモリをアドレッシングし、周辺ブロック５０＿５のデータメモリの出力２２４はテストコントローラ２００に入力される。【００９０】
周辺ブロック５０＿５のデータメモリには、テスト遂行時に使う種々のパラメータが保存される。例えば、一般にテスト入力データの数は、テストコンフィギュレーション毎に異なっていてもよい。周辺ブロック５０＿５のデータメモリにテストコンフィギュレーション毎のテスト入力データ数を予め保持しておき、そのデータに基づいてテストコントローラ２００の各種出力２２０，２２１，２２３を最適に生成すると、無駄なクロックサイクル数を削減できテスト時間を短縮できる。この機能がない場合、図１６のステップ５２０から５７５までの繰り返し回数を、最多テスト入力データ数にあわせなければならず、このために無駄な処理を追加する必要が生じる。【００９１】
このほか、一般に、より複雑なテスト処理を行う場合に必要となる種々のテストパラメータを周辺ブロックのデータメモリに保持し、その内容に基づいてテストコントローラの動作を決めるようにすることで、多様なテスト処理が可能となる。【００９２】
本発明の第１および第２の実施の形態において、周辺ブロック内のデータメモリは、通常動作時には再構成可能デバイス上に実現したアプリケーション回路でデータ保持に使えるものである。このデータメモリをテスト動作時にも兼用することで、テスト動作用に別途メモリを設けずに済むようにしている。【００９３】
次に、本発明の第３の実施の形態について説明する。本発明の第３の実施の形態（図２０）は、本発明の第１の実施の形態（図６）の再構成可能デバイスにおいて、テストコントローラ２００を除いたものである。テスト処理のために必要な信号２２０，２２１，２２３は、デバイス外から供給する。これにより、デバイス外から任意の信号を与えることができるため、本発明の第１と第２の実施の形態に比べて、より多様なテストを行うことができる。【００９４】
また、テストコントローラがないために、再構成可能デバイスを基板上に形成する際の、そのテストコントローラが形成される領域分だけ面積を節約することができ、各部の占有面積に対する余裕度が向上する。デバイス外から遅延の大きい経路を使って信号を入力しつつテストを遂行するために、本発明の第１と第２の実施の形態に比べて、クロック周波数は低くなる。しかし、一度読み込んだコンフィギュレーションを何度も使いまわすテスト方式である点は、本発明の第１と第２の実施の形態と同じであり、やはり従来例に比べるとコンフィギュレーションロード時間は大幅に少なくて済む。【００９５】
次に、本発明の第４の実施の形態について説明する。本発明の第４の実施の形態（図２１）は、本発明の第１の実施の形態（図６）の再構成可能デバイスにおいて、周辺ブロック５２内の比較器とテストコントローラ２００とを除き、それらの機能をロジックブロック（図２１の太枠）で実現したものである。例えば、テストコントローラは図２１のロジックブロック１＿１１，１＿１２，１＿１３，１＿１４，１＿１５で実現し、比較器はロジックブロック１＿５１，１＿５２，１＿５３，１＿５４，１＿５５で実現する。【００９６】
図６のテストコントローラ２００からの出力２２０，２２１，２２３に対応する信号は、本発明の第４の実施の形態では、プログラマブル配線を使って配布する。これによって、テスト専用の回路を予めデバイスに埋め込む必要がなくなる。テスト機能をロジックブロックで実現するために、デバイス製造後にテスト機能を変更できるという利点がある。また、テスト専用回路が必要ないので、面積の節約になる。【００９７】
なお、テストコントローラや比較器を実現するのに使用したロジックブロックのテストは別途行う。ここでは、テストコントローラと比較器の全ての機能をロジックブロックで実現する例を説明したが、それらの機能の一部のみをロジックブロックで実現し、残りを専用回路で実現するという変形例は、当該分野の技術を有するものであれば容易に考えることができる。【００９８】
また、本発明の実施の形態の説明のために、特定の構造の再構成可能デバイスを用いて説明を行ったが、本発明は説明に用いた構造に限定されるものではない。例えば、プログラマブル配線の数や構成、入力選択器の数や入力数、レジスタバイパス路の有無、テストに使用するデータメモリの配置などは、当該分野の技術を有するものであれば容易に変更できる。
【図１】
2007119300.tif 000003
【図２】
2007119300.tif 000004
【図３】
2007119300.tif 000005
【図４】
2007119300.tif 000006
【図５】
2007119300.tif 000007
【図６】
2007119300.tif 000008
【図７】
2007119300.tif 000009
【図８】
2007119300.tif 000010
【図９】
2007119300.tif 000011
【図１０】
2007119300.tif 000012
【図１１】
2007119300.tif 000013
【図１２】
2007119300.tif 000014
【図１３】
2007119300.tif 000015
【図１４】
2007119300.tif 000016
【図１５】
2007119300.tif 000017
【図１６】
2007119300.tif 000018
【図１７】
2007119300.tif 000019
【図１８】
2007119300.tif 000020
【図１９】
2007119300.tif 000021
【図２０】
2007119300.tif 000022
【図２１】
2007119300.tif 000023
【国際調査報告】
2007119300.tif 000024
2007119300.tif 000025
2007119300.tif 000026
2007119300.tif 000027