JP5012611B2 - 動作合成装置、動作合成方法およびプログラム - Google Patents

動作合成装置、動作合成方法およびプログラム Download PDF

Info

Publication number
JP5012611B2
JP5012611B2 JP2008077081A JP2008077081A JP5012611B2 JP 5012611 B2 JP5012611 B2 JP 5012611B2 JP 2008077081 A JP2008077081 A JP 2008077081A JP 2008077081 A JP2008077081 A JP 2008077081A JP 5012611 B2 JP5012611 B2 JP 5012611B2
Authority
JP
Japan
Prior art keywords
level description
behavioral synthesis
unit
profile
description
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
JP2008077081A
Other languages
English (en)
Other versions
JP2009230602A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008077081A priority Critical patent/JP5012611B2/ja
Priority to US12/409,856 priority patent/US8516414B2/en
Publication of JP2009230602A publication Critical patent/JP2009230602A/ja
Application granted granted Critical
Publication of JP5012611B2 publication Critical patent/JP5012611B2/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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Description

本発明は、再構成可能ハードウェアにより実現する電子回路を最適化するのに好適な動作合成装置、動作合成方法並びにこれらをコンピュータ上で実現するためのプログラムに関する。
再構成可能ハードウェアとして、FPGA(Field Programable Gate Array)やDRP(Dynamically Reconfigurable Processor)などの技術が提案されている。これらに関連する技術については、以下の文献に開示されている。
特許第3987782号公報 特許第3987783号公報 特開2006−202330号公報
再構成可能ハードウェア上に実現される電子回路の設計には、動作合成ツールを用いた設計手法が有効である。この動作合成ツールは、入力ポートや変数のビット幅等のH/W化に必要な情報を含んだ動作レベル記述を動作合成することにより、RTL(Register Transfer Level(レジスタ転送レベル))記述を出力するツールである。
一般に、動作合成の分野においては、動作レベル記述から得られる情報のみを用いて最適化を行う静的コンパイルと呼ばれる手法が用いられている。
しかしながら、再構成可能ハードウェアにより実現される電子回路を実際に動作させて、動作時に得られるプロファイル情報を用いて最適化を行いたいという要望が強い。
例えば、ある状態から別の状態への遷移確率が偏っていることが分かれば、公知の最適化技術等を適用して電子回路の性能を向上させることができると期待されるからである。
本発明は、上記問題に鑑みてなされたものであり、再構成可能ハードウェアにより実現する電子回路を最適化するのに好適な動作合成装置、動作合成方法並びにこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係る動作合成装置は、受付部、追加部、動作合成部、プロファイル部、最適化部を備え、以下のように構成する。
まず、受付部は、再構成可能ハードウェアにより実現される電子回路を表す第1の動作レベル記述の入力を受け付ける。
次に、追加部は、当該第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する。
さらに、動作合成部は、与えられた動作レベル記述を動作合成してレジスタ転送レベル記述を生成する。
また、プロファイル部は、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させる。
そして、最適化部は、当該第1の動作レベル記述を動作合成部に与えるとともに当該プロファイル情報に基づいて生成した最適化情報を動作合成部に与えてレジスタ転送レベル記述を得る。
上記目的を達成するために、その他の観点に係る動作合成方法は、受付部、追加部、動作合成部、プロファイル部、最適化部を備える動作合成装置が実行する動作合成方法であって、受付ステップ、追加ステップ、動作合成ステップ、プロファイルステップ、最適化ステップを備え、以下のように構成する。
すなわち、受付ステップでは、受付部が、再構成可能ハードウェアにより実現される電子回路を表す第1の動作レベル記述の入力を受け付ける。
そして、追加ステップでは、追加部が、当該第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する。
さらに、動作合成ステップでは、動作合成部が、与えられた動作レベル記述を動作合成してレジスタ転送レベル記述を生成する。
また、プロファイルステップでは、プロファイル部が、当該第2の動作レベル記述を動作合成部に与えて得られるレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させる。
さらに、最適化ステップでは、最適化部が、当該第1の動作レベル記述を前記動作合成部に与えるとともに当該プロファイル情報に基づいて生成した最適化情報を前記動作合成部に与えてレジスタ転送レベル記述を得る。
上記目的を達成するために、その他の観点に係るプログラムは、コンピュータを、受付部、追加部、動作合成部、プロファイル部、最適化部として、以下のように機能させる。
まず、受付部は、再構成可能ハードウェアにより実現される電子回路を表す第1の動作レベル記述の入力を受け付ける。
次に、追加部は、当該第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する。
さらに、動作合成部は、与えられた動作レベル記述を動作合成してレジスタ転送レベル記述を生成する。
また、プロファイル部は、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させる。
そして、最適化部は、当該第1の動作レベル記述を動作合成部に与えるとともに当該プロファイル情報に基づいて生成した最適化情報を動作合成部に与えてレジスタ転送レベル記述を得る。
本発明によれば、再構成可能ハードウェアにより実現する電子回路を最適化するのに好適な動作合成装置、動作合成方法並びにこれらをコンピュータ上で実現するためのプログラムを提供することができる。
以下、図面を参照して、本実施形態に係る動作合成装置について説明する。
まず、図1を参照して、本実施形態に係る動作合成装置の構成について説明する。なお、動作合成装置は、入力ポートや変数のビット幅等のH/W化に必要な情報を含んだ動作レベル記述を動作合成することにより、半導体集積回路の構成、配置、配線を記述するRTL(Register Transfer Level(レジスタ転送レベル))記述を得る装置である。
図1に示すように、動作合成装置100は、物理的には、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、ハードディスク装置14と、入力装置15と、表示装置16と、出力装置17と、を備える。動作合成装置100が備える各構成要素はバスを介して接続される。
CPU11は、ハードディスク装置14に記憶されたプログラムに従って動作合成装置100全体の動作を制御する。CPU15は、各構成要素とバスを介して接続され制御信号やデータのやりとりをする。
ROM12は、電源投入直後に実行されるIPL(Initial Program Loader)を記憶する。IPLが実行された後、CPU11は、ハードディスク装置14に記憶されたプログラムをRAM13に読み出して実行する。
RAM13は、データやプログラムを一時的に記憶する。RAM13は、ハードディスク装置14から読み出されたプログラムや、動作合成処理に必要なデータ等を一時記憶する。
ハードディスク装置14は、CPU11により実行されるプログラムを記憶する。また、ハードディスク装置14は、動作合成すべき動作レベル記述や、動作合成により得られたRTL記述等を記憶する。
入力装置15は、CPU11による制御のもと、動作合成に必要なパラメータ等の入力をユーザから受け付け、また、動作合成開始要求等の要求をユーザから受け付ける。入力装置15は、例えば、キーボードやマウスから構成される。
表示装置16は、CPU11による制御のもと、ユーザからのパラメータ等の入力や動作合成開始要求等の要求を受け付けるための画面、動作レベル記述を表示するための画面、レジスタ転送レベル記述を表示するための画面等を表示する。表示装置16は、例えば、液晶ディスプレイ装置から構成される。
出力装置17は、CPU11による制御のもと、動作合成により得られたRTL記述や、RTL記述を論理合成することにより得られた構成情報等を出力する。出力装置17は、例えば、USBポート等の汎用の通信インターフェースや、ディジタル出力ポート等から構成される。
次に、本実施形態に係る動作合成装置100の基本構成について説明する。
図2は、本実施形態に係る動作合成装置100の基本構成を示すブロック図である。図2に示すように、動作合成装置100は、機能的には、受付部20と、追加部30と、動作合成部40と、プロファイル部50と、最適化部60と、を備える。なお、動作合成装置100が生成した回路は、再構成可能ハードウェア70に実装される。すなわち、動作合成装置100は、生成した構成情報を再構成可能ハードウェア70に書き込む。
受付部20は、再構成可能ハードウェア70により実現される電子回路を表す第1の動作レベル記述の入力を受け付ける。受付部20は、CPU11が、ROM12、RAM13及び入力装置15と協働することにより実現される。
追加部30は、第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する。追加部30は、CPU11が、ROM12、RAM13及び入力装置15と協働することにより実現される。
動作合成部40は、与えられた動作レベル記述を動作合成してRTL記述を生成する。動作合成部40は、CPU11が、ROM12及びRAM13と協働することにより実現される。
プロファイル部50は、第2の動作レベル記述を動作合成部40に与えて得られるRTL記述に基づいて再構成可能ハードウェア70に電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させる。プロファイル部50は、CPU11が、ROM12、RAM13、入力装置15及び出力装置17と協働することにより実現される。
最適化部60は、第1の動作レベル記述を動作合成部40に与えるとともに当該プロファイル情報を動作合成部40に最適化情報として指定してRTL記述を得る。最適化部60は、CPU11が、ROM12、RAM13及び入力装置15と協働することにより実現される。
次に、本実施形態に係る動作合成装置100が実行する動作合成処理について図3、図4及び図5を参照して詳細に説明する。
動作合成装置100は、例えば、動作合成の開始要求を入力装置15を介してユーザから受けると、図4のフローチャートに示す動作合成処理を開始する。
まず、受付部20は、ユーザから動作合成対象の動作レベル記述を受け付ける(ステップS101)。具体的には、受付部20は、ユーザから動作合成対象の動作レベル記述の指定を受け付け、ユーザから指定された動作レベル記述(以下、「第1の動作レベル記述」とする。)をハードディスク装置14から読み出してRAM13に記憶する。
次に、追加部30は、収集すべきプロファイル情報の指定をユーザから受け付ける(ステップS102)。収集すべきプロファイル情報は、例えば、状態の実行回数、条件分岐の選択回数、レジスタやメモリに書き込まれる値、入力端子から入力される値、出力端子に出力される値等である。
また、追加部30は、第1の動作レベル記述を動作合成部40に与えて動作合成させることにより、生存区間情報等の情報を取得する(ステップS103)。なお、動作合成部40は、周知の方法により第1の動作レベル記述を動作合成することにより生存区間情報を取得する。
次に、追加部30は、第1の動作レベル記述にプロファイル情報を取得し出力するための記述(以下、「プロファイル記述」とする。)を追加して第2の動作レベル記述を生成する(ステップS104)。追加部30がプロファイル記述を追加する手順については、図5(A)、(B)を用いて説明する。
図5(A)、(B)に示すように、再構成可能ハードウェア70には、多数のPE(Processing Element)が二次元に配置されている。図5(A)、(B)には、プロファイル記述を追加する手順の説明に必要な部分のみを示し、各PE間を接続する配線やスイッチ等の説明に不要な部分については図示を省略する。なお、各PEは、隣接するPEから供給されたデータに対して構成情報により指定された演算を実行し、演算結果を隣接するPEに供給する。また、各PEは、データを保持するレジスタを備えるものとする。
追加部30は、各データの生存区間情報や未使用のPEの情報等を動作合成部40から取得する。具体的には、例えば、追加部30は、図5(A)に示すように、データAがPE11からPE12を経てPE13に供給され、データBがPE31からPE32及びPE33を経てPE34に供給され、PE14、PE21、PE22、PE23及びPE24が未使用である旨の情報を取得する。
ここで、データは、当該データが通過する経路から近い場所で収集することが、時間的な観点及びリソース的な観点から効率がよい。すなわち、収集すべきデータが通過する経路に隣接するPEであって未使用のPEで当該データを収集する。例えば、追加部30は、図5(B)に示すように、PE23でデータAを収集し、PE24でデータBを収集することを決定する。そして、追加部30は、PE23でデータAを収集して所定のタイミングで出力し、PE24でデータBを収集して所定のタイミングで出力するようなプロファイル記述を第1の動作レベル記述に追加する。
次に、プロファイル部50は、RTL記述を取得する(ステップS105)。具体的には、プロファイル部50は、追加部30が生成した第2の動作レベル記述を動作合成部40に引き渡して動作合成させることによりRTL記述を生成させ、生成したRTL記述を取得する。
そして、プロファイル部50は、プロファイル情報を取得し出力する機能を備えた回路(以下、「プロファイル機能付き回路」とする。)が生成可能か否かを判別する(ステップS106)。具体的には、プロファイル部50は、取得したRTL記述に基づいて生成するプロファイル機能付き回路が、再構成可能ハードウェアに実装可能なサイズであるか否かを判別する。
例えば、プロファイル部50は、取得したRTL記述のサイズが所定のサイズ以下であるか否かを判別し、或いは、取得したRTL記述を論理合成することにより構成情報を取得し、この構成情報のサイズが所定のサイズ以下であるか否かを判別する。
プロファイル部50は、プロファイル機能付き回路が生成可能ではないと判別した場合(ステップS106:NO)、再度、ユーザにプロファイル情報を指定するように求め、また、プロファイル情報を変更するように追加部30に指示する(ステップS107)。
追加部30は、プロファイル部50からプロファイル情報の変更を指示されることに応答して、ユーザからプロファイル情報の指定を再度受け付ける(ステップS107)。そして、動作合成装置100は、再度受け付けたプロファイル情報に基づいて上述の処理(ステップS103〜ステップS105)を実行する。動作合成装置100は、プロファイル機能付き回路が生成可能となるまで上述の処理(ステップS103〜ステップS106)を繰り返す。
一方、プロファイル部50は、プロファイル機能付き回路が生成可能であると判別した場合(ステップS106:YES)、プロファイル機能付き回路を生成する(ステップS108)。具体的には、プロファイル部50は、取得したRTL記述を論理合成することにより、プロファイル機能付き回路を再構成可能ハードウェア70に実現するために必要な構成情報を生成する。
そして、プロファイル部50は、プロファイル機能付き回路を動作させる(ステップS109)。具体的には、プロファイル部50は、生成した構成情報を再構成可能ハードウェア70に書き込んだ後、プロファイル機能付き回路を動作させる。
ここで、プロファイル部50は、再構成可能ハードウェア70上に実現されたプロファイル機能付き回路からプロファイル情報を取得する(ステップS110)。プロファイル機能付き回路は、動作中にプロファイル情報を取得し、出力する。プロファイル部50は、プロファイル機能付き回路の動作中は、プロファイル情報を所定のタイミングで取得し続ける。
次に、最適化部60は、プロファイル情報に基づいて最適化情報を生成する(ステップS111)。具体的には、最適化部60は、プロファイル部50が取得したプロファイル情報と、ユーザから指定された重視パラメータ情報と、に基づいて、動作レベル記述から最適化されたRTL記述を生成するために必要な最適化情報を生成する。なお、重視パラメータ情報は、面積、処理サイクル数、遅延、若しくは、消費電力のうち最適化の際に重視するパラメータを指定する情報である。
面積を重視する最適化では、例えば、32ビットの入力を受け付ける回路に対し、入力される値をプロファイル情報として取得する。取得したプロファイル情報から、実際に入力されている値は常に16ビット以下であると分かれば、入力は16ビットであるというのを新たな制約として、面積を削減する最適化が行える。
最後に、最適化部60は、最適化されたRTL記述を取得する(ステップS112)。具体的には、最適化部60は、第1の動作レベル記述を動作合成部40に与えるとともに、生成した最適化情報を動作合成部40に与えてRTL記述を生成させることにより、最適化されたRTL記述を取得する。最適化部60が最適化されたRTL記述を取得すると動作合成処理が完了する。
本実施形態に係る動作合成装置100によれば、プロファイル機能付きの回路を実際に動作させることによりプロファイル情報を取得し、取得したプロファイル情報に基づいて第1の動作レベル記述の動作合成を行う。プロファイル情報に基づいて第1の動作レベル記述を動作合成するため、最適化されたRTL記述を取得することができる。
また、ソフトウェアでの動的コンパイルは関数単位が基本であるが、再構成可能ハードウェアではある状態での入出力となるレジスタを関数引数とみなし、任意の切り口で最適化を実行することができる。
さらに、動作合成ツールと連携し、各リソースの生存区間情報を利用することにより、(1)取得すべきプロファイル情報の削減、(2)回路動作上のホットスポット解析の容易化、を図ることができる。
(変形例)
上述の実施形態では、プロファイル機能付き回路(第2の動作レベル記述を動作合成することにより得られる回路)を動作させることにより得られるプロファイル情報を用いて、第1の動作レベル記述を動作合成する例を示した。しかしながら、プロファイル機能付き回路は、単にプロファイル情報を取得するための回路ではなく、本来実現されるべきアプリケーション機能(演算機能、通信機能等)も備えている。このため、プロファイル機能付き回路を再構成可能ハードウェアに実装した状態で、アプリケーションを実行する構成としてもよい。
この場合、動作合成装置は、プロファイル機能付き回路を動作させることにより得られるプロファイル情報を用いて、第2の動作レベル記述を動作合成する。そして、動作合成装置は、第2の動作レベル記述を動作合成して得られたRTL記述から求めた構成情報を再構成可能ハードウェア70に上書きすることにより、アプリケーションの動作中に最適化された回路に更新することが可能となる。
以下、変形例に係る動作合成装置が実行する動作合成処理について図6及び図7を参照して詳細に説明する。
動作合成装置101は、例えば、動作合成の開始要求を入力装置15を介してユーザから受けると、図7のフローチャートに示す動作合成処理を開始する。
まず、受付部20は、ユーザから動作合成対象の動作レベル記述を受け付ける(ステップS201)。受付部20は、ユーザから動作合成対象の動作レベル記述の指定を受け付け、ユーザから指定された第1の動作レベル記述をハードディスク装置14から読み出してRAM13に記憶する。
次に、追加部30は、第1の動作レベル記述にプロファイル記述を追加して第2の動作レベル記述を生成する(ステップS202)。追加部30は、上述のようにプロファイル指定情報や生存区間情報に基づいてプロファイル記述を追加してもよいし、あらかじめ定められた情報に基づいてプロファイル記述を追加してもよい。
そして、プロファイル部50は、RTL記述を生成する(ステップS203)。具体的には、プロファイル部50は、追加部30が生成した第2の動作レベル記述を動作合成部40に引き渡して動作合成させることによりRTL記述を生成させ、生成したRTL記述を取得する。
ここでは、理解を容易にするため、取得したRTL記述に基づいて生成される回路は、再構成可能ハードウェアに実装可能なサイズであるものとして説明する。
プロファイル部50は、プロファイル機能付き回路を生成する(ステップS204)。具体的には、プロファイル部50は、取得したRTL記述を論理合成することにより、プロファイル機能付き回路を再構成可能ハードウェア70に実現するために必要な構成情報を生成する。
そして、プロファイル部50は、プロファイル機能付き回路を動作させる(ステップS205)。具体的には、プロファイル部50は、生成した構成情報を再構成可能ハードウェア70に書き込んだ後、プロファイル機能付き回路を動作させる。
ここで、プロファイル部50は、再構成可能ハードウェア70上に実現されたプロファイル機能付き回路からプロファイル情報を取得する(ステップS206)。プロファイル機能付き回路は、動作中にプロファイル情報を取得し、出力する。プロファイル部50は、プロファイル機能付き回路の動作中は、プロファイル情報を所定のタイミングで取得し続ける。
次に、最適化部60は、プロファイル情報に基づいて最適化情報を生成する(ステップS207)。具体的には、最適化部60は、プロファイル部50が取得したプロファイル情報に基づいて、最適化されたRTL記述を取得するために必要な最適化情報を生成する。なお、最適化部60は、上述のようにユーザから指定された重視パラメータ情報に基づいて最適化情報を生成してもよい。
そして、最適化部60は、最適化されたRTL記述を取得する(ステップS208)。具体的には、最適化部60は、第2の動作レベル記述を動作合成部40に与えるとともに、生成した最適化情報を動作合成部40に与えてRTL記述を生成させることにより、最適化されたRTL記述を取得する。
次に、プロファイル部50は、プロファイル機能付き回路を再度生成する(ステップS209)。具体的には、プロファイル部50は、最適化されたRTL記述を論理合成することにより、プロファイル機能付き回路を再構成可能ハードウェア70に実現するために必要な構成情報を生成する。
そして、プロファイル部50は、プロファイル機能付き回路を再構成可能ハードウェア70に再度書き込む(ステップS210)。具体的には、プロファイル部50は、生成した構成情報を所定のタイミングで再構成可能ハードウェア70に書き込むことにより、再構成可能ハードウェア70上に実現される回路を更新する。
以後、動作合成装置101は、ステップS206〜ステップS210の処理を繰り返す。
変形例に係る動作合成装置101によれば、プロファイル機能付きの回路を用いてアプリケーションを動作させている間にプロファイル情報を取得し、取得したプロファイル情報に基づいて生成した構成情報を動的に上書きすることができる。このため、再構成可能ハードウェア上に実装された回路を、動作中に最適化された回路に置き換えることができる。
なお、変形例に係る動作合成装置101によれば、プロファイル機能付きの回路を用いてアプリケーションを動作させる。しかしながら、プロファイル機能を実現する回路部分は、アプリケーション動作に使用しないリソースを用いて構成しているためリソースを追加する必要がない。また、プロファイル機能を実現する回路部分は、アプリケーションを実現する回路部分と並行に動作するため、アプリケーション本来の動作に影響を与えることがなく、アプリケーション回路の動作速度を維持することが可能となる。
なお、第1の動作レベル記述、プロファイル記述、第2の動作レベル記述は、C、C++、SystemC、Java(登録商標)などの高級プログラミング言語により記述するのが一般的であるが、動作合成装置を実現するコンピュータが処理しやすいようにした中間表現により記述してもよい。
また、プロファイル記述を高級プログラミング言語により記述するのではなく、レジスタ転送レベル記述を記述するための言語や中間表現により記述することとしても良い。この場合、プロファイル記述は、プロファイル情報を収集してから出力する電子回路を実現するレジスタ転送レベル記述に相当する。
従って、追加部30が出力する第2の動作レベル記述は、第1の動作レベル記述と、レジスタ転送レベル記述によるプロファイル記述と、を組み合わせたものとなる。
そして、動作合成部40は、第2の動作レベル記述が与えられると、まず、その中に含まれる第1の動作レベル記述を動作合成して、レジスタ転送レベル記述を得る。その後に、得られたレジスタ転送レベル記述にプロファイル記述を追加して、その結果を生成の結果としてプロファイル部50に返す。
上記実施形態では、プログラムが、記憶装置に予め記憶されているものとして説明した。しかし、動作合成装置を、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read−Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。
上述のように、本発明によれば、再構成可能ハードウェアにより実現する電子回路を最適化するのに好適な動作合成装置、動作合成方法並びにこれらをコンピュータ上で実現するためのプログラムを提供することができる。
本発明の実施形態に係る動作合成装置の構成を示すブロック図である。 動作合成装置の基本構成を示すブロック図である。 動作合成処理を説明するためのブロック図である。 動作合成処理を示すフローチャートである。 (A)、(B)は、プロファイル記述を追加する手順を説明するための図である。 変形例に係る動作合成装置の構成を示すブロック図である。 変形例に係る動作合成装置の動作合成処理を示すフローチャートである。
符号の説明
11 CPU
12 ROM
13 RAM
14 ハードディスク装置
15 入力装置
16 表示装置
17 出力装置
20 受付部
30 追加部
40 動作合成部
50 プロファイル部
60 最適化部
70 再構成可能ハードウェア
100、101 動作合成装置

