(57)【要約】  本発明に係る半導体集積回路（１００）は、クロックに同期して動作を行い、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコア（１０１）と、前記複数のリコンフィギュラブルコア（１０１）に含まれる第１のリコンフィギュラブルコアと第２のリコンフィギュラブルコアとの間に形成され、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第１のレジスタ回路群（１０２）とを備え、前記複数のリコンフィギュラブルコア（１０１）の各々は、アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメント（２０１）と、前記複数のロジックエレメント（２０１）の間を接続するプログラマブルな配線（２０２及び２０３）とを備える。
2008013098.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
前記複数のリコンフィギュラブルコアに含まれる第１のリコンフィギュラブルコアと第２のリコンフィギュラブルコアとの間に形成され、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備え、
前記複数のリコンフィギュラブルコアの各々は、
アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、
前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える
ことを特徴とする半導体集積回路。
【請求項２】
前記第１のレジスタ回路群は、
前記第１のリコンフィギュラブルコアの出力を一時保持する第１のレジスタ回路と、
前記第１のレジスタ回路から出力されるデータを保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路とを含む
ことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記第１のレジスタ回路及び前記第２のレジスタ回路に入力されるクロックは、前記第２のレジスタ回路が保持するデータの出力先となるリコンフィギュラブルコアと同一のクロックである
ことを特徴とする請求項２記載の半導体集積回路。
【請求項４】
前記第１のレジスタ回路群へデータを出力するリコンフィギュラブルコアと、前記第１のレジスタ回路群からデータが入力されるリコンフィギュラブルコアとは入力されるクロックが異なる
ことを特徴とする請求項３記載の半導体集積回路。
【請求項５】
前記複数のリコンフィギュラブルコアは、
前記リコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータが入力される第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有する第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアを含み、
前記第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアは、前記第１の辺同士が対向するように分離してレイアウトされる
ことを特徴とする請求項１記載の半導体集積回路。
【請求項６】
前記半導体集積回路は、さらに、
前記第３のリコンフィギュラブルコアと前記第４のリコンフィギュラブルコアとの間に形成され、前記第３のリコンフィギュラブルコア及び前記第４のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第１記憶回路を備える
ことを特徴とする請求項５記載の半導体集積回路。
【請求項７】
前記複数のリコンフィギュラブルコアは、さらに、
第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有す第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアを含み、
前記第５のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第１の辺同士が対向するように分離して配置され、
前記第３のリコンフィギュラブルコアと第５のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置され、
前記第４のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置される
ことを特徴とする請求項６記載の半導体集積回路。
【請求項８】
前記半導体集積回路は、さらに、
前記第５のリコンフィギュラブルコアと前記第６のリコンフィギュラブルコアとの間に形成され、前記第５のリコンフィギュラブルコア及び前記第６のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第２記憶回路を備える
ことを特徴とする請求項７記載の半導体集積回路。
【請求項９】
前記半導体集積回路は、さらに、
前記第１のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１０】
前記第１のレジスタ回路群は、
前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路群と、
前記第２のリコンフィギュラブルコアの出力を一時保持し、前記第１のリコンフィギュラブルコアへと出力する第３のレジスタ回路群とを含む
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１１】
前記第１のレジスタ回路群は、前記複数のリコンフィギュラブルコアの間のうち、隣接するリコンフィギュラブルコアの間の全てに配置され、隣接する２つのリコンフィギュラブルコアのうち一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１２】
前記複数のリコンフィギュラブルコアには全て同一のクロックが入力される
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１３】
前記第１のレジスタ回路群は、複数のビットから構成されるデータを複数組保持する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１４】
前記ロジックエレメントの各々はＬＵＴを備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１５】
前記ロジックエレメントの各々は少なくとも１つのＡＬＵを備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１６】
前記半導体集積回路は、さらに、
ＣＰＵを備え、
前記複数のリコンフィギュラブルコア、前記第１のレジスタ回路群、及び前記ＣＰＵは、１つの半導体基板上に実装される
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１７】
自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、
回路記述に記述される回路機能をマッピングするマッピング装置であって、
前記回路機能を、複数の回路機能ブロックに分割する分割手段と、
前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外手段と、
前記除外された回路機能ブロックの各々を論理合成する合成手段と、
前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線手段とを備える
ことを特徴とするマッピング装置。
【請求項１８】
複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置であって、
前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、
前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成手段と、
前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出手段と、
前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択手段とを備える
ことを特徴とするプログラム変換装置。
【請求項１９】
前記プログラム変換装置は、さらに、
前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、
前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを１つのモジュールとして、モジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する
ことを特徴とする請求項１８記載のプログラム変換装置。
【請求項２０】
自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、
回路記述に記述される回路機能をマッピングするマッピング装置におけるマッピング方法であって、
前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、
前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外ステップと、
前記除外された回路機能ブロックの各々を論理合成する合成ステップと、
前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線ステップとを含む
ことを特徴とするマッピング方法。
【請求項２１】
複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換方法であって、
前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出ステップと、
前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成ステップと、
前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出ステップと、
前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む
ことを特徴とするプログラム変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、プログラム変換装置及びマッピング装置に関し、特に、複数のリコンフィギュラブルコアを備える半導体集積回路に関する。
【背景技術】
【０００２】
従来、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）に代表される自己の論理を再構成することが可能な半導体集積回路（以下、「論理再構成可能な半導体集積回路」と記す。）が存在する。【０００３】
図１は、従来の論理再構成可能な半導体集積回路の全体構成を示す図である。図１に示す従来の論理再構成可能な半導体集積回路５００は、アレイ状に配置される複数のロジックエレメント（ＬＥ）５０１を備える。論理再構成可能な半導体集積回路の一つであるＦＰＧＡでは、ロジックエレメント５０１は、ルックアップテーブル（ＬＵＴ）で構成される。ＬＵＴの内容を書き換えることによって、ロジックエレメント５０１の入力に対する出力の関係が変化する。また、各々のロジックエレメント５０１は図示しないプログラマブルな配線で接続される。プログラマブルな配線により、何れのロジックエレメント５０１の出力が何れのロジックエレメント５０１に入力されるかがプログラマブルに決定される。以上のように、ロジックエレメント５０１の入力に対する出力の関係と、各々のロジックエレメント５０１の接続関係とを変更することによって、半導体集積回路５００に所望の回路機能を実現できる。【０００４】
また、プログラマブルな配線については、全てのロジックエレメントが全てのロジックエレメントと直接接続されるようにすると最も接続の自由度が高くなるが、配線リソースが膨大となって現実的ではない。一方で１つのロジックエレメントが１つのロジックエレメントとしか接続できないとすると自由度がない。配線リソースと自由度とのバランスをとってどのような配線構造とすると効率がよいかについては様々に考えられており、一例として特許文献１に記載される技術が知られている。【０００５】
次に、図１に示す論理再構成可能な半導体集積回路５００に所望の回路機能をマッピングする方法について図２を用いて説明する。図２は、従来の論理再構成可能な半導体集積回路５００に対するマッピングの流れを示す図である。図２に示すマッピングは論理再構成可能な半導体集積回路５００のアーキテクチュア毎に専用の合成ツール及びＰ＆Ｒ（Ｐｌａｃｅ  ａｎｄ  Ｒｏｕｔｅ）ツールを用いて行われる。【０００６】
まず、ユーザは、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語、又はＣ言語などの上級言語を用いて、実現すべき回路機能を記述する（Ｓ１０１）。次に、合成ツールが、記述された回路機能に対して論理合成を行う（Ｓ１０２）。具体的には、合成ツールは、記述された回路機能を１つのロジックエレメント５０１に割り当て可能な機能単位に分割する。次に、合成ツールは、分割された機能単位間の接続関係を決定する。【０００７】
次に、Ｐ＆Ｒツールが、分割された機能単位を実回路におけるロジックエレメント５０１上に配置する（Ｓ１０３）。これにより、各々のロジックエレメント５０１の機能（入力に対する出力の関係）が決定される。【０００８】
次に、Ｐ＆Ｒツールが、論理合成によって決定された接続関係を満たすように、プログラマブルな配線を用いてロジックエレメント５０１間を配線する（Ｓ１０４）。【０００９】
以上の配置及び配線を、速度（タイミング）及び回路領域（面積）に対する所定の制限が満たされるまで繰り返す。所定の制限が満たされた場合に、マッピングが終了する。また、所定の制限が満たされない場合には、論理合成を再度行うこともある。【００１０】
なお、２つのＦＰＧＡをマスクのレイアウト上で接続することにより、少ない設計工数で大規模な論理再構成可能な半導体集積回路を構築する手法が特許文献２に開示されている。
【特許文献１】米国特許第５５９４３６３号明細書
【特許文献２】米国特許第６３３５６３５号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、近年、デジタルＴＶ及び携帯電話に代表されるデジタル機器の多機能化は目覚ましく、これらのデジタル機器で処理される内容も複雑になっている。これに伴い、論理再構成可能な半導体集積回路を用いて実現すべき回路機能も大規模化が進んでおり、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマッピングする必要性が高まっている。【００１２】
特許文献２に開示される論理再構成可能な半導体集積回路は、基本単位の集合体であるのでスケーラビリティに富み、かつ規模拡張が比較的容易である。しかしながら、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマッピングする場合、まず実現すべき回路機能を機能単位に分割する組み合わせが増大する。さらに各々の機能単位をどのロジックエレメントに割り当てるかの組み合わせが増大する。さらにプログラマブルな配線をどのように用いてロジックエレメント間を接続するかの組み合わせも増大する。結果として、回路規模の増大に伴ってマッピングの組み合わせは急激に増大する。したがって、従来の合成ツール及びＰ＆Ｒツールを用いて大規模な再構成可能な半導体集積回路を最大限用いて回路機能を実現しようとした場合、マッピングが収束しないことも考えられる。一方でこれらの課題を解決できるような賢い合成ツール及びＰ＆Ｒツールは現状では存在していない。【００１３】
本発明は上記に鑑みてなされたものであり、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供することを目的とする。【００１４】
さらに、別の目的として、複数のリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明に係る半導体集積回路は、クロックに同期して動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアに含まれる第１のリコンフィギュラブルコアと第２のリコンフィギュラブルコアとの間に形成され、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備え、前記複数のリコンフィギュラブルコアの各々は、アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える。【００１６】
この構成によれば、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできるので、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。よって、本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供できる。【００１７】
また、前記第１のレジスタ回路群は、前記第１のリコンフィギュラブルコアの出力を一時保持する第１のレジスタ回路と、前記第１のレジスタ回路から出力されるデータを保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路とを含んでもよい。【００１８】
この構成によれば、配線距離に起因する遅延に対してタイミング制約を緩和できる。【００１９】
また、前記第１のレジスタ回路及び前記第２のレジスタ回路に入力されるクロックは、前記第２のレジスタ回路が保持するデータの出力先となるリコンフィギュラブルコアと同一のクロックであってもよい。【００２０】
この構成によれば、各リコンフィギュラブルコアを非同期で動作させた場合でも、第２のレジスタ回路でデータを確実に保持できる。よって、メタステーブル（セットアップ制約又はホールド制約が満たされない状態）の発生を防止できる。【００２１】
また、前記第１のレジスタ回路群へデータを出力するリコンフィギュラブルコアと、前記第１のレジスタ回路群からデータが入力されるリコンフィギュラブルコアとは入力されるクロックが異なってもよい。【００２２】
この構成によれば、各リコンフィギュラブルコアを非同期で動作させた場合に発生するメタステーブルの発生を防止できる。【００２３】
また、前記複数のリコンフィギュラブルコアは、前記リコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータが入力される第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有する第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアを含み、前記第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアは、前記第１の辺同士が対向するように分離してレイアウトされてもよい。【００２４】
この構成によれば、コンフィギュレーションデータを第１の辺から第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、記憶回路から、第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。よって、本発明は、複数のリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となるレイアウトを有する半導体集積回路を提供できる。【００２５】
また、前記半導体集積回路は、さらに、前記第３のリコンフィギュラブルコアと前記第４のリコンフィギュラブルコアとの間に形成され、前記第３のリコンフィギュラブルコア及び前記第４のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第１記憶回路を備えてもよい。【００２６】
この構成によれば、第１記憶回路に保持されるコンフィギュレーションデータを第１の辺から第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、第１記憶回路から、第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。【００２７】
また、前記複数のリコンフィギュラブルコアは、さらに、第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有す第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアを含み、前記第５のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第１の辺同士が対向するように分離して配置され、前記第３のリコンフィギュラブルコアと第５のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置され、前記第４のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置されてもよい。【００２８】
この構成によれば、４つのリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、各リコンフィギュラブルコアにおける同じ用途に用いられる信号の入出力端子が、各リコンフィギュラブルコア間で対向して配置される。これにより、チップ設計を容易に行うことができる。また、リコンフィギュラブルコア間の配線距離を短くできる。【００２９】
また、前記半導体集積回路は、さらに、前記第５のリコンフィギュラブルコアと前記第６のリコンフィギュラブルコアとの間に形成され、前記第５のリコンフィギュラブルコア及び前記第６のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第２記憶回路を備えてもよい。【００３０】
この構成によれば、第２記憶回路に保持されるコンフィギュレーションデータを第１の辺から第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、第２記憶回路から、第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。【００３１】
また、前記半導体集積回路は、さらに、前記第１のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を備えてもよい。【００３２】
この構成によれば、リコンフィギュラブルコア間で双方向にデータが受け渡される場合でも、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。【００３３】
また、前記第１のレジスタ回路群は、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路群と、前記第２のリコンフィギュラブルコアの出力を一時保持し、前記第１のリコンフィギュラブルコアへと出力する第３のレジスタ回路群とを含んでもよい。【００３４】
この構成によれば、全てのリコンフィギュラブルの各々を独立した回路として回路機能をマッピングできる。【００３５】
また、前記第１のレジスタ回路群は、前記複数のリコンフィギュラブルコアの間のうち、隣接するリコンフィギュラブルコアの間の全てに配置され、隣接する２つのリコンフィギュラブルコアのうち一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力してもよい。【００３６】
この構成によれば、使用されない第１のレジスタ回路群へのクロックの供給を停止できる。これにより、本発明に係る半導体集積回路は、余分な消費電力を削減できる。【００３７】
また、前記複数のリコンフィギュラブルコアには全て同一のクロックが入力されてもよい。【００３８】
この構成によれば、半導体集積回路の構成を単純化できる。【００３９】
また、前記第１のレジスタ回路群は、複数のビットから構成されるデータを複数組保持してもよい。【００４０】
この構成によれば、本発明に係る半導体集積回路は、リコンフィギュラブルコア間で複数のデータを受け渡しできる。【００４１】
また、前記ロジックエレメントの各々はＬＵＴを備えてもよい。【００４２】
この構成によれば、ルックアップテーブルの内容を書き換えることによって、ロジックエレメントの入力に対する出力の関係を任意に変更できる。【００４３】
また、前記ロジックエレメントの各々は少なくとも１つのＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）を備えてもよい。【００４４】
この構成によれば、画像の符号化、画像の復号化及び暗号処理などの単純な演算の繰り返しによって構成される信号処理演算に最適なリコンフィギュラブルコアが実現できる。【００４５】
また、前記半導体集積回路は、さらに、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、前記複数のリコンフィギュラブルコア、前記第１のレジスタ回路群、及び前記ＣＰＵは、１つの半導体基板上に実装されてもよい。【００４６】
この構成によれば、ＣＰＵを含むＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）において、専用ハードウェアを設けなくても１つの論理再構成可能な半導体集積回路で多種の処理を行うことができる。【００４７】
また、本発明に係るマッピング装置は、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングするマッピング装置であって、前記回路機能を、複数の回路機能ブロックに分割する分割手段と、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外手段と、前記除外された回路機能ブロックの各々を論理合成する合成手段と、前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線手段とを備える。【００４８】
この構成によれば、本発明に係るマッピング装置は、回路記述に含まれる第１のレジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、本発明に係るマッピング装置は、各々のリコンフィギュラブルコアを独立にマッピングできる。よって、本発明に係るマッピング装置は、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。【００４９】
また、本発明に係るプログラム変換装置は、複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成手段と、前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出手段と、前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択手段とを備える。【００５０】
この構成によれば、本発明に係るプログラム変換装置は、回路記述に第１のレジスタ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間にレジスタを挿入した回路記述に変換できる。【００５１】
また、前記プログラム変換装置は、さらに、前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを１つのモジュールとして、モジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成してもよい。【００５２】
この構成によれば、本発明に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えない。これにより、プログラム変換装置の処理量を低減できる。【００５３】
また、本発明に係るマッピング方法は、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングするマッピング装置におけるマッピング方法であって、前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外ステップと、前記除外された回路機能ブロックの各々を論理合成する合成ステップと、前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線ステップとを含む。【００５４】
この方法によれば、回路記述に含まれる第１のレジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、各々のリコンフィギュラブルコアを独立にマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。【００５５】
また、本発明に係るプログラム変換方法は、複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換方法であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出ステップと、前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成ステップと、前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出ステップと、前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む。【００５６】
この方法によれば、回路記述に第１のレジスタ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプログラム変換方法は、設計者により記述された従来と同様の回路記述を、モジュール間にレジスタを挿入した回路記述に変換できる。【００５７】
なお、本発明は、このような半導体集積回路、マッピング装置、そのマッピング方法、プログラム変換装置、及びそのプログラム変換方法として実現できるだけでなく、マッピング方法及びプログラム変換方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００５８】
本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供できる。また、本発明は、複数のリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供できる。
【図面の簡単な説明】
【００５９】
【図１】図１は、従来の論理再構成可能な半導体集積回路の構成を示す図である。
【図２】図２は、従来の論理再構成可能な半導体集積回路への回路機能のマッピングの流れを示す図である。
【図３】図３は、本発明の実施の形態１に係る半導体集積回路の構成を示す図である。
【図４】図４は、本発明の実施の形態１に係る論理再構成可能な半導体集積回路の構成を示す図である。
【図５】図５は、本発明の実施の形態１に係るリコンフィギュラブルコアの構成を示す図である。
【図６】図６は、本発明の実施の形態１に係るロジックエレメント周辺の構成を示す図である。
【図７】図７は、本発明の実施の形態１に係るロジックエレメントの詳細な構成を示す図である。
【図８】図８は、本発明の実施の形態１に係るマッピング装置の構成を示す図である。
【図９】図９は、本発明の実施の形態１に係る回路機能のマッピングの流れを示すフローチャートである。
【図１０】図１０は、本発明の実施の形態１に係る回路機能のマッピングにおける各リコンフィギュラブルコアへの割り当てを説明するための図である。
【図１１】図１１は、本発明の実施の形態１に係る回路機能のマッピングにおける１つのリコンフィギュラブルコへの回路機能のマッピングの流れを示すフローチャートである。
【図１２】図１２は、本発明の実施の形態１に係る半導体集積回路の変形例の構成を示す図である。
【図１３】図１３は、本発明の実施の形態２に係る半導体集積回路の構成を示す図である。
【図１４】図１４は、本発明の実施の形態３に係るプログラム変換装置の処理の流れを示すフローチャートである。
【図１５】図１５は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【図１６】図１６は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【図１７】図１７は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【図１８】図１８は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【符号の説明】
【００６０】
１  半導体装置
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＤＭＡ
１３  ハードウェア回路
１００、１５０、２００、５００  半導体集積回路（ＦＰＧＡ）
１０１、１０１Ａ、１０１Ｂ、１０１Ｃ、１０１Ｄ  リコンフィギュラブルコア
１０２  レジスタ回路
１０３、１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ  メモリ
１０４  第１クロック停止回路
１０５  第２クロック停止回路
２０１、５０１  ロジックエレメント
２０２  スイッチボックス
２０３  配線ボックス群
２０４Ｅ、２０４Ｎ、２０４Ｓ、２０４Ｗ  ＩＯ部
２１０  ルックアップテーブル
２１１  マルチプレクサ
２１２  フリップフロップ
２２１Ａ、２２１Ｂ、２２１Ｃ、２２１Ｄ、２２１Ｅ、２２１Ｆ、３０１Ａ、３０１Ｂ、３０１Ｃ、３０１Ｄ、３０１Ｅ  モジュール
２２２Ａ、２２２Ｂ、２２２Ｃ、２２２Ｄ、２２２Ｅ、３０２、３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ、３０２ＢＦ  レジスタ
３０１Ｆ  仮想モジュール
４００  マッピング装置
４０１  キーボード
４０２  ディスプレイ
４０３  ＣＰＵ
４０４  ＲＯＭ
４０５  ＲＡＭ
４０６  プログラム
【発明を実施するための最良の形態】
【００６１】
以下、本発明に係る半導体集積回路の実施の形態について、図面を参照しながら詳細に説明する。【００６２】
（実施の形態１）
本発明の実施の形態１に係る半導体集積回路は、複数のリコンフィギュラブルコア間にそれぞれ２段のレジスタ回路を備える。これにより、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、容易にマッピングできる。【００６３】
まず、本発明の実施の形態１に係る半導体集積回路の構成を説明する。【００６４】
図３は、本発明の実施の形態１に係る再構成可能な半導体集積回路を備える半導体装置の構成を示す図である。【００６５】
図３に示す半導体装置１は、ＣＰＵ１０と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）１２と、ハードウェア回路１３と、ＦＰＧＡ１００とを備える。【００６６】
ＣＰＵ１０は、半導体装置１の全体の制御を行う。ＲＡＭ１１は、読み書き可能な記憶部である。ＤＭＡ１２は、ＦＰＧＡ１００及びハードウェア回路１３と、ＲＡＭ１１との間のデータ転送を行なう。ハードウェア回路１３は、所定の機能を実現する専用ハードウェアで構成された回路である。ＦＰＧＡ１００は、再構成可能な半導体集積回路であり、本発明に係る半導体集積回路の一例である。【００６７】
例えば、ＣＰＵ１０、ＲＡＭ１１、ＤＭＡ１２、ハードウェア回路１３及びＦＰＧＡ１００は、１つの半導体基板上に実装されている。すなわち、本発明の実施の形態１に係る半導体集積回路（ＦＰＧＡ）１００は、所謂ＳＯＣにおける１つの回路ブロックとして構成される。【００６８】
図４は、本発明の実施の形態１に係る論理再構成可能な半導体集積回路１００の構成を示す図である。図４に示す半導体集積回路１００は、論理再構成可能な半導体集積回路である。半導体集積回路１００は、４つのリコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄと、複数のレジスタ回路１０２と、２つのメモリ１０３Ａ及び１０３Ｂとを備える。【００６９】
リコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄは、各々が自己の論理を再構成することが可能な回路である。なお、リコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄを特に区別しない場合には、リコンフィギュラブルコア１０１と記す。リコンフィギュラブルコア１０１は、コアの外部から入力されるコンフィギュレーションデータに応じてその内部の接続関係を変更し、それによって論理を再構成することが可能な回路である。なお、コンフィギュレーションデータはリコンフィギュラブルコア１０１の内部に複数セット予め格納しておくことも可能である。【００７０】
また、各々のリコンフィギュラブルコア１０１は矩形の形状であり、東（Ｅ）、西（Ｗ）、南（Ｓ）、北（Ｎ）の４つの辺を有している。リコンフィギュラブルコア１０１はこれら４つの辺について対称ではなく、東西方向と南北方向で内部の配線構造は異なっている。また、本実施の形態においてはリコンフィギュラブルコア１０１の論理を再構成するためのコンフィギュレーションデータはＳ方向から入力されるものとする。各々のリコンフィギュラブルコア１０１はチップ設計上ハードマクロとして取り扱われ、これによって複数のコアを容易に１チップに実装することが可能となる。【００７１】
また、リコンフィギュラブルコア１０１は、クロックに同期して動作する。本実施の形態において各々のリコンフィギュラブルコア１０１には別々のクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＤが入力される。【００７２】
図５は、リコンフィギュラブルコア１０１（１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄ）の構成を示す図である。リコンフィギュラブルコア１０１は、複数のロジックエレメント（ＬＥ）２０１と、複数のスイッチボックス（ＳＢ）２０２と、複数の配線ボックス群（ＣＢ）２０３と、ＩＯ部２０４Ｎ、２０４Ｅ、２０４Ｓ及び２０４Ｗと、行方向及び列方向に延びる配線群とを備える。【００７３】
複数のロジックエレメント２０１は、アレイ状に配置され、各々が所定の論理を実現する。ロジックエレメント２０１は、コンフィギュレーションデータに応じて、その機能（入力に対する出力の関係）を変更することが可能な機能素子である。スイッチボックス２０２は、コンフィギュレーションデータに応じて、何れの配線と何れの配線とを接続するかが決定される。配線ボックス群２０３は、コンフィギュレーションデータに応じて、ロジックエレメント２０１の入力及び出力を何れの配線に接続するかが決定される。【００７４】
スイッチボックス２０２及び配線ボックス群２０３の接続関係を制御することによって、何れのロジックエレメント２０１の出力が何れのロジックエレメント２０１の入力に接続されるかをプログラマブルに決定できる。そこで本実施の形態においては、このスイッチボックス２０２、配線ボックス群２０３、及び配線群を総称して、単にプログラマブルな配線とも称する。また、リコンフィギュラブルコア１０１内にはプログラマブルな配線とは別にクロック配線も設けられる。【００７５】
ＩＯ部２０４Ｎ、２０４Ｅ、２０４Ｓ及び２０４Ｗは、リコンフィギュラブルコア１０１の東西南北方向の各々に配置される入出力回路である。【００７６】
ＩＯ部２０４Ｎは、リコンフィギュラブルコア１０１のＮ方向に配置される。ＩＯ部２０４Ｎは、アプリケーションデータバス用及び制御用の入出力を有する。【００７７】
ＩＯ部２０４Ｅは、リコンフィギュラブルコア１０１のＥ方向に配置される。ＩＯ部２０４Ｅは、アプリケーションデータバス用の入出力を有する。【００７８】
ＩＯ部２０４Ｓは、リコンフィギュラブルコア１０１のＳ方向に配置される。ＩＯ部２０４Ｓは、アプリケーションデータバス用及び制御用の入出力を有する。さらに、ＩＯ部２０４Ｓは、コンフィギュレーションデータ用の入出力を有する。【００７９】
ＩＯ部２０４Ｗは、リコンフィギュラブルコア１０１のＷ方向に配置される。ＩＯ部２０４Ｗは、制御用の入出力を有する。【００８０】
ここで、アプリケーションデータバス用の入出力は、他のリコンフィギュラブルコア１０１、ＣＰＵ１０、ＤＭＡ１２及びハードウェア回路１３との間で演算結果の入出力に用いられる。制御用の入出力は、ＣＰＵ１０、ＤＭＡ１２及びハードウェア回路１３等の外部ハードウェアとの間の制御信号の入出力に用いられる。コンフィギュレーションデータ用の入出力は、メモリ１０３Ａ及び１０３Ｂからのコンフィギュレーションデータの入力に用いられる。【００８１】
このように、Ｓ方向の一方向のみからコンフィギュレーションデータを入力する構造にすることによって、リコンフィギュラブルコア１０１の配線構造を簡易化できる。また、リコンフィギュラブルコア１０１の各方向に、入出力の配置が異なるＩＯ部を配置することで、用途に応じた最適なレイアウト配置を実現できる。【００８２】
図６は、リコンフィギュラブルコア１０１の内部をさらに詳細に説明するための図である。図６は、１つのロジックエレメント２０１と、その周辺に配置されるスイッチボックス２０２、及び配線ボックス群２０３の構成を示す図である。【００８３】
本実施の形態においては、ロジックエレメント２０１は４入力２出力の機能素子であり、その入力は西方向、出力は東方向に設けられる。配線ボックス群２０３はこの東西方向に延びるロジックエレメント２０１の入出力を南北方向に延びる配線の何れに接続するかをプログラマブルに決定する。【００８４】
スイッチボックス２０２は東西方向に延びる配線と南北方向に延びる配線とをプログラマブルに接続する。また、ロジックエレメント２０１の出力は南北方向の配線に一度乗り換えた後に配線ボックス群を介して東西方向の配線へと接続することも可能である。またロジックエレメント２０１には、プログラマブルな配線とは異なる配線でクロックが供給される。【００８５】
図７は、ロジックエレメント２０１の詳細な構成を示す図である。本実施の形態において、ロジックエレメント２０１は、ルックアップテーブル（ＬＵＴ）２１０と、複数のプログラム可能なマルチプレクサ２１１と、フリップフロップ２１２とを備える。ルックアップテーブル２１０は、１つが小規模なメモリで構成される。ルックアップテーブル２１０の入力に対する出力の関係は、メモリに保持される内容が書き換えられることにより、変更される。複数のプログラマブルなマルチプレクサ２１１の各々により選択される信号は、コンフィギュレーションデータ又は他のロジックエレメント２０１からの出力に応じて決定される。【００８６】
図５〜図７に示されるように、各々のリコンフィギュラブルコア１０１が複数のロジックエレメント２０１をアレイ状に配置した構成を有するため、ハードマクロとしてのリコンフィギュラブルコア１０１内部ではロジックエレメント２０１を接続するためのプログラマブルな配線が密に配線されている。リコンフィギュラブルコア１０１と外部との境界領域ではアプリケーションデータバス用、制御用、及びコンフィギュレーション用のＩＯからの配線が比較的疎な配線として配線されている。リコンフィギュラブルコア１０１間ではＩＯ部からの配線に加えて、半導体集積回路１００と同一チップ上の他の回路ブロックとの接続を行うための配線が配線されている。すなわち、各々のリコンフィギュラブルコア１０１はチップレイアウト上で分離されており、その配線構造は内部と外部とで明らかに異なる。【００８７】
再び図４を参照して説明を行う。メモリ１０３Ａ及び１０３Ｂは、リコンフィギュラブルコア１０１に入力されるコンフィギュレーションデータを一時格納するためのメモリである。なお、メモリ１０３Ａ及び１０３Ｂを特に区別しない場合には、メモリ１０３と記す。メモリ１０３Ａは、リコンフィギュラブルコア１０１Ａ及び１０１Ｃの論理を再構成するためのコンフィギュレーションデータを格納する。メモリ１０３Ｂは、リコンフィギュラブルコア１０１Ｂ及び１０１Ｄの論理を再構成するためのコンフィギュレーションデータを格納する。また、メモリ１０３Ａは、リコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｃとの間に配置される。メモリ１０３Ｂは、リコンフィギュラブルコア１０１Ｂとリコンフィギュラブルコア１０１Ｄとの間に配置される。【００８８】
本発明の１つの特徴として、４つのリコンフィギュラブルコア１０１のうちリコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｃとは、Ｓ方向が対向するように配置される。また、リコンフィギュラブルコア１０１Ｂとリコンフィギュラブルコア１０１ＤとはＳ方向が対向するように配置される。コンフィギュレーションデータはＳ方向からのみ入力されるので、このようなレイアウトとすることによって、メモリ１０３を固めて配置することが可能となり、チップ設計が容易となる。また、メモリ１０３から各々のリコンフィギュラブルコア１０１への配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。なお、図中で示してはいないが、メモリ１０３とリコンフィギュラブルコア１０１とは複数ビットのバスで接続されている。【００８９】
また、リコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｂとは、Ｅ方向が対向するように配置される。リコンフィギュラブルコア１０１Ｃとリコンフィギュラブルコア１０１Ｄとは、Ｅ方向が対向するように配置される。上述したようにリコンフィギュラブルコア１０１のＥ方向は、アプリケーションデータバス用のＩＯが配置される。ここで、一般にアプリケーションデータバスには配線遅延の減少が望まれる。一方、制御用の信号配線は、配線遅延の影響が比較的問題にならない。よって、Ｅ方向が対向するように複数のリコンフィギュラブルコア１０１を配置することで、リコンフィギュラブルコア１０１間のアプリケーションデータバスの配線距離を短くできる。これにより、アプリケーションデータバスの配線遅延の影響を低減できる。【００９０】
また、本実施の形態の特徴のひとつとして、論理再構成可能な半導体集積回路１００は、上下方向あるいは左右方向に隣接するリコンフィギュラブルコア１０１の間の各々にレジスタ回路１０２を２段設けている。【００９１】
各々のレジスタ回路１０２は、複数のフリップフリップで構成されており、複数ビット（例えば、１６ビット）からなるデータを複数セット保持することが可能である。各々の２段のレジスタ回路は、隣接するリコンフィギュラブルコア１０１間の全てに形成される。各々の２段のレジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１の出力を一時保持し、データの入力先となるリコンフィギュラブルコア１０１に出力する。２段のレジスタ回路１０２のうち前段のレジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１から出力されるデータをクロックに同期して保持し、後段のレジスタ回路１０２に出力する。２段のレジスタ回路１０２のうち後段のレジスタ回路１０２は、前段のレジスタ回路１０２から出力されるデータをクロックに同期して保持し、データの入力先となるリコンフィギュラブルコア１０１に出力する。【００９２】
また、隣接するリコンフィギュラブルコア１０１間には、隣接する２つのリコンフィギュラブルコア１０１のうち一のリコンフィギュラブルコア１０１の出力を一時保持し、他のリコンフィギュラブルコア１０１へと出力する２段のレジスタ回路１０２と、他のリコンフィギュラブルコア１０１の出力を一時保持し、一のリコンフィギュラブルコア１０１へと出力する２段のレジスタ回路１０２とが形成される。【００９３】
各リコンフィギュラブルコア１０１は、レジスタ回路１０２を２段介してデータのやりとりを行う。これにより、各々のリコンフィギュラブルコア１０１は独立した回路として取り扱うことができる。論理再構成可能な半導体集積回路１００全体が大規模な回路になったとしても、各々のリコンフィギュラブルコア１０１自体は独立した１／４の大きさの回路にしかならない。そのため、大規模な回路機能をマッピングしようとした場合であっても、各々のリコンフィギュラブルコア１０１内でのマッピングの組み合わせを限られたものにできる。したがって、高速に回路機能をマッピングできる。なお、マッピングの詳細については後述する。【００９４】
ここで、レジスタ回路１０２を２段設けている１つの理由は配線距離に起因する遅延に対してタイミング制約を緩和するためである。例えば、レジスタ回路１０２を１段しか設けない場合、レジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１の最も離れた位置のロジックエレメント２０１からの出力データをあるクロックエッジで格納し保持し、次のクロックエッジでデータの入力先となるリコンフィギュラブルコア１０１の最も離れた位置のロジックエレメント２０１までデータを出力しなくてはならない可能性があり、タイミング制約が厳しくなる。一方、レジスタ回路１０２を２段設けることによってこの制約は緩和される。例えば、２段のレジスタ回路１０２のうち、初段のレジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１側の近傍に配置され、２段目のレジスタ回路１０２は、データの入力先となるリコンフィギュラブルコア１０１側の近傍に配置される。【００９５】
また、レジスタ回路１０２に入力されるクロックはデータの出力先となるリコンフィギュラブルコア１０１に入力されるクロックと同一のクロックが入力される。例えば、リコンフィギュラブルコア１０１Ａからリコンフィギュラブルコア１０１Ｃへとデータが転送される経路上に設けられたレジスタ回路１０２にはリコンフィギュラブルコア１０１Ｃと同一のクロックＣＬＫＣが供給される。これにより、各リコンフィギュラブルコア１０１を非同期で動作させた場合でも、少なくとも後段のレジスタ回路１０２ではデータが確実に保持される。よって、半導体集積回路１００は、各リコンフィギュラブルコア１０１を非同期で動作させた場合に生じるメタステーブル（セットアップ制約、又はホールド制約が満たされない状態）の発生を防止できる。【００９６】
次に、マッピング装置を用いて、本発明の実施の形態１に係る論再構成可能な半導体集積回路１００に回路機能をマッピングする方法について説明する。マッピングによりメモリ１０３に保持されるコンフィギュレーションデータが作成される。【００９７】
図８は、本発明の実施の形態１に係るマッピング装置のハードウェア構成を示す図である。図８に示すマッピング装置４００は、上述した半導体集積回路１００に回路記述に記述される回路機能をマッピングする。マッピング装置４００は、例えば、パーソナルコンピュータである。マッピング装置４００は、キーボード４０１と、ディスプレイ４０２と、ＣＰＵ４０３と、ＲＯＭ４０４と、ＲＡＭ４０５とを備える。【００９８】
キーボード４０１は、設計者による操作を受け付ける。ディスプレイ４０２は、設計者に処理結果等を表示する。ＣＰＵ４０３は、ＲＯＭ４０４に格納されるプログラム４０６を実行することにより、マッピング装置４００の全体を制御する。ＲＯＭ４０４は、ＣＰＵ４０３により実行されるプログラム４０６を格納する読み出し専用メモリである。なお、プログラム４０６は、図示しない不揮発性メモリ又はＨＤ（Ｈａｒｄ  Ｄｉｓｋ）等に保持されてもよい。ＲＡＭ４０５は、ＣＰＵ４０３がプログラム４０６を実行する際に用いられるワークデータ等を保持する読み書き可能なメモリである。【００９９】
以上の構成により、マッピング装置４００のＣＰＵ４０３がプログラム４０６を実行することにより、半導体集積回路１００に回路記述に記述される回路機能をマッピングする。【０１００】
なお、マッピング装置４００によるマッピングは、専用のハードウェアにより実現されてもよい。【０１０１】
図９は、半導体集積回路１００への回路機能のマッピングの流れを示すフローチャートである。【０１０２】
まず、設計者は論理再構成可能な半導体集積回路１００にマッピングする回路機能を記述する（Ｓ２０１）。この回路機能の記述にはＨＤＬなどのハードウェア記述言語、又はＣ言語などの高級言語が使用される。回路機能を記述する際には、設計者は大規模な回路機能を複数の処理モジュールに分けて記述し、これらの処理モジュール間には２サイクルの遅延が入るように記述する。これにより、各処理モジュールの間には２段のレジスタ回路が挿入されることになる。【０１０３】
次に、マッピング装置４００は、設計者によって記述された回路記述に記述される回路機能を複数の回路機能ブロックに分割する（Ｓ２０２）。具体的には、マッピング装置４００は、回路記述に含まれる処理モジュールを一度束ねた上で４つのブロックに再分割する。マッピング装置は、再分割されたブロックを４つのリコンフィギュラブルコア１０１に割り当てる。次に、マッピング装置４００は、４つのブロックの間に位置する２段のレジスタをレジスタ回路１０２に割り当てるために、リコンフィギュラブルコア１０１へのマッピング対象から除外する（Ｓ２０３）。【０１０４】
以下、図１０を用いて、マッピング装置４００によるステップＳ２０２及びＳ２０３の処理の具体例を説明する。【０１０５】
図１０は、ステップＳ２０２での各リコンフィギュラブルコア１０１への割り当て、及びステップＳ２０３でのレジスタ回路１０２への割り当て処理を説明するための図である。【０１０６】
図１０を用いて、設計者により、モジュール２２１Ａ〜２２１Ｆの６つの処理モジュールに分割された大規模回路の回路記述が入力された場合の、マッピング装置４００の処理を説明する。この大規模回路はモジュール２２１Ｅからデータが入力され、所定の演算処理を施した後にモジュール２２１Ｄから演算処理の結果が出力される。設計者により各々のモジュールの間にレジスタが２段挿入されるように回路記述が記述されている（２サイクルの遅延が記述されている）。但し、モジュール２２１Ａとモジュール２２１Ｂとの間では演算処理のアルゴリズムの制約からレジスタは挿入されていない。【０１０７】
ステップＳ２０２ではこの回路記述を、マッピング装置４００が、各々の処理モジュールの回路規模及び速度を考慮して、４つのブロックに分割する。また、マッピング装置４００は、分割されたブロックを各リコンフィギュラブルコアへと割り当てる。例えば、マッピング装置４００は、モジュール２２１Ａ及び２２１Ｂをリコンフィギュラブルコア１０１Ａに、モジュール２２１Ｃ及び２２１Ｄをリコンフィギュラブルコア１０１Ｂに、モジュール２２１Ｅをリコンフィギュラブルコア１０１Ｃに、モジュール２２１Ｆをリコンフィギュラブルコア１０１Ｄに割り当てる。【０１０８】
ステップＳ２０３で、マッピング装置４００は、モジュール２２１Ａとモジュール２２１Ｅとの間に存在するレジスタ２２２Ａをリコンフィギュラブルコア１０１Ａと１０１Ｃとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、モジュール２２１Ｂとモジュール２２１Ｄとの間のレジスタ２２２Ｂをリコンフィギュラブルコア１０１Ａと１０１Ｂとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、モジュール２２１Ｃとモジュール２２１Ｆとの間に設けられたレジスタ２２２Ｄをリコンフィギュラブルコア１０１Ｂと１０１Ｄとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、モジュール２２１Ｅとモジュール２２１Ｆとの間に設けられたレジスタ２２２Ｅをリコンフィギュラブルコア１０１Ｃと１０１Ｄとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、レジスタ回路１０２に割り当てたレジスタ２２２Ａ、２２２Ｂ、２２２Ｄ及び２２２Ｆをマッピング対象からは除外する。【０１０９】
一方で、マッピング装置４００は、１つのリコンフィギュラブルコア１０１Ｂに割り当てられたモジュール２２１Ｃとモジュール２２１Ｄとの間に設けられたレジスタ２２２Ｃを、リコンフィギュラブルコア１０１へのマッピング対象に残す。【０１１０】
次に、マッピング装置４００は、各々のリコンフィギュラブルコア１０１に割り当てられた回路機能をマッピングする（Ｓ２０４）。図１１は、ステップＳ２０４での、１つのリコンフィギュラブルコア１０１への回路機能のマッピングの流れを示すフローチャートである。【０１１１】
まず、マッピング装置４００は、ステップＳ２０２で再分割され、ステップＳ２０３でレジスタが除外されたブロックの回路記述を取得する（Ｓ３０１）。【０１１２】
次に、マッピング装置４００は、マッピングにおける制約条件を取得する（Ｓ３０２）。例えば、制約条件は、速度及び面積などに関する条件である。また、例えば、制約条件は、設計者によりマッピング装置４００に入力される。【０１１３】
次に、マッピング装置４００は、ステップＳ３０１で取得された回路記述を論理合成する（Ｓ３０３）。具体的には、マッピング装置４００は、回路記述に記述される回路機能を１つのロジックエレメント２０１に割り当て可能な機能単位に分割する。マッピング装置４００は、分割された機能単位の接続関係を決定する。次に、マッピング装置４００は、分割された機能単位を実回路におけるロジックエレメント２０１上に配置する（Ｓ３０４）。これによって、各々のロジックエレメント２０１の機能（入力に対する出力の関係）が決定される。【０１１４】
次に、マッピング装置４００は、論理合成によって決定された接続関係を満たすように、プログラマブルな配線を用いて各々のロジックエレメント２０１を配線する（Ｓ３０５）。なお、ロジックエレメント２０１への配置とプログラマブルな配線によるロジックエレメント２０１の接続とは１つの処理として行われてもよいし、分割された処理として行われてもよい。【０１１５】
次に、マッピング装置４００は、配置及び配線された回路が、ステップＳ３０２で取得された制約条件を満たすか否かを判定する（Ｓ３０６）。制約条件を満たす場合（Ｓ３０６でＹｅｓ）、ブロックの合成、配置及び配線が終了する。また、制約条件を満たさない場合（Ｓ３０６でＮｏ）、次に、マッピング装置４００は、所定の回数ステップＳ３０４〜Ｓ３０６の処理が繰り返されたか否かを判定する（Ｓ３０７）。所定の回数の繰り返し処理が行われていない場合（Ｓ３０７でＮｏ）、マッピング装置４００は、再度、配置及び配線処理（Ｓ３０４及びＳ３０５）を行う。すなわち、マッピング装置４００は、配置及び配線処理（Ｓ３０４及びＳ３０５）を制約条件が満たされるまで繰り返す。また、所定の回数処理が繰り返されても制約条件を満たさない場合（Ｓ３０７でＹｅｓ）、マッピング装置４００は、ブロックへのマッピングが不可であるとして処理を終了する。【０１１６】
なお、制約条件を満たさない場合（Ｓ３０６でＮｏ）、合成処理（Ｓ３０３）、配置及び配線処理（Ｓ３０４及びＳ３０５）を再度行ってもよい。【０１１７】
また、マッピング装置４００は、所定の回数処理が繰り返されても制約条件が満たされない場合には、制約条件を満たせない旨を表示してもよい。これにより、設計者により制約条件が見直され、マッピング装置４００は、新たに入力された制約条件を取得し（Ｓ３０２）、新たな制約条件に対してステップＳ３０３〜３０６の処理を行うことができる。【０１１８】
ここで、マッピング装置４００は、リコンフィギュラブルコア１０１毎に分割された回路機能をマッピングするので、従来のように大規模な回路記述を１つの大規模なリコンフィギュラブルコアにマッピングする場合と比較して、短時間で処理を収束させることができる。【０１１９】
次に、マッピング装置４００は、４つのリコンフィギュラブルコア１０１の全てについて制約条件が満たされたか否かが判定する（Ｓ２０５）。満たされている場合（Ｓ２０５でＹｅｓ）、大規模回路の回路記述のマッピングが終了する。【０１２０】
複数のリコンフィギュラブルコア１０１のいずれか１以上について制約条件が満たされていない場合（Ｓ２０５でＮｏ）、マッピング装置４００は、ステップＳ２０２〜Ｓ２０４でのマッピング処理が所定の回数繰り返し行われたかを判定する（Ｓ２０６）。所定の回数の繰り返し処理が行われていない場合（Ｓ２０６でＮｏ）、マッピング装置４００は、ステップＳ２０２以降の処理を再度行う。所定の回数の繰り返し処理が行われている場合（Ｓ２０６でＹｅｓ）、マッピング装置４００は、ステップＳ２０１で記述された回路機能は論理再構成可能な半導体集積回路１００にはマッピングできないものであると判断する。【０１２１】
ここで、ステップＳ２０２、Ｓ２０３、Ｓ２０５及びＳ２０６の処理は、マッピング装置４００がプログラム４０６に含まれる専用のポイントツールを用いて実行する方法と、合成ツールの一部として実行する方法とがある。また、Ｓ２０４の処理は、マッピング装置４００がプログラム４０６に含まれる従来と同様の合成ツール及びＰ＆Ｒツールを実行することにより実現できる。【０１２２】
以上説明してきたように、本発明の実施の形態１の論理再構成可能な半導体集積回路１００を用いることにより、大規模な回路機能における処理モジュール毎にレジスタを２段挿入しておけば、マッピング装置４００は各々のリコンフィギュラブルコア１０１を独立の回路と取り扱ってマッピングを行うことができる。したがって、短時間でマッピングが終了する。【０１２３】
さらにリコンフィギュラブルコア１０１とレジスタ回路１０２とが同一チップ内に設けされ、かつレジスタ回路１０２がリコンフィギュラブルコア１０１に供給されるクロックと同一のクロックで駆動されているので、半導体集積回路１００は１つの大規模な論理再構成可能な半導体集積回路と同様の速度で動作できる。【０１２４】
これまで本発明を実施するための最良の形態について説明してきたが、本発明が上記の実施の形態に限定されるものではないことは言うまでもない。一例として、以下のような変形を施すことが可能である。【０１２５】
レジスタ回路１０２は３段以上設けてもよい。この場合、各リコンフィギュラブルコア１０１のクロックが非同期であるとすれば、少なくとも後段の２段のレジスタ回路１０２については、メタステーブルへの対策として、データの入力先となるリコンフィギュラブルコア１０１と同一のクロックを供給することが望ましい。【０１２６】
また、レジスタ回路１０２は１段であってもよい。なお、上述したようにレジスタ回路１０２が１段の場合、タイミング制約が厳しくなる。しかしながら、リコンフィギュラブルコア１０１間の距離が短い場合、及びリコンフィギュラブルコア１０１の回路規模が小さい場合等には、レジスタ回路１０２が１段であっても、タイミング制約を守ることができる。レジスタ回路１０２が１段の場合、レジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１と、データの入力先となるリコンフィギュラブルコア１０１から等距離の位置に配置されることが望ましい。【０１２７】
また、上記説明において、各々のリコンフィギュラブルコア１０１には異なるクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＤが入力されるとしたが、構成を単純化するためにこのクロックを全て同一のクロックとすることも可能である。また、複数のリコンフィギュラブルコア１０１のうちいずれか２以上に同一のクロックを供給してもよい。【０１２８】
また、上記説明において、２段のレジスタ回路１０２は、隣接するリコンフィギュラブルコア１０１間の全てに形成されているが、隣接するリコンフィギュラブルコア１０１間のうち１以上に形成されればよい。また、隣接する２つのリコンフィギュラブルコア１０１のうち一のリコンフィギュラブルコア１０１からの他のリコンフィギュラブルコア１０１へ送信されるデータを保持するレジスタ回路１０２のみを設け、他のリコンフィギュラブルコア１０１からの一のリコンフィギュラブルコア１０１へ送信されるデータを保持するレジスタ回路１０２を設けなくてもよい。【０１２９】
また、隣接しないリコンフィギュラブルコア１０１間に２段のレジスタ回路１０２を形成してもよい。例えば、リコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｄとの間に２段のレジスタ回路１０２を形成してもよい。リコンフィギュラブルコア１０１Ｂとリコンフィギュラブルコア１０１Ｂとの間に２段のレジスタ回路１０２を形成してもよい。【０１３０】
また、本発明の実施の形態１に係る半導体集積回路１００は、所謂ＳＯＣにおける１つの回路ブロックとして構成されとしたが、半導体集積回路１００は、それだけで１チップのＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として構成されてもよい。【０１３１】
また、ロジックエレメント２０１としてＬＵＴではなく、１又は複数のＡＬＵを用いることも可能である。画像の符号化、画像の復号化及び暗号処理などの信号処理演算は単純な演算の繰り返しによって構成されることが多い。したがって、ロジックエレメント２０１として１又は複数のＡＬＵを用いることによって、信号処理演算に最適なリコンフィギュラブルコア１０１が実現できる。特に本発明に係る論理再構成可能な半導体集積回路１００をＳＯＣにおける１つの回路ブロックとして構成する場合には、制御系の処理はＣＰＵ１０に任せることができるので、ＡＬＵをロジックエレメント２０１として用いたリコンフィギュラブルコア１０１を用いることが好ましい。従来のＳＯＣでは様々な種類の信号処理を実現する必要がある場合には、信号処理毎に専用ハードウェアを設計していた。一方、ロジックエレメント２０１として１又は複数のＡＬＵを用い、かつＣＰＵ１０を含むＳＯＣとすることで、専用ハードウェアを設けなくても１つの論理再構成可能な半導体集積回路１００で全ての処理を行うことができる。【０１３２】
また、論理再構成可能な半導体集積回路１００で実現すべき回路機能によっては、全てのリコンフィギュラブルコア１０１を用いて１つの回路機能を実現する必要はなく、一部のリコンフィギュラブルコア１０１を用いて１つの回路機能をマッピングしてもよい。また、残りのリコンフィギュラブルコアには別の回路機能をマッピングしてもよい。【０１３３】
また、上記説明において、リコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄは、同じ構成であるとしたが、異なる構成であってもよい。例えば、各リコンフィギュラブルコア１０１に含まれるロジックエレメント２０１の数が異なってもよい。【０１３４】
また、本発明において各々のリコンフィギュラブルコア１０１は、電源を投入したまま動的に論理を再構成することが可能な動的再構成可能なリコンフィギュラブルコア１０１であっても、論理を再構成するためには一度電源を落とす必要がある所謂ＦＰＧＡであっても、何れでも構わない。【０１３５】
また、リコンフィギュラブルコア１０１が備える４つのＩＯ部の構成は、図５に示す構成に限定されるものではない。Ｓ方向からコンフィギュレーションデータが入力される構成であれば、ＩＯ部の構成は任意でよい。【０１３６】
また、上記説明において、図９に示すステップＳ２０１〜Ｓ２０６の処理を、マッピング装置４００が行うとしたが、処理の一部を設計者が行いマッピング装置４００に入力してもよい。【０１３７】
また、上記説明において、リコンフィギュラブルコア１０１が４つの例を説明したが、半導体集積回路１００は、複数のリコンフィギュラブルコア１０１を備えればよい。例えば、半導体集積回路１００は、２、３又は５以上のリコンフィギュラブルコア１０１を備えてもよい。【０１３８】
また、メモリ１０３は図４に示すようにＳ方向が対向する１組のリコンフィギュラブルコア１０１に１つ設けるのではなく、リコンフィギュラブルコア１０１毎にメモリ１０３を１つ設ける構成としてもよい。図１２は、実施の形態１に係る半導体集積回路１００の変形例であり、リコンフィギュラブルコア１０１毎にメモリ１０３を１つ備える半導体集積回路１５０の構成を示す図である。図１２に示すように、半導体集積回路１５０は、４つのメモリ１０３Ａ、１０３Ｂ、１０３Ｃ及び１０３Ｄを備える。メモリ１０３Ａは、リコンフィギュラブルコア１０１Ａに入力されるコンフィギュレーションデータを格納する。メモリ１０３Ｂは、リコンフィギュラブルコア１０１Ｂに入力されるコンフィギュレーションデータを格納する。メモリ１０３Ｃは、リコンフィギュラブルコア１０１Ｃに入力されるコンフィギュレーションデータを格納する。メモリ１０３Ｄは、リコンフィギュラブルコア１０１Ｄに入力されるコンフィギュレーションデータを格納する。このような構成にすることで、全てのリコンフィギュラブルコア１０１を並列にコンフィギュレーションできるので、短期間でコンフィギュレーションが終了する。【０１３９】
（実施の形態２）
本発明の実施の形態２に係る半導体集積回路は、レジスタ回路１０２及びリコンフィギュラブルコア１０１へのクロックの供給を停止する機能を有する。これにより、余分な消費電力を削減できる。【０１４０】
図１３は、本発明の実施の形態２に係る半導体集積回路の構成を示す図である。【０１４１】
図１３に示す半導体集積回路２００は、図５に示す実施の形態１に係る半導体集積回路１００の構成に加えて、複数の第１クロック停止回路１０４と、複数の第２クロック停止回路１０５とを備える。なお、図５と同様の要素には同一の符号を付しており、説明は省略する。【０１４２】
第１クロック停止回路１０４は、複数のリコンフィギュラブルコア１０１の各々に対応して形成される。第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１にクロックを供給するか否かを制御する。第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１が使用されない場合には、当該リコンフィギュラブルコア１０１へのクロックの供給を停止する。また、第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１が使用されない場合には、当該リコンフィギュラブルコア１０１への信号の入力に用いられるレジスタ回路１０２へのクロックの供給を停止する。例えば、第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１に回路が構成されない場合に、クロックの供給を停止する。【０１４３】
第２クロック停止回路１０５は、２段のレジスタ回路１０２の各々に対応して形成される。第２クロック停止回路１０５は、対応するレジスタ回路１０２へのクロックの供給を制御する。第２クロック停止回路１０５は、対応するレジスタ回路１０２を用いた信号伝達が行われない場合には、当該レジスタ回路１０２へのクロックの供給を停止する。例えば、リコンフィギュラブルコア１０１Ａと１０１Ｂとが動作していたとしても、その間で信号伝達がないことはあり得る。そのような場合にはリコンフィギュラブルコア１０１Ａと１０１Ｂとの間のレジスタ回路１０２にクロックを供給する必要はない。またリコンフィギュラブルコア１０１Ａからリコンフィギュラブルコア１０１Ｂへの信号伝達があるが、逆方向には信号伝達がないこともあり得る。その場合にはリコンフィギュラブルコア１０１Ｂからリコンフィギュラブルコア１０１Ａへの信号伝達を行う経路に挿入されたレジスタ回路１０２のみへのクロックの供給を停止すればよい。【０１４４】
以上より、本発明の実施の形態２に係る半導体集積回路２００は、使用されないリコンフィギュラブルコア１０１へのクロックの供給を停止する。これにより、余分な消費電力を削減できる。また、半導体集積回路２００は、使用されないレジスタ回路１０２へのクロックの供給を停止する。これにより、余分な消費電力を削減できる。【０１４５】
なお、図１３では、半導体集積回路２００は、全てのリコンフィギュラブルコア１０１の各々に対応する第１クロック停止回路１０４を備えているが、半導体集積回路２００は、リコンフィギュラブルコア１０１のいずれか１以上に対応する１以上の第１クロック停止回路１０４を備えてもよい。この場合、回路機能のマッピング時に、対応する第１クロック停止回路１０４が設けられていないリコンフィギュラブルコア１０１に、優先的にマッピングを行えばよい。【０１４６】
また、図１３では、半導体集積回路２００は、全てのレジスタ回路１０２の各々に対応する第２クロック停止回路１０５を備えているが、半導体集積回路２００は、レジスタ回路１０２のいずれか１以上に対応する１以上の第２クロック停止回路１０５を備えてもよい。【０１４７】
（実施の形態３）
上述した実施の形態１におけるマッピングでは、図１０に示すステップＳ２０１の回路記述に２段のレジスタ回路を挿入する処理を設計者が行うとした。実施の形態３では回路記述に２段のレジスタ回路を挿入する処理を行うプログラム変換装置について説明する。【０１４８】
本発明の実施の形態３に係るプログラム変換装置の機能は、例えば、パーソナルコンピュータ等がプログラムを実行することにより実現される。例えば、実施の形態３に係るプログラム変換装置は、図８に示す構成と同様の構成である。すなわち、プログラム変換装置の機能は、ＣＰＵ４０３がプログラム４０６を実行することにより実現される。なお、本発明の実施の形態３に係るプログラム変換装置の機能は、専用のハードウェアにより実現されてもよい。【０１４９】
本発明の実施の形態３に係るプログラム変換装置は、従来と同様の回路記述を上述した実施の形態１に係るマッピング装置４００でマッピング可能な状態に変換する。本発明の実施の形態３に係るプログラム変換装置は、複数の処理モジュールからなる１つの大規模な回路の回路機能が記述された回路記述の、各処理モジュール間に選択的に２段のレジスタ回路を挿入する。【０１５０】
以下、設計者により５つのモジュール３０１Ａ、３０１Ｂ、３０１Ｃ、３０１Ｄ及び３０１Ｅの回路機能が記述された回路記述に、プログラム変換装置がレジスタ回路を挿入する動作について、図１４〜図１８を用いて説明する。【０１５１】
図１４は、本発明の実施の形態３に係るプログラム変換装置の処理の流れを示すフローチャートである。図１５〜図１８は、プログラム変換装置の処理を説明するための図である。【０１５２】
まず、プログラム変換装置は、設計者により記述された、論理再構成可能な半導体集積回路にマッピングする回路記述を取得する（Ｓ４０１）。プログラム変換装置により取得される回路記述は、設計者により、複数の処理モジュールとして回路機能が記述された回路記述である。回路記述にはＨＤＬなどのハードウェア記述言語、又はＣ言語などの高級言語が使用される。例えば、プログラム変換装置は、図１５に示す回路記述を取得する。【０１５３】
次に、プログラム変換装置は、ステップＳ４０１で取得された回路記述に基づき、複数の処理モジュールからなる回路機能を１つの回路とした場合の入力信号と出力信号との満たすべき関係（制約）を算出する（Ｓ４０２）。具体的には、プログラム変換装置は、回路記述に含まれる各処理モジュールの処理に要するサイクル数に基づき、全体の回路の入力信号が入力されてから有効な出力信号が得られるまでのサイクル数を算出する。例えば、プログラム変換装置は、制約として、図１５に示す入力信号ＩＮ０が入力されてから、出力信号ＯＵＴ０が得られるまでのサイクル数を５サイクル以内と算出する。また、プログラム変換装置は、制約として、入力信号ＩＮ０が入力されてから、出力信号ＯＵＴ１が得られるまでのサイクル数を３サイクル以内と算出する。【０１５４】
次に、プログラム変換装置は、仮想モジュールを設定する（Ｓ４０３）。具体的には、プログラム変換装置は、複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出し、１つの仮想モジュールと設定する。例えば、図１６に示すように、モジュール３０１Ｅの出力がモジュール３０１Ｃにフィードバックしているので、プログラム変換装置は、モジュール３０１Ｃとモジュール３０１Ｅとを１つの仮想モジュール３０１Ｆとして設定する。また、プログラム変換装置は、フィードバック系を有さないモジュール３０１Ａ、３０１Ｂ及び３０１Ｄを各々１つのモジュールとして設定する。すなわち、プログラム変換装置は、モジュール３０１Ａ、３０１Ｂ、３０１Ｄ及び仮想モジュール３０１Ｆを各々１つのモジュールとして以降の処理で扱う。【０１５５】
次に、プログラム変換装置は、モジュール３０１Ａ、３０１Ｂ、３０１Ｄ及び仮想モジュール３０１Ｆの各々の間にレジスタを挿入、又は挿入しないパターンを生成する（Ｓ４０４）。例えば、プログラム変換装置により生成される複数のパターンのうちレジスタの数が最大となるパターンは、図１７に示すように、モジュール３０１Ａ、３０１Ｂ、３０１Ｄ及び仮想モジュール３０１Ｆの各々の間にレジスタ３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ及び３０２ＢＦが挿入されるパターンである。また、プログラム変換装置は、レジスタ３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ及び３０２ＢＦのうちいずれか１以上が挿入されるパターン、及び全てが挿入されないパターンを生成する。なお、レジスタ３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ及び３０２ＢＦを特に区別しない場合は、レジスタ３０２と記す。【０１５６】
例えば、信号の受け渡しがあるモジュール間の数をＮとすると、プログラム変換装置は、２N個のパターンを生成する。図１７に示す例では、信号の受け渡しがあるモジュール間の数は５箇所である。よって、プログラム変換装置は、２5＝３２通りのパターンを生成する。ここで、挿入されるレジスタ３０２は、各々２段のレジスタである。【０１５７】
次に、プログラム変換装置は、ステップＳ４０４で生成された複数のパターンのうち、ステップＳ４０２で算出された制約を満たすパターンを抽出する（Ｓ４０５）。プログラム変換装置は、ステップＳ４０４で生成された複数のパターンの各々に対して、ステップＳ４０２で算出された制約を満たすか否かを判定する。例えば、レジスタ３０２ＢＤ及び３０２ＢＦのうち少なくとも一方を挿入した場合に制約が満たさない場合、プログラム変換装置は、図１８に示すレジスタ３０２ＡＢ、３０２ＡＤ及び３０２ＡＦが挿入されたパターンを制約が満たされるパターンとして抽出する。また、プログラム変換装置は、レジスタ３０２ＡＢ、３０２ＡＤ及び３０２ＡＦのうちいずれか１以上が挿入されたパターン及びいずれも挿入されないパターンを制約が満たされるバターンとして抽出する。【０１５８】
次に、プログラム変換装置は、ステップＳ４０５で抽出されたパターンのうちいずれかを選択する（Ｓ４０６）。例えば、プログラム変換装置は、抽出されたパターンのうち最も挿入されるレジスタの数が多いパターンを選択する。つまり、図１８に示す例では、プログラム変換装置は、レジスタ３０２ＡＢ、３０２ＡＤ及び３０２ＡＦが挿入されたパターンを選択する。選択されたパターンに対して、図９に示すステップＳ２０２以降の処理が上述したマッピング装置４００により実行される。【０１５９】
また、以降の処理で制約条件が満たされない場合、又はマッピング不可と判断された場合に、プログラム変換装置は、ステップＳ４０５で抽出されたパターンのうちステップＳ４０６で選択されたパターンと異なるパターンを選択する。新たに選択されたパターンに対してマッピング装置４００によりステップＳ２０２以降の処理が実行される。【０１６０】
以上より、本発明の実施の形態３に係るプログラム変換装置は、回路記述にレジスタ回路１０２に対応するレジスタを加えることができる。すなわち、本発明の実施の形態３に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間に２段のレジスタが挿入された回路記述に変換できる。【０１６１】
また、本発明の実施の形態３に係るプログラム変換装置は、レジスタが挿入された複数のパターンから制約を満たすパターンのみを抽出できる。【０１６２】
また、本発明に係る実施の形態３に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えない。フィードバック系を有するモジュール間にはレジスタを加えた場合、ステップＳ４０５における制約を満たすか否かの判断が複雑になり、プログラム変換装置の処理量が増加する。実施の形態３に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えないので、処理量を低減できる。【０１６３】
なお、上記説明では、プログラム変換装置はステップＳ４０１において複数の処理モジュールとして回路機能が記述された回路記述を取得するとしたが、プログラム変換装置は１つの大規模な回路記述を取得し、取得した回路記述を複数の処理モジュールに分割してもよい。【０１６４】
また、上記説明では、ステップＳ４０２においてプログラム変換装置が回路記述に基づき制約を算出するとしたが、プログラム変換装置は、設計者により入力された制約を用いてもよい。【０１６５】
また、上述したプログラム変換装置を、実施の形態１で説明したマッピング装置４００の１機能として実現してもよい。
【産業上の利用可能性】
【０１６６】
本発明によれば、論理再構成可能な半導体集積回路に大規模な回路機能をマッピングすることが可能となるので、様々な電子機器において利用可能性がある。
【図１】
2008013098.tif 000003
【図２】
2008013098.tif 000004
【図３】
2008013098.tif 000005
【図４】
2008013098.tif 000006
【図５】
2008013098.tif 000007
【図６】
2008013098.tif 000008
【図７】
2008013098.tif 000009
【図８】
2008013098.tif 000010
【図９】
2008013098.tif 000011
【図１０】
2008013098.tif 000012
【図１１】
2008013098.tif 000013
【図１２】
2008013098.tif 000014
【図１３】
2008013098.tif 000015
【図１４】
2008013098.tif 000016
【図１５】
2008013098.tif 000017
【図１６】
2008013098.tif 000018
【図１７】
2008013098.tif 000019
【図１８】
2008013098.tif 000020
【手続補正書】
【提出日】平成19年11月19日(2007.11.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロックに同期して動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
前記複数のリコンフィギュラブルコアに含まれる第１のリコンフィギュラブルコアと第２のリコンフィギュラブルコアとの間に形成され、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備え、
前記複数のリコンフィギュラブルコアの各々は、
アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、
前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える
ことを特徴とする半導体集積回路。
【請求項２】
前記第１のレジスタ回路群は、
前記第１のリコンフィギュラブルコアの出力を一時保持する第１のレジスタ回路と、
前記第１のレジスタ回路から出力されるデータを保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路とを含む
ことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記第１のレジスタ回路及び前記第２のレジスタ回路に入力されるクロックは、前記第２のレジスタ回路が保持するデータの出力先となるリコンフィギュラブルコアと同一のクロックである
ことを特徴とする請求項２記載の半導体集積回路。
【請求項４】
前記第１のレジスタ回路群へデータを出力するリコンフィギュラブルコアと、前記第１のレジスタ回路群からデータが入力されるリコンフィギュラブルコアとは入力されるクロックが異なる
ことを特徴とする請求項３記載の半導体集積回路。
【請求項５】
前記複数のリコンフィギュラブルコアは、
前記リコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータが入力される第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有する第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアを含み、
前記第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアは、前記第１の辺同士が対向するように分離してレイアウトされる
ことを特徴とする請求項１記載の半導体集積回路。
【請求項６】
前記半導体集積回路は、さらに、
前記第３のリコンフィギュラブルコアと前記第４のリコンフィギュラブルコアとの間に形成され、前記第３のリコンフィギュラブルコア及び前記第４のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第１記憶回路を備える
ことを特徴とする請求項５記載の半導体集積回路。
【請求項７】
前記複数のリコンフィギュラブルコアは、さらに、
第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有す第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアを含み、
前記第５のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第１の辺同士が対向するように分離して配置され、
前記第３のリコンフィギュラブルコアと第５のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置され、
前記第４のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置される
ことを特徴とする請求項６記載の半導体集積回路。
【請求項８】
前記半導体集積回路は、さらに、
前記第５のリコンフィギュラブルコアと前記第６のリコンフィギュラブルコアとの間に形成され、前記第５のリコンフィギュラブルコア及び前記第６のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第２記憶回路を備える
ことを特徴とする請求項７記載の半導体集積回路。
【請求項９】
前記半導体集積回路は、さらに、
前記第１のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１０】
前記第１のレジスタ回路群は、
前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路群と、
前記第２のリコンフィギュラブルコアの出力を一時保持し、前記第１のリコンフィギュラブルコアへと出力する第３のレジスタ回路群とを含む
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１１】
前記第１のレジスタ回路群は、前記複数のリコンフィギュラブルコアの間のうち、隣接するリコンフィギュラブルコアの間の全てに配置され、隣接する２つのリコンフィギュラブルコアのうち一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１２】
前記複数のリコンフィギュラブルコアには全て同一のクロックが入力される
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１３】
前記第１のレジスタ回路群は、複数のビットから構成されるデータを複数組保持する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１４】
前記ロジックエレメントの各々はＬＵＴを備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１５】
前記ロジックエレメントの各々は少なくとも１つのＡＬＵを備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１６】
前記半導体集積回路は、さらに、
ＣＰＵを備え、
前記複数のリコンフィギュラブルコア、前記第１のレジスタ回路群、及び前記ＣＰＵは、１つの半導体基板上に実装される
ことを特徴とする請求項１記載の半導体集積回路。
【請求項１７】
自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、
回路記述に記述される回路機能をマッピングするマッピング装置であって、
前記回路機能を、複数の回路機能ブロックに分割する分割手段と、
前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外手段と、
前記除外された回路機能ブロックの各々を論理合成する合成手段と、
前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線手段とを備える
ことを特徴とするマッピング装置。
【請求項１８】
複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置であって、
前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、
前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成手段と、
前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出手段と、
前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択手段とを備える
ことを特徴とするプログラム変換装置。
【請求項１９】
前記プログラム変換装置は、さらに、
前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、
前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを１つのモジュールとして、モジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する
ことを特徴とする請求項１８記載のプログラム変換装置。
【請求項２０】
自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、
回路記述に記述される回路機能をマッピングするマッピング装置におけるマッピング方法であって、
前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、
前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外ステップと、
前記除外された回路機能ブロックの各々を論理合成する合成ステップと、
前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線ステップとを含む
ことを特徴とするマッピング方法。
【請求項２１】
複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換方法であって、
前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出ステップと、
前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成ステップと、
前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出ステップと、
前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む
ことを特徴とするプログラム変換方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、プログラム変換装置及びマッピング装置に関し、特に、複数のリコンフィギュラブルコアを備える半導体集積回路に関する。
【背景技術】
【０００２】
従来、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）に代表される自己の論理を再構成することが可能な半導体集積回路（以下、「論理再構成可能な半導体集積回路」と記す。）が存在する。
【０００３】
図１は、従来の論理再構成可能な半導体集積回路の全体構成を示す図である。図１に示す従来の論理再構成可能な半導体集積回路５００は、アレイ状に配置される複数のロジックエレメント（ＬＥ）５０１を備える。論理再構成可能な半導体集積回路の一つであるＦＰＧＡでは、ロジックエレメント５０１は、ルックアップテーブル（ＬＵＴ）で構成される。ＬＵＴの内容を書き換えることによって、ロジックエレメント５０１の入力に対する出力の関係が変化する。また、各々のロジックエレメント５０１は図示しないプログラマブルな配線で接続される。プログラマブルな配線により、何れのロジックエレメント５０１の出力が何れのロジックエレメント５０１に入力されるかがプログラマブルに決定される。以上のように、ロジックエレメント５０１の入力に対する出力の関係と、各々のロジックエレメント５０１の接続関係とを変更することによって、半導体集積回路５００に所望の回路機能を実現できる。
【０００４】
また、プログラマブルな配線については、全てのロジックエレメントが全てのロジックエレメントと直接接続されるようにすると最も接続の自由度が高くなるが、配線リソースが膨大となって現実的ではない。一方で１つのロジックエレメントが１つのロジックエレメントとしか接続できないとすると自由度がない。配線リソースと自由度とのバランスをとってどのような配線構造とすると効率がよいかについては様々に考えられており、一例として特許文献１に記載される技術が知られている。
【０００５】
次に、図１に示す論理再構成可能な半導体集積回路５００に所望の回路機能をマッピングする方法について図２を用いて説明する。図２は、従来の論理再構成可能な半導体集積回路５００に対するマッピングの流れを示す図である。図２に示すマッピングは論理再構成可能な半導体集積回路５００のアーキテクチュア毎に専用の合成ツール及びＰ＆Ｒ（Ｐｌａｃｅ  ａｎｄ  Ｒｏｕｔｅ）ツールを用いて行われる。
【０００６】
まず、ユーザは、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語、又はＣ言語などの上級言語を用いて、実現すべき回路機能を記述する（Ｓ１０１）。次に、合成ツールが、記述された回路機能に対して論理合成を行う（Ｓ１０２）。具体的には、合成ツールは、記述された回路機能を１つのロジックエレメント５０１に割り当て可能な機能単位に分割する。次に、合成ツールは、分割された機能単位間の接続関係を決定する。
【０００７】
次に、Ｐ＆Ｒツールが、分割された機能単位を実回路におけるロジックエレメント５０１上に配置する（Ｓ１０３）。これにより、各々のロジックエレメント５０１の機能（入力に対する出力の関係）が決定される。
【０００８】
次に、Ｐ＆Ｒツールが、論理合成によって決定された接続関係を満たすように、プログラマブルな配線を用いてロジックエレメント５０１間を配線する（Ｓ１０４）。
【０００９】
以上の配置及び配線を、速度（タイミング）及び回路領域（面積）に対する所定の制限が満たされるまで繰り返す。所定の制限が満たされた場合に、マッピングが終了する。また、所定の制限が満たされない場合には、論理合成を再度行うこともある。
【００１０】
なお、２つのＦＰＧＡをマスクのレイアウト上で接続することにより、少ない設計工数で大規模な論理再構成可能な半導体集積回路を構築する手法が特許文献２に開示されている。
【特許文献１】米国特許第５５９４３６３号明細書
【特許文献２】米国特許第６３３５６３５号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、近年、デジタルＴＶ及び携帯電話に代表されるデジタル機器の多機能化は目覚ましく、これらのデジタル機器で処理される内容も複雑になっている。これに伴い、論理再構成可能な半導体集積回路を用いて実現すべき回路機能も大規模化が進んでおり、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマッピングする必要性が高まっている。
【００１２】
特許文献２に開示される論理再構成可能な半導体集積回路は、基本単位の集合体であるのでスケーラビリティに富み、かつ規模拡張が比較的容易である。しかしながら、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマッピングする場合、まず実現すべき回路機能を機能単位に分割する組み合わせが増大する。さらに各々の機能単位をどのロジックエレメントに割り当てるかの組み合わせが増大する。さらにプログラマブルな配線をどのように用いてロジックエレメント間を接続するかの組み合わせも増大する。結果として、回路規模の増大に伴ってマッピングの組み合わせは急激に増大する。したがって、従来の合成ツール及びＰ＆Ｒツールを用いて大規模な再構成可能な半導体集積回路を最大限用いて回路機能を実現しようとした場合、マッピングが収束しないことも考えられる。一方でこれらの課題を解決できるような賢い合成ツール及びＰ＆Ｒツールは現状では存在していない。
【００１３】
本発明は上記に鑑みてなされたものであり、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供することを目的とする。
【００１４】
さらに、別の目的として、複数のリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明に係る半導体集積回路は、クロックに同期して動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアに含まれる第１のリコンフィギュラブルコアと第２のリコンフィギュラブルコアとの間に形成され、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備え、前記複数のリコンフィギュラブルコアの各々は、アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える。
【００１６】
この構成によれば、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできるので、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。よって、本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供できる。
【００１７】
また、前記第１のレジスタ回路群は、前記第１のリコンフィギュラブルコアの出力を一時保持する第１のレジスタ回路と、前記第１のレジスタ回路から出力されるデータを保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路とを含んでもよい。
【００１８】
この構成によれば、配線距離に起因する遅延に対してタイミング制約を緩和できる。
【００１９】
また、前記第１のレジスタ回路及び前記第２のレジスタ回路に入力されるクロックは、前記第２のレジスタ回路が保持するデータの出力先となるリコンフィギュラブルコアと同一のクロックであってもよい。
【００２０】
この構成によれば、各リコンフィギュラブルコアを非同期で動作させた場合でも、第２のレジスタ回路でデータを確実に保持できる。よって、メタステーブル（セットアップ制約又はホールド制約が満たされない状態）の発生を防止できる。
【００２１】
また、前記第１のレジスタ回路群へデータを出力するリコンフィギュラブルコアと、前記第１のレジスタ回路群からデータが入力されるリコンフィギュラブルコアとは入力されるクロックが異なってもよい。
【００２２】
この構成によれば、各リコンフィギュラブルコアを非同期で動作させた場合に発生するメタステーブルの発生を防止できる。
【００２３】
また、前記複数のリコンフィギュラブルコアは、前記リコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータが入力される第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有する第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアを含み、前記第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアは、前記第１の辺同士が対向するように分離してレイアウトされてもよい。
【００２４】
この構成によれば、コンフィギュレーションデータを第１の辺から第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、記憶回路から、第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。よって、本発明は、複数のリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となるレイアウトを有する半導体集積回路を提供できる。
【００２５】
また、前記半導体集積回路は、さらに、前記第３のリコンフィギュラブルコアと前記第４のリコンフィギュラブルコアとの間に形成され、前記第３のリコンフィギュラブルコア及び前記第４のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第１記憶回路を備えてもよい。
【００２６】
この構成によれば、第１記憶回路に保持されるコンフィギュレーションデータを第１の辺から第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、第１記憶回路から、第３のリコンフィギュラブルコア及び第４のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。
【００２７】
また、前記複数のリコンフィギュラブルコアは、さらに、第１の辺と、前記第１の辺と対向する第２の辺と、前記第１の辺と直交する第３の辺と、前記第３の辺と対向する第４の辺とで囲まれる矩形の形状を有す第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアを含み、前記第５のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第１の辺同士が対向するように分離して配置され、前記第３のリコンフィギュラブルコアと第５のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置され、前記第４のリコンフィギュラブルコアと第６のリコンフィギュラブルコアとは、前記第３の辺同士が対向するように分離して配置されてもよい。
【００２８】
この構成によれば、４つのリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、各リコンフィギュラブルコアにおける同じ用途に用いられる信号の入出力端子が、各リコンフィギュラブルコア間で対向して配置される。これにより、チップ設計を容易に行うことができる。また、リコンフィギュラブルコア間の配線距離を短くできる。
【００２９】
また、前記半導体集積回路は、さらに、前記第５のリコンフィギュラブルコアと前記第６のリコンフィギュラブルコアとの間に形成され、前記第５のリコンフィギュラブルコア及び前記第６のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第２記憶回路を備えてもよい。
【００３０】
この構成によれば、第２記憶回路に保持されるコンフィギュレーションデータを第１の辺から第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、第２記憶回路から、第５のリコンフィギュラブルコア及び第６のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。
【００３１】
また、前記半導体集積回路は、さらに、前記第１のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を備えてもよい。
【００３２】
この構成によれば、リコンフィギュラブルコア間で双方向にデータが受け渡される場合でも、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
【００３３】
また、前記第１のレジスタ回路群は、前記第１のリコンフィギュラブルコアの出力を一時保持し、前記第２のリコンフィギュラブルコアへと出力する第２のレジスタ回路群と、前記第２のリコンフィギュラブルコアの出力を一時保持し、前記第１のリコンフィギュラブルコアへと出力する第３のレジスタ回路群とを含んでもよい。
【００３４】
この構成によれば、全てのリコンフィギュラブルの各々を独立した回路として回路機能をマッピングできる。
【００３５】
また、前記第１のレジスタ回路群は、前記複数のリコンフィギュラブルコアの間のうち、隣接するリコンフィギュラブルコアの間の全てに配置され、隣接する２つのリコンフィギュラブルコアのうち一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力してもよい。
【００３６】
この構成によれば、使用されない第１のレジスタ回路群へのクロックの供給を停止できる。これにより、本発明に係る半導体集積回路は、余分な消費電力を削減できる。
【００３７】
また、前記複数のリコンフィギュラブルコアには全て同一のクロックが入力されてもよい。
【００３８】
この構成によれば、半導体集積回路の構成を単純化できる。
【００３９】
また、前記第１のレジスタ回路群は、複数のビットから構成されるデータを複数組保持してもよい。
【００４０】
この構成によれば、本発明に係る半導体集積回路は、リコンフィギュラブルコア間で複数のデータを受け渡しできる。
【００４１】
また、前記ロジックエレメントの各々はＬＵＴを備えてもよい。
【００４２】
この構成によれば、ルックアップテーブルの内容を書き換えることによって、ロジックエレメントの入力に対する出力の関係を任意に変更できる。
【００４３】
また、前記ロジックエレメントの各々は少なくとも１つのＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）を備えてもよい。
【００４４】
この構成によれば、画像の符号化、画像の復号化及び暗号処理などの単純な演算の繰り返しによって構成される信号処理演算に最適なリコンフィギュラブルコアが実現できる。
【００４５】
また、前記半導体集積回路は、さらに、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、前記複数のリコンフィギュラブルコア、前記第１のレジスタ回路群、及び前記ＣＰＵは、１つの半導体基板上に実装されてもよい。
【００４６】
この構成によれば、ＣＰＵを含むＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）において、専用ハードウェアを設けなくても１つの論理再構成可能な半導体集積回路で多種の処理を行うことができる。
【００４７】
また、本発明に係るマッピング装置は、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングするマッピング装置であって、前記回路機能を、複数の回路機能ブロックに分割する分割手段と、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外手段と、前記除外された回路機能ブロックの各々を論理合成する合成手段と、前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線手段とを備える。
【００４８】
この構成によれば、本発明に係るマッピング装置は、回路記述に含まれる第１のレジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、本発明に係るマッピング装置は、各々のリコンフィギュラブルコアを独立にマッピングできる。よって、本発明に係るマッピング装置は、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
【００４９】
また、本発明に係るプログラム変換装置は、複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成手段と、前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出手段と、前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択手段とを備える。
【００５０】
この構成によれば、本発明に係るプログラム変換装置は、回路記述に第１のレジスタ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間にレジスタを挿入した回路記述に変換できる。
【００５１】
また、前記プログラム変換装置は、さらに、前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを１つのモジュールとして、モジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成してもよい。
【００５２】
この構成によれば、本発明に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えない。これにより、プログラム変換装置の処理量を低減できる。
【００５３】
また、本発明に係るマッピング方法は、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアのうち少なくとも２つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第１のレジスタ回路群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングするマッピング装置におけるマッピング方法であって、前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外ステップと、前記除外された回路機能ブロックの各々を論理合成する合成ステップと、前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線ステップとを含む。
【００５４】
この方法によれば、回路記述に含まれる第１のレジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、各々のリコンフィギュラブルコアを独立にマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
【００５５】
また、本発明に係るプログラム変換方法は、複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換方法であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出ステップと、前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成ステップと、前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出ステップと、前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む。
【００５６】
この方法によれば、回路記述に第１のレジスタ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプログラム変換方法は、設計者により記述された従来と同様の回路記述を、モジュール間にレジスタを挿入した回路記述に変換できる。
【００５７】
なお、本発明は、このような半導体集積回路、マッピング装置、そのマッピング方法、プログラム変換装置、及びそのプログラム変換方法として実現できるだけでなく、マッピング方法及びプログラム変換方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００５８】
本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供できる。また、本発明は、複数のリコンフィギュラブルコアを１チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供できる。
【発明を実施するための最良の形態】
【００５９】
以下、本発明に係る半導体集積回路の実施の形態について、図面を参照しながら詳細に説明する。
【００６０】
（実施の形態１）
本発明の実施の形態１に係る半導体集積回路は、複数のリコンフィギュラブルコア間にそれぞれ２段のレジスタ回路を備える。これにより、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、容易にマッピングできる。
【００６１】
まず、本発明の実施の形態１に係る半導体集積回路の構成を説明する。
【００６２】
図３は、本発明の実施の形態１に係る再構成可能な半導体集積回路を備える半導体装置の構成を示す図である。
【００６３】
図３に示す半導体装置１は、ＣＰＵ１０と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）１２と、ハードウェア回路１３と、ＦＰＧＡ１００とを備える。
【００６４】
ＣＰＵ１０は、半導体装置１の全体の制御を行う。ＲＡＭ１１は、読み書き可能な記憶部である。ＤＭＡ１２は、ＦＰＧＡ１００及びハードウェア回路１３と、ＲＡＭ１１との間のデータ転送を行なう。ハードウェア回路１３は、所定の機能を実現する専用ハードウェアで構成された回路である。ＦＰＧＡ１００は、再構成可能な半導体集積回路であり、本発明に係る半導体集積回路の一例である。
【００６５】
例えば、ＣＰＵ１０、ＲＡＭ１１、ＤＭＡ１２、ハードウェア回路１３及びＦＰＧＡ１００は、１つの半導体基板上に実装されている。すなわち、本発明の実施の形態１に係る半導体集積回路（ＦＰＧＡ）１００は、所謂ＳＯＣにおける１つの回路ブロックとして構成される。
【００６６】
図４は、本発明の実施の形態１に係る論理再構成可能な半導体集積回路１００の構成を示す図である。図４に示す半導体集積回路１００は、論理再構成可能な半導体集積回路である。半導体集積回路１００は、４つのリコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄと、複数のレジスタ回路１０２と、２つのメモリ１０３Ａ及び１０３Ｂとを備える。
【００６７】
リコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄは、各々が自己の論理を再構成することが可能な回路である。なお、リコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄを特に区別しない場合には、リコンフィギュラブルコア１０１と記す。リコンフィギュラブルコア１０１は、コアの外部から入力されるコンフィギュレーションデータに応じてその内部の接続関係を変更し、それによって論理を再構成することが可能な回路である。なお、コンフィギュレーションデータはリコンフィギュラブルコア１０１の内部に複数セット予め格納しておくことも可能である。
【００６８】
また、各々のリコンフィギュラブルコア１０１は矩形の形状であり、東（Ｅ）、西（Ｗ）、南（Ｓ）、北（Ｎ）の４つの辺を有している。リコンフィギュラブルコア１０１はこれら４つの辺について対称ではなく、東西方向と南北方向で内部の配線構造は異なっている。また、本実施の形態においてはリコンフィギュラブルコア１０１の論理を再構成するためのコンフィギュレーションデータはＳ方向から入力されるものとする。各々のリコンフィギュラブルコア１０１はチップ設計上ハードマクロとして取り扱われ、これによって複数のコアを容易に１チップに実装することが可能となる。
【００６９】
また、リコンフィギュラブルコア１０１は、クロックに同期して動作する。本実施の形態において各々のリコンフィギュラブルコア１０１には別々のクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＤが入力される。
【００７０】
図５は、リコンフィギュラブルコア１０１（１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄ）の構成を示す図である。リコンフィギュラブルコア１０１は、複数のロジックエレメント（ＬＥ）２０１と、複数のスイッチボックス（ＳＢ）２０２と、複数の配線ボックス群（ＣＢ）２０３と、ＩＯ部２０４Ｎ、２０４Ｅ、２０４Ｓ及び２０４Ｗと、行方向及び列方向に延びる配線群とを備える。
【００７１】
複数のロジックエレメント２０１は、アレイ状に配置され、各々が所定の論理を実現する。ロジックエレメント２０１は、コンフィギュレーションデータに応じて、その機能（入力に対する出力の関係）を変更することが可能な機能素子である。スイッチボックス２０２は、コンフィギュレーションデータに応じて、何れの配線と何れの配線とを接続するかが決定される。配線ボックス群２０３は、コンフィギュレーションデータに応じて、ロジックエレメント２０１の入力及び出力を何れの配線に接続するかが決定される。
【００７２】
スイッチボックス２０２及び配線ボックス群２０３の接続関係を制御することによって、何れのロジックエレメント２０１の出力が何れのロジックエレメント２０１の入力に接続されるかをプログラマブルに決定できる。そこで本実施の形態においては、このスイッチボックス２０２、配線ボックス群２０３、及び配線群を総称して、単にプログラマブルな配線とも称する。また、リコンフィギュラブルコア１０１内にはプログラマブルな配線とは別にクロック配線も設けられる。
【００７３】
ＩＯ部２０４Ｎ、２０４Ｅ、２０４Ｓ及び２０４Ｗは、リコンフィギュラブルコア１０１の東西南北方向の各々に配置される入出力回路である。
【００７４】
ＩＯ部２０４Ｎは、リコンフィギュラブルコア１０１のＮ方向に配置される。ＩＯ部２０４Ｎは、アプリケーションデータバス用及び制御用の入出力を有する。
【００７５】
ＩＯ部２０４Ｅは、リコンフィギュラブルコア１０１のＥ方向に配置される。ＩＯ部２０４Ｅは、アプリケーションデータバス用の入出力を有する。
【００７６】
ＩＯ部２０４Ｓは、リコンフィギュラブルコア１０１のＳ方向に配置される。ＩＯ部２０４Ｓは、アプリケーションデータバス用及び制御用の入出力を有する。さらに、ＩＯ部２０４Ｓは、コンフィギュレーションデータ用の入出力を有する。
【００７７】
ＩＯ部２０４Ｗは、リコンフィギュラブルコア１０１のＷ方向に配置される。ＩＯ部２０４Ｗは、制御用の入出力を有する。
【００７８】
ここで、アプリケーションデータバス用の入出力は、他のリコンフィギュラブルコア１０１、ＣＰＵ１０、ＤＭＡ１２及びハードウェア回路１３との間で演算結果の入出力に用いられる。制御用の入出力は、ＣＰＵ１０、ＤＭＡ１２及びハードウェア回路１３等の外部ハードウェアとの間の制御信号の入出力に用いられる。コンフィギュレーションデータ用の入出力は、メモリ１０３Ａ及び１０３Ｂからのコンフィギュレーションデータの入力に用いられる。
【００７９】
このように、Ｓ方向の一方向のみからコンフィギュレーションデータを入力する構造にすることによって、リコンフィギュラブルコア１０１の配線構造を簡易化できる。また、リコンフィギュラブルコア１０１の各方向に、入出力の配置が異なるＩＯ部を配置することで、用途に応じた最適なレイアウト配置を実現できる。
【００８０】
図６は、リコンフィギュラブルコア１０１の内部をさらに詳細に説明するための図である。図６は、１つのロジックエレメント２０１と、その周辺に配置されるスイッチボックス２０２、及び配線ボックス群２０３の構成を示す図である。
【００８１】
本実施の形態においては、ロジックエレメント２０１は４入力２出力の機能素子であり、その入力は西方向、出力は東方向に設けられる。配線ボックス群２０３はこの東西方向に延びるロジックエレメント２０１の入出力を南北方向に延びる配線の何れに接続するかをプログラマブルに決定する。
【００８２】
スイッチボックス２０２は東西方向に延びる配線と南北方向に延びる配線とをプログラマブルに接続する。また、ロジックエレメント２０１の出力は南北方向の配線に一度乗り換えた後に配線ボックス群を介して東西方向の配線へと接続することも可能である。またロジックエレメント２０１には、プログラマブルな配線とは異なる配線でクロックが供給される。
【００８３】
図７は、ロジックエレメント２０１の詳細な構成を示す図である。本実施の形態において、ロジックエレメント２０１は、ルックアップテーブル（ＬＵＴ）２１０と、複数のプログラム可能なマルチプレクサ２１１と、フリップフロップ２１２とを備える。ルックアップテーブル２１０は、１つが小規模なメモリで構成される。ルックアップテーブル２１０の入力に対する出力の関係は、メモリに保持される内容が書き換えられることにより、変更される。複数のプログラマブルなマルチプレクサ２１１の各々により選択される信号は、コンフィギュレーションデータ又は他のロジックエレメント２０１からの出力に応じて決定される。
【００８４】
図５〜図７に示されるように、各々のリコンフィギュラブルコア１０１が複数のロジックエレメント２０１をアレイ状に配置した構成を有するため、ハードマクロとしてのリコンフィギュラブルコア１０１内部ではロジックエレメント２０１を接続するためのプログラマブルな配線が密に配線されている。リコンフィギュラブルコア１０１と外部との境界領域ではアプリケーションデータバス用、制御用、及びコンフィギュレーション用のＩＯからの配線が比較的疎な配線として配線されている。リコンフィギュラブルコア１０１間ではＩＯ部からの配線に加えて、半導体集積回路１００と同一チップ上の他の回路ブロックとの接続を行うための配線が配線されている。すなわち、各々のリコンフィギュラブルコア１０１はチップレイアウト上で分離されており、その配線構造は内部と外部とで明らかに異なる。
【００８５】
再び図４を参照して説明を行う。メモリ１０３Ａ及び１０３Ｂは、リコンフィギュラブルコア１０１に入力されるコンフィギュレーションデータを一時格納するためのメモリである。なお、メモリ１０３Ａ及び１０３Ｂを特に区別しない場合には、メモリ１０３と記す。メモリ１０３Ａは、リコンフィギュラブルコア１０１Ａ及び１０１Ｃの論理を再構成するためのコンフィギュレーションデータを格納する。メモリ１０３Ｂは、リコンフィギュラブルコア１０１Ｂ及び１０１Ｄの論理を再構成するためのコンフィギュレーションデータを格納する。また、メモリ１０３Ａは、リコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｃとの間に配置される。メモリ１０３Ｂは、リコンフィギュラブルコア１０１Ｂとリコンフィギュラブルコア１０１Ｄとの間に配置される。
【００８６】
本発明の１つの特徴として、４つのリコンフィギュラブルコア１０１のうちリコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｃとは、Ｓ方向が対向するように配置される。また、リコンフィギュラブルコア１０１Ｂとリコンフィギュラブルコア１０１ＤとはＳ方向が対向するように配置される。コンフィギュレーションデータはＳ方向からのみ入力されるので、このようなレイアウトとすることによって、メモリ１０３を固めて配置することが可能となり、チップ設計が容易となる。また、メモリ１０３から各々のリコンフィギュラブルコア１０１への配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。なお、図中で示してはいないが、メモリ１０３とリコンフィギュラブルコア１０１とは複数ビットのバスで接続されている。
【００８７】
また、リコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｂとは、Ｅ方向が対向するように配置される。リコンフィギュラブルコア１０１Ｃとリコンフィギュラブルコア１０１Ｄとは、Ｅ方向が対向するように配置される。上述したようにリコンフィギュラブルコア１０１のＥ方向は、アプリケーションデータバス用のＩＯが配置される。ここで、一般にアプリケーションデータバスには配線遅延の減少が望まれる。一方、制御用の信号配線は、配線遅延の影響が比較的問題にならない。よって、Ｅ方向が対向するように複数のリコンフィギュラブルコア１０１を配置することで、リコンフィギュラブルコア１０１間のアプリケーションデータバスの配線距離を短くできる。これにより、アプリケーションデータバスの配線遅延の影響を低減できる。
【００８８】
また、本実施の形態の特徴のひとつとして、論理再構成可能な半導体集積回路１００は、上下方向あるいは左右方向に隣接するリコンフィギュラブルコア１０１の間の各々にレジスタ回路１０２を２段設けている。
【００８９】
各々のレジスタ回路１０２は、複数のフリップフロップで構成されており、複数ビット（例えば、１６ビット）からなるデータを複数セット保持することが可能である。各々の２段のレジスタ回路は、隣接するリコンフィギュラブルコア１０１間の全てに形成される。各々の２段のレジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１の出力を一時保持し、データの入力先となるリコンフィギュラブルコア１０１に出力する。２段のレジスタ回路１０２のうち前段のレジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１から出力されるデータをクロックに同期して保持し、後段のレジスタ回路１０２に出力する。２段のレジスタ回路１０２のうち後段のレジスタ回路１０２は、前段のレジスタ回路１０２から出力されるデータをクロックに同期して保持し、データの入力先となるリコンフィギュラブルコア１０１に出力する。
【００９０】
また、隣接するリコンフィギュラブルコア１０１間には、隣接する２つのリコンフィギュラブルコア１０１のうち一のリコンフィギュラブルコア１０１の出力を一時保持し、他のリコンフィギュラブルコア１０１へと出力する２段のレジスタ回路１０２と、他のリコンフィギュラブルコア１０１の出力を一時保持し、一のリコンフィギュラブルコア１０１へと出力する２段のレジスタ回路１０２とが形成される。
【００９１】
各リコンフィギュラブルコア１０１は、レジスタ回路１０２を２段介してデータのやりとりを行う。これにより、各々のリコンフィギュラブルコア１０１は独立した回路として取り扱うことができる。論理再構成可能な半導体集積回路１００全体が大規模な回路になったとしても、各々のリコンフィギュラブルコア１０１自体は独立した１／４の大きさの回路にしかならない。そのため、大規模な回路機能をマッピングしようとした場合であっても、各々のリコンフィギュラブルコア１０１内でのマッピングの組み合わせを限られたものにできる。したがって、高速に回路機能をマッピングできる。なお、マッピングの詳細については後述する。
【００９２】
ここで、レジスタ回路１０２を２段設けている１つの理由は配線距離に起因する遅延に対してタイミング制約を緩和するためである。例えば、レジスタ回路１０２を１段しか設けない場合、レジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１の最も離れた位置のロジックエレメント２０１からの出力データをあるクロックエッジで格納し保持し、次のクロックエッジでデータの入力先となるリコンフィギュラブルコア１０１の最も離れた位置のロジックエレメント２０１までデータを出力しなくてはならない可能性があり、タイミング制約が厳しくなる。一方、レジスタ回路１０２を２段設けることによってこの制約は緩和される。例えば、２段のレジスタ回路１０２のうち、初段のレジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１側の近傍に配置され、２段目のレジスタ回路１０２は、データの入力先となるリコンフィギュラブルコア１０１側の近傍に配置される。
【００９３】
また、レジスタ回路１０２に入力されるクロックはデータの出力先となるリコンフィギュラブルコア１０１に入力されるクロックと同一のクロックが入力される。例えば、リコンフィギュラブルコア１０１Ａからリコンフィギュラブルコア１０１Ｃへとデータが転送される経路上に設けられたレジスタ回路１０２にはリコンフィギュラブルコア１０１Ｃと同一のクロックＣＬＫＣが供給される。これにより、各リコンフィギュラブルコア１０１を非同期で動作させた場合でも、少なくとも後段のレジスタ回路１０２ではデータが確実に保持される。よって、半導体集積回路１００は、各リコンフィギュラブルコア１０１を非同期で動作させた場合に生じるメタステーブル（セットアップ制約、又はホールド制約が満たされない状態）の発生を防止できる。
【００９４】
次に、マッピング装置を用いて、本発明の実施の形態１に係る論再構成可能な半導体集積回路１００に回路機能をマッピングする方法について説明する。マッピングによりメモリ１０３に保持されるコンフィギュレーションデータが作成される。
【００９５】
図８は、本発明の実施の形態１に係るマッピング装置のハードウェア構成を示す図である。図８に示すマッピング装置４００は、上述した半導体集積回路１００に回路記述に記述される回路機能をマッピングする。マッピング装置４００は、例えば、パーソナルコンピュータである。マッピング装置４００は、キーボード４０１と、ディスプレイ４０２と、ＣＰＵ４０３と、ＲＯＭ４０４と、ＲＡＭ４０５とを備える。
【００９６】
キーボード４０１は、設計者による操作を受け付ける。ディスプレイ４０２は、設計者に処理結果等を表示する。ＣＰＵ４０３は、ＲＯＭ４０４に格納されるプログラム４０６を実行することにより、マッピング装置４００の全体を制御する。ＲＯＭ４０４は、ＣＰＵ４０３により実行されるプログラム４０６を格納する読み出し専用メモリである。なお、プログラム４０６は、図示しない不揮発性メモリ又はＨＤ（Ｈａｒｄ  Ｄｉｓｋ）等に保持されてもよい。ＲＡＭ４０５は、ＣＰＵ４０３がプログラム４０６を実行する際に用いられるワークデータ等を保持する読み書き可能なメモリである。
【００９７】
以上の構成により、マッピング装置４００のＣＰＵ４０３がプログラム４０６を実行することにより、半導体集積回路１００に回路記述に記述される回路機能をマッピングする。
【００９８】
なお、マッピング装置４００によるマッピングは、専用のハードウェアにより実現されてもよい。
【００９９】
図９は、半導体集積回路１００への回路機能のマッピングの流れを示すフローチャートである。
【０１００】
まず、設計者は論理再構成可能な半導体集積回路１００にマッピングする回路機能を記述する（Ｓ２０１）。この回路機能の記述にはＨＤＬなどのハードウェア記述言語、又はＣ言語などの高級言語が使用される。回路機能を記述する際には、設計者は大規模な回路機能を複数の処理モジュールに分けて記述し、これらの処理モジュール間には２サイクルの遅延が入るように記述する。これにより、各処理モジュールの間には２段のレジスタ回路が挿入されることになる。
【０１０１】
次に、マッピング装置４００は、設計者によって記述された回路記述に記述される回路機能を複数の回路機能ブロックに分割する（Ｓ２０２）。具体的には、マッピング装置４００は、回路記述に含まれる処理モジュールを一度束ねた上で４つのブロックに再分割する。マッピング装置は、再分割されたブロックを４つのリコンフィギュラブルコア１０１に割り当てる。次に、マッピング装置４００は、４つのブロックの間に位置する２段のレジスタをレジスタ回路１０２に割り当てるために、リコンフィギュラブルコア１０１へのマッピング対象から除外する（Ｓ２０３）。
【０１０２】
以下、図１０を用いて、マッピング装置４００によるステップＳ２０２及びＳ２０３の処理の具体例を説明する。
【０１０３】
図１０は、ステップＳ２０２での各リコンフィギュラブルコア１０１への割り当て、及びステップＳ２０３でのレジスタ回路１０２への割り当て処理を説明するための図である。
【０１０４】
図１０を用いて、設計者により、モジュール２２１Ａ〜２２１Ｆの６つの処理モジュールに分割された大規模回路の回路記述が入力された場合の、マッピング装置４００の処理を説明する。この大規模回路はモジュール２２１Ｅからデータが入力され、所定の演算処理を施した後にモジュール２２１Ｄから演算処理の結果が出力される。設計者により各々のモジュールの間にレジスタが２段挿入されるように回路記述が記述されている（２サイクルの遅延が記述されている）。但し、モジュール２２１Ａとモジュール２２１Ｂとの間では演算処理のアルゴリズムの制約からレジスタは挿入されていない。
【０１０５】
ステップＳ２０２ではこの回路記述を、マッピング装置４００が、各々の処理モジュールの回路規模及び速度を考慮して、４つのブロックに分割する。また、マッピング装置４００は、分割されたブロックを各リコンフィギュラブルコアへと割り当てる。例えば、マッピング装置４００は、モジュール２２１Ａ及び２２１Ｂをリコンフィギュラブルコア１０１Ａに、モジュール２２１Ｃ及び２２１Ｄをリコンフィギュラブルコア１０１Ｂに、モジュール２２１Ｅをリコンフィギュラブルコア１０１Ｃに、モジュール２２１Ｆをリコンフィギュラブルコア１０１Ｄに割り当てる。
【０１０６】
ステップＳ２０３で、マッピング装置４００は、モジュール２２１Ａとモジュール２２１Ｅとの間に存在するレジスタ２２２Ａをリコンフィギュラブルコア１０１Ａと１０１Ｃとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、モジュール２２１Ｂとモジュール２２１Ｄとの間のレジスタ２２２Ｂをリコンフィギュラブルコア１０１Ａと１０１Ｂとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、モジュール２２１Ｃとモジュール２２１Ｆとの間に設けられたレジスタ２２２Ｄをリコンフィギュラブルコア１０１Ｂと１０１Ｄとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、モジュール２２１Ｅとモジュール２２１Ｆとの間に設けられたレジスタ２２２Ｅをリコンフィギュラブルコア１０１Ｃと１０１Ｄとの間に設けられたレジスタ回路１０２に割り当てる。マッピング装置４００は、レジスタ回路１０２に割り当てたレジスタ２２２Ａ、２２２Ｂ、２２２Ｄ及び２２２Ｆをマッピング対象からは除外する。
【０１０７】
一方で、マッピング装置４００は、１つのリコンフィギュラブルコア１０１Ｂに割り当てられたモジュール２２１Ｃとモジュール２２１Ｄとの間に設けられたレジスタ２２２Ｃを、リコンフィギュラブルコア１０１へのマッピング対象に残す。
【０１０８】
次に、マッピング装置４００は、各々のリコンフィギュラブルコア１０１に割り当てられた回路機能をマッピングする（Ｓ２０４）。図１１は、ステップＳ２０４での、１つのリコンフィギュラブルコア１０１への回路機能のマッピングの流れを示すフローチャートである。
【０１０９】
まず、マッピング装置４００は、ステップＳ２０２で再分割され、ステップＳ２０３でレジスタが除外されたブロックの回路記述を取得する（Ｓ３０１）。
【０１１０】
次に、マッピング装置４００は、マッピングにおける制約条件を取得する（Ｓ３０２）。例えば、制約条件は、速度及び面積などに関する条件である。また、例えば、制約条件は、設計者によりマッピング装置４００に入力される。
【０１１１】
次に、マッピング装置４００は、ステップＳ３０１で取得された回路記述を論理合成する（Ｓ３０３）。具体的には、マッピング装置４００は、回路記述に記述される回路機能を１つのロジックエレメント２０１に割り当て可能な機能単位に分割する。マッピング装置４００は、分割された機能単位の接続関係を決定する。次に、マッピング装置４００は、分割された機能単位を実回路におけるロジックエレメント２０１上に配置する（Ｓ３０４）。これによって、各々のロジックエレメント２０１の機能（入力に対する出力の関係）が決定される。
【０１１２】
次に、マッピング装置４００は、論理合成によって決定された接続関係を満たすように、プログラマブルな配線を用いて各々のロジックエレメント２０１を配線する（Ｓ３０５）。なお、ロジックエレメント２０１への配置とプログラマブルな配線によるロジックエレメント２０１の接続とは１つの処理として行われてもよいし、分割された処理として行われてもよい。
【０１１３】
次に、マッピング装置４００は、配置及び配線された回路が、ステップＳ３０２で取得された制約条件を満たすか否かを判定する（Ｓ３０６）。制約条件を満たす場合（Ｓ３０６でＹｅｓ）、ブロックの合成、配置及び配線が終了する。また、制約条件を満たさない場合（Ｓ３０６でＮｏ）、次に、マッピング装置４００は、所定の回数ステップＳ３０４〜Ｓ３０６の処理が繰り返されたか否かを判定する（Ｓ３０７）。所定の回数の繰り返し処理が行われていない場合（Ｓ３０７でＮｏ）、マッピング装置４００は、再度、配置及び配線処理（Ｓ３０４及びＳ３０５）を行う。すなわち、マッピング装置４００は、配置及び配線処理（Ｓ３０４及びＳ３０５）を制約条件が満たされるまで繰り返す。また、所定の回数処理が繰り返されても制約条件を満たさない場合（Ｓ３０７でＹｅｓ）、マッピング装置４００は、ブロックへのマッピングが不可であるとして処理を終了する。
【０１１４】
なお、制約条件を満たさない場合（Ｓ３０６でＮｏ）、合成処理（Ｓ３０３）、配置及び配線処理（Ｓ３０４及びＳ３０５）を再度行ってもよい。
【０１１５】
また、マッピング装置４００は、所定の回数処理が繰り返されても制約条件が満たされない場合には、制約条件を満たせない旨を表示してもよい。これにより、設計者により制約条件が見直され、マッピング装置４００は、新たに入力された制約条件を取得し（Ｓ３０２）、新たな制約条件に対してステップＳ３０３〜３０６の処理を行うことができる。
【０１１６】
ここで、マッピング装置４００は、リコンフィギュラブルコア１０１毎に分割された回路機能をマッピングするので、従来のように大規模な回路記述を１つの大規模なリコンフィギュラブルコアにマッピングする場合と比較して、短時間で処理を収束させることができる。
【０１１７】
次に、マッピング装置４００は、４つのリコンフィギュラブルコア１０１の全てについて制約条件が満たされたか否かが判定する（Ｓ２０５）。満たされている場合（Ｓ２０５でＹｅｓ）、大規模回路の回路記述のマッピングが終了する。
【０１１８】
複数のリコンフィギュラブルコア１０１のいずれか１以上について制約条件が満たされていない場合（Ｓ２０５でＮｏ）、マッピング装置４００は、ステップＳ２０２〜Ｓ２０４でのマッピング処理が所定の回数繰り返し行われたかを判定する（Ｓ２０６）。所定の回数の繰り返し処理が行われていない場合（Ｓ２０６でＮｏ）、マッピング装置４００は、ステップＳ２０２以降の処理を再度行う。所定の回数の繰り返し処理が行われている場合（Ｓ２０６でＹｅｓ）、マッピング装置４００は、ステップＳ２０１で記述された回路機能は論理再構成可能な半導体集積回路１００にはマッピングできないものであると判断する。
【０１１９】
ここで、ステップＳ２０２、Ｓ２０３、Ｓ２０５及びＳ２０６の処理は、マッピング装置４００がプログラム４０６に含まれる専用のポイントツールを用いて実行する方法と、合成ツールの一部として実行する方法とがある。また、Ｓ２０４の処理は、マッピング装置４００がプログラム４０６に含まれる従来と同様の合成ツール及びＰ＆Ｒツールを実行することにより実現できる。
【０１２０】
以上説明してきたように、本発明の実施の形態１の論理再構成可能な半導体集積回路１００を用いることにより、大規模な回路機能における処理モジュール毎にレジスタを２段挿入しておけば、マッピング装置４００は各々のリコンフィギュラブルコア１０１を独立の回路と取り扱ってマッピングを行うことができる。したがって、短時間でマッピングが終了する。
【０１２１】
さらにリコンフィギュラブルコア１０１とレジスタ回路１０２とが同一チップ内に設けされ、かつレジスタ回路１０２がリコンフィギュラブルコア１０１に供給されるクロックと同一のクロックで駆動されているので、半導体集積回路１００は１つの大規模な論理再構成可能な半導体集積回路と同様の速度で動作できる。
【０１２２】
これまで本発明を実施するための最良の形態について説明してきたが、本発明が上記の実施の形態に限定されるものではないことは言うまでもない。一例として、以下のような変形を施すことが可能である。
【０１２３】
レジスタ回路１０２は３段以上設けてもよい。この場合、各リコンフィギュラブルコア１０１のクロックが非同期であるとすれば、少なくとも後段の２段のレジスタ回路１０２については、メタステーブルへの対策として、データの入力先となるリコンフィギュラブルコア１０１と同一のクロックを供給することが望ましい。
【０１２４】
また、レジスタ回路１０２は１段であってもよい。なお、上述したようにレジスタ回路１０２が１段の場合、タイミング制約が厳しくなる。しかしながら、リコンフィギュラブルコア１０１間の距離が短い場合、及びリコンフィギュラブルコア１０１の回路規模が小さい場合等には、レジスタ回路１０２が１段であっても、タイミング制約を守ることができる。レジスタ回路１０２が１段の場合、レジスタ回路１０２は、データの出力元となるリコンフィギュラブルコア１０１と、データの入力先となるリコンフィギュラブルコア１０１から等距離の位置に配置されることが望ましい。
【０１２５】
また、上記説明において、各々のリコンフィギュラブルコア１０１には異なるクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＤが入力されるとしたが、構成を単純化するためにこのクロックを全て同一のクロックとすることも可能である。また、複数のリコンフィギュラブルコア１０１のうちいずれか２以上に同一のクロックを供給してもよい。
【０１２６】
また、上記説明において、２段のレジスタ回路１０２は、隣接するリコンフィギュラブルコア１０１間の全てに形成されているが、隣接するリコンフィギュラブルコア１０１間のうち１以上に形成されればよい。また、隣接する２つのリコンフィギュラブルコア１０１のうち一のリコンフィギュラブルコア１０１からの他のリコンフィギュラブルコア１０１へ送信されるデータを保持するレジスタ回路１０２のみを設け、他のリコンフィギュラブルコア１０１からの一のリコンフィギュラブルコア１０１へ送信されるデータを保持するレジスタ回路１０２を設けなくてもよい。
【０１２７】
また、隣接しないリコンフィギュラブルコア１０１間に２段のレジスタ回路１０２を形成してもよい。例えば、リコンフィギュラブルコア１０１Ａとリコンフィギュラブルコア１０１Ｄとの間に２段のレジスタ回路１０２を形成してもよい。リコンフィギュラブルコア１０１Ｂとリコンフィギュラブルコア１０１Ｂとの間に２段のレジスタ回路１０２を形成してもよい。
【０１２８】
また、本発明の実施の形態１に係る半導体集積回路１００は、所謂ＳＯＣにおける１つの回路ブロックとして構成されとしたが、半導体集積回路１００は、それだけで１チップのＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として構成されてもよい。
【０１２９】
また、ロジックエレメント２０１としてＬＵＴではなく、１又は複数のＡＬＵを用いることも可能である。画像の符号化、画像の復号化及び暗号処理などの信号処理演算は単純な演算の繰り返しによって構成されることが多い。したがって、ロジックエレメント２０１として１又は複数のＡＬＵを用いることによって、信号処理演算に最適なリコンフィギュラブルコア１０１が実現できる。特に本発明に係る論理再構成可能な半導体集積回路１００をＳＯＣにおける１つの回路ブロックとして構成する場合には、制御系の処理はＣＰＵ１０に任せることができるので、ＡＬＵをロジックエレメント２０１として用いたリコンフィギュラブルコア１０１を用いることが好ましい。従来のＳＯＣでは様々な種類の信号処理を実現する必要がある場合には、信号処理毎に専用ハードウェアを設計していた。一方、ロジックエレメント２０１として１又は複数のＡＬＵを用い、かつＣＰＵ１０を含むＳＯＣとすることで、専用ハードウェアを設けなくても１つの論理再構成可能な半導体集積回路１００で全ての処理を行うことができる。
【０１３０】
また、論理再構成可能な半導体集積回路１００で実現すべき回路機能によっては、全てのリコンフィギュラブルコア１０１を用いて１つの回路機能を実現する必要はなく、一部のリコンフィギュラブルコア１０１を用いて１つの回路機能をマッピングしてもよい。また、残りのリコンフィギュラブルコアには別の回路機能をマッピングしてもよい。
【０１３１】
また、上記説明において、リコンフィギュラブルコア１０１Ａ、１０１Ｂ、１０１Ｃ及び１０１Ｄは、同じ構成であるとしたが、異なる構成であってもよい。例えば、各リコンフィギュラブルコア１０１に含まれるロジックエレメント２０１の数が異なってもよい。
【０１３２】
また、本発明において各々のリコンフィギュラブルコア１０１は、電源を投入したまま動的に論理を再構成することが可能な動的再構成可能なリコンフィギュラブルコア１０１であっても、論理を再構成するためには一度電源を落とす必要がある所謂ＦＰＧＡであっても、何れでも構わない。
【０１３３】
また、リコンフィギュラブルコア１０１が備える４つのＩＯ部の構成は、図５に示す構成に限定されるものではない。Ｓ方向からコンフィギュレーションデータが入力される構成であれば、ＩＯ部の構成は任意でよい。
【０１３４】
また、上記説明において、図９に示すステップＳ２０１〜Ｓ２０６の処理を、マッピング装置４００が行うとしたが、処理の一部を設計者が行いマッピング装置４００に入力してもよい。
【０１３５】
また、上記説明において、リコンフィギュラブルコア１０１が４つの例を説明したが、半導体集積回路１００は、複数のリコンフィギュラブルコア１０１を備えればよい。例えば、半導体集積回路１００は、２、３又は５以上のリコンフィギュラブルコア１０１を備えてもよい。
【０１３６】
また、メモリ１０３は図４に示すようにＳ方向が対向する１組のリコンフィギュラブルコア１０１に１つ設けるのではなく、リコンフィギュラブルコア１０１毎にメモリ１０３を１つ設ける構成としてもよい。図１２は、実施の形態１に係る半導体集積回路１００の変形例であり、リコンフィギュラブルコア１０１毎にメモリ１０３を１つ備える半導体集積回路１５０の構成を示す図である。図１２に示すように、半導体集積回路１５０は、４つのメモリ１０３Ａ、１０３Ｂ、１０３Ｃ及び１０３Ｄを備える。メモリ１０３Ａは、リコンフィギュラブルコア１０１Ａに入力されるコンフィギュレーションデータを格納する。メモリ１０３Ｂは、リコンフィギュラブルコア１０１Ｂに入力されるコンフィギュレーションデータを格納する。メモリ１０３Ｃは、リコンフィギュラブルコア１０１Ｃに入力されるコンフィギュレーションデータを格納する。メモリ１０３Ｄは、リコンフィギュラブルコア１０１Ｄに入力されるコンフィギュレーションデータを格納する。このような構成にすることで、全てのリコンフィギュラブルコア１０１を並列にコンフィギュレーションできるので、短期間でコンフィギュレーションが終了する。
【０１３７】
（実施の形態２）
本発明の実施の形態２に係る半導体集積回路は、レジスタ回路１０２及びリコンフィギュラブルコア１０１へのクロックの供給を停止する機能を有する。これにより、余分な消費電力を削減できる。
【０１３８】
図１３は、本発明の実施の形態２に係る半導体集積回路の構成を示す図である。
【０１３９】
図１３に示す半導体集積回路２００は、図５に示す実施の形態１に係る半導体集積回路１００の構成に加えて、複数の第１クロック停止回路１０４と、複数の第２クロック停止回路１０５とを備える。なお、図５と同様の要素には同一の符号を付しており、説明は省略する。
【０１４０】
第１クロック停止回路１０４は、複数のリコンフィギュラブルコア１０１の各々に対応して形成される。第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１にクロックを供給するか否かを制御する。第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１が使用されない場合には、当該リコンフィギュラブルコア１０１へのクロックの供給を停止する。また、第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１が使用されない場合には、当該リコンフィギュラブルコア１０１への信号の入力に用いられるレジスタ回路１０２へのクロックの供給を停止する。例えば、第１クロック停止回路１０４は、対応するリコンフィギュラブルコア１０１に回路が構成されない場合に、クロックの供給を停止する。
【０１４１】
第２クロック停止回路１０５は、２段のレジスタ回路１０２の各々に対応して形成される。第２クロック停止回路１０５は、対応するレジスタ回路１０２へのクロックの供給を制御する。第２クロック停止回路１０５は、対応するレジスタ回路１０２を用いた信号伝達が行われない場合には、当該レジスタ回路１０２へのクロックの供給を停止する。例えば、リコンフィギュラブルコア１０１Ａと１０１Ｂとが動作していたとしても、その間で信号伝達がないことはあり得る。そのような場合にはリコンフィギュラブルコア１０１Ａと１０１Ｂとの間のレジスタ回路１０２にクロックを供給する必要はない。またリコンフィギュラブルコア１０１Ａからリコンフィギュラブルコア１０１Ｂへの信号伝達があるが、逆方向には信号伝達がないこともあり得る。その場合にはリコンフィギュラブルコア１０１Ｂからリコンフィギュラブルコア１０１Ａへの信号伝達を行う経路に挿入されたレジスタ回路１０２のみへのクロックの供給を停止すればよい。
【０１４２】
以上より、本発明の実施の形態２に係る半導体集積回路２００は、使用されないリコンフィギュラブルコア１０１へのクロックの供給を停止する。これにより、余分な消費電力を削減できる。また、半導体集積回路２００は、使用されないレジスタ回路１０２へのクロックの供給を停止する。これにより、余分な消費電力を削減できる。
【０１４３】
なお、図１３では、半導体集積回路２００は、全てのリコンフィギュラブルコア１０１の各々に対応する第１クロック停止回路１０４を備えているが、半導体集積回路２００は、リコンフィギュラブルコア１０１のいずれか１以上に対応する１以上の第１クロック停止回路１０４を備えてもよい。この場合、回路機能のマッピング時に、対応する第１クロック停止回路１０４が設けられていないリコンフィギュラブルコア１０１に、優先的にマッピングを行えばよい。
【０１４４】
また、図１３では、半導体集積回路２００は、全てのレジスタ回路１０２の各々に対応する第２クロック停止回路１０５を備えているが、半導体集積回路２００は、レジスタ回路１０２のいずれか１以上に対応する１以上の第２クロック停止回路１０５を備えてもよい。
【０１４５】
（実施の形態３）
上述した実施の形態１におけるマッピングでは、図１０に示すステップＳ２０１の回路記述に２段のレジスタ回路を挿入する処理を設計者が行うとした。実施の形態３では回路記述に２段のレジスタ回路を挿入する処理を行うプログラム変換装置について説明する。
【０１４６】
本発明の実施の形態３に係るプログラム変換装置の機能は、例えば、パーソナルコンピュータ等がプログラムを実行することにより実現される。例えば、実施の形態３に係るプログラム変換装置は、図８に示す構成と同様の構成である。すなわち、プログラム変換装置の機能は、ＣＰＵ４０３がプログラム４０６を実行することにより実現される。なお、本発明の実施の形態３に係るプログラム変換装置の機能は、専用のハードウェアにより実現されてもよい。
【０１４７】
本発明の実施の形態３に係るプログラム変換装置は、従来と同様の回路記述を上述した実施の形態１に係るマッピング装置４００でマッピング可能な状態に変換する。本発明の実施の形態３に係るプログラム変換装置は、複数の処理モジュールからなる１つの大規模な回路の回路機能が記述された回路記述の、各処理モジュール間に選択的に２段のレジスタ回路を挿入する。
【０１４８】
以下、設計者により５つのモジュール３０１Ａ、３０１Ｂ、３０１Ｃ、３０１Ｄ及び３０１Ｅの回路機能が記述された回路記述に、プログラム変換装置がレジスタ回路を挿入する動作について、図１４〜図１８を用いて説明する。
【０１４９】
図１４は、本発明の実施の形態３に係るプログラム変換装置の処理の流れを示すフローチャートである。図１５〜図１８は、プログラム変換装置の処理を説明するための図である。
【０１５０】
まず、プログラム変換装置は、設計者により記述された、論理再構成可能な半導体集積回路にマッピングする回路記述を取得する（Ｓ４０１）。プログラム変換装置により取得される回路記述は、設計者により、複数の処理モジュールとして回路機能が記述された回路記述である。回路記述にはＨＤＬなどのハードウェア記述言語、又はＣ言語などの高級言語が使用される。例えば、プログラム変換装置は、図１５に示す回路記述を取得する。
【０１５１】
次に、プログラム変換装置は、ステップＳ４０１で取得された回路記述に基づき、複数の処理モジュールからなる回路機能を１つの回路とした場合の入力信号と出力信号との満たすべき関係（制約）を算出する（Ｓ４０２）。具体的には、プログラム変換装置は、回路記述に含まれる各処理モジュールの処理に要するサイクル数に基づき、全体の回路の入力信号が入力されてから有効な出力信号が得られるまでのサイクル数を算出する。例えば、プログラム変換装置は、制約として、図１５に示す入力信号ＩＮ０が入力されてから、出力信号ＯＵＴ０が得られるまでのサイクル数を５サイクル以内と算出する。また、プログラム変換装置は、制約として、入力信号ＩＮ０が入力されてから、出力信号ＯＵＴ１が得られるまでのサイクル数を３サイクル以内と算出する。
【０１５２】
次に、プログラム変換装置は、仮想モジュールを設定する（Ｓ４０３）。具体的には、プログラム変換装置は、複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出し、１つの仮想モジュールと設定する。例えば、図１６に示すように、モジュール３０１Ｅの出力がモジュール３０１Ｃにフィードバックしているので、プログラム変換装置は、モジュール３０１Ｃとモジュール３０１Ｅとを１つの仮想モジュール３０１Ｆとして設定する。また、プログラム変換装置は、フィードバック系を有さないモジュール３０１Ａ、３０１Ｂ及び３０１Ｄを各々１つのモジュールとして設定する。すなわち、プログラム変換装置は、モジュール３０１Ａ、３０１Ｂ、３０１Ｄ及び仮想モジュール３０１Ｆを各々１つのモジュールとして以降の処理で扱う。
【０１５３】
次に、プログラム変換装置は、モジュール３０１Ａ、３０１Ｂ、３０１Ｄ及び仮想モジュール３０１Ｆの各々の間にレジスタを挿入、又は挿入しないパターンを生成する（Ｓ４０４）。例えば、プログラム変換装置により生成される複数のパターンのうちレジスタの数が最大となるパターンは、図１７に示すように、モジュール３０１Ａ、３０１Ｂ、３０１Ｄ及び仮想モジュール３０１Ｆの各々の間にレジスタ３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ及び３０２ＢＦが挿入されるパターンである。また、プログラム変換装置は、レジスタ３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ及び３０２ＢＦのうちいずれか１以上が挿入されるパターン、及び全てが挿入されないパターンを生成する。なお、レジスタ３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ及び３０２ＢＦを特に区別しない場合は、レジスタ３０２と記す。
【０１５４】
例えば、信号の受け渡しがあるモジュール間の数をＮとすると、プログラム変換装置は、２Ｎ個のパターンを生成する。図１７に示す例では、信号の受け渡しがあるモジュール間の数は５箇所である。よって、プログラム変換装置は、２５＝３２通りのパターンを生成する。ここで、挿入されるレジスタ３０２は、各々２段のレジスタである。
【０１５５】
次に、プログラム変換装置は、ステップＳ４０４で生成された複数のパターンのうち、ステップＳ４０２で算出された制約を満たすパターンを抽出する（Ｓ４０５）。プログラム変換装置は、ステップＳ４０４で生成された複数のパターンの各々に対して、ステップＳ４０２で算出された制約を満たすか否かを判定する。例えば、レジスタ３０２ＢＤ及び３０２ＢＦのうち少なくとも一方を挿入した場合に制約が満たさない場合、プログラム変換装置は、図１８に示すレジスタ３０２ＡＢ、３０２ＡＤ及び３０２ＡＦが挿入されたパターンを制約が満たされるパターンとして抽出する。また、プログラム変換装置は、レジスタ３０２ＡＢ、３０２ＡＤ及び３０２ＡＦのうちいずれか１以上が挿入されたパターン及びいずれも挿入されないパターンを制約が満たされるパターンとして抽出する。
【０１５６】
次に、プログラム変換装置は、ステップＳ４０５で抽出されたパターンのうちいずれかを選択する（Ｓ４０６）。例えば、プログラム変換装置は、抽出されたパターンのうち最も挿入されるレジスタの数が多いパターンを選択する。つまり、図１８に示す例では、プログラム変換装置は、レジスタ３０２ＡＢ、３０２ＡＤ及び３０２ＡＦが挿入されたパターンを選択する。選択されたパターンに対して、図９に示すステップＳ２０２以降の処理が上述したマッピング装置４００により実行される。
【０１５７】
また、以降の処理で制約条件が満たされない場合、又はマッピング不可と判断された場合に、プログラム変換装置は、ステップＳ４０５で抽出されたパターンのうちステップＳ４０６で選択されたパターンと異なるパターンを選択する。新たに選択されたパターンに対してマッピング装置４００によりステップＳ２０２以降の処理が実行される。
【０１５８】
以上より、本発明の実施の形態３に係るプログラム変換装置は、回路記述にレジスタ回路１０２に対応するレジスタを加えることができる。すなわち、本発明の実施の形態３に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間に２段のレジスタが挿入された回路記述に変換できる。
【０１５９】
また、本発明の実施の形態３に係るプログラム変換装置は、レジスタが挿入された複数のパターンから制約を満たすパターンのみを抽出できる。
【０１６０】
また、本発明に係る実施の形態３に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えない。フィードバック系を有するモジュール間にはレジスタを加えた場合、ステップＳ４０５における制約を満たすか否かの判断が複雑になり、プログラム変換装置の処理量が増加する。実施の形態３に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えないので、処理量を低減できる。
【０１６１】
なお、上記説明では、プログラム変換装置はステップＳ４０１において複数の処理モジュールとして回路機能が記述された回路記述を取得するとしたが、プログラム変換装置は１つの大規模な回路記述を取得し、取得した回路記述を複数の処理モジュールに分割してもよい。
【０１６２】
また、上記説明では、ステップＳ４０２においてプログラム変換装置が回路記述に基づき制約を算出するとしたが、プログラム変換装置は、設計者により入力された制約を用いてもよい。
【０１６３】
また、上述したプログラム変換装置を、実施の形態１で説明したマッピング装置４００の１機能として実現してもよい。
【産業上の利用可能性】
【０１６４】
本発明によれば、論理再構成可能な半導体集積回路に大規模な回路機能をマッピングすることが可能となるので、様々な電子機器において利用可能性がある。
【図面の簡単な説明】
【０１６５】
【図１】図１は、従来の論理再構成可能な半導体集積回路の構成を示す図である。
【図２】図２は、従来の論理再構成可能な半導体集積回路への回路機能のマッピングの流れを示す図である。
【図３】図３は、本発明の実施の形態１に係る半導体集積回路の構成を示す図である。
【図４】図４は、本発明の実施の形態１に係る論理再構成可能な半導体集積回路の構成を示す図である。
【図５】図５は、本発明の実施の形態１に係るリコンフィギュラブルコアの構成を示す図である。
【図６】図６は、本発明の実施の形態１に係るロジックエレメント周辺の構成を示す図である。
【図７】図７は、本発明の実施の形態１に係るロジックエレメントの詳細な構成を示す図である。
【図８】図８は、本発明の実施の形態１に係るマッピング装置の構成を示す図である。
【図９】図９は、本発明の実施の形態１に係る回路機能のマッピングの流れを示すフローチャートである。
【図１０】図１０は、本発明の実施の形態１に係る回路機能のマッピングにおける各リコンフィギュラブルコアへの割り当てを説明するための図である。
【図１１】図１１は、本発明の実施の形態１に係る回路機能のマッピングにおける１つのリコンフィギュラブルコアへの回路機能のマッピングの流れを示すフローチャートである。
【図１２】図１２は、本発明の実施の形態１に係る半導体集積回路の変形例の構成を示す図である。
【図１３】図１３は、本発明の実施の形態２に係る半導体集積回路の構成を示す図である。
【図１４】図１４は、本発明の実施の形態３に係るプログラム変換装置の処理の流れを示すフローチャートである。
【図１５】図１５は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【図１６】図１６は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【図１７】図１７は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【図１８】図１８は、本発明の実施の形態３に係るプログラム変換装置の処理を説明するための図である。
【符号の説明】
【０１６６】
１  半導体装置
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＤＭＡ
１３  ハードウェア回路
１００、１５０、２００、５００  半導体集積回路（ＦＰＧＡ）
１０１、１０１Ａ、１０１Ｂ、１０１Ｃ、１０１Ｄ  リコンフィギュラブルコア
１０２  レジスタ回路
１０３、１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ  メモリ
１０４  第１クロック停止回路
１０５  第２クロック停止回路
２０１、５０１  ロジックエレメント
２０２  スイッチボックス
２０３  配線ボックス群
２０４Ｅ、２０４Ｎ、２０４Ｓ、２０４Ｗ  ＩＯ部
２１０  ルックアップテーブル
２１１  マルチプレクサ
２１２  フリップフロップ
２２１Ａ、２２１Ｂ、２２１Ｃ、２２１Ｄ、２２１Ｅ、２２１Ｆ、３０１Ａ、３０１Ｂ、３０１Ｃ、３０１Ｄ、３０１Ｅ  モジュール
２２２Ａ、２２２Ｂ、２２２Ｃ、２２２Ｄ、２２２Ｅ、３０２、３０２ＡＢ、３０２ＡＤ、３０２ＡＦ、３０２ＢＤ、３０２ＢＦ  レジスタ
３０１Ｆ  仮想モジュール
４００  マッピング装置
４０１  キーボード
４０２  ディスプレイ
４０３  ＣＰＵ
４０４  ＲＯＭ
４０５  ＲＡＭ
４０６  プログラム
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008013098.tif 000021
【図２】
2008013098.tif 000022
【図３】
2008013098.tif 000023
【図４】
2008013098.tif 000024
【図５】
2008013098.tif 000025
【図６】
2008013098.tif 000026
【図７】
2008013098.tif 000027
【図８】
2008013098.tif 000028
【図９】
2008013098.tif 000029
【図１０】
2008013098.tif 000030
【図１１】
2008013098.tif 000031
【図１２】
2008013098.tif 000032
【図１３】
2008013098.tif 000033
【図１４】
2008013098.tif 000034
【図１５】
2008013098.tif 000035
【図１６】
2008013098.tif 000036
【図１７】
2008013098.tif 000037
【図１８】
2008013098.tif 000038
【国際調査報告】
2008013098.tif 000039
2008013098.tif 000040