(57)【要約】【課題】半導体集積回路の消費電力をさらに低減するための高位合成を行う高位合成装置を提供する。【解決手段】高位合成装置１０は、半導体集積回路の動作記述から内部表現を生成する内部表現生成部１２と、内部表現生成部１２により生成された内部表現について、演算のスケジューリングを行うスケジューリング部１３と、スケジューリング部１３の処理結果に基づいて、演算を実行するモジュールのクロック周波数を変更する周波数制御部１４と、周波数制御部１４により変更されたクロック周波数でモジュールが動作するように、半導体集積回路の回路構成を決定するアロケーション部１５と、アロケーション部１５の処理結果に基づいて、内部表現からレジスタ転送レベル記述を生成するレジスタ転送レベル記述生成部１６と、レジスタ転送レベル記述生成部１６により生成されたレジスタ転送レベル記述を出力する出力部１７と、を備える。【選択図】図２
2011192001.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の動作記述から内部表現を生成する内部表現生成部と、
前記内部表現生成部により生成された内部表現について、演算のスケジューリングを行うスケジューリング部と、
前記スケジューリング部の処理結果に基づいて、前記演算を実行するモジュールのクロック周波数を変更する周波数制御部と、
前記周波数制御部により変更されたクロック周波数で前記モジュールが動作するように、前記半導体集積回路の回路構成を決定するアロケーション部と、
前記アロケーション部の処理結果に基づいて、前記内部表現からレジスタ転送レベル記述を生成するレジスタ転送レベル記述生成部と、
前記レジスタ転送レベル記述生成部により生成されたレジスタ転送レベル記述を出力する出力部と、
を備えることを特徴とする高位合成装置。
【請求項２】
前記周波数制御部は、
前記モジュールが全ての演算を実行するのに必要な演算段の数を算出する演算段算出部と、
前記演算段算出部により算出された演算段の数に基づいて、前記モジュールのクロック周波数を減らすクロック周波数変更部と、
を備える請求項１記載の高位合成装置。
高位合成装置。
【請求項３】
前記周波数制御部は、さらに、減少したクロック周波数を有するモジュールにより実行される演算の演算段を変更するチェイニング部を備える、
請求項１又は２記載の高位合成装置。
【請求項４】
前記周波数制御部は、さらに、前記クロック周波数の変更量と、減少したクロック周波数を有するモジュールの識別情報と、を含む制御情報を生成する制御情報生成部を備え、
前記出力部は、さらに、前記制御情報生成部により生成された前記制御情報を出力する、
請求項１乃至３の何れか１項記載の高位合成装置。
【請求項５】
半導体集積回路の動作記述から内部表現を生成し、
前記内部表現について、演算のスケジューリングを行い
スケジューリングされた内部表現に基づいて、前記演算を実行するモジュールのクロック周波数を変更し、
前記変更されたクロック周波数で前記モジュールが動作するように、前記半導体集積回路の回路構成を決定し、
前記決定した回路構成に基づいて、前記内部表現からレジスタ転送レベル記述を生成し、
前記レジスタ転送レベル記述を出力する、
ことを特徴とする高位合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高位合成装置及び高位合成方法に関し、より詳しくは、半導体集積回路の設計に用いられる高位合成装置及び高位合成方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路の設計に用いられる高位合成では、ハードウェア記述言語（以下、「ＨＤＬ（Hardware Description Language）」という）により表現された動作記述からＣＤＦＧ（Control Data Flow Graph）等の内部表現が生成され、内部表現に基づいてスケジューリング及びアロケーションが行われ、スケジューリング及びアロケーションの結果に基づいてレジスタ転送レベル記述（以下、「ＲＴＬ（Register Transfer Level）記述」という）が生成されていた。
【０００３】
設計者は、半導体集積回路の消費電力を低減するために、高位合成において生成されるＲＴＬ記述を実現するモジュールの消費電力を低減する（例えば、低消費電力のモジュールを選択する）か、クロックゲーティング技術を採用する必要があった。
【０００４】
しかしながら、低消費電力のモジュールやクロックゲーティング技術による半導体集積回路の消費電力の低減には限界があった。
【０００５】
すなわち、従来の高位合成結果から、半導体集積回路の消費電力をさらに低減することは困難であった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２８７０８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、半導体集積回路の消費電力をさらに低減するための高位合成を行う高位合成装置及び高位合成方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の第１態様によれば、
半導体集積回路の動作記述から内部表現を生成する内部表現生成部と、
前記内部表現生成部により生成された内部表現について、演算のスケジューリングを行うスケジューリング部と、
前記スケジューリング部の処理結果に基づいて、前記演算を実行するモジュールのクロック周波数を変更する周波数制御部と、
前記周波数制御部により変更されたクロック周波数で前記モジュールが動作するように、前記半導体集積回路の回路構成を決定するアロケーション部と、
前記アロケーション部の処理結果に基づいて、前記内部表現からレジスタ転送レベル記述を生成するレジスタ転送レベル記述生成部と、
前記レジスタ転送レベル記述生成部により生成されたレジスタ転送レベル記述を出力する出力部と、
を備えることを特徴とする高位合成装置が提供される。
【０００９】
本発明の第２態様によれば、
半導体集積回路の動作記述から内部表現を生成し、
前記内部表現について、演算のスケジューリングを行い
スケジューリングされた内部表現に基づいて、前記演算を実行するモジュールのクロック周波数を変更し、
前記変更されたクロック周波数で前記モジュールが動作するように、前記半導体集積回路の回路構成を決定し、
前記決定した回路構成に基づいて、前記内部表現からレジスタ転送レベル記述を生成し、
前記レジスタ転送レベル記述を出力する、
ことを特徴とする高位合成方法が提供される。
【発明の効果】
【００１０】
本発明によれば、半導体集積回路の消費電力をさらに低減するための高位合成結果を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る高位合成装置１０を含むシステムの構成を示すブロック図である。
【図２】図１の高位合成装置１０の構成を示すブロック図である。
【図３】図２の周波数制御部１４の構成を示すブロック図である。
【図４】本実施形態に係る高位合成処理の手順を示すフローチャートである。
【図５】図４のスケジューリングステップ（Ｓ４０３）において生成されるスケジューリングされたＣＤＦＧの一例を示す概略図である。
【図６】図４の周波数制御ステップ（Ｓ４０４）の手順を示すフローチャートである。
【図７】図６のクロック周波数変更ステップ（Ｓ６０２）の処理結果に対応するＣＤＦＧの一例を示す概略図である。
【図８】図６のチェイニングステップ（Ｓ６０３）の手順を示すフローチャートである。
【図９】図６のチェイニングステップ（Ｓ６０３）において用いられるチェイニングテーブルの一例を示す概略図である。
【図１０】図６のチェイニングステップ（Ｓ６０３）の処理結果に対応するＣＤＦＧの一例を示す概略図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１３】
本実施形態に係る高位合成装置の構成について説明する。図１は、本実施形態に係る高位合成装置１０を含むシステムの構成を示すブロック図である。図２は、図１の高位合成装置１０の構成を示すブロック図である。図３は、図２の周波数制御部１４の構成を示すブロック図である。
【００１４】
図１に示すように、高位合成装置１０は、メモリ２０と、入力装置３０と、出力装置４０と、に接続される。メモリ２０には、高位合成装置１０の機能を実現するための高位合成プログラムが格納されている。入力装置３０は、ユーザが高位合成装置１０のオペレーションに必要な情報を入力するときに使用される。例えば、入力装置３０は、キーボードである。出力装置４０は、ユーザが高位合成装置１０のオペレーションの結果を確認するときに使用される。例えば、出力装置４０は、ディスプレイである。
【００１５】
図２に示すように、高位合成装置１０は、入力部１１と、内部表現生成部１２と、スケジューリング部１３と、周波数制御部１４と、アロケーション部１５と、ＲＴＬ記述生成部１６と、出力部１７と、を備える。
【００１６】
図２の入力部１１は、入力装置３０を使用してユーザが入力した情報を受け付けるように構成される。より具体的には、入力部１１は、ＨＤＬで表現された半導体集積回路の動作記述と、クロック周波数等の半導体集積回路の制約を示す制約情報と、半導体集積回路のパラメータを含むライブラリと、を受け付ける。
【００１７】
図２の内部表現生成部１２は、半導体集積回路の動作記述から内部表現を生成するように構成される。より具体的には、内部表現生成部１２は、動作記述の演算をノードに変換し、複数の演算の間のデータの流れを示す変数を、ノード間を接続する矢印で表現することによって、ＣＤＦＧを生成する。
【００１８】
図２のスケジューリング部１３は、内部表現生成部１２により生成された内部表現について、演算のスケジューリングを行うように構成される。より具体的には、スケジューリング部１３は、データの依存関係と、制約情報に示される半導体集積回路の制約と、を満たすように、演算段をＣＤＦＧの各演算に割り当てる。換言すると、スケジューリング部１３は、制約情報に基づいて、ＣＤＦＧの各演算を適切な演算段に配置する。１つの演算段には、１クロックサイクルで実行可能な１又は複数の演算が割り当てられる。
【００１９】
図２の周波数制御部１４は、スケジューリング部１３の処理結果に基づいて、演算を実行するモジュールのクロック周波数を変更するように構成される。図３に示すように、周波数制御部１４は、演算段算出部１４１と、クロック周波数変更部１４２と、チェイニング部１４３と、制御情報生成部１４４と、を備える。
【００２０】
図３の演算段算出部１４１は、モジュールが全ての演算を実行するのに必要な演算段（以下、「必要演算段」という）の数を算出するように構成される。
【００２１】
図３のクロック周波数変更部１４２は、演算段算出部１４１により算出された演算段の数に基づいて、モジュールのクロック周波数を減らすように構成される。
【００２２】
図３のチェイニング部１４３は、減少したクロック周波数を有するモジュールにより実行される演算の演算段を変更するように構成される。
【００２３】
図３の制御情報生成部１４４は、クロック周波数の変更量と、減少したクロック周波数を有するモジュールの識別情報と、を含む制御情報を生成するように構成される。
【００２４】
図２のアロケーション部１５は、周波数制御部１４により変更されたクロック周波数でモジュールが動作するように、半導体集積回路の回路構成を決定するように構成される。換言すると、アロケーション部１５は、スケジューリング部１３によりスケジューリングされたＣＤＦＧの各演算を適切な演算器等の回路素子に変換する。
【００２５】
図２のＲＴＬ記述生成部１６は、アロケーション部１５の処理結果に基づいて、内部表現からＲＴＬ記述を生成するように構成される。
【００２６】
図２の出力部１７は、ＲＴＬ記述生成部１６により生成されたＲＴＬ記述と、制御情報生成部１４４により生成された制御情報と、を出力するように構成される。
【００２７】
本実施形態に係る高位合成処理について説明する。図４は、本実施形態に係る高位合成処理の手順を示すフローチャートである。図５は、図４のスケジューリングステップ（Ｓ４０３）において生成されるスケジューリングされたＣＤＦＧの一例を示す概略図である。
【００２８】
＜図４：入力ステップ（Ｓ４０１）＞  入力部１１が、動作記述と、制約情報と、ライブラリと、を入力装置３０から受け付ける。例えば、制約情報には、クロック周波数が１００［ＭＨｚ］であり、モジュールが動作するサイクル数の制約（以下、「サイクル制約」という）が８サイクルであることが示される。それにより、高位合成処理に必要な情報が高位合成装置１０に供給される。
【００２９】
＜図４：内部表現生成ステップ（Ｓ４０２）＞  内部表現生成部１２が、入力ステップ（Ｓ４０１）において受け付けられた動作記述から内部表現を生成する。
【００３０】
＜図４：スケジューリングステップ（Ｓ４０３）＞  スケジューリング部１３が、内部表現生成部ステップ（Ｓ４０２）において生成された内部表現について、演算のスケジューリングを行う。それにより、スケジューリングされた内部表現が生成される。スケジューリングされた内部表現では、動作記述に現れる演算の実行ステップが決められる。より具体的には、スケジューリング部１３は、ＡＳＡＰ（As Soon As Possible）アルゴリズム又はＡＬＡＰ（As Late As Possible）アルゴリズムを用いて、ＣＤＦＧのスケジューリングを行う。アルゴリズムがＡＳＡＰであり、且つ、演算遅延が１０［ｎｓ］である場合には、図５のスケジューリングされたＣＤＦＧが生成される。図５には、演算ＣＦ１〜ＣＦ４を含むモジュールＦと、演算ＣＧ１〜ＣＧ１８を含むモジュールＧと、が示される。図５では、矢印がデータの流れを示し、破線がクロックサイクルＣＣｎ（ｎ：１，２，・・）を示す。図５のスケジュールされたＣＤＦＧでは、矢印が破線と交わったときに、データの保持が行われる。すなわち、図５に示すように、矢印と破線の交点にラッチＬｍ（ｍ：１，２，・・）が設けられる。モジュールＦでは、９回のラッチＬ１〜Ｌ９が設けられる。モジュールＧでは、２０回のラッチＬ１〜Ｌ２０が設けられる。ラッチＬｍの数が増えるほど、消費電力の高い半導体集積回路のＲＴＬ記述が生成される。
【００３１】
＜図４：周波数制御ステップ（Ｓ４０４）＞  周波数制御部１４が、スケジューリングステップ（Ｓ４０３）において生成されたスケジューリングされた内部表現について、演算を実行するモジュールのクロック周波数を減らす。
【００３２】
周波数制御ステップ（Ｓ４０４）の手順について説明する。図６は、図４の周波数制御ステップ（Ｓ４０４）の手順を示すフローチャートである。図７は、図６のクロック周波数変更ステップ（Ｓ６０２）の処理結果に対応するＣＤＦＧの一例を示す概略図である。
【００３３】
＜図６：演算段算出ステップ（Ｓ６０１）＞  演算段算出部１４１が、必要演算段の数を算出する。例えば、図５に示すように、ＡＳＡＰアルゴリズムを用いて生成されたＣＤＦＧでは、１つのクロックサイクルＣＣｎにおいて１つの演算が実行される。従って、先頭の演算が割り当てられたクロックサイクルと最後の演算が割り当てられたクロックサイクルとの間のクロックサイクルの数が、全ての演算を実行するのに必要な演算段の数である。図５では、モジュールＦについては、演算段ＣＳ２に最後の演算ＣＦ４が割り当てられ、モジュールＧについては、演算段ＣＳ８に最後の演算ＣＧ１８が割り当てられる。従って、モジュールＦの必要演算段の数は３であり、モジュールＧの必要演算段の数は９である。なお、演算段算出部１４１は、ＡＬＡＰ等のその他のアルゴリズムを用いて生成されたＣＤＦＧについても、同様の方法により、必要演算段の数を算出することができる。
【００３４】
＜図６：クロック周波数変更ステップ（Ｓ６０２）＞  クロック周波数変更部１４２が、演算段算出ステップ（Ｓ６０１）において算出された必要演算段の数に基づいて、モジュールのクロック周波数を減らす。より具体的には、クロック周波数変更部１４２は、式１を用いて新たなクロック周波数を算出する。例えば、図５では、元のクロック周波数（ｆ）は１００［ＭＨｚ］であり、モジュールＦの必要演算段の数（ＳＦ）は３であり、モジュールＧの必要演算段の数（ＳＧ）は９であり、サイクル制約（Ｃ）は８である。従って、モジュールＦの新たなクロック周波数（ｆ´Ｆ）は約５０［ＭＨｚ］であり、モジュールＧの新たなクロック周波数（ｆ´Ｇ）は約１１２［ＭＨｚ］である。この場合には、モジュールＦのクロック周波数は５０［ＭＨｚ］に変更され、モジュールＧのクロック周波数は１００［ＭＨｚ］に維持される。その結果、図７に示すようなＣＤＦＧが生成される。図５のＣＤＦＧと比較すると、図７のＣＤＦＧでは、モジュールＦのクロック周波数が半分であるので、モジュールＦのラッチの数も減少する。より具体的には、図５では、モジュールＦのラッチの数は９個（Ｌ１〜Ｌ９）であるのに対して、図７では、モジュールＦのラッチの数は５個（Ｌ１〜Ｌ５）である。換言すると、図５のＣＤＦＧと比較すると、図７のＣＤＦＧからは、消費電力の低いＲＴＬ記述が生成される。
［数１］  ｆ´＝ｆ×Ｓ／Ｃ  ・・・  （式１）
ｆ：元のクロック周波数
ｆ´：新たなクロック周波数
Ｓ：必要演算段の数
Ｃ：サイクル制約
【００３５】
＜図６：チェイニングステップ（Ｓ６０３）＞  チェイニング部１４３が、クロック周波数変更ステップ（Ｓ６０２）において変更されたクロック周波数を有するモジュールにより実行される演算の演算段を変更する。
【００３６】
チェイニングステップ（Ｓ６０３）の手順について説明する。図８は、図６のチェイニングステップ（Ｓ６０３）の手順を示すフローチャートである。図９は、図６のチェイニングステップ（Ｓ６０３）において用いられるチェイニングテーブルの一例を示す概略図である。図１０は、図６のチェイニングステップ（Ｓ６０３）の処理結果に対応するＣＤＦＧの一例を示す概略図である。
【００３７】
＜図８：Ｓ８０１＞  チェイニング部１４３が、入力ステップ（Ｓ４０１）において受け付けられたライブラリに基づいて、チェイニングテーブルを生成する。図９に示すように、チェイニングテーブルは、ＣＤＦＧの演算の識別情報を示す「識別情報」と、演算が終了する時刻を示す「時刻（Ｔ）」と、演算が実行されるサイクルを示す「実行サイクル（Ｃ）」と、チェイニングステップ（Ｓ６０３）が完了したことを示す「完了フラグ」と、を含む。演算の識別情報は、ライブラリに含まれる。
【００３８】
＜図８：Ｓ８０２＞  チェイニング部１４３が、変数Ｓに初期値１を設定する。変数Ｓは、チェイニングステップ（Ｓ６０３）で取り扱われる演算（以下、「対象演算」という）の識別情報に対応する。
【００３９】
＜図８：Ｓ８０３＞  チェイニング部１４３が、「識別情報」の値と変数Ｓの値とが一致する演算をスタックする。すなわち、Ｓ８０２において変数Ｓに設定された初期値に対応する演算が対象演算としてスタックされる。
【００４０】
＜図８：Ｓ８０４＞  チェイニング部１４３が、演算がスタックされているか否かを判定する。演算がスタックされている場合には（Ｓ８０４−ＹＥＳ）、Ｓ８０５に進む。演算がスタックされていない場合には（Ｓ８０４−ＮＯ）、Ｓ８１１に進む。すなわち、初期値に対応する演算がある場合にはＳ８０５に進み、初期値に対応する演算がない場合にはＳ８１１に進む。
【００４１】
＜図８：Ｓ８０５＞  チェイニング部１４３が、“ＴＰ＋Ｔ”の値を対象演算の「時刻（Ｔ）」に設定する。ＴＰは、識別情報の値が変数Ｓの値より小さい演算（以下、「先行演算」という）の「時刻（Ｔ）」の値の中の最大値である。それにより、変数Ｓに対応する演算の実行時刻（仮の実行時刻）が決まる。
【００４２】
＜図８：Ｓ８０６＞  チェイニング部１４３が、“Ｔ／ｆ´”を切り上げた値を「実行サイクル（Ｃ）」に設定する。それにより、変数Ｓに対応する演算の「実行サイクル（Ｃ）」が“Ｃ＋１”に決まる。
【００４３】
＜図８：Ｓ８０７＞  チェイニング部１４３が、「実行サイクル（Ｃ）」の値が先行演算の実行サイクル（ＣＰ）の値と一致するか否かを判定する。「実行サイクル（Ｃ）」の値が先行演算の実行サイクル（ＣＰ）の値と一致する場合には（Ｓ８０７−ＹＥＳ）、Ｓ８０８に進む。「実行サイクル（Ｃ）」の値が先行演算の実行サイクル（ＣＰ）の値と一致しない場合には（Ｓ８０７−ＮＯ）、Ｓ８０９に進む。
【００４４】
＜図８：Ｓ８０８＞  チェイニング部１４３が、“Ｃ×ｆ´＋Ｔ”の値を「時刻（Ｔ）」に設定する。それにより、変数Ｓに対応する演算の実行時刻が決まる。
【００４５】
＜図８：Ｓ８０９＞  チェイニング部１４３が、対象演算の「完了フラグ」にフラグを設定する。それにより、チェイニングステップが完了した演算が記録される。
【００４６】
＜図８：Ｓ８１１＞  チェイニング部１４３が、変数Ｓをインクリメントする。それにより、対象演算が変更される。
【００４７】
＜図８：Ｓ８１２＞  チェイニング部１４３が、「識別情報」の値と変数Ｓの値とが一致する演算をスタックする。それにより、Ｓ８１１において変数Ｓに設定された値に対応する演算が対象演算としてスタックされる。
【００４８】
＜図８：Ｓ８１３＞  チェイニング部１４３が、演算がスタックされているか否かを判定する。演算がスタックされている場合には（Ｓ８１１−ＹＥＳ）、Ｓ８０５に戻る。演算がスタックされていない場合には（Ｓ８１３−ＮＯ）、チェイニングステップ（Ｓ６０３）を終了する。
【００４９】
チェイニングステップ（Ｓ６０３）の具体例について説明する。
【００５０】
はじめに、図７のチェイニングテーブルが生成される。
【００５１】
次いで、図７の演算ＣＦ１，ＣＦ２がスタックされる。演算ＣＦ１，ＣＦ２の先行演算は存在しないので、演算ＣＦ１，ＣＦ２の「時刻（Ｔ）」に、演算ＣＦ１，ＣＦ２の実行時間である１０［ｎｓ］が設定される。次いで、演算ＣＦ１，ＣＦ２の「実行サイクル」に１が設定される。「実行サイクル（Ｃ）」に設定される値は、「時刻（Ｔ）」の値をクロック周期（２０［ｎｓ］）で割り、その値（「時刻（Ｔ）」／「クロック周期」）を切り上げることにより算出される。次いで、演算ＣＦ１，ＣＦ２の「完了フラグ」にフラグ“○”が設定される。
【００５２】
次いで、演算ＣＦ１，ＣＦ２に後続する演算ＣＦ３がスタックされる。次いで、演算ＣＦ３の「時刻（Ｔ）」に、演算ＣＦ３の実行時間である１０［ｎｓ］と先行演算である演算ＣＦ１又は演算ＣＦ２の時刻１０［ｎｓ］との和である２０［ｎｓ］が設定される。次いで、演算ＣＦ３の「実行サイクル」に１が設定される。ついで、演算ＣＦ３の「完了フラグ」にフラグ“○”が設定される。
【００５３】
次いで、演算ＣＦ３に後続する演算ＣＦ４がスタックされる。次いで、演算ＣＦ４の「時刻（Ｔ）」に、演算ＣＦ４の実行時間である１０［ｎｓ］と先行演算である演算ＣＦ３の時刻２０［ｎｓ］との和である３０［ｎｓ］が設定される。次いで、演算ＣＦ４の「実行サイクル」に２が設定される。ついで、演算ＣＦ４の「完了フラグ」にフラグ“○”が設定される。
【００５４】
その結果、図１０に示すようなＣＤＦＧが生成される。図１０のＣＤＦＧでは、図７のＣＤＦＧと比較して、演算ＣＦ１〜ＣＦ３が同じ演算段で実行されるので、モジュールＦのラッチの数が減少する。すなわち、図１０では、モジュールＦのラッチの数は４個（Ｌ１〜Ｌ４）である。図７のＣＤＦＧと比較すると、図１０のＣＤＦＧからは、消費電力の低いＲＴＬ記述が生成される。
【００５５】
＜図６：制御情報生成ステップ（Ｓ６０４）＞  制御情報生成部１４４が、クロック周波数変更ステップ（Ｓ６０２）において変更されたクロック周波数の変更量と、変更されたクロック周波数を有するモジュールの識別情報と、を含む制御情報を生成する。例えば、チェイニングステップ（Ｓ６０３）において図１０のＣＤＦＧが生成された場合には、変更量は５０［ＭＨｚ］であり、モジュールの識別情報は「Ｆ」である。
【００５６】
図４の周波数制御ステップ（Ｓ４０４）は、図６の制御情報生成ステップ（Ｓ６０４）の後に終了する。
【００５７】
＜図４：アロケーションステップ（Ｓ４０５）＞  アロケーション部１５が、周波数制御ステップ（Ｓ４０４）において変更されたクロック周波数でモジュールが動作するように、半導体集積回路の回路構成を決定する。例えば、チェイニングステップ（Ｓ６０３）において図１０のＣＤＦＧが生成された場合には、アロケーション部１５は、図１０のＣＤＦＧを実現する回路構成を決定する。
【００５８】
＜図４：ＲＴＬ記述生成ステップ（Ｓ４０６）＞  ＲＴＬ記述生成部１６が、アロケーションステップ（Ｓ４０５）の処理結果に基づいて、内部表現からＲＴＬ記述を生成する。例えば、チェイニングステップ（Ｓ６０３）において図１０のＣＤＦＧが生成された場合には、ＲＴＬ記述生成部１６は、図１０のＣＤＦＧを実現する半導体集積回路のＲＴＬ記述を生成する。それにより、内部表現生成ステップ（Ｓ４０２）において生成された図５のＣＤＦＧを実現する半導体集積回路と比べて、消費電力が低い半導体集積回路のＲＴＬ記述が生成される。
【００５９】
＜図４：出力ステップ（Ｓ４０７）＞  出力部１７が、ＲＴＬ記述生成ステップ（Ｓ４０６）において生成されたＲＴＬ記述と、制御情報生成ステップ（Ｓ６０４）において生成された制御情報と、を出力装置４０に出力する。それにより、従来に比べて、消費電力の低い半導体集積回路のＲＴＬ記述と、本実施形態に係る高位合成処理に関する制御情報と、が得られる。
【００６０】
図４の高位合成処理は、出力ステップ（Ｓ４０７）の後に終了する。
【００６１】
本実施形態によれば、周波数制御部１４により、ラッチの数が減少するように、演算を実行するモジュールのクロック周波数が制御される。それにより、従来に比べて、消費電力の低い半導体集積回路のＲＴＬ記述が得られる。
【００６２】
また、本実施形態によれば、チェイニング部１４３により、演算の演算段が変更される。それにより、さらに消費電力の低い半導体集積回路のＲＴＬ記述が得られる。
【００６３】
本発明の実施形態に係る高位合成装置１０の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、高位合成装置１０の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００６４】
また、本発明の実施形態に係る高位合成装置１０の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００６５】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００６６】
１０  高位合成装置
１１  入力部
１２  内部表現生成部
１３  スケジューリング部
１４  周波数制御部
１４１  演算段算出部
１４２  クロック周波数変更部
１４３  チェイニング部
１４４  制御情報生成部
１５  アロケーション部
１６  ＲＴＬ記述生成部
１７  出力部
２０  メモリ
３０  入力装置
４０  出力装置
【図１】
2011192001.tif 000003
【図２】
2011192001.tif 000004
【図３】
2011192001.tif 000005
【図４】
2011192001.tif 000006
【図５】
2011192001.tif 000007
【図６】
2011192001.tif 000008
【図７】
2011192001.tif 000009
【図８】
2011192001.tif 000010
【図９】
2011192001.tif 000011
【図１０】
2011192001.tif 000012