(57)【特許請求の範囲】
【請求項１】
動作レベル記述から、レジスタ転送レベル記述に記載する回路構成要素の種類及び数を表す第一の合成制約情報とレジスタ転送レベル記述の遅延及び面積の条件を表す第二の合成制約情報とが示す制約を満たすようにレジスタ転送レベル記述を動作合成する動作合成装置であって、
前記合成制約情報を記憶する合成制約情報記憶手段と、
前記レジスタ転送レベル記述に記載可能な回路構成要素を特定する情報を、ライブラリ情報として記憶するライブラリ情報記憶手段と、
前記動作レベル記述を解析して、該動作レベル記述が示す制御とデータの流れを示した中間レベル記述を作成する中間レベル記述作成手段と、
前期中間レベル記述作成手段で作成した中間レベル記述を解析して、処理の経路と、該経路に含まれる演算種別を特定する情報を含んだパス情報を取得する、パス情報取得手段と、
前期ライブラリ情報記憶手段に記憶されているライブラリ情報と、前期パス情報取得手段で取得したパス情報と、前記第二の合成制約情報とに基づいて、回路性能が向上する回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、合成制約情報生成手段と、
前期合成制約情報記憶手段に記憶されている前記第一の合成制約情報を、前記合成制約情報生成手段で生成した前記第一の合成制約情報に更新する合成制約情報更新手段と、
を備えることを特徴とする、動作合成装置。
【請求項２】
前記中間レベル記述には、処理の実行のタイミングを示した情報が含まれている、
ことを特徴とする、請求項１に記載の動作合成装置。
【請求項３】
前記パス情報取得手段は、中間レベル記述を解析して、処理の実行のタイミング毎に、処理の経路の遅延を示した遅延情報を含んだパス情報を取得し、
前記合成制約情報生成手段は、前記処理の実行のタイミング毎に、経路の遅延が最小となる回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、
ことを特徴とする、請求項２に記載の動作合成装置。
【請求項４】
前記ライブラリ情報記憶手段は、前記レジスタ転送レベル記述に記載可能な回路構成要素を複数接続した場合における、遅延の削減効果に関する情報をさらに記憶しており、
前記合成制約情報生成手段は、前記遅延の削減効果に関する情報に基づいて、遅延が最小となる回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、
ことを特徴とする、請求項１乃至３の何れか１項に記載の動作合成装置。
【請求項５】
前記ライブラリ情報記憶手段は、前記レジスタ転送レベル記述に記載可能な回路構成要素の面積を示す情報をさらに記憶しており、
前記合成制約情報生成手段は、前記パス情報取得手段で取得したパス情報から特定される、処理の経路に含まれる演算に対してあらかじめ設定されている動作周波数を超えない範囲で面積が最小となる回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、
ことを特徴とする、請求項１乃至４の何れか１項に記載の動作合成装置。
【請求項６】
動作レベル記述から、レジスタ転送レベル記述に記載する回路構成要素の種類及び数を表す第一の合成制約情報とレジスタ転送レベル記述の遅延及び面積の条件を表す第二の合成制約情報とが示す制約を満たすようにレジスタ転送レベル記述を動作合成する機能を有するコンピュータを、
前記合成制約情報を記憶する合成制約情報記憶手段と、
前記レジスタ転送レベル記述に記載可能な回路構成要素を特定する情報を、ライブラリ情報として記憶するライブラリ情報記憶手段と、
前記動作レベル記述を解析して、該動作レベル記述が示す制御とデータの流れを示した中間レベル記述を作成する中間レベル記述作成手段と、
前期中間レベル記述作成手段で作成した中間レベル記述を解析して、処理の経路と、該経路に含まれる演算種別を特定する情報を含んだパス情報を取得する、パス情報取得手段と、
前期ライブラリ情報記憶手段に記憶されているライブラリ情報と、前期パス情報取得手段で取得したパス情報と、前記第二の合成制約情報とに基づいて、回路性能が向上する回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、合成制約情報生成手段と、
前期合成制約情報記憶手段に記憶されている前記第一の合成制約情報を、前記合成制約情報生成手段で生成した前記第一の合成制約情報に更新する合成制約情報更新手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作レベル記述からレジスタ転送レベル記述を作成する、動作合成装置、および、プログラムに関する。
【背景技術】
【０００２】
ＬＳＩやＶＬＳＩ等の半導体集積回路の設計を支援するために、動作レベルの回路記述（動作レベル記述）からレジスタ転送レベルの記述（ＲＴレベル記述）を合成する、動作合成が行われている（例えば、特許文献１を参照）。
【特許文献１】特開２００６−２８５８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
動作合成を行うにあたって、回路構成要素の制約を示した情報（合成制約情報）が、回路の設計者等によって事前に作成されている必要がある。動作合成処理は、この合成制約情報が示す制約に基づいて行われる。
【０００４】
合成制約情報が適切に作成されていないと、動作合成処理で作成されるＲＴレベル記述が示す回路の回路性能（遅延、面積等）は悪いものとなってしまう。従って、回路設計者は、適切な合成制約情報を作成しておく必要がある。
【０００５】
しかしながら、適切な合成制約情報を作成することは、回路設計者にとって困難である。その理由としては、作成する合成制約情報は、対象となる回路の多種多様な回路情報を含んだライブラリに対応した情報でなければならないからである。
【０００６】
また、他の理由としては、動作レベル記述に適用する動作合成方法の違いによっても、必要となる合成制約情報は異なるため、動作合成の方法に基づいて最適な合成制約を用意しておく必要があるからである。
【０００７】
本発明は上記実情に鑑みてなされたものであり、回路性能の良いＲＴレベル記述を合成できるように、合成制約情報を改善することを可能とする、動作合成装置、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、この発明の第１の観点に係る動作合成装置は、
動作レベル記述から、レジスタ転送レベル記述に記載する回路構成要素の種類及び数を表す第一の合成制約情報とレジスタ転送レベル記述の遅延及び面積の条件を表す第二の合成制約情報とが示す制約を満たすようにレジスタ転送レベル記述を動作合成する動作合成装置であって、
前記合成制約情報を記憶する合成制約情報記憶手段と、
前記レジスタ転送レベル記述に記載可能な回路構成要素を特定する情報を、ライブラリ情報として記憶するライブラリ情報記憶手段と、
前記動作レベル記述を解析して、該動作レベル記述が示す制御とデータの流れを示した中間レベル記述を作成する中間レベル記述作成手段と、
前期中間レベル記述作成手段で作成した中間レベル記述を解析して、処理の経路と、該経路に含まれる演算種別を特定する情報を含んだパス情報を取得する、パス情報取得手段と、
前期ライブラリ情報記憶手段に記憶されているライブラリ情報と、前期パス情報取得手段で取得したパス情報と、前記第二の合成制約情報とに基づいて、回路性能が向上する回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、合成制約情報生成手段と、
前期合成制約情報記憶手段に記憶されている前記第一の合成制約情報を、前記合成制約情報生成手段で生成した前記第一の合成制約情報に更新する合成制約情報更新手段と、
を備えることを特徴とする。
【００１０】
上記目的を達成するため、この発明の第２の観点に係るプログラムは、
動作レベル記述から、レジスタ転送レベル記述に記載する回路構成要素の種類及び数を表す第一の合成制約情報とレジスタ転送レベル記述の遅延及び面積の条件を表す第二の合成制約情報とが示す制約を満たすようにレジスタ転送レベル記述を動作合成する機能を有するコンピュータを、
前記合成制約情報を記憶する合成制約情報記憶手段と、
前記レジスタ転送レベル記述に記載可能な回路構成要素を特定する情報を、ライブラリ情報として記憶するライブラリ情報記憶手段と、
前記動作レベル記述を解析して、該動作レベル記述が示す制御とデータの流れを示した中間レベル記述を作成する中間レベル記述作成手段と、
前期中間レベル記述作成手段で作成した中間レベル記述を解析して、処理の経路と、該経路に含まれる演算種別を特定する情報を含んだパス情報を取得する、パス情報取得手段と、
前期ライブラリ情報記憶手段に記憶されているライブラリ情報と、前期パス情報取得手段で取得したパス情報と、前記第二の合成制約情報とに基づいて、回路性能が向上する回路構成要素の種類と数とを示した情報を前記第一の合成制約情報として生成する、合成制約情報生成手段と、
前期合成制約情報記憶手段に記憶されている前記第一の合成制約情報を、前記合成制約情報生成手段で生成した前記第一の合成制約情報に更新する合成制約情報更新手段、
として機能させる。
【発明の効果】
【００１１】
上記構成によれば、中間レベル記述を解析して得られたパス情報とライブラリ情報とに基づいて、合成制約情報を作成、更新するため、回路性能の良いＲＴレベル記述を合成できるように、合成制約情報は改善される。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態に係る動作合成装置１００について図面を参照して説明する。動作合成装置１００は、半導体集積回路等の回路の動作レベル記述に基づいて動作合成処理を行い、レジスタ転送レベル記述（ＲＴレベル記述）を出力するものである。
なお、当該実施形態は本発明の原理の理解を容易にするためのものであり、本発明の範囲は、下記の実施形態に限られるものではなく、当業者が以下の実施形態の構成を適宜置換した他の実施形態も、本発明の範囲に含まれる。
【００１３】
本発明の実施形態に係る動作合成装置１００は、図１に示すように、入力部１０と、記憶部２０と、処理部３０と、出力部４０とを備える。
【００１４】
入力部１０は、キーボード等を備え、ユーザによって入力された動作合成を行うことを指示する情報や動作レベル記述などを、処理部３０に供給する。
【００１５】
記憶部２０は、例えば、ハードディスクなどの記憶装置等を備え、処理部３０が実行する動作プログラムを記憶する他、本発明を実現するために必要な種々のデータを記憶する。本実施形態では、動作レベル記述記憶領域２１、ライブラリ記憶領域２２、合成制約記憶領域２３、中間レベル記述記憶領域２４、パス情報記憶領域２５、ＲＴレベル記述記憶領域２６などといった記憶領域が記憶部２０内に設けられ、各記憶領域に所定のデータが格納される。
【００１６】
動作レベル記述記憶領域２１は、動作レベル記述を記憶する領域である。図２に、ＳｙｓｔｅｍＣで記述されている動作レベル記述の例を示す。
【００１７】
図１に戻り、ライブラリ記憶領域２２には、演算器、メモリ、入出力端子、マルチプレクサ、レジスタ、デコーダ、論理演算、定数テーブル等の回路構成要素に関する情報がライブラリ情報として登録されている。半導体集積回路のＲＴレベル記述は、ライブラリ記憶領域２２に登録されている回路構成要素で構成する必要がある。
【００１８】
一例として、ライブラリ記憶領域２２に格納されている、ライブラリ情報を図３に示す。この例では、ビット幅が４、５、６、８、１６の加算器が２種類ずつ、ライブラリ記憶領域２２に登録されている。なお、各加算器には、Ｌ１〜Ｌ１０の識別用のＩＤ（ライブラリＩＤ）がそれぞれ付与されている。
また、このライブラリ情報には、属性情報として、チェイン効果に関する情報も与えられている。チェイン効果とは、回路構成要素を複数個接続して回路を構成すると、回路全体の遅延は、各回路構成要素の遅延の和よりも小さくなる性質のことである。例えば、図３に示すライブラリ情報のライブラリＩＤがＬ５の加算器に着目すると、チェイン効果により、Ｌ１の加算器からの出力を入力とした場合には、この加算器の遅延は５０になることを示している。
【００１９】
図１に戻り、合成制約記憶領域２３は、動作合成処理でＲＴレベル記述を生成する際に必要となる制約を示す合成制約情報を記憶する領域である。具体的には、図４に示すような、ＲＴレベル記述に含める回路構成要素の数を指定する情報が、合成制約情報として、合成制約記憶領域２３に記憶されている。また、回路全体、又は、回路に含まれる演算種別毎に、動作周波数（遅延）や面積等の条件が、合成制約情報として、合成制約記憶領域２３に記憶されていてもよい。
【００２０】
なお、上述した、動作レベル記述、ライブラリ情報、および、合成制約情報は、動作合成処理を行う前に回路設計者等によって事前に作成されて各領域に格納されている必要がある。
【００２１】
中間レベル記述記憶領域２４は、動作合成の各工程（スケジューリング工程、バインディング工程、その他の最適化工程等）で生成される記述（中間レベル記述）を記憶する領域である。例えば、スケジューリング工程では、ＣＤＦＧ（Control Data Flow Graph）が作成され、中間レベル記述記憶領域２４に記憶される。
【００２２】
図１に戻り、ＲＴレベル記述記憶領域２６は、動作合成処理によって、動作レベル記述から最終的に生成されるレジスタ転送レベル記述（ＲＴレベル記述）を記憶する領域である。
【００２３】
パス情報記憶領域２５は、後述するデータフローパス情報解析部３２によって作成されたパス情報が記憶される領域である。
【００２４】
処理部３０は、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）等を備え、ＲＯＭをワークエリアとして、ＲＡＭや記憶部２０に格納されている動作プログラムを実行することで、動作合成装置１００の動作を制御する。
【００２５】
処理部３０は、機能的には、動作合成部３１と、データフローパス情報解析部３２と、合成制約生成部３３とを備える。
【００２６】
動作合成部３１は、ライブラリ記憶領域２２に格納されたライブラリ情報、および、合成指示記憶領域２３に格納された合成指示情報に基づいて、動作レベル記述からＲＴレベル記述を合成する動作合成処理を行う。なお、この動作合成処理には、スケジューリング工程、バインディング工程、その他の最適化工程等の工程が含まれる。
【００２７】
スケジューリング工程は、動作レベル記述から、制御とデータの流れを抽出し、どのタイミング（または状態）でどのような処理や演算等を実行すべきかを示すタイミング情報を含んだ中間レベル記述である、図５に示すようなＣＤＦＧを作成する工程である。
【００２８】
バインディング工程は、スケジューリングされた動作レベル記述内の各処理に対して、必要なハードウェアリソース（演算器などの回路素子、および、レジスタ等）を割り付ける工程である。
【００２９】
その他の最適化工程は、関数呼び出しの解消等のように後工程の処理に適した形式への変換や、不要コードの削除や、言語レベル最適化による変形処理や後工程としての論理最適化処理等を行う工程である。
【００３０】
なお、動作合成部３１は、上述した各工程（スケジューリング工程、バインディング工程、その他の最適化工程）で作成される中間レベル記述を、中間レベル記述記憶領域２４に記憶する。また、動作合成部３１は、上述した各工程を経て、最終的に、ＲＴレベル記述を作成して、ＲＴレベル記述記憶領域２６に記憶する。
【００３１】
データフローパス情報解析部３２は、中間レベル記述記憶領域２４からＣＤＦＧを読み出して解析し、処理のタイミング（ステップ）毎に、データフロー上の各経路（パス）に含まれる演算種別と当該パスの遅延時間とを含んだパス情報を取得し、パス情報記憶領域２５に記憶する。
【００３２】
合成制約生成部３３は、ライブラリ記憶領域２２に記憶されているライブラリ情報と、パス情報記憶領域２５に記憶されているパス情報とに基づいて、動作レベル記述記憶領域２１に記憶されている動作レベル記述から、最適な回路性能となる回路構成要素を抽出し、新しい合成制約情報として、合成制約記憶領域２３に記憶する。
【００３３】
続いて、上記構成の動作合成装置１００による、合成制約更新処理について説明する。なお、予め、動作レベル記述、ライブラリ情報、合成制約情報が、動作レベル記述記憶領域２１、ライブラリ記憶領域２２、合成制約記憶領域２３にそれぞれ格納されているものとする。
【００３４】
ユーザが、動作合成装置１００の入力部１０から合成制約更新処理を行う旨の指示を入力すると、その入力に応答して、処理部３０は、図６に示す合成制約更新処理を開始する。
【００３５】
合成制約更新処理が開始されると、まず、処理部３０の動作合成部３１は、動作合成の工程の１つである、スケジューリングを行う（ステップＳ１０）。即ち、動作合成部３１は、動作レベル記述記憶領域２１に記憶されている動作レベル記述を解析して、制御とデータの流れを抽出し、どのタイミング（または状態、ステップ）でどのような処理や演算等を実行すべきかを示すタイミング情報を含んだＣＤＦＧを作成して、中間レベル記憶領域に格納する。
【００３６】
例えば、図２に示す動作レベル記述をステップＳ１０の処理対象とした場合には、図５に示すようなＣＤＦＧが作成される。動作レベル記述内の４ビット加算処理文Ａ１、５ビット加算処理文Ａ２、６ビット加算処理文Ａ３は、ＣＤＦＧ内での加算処理を表す演算ノードｎ１、ｎ２、ｎ３にそれぞれ対応している。また、動作レベル記述内の８ビット加算処理文Ａ４は、ＣＤＦＧ内の演算ノードｎ４、ｎ５に対応している。また、動作レベル記述内の１６ビット加算処理文Ａ５、Ａ６は、ＣＤＦＧ内での加算処理を表す演算ノードｎ６、ｎ７にそれぞれ対応している。また、このＣＤＦＧには、タイミング情報として、演算ノードｎ１、ｎ２、ｎ３、ｎ６にはｓｔｅｐ１の状態が、演算ノードｎ４、ｎ５、ｎ７にはｓｔｅｐ２の状態が、それぞれ割り当てられている。
【００３７】
図６に戻り、続いて、データフローパス情報解析部３２は、作成したＣＤＦＧから、データフロー上のパス情報を抽出するパス情報抽出処理を実行する（ステップＳ２０）。
【００３８】
図７に、パス情報抽出処理（ステップＳ２０）の詳細について説明する。
パス情報抽出処理が開始されると、まず、データフローパス情報解析部３２は、ＣＤＦＧに含まれる未選択の状態（ステップ）を１つ選択する（ステップＳ２１）。
【００３９】
続いて、データフローパス情報解析部３２は、選択した状態（ステップ）内におけるデータフロー上の経路（パス）を特定して、特定したパス毎に一意のＩＤ（パスＩＤ）を発行する（ステップＳ２２）。
【００４０】
続いて、データフローパス情報解析部３２は、特定したパス毎に、パスに含まれる演算種別を特定する（ステップＳ２３）。
【００４１】
続いて、データフローパス情報解析部３２は、含まれる演算種別を特定したパス毎に、ライブラリ情報と合成制約情報とを参照して、遅延を算出する（ステップＳ２４）。
【００４２】
続いて、データフローパス情報解析部３２は、未だ選択していないＣＤＦＧ内の状態（ステップ）が有るか否かを判別する（ステップＳ２５）。
状態（ステップ）が有ると判別した場合には（ステップＳ２５；Ｙｅｓ）、データフローパス情報解析部３２は、ステップＳ２１〜Ｓ２４までの処理を繰り返す。
【００４３】
状態（ステップ）がないと判別した場合には（ステップＳ２５；Ｎｏ）、データフローパス情報解析部３２は、状態（ステップ）毎に、抽出したパス情報（パス上の回路構成要素と遅延）を、パス情報記憶領域２５に格納して（ステップＳ２６）、パス情報抽出処理は終了する。
【００４４】
続いて、具体例を挙げて、このパス情報抽出処理について説明する。
図５に示すＣＤＦＧを、このパス情報抽出処理の対象とした場合を考える。なお、前提として、ライブラリ記憶領域２２と合成制約記憶領域２３には、図３と図４に示すようなライブラリ情報と合成制約情報とが記憶されているものとする。
【００４５】
この場合、データフローパス情報解析部３２は、まず、図５に示すＣＤＦＧのｓｔｅｐ１の状態を選択する（ステップＳ２１）。そして、データフローパス情報解析部３２は、選択したＣＤＦＧのｓｔｅｐ１の状態内におけるパスを特定する（ステップＳ２２）。この場合では、（Ａ）データａ０（又はデータａ１）から、データｔ０を経由して、データｔ２へと続くパス、（Ｂ）データｂ０（又はデータｂ１）から、データｔ１を経由して、データｔ２へと続くパス、（Ｃ）データｅ０（又はデータｅ１）から、データｔ４へと続くパス、の３つのパス（Ａ）〜（Ｃ）が特定される。そして、データフローパス情報解析部３２は、この３つのパス（Ａ）〜（Ｃ）それぞれに一意のパスＩＤ、Ｐ１〜Ｐ３を発行する（ステップＳ２２）。
【００４６】
続いて、データフローパス情報解析部３２は、上述の各パス（Ａ）〜（Ｃ）に含まれる演算種別を特定する（ステップＳ２３）。即ち、パス（Ａ）には、４ビット加算処理である演算ノードｎ１と、６ビット加算処理である演算ノードｎ３とが含まれていることが特定される。同様に、パス（Ｂ）には、５ビット加算処理である演算ノードｎ２と、６ビット加算処理である演算ノードｎ３とが含まれていることが特定される。同様に、パス（Ｃ）には、１６ビット加算処理である演算ノードｎ６が含まれていることが特定される。
【００４７】
続いて、データフローパス情報解析部３２は、ライブラリ情報と合成制約情報とを参照して、含まれている演算種別を特定したパス（Ａ）〜（Ｃ）毎に、遅延を算出する（ステップＳ２４）。即ち、パス（Ａ）であれば、まず、パス（Ａ）に含まれる演算ノードｎ１、ｎ３に対応する回路構成要素が、ライブラリＩＤがＬ１、Ｌ５である加算器であることが、図４に示す合成制約情報を参照することにより判別される。そして、図３に示すライブラリ情報を参照することにより、そのＬ１、Ｌ５の加算器のチェイン効果も考慮に入れた遅延９０が、算出される。同様に、パス（Ｂ）であれば、パス（Ｂ）に含まれる演算ノードｎ２、ｎ３に対応するライブラリＩＤがＬ３、Ｌ５である加算器の、チェイン効果も考慮に入れた遅延１０５が算出される。同様に、パス（Ｃ）であれば、パス（Ｃ）に含まれる演算ノードｎ６に対応するライブラリＩＤがＬ９である加算器の遅延１２０が算出される。
【００４８】
以上で、ＣＤＦＧのｓｔｅｐ１に関するパス情報の取得は完了し、データフローパス情報解析部３２は、ｓｔｅｐ２についても同様にパス情報を取得する（ステップＳ２１〜Ｓ２４）。そして、データフローパス情報解析部３２は、ＣＤＦＧ内のｓｔｅｐ１とｓｔｅｐ２とでパス情報の取得が完了すると（ステップＳ２５；Ｎｏ）、取得したパス情報を、図８に示すように、パス情報記憶領域２５に格納して（ステップＳ２６）、パス情報抽出処理は終了する。
【００４９】
図６に戻り、続いて、パス情報抽出処理が終了すると、合成制約生成部３３は、ステップＳ２０の処理でパス情報記憶領域２５に記憶したパス情報と、ライブラリ記憶領域２２に記憶されているライブラリ情報とに基づいて、動作レベル記述の処理をライブラリ情報に登録されている回路構成要素を用いて実現するうえで、最適な回路性能となる回路構成要素の種類と数を判別して、新たな合成制約情報を作成する（ステップＳ３０）。
そして、合成制約生成部３３は、合成制約記憶領域２３に記憶されている合成制約情報を、作成した合成制約情報に更新する（ステップＳ４０）。
以上で、合成制約更新処理は終了する。
【００５０】
ここで、上述した合成制約情報を作成して（ステップＳ３０）、更新する（ステップＳ４０）、処理について、具体例を挙げて説明する。
なお、前提として、図３に示すようなライブラリ情報がライブラリ記憶領域２２に記憶されているものとする。また、ステップＳ１０の処理により、中間レベル記述記憶領域２４には、図５に示すようなＣＤＦＧが記憶されているものとする。さらに、ステップＳ２０の処理により、パス情報記憶領域２５には、図８に示すようなパス情報が記憶されているものとする。
また、合成制約記憶領域２３には、図４に示すような、ＲＴレベル記述に含める回路構成要素の数を指定する情報が、合成制約情報として記憶されているものとする。さらに、合成制約記憶領域２３には、出力データｔ２、ｔ３について、遅延が最小になるように、動作合成することを示す指示情報が合成制約情報として記憶されているものとする。さらに、合成制約記憶領域２３には、出力データｔ４について、遅延が１５０以下の範囲で面積が最小になるように動作合成することを示す指示情報が、合成制約情報として記憶されているものとする。
【００５１】
まず、図５に示すＣＤＦＧ内のｓｔｅｐ１の出力データｔ２に着目する。
合成制約生成部３３は、図８に示すパス情報を参照して、データｔ２を出力とするパスＰ１、Ｐ２に含まれる処理種別（演算ノード）を特定する。この場合、演算ノードｎ１〜ｎ３が特定される。
【００５２】
続いて、合成制約生成部３３は、この演算ノードｎ１〜ｎ３に当てはめることが可能な回路構成要素の組み合わせを、図３に示すライブラリ情報を参照して、判別する。この例では、４ビット演算ノードｎ１には、ビット幅が４であるライブラリＩＤがＬ１、Ｌ２の加算器が対応し、５ビット演算ノードｎ２には、ビット幅が５であるライブラリＩＤがＬ３、Ｌ４の加算器が対応し、６ビット演算ノードｎ３には、ビット幅が６であるライブライＩＤがＬ５、Ｌ６の加算器が対応する。即ち、演算ノードｎ１〜ｎ３に当てはめることが可能な回路構成要素の組み合わせは、（ｎ１、ｎ２、ｎ３）＝（Ｌ１、Ｌ３、Ｌ５）、（Ｌ１、Ｌ３、Ｌ６）、（Ｌ１、Ｌ４、Ｌ５）、（Ｌ１、Ｌ４、Ｌ６）、（Ｌ２、Ｌ３、Ｌ５）、（Ｌ２、Ｌ３、Ｌ６）、（Ｌ２、Ｌ４、Ｌ５）、（Ｌ２、Ｌ４、Ｌ６）の８通りであると判別される。
【００５３】
続いて、合成制約生成部３３は、その８通りの組み合わせのなかで、図３に示すライブラリ情報を参照して、チェイン効果も考慮したデータｔ２での遅延が最小となる組み合わせを判別する。この例では、（ｎ１、ｎ２、ｎ３）＝（Ｌ２、Ｌ４、Ｌ６）の組み合わせのときに、最小の遅延９５となる。したがって、この組み合わせを、新たな合成制約とする。出力データｔ３でも、同様にして、遅延が最小になるような組み合わせを選択して、（ｎ４、ｎ５）＝（Ｌ８、Ｌ８）の組み合わせを、新たな合成制約とする。
【００５４】
続いて、合成制約生成部３３は、図５に示すＣＤＦＧ内のｓｔｅｐ１の出力データｔ４に着目する。図８に示すパス情報を参照して、データｔ４を出力とするパスＰ３に含まれる処理種別（演算ノード）を特定する。この場合、演算ノードｎ６が特定される。
【００５５】
続いて、合成制約生成部３３は、この演算ノードｎ６に当てはめることが可能な回路構成要素を判別する。この例では、図３に示すライブラリ情報を参照して、１６ビット演算ノードｎ６には、ビット幅が１６であるライブラリＩＤがＬ９、Ｌ１０の加算器を当てはめることが可能であると判別される。
【００５６】
続いて、合成制約生成部３３は、当てはめることが可能なＬ９とＬ１０の加算器のうち、データｔ４に設定されている制約である、遅延が１５０以下の範囲で面積が最小になる、加算器を特定する。図３に示すライブラリ情報を参照すると、Ｌ９とＬ１０との加算器は両方とも遅延１５０以下の条件は満たすので、より小さい面積であるＬ１０の加算器がこの場合特定される。即ち、演算ノードｎ６をＬ１０の加算器とする合成制約を作成する。出力データｔ５でも、同様にして、遅延１５０以下で面積が最小になるように、演算ノードｎ７をＬ１０の加算器とする合成制約を作成する。
以上で、新しい合成制約情報の作成は完了し（即ち、ＲＴレベル記述に含めるべき回路構成要素の種類と数とが特定され）、続いて、合成制約生成部３３は、合成制約記憶領域２３に記憶されている合成制約情報を、図９に示すような作成してきた合成制約情報に更新する。
【００５７】
このように、本実施形態に係る動作合成装置１００は、動作レベル記述を動作合成する際のスケジューリングの工程で作成されるＣＤＦＧを解析したパス情報と、ライブラリ情報とに基づいて、既存の合成制約情報を、更新（改善）することが可能となる。
【００５８】
なお、本発明は、上記実施の形態で示したものに限定されず、様々な変形および応用が可能である。
【００５９】
例えば、本実施形態では、合成制約更新処理において、ＣＤＦＧを解析してパス情報を取得したが（ステップＳ２０）、ＣＤＦＧ以外のスケジューリング工程で作成される中間レベル記述を解析してパス情報を取得してもよい。
【００６０】
また、本実施形態では、パス情報抽出処理（図７、ステップＳ２０）において、パスの遅延の算出（ステップＳ２４）を行ったが、動作周波数（遅延）に関する情報が合成制約情報として与えられていない場合には、この処理は必ずしも行う必要はない。
【００６１】
また、本実施形態では、回路構成要素の加算器を例にして、合成制約更新処理の具体例を説明したが、これに限らず、回路構成要素としては、減算器などの他の演算要素および、レジスタ等の記憶要素や入出力端子等にも、本発明を同様に適用可能である。また、その場合には、その回路構成要素に対応した処理属性（例えばレジスタであれば構成ビット数などの処理属性）と回路性能に関する情報（遅延、面積等）とで、適切に回路構成要素が分類されて、ライブラリ情報として登録されている必要がある。
【００６２】
また、本実施形態では、動作レベル記述の具体例として、図２等に、ＳｙｓｔｅｍＣで記述された動作レベル記述を示したが、これに限らず、Ｃ言語やＪＡＶＡ（登録商標）等のプログラミング言語や、他のＨＤＬ（Hardware Description Language）等を用いた動作レベル記述にも、本発明は適用可能である。
【００６３】
また、本発明の動作合成装置は、専用のハードウェアに限られるものではなく、通常のコンピュータによっても実現することができる。
具体的には、上記実施の形態では、動作合成装置のプログラムが、メモリ等に予め記憶されているものとして説明した。しかし、上述の処理動作を実行させるためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行するプログラムプロファイリング装置を構成してもよい。
【００６４】
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
また、上述の機能を、ＯＳ（Operating System）が分担又はＯＳとアプリケーションの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【図面の簡単な説明】
【００６５】
【図１】本実施形態に係る動作合成装置の構成を示すブロック図である。
【図２】動作レベル記述の例を示した図である。
【図３】ライブラリ記憶領域に記憶されているライブラリ情報の例を示した図である。
【図４】合成制約記憶領域に記憶されている合成制約情報の例を示した図である。
【図５】ＣＤＦＧの例を示した図である。
【図６】合成制約更新処理を説明するためのフローチャートである。
【図７】パス情報抽出処理を説明するためのフローチャートである。
【図８】パス情報記憶領域に記憶されているパス情報の例を示した図である。
【図９】更新された合成制約記憶領域に記憶されている合成制約情報の例を示した図である。
【符号の説明】
【００６６】
１０  入力部
２０  記憶部
２１  動作レベル記述記憶領域
２２  ライブラリ記憶領域
２３  合成制約記憶領域
２４  中間レベル記述記憶領域
２５  パス情報記憶領域
２６  ＲＴレベル記述記憶領域
３０  処理部
３１  動作合成部
３２  データフローパス情報解析部
３３  合成制約生成部
４０  出力部
１００  動作合成装置
【図１】
0005228546.tif 000002
【図２】
0005228546.tif 000003
【図３】
0005228546.tif 000004
【図４】
0005228546.tif 000005
【図５】
0005228546.tif 000006
【図６】
0005228546.tif 000007
【図７】
0005228546.tif 000008
【図８】
0005228546.tif 000009
【図９】
0005228546.tif 000010