(57)【特許請求の範囲】
【請求項１】
論理ブロック間の接続を変更することにより所定の演算を実現するリコンフィギュラブル回路において、
前記論理ブロックは、
入力データに対して演算処理を実施する演算部と、
データを記憶する第１フリップフロップおよび第２フリップフロップと、
前記演算部と前記論理ブロック内の第１ノードとの間に配置され、前記演算部から前記第１ノードまでの第１データ経路を、前記第１フリップフロップを含む第１経路と前記第１フリップフロップを含まない第１スルー経路とのいずれかに設定する第１選択部と、
前記第１ノードと前記論理ブロックの出力端との間に配置され、前記第１ノードから前記論理ブロックの出力端までの第２データ経路を、前記第２フリップフロップを含む第２経路と前記第２フリップフロップを含まない第２スルー経路とのいずれかに設定する第２選択部とを備え、
前記第２選択部は、通常動作では、前記第２スルー経路を前記第２データ経路として選択し、前記第１経路が選択されるテストでは、前記第２スルー経路を前記第２データ経路として選択し、前記第１スルー経路が選択されるテストでは、前記第２経路を前記第２データ経路として選択すること
を特徴とするリコンフィギュラブル回路。
【請求項２】
前記論理ブロックは、
前記演算部の出力データを前記第１選択部を介して受け、前記演算部の出力データの各ビット値を用いて論理演算を実施し、論理演算結果を前記第２フリップフロップに出力する論理演算回路を有し、
前記第２フリップフロップは、前記演算部の出力データの各ビットで共有され、
前記第２経路は、前記論理演算回路および前記第２フリップフロップを含むこと
を特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項３】
前記論理演算回路は、前記演算部の出力データの各ビット値の論理和を演算する論理和回路であること
を特徴とする請求項２記載のリコンフィギュラブル回路。
【請求項４】
前記論理演算回路は、前記演算部の出力データの各ビット値の排他的論理和を演算する排他的論理和回路であること
を特徴とする請求項２記載のリコンフィギュラブル回路。
【請求項５】
前記第１フリップフロップ、前記第１選択部、前記第２フリップフロップおよび前記第２選択部は、前記演算部の出力データの各ビットに対応して設けられていること
を特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項６】
論理ブロック間の接続を変更することにより所定の演算を実現するリコンフィギュラブル回路において、
前記論理ブロックは、
入力データに対して所定の演算をする演算部と、
前記演算部の出力に接続された第１フリップフロップと、
前記演算部の出力と前記第１フリップフロップの出力とのいずれか一方を選択する第１選択部と、
前記第１選択部の出力に接続された第２フリップフロップと、
前記第１選択部の出力と前記第２フリップフロップの出力とのいずれか一方を選択する第２選択部とを備え、
前記リコンフィギュラブル回路のテスト時に、前記第２選択部は、前記第１選択部が前記演算部の出力を選択する場合に前記第２フリップフロップの出力を選択し、前記第１選択部が前記第１フリップフロップの出力を選択する場合に前記第１選択部の出力を選択すること
を特徴とするリコンフィギュラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギュラブル回路に関する。
【背景技術】
【０００２】
リコンフィギュラブル回路では、例えば、複数のプロセッサエレメントと、複数のプロセッサエレメント間を接続するネットワーク回路とを有している。例えば、ネットワーク回路は、複数のプロセッサエレメント間をコンフィギュレーションデータに基づいて接続する。すなわち、リコンフィギュラブル回路では、コンフィギュレーションデータを変更することにより、複数のプロセッサエレメント間の接続等を変更できる。これにより、リコンフィギュラブル回路は、任意の演算を実現する。
【０００３】
プロセッサエレメントは、例えば、演算処理を実施する演算器と、フリップフロップと、セレクタとを有している（例えば、特許文献１参照。）。例えば、セレクタは、フリップフロップを介してデータを転送する経路とフリップフロップを介さずにデータを転送する経路とのいずれかを選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２５２１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リコンフィギュラブル回路のテストでは、ループの発生を回避するために、ネットワーク回路により接続されたプロセッサエレメントの演算器間のデータ転送は、フリップフロップを介して実施される。例えば、リコンフィギュラブル回路のテストでは、セレクタは、フリップフロップを介してデータを転送する経路を選択する。すなわち、リコンフィギュラブル回路のテストでは、フリップフロップを介さずにデータを転送する経路は、選択されない。したがって、フリップフロップを介さずにデータを転送する経路は、検証されない。このため、故障検出率は低下する。
【０００６】
本発明の目的は、故障検出率を向上させることである。
【課題を解決するための手段】
【０００７】
本発明の一形態では、リコンフィギュラブル回路の論理ブロックは、入力データに対して演算処理を実施する演算部と、データを記憶する第１フリップフロップおよび第２フリップフロップと、演算部と論理ブロック内の第１ノードとの間に配置され、演算部から第１ノードまでの第１データ経路を、第１フリップフロップを含む第１経路と第１フリップフロップを含まない第１スルー経路とのいずれかに設定する第１選択部と、第１ノードと論理ブロックの出力端との間に配置され、第１ノードから論理ブロックの出力端までの第２データ経路を、第２フリップフロップを含む第２経路と第２フリップフロップを含まない第２スルー経路とのいずれかに設定する第２選択部とを有し、第２選択部は、通常動作では、第２スルー経路を第２データ経路として選択し、第１経路が選択されるテストでは、第２スルー経路を第２データ経路として選択し、第１スルー経路が選択されるテストでは、第２経路を第２データ経路として選択する。
【発明の効果】
【０００８】
故障検出率を向上できる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態におけるリコンフィギュラブル回路の例を示している。
【図２】図１に示したプロセッサエレメントの一例を示している。
【図３】図２に示したプロセッサエレメントのテスト経路の一例を示している。
【図４】比較例のプロセッサエレメントのテスト経路を示している。
【図５】図１に示したネットワーク部の要部を示している。
【図６】図１に示したリコンフィギュラブル回路のテスト経路の一例を示している。
【図７】図１に示したプロセッサエレメントの別の例を示している。
【図８】図７に示したプロセッサエレメントのテスト経路の一例を示している。
【図９】上述したプロセッサエレメントの故障検出率とレイアウト増加分の一例を示している。
【発明を実施するための形態】
【００１０】
以下、実施形態を図面を用いて説明する。
【００１１】
図１は、一実施形態におけるリコンフィギュラブル回路１０の例を示している。図１の太線は、テスト時のスキャンチェーンを示している。なお、図１では、図を見やすくするため、スキャンチェーンを形成するための制御信号等の記載を省略している。リコンフィギュラブル回路１０は、プロセッサエレメント２０（以下、ＰＥとも称する）等の論理ブロック間の接続を変更することにより任意の演算を実現する。例えば、リコンフィギュラブル回路１０は、ＰＥ２０、ネットワーク部３０、データメモリ４０、入力ポート５０および出力ポート６０を有している。
【００１２】
ＰＥ２０は、例えば、入力データに対して演算処理を実施する演算部（図２の演算部ＯＰ１０）を有している。例えば、ＰＥ２０は、コンフィギュレーションデータＣＦＩＧを受け、コンフィギュレーションデータＣＦＩＧに基づいて任意の演算回路に設定される。コンフィギュレーションデータＣＦＩＧは、例えば、コンフィギュレーションデータを記憶しているコンフィギュレーションメモリから読み出される。
【００１３】
ネットワーク部３０は、ＰＥ２０、データメモリ４０、入力ポート５０および出力ポート６０に接続されている。例えば、ネットワーク部３０は、コンフィギュレーションデータＣＦＩＧを受け、コンフィギュレーションデータＣＦＩＧに基づいてＰＥ２０間の接続を変更する。例えば、ＰＥ２０は、アレー状に配置されている。
【００１４】
データメモリ４０は、例えば、ＰＥ２０で使用されるデータ等を、ネットワーク部３０を介して記憶する。入力ポート５０は、リコンフィギュラブル回路１０の外部から受ける入力データＤＩＮを、ＰＥ２０やデータメモリ４０等にネットワーク部３０を介して供給する。出力ポート６０は、例えば、ＰＥ２０の演算結果等の出力データＤＯＵＴを、ネットワーク部３０を介して受ける。そして、出力ポート６０は、ネットワーク部３０を介して受けた出力データＤＯＵＴを、リコンフィギュラブル回路１０の外部に出力する。
【００１５】
また、ＰＥ２０およびネットワーク部３０は、テストモード信号ＴＳＴＭを受ける。例えば、リコンフィギュラブル回路１０がテストされるとき、テストモード信号ＴＳＴＭは、アサートされる。通常動作では、テストモード信号ＴＳＴＭは、ネゲートされる。
【００１６】
リコンフィギュラブル回路１０のテストでは、例えば、リコンフィギュラブル回路１０内のフリップフロップは、スキャンチェーン（図１の太線）を形成する。フリップフロップの初期値は、スキャンイン端子ＳＩＮに供給されるテストパターンにより設定される。例えば、スキャンチェーンの先頭のフリップフロップは、スキャン用のクロックに同期して、スキャンイン端子ＳＩＮで受けるデータを順次取り込んで後段のフリップフロップに出力する。
【００１７】
フリップフロップの初期値が設定された後、スキャンチェーンが解除され、リコンフィギュラブル回路１０の動作テストが実施される。動作テストの結果は、フリップフロップに取り込まれる。リコンフィギュラブル回路１０内のフリップフロップは、動作テストの結果がフリップフロップに記憶された後、スキャンチェーンを再度形成する。これにより、フリップフロップに記憶されたデータは、例えば、スキャン用のクロックに同期して、スキャンアウト端子ＳＯＵＴから順次読み出される。読み出したデータの値と期待値とを比較することにより、故障の有無が判定される。
【００１８】
図２は、図１に示したプロセッサエレメント２０の一例を示している。なお、図２では、図を見やすくするため、フリップフロップＦＦ１０、ＦＦ２０、ＦＦ３０等に供給される動作クロックやスキャン用の信号の記載を省略している。ＰＥ２０は、例えば、演算部ＯＰ１０、回路ブロックＢＫ（ＢＫ０−ＢＫ３１）、論理和回路ＯＲ１０およびフリップフロップＦＦ２０を有している。
【００１９】
例えば、演算部ＯＰ１０は、データＤＡＴＡａ、ＤＡＴＡｂに対して演算処理を実施する。演算部ＯＰ１０の出力データのバス幅は、例えば、３２ビットである。なお、演算部ＯＰ１０の出力データのバス幅は、３２ビットに限定されない。また、演算部ＯＰ１０の入力データは、２つ（データＤＡＴＡａ、ＤＡＴＡｂ）に限定されない。
【００２０】
回路ブロックＢＫ０−ＢＫ３１は、例えば、演算部ＯＰ１０の出力データ（演算結果）の各ビットに対応して設けられる。例えば、回路ブロックＢＫ０は、演算部ＯＰ１０の出力データ（図２では、３２ビットのデータ）の最下位ビットのデータをＰＥ２０の外部に転送する。また、例えば、回路ブロックＢＫ３１は、演算部ＯＰ１０の出力データの最上位ビットのデータをＰＥ２０の外部に転送する。例えば、通常動作では、回路ブロックＢＫ０から出力されるデータＤＡＴＡｏ０は、演算部ＯＰ１０の出力データの最下位ビットのデータであり、回路ブロックＢＫ３１から出力されるデータＤＡＴＡｏ３１は、演算部ＯＰ１０の出力データの最上位ビットのデータである。
【００２１】
各回路ブロックＢＫは、フリップフロップＦＦ１０、ＦＦ３０、選択部ＳＥＬ１０、ＳＥＬ２０および論理積回路ＡＮＤ１０を有している。回路ブロックＢＫ０−ＢＫ３１の構成は、互いに同じである。このため、回路ブロックＢＫ０について説明する。フリップフロップＦＦ１０は、演算部ＯＰ１０の出力データ（演算結果）の最下位ビットのデータをデータ入力端子Ｄで受け、受けたデータを一時的に記憶する。そして、フリップフロップＦＦ１０は、記憶したデータを、出力端子Ｑから選択部ＳＥＬ１０の入力端子ＩＮ０に動作クロックに同期して出力する。
【００２２】
選択部ＳＥＬ１０は、演算部ＯＰ１０の出力データ（演算結果）の最下位ビットのデータを入力端子ＩＮ１で受ける。また、選択部ＳＥＬ１０は、選択信号を選択端子Ｓで受ける。例えば、選択部ＳＥＬ１０は、選択端子Ｓで受けた選択信号が“０”のとき、入力端子ＩＮ０で受けたデータを出力端子ＯＵＴから出力する。また、例えば、選択部ＳＥＬ１０は、選択端子Ｓで受けた選択信号が“１”のとき、入力端子ＩＮ１で受けたデータを出力端子ＯＵＴから出力する。
【００２３】
選択部ＳＥＬ１０の出力端子ＯＵＴは、例えば、ノードＮ１に接続されている。すなわち、選択部ＳＥＬ１０は、演算部ＯＰ１０とノードＮ１との間に配置される。そして、選択部ＳＥＬ１０は、演算部ＯＰ１０からノードＮ１までのデータ経路を、フリップフロップＦＦ１０を含む経路とフリップフロップＦＦ１０を含まない経路とのいずれかに、選択端子Ｓで受けた選択信号に基づいて設定する。このように、選択部ＳＥＬ１０は、フリップフロップＦＦ１０を含む経路を介して演算部ＯＰ１０から受けたデータとフリップフロップＦＦ１０を含まない経路を介して演算部ＯＰ１０から受けたデータのいずれかを出力する。
【００２４】
選択部ＳＥＬ１０の出力端子ＯＵＴ（ノードＮ１）は、例えば、選択部ＳＥＬ２０の入力端子ＩＮ０および論理和回路ＯＲの入力端子に接続されている。したがって、選択部ＳＥＬ２０は、選択部ＳＥＬ１０の出力データを入力端子ＩＮ０で受ける。また、選択部ＳＥＬ２０は、フリップフロップＦＦ２０の出力端子Ｑから出力されるデータを入力端子ＩＮ１で受ける。
【００２５】
さらに、選択部ＳＥＬ２０は、選択信号を選択端子Ｓで受ける。例えば、選択部ＳＥＬ２０は、選択端子Ｓで受けた選択信号が“０”のとき、入力端子ＩＮ０で受けたデータを出力端子ＯＵＴからＰＥ２０の外部に出力する。また、例えば、選択部ＳＥＬ２０は、選択端子Ｓで受けた選択信号が“１”のとき、入力端子ＩＮ１で受けたデータを出力端子ＯＵＴからＰＥ２０の外部に出力する。すなわち、選択部ＳＥＬ２０は、ノードＮ１とＰＥ２０の出力端との間に配置される。そして、選択部ＳＥＬ２０は、ノードＮ１からＰＥ２０の出力端までのデータ経路を、選択端子Ｓで受けた選択信号に基づいて設定する。
【００２６】
フリップフロップＦＦ３０は、コンフィギュレーションデータＣＦＩＧをデータ入力端子Ｄで受け、受けたデータＣＦＩＧを一時的に記憶する。そして、フリップフロップＦＦ３０は、記憶したデータＣＦＩＧを、出力端子Ｑから選択部ＳＥＬ１０の選択端子Ｓおよび論理積回路ＡＮＤ１０の入力端子に動作クロックに同期して出力する。すなわち、フリップフロップＦＦ３０が受けるコンフィギュレーションデータＣＦＩＧは、選択部ＳＥＬ１０の選択信号に対応している。
【００２７】
論理積回路ＡＮＤ１０は、選択部ＳＥＬ２０を制御する制御部として機能する。例えば、論理積回路ＡＮＤ１０は、テストモード信号ＴＳＴＭおよびフリップフロップＦＦ３０の出力データを受ける。そして、論理積回路ＡＮＤ１０は、テストモード信号ＴＳＴＭとフリップフロップＦＦ３０の出力データとの論理積結果を、選択部ＳＥＬ２０の選択端子Ｓに出力する。
【００２８】
すなわち、選択部ＳＥＬ２０の選択信号は、論理積回路ＡＮＤ１０により生成される。例えば、テストモード信号ＴＳＴＭが“１”のとき、選択部ＳＥＬ２０の選択信号（論理積回路ＡＮＤ１０の出力）は、選択部ＳＥＬ１０の選択信号と同じになる。また、例えば、テストモード信号ＴＳＴＭが“０”のとき、選択部ＳＥＬ２０の選択信号は、選択部ＳＥＬ１０の選択信号の値に拘わらず、“０”である。
【００２９】
したがって、通常動作（例えば、テストモード信号ＴＳＴＭが“０”のとき）では、論理積回路ＡＮＤ１０および選択部ＳＥＬ２０は、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路に、フリップフロップＦＦ２０が含まれないように動作する。すなわち、通常動作では、選択部ＳＥＬ２０は、選択部ＳＥＬ１０から受けたデータを出力する。したがって、通常動作では、フリップフロップＦＦ２０によるデータ遅延は、発生しない。
【００３０】
また、リコンフィギュラブル回路１０のテスト（例えば、テストモード信号ＴＳＴＭが“１”のとき）では、論理積回路ＡＮＤ１０および選択部ＳＥＬ２０は、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路に、フリップフロップＦＦ１０、ＦＦ２０の一方が含まれるように動作する。例えば、選択部ＳＥＬ２０は、フリップフロップＦＦ１０を含む経路のテストでは、選択部ＳＥＬ１０から受けたデータを出力し、フリップフロップＦＦ１０を含まない経路のテストでは、フリップフロップＦＦ２０から受けたデータを出力する。
【００３１】
なお、選択部ＳＥＬ２０を制御する制御部は、論理積回路ＡＮＤ１０に限定されない。例えば、ＰＥ２０は、論理積回路ＡＮＤ１０の代わりに、否定論理積回路を有してもよい。このときには、例えば、選択部ＳＥＬ２０は、フリップフロップＦＦ２０の出力端子Ｑから出力されるデータを入力端子ＩＮ０で受け、選択部ＳＥＬ１０の出力データを入力端子ＩＮ１で受ける。
【００３２】
論理和回路ＯＲ１０は、各回路ブロックＢＫ０−ＢＫ３１の選択部ＳＥＬ１０から出力されるデータを受ける。そして、論理和回路ＯＲ１０は、各回路ブロックＢＫ０−ＢＫ３１の選択部ＳＥＬ１０から出力されるデータ（例えば、３２ビットの各値）の論理和を演算し、論理和結果をフリップフロップＦＦ２０のデータ入力端子Ｄに出力する。すなわち、論理和回路ＯＲ１０は、演算部ＯＰ１０の出力データを、選択部ＳＥＬ１０を介して受ける。そして、論理和回路ＯＲ１０は、演算部ＯＰ１０の出力データの各ビット値を用いて論理演算を実施し、論理演算結果をフリップフロップＦＦ２０に出力する。
【００３３】
フリップフロップＦＦ２０は、論理和回路ＯＲ１０から受けたデータ（論理和結果）を一時的に記憶する。そして、フリップフロップＦＦ２０は、記憶したデータを、出力端子Ｑから各回路ブロックＢＫ０−ＢＫ３１の選択部ＳＥＬ２０の入力端子ＩＮ１に動作クロックに同期して出力する。すなわち、フリップフロップＦＦ２０は、回路ブロックＢＫ０−ＢＫ３１で共有されている。回路ブロックＢＫ０−ＢＫ３１が演算部ＯＰ１０の出力データの各ビットに対応して設けられているため、フリップフロップＦＦ２０は、演算部ＯＰ１０の出力データの各ビットで共有される。
【００３４】
図３は、図２に示したプロセッサエレメント２０のテスト経路の一例を示している。破線の経路ＰＴＨ１０および一点鎖線の経路ＰＴＨ１１は、演算部ＯＰ１０からノードＮ１までのデータ経路を示している。例えば、経路ＰＴＨ１０は、フリップフロップＦＦ１０を含むデータ経路を示し、経路ＰＴＨ１１は、フリップフロップＦＦ１０を含まないデータ経路を示している。また、破線の経路ＰＴＨ２０および一点鎖線の経路ＰＴＨ２１は、ノードＮ１からＰＥ２０の出力端までのデータ経路を示している。例えば、経路ＰＴＨ２０は、フリップフロップＦＦ２０を含まないデータ経路を示し、経路ＰＴＨ２１は、フリップフロップＦＦ２０を含むデータ経路を示している。以下、フリップフロップＦＦ１０、ＦＦ２０を含まない経路ＰＴＨ１１、ＰＴＨ２０をスルー経路ＰＴＨ１１、ＰＴＨ２０とも称する。
【００３５】
ＰＥ２０内のテスト経路は、フリップフロップＦＦ３０に設定される値とテストモード信号ＴＳＴＭの値とにより設定される。例えば、ＰＥ２０内の故障を検出するためのテストでは、テストモード信号ＴＳＴＭは、“１”に設定される。また、フリップフロップＦＦ１０、ＦＦ２０、ＦＦ３０の値は、図１に示したスキャンイン端子ＳＩＮに供給されるテストパターンにより設定される。そして、フリップフロップＦＦ１０、ＦＦ２０、ＦＦ３０に値が設定された後、スキャンチェーンは解除される。これにより、ＰＥ２０内のデータ経路等が設定される。
【００３６】
例えば、フリップフロップＦＦ３０に“０”を設定するテストパターンでは、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路として、破線の経路ＰＴＨ１０、ＰＴＨ２０が選択される。また、例えば、フリップフロップＦＦ３０に“１”を設定するテストパターンでは、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路として、一点鎖線の経路ＰＴＨ１１、ＰＴＨ２１が選択される。
【００３７】
このように、選択部ＳＥＬ２０は、経路ＰＴＨ１０が選択されるテストでは、ノードＮ１からＰＥ２０の出力端までのデータ経路として、スルー経路ＰＴＨ２０を選択する。また、選択部ＳＥＬ２０は、スルー経路ＰＴＨ１１が選択されるテストでは、ノードＮ１からＰＥ２０の出力端までのデータ経路として、経路ＰＴＨ２１を選択する。
【００３８】
すなわち、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路には、フリップフロップＦＦ１０、ＦＦ２０の一方が含まれる。これにより、演算部ＯＰ１０の出力データ（動作テストの結果）は、フリップフロップＦＦ１０、ＦＦ２０のいずれかに取り込まれ、後段のＰＥ２０の演算部ＯＰ１０には転送されない。したがって、この実施形態では、リコンフィギュラブル回路１０の動作テストを実施したときに、ループが発生することを防止できる。
【００３９】
フリップフロップＦＦ１０、ＦＦ２０に設定された値の一方は、例えば、後段のＰＥ２０の演算部ＯＰ１０にネットワーク部３０を介して転送される。例えば、経路ＰＴＨ１０が選択されるテストでは、選択部ＳＥＬ２０は、選択部ＳＥＬ１０から受けたデータ（フリップフロップＦＦ１０に設定された値）を出力する。また、スルー経路ＰＴＨ１１が選択されるテストでは、選択部ＳＥＬ２０は、フリップフロップＦＦ２０から受けたデータ（フリップフロップＦＦ２０に設定された値）を出力する。なお、演算部ＯＰ１０の出力データは、フリップフロップＦＦ１０、ＦＦ２０の一方に記憶される。
【００４０】
例えば、経路ＰＴＨ１０が選択されるテストでは、フリップフロップＦＦ１０に設定された値が後段のＰＥ２０に転送された後、演算部ＯＰ１０の出力データがフリップフロップＦＦ１０に記憶される。また、例えば、スルー経路ＰＴＨ１１が選択されるテストでは、フリップフロップＦＦ２０に設定された値が後段のＰＥ２０に転送された後、演算部ＯＰ１０の出力データ（より詳細には、演算部ＯＰ１０の出力データの各ビット値の論理和結果）がフリップフロップＦＦ２０に記憶される。このように、この実施形態では、スルー経路ＰＴＨ１１を含むデータ経路をテストするときにも、ループが発生することを防止できる。
【００４１】
演算部ＯＰ１０の出力データ（動作テストの結果）がフリップフロップＦＦ１０、ＦＦ２０の一方に記憶された後、スキャンチェーンは再度形成される。そして、フリップフロップＦＦ１０、ＦＦ２０、ＦＦ３０に記憶されているデータは、例えば、スキャン用のクロックに同期して、図１に示したスキャンアウト端子ＳＯＵＴから順次読み出される。この実施形態では、読み出したデータの値と期待値とを比較することにより、ＰＥ２０内に故障が存在するか否かを判定できる。
【００４２】
この実施形態では、スルー経路ＰＴＨ１１を含むデータ経路をテストできるため、故障検出率を向上できる。例えば、この実施形態では、経路ＰＴＨ１０が選択されるテストパターンと、スルー経路ＰＴＨ１１が選択されるテストパターンとの両方を実施することにより、故障検出率を向上できる。なお、スルー経路ＰＴＨ１１が選択されるテストでは、例えば、論理和回路ＯＲ１０の３２入力の１つのみを“１”にするテストパターン（３２パターン）と論理和回路ＯＲ１０の３２入力の全てを“０”にするテストパターンとが使用される。
【００４３】
ここで、例えば、ＰＥ２０内の信号線の論理レベルが“０”か“１”に固定される故障がＰＥ２０内に１箇所のみ存在すると仮定した故障モデルでは、故障は、セルの入力端子および出力端子に定義される。図３の例では、故障は、フリップフロップＦＦの２端子（端子Ｄ、Ｑ）、選択部ＳＥＬの４端子（端子ＩＮ０、ＩＮ１、ＯＵＴ、Ｓ）、論理積回路ＡＮＤ１０の３端子（２入力、１出力）および論理和回路ＯＲ１０の３３端子（３２入力、１出力）に、定義される。
【００４４】
フリップフロップＦＦは、ＰＥ２０内に６５個（２×３２＋１）配置され、選択部ＳＥＬは、ＰＥ２０内に６４個（２×３２）配置されている。また、論理積回路ＡＮＤ１０は、ＰＥ２０内に３２個（１×３２）配置され、論理和回路ＯＲ１０は、ＰＥ２０内に１個配置されている。したがって、ＰＥ２０内のセルの端子数は、５１５個（２×６５＋４×６４＋３×３２＋３３×１）である。各端子に“０”固定および“１”固定の故障が定義されるため、定義される故障数は、端子数の２倍である。したがって、図３の例では、定義される故障数は、１０３０個である。
【００４５】
リコンフィギュラブル回路１０のテストでは、テストモード信号ＴＳＴＭが“１”に固定される。すなわち、この実施形態では、論理積回路ＡＮＤ１０の入力端子の一方に“０”のテストモード信号ＴＳＴＭを供給することで検証される３２個（１×３２）の故障は、検出されない。例えば、論理積回路ＡＮＤ１０では、テストモード信号ＴＳＴＭを受ける入力端子の“１”固定の故障は、検出されない。その他の故障（９９８個の故障）は、検出可能である。したがって、この実施形態では、故障検出率は、０．９７（＝９９８／１０３０）である。
【００４６】
なお、ＰＥ２０の構成は、この例に限定されない。例えば、演算部ＯＰ１０の出力データを各回路ブロックＢＫ０−ＢＫ３１の選択部ＳＥＬ１０を介して受け、演算部ＯＰ１０の出力データの各ビット値を用いて論理演算を実施し、論理演算結果をフリップフロップＦＦ２０に出力する論理演算回路は、論理和回路ＯＲ１０でなくてもよい。例えば、ＰＥ２０は、論理和回路ＯＲ１０の代わりに、演算部ＯＰ１０の出力データの各ビット値の排他的論理和を演算する排他的論理和回路を有してもよい。
【００４７】
論理和回路ＯＲ１０の代わりに排他的論理和回路が形成されたＰＥ２０では、テストパターンの数を、論理和回路ＯＲ１０を使用するときに比べて少なくできる。例えば、スルー経路ＰＴＨ１１が選択されるテストでは排他的論理和回路の３２入力の全てを“１”にするテストパターンと、排他的論理和回路の３２入力の全てを“０”にするテストパターンと、排他的論理和回路の３２入力の少なくとも１つを他と異なる論理レベルにするテストパターンとが使用される。
【００４８】
あるいは、ＰＥ２０は、論理和回路ＯＲ１０の代わりに、否定論理和回路を有してもよい。また、ＰＥ２０は、論理和回路ＯＲ１０の代わりに、論理積回路を有してもよいし、否定論理積回路を有してもよい。論理和回路ＯＲ１０、否定論理和回路、論理積回路および否定論理積回路は、排他的論理和回路に比べて回路規模を小さくできる。したがって、例えば、論理和回路ＯＲ１０でフリップフロップＦＦ２０の入力データを生成するＰＥ２０では、排他的論理和回路でフリップフロップＦＦ２０の入力データを生成するＰＥ２０に比べて、レイアウト面積を小さくできる。
【００４９】
図４は、比較例のプロセッサエレメント２０ＥＸのテスト経路を示している。図４の二点鎖線は、ＰＥ２０ＥＸのテストで検証されない信号線を示している。比較例のＰＥ２０ＥＸでは、図２に示したＰＥ２０から論理和回路ＯＲ１０およびフリップフロップＦＦ２０が省かれている。そして、ＰＥ２０ＥＸは、回路ブロックＢＫの代わりに回路ブロックＢＫＥＸ（ＢＫＥＸ０−ＢＫＥＸ３１）を有している。ＰＥ２０ＥＸのその他の構成は、ＰＥ２０と同じである。
【００５０】
回路ブロックＢＫＥＸでは、図２に示した回路ブロックＢＫから選択部ＳＥＬ２０が省かれている。そして、回路ブロックＢＫＥＸは、論理積回路ＡＮＤ１０の代わりに、論理積回路ＡＮＤ２０を有している。論理積回路ＡＮＤ２０の出力は、選択部ＳＥＬ１０の選択端子Ｓに接続されている。回路ブロックＢＫＥＸのその他の構成は、回路ブロックＢＫと同じである。なお、選択部ＳＥＬ２０が省かれているため、選択部ＳＥＬ１０の出力データは、ＰＥ２０ＥＸの出力データＤＡＴＡｏである。
【００５１】
論理積回路ＡＮＤ２０は、テストモード信号ＴＳＴＭおよびフリップフロップＦＦ３０の出力データを受ける。論理積回路ＡＮＤ２０は、テストモード信号ＴＳＴＭとフリップフロップＦＦ３０の出力データとの論理積結果を、選択部ＳＥＬ１０の選択端子Ｓに出力する。なお、論理積回路ＡＮＤ２０は、テストモード信号ＴＳＴＭを負論理で処理する。例えば、論理積回路ＡＮＤ２０の出力は、テストモード信号ＴＳＴＭが“１”のとき、フリップフロップＦＦ３０の出力値に拘わらず、“０”である。
【００５２】
回路ブロックＢＫＥＸ内では、フリップフロップＦＦ１０の２端子（端子Ｄ、Ｑ）、フリップフロップＦＦ３０の２端子（端子Ｄ、Ｑ）、選択部ＳＥＬ１０の４端子（端子ＩＮ０、ＩＮ１、ＯＵＴ、Ｓ）および論理積回路ＡＮＤ２０の３端子（２入力、１出力）に、故障が定義される。したがって、ＰＥ２０ＥＸでは、３５２個（１１×３２）の端子に“０”固定および“１”固定の故障が定義される。すなわち、ＰＥ２０ＥＸでは、定義される故障数は、７０４個である。
【００５３】
比較例のリコンフィギュラブル回路のテストでは、ループの発生を回避するために、演算部ＯＰ１０からＰＥ２０ＥＸの出力端までのデータ経路に、フリップフロップＦＦ１０を含める。したがって、選択部ＳＥＬ１０の選択端子Ｓは、“０”に固定される。このため、選択部ＳＥＬ１０では、選択端子Ｓの“０”固定の故障および入力端子ＩＮ１の故障（“０”固定および“１”固定）は、検出されない。
【００５４】
また、論理積回路ＡＮＤ２０では、出力端子の“０”固定の故障、フリップフロップＦＦ３０の出力データを受ける入力端子の故障（“０”固定および“１”固定）およびテストモード信号ＴＳＴＭを受ける入力端子の“１”固定の故障は、検出されない。したがって、ＰＥ２０ＥＸでは、２２４個（３×３２＋４×３２）の故障は、検出されない。その他の故障（４８０個の故障）は、検出可能である。したがって、比較例のリコンフィギュラブル回路のテストでは、故障検出率は、０．６８（＝４８０／７０４）である。このように、比較例のＰＥ２０ＥＸの故障検出率は、図２に示したＰＥ２０の故障検出率に比べて低下する。すなわち、図２に示したＰＥ２０では、故障検出率を向上できる。
【００５５】
図５は、図１に示したネットワーク部３０の要部を示している。なお、図５では、図を見やすくするために、図２に示した演算部ＯＰ１０のデータが伝送される信号線を示し、その他の信号線（コンフィギュレーションデータＣＦＩＧやテストモード信号ＴＳＴＭ等）の記載を省略している。
【００５６】
ネットワーク部３０は、各ＰＥ２０の入力データ（例えば、図２に示したデータＤＡＴＡａ、ＤＡＴＡｂ）を選択するためのデータ選択部ＤＳＥＬ（ＤＳＥＬｌ１０ａ−ＤＥＳＬ１５ａ、ＤＥＳＬ１０ｂ−ＤＥＳＬ１５ｂ）を有している。例えば、データ選択部ＤＳＥＬは、全てのＰＥ２０の出力データ（図２に示したデータＤＡＴＡｏ）および図１に示した入力ポート５０等からのデータを受ける。なお、図５では、図１に示した入力ポート５０等からのデータが伝送される信号線の記載を省略している。
【００５７】
そして、データ選択部ＤＳＥＬは、対応するＰＥ２０に出力するデータを、ＰＥ２０から受けたデータから選択する。例えば、通常動作では、各データ選択部ＤＳＥＬから出力されるデータは、コンフィギュレーションデータＣＦＩＧに基づいて選択される。また、リコンフィギュラブル回路１０のテストでは、各データ選択部ＤＳＥＬから出力されるデータは、テストモード信号ＴＳＴＭ等に基づいて選択される。
【００５８】
なお、ネットワーク部３０の構成は、この例に限定されない。例えば、データ選択部ＤＳＥＬは、任意のＰＥ２０の出力データを受けてもよい。例えば、データ選択部ＤＳＥＬは、出力先のＰＥ２０を除く全てのＰＥ２０の出力データを受けてもよい。
【００５９】
図６は、図１に示したリコンフィギュラブル回路１０のテスト経路の一例を示している。図６の太線は、データ選択部ＤＳＥＬ１０ｂ、ＤＥＳＬ１５ｂにより選択されたテスト経路を示している。例えば、図６の左上に示したＰＥ２０は、右下に示したＰＥ２０の出力データＤＡＴＡｏを、入力データＤＡＴＡｂとして、データ選択部ＤＳＥＬ１０ｂを介して受ける。そして、図６の右下に示したＰＥ２０は、左上に示したＰＥ２０の出力データＤＡＴＡｏを、入力データＤＡＴＡｂとして、データ選択部ＤＳＥＬ１５ｂを介して受ける。
【００６０】
ここで、例えば、図６の太線で示したテスト経路にフリップフロップが存在しないときには、ループが発生する。例えば、図４に示した比較例のＰＥ２０ＥＸのテストでは、フリップフロップＦＦ１０を含まない経路（図４の演算部ＯＰ１０、選択部ＳＥＬ１０間の二点鎖線で示した信号線）が選択されたとき、ループが発生する。このため、図４に示した比較例のＰＥ２０ＥＸのテストでは、フリップフロップＦＦ１０を含まない経路は、選択されない。
【００６１】
なお、この実施形態では、図３で説明したように、ＰＥ２０内のテスト経路に、フリップフロップＦＦ１０、ＦＦ２０の一方が含まれる。このため、この実施形態では、図６の太線で示したテスト経路が形成されたときにも、ループが発生することを防止できる。例えば、この実施形態では、フリップフロップＦＦ１０を含まない経路ＰＴＨ１１が選択されたときには、ＰＥ２０内のテスト経路にフリップフロップＦＦ２０が含まれる。したがって、この実施形態のリコンフィギュラブル回路１０のテストでは、フリップフロップＦＦ１０を含まない経路ＰＴＨ１１が選択されたときにも、ループが発生することを防止できる。
【００６２】
図７は、図１に示したプロセッサエレメント２０の別の例を示している。図１−図６で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。図７に示したＰＥ２０では、図２に示したＰＥ２０から論理和回路ＯＲ１０およびフリップフロップＦＦ２０が省かれている。そして、図７に示したＰＥ２０は、回路ブロックＢＫの代わりに回路ブロックＢＫＡ（ＢＫＡ０−ＢＫＡ３１）を有している。図７に示したＰＥ２０のその他の構成は、図２に示したＰＥ２０と同じである。また、回路ブロックＢＫＡの構成は、フリップフロップＦＦ２１が追加されていることを除いて、図２に示した回路ブロックＢＫと同じである。
【００６３】
例えば、回路ブロックＢＫＡ０−ＢＫＡ３１は、演算部ＯＰ１０の出力データ（演算結果）の各ビットに対応して設けられる。各回路ブロックＢＫＡは、フリップフロップＦＦ１０、ＦＦ２１、ＦＦ３０、選択部ＳＥＬ１０、ＳＥＬ２０および論理積回路ＡＮＤ１０を有している。例えば、フリップフロップＦＦ２１は、選択部ＳＥＬの出力端子ＯＵＴから出力されるデータをデータ入力端子Ｄで受け、受けたデータを一時的に記憶する。そして、フリップフロップＦＦ２１は、記憶したデータを、出力端子Ｑから選択部ＳＥＬ２０の入力端子ＩＮ１に動作クロックに同期して出力する。
【００６４】
図８は、図７に示したプロセッサエレメント２０のテスト経路の一例を示している。破線の経路ＰＴＨ１０および一点鎖線の経路ＰＴＨ１１は、演算部ＯＰ１０からノードＮ１までのデータ経路を示している。例えば、経路ＰＴＨ１０は、フリップフロップＦＦ１０を含むデータ経路を示し、スルー経路ＰＴＨ１１は、フリップフロップＦＦ１０を含まないデータ経路を示している。また、破線の経路ＰＴＨ２０および一点鎖線の経路ＰＴＨ２１’は、ノードＮ１からＰＥ２０の出力端までのデータ経路を示している。例えば、スルー経路ＰＴＨ２０は、フリップフロップＦＦ２１を含まないデータ経路を示し、経路ＰＴＨ２１’は、フリップフロップＦＦ２１を含むデータ経路を示している。
【００６５】
ＰＥ２０内の故障を検出するためのテストでは、テストモード信号ＴＳＴＭは、“１”に設定される。また、フリップフロップＦＦ１０、ＦＦ２１、ＦＦ３０の値は、図１に示したスキャンイン端子ＳＩＮに供給されるテストパターンにより設定される。そして、フリップフロップＦＦ１０、ＦＦ２１、ＦＦ３０に値が設定された後、スキャンチェーンは解除される。これにより、ＰＥ２０内のデータ経路等が設定される。
【００６６】
例えば、フリップフロップＦＦ３０に“０”を設定するテストパターンでは、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路として、破線の経路ＰＴＨ１０、ＰＴＨ２０が選択される。また、例えば、フリップフロップＦＦ３０に“１”を設定するテストパターンでは、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路として、一点鎖線の経路ＰＴＨ１１、ＰＴＨ２１’が選択される。
【００６７】
このように、選択部ＳＥＬ２０は、経路ＰＴＨ１０が選択されるテストでは、ノードＮ１からＰＥ２０の出力端までのデータ経路として、スルー経路ＰＴＨ２０を選択する。また、選択部ＳＥＬ２０は、スルー経路ＰＴＨ１１が選択されるテストでは、ノードＮ１からＰＥ２０の出力端までのデータ経路として、経路ＰＴＨ２１’を選択する。
【００６８】
すなわち、演算部ＯＰ１０からＰＥ２０の出力端までのデータ経路には、フリップフロップＦＦ１０、ＦＦ２１の一方が含まれる。これにより、演算部ＯＰ１０の出力データ（動作テストの結果）は、フリップフロップＦＦ１０、ＦＦ２１のいずれかに取り込まれ、後段のＰＥ２０の演算部ＯＰ１０には転送されない。したがって、このＰＥ２０を含むリコンフィギュラブル回路１０においても、テストを実施したときに、ループが発生することを防止できる。
【００６９】
フリップフロップＦＦ１０、ＦＦ２１に設定された値の一方は、例えば、後段のＰＥ２０の演算部ＯＰ１０にネットワーク部３０を介して転送される。例えば、経路ＰＴＨ１０が選択されるテストでは、選択部ＳＥＬ２０は、選択部ＳＥＬ１０から受けたデータ（フリップフロップＦＦ１０に設定された値）を出力する。また、スルー経路ＰＴＨ１１が選択されるテストでは、選択部ＳＥＬ２０は、フリップフロップＦＦ２１から受けたデータ（フリップフロップＦＦ２１に設定された値）を出力する。なお、演算部ＯＰ１０の出力データは、フリップフロップＦＦ１０、ＦＦ２１の一方に記憶される。
【００７０】
例えば、経路ＰＴＨ１０が選択されるテストでは、フリップフロップＦＦ１０に設定された値が後段のＰＥ２０に転送された後、演算部ＯＰ１０の出力データがフリップフロップＦＦ１０に記憶される。また、例えば、スルー経路ＰＴＨ１１が選択されるテストでは、フリップフロップＦＦ２１に設定された値が後段のＰＥ２０に転送された後、演算部ＯＰ１０の出力データがフリップフロップＦＦ２１に記憶される。このように、図７に示したＰＥ２０においても、スルー経路ＰＴＨ１１を含むデータ経路をテストするときに、ループが発生することを防止できる。
【００７１】
演算部ＯＰ１０の出力データ（動作テストの結果）がフリップフロップＦＦ１０、ＦＦ２１の一方に記憶された後、スキャンチェーンは再度形成される。そして、フリップフロップＦＦ１０、ＦＦ２１、ＦＦ３０に記憶されているデータは、例えば、スキャン用のクロックに同期して、図１に示したスキャンアウト端子ＳＯＵＴから順次読み出される。読み出したデータの値と期待値とを比較することにより、ＰＥ２０内に故障が存在するか否かが判定される。
【００７２】
このように、図７に示したＰＥ２０においても、スルー経路ＰＴＨ１１を含むデータ経路をテストできるため、故障検出率を向上できる。例えば、経路ＰＴＨ１０が選択されるテストパターンと、スルー経路ＰＴＨ１１が選択されるテストパターンとの両方を実施することにより、故障検出率は向上する。なお、図７に示したＰＥ２０では、フリップフロップＦＦ２１が演算部ＯＰ１０の出力データの各ビットに対応して設けられるため、図２に示したＰＥ２０に比べて、テストパターンの数を少なくできる。例えば、図７に示したＰＥ２０では、演算部ＯＰ１０の出力データの各ビット値の論理演算を実施する論理演算回路を使用していない。このため、図７に示したＰＥ２０のテストでは、論理演算回路（例えば、図２に示した論理和回路ＯＲ１０）の３２入力の１つのみを“１”にするようなテストパターンは、不要である。
【００７３】
ここで、図８の例では、故障は、フリップフロップＦＦの２端子（端子Ｄ、Ｑ）、選択部ＳＥＬの４端子（端子ＩＮ０、ＩＮ１、ＯＵＴ、Ｓ）および論理積回路ＡＮＤ１０の３端子（２入力、１出力）に、定義される。フリップフロップＦＦは、ＰＥ２０内に９６個（３×３２）配置され、選択部ＳＥＬは、ＰＥ２０内に６４個（２×３２）配置されている。また、論理積回路ＡＮＤ１０は、ＰＥ２０内に３２個（１×３２）配置されている。したがって、ＰＥ２０内のセルの端子数は、５４４個（２×９６＋４×６４＋３×３２）である。各端子に“０”固定および“１”固定の故障が定義されるため、定義される故障数は、１０８８個である。
【００７４】
リコンフィギュラブル回路１０のテストでは、テストモード信号ＴＳＴＭが“１”に固定される。すなわち、論理積回路ＡＮＤ１０の入力端子の一方に“０”のテストモード信号ＴＳＴＭを供給することで検証される３２個（１×３２）の故障は、検出されない。例えば、論理積回路ＡＮＤ１０では、テストモード信号ＴＳＴＭを受ける入力端子の“１”固定の故障は、検出されない。その他の故障（１０５６個の故障）は、検出可能である。したがって、故障検出率は、０．９７（＝１０５６／１０８８）である。このように、図７に示したＰＥ２０においても、図４に示した比較例のＰＥ２０ＥＸに比べて、故障検出率を向上できる。
【００７５】
図９は、上述したプロセッサエレメント２０の故障検出率とレイアウト増加分の一例を示している。レイアウト増加分は、図４に示した比較例のＰＥ２０ＥＸを基準にしたときの各ＰＥ２０のレイアウト増加分を、フリップフロップＦＦの個数に換算して示している。例えば、３２入力の論理和回路ＯＲ１０のレイアウト面積は、フリップフロップＦＦのレイアウト面積の約２倍である。また、選択部ＳＥＬ２０のレイアウト面積は、フリップフロップＦＦのレイアウト面積の約０．３６倍である。
【００７６】
図２に示したＰＥ２０のレイアウト増加分は、論理和回路ＯＲ１０、フリップフロップＦＦ２０および３２個の選択部ＳＥＬ２０のレイアウト面積に対応している。したがって、図２に示したＰＥ２０のレイアウト増加分は、約１５個（２×１＋１＋０．３６×３２）のフリップフロップＦＦのレイアウト面積に相当する。なお、図２に示したＰＥ２０の故障検出率は、９７％であり、比較例のＰＥ２０ＥＸの故障検出率（６８％）に比べて向上している。
【００７７】
図７に示したＰＥ２０のレイアウト増加分は、３２個のフリップフロップＦＦ２１および３２個の選択部ＳＥＬ２０のレイアウト面積に対応している。したがって、図７に示したＰＥ２０のレイアウト増加分は、約４４個（３２＋０．３６×３２）のフリップフロップＦＦのレイアウト面積に相当する。すなわち、図７に示したＰＥ２０のレイアウト増加分は、図２に示したＰＥ２０のレイアウト増加分の約３倍である。なお、図７に示したＰＥ２０の故障検出率は、９７％であり、比較例のＰＥ２０ＥＸの故障検出率（６８％）に比べて向上している。
【００７８】
このように、この実施形態（図２に示したＰＥ２０および図７に示したＰＥ２０）では、比較例のＰＥ２０ＥＸに比べて、故障検出率を向上できる。なお、図２に示したＰＥ２０では、図７に示したＰＥ２０に比べて、レイアウト面積の増加を低減できる。また、図７に示したＰＥ２０では、図８で説明したように、テストパターンの数を図２に示したＰＥ２０に比べて低減できる。
【００７９】
以上、この実施形態では、ＰＥ２０は、入力データに対して演算処理を実施する演算部ＯＰ１０と、２つのフリップフロップＦＦ（図２ではフリップフロップＦＦ１０、ＦＦ２０、図７ではフリップフロップＦＦ１０、ＦＦ２１）と、選択部ＳＥＬ１０、ＳＥＬ２０とを有している。フリップフロップＦＦ１０は、例えば、演算部ＯＰ１０の出力データを一時的に記憶する。フリップフロップＦＦ２０は、例えば、演算部ＯＰ１０の出力データの各ビット値の論理演算結果を一時的に記憶する。フリップフロップＦＦ２１は、例えば、選択部ＳＥＬ１０の出力データを一時的に記憶する。
【００８０】
選択部ＳＥＬ１０は、演算部ＯＰ１０からノードＮ１までのデータ経路を、フリップフロップＦＦ１０を含む経路ＰＴＨ１０とフリップフロップを含まないスルー経路ＰＴＨ１１とのいずれかに設定する。また、選択部ＳＥＬ２０は、選択部ＳＥＬ１０の出力端子ＯＵＴ（ノードＮ１）からＰＥ２０の出力端までのデータ経路を設定する。
【００８１】
例えば、図２に示した選択部ＳＥＬ２０は、通常動作では、フリップフロップＦＦ２０を含まないスルー経路ＰＴＨ２０を選択する。そして、選択部ＳＥＬ２０は、経路ＰＴＨ１０が選択されるテストでは、スルー経路ＰＴＨ２０を選択し、スルー経路ＰＴＨ１１が選択されるテストでは、フリップフロップＦＦ２０を含む経路ＰＴＨ２１を選択する。
【００８２】
また、例えば、図７に示した選択部ＳＥＬ２０は、通常動作では、フリップフロップＦＦ２１を含まないスルー経路ＰＴＨ２０を選択する。そして、選択部ＳＥＬ２０は、経路ＰＴＨ１０が選択されるテストでは、スルー経路ＰＴＨ２０を選択し、スルー経路ＰＴＨ１１が選択されるテストでは、フリップフロップＦＦ２１を含む経路ＰＴＨ２１’を選択する。
【００８３】
このように、選択部ＳＥＬ２０は、ＰＥ２０内のテスト経路に、フリップフロップＦＦが含まれるように、選択部ＳＥＬ１０の出力端子ＯＵＴ（ノードＮ１）からＰＥ２０の出力端までのデータ経路を設定する。これにより、この実施形態では、スルー経路ＰＴＨ１１を含むデータ経路をテストできる。この結果、この実施形態では、故障検出率を向上できる。
【００８４】
なお、上述した実施形態では、論理ブロックがプロセッサエレメント２０で形成される例について述べたが、論理ブロックの構成は、プロセッサエレメント２０に限定されない。例えば、ＰＥ２０に相当する論理ブロックは、ＦＰＧＡ（Field Programmable Gate Array）の論理ブロックでもよい。このときには、演算部ＯＰ１０は、ＦＰＧＡのＬＵＴ（Look Up Table）に対応する。このときにも、上述した実施形態と同様の効果を得ることができる。
【００８５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【００８６】
１０‥リコンフィギュラブル回路；２０、２０ＥＸ‥プロセッサエレメント；３０‥ネットワーク部；４０‥データメモリ；５０‥入力ポート；６０‥出力ポート；ＡＮＤ１０、ＡＮＤ２０‥論理積回路；ＢＫ０−ＢＫ３１、ＢＫＡ０−ＢＫＡ３１、ＢＫＥＸ０−ＢＫＥＸ３１‥回路ブロック；ＤＳＥＬ１０ａ−ＤＳＥＬ１５ａ、ＤＳＥＬ１０ｂ−ＤＳＥＬ１５ｂ‥データ選択部；ＦＦ１０、ＦＦ２０、ＦＦ２１、ＦＦ３０‥フリップフロップ；ＯＰ１０‥演算部；ＯＲ１０‥論理和回路；ＳＥＬ１０、ＳＥＬ２０‥選択部
【図１】
0005794178.tif 000002
【図２】
0005794178.tif 000003
【図３】
0005794178.tif 000004
【図４】
0005794178.tif 000005
【図５】
0005794178.tif 000006
【図６】
0005794178.tif 000007
【図７】
0005794178.tif 000008
【図８】
0005794178.tif 000009
【図９】
0005794178.tif 000010