JP5267376B2 - 動作合成装置、動作合成方法、ならびに、プログラム - Google Patents

動作合成装置、動作合成方法、ならびに、プログラム Download PDF

Info

Publication number
JP5267376B2
JP5267376B2 JP2009184269A JP2009184269A JP5267376B2 JP 5267376 B2 JP5267376 B2 JP 5267376B2 JP 2009184269 A JP2009184269 A JP 2009184269A JP 2009184269 A JP2009184269 A JP 2009184269A JP 5267376 B2 JP5267376 B2 JP 5267376B2
Authority
JP
Japan
Prior art keywords
level description
unit
behavioral synthesis
intermediate level
circuit
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.)
Active
Application number
JP2009184269A
Other languages
English (en)
Other versions
JP2011039636A (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 JP2009184269A priority Critical patent/JP5267376B2/ja
Publication of JP2011039636A publication Critical patent/JP2011039636A/ja
Application granted granted Critical
Publication of JP5267376B2 publication Critical patent/JP5267376B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、動作レベル記述により表される演算を適切にグループ化して、動作合成するのに好適な動作合成装置、動作合成方法、ならびに、これらをコンピュータ上で実現するためのプログラムに関する。
所望のシステムの回路機能の全てを1つのチップで実現するLSI(Large Scale Integration)が知られている。このようなLSIは、システムLSIあるいはSOC(System On Chip)と呼ばれる。近年、半導体製造技術の向上に伴って、システムLSIに集積できるゲート数が飛躍的に増加し、システムLSIの処理能力も飛躍的に向上している。このため、システムLSIは、画像処理、暗号化処理、復号処理、および、フィルタ処理など多彩な処理に用いられている。
このようなシステムLSIの設計を支援するツールとして、動作合成装置が知られている。動作合成装置は、システムLSIに実装される回路を動作レベルで表現する動作レベル記述を動作合成することにより、当該回路をレジスタ転送レベルで表現するレジスタ転送レベル記述(以下「RTレベル記述」という。)を生成する装置である。具体的には、動作合成装置は、言語レベル最適化工程、スケジューリング工程、リソースアロケーション工程、バインディング工程、その他の最適化工程などを実行して、動作レベル記述をRTレベル記述に変換する。
ところで、スケジューリング工程においては、動作レベル記述により表現されている処理とデータの流れを表現するCDFG(Control Data Flow Graph)が生成される。CDFGは、一般的には、加算、減算、乗算、除算などの基本演算の組み合わせにより表現される。しかしながら、基本演算の組み合わせにより表現されたCDFGに基づいて生成された回路は、加算器、減算器、乗算器、除算器などの基本演算器により実現されるため、動作速度が遅いことが一般的である。
このため、複数の基本演算を組み合わせた複合演算を用いてCDFGを表現し、生成される回路が当該複合演算を実現する複合演算器を含むようにして、当該回路の動作速度を向上させる技術が望まれている。かかる技術の一例として、特許文献1には、CDFGから、グループ化すべき演算の組み合わせを抽出し、抽出した演算の組み合わせをグループ化して、当該演算の組み合わせを複合演算により表現する論理回路設計支援システムが開示されている。特許文献1に開示されている論理回路設計支援システムは、複合演算器の個数、複合演算器の回路構成、ならびに、演算に対する優先度などの、抽出すべき演算の組み合わせを特定するための情報の入力を設計者から受け付ける。従って、設計者は、動作レベル記述、動作合成方法、ならびに、動作合成における制約条件などを考慮して、論理回路設計支援システムに入力すべき情報を決定する必要がある。
特許第3602697号公報
しかしながら、設計者が、抽出すべき演算の組み合わせを特定するための情報を決定することは、容易なことではなかった。このため、複合演算により高速な演算を可能とする回路を表現するRTレベル記述を、自動で生成することが可能な動作合成装置が望まれている。
本発明は、上記問題に鑑みてなされたものであり、動作レベル記述により表される演算を適切にグループ化して、動作合成するのに好適な動作合成装置、動作合成方法、ならびに、これらをコンピュータ上で実現するためのプログラムを提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係る動作合成装置は、
半導体集積回路上に実装される回路を動作レベルで記述する動作レベル記述を、当該回路をレジスタ転送レベルで記述するレジスタ転送レベル記述に変換する動作合成装置であって、
動作レベル記述の入力を受け付ける受付部と、
前記受付部により受け付けられた動作レベル記述により表される複数の演算処理と当該複数の演算処理間で引き渡されるデータの流れとが記述された中間レベル記述を生成する生成部と、
前記生成部により生成された中間レベル記述に、当該中間レベル記述に記述されている複数の演算処理のそれぞれが実行されるタイミングを示すタイミング情報を付加する付加部と、
前記付加部によりタイミング情報が付加された中間レベル記述に記述されている複数の演算処理から、同じタイミングで実行される複数の演算処理を抽出する抽出部と、
前記付加部によりタイミング情報が付加された中間レベル記述に記述されている、前記抽出部により抽出された複数の演算処理を、当該複数の演算処理を1つの演算処理により実現する複合演算処理に置換する置換部と、
レジスタ転送レベル記述に記述可能な回路構成要素を表すライブラリ情報に基づいて、前記置換部により置換された中間レベル記述を、レジスタ転送レベル記述に変換する変換部と、を備える、
ことを特徴とする。
上記目的を達成するために、本発明の第2の観点に係る動作合成方法は、
半導体集積回路上に実装される回路を動作レベルで記述する動作レベル記述を、当該回路をレジスタ転送レベルで記述するレジスタ転送レベル記述に変換する動作合成装置が実行する動作合成方法であって、
前記動作合成装置は、受付部と、生成部と、付加部と、抽出部と、置換部と、変換部とを備え、
前記受付部が、動作レベル記述の入力を受け付ける受付ステップと、
前記生成部が、前記受付部により受け付けられた動作レベル記述により表される複数の演算処理と当該複数の演算処理間で引き渡されるデータの流れとが記述された中間レベル記述を生成する生成ステップと、
前記付加部が、前記生成部により生成された中間レベル記述に、当該中間レベル記述に記述されている複数の演算処理のそれぞれが実行されるタイミングを示すタイミング情報を付加する付加ステップと、
前記抽出部が、前記付加部によりタイミング情報が付加された中間レベル記述に記述されている複数の演算処理から、同じタイミングで実行される複数の演算処理を抽出する抽出ステップと、
前記置換部が、前記付加部によりタイミング情報が付加された中間レベル記述に記述されている、前記抽出部により抽出された複数の演算処理を、当該複数の演算処理を1つの演算処理により実現する複合演算処理に置換する置換ステップと、
前記変換部が、レジスタ転送レベル記述に記述可能な回路構成要素を表すライブラリ情報に基づいて、前記置換部により置換された中間レベル記述を、レジスタ転送レベル記述に変換する変換ステップと、を備える、
ことを特徴とする。
上記目的を達成するために、本発明の第3の観点に係るプログラムは、
コンピュータを、
半導体集積回路上に実装される回路を動作レベルで記述する動作レベル記述を、当該回路をレジスタ転送レベルで記述するレジスタ転送レベル記述に変換する動作合成装置として機能させるためのプログラムであって、
前記コンピュータを、
動作レベル記述の入力を受け付ける受付部、
前記受付部により受け付けられた動作レベル記述により表される複数の演算処理と当該複数の演算処理間で引き渡されるデータの流れとが記述された中間レベル記述を生成する生成部、
前記生成部により生成された中間レベル記述に、当該中間レベル記述に記述されている複数の演算処理のそれぞれが実行されるタイミングを示すタイミング情報を付加する付加部、
前記付加部によりタイミング情報が付加された中間レベル記述に記述されている複数の演算処理から、同じタイミングで実行される複数の演算処理を抽出する抽出部、
前記付加部によりタイミング情報が付加された中間レベル記述に記述されている、前記抽出部により抽出された複数の演算処理を、当該複数の演算処理を1つの演算処理により実現する複合演算処理に置換する置換部、
レジスタ転送レベル記述に記述可能な回路構成要素を表すライブラリ情報に基づいて、前記置換部により置換された中間レベル記述を、レジスタ転送レベル記述に変換する変換部、として機能させる、
ことを特徴とする。
本発明によれば、動作レベル記述により表される演算を適切にグループ化して、動作合成するのに好適な動作合成装置、動作合成方法、ならびに、これらをコンピュータ上で実現するためのプログラムを提供することができる。
本発明の第1乃至3の実施形態に係る動作合成装置の構成を示すブロック図である。 本発明の第1の実施形態に係る動作合成装置が備える機能を説明するためのブロック図である。 動作レベル記述を示す図である。 ライブラリ情報を説明するための図である。 本発明の第1の実施形態に係る動作合成装置が実行する動作合成処理を示すフローチャートである。 演算ノードの実行タイミングが決定される前のCDFG(Control Data Flow Graph)を示す図である。 演算ノードの実行タイミングが決定された後のCDFGを示す図である。 演算ノードがグループ化された後のCDFGを示す図である。 本発明の第2の実施形態に係る動作合成装置が備える機能を説明するためのブロック図である。 本発明の第2の実施形態に係る動作合成装置が実行するライブラリ情報生成処理を示すフローチャートである。 演算ノードの実行タイミングが決定された後のCDFGを示す図である。 演算ノードがグループ化された後のCDFGを示す図である。 生成されたライブラリ情報を説明するための図である。 本発明の第3の実施形態に係る動作合成装置が備える機能を説明するためのブロック図である。 本発明の第3の実施形態に係る動作合成装置が実行するライブラリ情報更新処理を示すフローチャートである。 ライブラリ情報により表される演算器のRTレベル記述を示す図である。 演算器の面積と遅延時間とが追加されたライブラリ情報を説明するための図である。
以下、本発明の実施形態に係る動作合成装置について図面を参照して説明する。ここで、動作合成装置は、動作レベルで半導体集積回路等の回路を表現する記述(以下「動作レベル記述」という。)を、合成制約に基づいて動作合成することにより、当該回路をレジスタ転送レベルで表現するレジスタ転送レベル記述(以下「RTレベル記述」という。)を生成する。
(第1の実施形態)
まず、本発明の第1の実施形態に係る動作合成装置100について説明する。
図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全体の動作を制御する。CPU11は、各構成要素とバスを介して接続され、制御信号やデータのやりとりをする。
ROM12は、電源投入直後に実行されるIPL(Initial Program Loader)を記憶する。IPLが実行された後、CPU11は、ハードディスク装置14に記憶されたプログラムをRAM13に読み出して実行する。
RAM13は、データやプログラムを一時的に記憶する。RAM13は、ハードディスク装置14から読み出されたプログラムや、動作合成処理に必要なデータ等を一時記憶する。
ハードディスク装置14は、CPU11により実行されるプログラムを記憶する。また、ハードディスク装置14は、動作レベル記述や合成制約なども記憶する。
入力装置15は、CPU11による制御のもと、動作レベル記述や合成制約等の入力をユーザから受け付け、また、動作合成処理の開始要求等の要求をユーザから受け付ける。入力装置15は、例えば、キーボードやマウスから構成される。
表示装置16は、CPU11による制御のもと、動作レベル記述を示す画面、合成制約を示す画面などを表示する。表示装置16は、例えば、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などから構成される。
出力装置17は、CPU11による制御のもと、ハードディスク装置14に記憶されている動作レベル記述やRTレベル記述などを、適宜、動作合成装置100の外部の装置などに出力する。出力装置17は、例えば、フレキシブルディスクドライブ、ネットワークカード、USB(Universal Serial Bus)ポートなどにより構成される。
次に、本実施形態に係る動作合成装置100が備える機能について説明する。
図2は、本実施形態に係る動作合成装置100が備える機能を説明するためのブロック図である。図2に示すように、動作合成装置100は、機能的には、入力部10と、記憶部20と、処理部30と、出力部40とを備える。
入力部10は、動作合成を行うことを指示する情報や動作レベル記述などをユーザから受け付け、処理部30に供給する。入力部10は、合成制約情報など記憶部20に記憶されるデータを受け付けて、処理部30に供給してもよい。なお、処理部30に供給されたデータは、適宜、記憶部20に記憶される。入力部10は、例えば、入力装置15により構成される。
記憶部20は、処理部30が実行する動作プログラムを記憶する他、本発明を実現するために必要な種々のデータを記憶する。本実施形態では、動作レベル記述記憶領域21、ライブラリ情報記憶領域22、合成制約記憶領域23、中間レベル記述記憶領域24、RTレベル記述記憶領域25が記憶部20内に設けられ、各記憶領域に所定のデータが格納される。記憶部20は、例えば、ハードディスク装置14により構成される。
動作レベル記述記憶領域21は、動作レベル記述を記憶する領域である。動作レベル記述は、ハードウェア記述言語やプログラム言語により表現される。ハードウェア記述言語は、例えば、Verilog−HDL(Verilog Hardware Discription Language)、VHDL(Very High Speed Hardware Discription Language)、SystemVerilogである。プログラム言語は、例えば、C、C++、C#、SystemC、SpecC、JAVA(登録商標)、Perl、Scheme、Lispである。動作レベル記述は、C、C++、あるいは、JAVA(登録商標)に、回路を実現するための拡張が行われた言語で表現されてもよい。動作レベル記述は、例えば、設計者によって準備される。図3に、SystemCで記述されている動作レベル記述の例を示す。
図3は、ディジタル信号処理などで頻繁に実行される典型的な処理が記述された動作レベル記述を示す。関数funcの処理は、配列変数coeffと配列変数aryの各要素を掛け合わせたものを全て足し合わせ、その結果を関数の戻り値として返す処理である。
ライブラリ情報記憶領域22には、演算器、メモリ、入出力端子、マルチプレクサ、レジスタ、デコーダ、論理演算、定数テーブル等の回路構成要素に関する情報がライブラリ情報として登録されている。半導体集積回路のRTレベル記述は、ライブラリ情報記憶領域22に登録されている回路構成要素で構成する必要がある。
図4に、ライブラリ情報記憶領域22に格納されているライブラリ情報の一例を模式的に示す。図4には、ID1〜3によりそれぞれ特定される3つの回路構成要素が示されている。ID1により特定される回路構成要素は、面積が200で演算に要する時間(以下「遅延時間」という。)が100であって、ビット幅が32ビットの入力データaとビット幅が32ビットの入力データbとを加算する加算器である。ID2により特定される回路構成要素は、面積が500で遅延時間が200であって、ビット幅が32ビットの入力データaとビット幅が32ビットの入力データbとを乗算する乗算器である。ID3により特定される回路構成要素は、面積が550で遅延時間が250であって、ビット幅が32ビットの入力データaと、ビット幅が32ビットの入力データbとビット幅が32ビットの入力データcとを乗算して得られた値とを加算する乗加算器である。
合成制約記憶領域23は、動作合成処理でRTレベル記述を生成する際に必要となる制約を示す合成制約情報を記憶する領域である。合成制約情報は、例えば、各回路構成要素の使用可能個数、回路全体の面積、回路の動作周波数などを指定する情報である。
なお、上述した、動作レベル記述、ライブラリ情報、および、合成制約情報は、動作合成処理を行う前に回路設計者等によって事前に作成されて各領域に格納されている必要がある。
中間レベル記述記憶領域24は、動作合成の各工程(言語レベル最適化工程、スケジューリング工程、リソースアロケーション工程、バインディング工程、その他の最適化工程等)で生成される記述(以下「中間レベル記述」という。)を記憶する領域である。例えば、スケジューリング工程では、CDFG(Control Data Flow Graph)が中間レベル記述として作成され、中間レベル記述記憶領域24に記憶される。
RTレベル記述記憶領域25は、動作合成処理によって、動作レベル記述から最終的に生成されるRTレベル記述を記憶する領域である。
処理部30は、動作合成装置100の動作を制御する。なお、処理部30は、CPU11が、ROM12及びRAM13と協働することにより実現される。従って、処理部30が備える各部は、それぞれ、CPU11が、ROM12及びRAM13と協働することにより実現される。処理部30は、機能的には、動作合成部31と、グループ化部32とを備える。
動作合成部31は、ライブラリ情報記憶領域22に格納されたライブラリ情報、および、合成制約記憶領域23に格納された合成制約情報に基づいて、動作レベル記述記憶領域21に記憶されている動作レベル記述からRTレベル記述を合成する動作合成処理を行う。生成されたRTレベル記述は、RTレベル記述記憶領域25に格納される。なお、この動作合成処理には、言語レベル最適化工程、スケジューリング工程、リソースアロケーション工程、バインディング工程、その他の最適化工程等の工程が含まれる。
言語レベル最適化工程は、動作レベル記述に対して、関数の呼出の解消や、ループのアンロールや、不要コードの削除などの言語レベルでの最適化を行う工程である。
スケジューリング工程は、最適化された動作レベル記述から、制御とデータの流れを抽出し、どのタイミング(または状態)でどのような処理や演算等を実行すべきかを決定する工程である。
リソースアロケーション工程は、回路構成要素の選択を行う工程である。
バインディング工程は、スケジューリングされた動作レベル記述内の各処理に対して、必要なハードウェアリソース(演算器などの回路素子、および、レジスタ等)を割り付ける工程である。
その他の最適化工程は、データパスの最適化等の処理を行う工程である。
なお、動作合成部31は、上述した各工程(言語レベル最適化工程、スケジューリング工程、バインディング工程、その他の最適化工程)で作成される中間レベル記述を、中間レベル記述記憶領域24に記憶する。また、動作合成部31は、上述した各工程を経て、最終的に、RTレベル記述を作成して、RTレベル記述記憶領域25に記憶する。
グループ化部32は、スケジューリング工程により生成された中間レベル記述に後述するグループ化処理を施す。具体的には、グループ化部32は、当該中間レベル記述を中間レベル記述記憶領域24から読み出して解析することにより、当該中間レベル記述に含まれる演算処理を、その実行タイミング毎に分類する。そして、グループ化部32は、当該分類ごとにグループ化可能な演算の組み合わせを抽出する。本実施形態においては、ある演算の組み合わせを1つの回路構成要素によって実現することが可能な回路構成要素がライブラリ情報記憶領域22に記憶されている場合に、当該演算の組み合わせはグループ化可能となる。そして、グループ化部32は、抽出されたグループ化可能な演算の組み合わせをグループ化する。具体的には、グループ化部32は、抽出されたグループ化可能な演算の組み合わせを、複合演算に置換する。なお、リソースアロケーション工程によって、当該複合演算を実行する回路構成要素として、当該複合演算を実行する1つの複合演算器が選択される。動作合成部31は、グループ化部32によりグループ化処理が施された中間レベル記述に対して、リソースアロケーション工程ならびにバインディング工程を実行する。
出力部40は、合成制約記憶領域23に記憶されている合成制約情報やRTレベル記述記憶領域25に記憶されているRTレベル記述などを、適宜、動作合成装置100の外部の装置などに出力する。出力部40は、例えば、出力装置17により構成される。
次に、図5に示すフローチャートを用いて、動作合成装置100が実行する動作合成処理について説明する。動作合成装置100は、設計者などにより、動作合成処理の開始を要求する操作入力を受け付けると、図5に示す動作合成処理を開始する。
まず、CPU11は、言語レベル最適化を実行する(ステップS101)。具体的には、CPU11は、ハードディスク装置14に記憶されている動作レベル記述をRAM13に読み出して、当該動作レベル記述を言語レベルで最適化する。CPU11は、最適化された動作レベル記述を、ハードディスク装置14に記憶する。
CPU11は、ステップS101の処理を終了すると、スケジューリングを実行する(ステップS102)。具体的には、まず、CPU11は、ハードディスク装置14に記憶されている動作レベル記述と合成制約情報とをRAM13に読み出す。ここで、図3に示す動作レベル記述が読み出されるものとする。また、図3に示す動作レベル記述の配列aryが1ポートのメモリにより実現することを指定する合成制約情報が読み出されるものとする。CPU11は、当該合成制約情報により指定される合成制約を満たすように、演算、入力、出力、配列読み込み、配列書き込みを状態に割り当てる。そして、CPU11は、当該動作レベル記述から制御とデータの流れとを抽出し、CDFGと呼ばれる中間レベル記述を生成する。図6に、生成されたCDFGを示す。図6には、配列ary、coeffの各要素にデータが入力されて、演算処理された結果がsumに格納される例を示している。演算処理は、n0からn16の演算ノードで表現され、演算ノード間で引き渡されるデータの流れは矢印により表現されている。
そして、CPU11は、合成制約情報により指定される合成制約を満たすように、中間レベル記述内の各処理の実行タイミングを決定し、中間レベル記述を更新する。すなわち、CPU11は、CDFGに表されている各演算ノードがどのタイミングで処理を実行すべきかを表す中間レベル記述を生成する。
図7に、更新された中間レベル記述(演算処理の実行タイミングが決定済みのCDFG)を示す。ここで、合成制約情報は、配列aryを1ポートのメモリで実現することを指定している。このため、配列aryからのデータの読み込みは、各状態(STEP)において1回しかできない。図7のSTEP1からSTEP9は、処理の実行状態を示している。そして、配列aryに対するデータの読み込みは、それぞれの状態で1回となっている。このメモリの読み込みのタイミングが決定された後に、各演算ノードの実行タイミングが決定される。例えば、演算ノードn0による加算処理は、STEP1のタイミングで実行されることを示している。また、STEP2で演算ノードn1と演算ノードn9とによる演算処理が実行され、STEP3で演算ノードn2と演算ノードn10とによる演算処理が実行されることを示している。CPU11は、スケジューリング済みのCDFG(中間レベル記述)を、ハードディスク装置14に記憶する。
CPU11は、ステップS102の処理を終了すると、演算ノードの組みを選択する(ステップS103)。つまり、CPU11は、状態ごとに、グループ化可能な演算ノードの候補を抽出する。具体的には、CPU11は、ハードディスク装置14に記憶されているCDFGをRAM13に読み出す。そして、CPU11は、同じステップ(同じ状態)において実行される演算ノードの組みを選択する。図7に示す例では、STEP2で実行される演算ノードn1と演算ノードn9との組が選択される。図8は、各状態においてグループ化候補として抽出される演算ノードが、グループ化可能な演算ノードの候補のうち、演算ノード数が最大になるようにグループ化候補を決めた場合の中間レベル記述を示している。
CPU11は、ステップS103の処理を終了すると、選択された演算ノードの組がグループ化可能であるか否かを判別する(ステップS104)。具体的には、まず、CPU11は、ハードディスク装置14に記憶されているライブラリ情報をRAM13に読み出す。そして、ライブラリ情報により表される回路構成要素のうち、ステップS103で選択された演算ノードの組を1つの回路構成要素で実行可能なものがあるか否かを判別する。つまり、グループ化ノードと同じ種類の演算器が登録されている場合には、グループ化可能であると判別される。例えば、演算ノードn1と演算ノードn9との組により実行される演算は、(32ビット)+(32ビット)×(32ビット)である。そして、この演算を実行する演算ノードn17はID3に登録されている。このため、演算ノードn1と演算ノードn9との組は、グループ化可能であると判別される。このように、CPU11は、グループ化候補の演算ノードとライブラリ情報から最終的にグループ化する演算ノードを決定する。
CPU11は、グループ化可能であると判別すると(ステップS104:YES)、選択された演算ノードの組をグループ化する(ステップS105)。具体的には、CPU11は、図7に示す演算ノードn1と演算ノードn9とを、図8に示す演算ノードn17に置き換える(グループ化する)。
CPU11は、グループ化可能でないと判別(ステップS104:NO)、もしくは、ステップS105の処理を終了すると、未選択の演算ノードの組み合わせがあるか否かを判別する(ステップS106)。CPU11は、未選択の演算ノードの組み合わせがあると判別すると(ステップS106:YES)、ステップS103に処理を戻す。
一方、CPU11は、未選択の演算ノードの組み合わせがないと判別すると(ステップS106:NO)、演算ノードがグループ化済みであるCDFGに基づいて、RTレベル記述を生成する(ステップS107)。具体的には、まず、CPU11は、ハードディスク装置14に記憶されている中間レベル記述(CDFG)と合成制約情報とをRAM13に読み出す。そして、CPU11は、合成制約情報ならびにライブラリ情報に基づいて、中間レベル記述にリソースアロケーション、バインディングならびにその他の最適化処理を施すことにより、RTレベル記述を生成する。そして、CPU11は、生成したRTレベル記述をハードディスク装置14に記憶する。
CPU11は、ステップS107の処理を終了すると、動作合成処理を終了する。
本実施形態に係る動作合成装置100によれば、グループ化部32によりCDFG中の複数の演算ノードが単一の複合演算ノードに置換される。このため、生成される回路の面積や動作速度などの性能の向上が期待できる。また、グループ化部32は、実行タイミングが決定済みの演算ノードを表すCDFGに対して演算ノードのグループ化処理を実行する。より詳細には、グループ化される演算ノードの組の候補は、実行タイミングが同じ複数の演算ノードから抽出される。つまり、実行タイミングが決定された中間レベル記述に対して、状態ごとにグループ化する演算ノードが決定される。このため、グループ化の候補となる演算ノードの組み合わせが増大することが抑制されることが期待される。従って、グループ化対象の演算ノードの組を特定する情報を設計者から供給されなくても、演算ノードのグループ化処理が短時間で実行されるとともに、適切にグループ化されることが期待される。
これに対し、例えば、特許文献1に開示されている設計支援システムは、図6に示す中間レベル記述をもとにグループ化するノードを決定する。従って、特許文献1に開示されている設計支援システムによれば、グループ化候補のノードは、例えば、(n0,n9)、(n0,n1,n9)、(n0,n9,n10)、(n0,n1,n2,n9,n10)、(n0,n1,n2,n9,n10,n11)など無数に考えられる。そこで、特許文献1に開示されている設計支援システムは、予め複合演算器の演算数や回路構成や演算に対する優先度の指定を予め設定者から受け付けて、グループ化するノードを特定していた。しかし、一般的に、動作レベル記述、動作合成方法、動作合成の制約条件により、適切な指定が異なるものである。このため、設計者が適切にこれらを指定することは困難であった。
(第2の実施形態)
次に、本発明の第2の実施形態に係る動作合成装置110について説明する。なお、第1の実施形態に係る動作合成装置100と同様の構成ならびに処理については説明を省略する。第2の実施形態に係る動作合成装置110は、物理的には、図1に示す第1の実施形態に係る動作合成装置100の構成と同様の構成である。
図9は、本実施形態に係る動作合成装置110が備える機能を説明するためのブロック図である。図9に示すように、動作合成装置110は、機能的には、入力部10と、記憶部27と、処理部36と、出力部40とを備える。動作合成装置110は、記憶部20の代わりに記憶部27を備えること、ならびに、処理部30の代わりに処理部36を備えること以外は、動作合成装置100と同様の構成である。また、記憶部27は、ライブラリ生成指示情報記憶領域26をさらに備えること以外は、記憶部20と同様の構成である。さらに、処理部36は、ライブラリ情報生成部33をさらに備えること以外は、処理部30と同様の構成である。従って、以下では、主に、ライブラリ生成指示情報記憶領域26ならびにライブラリ情報生成部33について説明する。
ライブラリ生成指示情報記憶領域26は、ライブラリの生成方法を指定するライブラリ生成指示情報を記憶する領域である。ライブラリ生成指示情報は、後述するライブラリ情報生成部33がライブラリを生成する際に、(a)ライブラリ情報記憶領域22に格納されている回路構成要素の情報を更新する、もしくは、(b)ライブラリ情報記憶領域22に格納されている回路構成要素以外の回路構成要素を表すライブラリ情報を生成する、などを指示する情報である。ライブラリ生成指示情報は、ライブラリ情報生成部33によるライブラリの生成処理に先立って、回路設計者などによって予め記憶されている必要がある。
ライブラリ情報生成部33は、グループ化部32により演算ノードがグループ化されることにより生成された中間レベル記述と、ライブラリ生成指示情報記憶領域26に記憶されているライブラリ生成指示情報とに基づいて、動作合成用のライブラリ情報を生成する。生成された動作合成用のライブラリ情報は、ライブラリ情報記憶領域22に記憶される。
次に、図10に示すフローチャートを用いて、動作合成装置110が実行するライブラリ情報生成処理について説明する。動作合成装置110は、設計者などにより、ライブラリ情報生成処理の開始を要求する操作入力を受け付けると、図10に示すライブラリ情報生成処理を開始する。ステップS201からステップS203までの処理は、図5に示すステップS101からステップS103までの処理と同様であるため説明を省略する。
CPU11は、ステップS203の処理を終了すると、ステップS203で選択された演算ノードの組をグループ化する(ステップS204)。従って、当該演算ノードの組により表される複合演算を単独で実行可能な回路構成要素を示す情報が、ライブラリ情報記憶領域22に記憶されているか否かにかかわらず、当該演算ノードの組がグループ化される。
CPU11は、ステップS204の処理を終了すると、未選択の演算ノードの組み合わせがあるか否かを判別する(ステップS205)。CPU11は、未選択の演算ノードの組み合わせがあると判別すると(ステップS205:YES)、ステップS203に処理を戻す。一方、CPU11は、未選択の演算ノードの組み合わせがないと判別すると(ステップS205:NO)、ライブラリ情報を生成する(ステップS206)。
具体的には、CPU11は、演算ノードがグループ化済みの中間レベル記述と、ライブラリ生成指示情報記憶領域26に記憶されているライブラリ生成指示情報とに基づいて、ライブラリ情報を生成する。生成された動作合成用のライブラリ情報は、ライブラリ情報記憶領域22に記憶される。
ここで、ライブラリ情報がどのように生成されるかについて説明する。
図11は、ステップS202により生成された中間レベル記述を示す図である。図11には、各入力変数a0からa2、b0からb2、c0、c1、d0、d1、中間変数t0、t1、は、それぞれ8ビット変数であり、各変数が加算処理される例を示している。
図12は、グループ化部32が状態ごとにグループ化可能な演算ノードの候補を抽出した結果を模式的に表す図である。図12には、演算ノードn1、n2、n3はグループ化候補の演算ノードn10として、演算ノードn4、n5、n6はグループ化候補の演算ノードn11として、演算ノードn7、n8、n9はグループ化候補の演算ノードn12として抽出されていることが示されている。本実施形態においては、グループ化候補の演算ノードがそのままグループ化される。従って、図12に示す中間レベル記述が、演算ノードがグループ化された中間レベル記述となる。
CPU11は、図12に示す中間レベル記述に基づいて、ライブラリ情報を生成する。すなわち、CPU11は、中間レベル記述に含まれる各演算ノードの演算の種類を解析し、解析結果に基づいてライブラリ情報を生成する。図13は、図12に示す中間レベル記述に基づいて生成されるライブラリ情報を示す図である。ID1の演算器は、演算ノードn10とn12とに対応するライブラリ情報であり、ID2の演算器は、演算ノードn11に対応するライブラリ情報である。
CPU11は、ステップS206の処理を終了すると、ライブラリ情報生成処理を終了する。
一般に、動作レベル記述や、動作合成オプションなどにより、必要な動作合成用のライブラリ情報が変わる。このため、動作合成用のライブラリ情報を適切に設計者が用意することは困難である。しかしながら、本実施形態に係る動作合成装置110によれば、動作合成用のライブラリ情報を生成することが可能となるため、このような問題が解消される。
本実施形態に係る動作合成装置110が実行するライブラリ情報生成処理で特徴的なことは、機能的には等価である4個の変数を加算する演算器について、加算の構成(演算の優先順序)が異なるものは、異なる種類の演算器としてライブラリ情報が生成されることである。すなわち、複合演算器の回路構成を、ライブラリ情報に含めていることになる。これは、RTレベル回路の実現方法にも依存するが、一般的には、ID1とID2の演算器の回路性能が異なるためである。このように、機能的には等価であるが、性能が異なる演算器が用意されていると、動作合成の処理工程であるリソースアロケーション工程、バインディング工程において、最適化処理の自由度が増えることにつながる。このため、結果として、品質の良いRTレベル記述が生成されることが期待される。
本実施形態においては、演算の構成をライブラリ情報の種類に含める例を示したが、演算の入力変数に対する到達遅延等をライブラリ情報の種類とすることも可能である。これによっても、最適化による効果が期待できる。
複合演算器は、対象となる演算の種類や、変数ビット幅、変数の符号、演算の構成、変数の到達時間等、非常に膨大な組み合わせの演算器が実現可能となる。このため、全ての複合演算器のライブラリ情報を事前に用意しておくことは困難である。しかしながら、本実施形態にかかる動作合成装置110によれば、様々なアプリケーション向けの回路設計に適用することが可能なライブラリ情報が自動で生成される。
(第3の実施形態)
次に、本発明の第3の実施形態に係る動作合成装置120について説明する。なお、第2の実施形態に係る動作合成装置110と同様の構成ならびに処理については説明を省略する。第3の実施形態に係る動作合成装置120は、物理的には、図1に示す第1の実施形態に係る動作合成装置100の構成と同様の構成である。
図14は、本実施形態に係る動作合成装置120が備える機能を説明するためのブロック図である。図14に示すように、動作合成装置120は、機能的には、入力部10と、記憶部27と、処理部37と、出力部40とを備える。動作合成装置120は、処理部36の代わりに処理部37を備えること以外は、動作合成装置110と同様の構成である。また、処理部37は、回路品質情報付加部34、ならびに、論理合成部35をさらに備えること以外は、処理部36と同様の構成である。従って、以下では、主に、回路品質情報付加部34、ならびに、論理合成部35について説明する。
回路品質情報付加部34は、ライブラリ情報生成部33により生成された複合演算器の回路品質情報を取得し、取得した回路品質情報を、当該複合演算器のライブラリ情報に付加する。このために、回路品質情報付加部34は、複合演算器の回路品質情報を取得するための論理合成の実行用コマンドを生成し、後述する論理合成部35に論理合成させる。そして、回路品質情報付加部34は、論理合成により得られた回路品質レポートに基づいて、複合演算器のライブラリ情報に回路品質情報を追加する。
論理合成部35は、RTレベル記述記憶領域25に格納されているRTレベル記述と、実行コマンドとに基づいて、論理合成を実行する。そして、論理合成部35は、ゲートレベル記述を生成するとともに、複合演算器の遅延時間や面積などの回路品質をレポートする。
次に、図15に示すフローチャートを用いて、動作合成装置120が実行するライブラリ情報更新処理について説明する。動作合成装置120は、設計者などにより、ライブラリ情報更新処理の開始を要求する操作入力を受け付けると、図15に示すライブラリ情報更新処理を開始する。ステップS301からステップS306までの処理は、図10に示すステップS201からステップS206までの処理と同様であるため説明を省略する。なお、ステップS306においては、図13に示すように、面積や遅延時間などの情報が含まれないライブラリ情報が生成されるものとする。
CPU11は、ステップS306の処理を終了すると、ハードディスク装置14に記憶されているライブラリ情報を読み込み、ライブラリ情報により指定される回路構成要素の情報を取得する(ステップS307)。すなわち、CPU11は、ライブラリ情報を読み込み、登録されている演算器ID1とID2の回路構成要素の情報を取得する。例えば、演算器ID1については、種類が(a+b)+(c+d)であり、変数のビット幅はそれぞれ8であるという情報が取得される。
CPU11は、ステップS307の処理を終了すると、RTレベル記述を生成する(ステップS308)。生成されるRTレベル記述は、ステップS307で取得された回路構成要素に対応した記述である。図16に、図13に示される複合演算器のRTレベル記述を示す。このRTレベル記述は、Verilog−HDLで記述されている。
CPU11は、ステップS308の処理を終了すると、論理合成の実行用コマンドを生成する(ステップS309)。論理合成の実行用のコマンドは、論理合成を実行するためのコマンド群が指定されたものである。
CPU11は、ステップS309の処理を終了すると、ステップS309で生成された論理合成の実行用コマンドを用いて、ステップS308で生成されたRTレベル記述に対する論理合成を実行する(ステップS310)。
CPU11は、ステップS310の処理を終了すると、論理合成により得られた回路品質レポートに基づいて、ステップS306で生成されたライブラリ情報を更新する(ステップS311)。回路品質レポートは、演算器の面積や遅延時間などのレポートである。図17に、面積と遅延時間が追加されたライブラリ情報を示す。図17に、ID1,ID2の演算器の(面積、遅延時間)として、それぞれ、(350,100)、(330、110)が追加された例を示す。
CPU11は、ステップS311の処理を終了すると、ライブラリ情報更新処理を終了する。
本実施形態に係る動作合成装置120によれば、生成された回路構成要素のライブラリ情報に、当該回路構成要素の回路品質情報が追加される。このため、回路品質情報が追加されたライブラリ情報を用いて、動作合成処理の各工程において、正確な回路品質の見積もりを利用することができる。従って、品質の良いRTレベル記述を生成することが可能となる。さらに、動作合成処理により出力される、回路品質見積もりの精度を向上させることが可能となる。
上記第1の実施形態においては、最初に、実行タイミングが同じである演算ノードの組が選択され、次に、当該演算ノードの組により表される複合演算を実行可能な回路構成要素がライブラリ情報に登録済みであるか否かが判別される例を示した。しかし、最初に、ライブラリ情報に登録済みであって複合演算が実行可能な回路構成要素が選択され、次に、当該複合演算を実行する演算ノードの組であって、実行タイミングが同じである演算ノードの組があるか否かが判別されるようにしてもよい。
上記第3の実施形態においては、論理合成部35が動作合成装置120に含まれる例を示した。しかし、論理合成部35は、動作合成装置120の外部の装置に含まれていてもよい。この場合、回路品質情報付加部34は、論理合成の実行コマンドの代わりに論理合成の実行用スクリプトを生成し、当該外部の装置に含まれる論理合成部35に供給する。また、論理合成部35が動作合成部31に含まれる構成、すなわち、動作合成部31が動作合成と論理合成とを実行する構成であってもよい。
上記第3の実施形態においては、ライブラリ情報更新処理が、ライブラリ情報を生成する処理(ステップS301〜S306の処理)を含み、ステップS301〜S311の処理により構成される例を示した。しかし、ライブラリ情報更新処理には、図15に示す全ての処理が含まれなくてもよい。例えば、S306において生成されるライブラリ情報が、あらかじめライブラリ情報記憶領域22に格納されている場合には、ライブラリ情報更新処理は、ステップS307〜S311の処理により構成される。すなわち、ステップS307〜S311の処理によりライブラリ情報を更新することが可能である。
上記第2の実施形態では、フローチャートの説明において、「ライブラリ情報生成処理」を説明し、上記第3の実施形態では、フローチャートの説明において、「ライブラリ情報更新処理」を説明した。しかしながら、これらの実施形態において、第1の実施形態において説明した「動作合成処理」が実行されるようにしてもよい。すなわち、第2の実施形態における「ライブラリ情報生成処理」は、単独で実行されてもよいし、「動作合成処理」と組み合わされて実行されてもよい。また、第3の実施形態における「ライブラリ情報更新処理」は、単独で実行されてもよいし、「動作合成処理」と組み合わされて実行されてもよい。
なお、本発明に係る動作合成装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read−Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行する動作合成装置を構成しても良い。
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。また、上述の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、又はOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記憶媒体や記憶装置に格納してもよい。
本発明は、例えば、電子回路の回路設計を支援する動作合成装置に利用することができる。
10 入力部
11 CPU
12 ROM
13 RAM
14 ハードディスク装置
15 入力装置
16 表示装置
17 出力装置
20、27 記憶部
21 動作レベル記述記憶領域
22 ライブラリ情報記憶領域
23 合成制約記憶領域
24 中間レベル記述記憶領域
25 RTレベル記述記憶領域
26 ライブラリ生成指示情報記憶領域
30、36、37 処理部
31 動作合成部
32 グループ化部
33ライブラリ情報生成部
34 回路品質情報付加部
35 論理合成部
40 出力部
100、110、120 動作合成装置

Claims (7)

  1. 半導体集積回路上に実装される回路を動作レベルで記述する動作レベル記述を、当該回路をレジスタ転送レベルで記述するレジスタ転送レベル記述に変換する動作合成装置であって、
    動作レベル記述の入力を受け付ける受付部と、
    前記受付部により受け付けられた動作レベル記述により表される複数の演算処理と当該複数の演算処理間で引き渡されるデータの流れとが記述された中間レベル記述を生成する生成部と、
    前記生成部により生成された中間レベル記述に、当該中間レベル記述に記述されている複数の演算処理のそれぞれが実行されるタイミングを示すタイミング情報を付加する付加部と、
    前記付加部によりタイミング情報が付加された中間レベル記述に記述されている複数の演算処理から、同じタイミングで実行される複数の演算処理を抽出する抽出部と、
    前記付加部によりタイミング情報が付加された中間レベル記述に記述されている、前記抽出部により抽出された複数の演算処理を、当該複数の演算処理を1つの演算処理により実現する複合演算処理に置換する置換部と、
    レジスタ転送レベル記述に記述可能な回路構成要素を表すライブラリ情報に基づいて、前記置換部により置換された中間レベル記述を、レジスタ転送レベル記述に変換する変換部と、を備える、
    ことを特徴とする動作合成装置。
  2. 前記複合演算処理を実現する回路構成要素であって、前記レジスタ転送レベル記述に記述可能な回路構成要素を表す情報を、前記ライブラリ情報に追加する追加部、をさらに備える、
    ことを特徴とする請求項1に記載の動作合成装置。
  3. 前記追加部により前記ライブラリ情報に追加される情報は、前記回路構成要素の面積もしくは遅延時間のうちのいずれかを含む情報である、
    ことを特徴とする請求項2に記載の動作合成装置。
  4. 前記変換部により変換されたレジスタ転送レベル記述を論理合成して、前記複合演算処理を実現する回路構成要素の面積もしくは遅延時間のうちのいずれかを測定する合成部、をさらに備え、
    前記追加部は、前記合成部により測定された、前記回路構成要素の面積もしくは遅延時間のうちのいずれかを含む情報を、前記ライブラリ情報に追加する、
    ことを特徴とする請求項3に記載の動作合成装置。
  5. 前記ライブラリ情報は、前記レジスタ転送レベル記述に記述可能な回路構成要素を、少なくとも、演算の種類、入力信号の数、演算の優先順序、入力信号のビット幅、入力信号の符号、ならびに、入力信号の到達遅延時間、により表す情報である、
    ことを特徴とする請求項1乃至4のいずれか1項に記載の動作合成装置。
  6. 半導体集積回路上に実装される回路を動作レベルで記述する動作レベル記述を、当該回路をレジスタ転送レベルで記述するレジスタ転送レベル記述に変換する動作合成装置が実行する動作合成方法であって、
    前記動作合成装置は、受付部と、生成部と、付加部と、抽出部と、置換部と、変換部とを備え、
    前記受付部が、動作レベル記述の入力を受け付ける受付ステップと、
    前記生成部が、前記受付部により受け付けられた動作レベル記述により表される複数の演算処理と当該複数の演算処理間で引き渡されるデータの流れとが記述された中間レベル記述を生成する生成ステップと、
    前記付加部が、前記生成部により生成された中間レベル記述に、当該中間レベル記述に記述されている複数の演算処理のそれぞれが実行されるタイミングを示すタイミング情報を付加する付加ステップと、
    前記抽出部が、前記付加部によりタイミング情報が付加された中間レベル記述に記述されている複数の演算処理から、同じタイミングで実行される複数の演算処理を抽出する抽出ステップと、
    前記置換部が、前記付加部によりタイミング情報が付加された中間レベル記述に記述されている、前記抽出部により抽出された複数の演算処理を、当該複数の演算処理を1つの演算処理により実現する複合演算処理に置換する置換ステップと、
    前記変換部が、レジスタ転送レベル記述に記述可能な回路構成要素を表すライブラリ情報に基づいて、前記置換部により置換された中間レベル記述を、レジスタ転送レベル記述に変換する変換ステップと、を備える、
    ことを特徴とする動作合成方法。
  7. コンピュータを、
    半導体集積回路上に実装される回路を動作レベルで記述する動作レベル記述を、当該回路をレジスタ転送レベルで記述するレジスタ転送レベル記述に変換する動作合成装置として機能させるためのプログラムであって、
    前記コンピュータを、
    動作レベル記述の入力を受け付ける受付部、
    前記受付部により受け付けられた動作レベル記述により表される複数の演算処理と当該複数の演算処理間で引き渡されるデータの流れとが記述された中間レベル記述を生成する生成部、
    前記生成部により生成された中間レベル記述に、当該中間レベル記述に記述されている複数の演算処理のそれぞれが実行されるタイミングを示すタイミング情報を付加する付加部、
    前記付加部によりタイミング情報が付加された中間レベル記述に記述されている複数の演算処理から、同じタイミングで実行される複数の演算処理を抽出する抽出部、
    前記付加部によりタイミング情報が付加された中間レベル記述に記述されている、前記抽出部により抽出された複数の演算処理を、当該複数の演算処理を1つの演算処理により実現する複合演算処理に置換する置換部、
    レジスタ転送レベル記述に記述可能な回路構成要素を表すライブラリ情報に基づいて、前記置換部により置換された中間レベル記述を、レジスタ転送レベル記述に変換する変換部、として機能させる、
    ことを特徴とするプログラム。
JP2009184269A 2009-08-07 2009-08-07 動作合成装置、動作合成方法、ならびに、プログラム Active JP5267376B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009184269A JP5267376B2 (ja) 2009-08-07 2009-08-07 動作合成装置、動作合成方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009184269A JP5267376B2 (ja) 2009-08-07 2009-08-07 動作合成装置、動作合成方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2011039636A JP2011039636A (ja) 2011-02-24
JP5267376B2 true JP5267376B2 (ja) 2013-08-21

Family

ID=43767361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009184269A Active JP5267376B2 (ja) 2009-08-07 2009-08-07 動作合成装置、動作合成方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP5267376B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5910230B2 (ja) * 2012-03-26 2016-04-27 富士通株式会社 設計支援プログラム、設計支援方法、および設計支援装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3602697B2 (ja) * 1997-09-18 2004-12-15 株式会社東芝 論理回路設計支援システム
JP3816286B2 (ja) * 1999-12-24 2006-08-30 株式会社東芝 演算ディレイ計算装置及び方法
JP4470110B2 (ja) * 2004-11-01 2010-06-02 日本電気株式会社 高位合成方法およびシステム
JP2006309667A (ja) * 2005-05-02 2006-11-09 Fujitsu Ltd 動作合成検証装置及び方法
JP2007316731A (ja) * 2006-05-23 2007-12-06 Nec Electronics Corp Lsi設計支援装置
JP5228546B2 (ja) * 2008-03-13 2013-07-03 日本電気株式会社 動作合成装置、および、プログラム

Also Published As

Publication number Publication date
JP2011039636A (ja) 2011-02-24

Similar Documents

Publication Publication Date Title
US8473880B1 (en) Synchronization of parallel memory accesses in a dataflow circuit
US7318213B2 (en) Apparatus, method and program for behavioral synthesis including loop processing
US9652570B1 (en) Automatic implementation of a customized system-on-chip
US6438731B1 (en) Integrated circuit models having associated timing exception information therewith for use in circuit design optimizations
US20070028197A1 (en) Method and apparatus for auto-generation of shift register file for high-level synthesis compiler
US20070255928A1 (en) Processor
US9201996B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program
JP2006285333A (ja) 動作合成装置及び方法
US8566768B1 (en) Best clock frequency search for FPGA-based design
JP5157534B2 (ja) 動作合成装置、および、プログラム
JP5267376B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
US20040236929A1 (en) Logic circuit and program for executing thereon
Sidiropoulos et al. Jitpr: A framework for supporting fast application's implementation onto fpgas
US20190034562A1 (en) High-level synthesis device, high-level synthesis method, and computer readable medium
US7996824B2 (en) Benchmark synthesis using workload statistics
US20220222405A1 (en) Design support system and computer readable medium
JP6735951B2 (ja) 高位合成装置、高位合成方法および高位合成プログラム
JP6761182B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2953431B2 (ja) 高位合成装置及びその記録媒体
US20080270955A1 (en) Method and apparatus for modifying existing circuit design
JP5626724B2 (ja) アクセラレータ及びデータ処理方法
JP6545406B2 (ja) 高位合成装置、高位合成方法および高位合成プログラム
JP2016045726A (ja) 半導体集積回路の設計データのデータ構造ならびに半導体集積回路の設計装置および設計方法
JP2007323606A (ja) 動作合成装置
JP2019191796A (ja) 高位合成方法、高位合成プログラム、高位合成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130312

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130422

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5267376

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150