JP5332598B2 - 設計方法及び設計装置 - Google Patents

設計方法及び設計装置 Download PDF

Info

Publication number
JP5332598B2
JP5332598B2 JP2008331046A JP2008331046A JP5332598B2 JP 5332598 B2 JP5332598 B2 JP 5332598B2 JP 2008331046 A JP2008331046 A JP 2008331046A JP 2008331046 A JP2008331046 A JP 2008331046A JP 5332598 B2 JP5332598 B2 JP 5332598B2
Authority
JP
Japan
Prior art keywords
reconfigurable circuit
design data
cluster
circuit
design
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
JP2008331046A
Other languages
English (en)
Other versions
JP2010152713A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008331046A priority Critical patent/JP5332598B2/ja
Priority to US12/635,347 priority patent/US8539415B2/en
Publication of JP2010152713A publication Critical patent/JP2010152713A/ja
Application granted granted Critical
Publication of JP5332598B2 publication Critical patent/JP5332598B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)

Description

本発明は、設計方法及び設計装置に関する。
リコンフィギュラブル回路は、機能の変更が可能な複数のプロセッサエレメントを有する。複数のプロセッサエレメントは、マトリックス状に配置され、複数のプロセッサエレメントの間には選択的に接続可能なネットワークが設けられている。
また、特開2006−163815号公報には、算術および論理演算を行う演算器を含む複数のプロセッサエレメントと、前記複数のプロセッサエレメント間を接続するバスと、前記バスの接続を変更するスイッチ部と、ソフトウェアに応じて前記スイッチ部を制御する制御回路とを有する信号処理プロセッサが開示されている。
特開2006−163815号公報
リコンフィギュラブル回路は、複数のプロセッサエレメントの固定のハードウェア構成を有し、その構成内において機能の変更が可能である。しかし、機能の多様化が要求される現在では、リコンフィギュラブル回路内のプロセッサエレメントの数が足りない、又は必要なプロセッサエレメントが搭載されていない等の問題が生じる。
本発明の目的は、種々の機能を実現することができる設計方法及び設計装置を提供することである。
本発明の設計方法は、リコンフィギュラブル回路のカスタマイズを中央処理装置と記憶装置を備えるコンピュータによって実行する設計方法であって、処理を行う複数のプロセッサエレメントを含む前記リコンフィギュラブル回路のデフォルト構成の設計データを入力前記中央処理装置が、前記記憶装置に記憶された設計対象のリコンフィギュラブル回路の機能を記述したプログラムをコンパイルし、前記デフォルト構成のリコンフィギュラブル回路で前記設計対象のリコンフィギュラブル回路の機能の実現が可能か不可能かを判断し、実現可能な場合には前記カスタマイズを終了し、実現不可能な場合には前記設計対象のリコンフィギュラブル回路の機能を実現するために必要なプロセッサエレメントの種類及び個数の情報を出力し、前記中央処理装置が、前記出力された情報に基づき、前記デフォルト構成のリコンフィギュラブル回路内の少なくとも1つのプロセッサエレメントを修正した第1の設計データを生成し、前記記憶装置に記憶し、前記リコンフィギュラブル回路内の複数のプロセッサエレメント及び前記複数のプロセッサエレメントの入出力間を選択的に接続するネットワークで構成される単位をクラスタとし、前記中央処理装置が、前記リコンフィギュラブル回路内の前記クラスタの単位で修正した第2の設計データを生成し、前記記憶装置に記憶し、前記リコンフィギュラブル回路内の複数のクラスタの単位をクラスタグループとし、前記中央処理装置が、前記リコンフィギュラブル回路内の前記クラスタグループの単位で修正した第3の設計データを生成し、前記記憶装置に記憶し、前記中央処理装置が、前記リコンフィギュラブル回路のインタフェース回路を修正した第4の設計データを生成し、前記中央処理装置が、前記第4の設計データ及び前記記憶装置に記憶された前記第1乃至第3の設計データによりカスタマイズされたリコンフィギュラブル回路を用いて、前記設計対象のリコンフィギュラブル回路の機能を記述したプログラムを再度コンパイルし、前記カスタマイズされたリコンフィギュラブル回路で前記設計対象のリコンフィギュラブル回路の機能の実現が可能か不可能かを再度判断する、ことを特徴とする。
リコンフィギュラブル回路の構成の自由度が向上し、種々の機能を実現することができる。
図1は、本発明の実施形態によるデフォルト構成のリコンフィギュラブル回路モジュールの構成例を示す図である。リコンフィギュラブル回路モジュール101は、例えば、4個の第1のプロセッサエレメント(PE)102a、4個の第2のプロセッサエレメント102b、及び4個の第3のプロセッサエレメント102cを有する。以下、プロセッサエレメント102a,102b,102cの個々又は総称を、プロセッサエレメント102という。プロセッサエレメント102は、算術演算処理又は論理演算処理等を行う。例えば、第1のプロセッサエレメント102aは加減算処理を行い、第2のプロセッサエレメント102bは乗算処理を行い、第3のプロセッサエレメント102cはカウントを行うカウンタである。リコンフィギュラブル回路モジュール101は、種々の機能を実現するために、予め冗長性をもたせた複数のプロセッサエレメント102a〜102cを有する。
図1のリコンフィギュラブル回路モジュール101内の複数のプロセッサエレメント102の構成は固定されている。ここで、リコンフィギュラブル回路モジュール101は、例えば第1のプロセッサエレメント102aを14個使用する演算を行うことができない。
図2は、本実施形態による4個のリコンフィギュラブル回路モジュールの構成例を示す図である。リコンフィギュラブル回路は、例えば14個の第1のプロセッサエレメント102aを使用するために、第1〜第4のリコンフィギュラブル回路モジュール101a,101b,101c,101dを有する。4個のリコンフィギュラブル回路モジュール101a〜101は、それぞれ図1のリコンフィギュラブル回路モジュール101と同じ構成を有する。
この場合、各リコンフィギュラブル回路モジュール101a〜101dの構成は固定されているため、プロセッサエレメント102の使用効率が悪くなり、回路規模が不必要に増大してしまう。
図3は、本実施形態によるカスタマイズ可能なリコンフィギュラブル回路の構成例を示す図である。リコンフィギュラブル回路は、モジュール301a及び301bを有する。第1のリコンフィギュラブル回路モジュール301aは、8個の第1のプロセッサエレメント102a、1個の第2のプロセッサエレメント102b、1個の第3のプロセッサエレメント102c、第4のプロセッサエレメント102d、及び1個の空き領域302を有する。第2のリコンフィギュラブル回路モジュール301bは、8個の第1のプロセッサエレメント102a、1個の第2のプロセッサエレメント102b、1個の第3のプロセッサエレメント102c、及び2個の空き領域302を有する。
リコンフィギュラブル回路モジュール301a及び301bは、それぞれ図1のデフォルト構成のリコンフィギュラブル回路モジュール101を基にカスタマイズしたものである。すなわち、図1のリコンフィギュラブル回路モジュール101内の特定のプロセッサエレメント102を差し替え等することにより、図3のリコンフィギュラブル回路モジュール301a及び301bを生成する。リコンフィギュラブル回路モジュール301a及び301bは、相互に異なる構成を有する。
図3のリコンフィギュラブル回路は、16個の第1のプロセッサエレメント102aを有するので、14個の第1のプロセッサエレメント102aを使用する演算を行うことができる。また、図3のリコンフィギュラブル回路は、図2のリコンフィギュラブル回路に比べ、不要なプロセッサエレメント102b及び102cの数が少ないので、プロセッサエレメント102の使用効率が向上し、回路規模を小さくすることができる。
次に、図4〜図7を参照しながら、上記のリコンフィギュラブル回路を実現するための階層構造のリコンフィギュラブル回路の構成例を説明する。
図4は、クラスタ401の構成例を示す図である。クラスタ401は、プロセッサエレメント群402を有する。プロセッサエレメント群402は、複数のプロセッサエレメント102を有する。ネットワーク403は、データネットワーク及び制御信号ネットワークを有し、複数のプロセッサエレメント102の入出力間に接続され、複数のプロセッサエレメント102の入出力間を選択的に接続する。CPU404は、コンフィグレーションメモリ405からコンフィグレーションデータを読み出し、各プロセッサエレメント102にnビットのコンフィグレーションデータを出力する。各プロセッサエレメント102は、コンフィグレーションデータに応じた機能が設定され、例えばコンフィグレーションデータに応じて加算器又は減算器等として機能する。複数のプロセッサエレメント102の単位がクラスタ401である。
図5は、クラスタグループ501の構成例を示す図である。クラスタグループ501は、図4の複数のクラスタ401を有する。複数のクラスタ401の単位がクラスタグループ501である。
図6は、リコンフィギュラブル回路モジュール601の構成例を示す図である。リコンフィギュラブル回路モジュール601は、図5の複数のクラスタグループ501及び入出力ポート602を有する。各クラスタグループ501は、複数の入出力ポート603を有する。1個の入出力ポート603は、nビットの信号である。入出力ポート602は、外部に対するインタフェースポートであり、複数のクラスタグループ501の入出力ポート603に接続される。入出力ポート602は、図4のネットワーク404のデータを入出力し、CPU404からのコンフィグレーションデータを入力することができる。
図7は、リコンフィギュラブル回路モジュール601、ユーザロジック回路701及びユーザインタフェース回路702の構成例を示す図である。ユーザロジック回路701は、ユーザインタフェース回路702を介してリコンフィギュラブル回路モジュール601に接続される。ユーザインタフェース回路702は、例えばバッファ回路であり、ユーザロジック回路701及びリコンフィギュラブル回路モジュール601間に接続される。ユーザロジック回路701は、例えばCPUである。
図8は、リコンフィギュラブル回路のカスタマイズの分類を示す図である。まず、プロセッサエレメント層分類(ステップ)801は、分類(ステップ)811〜813を有する。分類811は、デフォルト構成のリコンフィギュラブル回路内のプロセッサエレメント102を他の既存のプロセッサエレメント102に差し替える。既存のプロセッサエレメント102は、既に存在する設計済みのプロセッサエレメントである。分類812は、プロセッサエレメントのファンクションブロックフィッティングであり、図9を参照しながら説明する。
図9は、プロセッサエレメントのファンクションブロックフィッティングの分類812を説明するための図である。プロセッサエレメント102は、コンフィグレーションコントロールブロック911、ファンクションブロック912及びコントロールブロック913を有する。コンフィグレーションコントロールブロック911は、コンフィグレーションデータ901をデコードし、ファンクションブロック912及びコントロールブロック913に出力する。ファンクションブロック912及びコントロールブロック913は、コンフィグレーションデータに応じて機能が設定される。ファンクションブロック912は、ロジック回路920を有し、ネットワーク403(図4)から入力データ902を入力し、出力データをコントロールブロック913に出力する。コントロールブロック913は、フリップフロップ914を有し、ネットワーク403から入力制御信号903を入力し、出力データ904をネットワーク403に出力する。フリップフロップ914は、ファンクションブロック912の出力データを入力し、出力データ904を出力する。ファンクションブロック912は、フリップフロップを含まないロジック回路920を有する。また、プロセッサエレメント102は、出力個別信号905をネットワーク403へ出力する。
カスタマイズとして、ファンクションブロック912内のデフォルトのロジック回路920を、第1のロジック回路921、第2のロジック回路922又は第3のロジック回路923に差し替えることができる。
図8の分類813は、ユーザオリジナルのプロセッサエレメントを作成し、デフォルト構成のリコンフィギュラブル回路内のプロセッサエレメントをユーザオリジナルのプロセッサエレメントに差し替える。
次に、クラスタ層分類(ステップ)802は、分類(ステップ)821〜825を有する。分類821は、デフォルト構成のクラスタを、既存の他のクラスタに差し替える。
分類822は、複数のプロセッサエレメントを組み合わせてクラスタを作成し、デフォルト構成のクラスタを、作成したクラスタに差し替える。
分類823は、不要なプロセッサエレメントのコンフィグを削除した空き領域302(図3)に接続されるコンフィグレーションデータ線を削除する。
分類824は、不要なプロセッサエレメントのネットワークを削除した空き領域302(図3)に接続されるネットワーク403(図4)を削除する。
分類825は、ユーザオリジナルのクラスタを作成し、デフォルト構成のリコンフィギュラブル回路内のクラスタをユーザオリジナルのクラスタに差し替える。
次に、クラスタグループ層分類(ステップ)803は、分類(ステップ)831〜833を有する。分類831は、デフォルト構成のクラスタグループを、既存の他のクラスタグループに差し替える。
分類832は、複数のクラスタを組み合わせてクラスタグループを作成し、デフォルト構成のクラスタグループを、作成したクラスタグループに差し替える。
分類833は、クラスタグループの入出力ポート603(図6)の数を設定する。
次に、ユーザインタフェース分類(ステップ)804は、分類(ステップ)841を有する。分類841は、ユーザインタフェース702(図7)を選択して設定する。
図10は、上記のリコンフィギュラブル回路の設計装置を構成するコンピュータのハードウェア構成例を示すブロック図である。このコンピュータは、CAD(computer-aided design)により、リコンフィギュラブル回路の設計データを生成することができる。
バス1001には、中央処理装置(CPU)1002、ROM1003、RAM1004、ネットワークインタフェース1005、入力装置1006、出力装置1007及び外部記憶装置1008が接続されている。
CPU1002は、データの処理及び演算を行うと共に、バス1001を介して接続された上記の構成ユニットを制御するものである。ROM1003には、予めブートプログラムが記憶されており、このブートプログラムをCPU1002が実行することにより、コンピュータが起動する。外部記憶装置1008にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM1004にコピーされ、CPU1002により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後述する図11〜図14の設計処理等を行うことができる。
外部記憶装置1008は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置1008は、コンピュータプログラム、設計データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
ネットワークインタフェース1005は、ネットワークに対してコンピュータプログラム及び設計データ等を入出力することができる。入力装置1006は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置1007は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
図11は、図10の設計装置の設計方法の処理例を示すフローチャートである。ステップ1101では、ユーザが設計装置を用いて、設計対象のリコンフィギュラブル回路の機能を実現するためのソースプログラム(例えばC言語)を生成し、CPU1002はそのソースプログラムを外部記憶装置1008に記憶する。次に、ステップ1102では、CPU1002は、外部記憶装置1008内のソースプログラムをコンパイルする。そのコンパイルにより、デフォルト構成のリコンフィギュラブル回路により実現できるか否かの結果が出力される。実現可能の結果が出力された場合には、CPU1002は、デフォルト構成のリコンフィギュラブル回路の設計データを生成し、外部記憶装置1008に記録する。実現不可能の結果が出力された場合には、ステップ1104へ進む。なお、ステップ1103の詳細は、後に図12を参照しながら説明する。
ステップ1104では、CPU1002は、コンパイル結果の構成レポート1105を出力し、外部記憶装置1008に記録する。構成レポート1105は、ソースプログラムの機能を実現するために必要なプロセッサエレメントの種類、及び各プロセッサエレメントの数の情報を含む。その後、ステップ1106において、カスタマイズ処理を行う。
ステップ1106は、ステップ1107〜1110を有する。まず、ステップ1107では、CPU1002は、プロセッサエレメント層のカスタマイズ処理を行い、カスタマイズ処理をした場合にはカスタマイズ処理したプロセッサエレメントの構成を示す定義ファイル1111を出力し、外部記憶装置1008に記録する。ステップ1107は、図8の分類811〜813に対応する処理である。
次に、ステップ1108では、CPU1002は、クラスタ層のカスタマイズ処理を行い、カスタマイズ処理をした場合にはカスタマイズ処理したクラスタの構成を示す定義ファイル1112を出力し、外部記憶装置1008に記録する。ステップ1108は、図8の分類821〜825に対応する処理である。
次に、ステップ1109では、CPU1002は、クラスタグループ層のカスタマイズ処理を行い、カスタマイズ処理をした場合にはカスタマイズ処理したクラスタグループの構成を示す定義ファイル1113を出力し、外部記憶装置1008に記録する。ステップ1109は、図8の分類831〜833に対応する処理である。
次に、ステップ1110では、CPU1002は、ユーザインタフェースのカスタマイズ処理を行う。ステップ1110は、図8の分類841に対応する処理である。
上記のカスタマイズ処理が終了すると、ステップ1102へ戻り、CPU1002は、カスタマイズされたリコンフィギュラブル回路を用いて、ソースプログラムの機能を実現可能であるか否かを検証するために、ソースプログラムをコンパイルする。そのコンパイルにより、カスタマイズされたリコンフィギュラブル回路により実現できるか否かの結果が出力される。実現可能の結果が出力された場合には、CPU1002は、カスタマイズされたリコンフィギュラブル回路の設計データを生成し、外部記憶装置1008に記録する。実現不可能の結果が出力された場合には、ステップ1104へ進み、再びカスタマイズ処理を行う。
図12は、図11のステップ1102のコンパイル処理の詳細を示すフローチャートである。ソースプログラム1201及び1203は、ユーザCPU701(図7)の処理を記述したプログラム、ソースプログラム1202はリコンフィギュラブル回路(図7のモジュール601及びユーザインタフェース702を含む)の処理を記述したプログラムである。ソースプログラム1201〜1203は、例えばC言語のプログラムである。
ステップ1204では、CPU1002は、リコンフィギュラブル回路のソースプログラム(関数)1202をロジカルコンパイルし、データ処理フローを可視化する。そのロジカルコンパイルの際に、ステップ1205では、CPU1002は、データ処理フローについて、規模及び面積の概算等の性能評価を行う。その後、ステップ1209では、CPU1002は、構成レポートを出力する。ステップ1209は、図11のステップ1104に対応する。
次に、ステップ1206では、リコンフィギュラブル回路のソースプログラム1202について、ロジカルコンパイル後、フィジカルコンパイルを行い、各処理(関数)をプロセッサエレメントへマッピングする。そのフィジカルコンパイルの際に、ステップ1207では、CPU1002は、データ処理フロー及びプロセッサエレメント構成等を決め、プロセッサエレメントへのマッピングを行う。その後、ステップ1208では、CPU1002は、構成レポートを出力する。ステップ1208は、図11のステップ1104に対応する。
次に、ステップ1210では、CPU1002は、フィジカルコンパイル後、コンフィギュレーションデータ1211を生成し、外部記憶装置1008に記録する。
図13は、図11のステップ1106のカスタマイズ処理の詳細を示すフローチャートであり、図8に対応する。ステップ1301のプロセッサエレメント層カスタマイズ処理は図11のステップ1107に対応し、ステップ1311のクラスタ層カスタマイズ処理は図11のステップ1108に対応し、ステップ1321のクラスタグループ層カスタマイズ処理は図11のステップ1109に対応し、ステップ1331のユーザインタフェースカスタマイズ処理は図11のステップ1110に対応する。
まず、ステップ1301において、CPU1002は、プロセッサエレメント層カスタマイズ処理を行う。ステップ1301では、ステップ1302〜1307のループ処理を行う。ステップ1302は、ループ処理の始端であり、CPU1002は、コンパイル結果の構成レポート1105を基に必要なプロセッサエレメントを抽出し、各プロセッサエレメントのカスタマイズ処理を開始する。
ステップ1303では、CPU1002は、既存のプロセッサエレメントから演算の選択を行う。具体的には、基本的な演算機能を持つ、加算、減算、乗算、シフト、セレクタ、レジスタ、メモリ等のプロセッサエレメントから必要なプロセッサエレメントを選択し、デフォルト構成のプロセッサエレメントと差し替える。
次に、ステップ1304では、CPU1002は、演算機能のフィッティングを行う。具体的には、既存のプロセッサエレメントに必要な演算機能が無い場合、プロセッサエレメントのファンクションブロック912(図9)に対し演算子を定義し、ライブラリ化された演算関数や演算記号を決め、プロセッサエレメントの外部インタフェースを保ちながら、プロセッサエレメントの演算機能を実現し、デフォルト構成のプロセッサエレメントと差し替える。
次に、ステップ1305では、CPU1002は、個別プロセッサエレメントの作成を行う。具体的には、既存のプロセッサエレメントや演算機能フィッティングに当てはまらないプロセッサエレメントの場合は、新規の設計を行った後、既存のプロセッサエレメントとして組み込み、デフォルト構成のプロセッサエレメントと差し替える。
ステップ1306では、上記の3ステップ1303〜1305を必要なプロセッサエレメントについてループ処理を行い、終了すると、必要なプロセッサエレメント構成の定義ファイル1307を生成する。
次に、ステップ1311において、CPU1002は、クラスタ層カスタマイズ処理を行う。ステップ1311では、ステップ1312〜1317のループ処理を行う。ステップ1312は、ループ処理の始端であり、CPU1002は、コンパイル結果の構成レポート1105及び必要に応じてデータフローに応じて、必要なクラスタを抽出し、各クラスタのカスタマイズ処理を開始する。
ステップ1313では、CPU1002は、既存のクラスタからプロセッサエレメント構成を選択する。具体的には、必要なプロセッサエレメント数のまとまりをクラスタに割り当て、必要なクラスタ数と種別を振り分け、既存のプロセッサエレメント構成のクラスタを選び、デフォルト構成のクラスタと差し替える。
次に、ステップ1314では、CPU1002は、プロセッサエレメント構成を定義する。具体的には、既存のクラスタの種別に当てはまらない場合、クラスタ内に配置するプロセッサエレメントの種類と数を決め、プロセッサエレメント構成を定義し、デフォルト構成のクラスタと差し替える。
次に、ステップ1315では、CPU1002は、各プロセッサエレメントの必要なコンフィグレーションを定義する。具体的には、選択したプロセッサエレメントに対して必要なコンフィグレーションの最適化を行う。個別にプロセッサエレメントで使用する命令を確認し、不要な命令を抽出し、不要な命令のコンフィグレーションデータ線を削除する。
次に、ステップ1316では、CPU1002は、プロセッサエレメント間接続ネットワークを定義する。具体的には、プロセッサエレメント構成決定後、必要なプロセッサエレメント間接続を確認し、不要なプロセッサエレメント間ネットワーク403(図4)と必要なプロセッサエレメント間ネットワーク403を判定する。また、異なったネットワーク接続性が必要な場合は冗長度を加味する。CPU1002は、不要なプロセッサエレメント間ネットワーク403を削除する。
ステップ1317では、上記の4ステップ1313〜1316を必要なクラスタについてループ処理を行い、終了すると、必要なクラスタ構成の定義ファイル1318を生成する。
次に、ステップ1321において、CPU1002は、クラスタグループ層カスタマイズ処理を行う。ステップ1321では、ステップ1322〜1326のループ処理を行う。ステップ1322は、ループ処理の始端であり、CPU1002は、コンパイル結果の構成レポート1105を基に必要なクラスタグループを抽出し、各クラスタグループのカスタマイズ処理を開始する。
ステップ1323では、CPU1002は、既存のクラスタ構成から選択する。具体的には、必要なクラスタ構成と数を確認後、既存のクラスタグループと同一構成であるものを選択し、デフォルト構成のクラスタグループと差し替える。
次に、ステップ1324では、CPU1002は、クラスタ構成を定義する。具体的には、既存のクラスタグループに当てはまらない場合、クラスタの振り分けを行い、クラスタのまとまり(クラスタ群を構成)とグループ数を定義し、既存のクラスタグループと差し替える。
次に、ステップ1325では、CPU1002は、外部入出力ポートを定義する。具体的には、クラスタグループ間の接続とユーザインタフェースを介さない直接データを入力するような場合、必要データの入出力ポート数を算出後、入出力ポート数を定義する。
ステップ1326では、上記の3ステップ1323〜1325を必要なクラスタグループについてループ処理を行い、終了すると、必要なクラスタグループ構成の定義ファイル1327を生成する。
次に、ステップ1331において、CPU1002は、ユーザインタフェースカスタマイズ処理を行う。ステップ1331では、ステップ1332及び1333の処理を行う。具体的には、組み込み対象のシステムにインタフェースするためにカスタマイズする。カスタマイズするモジュールをインタフェースモジュールのみにすることにより接続性を柔軟に対応可能とすることができる。
ステップ1332では、CPU1002は、既存のインタフェースモジュールから選択する。具体的には、外部モジュールとの接続インタフェースを確認し、汎用インタフェースモジュールを割り当て、構築し、リコンフィギュラブル回路モジュールをユーザ回路に組み込む。
次に、ステップ1333では、CPU1002は、ユーザインタフェースを定義する。具体的には、個別ユーザインタフェースが必要な場合、ユーザインタフェースを仕様化し、インタフェースモジュールを設計する。設計後、ユーザインタフェースモジュールとして割り当て、構築し、リコンフィギュラブル回路モジュールをユーザ回路に組み込む。
上記の方法よりカスタマイズしたインタフェースモジュール(回路)702をリコンフィギュラブル回路モジュール601とユーザ回路モジュール701の間に配置し、双方のインタフェースを行う。
図14は、本実施形態による設計装置の設計方法の処理例を示すフローチャートである。ステップ1401では、CPU1002は、システム設計のプログラムツール1402、アルゴリズム実装のプログラムツール1403、並びに既存RTL(レジスタ転送レベル)設計データ及び新規機能追加のプログラムツール1404の要求を実現するため、図11のステップ1102に対応し、ソースプログラムのコンパイルを行う。その後、ステップ1405及び1406へ進む。
ステップ1406では、CPU1002は、上記のコンパイル後、リコンフィギュレーション回路の設計処理を行う。ステップ1406は、ステップ1407〜1409,1415を有する。
ステップ1407では、CPU1002は、プリミティブモデルのプログラムツールにより、既存IP及び既存プロセッサエレメント等のプリミティブモデルの設計処理を行う。ステップ1408では、CPU1002は、ユーザファンクション記述のプログラムツールにより、ユーザファンクションブロック記述(フリップフロップを含まないロジック回路)を設計する。ステップ1409では、CPU1002は、ユーザプロセッサエレメント及びクラスタ設計のプログラムツールにより、標準プロセッサエレメント及びインタフェース等のユーザプロセッサエレメント及びクラスタを設計する。
ステップ1415は、図11のステップ1106のカスタマイズ処理に対応し、クラスタのカスタマイズ処理及びプロセッサエレメントのカスタマイズ処理を含む。クラスタのカスタマイズ処理は、機能クラスタのカスタマイズ処理、及びクラスタグループ層の各クラスタの組み替え処理を含む。プロセッサエレメントのカスタマイズ処理は、新規プロセッサエレメントのカスタマイズ処理、及びクラスタ層の各プロセッサエレメントの組み替え処理を含む。上記の新規プロセッサエレメントのカスタマイズ処理は、プロセッサエレメント内の一部のロジック回路の差し替え処理、及びプロセッサエレメントの設計、モジュールの差し替え処理を含む。
ステップ1415の処理により、テンプレートライブラリ1416及びRTL設計データライブラリ1417が生成され、外部記憶装置1008に記録され、データベース化される。
ステップ1405では、CPU1002は、検証シナリオの生成処理を行う。具体的には、CPU1002は、ソースプログラム(C言語)内の関数(例えばx=a+b+c)を検証するために、a=1,b=2,c=3のときにはx=6になるというシナリオを生成する。
ステップ1410では、CPU1002は、ステップ1405からC言語の検証シナリオを入力し、ステップ1406からシステムC(C++)の設計データを入力する。CPU1002は、設計データを基にモデリングを行い、検証シナリオを用いてモデル検証を行う。そして、CPU1002は、モデル検証結果1411を出力する。
次に、ステップ1412では、CPU1002は、上記のモデルを基にカスタマイズRTL設計データを生成する。
次に、ステップ1413では、CPU1002は、RTL設計データ及び検証シナリオを基にシミュレーション及び検証を行う。
次に、ステップ1414では、CPU1002は、検証シナリオ、モデル検証結果1411、並びにステップ1413のシミュレーション及び検証の結果を基にモデル及びRTL設計データの検証結果が一致しているか否かの検証を行う。一致していれば、リコンフィギュラブル回路の設計データの生成が完了する。
以上のように、本実施形態によれば、論理回路設計手法(デザインメソトロジ)において、プログラミングなど抽象化された言語からLSIを設計したものが、コンフィグレーションデータを変えるだけでLSI機能を変更することができる。通常、CPU等で演算される実行プログラムを最適化された論理回路に配置(プロセッサエレメントにマッピング)可能となり、性能を向上することができる。また、プログラムされたアプリケーションを論理演算回路に配置することが可能であり、論理回路手法としての設計工数の効率化に寄与する。カスタマイズされた事前設計評価により論理回路に対してコンフィグレーションデータの書き替えで実現できる論理回路に対して必ず要求満たすことができる。
本実施形態の設計方法は、処理を行う複数のプロセッサエレメント102を含むリコンフィギュラブル回路のデフォルト構成の設計データを入力する入力ステップと、前記デフォルト構成のリコンフィギュラブル回路内の少なくとも1つのプロセッサエレメント102を修正した設計データを生成する第1の生成ステップ801とを有する。
第1の生成ステップ801は、前記リコンフィギュラブル回路内の少なくとも1つのプロセッサエレメント102を他のプロセッサエレメント102に差し替えた設計データを生成するステップ811を有する。
第2の生成ステップ802は、前記リコンフィギュラブル回路内の複数のプロセッサエレメント102の単位をクラスタ401とし、前記リコンフィギュラブル回路内の前記クラスタ401の単位で修正した設計データを生成する。
第2の生成ステップ802は、前記リコンフィギュラブル回路内の少なくとも1つのクラスタ401を他のクラスタ401に差し替えた設計データを生成するステップ821を有する。
第3の生成ステップ803は、前記リコンフィギュラブル回路内の複数のクラスタ401の単位をクラスタグループ501とし、前記リコンフィギュラブル回路内の前記クラスタグループ501の単位で修正した設計データを生成する。
第3の生成ステップ803は、前記リコンフィギュラブル回路内の少なくとも1つのクラスタグループ501を他のクラスタグループ501に差し替えた設計データを生成するステップ831を有する。
第4の生成ステップ804は、前記リコンフィギュラブル回路のインタフェース回路702を修正した設計データを生成する。
本実施形態の設計装置は、処理を行う複数のプロセッサエレメント102を含むリコンフィギュラブル回路のデフォルト構成の設計データを入力する入力部と、前記デフォルト構成のリコンフィギュラブル回路内の少なくとも1つのプロセッサエレメントを修正した設計データを生成する第1の生成部とを有する。
本実施形態のリコンフィギュラブル回路は、処理を行う複数のプロセッサエレメント102の単位をクラスタ401とし、前記クラスタ401を複数有する。さらに、リコンフィギュラブル回路は、複数のクラスタ401の単位をクラスタグループ501とし、前記クラスタグループ501を複数有する。
本実施形態によれば、リコンフィギュラブル回路の構成の自由度が向上し、種々の機能を実現することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態によるデフォルト構成のリコンフィギュラブル回路モジュールの構成例を示す図である。 本実施形態による4個のリコンフィギュラブル回路モジュールの構成例を示す図である。 本実施形態によるカスタマイズ可能なリコンフィギュラブル回路の構成例を示す図である。 クラスタの構成例を示す図である。 クラスタグループの構成例を示す図である。 リコンフィギュラブル回路モジュールの構成例を示す図である。 リコンフィギュラブル回路モジュール、ユーザロジック回路及びユーザインタフェース回路の構成例を示す図である。 リコンフィギュラブル回路のカスタマイズの分類を示す図である。 プロセッサエレメントのファンクションブロックフィッティングの分類を説明するための図である。 リコンフィギュラブル回路の設計装置を構成するコンピュータのハードウェア構成例を示すブロック図である。 図10の設計装置の設計方法の処理例を示すフローチャートである。 図11のコンパイル処理の詳細を示すフローチャートである。 図11のカスタマイズ処理の詳細を示すフローチャートである。 本実施形態による設計装置の設計方法の処理例を示すフローチャートである。
符号の説明
102 プロセッサエレメント
401 クラスタ
501 クラスタグループ
1001 バス
1002 CPU
1003 ROM
1004 RAM
1005 ネットワークインタフェース
1006 入力装置
1007 出力装置
1008 外部記憶装置

Claims (5)

  1. リコンフィギュラブル回路のカスタマイズを中央処理装置と記憶装置を備えるコンピュータによって実行する設計方法であって、
    処理を行う複数のプロセッサエレメントを含む前記リコンフィギュラブル回路のデフォルト構成の設計データを入力
    前記中央処理装置が、前記記憶装置に記憶された設計対象のリコンフィギュラブル回路の機能を記述したプログラムをコンパイルし、前記デフォルト構成のリコンフィギュラブル回路で前記設計対象のリコンフィギュラブル回路の機能の実現が可能か不可能かを判断し、実現可能な場合には前記カスタマイズを終了し、実現不可能な場合には前記設計対象のリコンフィギュラブル回路の機能を実現するために必要なプロセッサエレメントの種類及び個数の情報を出力し、
    前記中央処理装置が、前記出力された情報に基づき、前記デフォルト構成のリコンフィギュラブル回路内の少なくとも1つのプロセッサエレメントを修正した第1の設計データを生成し、前記記憶装置に記憶し、
    前記リコンフィギュラブル回路内の複数のプロセッサエレメント及び前記複数のプロセッサエレメントの入出力間を選択的に接続するネットワークで構成される単位をクラスタとし、前記中央処理装置が、前記リコンフィギュラブル回路内の前記クラスタの単位で修正した第2の設計データを生成し、前記記憶装置に記憶し、
    前記リコンフィギュラブル回路内の複数のクラスタの単位をクラスタグループとし、前記中央処理装置が、前記リコンフィギュラブル回路内の前記クラスタグループの単位で修正した第3の設計データを生成し、前記記憶装置に記憶し、
    前記中央処理装置が、前記リコンフィギュラブル回路のインタフェース回路を修正した第4の設計データを生成し、
    前記中央処理装置が、前記第4の設計データ及び前記記憶装置に記憶された前記第1乃至第3の設計データによりカスタマイズされたリコンフィギュラブル回路を用いて、前記設計対象のリコンフィギュラブル回路の機能を記述したプログラムを再度コンパイルし、前記カスタマイズされたリコンフィギュラブル回路で前記設計対象のリコンフィギュラブル回路の機能の実現が可能か不可能かを再度判断する、
    ことを特徴とする設計方法。
  2. 前記第1の設計データは、前記リコンフィギュラブル回路内の少なくとも1つのプロセッサエレメントを他のプロセッサエレメントに差し替えた設計データであることを特徴とする請求項1記載の設計方法。
  3. 前記第2の設計データは、前記リコンフィギュラブル回路内の少なくとも1つのクラスタを他のクラスタに差し替えた設計データであることを特徴とする請求項記載の設計方法。
  4. 前記第3の設計データは、前記リコンフィギュラブル回路内の少なくとも1つのクラスタグループを他のクラスタグループに差し替えた設計データであることを特徴とする請求項記載の設計方法。
  5. リコンフィギュラブル回路のカスタマイズを実行する設計装置であって、
    コンピュータを備え、
    前記コンピュータが、
    処理を行う複数のプロセッサエレメントを含む前記リコンフィギュラブル回路のデフォルト構成の設計データを入力
    記憶装置に記憶された設計対象のリコンフィギュラブル回路の機能を記述したプログラムをコンパイルし、前記デフォルト構成のリコンフィギュラブル回路で前記設計対象のリコンフィギュラブル回路の機能の実現が可能か不可能かを判断し、実現可能な場合には前記カスタマイズを終了し、実現不可能な場合には前記設計対象のリコンフィギュラブル回路の機能を実現するために必要なプロセッサエレメントの種類及び個数の情報を出力し、
    前記出力された情報に基づき、前記デフォルト構成のリコンフィギュラブル回路内の少なくとも1つのプロセッサエレメントを修正した第1の設計データを生成し、
    前記リコンフィギュラブル回路内の複数のプロセッサエレメント及び前記複数のプロセッサエレメントの入出力間を選択的に接続するネットワークで構成される単位をクラスタとし、前記リコンフィギュラブル回路内の前記クラスタの単位で修正した第2の設計データを生成し、
    前記リコンフィギュラブル回路内の複数のクラスタの単位をクラスタグループとし、前記リコンフィギュラブル回路内の前記クラスタグループの単位で修正した第3の設計データを生成し、
    前記リコンフィギュラブル回路のインタフェース回路を修正した第4の設計データを生成し、
    前記第1、第2、第3及び第4の設計データによりカスタマイズされたリコンフィギュラブル回路を用いて、設計対象のリコンフィギュラブル回路の機能を記述したプログラムを再度コンパイルし、前記カスタマイズされたリコンフィギュラブル回路で前記設計対象のリコンフィギュラブル回路の機能の実現が可能か不可能かを再度判断する、
    ことを特徴とする設計装置。
JP2008331046A 2008-12-25 2008-12-25 設計方法及び設計装置 Expired - Fee Related JP5332598B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008331046A JP5332598B2 (ja) 2008-12-25 2008-12-25 設計方法及び設計装置
US12/635,347 US8539415B2 (en) 2008-12-25 2009-12-10 Reconfigurable circuit, its design method, and design apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008331046A JP5332598B2 (ja) 2008-12-25 2008-12-25 設計方法及び設計装置

Publications (2)

Publication Number Publication Date
JP2010152713A JP2010152713A (ja) 2010-07-08
JP5332598B2 true JP5332598B2 (ja) 2013-11-06

Family

ID=42286324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008331046A Expired - Fee Related JP5332598B2 (ja) 2008-12-25 2008-12-25 設計方法及び設計装置

Country Status (2)

Country Link
US (1) US8539415B2 (ja)
JP (1) JP5332598B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8584063B1 (en) * 2012-09-07 2013-11-12 Freescale Semiconductor, Inc. Assertion-based design partitioning

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084286A (ja) * 1999-09-14 2001-03-30 Mitsubishi Electric Corp 論理検証装置
US6662302B1 (en) * 1999-09-29 2003-12-09 Conexant Systems, Inc. Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device
US6803782B2 (en) * 2002-03-21 2004-10-12 John Conrad Koob Arrayed processing element redundancy architecture
WO2004019219A2 (en) * 2002-08-21 2004-03-04 California Institute Of Technology Element placement method and apparatus
JP3907664B2 (ja) * 2004-02-27 2007-04-18 松下電器産業株式会社 半導体記憶装置
US7343579B2 (en) * 2004-11-30 2008-03-11 Physical Sciences Reconfigurable environmentally adaptive computing
JP3810419B2 (ja) 2004-12-07 2006-08-16 松下電器産業株式会社 再構成可能な信号処理プロセッサ
JP4795025B2 (ja) * 2006-01-13 2011-10-19 キヤノン株式会社 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
US7904848B2 (en) * 2006-03-14 2011-03-08 Imec System and method for runtime placement and routing of a processing array
EP2063366A4 (en) * 2006-08-31 2012-08-15 Fuji Xerox Co Ltd METHOD AND SYSTEM FOR MOUNTING A CIRCUIT MODEL ON A RECONFIGURABLE DEVICE

Also Published As

Publication number Publication date
US20100169607A1 (en) 2010-07-01
US8539415B2 (en) 2013-09-17
JP2010152713A (ja) 2010-07-08

Similar Documents

Publication Publication Date Title
CN1885295B (zh) 使用逻辑单元建置集成电路
JP4896242B2 (ja) マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス
CN102708221B (zh) 用于对局部重配置模块进行布局和布线的方法和设备
US8959472B1 (en) Considering compatibility of adjacent boundary regions for standard cells placement and routing
US8326592B2 (en) Method and system for verifying electronic designs having software components
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
KR20060087537A (ko) 개선되어 컴퓨터화된 확장 장치 및 방법
CN104603784A (zh) 相对定时表征
US8527254B2 (en) Simulator engine development system and simulator engine development method
EP0847022A2 (en) Method for designing an architectural system
JP2006285333A (ja) 動作合成装置及び方法
JP5332598B2 (ja) 設計方法及び設計装置
JP2005293448A (ja) データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法
US9223910B1 (en) Performance and memory efficient modeling of HDL ports for simulation
JP6173644B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US10223077B2 (en) Determination of signals for readback from FPGA
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
JP3171182B2 (ja) 機能合成方法,機能合成装置およびその記録媒体
Yu et al. An Approach to the Design of Specific Hardware Circuits From C Programs.
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP2005327192A (ja) ハードウエア設計システムおよびその方法
WO2000068782A1 (fr) Procede de mise au point d'un circuit integre a semiconducteur
JP5791797B2 (ja) Lsi設計装置及びlsi設計方法及びプログラム
JP5626724B2 (ja) アクセラレータ及びデータ処理方法
JP2024062940A (ja) 高位合成に対する等価性検証を行う装置、プログラム、および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130618

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130715

R150 Certificate of patent or registration of utility model

Ref document number: 5332598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees