(57)【特許請求の範囲】
【請求項１】
設計対象回路に関する動作記述情報のＣＦＧ変換結果に基づいて、前記設計対象回路の１クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第１の合成結果を生成し、
生成された前記第１の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第１の回路規模情報を算出し、
前記ＣＦＧ変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第２の合成結果を取得し、
取得された前記第２の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第２の回路規模情報を算出し、
算出された前記第１の回路規模情報と算出された前記第２の回路規模情報とを出力する、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項２】
前記第１の回路規模情報と前記第２の回路規模情報とに基づいて、前記第２の合成結果による回路規模の妥当性を判定する処理を前記コンピュータに実行させ、
前記出力する処理は、
判定結果を出力することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記判定する処理は、
前記第２の回路規模情報から前記第１の回路規模情報を引いた差としきい値とを比較することにより、前記第２の合成結果による回路規模の妥当性を判定することを特徴とする請求項２に記載の設計支援プログラム。
【請求項４】
前記判定する処理は、
前記第１の回路規模情報および前記第２の回路規模情報の比率としきい値とを比較することにより、前記第２の合成結果による回路規模の妥当性を判定することを特徴とする請求項２に記載の設計支援プログラム。
【請求項５】
前記出力する処理は、
前記判定結果が前記しきい値以上である場合、警告情報を出力することを特徴とする請求項３または４に記載の設計支援プログラム。
【請求項６】
前記生成する処理は、
演算器ごとに遅延量を記憶する記憶部から前記設計対象回路に含まれる演算器のうち遅延量が最小な演算器を取得することにより、前記第１の合成結果を生成することを特徴とする請求項１〜５のいずれか一つに記載の設計支援プログラム。
【請求項７】
コンピュータが、
設計対象回路に関する動作記述情報のＣＦＧ変換結果に基づいて、前記設計対象回路の１クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第１の合成結果を生成し、
生成された前記第１の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第１の回路規模情報を算出し、
前記ＣＦＧ変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第２の合成結果を取得し、
取得された前記第２の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第２の回路規模情報を算出し、
算出された前記第１の回路規模情報と算出された前記第２の回路規模情報とを出力する、
処理を実行することを特徴とする設計支援方法。
【請求項８】
設計対象回路に関する動作記述情報のＣＦＧ変換結果に基づいて、前記設計対象回路の１クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第１の合成結果を生成する生成部と、
前記生成部によって生成された第１の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第１の回路規模情報を算出する第１の算出部と、
前記ＣＦＧ変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第２の合成結果を取得する取得部と、
前記取得部によって取得された第２の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第２の回路規模情報を算出する第２の算出部と、
前記第１の算出部によって算出された第１の回路規模情報と前記第２の算出部によって算出された第２の回路規模情報とを出力する出力部と、
を有することを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援プログラム、設計支援方法、および設計支援装置に関する。
【背景技術】
【０００２】
従来から回路設計については様々な技術が開示されている。たとえば、従来例１の高位合成方法は、入力ファイルと制約ファイルとに基づいてＣＤＦＧ（Ｃｏｎｔｒｏｌ  Ｄａｔａ  Ｆｌｏｗ  Ｇｒａｐｈ）を生成し、ＣＤＦＧとデジタル回路の制約条件とに基づいてＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）を生成する。つぎに、従来例１の高位合成方法は、ＣＤＦＧの各ノードをＦＳＭの各状態に割り当ててスケジューリングする。そして、従来例１の高位合成方法は、ＣＤＦＧの各ノードに対して、デジタル回路を構成するための資源のレイアウトを示す資源レベルレイアウト情報に基づいて資源を割り当てて回路情報を生成する（たとえば、下記特許文献１を参照。）。
【０００３】
また、従来例２の回路自動設計方法は、通常セル用セルライブラリおよび設計対象回路の仕様情報を取得し、設計対象回路における仮想グラウンド線の上限電位を設定し、上限電位を用いて低閾値セル用セルライブラリを作成する。そして、従来例２の高位合成方法は、仕様情報を論理合成してネットリストを生成し、ネットリスト，通常セル用セルライブラリ，および低閾値セル用セルライブラリに基づき、レイアウトを作成する（たとえば、下記特許文献２を参照。）。
【０００４】
また、従来例３のプログラム変換装置は、一連の動作内容が記述された動作記述プログラムを、動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する。そして、従来例３のプログラム変換装置は、回路記述プログラムが示す設計内容を１以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する（たとえば、下記特許文献３を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１６４６２７号公報
【特許文献２】特開２００５−１３５１７７号公報
【特許文献３】特開２００８−１２３１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、回路規模の大きさについて客観的な指標がないため、高位合成結果による回路規模がどの程度の大きさであるか把握することが困難である。また、回路規模の大きさが把握できても、その大きさが大きすぎるのか妥当な大きさなのかを設計者が判断するのは困難である。
【０００７】
本発明は、高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、設計対象回路に関する動作記述情報のＣＦＧ変換結果に基づいて、前記設計対象回路の１クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第１の合成結果を生成し、生成された第１の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第１の回路規模情報を算出し、前記ＣＦＧ変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第２の合成結果を取得し、取得された第２の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第２の回路規模情報を算出し、算出された第１の回路規模情報と算出された第２の回路規模情報とを出力する設計支援プログラム、設計支援方法、および設計支援装置が提案される。
【発明の効果】
【０００９】
本発明の一側面によれば、高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態にかかる設計支援例を示す説明図である。
【図２】図２は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。
【図３】図３は、記憶部の記憶内容例を示す説明図である。
【図４】図４は、設計支援装置の機能的構成例を示すブロック図である。
【図５】図５は、動作記述情報の一例を示す説明図である。
【図６】図６は、図５に示した動作記述情報のＣＦＧ変換例を示す説明図である。
【図７】図７は、合成部による合成例を示す説明図である。
【図８】図８は、アロケーション結果を示す説明図である。
【図９】図９は、図８に示したアロケーション結果の具体例を示す説明図である。
【図１０】図１０は、他のアロケーション結果例を示す説明図である。
【図１１】図１１は、生成部により生成された第１の合成結果の一例を示す説明図である。
【図１２】図１２は、設計支援装置による設計支援処理手順例を示すフローチャートである。
【図１３】図１３は、ＣまたはＣ＋＋により記述された動作記述情報によるＣＦＧ変換例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援方法、および設計支援装置の実施の形態を詳細に説明する。
【００１２】
＜設計支援例＞
図１は、本実施の形態にかかる設計支援例を示す説明図である。設計支援例では、設計支援装置は、設計対象回路の動作記述情報から得られたＣＦＧ（Ｃｏｎｔｒｏｌ  Ｆｌｏｗ  Ｇｒａｐｈ）変換結果１００から、クロック周期が十分に大きい第１の合成結果１０１を生成する。第１の合成結果１０１は、動作速度が最も遅い、すなわち、遅延量が最も大きい演算回路であり、クロックサイクルを１クロックサイクルとした回路情報である。
【００１３】
第１の合成結果１０１では、演算回路１１１〜１１３の総遅延量以上の時間長が、１クロックサイクルのクロック周期となる。そして、設計支援装置は、第１の合成結果１０１を構成する回路の総面積により、第１の合成結果１０１の回路規模の大きさを示す回路規模情報を求める。ここでは、第１の合成結果１０１の回路規模情報Ｓ０をＳ０＝１０００とする。
【００１４】
また、設計支援装置は、従来どおり、ＣＦＧ変換結果１００に対し、設計対象回路に与えられたタイミング制約に従って第２の合成結果１０２を生成する。第２の合成結果１０２は、タイミング制約を遵守するように演算回路が採用された回路情報である。図１では、タイミング制約は、２クロックサイクルとし、１クロックサイクルのクロック周期をα［ｓｅｃ］とする。
【００１５】
したがって、演算回路１１１の遅延量はα［ｓｅｃ］以下となり、また、演算回路１１４，１１５の総遅延量もα［ｓｅｃ］以下となる。そして、設計支援装置は、第２の合成結果１０２を構成する回路の総面積により、第２の合成結果１０２の回路規模の大きさを示す回路規模情報Ｓ１を求める。ここでは、第２の合成結果１０２の回路規模情報Ｓ１をＳ１＝１７５０とする。
【００１６】
設計支援装置は、第１の合成結果１０１の回路規模情報Ｓ０（＝１０００）と第２の合成結果１０２の回路規模情報Ｓ１（＝１７５０）とにより、比較情報Ｃ１を算出する。ここでは、比較情報Ｃ１はＳ１／Ｓ０とする。そして、比較情報Ｃ１がしきい値Ｃｔ以上である場合、設計支援装置は警告情報を出力する。
【００１７】
このように、第１の合成結果１０１を客観的な指標として用い、第２の合成結果１０２の採否を判定することができるため、設計者は、第２の合成結果１０２の回路規模の大きさを相対的に確認することができる。なお、図１の例では、比較情報Ｃ１を求めてしきい値Ｃｔと比較したが、設計支援装置は、回路規模情報Ｓ１から回路規模情報Ｓ０を引いた差分を比較情報Ｃ１としてもよい。
【００１８】
また、設計支援装置が回路規模情報Ｓ０と回路規模情報Ｓ１とをそのまま出力し、設計者が出力結果を視認して判定することとしてもよい。いずれにしても、本実施の形態によれば、第１の合成結果１０１という客観的な指標を用いることにより、第２の合成結果１０２の回路規模が妥当な大きさか否かを判定でき、妥当である場合、回路規模の増大を抑制することができることになる。
【００１９】
＜設計支援装置のハードウェア構成例＞
図２は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。図２において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２０】
ここで、ＣＰＵ２０１は、設計支援装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２１】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２２】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２３】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２４】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２５】
スキャナ２１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。なお、光ディスクドライブ２０６、光ディスク２０７、ディスプレイ２０８、キーボード２１０、マウス２１１、スキャナ２１２、およびプリンタ２１３の少なくともいずれか１つは、なくてもよい。
【００２６】
＜ライブラリの記憶内容例＞
図３は、記憶部の記憶内容例を示す説明図である。記憶部３００は、回路ごとに、面積と遅延量を記憶するライブラリである。記憶部３００は、合成処理を実行する場合に参照される。記憶部３００は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置により、その機能を実現する。
【００２７】
記憶部３００において、回路とは、設計対象回路の構成要素であり、ＡＮＤやＡＤＤ（加算器）などの演算回路やレジスタ（ＦＦ）やセレクタ（ＳＥＬ）などのデータ保持回路を含む。記憶部３００では、同一種の回路であっても、面積や遅延量の相違から複数種類用意されている。また、遅延量とは、その回路にデータが入力されてから出力されるまでの時間である。したがって、遅延量が小さいほど動作速度が速いこととなるが、動作速度が速いほど面積が大きくなる。
【００２８】
（設計支援装置の機能的構成例）
図４は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置４００は、記憶部３００と、変換部４０１と、合成部４０２と、取得部４０３と、生成部４０４と、第１の算出部４０５と、第２の算出部４０６と、出力部４０７と、判定部４０８と、を有する。変換部４０１、生成部４０４、第１の算出部４０５、合成部４０２、取得部４０３、第２の算出部４０６、出力部４０７、および判定部４０８は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。
【００２９】
変換部４０１は、設計対象回路に関する動作記述情報をＣＦＧ変換する。動作記述情報とは、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）よりも抽象度が高いレベルであり、ＲＴＬのようにクロックが規定されていないレベルの記述情報である。動作記述情報は、具体的には、たとえば、Ｃ、Ｃ＋＋、ＳｙｓｔｅｍＣなどにより記述された情報である。
【００３０】
図５は、動作記述情報の一例を示す説明図である。図５の動作記述情報５００は、ＳｙｓｔｅｍＣにより記述された動作記述情報５００である。図５の例では、上から２行目までがリセットを示す。また、図６は、図５に示した動作記述情報５００のＣＦＧ変換例を示す説明図である。ＣＦＧ変換結果１００では、ｗａｉｔ（）によりクロックサイクルが表現される。
【００３１】
合成部４０２は、ＣＦＧ変換結果１００に基づいて、第２の合成結果１０２を生成する。具体的には、たとえば、合成部４０２は、従来と同様、設計対象回路に与えられたタイミング制約を遵守する高位合成を実行する。ここで、合成部４０２による合成例について説明する。
【００３２】
図７は、合成部４０２による合成例を示す説明図である。ＣＦＧ変換結果１００内のｗａｉｔ（）はクロックサイクル数を表現するため、初期状態のＣＦＧ変換結果１００は１クロックサイクルで動作する。ここで、タイミング制約としてクロックサイクル数「２」が与えられた場合、ＣＦＧ変換結果１００内のｗａｉｔ（）はクロックサイクル数を表現するため、ＣＦＧ結果にｗａｉｔ（）が挿入される。これにより、ＣＦＧ変換結果１００は２クロックサイクルで動作する。つぎに、合成部４０２は、スケジューリングを実行する。
【００３３】
スケジューリングとは、個々の演算回路をいずれかのクロックサイクルに割り当てる処理である。クロックサイクルの時間長、すなわち、クロック周期は、タイミング制約として与えられたクロック周波数の逆数となる。たとえば、クロック周波数が４００［ＭＨｚ］である場合、クロック周期は１／４００［μｓｅｃ］となる。したがって、合成部４０２は、記憶部３００を参照して、クロック周期内に演算回路の遅延量が収まるように演算回路を割り当てることになる。図７の例では、「ａｄｄ１」に対応する演算回路は、０〜１クロックサイクル間に割り当てられ、「ｍｕｌｔ１」および「ｏｕｔ」に対応する演算回路は、１〜２クロックサイクル間に割り当てられる。これにより、ＣＦＧ変換結果７００が得られる。
【００３４】
つぎに、合成部４０２は、スケジューリング後のＣＦＧ変換結果７００に対しアロケーションを実行する。アロケーションとは、スケジューリング後のＣＦＧ変換結果７００に従って、記憶部３００内の回路情報を接続する処理である。接続の際に共有できる演算回路は共有化される。また、ｗａｉｔ（）については、レジスタに置換される。
【００３５】
図８は、アロケーション結果を示す説明図である。図８のアロケーション結果８００は、図７に示したＣＦＧ変換結果７００をアロケーションした情報である。アロケーション結果は、たとえば、ＲＴＬ記述情報として出力される。アロケーション結果８００が、第２の合成結果１０２となる。
【００３６】
図９は、図８に示したアロケーション結果８００の具体例を示す説明図である。図９は、タイミング制約が２クロックサイクルの場合のアロケーション結果９００を示している。ここでは、１クロックサイクルのクロック周期をα［ｓｅｃ］とする。演算回路１１１，１１４，１１５の各々の遅延量は、クロック周期α以下である。また、演算回路１１４，１１５の総遅延量もクロック周期α以下である。したがって、アロケーション結果９００では、０〜１クロックサイクル間に、演算回路１１１が割り当てられ、１〜２クロックサイクル間に演算回路１１４，１１５が割り当てられる。
【００３７】
図１０は、他のアロケーション結果例を示す説明図である。図１０は、タイミング制約が３クロックサイクルの場合のアロケーション結果１０００を示している。ここでも、１クロックサイクルのクロック周期をα［ｓｅｃ］とする。演算回路１１１〜１１３の各々の遅延量は、クロック周期α以下である。したがって、アロケーション結果１０００では、０〜１クロックサイクル間に、演算回路１１１が割り当てられ、１〜２クロックサイクル間に演算回路１１２が割り当てられ、２〜３クロックサイクル間に演算回路１１３が割り当てられる。
【００３８】
図９と図１０を比較すると、図９において、１〜２クロックサイクル間では、乗算器と加算器の総遅延時間をα以内に収める必要があるため、演算回路１１２，１１３よりも遅延量の少ない演算回路１１４，１１５が採用される。また、図１０では、たとえば、乗算器としては、演算回路１１２，１１４があるが、いずれもクロック周期α以内に収まるため、演算回路１１４よりも回路規模が小さい演算回路１１２が採用される。演算回路１１３，１１５についても同様である。
【００３９】
なお、タイミング制約において、２クロックサイクルと規定されている場合は、図９のアロケーション結果が、３クロックサイクルと規定されている場合は、図１０のアロケーション結果が得られる。これに対し、２〜３クロックサイクルと規定されている場合は、両アロケーション結果が得られることになる。
【００４０】
図４に戻って、取得部４０３は、設計対象回路のＣＦＧ変換結果１００に基づいたタイミング制約を遵守する設計対象回路の第２の合成結果１０２を取得する。具体的には、たとえば、合成部４０２によって得られたアロケーション結果を取得する。また、合成部４０２は設計支援装置４００外に存在してもよいため、取得部４０３は、設計支援装置４００外からアロケーション結果を取得することとしてもよい。この場合、合成部４０２は、設計支援装置４００には含まれないものとする。
【００４１】
生成部４０４は、設計対象回路に関する動作記述情報５００のＣＦＧ変換結果１００に基づいて、設計対象回路の１クロックサイクルの時間長が設計対象回路が動作するクロック周期以上となる第１の合成結果１０１を生成する。具体的には、たとえば、生成部４０４は、通常の高位合成、すなわち、上述した合成部４０２のような処理を実行せずに、ＣＦＧ変換結果１００に従って、演算回路群を配置し、最終段にレジスタを配置した第１の合成結果１０１をアロケーション結果として生成する。また、第１の合成結果１０１は、１クロックサイクルで動作する。この場合、１クロックサイクルの時間長、すなわち、クロック周期は、設計対象回路が動作するクロック周期以上の時間長となる。
【００４２】
図１１は、生成部４０４により生成された第１の合成結果１０１の一例を示す説明図である。第１の合成結果１０１では、加算器および乗算器は、回路規模が最も小さい演算回路１１１〜１１３が採用される。回路規模が小さいと遅延量が大きくなるが、１クロックサイクルのクロック周期は十分大きい値に設定されるため、演算回路１１１〜１１３の総遅延量が収まる範囲となる。ここで、１クロックサイクルのクロック周期は、たとえば１００［ｓｅｃ］など、あらかじめ十分大きなクロック周期βが与えられる。また、クロック周期βは、設計対象回路の演算回路および最終段のレジスタの総遅延量以上となる値に設定してもよい。
【００４３】
また、図１１では、回路規模が最小の回路を採用して第１の合成結果１０１を生成することとしたが、クロック周期βに収まる範囲内であれば、生成部４０４は、どの回路規模の回路を採用してもよい。たとえば、回路規模の小型化を優先する場合は、生成部４０４は、記憶部３００を参照して、上記のように回路規模が最小の回路を採用すればよく、また、動作速度の高速化を優先する場合は、生成部４０４は、記憶部３００を参照して、遅延量が最小の回路を採用すればよい。また、回路規模の小型化および動作速度の高速化の両方を満足させたい場合は、生成部４０４は、記憶部３００を参照して、回路規模および動作速度が平均的な回路を採用すればよい。
【００４４】
図４に戻って、第１の算出部４０５は、生成部４０４によって生成された第１の合成結果１０１に基づいて、設計対象回路の回路規模の大きさを示す第１の回路規模情報Ｓ０を算出する。具体的には、たとえば、第１の算出部４０５は、第１の合成結果１０１内の回路の面積を記憶部３００から参照して、総和を求める。求めた総和が設計対象回路の回路規模の大きさを示す第１の回路規模情報Ｓ０である。
【００４５】
また、第２の算出部４０６は、取得部４０３によって取得された第２の合成結果１０２に基づいて、設計対象回路の回路規模の大きさを示す第２の回路規模情報Ｓ１を算出する。第２の算出部４０６も、第１の算出部４０５と同様、具体的には、たとえば、第２の合成結果１０２内の回路の面積を記憶部３００から参照して、総和を求める。求めた総和が設計対象回路の回路規模の大きさを示す第２の回路規模情報Ｓ１である。第２の合成結果１０２が複数得られた場合には、各々について第２の回路規模情報が求められる。
【００４６】
出力部４０７は、第１の算出部４０５によって算出された第１の回路規模情報Ｓ０と第２の算出部４０６によって算出された第２の回路規模情報Ｓ１とを出力する。具体的には、たとえば、第１の回路規模情報Ｓ０と第２の回路規模情報Ｓ１とを、印刷出力したり、ディスプレイ２０８に表示したり、外部装置に送信したりする。また、設計支援装置４００内の記憶装置に格納してもよい。これにより、設計者は、第１の回路規模情報Ｓ０と第２の回路規模情報Ｓ１とを確認して、第２の合成結果１０２の回路規模の大きさを客観的に把握することができる。
【００４７】
判定部４０８は、第１の回路規模情報Ｓ０と第２の回路規模情報Ｓ１とに基づいて、第２の合成結果１０２による回路規模の妥当性を判定する。具体的には、判定部４０８は、第２の回路規模情報Ｓ１から第１の回路規模情報Ｓ０を引いた差としきい値とを比較することにより、第２の合成結果１０２による回路規模の妥当性を判定する。たとえば、判定部４０８は、第２の回路規模情報Ｓ１から第１の回路規模情報Ｓ０を引いた差を比較情報Ｃ１として求め、比較情報Ｃ１がしきい値Ｃｔ以上であるか否かを判定する。しきい値Ｃｔ以上である場合、第２の合成結果１０２は採用してはいけない回路情報となる。
【００４８】
また、判定部４０８は、第１の回路規模情報Ｓ０および第２の回路規模情報Ｓ１の比率としきい値とを比較することにより、第２の合成結果１０２による回路規模の妥当性を判定してもよい。具体的には、たとえば、判定部４０８は、第２の回路規模情報Ｓ１を第１の回路規模情報Ｓ０で除算した比率を比較情報Ｃ１として求め、比較情報Ｃ１がしきい値Ｃｔ以上であるか否かを判定する。しきい値Ｃｔ以上である場合、第２の合成結果１０２は採用してはいけない回路情報となる。
【００４９】
しきい値Ｃｔ未満の場合は、判定部４０８は、第２の合成結果１０２を採用してもよい合成結果であるとして記憶装置に保存する。しきい値Ｃｔ以上である場合、出力部４０７は、警告情報の出力をおこなう。ここで、警告情報とは、たとえば、第２の合成結果１０２にしきい値Ｃｔ以上であることを示す情報であり、出力部４０７は、第２の合成結果１０２に関連付けて出力する。また、警告情報は、音声による警告音でもよい。これにより、設計者は、回路規模が大きい第２の合成結果１０２を客観的に把握することができるため、回路設計において回路規模の増大を抑制することができる。
【００５０】
＜設計支援処理手順例＞
図１２は、設計支援装置４００による設計支援処理手順例を示すフローチャートである。まず、設計支援装置４００は、変換部４０１により設計対象回路のＣＦＧ変換結果１００を取得する（ステップＳ１２００）。このあと、第２の合成結果１０２の生成処理（ステップＳ１２０１〜ステップＳ１２０９）と、第１の合成結果１０１の生成処理および回路規模判定処理（ステップＳ１２１１〜ステップＳ１２１８）と、が実行される。まず、第２の合成結果１０２の生成処理（ステップＳ１２０１〜ステップＳ１２０９）について説明する。
【００５１】
設計支援装置４００は、あらかじめ記憶装置に記憶されているタイミング制約を取得し（ステップＳ１２０１）、合成部４０２により、ＣＦＧ変換結果１００に対し、クロックサイクル数反映（ステップＳ１２０２）とスケジューリング（ステップＳ１２０３）を実行する。これにより、ｎ個（ｎ≧１）のスケジューリング結果Ｒ１〜Ｒｎが生成されることになる。
【００５２】
そして、設計支援装置４００は、ｉ＝１とし（ステップＳ１２０４）、ｉ＞ｎか否かを判断する（ステップＳ１２０５）。ｉ＞ｎでない場合（ステップＳ１２０５：Ｎｏ）、設計支援装置４００は、スケジューリング結果Ｒｉを選択し（ステップＳ１２０６）、選択したスケジューリング結果Ｒｉについてアロケーションを実行する（ステップＳ１２０７）。これにより、第２の合成結果１０２であるアロケーション結果Ａｉが得られる。アロケーション結果Ａｉは記憶装置に保持される。
【００５３】
設計支援装置４００は、第２の算出部４０６により、アロケーション結果Ａｉについて第２の回路規模情報Ｓｉを算出する（ステップＳ１２０８）。算出された第２の回路規模情報Ｓｉは記憶装置に格納される。このあと、設計支援装置４００は、ｉをインクリメントして（ステップＳ１２０９）、ステップＳ１２０５に戻って、ｉ＞ｎか否かを判断する（ステップＳ１２０５）。ｉ＞ｎである場合（ステップＳ１２０５：Ｙｅｓ）、全スケジューリング結果Ｒｉについて第２の回路規模情報Ｓｉが算出されたため、第２の合成結果１０２の生成処理を終了する。つぎに、第１の合成結果１０１の生成処理および回路規模判定処理（ステップＳ１２１１〜ステップＳ１２１８）について説明する。
【００５４】
設計支援装置４００は、ＣＦＧ変換結果１００が得られた（ステップＳ１２００）あと、生成部４０４により、クロック周期βでのアロケーションを実行する（ステップＳ１２１０）。これにより、第１の合成結果１０１であるアロケーション結果Ａ０が得られる。つぎに、設計支援装置４００は、第１の算出部４０５により、アロケーション結果Ａ０について第１の回路規模情報Ｓ０を算出する（ステップＳ１２１１）。
【００５５】
そして、設計支援装置４００は、インデックスｉをｉ＝１とし（ステップＳ１２１２）、ステップＳ１２０８で算出済みのアロケーション結果Ａｉの第２の回路規模情報Ｓｉを取得する（ステップＳ１２１３）。そして、設計支援装置４００は、判定部４０８により、比較情報Ｃｉを算出し（ステップＳ１２１４）、比較情報Ｃｉがしきい値Ｃｔ以上であるか否かを判断する（ステップＳ１２１５）。Ｃｉ≧Ｃｔでない場合（ステップＳ１２１５：Ｎｏ）、設計支援装置４００は、アロケーション結果Ａｉを、妥当な合成結果、すなわち、採用してもよい合成結果であるとして記憶装置に保存し（ステップＳ１２１６）、ステップＳ１２１８に移行する。
【００５６】
一方、Ｃｉ≧Ｃｔである場合（ステップＳ１２１５：Ｙｅｓ）、設計支援装置４００は、出力部４０７により、警告情報を出力して（ステップＳ１２１７）、ステップＳ１２１８に移行する。そして、設計支援装置４００は、ステップＳ１２１８でｉをインクリメントし（ステップＳ１２１８）、ｉ＞ｎであるか否かを判断する（ステップＳ１２１９）。ｉ＞ｎでない場合（ステップＳ１２１９：Ｎｏ）、ステップＳ１２１３に戻り、設計支援装置４００は、ステップＳ１２０８で算出済みのアロケーション結果Ａｉの第２の回路規模情報Ｓｉを取得する（ステップＳ１２１３）。
【００５７】
一方、ｉ＞ｎである場合（ステップＳ１２１９：Ｙｅｓ）、第１の合成結果１０１の生成処理および回路規模判定処理を終了する。これにより、設計者は、回路規模が大きい第２の合成結果１０２を客観的に把握することができるため、回路設計において回路規模の増大を抑制することができる。
【００５８】
なお、図１２に示したフローチャートでは、比較情報Ｃｉを算出してしきい値Ｃｔと比較する例について説明したが、比較情報Ｃｉを算出することなく、第１の回路規模情報Ｓ０と第２の回路規模情報Ｓｉとを比較してもよい。また、第１の回路規模情報Ｓ０と第２の回路規模情報Ｓｉとの比較もせず、第１の回路規模情報Ｓ０と第２の回路規模情報Ｓｉとを出力してもよい。
【００５９】
なお、上述した実施の形態では、ＳｙｓｔｅｍＣにより記述された設計対象回路の動作記述情報５００を例に挙げて説明したが、ＣやＣ＋＋により記述された設計対象回路の動作記述情報５００を用いてもよい。
【００６０】
図１３は、ＣまたはＣ＋＋により記述された動作記述情報によるＣＦＧ変換例を示す説明図である。図１３の（Ａ）において、動作記述情報１３００は、ＣまたはＣ＋＋により記述された動作記述情報である。動作記述情報１３００は、ＣまたはＣ＋＋により記述されているため、ＳｙｓｔｅｍＣのようなｗａｉｔ（）文による処理の切れ目が無いため、設計支援装置４００は、Ｌｉｎｅ行数やラベルによって合成範囲を指定し、合成範囲にてクロックサイクル数の指定をすることになる。
【００６１】
たとえば、設計支援装置４００は、動作記述情報１３００のうち、「ＨＬ＿ＲＥＳＥＴ１＿ＳＴＡＲＴ」〜「ＨＬ＿ＲＥＳＥＴ１＿ＥＮＤ」のラベル間を高位合成のリセット記述範囲ｒｅｓｅｔ＿ｅｎｄとして指定する。また、設計支援装置４００は、動作記述情報１３００のうち、「ＨＬ＿ＳＹＮＴＨ１＿ＳＴＡＲＴ」〜「ＨＬ＿ＳＹＮＴＨ１＿ＥＮＤ」のラベル間を高位合成の動作記述範囲として指定し、末尾の文「ｏｕｔｐｕｔ」と「ＨＬ＿ＳＹＮＴＨ１＿ＥＮＤ」との間を、「ｃｌｏｃｋ＿ｅｎｄ」に決定する。
【００６２】
図１３の（Ｂ）では、動作記述情報１３００のＣＦＧ変換結果１３０１を示している。また、図１３の（Ｃ）は、ＣＧＦ変換結果１３０１に対してクロックサイクル数を反映したＣＦＧ変換結果１３０２を示している。タイミング制約に「クロックサイクル数ｎ」と指定されている場合は、「ｃｌｏｃｋ＿ｅｎｄ」と「ＨＬ＿ＳＹＮＴＨ１＿ＥＮＤ」との間に、（ｎ−１）個の「ｃｌｏｃｋ＿ｅｎｄ」が追加される。ＣＦＧ変換結果１３０２では、ｎ＝２であるため、１個の「ｃｌｏｃｋ＿ｅｎｄ」が追加される。この後のスケジューリングについては上述した説明と同様である。これにより、Ｃ、Ｃ＋＋により記述された動作記述情報についても、ＳｙｓｔｅｍＣと同様に適用することができる。
【００６３】
以上説明したように、本実施の形態によれば、設計支援装置４００が高位合成結果の回路規模の大きさの客観的な指標を提供することにより、設計者は、回路規模の妥当性を確認することができる。
【００６４】
また、設計支援装置４００が、第１の回路規模情報と第２の回路規模情報とに基づいて、第２の合成結果１０２による回路規模の妥当性を判定する。これにより、設計支援装置４００が、高位合成結果の回路規模の大きさの客観的な指標を提供するにとどまらず、回路規模の妥当性を判定するため、回路規模が大きくなりすぎた第２の合成結果１０２と許容範囲内である第２の合成結果１０２とを自動的に選別することができる。したがって、設計支援装置４００は、第２の合成結果１０２の選別の効率化を図ることができ、回路規模の増大を抑制することができる。
【００６５】
また、妥当性の判定の際に、第２の回路規模情報から第１の回路規模情報を引いた差や、第１の回路規模情報および第２の回路規模情報の比率を用いることにより、第２の合成結果１０２の妥当性を相対的に評価することができる。したがって、客観性のある判定結果を得ることができる。
【００６６】
また、第１の合成結果１０１では、回路規模が最小の回路が採用されるため、第２の合成結果１０２の回路規模は第１の合成結果１０１よりも回路規模が小さくならない理想的な回路規模である。したがって、第１の合成結果１０１の回路規模に近ければ近いほど、回路規模の増大が抑制された合成結果となるため、妥当と判定された第２の合成結果１０２を採用することにより、設計対象回路の回路規模の縮小化を図ることができる。
【００６７】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。
【符号の説明】
【００６８】
３００  記憶部
４０１  変換部
４０２  合成部
４０３  取得部
４０４  生成部
４０５  第１の算出部
４０６  第２の算出部
４０７  出力部
４０８  判定部
【図１】
0005910230.tif 000002
【図２】
0005910230.tif 000003
【図３】
0005910230.tif 000004
【図４】
0005910230.tif 000005
【図５】
0005910230.tif 000006
【図６】
0005910230.tif 000007
【図７】
0005910230.tif 000008
【図８】
0005910230.tif 000009
【図９】
0005910230.tif 000010
【図１０】
0005910230.tif 000011
【図１１】
0005910230.tif 000012
【図１２】
0005910230.tif 000013
【図１３】
0005910230.tif 000014