(57)【特許請求の範囲】
【請求項１】
設計対象の論理回路の回路データ及びシミュレーション結果に基づいて、出力元のフリップフロップの出力が入力として伝播し得る複数の出力先のフリップフロップの中から前記出力の変化が伝播されないときがある前記出力先のフリップフロップを検出し、前記出力元のフリップフロップを複製して検出された当該出力先のフリップフロップに出力を供給するとともに出力変化が伝播されないときには複製したフリップフロップの出力を停止するように変更した変更後の論理回路の消費電力と変更前の論理回路の消費電力とを評価し、変更後の論理回路の消費電力が変更前の論理回路の消費電力より低い場合には、前記出力元のフリップフロップを複製して検出された前記出力先のフリップフロップへの出力の供給経路を分離させる前記回路データの修正情報を生成する第１のステップをコンピュータに実行させるためのプログラム。
【請求項２】
前記出力の変化が伝播されないときがある前記出力先のフリップフロップを複数検出し、検出された複数の出力先のフリップフロップを一群として、変更後の論理回路の消費電力と変更前の論理回路の消費電力との評価を行うことを特徴とする請求項１記載のプログラム。
【請求項３】
前記複数の出力先のフリップフロップに対して前記出力が伝播される前記出力元のフリップフロップのうち、前記出力の変化が各々の前記出力先のフリップフロップに入力の変化として伝播する度合いの違いが所定の基準を越える前記出力元のフリップフロップを抽出する第２のステップをコンピュータに実行させ、
前記第２のステップで抽出された前記出力元のフリップフロップについて、前記第１のステップでの処理を行うことを特徴とする請求項１又は２記載のプログラム。
【請求項４】
前記出力元のフリップフロップの出力の変化が入力の変化として伝播する度合いに応じて前記複数の出力先のフリップフロップをグループ分けして、当該グループ毎に変更後の論理回路の消費電力と変更前の論理回路の消費電力との評価を行うことを特徴とする請求項１〜３の何れか１項に記載のプログラム。
【請求項５】
演算部及び記憶部を有するコンピュータを用いた論理回路設計方法であって、
前記記憶部に格納された、設計対象の論理回路の回路データ及びシミュレーション結果に基づいて、出力元のフリップフロップの出力が入力として伝播し得る複数の出力先のフリップフロップの中から前記出力の変化が伝播されないときがある前記出力先のフリップフロップを前記演算部が検出し、前記出力元のフリップフロップを複製して検出された当該出力先のフリップフロップに出力を供給するとともに出力変化が伝播されないときには複製したフリップフロップの出力を停止するように変更した論理回路の消費電力と変更前の論理回路の消費電力とを前記演算部が評価し、変更した論理回路の消費電力が変更前の論理回路の消費電力より低い場合には、前記出力元のフリップフロップを複製して検出された前記出力先のフリップフロップへの出力の供給経路を分離させる前記回路データの修正情報を前記演算部が生成する論理回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路設計方法及びプログラムに関する。
【背景技術】
【０００２】
システムＬＳＩ等の半導体集積回路において、消費電力（電流）は重要な設計制約のひとつであり、例えば、ある決められた消費電力以内でないとチップが作成できなかったりする。また、低消費電力の実現は製品の大きな優位差別化要因になる。
【０００３】
ここで、論理回路（特にＣＭＯＳ回路）における消費電力は、回路の動作回数（回路における信号の変化回数）に大きく依存する。論理回路における消費電力は、回路の動作回数が多いほど大きくなる。論理回路設計の段階で行っている従来の低消費電力化の手法としては、例えばＲＴＬ（Register Transfer Level）記述の回路データを基にツール等を用いて消費電力の見積もりを行う。そして、ブロック毎の消費電力を比較して電力消費の内訳を分析し、消費電力が高いブロックでの削減を検討するなどを行っている。
【０００４】
設計対象の論理回路の構成要素を、論理シミュレーション出力結果に基づき、注目箇所に影響を与えうる論理回路構成要素を含むグループと、注目箇所に影響を与えないグループとに分けて表示するパス解析表示装置が提案されている（例えば、特許文献１参照）。また、ゲーティッドクロックを有するＬＳＩのネットリストについての消費電力のピーク値を少ない工数で見積もる方法が提案されている（例えば、特許文献２参照。）。また、部品設計資産のトランジスタ回路データからタイミング特性を抽出する方法が提案されている（例えば、特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１４７３４４号公報
【特許文献２】特開２００８−６５４９６号公報
【特許文献３】国際公開第９９／０９４９７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理回路設計の段階での従来の低消費電力化は、回路素子数（フリップフロップの数）を増やさないようにして、言い換えれば回路素子数をできるだけ減らすようにして行われていた。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、設計対象の論理回路の回路データ及びシミュレーション結果に基づいて、複数の出力先のフリップフロップの中から出力元のフリップフロップの出力変化が伝播されないときがあるフリップフロップを検出し、出力元のフリップフロップを複製して検出された当該出力先のフリップフロップに出力を供給しかつ出力変化が伝播されないときには複製したフリップフロップの出力を停止する変更後の論理回路の消費電力が変更前の消費電力より低い場合には、出力元のフリップフロップを複製して検出された出力先のフリップフロップへの出力の供給経路を分離させる回路データの修正情報を生成するステップをコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【０００８】
本発明によれば、出力元のフリップフロップの複製を設ける場合及び設けない場合のそれぞれでの論理回路の消費電力を評価し、消費電力が削減されるように適切に論理回路の回路データを修正することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態における論理回路設計を説明するための図である。
【図２】本実施形態における論理回路設計処理の流れを示す図である。
【図３】設計対象回路の一例を示す図である。
【図４】本実施形態における論理回路設計処理でのデータ例を示す図である。
【図５】本実施形態における論理回路設計での低消費電力化の一例を示す図である。
【図６】本実施形態における論理回路設計処理を実行可能なコンピュータの構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面に基づいて説明する。
【００１１】
論理回路設計の段階での従来の低消費電力化は、回路素子数（フリップフロップの数）は増やさない方が良いとの考えに基づいて行われていた。しかしながら、論理回路の消費電力は、回路の動作回数（回路における信号の変化回数）に大きく依存し、回路の動作回数と消費電力とは比例関係にある。したがって、回路素子数が増えるとしても、回路全体での動作回数（信号の変化回数）が低減できれば消費電力を削減することが可能である。例えば、回路の動作を停止可能にするために新たに回路素子を設けても、その回路素子によって動作を停止させることによる消費電力の減少分が、その回路素子を設けることによる消費電力の増加分よりも大きければ、回路全体での消費電力は減少する。
【００１２】
本実施形態における論理回路設計は、設計対象の論理回路についてシミュレーション結果から回路での信号伝播を解析し、解析結果に基づいて信号変化が伝わる度合いが高くない箇所（フリップフロップ）を検出する。言い換えれば、信号変化が入力として伝わらないときがあるフリップフロップを検出する。そして、信号変化が伝わる度合いが高くないフリップフロップへの信号パス（組合せ回路等を含む信号の供給経路）を評価し、停止させた方が効率的であれば出力元のフリップフロップを複製して信号パスを分離し、複製した出力元のフリップフロップから信号変化を止めるようにする。
【００１３】
例えば、図１（Ａ）に示すように、出力元であるフリップフロップ（ＦＦＳ）１１の出力が、組合せ回路Ａ１２を介してフリップフロップ（ＦＦＡ）１３に伝わるとともに、組合せ回路Ｂ１４を介してフリップフロップ（ＦＦＢ）１５に伝わるとする。このように、出力元であるフリップフロップの出力が伝わる次段のフリップフロップが複数あるとき、シミュレーション結果に基づいて次段のフリップフロップへの信号変化の伝わり方を評価する。そして、例えばＦＦＳ１１の出力変化がＦＦＡ１３、ＦＦＢ１５に伝わる度合いに差があり、ＦＦＢ１５には出力変化がほとんど伝わらない場合、図１（Ｂ）に示すように出力元であるＦＦＳ１１を複製したフリップフロップ（ＦＦＳＡ）１６を設ける。このようにして信号パスを分離し、ＦＦＢ１５に出力変化が伝わらないときにはＦＦＳＡ１６の出力から信号変化を止めることを可能にする。
【００１４】
図２は、本発明の一実施形態における論理回路設計処理の流れを示す図である。
図２において、回路データＤＴ１は、例えば設計対象の論理回路に係るＲＴＬ記述の回路データである。なお、回路データＤＴ１は、ＲＴＬ記述の回路データに限らず、レジスタ記述されたレベル以降の回路データであれば良く、例えばゲート記述の回路データであっても良い。また、シミュレーション結果ＤＴ２は、回路データＤＴ１に記述された論理回路のシミュレーション結果である。
【００１５】
まず、ステップＳＴ１にて、回路データＤＴ１及びシミュレーション結果ＤＴ２に基づいて、フリップフロップとその複製とに分ける分割候補となるフリップフロップ（分割候補ＦＦ）を抽出する（分割候補ＦＦ抽出処理）。ステップＳＴ１での処理結果として、分割候補ＦＦリストＤＴ３が出力される。
【００１６】
次に、ステップＳＴ２にて、回路データＤＴ１、シミュレーション結果ＤＴ２、及び分割候補ＦＦリストＤＴ３に基づいて、分割候補ＦＦの出力が伝播する出力伝播先のフリップフロップ（出力先ＦＦ）をグループ分けする（出力先ＦＦ分類処理）。ステップＳＴ２での処理結果として、グループリストＤＴ４が出力される。
【００１７】
続いて、ステップＳＴ３にて、回路データＤＴ１、シミュレーション結果ＤＴ２、及びグループリストＤＴ４に基づき、グループ分けした出力先ＦＦの各グループについて、分割候補ＦＦ（出力元ＦＦ）の信号変化停止による消費電力削減の効果の評価を行う（停止効果判断処理）。ステップＳＴ３での処理結果として、修正リストＤＴ５が出力される。
【００１８】
次に、ステップＳＴ４にて、回路データＤＴ１及び修正リストＤＴ５に基づいて、論理回路の回路データを修正し（回路データ修正処理）、処理結果として修正済みの回路データＤＴ６が出力される。
【００１９】
なお、図２に示した論理回路設計処理において、ステップＳＴ１の分割候補ＦＦ抽出処理及びステップＳＴ２の出力先ＦＦ分類処理は、ステップＳＴ３の停止効果判断処理における処理負荷を軽減するために実行する処理である。したがって、ステップＳＴ１の分割候補ＦＦ抽出処理及びステップＳＴ２の出力先ＦＦ分類処理を実行するか否かは任意に選択可能である。しかし、ステップＳＴ１の分割候補ＦＦ抽出処理及びステップＳＴ２の出力先ＦＦ分類処理を予め実行することにより、ステップＳＴ３の停止効果判断処理を行う回路対象を選択することができ処理負荷を軽減することができる。また、ステップＳＴ４の回路データ修正処理は、本実施形態における論理回路設計処理とは別に実行しても良く、修正リストＤＴ５を出力して本実施形態における論理回路設計処理を終了するようにしても良い。
【００２０】
次に、本実施形態における論理回路設計処理の各ステップでの処理の詳細について説明する。以下では、図３に例示する設計対象回路を一例として、適宜図３を参照し説明する。図３は、設計対象回路の一例を示す図である。図３において、フリップフロップ（ＦＦＳ）２１は出力元のフリップフロップであり、フリップフロップ（ＦＦＩＡ、ＦＦＩＢ、ＦＦＩＣ、ＦＦＩＤ）２３、２５、２７、２９は出力先のフリップフロップである。出力元であるＦＦＳ２１の出力は、組合せ回路Ａ２２を介して出力先であるＦＦＩＡ２３に入力され、組合せ回路Ｂ２４を介して出力先であるＦＦＩＢ２５に入力される。また、ＦＦＳ２１の出力は、組合せ回路Ｃ２６を介して出力先であるＦＦＩＣ２７に入力され、組合せ回路Ｄ２８を介して出力先であるＦＦＩＤ２９に入力される。
【００２１】
＜分割候補ＦＦ抽出処理＞
分割候補ＦＦ抽出処理の入力データは、回路データＤＴ１及びシミュレーション結果ＤＴ２であり、出力データは分割候補ＦＦリストＤＴ３である。分割候補ＦＦ抽出処理では、回路データＤＴ１及びシミュレーション結果ＤＴ２に基づいて、論理シミュレーションでの信号の変化回数が集計され、分割候補となるフリップフロップ（分割候補ＦＦ）が抽出される。
【００２２】
まず、回路データＤＴ１に基づいて、出力元となるフリップフロップ（出力元ＦＦ）、及び各出力元ＦＦについてその出力信号が影響する出力伝播先のフリップフロップ（出力先ＦＦ）を抽出する。例えば、図３に示した例においては、ＦＦＳ２１が出力元ＦＦとして抽出され、ＦＦＩＡ２３、ＦＦＩＢ２５、ＦＦＩＣ２７、及びＦＦＩＤ２９がその出力先ＦＦとして抽出される。この処理は、論理回路における出力元ＦＦのすべてについて行う。
【００２３】
次に、シミュレーション結果ＤＴ２に基づいて信号の変化回数を集計する。例えば、出力元ＦＦの出力が変化した回数、各出力先ＦＦの入力が変化した回数を求める。続いて、集計した変化回数に基づいて、出力元ＦＦを分割候補ＦＦとするか否かの判定を行う。分割候補ＦＦとするか否かの判定は、消費電力の削減効果が期待できるフリップフロップを候補とするための判定であり、例えば次のようにして行われる。出力先ＦＦの入力が変化した回数のうち最大値をｍａｘ、最小値をｍｉｎとする。このとき、（ｍａｘ／ｍｉｎ）が一定の定数（例えば５）以上であれば、出力元ＦＦを分割候補ＦＦとする。また、判定基準はこれに限定されず、さらに出力元ＦＦの出力が変化した回数をａｌｌとし、（ｍａｘ−ｍｉｎ）／ａｌｌが一定の定数（例えば０．１）以上であれば、出力元ＦＦを分割候補ＦＦとするようにしても良い。なお、前述した判定基準（判定条件）は一例であり、任意に設定可能である。
【００２４】
以上のようにして、論理回路におけるすべての出力元ＦＦの中から、ある出力先ＦＦには高い度合いで出力変化が伝わるが他の出力先ＦＦには低い度合いで出力変化が伝わるような、出力先ＦＦに出力変化が伝わる度合いに差がある出力元ＦＦが抽出される。そして、抽出された出力元ＦＦをフリップフロップとその複製とに分ける分割候補ＦＦとして、分割候補ＦＦを示す分割候補ＦＦリストＤＴ３が出力される。
【００２５】
＜出力先ＦＦ分類処理＞
出力先ＦＦ分類処理の入力データは、回路データＤＴ１、シミュレーション結果ＤＴ２、及び分割候補ＦＦリストＤＴ３であり、出力データはグループリストＤＴ４である。出力先ＦＦ分類処理では、回路データＤＴ１、シミュレーション結果ＤＴ２、及び分割候補ＦＦリストＤＴ３に基づいて、論理シミュレーションでの信号の変化回数が集計され、分割候補ＦＦの出力が伝播する出力先ＦＦが信号の変化回数によって分類される。例えば、分割候補ＦＦに対する複数の出力先ＦＦが、分割候補ＦＦの出力変化が伝わる度合いが高い出力先ＦＦのグループと、そうでない出力先ＦＦのグループとにグループ分けされる。
【００２６】
分割候補ＦＦリストＤＴ３に示される分割候補ＦＦのそれぞれに対して、分割候補ＦＦとその出力信号が影響する出力先ＦＦとについて、シミュレーション結果ＤＴ２に基づいて信号変化の時間的な重なりを検出する。その結果、例えば同じような期間において分割候補ＦＦの出力変化が伝わらない出力先ＦＦのグループとその他に２分割して、分割候補ＦＦの出力変化が伝わらない出力先ＦＦのグループ候補を作成する。
【００２７】
例えば、分割候補ＦＦの出力変化が伝わる回数が少ない出力先ＦＦから順に出力変化が伝わらないグループの要素とする。分割候補ＦＦに対する全出力先ＦＦのいずれかの出力先ＦＦに分割候補ＦＦの出力変化が伝わった場合数をＡ回とし、第ｉのグループのいずれかの出力先ＦＦに分割候補ＦＦの出力変化が伝わった場合数をＢｉ回とする。このとき、（Ｂｉ／Ａ）が所定の値（例えば０．５）を越えない場合には、第ｉのグループを停止させるグループ候補とする。
【００２８】
例えば、図３に示した回路例において、図４（Ａ）に示すように出力元ＦＦであるＦＦＳ２１（分割候補ＦＦ）の出力変化に対して、出力先ＦＦであるＦＦＩＡ２３、ＦＦＩＢ２５、ＦＦＩＣ２７、及びＦＦＩＤ２９の入力が変化したとする。なお、図４（Ａ）において、“○”はＦＦＳ２１の出力変化に応じて出力先ＦＦの入力が変化していることを示し、“×”はＦＦＳ２１の出力変化に応じて出力先ＦＦの入力が変化していないことを示している。
【００２９】
図４（Ａ）に示した例において、ＦＦＳ２１の出力変化が伝わる回数が少ない出力先ＦＦから順にグループ要素とすると、次のようにグループ候補が作成される。第１のグループ候補はＦＦＩＡ２３からなり、それにＦＦＳ２１の出力変化が伝わった場合数Ｂ１は２回である。また、第２のグループ候補はＦＦＩＡ２３とＦＦＩＢ２５とからなり、それにＦＦＳ２１の出力変化が伝わった場合数Ｂ２は３回である。また、第３のグループ候補はＦＦＩＡ２３とＦＦＩＢ２５とＦＦＩＣ２７とからなり、それにＦＦＳ２１の出力変化が伝わった場合数Ｂ３は８回である。また、ＦＦＩＡ２３、ＦＦＩＢ２５、ＦＦＩＣ２７、及びＦＦＩＤ２９のいずれかにＦＦＳ２１の出力変化が伝わった場合数Ａは１０回である。したがって、各グループ候補における（Ｂｉ／Ａ）の値は、図４（Ａ）において入力変化割合として百分率表示したようになる。例えば（Ｂｉ／Ａ）が０．５を越えない場合にそのグループを停止させるグループ候補とすれば、第１のグループ候補及び第２のグループ候補が停止させるグループ候補として示すグループリストＤＴ４が出力される。
【００３０】
なお、前述した説明では２分割する場合を一例として説明したが、３以上のグループに分割しても良い。例えば前半期間は出力変化が伝わらないグループと、後半期間は出力変化が伝わらないグループと、前半期間及び後半期間ともに出力変化が伝わるグループとに分割するようにしても良い。なお、出力先ＦＦ分類処理は、後継処理での処理負荷を軽減するために行うものであり、出力先ＦＦの数が少ない場合には、すべての出力先ＦＦの組合せを停止させるグループ候補として次の停止効果判断処理に供給するようにしても良い。
【００３１】
＜停止効果判断処理＞
停止効果判断処理の入力データは、回路データＤＴ１、シミュレーション結果ＤＴ２、及びグループリストＤＴ４であり、出力データは修正リストＤＴ５である。停止効果判断処理では、回路データＤＴ１、シミュレーション結果ＤＴ２、及びグループリストＤＴ４に基づき、停止させるグループ候補の各々について、分割候補ＦＦ（出力元ＦＦ）の信号変化停止による消費電力削減の効果の評価が行われる。評価の結果、分割候補ＦＦの複製を設けて出力変化を停止させるようにした場合の消費電力が、複製を設けずに出力変化を停止させない場合の消費電力より低ければ、分割候補ＦＦの複製（分割ＦＦ）を設けるように修正リストＤＴ５を出力する。
【００３２】
停止効果判断処理では、出力先ＦＦ分類処理において決定された停止させるグループ候補の各々に対して、次の処理を行う。
分割候補ＦＦの出力変化が出力先ＦＦの入力まで伝播しない場合、論理回路においてその変化が停止するポイントまでのノード数（信号変化ノード数）を求める。この信号変化ノード数が、分割候補ＦＦを複製したときに停止させることができる可能性のある信号の変化回数となる。例えば、図３に例示したように、ＦＦＳ２１の出力が“０”から“１”に変化したとき、組合せ回路Ａ２２内のＡＮＤ回路（論理積演算回路）３３によってＦＦＳ２１の出力変化の伝播が停止したとする。この場合、信号変化ノード数は、ＦＦＳ２１の出力ノード、ＡＮＤ回路３１の出力ノード、及びＡＮＤ回路３２の出力ノードの３ノードとなり、ＦＦＳ２１の出力を停止させれば変化回数を３回削減することができる。このようにして、グループ候補の各々について分割候補ＦＦを複製したときに停止させることが可能な変化回数を算出し、もっとも停止させることが可能な変化回数が多いグループ候補（出力先ＦＦの組合せ）を決定する。
【００３３】
例えば、図３に示した回路例において、出力元ＦＦであるＦＦＳ２１（分割候補ＦＦ）の出力変化が出力先ＦＦであるＦＦＩＡ２３、ＦＦＩＢ２５、ＦＦＩＣ２７、及びＦＦＩＤ２９に伝播しない場合の信号変化ノード数が図４（Ｂ）に示されるものであるとする。また、出力先ＦＦ分類処理において決定された各グループ候補の出力先ＦＦの入力変化が図４（Ｃ）に示されるものであるとする。このとき、各グループ候補において、分割候補ＦＦを複製したときに停止させることが可能な変化回数は、図４（Ｄ）に示すようになる。したがって、分割候補ＦＦを複製して第２のグループ候補（出力先ＦＦがＦＦＩＡ２３及びＦＦＩＢ２５であるグループ）の信号変化を制御すると、最も停止させることが可能な変化回数が多く、消費電力の削減効果が得られる。
【００３４】
しかし、分割候補ＦＦを複製しない方が消費電力が低い場合もあり得るため、続いて回路変更（分割候補ＦＦの複製）による消費電力の変化、すなわち回路変更後の消費電力と回路変更前の消費電力とを比較し評価する。分割候補ＦＦを複製することによる消費電力の削減量は、分割候補ＦＦの複製により変化が停止される組合せ回路の変化停止分の電力であり、組合せ回路の負荷容量と動作削減率との積に比例する。また、分割候補ＦＦを複製することによる消費電力の増加量は、複製したフリップフロップ（複製ＦＦ）のデータ入力分の電力、クロック入力分の電力、及びクロック制御部分の電力の総和である。
【００３５】
分割候補ＦＦの複製により変化が停止される組合せ回路での、分割候補ＦＦの出力変化１回あたりの電力をＷａとする。分割候補ＦＦを複製しない状態において、分割候補ＦＦは、全区間（期間）に対してａ％の区間で出力変化していたとする。そのうち、出力先ＦＦには全区間に対してｂ％の区間で出力変化が伝播し、分割候補ＦＦを複製することでｂ％だけ稼動させるようにクロック停止制御ができるとする。このとき、分割候補ＦＦを複製することによる消費電力の削減分は、Ｗａ×（ａ−ｂ）／１００で表される。また、分割候補ＦＦを複製することによる消費電力の増加分は、Ｗｆｉｎ×ａ／１００で表される複製ＦＦのデータ入力に係る電力と、Ｗｆｃ×ｂ／１００で表される複製ＦＦのクロック入力に係る電力である。したがって、消費電力の削減分〔Ｗａ×（ａ−ｂ）／１００〕が、消費電力の増加分〔Ｗｆｉｎ×ａ／１００＋Ｗｆｃ×ｂ／１００〕より大きい場合には、分割候補ＦＦの複製により消費電力を削減できると判定し、分割候補ＦＦの複製を設けるように修正リストＤＴ５を出力する。ここで、Ｗｆｉｎ及びＷｆｃは、一般に１セル分程度の負荷であり、Ｗａは数ゲートから数十ゲート分の負荷となる。
【００３６】
例えば、図５（Ａ）に示すように、出力元ＦＦであるＦＦＳ４１の出力が、組合せ回路Ａ４２、ＡＮＤ回路４３、及び組合せ回路Ｂ４４を介して出力先ＦＦであるＦＦＩＡ４５に入力されている。また、ＦＦＳ４１の出力が、組合せ回路Ａ４２、ＡＮＤ回路４３、及び組合せ回路Ｃ４６を介して出力先ＦＦであるＦＦＩＢ４７に入力されている。また、ＦＦＳ４１の出力が、組合せ回路Ｄ４８、組合せ回路Ｅ４９、及び組合せ回路Ｆ５０を介して出力先ＦＦであるＦＦＩＣ５１に入力されている。なお、図５においては、信号の変化率を信号線や組合せ回路に付加して図示している。例えば、１０％は１００クロック中に信号が１０回変化することを示し、０．１％は１０００クロック中に信号が１回変化することを示している。
【００３７】
図５（Ａ）に示したように、ＡＮＤ回路４３の一方の入力がほとんど“０”である場合には、ＦＦＳ４１の出力変化は、ＦＦＩＡ４５及びＦＦＩＢ４７の入力変化としてはほとんど伝播しない。したがって、図５（Ｂ）に示すようにＦＦＳ４１を複製したフリップフロップであるＦＦＳＡ５２を設けて、ＦＦＩＡ４５及びＦＦＩＢ４７への信号パスとＦＦＩＣ５１への信号パスとを分離し、クロック制御部５３によりＦＦＳＡ５２の出力を停止制御する回路変更が考えられる。図５（Ａ）に示す回路構成から図５（Ｂ）に示す回路構成に変更した場合の消費電力の削減分は、組合せ回路Ａ４２の停止分であり、（組合せ回路Ａ４２の負荷容量）×９．９％となる。一方、消費電力の増加分は、（１ゲート分程度の負荷容量）×１％のＦＦＳＡ５２のクロック入力電力、（１ゲート分程度の負荷容量）×１０％のＦＦＳＡ５２のデータ入力電力、及び（１ゲート分程度の負荷容量）×１００％のクロック制御部５３の電力の総和である。したがって、図５に示す例では、組合せ回路Ａ４２の負荷容量が１０ゲート相当であればＦＦＳ４１を複製したＦＦＳＡ５２を設けても消費電力はほとんど増減せず、削減効果は得られない。一方、組合せ回路Ａ４２の負荷容量が１０ゲート相当より大きければ、ＦＦＳ４１を複製したＦＦＳＡ５２を設けることで消費電力を削減できる。
【００３８】
＜回路データ修正処理＞
回路データ修正処理の入力データは、回路データＤＴ１及び修正リストＤＴ５であり、出力データは修正済み回路データＤＴ６である。回路データ修正処理では、複製するフリップフロップに係る分割ＦＦ情報が示された修正リストＤＴ５に基づいて回路データＤＴ１が修正され、修正済みの論理回路の回路データＤＴ６が出力される。
【００３９】
前述した本実施形態における論理回路設計処理は、例えばＣＰＵ又はＭＰＵ、ＲＡＭ、ＲＯＭなどを有するコンピュータが、ＲＯＭ等の記憶部に記憶されたプログラムを実行することで実現でき、前記プログラムは本発明の実施形態に含まれる。また、コンピュータが前記機能を果たすように動作させるプログラムを、例えばＣＤ−ＲＯＭのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものであり、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【００４０】
また、コンピュータがプログラムを実行し処理を行うことにより、前記実施形態の機能が実現されるプログラムプロダクトは、本発明の実施形態に含まれる。前記プログラムプロダクトとしては、前記実施形態の機能を実現するプログラム自体、前記プログラムが読み込まれたコンピュータ、ネットワークを介して通信可能に接続されたコンピュータに前記プログラムを提供可能な送信装置、当該送信装置を備えるネットワークシステム等がある。
【００４１】
また、コンピュータが供給されたプログラムを実行することにより前記実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼動しているＯＳ（オペレーティングシステム）又は他のアプリケーションソフト等と共同して前記実施形態の機能が実現される場合や、供給されたプログラムの処理のすべて又は一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、本発明をネットワーク環境で利用するべく、全部又は一部のプログラムが他のコンピュータで実行されるようになっていても良い。
【００４２】
例えば、前述した本実施形態における論理回路設計処理は、図６に示すようなコンピュータ機能６０により実現でき、そのＣＰＵ６１により前記実施形態での動作が実施される。
コンピュータ機能６０は、図６に示すように、ＣＰＵ６１と、ＲＯＭ６２と、ＲＡＭ６３と、操作部（ＣＯＮＳ）６９のコントローラ（ＣＯＮＳＣ）６５と、表示部としてのディスプレイ（ＤＩＳＰ）７０のディスプレイコントローラ（ＤＩＳＰＣ）６６と、ハードディスク（ＨＤ）７１及びフレキシブルディスク等の記憶デバイス（ＳＴＤ）７２のコントローラ（ＤＣＯＮＴ）６７と、ネットワークインタフェースカード（ＮＩＣ）６８とが、システムバス６４を介して互いに通信可能に接続された構成としている。
【００４３】
ＣＰＵ６１は、ＲＯＭ６２又はＨＤ７１に記憶されたソフトウェア（プログラム）、又はＳＴＤ７２より供給されるソフトウェア（プログラム）を実行することで、システムバス６４に接続された各構成部を総括的に制御する。すなわち、ＣＰＵ６１は、前述したような動作を行うための処理プログラムを、ＲＯＭ６２、ＨＤ７１、又はＳＴＤ７２から読み出して実行することで、前記実施形態での動作を実現するための制御を行う。ＲＡＭ６３は、ＣＰＵ６１の主メモリ又はワークエリア等として機能する。
【００４４】
ＣＯＮＳＣ６５は、ＣＯＮＳ６９や図示していないポインティングデバイス等からの指示入力を制御する。ＤＩＳＰＣ６６は、ＤＩＳＰ７０の表示を制御する。ＤＣＯＮＴ６７は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、及び前記実施形態における前記処理プログラム等を記憶するＨＤ７１及びＳＴＤ７２とのアクセスを制御する。ＮＩＣ６８はネットワーク７３上の他の装置と双方向にデータをやりとりする。
【００４５】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００４６】
６１  ＣＰＵ
６２  ＲＯＭ
６３  ＲＡＭ
６４  システムバス
６５  コントローラ
６６  ディスプレイコントローラ
６７  コントローラ
６８  ネットワークインタフェースカード
６９  操作部
７０  ディスプレイ
７１  ハードディスク
７２  記憶デバイス
【図１】
0005428895.tif 000002
【図２】
0005428895.tif 000003
【図３】
0005428895.tif 000004
【図４】
0005428895.tif 000005
【図５】
0005428895.tif 000006
【図６】
0005428895.tif 000007