Claims (9)

  1. 再構成可能ハードウェアにより実現される電子回路を表す第1の動作レベル記述の入力を受け付ける受付部、
    当該第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する追加部、
    与えられた動作レベル記述を動作合成してレジスタ転送レベル記述を生成する動作合成部、
    当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させるプロファイル部、
    当該第1の動作レベル記述を前記動作合成部に与えるとともに当該プロファイル情報に基づいて生成した最適化情報を前記動作合成部に与えてレジスタ転送レベル記述を得る最適化部、
    を備える、ことを特徴とする動作合成装置。
  2. 請求項1に記載の動作合成装置であって、
    前記動作合成部は、当該第2の動作レベル記述のうち第1の動作レベル記述に基づく電子回路とプロファイル記述に基づく電子回路とが、並行に動作するように動作合成する、
    ことを特徴とする動作合成装置。
  3. 請求項2に記載の動作合成装置であって、
    前記追加部は、ユーザに指定された状態の実行回数、条件分岐の選択回数、レジスタやメモリに書き込まれる値、入力端子から入力される値、出力端子に出力される値をプロファイル情報とし、
    前記最適化部は、面積、処理サイクル数、遅延、若しくは、消費電力のうちユーザに指定されたものを削減するように最適化情報を生成する、
    ことを特徴とする動作合成装置。
  4. 請求項3に記載の動作合成装置であって、
    前記プロファイル部は、当該得られたレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現することができない場合、当該ユーザにプロファイル情報を再度指定するように求め、
    前記追加部は、当該求めに応じて当該ユーザにより再度指定されたプロファイル情報を収集してから出力する動作レベル記述を、当該第1の動作レベル記述に追加する、
    ことを特徴とする動作合成装置。
  5. 請求項1乃至4のいずれか1項に記載の動作合成装置であって、
    前記最適化部は、前記動作合成部に当該第1の動作レベル記述を与えるのにかえて、当該第2の動作レベル記述を与える、
    ことを特徴とする動作合成装置。
  6. 請求項1乃至5のいずれか1項に記載の動作合成装置であって、
    当該第1の動作レベル記述、当該プロファイル記述、当該第2の動作レベル記述は高級プログラミング言語、若しくはその中間表現により記述される、
    ことを特徴とする動作合成装置。
  7. 請求項1乃至5のいずれか1項に記載の動作合成装置であって、
    前記追加部は、当該プロファイル記述として、当該プロファイル情報を収集してから出力する動作レベル記述にかえて、当該プロファイル情報を収集してから出力する電子回路を実現するレジスタ転送レベル記述を追加し、
    前記動作合成部は、当該第2の動作レベル記述が与えられると、当該第1の動作レベル記述を動作合成して得られたレジスタ転送レベル記述に当該プロファイル記述を追加して、レジスタ転送レベル記述を生成する、
    ことを特徴とする動作合成装置。
  8. 受付部、追加部、動作合成部、プロファイル部、最適化部を備える動作合成装置が実行する動作合成方法であって、
    前記受付部が、再構成可能ハードウェアにより実現される電子回路を表す第1の動作レベル記述の入力を受け付ける受付ステップ、
    前記追加部が、当該第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する追加ステップ、
    前記動作合成部が、与えられた動作レベル記述を動作合成してレジスタ転送レベル記述を生成する動作合成ステップ、
    前記プロファイル部が、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させるプロファイルステップ、
    前記最適化部が、当該第1の動作レベル記述を前記動作合成部に与えるとともに当該プロファイル情報に基づいて生成した最適化情報を前記動作合成部に与えてレジスタ転送レベル記述を得る最適化ステップ、
    を備える、ことを特徴とする動作合成方法。
  9. コンピュータを、
    再構成可能ハードウェアにより実現される電子回路を表す第1の動作レベル記述の入力を受け付ける受付部、
    当該第1の動作レベル記述に、プロファイル情報を収集してから出力する動作レベル記述(以下「プロファイル記述」という。)を追加して、第2の動作レベル記述を生成する追加部、
    与えられた動作レベル記述を動作合成してレジスタ転送レベル記述を生成する動作合成部、
    当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述に基づいて当該再構成可能ハードウェアに電子回路を実現し、当該電子回路を動作させて、プロファイル情報を出力させるプロファイル部、
    当該第1の動作レベル記述を前記動作合成部に与えるとともに当該プロファイル情報に基づいて生成した最適化情報を前記動作合成部に与えてレジスタ転送レベル記述を得る最適化部、
    として機能させる、ことを特徴とするプログラム。
