JP4971998B2 - 半導体集積回路、プログラム変換装置及びマッピング装置 - Google Patents

半導体集積回路、プログラム変換装置及びマッピング装置 Download PDF

Info

Publication number
JP4971998B2
JP4971998B2 JP2007553406A JP2007553406A JP4971998B2 JP 4971998 B2 JP4971998 B2 JP 4971998B2 JP 2007553406 A JP2007553406 A JP 2007553406A JP 2007553406 A JP2007553406 A JP 2007553406A JP 4971998 B2 JP4971998 B2 JP 4971998B2
Authority
JP
Japan
Prior art keywords
reconfigurable
circuit
core
reconfigurable core
semiconductor integrated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007553406A
Other languages
English (en)
Other versions
JPWO2008013098A1 (ja
Inventor
信一 丸井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007553406A priority Critical patent/JP4971998B2/ja
Publication of JPWO2008013098A1 publication Critical patent/JPWO2008013098A1/ja
Application granted granted Critical
Publication of JP4971998B2 publication Critical patent/JP4971998B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Manufacturing & Machinery (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、半導体集積回路、プログラム変換装置及びマッピング装置に関し、特に、複数のリコンフィギュラブルコアを備える半導体集積回路に関する。
従来、FPGA(Field Programmable Gate Array)に代表される自己の論理を再構成することが可能な半導体集積回路(以下、「論理再構成可能な半導体集積回路」と記す。)が存在する。
図1は、従来の論理再構成可能な半導体集積回路の全体構成を示す図である。図1に示す従来の論理再構成可能な半導体集積回路500は、アレイ状に配置される複数のロジックエレメント(LE)501を備える。論理再構成可能な半導体集積回路の一つであるFPGAでは、ロジックエレメント501は、ルックアップテーブル(LUT)で構成される。LUTの内容を書き換えることによって、ロジックエレメント501の入力に対する出力の関係が変化する。また、各々のロジックエレメント501は図示しないプログラマブルな配線で接続される。プログラマブルな配線により、何れのロジックエレメント501の出力が何れのロジックエレメント501に入力されるかがプログラマブルに決定される。以上のように、ロジックエレメント501の入力に対する出力の関係と、各々のロジックエレメント501の接続関係とを変更することによって、半導体集積回路500に所望の回路機能を実現できる。
また、プログラマブルな配線については、全てのロジックエレメントが全てのロジックエレメントと直接接続されるようにすると最も接続の自由度が高くなるが、配線リソースが膨大となって現実的ではない。一方で1つのロジックエレメントが1つのロジックエレメントとしか接続できないとすると自由度がない。配線リソースと自由度とのバランスをとってどのような配線構造とすると効率がよいかについては様々に考えられており、一例として特許文献1に記載される技術が知られている。
次に、図1に示す論理再構成可能な半導体集積回路500に所望の回路機能をマッピングする方法について図2を用いて説明する。図2は、従来の論理再構成可能な半導体集積回路500に対するマッピングの流れを示す図である。図2に示すマッピングは論理再構成可能な半導体集積回路500のアーキテクチュア毎に専用の合成ツール及びP&R(Place and Route)ツールを用いて行われる。
まず、ユーザは、HDL(Hardware Description Language)などのハードウェア記述言語、又はC言語などの上級言語を用いて、実現すべき回路機能を記述する(S101)。次に、合成ツールが、記述された回路機能に対して論理合成を行う(S102)。具体的には、合成ツールは、記述された回路機能を1つのロジックエレメント501に割り当て可能な機能単位に分割する。次に、合成ツールは、分割された機能単位間の接続関係を決定する。
次に、P&Rツールが、分割された機能単位を実回路におけるロジックエレメント501上に配置する(S103)。これにより、各々のロジックエレメント501の機能(入力に対する出力の関係)が決定される。
次に、P&Rツールが、論理合成によって決定された接続関係を満たすように、プログラマブルな配線を用いてロジックエレメント501間を配線する(S104)。
以上の配置及び配線を、速度(タイミング)及び回路領域(面積)に対する所定の制限が満たされるまで繰り返す。所定の制限が満たされた場合に、マッピングが終了する。また、所定の制限が満たされない場合には、論理合成を再度行うこともある。
なお、2つのFPGAをマスクのレイアウト上で接続することにより、少ない設計工数で大規模な論理再構成可能な半導体集積回路を構築する手法が特許文献2に開示されている。
米国特許第5594363号明細書 米国特許第6335635号明細書
しかしながら、近年、デジタルTV及び携帯電話に代表されるデジタル機器の多機能化は目覚ましく、これらのデジタル機器で処理される内容も複雑になっている。これに伴い、論理再構成可能な半導体集積回路を用いて実現すべき回路機能も大規模化が進んでおり、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマッピングする必要性が高まっている。
特許文献2に開示される論理再構成可能な半導体集積回路は、基本単位の集合体であるのでスケーラビリティに富み、かつ規模拡張が比較的容易である。しかしながら、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマッピングする場合、まず実現すべき回路機能を機能単位に分割する組み合わせが増大する。さらに各々の機能単位をどのロジックエレメントに割り当てるかの組み合わせが増大する。さらにプログラマブルな配線をどのように用いてロジックエレメント間を接続するかの組み合わせも増大する。結果として、回路規模の増大に伴ってマッピングの組み合わせは急激に増大する。したがって、従来の合成ツール及びP&Rツールを用いて大規模な再構成可能な半導体集積回路を最大限用いて回路機能を実現しようとした場合、マッピングが収束しないことも考えられる。一方でこれらの課題を解決できるような賢い合成ツール及びP&Rツールは現状では存在していない。
本発明は上記に鑑みてなされたものであり、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供することを目的とする。
さらに、別の目的として、複数のリコンフィギュラブルコアを1チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供することを目的とする。
上記目的を達成するために、本発明に係る半導体集積回路は、クロックに同期して動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアに含まれる第1のリコンフィギュラブルコアと第2のリコンフィギュラブルコアとの間に形成され、前記第1のリコンフィギュラブルコアの出力を一時保持し、前記第2のリコンフィギュラブルコアへと出力する第1のレジスタ回路群とを備え、前記複数のリコンフィギュラブルコアの各々は、アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える。
この構成によれば、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできるので、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。よって、本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供できる。
また、前記第1のレジスタ回路群は、前記第1のリコンフィギュラブルコアの出力を一時保持する第1のレジスタ回路と、前記第1のレジスタ回路から出力されるデータを保持し、前記第2のリコンフィギュラブルコアへと出力する第2のレジスタ回路とを含んでもよい。
この構成によれば、配線距離に起因する遅延に対してタイミング制約を緩和できる。
また、前記第1のレジスタ回路及び前記第2のレジスタ回路に入力されるクロックは、前記第2のレジスタ回路が保持するデータの出力先となるリコンフィギュラブルコアと同一のクロックであってもよい。
この構成によれば、各リコンフィギュラブルコアを非同期で動作させた場合でも、第2のレジスタ回路でデータを確実に保持できる。よって、メタステーブル(セットアップ制約又はホールド制約が満たされない状態)の発生を防止できる。
また、前記第1のレジスタ回路群へデータを出力するリコンフィギュラブルコアと、前記第1のレジスタ回路群からデータが入力されるリコンフィギュラブルコアとは入力されるクロックが異なってもよい。
この構成によれば、各リコンフィギュラブルコアを非同期で動作させた場合に発生するメタステーブルの発生を防止できる。
また、前記複数のリコンフィギュラブルコアは、前記リコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータが入力される第1の辺と、前記第1の辺と対向する第2の辺と、前記第1の辺と直交する第3の辺と、前記第3の辺と対向する第4の辺とで囲まれる矩形の形状を有する第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアを含み、前記第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアは、前記第1の辺同士が対向するように分離してレイアウトされてもよい。
この構成によれば、コンフィギュレーションデータを第1の辺から第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、記憶回路から、第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。よって、本発明は、複数のリコンフィギュラブルコアを1チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となるレイアウトを有する半導体集積回路を提供できる。
また、前記半導体集積回路は、さらに、前記第3のリコンフィギュラブルコアと前記第4のリコンフィギュラブルコアとの間に形成され、前記第3のリコンフィギュラブルコア及び前記第4のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第1記憶回路を備えてもよい。
この構成によれば、第1記憶回路に保持されるコンフィギュレーションデータを第1の辺から第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、第1記憶回路から、第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。
また、前記複数のリコンフィギュラブルコアは、さらに、第1の辺と、前記第1の辺と対向する第2の辺と、前記第1の辺と直交する第3の辺と、前記第3の辺と対向する第4の辺とで囲まれる矩形の形状を有す第5のリコンフィギュラブルコア及び第6のリコンフィギュラブルコアを含み、前記第5のリコンフィギュラブルコアと第6のリコンフィギュラブルコアとは、前記第1の辺同士が対向するように分離して配置され、前記第3のリコンフィギュラブルコアと第5のリコンフィギュラブルコアとは、前記第3の辺同士が対向するように分離して配置され、前記第4のリコンフィギュラブルコアと第6のリコンフィギュラブルコアとは、前記第3の辺同士が対向するように分離して配置されてもよい。
この構成によれば、4つのリコンフィギュラブルコアを1チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、各リコンフィギュラブルコアにおける同じ用途に用いられる信号の入出力端子が、各リコンフィギュラブルコア間で対向して配置される。これにより、チップ設計を容易に行うことができる。また、リコンフィギュラブルコア間の配線距離を短くできる。
また、前記半導体集積回路は、さらに、前記第5のリコンフィギュラブルコアと前記第6のリコンフィギュラブルコアとの間に形成され、前記第5のリコンフィギュラブルコア及び前記第6のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第2記憶回路を備えてもよい。
この構成によれば、第2記憶回路に保持されるコンフィギュレーションデータを第1の辺から第5のリコンフィギュラブルコア及び第6のリコンフィギュラブルコアに供給できる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置することが可能となり、チップ設計が容易となる。また、第2記憶回路から、第5のリコンフィギュラブルコア及び第6のリコンフィギュラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。
また、前記半導体集積回路は、さらに、前記第1のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を備えてもよい。
この構成によれば、リコンフィギュラブルコア間で双方向にデータが受け渡される場合でも、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
また、前記第1のレジスタ回路群は、前記第1のリコンフィギュラブルコアの出力を一時保持し、前記第2のリコンフィギュラブルコアへと出力する第2のレジスタ回路群と、前記第2のリコンフィギュラブルコアの出力を一時保持し、前記第1のリコンフィギュラブルコアへと出力する第3のレジスタ回路群とを含んでもよい。
この構成によれば、全てのリコンフィギュラブルの各々を独立した回路として回路機能をマッピングできる。
また、前記第1のレジスタ回路群は、前記複数のリコンフィギュラブルコアの間のうち、隣接するリコンフィギュラブルコアの間の全てに配置され、隣接する2つのリコンフィギュラブルコアのうち一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力してもよい。
この構成によれば、使用されない第1のレジスタ回路群へのクロックの供給を停止できる。これにより、本発明に係る半導体集積回路は、余分な消費電力を削減できる。
また、前記複数のリコンフィギュラブルコアには全て同一のクロックが入力されてもよい。
この構成によれば、半導体集積回路の構成を単純化できる。
また、前記第1のレジスタ回路群は、複数のビットから構成されるデータを複数組保持してもよい。
この構成によれば、本発明に係る半導体集積回路は、リコンフィギュラブルコア間で複数のデータを受け渡しできる。
また、前記ロジックエレメントの各々はLUTを備えてもよい。
この構成によれば、ルックアップテーブルの内容を書き換えることによって、ロジックエレメントの入力に対する出力の関係を任意に変更できる。
また、前記ロジックエレメントの各々は少なくとも1つのALU(Arithmetic Logic Unit)を備えてもよい。
この構成によれば、画像の符号化、画像の復号化及び暗号処理などの単純な演算の繰り返しによって構成される信号処理演算に最適なリコンフィギュラブルコアが実現できる。
また、前記半導体集積回路は、さらに、CPU(Central Processing Unit)を備え、前記複数のリコンフィギュラブルコア、前記第1のレジスタ回路群、及び前記CPUは、1つの半導体基板上に実装されてもよい。
この構成によれば、CPUを含むSOC(System On Chip)において、専用ハードウェアを設けなくても1つの論理再構成可能な半導体集積回路で多種の処理を行うことができる。
また、本発明に係るマッピング装置は、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアのうち少なくとも2つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第1のレジスタ回路群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングするマッピング装置であって、前記回路機能を、複数の回路機能ブロックに分割する分割手段と、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外手段と、前記除外された回路機能ブロックの各々を論理合成する合成手段と、前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線手段とを備える。
この構成によれば、本発明に係るマッピング装置は、回路記述に含まれる第1のレジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、本発明に係るマッピング装置は、各々のリコンフィギュラブルコアを独立にマッピングできる。よって、本発明に係るマッピング装置は、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
また、本発明に係るプログラム変換装置は、複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成手段と、前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出手段と、前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択手段とを備える。
この構成によれば、本発明に係るプログラム変換装置は、回路記述に第1のレジスタ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間にレジスタを挿入した回路記述に変換できる。
また、前記プログラム変換装置は、さらに、前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを1つのモジュールとして、モジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成してもよい。
この構成によれば、本発明に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えない。これにより、プログラム変換装置の処理量を低減できる。
また、本発明に係るマッピング方法は、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、前記複数のリコンフィギュラブルコアのうち少なくとも2つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第1のレジスタ回路群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングするマッピング装置におけるマッピング方法であって、前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外ステップと、前記除外された回路機能ブロックの各々を論理合成する合成ステップと、前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線ステップとを含む。
この方法によれば、回路記述に含まれる第1のレジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、各々のリコンフィギュラブルコアを独立にマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
また、本発明に係るプログラム変換方法は、複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換方法であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出ステップと、前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成ステップと、前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出ステップと、前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む。
この方法によれば、回路記述に第1のレジスタ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプログラム変換方法は、設計者により記述された従来と同様の回路記述を、モジュール間にレジスタを挿入した回路記述に変換できる。
なお、本発明は、このような半導体集積回路、マッピング装置、そのマッピング方法、プログラム変換装置、及びそのプログラム変換方法として実現できるだけでなく、マッピング方法及びプログラム変換方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可能な半導体集積回路を提供できる。また、本発明は、複数のリコンフィギュラブルコアを1チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供できる。
以下、本発明に係る半導体集積回路の実施の形態について、図面を参照しながら詳細に説明する。
(実施の形態1)
本発明の実施の形態1に係る半導体集積回路は、複数のリコンフィギュラブルコア間にそれぞれ2段のレジスタ回路を備える。これにより、各々のリコンフィギュラブルコアを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマッピングする場合であっても、容易にマッピングできる。
まず、本発明の実施の形態1に係る半導体集積回路の構成を説明する。
図3は、本発明の実施の形態1に係る再構成可能な半導体集積回路を備える半導体装置の構成を示す図である。
図3に示す半導体装置1は、CPU10と、RAM(Random Access Memory)11と、DMA(Direct Memory Access)12と、ハードウェア回路13と、FPGA100とを備える。
CPU10は、半導体装置1の全体の制御を行う。RAM11は、読み書き可能な記憶部である。DMA12は、FPGA100及びハードウェア回路13と、RAM11との間のデータ転送を行なう。ハードウェア回路13は、所定の機能を実現する専用ハードウェアで構成された回路である。FPGA100は、再構成可能な半導体集積回路であり、本発明に係る半導体集積回路の一例である。
例えば、CPU10、RAM11、DMA12、ハードウェア回路13及びFPGA100は、1つの半導体基板上に実装されている。すなわち、本発明の実施の形態1に係る半導体集積回路(FPGA)100は、所謂SOCにおける1つの回路ブロックとして構成される。
図4は、本発明の実施の形態1に係る論理再構成可能な半導体集積回路100の構成を示す図である。図4に示す半導体集積回路100は、論理再構成可能な半導体集積回路である。半導体集積回路100は、4つのリコンフィギュラブルコア101A、101B、101C及び101Dと、複数のレジスタ回路102と、2つのメモリ103A及び103Bとを備える。
リコンフィギュラブルコア101A、101B、101C及び101Dは、各々が自己の論理を再構成することが可能な回路である。なお、リコンフィギュラブルコア101A、101B、101C及び101Dを特に区別しない場合には、リコンフィギュラブルコア101と記す。リコンフィギュラブルコア101は、コアの外部から入力されるコンフィギュレーションデータに応じてその内部の接続関係を変更し、それによって論理を再構成することが可能な回路である。なお、コンフィギュレーションデータはリコンフィギュラブルコア101の内部に複数セット予め格納しておくことも可能である。
また、各々のリコンフィギュラブルコア101は矩形の形状であり、東(E)、西(W)、南(S)、北(N)の4つの辺を有している。リコンフィギュラブルコア101はこれら4つの辺について対称ではなく、東西方向と南北方向で内部の配線構造は異なっている。また、本実施の形態においてはリコンフィギュラブルコア101の論理を再構成するためのコンフィギュレーションデータはS方向から入力されるものとする。各々のリコンフィギュラブルコア101はチップ設計上ハードマクロとして取り扱われ、これによって複数のコアを容易に1チップに実装することが可能となる。
また、リコンフィギュラブルコア101は、クロックに同期して動作する。本実施の形態において各々のリコンフィギュラブルコア101には別々のクロックCLKA、CLKB、CLKC及びCLKDが入力される。
図5は、リコンフィギュラブルコア101(101A、101B、101C及び101D)の構成を示す図である。リコンフィギュラブルコア101は、複数のロジックエレメント(LE)201と、複数のスイッチボックス(SB)202と、複数の配線ボックス群(CB)203と、IO部204N、204E、204S及び204Wと、行方向及び列方向に延びる配線群とを備える。
複数のロジックエレメント201は、アレイ状に配置され、各々が所定の論理を実現する。ロジックエレメント201は、コンフィギュレーションデータに応じて、その機能(入力に対する出力の関係)を変更することが可能な機能素子である。スイッチボックス202は、コンフィギュレーションデータに応じて、何れの配線と何れの配線とを接続するかが決定される。配線ボックス群203は、コンフィギュレーションデータに応じて、ロジックエレメント201の入力及び出力を何れの配線に接続するかが決定される。
スイッチボックス202及び配線ボックス群203の接続関係を制御することによって、何れのロジックエレメント201の出力が何れのロジックエレメント201の入力に接続されるかをプログラマブルに決定できる。そこで本実施の形態においては、このスイッチボックス202、配線ボックス群203、及び配線群を総称して、単にプログラマブルな配線とも称する。また、リコンフィギュラブルコア101内にはプログラマブルな配線とは別にクロック配線も設けられる。
IO部204N、204E、204S及び204Wは、リコンフィギュラブルコア101の東西南北方向の各々に配置される入出力回路である。
IO部204Nは、リコンフィギュラブルコア101のN方向に配置される。IO部204Nは、アプリケーションデータバス用及び制御用の入出力を有する。
IO部204Eは、リコンフィギュラブルコア101のE方向に配置される。IO部204Eは、アプリケーションデータバス用の入出力を有する。
IO部204Sは、リコンフィギュラブルコア101のS方向に配置される。IO部204Sは、アプリケーションデータバス用及び制御用の入出力を有する。さらに、IO部204Sは、コンフィギュレーションデータ用の入出力を有する。
IO部204Wは、リコンフィギュラブルコア101のW方向に配置される。IO部204Wは、制御用の入出力を有する。
ここで、アプリケーションデータバス用の入出力は、他のリコンフィギュラブルコア101、CPU10、DMA12及びハードウェア回路13との間で演算結果の入出力に用いられる。制御用の入出力は、CPU10、DMA12及びハードウェア回路13等の外部ハードウェアとの間の制御信号の入出力に用いられる。コンフィギュレーションデータ用の入出力は、メモリ103A及び103Bからのコンフィギュレーションデータの入力に用いられる。
このように、S方向の一方向のみからコンフィギュレーションデータを入力する構造にすることによって、リコンフィギュラブルコア101の配線構造を簡易化できる。また、リコンフィギュラブルコア101の各方向に、入出力の配置が異なるIO部を配置することで、用途に応じた最適なレイアウト配置を実現できる。
図6は、リコンフィギュラブルコア101の内部をさらに詳細に説明するための図である。図6は、1つのロジックエレメント201と、その周辺に配置されるスイッチボックス202、及び配線ボックス群203の構成を示す図である。
本実施の形態においては、ロジックエレメント201は4入力2出力の機能素子であり、その入力は西方向、出力は東方向に設けられる。配線ボックス群203はこの東西方向に延びるロジックエレメント201の入出力を南北方向に延びる配線の何れに接続するかをプログラマブルに決定する。
スイッチボックス202は東西方向に延びる配線と南北方向に延びる配線とをプログラマブルに接続する。また、ロジックエレメント201の出力は南北方向の配線に一度乗り換えた後に配線ボックス群を介して東西方向の配線へと接続することも可能である。またロジックエレメント201には、プログラマブルな配線とは異なる配線でクロックが供給される。
図7は、ロジックエレメント201の詳細な構成を示す図である。本実施の形態において、ロジックエレメント201は、ルックアップテーブル(LUT)210と、複数のプログラム可能なマルチプレクサ211と、フリップフロップ212とを備える。ルックアップテーブル210は、1つが小規模なメモリで構成される。ルックアップテーブル210の入力に対する出力の関係は、メモリに保持される内容が書き換えられることにより、変更される。複数のプログラマブルなマルチプレクサ211の各々により選択される信号は、コンフィギュレーションデータ又は他のロジックエレメント201からの出力に応じて決定される。
図5〜図7に示されるように、各々のリコンフィギュラブルコア101が複数のロジックエレメント201をアレイ状に配置した構成を有するため、ハードマクロとしてのリコンフィギュラブルコア101内部ではロジックエレメント201を接続するためのプログラマブルな配線が密に配線されている。リコンフィギュラブルコア101と外部との境界領域ではアプリケーションデータバス用、制御用、及びコンフィギュレーション用のIOからの配線が比較的疎な配線として配線されている。リコンフィギュラブルコア101間ではIO部からの配線に加えて、半導体集積回路100と同一チップ上の他の回路ブロックとの接続を行うための配線が配線されている。すなわち、各々のリコンフィギュラブルコア101はチップレイアウト上で分離されており、その配線構造は内部と外部とで明らかに異なる。
再び図4を参照して説明を行う。メモリ103A及び103Bは、リコンフィギュラブルコア101に入力されるコンフィギュレーションデータを一時格納するためのメモリである。なお、メモリ103A及び103Bを特に区別しない場合には、メモリ103と記す。メモリ103Aは、リコンフィギュラブルコア101A及び101Cの論理を再構成するためのコンフィギュレーションデータを格納する。メモリ103Bは、リコンフィギュラブルコア101B及び101Dの論理を再構成するためのコンフィギュレーションデータを格納する。また、メモリ103Aは、リコンフィギュラブルコア101Aとリコンフィギュラブルコア101Cとの間に配置される。メモリ103Bは、リコンフィギュラブルコア101Bとリコンフィギュラブルコア101Dとの間に配置される。
本発明の1つの特徴として、4つのリコンフィギュラブルコア101のうちリコンフィギュラブルコア101Aとリコンフィギュラブルコア101Cとは、S方向が対向するように配置される。また、リコンフィギュラブルコア101Bとリコンフィギュラブルコア101DとはS方向が対向するように配置される。コンフィギュレーションデータはS方向からのみ入力されるので、このようなレイアウトとすることによって、メモリ103を固めて配置することが可能となり、チップ設計が容易となる。また、メモリ103から各々のリコンフィギュラブルコア101への配線距離を短くできる。これにより、短い時間で動的にリコンフィギュラブルコアの機能を再構成できる。なお、図中で示してはいないが、メモリ103とリコンフィギュラブルコア101とは複数ビットのバスで接続されている。
また、リコンフィギュラブルコア101Aとリコンフィギュラブルコア101Bとは、E方向が対向するように配置される。リコンフィギュラブルコア101Cとリコンフィギュラブルコア101Dとは、E方向が対向するように配置される。上述したようにリコンフィギュラブルコア101のE方向は、アプリケーションデータバス用のIOが配置される。ここで、一般にアプリケーションデータバスには配線遅延の減少が望まれる。一方、制御用の信号配線は、配線遅延の影響が比較的問題にならない。よって、E方向が対向するように複数のリコンフィギュラブルコア101を配置することで、リコンフィギュラブルコア101間のアプリケーションデータバスの配線距離を短くできる。これにより、アプリケーションデータバスの配線遅延の影響を低減できる。
また、本実施の形態の特徴のひとつとして、論理再構成可能な半導体集積回路100は、上下方向あるいは左右方向に隣接するリコンフィギュラブルコア101の間の各々にレジスタ回路102を2段設けている。
各々のレジスタ回路102は、複数のフリップフップで構成されており、複数ビット(例えば、16ビット)からなるデータを複数セット保持することが可能である。各々の2段のレジスタ回路は、隣接するリコンフィギュラブルコア101間の全てに形成される。各々の2段のレジスタ回路102は、データの出力元となるリコンフィギュラブルコア101の出力を一時保持し、データの入力先となるリコンフィギュラブルコア101に出力する。2段のレジスタ回路102のうち前段のレジスタ回路102は、データの出力元となるリコンフィギュラブルコア101から出力されるデータをクロックに同期して保持し、後段のレジスタ回路102に出力する。2段のレジスタ回路102のうち後段のレジスタ回路102は、前段のレジスタ回路102から出力されるデータをクロックに同期して保持し、データの入力先となるリコンフィギュラブルコア101に出力する。
また、隣接するリコンフィギュラブルコア101間には、隣接する2つのリコンフィギュラブルコア101のうち一のリコンフィギュラブルコア101の出力を一時保持し、他のリコンフィギュラブルコア101へと出力する2段のレジスタ回路102と、他のリコンフィギュラブルコア101の出力を一時保持し、一のリコンフィギュラブルコア101へと出力する2段のレジスタ回路102とが形成される。
各リコンフィギュラブルコア101は、レジスタ回路102を2段介してデータのやりとりを行う。これにより、各々のリコンフィギュラブルコア101は独立した回路として取り扱うことができる。論理再構成可能な半導体集積回路100全体が大規模な回路になったとしても、各々のリコンフィギュラブルコア101自体は独立した1/4の大きさの回路にしかならない。そのため、大規模な回路機能をマッピングしようとした場合であっても、各々のリコンフィギュラブルコア101内でのマッピングの組み合わせを限られたものにできる。したがって、高速に回路機能をマッピングできる。なお、マッピングの詳細については後述する。
ここで、レジスタ回路102を2段設けている1つの理由は配線距離に起因する遅延に対してタイミング制約を緩和するためである。例えば、レジスタ回路102を1段しか設けない場合、レジスタ回路102は、データの出力元となるリコンフィギュラブルコア101の最も離れた位置のロジックエレメント201からの出力データをあるクロックエッジで格納し保持し、次のクロックエッジでデータの入力先となるリコンフィギュラブルコア101の最も離れた位置のロジックエレメント201までデータを出力しなくてはならない可能性があり、タイミング制約が厳しくなる。一方、レジスタ回路102を2段設けることによってこの制約は緩和される。例えば、2段のレジスタ回路102のうち、初段のレジスタ回路102は、データの出力元となるリコンフィギュラブルコア101側の近傍に配置され、2段目のレジスタ回路102は、データの入力先となるリコンフィギュラブルコア101側の近傍に配置される。
また、レジスタ回路102に入力されるクロックはデータの出力先となるリコンフィギュラブルコア101に入力されるクロックと同一のクロックが入力される。例えば、リコンフィギュラブルコア101Aからリコンフィギュラブルコア101Cへとデータが転送される経路上に設けられたレジスタ回路102にはリコンフィギュラブルコア101Cと同一のクロックCLKCが供給される。これにより、各リコンフィギュラブルコア101を非同期で動作させた場合でも、少なくとも後段のレジスタ回路102ではデータが確実に保持される。よって、半導体集積回路100は、各リコンフィギュラブルコア101を非同期で動作させた場合に生じるメタステーブル(セットアップ制約、又はホールド制約が満たされない状態)の発生を防止できる。
次に、マッピング装置を用いて、本発明の実施の形態1に係る論再構成可能な半導体集積回路100に回路機能をマッピングする方法について説明する。マッピングによりメモリ103に保持されるコンフィギュレーションデータが作成される。
図8は、本発明の実施の形態1に係るマッピング装置のハードウェア構成を示す図である。図8に示すマッピング装置400は、上述した半導体集積回路100に回路記述に記述される回路機能をマッピングする。マッピング装置400は、例えば、パーソナルコンピュータである。マッピング装置400は、キーボード401と、ディスプレイ402と、CPU403と、ROM404と、RAM405とを備える。
キーボード401は、設計者による操作を受け付ける。ディスプレイ402は、設計者に処理結果等を表示する。CPU403は、ROM404に格納されるプログラム406を実行することにより、マッピング装置400の全体を制御する。ROM404は、CPU403により実行されるプログラム406を格納する読み出し専用メモリである。なお、プログラム406は、図示しない不揮発性メモリ又はHD(Hard Disk)等に保持されてもよい。RAM405は、CPU403がプログラム406を実行する際に用いられるワークデータ等を保持する読み書き可能なメモリである。
以上の構成により、マッピング装置400のCPU403がプログラム406を実行することにより、半導体集積回路100に回路記述に記述される回路機能をマッピングする。
なお、マッピング装置400によるマッピングは、専用のハードウェアにより実現されてもよい。
図9は、半導体集積回路100への回路機能のマッピングの流れを示すフローチャートである。
まず、設計者は論理再構成可能な半導体集積回路100にマッピングする回路機能を記述する(S201)。この回路機能の記述にはHDLなどのハードウェア記述言語、又はC言語などの高級言語が使用される。回路機能を記述する際には、設計者は大規模な回路機能を複数の処理モジュールに分けて記述し、これらの処理モジュール間には2サイクルの遅延が入るように記述する。これにより、各処理モジュールの間には2段のレジスタ回路が挿入されることになる。
次に、マッピング装置400は、設計者によって記述された回路記述に記述される回路機能を複数の回路機能ブロックに分割する(S202)。具体的には、マッピング装置400は、回路記述に含まれる処理モジュールを一度束ねた上で4つのブロックに再分割する。マッピング装置は、再分割されたブロックを4つのリコンフィギュラブルコア101に割り当てる。次に、マッピング装置400は、4つのブロックの間に位置する2段のレジスタをレジスタ回路102に割り当てるために、リコンフィギュラブルコア101へのマッピング対象から除外する(S203)。
以下、図10を用いて、マッピング装置400によるステップS202及びS203の処理の具体例を説明する。
図10は、ステップS202での各リコンフィギュラブルコア101への割り当て、及びステップS203でのレジスタ回路102への割り当て処理を説明するための図である。
図10を用いて、設計者により、モジュール221A〜221Fの6つの処理モジュールに分割された大規模回路の回路記述が入力された場合の、マッピング装置400の処理を説明する。この大規模回路はモジュール221Eからデータが入力され、所定の演算処理を施した後にモジュール221Dから演算処理の結果が出力される。設計者により各々のモジュールの間にレジスタが2段挿入されるように回路記述が記述されている(2サイクルの遅延が記述されている)。但し、モジュール221Aとモジュール221Bとの間では演算処理のアルゴリズムの制約からレジスタは挿入されていない。
ステップS202ではこの回路記述を、マッピング装置400が、各々の処理モジュールの回路規模及び速度を考慮して、4つのブロックに分割する。また、マッピング装置400は、分割されたブロックを各リコンフィギュラブルコアへと割り当てる。例えば、マッピング装置400は、モジュール221A及び221Bをリコンフィギュラブルコア101Aに、モジュール221C及び221Dをリコンフィギュラブルコア101Bに、モジュール221Eをリコンフィギュラブルコア101Cに、モジュール221Fをリコンフィギュラブルコア101Dに割り当てる。
ステップS203で、マッピング装置400は、モジュール221Aとモジュール221Eとの間に存在するレジスタ222Aをリコンフィギュラブルコア101Aと101Cとの間に設けられたレジスタ回路102に割り当てる。マッピング装置400は、モジュール221Bとモジュール221Dとの間のレジスタ222Bをリコンフィギュラブルコア101Aと101Bとの間に設けられたレジスタ回路102に割り当てる。マッピング装置400は、モジュール221Cとモジュール221Fとの間に設けられたレジスタ222Dをリコンフィギュラブルコア101Bと101Dとの間に設けられたレジスタ回路102に割り当てる。マッピング装置400は、モジュール221Eとモジュール221Fとの間に設けられたレジスタ222Eをリコンフィギュラブルコア101Cと101Dとの間に設けられたレジスタ回路102に割り当てる。マッピング装置400は、レジスタ回路102に割り当てたレジスタ222A、222B、222D及び222Fをマッピング対象からは除外する。
一方で、マッピング装置400は、1つのリコンフィギュラブルコア101Bに割り当てられたモジュール221Cとモジュール221Dとの間に設けられたレジスタ222Cを、リコンフィギュラブルコア101へのマッピング対象に残す。
次に、マッピング装置400は、各々のリコンフィギュラブルコア101に割り当てられた回路機能をマッピングする(S204)。図11は、ステップS204での、1つのリコンフィギュラブルコア101への回路機能のマッピングの流れを示すフローチャートである。
まず、マッピング装置400は、ステップS202で再分割され、ステップS203でレジスタが除外されたブロックの回路記述を取得する(S301)。
次に、マッピング装置400は、マッピングにおける制約条件を取得する(S302)。例えば、制約条件は、速度及び面積などに関する条件である。また、例えば、制約条件は、設計者によりマッピング装置400に入力される。
次に、マッピング装置400は、ステップS301で取得された回路記述を論理合成する(S303)。具体的には、マッピング装置400は、回路記述に記述される回路機能を1つのロジックエレメント201に割り当て可能な機能単位に分割する。マッピング装置400は、分割された機能単位の接続関係を決定する。次に、マッピング装置400は、分割された機能単位を実回路におけるロジックエレメント201上に配置する(S304)。これによって、各々のロジックエレメント201の機能(入力に対する出力の関係)が決定される。
次に、マッピング装置400は、論理合成によって決定された接続関係を満たすように、プログラマブルな配線を用いて各々のロジックエレメント201を配線する(S305)。なお、ロジックエレメント201への配置とプログラマブルな配線によるロジックエレメント201の接続とは1つの処理として行われてもよいし、分割された処理として行われてもよい。
次に、マッピング装置400は、配置及び配線された回路が、ステップS302で取得された制約条件を満たすか否かを判定する(S306)。制約条件を満たす場合(S306でYes)、ブロックの合成、配置及び配線が終了する。また、制約条件を満たさない場合(S306でNo)、次に、マッピング装置400は、所定の回数ステップS304〜S306の処理が繰り返されたか否かを判定する(S307)。所定の回数の繰り返し処理が行われていない場合(S307でNo)、マッピング装置400は、再度、配置及び配線処理(S304及びS305)を行う。すなわち、マッピング装置400は、配置及び配線処理(S304及びS305)を制約条件が満たされるまで繰り返す。また、所定の回数処理が繰り返されても制約条件を満たさない場合(S307でYes)、マッピング装置400は、ブロックへのマッピングが不可であるとして処理を終了する。
なお、制約条件を満たさない場合(S306でNo)、合成処理(S303)、配置及び配線処理(S304及びS305)を再度行ってもよい。
また、マッピング装置400は、所定の回数処理が繰り返されても制約条件が満たされない場合には、制約条件を満たせない旨を表示してもよい。これにより、設計者により制約条件が見直され、マッピング装置400は、新たに入力された制約条件を取得し(S302)、新たな制約条件に対してステップS303〜306の処理を行うことができる。
ここで、マッピング装置400は、リコンフィギュラブルコア101毎に分割された回路機能をマッピングするので、従来のように大規模な回路記述を1つの大規模なリコンフィギュラブルコアにマッピングする場合と比較して、短時間で処理を収束させることができる。
次に、マッピング装置400は、4つのリコンフィギュラブルコア101の全てについて制約条件が満たされたか否かが判定する(S205)。満たされている場合(S205でYes)、大規模回路の回路記述のマッピングが終了する。
複数のリコンフィギュラブルコア101のいずれか1以上について制約条件が満たされていない場合(S205でNo)、マッピング装置400は、ステップS202〜S204でのマッピング処理が所定の回数繰り返し行われたかを判定する(S206)。所定の回数の繰り返し処理が行われていない場合(S206でNo)、マッピング装置400は、ステップS202以降の処理を再度行う。所定の回数の繰り返し処理が行われている場合(S206でYes)、マッピング装置400は、ステップS201で記述された回路機能は論理再構成可能な半導体集積回路100にはマッピングできないものであると判断する。
ここで、ステップS202、S203、S205及びS206の処理は、マッピング装置400がプログラム406に含まれる専用のポイントツールを用いて実行する方法と、合成ツールの一部として実行する方法とがある。また、S204の処理は、マッピング装置400がプログラム406に含まれる従来と同様の合成ツール及びP&Rツールを実行することにより実現できる。
以上説明してきたように、本発明の実施の形態1の論理再構成可能な半導体集積回路100を用いることにより、大規模な回路機能における処理モジュール毎にレジスタを2段挿入しておけば、マッピング装置400は各々のリコンフィギュラブルコア101を独立の回路と取り扱ってマッピングを行うことができる。したがって、短時間でマッピングが終了する。
さらにリコンフィギュラブルコア101とレジスタ回路102とが同一チップ内に設けされ、かつレジスタ回路102がリコンフィギュラブルコア101に供給されるクロックと同一のクロックで駆動されているので、半導体集積回路100は1つの大規模な論理再構成可能な半導体集積回路と同様の速度で動作できる。
これまで本発明を実施するための最良の形態について説明してきたが、本発明が上記の実施の形態に限定されるものではないことは言うまでもない。一例として、以下のような変形を施すことが可能である。
レジスタ回路102は3段以上設けてもよい。この場合、各リコンフィギュラブルコア101のクロックが非同期であるとすれば、少なくとも後段の2段のレジスタ回路102については、メタステーブルへの対策として、データの入力先となるリコンフィギュラブルコア101と同一のクロックを供給することが望ましい。
また、レジスタ回路102は1段であってもよい。なお、上述したようにレジスタ回路102が1段の場合、タイミング制約が厳しくなる。しかしながら、リコンフィギュラブルコア101間の距離が短い場合、及びリコンフィギュラブルコア101の回路規模が小さい場合等には、レジスタ回路102が1段であっても、タイミング制約を守ることができる。レジスタ回路102が1段の場合、レジスタ回路102は、データの出力元となるリコンフィギュラブルコア101と、データの入力先となるリコンフィギュラブルコア101から等距離の位置に配置されることが望ましい。
また、上記説明において、各々のリコンフィギュラブルコア101には異なるクロックCLKA、CLKB、CLKC及びCLKDが入力されるとしたが、構成を単純化するためにこのクロックを全て同一のクロックとすることも可能である。また、複数のリコンフィギュラブルコア101のうちいずれか2以上に同一のクロックを供給してもよい。
また、上記説明において、2段のレジスタ回路102は、隣接するリコンフィギュラブルコア101間の全てに形成されているが、隣接するリコンフィギュラブルコア101間のうち1以上に形成されればよい。また、隣接する2つのリコンフィギュラブルコア101のうち一のリコンフィギュラブルコア101からの他のリコンフィギュラブルコア101へ送信されるデータを保持するレジスタ回路102のみを設け、他のリコンフィギュラブルコア101からの一のリコンフィギュラブルコア101へ送信されるデータを保持するレジスタ回路102を設けなくてもよい。
また、隣接しないリコンフィギュラブルコア101間に2段のレジスタ回路102を形成してもよい。例えば、リコンフィギュラブルコア101Aとリコンフィギュラブルコア101Dとの間に2段のレジスタ回路102を形成してもよい。リコンフィギュラブルコア101Bとリコンフィギュラブルコア101Bとの間に2段のレジスタ回路102を形成してもよい。
また、本発明の実施の形態1に係る半導体集積回路100は、所謂SOCにおける1つの回路ブロックとして構成されとしたが、半導体集積回路100は、それだけで1チップのLSI(Large Scale Integration)として構成されてもよい。
また、ロジックエレメント201としてLUTではなく、1又は複数のALUを用いることも可能である。画像の符号化、画像の復号化及び暗号処理などの信号処理演算は単純な演算の繰り返しによって構成されることが多い。したがって、ロジックエレメント201として1又は複数のALUを用いることによって、信号処理演算に最適なリコンフィギュラブルコア101が実現できる。特に本発明に係る論理再構成可能な半導体集積回路100をSOCにおける1つの回路ブロックとして構成する場合には、制御系の処理はCPU10に任せることができるので、ALUをロジックエレメント201として用いたリコンフィギュラブルコア101を用いることが好ましい。従来のSOCでは様々な種類の信号処理を実現する必要がある場合には、信号処理毎に専用ハードウェアを設計していた。一方、ロジックエレメント201として1又は複数のALUを用い、かつCPU10を含むSOCとすることで、専用ハードウェアを設けなくても1つの論理再構成可能な半導体集積回路100で全ての処理を行うことができる。
また、論理再構成可能な半導体集積回路100で実現すべき回路機能によっては、全てのリコンフィギュラブルコア101を用いて1つの回路機能を実現する必要はなく、一部のリコンフィギュラブルコア101を用いて1つの回路機能をマッピングしてもよい。また、残りのリコンフィギュラブルコアには別の回路機能をマッピングしてもよい。
また、上記説明において、リコンフィギュラブルコア101A、101B、101C及び101Dは、同じ構成であるとしたが、異なる構成であってもよい。例えば、各リコンフィギュラブルコア101に含まれるロジックエレメント201の数が異なってもよい。
また、本発明において各々のリコンフィギュラブルコア101は、電源を投入したまま動的に論理を再構成することが可能な動的再構成可能なリコンフィギュラブルコア101であっても、論理を再構成するためには一度電源を落とす必要がある所謂FPGAであっても、何れでも構わない。
また、リコンフィギュラブルコア101が備える4つのIO部の構成は、図5に示す構成に限定されるものではない。S方向からコンフィギュレーションデータが入力される構成であれば、IO部の構成は任意でよい。
また、上記説明において、図9に示すステップS201〜S206の処理を、マッピング装置400が行うとしたが、処理の一部を設計者が行いマッピング装置400に入力してもよい。
また、上記説明において、リコンフィギュラブルコア101が4つの例を説明したが、半導体集積回路100は、複数のリコンフィギュラブルコア101を備えればよい。例えば、半導体集積回路100は、2、3又は5以上のリコンフィギュラブルコア101を備えてもよい。
また、メモリ103は図4に示すようにS方向が対向する1組のリコンフィギュラブルコア101に1つ設けるのではなく、リコンフィギュラブルコア101毎にメモリ103を1つ設ける構成としてもよい。図12は、実施の形態1に係る半導体集積回路100の変形例であり、リコンフィギュラブルコア101毎にメモリ103を1つ備える半導体集積回路150の構成を示す図である。図12に示すように、半導体集積回路150は、4つのメモリ103A、103B、103C及び103Dを備える。メモリ103Aは、リコンフィギュラブルコア101Aに入力されるコンフィギュレーションデータを格納する。メモリ103Bは、リコンフィギュラブルコア101Bに入力されるコンフィギュレーションデータを格納する。メモリ103Cは、リコンフィギュラブルコア101Cに入力されるコンフィギュレーションデータを格納する。メモリ103Dは、リコンフィギュラブルコア101Dに入力されるコンフィギュレーションデータを格納する。このような構成にすることで、全てのリコンフィギュラブルコア101を並列にコンフィギュレーションできるので、短期間でコンフィギュレーションが終了する。
(実施の形態2)
本発明の実施の形態2に係る半導体集積回路は、レジスタ回路102及びリコンフィギュラブルコア101へのクロックの供給を停止する機能を有する。これにより、余分な消費電力を削減できる。
図13は、本発明の実施の形態2に係る半導体集積回路の構成を示す図である。
図13に示す半導体集積回路200は、図5に示す実施の形態1に係る半導体集積回路100の構成に加えて、複数の第1クロック停止回路104と、複数の第2クロック停止回路105とを備える。なお、図5と同様の要素には同一の符号を付しており、説明は省略する。
第1クロック停止回路104は、複数のリコンフィギュラブルコア101の各々に対応して形成される。第1クロック停止回路104は、対応するリコンフィギュラブルコア101にクロックを供給するか否かを制御する。第1クロック停止回路104は、対応するリコンフィギュラブルコア101が使用されない場合には、当該リコンフィギュラブルコア101へのクロックの供給を停止する。また、第1クロック停止回路104は、対応するリコンフィギュラブルコア101が使用されない場合には、当該リコンフィギュラブルコア101への信号の入力に用いられるレジスタ回路102へのクロックの供給を停止する。例えば、第1クロック停止回路104は、対応するリコンフィギュラブルコア101に回路が構成されない場合に、クロックの供給を停止する。
第2クロック停止回路105は、2段のレジスタ回路102の各々に対応して形成される。第2クロック停止回路105は、対応するレジスタ回路102へのクロックの供給を制御する。第2クロック停止回路105は、対応するレジスタ回路102を用いた信号伝達が行われない場合には、当該レジスタ回路102へのクロックの供給を停止する。例えば、リコンフィギュラブルコア101Aと101Bとが動作していたとしても、その間で信号伝達がないことはあり得る。そのような場合にはリコンフィギュラブルコア101Aと101Bとの間のレジスタ回路102にクロックを供給する必要はない。またリコンフィギュラブルコア101Aからリコンフィギュラブルコア101Bへの信号伝達があるが、逆方向には信号伝達がないこともあり得る。その場合にはリコンフィギュラブルコア101Bからリコンフィギュラブルコア101Aへの信号伝達を行う経路に挿入されたレジスタ回路102のみへのクロックの供給を停止すればよい。
以上より、本発明の実施の形態2に係る半導体集積回路200は、使用されないリコンフィギュラブルコア101へのクロックの供給を停止する。これにより、余分な消費電力を削減できる。また、半導体集積回路200は、使用されないレジスタ回路102へのクロックの供給を停止する。これにより、余分な消費電力を削減できる。
なお、図13では、半導体集積回路200は、全てのリコンフィギュラブルコア101の各々に対応する第1クロック停止回路104を備えているが、半導体集積回路200は、リコンフィギュラブルコア101のいずれか1以上に対応する1以上の第1クロック停止回路104を備えてもよい。この場合、回路機能のマッピング時に、対応する第1クロック停止回路104が設けられていないリコンフィギュラブルコア101に、優先的にマッピングを行えばよい。
また、図13では、半導体集積回路200は、全てのレジスタ回路102の各々に対応する第2クロック停止回路105を備えているが、半導体集積回路200は、レジスタ回路102のいずれか1以上に対応する1以上の第2クロック停止回路105を備えてもよい。
(実施の形態3)
上述した実施の形態1におけるマッピングでは、図10に示すステップS201の回路記述に2段のレジスタ回路を挿入する処理を設計者が行うとした。実施の形態3では回路記述に2段のレジスタ回路を挿入する処理を行うプログラム変換装置について説明する。
本発明の実施の形態3に係るプログラム変換装置の機能は、例えば、パーソナルコンピュータ等がプログラムを実行することにより実現される。例えば、実施の形態3に係るプログラム変換装置は、図8に示す構成と同様の構成である。すなわち、プログラム変換装置の機能は、CPU403がプログラム406を実行することにより実現される。なお、本発明の実施の形態3に係るプログラム変換装置の機能は、専用のハードウェアにより実現されてもよい。
本発明の実施の形態3に係るプログラム変換装置は、従来と同様の回路記述を上述した実施の形態1に係るマッピング装置400でマッピング可能な状態に変換する。本発明の実施の形態3に係るプログラム変換装置は、複数の処理モジュールからなる1つの大規模な回路の回路機能が記述された回路記述の、各処理モジュール間に選択的に2段のレジスタ回路を挿入する。
以下、設計者により5つのモジュール301A、301B、301C、301D及び301Eの回路機能が記述された回路記述に、プログラム変換装置がレジスタ回路を挿入する動作について、図14〜図18を用いて説明する。
図14は、本発明の実施の形態3に係るプログラム変換装置の処理の流れを示すフローチャートである。図15〜図18は、プログラム変換装置の処理を説明するための図である。
まず、プログラム変換装置は、設計者により記述された、論理再構成可能な半導体集積回路にマッピングする回路記述を取得する(S401)。プログラム変換装置により取得される回路記述は、設計者により、複数の処理モジュールとして回路機能が記述された回路記述である。回路記述にはHDLなどのハードウェア記述言語、又はC言語などの高級言語が使用される。例えば、プログラム変換装置は、図15に示す回路記述を取得する。
次に、プログラム変換装置は、ステップS401で取得された回路記述に基づき、複数の処理モジュールからなる回路機能を1つの回路とした場合の入力信号と出力信号との満たすべき関係(制約)を算出する(S402)。具体的には、プログラム変換装置は、回路記述に含まれる各処理モジュールの処理に要するサイクル数に基づき、全体の回路の入力信号が入力されてから有効な出力信号が得られるまでのサイクル数を算出する。例えば、プログラム変換装置は、制約として、図15に示す入力信号IN0が入力されてから、出力信号OUT0が得られるまでのサイクル数を5サイクル以内と算出する。また、プログラム変換装置は、制約として、入力信号IN0が入力されてから、出力信号OUT1が得られるまでのサイクル数を3サイクル以内と算出する。
次に、プログラム変換装置は、仮想モジュールを設定する(S403)。具体的には、プログラム変換装置は、複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出し、1つの仮想モジュールと設定する。例えば、図16に示すように、モジュール301Eの出力がモジュール301Cにフィードバックしているので、プログラム変換装置は、モジュール301Cとモジュール301Eとを1つの仮想モジュール301Fとして設定する。また、プログラム変換装置は、フィードバック系を有さないモジュール301A、301B及び301Dを各々1つのモジュールとして設定する。すなわち、プログラム変換装置は、モジュール301A、301B、301D及び仮想モジュール301Fを各々1つのモジュールとして以降の処理で扱う。
次に、プログラム変換装置は、モジュール301A、301B、301D及び仮想モジュール301Fの各々の間にレジスタを挿入、又は挿入しないパターンを生成する(S404)。例えば、プログラム変換装置により生成される複数のパターンのうちレジスタの数が最大となるパターンは、図17に示すように、モジュール301A、301B、301D及び仮想モジュール301Fの各々の間にレジスタ302AB、302AD、302AF、302BD及び302BFが挿入されるパターンである。また、プログラム変換装置は、レジスタ302AB、302AD、302AF、302BD及び302BFのうちいずれか1以上が挿入されるパターン、及び全てが挿入されないパターンを生成する。なお、レジスタ302AB、302AD、302AF、302BD及び302BFを特に区別しない場合は、レジスタ302と記す。
例えば、信号の受け渡しがあるモジュール間の数をNとすると、プログラム変換装置は、2個のパターンを生成する。図17に示す例では、信号の受け渡しがあるモジュール間の数は5箇所である。よって、プログラム変換装置は、2=32通りのパターンを生成する。ここで、挿入されるレジスタ302は、各々2段のレジスタである。
次に、プログラム変換装置は、ステップS404で生成された複数のパターンのうち、ステップS402で算出された制約を満たすパターンを抽出する(S405)。プログラム変換装置は、ステップS404で生成された複数のパターンの各々に対して、ステップS402で算出された制約を満たすか否かを判定する。例えば、レジスタ302BD及び302BFのうち少なくとも一方を挿入した場合に制約が満たさない場合、プログラム変換装置は、図18に示すレジスタ302AB、302AD及び302AFが挿入されたパターンを制約が満たされるパターンとして抽出する。また、プログラム変換装置は、レジスタ302AB、302AD及び302AFのうちいずれか1以上が挿入されたパターン及びいずれも挿入されないパターンを制約が満たされるターンとして抽出する。
次に、プログラム変換装置は、ステップS405で抽出されたパターンのうちいずれかを選択する(S406)。例えば、プログラム変換装置は、抽出されたパターンのうち最も挿入されるレジスタの数が多いパターンを選択する。つまり、図18に示す例では、プログラム変換装置は、レジスタ302AB、302AD及び302AFが挿入されたパターンを選択する。選択されたパターンに対して、図9に示すステップS202以降の処理が上述したマッピング装置400により実行される。
また、以降の処理で制約条件が満たされない場合、又はマッピング不可と判断された場合に、プログラム変換装置は、ステップS405で抽出されたパターンのうちステップS406で選択されたパターンと異なるパターンを選択する。新たに選択されたパターンに対してマッピング装置400によりステップS202以降の処理が実行される。
以上より、本発明の実施の形態3に係るプログラム変換装置は、回路記述にレジスタ回路102に対応するレジスタを加えることができる。すなわち、本発明の実施の形態3に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間に2段のレジスタが挿入された回路記述に変換できる。
また、本発明の実施の形態3に係るプログラム変換装置は、レジスタが挿入された複数のパターンから制約を満たすパターンのみを抽出できる。
また、本発明に係る実施の形態3に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えない。フィードバック系を有するモジュール間にはレジスタを加えた場合、ステップS405における制約を満たすか否かの判断が複雑になり、プログラム変換装置の処理量が増加する。実施の形態3に係るプログラム変換装置は、フィードバック系を有するモジュール間にはレジスタを加えないので、処理量を低減できる。
なお、上記説明では、プログラム変換装置はステップS401において複数の処理モジュールとして回路機能が記述された回路記述を取得するとしたが、プログラム変換装置は1つの大規模な回路記述を取得し、取得した回路記述を複数の処理モジュールに分割してもよい。
また、上記説明では、ステップS402においてプログラム変換装置が回路記述に基づき制約を算出するとしたが、プログラム変換装置は、設計者により入力された制約を用いてもよい。
また、上述したプログラム変換装置を、実施の形態1で説明したマッピング装置400の1機能として実現してもよい。
本発明によれば、論理再構成可能な半導体集積回路に大規模な回路機能をマッピングすることが可能となるので、様々な電子機器において利用可能性がある。
図1は、従来の論理再構成可能な半導体集積回路の構成を示す図である。 図2は、従来の論理再構成可能な半導体集積回路への回路機能のマッピングの流れを示す図である。 図3は、本発明の実施の形態1に係る半導体集積回路の構成を示す図である。 図4は、本発明の実施の形態1に係る論理再構成可能な半導体集積回路の構成を示す図である。 図5は、本発明の実施の形態1に係るリコンフィギュラブルコアの構成を示す図である。 図6は、本発明の実施の形態1に係るロジックエレメント周辺の構成を示す図である。 図7は、本発明の実施の形態1に係るロジックエレメントの詳細な構成を示す図である。 図8は、本発明の実施の形態1に係るマッピング装置の構成を示す図である。 図9は、本発明の実施の形態1に係る回路機能のマッピングの流れを示すフローチャートである。 図10は、本発明の実施の形態1に係る回路機能のマッピングにおける各リコンフィギュラブルコアへの割り当てを説明するための図である。 図11は、本発明の実施の形態1に係る回路機能のマッピングにおける1つのリコンフィギュラブルコへの回路機能のマッピングの流れを示すフローチャートである。 図12は、本発明の実施の形態1に係る半導体集積回路の変形例の構成を示す図である。 図13は、本発明の実施の形態2に係る半導体集積回路の構成を示す図である。 図14は、本発明の実施の形態3に係るプログラム変換装置の処理の流れを示すフローチャートである。 図15は、本発明の実施の形態3に係るプログラム変換装置の処理を説明するための図である。 図16は、本発明の実施の形態3に係るプログラム変換装置の処理を説明するための図である。 図17は、本発明の実施の形態3に係るプログラム変換装置の処理を説明するための図である。 図18は、本発明の実施の形態3に係るプログラム変換装置の処理を説明するための図である。
符号の説明
1 半導体装置
10 CPU
11 RAM
12 DMA
13 ハードウェア回路
100、150、200、500 半導体集積回路(FPGA)
101、101A、101B、101C、101D リコンフィギュラブルコア
102 レジスタ回路
103、103A、103B、103C、103D メモリ
104 第1クロック停止回路
105 第2クロック停止回路
201、501 ロジックエレメント
202 スイッチボックス
203 配線ボックス群
204E、204N、204S、204W IO部
210 ルックアップテーブル
211 マルチプレクサ
212 フリップフロップ
221A、221B、221C、221D、221E、221F、301A、301B、301C、301D、301E モジュール
222A、222B、222C、222D、222E、302、302AB、302AD、302AF、302BD、302BF レジスタ
301F 仮想モジュール
400 マッピング装置
401 キーボード
402 ディスプレイ
403 CPU
404 ROM
405 RAM
406 プログラム

Claims (21)

  1. クロックに同期して動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
    前記複数のリコンフィギュラブルコアに含まれる第1のリコンフィギュラブルコアと第2のリコンフィギュラブルコアとの間に形成され、前記第1のリコンフィギュラブルコアの出力を一時保持し、前記第2のリコンフィギュラブルコアへと出力する第1のレジスタ回路群とを備え、
    前記複数のリコンフィギュラブルコアの各々は、
    アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、
    前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える
    ことを特徴とする半導体集積回路。
  2. 前記第1のレジスタ回路群は、
    前記第1のリコンフィギュラブルコアの出力を一時保持する第1のレジスタ回路と、
    前記第1のレジスタ回路から出力されるデータを保持し、前記第2のリコンフィギュラブルコアへと出力する第2のレジスタ回路とを含む
    ことを特徴とする請求項1記載の半導体集積回路。
  3. 前記第1のレジスタ回路及び前記第2のレジスタ回路に入力されるクロックは、前記第2のレジスタ回路が保持するデータの出力先となるリコンフィギュラブルコアと同一のクロックである
    ことを特徴とする請求項2記載の半導体集積回路。
  4. 前記第1のレジスタ回路群へデータを出力するリコンフィギュラブルコアと、前記第1のレジスタ回路群からデータが入力されるリコンフィギュラブルコアとは入力されるクロックが異なる
    ことを特徴とする請求項3記載の半導体集積回路。
  5. 前記複数のリコンフィギュラブルコアは、
    前記リコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータが入力される第1の辺と、前記第1の辺と対向する第2の辺と、前記第1の辺と直交する第3の辺と、前記第3の辺と対向する第4の辺とで囲まれる矩形の形状を有する第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアを含み、
    前記第3のリコンフィギュラブルコア及び第4のリコンフィギュラブルコアは、前記第1の辺同士が対向するように分離してレイアウトされる
    ことを特徴とする請求項1記載の半導体集積回路。
  6. 前記半導体集積回路は、さらに、
    前記第3のリコンフィギュラブルコアと前記第4のリコンフィギュラブルコアとの間に形成され、前記第3のリコンフィギュラブルコア及び前記第4のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第1記憶回路を備える
    ことを特徴とする請求項5記載の半導体集積回路。
  7. 前記複数のリコンフィギュラブルコアは、さらに、
    第1の辺と、前記第1の辺と対向する第2の辺と、前記第1の辺と直交する第3の辺と、前記第3の辺と対向する第4の辺とで囲まれる矩形の形状を有す第5のリコンフィギュラブルコア及び第6のリコンフィギュラブルコアを含み、
    前記第5のリコンフィギュラブルコアと第6のリコンフィギュラブルコアとは、前記第1の辺同士が対向するように分離して配置され、
    前記第3のリコンフィギュラブルコアと第5のリコンフィギュラブルコアとは、前記第3の辺同士が対向するように分離して配置され、
    前記第4のリコンフィギュラブルコアと第6のリコンフィギュラブルコアとは、前記第3の辺同士が対向するように分離して配置される
    ことを特徴とする請求項6記載の半導体集積回路。
  8. 前記半導体集積回路は、さらに、
    前記第5のリコンフィギュラブルコアと前記第6のリコンフィギュラブルコアとの間に形成され、前記第5のリコンフィギュラブルコア及び前記第6のリコンフィギュラブルコアの論理を再構成するためのコンフィギュレーションデータを保持する第2記憶回路を備える
    ことを特徴とする請求項7記載の半導体集積回路。
  9. 前記半導体集積回路は、さらに、
    前記第1のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を備える
    ことを特徴とする請求項1記載の半導体集積回路。
  10. 前記第1のレジスタ回路群は、
    前記第1のリコンフィギュラブルコアの出力を一時保持し、前記第2のリコンフィギュラブルコアへと出力する第2のレジスタ回路群と、
    前記第2のリコンフィギュラブルコアの出力を一時保持し、前記第1のリコンフィギュラブルコアへと出力する第3のレジスタ回路群とを含む
    ことを特徴とする請求項1記載の半導体集積回路。
  11. 前記第1のレジスタ回路群は、前記複数のリコンフィギュラブルコアの間のうち、隣接するリコンフィギュラブルコアの間の全てに配置され、隣接する2つのリコンフィギュラブルコアのうち一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する
    ことを特徴とする請求項1記載の半導体集積回路。
  12. 前記複数のリコンフィギュラブルコアには全て同一のクロックが入力される
    ことを特徴とする請求項1記載の半導体集積回路。
  13. 前記第1のレジスタ回路群は、複数のビットから構成されるデータを複数組保持する
    ことを特徴とする請求項1記載の半導体集積回路。
  14. 前記ロジックエレメントの各々はLUTを備える
    ことを特徴とする請求項1記載の半導体集積回路。
  15. 前記ロジックエレメントの各々は少なくとも1つのALUを備える
    ことを特徴とする請求項1記載の半導体集積回路。
  16. 前記半導体集積回路は、さらに、
    CPUを備え、
    前記複数のリコンフィギュラブルコア、前記第1のレジスタ回路群、及び前記CPUは、1つの半導体基板上に実装される
    ことを特徴とする請求項1記載の半導体集積回路。
  17. 自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
    前記複数のリコンフィギュラブルコアのうち少なくとも2つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第1のレジスタ回路群とを備える半導体集積回路に、
    回路記述に記述される回路機能をマッピングするマッピング装置であって、
    前記回路機能を、複数の回路機能ブロックに分割する分割手段と、
    前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外手段と、
    前記除外された回路機能ブロックの各々を論理合成する合成手段と、
    前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線手段とを備える
    ことを特徴とするマッピング装置。
  18. 複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置であって、
    前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、
    前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成手段と、
    前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出手段と、
    前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択手段とを備える
    ことを特徴とするプログラム変換装置。
  19. 前記プログラム変換装置は、さらに、
    前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、
    前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを1つのモジュールとして、モジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する
    ことを特徴とする請求項18記載のプログラム変換装置。
  20. 自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数のリコンフィギュラブルコアと、
    前記複数のリコンフィギュラブルコアのうち少なくとも2つの間に形成され、一のリコンフィギュラブルコアの出力を一時保持し、他のリコンフィギュラブルコアへと出力する第1のレジスタ回路群とを備える半導体集積回路に、
    回路記述に記述される回路機能をマッピングするマッピング装置におけるマッピング方法であって、
    前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、
    前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレジスタを除外する除外ステップと、
    前記除外された回路機能ブロックの各々を論理合成する合成ステップと、
    前記論理合成された回路機能ブロックの各々を前記リコンフィギュラブルコアの各々に配置及び配線する配置配線ステップとを含む
    ことを特徴とするマッピング方法。
  21. 複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換方法であって、
    前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算出ステップと、
    前記複数のモジュール間にレジスタを挿入、又は挿入しない複数のパターンを生成する生成ステップと、
    前記生成された複数のパターンから、前記制約を満たすパターンを抽出するパターン抽出ステップと、
    前記抽出されたパターンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む
    ことを特徴とするプログラム変換方法。
JP2007553406A 2006-07-27 2007-07-19 半導体集積回路、プログラム変換装置及びマッピング装置 Expired - Fee Related JP4971998B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007553406A JP4971998B2 (ja) 2006-07-27 2007-07-19 半導体集積回路、プログラム変換装置及びマッピング装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006204383 2006-07-27
JP2006204383 2006-07-27
JP2007553406A JP4971998B2 (ja) 2006-07-27 2007-07-19 半導体集積回路、プログラム変換装置及びマッピング装置
PCT/JP2007/064261 WO2008013098A1 (fr) 2006-07-27 2007-07-19 Circuit intégré à semi-conducteurs, appareil de conversion de programmes et appareil de mappage

Publications (2)

Publication Number Publication Date
JPWO2008013098A1 JPWO2008013098A1 (ja) 2009-12-17
JP4971998B2 true JP4971998B2 (ja) 2012-07-11

Family

ID=38981410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007553406A Expired - Fee Related JP4971998B2 (ja) 2006-07-27 2007-07-19 半導体集積回路、プログラム変換装置及びマッピング装置

Country Status (6)

Country Link
US (2) US7906987B2 (ja)
EP (1) EP2048784A4 (ja)
JP (1) JP4971998B2 (ja)
KR (1) KR20090035538A (ja)
CN (1) CN101496283A (ja)
WO (1) WO2008013098A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057575A (zh) * 2008-06-05 2011-05-11 松下电器产业株式会社 信号处理装置、信号处理方法、信号处理用集成电路及电视接收机
JP5407631B2 (ja) * 2009-07-21 2014-02-05 富士ゼロックス株式会社 回路情報生成装置、機能実行システム、及びプログラム
JP5589479B2 (ja) 2010-03-25 2014-09-17 富士ゼロックス株式会社 データ処理装置
US8286113B1 (en) * 2011-01-11 2012-10-09 Xilinx, Inc. Verification of logic core implementation
CN102402415B (zh) * 2011-10-21 2013-07-17 清华大学 一种动态可重构阵列内数据缓存的装置及方法
WO2013176199A1 (en) 2012-05-25 2013-11-28 Semiconductor Energy Laboratory Co., Ltd. Programmable logic device and semiconductor device
WO2014123616A1 (en) * 2013-02-08 2014-08-14 The Trustees Of Princeton University Fine-grain dynamically reconfigurable fpga architecture
US8860457B2 (en) 2013-03-05 2014-10-14 Qualcomm Incorporated Parallel configuration of a reconfigurable instruction cell array
JP6747765B2 (ja) * 2014-06-23 2020-08-26 東芝情報システム株式会社 半導体装置
TWI561007B (en) * 2015-07-22 2016-12-01 Nuvoton Technology Corp Function programmable circuit and operation method thereof
US10432196B2 (en) * 2015-07-22 2019-10-01 Nuvoton Technology Corporation Communication device, communication system and operation method thereof
TWI647551B (zh) * 2017-05-26 2019-01-11 新唐科技股份有限公司 通訊裝置、通訊系統及其操作方法
US10866753B2 (en) 2018-04-03 2020-12-15 Xilinx, Inc. Data processing engine arrangement in a device
US10747690B2 (en) * 2018-04-03 2020-08-18 Xilinx, Inc. Device with data processing engine array
CN110895649B (zh) * 2018-08-23 2023-05-23 珠海零边界集成电路有限公司 一种集成电路后端布线管理***、布线管理方法和芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098646A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> プログラマブル・アレイ相互接続ラッチ
JP2003329743A (ja) * 2002-05-14 2003-11-19 Renesas Technology Corp 半導体集積回路のテスト方法およびテスト装置
JP2007520795A (ja) * 2003-12-18 2007-07-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ テンプレートを利用したドメイン固有の再構成可能な論理

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5594363A (en) 1995-04-07 1997-01-14 Zycad Corporation Logic cell and routing architecture in a field programmable gate array
US5671432A (en) * 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5692147A (en) * 1995-06-07 1997-11-25 International Business Machines Corporation Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof
US5867507A (en) * 1995-12-12 1999-02-02 International Business Machines Corporation Testable programmable gate array and associated LSSD/deterministic test methodology
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5897507A (en) * 1996-11-25 1999-04-27 Symbiosis Corporation Biopsy forceps instrument having irrigation and aspiration capabilities
US6148233A (en) * 1997-03-07 2000-11-14 Cardiac Science, Inc. Defibrillation system having segmented electrodes
US6150840A (en) 1997-04-09 2000-11-21 Altera Corporation Programmable reticle stitching
US6096091A (en) * 1998-02-24 2000-08-01 Advanced Micro Devices, Inc. Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip
US6150838A (en) * 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
US6469540B2 (en) * 2000-06-15 2002-10-22 Nec Corporation Reconfigurable device having programmable interconnect network suitable for implementing data paths
US6870396B2 (en) * 2000-09-02 2005-03-22 Actel Corporation Tileable field-programmable gate array architecture
US6970013B1 (en) * 2002-03-01 2005-11-29 Xilinx, Inc Variable data width converter
DE60231191D1 (de) * 2002-04-03 2009-04-02 Sicronic Remote Kg Llc Feldprogrammierbare Vorrichtung
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
JP2006237388A (ja) * 2005-02-25 2006-09-07 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の制御方法及び信号伝送回路
US7268581B1 (en) * 2005-04-21 2007-09-11 Xilinx, Inc. FPGA with time-multiplexed interconnect
JP4328334B2 (ja) * 2006-03-13 2009-09-09 パナソニック株式会社 半導体集積回路装置
JP2007333538A (ja) * 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd テスト回路、セレクタおよび半導体集積回路
JP2008059335A (ja) * 2006-08-31 2008-03-13 Fuji Xerox Co Ltd 情報処理装置、通信システムおよび情報処理装置プログラム
JP2008091406A (ja) * 2006-09-29 2008-04-17 Matsushita Electric Ind Co Ltd 半導体集積回路のレイアウト方法
JP2008192841A (ja) * 2007-02-05 2008-08-21 Matsushita Electric Ind Co Ltd 半導体集積回路
US7616025B1 (en) * 2007-08-14 2009-11-10 Actel Corporation Programmable logic device adapted to enter a low-power mode

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098646A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> プログラマブル・アレイ相互接続ラッチ
JP2003329743A (ja) * 2002-05-14 2003-11-19 Renesas Technology Corp 半導体集積回路のテスト方法およびテスト装置
JP2007520795A (ja) * 2003-12-18 2007-07-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ テンプレートを利用したドメイン固有の再構成可能な論理

Also Published As

Publication number Publication date
WO2008013098A1 (fr) 2008-01-31
JPWO2008013098A1 (ja) 2009-12-17
EP2048784A4 (en) 2010-10-27
US20090237113A1 (en) 2009-09-24
US20110126164A1 (en) 2011-05-26
CN101496283A (zh) 2009-07-29
US7906987B2 (en) 2011-03-15
KR20090035538A (ko) 2009-04-09
EP2048784A1 (en) 2009-04-15

Similar Documents

Publication Publication Date Title
JP4971998B2 (ja) 半導体集積回路、プログラム変換装置及びマッピング装置
JP4208577B2 (ja) 集積回路装置
KR101058468B1 (ko) 집적 회로용의 재구성 가능한 로직 패브릭과, 재구성 가능한 로직 패브릭을 구성하기 위한 시스템 및 방법
JP4893309B2 (ja) 再構成可能な論理回路を有するデータ処理装置
US9564902B2 (en) Dynamically configurable and re-configurable data path
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
US20070247189A1 (en) Field programmable semiconductor object array integrated circuit
JP2005512359A (ja) 埋込み固定論理回路をサポートする相互接続ロジックを有するプログラマブルゲートアレイ
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
US11750195B2 (en) Compute dataflow architecture
US20080288755A1 (en) Clock driven dynamic datapath chaining
KR20100092805A (ko) 재구성 가능한 구조의 프로세서
Koch et al. Zero logic overhead integration of partially reconfigurable modules
US7800404B2 (en) Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array
JP4553615B2 (ja) 処理装置
Koch et al. Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems
US20240118870A1 (en) Digital Signal Processing Circuitry with Multiple Precisions and Dataflows
US9081901B2 (en) Means of control for reconfigurable computers
JP2005078177A (ja) 並列演算装置
Shan et al. The Buffered Edge Reconfigurable Cell Array and Its Applications
JP2005277673A (ja) 処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120406

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees