(57)【要約】【課題】情報処理性能と消費電力とに関して最適化された論理回路を効率的に合成する。【解決手段】回路合成装置３０は、情報処理性能が互いに異なる論理回路３１０を、複数の動作周波数３１１に関して論理合成する合成部３１と、論理合成された論理回路３１０と動作周波数３１１との組み合わせに関して、論理回路３１０の消費電力あたりの情報処理性能３２０を算出する算出部３２と、算出された論理回路３１０の消費電力あたりの情報処理性能３２０が条件を満たす組み合わせにおける動作周波数３１１を、論理合成実行周波数３３０として特定する特定部３３と、を備える。【選択図】      図７
2019220066.tif 000002
【特許請求の範囲】
【請求項１】
情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成する合成手段と、
論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の消費電力あたりの前記情報処理性能を算出する算出手段と、
算出された前記論理回路の消費電力あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、論理合成を実行すべき動作周波数（以下、論理合成実行周波数）として特定する特定手段と、
を備える回路合成装置。
【請求項２】
前記合成手段は、前記情報処理性能が低い前記論理回路から順番に選択し、選択した前記論理回路に関して、前記動作周波数を第一の初期値から次第に低下させながら論理合成し、
前記特定手段は、個々の前記論理回路に関して、前記論理回路の消費電力あたりの前記情報処理性能が、前記動作周波数の低下に伴って増加から減少に転じたときの第一のピーク値を特定するとともに、前記合成手段によって選択された前記論理回路の前記情報処理性能が増加するのに伴って、前記第一のピーク値が増加から減少に転じたときの第二のピーク値に関する前記動作周波数を、前記論理合成実行周波数として特定する、
請求項１に記載の回路合成装置。
【請求項３】
前記合成手段は、個々の前記論理回路に関して、前記動作周波数の第二の初期値により論理合成を行ったのち、前記特定手段によって指示された前記動作周波数によって論理合成を行い、
前記算出手段は、論理合成された前記論理回路における信号の遅延時間の最大値が前記動作周波数によって定まる最大遅延時間以下であることを表す回路規則を満たすか否かを判定し、
前記特定手段は、前記第二の初期値により論理合成された前記論理回路に関して、前記回路規則を満たさない場合は前記動作周波数を低下させて論理合成を行うことを前記合成手段に指示し、前記回路規則を所定の余裕をもって満たす場合は前記動作周波数を増加させて論理合成を行うことを前記合成手段に指示し、前記合成手段によって新たに論理合成された前記論理回路に関して、前記回路規則に基づく前記合成手段に対する指示を繰り返し行なうことによって、前記信号の遅延時間の最大値が前記最大遅延時間と同等になるときの前記動作周波数を前記第一の初期値として特定する、
請求項２に記載の回路合成装置。
【請求項４】
前記合成手段は、演算対象であるデータのビット幅により前記情報処理性能が異なる演算回路を、前記論理回路として使用する、
請求項１乃至請求項３のいずれか一項に記載の回路合成装置。
【請求項５】
前記算出手段は、論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の面積あたりの前記情報処理性能を算出し、
前記特定手段は、算出された前記論理回路の面積あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、前記論理合成実行周波数として特定する、
請求項１に記載の回路合成装置。
【請求項６】
前記合成手段によって論理合成された前記論理回路は、前記論理回路を構成する素子に関する配置配線情報を含む、
請求項１乃至請求項５のいずれか一項に記載の回路合成装置。
【請求項７】
前記合成手段は、前記特定手段によって特定された前記論理合成実行周波数に関して論理合成した結果を表すネットリストを生成する、
請求項２または３に記載の回路合成装置。
【請求項８】
前記合成手段は、前記特定手段によって特定された、前記動作周波数の前記第一の初期値に関して論理合成することによって、ＲＴＬ（Register Transfer Level）によって表される、前記ネットリストの生成における入力情報を生成する、
請求項７に記載の回路合成装置。
【請求項９】
情報処理装置によって、
情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成し、
論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の消費電力あたりの前記情報処理性能を算出し、
算出された前記論理回路の消費電力あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、論理合成を実行すべき動作周波数（以下、論理合成実行周波数）として特定する、
回路合成方法。
【請求項１０】
情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成する合成処理と、
論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の消費電力あたりの前記情報処理性能を算出する算出処理と、
算出された前記論理回路の消費電力あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、論理合成を実行すべき動作周波数（以下、論理合成実行周波数）として特定する特定処理と、
をコンピュータに実行させるための回路合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、論理回路を合成する技術に関する。
【背景技術】
【０００２】
近年、プロセステクノロジにおける微細化技術の急速な進歩によって、ＬＳＩ（Large Scale Integration）等の論理回路に搭載可能なトランジスタの数が大幅に増加し、これに伴い、ＬＳＩの消費電力が大幅に増加してきている。ＬＳＩの消費電力が増加した場合、ＬＳＩの冷却や電力の供給等に関して様々な問題が生じることから、消費電力が低くなるようなＬＳＩの設計を効率的に行なう技術への期待が高まってきている。
【０００３】
このような技術に関連する技術として、特許文献１には、ＬＳＩ回路の設計に要する時間を短縮する機能設計方法が開示されている。この方法では、動作記述に基づいてデータフローグラフを作成した後、データフローグラフの各演算子をコントロールステップ群に割り当てる。この方法では、コントロールステップ群に割り当てられたデータフローグラフに基づいて消費電力を計算し、消費電力が所定の基準を満たしているか否かを判断する。この方法では、消費電力が所定の基準を満たしていないときには、他のコントロールステップ群への割り当てを行ない、満たしているときには、データフローグラフから生成されるハードウェアの量及びタイミングを計算し、ハードウェア量及びタイミングが所定の基準を満たしているか否かを判断する。この方法では、ハードウェア量及びタイミングが所定の基準を満たしていないときには、いままでにデータフローグラフが割り当てられていないコントロールステップ群への割り当てを行ない、満たしているときには、コントロールステップ群に割り当てられたデータフローグラフに基づきＲＴＬ（Register Transfer Level）回路を生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−０６３７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
高度に情報化された現代社会における情報処理システムには、高い情報処理性能が求められる。しかしながら、一般的に、システムの情報処理性能を高くすればするほど、上述した消費電力の問題が大きくなる。したがって、高い情報処理性能と低い消費電力とが両立する、即ち、情報処理性能と消費電力という両方の要素に関して最適化された、論理回路を効率的に設計する（合成する）ことが課題である。特許文献１は、この課題については特に言及していない。本願発明の主たる目的は、この問題を解決する回路合成装置等を提供することである。
【課題を解決するための手段】
【０００６】
本願発明の一態様に係る回路合成装置は、情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成する合成手段と、論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の消費電力あたりの前記情報処理性能を算出する算出手段と、算出された前記論理回路の消費電力あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、論理合成を実行すべき動作周波数（以下、論理合成実行周波数）として特定する特定手段と、を備える。
【０００７】
上記目的を達成する他の見地において、本願発明の一態様に係る回路合成方法は、情報処理装置によって、情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成し、論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の消費電力あたりの前記情報処理性能を算出し、算出された前記論理回路の消費電力あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、論理合成を実行すべき動作周波数（以下、論理合成実行周波数）として特定する。
【０００８】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る回路合成プログラムは、情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成する合成処理と、論理合成された前記論理回路と前記動作周波数との組み合わせに関して、前記論理回路の消費電力あたりの前記情報処理性能を算出する算出処理と、算出された前記論理回路の消費電力あたりの前記情報処理性能が条件を満たす前記組み合わせにおける前記動作周波数を、論理合成を実行すべき動作周波数（以下、論理合成実行周波数）として特定する特定処理と、をコンピュータに実行させる。
【０００９】
更に、本願発明は、係る回路合成プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１０】
本願発明は、情報処理性能と消費電力とに関して最適化された論理回路を効率的に合成することを可能とする。
【図面の簡単な説明】
【００１１】
【図１】本願発明の第１の実施形態に係る回路合成装置１０の構成を概念的に示すブロック図である。
【図２】本願発明の第１の実施形態に係る基準回路情報１４１の一部を例示する図である。
【図３】ある情報処理性能を有する基準回路を論理合成した結果に関する、基準回路のクロック周期（動作周波数）と消費電力あたりの性能との関係を例示するグラフである。
【図４】情報処理性能が互いに異なる複数の基準回路を論理合成した結果に関する、各基準回路のクロック周期（動作周波数）と消費電力あたりの性能との関係を例示するグラフである。
【図５Ａ】本願発明の第１の実施形態に係る回路合成装置１０の動作を示すフローチャート（１／３）である。
【図５Ｂ】本願発明の第１の実施形態に係る回路合成装置１０の動作を示すフローチャート（２／３）である。
【図５Ｃ】本願発明の第１の実施形態に係る回路合成装置１０の動作を示すフローチャート（３／３）である。
【図６】情報処理性能が互いに異なる複数の基準回路を論理合成した結果に関する、各基準回路のクロック周期（動作周波数）と、消費電力あたりの性能と面積あたりの性能との積との関係を例示するグラフである。
【図７】本願発明の第２の実施形態に係る回路合成装置３０の構成を概念的に示すブロック図である。
【図８】本願発明の各実施形態に係る回路合成装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。本願発明に係る実施形態は、論理回路の消費電力あたりの情報処理性能（本願では以降、単に性能と称する場合がある）と、当該論理回路の動作周波数との関係を表す特性に着目することによって、上述した課題を解決する。
【００１３】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係る回路合成装置１０の構成を概念的に示すブロック図である。回路合成装置１０は、論理回路の消費電力あたりの性能と当該論理回路の動作周波数（クロック周期）と関係を表す、例えば後述する図３及び図４に例示するような特性を求めた後、当該特性に基づいて論理回路を合成する情報処理装置である。
【００１４】
回路合成装置１０は、管理端末装置２０と通信可能に接続されている。管理端末装置２０は、ユーザが回路合成装置１０に対して情報を入力する、あるいは、回路合成装置１０から出力された情報をユーザが確認する際に使用される、例えばパーソナルコンピュータ等の端末装置である。
【００１５】
回路合成装置１０は、合成部１１、算出部１２、特定部１３、及び、記憶部１４を備える。記憶部１４は、例えば、電子メモリや磁気ディスク等の記憶デバイスである。記憶部１４は、基準回路情報１４１、テクノロジライブラリ１４２、算出結果１４３、ＲＴＬ合成実行周波数１４４、論理合成実行周波数１４５、合成対象回路情報１４６、ＲＴＬ設計情報１４７、及び、ネットリスト１４８を記憶している。記憶部１４に記憶されたこれらの情報の詳細については後述する。
【００１６】
基準回路情報１４１は、回路合成装置１０が、論理回路の消費電力あたりの性能と当該論理回路の動作周波数との関係を表す特性を求める際に用いる、性能が互いに異なる複数の基準回路を表す情報である。そして当該基準回路は、その情報処理性能が明確である（互いに比較可能である）基本的な論理回路であり、例えば乗算器や加算器等の演算器である。以下、当該基準回路として乗算器を用いる場合を例に、本実施形態に係る回路合成装置１０について説明することとする。
【００１７】
例えば、２系統の２ビットのデータを乗算する乗算器によって行なわれる情報処理量は、２系統の１ビットのデータを乗算する演算器によって行なわれる情報処理量の４倍である。即ち、ビット幅がＷビット（Ｗは任意の自然数）である２系統のデータを乗算する複数の乗算器に関する性能を表す指標は、Ｗの２乗として表すことができる。
【００１８】
図２は、本実施形態に係る基準回路情報１４１の一部を例示する図である。図２に例示する基準回路情報１４１は、Ｗが「６４」である乗算器を、ＲＴＬにより表している。ＲＴＬは、ハードウェア記述言語を用いて表される論理回路に関する周知の記述レベル（記述手法）であるので、本願では、その詳細な説明を省略する。
【００１９】
次に、本実施形態に係る回路合成装置１０によって求められる、論理回路の消費電力あたりの性能と当該論理回路の動作周波数（クロック周期）と関係を表す特性について、図３及び図４を参照して説明する。
【００２０】
図３は、ある情報処理性能を有する（Ｗが「９９」である）基準回路１４１−ｉ（ｉは基準回路を識別するための自然数）を論理合成した結果に関する、基準回路１４１−ｉのクロック周期と消費電力あたりの性能（「性能／消費電力」、但し「／」は除算を表す演算子）との関係について、本願発明者が評価した結果を例示するグラフである。但し本願では、基準回路情報１４１が表す複数の乗算器を基準回路１４１−ｉと称することとし、性能が低い（処理するデータのビット幅が小さい）乗算器から順番に、ｉが「１」から順番に付与されていることとする。
【００２１】
図３に例示する通り、基準回路１４１−ｉの消費電力あたりの性能は、クロック周期が短い（動作周波数が高い）領域において、クロック周期の増加とともに増加し、クロック周期が１２００ｐｓ（ピコセカンド）のあたりで最大（ピーク値）となり、クロック周期が１２００ｐｓ以上である領域では、クロック周期の増加とともに減少する。
【００２２】
基準回路１４１−ｉの消費電力あたりの性能が図３に例示するような特性を備える理由としては、以下のことが考えられる。即ち、クロック周期が短い（動作周波数が高い）ほど、性能が高くなる反面、論理合成を行なう際に適用される、論理回路における信号の遅延時間に関する回路規則がより厳しくなるので、消費電力を低くするような柔軟な回路合成を行なう余地が小さくなると考えられる。また、それとは逆に、クロック周期が長いほど、消費電力を低くするような柔軟な回路合成を行なう余地が大きくなる反面、性能は低下する。即ち、消費電力と性能とのバランスが最適となることによって、消費電力あたりの性能が最も高くなるようなクロック周期（動作周波数）が存在すると考えられる。
【００２３】
図４は、情報処理性能が互いに異なる複数の基準回路１４１−ｉを論理合成した結果に関する、各基準回路１４１−ｉのクロック周期と消費電力あたりの性能との関係について、本願発明者が評価した結果を例示するグラフである。
【００２４】
図４に例示する通り、消費電力あたりの性能を表す折れ線グラフの形状は、基準回路１４１−ｉごとに異なるものの、あるクロック周期において消費電力あたりの性能が最大となり、消費電力あたりの性能が最大となるクロック周期は、上述したＷの値が増加する（性能が高くなる）のに伴って増加する。そして、基準回路１４１−ｉに関する消費電力あたりの性能の最大値は、Ｗが「２」から増加するのに伴って次第に増加し、Ｗが「９９」のときに最大となり、Ｗが「９９」から増加するのに伴って次第に減少する。
【００２５】
即ち、図４は、論理回路の合成において、消費電力あたりの性能が最大となるようなクロック周期（動作周波数）は、Ｗが「９９」である基準回路１４１−ｉに関して消費電力あたりの性能が最大となるときのクロック周期（即ち１２００ｐｓ）であることを示している。この消費電力あたりの性能が最大となるような動作周波数は、論理回路が用いるテクノロジの種別などによって異なる値であり、本実施形態に係る回路合成装置１０は、後述する通り、この値を求める機能を備える。
【００２６】
図１に示す合成部１１は、記憶部１４に記憶された基準回路情報１４１とテクノロジライブラリ１４２とを参照する。テクノロジライブラリ１４２は、回路合成装置１０が論理合成を行う対象とする論理回路が用いるテクノロジ（例えば、論理回路を構成する論理ゲートの仕様等）に関する情報であり、論理合成に関する様々なパラメータを含んでいる。
【００２７】
合成部１１は、基準回路情報１４１が示す複数の基準回路１４１−ｉにおいて、性能が低い（即ちＷが小さい）基準回路１４１−ｉから順番に選択し、選択した基準回路１４１−ｉに関して、テクノロジライブラリ１４２に基づいて論理合成を行う。尚、論理合成は周知の技術であるので、本願ではその詳細な説明を省略する。
【００２８】
合成部１１は、選択した基準回路１４１−ｉに関して、動作周波数ｆを第一の初期値ｆ１（ｉ）から次第に低下させながら論理合成を行う。第一の初期値ｆ１（ｉ）は、図１に示す合成部１１と算出部１２と特定部１３とが後述する通り動作することによって、特定部１３によって求められた値であり、算出結果１４３として記憶部１４に格納されている。算出結果１４３は、算出部１２あるいは特定部１３によって求められた結果を表す情報である。
【００２９】
次に、合成部１１と算出部１２と特定部１３とが、上述した動作周波数ｆに関する第一の初期値ｆ１（ｉ）を求める動作について説明する。
【００３０】
合成部１１は、選択した基準回路１４１−ｉに関して、第二の初期値ｆ２（ｉ）を動作周波数ｆとして、基準回路１４１−ｉに対する論理合成を行う。但し、第二の初期値ｆ２（ｉ）は、例えばユーザ等によって事前に与えられた所定の値である。
【００３１】
算出部１２は、論理合成された基準回路１４１−ｉにおける信号の遅延時間の最大値と、動作周波数ｆによって定まる最大遅延時間（回路規則において信号の遅延時間として許容される最大値）とを算出する。そして、算出部１２は、算出した信号の遅延時間の最大値と最大遅延時間とを比較する。但し、算出部１２は、論理合成された論理回路における各信号の遅延時間を算出するための基準が与えられていることとする。尚、論理合成された論理回路における信号の遅延時間を算出する技術は周知の技術であるので、本願ではその詳細な説明を省略する。
【００３２】
特定部１３は、算出部１２によって求められた結果において、基準回路１４１−ｉにおける信号の遅延時間の最大値が最大遅延時間よりも大きい（即ち、遅延時間に関する回路規則を満たさない）場合、動作周波数ｆを所定の値分低下させる。そして特定部１３は、低下させた動作周波数ｆに関して、再び基準回路１４１−ｉに対する論理合成を行うように合成部１１を制御する。そののち算出部１２は、合成部１１によって新たに論理合成された基準回路１４１−ｉにおける信号の遅延時間の最大値と、動作周波数ｆによって定まる最大遅延時間とを比較する。合成部１１、算出部１２、及び、特定部１３は、このような動作を繰り返し実行する。尚、特定部１３は、動作周波数ｆを低下させる所定の値を、上述した動作の回数を重ねるたびに小さくする。
【００３３】
特定部１３は、基準回路１４１−ｉにおける信号の遅延時間の最大値が最大遅延時間以下である場合、最大遅延時間と信号の遅延時間の最大値との差分が所定の値以下（即ち、最大遅延時間と信号の遅延時間の最大値とがほぼ同等と看做される）であるか否かを判定する。特定部１３は、最大遅延時間と信号の遅延時間の最大値との差分が所定の値よりも大きい（即ち、回路規則上、遅延時間に関して余裕がある）場合、動作周波数ｆを所定の値分増加させる。そして特定部１３は、増加させた動作周波数ｆに関して、再び基準回路１４１−ｉに対する論理合成を行うように合成部１１を制御する。そののち算出部１２は、合成部１１によって新たに論理合成された基準回路１４１−ｉにおける信号の遅延時間の最大値と、動作周波数ｆによって定まる最大遅延時間とを比較する。合成部１１、算出部１２、及び、特定部１３は、このような動作を繰り返し実行する。尚、特定部１３は、動作周波数ｆを増加させる所定の値を、上述した動作の回数を重ねるたびに小さくする。
【００３４】
特定部１３は、最大遅延時間と信号の遅延時間の最大値との差分が所定の値以下である場合、このときの動作周波数ｆを基準回路１４１−ｉに関する動作周波数の第一の初期値ｆ１（ｉ）として特定し、特定した結果を表す算出結果１４３を記憶部１４に格納する。
【００３５】
合成部１１、算出部１２、及び、特定部１３が上述した動作を行うことによって求められた、基準回路１４１−ｉに関する動作周波数の第一の初期値ｆ１（ｉ）は、基準回路１４１−ｉに対する論理合成において、回路規則上許容される、最大の動作周波数を表している。尚、基準回路１４１−ｉに関する動作周波数の第一の初期値ｆ１（ｉ）は、後述する、図１に示すＲＴＬ合成実行周波数１４４の候補となる。
【００３６】
合成部１１は、順番に選択した基準回路１４１−ｉごとに、動作周波数ｆの第一の初期値ｆ１（ｉ）から開始して、特定部１３による制御を受けることによって、所定の周波数ｆ３ずつ低下させた動作周波数ｆ（ｉ，ｊ）（ｊは基準回路１４１−ｉに対する何番目の論理合成であるのかを表す自然数）に関して、基準回路１４１−ｉに対する論理合成を行う。
【００３７】
算出部１２は、合成部１１によって論理合成された基準回路１４１−ｉに関して、「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））を算出する。但し、算出部１２は、論理合成された論理回路の消費電力を算出するための基準が与えられていることとする。尚、論理合成された論理回路の消費電力を算出する技術は周知の技術であるので、本願ではその詳細な説明を省略する。
【００３８】
算出部１２は、また、基準回路１４１−ｉに関する性能を、上述した通り、基準回路１４１−ｉに入力されるデータのビット幅Ｗの２乗として算出する。これにより、算出部１２は、基準回路１４１−ｉに関して、「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））を算出することができる。算出部１２は、算出した「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））を表す算出結果１４３を記憶部１４に格納する。
【００３９】
特定部１３は、算出部１２によって今回算出された「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））と、算出部１２によって前回算出された「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ−１））とを比較する。特定部１３は、「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））が「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ−１））以上である場合（即ち、Ｐ（ｉ，ｆ（ｉ，ｊ））がｊの増加とともに増加する傾向にある場合）、動作周波数ｆ（ｉ，ｊ）からｆ３を低下させた値を新たな動作周波数ｆ（ｉ，ｊ）として、基準回路１４１−ｉに対する論理合成を行うように、合成部１１を制御する。
【００４０】
特定部１３は、「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））が「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ−１））未満である場合（即ち、Ｐ（ｉ，ｆ（ｉ，ｊ））がｊの増加とともに増加から減少に転じた場合）、前回の論理合成における動作周波数ｆ（ｉ，ｊ−１）を、基準回路１４１−ｉに関する論理合成最適周波数ｆ０（ｉ）に特定し、論理合成最適周波数ｆ０（ｉ）を表す算出結果１４３を記憶部１４に格納する。そして特定部１３は、その基準回路１４１−ｉに対するｊ＋１番目の論理合成を行わないように合成部１１を制御する。
【００４１】
特定部１３によって特定された論理合成最適周波数ｆ０（ｉ）は、図４に例示する、各基準回路に関する「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））が最大となるとき（各折れ線グラフにおける山の頂が示す第一のピーク値）の動作周波数（クロック周期）に相当する。尚、基準回路１４１−ｉに関する論理合成最適周波数ｆ０（ｉ）は、後述する、図１に示す論理合成実行周波数１４５の候補となる。
【００４２】
特定部１３は、基準回路１４１−ｉの論理合成最適周波数ｆ０（ｉ）に関する「性能／消費電力」Ｐ（ｉ，ｆ０（ｉ））と、前回選択された基準回路１４１−（ｉ−１）の論理合成最適周波数ｆ０（ｉ−１）に関する「性能／消費電力」Ｐ（ｉ−１，ｆ０（ｉ−１））と、を比較する。特定部１３は、Ｐ（ｉ，ｆ０（ｉ））がＰ（ｉ−１，ｆ０（ｉ−１））以上である場合（即ち、Ｐ（ｉ，ｆ０（ｉ））がｉの増加とともに増加する傾向にある場合）、ｉ＋１を新たなｉとして、合成部１１、算出部１２、及び、特定部１３による上述した動作が行なわれるようにするために、基準回路１４１−（ｉ＋１）を新たに選択するように合成部１１を制御する。
【００４３】
特定部１３は、Ｐ（ｉ，ｆ０（ｉ））がＰ（ｉ−１，ｆ０（ｉ−１））未満である場合（即ち、Ｐ（ｉ，ｆ０（ｉ））がｉの増加とともに増加から減少に転じた場合）、算出結果１４３に基づいて、ｆ０（ｉ−１）を論理合成実行周波数１４５として特定するとともに、ｆ１（ｉ−１）をＲＴＬ合成実行周波数１４４として特定する。
【００４４】
特定部１３によって特定された論理合成実行周波数１４５は、図３及び図４に例示する、Ｗが「９９」である基準回路１４１−ｉに関する「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））が最大（第二のピーク値）となるときの動作周波数（クロック周期）に相当し、このときのクロック周期は１２００ｐｓとなる。また、特定部１３によって特定されたＲＴＬ合成実行周波数１４４は、図３及び図４に例示する、Ｗが「９９」である基準回路１４１−ｉに関する折れ線グラフが示す動作周波数が最も高い（クロック周期が最も短い）ときの動作周波数に相当し、このときのクロック周期は１０５０ｐｓとなる。
【００４５】
本実施形態に係る回路合成装置１０は、上述の通り、ＲＴＬ合成実行周波数１４４と論理合成実行周波数１４５とを特定したのち、記憶部１４に格納されている合成対象回路情報１４６が示す、例えば設計対象であるＬＳＩ等の論理回路を論理合成する。本実施形態に係る合成対象回路情報１４６は、ハードウェア記述言語によって、ＲＴＬよりも上位の（より抽象的な）レベルの論理回路を表した情報である。
【００４６】
合成部１１は、合成対象回路情報１４６とテクノロジライブラリ１４２とに基づいて、ＲＴＬ合成実行周波数１４４に関して論理合成（高位合成）することによって、ＲＴＬ設計情報１４７を生成する。そして合成部１１は、ＲＴＬ設計情報１４７とテクノロジライブラリ１４２とに基づいて、論理合成実行周波数１４５に関して論理合成することによって、ネットリスト１４８を生成する。ネットリスト１４８はＬＳＩ等の製造において入力される情報である。
【００４７】
次に図５Ａ乃至５Ｃのフローチャートを参照して、本実施形態に係る回路合成装置１０の動作（処理）について詳細に説明する。
【００４８】
回路合成装置１０は、変数ｉに「１」を設定する（ステップＳ１０１）。回路合成装置１０は、動作周波数ｆに、第二の初期値であるｆ２（ｉ）を設定する（ステップＳ１０２）。合成部１１は、基準回路情報１４１とテクノロジライブラリ１４２とに基づいて、動作周波数ｆに関して基準回路１４１−ｉを論理合成する（ステップＳ１０３）。算出部１２は、合成部１１によって論理合成された基準回路１４１−ｉにおける信号の遅延時間の最大値と、動作周波数ｆによって定まる最大遅延時間とを比較する（ステップＳ１０４）。
【００４９】
信号の遅延時間の最大値が最大遅延時間よりも大きい（即ち、信号の遅延時間が回路規則を満たさない）場合（ステップＳ１０５でＹｅｓ）、特定部１３は、動作周波数ｆを、所定の値分低下させ（ステップＳ１０６）、処理はステップＳ１０３に戻る。信号の遅延時間の最大値が最大遅延時間以下（即ち、信号の遅延時間が回路規則を満たす）であり（ステップＳ１０５でＮｏ）、かつ、最大遅延時間と信号の遅延時間の最大値との差分が所定の値よりも大きい（即ち、信号の遅延時間が、回路規則上余裕がある）場合（ステップＳ１０７でＮｏ）、特定部１３は、動作周波数ｆを、所定の値分増加させ（ステップＳ１０８）、処理はステップＳ１０３に戻る。
【００５０】
信号の遅延時間の最大値が最大遅延時間以下であり（ステップＳ１０５でＮｏ）、かつ、最大遅延時間と信号の遅延時間の最大値との差分が所定の値以下である（即ち、最大遅延時間と信号の遅延時間の最大値とがほぼ同等と看做される）場合（ステップＳ１０７でＹｅｓ）、特定部１３は、このときの動作周波数ｆを、基準回路１４１−ｉに関する動作周波数の第一の初期値ｆ１（ｉ）として、第一の初期値ｆ１（ｉ）を表す算出結果１４３を記憶部１４に格納する（ステップＳ１０９）。
【００５１】
回路合成装置１０は、変数ｊに「１」を設定する（ステップＳ１１０）。算出部１２は、合成部１１によって論理合成された基準回路１４１−ｉに関して、動作周波数がｆ（ｉ，ｊ）のときの「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））を算出し、算出したＰ（ｉ，ｆ（ｉ，ｊ））を表す算出結果１４３を記憶部１４に格納する（但し、ｆ（ｉ，１）＝ｆ１（ｉ））（ステップＳ１１１）。特定部１３は、算出結果１４３によって示される「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））とＰ（ｉ，ｆ（ｉ，ｊ−１））とを比較する（ｊ＝１の場合を除く）（ステップＳ１１２）。
【００５２】
Ｐ（ｉ，ｆ（ｉ，ｊ））がＰ（ｉ，ｆ（ｉ，ｊ−１））以上である（即ち、Ｐ（ｉ，ｆ（ｉ，ｊ））がｊの増加とともに増加する傾向にある）場合（ステップＳ１１３でＮｏ）、特定部１３は、ｆ（ｉ，ｊ）からｆ３を減算した値をｆ（ｉ，ｊ＋１）とし、ｊにｊ＋１を代入する（ステップＳ１１４）。合成部１１は、特定部１３による制御を受けることによって、基準回路情報１４１とテクノロジライブラリ１４２とに基づいて、動作周波数ｆ（ｉ，ｊ）に関して基準回路１４１−ｉを論理合成し（ステップＳ１１５）、処理はステップＳ１１１に戻る。
【００５３】
Ｐ（ｉ，ｆ（ｉ，ｊ））がＰ（ｉ，ｆ（ｉ，ｊ−１））未満である（即ち、Ｐ（ｉ，ｆ（ｉ，ｊ））がｊの増加とともに増加から減少に転じた）場合（ステップＳ１１３でＹｅｓ）、特定部１３は、動作周波数ｆ（ｉ，ｊ−１）を、基準回路１４１−ｉに関する論理合成最適周波数ｆ０（ｉ）として特定し、論理合成最適周波数ｆ０（ｉ）を表す算出結果１４３を、記憶部１４に格納する（ステップＳ１１６）。
【００５４】
特定部１３は、「性能／消費電力」Ｐ（ｉ，ｆ０（ｉ））とＰ（ｉ−１，ｆ０（ｉ−１））とを比較する（ｉ＝１の場合を除く）（ステップＳ１１７）。Ｐ（ｉ，ｆ０（ｉ））がＰ（ｉ−１，ｆ０（ｉ−１））以上である（即ち、Ｐ（ｉ，ｆ０（ｉ））がｉの増加とともに増加する傾向にある）場合（ステップＳ１１８でＮｏ）、特定部１３は、ｉにｉ＋１を代入し（ステップＳ１１９）、処理はステップＳ１０２に戻る。
【００５５】
Ｐ（ｉ，ｆ０（ｉ））がＰ（ｉ−１，ｆ０（ｉ−１））未満である（即ち、Ｐ（ｉ，ｆ０（ｉ））がｉの増加とともに増加から傾向に転じた）場合（ステップＳ１１８でＹｅｓ）、特定部１３は、ｆ０（ｉ−１）を論理合成実行周波数１４５として特定し、ｆ１（ｉ−１）をＲＴＬ合成実行周波数１４４として特定する（ステップＳ１２０）。
【００５６】
合成部１１は、合成対象回路情報１４６とテクノロジライブラリ１４２とに基づいて、ＲＴＬ合成実行周波数１４４に関して論理合成することによって、ＲＴＬ設計情報１４７を生成する（ステップＳ１２１）。合成部１１は、ＲＴＬ設計情報１４７とテクノロジライブラリ１４２とに基づいて、論理合成実行周波数１４５に関して論理合成することによって、ネットリスト１４８を生成し（ステップＳ１２２）、全体の処理は終了する。
【００５７】
本実施形態に係る回路合成装置１０は、情報処理性能と消費電力とに関して最適化された論理回路を効率的に合成することができる。その理由は、回路合成装置１０は、情報処理性能が互いに異なる論理回路（基準回路１４１−ｉ）を、複数の動作周波数ｆ（ｉ，ｊ）に関して論理合成し、合成した論理回路と動作周波数ｆ（ｉ，ｊ）との組み合わせに関して、「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））を算出し、「性能／消費電力」Ｐ（ｉ，ｆ（ｉ，ｊ））が条件を満たす組み合わせにおける動作周波数ｆ（ｉ，ｊ）を、論理合成実行周波数１４５として特定するからである。
【００５８】
以下に、本実施形態に係る回路合成装置１０によって実現される効果について、詳細に説明する。
【００５９】
現代社会における情報処理システムには、高い情報処理性能が求められるが、一般的に、システムの情報処理性能を高くすればするほど、消費電力の問題が大きくなる。したがって、高い情報処理性能と低い消費電力とが両立する、即ち、情報処理性能と消費電力という両方の要素に関して最適化された、論理回路を効率的に設計する（合成する）ことが課題である。
【００６０】
このような課題に対して、本実施形態に係る回路合成装置１０は、合成部１１と、算出部１２と、特定部１３と、を備え、例えば図１乃至図４、図５Ａ乃至図５Ｃを参照して上述した通り動作する。即ち、合成部１１は、情報処理性能が互いに異なる論理回路を、複数の動作周波数に関して論理合成する。算出部１２は、論理合成された論理回路と動作周波数との組み合わせに関して、論理回路の消費電力あたりの情報処理性能を算出する。そして、特定部１３は、算出された論理回路の消費電力あたりの情報処理性能が条件を満たす組み合わせにおける動作周波数を、論理合成実行周波数１４５として特定する。したがって、本実施形態に係る回路合成装置１０は、消費電力あたりの情報処理性能を最適化した論理回路を合成することができる。
【００６１】
また、本実施形態に係る合成部１１は、情報処理性能が低い基準回路１４１−ｉ（論理回路）から順番に選択し、選択した基準回路１４１−ｉに関して、動作周波数を第一の初期値ｆ１（ｉ）から次第に低下させながら論理合成する。特定部１３は、個々の基準回路１４１−ｉに関して、基準回路１４１−ｉの消費電力あたりの情報処理性能が、動作周波数の低下に伴って増加から減少に転じたときの第一のピーク値を特定する。そして特定部１３は、合成部１１によって選択された基準回路１４１−ｉの情報処理性能が増加するのに伴って、第一のピーク値が増加から減少に転じたときの第二のピーク値に関する動作周波数を、論理合成実行周波数１４５として特定する。即ち、本実施形態に係る回路合成装置１０は、論理回路の論理合成において、動作周波数と消費電力あたりの情報処理性能との関係が、図３及び図４に示すような特性を表すことに基づいて論理合成実行周波数１４５を特定するので、論理合成実行周波数１４５の特定を効率的に行うことができる。
【００６２】
また、本実施形態に係る回路合成装置１０は、論理合成した基準回路１４１−ｉにおける信号の遅延時間の最大値が、回路規則が示す最大遅延時間と同等になるときの動作周波数を第一の初期値ｆ１（ｉ）として特定する。これにより、本実施形態に係る回路合成装置１０は、論理合成実行周波数１４５の特定を、効率的かつ確実に行うことができる
また、本実施形態に係る合成部１１は、演算対象であるデータのビット幅により情報処理性能が異なる演算回路を、基準回路１４１−ｉとして使用する。即ち、本実施形態に係る回路合成装置１０は、簡易な構成により（簡易な基準回路を用いることにより）、消費電力あたりの情報処理性能を最適化した論理回路を合成することができる。
【００６３】
また、本実施形態に係る回路合成装置１０は、合成対象回路情報１４６に対して、ＲＴＬ合成実行周波数１４４に関して論理合成（高位合成）することによってＲＴＬ設計情報１４７を生成する。そして、回路合成装置１０は、生成したＲＴＬ設計情報１４７に対して、論理合成実行周波数１４５に関して論理合成することによってネットリスト１４８を生成する。即ち、回路合成装置１０は、高位合成において論理合成実行周波数１４５よりも高い周波数であるＲＴＬ合成実行周波数１４４を用いたのち、論理合成実行周波数１４５を用いてネットリスト１４８を生成する。これにより、本実施形態に係る回路合成装置１０は、消費電力あたりの情報処理性能を最適化した論理回路を、より柔軟に合成することができる。
【００６４】
また、本実施形態に係る合成部１１によって論理合成された論理回路を表す情報は、当該論理回路を構成する素子に関する配置配線情報を含むようにしてもよい。即ち、合成部１１は、物理合成を行うようにしてもよい。
【００６５】
また、本実施形態に係る算出部１２は、合成部１１によって論理合成された基準回路１４１−ｉと動作周波数との組み合わせに関して、基準回路１４１−ｉの面積あたりの情報処理性能を算出してもよい。算出部１２は、論理合成に関する既存技術を用いて、論理合成された論理回路の面積を算出可能である。その場合、特定部１３は、算出部１２によって算出された基準回路１４１−ｉの面積あたりの情報処理性能が条件を満たす組み合わせにおける動作周波数を、論理合成実行周波数１４５として特定してもよい。
【００６６】
図６は、情報処理性能が互いに異なる複数の基準回路１４１−ｉを論理合成した結果に関する、各基準回路のクロック周期（動作周波数）と、消費電力あたりの性能と面積あたりの性能との積との関係について、本願発明者が評価した結果を例示するグラフである。ＬＳＩ等の製造コストは、一般的にその面積に比例するので、面積あたりの情報処理性能に関しても、最適化した論理合成を行うことは重要な課題である。
【００６７】
図６に例示する通り、各基準回路１４１−ｉの動作周波数と、消費電力あたりの性能と面積あたりの性能との積との関係も、図３及び図４に示す例と同様に、基準回路１４１−ｉごとに、あるクロック周期において値が最大となる、折れ線グラフによって示される特性を備えている。したがって、回路合成装置１０は、本実施形態について上述した動作と同様な動作を行うことによって、消費電力あたりの性能と面積あたりの性能とが最適となる論理合成実行周波数１４５を特定することができる。これにより、本実施形態に係る回路合成装置１０は、情報処理性能と消費電力と製造コストに関して最適化された論理回路を効率的に合成することができる。
【００６８】
＜第２の実施形態＞
図７は、本願発明の第２の実施形態に係る回路合成装置３０の構成を概念的に示すブロック図である。
【００６９】
本実施形態に係る回路合成装置３０は、合成部３１、算出部３２、及び、特定部３３を備えている。
【００７０】
合成部３１は、情報処理性能が互いに異なる論理回路３１０を、複数の動作周波数３１１に関して論理合成する。
【００７１】
算出部３２は、論理合成された論理回路３１０と動作周波数３１１との組み合わせに関して、論理回路３１０の消費電力あたりの前記情報処理性能を算出する。
【００７２】
特定部３３は、算出された前記論理回路の消費電力あたりの前記情報処理性能３２０が条件を満たす組み合わせにおける動作周波数３１１を、論理合成を実行すべき動作周波数（論理合成実行周波数３３０）として特定する。
【００７３】
本実施形態に係る回路合成装置３０は、情報処理性能と消費電力とに関して最適化された論理回路を効率的に合成することができる。その理由は、回路合成装置１０は、情報処理性能が互いに異なる論理回路３１０を、複数の動作周波数３１１に関して論理合成し、合成した論理回路３１０と動作周波数３１１との組み合わせに関して、消費電力あたりの情報処理性能３２０を算出し、消費電力あたりの情報処理性能３２０が条件を満たす組み合わせにおける動作周波数３１１を、論理合成実行周波数３３０として特定するからである。
【００７４】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図７に示した回路合成装置における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図７において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・合成部１１及び３１、
・算出部１２及び３２、
・特定部１３及び３３、
・記憶部１４における記憶制御機能。
【００７５】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図８を参照して説明する。
【００７６】
図８は、本願発明の各実施形態に係る回路合成装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図８は、図１、及び、図７に示した回路合成装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００７７】
図８に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・モニターやスピーカ、キーボード等の入出力インタフェース９０９。
【００７８】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００７９】
そして、上述した実施形態を例に説明した本願発明は、図８に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図７）における上述した構成、或いはフローチャート（図５Ａ乃至図５Ｃ）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００８０】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００８１】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００８２】
１０    回路合成装置
１１    合成部
１２    算出部
１３    特定部
１４    記憶部
１４１    基準回路情報
１４２    テクノロジライブラリ
１４３    算出結果
１４４    ＲＴＬ合成実行周波数
１４５    論理合成実行周波数
１４６    合成対象回路情報
１４７    ＲＴＬ設計情報
１４８    ネットリスト
２０    管理端末装置
３０    回路合成装置
３１    合成部
３１０    論理回路
３１１    動作周波数
３２    算出部
３２０    消費電力あたりの情報処理性能
３３    特定部
３３０    論理合成実行周波数
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2019220066.tif 000003
【図２】
2019220066.tif 000004
【図３】
2019220066.tif 000005
【図４】
2019220066.tif 000006
【図５Ａ】
2019220066.tif 000007
【図５Ｂ】
2019220066.tif 000008
【図５Ｃ】
2019220066.tif 000009
【図６】
2019220066.tif 000010
【図７】
2019220066.tif 000011
【図８】
2019220066.tif 000012