(57)【要約】【課題】クロックによる無駄な電力消費を効果的に抑えた論理回路を合成することが可能な論理合成装置を得る。【解決手段】論理合成部２ＡはＲＴＬ記述データＤ２に基づき、論理合成処理を行い中間合成論理回路を合成する。上記中間合成論理回路は同一のフリップフロップのトグル入力に対応してクロックゲーティング機能を有する制御回路を付加した第１の部分回路と付加しない第２の部分回路とを含む部分回路組合せを有している。電力計算・比較部３は上記第１及び第２の部分回路間の消費電力を比較する。制御回路置換部４は、電力計算・比較部３による上記した比較結果に基づき、部分回路組合せ毎に第１及び第２の部分回路のうち、電力低減効果が高い部分回路を採用し、最終決定した論理回路を規定した最適化回路データＤ１１を得る。【選択図】図１
2008176440.tif 000002
【特許請求の範囲】
【請求項１】
順序回路を含む設計対象の論理回路を記述した記述データに基づき、論理合成処理を行い中間合成論理回路を得る論理合成部を備え、前記中間合成論理回路は同一の順序回路に関し、当該順序回路のクロック入力部に対応してクロックゲーティング機能を有する制御回路を付加した第１の部分回路と前記制御回路を付加しない第２の部分回路とを含む部分回路組合せを有し、
前記第１及び第２の部分回路における順序回路のクロック入力に関する信号変化であるイベント情報を規定したトグル情報及び前記第１及び第２の部分回路を構成する素子毎の消費電力を規定した消費電力ライブラリとを参照して、前記部分回路組合せ毎に前記第１及び第２の部分回路の消費電力の優劣を比較する電力計算・比較部と、
前記電力計算・比較部による比較結果に基づき、前記部分回路組合せ毎に、前記第１及び第２の部分回路のうち消費電力が少ない方を決定部分回路として採用し、前記部分回路組合せ部分に前記決定部分回路を用いて構成する最終決定論理回路を規定した最適化回路データを生成する最適化回路決定部とをさらに備える、
論理合成装置。
【請求項２】
請求項１記載の論理合成装置であって、
前記記述データはＲＴＬ記述データを含む、
論理合成装置。
【請求項３】
請求項１記載の論理合成装置であって、
前記記述データはゲートレベル記述データを含む、
論理合成装置。
【請求項４】
請求項１ないし請求項３のうち、いずれか１項に記載の論理合成装置であって、
前記第１の部分回路は前記順序回路内に前記制御回路を内蔵した構成を含む、
論理合成装置。
【請求項５】
請求項１ないし請求項３のうち、いずれか１項に記載の論理合成装置であって、
前記最適化回路決定部は、
前記第１及び第２の部分回路間における消費電力と、前記第１の部分回路を設けることに伴う回路面積増大度合とを考慮して、前記第１及び第２の部分回路から前記決定部分回路を採用する回路面積検証部を含む、
論理合成装置。
【請求項６】
請求項１ないし請求項３のうち、いずれか１項に記載の論理合成装置であって、
前記論理合成部は、前記中間合成論理回路内に、クロック入力を共有する複数の順序回路において共用される前記第１の部分回路である共用第１の部分回路を生成し、前記部分回路組合せは前記共用第１の部分回路と対応する第２の部分回路を含む、
論理合成装置。
【請求項７】
請求項６記載の論理合成装置であって、
前記最適化回路決定部は、
配置配線後のレイアウト構成を認識し、前記共用第１の部分回路から前記複数の順序回路へのクロックスキューが小さくなるように、前記共用第１の部分回路の出力と前記複数の順序回路のクロック入力の少なくとも一部との間にバッファを挿入するバッファ挿入部を含む、
論理合成装置。
【請求項８】
請求項６記載の論理合成装置であって、
前記最適化回路決定部は、
配置配線後のレイアウト構成を認識し、前記複数の順序回路が互いに近い位置となるように、前記複数の順序回路を配置する順序回路配置処理部を含む、
論理合成装置。
【請求項９】
請求項１ないし請求項３のうち、いずれか１項に記載の論理合成装置であって、
前記最適化回路決定部は、
前記順序回路の入出力データに関連する素子の入出力特性に基づき、前記制御回路内の信号処理が短縮されるように、前記制御回路の信号配線及び素子構成を再構成する信号処理短縮部を含む、
論理合成装置。
【請求項１０】
請求項１ないし請求項３のうち、いずれか１項に記載の論理合成装置であって、
前記最適化回路決定部は、
前記順序回路が固定データ設定機能を有する固定データ設定機能付き順序回路である場合、前記固定データ設定機能付き順序回路に対応する制御回路にも固定データ設定機能を設ける固定データ設定機能付加部を含む、
論理合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、低消費電力化を図った論理回路を合成する論理合成装置に関する。
【背景技術】
【０００２】
低消費電力化が進む中、LSI動作時の消費電力を削減するために、論理合成段階において、現在、クロックの有効・無効を制御するクロックゲーティング手法が用いることが主流となっている。すなわち、クロックゲーティング手法を用いることにより、クロック信号変化が不要な期間での電力削減が論理合成・最適化ツールにて自動化されている。
【０００３】
当該無駄な電力を削減するために、フリップフロップ、レジスタ等の順序回路の入力と出力の排他的論理和（XOR）をイネーブル信号としたセル（クロックゲーティング用セル）を内部に有するフリップフロップ等の順序回路を有する論理回路を生成するという工夫がなされている。同様な工夫がなされた先行技術文献として非特許文献１〜非特許文献４が挙げられる。
【０００４】
ただし、従来の論理合成ツールでは、クロックをゲーティングするための制御信号が予め設定されてない場合は上述した論理合成することはできない。以下、この点を詳述する。
【０００５】
図２３は単純なフリップフロップの入出力信号を示す回路図である。同図に示すように、単純な入出力が設定されるフリップフロップＦＦ８はデータ入力Ｄに入力データＤＡＴＡを受け、トグル入力Ｔ（クロック入力部）にクロックＣＬＫを受け、データ出力Ｑより出力データＱＯを出力している。
【０００６】
このような構成のフリップフロップＦＦ８は、クロックＣＬＫの有効・無効を制御する機能が全く付加されていないため、従来の論理合成装置では、クロックゲーティング機能に設けた論理合成を行うことはできない。
【０００７】
図２４は図２３で示したフリップフロップＦＦ８の動作を示す波形図である。同図に示すように、入力データＤＡＴＡ、クロックＣＬＫ、及び出力データＱＯが変化している。
【０００８】
同図に示すように、常にクロックＣＬＫが信号変化（“Ｈ”立ち上がり、“Ｌ”立ち下がりの繰り返し）しているため、入力データＤＡＴＡが“Ｌ”を維持している期間Ｔ１におけるクロックＣＬＫの信号変化ＣＧ１は無駄な消費電力の原因となる。同様にして、入力データＤＡＴＡの“Ｈ”に基づき出力データＱＯが“Ｈ”に立ち上がった後、入力データＤＡＴＡが“Ｈ”を維持している期間Ｔ２におけるクロックＣＬＫの信号変化ＣＧ２はフリップフロップＦＦ８の入力データＤＡＴＡの取り込みには関与しないため、無駄な消費電力の原因となる。
【０００９】
【非特許文献１】H. Takahashi et al, “A 1.5V, 200MHz, 400MIPS, 188μA/MHz and 1.2V, 300MHz, 600MIPS,169μA/MHz Digital Signal Processor Core for 3G Wireless Applications,” IEICE Trans., Vol.E87-C, No.4, Apr. 2004, pp. 491-501.
【非特許文献２】L. T. Clark et al, “An Embedded 32-b Microprocessor Core for Low-Power and High-Performance Applications,” IEEE JSSC, 2001, 1599-1608.
【非特許文献３】S.D.Naffziger et al, “The Implementation of the Itanium2 Microprocessor,” IEEE JSSC, Vol. 37,No. 11, Nov. 2002, pp.1448-1460.
【非特許文献４】G. Vojin et al, “Digital System Clocking,” Wiley interscience.
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の論理合成装置は以上のように構成されており、クロックＣＬＫの有効・無効制御機能が付加されていないフリップフロップ等の順序回路に対しては、クロックゲーティング機能を付加する論理合成ができないという問題点があった。
【００１１】
この発明は上記問題点を解決するためになされたもので、単純にクロックに同期して動作するフリップフロップ等の順序回路を有する回路に対しても、クロックによる無駄な電力消費を効果的に抑えた論理回路を合成することが可能が論理合成装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
この発明の一実施の形態の論理合成装置によれば、論理合成部、電力計算・比較部及び最適化回路決定部を有する構成が提供される。
【００１３】
論理合成部は、順序回路を含む設計対象の論理回路を記述した記述データに基づき、論理合成処理を行い中間合成論理回路を得る。上記中間合成論理回路は同一の順序回路に関し、当該順序回路のクロック入力部に対応してクロックゲーティング機能を有する制御回路を付加した第１の部分回路と付加しない第２の部分回路とを含む部分回路組合せを有している。
【００１４】
電力計算・比較部は、第１及び第２の部分回路における順序回路のクロック入力に関する信号変化であるイベント情報を規定したトグル情報及び第１及び第２の部分回路を構成する素子毎の消費電力を規定した消費電力ライブラリとを参照して、部分回路組合せ毎に第１及び第２の部分回路の消費電力の優劣を比較する。
【００１５】
最適化回路決定部は、上記電力計算・比較部による比較結果に基づき、部分回路組合せ毎に、第１及び第２の部分回路のうち消費電力が少ない方を決定部分回路として採用する。
【発明の効果】
【００１６】
この実施の形態の論理合成装置によれば、最終的に最適化回路データで規定される論理合成回路の分回路組合せそれぞれにおいて、制御回路を付加しない第２の部分回路及び制御回路を付加する第１の部分回路のうち、いずれを採用するかを各部分回路の消費電力の大小によって決定している。このため、実施の形態は、回路全体において、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
＜発明の原理＞
図２０はクロックゲーティング手法を適用可能な部分回路の構成を示す回路図である。同図に示すように、論理合成対象となる部分回路５１は、フリップフロップＦＦ１及びＡＮＤゲートＧ２１を含み、ＡＮＤゲートＧ２１は一方入力に制御信号ＣＴＬ（イネーブル信号Ｅnableと同趣旨）を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ２１の出力がフリップフロップＦＦ１のトグル入力Ｔ（クロック入力部）に付与される。このように、部分回路５１には制御信号ＣＴＬ及びＡＮＤゲートＧ２１によってクロックＣＬＫの有効・無効制御機能が付加されている。
【００１８】
また、順序回路であるフリップフロップＦＦ１はデータ入力Ｄに入力データＤＡＴＡを受け、データ出力Ｑから出力データＱＯを出力する。
【００１９】
図２１は図２０で示した部分回路５１の動作を示す波形図である。同図に示すように、入力データＤＡＴＡ、クロックＣＬＫ、制御信号ＣＴＬ及び出力データＱＯが変化している。
【００２０】
同図に示すように、制御信号ＣＴＬが“Ｈ”の期間のみ、クロックＣＬＫがＡＮＤゲートＧ２１を介してフリップフロップＦＦ１のトグル入力Ｔに付与されることにより、クロックＣＬＫが有効となる。したがって、制御信号ＣＴＬが時刻ｔ１に“Ｈ”に立ち上がった後の最初のクロックＣＬＫの“Ｈ”立ち上がり時刻ｔ２における入力データＤＡＴＡの“Ｈ”が、フリップフロップＦＦ１に取り込まれ、しかる後、出力データＱＯとして現れる。
【００２１】
このように、制御信号ＣＴＬによって選択的にクロックＣＬＫを有効にすることにより、トグル入力Ｔに入力されるクロックＣＬＫに同期して、フリップフロップＦＦ１がデータ入力Ｄに付与される入力データＤＡＴＡを出力データＱＯとして取り込むことができる。
【００２２】
しかしながら、図２１に示すように、制御信号ＣＴＬの“Ｈ”期間においても、クロックＣＬＫの信号変化ＣＧ３，信号変化ＣＧ４はフリップフロップＦＦ１の入力データＤＡＴＡの取り込みには関与していないため、結果的に無駄な消費電力の原因となる信号変化となる。
【００２３】
このように、部分回路５１のように制御信号ＣＴＬによってクロックＣＬＫの有効・無効を制御する機能を有していても、制御信号ＣＴＬが“Ｈ”（有効）を指示するイネーブル期間中の入力データＤＡＴＡが変化しない期間においてはクロックゲーティングの対象外となる。このため、上述した信号変化ＣＧ３，ＣＧ４のように、クロック信号変化時の電力は無駄に消費されることになる。このようなクロック信号変化時の消費電力の無駄は、ＭＰＥＧ回路等の評価結果を見る限りにおいて大きな割合を占めることが知られている。
【００２４】
そこで、信号変化ＣＧ３，ＣＧ４のような無駄を排除すべく、図２０で示した部分回路５１を論理合成する場合において、クロックゲーティング手法を用いて図２２で示す部分回路５２に論理合成する。
【００２５】
図２２に示すように、部分回路５２において、部分回路５１のＡＮＤゲートＧ２１に置き換わって、クロックＣＬＫとフリップフロップＦＦ１のトグル入力Ｔとの間に制御回路２５が挿入される。そして、制御回路２５の出力信号Ｓ２５がフリップフロップＦＦ１のトグル入力Ｔに付与される。
【００２６】
制御回路２５はＥＸＯＲゲートＧ２２及びＡＮＤゲートＧ２３から構成され、ＥＸＯＲゲートＧ２２は一方入力に入力データＤＡＴＡを受け、他方入力にフリップフロップＦＦ１の出力データＱＯを受ける。すなわち、ＥＸＯＲゲートＧ２２はフリップフロップＦＦ１の入出力データの同一性の有無を常に認識する。
【００２７】
ＡＮＤゲートＧ２３は一方入力にＥＸＯＲゲートＧ２２の出力を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ２３の出力が制御回路２５の出力信号Ｓ２５としてフリップフロップＦＦ１のトグル入力Ｔに付与される。
【００２８】
このような構成の部分回路５２は、フリップフロップＦＦ１の入力データＤＡＴＡと出力データＱＯとが一致している期間は、ＥＸＯＲゲートＧ２２の出力が“Ｌ”となるため、クロックＣＬＫが無効化され、クロックＣＬＫの内容に関係なくＡＮＤゲートＧ２３の出力、すなわち、制御回路２５の出力信号Ｓ２５は“Ｌ”に固定される。
【００２９】
このように、フリップフロップＦＦ１に新たな入力データＤＡＴＡを取り込む必要のない場合は、制御回路２５の出力信号Ｓ２５を“Ｌ”に固定してクロックＣＬＫを無効化することにより、フリップフロップＦＦ１のトグル入力Ｔに無駄なクロックＣＬＫが入力されることに伴う消費電力を効果的に抑えることができる。
【００３０】
すなわち、図２１で示したような信号変化ＣＧ３，ＣＧ４を生じさせない、部分回路５１以上に低消費電力化を図った部分回路５２を得ることができる。
【００３１】
しかしながら、制御回路２５のようなクロックゲーティング機能を付加する論理合成を全てのフリップフロップ等の順序回路に対して適用してしまうと以下の問題が残る。例えば、入力データＤＡＴＡ等の順序回路の入出力データの信号変化が頻繁に行われる場合は、クロックゲーティング機能を実現する制御回路で消費される電力の方がクロック信号変化時の電力より却って大きくなることが考えられる。この場合、クロックゲーティング機能を有する制御回路の追加が逆に消費電力の増加を招いてしまうという問題点が生じることになる。
【００３２】
また、クロックゲーティング機能を追加する分、無駄に回路面積を増加してしまうという問題もあった。また、クロックゲーティング機能を選択に設けることを人手で行うのは時間を要し、実用的ではなかった。
【００３３】
そこで、以下で述べる本願発明による論理合成装置では以下の機能の実現を目的とした。
【００３４】
(1) クロックの有効・無効を制御する制御信号が無くても、上記したクロックゲーティング機能の追加する論理合成を基本的に行う。
【００３５】
(2) 回路全体において、消費電力の増加を招く可能性や、タイミングの悪化(回路動作速度の低下)、無駄なチップ面積増加の危険性が考慮される場合においては、上記クロックゲーティング機能の追加を行わないように自動決定する。
【００３６】
＜実施の形態１＞
図１はこの発明の実施の形態１である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、設計対象である論理合成対象回路をＲＴＬ(Register Transfer Level)記述で規定したＲＴＬ記述データＤ２に基づき、論理合成部２Ａで生成されるべき中間合成論理回路中における順序回路の出力トグル情報（イベント情報）を規定したトグル情報Ｄ１を出力する。また、中間合成論理回路において後述する第１及び第２の部分回路を構成する各素子のイベント（event）単位当たりの消費電力を規定した消費電力ライブラリＤ３が準備される。なお、イベントとは１回の信号変化（“Ｈ”立ち上がり，“Ｌ”立ち下がりの組合せ）を意味する。
【００３７】
そして、トグル情報Ｄ１、ＲＴＬ記述データＤ２及び消費電力ライブラリＤ３が最適化回路生成機構４１に付与される。最適化回路生成機構４１は論理合成部２Ａ、電力計算・比較部３及び制御回路置換部４より構成される。
【００３８】
論理合成部２ＡはＲＴＬ記述データＤ２に基づき、論理合成処理を行い中間合成論理回路を合成する。上記中間合成論理回路は同一のフリップフロップ等の順序回路に関し、当該順序回路のクロック入力部（トグル入力Ｔ）に対応してクロックゲーティング機能を有する制御回路を付加した第１の部分回路と上記制御回路を付加しない第２の部分回路とを含む部分回路組合せを有している。
【００３９】
すなわち、第２の部分回路は従来同様にＲＴＬ記述データＤ２に基づき単純に論理合成して得られる部分回路を意味する。一方、第１の部分回路は、第２の部分回路において、フリップフロップ等の順序回路の無駄なクロック電力消費が予測される箇所（電力消費予測箇所）を抽出し、上記電力消費予測箇所それぞれに低消費電力用の制御回路を付加した回路を意味する。第１及び第２の部分回路は論理的動作に違いはなく、いずれを採用しても最終的に得られる論理回路の実動作内容に変化をもたらすことはない。
【００４０】
電力計算・比較部３は、上記中間合成論理回路内の上記第１及び第２の部分回路において、制御回路を付加しない第２の部分回路の消費電力ＰＣ２と制御回路を付加した場合の第１の部分回路の消費電力ＰＣ１とをそれぞれ計算して比較する。
【００４１】
最適化回路決定部を構成する制御回路置換部４は、電力計算・比較部３による上記した比較結果に基づき、全ての部分回路組合せに関し、「ＰＣ１＜ＰＣ２」を満足する場合、制御回路を有する第１の部分回路を採用し、「ＰＣ１＞ＰＣ２」となる場合、制御回路を有さない第２の部分回路を採用するという、制御回路置換処理を行う。すなわち、制御回路置換部４は全ての部分回路組合せに対し上記制御回路置換処理を行うことにより中間合成論理回路における部分回路組合せ毎に第１の部分回路あるいは第２の部分回路が採用された論理回路を規定した最適化回路データＤ１１を得る。
【００４２】
図２〜図５は最適化回路生成機構４１による最適化回路データＤ１１の生成内容の具体例を示す回路図である。図２及び図３は第２の部分回路の具体的構成例を示している。一方、図４及び図５は第１の部分回路の具体的構成例を示している。
【００４３】
図２及び図４で示した単純部分回路２１及び制御回路付き部分回路３１が第１の電力消費予測箇所（同一の部分回路組合せ）における第２及び第１の部分回路である。すなわち、フリップフロップＦＦ１のトグル入力ＴにクロックＣＬＫが直接入力されるのが単純部分回路２１である。一方、制御回路付き部分回路３１はフリップフロップＦＦ１とクロックＣＬＫとの間に制御回路１１が付加される。制御回路１１はＥＸＯＲゲートＧ１及びＡＮＤゲートＧ２からなり、ＥＸＯＲゲートＧ１は一方入力に入力データＤＡＴＡを受け、他方入力に出力データＱＯを受ける。ＡＮＤゲートＧ２は一方入力にＥＸＯＲゲートＧ１の出力を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ２の出力が制御回路１１の出力信号Ｓ１１としてフリップフロップＦＦ１のトグル入力Ｔに付与される。
【００４４】
一方、図３及び図５で示した単純部分回路２２及び制御回路付き部分回路３２が第２の電力消費予測箇所（同一の部分回路組合せ）における第２及び第１の部分回路を意味する。単純部分回路２２はＡＮＤゲートＧ２１及びフリップフロップＦＦ１より構成される。ＡＮＤゲートＧ２１は一方入力に制御信号ＣＴＬを受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ２１の出力がフリップフロップＦＦ１のトグル入力Ｔに付与される。
【００４５】
一方、制御回路付き部分回路３２はフリップフロップＦＦ１のトグル入力ＴとＡＮＤゲートＧ２１の出力と間に制御回路１２が付加される。制御回路１２はＥＸＯＲゲートＧ３及びＡＮＤゲートＧ４からなり、ＥＸＯＲゲートＧ３は一方入力に入力データＤＡＴＡを受け、他方入力に出力データＱＯを受ける。ＡＮＤゲートＧ４は一方入力にＥＸＯＲゲートＧ３の出力を受け、他方入力にＡＮＤゲートＧ２１の出力を受ける。そして、ＡＮＤゲートＧ４の出力が制御回路１２の出力信号Ｓ１２としてフリップフロップＦＦ１のトグル入力Ｔに付与される。
【００４６】
まず、電力計算・比較部３による単純部分回路２１と制御回路付き部分回路３１との消費電力比較について説明する。
【００４７】
図２に示すように、フリップフロップＦＦ１は１イベント当たり２ｐＷの消費電力が有り、その動作時にフリップフロップＦＦ１のトグル入力ＴにクロックＣＬＫが５イベント入力されるため、総計１０ｐＷの消費電力があると計算される。
【００４８】
一方、図４に示すように、単純部分回路２１に対応する制御回路付き部分回路３１においていて、付加した制御回路１１による１イベント当たりの消費電力は２ｐＷ（ＥＸＯＲゲートＧ１が１ｐＷ，ＡＮＤゲートＧ２が１ｐＷ）であり、制御回路１１によって１イベント出力に抑えられるため消費電力は２ｐＷとなる。同様にして、制御回路１１によってフリップフロップＦＦ１のトグル入力Ｔには１イベント入力に抑えられるため、フリップフロップＦＦ１による消費電力は２ｐＷとなる。
【００４９】
その結果、単純部分回路２１の消費電力は１０ｐＷであるのに対し、制御回路付き部分回路３１の消費電力は４ｐＷとなり、第１の部分回路組合せにおいて、電力消費予測箇所は低消費電力化の観点（ＰＣ１＜ＰＣ２）から制御回路付き部分回路３１を採用すべきであることが電力計算・比較部３によって決定される。
【００５０】
次に、図３及び図５における第２の部分回路組合せにおける電力計算・比較部３による動作について説明する。図３に示すように、単純部分回路２２において、ＡＮＤゲートＧ２１の１イベント当たりの消費電力が１ｐＷであり、３イベントの出力変化があるため３ｐＷの消費電力がある。一方、フリップフロップＦＦ１は１イベント当たり２ｐＷの消費電力が有り、その動作時にフリップフロップＦＦ１のトグル入力ＴにクロックＣＬＫが３イベント入力されるため、６ｐＷの消費電力がある。すなわち、単純部分回路２２の消費電力は９ｐＷとなる。
【００５１】
一方、図５に示すように、単純部分回路２２に対応する制御回路付き部分回路３２においいて、ＡＮＤゲートＧ２１の消費電力は１イベント当たり１ｐＷであり、単純部分回路２２と同様、３イベント出力変化があるため３ｐＷの消費電力がある。
【００５２】
また、付加した制御回路１２による消費電力は１イベント当たり２ｐＷ（ＥＸＯＲゲートＧ３が１ｐＷ，ＡＮＤゲートＧ４が１ｐＷ）であり、制御回路１２によって２イベントの出力変化に抑えられるため、４ｐＷの消費電力がある。同様にして、制御回路１２によってフリップフロップＦＦ１のトグル入力Ｔには２イベント入力に抑えられるため、１イベント当たりの消費電力が２ｐＷのフリップフロップＦＦ１による消費電力は４ｐＷとなる。その結果、制御回路付き部分回路３２の消費電力は１１ｐＷとなる。
【００５３】
したがって、単純部分回路２２の消費電力は９ｐＷであるのに対し、制御回路付き部分回路３２の消費電力は１１ｐＷとなり、第２の部分回路組合せにおいて、低消費電力化の観点（ＰＣ１＞ＰＣ２）から単純部分回路２２を採用すべきであることが決定される。
【００５４】
例えば、中間合成論理回路段階で単純部分回路２１及び２２で構成した場合は総消費電力１８ｐＷであったのが、最適化回路データＤ１１で規定される論理回路として制御回路付き部分回路３１及び単純部分回路２２が採用されることにより、総消費電力を１３ｐＷに抑えることができ、最も低消費電力化が図られる論理回路に最終決定することができる。
【００５５】
なお、上記したフリップフロップＦＦ１のトグル入力Ｔへのイベント情報、クロックＣＬＫのイベント情報等は、ＲＴＬ記述データＤ２に基づき、クロックＣＬＫ、制御信号ＣＴＬ等の入力パターン、フリップフロップ等の順序回路の入出力データの一致する割合等に基づき、論理シミュレーション部１によって算出され、トグル情報Ｄ１として出力される。
【００５６】
したがって、電力計算・比較部３は、第１及び第２の部分回路における順序回路のクロック入力に関する信号変化であるイベント情報を規定したトグル情報Ｄ１並びに第１及び第２の部分回路を構成する素子毎の消費電力を規定した消費電力ライブラリＤ３とを参照して、論理合成部２Ａが合成した中間合成論理回路にける部分回路組合せ毎に第１及び第２の部分回路の消費電力の優劣を正確に比較することができる。
【００５７】
このように、実施の形態１の論理合成装置は、最適化回路生成機構４１によって、最適化回路データＤ１１で規定される論理合成回路の電力消費予測箇所（部分回路組合せ）それぞれにおいて、制御回路を付加しない単純部分回路（第２の部分回路）及び制御回路付き部分回路（第１の部分回路）のうち、いずれを採用するかを各部分回路の消費電力の大小によって決定している。
【００５８】
その結果、実施の形態１の論理合成装置は、回路全体において、消費電力の増加を招く可能性がある場合、制御回路（クロックゲーティング機能）の追加を行わない、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【００５９】
さらに、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能（図３の制御信号ＣＴＬ及びＡＮＤゲートＧ２１に相当する機能）を有さない回路に対しても、制御回路を付加することにより、低消費電力化に適した論理合成を行うことができる効果を奏する。
【００６０】
＜実施の形態２＞
図６はこの発明の実施の形態２である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、設計態様の論理合成対象回路をゲートレベル（Gate Level)記述で規定したゲートレベルネットリストＤ４に基づき、実施の形態１と同様にトグル情報Ｄ１を出力する。ゲートレベルネットリストＤ４はＲＴＬ記述データＤ２よいレベルの高いゲートレベルの回路構成が記述されているため、論理シミュレーション部１は実施の形態１と同様に正確なトグル情報Ｄ１を出力することができる。また、実施の形態１と同様、消費電力ライブラリＤ３が準備される。
【００６１】
そして、トグル情報Ｄ１、ゲートレベルネットリストＤ４及び消費電力ライブラリＤ３が最適化回路生成機構４２に付与される。最適化回路生成機構４２は論理最適化部２Ｂ、電力計算・比較部３及び制御回路置換部４より構成される。
【００６２】
論理最適化部２ＢはゲートレベルネットリストＤ４に対し最適化処理を行い、実施の形態１と同様、部分回路組合せとなる第１及び第２の部分回路を含む中間合成論理回路を得る。
【００６３】
電力計算・比較部３は、実施の形態１と同様、部分回路組合せにおける第１及び第２の部分回路の消費電力（ＰＣ１及びＰＣ２）をそれぞれ計算して比較する。
【００６４】
制御回路置換部４は、実施の形態１と同様に、全ての部分回路組合せにおいて上記制御回路置換処理を行うことにより、部分回路組合せにおいて第１あるいは第２の部分回路を選択し、最終決定した論理回路を規定した最適化回路データＤ１２を得る。
【００６５】
このように、実施の形態２の論理合成装置は、最適化回路生成機構４２によって、最適化回路データＤ１２で規定される論理合成回路の電力消費予測箇所（部分回路組合せ）それぞれにおいて、制御回路を付加しない単純部分回路（第２の部分回路）及び制御回路付き部分回路（第１の部分回路）のうち、いずれを採用するかを第１及び第２の部分回路の消費電力の大小によって決定している。
【００６６】
その結果、実施の形態２の論理合成装置は、実施の形態１と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【００６７】
さらに、実施の形態２の論理合成装置は、実施の形態１と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、制御回路を付加することにより、低消費電力化に適した論理合成を行うことができる効果を奏する。
【００６８】
なお、実施の形態１と実施の形態２とを比較した場合、実施の形態１の方がＲＴＬ記述データＤ２に基づき論理合成部２Ａで論理合成する分、設計自由度が増すという効果を奏する。
【００６９】
一方、実施の形態２の方がゲートレベルネットリストＤ４を論理最適化部２Ｂで最適化する分、高速性や高密度の要求に応えた論理合成を行うことができる効果を奏する。
【００７０】
＜実施の形態３＞
図７はこの発明の実施の形態３である論理合成装置で最終決定された最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。なお、実施の形態３の論理合成装置の構成は図１で示した実施の形態１の構成でも、図６で示した実施の形態２の合成でも良い。
【００７１】
図７に示すように、制御回路付き部分回路３３における内蔵制御回路１１ｐ（図４，図５の制御回路１１，１２に相当）はＥＸＯＲゲートＧ５及びＡＮＤゲートＧ６を含むで構成される。
【００７２】
制御回路付き部分回路３３である制御機能付きフリップフロップＦＦ１０は、上記内蔵制御回路１１ｐを部分フリップフロップＦＦ２と共に内蔵させている点に特徴を有する。すなわち、制御機能付きフリップフロップＦＦ１０は、内蔵制御回路１１ｐ及び部分フリップフロップＦＦ２を有する一単位のセルとしてフリップフロップを構成してる。
【００７３】
内蔵制御回路１１ｐにおいて、ＥＸＯＲゲートＧ５は一方入力に入力データＤＡＴＡを受け、他方入力に出力データＱＯを受ける。ＡＮＤゲートＧ６は一方入力にＥＸＯＲゲートＧ５の出力を受け、他方入力にクロックＣＬＫを受ける。部分フリップフロップＦＦ２はデータ入力Ｄに入力データＤＡＴＡを受け、トグル入力ＴにＡＮＤゲートＧ６の出力を受け、データ出力Ｑから出力データＱＯを出力する。
【００７４】
このように、制御機能付きフリップフロップＦＦ１０は、ＥＸＯＲゲートＧ５及びＡＮＤゲートＧ６を有する内蔵制御回路１１ｐを内部に有する点を除き、図４で示した制御回路付き部分回路３１と等価な構成を採る。
【００７５】
なお、上記した制御回路付き部分回路３３（制御機能付きフリップフロップＦＦ１０）のような第１の部分回路は、実施の形態１の論理合成部２Ａあるいは実施の形態２の論理最適化部２Ｂを改良することにより、中間合成論理回路段階で生成させることができる。
【００７６】
このように、実施の形態３の論理合成装置は、実施の形態１及び実施の形態２と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【００７７】
さらに、実施の形態３の論理合成装置は、実施の形態１及び実施の形態２と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、図７で示すように制御機能付きフリップフロップＦＦ１０を合成することにより、低消費電力化に適した論理合成を行うことができる効果を奏する。
【００７８】
加えて、実施の形態３の論理合成装置は、順序回路であるフリップフロップ自身を制御機能付きフリップフロップＦＦ１０として、低消費電力化に適した回路性能の高いセルとして活用することができる。その結果、より性能の高い論理回路を合成することができるという効果を奏する。
【００７９】
＜実施の形態４＞
図８はこの発明の実施の形態４である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、実施の形態１及び実施の形態２と同様に、ＲＴＬ記述データＤ２（あるいはゲートレベルネットリストＤ４）に基づき、トグル情報Ｄ１を出力する。また、実施の形態１（実施の形態２）と同様、消費電力ライブラリＤ３が準備される。
【００８０】
なお、消費電力ライブラリＤ３は上述した情報以外に論理合成対象となる制御回路を構成する各セルの回路面積や信号遅延に関する情報も含まれている。
【００８１】
そして、トグル情報Ｄ１、ＲＴＬ記述データＤ２及び消費電力ライブラリＤ３が最適化回路生成機構４３に付与される。最適化回路生成機構４３は論理合成部２（論理合成部２Ａ，論理最適化部２Ｂを含む）、電力計算・比較部３、制御回路置換部４及び回路面積検証部７より構成される。以下、説明の都合上、実施の形態１との対比を中心に説明する。
【００８２】
論理合成部２はＲＴＬ記述データＤ２に対し論理合成を行い、実施の形態１と同様、第１及び第２の部分回路を含む中間合成論理回路を得る。電力計算・比較部３は、実施の形態１の電力計算・比較部３と同様、第１及び第２の部分回路の消費電力をそれぞれ計算して比較する。
【００８３】
制御回路置換部４は、全ての部分回路組合せに対し実施の形態１と同様の上記制御回路置換処理を行うことにより最適化回路データＤ１１（Ｄ１２）を得る。
【００８４】
制御回路置換部４と共に最適化回路決定部を構成する回路面積検証部７は、最適化回路データＤ１１で規定された論理回路を仮論理回路とする。そして、回路面積検証部７は、仮論理回路に対して回路面積検証を行いながら仮論理回路を再構成して、消費電力及び回路面積の向上を図った論理回路を最終的に規定した最適化回路データＤ１３を出力する。
【００８５】
図９は実施の形態４の回路面積検証部７による回路面積検証動作の処理手順を示すフローチャートである。以下、同図を参照して、回路面積検証部７による回路面積検証動作の内容を説明する。
【００８６】
まず、ステップＳＴ１で、最適化回路生成機構４３の論理合成部２、電力計算・比較部３及び制御回路置換部４によって、最適化回路データＤ１１を得る。そして、最適化回路データＤ１１で規定された論理回路が仮論理回路として以降のステップで用いられる。
【００８７】
なお、説明の都合上、最適化回路データＤ１１を代表させたが、実施の形態２の最適化回路生成機構４２による最適化回路データＤ１２で規定された論理回路、実施の形態３による制御回路内蔵順序回路を規定した論理回路を仮論理回路として得ることも勿論可能である。
【００８８】
次に、ステップＳＴ２において、消費電力ライブラリＤ３で記述された各セルの面積情報を参照して、ステップＳＴ１で得た仮論理回路の回路総面積を算出する。
【００８９】
その後、ステップＳＴ３において、上記回路総面積を許容範囲内であるか否かをチェックし、許容範囲内（Yes）であれば、ステップＳＴ６において、現仮論理回路を最終決定の論理回路として規定した最適化回路データＤ１３を出力して、処理を終了する。
【００９０】
一方、ステップＳＴ３で上記回路総面積が許容範囲外である場合（No）に実行されるステップＳＴ４において、現在の仮論理回路において、制御回路を付加（内蔵）した全ての第１の部分回路のうち、消費電力向上度合が最も低い回路を制御回路を外した対応する第２の部分回路に変更する部分回路再構成処理を行う。
【００９１】
例えば、仮論理回路中において、図４で示した制御回路付き部分回路３１の消費電力向上度合が最も低いと判断された場合、制御回路１１が外され、図２で示した単純部分回路２１にする部分回路再構成処理が実行される。その結果、制御回路１１の回路面積削減を図ることができる。
【００９２】
次に、ステップＳＴ５において、制御回路を付加した第１の部分回路を採用した部分回路組合せが他に存在するか否かがチェックされ、存在しない場合（No）は、制御回路の削除に伴う回路面積削減は不可能であるためステップＳＴ６において、現仮論理回路を最終決定の論理回路として規定した最適化回路データＤ１３を出力して、処理を終了する。
【００９３】
一方、ステップＳＴ５において、第１の部分回路を採用した部分回路組合せが他に存在する場合、ステップＳＴ３に戻る。以降、ステップＳＴ３でYesと判定されるか、ステップＳＴ５でNoと判定されるまで、ステップＳＴ３〜ＳＴ６の処理が繰り返される。
【００９４】
このように、実施の形態４の論理合成装置は、実施の形態１〜実施の形態３と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【００９５】
さらに、実施の形態４の論理合成装置は、実施の形態１〜実施の形態３と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、低消費電力化に適した論理合成を行うことができる効果を奏する。
【００９６】
加えて、実施の形態４の論理合成装置は、最適化回路決定部を構成する回路面積検証部７によって回路総面積が許容範囲に収まるように、仮論理回路に対する部分回路再構成処理を行っている。その結果、低消費電力化に加え、回路面積増大を必要最小限に抑えた論理回路を規定した最適化回路データＤ１３を最終的に得ることが効果を奏する。すなわち、低消費電力化と回路面積適正化とを共に図った最適化回路データＤ１３を得ることができる。
【００９７】
＜実施の形態５＞
図１０はこの発明の実施の形態５である論理合成装置で最終的に得られた最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。なお、実施の形態５の論理合成装置の構成は図１で示した実施の形態１の構成でも、図６で示した実施の形態２の構成でも良い。
【００９８】
図１０に示すように、中間合成論理回路中における共用第１の部分回路に相当する制御回路付き部分回路３４は２つのフリップフロップＦＦ３及びＦＦ４に対して一つの制御回路１３が共有する形で合成される。
【００９９】
図１０に示すように、フリップフロップＦＦ３はデータ入力Ｄに入力データＤＡＴＡ１を受け、データ出力Ｑから出力データＱＯ１を出力する。フリップフロップＦＦ４はデータ入力Ｄに入力データＤＡＴＡ１とは独立した入力データＤＡＴＡ２を受け、データ出力Ｑから出力データＱＯ１とは独立した出力データＱＯ２を出力する。そして、フリップフロップＦＦ３及びＦＦ４及びはトグル入力Ｔに受けるクロックを共通入力としている。
【０１００】
一方、フリップフロップＦＦ３及びＦＦ４間で共用される制御回路１３は、ＥＸＯＲゲートＧ７，Ｇ８，ＯＲゲートＧ９及びＡＮＤゲートＧ１０から構成される。
【０１０１】
ＥＸＯＲゲートＧ７は一方入力に入力データＤＡＴＡ１を受け、他方入力に出力データＱＯ１を受ける。ＥＸＯＲゲートＧ８は一方入力に入力データＤＡＴＡ２を受け、他方入力に出力データＱＯ２を受ける。
【０１０２】
ＯＲゲートＧ９は一方入力にＥＸＯＲゲートＧ７の出力を受け、他方入力にＥＸＯＲゲートＧ８の出力を受ける。ＡＮＤゲートＧ１０は一方入力にＯＲゲートＧ９の出力を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ１０の出力が制御回路１３の出力信号Ｓ１３として、フリップフロップＦＦ３及びＦＦ４それぞれのトグル入力Ｔに共通に入力される。
【０１０３】
フリップフロップＦＦ３の入力データＤＡＴＡ１と出力データＱＯ１とが同一値であり変化しない場合、ＥＸＯＲゲートＧ７は“Ｌ”となる。同様にして、フリップフロップＦＦ４の入力データＤＡＴＡ２と出力データＱＯ２とが同一値であり変化しない場合、ＥＸＯＲゲートＧ８は“Ｌ”となる。
【０１０４】
したがって、ＯＲゲートＧ９は入力データＤＡＴＡ１，出力データＱＯ１間あるいは入力データＤＡＴＡ２，出力データＱＯ２間で変化があった（ＥＸＯＲゲートＧ７，Ｇ８のいずれかの出力が“Ｈ”）場合のみ、ＯＲゲートＧ９は“Ｈ”を出力する。
【０１０５】
その結果、ＡＮＤゲートＧ１０は、フリップフロップＦＦ３及びＦＦ４のうち、少なくとも一方の入出力データ間に変化があった場合のみ、クロックＣＬＫを有効にして出力信号Ｓ１３としてフリップフロップＦＦ３及びＦＦ４のトグル入力Ｔに付与する。
【０１０６】
なお、上記した制御回路付き部分回路３４のような共用第１の部分回路は、実施の形態１の論理合成部２Ａあるいは実施の形態２の論理最適化部２Ｂを改良することにより、中間合成論理回路段階で生成させることができる。
【０１０７】
このように、実施の形態５の論理合成装置は、実施の形態１及び実施の形態２と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【０１０８】
さらに、実施の形態５の論理合成装置は、実施の形態１及び実施の形態２と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、低消費電力化に適した論理合成を行うことができる効果を奏する。
【０１０９】
加えて、実施の形態５の論理合成装置は、複数の順序回路（フリップフロップ等）に対して共通の制御回路１３を付加した共用第１の部分回路となる制御回路付き部分回路３４を生成することにより、以下の効果を奏する。
【０１１０】
図１０に示すように、クロック共通のフリップフロップＦＦ３及びＦＦ４において制御回路１３を共有化することにより、制御回路１３を構成するセル（素子）数を削減することができる。その結果、実施の形態１や実施の形態２のように、第１の部分回路（制御回路）を共有しない論理合成と比較した場合、電力削減効果および面積削減効果が増加する可能性が高くなる効果を奏する。例えば、制御回路１３においてＯＲゲートＧ９とＡＮＤゲートＧ１０とを合成した１つの論理素子として形成することが比較的簡単に可能であるため、制御回路１３を構成する論理素子数を３個に削減することができる。
【０１１１】
但し、フリップフロップＦＦ３の入出力信号が同じ場合で、かつフリップフロップＦＦ４入出力信号が同じ場合のみクロックＣＬＫを無効化することになるため、フリップフロップＦＦ３あるいはフリップフロップＦＦ４のうち一方の入出力信号が異なる場合に、他方のクロックＣＬＫを無効化できない。
【０１１２】
したがって、実施の形態１や実施の形態２のように制御回路部分を共有化しない場合と比べて、クロックＣＬＫを無効化できる期間が短くなり、電力削減効果は低下する可能性がある。
【０１１３】
したがって、実施の形態１，実施の形態２との優劣を比較しながら、さらに電力削減が可能な場合にのみ、実施の形態５のように共有第１の部分回路（制御回路付き部分回路３４）を合成することが望ましい。また、実施の形態４の回路面積検証部７に相当する構成を追加して、回路面積増大を最小限に抑えることもできる。
【０１１４】
＜実施の形態６＞
図１１はこの発明の実施の形態６である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、実施の形態１及び実施の形態２と同様に、ＲＴＬ記述データＤ２（あるいはゲートレベルネットリストＤ４）に基づきトグル情報Ｄ１を出力する。また、実施の形態１（実施の形態２）と同様、消費電力ライブラリＤ３が準備される。
【０１１５】
そして、トグル情報Ｄ１、ＲＴＬ記述データＤ２及び消費電力ライブラリＤ３が最適化回路生成機構４４に付与される。最適化回路生成機構４４は論理合成部２（論理合成部２Ａ，論理最適化部２Ｂを含む）、電力計算・比較部３、制御回路置換部４、配置配線部５及びバッファ挿入部６より構成される。
【０１１６】
論理合成部２はＲＴＬ記述データＤ２に対し論理合成を行い（ゲートレベルネットリストＤ４に対する最適化処理でも可）、第１及び第２の部分回路を含む中間合成論理回路を得る。この際、実施の形態５と同様に第１の部分回路として、複数の順序回路で共用される共用第１の部分回路が得られる。
【０１１７】
電力計算・比較部３は、実施の形態１，実施の形態５等と同様、第１及び第２の部分回路の消費電力をそれぞれ計算して比較する。制御回路置換部４は、実施の形態１，実施の形態５等と同様に、共通のクロックを入力する複数のフリップフロップ等の順序回路間で共有する制御回路が付加された共用第１の部分回路（制御回路付き部分回路３４等に相当）を含む論理回路を規定した最適化回路データＤ１４を生成する。
【０１１８】
配置配線部５は最適化回路データＤ１４で規定された論理回路に基づき配置配線処理を行い配置配線済み論理回路データをバッファ挿入部６に出力する。
【０１１９】
バッファ挿入部６は配置配線済み論理回路データに基づき、共用第１の部分回路内の御回路を共有する複数の順序回路間において、共通クロック信号のクロック入力部（トグル入力Ｔ等）への信号伝搬時間差を計算する。そして、複数の順序回路それぞれのクロック信号伝搬時間差を考慮して適宜バッファゲートを挿入する。そして、複数の順序回路のクロック入力部の少なくとも一部にバッファ挿入した後の論理回路を規定した最適化回路データＤ１５を最終的に出力する。上記した配置配線部５及びバッファ挿入部６は制御回路置換部４と共に最適化回路決定部として機能する。
【０１２０】
図１２はこの発明の実施の形態６である論理合成装置で最終的に得られた最適化回路データＤ１５で規定される、共用第１の部分回路である制御回路付き部分回路の構成を示す回路図である。
【０１２１】
図１２に示すように、制御回路付き部分回路３５は、実施の形態５と同様、２つのフリップフロップＦＦ３及びＦＦ４に対して一つの制御回路１３が共有する形で設けられている。なお、フリップフロップＦＦ３及びＦＦ４並びに制御回路１３の構成は図１０で示した実施の形態５と同様であるため説明を省略する。以下、実施の形態５と異なる点のみ説明する。
【０１２２】
ＡＮＤゲートＧ１０の出力が制御回路１３の出力信号Ｓ１３として出力される。出力信号Ｓ１３である制御回路１３の出力信号Ｓ１４は、フリップフロップＦＦ３のトグル入力Ｔに直接付与される。一方、フリップフロップＦＦ４に対しては、出力信号Ｓ１３との間にバッファゲートＧ１１が挿入される。以下、バッファゲートＧ１１を挿入した理由について説明する。
【０１２３】
配置配線部５による配置配線済み論理回路データに基づき、フリップフロップＦＦ３及びＦＦ４間ににける出力信号Ｓ１３の信号伝搬時間差において、フリップフロップＦＦ４のトグル入力Ｔの方がフリップフロップＦＦ３のトグル入力Ｔより信号伝搬時間が短いことが検出される。
【０１２４】
このため、バッファ挿入部６によって、出力信号Ｓ１３とフリップフロップＦＦ４のトグル入力Ｔとの間にバッファゲートＧ１１を介挿することにより、フリップフロップＦＦ３及びＦＦ４のトグル入力Ｔへの出力信号Ｓ１３の入力タイミングを合致させることができる。
【０１２５】
このように、実施の形態６の論理合成装置は、実施の形態１，実施の形態２及び実施の形態５と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【０１２６】
さらに、実施の形態６の論理合成装置は、実施の形態１，実施の形態２及び実施の形態５と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、低消費電力化に適した論理合成を行うことができる効果を奏する。
【０１２７】
加えて、実施の形態６の論理合成装置は、複数の順序回路（フリップフロップ等）に対して共用第１の部分回路（共通の制御回路１３）を設けることにより、実施の形態５と同様、電力削減効果および面積削減効果が増加する可能性が高くなる効果を奏する。
【０１２８】
さらに、実施の形態６では、最適化回路生成機構４４の配置配線部５及びバッファ挿入部６によって、フリップフロップ等の順序回路に供給される、制御回路１３からの出力信号Ｓ１３（クロックＣＬＫ）にスキューが発生しないように、バッファゲートＧ１１を挿入した制御回路付き部分回路３５を有する論理回路を合成することができる。その結果、実施の形態５において発生する可能性のあったクロックスキュー問題の解決を図ることができる効果を奏する。
【０１２９】
また、実施の形態６においても、実施の形態４の回路面積検証部７に相当する構成を追加して、回路面積増大を最小限に抑えることもできる。
【０１３０】
＜実施の形態７＞
図１３はこの発明の実施の形態７である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、実施の形態１及び実施の形態２と同様に、ＲＴＬ記述データＤ２（あるいはゲートレベルネットリストＤ４）に基づきトグル情報Ｄ１を出力する。また、実施の形態１（実施の形態２）と同様、消費電力ライブラリＤ３が準備される。
【０１３１】
そして、トグル情報Ｄ１、ＲＴＬ記述データＤ２及び消費電力ライブラリＤ３が最適化回路生成機構４５に付与される。最適化回路生成機構４５は論理合成部２（論理合成部２Ａ，論理最適化部２Ｂを含む、ただし、実施の形態５に対応する構成）、電力計算・比較部３、制御回路置換部４、配置配線部５及びＦＦ近接配置処理部８より構成される。
【０１３２】
論理合成部２はＲＴＬ記述データＤ２に対し論理合成を行い（ゲートレベルネットリストＤ４に対する最適化処理でも可）、第１及び第２の部分回路を含む中間合成論理回路を得る。この際、実施の形態５と同様に第１の部分回路として、複数の順序回路で共用される共用第１の部分回路が得られる。
【０１３３】
電力計算・比較部３は、実施の形態１，実施の形態５及び実施の形態６等と同様、第１及び第２の部分回路の消費電力をそれぞれ計算して比較する。制御回路置換部４は、実施の形態１，実施の形態５及び実施の形態６等と同様に、共通のクロックを入力する複数のフリップフロップ等の順序回路間で共有する制御回路が付加された共用第１の部分回路（制御回路付き部分回路３４等に相当）を含む論理回路を規定した最適化回路データＤ１４を生成する。
【０１３４】
配置配線部５は最適化回路データＤ１４で規定された論理回路に基づき配置配線処理を行い配置配線済み論理回路データをＦＦ近接配置処理部８に出力する。
【０１３５】
ＦＦ近接配置処理部８は配置配線済み論理回路データに基づき、共用第１の部分回路内において制御回路を共有する複数の順序回路間の距離が近接するようにレイアウト再構成処理を行う。そして、レイアウト再構成後の論理回路を規定した最適化回路データＤ１６を最終的に出力する。上記した制御回路置換部４、配置配線部５及びＦＦ近接配置処理部８により最適化回路決定部を構成する。
【０１３６】
このように、実施の形態７の論理合成装置は、実施の形態１，実施の形態２、実施の形態５及び実施の形態６と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【０１３７】
さらに、実施の形態７の論理合成装置は、実施の形態１，実施の形態２、実施の形態５及び実施の形態６と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、低消費電力化に適した論理合成を行うことができる効果を奏する。
【０１３８】
加えて、実施の形態７の論理合成装置は、複数の順序回路（フリップフロップ等）に対して共通の制御回路１３を付加した第１の部分回路を生成することにより、実施の形態５及び実施の形態６と同様、電力削減効果および面積削減効果が増加する可能性が高くなる効果を奏する。
【０１３９】
さらに、実施の形態７の論理合成装置では、最適化回路生成機構４５の配置配線部５及びＦＦ近接配置処理部８によって、共用第１の部分回路内において制御回路を共有するフリップフロップ等の複数の順序回路間の距離が近接するように、レイアウト再構成処理を行う。その結果、実施の形態７は、実施の形態５において発生する可能性のあったクロックスキュー問題の解決を効果的に発揮することができる。
【０１４０】
また、実施の形態７においても、実施の形態４の回路面積検証部７に相当する構成を追加して、回路面積増大を最小限に抑えることもできる。
【０１４１】
＜実施の形態８＞
図１４はこの発明の実施の形態８である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、実施の形態１及び実施の形態２と同様に、ＲＴＬ記述データＤ２（あるいはゲートレベルネットリストＤ４）に基づきトグル情報Ｄ１を出力する。また、実施の形態１（実施の形態２）と同様、消費電力ライブラリＤ３が準備される。
【０１４２】
そして、トグル情報Ｄ１、ＲＴＬ記述データＤ２及び消費電力ライブラリＤ３が最適化回路生成機構４６に付与される。最適化回路生成機構４６は論理合成部２（論理合成部２Ａ，論理最適化部２Ｂを含む）、電力計算・比較部３、制御回路置換部４、及び信号処理短縮化部９より構成される。
【０１４３】
論理合成部２はＲＴＬ記述データＤ２に対し論理合成を行い（ゲートレベルネットリストＤ４に対する最適化処理でも可）、第１及び第２の部分回路を含む中間合成論理回路を得る。電力計算・比較部３は、実施の形態１，実施の形態２と同様に、第１及び第２の部分回路の消費電力をそれぞれ計算して比較する。
【０１４４】
制御回路置換部４は、全ての部分回路組合せに対し実施の形態１と同様の上記制御回路置換処理を行うことにより最適化回路データＤ１１（Ｄ１２）を得る。
【０１４５】
制御回路置換部４と共に最適化回路決定部を構成する信号処理短縮化部９は、最適化回路データＤ１１で規定された論理回路に対し、回路全体の論理を変更することなく、信号処理時間の短縮化が図れるように信号配線及び素子の再構成処理を行う。そして、信号配線等の再構成処理後の論理回路を規定した最適化回路データＤ１６を最終的に出力する。
【０１４６】
図１５は最適化回路データＤ１１で規定される制御回路付き部分回路の構成を示す回路図である。図１６はこの発明の実施の形態８である論理合成装置で最終的に得られた最適化回路データＤ１６で規定される制御回路付き部分回路の構成を示す回路図である。
【０１４７】
図１５に示すように、最適化回路データＤ１１で規定された制御回路付き部分回路３６は、付加された制御回路１４、インバータＧ１４及びフリップフロップＦＦ５より構成される。
【０１４８】
制御回路１４において、ＥＸＯＲゲートＧ１２は一方入力に入力データＤＡＴＡを受け、他方入力に出力データＱＯを受けている。ＡＮＤゲートＧ１０は一方入力にＥＸＯＲゲートＧ１２の出力を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ１０の出力が制御回路１４の出力信号Ｓ１４となる。
【０１４９】
フリップフロップＦＦ５はインバータＧ１４の出力信号を入力データＤＡＴＡとして受け、トグル入力Ｔに出力信号Ｓ１４を受け、データ出力Ｑより出力データＱＯを出力する。
【０１５０】
図１６に示す制御回路付き部分回路３７は、信号処理短縮化部９によって、制御回路付き部分回路３６から再構成処理が施された後の回路である。
【０１５１】
信号処理短縮化部９は、インバータＧ１４の出力である入力データＤＡＴＡに代えて、インバータＧ１４の入力である反転入力データバーＤＡＴＡを後述する制御回路１５の比較用に用いることにした。なぜならば、インバータＧ１４の入力値の方が出力値よりも先に値が決定するため、信号処理の短縮化が期待できるからである。
【０１５２】
さらに、信号処理短縮化部９は、制御回路１４を制御回路１５に変える再構成処理を行った。制御回路１５において、ＥＸＯＲゲートＧ１５はインバータＧ１４の入力である反転入力データバーＤＡＴＡを反転一方入力に受け、出力データＱＯを他方入力に受ける。ＡＮＤゲートＧ１０は一方入力にＥＸＯＲゲートＧ１２の出力を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ１０の出力が制御回路１５の出力信号Ｓ１５となる。
【０１５３】
このように、実施の形態８の論理合成装置は、実施の形態１及び実施の形態２と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【０１５４】
さらに、実施の形態１，実施の形態２と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、低消費電力化に適した論理合成を行うことができる効果を奏する。
【０１５５】
さらに、実施の形態８では、最適化回路生成機構４６の信号処理短縮化部９によって、フリップフロップ等の順序回路の入出力信号に関連する素子であるインバータＧ１４の入出力特性を考慮し、より信号処理の短縮化が図れるように、信号配線及び素子構成の再構成処理を図った制御回路付き部分回路３７を有する論理回路を合成している。その結果、最適化回路データＤ１６で規定される論理回路は、より処理時間の短縮化を図ることができる効果を奏する。その結果、クロックと順序回路の入出力信号とのタイミング調整が容易となる効果も期待できる。
【０１５６】
また、実施の形態８においても、実施の形態４の回路面積検証部７に相当する構成を追加して、回路面積増大を最小限に抑えることもできる。
【０１５７】
＜実施の形態９＞
図１７はこの発明の実施の形態９である論理合成装置の構成を示すブロック図である。同図に示すように、論理シミュレーション部１は、実施の形態１及び実施の形態２と同様に、ＲＴＬ記述データＤ２（あるいはゲートレベルネットリストＤ４）に基づきトグル情報Ｄ１を出力する。また、実施の形態１（実施の形態２）と同様、消費電力ライブラリＤ３が準備される。
【０１５８】
そして、トグル情報Ｄ１、ＲＴＬ記述データＤ２及び消費電力ライブラリＤ３が最適化回路生成機構４７に付与される。最適化回路生成機構４７における論理合成部２、電力計算・比較部３及び制御回路置換部４の構成及び動作は、実施の形態８の最適化回路生成機構４６における論理合成部２、電力計算・比較部３及び制御回路置換部４と同様であるため、説明を省略する。
【０１５９】
制御回路置換部４と共に最適化回路決定部を構成するリセット機能付加部１０は、最適化回路データＤ１１で規定された論理回路に対し、フリップフロップ等の順序回路がリセット機能を有する場合は、付加する制御回路内にもリセット機能が設けられるように、リセット機能追加処理を行う。そして、リセット機能付加部１０は、リセット機能追加処理後の論理回路を規定した最適化回路データＤ１７を最終的に出力する。
【０１６０】
図１８は最適化回路データＤ１１で規定される制御回路付き部分回路の構成を示す回路図である。図１９はこの発明の実施の形態９である論理合成装置で最終的に得られた最適化回路データＤ１７で規定される制御回路付き部分回路の構成を示す回路図である。
【０１６１】
図１８に示すように、最適化回路データＤ１１で規定された制御回路付き部分回路３８は、付加された制御回路１６及びフリップフロップＦＦ６より構成される。
【０１６２】
制御回路１６において、ＥＸＯＲゲートＧ１８は一方入力に入力データＤＡＴＡを受け、他方入力に出力データＱＯを受けている。ＡＮＤゲートＧ１９は一方入力にＥＸＯＲゲートＧ１８の出力を受け、他方入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ１９の出力が制御回路１６の出力信号Ｓ１６となる。
【０１６３】
フリップフロップＦＦ６はデータ入力Ｄに入力データＤＡＴＡを受け、トグル入力Ｔに出力信号Ｓ１６を受け、データ出力Ｑより出力データＱＯを出力する。そして、フリップフロップＦＦ６は反転リセット入力Ｒに反転リセット信号バーＲＳＴを受ける。
【０１６４】
図１９に示す制御回路付き部分回路３９は、リセット機能付加部１０によって、制御回路付き部分回路３８から再構成処理が施された後の回路である。
【０１６５】
リセット機能付加部１０は、制御回路１６を制御回路１７に変えるリセット機能付加処理を行った。制御回路１７において、ＥＸＯＲゲートＧ１８は入力データＤＡＴＡを一方入力に受け、出力データＱＯを他方入力に受ける。３入力のＡＮＤゲートＧ２０は第１入力に反転リセット信号バーＲＳＴを受け、第２入力にＥＸＯＲゲートＧ１８の出力を受け、第３入力にクロックＣＬＫを受ける。そして、ＡＮＤゲートＧ２０の出力が制御回路１７の出力信号Ｓ１７となる。この出力信号Ｓ１７がフリップフロップＦＦ６のトグル入力Ｔに付与される。
【０１６６】
このように、実施の形態９の論理合成装置は、実施の形態１及び実施の形態２と同様、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【０１６７】
さらに、実施の形態１，実施の形態２と同様、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能を有さない回路に対しても、低消費電力化に適した論理合成を行うことができる効果を奏する。
【０１６８】
さらに、実施の形態９では、最適化回路生成機構４７のリセット機能付加部１０によって、フリップフロップ等の順序回路に設けられたリセット機能を、付加すべき制御回路にも内蔵するように、リセット機能付加処理を図った制御回路付き部分回路３９を有する論理回路を合成することができる。
【０１６９】
その結果、最適化回路データＤ１７で規定される論理回路における制御回路１７は、フリップフロップＦＦ６のリセット時（反転リセット信号バーＲＳＴが“Ｌ”）においても、クロックＣＬＫを無効化（出力信号Ｓ１７を“Ｌ”固定）して低消費電力化を図ることができる効果を奏する。
【０１７０】
なお、実施の形態９では、非同期のリセット機能を制御回路内に取り込む例を示したがが、リセット機能付加部１０の機能を拡張して、（非同期）セット機能を有するフリップフロップ等の順序回路に対してセット機能を制御回路内に取り込ませるようにしても良い。すなわち、リセット、セット等、固定データを設定する機能を有する順序回路に対し、固定データ設定機能を制御回路に内蔵させることにより、上述した効果を得ることができる。
【０１７１】
また、実施の形態９においても、実施の形態４の回路面積検証部７に相当する構成を追加して、回路面積増大を最小限に抑えることもできる。
【０１７２】
＜その他＞
実施の形態１〜実施の形態９の論理合成装置において、最適化回路生成機構４１〜４７等における論理合成部２、電力計算・比較部３、制御回路置換部４、配置配線部５、バッファ挿入部６、回路面積検証部７、ＦＦ近接配置処理部８、信号処理短縮化部９及びリセット機能付加部１０それぞれの処理を例えばソフトウェア処理としてモジュール化する等により、論理合成方法として用いることも勿論可能である。
【０１７３】
例えば、実施の形態１の論理合成装置の処理を以下のステップ(1)〜(3)からなる論理合成方法として実施することができる。
【０１７４】
ステップ(1) ：フリップフロップを含む論理回路を記述したＲＴＬ記述データＤ２に基づき、論理合成処理を行い中間合成論理回路を得る。上記ステップ(1)において得た中間合成論理回路は、同一のフリップフロップに関し、当該フリップフロップのトグル入力Ｔにクロックゲーティング機能を有する制御回路を付加する第１の部分回路（制御回路付き部分回路３１，３２相当（図４，図５参照））と付加しない第２の部分回路（単純部分回路２１，２２相当（図２，図３参照））とを含む部分回路組合せを有する。
【０１７５】
ステップ(2)：上記第１及び第２の部分回路におけるフリップフロップのトグル入力Ｔに関する信号変化であるイベント情報を規定したトグル情報Ｄ１及び上記第１及び第２の部分回路を構成する素子毎のイベント当たりの消費電力を規定した消費電力ライブラリＤ３とを参照して、部分回路組合せ毎に第１及び第２の部分回路の消費電力を比較する。
【０１７６】
ステップ(3)：前記ステップ(2) の比較結果に基づき、部分回路組合せ毎に、第１及び第２の部分回路のうち消費電力が少ない方を決定部分回路（例えば、実施の形態１の場合、単純部分回路２２と制御回路付き部分回路３１）として採用し、部分回路組合せ箇所に決定部分回路を用いて構成する最終決定論理回路を規定した最適化回路データＤ１１を生成する。
【０１７７】
このように、実施の形態１を例にした論理合成方法は、最適化回路データＤ１１で規定される論理合成回路の電力消費予測箇所（部分回路組合せ）それぞれにおいて、制御回路を付加しない単純部分回路（第２の部分回路）及び制御回路付き部分回路（第１の部分回路）のうち、いずれを採用するかを各部分回路の消費電力の大小によって決定している。
【０１７８】
その結果、実施の形態１を例にした論理合成方法は、回路全体において、消費電力の増加を招く可能性がある場合、制御回路（クロックゲーティング機能）の追加を行わない、低消費電力化に適した論理合成を行うことができるという効果を奏する。
【０１７９】
さらに、図２で示した単純部分回路２１のように、クロックＣＬＫのゲーティングする機能（図３の制御信号ＣＴＬ及びＡＮＤゲートＧ２１に相当する機能）を有さない回路に対しても、制御回路を付加することにより、低消費電力化に適した論理合成を行うことができる効果を奏する。
【産業上の利用可能性】
【０１８０】
この発明は、論理合成可能なSOC製品全般に適用可能である。
【図面の簡単な説明】
【０１８１】
【図１】この発明の実施の形態１である論理合成装置の構成を示すブロック図である。
【図２】実施の形態１の最適化回路生成機構４１による最適化回路データの生成内容の具体例（単純部分回路（その１））を示す回路図である。
【図３】実施の形態１の最適化回路生成機構４１による最適化回路データの生成内容の具体例（単純部分回路（その２））を示す回路図である。
【図４】実施の形態１の最適化回路生成機構４１による最適化回路データの生成内容の具体例（制御回路付き部分回路（その１））を示す回路図である。
【図５】実施の形態１の最適化回路生成機構４１による最適化回路データの生成内容の具体例（制御回路付き部分回路（その２）を示す回路図である。
【図６】この発明の実施の形態２である論理合成装置の構成を示すブロック図である。
【図７】この発明の実施の形態３である論理合成装置で最終的に得られた最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。
【図８】この発明の実施の形態４である論理合成装置の構成を示すブロック図である。
【図９】実施の形態４の回路面積検証部による回路面積検証の処理手順を示すフローチャートである。
【図１０】この発明の実施の形態５である論理合成装置で最終的に得られた最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。
【図１１】この発明の実施の形態６である論理合成装置の構成を示すブロック図である。
【図１２】この発明の実施の形態６である論理合成装置で最終的に得られた最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。
【図１３】この発明の実施の形態７である論理合成装置の構成を示すブロック図である。
【図１４】この発明の実施の形態８である論理合成装置の構成を示すブロック図である。
【図１５】実施の形態８において中間的な制御回路付き部分回路の構成を示す回路図である。
【図１６】この発明の実施の形態８である論理合成装置で最終的に得られた最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。
【図１７】この発明の実施の形態９である論理合成装置の構成を示すブロック図である。
【図１８】実施の形態９において中間的な制御回路付き部分回路の構成を示す回路図である。
【図１９】この発明の実施の形態９である論理合成装置で最終的に得られた最適化回路データで規定される制御回路付き部分回路の構成を示す回路図である。
【図２０】クロックゲーティング手法を適用可能な部分回路の構成を示す回路図である。
【図２１】図２０で示した部分回路の動作を示す波形図である。
【図２２】クロックゲーティング手法を用いて論理合成された部分回路の構成を示す回路図である。
【図２３】単純なフリップフロップの入出力信号を示す回路図である。
【図２４】図２３で示したフリップフロップの動作を示す波形図である。
【符号の説明】
【０１８２】
１  論理シミュレーション部、２，２Ａ  論理合成部、２Ｂ  論理最適化部、３  電力計算・比較部、４  制御回路置換部、５  配置配線部、６  バッファ挿入部、７  回路面積検証部、８  ＦＦ近接配置処理部、９  信号処理短縮化部、１０  リセット機能付加部、１１〜１７  制御回路、４１〜４７  最適化回路生成機構、Ｄ１  トグル情報、Ｄ２  ＲＴＬ記述データ、Ｄ３  消費電力ライブラリ、Ｄ４  ゲートレベルネットリスト、Ｄ１１〜Ｄ１７  最適化回路データ、ＦＦ１，ＦＦ３〜ＦＦ６  フリップフロップ、ＦＦ２  部分フリップフロップ、ＦＦ１０  制御機能付きフリップフロップ、Ｇ１１  バッファゲート、Ｇ１４  インバータ。
【図１】
2008176440.tif 000003
【図２】
2008176440.tif 000004
【図３】
2008176440.tif 000005
【図４】
2008176440.tif 000006
【図５】
2008176440.tif 000007
【図６】
2008176440.tif 000008
【図７】
2008176440.tif 000009
【図８】
2008176440.tif 000010
【図９】
2008176440.tif 000011
【図１０】
2008176440.tif 000012
【図１１】
2008176440.tif 000013
【図１２】
2008176440.tif 000014
【図１３】
2008176440.tif 000015
【図１４】
2008176440.tif 000016
【図１５】
2008176440.tif 000017
【図１６】
2008176440.tif 000018
【図１７】
2008176440.tif 000019
【図１８】
2008176440.tif 000020
【図１９】
2008176440.tif 000021
【図２０】
2008176440.tif 000022
【図２１】
2008176440.tif 000023
【図２２】
2008176440.tif 000024
【図２３】
2008176440.tif 000025
【図２４】
2008176440.tif 000026