JP2008077081A 2008-03-25 2008-03-25 動作合成装置、動作合成方法およびプログラム Expired - Fee Related JP5012611B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008077081A JP5012611B2 (ja) 2008-03-25 2008-03-25 動作合成装置、動作合成方法およびプログラム
US12/409,856 US8516414B2 (en) 2008-03-25 2009-03-24 Behavioral synthesis device, behavioral synthesis method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008077081A JP5012611B2 (ja) 2008-03-25 2008-03-25 動作合成装置、動作合成方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2009230602A JP2009230602A (ja) 2009-10-08
JP5012611B2 true JP5012611B2 (ja) 2012-08-29

Family

ID=41119061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008077081A Expired - Fee Related JP5012611B2 (ja) 2008-03-25 2008-03-25 動作合成装置、動作合成方法およびプログラム

Country Status (2)

Country Link
US (1) US8516414B2 (ja)
JP (1) JP5012611B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407633B2 (en) * 2009-10-26 2013-03-26 International Business Machines Corporation Dynamically reconfigurable self-monitoring circuit
US8185862B2 (en) * 2010-07-13 2012-05-22 Algotochip Corporation Architectural level power-aware optimization and risk mitigation
JP5668404B2 (ja) * 2010-10-08 2015-02-12 日本電気株式会社 構成情報管理装置、その方法及びそのプログラム並びに動作合成装置
JP5843449B2 (ja) * 2011-02-16 2016-01-13 キヤノン株式会社 電子回路最適化方法、電子回路最適化装置、及びプログラム
US8751710B2 (en) 2012-05-08 2014-06-10 Entegra Technologies, Inc. Reconfigurable modular computing device
US10609672B2 (en) 2017-07-28 2020-03-31 Bank Of America Corporation Network device navigation using a distributed wireless network
US11675948B2 (en) * 2017-09-29 2023-06-13 Intel Corporation Methods and apparatus for profile-guided optimization of integrated circuits

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956497A (en) * 1997-02-26 1999-09-21 Advanced Micro Devices, Inc. Methodology for designing an integrated circuit using a reduced cell library for preliminary synthesis
US6298472B1 (en) * 1999-05-07 2001-10-02 Chameleon Systems, Inc. Behavioral silicon construct architecture and mapping
US6438735B1 (en) * 1999-05-17 2002-08-20 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US6823497B2 (en) * 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US6701501B2 (en) * 2000-10-16 2004-03-02 Simon Joshua Waters Structured algorithmic programming language approach to system design
JP2002288257A (ja) * 2001-03-23 2002-10-04 Matsushita Electric Ind Co Ltd 消費電力評価方法および装置
US6817007B2 (en) * 2001-04-20 2004-11-09 David Gaines Burnette Interactive loop configuration in a behavioral synthesis tool
JP3980957B2 (ja) * 2002-07-24 2007-09-26 株式会社ルネサステクノロジ 消費電力算出方法
JP3987782B2 (ja) 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP3987783B2 (ja) 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US7257802B2 (en) * 2003-12-29 2007-08-14 Mentor Graphics Corporation Method and system for hardware accelerated verification of digital circuit design and its testbench
JP2005293448A (ja) * 2004-04-05 2005-10-20 Renesas Technology Corp データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法
JP4599266B2 (ja) * 2005-09-27 2010-12-15 株式会社東芝 シミュレーション装置及びシミュレーション方法
JP2007233842A (ja) * 2006-03-02 2007-09-13 Matsushita Electric Ind Co Ltd リセット動作検証回路の生成方法
JP4706855B2 (ja) * 2006-03-31 2011-06-22 日本電気株式会社 動作合成装置及び回路設計支援方法
JP2006202330A (ja) 2006-03-31 2006-08-03 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体

Also Published As

Publication number Publication date
US20090249262A1 (en) 2009-10-01
US8516414B2 (en) 2013-08-20
JP2009230602A (ja) 2009-10-08

Similar Documents

Publication Publication Date Title
JP5012611B2 (ja) 動作合成装置、動作合成方法およびプログラム
Canis et al. LegUp: An open-source high-level synthesis tool for FPGA-based processor/accelerator systems
Canis et al. LegUp: high-level synthesis for FPGA-based processor/accelerator systems
WO2011116478A1 (en) Method of developing application for reconfigurable computing system
Cardoso et al. Compilation for FPGA-based reconfigurable hardware
CN112035397B (zh) 包括fpga的电子系统及其操作方法
Makni et al. HAPE: A high-level area-power estimation framework for FPGA-based accelerators
Touiza et al. A novel methodology for accelerating bitstream relocation in partially reconfigurable systems
JP5668404B2 (ja) 構成情報管理装置、その方法及びそのプログラム並びに動作合成装置
Hartmann et al. Still image processing on coarse-grained reconfigurable array architectures
JP5228546B2 (ja) 動作合成装置、および、プログラム
JP2005293448A (ja) データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法
Bazargan et al. Integrating scheduling and physical design into a coherent compilation cycle for reconfigurable computing architectures
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
Bensalem et al. In-FPGA instrumentation framework for OpenCL-based designs
JP2018124877A (ja) コード生成装置、コード生成方法、およびコード生成プログラム
EP2336883A1 (en) Programming system in multi-core, and method and program of the same
JP5071189B2 (ja) プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム
JP5267376B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
US6961839B2 (en) Generation of native code to enable page table access
Mohanty et al. A model-based extensible framework for efficient application design using FPGA
JP2004086656A (ja) 情報処理装置、その情報処理方法
JP5211776B2 (ja) 動作合成装置、動作合成方法及びプログラム
JP4764687B2 (ja) 設計支援システム及び情報処理方法
Belwal et al. A study of memory access patterns as an indicator of performance in high-level synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120417

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

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

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5012611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees