(リコンフィグ可能な集積回路装置の概略)
図1は,本実施の形態におけるリコンフィグ可能な集積回路装置の概略構成図である。リコンフィグ可能(再構築可能)な集積回路装置R_LSIは,複数のプロセッサエレメントPEと,それらの入出力間を接続するプロセッサエレメント間ネットワークNWとを有するリコンフィグレーションアレイR_ARRAYと,プロセッサエレメントPEにデータを入力し,また,PEからデータを出力する入出力ポート10とを有する。
複数のプロセッサエレメントPEは,加算器,乗算器,比較器などの機能を有するALUや,遅延回路,カウンタ,セレクタなどの複数種類のプロセッサエレメントである。プロセッサエレメントPEは,コンフィグレーションデータに基づいて任意の状態に構築される。また,プロセッサエレメント間ネットワークNWは,コンフィグレーションデータに基づいて任意の接続状態に構築される。したがって,リコンフィグレーションアレイR_ARRAYは,コンフィグレーションデータに基づいて,プロセッサエレメントの構成とプロセッサエレメント間のネットワークの構成とを任意の回路構成に構築し,さらに,他の回路構成に再構築することができる。
図1中のリコンフィグレーションアレイR_ARRAY内には,ALU機能を有するプロセッサエレメントPE,乗算器MPYの機能を有するプロセッサエレメントPE,メモリRAMの機能を有するプロセッサエレメントPE,レジスタファイルRegFileの機能を有するプロセッサエレメントPEなどが含まれる。メモリプロセッサエレメントは,例えばテーブルデータなどを格納する。
リコンフィグ可能な集積回路装置R_LSIは,さらに,複数種類のコンフィグレーションデータを格納するコンフィグレーションデータメモリ(CFGRAM)14と,そのメモリ14から所定のコンフィグレーションデータを読み出してリコンフィグレーションアレイR_ARRAYに設定するリコンフィグ用の制御回路12とを有する。以下,リコンフィグ用の制御回路12を制御回路12と適宜記す。
制御回路12は,例えばメモリへのデータ読み出しとコンフィグレーションデータの設定を指示する命令コードを有するレジスタ群であり,割込信号や状態信号などのイベントに応答して,対応する命令コードを実行する。命令コードを実行することで,コンフィグレーションデータメモリ14から対応するコンフィグレーションデータを読み出し,リコンフィグレーションアレイR_ARRAYに設定する。
リコンフィグ可能な集積回路装置R_LSIは,フラッシュメモリなどの外部のメモリ(Flash Memory)1に格納されているコンフィグレーションデータを含む情報を読み出し,デコーダ(Decorder)18を介して,制御回路12と,コンフィグレーションデータメモリ14と,プロセッサエレメントのうちレジスタファイルRegFile及びメモリRAMのいずれかに振り分けて格納する。
ここでは,ハードウエア記述言語の1つであるRTL言語により論理設計されたファイルが論理合成され,その論理合成により生成されたコンフィグレーションデータを含む情報RDが,チップ外部のメモリ1に格納される。そして,リコンフィグ可能な集積回路装置R_LSIでは,例えば電源投入時に,内蔵するローダ16が,その情報RDを外部メモリ1から読み出し,リコンフィグレーションアレイR_ARRAYまたはコンフィグレーションデータメモリ14にロードする。この初期ロード後に,ローダ(Loader Flash I/F)16が,制御回路12にレディー信号を出力すると,制御回路12は,所定の命令コードを実行し,コンフィグレーションデータによりリコンフィグレーションアレイR_ARRAYを所定の回路構成(所定の処理回路とも言う)に構築する。初期設定が終了すると,リコンフィグレーションアレイ内に構築された処理回路は,入出力ポート10からの入力データを処理し,処理済みの出力データを入出力ポート10から出力する。
テスト装置2は,リコンフィグ可能な集積回路装置R_LSIの構成要素,例えばプロセッサエレメントPEやネットワークNWのテストを実行する。ATPG2aは,リコンフィグ可能な集積回路装置R_LSIのテストを実行するために必要となるテストパターンや,テストパターンに対する出力期待値を生成するツールである。さらに,ATPG2aは,このテスト全般を制御する。
テスト制御部19は,例えば,リコンフィグ可能な集積回路装置R_LSI内に設けられ,前記したテストを制御する回路である。なお,テスト制御部19をリコンフィグ可能な集積回路装置R_LSI外に設けてもよい。
(プロセッサエレメントPEの配置例)
図2は,本実施の形態におけるプロセッサエレメントPE間の接続を説明する図である。図2に示すように,複数のプロセッサエレメントPEが図1中のリコンフィグレーションアレイR_ARRAY内にアレイ状に配置される。なお,図2におけるプロセッサエレメントPEにおいて,図面上側が入力側で,図面下側が出力側である。
プロセッサエレメントPE1_1の外部セレクタSEL1_1a,SEL1_1bの入力端子には,プロセッサエレメントPE1_1に隣接するプロセッサエレメントPE0_0,PE0_1,PE0_2,PE1_0,PE1_2,P2_0,PE2_1,PE2_2の出力信号線が接続される。なお,これら外部セレクタは,ネットワークセレクタとも言う。
プロセッサエレメントPE1_1の入力端子(図示しない)にはセレクタSEL1_1aの出力信号線とセレクタSEL1_1bの出力信号線とが接続され,出力端子(図示しない)には出力信号線が接続される。この出力信号線は,他の隣接プロセッサエレメントに設けられた外部セレクタの入力端子に接続される。以上の構成により,外部セレクタSEL1_1a,SEL1_1bは,隣接プロセッサエレメントPE0_0などの出力をコンフィグレーションデータCDに基づいて選択し,プロセッサエレメントPE1_1の入力端子に供給する。
なお,プロセッサエレメントPE1_2も,それに隣接する8つのプロセッサエレメントの出力のうちいずれかをコンフィグレーションデータCDに基づいて選択してプロセッサエレメントPE1_2の入力端子に供給する外部セレクタSEL1_2a,SEL1_2bを有する。プロセッサエレメントPE2_1も,隣接するプロセッサエレメントの出力のうちいずれかをコンフィグレーションデータCDに基づいて選択してプロセッサエレメントPE2_1の入力端子に供給する外部セレクタSEL2_1a,SEL2_1bを有する。プロセッサエレメントPE1_1,PE1_2,PE2_1以外の他のプロセッサエレメントPEを同様に2つの外部セレクタを有するが,図示を省略している。
以上説明したように,図1に示したリコンフィグ可能な集積回路装置R_LSIは,リコンフィグ用の制御回路12により任意の回路構成に動的に構築される,アレイ状に配置された複数のプロセッサエレメントを有する。
(プロセッサエレメントの構成)
図3は,図2に示したプロセッサエレメントPEの回路図の一例である。プロセッサエレメントPE50は,図2に示したプロセッサエレメントPEに該当する。なお,図3におけるプロセッサエレメントPE50において,図面左側が入力側で,図面右側が出力側である。
プロセッサエレメントPE50の入力端子INa,INbには,外部セレクタSELoa,SELobがそれぞれ設けられている。外部セレクタSELoa,SELobには,図2で説明したように,プロセッサエレメントPE50に隣接する8つのプロセッサエレメントPE(図示しない)の出力信号線が接続する。さらに,外部セレクタSELoa,SELobには,それぞれ,制御回路12からのコンフィグレーションデータCDを供給する信号線CDc,CDdが接続する。この信号線CDc,CDdは,テスト制御部19にも接続し,テスト時において,テスト制御部19からの信号値を外部セレクタSELoa,SELobに供給する。
プロセッサエレメントPE50の出力信号線OUTは,図2で説明したように,プロセッサエレメントPE50に隣接するプロセッサエレメントPEの外部セレクタに接続する。
プロセッサエレメントPE50は,入力端子INaからの入力値と,入力端子INbからの入力値とに所定の演算処理を実行する演算器OPと,演算器OPの後段に設けられ,演算器OPの出力値を一時的に保持し出力する記憶素子であるフリップフロップ回路FFとを有する。フリップフロップ回路FFは,レジスタとも呼ばれる。
出力段に設けられたフリップフロップ回路FFは,例えば,集積回路装置R_LSIがパイプライン・並列処理に適した回路構造で大量の演算処理やデータ処理を実行するために設けられたリタイミング用のフリップフロップ回路である。
プロセッサエレメントPE50は,このようなリタイミング用のフリップフロップ回路を介して信号値を他のプロセッサエレメントPEに出力する。そのため,信号値が入力されてからこの信号値が出力されるまでに1サイクル以上の時間がかかり,このようなプロセッサエレメントを配線(ネットワーク)として使用する(配線として機能させる)と遅延が生じる。すなわち,このようなプロセッサエレメントPEを配線として使用すると,プロセッサエレメントPEを信号値が通過する度に1サイクル以上のレイテンシが生じる。
そこで,プロセッサエレメントPE50を配線として使用する際に,レイテンシが生じないようにするため,プロセッサエレメントPE50に第1の内部セレクタSELia,第2の内部セレクタSELibを設ける。そして,演算器OPを迂回(スルーとも言う)するため,入力端子INaと内部セレクタSELiaの入力端子とを接続する配線L1を設ける。さらに,フリップフロップ回路FFをバイパスするため,内部セレクタSELiaの出力端子と内部セレクタSELibの入力端子とを接続する配線L2とを設ける。内部セレクタSELia,内部セレクタSELibには,それぞれ制御回路12からのコンフィグレーションデータCDを供給する信号線CDa,CDbが接続する。この信号線CDa,CDbは,テスト制御部19にも接続し,テスト時において,テスト制御部19からの信号値を内部セレクタSELia,内部セレクタSELibに供給する。
プロセッサエレメントPE50の第1の内部セレクタSELiaは,プロセッサエレメントPE50の入力端子INaからの信号値と,演算器OPからの信号値とのいずれかを信号線CDaから供給されるコンフィグレーションデータCD(信号値)に基づいて選択し,フリップフロップ回路FF,内部セレクタSELibに供給する。
内部セレクタSELiaは,信号線CDaから供給された信号値がHレベル(論理1)の場合,入力端子INa(配線L1)からの信号値を選択する。この場合,配線L1が活性化するとも言う。なお,前記した信号値は,制御回路12からのコンフィグレーションデータCDや,テスト制御部19からの信号値である。一方,内部セレクタSELiaは,信号線CDaから供給された信号値がLレベル(論理0)の場合,演算器OPからの信号値を選択する。なお,フリップフロップ回路FFは,内部セレクタSELiaの出力値を保持する。
第2の内部セレクタSELibは,フリップフロップ回路FFの出力と内部セレクタSELiaの出力のいずれかをコンフィグレーションデータCD(信号値)に基づいて選択しプロセッサエレメントPE50の出力信号線OUTを介して他のプロセッサエレメントPEに出力する。
内部セレクタSELibは,信号線CDbから供給された信号値がHレベル(論理1)の場合,配線L2からの信号値を選択する。この場合,配線L2が活性化するとも言う。一方,内部セレクタSELibは,信号線CDbから供給された信号値がLレベル(論理0)の場合,フリップフロップ回路FFからの信号値を選択する。
この構成により,入力端子INaからの信号値は配線L1により演算器OPを迂回(スルー)して内部セレクタSELiaに入力する。そして,この入力端子INaからの信号値は配線L2によりフリップフロップ回路FFを迂回して内部セレクタSELibに入力する。また,演算器OPからの信号値は配線L2によりフリップフロップ回路FFを迂回して内部セレクタSELibに入力する。
この構成により,プロセッサエレメントPE50を配線として使用する場合,入力端子INaからの信号値は,内部セレクタSELia,SELibのみを通過してプロセッサエレメントPE50を通過できるので,出力遅延を減らすことができる。
(集積回路装置のテスト)
さて,図1〜図3に基づき説明した集積回路装置R_LSIに対して,例えば出荷前のテストを実行する場合を想定する。集積回路装置R_LSIのテスト制御部19(図1参照)は,例えばテスト装置2からの指示に基づき,プロセッサエレメントPEの構成とプロセッサエレメントPE間のネットワーク(信号線)の構成とを所定の回路構成に構築する。
また,テスト装置2は,集積回路装置R_LSI内に設けられたフリップフロップ回路をシリアル接続してスキャン用のフリップフロップ回路として機能させる。次いで,テスト装置2は,このフリップフロップ回路を介してテストパターンを集積回路装置R_LSIのプロセッサエレメントPEに入力し,このプロセッサエレメントPE内の演算器(論理回路)に論理演算を実行させ,出力論理を得る。テスト装置2は,このテストパターンに対するプロセッサエレメントPEの出力期待値とこのテストパターンに対してプロセッサエレメントPEが実際に出力した出力論理とを比較することにより,集積回路装置R_LSI内の故障検出を行う。
ところで,リコンフィグ可能な集積回路装置R_LSIでは所望の回路構成を構築するために,プロセッサエレメントPE間を接続するネットワークの構成やプロセッサエレメントPE内において演算器OPやフリップフロップ回路FFをスルーするか否かを集積回路装置R_LSIの製造後に制御することが可能である。
しかしながら,集積回路装置R_LSIの出荷テストでは集積回路装置R_LSIの製造後に制御されるネットワーク構成やプロセッサエレメントPE内において演算器OPやフリップフロップ回路FFをスルーするか否かを事前に確認することは不可能である。
従って,集積回路装置R_LSIの出荷テストでは,プロセッサエレメントPE間を接続するネットワークやプロセッサエレメントPE内の構成について網羅的にテストする必要がある。換言すれば,あらゆるプロセッサエレメントPEの回路構成を構築し,この構築した回路構成に対してテストする必要がある。このときに,ループが発生する組み合わせ回路が構築されることがある。
図4は,ループが発生する組み合わせ回路を説明する回路図である。プロセッサエレメントPE51は,プロセッサエレメントPE50と同じ構成を有する。ここで,図面の構成上,プロセッサエレメントPE50,PE51の外部セレクタについては図示を省略している。以後の説明において,信号線がプロセッサエレメントPEの入力端子INa,INbに直接接続する構成を示しているが,これは前記省略した外部セレクタを介して接続している構成を模式的に示している。
図4に示したプロセッサエレメントPEのテストを行う場合,テスト制御部19は,以下に説明する回路構成を構築する。例えば,テスト制御部19は,プロセッサエレメントPE50の入力端子INaに,他のプロセッサエレメントPE58の出力信号線OUTを接続する。プロセッサエレメントPE50の入力端子INbに,プロセッサエレメントPE51の出力信号線OUTを接続する。
そして,テスト制御部19は,プロセッサエレメントPE51の入力端子INaに,プロセッサエレメントPE50の出力信号線OUTを接続する。さらに,プロセッサエレメントPE51の入力端子INbに,他のプロセッサエレメントPE59の出力信号線を接続する。
同時に,テスト制御部19は,プロセッサエレメントPE50,PE51の内部セレクタSELia,SELibには,Hレベルの信号値を入力する。その結果,配線L1が活性化せず,演算器OPについてはスルーしない。そして,配線L2が活性化し,フリップフロップ回路FFについてはスルーする。以下,配線が活性化している状態を点線丸印(○)で示し,配線が活性化していない状態を点線ばつ印(×)で示す。図4では,配線L1にばつ印を付して,配線L2には丸印を付している。
ここで,プロセッサエレメントPE50,PE51の演算器OPがAND回路であると想定する。このとき,プロセッサエレメントPE59がLレベルの信号値をプロセッサエレメントPE51の入力端子INbに出力する。すると,プロセッサエレメントPE51の演算器OPはAND回路であるので,プロセッサエレメントPE51は,Lレベルの信号値をプロセッサエレメントPE50の入力端子INbに出力する。すると,プロセッサエレメントPE50の演算器OPはAND回路であるので,プロセッサエレメントPE50は,Lレベルの信号値をプロセッサエレメントPE51の入力端子INaに出力する。
このように,一度,Lレベルの信号値がプロセッサエレメントPE50,PE51に入力されると,図4の回路構成においては,常に,Lレベルの信号値がプロセッサエレメントPE間をループし,この信号値がHレベルに変化することが無くなる。そのため,信号値のレベルが変化せず固定化し,有効なテストが実行できなくなる。何故なら,テスト時には,Hレベル,Lレベルの様々な信号値を演算器OPなどに入力して,プロセッサエレメントPEのテストを実行しなければならないからである。このように,同一レベルの信号値がプロセッサエレメントPE間をループする回路構成をループ回路と記す。
このように,ループ回路が構成されると,ATPGは,テストパターン作成時において,有効なテストを実行できないと判定し,かかるループ回路に対しては,例えば,テストを実行しない(テストパターンを生成しない)旨の警告表示を行う。その結果,かかるループ回路についてはテストが実行されない。かかるループ回路が,集積回路装置R_LSI内の随所に多数構成されると,未テストのプロセッサエレメントPEの数が多くなり,テストの品質が著しく低下する。
そこで,このループを切断するために,テスト実行時に,テスト制御部19が,プロセッサエレメントPE内の内部セレクタSELibに常にLレベルの信号値を出力するように回路を構成する手法がある。その結果,フリップフロップ回路FFの出力が内部セレクタSELibに入力される。
この回路構成において,前記したように,スキャン用のフリップフロップ回路として機能するフリップフロップ回路FFに,テスト制御部19からテストパターンが入力される。すると,このフリップフロップ回路FFは,内部セレクタSELibを介して後段のプロセッサエレメントPEにテストパターンを出力する。
その結果,このスキャン用のフリップフロップ回路として機能しているフリップフロップ回路FFにHレベルのテスト値が入力され,他のプロセッサエレメントPE58,PE59からHレベルの信号値が入力されると,プロセッサエレメントPE50,PE51は,Hレベルの信号値を出力する。すなわち,図4の回路構成において,同一レベルの信号値がループすることがなくなる(ループが切断されるとも言う)。そのため,図4の回路構成のプロセッサエレメントPEのテストが可能になる。
しかし,かかる手法によれば,フリップフロップ回路FFをスルーする配線L2の故障検出を実行することができない。また,後述するように,プロセッサエレメントPEにおける遅延故障や,リコンフィグ用の制御回路12の縮退故障を検出することができない。そのため,テスト精度が低下する。
(本実施の形態のプロセッサエレメント)
図5は,図4で説明したテスト時の問題を解決するため,図3で説明したプロセッサエレメントPE50に内部セレクタ制御回路TCNTi60,第1の外部セレクタ制御回路TCNToa70,第2の外部セレクタ制御回路TCNTob80を追加した構成を示す回路図である。
まず,内部セレクタ制御回路TCNTi60について説明する。内部セレクタ制御回路TCNTi60は,一端が信号線CDaに接続し,他端が信号線TSa1に接続するOR回路Oaと,一端がOR回路Oaの出力信号線に接続し,一端が反転素子を介して信号線TSa0に接続するAND回路Abとを有する。AND回路Abの出力信号線TSa3は内部セレクタSELiaに接続する。信号線CDaは,制御回路12,テスト制御部19に接続する。信号線TSa0,TSa1は,テスト制御部19に接続する。さらに,内部セレクタ制御回路TCNTi60は,一端が信号線CDbに接続し,他端が信号線TSb1に接続するOR回路Ocと,一端がOR回路Ocの出力信号線に接続し,一端が反転素子を介して信号線TSb0に接続するAND回路Adとを有する。AND回路Adの出力信号線TSb3は内部セレクタSELibに接続する。信号線CDbは,制御回路12,テスト制御部19に接続する。信号線TSb0,TSb1は,テスト制御部19に接続する。
テスト制御部19は,テスト時に,信号線TSa0,TSa1,TSb0,TSb1にテスト用の信号値を出力する。テスト制御部19は,通常動作時には,信号線TSa0,TSa1,TSb0,TSb1にLレベルの信号値を出力する。リコンフィグ用の制御回路12は,通常動作時に,コンフィグレーションデータCDを信号線CDa,CDbに出力する。
次に,第1の外部セレクタ制御回路TCNToa70について説明する。外部セレクタ制御回路TCNToa70は,外部セレクタSELoaのテスト制御を行うための回路である。外部セレクタ制御回路TCNToa70の信号線CDcは,制御回路12,テスト制御部19に接続し,信号線TSc0は,テスト制御部19に接続する。外部セレクタ制御回路TCNToa70の出力信号線TSc1は外部セレクタSELoaに接続する。
テスト制御部19は,テスト時に,外部セレクタSELoaに接続する8本の信号線の中から何れか1本の信号線の選択を指示するテスト用の信号値を外部セレクタ制御回路TCNToa70に入力する。外部セレクタ制御回路TCNToa70は,この信号値を外部セレクタSELoaに入力する。外部セレクタSELoaは,この信号値の入力に応答して,8本の信号線の中から何れか1本の信号線を選択する。
制御回路12は,通常動作時に,外部セレクタSELoaに接続する8本の信号線の中から何れか1本の信号線の選択を指示するコンフィグレーションデータCD(信号値)を外部セレクタ制御回路TCNToa70に入力する。外部セレクタ制御回路TCNToa70は,このコンフィグレーションデータCDを外部セレクタSELoaに入力する。外部セレクタSELoaは,このコンフィグレーションデータCDの入力に応答して,8本の信号線の中から何れか1本の信号線を選択する。
最後に,第2の外部セレクタ制御回路TCNTob80について説明する。外部セレクタ制御回路TCNTob80は,外部セレクタSELobのテスト制御を行うための回路である。外部セレクタ制御回路TCNTob80の信号線CDdは,制御回路12,テスト制御部19に接続し,信号線TSd0は,テスト制御部19に接続する。外部セレクタ制御回路TCNTob80の出力信号線TSd1は外部セレクタSELobに接続する。
テスト制御部19は,テスト時に,外部セレクタSELobに接続する8本の信号線の中から何れか1本の信号線の選択を指示するテスト用の信号値を外部セレクタ制御回路TCNTob80に入力する。外部セレクタ制御回路TCNTob80は,この信号値を外部セレクタSELobに入力する。外部セレクタSELobは,この信号値の入力に応答して,8本の信号線の中から何れか1本の信号線を選択する。
制御回路12は,通常動作時に,外部セレクタSELobに接続する8本の信号線の中から何れか1本の信号線の選択を指示するコンフィグレーションデータCD(信号値)を外部セレクタ制御回路TCNTob80に入力する。外部セレクタ制御回路TCNTob80は,このコンフィグレーションデータCDを外部セレクタSELobに入力する。外部セレクタSELobは,このコンフィグレーションデータCDの入力に応答して,8本の信号線の中から何れか1本の信号線を選択する。
以上説明したように,リコンフィグ可能な集積回路装置R_LSIにおいて,複数のプロセッサエレメントの各々は,入力端子INa,INbからの信号値に基づき演算処理を行う演算器OPと,演算器OPの後段に設けられたフリップフロップ回路FFと,内部セレクタと,内部セレクタを制御する内部セレクタ制御回路TCNTiとを有する。この内部セレクタは,演算器OPの後段に設けられ,入力端子INaからの信号値または演算器OPからの信号値を選択する第1の内部セレクタSELiaと,フリップフロップ回路FFの後段に設けられ,フリップフロップ回路FFからの信号値または第1の内部セレクタSELiaからの信号値を選択し,外部に出力する第2の内部セレクタSELibである。
さらに,複数のプロセッサエレメントの各々は,隣接する複数のプロセッサエレメントからの信号値を選択し第1,第2の入力端子INa,INbに入力する第1,第2の外部セレクタSELoa,SELobと,第1の外部セレクタSELoaを制御する第1の外部セレクタ制御回路TCNToaと,第2の外部セレクタSELobを制御する第2の外部セレクタ制御回路TCNTob80とを有する。
(プロセッサエレメントの接続構成)
図6は,セレクタ制御回路を有するプロセッサエレメントPEが3つ連続して接続している構成の回路図である。換言すれば,相互に隣接するプロセッサエレメントPE50,PE51,PE52が,連続して接続している構成を示している。図6において,プロセッサエレメントPE50,PE51,PE52の外部セレクタSELoa,SELobや,外部セレクタSELoa,SELobの外部セレクタ制御回路TCNToa70,TCNTob80(図5参照)については,図面の構成上省略している。
テスト制御部19は,テスト時に,第NのプロセッサエレメントPEの外部セレクタSELoaの外部セレクタ制御回路TCNToa70(図5参照)に信号値を出力して,第NのプロセッサエレメントPEの入力端子INaと,前段のプロセッサエレメントPEの出力信号線とが接続するように外部セレクタSELoaを制御する。そして,テスト制御部19は,第NのプロセッサエレメントPEの外部セレクタSELobの外部セレクタ制御回路TCNTob80(図5参照)に信号値を出力して,第NのプロセッサエレメントPEの入力端子INbと,後段のプロセッサエレメントPEの出力信号線とが接続するように外部セレクタSELobを制御する。
その結果,図6に示すように,プロセッサエレメントPE間が接続される。前記したプロセッサエレメントPE間の接続構成をプロセッサエレメントPEの直線的接続構成と呼ぶ。
具体的には,プロセッサエレメントPE50の入力端子INbは,後段のプロセッサエレメントPE51の出力信号線OUTと接続する。プロセッサエレメントPE50の入力端子INaは,前段のプロセッサエレメントPE(図示しない)の出力信号線OUTと接続する。
プロセッサエレメントPE51の入力端子INbは,後段のプロセッサエレメントPE52の出力信号線OUTと接続する。プロセッサエレメントPE51の入力端子INaは,前段のプロセッサエレメントPE50の出力信号線OUTと接続する。
プロセッサエレメントPE52の入力端子INbは,後段のプロセッサエレメントPE(図示しない)の出力信号線OUTと接続する。プロセッサエレメントPE52の入力端子INaは,前段のプロセッサエレメントPE51の出力信号線OUTと接続する。
テスト制御部19は,図6に示したように,内部セレクタ制御回路TCNTi61において,信号線TSa0,TSb0にLレベルの信号値を出力し,さらに,信号線TSa1,TSb1にHレベルの信号値を出力する。すると,出力信号線TSa3,TSb3は,Hレベルの信号値を内部セレクタSELia,SELibに出力する。その結果,配線L1,配線L2が活性化され,演算器OP,フリップフロップ回路FFがスルーされる。
テスト制御部19は,図6に示したように,内部セレクタ制御回路TCNTi60,TCNTi62において,信号線TSa0,TSb0にHレベルの信号値を入力する。すると,出力信号線TSa3,TSb3は,Lレベルの信号値を内部セレクタSELia,SELibに出力する。その結果,演算器OP,フリップフロップ回路FFがスルーされない。すなわち,配線L1,配線L2が活性化しない。
テスト制御部19は,テスト時に,図5で説明したようにプロセッサエレメントPEの回路構成を構築する(直線的接続構成)。この回路構成において,プロセッサエレメントPE間の信号値は,点線矢印に方向に順次伝搬する。
この回路構成によれば,スルーされないフリップフロップ回路FFが必ず存在する。そのため,テスト時に,このスルーされないフリップフロップ回路FFをスキャン用のフリップフロップ回路FFとして機能させれば,このスキャン用のフリップフロップ回路FFにテストパターンTP(テスト値)が順次入力される。その結果,図4で説明したループ回路が構成されることがない。
図7,図8は,図2で説明したプロセッサエレメントPEの配置例において,図5で説明したように,直線的にプロセッサエレメントPEを接続した構成を例示した第1,第2の回路図である。図7,図8において,黒丸印(●)が付されているプロセッサエレメントPEは,演算器OP,フリップフロップ回路FFをスルーする回路構成のプロセッサエレメントPEである。一方,図7,図8において,ばつ印(×)が付されているプロセッサエレメントPEは,演算器OP,フリップフロップ回路FFをスルーしない回路構成のプロセッサエレメントPEである。
図7においては,第1の列方向のプロセッサエレメントPEを演算器OP,フリップフロップ回路FFをスルーする回路構成のプロセッサエレメントPE(丸印参照)とし,この第1の列方向のプロセッサエレメントの水平方向に隣接する第2の列方向のプロセッサエレメントPE(ばつ印参照)を演算器OP,フリップフロップ回路FFをスルーしない回路構成のプロセッサエレメントPEとしている。
更に,図6で説明したように,行方向において,あるプロセッサエレメントPEからの信号値を水平方向に隣接する2つのプロセッサエレメントの1つの入力端子に入力している。換言すれば,点線矢印で示す行方向(図面左から右の水平方向)に,プロセッサエレメントPEを直線的に接続している。
図8においては,第1の行方向のプロセッサエレメントPEを演算器OP,フリップフロップ回路FFをスルーする回路構成のプロセッサエレメントPE(丸印参照)とし,この第1の行方向のプロセッサエレメントの垂直方向に隣接する第2の行方向のプロセッサエレメントPEを演算器OP,フリップフロップ回路FFをスルーしない回路構成のプロセッサエレメントPE(ばつ印参照)としている。
更に,図6で説明したように,列方向において,あるプロセッサエレメントからの信号値を垂直方向に隣接する2つのプロセッサエレメントの1つの入力端子に入力している。換言すれば,点線矢印で示す列方向(図面上から下の垂直方向)に,プロセッサエレメントPEを直線的に接続している。
以上説明したように,相互に接続され,隣接する第1,第2のプロセッサエレメントPEにおいて,第1のプロセッサエレメントPEの内部セレクタ制御回路TCNTiは,テスト時に,第1のプロセッサエレメントPEを,入力された信号値を演算器OPおよびフリップフロップ回路FFを迂回(スルー)して外部に出力させる第1の回路構成とする。
そして,第2のプロセッサエレメントPEの内部セレクタ制御回路TCNTiは,テスト時に,第2のプロセッサエレメントPEを,入力された信号値を演算器OPに入力させ,さらに,演算器OPの出力をフリップフロップ回路FFに入力させる第2の回路構成とする。
さらに,第1のプロセッサエレメントPEの第1の外部セレクタ制御回路TCNToa70(図5参照)は,テスト時に,第2のプロセッサエレメントPEの出力が入力されるように,第1の外部セレクタSELoa(図5参照)を制御する。第1のプロセッサエレメントの第2の外部セレクタ制御回路TCNTobは,テスト時に,他の第2のプロセッサエレメントPEの出力が入力されるように,第2の外部セレクタSELobを制御する。
同時に,第2のプロセッサエレメントPEの第1の外部セレクタ制御回路TCNToaは,テスト時に,第1のプロセッサエレメントPEの出力が入力されるように,第1の外部セレクタSELoaを制御する。第2のプロセッサエレメントPEの第2の外部セレクタ制御回路TCNTobは,テスト時に,他の第1のプロセッサエレメントPEの出力が入力されるように,第2の外部セレクタSELobを制御する。
テスト制御部19は,例えば,図6,図7,図8で説明したようにプロセッサエレメントPEの回路構成を構築したあと,このプロセッサエレメントPEの回路構成でスキャンテストを実行する。
(スキャンテストの実行)
設計者は,予め,テスト制御部19の回路構成や,内部セレクタ制御回路TCNTi,第1の外部セレクタ制御回路TCNToa,第2の外部セレクタ制御回路TCNTobの回路構成を把握しており,これらが想定通り動作するように,ATPG2aに回路構成情報(実行条件とも言う)を設定する。ATPG2aは,この実行条件を満たすように,テストパターンTPを生成する。生成されたテストパターンTPは,テスト装置2のメモリ(図示しない)に書き込まれる。
テスト装置2は,テストパターンTPのテスト値を集積回路装置R_LSIに入力し,集積回路装置R_LSIからの出力論理とテストパターンTPの出力期待値と比較する。ATPG2aにより作成された前記実行条件に応じた(考慮した)テストパターンTPに従って,集積回路装置R_LSIにテスト値を入力すれば,テスト制御部19,前記したセレクタ制御回路は,故障がない場合には,想定通りに動作する。
図9は,スキャンテストの流れを説明するフロー図である。
ステップS1:設計者は,複数のプロセッサエレメントPE毎の内部セレクタ制御回路TCNTi,第1,第2の外部セレクタ制御回路TCNToa,TCNTobにテスト制御部19により入力(設定)するテスト用の信号値を決定する。すなわち,設計者は,プロセッサエレメントPEの回路構成情報を決定する。この回路構成情報は,テスト制御部19が,各プロセッサエレメントPEの内部セレクタ制御回路TCNTi,第1,第2の外部セレクタ制御回路TCNToa,TCNTobに出力する信号値の情報である。換言すれば,この回路構成情報は,各プロセッサエレメントPEの外部セレクタSELoa,SELob,内部セレクタSELia,SELib(図5)の信号線選択状態(ネットワーク構成とも言う)である。次いで,設計者は,ATPG2aに,前記決定したテスト用の信号値を設定する。
ステップS2:ATPG2aは,この設定された信号値に基づき,この信号値に対応するテストパターンTPを生成するための,ATPG2a内におけるプロセッサエレメントPEの回路構成を決定する。ATGP2aが決定するこの回路構成は,前記した回路構成情報に相当する。
ステップS3:ATPG2aは,ATPG2a内で決定した回路構成に対応する,プロセッサエレメントPEをテストするためのテスト値を有するテストパターンTPを生成する。換言すれば,ATPG2aは,テスト制御部19が構築するプロセッサエレメントPEの回路構成に対してテストを行うためのテストパターンTPを作成する。そして,ATPG2aは,この回路構成に対応するプロセッサエレメントPEが,生成したテストパターンTPに基づき適切な処理を実行,すなわち期待通りの処理を実行した場合に,出力すると期待される出力期待値を生成する。
ステップS4:テスト制御部19は,ATPG2aの制御に基づき,ステップS1で決定されたテスト用の信号値を,複数のプロセッサエレメントPE毎の内部セレクタ制御回路TCNTi,外部セレクタ制御回路TCNToa,外部セレクタ制御回路TCNTobに出力する。換言すれば,ATPG2aは,ステップS1で設定された信号値をテスト制御部19に出力し,テスト制御部19は,これらの信号値を対応する複数のプロセッサエレメントPE毎の内部セレクタ制御回路TCNTi,外部セレクタ制御回路TCNToa,外部セレクタ制御回路TCNTobに出力する。
ステップS5: ATPG2aは,集積回路装置R_LSIのフリップフロップ回路をスキャン用のフリップフロップ回路として機能させ,いわゆるスキャンチェーンを構築する。そして,ATPG2aは,テストパターンをスキャンチェーンのスキャン用のフリップフロップ回路に順次入力し,集積回路装置R_LSIのテストを実行する。
すなわち,ATPG2aは,スキャンチェーンにより連結されたスキャン用のフリップフロップ回路にテストパターンTPをシフト動作で順次入力する(スキャンインとも言う)。このスキャン用のフリップフロップ回路FFに入力されたテストパターンTPは,後段以降のプロセッサエレメントPEに順次入力される。そして,スルーしない演算器OPにテストパターンTPが入力されると,この演算器OPは,入力されたテストパターンTPに対して論理演算を実行し,演算結果を後段のフリップフロップ回路FFに出力する。後段のフリップフロップ回路FFは,論理結果を一時記憶する(キャプチャとも言う)。そして,後段のフリップフロップ回路FFは,一時記憶した論理結果をシフト動作で外部のテスト装置に出力論理として順次出力する(スキャンアウトとも言う)。
図6の例では,プロセッサエレメントPE50のフリップフロップ回路FFに入力されたテストパターンTPは,プロセッサエレメントPE50の出力信号線OUTを経由し,プロセッサエレメントPE51の入力端子INaに入力される。そして,このテストパターンTPは,プロセッサエレメントPE51の配線L1,内部セレクタSELia,配線L2,内部セレクタSELib,出力信号線OUTを経由し,プロセッサエレメントPE52の入力端子INaに入力される。
さらに,このテストパターンTPは,プロセッサエレメントPE52の演算器OPに入力される。プロセッサエレメントPE52の演算器OPaは,このテストパターンTPおよび入力端子INbから入力された信号値に基づき,論理演算を実行し,内部セレクタSELiaを介してスキャン用のフリップフロップ回路FFに出力する。このフリップフロップ回路FFは,この出力を一時的に記憶する。そして,このフリップフロップ回路FFは,シフト動作で外部のテスト装置2に出力論理として順次出力する。なお,このとき,制御回路12に設けられたフリップフロップ回路FFも同時にスキャン用のフリップフロップ回路として機能している。
図6に示した回路構成によれば,プロセッサエレメントPE51の配線L1,L2が活性化し,この配線L1,L2を介してテスト値が伝搬する。そのため,配線L1,L2に何らかの故障(例えば断線)が発生している場合には,テストパターンTPが後段のフリップフロップ回路FFに入力されず,出力期待値(信号値)がスキャンシフトされない。その結果,テスト装置2は,配線L1,配線L2に故障が発生していることを検出することができる。
また,プロセッサエレメントPE50のフリップフロップ回路FFと,プロセッサエレメントPE52のフリップフロップ回路FFとの間で遅延故障が発生している場合には,プロセッサエレメントPE52のフリップフロップ回路FFからスキャンアウトする信号値が,出力期待値とは異なる値となる。そのため,テスト装置2は,隣接しないプロセッサエレメントPE間のフリップフロップ回路FF間において,遅延故障が発生したことを検出することができるので,遅延故障の検出精度が向上する。
図6において,プロセッサエレメントPE50,PE52の配線L1,L2については,演算器OP,フリップフロップ回路FFをスルーしないので,この配線L1,L2について故障テストを実行することができない。また,プロセッサエレメントPE51については,演算器OPをスルーしているので,スルーしている演算器OPについて故障テストを実行することができない。そこで,プロセッサエレメントPEの回路構成を入れ替える。
図10は,図6の回路構成において,プロセッサエレメントPEの回路構成を入れ替えた状態を示す回路図である。
テスト制御部19は,内部セレクタ制御回路TCNTi60,TCNTi62において,信号線TSa0,TSb0にLレベルの信号値を入力し,さらに,信号線TSa1,TSb1にHレベルの信号値を入力する。すると,出力信号線TSa3,TSb3は,Hレベルの信号値をプロセッサエレメントPE50,PE52の内部セレクタSELia,SELibに出力する。その結果,プロセッサエレメントPE50,PE52の配線L1,配線L2が活性化され,演算器OP,フリップフロップ回路FFがスルーされる。この演算器OP,フリップフロップ回路FFがスルーされている状態を点線丸印で示す。
さらに,テスト制御部19は,内部セレクタ制御回路TCNTi61において,信号線TSa0,TSb0にHレベルの信号値を入力する。すると,出力信号線TSa3,TSb3は,Lレベルの信号値をプロセッサエレメントPE51の内部セレクタSELia,SELibに出力する。その結果,プロセッサエレメントPE51の演算器OP,フリップフロップ回路FFがスルーされない。すなわち,配線L1,配線L2が活性化しない。この演算器OP,フリップフロップ回路FFがスルーされていない状態を点線ばつ印で示す。
そして,図9で説明したように,ATPG2aは,この回路構成を有する集積回路装置R_LSIに対してスキャンテストを実行する。
図11は,プロセッサエレメントPEの回路構成の入れ替えを模式的に示す図である。図11において,OP, FF,スルー,スルーと示すブロックは,プロセッサエレメントPEの演算器OP,フリップフロップ回路FFがスルーしている状態を模式的に示す。そして,OP, FFと示すブロックは,プロセッサエレメントPEの演算器OP,フリップフロップ回路FFをスルーしていない状態を模式的に示す。
図11(A)は,図6に示した回路構成を模式的に示す図である。テスト制御部19は,図11(A)におけるプロセッサエレメントPE49,PE51,PE53の演算器OP,フリップフロップ回路FFをスルーするように回路構成を構築する。そして,テスト制御部19は,図11(A)におけるプロセッサエレメントPE50,PE52の演算器OP,フリップフロップ回路FFをスルーしないように回路構成を構築する。なお,プロセッサエレメントPE49は,プロセッサエレメントPE50の前段のプロセッサエレメントであり,プロセッサエレメントPE53は,プロセッサエレメントPE52の後段のプロセッサエレメントである。
図11(B)は,図11(A)で説明した各プロセッサエレメントPEの回路構成を入れ替えた回路構成を示している。
テスト制御部19は,図11(B)におけるプロセッサエレメントPE50,PE52の演算器OP,フリップフロップ回路FFをスルーするように回路構成を構築する。そして,テスト制御部19は,図11(B)におけるプロセッサエレメントPE49,PE51,PE53の演算器OP,フリップフロップ回路FFをスルーしないように回路構成を構築する。
図11に説明したように,回路構成を入れ替えることで,集積回路装置R_LSEの各プロセッサエレメントPEにおける配線L1,L2の故障や,フリップフロップ回路FF間の遅延故障を検出することができる。その結果,集積回路装置R_LSEのテスト精度が向上する。
図12は,プロセッサエレメントPEの他の回路構成を模式的に示す図である。テスト制御部19は,相互に隣接する2つ以上の第1のプロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第1のプロセッサエレメントPEを,入力された信号値を演算器OPおよびフリップフロップ回路FFを迂回(スルー)して外部に出力させる第1の回路構成としてもよい。換言すれば,前記した第1のプロセッサエレメントPEの内部セレクタ制御回路TCNTiは,第1のプロセッサエレメントPEを第1の回路構成とする。
そして,テスト制御部19は,相互に隣接する2つ以上の第1のプロセッサエレメントPEに隣接する第2のプロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第2のプロセッサエレメントPEを,入力された信号値を演算器OPに入力させ,さらに,演算器OPの出力をフリップフロップ回路FFに入力させる第2の回路構成としてもよい。換言すれば,前記した第2のプロセッサエレメントPEの内部セレクタ制御回路TCNTiは,第2のプロセッサエレメントPEを第2の回路構成とする。
図12においては,相互に隣接する2つの第1のプロセッサエレメントを例示している。
テスト制御部19は,符号50,51に示す相互に隣接する2つの第1のプロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第1の回路構成(OP,FF スルー スルー)とする。そして,テスト制御部19は,第1のプロセッサエレメントPE50,PE51に隣接する第2のプロセッサエレメントPE49,PE52の内部セレクタ制御回路TCNTiを制御して,第2の回路構成(OP,FF)とする。
テスト制御部19は,図12(B),図12(C)に示したように,回路構成を順次入れ替え,回路構成を順次入れ替える度に,ATPG2aは,スキャンテストを実行する(図9参照)。
図12で説明したようにプロセッサエレメントPEの回路構成を構築することで,より長いフリップフロップ回路FF間における遅延テストを実行することができる。例えば,図12(A)の例では,プロセッサエレメントPE49とプロセッサエレメントPE52におけるフリップフロップ回路FF間で遅延テストを実行することができる。なお,図12においては,相互に隣接する2つのプロセッサエレメントPEを,演算器OP,フリップフロップ回路FFをスルーする回路構成のプロセッサエレメントPEとしたが,相互に隣接する3つ以上のプロセッサエレメントPEを,演算器OP,フリップフロップ回路FFをスルーする回路構成のプロセッサエレメントPEとしてもよい。
(リコンフィグ用の制御回路の縮退故障テスト)
リコンフィグ用の制御回路12の出力が論理的にHレベルまたはLレベルに固定されたように振る舞うリコンフィグ用の制御回路12の縮退故障のテストを実行する方法について説明する。まず,リコンフィグ用の制御回路12の縮退故障について,図13に基づき説明する。
図13は,縮退故障テストを説明する回路図である。図13においては,図6で説明したように,内部セレクタ制御回路,外部セレクタ制御回路(図示しない)を有するプロセッサエレメントPEが3つ連続して接続している構成(直線的接続構成)を例示している。図13において,プロセッサエレメントPE50,PE51,PE52の内部セレクタ制御回路TCNTi60,TCNTi61,TCNTi62の信号線CDa,CDbは,図5で説明したように,リコンフィグ用の制御回路12に接続している。
ここで,リコンフィグ用の制御回路12の回路内に故障がある場合,他にも,リコンフィグ用の制御回路12に接続する信号線CDa,CDbが断線している場合には,信号線CDa,CDbからの出力が論理的にHレベルまたはLレベルに固定される縮退故障が発生することがある。
そこで,リコンフィグ用の制御回路12から出力される信号値が,内部セレクタ制御回路を介してプロセッサエレメントPEの内部セレクタSELia,SELibに伝搬するように,テスト制御部19は,プロセッサエレメントPEの内部セレクタ制御回路を制御する。
具体的には,テスト制御部19は,テスト時に,図13に示すように,内部セレクタ制御回路TCNTi60,TCNTi62において,信号線TSa0,TSb0にHレベルの信号値を入力する。すると,図6で説明したように,プロセッサエレメントPE50,PE52の演算器OP,フリップフロップ回路FFがスルーされない回路構成が構築される。
そして,テスト制御部19は,テスト時に,内部セレクタ制御回路TCNTi61において,信号線TSa0,TSb0にLレベルの信号値を入力し,さらに,信号線TSa1,TSb1にLレベルの信号値を入力する。すると,出力信号線TSa3,TSb3は,リコンフィグ用の制御回路12に接続する信号線CDa,CDbからの信号値をそのままプロセッサエレメントPE51の内部セレクタSELia,SELibに出力する。換言すれば,リコンフィグ用の制御回路12からの信号値が,そのまま,プロセッサエレメントPE51の内部セレクタSELia,SELibに伝搬する。
その結果,リコンフィグ用の制御回路12からの信号値に基づき,プロセッサエレメントPE51の内部セレクタSELia,SELibが制御され,演算器OP,フリップフロップ回路FFをスルーするか,スルーしないかが決定される。
以上説明したように,相互に接続され,隣接する第1,第2のプロセッサエレメントPEにおいて,第1のプロセッサエレメントPEの内部セレクタ制御回路TCNTiは,テスト時に,第1のプロセッサエレメントPEを,制御回路12からの信号値に基づき内部セレクタSELia,SELibを制御する第1の回路構成とする。
そして,第2のプロセッサエレメントPの内部セレクタ制御回路TCNTiは,テスト時に,第2のプロセッサエレメントPEを,入力された信号値を演算器OPに入力させ,さらに,演算器OPの出力をフリップフロップ回路FFに入力させる第2の回路構成とする。
そして,ATPG2aは,この回路構成を有する集積回路装置R_LSIに対してスキャンテストを実行する(図9参照)。
テスト時において,図9で説明したように,ATPG2aは,リコンフィグ用の制御回路12内のフリップフロップ回路(図示しない)をスキャン用のフリップフロップ回路として機能させる。そして,ATPG2aは,このスキャン用のフリップフロップ回路を介してテストパターンTPを入力する。
ここで,リコンフィグ用の制御回路12における縮退故障が発生していない場合,リコンフィグ用の制御回路12からテストパターンTPの信号値に基づき適切にプロセッサエレメントPE51の内部セレクタSELia,SELibが制御される。その結果,内部セレクタSELia,SELibは,2入力の中から適切な入力を選択し,出力する。このセレクタの出力値は,後段のプロセッサエレメントPEのフリップフロップ回路FFに伝搬し,スキャンアウトする。そのため,テスト装置2は,このスキャンアウトされた信号値と,この信号値に対応する出力期待値が同じ場合には,リコンフィグ用の制御回路12には縮退故障が発生していないと判定する。
一方,リコンフィグ用の制御回路12に縮退故障が発生している場合,リコンフィグ用の制御回路12からの信号値に基づき適切にプロセッサエレメントPE51の内部セレクタSELia,SELibが制御されない。その結果,内部セレクタSELia,SELibは,2入力の中から,リコンフィグ用の制御回路12からの信号値に基づかない不適切な入力を選択し,出力する。このセレクタの出力値は,後段のプロセッサエレメントPEのフリップフロップ回路FFに伝搬し,スキャンアウトする。そのため,テスト装置2は,このスキャンアウトされた信号値と,この信号値に対応する出力期待値が異なることになり,リコンフィグ用の制御回路12には縮退故障が発生していると判定できる。
図13においては,テスト時において,リコンフィグ用の制御回路12からの信号値は,プロセッサエレメントPE50,PE52の内部セレクタ制御回路TCNTi60,TCNTi62を介して内部セレクタSELia,SELibには伝搬しない。これは,内部セレクタ制御回路TCNTi60,TCNTi62の信号線TSa0,TSb0にはHレベルの信号値が入力され,その結果,内部セレクタSELia,SELibには常にLレベルの信号値が入力されるからである。
従って,リコンフィグ用の制御回路12とプロセッサエレメントPE50,PE52間における縮退故障を検出することができない。そこで,図10,図11で説明したように,テスト制御部19は,プロセッサエレメントPEの回路構成を入れ替える。そして,ATPG2aは,この入れ替えた回路構成で,図9で説明したように,スキャンテストを実行する(図9参照)。
図14は,図10の回路構成において,プロセッサエレメントPEの回路構成を入れ替えた状態を示す回路図である。テスト制御部19は,図14に示すように,内部セレクタ制御回路TCNTi61において,信号線TSa0,TSb0にHレベルの信号値を入力する。すると,図13で説明したように,プロセッサエレメントPE51の演算器OP,フリップフロップ回路FFがスルーされない回路構成が構築される。
そして,テスト制御部19は,内部セレクタ制御回路TCNTi60,TCNTi62において,信号線TSa0,TSb0にLレベルの信号値を入力し,さらに,信号線TSa1,TSb1にLレベルの信号値を入力する。すると,出力信号線TSa3,TSb3は,リコンフィグ用の制御回路12に接続する信号線CDa,CDbからの信号値をそのままプロセッサエレメントPE51の内部セレクタSELia,SELibに出力する。換言すれば,リコンフィグ用の制御回路12からの信号値が,そのまま,プロセッサエレメントPE51の内部セレクタSELia,SELibに出力される。
図15は,プロセッサエレメントPEの回路構成の入れ替えを模式的に示す図である。図15において,OP,FF,制約なしと示すブロックは,プロセッサエレメントPEの演算器OP,フリップフロップ回路FFがリコンフィグ用の制御回路12からの信号値(テストパターンTP)に基づき,スルーされるか,または,スルーされないかが決定される状態を模式的に示す。そして,OP,FFと示すブロックは,プロセッサエレメントPEの演算器OP,フリップフロップ回路FFをスルーしていない状態を模式的に示す。
図15(A)は,図13に示した回路構成を模式的に示す図である。テスト制御部19は,図15(A)におけるプロセッサエレメントPE49,PE51,PE53の演算器OP,フリップフロップ回路FFがリコンフィグ用の制御回路12からの信号値に基づき,スルーされるか,または,スルーされないかが決定されるように回路構成を構築する。そして,テスト制御部19は,図15(A)におけるプロセッサエレメントPE50,PE52の演算器OP,フリップフロップ回路FFをスルーしないように回路構成を構築する。
図15(B)は,図14に示した回路構成を模式的に示す図である。図15(B)においては,図15(A)で説明した各プロセッサエレメントPEの回路構成を入れ替えた場合を示している。
テスト制御部19は,図15(B)におけるプロセッサエレメントPE50,PE52の演算器OP,フリップフロップ回路FFがリコンフィグ用の制御回路12からの信号値に基づき,スルーされるか,または,スルーされないかが決定されるように回路構成を構築する。そして,テスト制御部19は,図15(A)におけるプロセッサエレメントPE49,PE51,PE53の演算器OP,フリップフロップ回路FFをスルーしないように回路構成を構築する。
このように,回路構成を入れ替えることで,集積回路装置R_LSEのリコンフィグ用の制御回路12の縮退故障を高精度に検出することができる。
(外部セレクタの遅延テスト)
次に,外部セレクタの遅延テストについて,図5,図6,図7,図16に基づき説明する。
図16は,外部セレクタの遅延テストについて説明する第1の回路図である。図16における点線矢印は,プロセッサエレメントPE間において信号値が伝搬する方向を模式的に示している。
図16において,テスト制御部19は,第1の列方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第1の列方向の各プロセッサエレメントを第1の回路構成(演算器OP,フリップフロップ回路FFをスルー)としている。換言すれば,第1の列方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiは,第1の列方向の各プロセッサエレメントを第1の回路構成としている。
さらに,テスト制御部19は,第1の列方向のプロセッサエレメントの水平方向に隣接する第2の列方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第2の列方向の各プロセッサエレメントPEを第2の回路構成(演算器OP,フリップフロップ回路FFをスルーしない)としている。換言すれば,第2の列方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiは,第2の列方向の各プロセッサエレメントを第2の回路構成としている。
図16において,プロセッサエレメントPE2_1に着目する。図6,図7で説明したように,テスト制御部19は,テスト時において,プロセッサエレメントPE2_0の出力信号がプロセッサエレメントPE2_1に入力されるように,プロセッサエレメントPE2_1の外部セレクタSEL2_1aを制御する。そして,テスト制御部19は,テスト時において,プロセッサエレメントPE2_2の出力信号がプロセッサエレメントPE2_1に入力されるように,プロセッサエレメントPE2_1の外部セレクタSEL2_1bを制御する。
すなわち,図6,図7の回路図では,テスト制御部19は,外部セレクタSELoa,SELobにおける8つの出力信号線の中から1つの出力信号線のみを選択した状態でプロセッサエレメントPE間の回路構成を構築していた。この場合,8本の出力信号線の中のある1本の出力信号線が選択された状態でのみ外部セレクタSELoa,SELobの遅延テストを実行することができる。しかし,他の7本の出力信号線の何れかが選択された状態における,外部セレクタSELoa,SELobの遅延テストを実行することができない。
具体的には,図16のプロセッサエレメントPE2_1において左上斜め方向,右上斜め方向,左下斜め方向,右下斜め方向のプロセッサエレメントPE1_0,PE1_2,PE3_0,PE3_2からの出力信号線が選択された状態における,外部セレクタSEL2_1a,2_1bの遅延テストを実行することができない。その結果,集積回路装置R_LSEのテスト精度が低下する。
そこで,テスト制御部19は,テスト時において,あるプロセッサエレメントPEにおいて垂直方向以外に隣接する他のプロセッサエレメントPEからの信号値を前記あるプロセッサエレメントの入力端子に入力するように,前記あるプロセッサエレメントPEの外部セレクタ用の外部セレクタ制御回路TCNToa,TCNTob(図5参照)を制御する。
換言すれば,任意のプロセッサエレメントPEの第1,第2の外部セレクタ制御回路TCNToa,TCNTobは,任意のプロセッサエレメントPEにおいて垂直方向以外に隣接する他のプロセッサエレメントPEからの信号値を任意のプロセッサエレメントの第1,第2の入力端子INa,INbに入力するように第1,第2の外部セレクタSELoa,SELobを制御する。
具体的には,テスト制御部19は,テスト時において,プロセッサエレメントPE2_1の外部セレクタSEL2_1a,SEL2_1bの外部セレクタ制御回路TCNToa70,TCNTob80(図5参照)を制御して,以下の回路構成を構築する。例えば,テスト制御部19は,プロセッサエレメントPE2_1の垂直方向以外に隣接する他のプロセッサエレメントPE1_0,PE2_0,PE3_0,PE1_2,PE2_2,PE3_2からの信号値の何れか1をプロセッサエレメントPE2_1の第1の入力端子,第2の入力端子(図5参照)に入力するように外部セレクタSEL2_1a,SEL2_1bの外部セレクタ制御回路TCNToa70,TCNTob80(図5参照)を制御する(図中点線矢印参照)。そして,ATPG2aは,図9で説明したように,この回路構成を有する集積回路装置R_LSIに対してスキャンテストを実行する。なお,プロセッサエレメントPE1_1からプロセッサエレメントPE2_1,プロセッサエレメントPE3_1からプロセッサエレメントPE2_1のように垂直方向に隣接するプロセッサエレメントPEでは信号値が伝搬しないようにする(ばつ印点線矢印参照)。
例えば,ATPG2aは,プロセッサエレメントPE1_0の出力がプロセッサエレメントPE2_1に入力される回路構成で,スキャンテストを実行し,その後,プロセッサエレメントPE3_0の出力がプロセッサエレメントPE2_1に入力される回路構成で,スキャンテストを実行する。さらに,ATPG2aは,プロセッサエレメントPE1_2の出力がプロセッサエレメントPE2_1に入力される回路構成で,スキャンテストを実行し,その後,プロセッサエレメントPE3_2の出力がプロセッサエレメントPE2_1に入力される回路構成で,スキャンテストを実行する。このように回路構成を構築して,スキャンテストを実行することで,外部セレクタSEL2_1a,2_1bの遅延テストを高精度に実行することができる。
他にも,ATPG2aは,例えば,プロセッサエレメントPE0_1の出力が,プロセッサエレメントPE1_0(またはPE1_2)に入力され,プロセッサエレメントPE1_0(またはPE1_2)の出力がプロセッサエレメントPE2_1に入力されるように回路構成を構築して,スキャンテストを実行してもよい。同じく,ATPG2aは,例えば,プロセッサエレメントPE2_3の出力が,プロセッサエレメントPE3_2に入力され,プロセッサエレメントPE3_2の出力がプロセッサエレメントPE2_1に入力される回路構成で,スキャンテストを実行してもよい。
このように回路構成を構築して,スキャンテストを実行することで,より長い信号値通過経路(パス)で外部セレクタの遅延故障を検出することができる。
しかし,図16においては,プロセッサエレメントPE1_1からプロセッサエレメントPE2_1,プロセッサエレメントPE3_1からプロセッサエレメントPE2_1のように垂直方向に隣接するプロセッサエレメントPEでは信号値が伝搬していない。換言すれば,プロセッサエレメントPEにおいて垂直方向に隣接するプロセッサエレメントPEからの2本の出力信号線を選択した状態では外部セレクタSELoa,SELobの遅延テストを実行していない。そこで,テスト制御部19は,図17に示す回路構成を構築する。
図17は,外部セレクタの遅延テストについて説明する第2の回路図である。図17における点線矢印は,プロセッサエレメントPE間において信号値が伝搬する方向を模式的に示している。
図17において,テスト制御部19は,第1の行方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第1の行方向の各プロセッサエレメントを第1の回路構成(演算器OP,フリップフロップ回路FFをスルー)としている。換言すれば,第1の行方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiは,第1の行方向の各プロセッサエレメントPEを第1の回路構成としている。
さらに,テスト制御部19は,第1の行方向のプロセッサエレメントの垂直方向に隣接する第2の行方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiを制御して,第2の行方向の各プロセッサエレメントPEを第2の回路構成(演算器OP,フリップフロップ回路FFをスルーしない)としている。換言すれば,第2の行方向の各プロセッサエレメントPEの内部セレクタ制御回路TCNTiは,第2の行方向の各プロセッサエレメントPEを第2の回路構成としている。
そして,テスト制御部19は,テスト時において,あるプロセッサエレメントPEにおいて水平方向以外に隣接する他のプロセッサエレメントPEからの信号値を前記あるプロセッサエレメントの入力端子に入力するように,前記あるプロセッサエレメントPEの外部セレクタ用の外部セレクタ制御回路TCNToa,TCNTob(図5参照)を制御する。
換言すれば,任意のプロセッサエレメントPEの第1,第2の外部セレクタ制御回路TCNToa,TCNTobは,任意のプロセッサエレメントPEにおいて水平方向以外に隣接する他のプロセッサエレメントPEからの信号値を任意のプロセッサエレメントの第1,第2の入力端子INa,INbに入力するように第1,第2の外部セレクタSELoa,SELobを制御する。
具体的には,テスト制御部19は,テスト時において,プロセッサエレメントPE2_1の外部セレクタSEL2_1a,SEL2_1bの外部セレクタ制御回路TCNToa70,TCNTob80(図5参照)を制御して,以下の回路構成を構築する。例えば,テスト制御部19は,プロセッサエレメントPE2_1の水平方向以外に隣接する他のプロセッサエレメントPE1_0,PE3_0,PE1_1,PE3_1,PE1_2,PE3_2からの信号値の何れか1をプロセッサエレメントPE2_1の第1の入力端子,第2の入力端子(図5参照)に入力するように外部セレクタSEL2_1a,SEL2_1bの外部セレクタ制御回路TCNToa70,TCNTob80(図5参照)を制御する(図中点線矢印参照)。そして,ATPG2aは,図9で説明したように,この回路構成を有する集積回路装置R_LSIに対してスキャンテストを実行する。
図16,図17で説明したように回路構成を構築して,スキャンテストを実行することで,外部セレクタSEL2_1a,SEL2_1bの8本の信号線が選択された状態における遅延故障を検出することができ,テスト精度が向上する。
本実施の形態のリコンフィグ可能な集積回路装置によれば,図4で説明したループ回路が構成されることがなくなるので,一般的なテストパターン生成ツールを利用して,リコンフィグ可能な集積回路装置に対する高品質なテストを実行できる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
制御回路により任意の回路構成に動的に構築される,アレイ状に配置された複数のプロセッサエレメントを有するリコンフィグ可能な集積回路装置において,
前記複数のプロセッサエレメントの各々は,
入力された信号値に基づき演算処理を行う演算器と,
前記演算器の後段に設けられた記憶素子と,
内部セレクタと,
前記内部セレクタを制御する内部セレクタ制御回路とを有し,
前記複数のプロセッサエレメントに含まれ,相互に接続され,隣接する第1,第2のプロセッサエレメントにおいて,
前記第1のプロセッサエレメントの前記内部セレクタ制御回路は,テスト時に,前記第1のプロセッサエレメントを,前記入力された信号値を前記演算器および前記記憶素子を迂回して出力させる第1の回路構成とし,
前記第2のプロセッサエレメントの前記内部セレクタ制御回路は,前記テスト時に,前記第2のプロセッサエレメントを,前記入力された信号値を前記演算器に入力させ,さらに,前記演算器の出力を前記記憶素子に入力させる第2の回路構成とする
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記2)
付記1において,
前記プロセッサエレメントの前記内部セレクタは,前記演算器の後段に設けられ,前記入力された信号値または前記演算器からの信号値を選択する第1の内部セレクタと,前記記憶素子の後段に設けられ,前記記憶素子からの信号値または前記第1の内部セレクタからの信号値を選択して出力する第2の内部セレクタである
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記3)
付記1において,
前記複数のプロセッサエレメントの各々は,第1,第2の入力端子と,隣接する複数のプロセッサエレメントからの信号値を選択し前記第1,第2の入力端子に入力する第1,第2の外部セレクタと,
前記第1の外部セレクタを制御する第1の外部セレクタ制御回路と,
前記第2の外部セレクタを制御する第2の外部セレクタ制御回路とを有し,
前記第1のプロセッサエレメントの前記第1の外部セレクタ制御回路は,テスト時に,前記第2のプロセッサエレメントの出力が入力されるように,前記第1の外部セレクタを制御し,前記第1のプロセッサエレメントの前記第2の外部セレクタ制御回路は,前記テスト時に,他の前記第2のプロセッサエレメントの出力が入力されるように,前記第2の外部セレクタを制御し,
前記第2のプロセッサエレメントの前記第1の外部セレクタ制御回路は,前記テスト時に,前記第1のプロセッサエレメントの出力が入力されるように,前記第1の外部セレクタを制御し,前記第2のプロセッサエレメントの前記第2の外部セレクタ制御回路は,前記テスト時に,他の前記第1のプロセッサエレメントの出力が入力されるように,前記第2の外部セレクタを制御する
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記4)
付記3において,
前記第1のプロセッサエレメントは,相互に隣接する2つ以上のプロセッサエレメントであり,前記第2のプロセッサエレメントは,前記相互に隣接する2つ以上の第1のプロセッサエレメントに隣接する他のプロセッサエレメントである
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記5)
付記1において,
第1の列方向の各プロセッサエレメントの前記内部セレクタ制御回路は,前記第1の列方向の各プロセッサエレメントを前記第1の回路構成とし,前記第1の列方向のプロセッサエレメントの水平方向に隣接する第2の列方向の各プロセッサエレメントの前記内部セレクタ制御回路は,前記第2の列方向の各プロセッサエレメントを前記第2の回路構成とし,
さらに,任意のプロセッサエレメントの前記第1,第2の外部セレクタ制御回路は,前記任意のプロセッサエレメントにおいて垂直方向以外に隣接する他のプロセッサエレメントからの信号値を前記任意のプロセッサエレメントの第1,第2の入力端子に入力するように第1,第2の外部セレクタを制御する
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記6)
付記1において,
第1の行方向の各プロセッサエレメントの前記内部セレクタ制御回路は,前記第1の行方向の各プロセッサエレメントを前記第1の回路構成とし,前記第1の行方向のプロセッサエレメントの垂直方向に隣接する第2の行方向の各プロセッサエレメントの前記内部セレクタ制御回路は,前記第2の行方向の各プロセッサエレメントを前記第2の回路構成とし,
さらに,任意のプロセッサエレメントの前記第1,第2の外部セレクタ制御回路は,前記任意のプロセッサエレメントにおいて水平方向以外に隣接する他のプロセッサエレメントからの信号値を前記任意のプロセッサエレメントの第1,第2の入力端子に入力するように第1,第2の外部セレクタを制御する
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記7)
制御回路により任意の回路構成に動的に構築される,アレイ状に配置された複数のプロセッサエレメントを有するリコンフィグ可能な集積回路装置において,
前記複数のプロセッサエレメントの各々は,
入力された信号値に基づき演算処理を行う演算器と,
前記演算器の後段に設けられた記憶素子と,
内部セレクタと,
前記内部セレクタを制御する内部セレクタ制御回路とを有し,
前記複数のプロセッサエレメントに含まれ,相互に接続され,隣接する第1,第2のプロセッサエレメントにおいて,
前記第1のプロセッサエレメントの前記内部セレクタ制御回路は,テスト時に,前記第1のプロセッサエレメントを前記制御回路からの信号値に基づき前記内部セレクタを制御する第1の回路構成とし,
前記第2のプロセッサエレメントの前記内部セレクタ制御回路は,前記テスト時に,前記第2のプロセッサエレメントを,前記入力された信号値を演算器に入力させ,さらに,前記演算器の出力を前記記憶素子に入力させる第2の回路構成とする
ことを特徴とするリコンフィグ可能な集積回路装置。
(付記8)
付記7において,
前記複数のプロセッサエレメントの各々は,第1,第2の入力端子と,隣接する複数のプロセッサエレメントからの信号値を選択し前記第1,第2の入力端子に入力する第1,第2の外部セレクタと,
前記第1の外部セレクタを制御する第1の外部セレクタ制御回路と,
前記第2の外部セレクタを制御する第2の外部セレクタ制御回路とを有し,
前記第1のプロセッサエレメントの前記第1の外部セレクタ制御回路は,テスト時に,前記第2のプロセッサエレメントの出力が入力されるように,前記第1の外部セレクタを制御し,前記第1のプロセッサエレメントの前記第2の外部セレクタ制御回路は,前記テスト時に,他の前記第2のプロセッサエレメントの出力が入力されるように,前記第2の外部セレクタを制御し,
前記第2のプロセッサエレメントの前記第1の外部セレクタ制御回路は,前記テスト時に,前記第1のプロセッサエレメントの出力が入力されるように,前記第1の外部セレクタを制御し,前記第2のプロセッサエレメントの前記第2の外部セレクタ制御回路は,前記テスト時に,他の前記第1のプロセッサエレメントの出力が入力されるように,前記第2の外部セレクタを制御する
ことを特徴とするリコンフィグ可能な集積回路装置。