(57)【特許請求の範囲】
【請求項１】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，
所定のイベントに応答して前記コンフィグレーションデータメモリから前記コンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグレーション制御回路とを有し，
前記第１のビット幅が前記第２のビット幅より大きく，前記第１または第２のリコンフィグレーションアレイは，前記第１のビット幅の信号配線の一部のビットに０または符号ビットを上位ビットとして追加して，前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有するリコンフィグ可能なＬＳＩ。
【請求項２】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，
所定のイベントに応答して前記コンフィグレーションデータメモリから前記コンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグレーション制御回路とを有し，
前記第１のビット幅が前記第２のビット幅より小さく，前記第１または第２のリコンフィグレーションアレイは，２組の前記第１のビット幅の信号配線を上位ビットと下位ビットとして結合して，前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有するリコンフィグ可能なＬＳＩ。
【請求項３】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，
所定のイベントに応答して前記コンフィグレーションデータメモリから前記コンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグレーション制御回路とを有し，
前記第１のビット幅が前記第２のビット幅より小さく，前記第１または第２のリコンフィグレーションアレイは，第１の前記第１のビット幅の信号配線の一部と，第２の前記第１のビット幅の信号配線の全部とをそれぞれ上位ビットと下位ビットとして結合し，前記上位ビットの上位ビットに０または符号ビットを追加して，前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有するリコンフィグ可能なＬＳＩ。
【請求項４】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，
所定のイベントに応答して前記コンフィグレーションデータメモリから前記コンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグレーション制御回路とを有し，
前記第１のビット幅が前記第２のビット幅より小さく，前記第１または第２のリコンフィグレーションアレイは，第１の前記第１のビット幅の信号配線の全部と，第２の前記第１のビット幅の信号配線の一部とをそれぞれ上位ビットと下位ビットとして結合し，前記下位ビットの上位ビットに０または符号ビットを追加して，前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有するリコンフィグ可能なＬＳＩ。
【請求項５】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，
所定のイベントに応答して前記コンフィグレーションデータメモリから前記コンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグレーション制御回路とを有し，
前記第１のビット幅が前記第２のビット幅より小さく，前記第１または第２のリコンフィグレーションアレイは，第１の前記第１のビット幅の信号配線の一部と，第２の前記第１のビット幅の信号配線の一部とを結合し，前記結合した信号配線の上位ビットに０を追加して，前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有するリコンフィグ可能なＬＳＩ。
【請求項６】
請求項１乃至５のいずれかにおいて，
前記第１，第２のビット幅は，４ビットの整数倍のビット幅であるリコンフィグ可能なＬＳＩ。
【請求項７】
請求項１乃至５のいずれかにおいて，
さらに，電源起動時に外部メモリから前記コンフィグレーションデータをロードし，前記コンフィグレーションデータメモリに格納するローダを有するリコンフィグ可能なＬＳＩ。
【請求項８】
請求項７において，
ＲＴＬ記述されたファイルを論理合成して得られたコンフィグレーションデータが前記外部メモリに格納されていて，
前記ＲＴＬ記述内の前記第１のビット幅のデータを前記第２のビット幅のデータに変換する記述に対応するコンフィグレーションデータに基づいて，前記ビット幅変換エレメントが，前記第１のビット幅のデータの信号線を前記第２のビット幅のデータの信号線に変換するよう構築されるリコンフィグ可能なＬＳＩ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，リコンフィグ可能なLSIに関する。
【背景技術】
【０００２】
リコンフィグ可能なLSIは，複数のプロセッサエレメントと，プロセッサエレメント間を接続するネットワークとを有し，シーケンサである制御回路が外部または内部のイベントに応答して設定するコンフィグレーションデータに基づいて，プロセッサエレメントの構成とプロセッサエレメント間のネットワークの構成とが任意の演算状態または演算回路に構築される。
【０００３】
リコンフィグ可能なLSIは，加算器，乗算器，比較器などの機能を有する論理演算ユニット（ＡＬＵ）や，遅延回路，カウンタ，セレクタ，レジスタなどの複数種類のプロセッサエレメントが，複数個あらかじめ設けられ，さらにプロセッサエレメント間を接続するネットワークが設けられる。そして，プロセッサエレメントとネットワークとを，シーケンサを含むリコンフィグ制御部からのコンフィグレーションデータに基づいて所望の構成に再構築し，その演算状態で所定の演算を実行する。複数のプロセッサエレメントにより複数の演算回路を構築しておけば，それらの演算回路に同時にデータ処理を行わせることができる。そして，１つの演算状態でのデータ処理が完了すると，別のコンフィグレーションデータにより別の演算状態が構築され，その状態で異なるデータ処理を行う。
【０００４】
このように，リコンフィグ可能なLSIは，異なる演算状態を動的に再構築することで，大量のデータに対するデータ処理能力を向上させ，全体の処理効率を高めることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１２２５４６号公報
【特許文献２】特許第３５０９０４７号公報
【特許文献３】特開平０１−０１７１２１号公報
【特許文献４】特開２００７−２５７２１６号公報
【特許文献５】特開２００１−３１２４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年のLSIの設計環境では，ハードウエア記述言語であるRTL言語により論理設計され，そのRTL記述ファイルを論理合成して論理回路（ネットリスト）を構築し，論理検証，レイアウト設計，タイミング検証などを経て，論理設計に対応するLSIが開発されている。このようなRTL言語を利用したLSI設計環境は，ますます普及する傾向になる。
【０００７】
そこで，リコンフィグ可能なLSIのコンフィグレーションデータを，RTL言語による論理設計によって生成することが求められる。
【０００８】
しかしながら，リコンフィグ可能なLSIは，プロセッサエレメント内，またはプロセッサエレメント間において，画一的なビット幅のデータバスを有し，画像処理や通信処理など複雑なデータ処理回路をコンフィグレーションデータにより構築する。かかるデータ処理回路は，一般に，同じビット幅のデータを高速にまたは並列して処理するよう構成される。
【０００９】
それに対して，RTL言語による論理設計では，様々なビット幅のデータを定義したり，異なるビット幅のデータを合成したり，あるビット幅のデータから一部のビットのデータを抽出したりする記述が多く存在する。その場合，最大ビット幅のプロセッサによってデータ処理回路を構築することはできるが，処理対象のデータのビット幅より広いビット幅を有するので，最適な回路構成を行うことができない。
【００１０】
そこで，本発明の目的は，ビット幅の調整を行うことができるリコンフィグ可能なLSIを提供することにある。
【課題を解決するための手段】
【００１１】
リコンフィグ可能なＬＳＩの第１の側面は，コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記リコンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記リコンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記リコンフィグレーションデータを格納するリコンフィグレーションデータメモリと，
所定のイベントに応答して前記リコンフィグレーションデータメモリの前記リコンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグ制御回路とを有し，
前記第１または第２のリコンフィグレーションアレイは，前記第１のビット幅の信号配線を前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有する。
【発明の効果】
【００１２】
第１の側面によれば，異なるビット幅のプロセッサエレメントのリコンフィグアレイ間でデータの結合，分割などのビット変換を行うことができるリコンフィグ可能なLSIを提供できる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態におけるリコンフィグ可能なLSIの概略構成図である。
【図２】本実施の形態における複数のリコンフィグレーションアレイを示す図である。
【図３】本実施の形態におけるビット幅変換エレメントを示す図である。
【図４】本実施の形態におけるリコンフィグ可能な集積回路R_LSI内のリコンフィグレーションアレイR_ARRAYを示す図である。
【図５】本実施の形態におけるリコンフィグレーションアレイR_ARRAYの具体例を示す図である。
【図６】本実施の形態におけるリコンフィグレーションアレイR_ARRAYの具体例を示す別の図である。
【図７】本実施の形態のリコンフィグ可能な集積回路の開発環境について示す図である。
【図８】本実施の形態におけるリコンフィグ可能な集積回路の起動シーケンスを示すフローチャート図である。
【図９】本実施の形態におけるリコンフィグ可能な集積回路の起動シーケンスを示すタイミングチャート図である。
【図１０】本実施の形態におけるリコンフィグ可能な集積回路のコンフィグレーションデータの切り替えを説明する図である。
【図１１】あるRTL記述を実現する処理回路例を示す図である。
【図１２】図１１のデータ処理回路を16bitのリコンフィグレーションアレイR_ARRAY_2で構築した例である。
【図１３】あるRTL記述を実現する処理回路例を示す図である。
【図１４】図１３（Ａ）のRTL記述をリコンフィグレーションアレイで構築した例である。
【図１５】図１３（Ａ）のRTL記述をリコンフィグレーションアレイで構築した例である。
【図１６】あるRTL記述を実現する処理回路例を示す図である。
【図１７】図１６（Ａ）（Ｂ）のRTL記述をリコンフィグレーションアレイで構築した例である。
【図１８】あるRTL記述を実現する処理回路例とそれをリコンフィグレーションアレイで構築した例を示す図である。
【図１９】図２０〜図２２のRTL記述を実現する処理回路をリコンフィグレーションアレイで構築した例を示す図である。
【図２０】あるRTL記述を実現する処理回路例を示す図である。
【図２１】あるRTL記述を実現する処理回路例を示す図である。
【図２２】あるRTL記述を実現する処理回路例を示す図である。
【図２３】リコンフィグ可能な集積回路のリコンフィグレーションアレイ群を示す図である。
【図２４】RTL記述ファイルの第１の例の図である。
【図２５】図２４のRTL記述ファイルを実現する論理回路と，その論理回路をリコンフィグレーションアレイに構築した図である。
【図２６】RTL記述ファイルの第２の例の図である。
【図２７】図２６のRTL記述ファイルを実現する論理回路と，その論理回路をリコンフィグレーションアレイに構築した図である。
【発明を実施するための形態】
【００１４】
図１は，本実施の形態におけるリコンフィグ可能なLSIの概略構成図である。リコンフィグ可能（再構築可能）な集積回路R_LSIは，複数のプロセッサエレメントPEと，それらの入出力間を接続するプロセッサエレメント間ネットワークNWとを有する複数のリコンフィグレーションアレイR_ARRAYと，プロセッサエレメントPEにデータを入力しまたPEからデータを出力する入出力ポート１０とを有する。
【００１５】
図１には，１つのリコンフィグレーションアレイR_ARRAYだけが示されている。しかし，本実施の形態におけるリコンフィグ可能な集積回路R_LSIは，それぞれ異なるビット幅のプロセッサエレメントとネットワークとを有するリコンフィグレーションアレイを複数有する。
【００１６】
複数のプロセッサエレメントPEは，加算器，乗算器，比較器などの機能を有するALUや，遅延回路，カウンタ，セレクタなどの複数種類のプロセッサエレメントである。プロセッサエレメントPEは，コンフィグレーションデータに基づいて任意の状態に構築される。また，プロセッサエレメント間ネットワークNWは，リコンフィグレーションデータに基づいて任意の接続状態に構築される。したがって，リコンフィグレーションデータを設定することで，リコンフィグレーションアレイR_ARRAYは，複数のプロセッサエレメントを任意の状態に接続して，任意のデータ処理回路に再構築可能である。
【００１７】
図１中のリコンフィグレーションアレイR_ARRAY内には，ALU機能を有するプロセッサエレメントPE，乗算器MPYの機能を有するプロセッサエレメントPE，メモリRAMの機能を有するプロセッサエレメントPE,レジスタファイルRegFileの機能を有するプロセッサエレメントPEなどが含まれる。メモリプロセッサエレメントは，例えばテーブルデータなどを格納する。
【００１８】
リコンフィグ可能な集積回路R_LSIは，さらに，複数種類のコンフィグレーションデータを格納するコンフィグレーションデータメモリ１４と，そのメモリ１４から所定のコンフィグレーションデータを読み出してリコンフィグレーションアレイR_ARRAYに設定するリコンフィグ制御回路１２とを有する。リコンフィグレーション制御回路１２は，例えばメモリへのデータ読み出しとリコンフィグレーションデータの設定を指示する命令コードを有するレジスタ群であり，割込信号や状態信号などのイベントに応答して，対応する命令コードを実行する。命令コードを実行することで，リコンフィグレーションデータメモリ１４から対応するコンフィグレーションデータを読み出し，リコンフィグレーションアレイR_ARRAYに設定する。
【００１９】
リコンフィグ可能な集積回路R_LSIは，フラッシュメモリなどの外部のメモリ１に格納されているコンフィグレーションデータを含む情報を読み出し，デコーダ１８を介して，リコンフィグレーション制御回路１２と，コンフィグレーションデータメモリ１４と，プロセッサエレメントのうちレジスタファイルRegFile及びメモリRAMのいずれかに振り分けて格納する。
【００２０】
本実施の形態では，ハードウエア記述言語の１つであるRTL言語により論理設計されたファイルが論理合成され，その論理合成により生成されたコンフィグレーションデータを含む情報RDが，チップ外部のメモリ１に格納される。そして，リコンフィグ可能な集積回路R_LSIでは，例えば電源投入時に，内蔵するローダ１６が，その情報RDを外部メモリ１から読み出し，リコンフィグレーションアレイR_ARRAYまたはコンフィグレーションデータメモリ１４にロードする。この初期ロード後に，ローダ１６が，リコンフィグレーション制御回路１２にレディー信号を出力すると，リコンフィグレーション制御回路１２は，所定の命令コードを実行し，リコンフィグレーションデータによりリコンフィグレーションアレイR_ARRAYを所定の処理回路に構築する。初期設定が終了すると，リコンフィグレーションアレイ内に構築された処理回路は，入出力ポート１０からの入力データを処理し，処理済みの出力データを入出力ポート１０から出力する。
【００２１】
図２は，本実施の形態における複数のリコンフィグレーションアレイを示す図である。図２には，１つのリコンフィグ可能な集積回路R_LSIが内蔵する３つのリコンフィグレーションアレイの例が示されている。リコンフィグレーションアレイR_ARRAY_1は，８ビット（または４ビット）のプロセッサエレメントPEとそれらを接続するプロセッサ間ネットワークNWとを有する。したがって，入出力ポート１０から８ビット（または４ビット）のデータを入力し，所定の処理を行い，８ビット（または４ビット）の処理後のデータを出力する。また，８ビット（または４ビット）のデータを所定の値と比較し１ビットの比較結果データを出力するコンパレータCMPからなるプロセッサエレメントを有する。
【００２２】
同様に，リコンフィグレーションアレイR_ARRAY_2は，８ビット（または４ビット）の２倍の１６ビット（または８ビット）のプロセッサエレメントPEとそれらを接続するプロセッサ間ネットワークNWとを有する。したがって，入出力ポート１０から１６ビット（または８ビット）のデータを入力し，所定の処理を行い，１６ビット（または８ビット）の処理後のデータを出力する。また，１６ビット（または８ビット）のデータを所定の値と比較し１ビットの比較結果データを出力するコンパレータCMPからなるプロセッサエレメントを有する。
【００２３】
３つ目のリコンフィグレーションアレイR_ARRAY_0は，１ビットの制御信号を処理するコンパレータCMPやデコーダDECからなるプロセッサエレメントと，それらを接続するプロセッサ間ネットワークNWとを有する。このアレイR_ARRAY_0には，図示しないが，１ビットのデータを処理する所定の論理回路，セレクタなどのプロセッサエレメントであってもよい。
【００２４】
３つのリコンフィグレーションアレイR_ARRAYは，それぞれビット幅が異なる。そのため，いずれかのリコンフィグレーションアレイ内には，異なるビット幅の信号線を変換するビット幅変換エレメントBND,SPLが設けられる。
【００２５】
ビット幅変換エレメントのうち，ビット結合エレメントBNDは，少ないビット幅の信号線に，他の信号線を結合し，または所定の値を有する信号線を結合して，より多いビット幅の信号線に変換する。図中，リコンフィグレーションアレイR_ARRAY_2内のビット結合エレメントBNDは，１ビットの信号線を１６ビット（または８ビット）の信号線に，または８ビット（または４ビット）の信号線を１６ビット（または８ビット）の信号線に変換する。また，リコンフィグレーションアレイR_ARRAY_1内のビット結合エレメントBNDは，１ビットの信号線を８ビット（または４ビット）の信号線に変換する。
【００２６】
また，ビット幅変換エレメントのうち，ビット分離エレメントSPLは，多いビット幅の信号線の一部を分離して，より少ないビット幅の信号線に変換する。図中，リコンフィグレーションアレイR_ARRAY_2内のビット分離エレメントSPLは，１６ビット（または８ビット）の信号線の１ビットを分離して１ビットの信号線に，または１６ビット（または８ビット）の信号線の８ビット（または４ビット）を分離して８ビット（または４ビット）の信号線に変換する。また，リコンフィグレーションアレイR_ARRAY_1内のビット分離エレメントSPLは，８ビット（または４ビット）の信号線の１ビットを分離して１ビットの信号線に変換する。
【００２７】
以下，図２に示されているとおり，リコンフィグーションアレイR_ARRAY_2は１６ビット，R_ARRAY_1は８ビットとして説明する。
【００２８】
図３は，本実施の形態におけるビット幅変換エレメントを示す図である。図２のビット幅変換エレメントを更に説明する図である。図中，１６ビット，８ビット，１ビットのネットワークNWがそれぞれ示され，それらのネットワークからの１６ビット信号線と，８ビット信号線と，１ビット信号線との間が，ビット分離エレメント２０−２２とビット結合エレメント２３，２４とによりビット幅変換される。
【００２９】
たとえば，ビット分離エレメント２０は，１６ビット信号線の８ビットまたは一部のビットを分離し，分離した８ビットを出力し，または一部のビットに所定の値の信号線を加えて８ビットを出力する。同様に，ビット分離エレメント２２は，８ビット信号線の１ビットを分離し，分離した１ビットを出力する。また，ビット分離エレメント２１は，１６ビット信号線の１ビットを分離し，分離した１ビットを出力する。
【００３０】
一方，ビット結合エレメント２３は，２組の８ビット信号線を結合して１６ビット信号線を出力したり，８ビット信号線に他の８ビットの値を有する信号線を追加して１６ビット信号線を出力する。あるいは，ビット結合エレメント２３は，１ビット信号線に１５ビットの値を有する信号線を追加して１６ビットを出力したり，１ビット信号線と８ビット信号線を結合しさらに７ビットの値を有する信号線を追加して１６ビットを出力する。また，ビット結合エレメント２４は，１ビット信号線に７ビットの値を有する信号線を追加して８ビットを出力する。
【００３１】
図中，ビット分離エレメント２０，２１は，図２中のリコンフィグレーションアレイR_ARRAY_2内のビット分離エレメントSPLに対応する。また，ビット分離エレメント２２は，図２中のリコンフィグレーションアレイR_ARRAY_1内のビット分離エレメントSPLに対応する。さらに，ビット結合エレメント２３，２４は，それぞれ，図２のリコンフィグレーションアレイR_ARRAY_2，R_ARRAY_1内のビット結合エレメントBNDに対応する。
【００３２】
以上，図２，３で示したとおり，リコンフィグ可能な集積回路R_LSIは，汎用的な8bitを最小単位として，8bit，16bit，32bitなど8bitの整数倍のビット幅の演算精度を有するプロセッサエレメントとプロセッサエレメント間ネットワークを有する複数のリコンフィグレーションアレイと，1bitの制御信号を処理するプロセッサエレメントとネットワークを有するリコンフィグレーションアレイとを有する。そして，異なる演算精度のリコンフィグレーションアレイ間のビット幅変換のためのビット幅変換エレメントを設け，異なるビット幅の信号の連結や分離処理を可能にする。
【００３３】
図４は，本実施の形態におけるリコンフィグ可能な集積回路R_LSI内のリコンフィグレーションアレイR_ARRAYを示す図である。図１で説明したとおり，リコンフィグレーションアレイR_ARRAYは，コンフィグレーションデータにより任意の回路に構築される複数のプロセッサエレメントPEと，それらを接続するとともに，コンフィグレーションデータにより任意の接続状態に構築されるプロセッサエレメント間ネットワークNWを有する。複数のプロセッサエレメントPEの中には，前述のビット幅変換エレメントも含まれる。
【００３４】
１つのリコンフィグレーションアレイR_ARRAY内は，単一のビット幅で構成される。したがって，入出力ポート10(IN),10(OUT)も同じビット幅を有する。
【００３５】
図５は，本実施の形態におけるリコンフィグレーションアレイR_ARRAYの具体例を示す図である。プロセッサエレメントＰＥ０〜ＰＥ３と，メモリプロセッサエレメントＰＥ５と，それ以外のプロセッサエレメントＰＥ４とは，プロセッサエレメント間ネットワークSW内のスイッチであるセレクタ４１を介して接続可能に構成されている。各プロセッサエレメントＰＥ０〜ＰＥ５は，コンフィグレーションデータＣＤ０〜ＣＤ５に基づいて任意の構成に構築可能である。また，ネットワークNW内のセレクタ４１（４１ａ，４１ｂ，４１ｃ）も，コンフィグレーションデータＣＤｓに基づいて任意の構成に構築可能である。
【００３６】
各プロセッサエレメントＰＥは，それぞれの演算処理を終了すると終了信号ＣＳ０〜ＣＳ３を出力する。この終了信号がイベントとしてリコンフィグレーション制御回路１２に与えられ，適切なタイミングで次のコンフィグレーションデータＣＤがプロセッサエレメントＰＥに供給され，別の演算回路に構築される。
【００３７】
セレクタ４１は，図中左下に一例として示されるとおり，コンフィグレーションデータＣＤを格納するレジスタ４２と，レジスタ４２のデータに応じて入力を選択するセレクタ回路４３とを有する。さらに，セレクタ回路４３の出力をクロックＣＫに同期してラッチするフリップフロップ４４を有しても良い。また，ネットワークNWは，データの入力ポート10(IN)と出力ポート10(OUT)ともセレクタを介して所望の接続を可能にしている。
【００３８】
図６は，本実施の形態におけるリコンフィグレーションアレイR_ARRAYの具体例を示す別の図である。図示されるとおり，プロセッサエレメントPEは，プロセッサエレメント間ネットワークNWからデータを入力し，演算部５２がそれを処理し，出力部５３からデータがネットワークNWに出力される。また，各プロセッサエレメントPEは，コンフィグレーションデータレジスタ５０を有し，このレジスタ５０にはコンフィグレーションデータメモリ１４からコンフィグレーションデータCDを含む情報が設定され保持される。
【００３９】
そして，その情報に基づいて，プロセッサエレメントPE内の演算部５２は所定の機能を演算回路に構築される。同様に，出力部５３もその情報に基づいて構築される。さらに，メモリまたはレジスタファイルのプロセッサエレメントPEには，その情報が，テーブルデータまたはレジスタ値として格納される。また，ネットワークNWもコンフィグレーションデータDCに基づいて任意の接続状態に構築される。
【００４０】
図７は，本実施の形態のリコンフィグ可能な集積回路の開発環境について示す図である。図７には，概略的な開発工程が示されている。
【００４１】
まず，設計者によりRTL記述言語で記述された回路記述ファイルが生成される（S10）。図７には，３種類の回路記述ファイルが生成されている。さらに，RTL記述言語による回路記述ファイルに加えて，設計者によりライブラリ内の回路セルを組み合わせた回路記述ファイルが生成される（S12）。この回路記述ファイルは，論理回路のデータになる。
【００４２】
そして，これらの回路記述ファイルを論理合成すると，コンフィグレーションデータを含むコンフィグレーション情報が作成される（S14）。このコンフィグレーション情報は，図１に示したフラッシュメモリ１に書き込まれる（S16）。
【００４３】
このように，本実施の形態のリコンフィグ可能な集積回路は，主に，RTL記述言語で論理設計された回路記述ファイルを論理合成して得られるコンフィグレーションデータの情報により，任意の回路構成に構築可能になっている。したがって，本実施の形態のリコンフィグ可能集積回路は，RTL記述言語に多く現れるような異なるビット幅のデータの結合や分離に適したプロセッサエレメントを内蔵する。
【００４４】
図８は，本実施の形態におけるリコンフィグ可能な集積回路の起動シーケンスを示すフローチャート図である。集積回路の電源がオンになると（S20），内蔵されるローダ１６が，チップ外のフラッシュメモリ１の読み出し指示を行う（S21）。これにより，フラッシュメモリ１内のコンフィグレーションデータを含む情報の読み出しが開始する（S22）。集積回路内のデコーダ１８は，フラッシュメモリ１から順次読み出されるコンフィグレーション情報を解釈して，リコンフィグレーション制御部１２，コンフィグレーションデータメモリ１４，メモリプロセッサエレメントＲＡＭ（ＰＥ），レジスタファイルのプロセッサエレメント(RegFile(PE)などに分配し，インストールする（S23）。
【００４５】
上記のデータの書き込みが終了すると，例えばローダ１６が，コンフィグレーションデータの設定を終了したことを示すレディー信号を，リコンフィグレーション制御部１２に出力する。これにより，リコンフィグ可能な集積回路は動作可能状態になる（S24）。このレディー信号に応答して，リコンフィグレーション制御回路１２は，コンフィグレーションデータメモリ１４から最初のコンフィグレーションデータを読み出し，リコンフィグレーションアレイR_ARRAY内のプロセッサエレメントPEやネットワークNWにロードし，最初の処理回路を構築する。そして，構築された処理回路は，入力データに対して構築された機能の信号処理を行う（S25）。
【００４６】
図９は，本実施の形態におけるリコンフィグ可能な集積回路の起動シーケンスを示すタイミングチャート図である。電源起動に応答してパワーオンリセットPONがLレベルになると，リコンフィグレーションアレイ内部のリセットReset_rがLレベルになり，リセット動作が始まる。それに応答して，ローダ１６は，コンフィグレーションデータメモリ１４をクリアしながら，外部メモリ１に対してアドレスADRを出力してそこに格納されているコンフィグレーション情報を読み出す。
【００４７】
ローダ１６は，コンフィグレーションデータメモリ１４のクリアが完了すると，ライト信号Confg_WRをHレベルにして，コンフィグレーション情報をCRCチェックしながら，コンフィグレーションデータメモリ１４に書き込む。このとき，メモリプロセッサエレメントRAM(PE)や，レジスタファイルのプロセッサエレメントRegFile(PE)にもコンフィグレーション情報の書き込みが行われる。この書き込みが終了すると，ローダ１６により，内部リセット信号Reset_rが解除され，リコンフィグレーション制御回路１２にレディー信号が発行される。
【００４８】
図１０は，本実施の形態におけるリコンフィグ可能な集積回路のコンフィグレーションデータの切り替えを説明する図である。図１０には，コンフィグレーションデータメモリ１４の４つのアドレス００−１１に４種類のコンフィグレーションデータが格納されていて，それら４種類のコンフィグレーションデータが，割込信号や割込条件に応じてカウンタ12_2や割り込み制御回路12_3によって切り替えられ，または，外部から直接切り替えられることを示している。
【００４９】
図１０中に示されているとおり，モードセット12_1は，３つのモード状態を持ちうる。すなわち，第１にSimpleモードであり，所定の処理完了End0-End3を示す割込信号INTに応答して，カウンタが000-011と変化し，コンフィグレーションデータメモリ１４内の異なるコンフィグレーションデータに切り替えられる。第２にFactorモードであり，所定の処理条件Int0-Int3を示す割込信号INTに応答して，それぞれの処理条件に対応したコンフィグレーションデータに切り替えられる。さらに，外部から制御回路内のレジスタ12_4を直接書き換えることで，それに対応したコンフィグレーションデータに切り替えられる。
【００５０】
［ビット幅変換エレメントの例］
以上，本実施の形態におけるリコンフィグ可能な集積回路の概略について説明した。以下，本実施の形態のリコンフィグレーションアレイ間のビット幅変換を行うビット幅変換エレメントの具体例について説明し，最後にあるRTL記述を実現するリコンフィグレーションアレイの具体例について説明する。
【００５１】
図１１は，あるRTL記述を実現する処理回路例を示す図である。具体的には以下のRTL記述である。
assign X[15:0] = ( A[15:0] + B[15:0] - C[15:0] ) * 16’h0003 ;
前述のとおり，リコンフィグ可能な集積回路は，１bitの制御系リコンフィグレーションアレイと，8bitのデータ処理リコンフィグレーションアレイと，16bitのデータ処理リコンフィグレーションアレイとを有している。そして，上記の１６ビット幅しかない演算は，16bitのデータ処理リコンフィグレーションアレイだけで実現される。
【００５２】
図１１に示されるとおり，16bitのリコンフィグレーションアレイ内において，演算A + Bの加算をプロセッサエレメントPE0に割り当て，加算値A+BからCを引く減算にプロセッサエレメントPE1を割り当て，その結果を固定値"16'h0003"と乗算する演算をプロセッサエレメントPE4に割り当てている。これらの演算は全て16bit精度である。
【００５３】
図１２は，図１１のデータ処理回路を16bitのリコンフィグレーションアレイR_ARRAY_2で構築した例である。図示しないコンフィグレーションデータにより，プロセッサエレメントPE0は加算器に，プロセッサエレメントPE1は減算器に，プロセッサエレメントPE4は乗算器にそれぞれ構築される。さらに，コンフィグレーションデータによりプロセッサエレメント間ネットワークNWは，入力ポート10(IN)の入力データA,BがプロセッサエレメントPE0に入力され，その出力と入力データCがプロセッサエレメントPE1に入力され，その出力とメモリプロセッサRAM(PE)内の変数"16'h0003"とがプロセッサエレメントPE4に入力され，その出力が出力ポート10(OUT)に出力されるように構築される。
【００５４】
図１１の処理回路を図１２のように同じ16bitのリコンフィグレーションアレイ内で構築することは，従来と同等である。
【００５５】
図１３は，あるRTL記述を実現する処理回路例を示す図である。この例は，16bitまたは8bitデータを演算した結果を１ビットの信号で出力する回路である。図１３（Ａ）は，以下のRTL記述である。
if (X[15:0] = 16’h0001)
すなわち，16bitのデータXが定数"16'h0001"と等しいか否かを判定するコンパレータ回路である。出力は，等しいか否かを示す1bit出力である。
【００５６】
また，図１３（Ｂ）は，以下のＲＴＬ記述であり，8bitのデータXが定数"8'h01"と等しいか否かを判定するコンパレータ回路である。この場合も，出力は，等しいか否かを示す1bit出力である。
if (X[7:0] = 8’h01)
図１４，図１５は，図１３（Ａ）のRTL記述をリコンフィグレーションアレイで構築した例である。まず，図１３（Ａ）のRTL記述は，16bitのデータXが定数"16'h0001"と等しいか否かを判定するコンパレータ回路であるので，16bitのリコンフィグレーションアレイR_ARRAY_2内のコンパレータプロセッサエレメントCMPにより実現される。そして，図１４の例は，そのコンパレータプロセッサエレメントCMP内に定数を設定できる構成例であり，図１５の例は，設定できない構成例である。
【００５７】
図１４では，入力ポート10(IN)から定数をコンパレータプロセッサエレメントCMP60内に設定し，さらに，入力ポート10(IN)からデータXを入力するように，ネットワークNWとコンパレータプロセッサエレメントCMP60が構築されている。そして，判定結果の1bitデータは，1bitのリコンフィグレーションアレイR_ARRAY_0のネットワークに出力される。
【００５８】
図１５では，コンパレータプロセッサエレメントCMP60内に定数を設定できない構成である。そのため，定数を設定できるプロセッサエレメントPE62に，入力ポート10(IN)から定数"16'h001"を設定できるように構築される。さらに，入力ポート10(IN)からデータXを，プロセッサエレメントPE62から定数をそれぞれコンパレータプロセッサエレメントCMP60に入力するように，16bitのリコンフィグレーションアレイR_ARRAY_2内のプロセッサエレメントPE62とコンパレータプロセッサエレメントCMP60とネットワークNWとが構築される。さらに，判定結果の1bitデータは，1bitのリコンフィグレーションアレイR_ARRAY_0のネットワークに出力されるように構築される。
【００５９】
図１６は，あるRTL記述を実現する処理回路例を示す図である。この例は，16bitのデータを8bitデータにビット幅変換するビット分割エレメントの回路例である。図１６（Ａ）のRTL記述は次の通りである。
assign X[7:0] = IN_DATA[9:2] ;
ただし，IN_DATAは16bitデータとする。
【００６０】
この場合は，16bitのデータIN_DATAの[9:2]ビットの値が，8bitデータのX[7:0]に変換されるビット分割エレメントSPL(PE)で実現される。
【００６１】
一方，図１６（Ｂ）のRTL記述は次の通りである。
assign X[7:0] = IN_DATA[6:2] ;
ただし，IN_DATAは16bitデータとする。
【００６２】
この場合は，16bitのデータIN_DATAの[6:2]ビットの値が8bitデータのX[7:0]に変換される。データIN_DATAの［6:2］ビットは，5bitであり，用意されている8bit,16bitのリコンフィグレーションアレイとビット幅が整合しない。そこで，5bitのデータがビット幅変換エレメント（ビット分割エレメント）によりデータ拡張されて8bitデータにされ，8bitのリコンフィグレーションアレイで処理される。
【００６３】
データX[7:0]がUnsignedデータの場合は，上位3bitを"0"で埋める。すなわち，上位3bitは，"3'b000"になる。つまり，ビット分割エレメントSPLは，16bitのデータIN_DATAの[6:2]ビットの値を分離して，データXの下位5bitとし（X[4:0]），上位3bitを"3'b000"とする。
【００６４】
また，データX[7:0]がSignedデータの場合は，上位3bitを符号拡張する。すなわち，上位3bitは"3{X[4]}"になる。つまり，ビット分割エレメントSPLは，16bitのデータIN_DATAの[6:2]ビットの値を分離して，データXの下位5bitとし（X[4:0]），上位3bitを符号ビットX[4]で拡張した"3｛X[4]｝"とする。
【００６５】
図１７は，図１６（Ａ）（Ｂ）のRTL記述をリコンフィグレーションアレイで構築した例である。いずれの場合も，16bitリコンフィグレーションアレイR_ARRAY_2内のビット分割エレメントSPL64が，上記のビット分割と，上位ビットの結合を行うように構築される。そして，ビット幅変換された8bitデータは，8bitリコンフィグレーションアレイR＿ARRAY_1内のネットワークに出力される。
【００６６】
図１８は，あるRTL記述を実現する処理回路例とそれをリコンフィグレーションアレイで構築した例を示す図である。図１８（Ａ）の例は，16bitのデータを1bitデータにビット幅変換するビット分割エレメントの回路例である。図１８（Ａ）のRTL記述は次の通りである。
assign X = IN_DATA[1] ;
すなわち，16bitの入力データIN_DATAの１ビット目の値を1bitデータXに変換している。
【００６７】
図１８（Ｂ）に示されるとおり，入力バッファ10(IN)から入力された16bitの入力データIN_DATA[15:0]が，16bitのリコンフィグレーションアレイR_ARRAY_2内のネットワークNWを介して，ビット分割エレメントSPL64に入力されるように構築される。そして，ビット分割エレメントSPL64では，16bitの入力データIN_DATA[15:0]のうち1bit目の値を分離して，1bitデータXに変換し，その出力は1bitのリコンフィグレーションアレイR_ARRAY_0のネットワークNWに供給するように構築される。このように，1bitのリコンフィグレーションアレイR_ARRAY_0は，1bitの制御信号だけでなく，1bitのデータ信号も処理する。
【００６８】
図２０〜図２２は，あるRTL記述を実現する処理回路例を示す図である。ここには，６種類のRTL記述とその処理回路例が示されている。これらのRTL記述は，8bitの入力データIN_DATA0[7:0]とIN_DATA１[7:0]とをそのまま結合，もしくは一部のビットを結合し残りを他の値で埋める例である。この場合は，ビット結合エレメントで実現可能である。
【００６９】
また，図１９は，図２０〜図２２のRTL記述を実現する処理回路をリコンフィグレーションアレイで構築した例を示す図である。8bitのリコンフィグレーションアレイR_ARRAY_1の２つの8bitデータが，16bitのリコンフィグレーションアレイR_ARRAY_2内のビット結合エレメントBND66で構築されている。
【００７０】
図２０（Ａ）のRTL記述は次の通りである。
assign X[15:0] = {IN_DATA1[7:0], IN_DATA0[7:0]} ;
入力IN_DATA0, IN_DATA1は8bit幅のデータ，データX[15:0]は16bitのデータである。
【００７１】
このRTL記述は，入力IN_DATA0, IN_DATA1は8bit幅のデータをそれぞれ下位８ビットと上位８ビットに結合して16bitのデータX[15:0]として出力するビット結合エレメントBND(PE)で実現される。
【００７２】
したがって，リコンフィグ可能な集積回路では，図１９に示したとおり，例えば，入力ポート10(IN)から入力された２つの8bit入力データIN_DATA1[7:0], IN_DATA0[7:0]は，8bitのリコンフィグレーションアレイR_ARRAY_1内のネットワークNWを経由して，16bitのリコンフィグレーションアレイR_ARRAY_2内のビット結合エレメントBND66に入力され，結合されて，ネットワークNWに出力されるように構築される。
【００７３】
図２０（Ｂ）のRTL記述は次の通りである。
assign X[15:0] = {3{1'b0},IN_DATA1[4:0], IN_DATA0[7:0]} ;
入力IN_DATA0は8bit幅のデータ, IN_DATA1は5bit幅のデータ，データX[15:0]は16bitのデータである。つまり，入力IN_DATA1[4:0]は，5bit幅であり，入力IN_DATA0[7:0]と結合しても13bit幅であり，いずれのリコンフィグレーションアレイのビット幅とも整合していない。したがって，このビット結合エレメントBND(PE)は，上位の３ビットを"0"で埋める。これにより，16bitのデータX[15:0]は，Unsignedなデータとして，16bitのリコンフィグレーションアレイR_ARRAY_2で演算処理することができる。
【００７４】
このRTL記述も，リコンフィグ可能な集積回路では，図１９に示したとおりビット結合エレメントBND66により構築される。
【００７５】
図２１（Ｃ）のRTL記述は次の通りである。
assign X[15:0] = {3{IN_DATA1[4]},IN_DATA1[4:0], IN_DATA0[7:0]} ;
入力IN_DATA0は8bit幅のデータ, IN_DATA1は5bit幅のデータ，データX[15:0]は16bitのデータである。つまり，入力IN_DATA1[4:0]は，5bit幅であり，入力IN_DATA0[7:0]と結合しても13bit幅であり，いずれのリコンフィグレーションアレイのビット幅とも整合していない。この場合，図２０（Ｂ）と異なり，ビット結合エレメントBND(PE)は，上位の３ビットを符号ビットIN_DATA1[4]で埋める。つまり，結合された16bitデータX[15:0]はSignedのデータになる。
【００７６】
このRTL記述も，リコンフィグ可能な集積回路では，図１９に示したとおりビット結合エレメントBND66により構築される。
【００７７】
図２１（Ｄ）のRTL記述は次の通りである。
assign X[15:0] = {IN_DATA1[7:0], 3{1'b0}, IN_DATA0[4:0]} ;
入力IN_DATA0は5bit幅のデータ, IN_DATA1は7bit幅のデータ，データX[15:0]は16bitのデータである。つまり，入力IN_DATA0[4:0]は，5bit幅であり，入力IN_DATA1[7:0]と結合しても13bit幅である。そこで，ビット結合エレメントBND(PE)は，下位の３ビットを"0"で埋める。これにより，16bitのデータX[15:0]は，8bit毎のデータであり，一方がUnsignedなデータとなり，16bitのリコンフィグレーションアレイR_ARRAY_2で演算処理することができる。
【００７８】
このRTL記述も，リコンフィグ可能な集積回路では，図１９に示したとおりビット結合エレメントBND66により構築される。
【００７９】
図２２（Ｅ）のRTL記述は次の通りである。
assign X[15:0] = {IN_DATA1[7:0], 3{IN_DATA0[4]}, IN_DATA0[4:0]} ;
入力IN_DATA0は5bit幅のデータ, IN_DATA1は8bit幅のデータ，データX[15:0]は16bitのデータである。ビット結合エレメントBND(PE)は，下位の３ビットを符号ビットIN_DATA0[4]で埋める。つまり，結合された16bitのデータX[15:0]は，8bit毎のデータであり，一方がSignedなデータとなり，16bitのリコンフィグレーションアレイR_ARRAY_2で演算処理することができる。
【００８０】
このRTL記述も，リコンフィグ可能な集積回路では，図１９に示したとおりビット結合エレメントBND66により構築される。
【００８１】
図２２（Ｆ）のRTL記述は次の通りである。
assign X[15:0] = {7{1'b0},IN_DATA1[3:0], IN_DATA0[4:0]} ;
入力IN_DATA0は5bit幅のデータ, IN_DATA4は4bit幅のデータ，データX[15:0]は16bitのデータである。したがって，このビット結合エレメントBND(PE)は，上位の7ビットを"0"で埋め，入力データIN_DATA1[3:0], IN_DATA0[4:0]をそれぞれ下位の９ビットにする。このように，２組のデータを任意のビット位置に結合する。これにより，16bitのデータX[15:0]は，Unsignedなデータとして，16bitのリコンフィグレーションアレイR_ARRAY_2で演算処理することができる。
【００８２】
このRTL記述も，リコンフィグ可能な集積回路では，図１９に示したとおりビット結合エレメントBND66により構築される。
【００８３】
［具体例］
以下，２つのRTL記述ファイルの例と，その回路例，および本実施の形態のリコンフィグ可能な集積回路での構築例を示す。
【００８４】
図２３は，リコンフィグ可能な集積回路のリコンフィグレーションアレイ群を示す図である。図２３には，１ビット幅のプロセッサエレメントとネットワークを有するリコンフィグレーションアレイR_ARRAY_0と，同様に，８ビット幅，１６ビット幅，３２ビット幅のプロセッサエレメントとネットワークを有するリコンフィグレーションアレイR_ARRAY_1，R_ARRAY_2，R_ARRAY_3とが示されている。各リコンフィグレーションアレイ内には，プロセッサエレメントだけが示されているが，プロセッサエレメントを任意に接続するネットワークも設けられている。
【００８５】
図２３中のプロセッサエレメントは，矩形の上辺に入力端子が底辺に出力端子が示されている。たとえば，コンパレータのプロセッサエレメントCMPは，２つの入力端子と１つの出力端子を有し，セレクタのプロセッサエレメントSELは，３つの入力端子（２つの入力と１つのセレクト信号端子）と１つの出力端子を有する。また，ビット幅変換エレメントであるビット結合エレメントBNDは２つの入力端子と１つの出力端子を有し，ビット分割エレメントSPL,BNDは１つの入力端子と１つの出力端子を有する。さらに，デコーダのプロセッサエレメントDECは，４つの入力端子と１つの出力端子を有する。
【００８６】
上記以外に，プロセッサエレメントには，レジスタREG，演算論理ユニットALUなどが設けられている。
【００８７】
以下に説明する２つのRTL記述ファイルは，論理合成されてコンフィグレーションデータが生成され，そのコンフィグレーションデータによって，図２３のリコンフィグレーションアレイ群が所望の回路に構築される。
【００８８】
図２４は，RTL記述ファイルの第１の例である。100行目は，変数CODEが，START=1なら"0"に，START=0ならIN_DATA[12:7]になることを示す。したがって，この記述には，16bitのIN_DATAを8bitの変数CODEにビット変換の必要性が含まれている。101行目は，変数CODE=6'b100010が真であればFLAG1=1，偽であればFLAG1=0を示す。したがって，コンパレータプロセッサエレメントの回路を示している。102行目は，FLAG0,FLAG1,FLAG2の論理ORと，INHの反転との論理ANDがFLAGになることを示している。
【００８９】
さらに，103〜110行は，クロックCLKの立ち上がりエッジに応答して動作し(103行)，もしFLAG=1ならTEST=0とし(104-106行)，FLAG=0の場合にTMODE=1ならTEST=Aとする(107-109行)ことを示している。
【００９０】
図２５は，図２４のRTL記述ファイルを実現する論理回路と，その論理回路をリコンフィグレーションアレイ群に構築した図である。RTLの100行は，16bitの入力IN_DATA[15:0]を分離して[12:7]の6bitを8bitデータにするビット分割エレメントSPL70と，定数”6’b0”を格納するレジスタ72と，START=0のときにIN_DATA[12:7]を選択し，START=1のときに”6’b0”を選択してCODEを出力するセレクタ71からなる。
【００９１】
さらに，RTLの101行は，定数”6’b100010”を格納するレジスタ74と，CODEと定数”6’b100010”を比較して比較結果FLAG1を出力するコンパレータ73とからなる。RTLの102行は，入力FLAG0,FLAG1,FLAG2,INHを論理演算する論理回路75からなる。また，RTLの103〜110行は，定数”32’b0”を格納するレジスタ78と，FLAGに応じて定数”32’b0”かセレクタ76の出力かを選択してTEST[31:0]を出力するセレクタ77と，TMODEに応じてA[31:0]かTEST[31:0]かを選択するセレクタ76とからなる。
【００９２】
図２５（Ｂ）のリコンフィグレーションアレイ群には，図２５（Ａ）の論理回路の各エレメントの引用文献番号が付記されている。すなわち，16bitのリコンフィグアレイR_ARRAY_2内からはビット分割エレメント70が，8bitのリコンフィグレーションアレイR_ARRAY_1内のレジスタ72,74，コンパレータ73，セレクタ71が，32bitのリコンフィグレーションアレイR_ARRAY_3内のレジスタ78，セレクタ76,77が，そして，1bitのリコンフィグレーションアレイR_ARRAY_0内のデコーダ（論理回路）75が，それぞれネットワークにより接続されて，図２５（Ａ）の論理回路が構築されている。
【００９３】
この例では，16bitのビット分割エレメント70によって，16bitの入力IN_DATAの6bitを8bitのデータに変換して，8bitの論理演算を行うことが可能になっている。なお，FLAGなどの１ビットの制御信号は，直接，32bitのリコンフィグレーションアレイR_ARRAY_3内のセレクタの選択信号として入力されている。
【００９４】
図２６は，RTL記述ファイルの第１の例である。200行は，CLKの立ち上がりエッジまたはRESETの立ち下がりエッジで動作し，201-203行は，！RESET=1ならLO,HIを０にリセットすることを示している。また，204-224行は，LO=9ならLO=0としそれ以外ではLO=LO+1とインクリメントし，LO=9になったとき，HI=5ならHI=0としそれ以外ではHI=HI+1とインクリメントすることを示している。つまり，下位桁0-9のカウンタLOと，上位桁0-5のカウンタHIとが示されている。
【００９５】
図２７は，図２６のRTL記述ファイルを実現する論理回路と，その論理回路をリコンフィグレーションアレイ群に構築した図である。図２７（Ａ）では，コンパレータ81はLOが定数”4’h9”と等しいか否かを判定し，判定結果がYES=1であれば，セレクタ83がレジスタ82の定数”4’h0”を選択し，判定結果がNO=0であれば，セレクタ83が加算器85のLO+1を選択し，セレクタ84がCOUNTON=1の場合に新たなカウンタ値としてセレクタ83の出力を選択し，COUNTON=0の時に出力LOを保持することを示している。以上の構成が下位側のカウンタである。
【００９６】
さらに，レジスタ86，コンパレータ87，レジスタ88，セレクタ89，加算器90，セレクタ92は，上記の下位側のカウンタと同様の構成である。そして，セレクタ91がLO=4の時にセレクタ89の出力を選択し，LO=4以外の時は出力を保持し出力に変更を加えないことを示している。これらの構成が上位側のカウンタである。
【００９７】
そして，図２７（Ｂ）では，16bitのリコンフィグレーションアレイR\ARRAY_2内のプロセッサエレメント80-85により下位側のカウンタが構築され，8bitのリコンフィグレーションアレイR\ARRAY_1内のプロセッサエレメント86-92により上位側のカウンタが構築されている。このRTL記述例では，ビット変換エレメントは利用されていない。
【００９８】
以上の通り，本実施の形態によれば，リコンフィグ可能な集積回路が，ビット幅が異なるリコンフィグレーションアレイを複数有し，ビット幅を変換するプロセッサエレメントを有しているので，RTL記述のようにビット幅の異なる変数への変換の記述が多い場合でも，柔軟に対応して，RTL記述に対応した回路を構築することができる。
【００９９】
以上の実施の形態をまとめると，次の付記のとおりである。
【０１００】
（付記１）
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能なＬＳＩであって，
第１のビット幅の複数のプロセッサエレメントと，前記リコンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第１のリコンフィグレーションアレイと，
前記第１のビット幅と異なる第２のビット幅の複数のプロセッサエレメントと，前記リコンフィグレーションデータに基づいて前記複数のプロセッサエレメント間を任意の接続状態に構築するプロセッサエレメント間ネットワークとを有する第２のリコンフィグレーションアレイと，
前記リコンフィグレーションデータを格納するリコンフィグレーションデータメモリと，
所定のイベントに応答して前記リコンフィグレーションデータメモリから前記リコンフィグレーションデータを読み出し前記第１，第２のリコンフィグレーションアレイに設定するリコンフィグレーション制御回路とを有し，
前記第１または第２のリコンフィグレーションアレイは，前記第１のビット幅の信号配線を前記第２のビット幅の信号配線に変換するビット幅変換エレメントを有するリコンフィグ可能なＬＳＩ。
【０１０１】
（付記２）
付記１において，
前記ビット幅変換エレメントは，前記第１のビット幅の信号線を結合して前記第２のビット幅の信号線に変換するビット結合エレメントを有するリコンフィグ可能なＬＳＩ。
【０１０２】
（付記３）
付記１において，
前記ビット幅変換エレメントは，前記第２のビット幅の信号線の一部を前記第１のビット幅の信号線に変換するビット分割エレメントを有するリコンフィグ可能なＬＳＩ。
【０１０３】
（付記４）
付記１乃至３のいずれかにおいて，
前記第１，第２のビット幅は，８ビットの整数倍のビット幅であるリコンフィグ可能なＬＳＩ。
【０１０４】
（付記５）
付記１乃至３のいずれかにおいて，
前記第１のビット幅は，１ビットであり，前記第２のビット幅は４ビットの整数倍のビット幅であるリコンフィグ可能なＬＳＩ。
【０１０５】
（付記６）
付記１乃至３のいずれかにおいて，
さらに，電源起動時に外部メモリから前記コンフィグレーションデータをロードし，前記コンフィグレーションメモリに格納するローダを有するリコンフィグ可能なＬＳＩ。
【０１０６】
（付記７）
付記６において，
ＲＴＬ記述されたファイルを論理合成して得られたコンフィグレーションデータが前記外部メモリに格納されていて，
前記ＲＴＬ記述内の前記第１のビット幅のデータを前記第２のビット幅のデータに変換する記述に対応するコンフィグレーションデータに基づいて，前記ビット幅変換エレメントが，前記第１のビット幅のデータの信号線を前記第２のビット幅のデータの信号線に変換するよう構築されるリコンフィグ可能なＬＳＩ。
【０１０７】
（付記８）
付記２において，
前記ビット結合エレメントは，前記第１のビット幅の信号線以外の値を前記第２のビット幅の信号線に追加するリコンフィグ可能なＬＳＩ。
【符号の説明】
【０１０８】
R_ARRAY：リコンフィグレーションアレイ        PE:プロセッサエレメント
SPL:ビット分割エレメント                    BND:ビット結合エレメント
NW:プロセッサエレメント間ネットワーク
【図１】
0005633303.tif 000002
【図２】
0005633303.tif 000003
【図３】
0005633303.tif 000004
【図４】
0005633303.tif 000005
【図５】
0005633303.tif 000006
【図６】
0005633303.tif 000007
【図７】
0005633303.tif 000008
【図８】
0005633303.tif 000009
【図９】
0005633303.tif 000010
【図１０】
0005633303.tif 000011
【図１１】
0005633303.tif 000012
【図１２】
0005633303.tif 000013
【図１３】
0005633303.tif 000014
【図１４】
0005633303.tif 000015
【図１５】
0005633303.tif 000016
【図１６】
0005633303.tif 000017
【図１７】
0005633303.tif 000018
【図１８】
0005633303.tif 000019
【図１９】
0005633303.tif 000020
【図２０】
0005633303.tif 000021
【図２１】
0005633303.tif 000022
【図２２】
0005633303.tif 000023
【図２３】
0005633303.tif 000024
【図２４】
0005633303.tif 000025
【図２５】
0005633303.tif 000026
【図２６】
0005633303.tif 000027
【図２７】
0005633303.tif 000028