(57)【要約】【課題】ＲＴＬの回路情報を用いた消費電力解析精度を高くすることができる半導体設計支援プログラムを提供する。【解決手段】ＲＴＬから簡易合成を行い得られた論理回路に含まれるフリップフロップ間のパスの遅延量を算出し、算出した遅延量のばらつきに基づいて、グリッジ発生確率テーブルＤ７から活性化率の補正係数を求める。求めた補正係数に基づいてフリップフロップの活性化率を補正して補正後セル活性化率情報Ｄ８を生成し、補正後セル活性化率情報Ｄ８に基づいて消費電力の算出を行う。【選択図】図２
2016081155.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のＲＴＬ回路情報を取得するＲＴＬ取得工程と、前記ＲＴＬ取得工程が取得した前記ＲＴＬ回路情報に対して論理合成手段に論理合成を行わせ論理回路を合成させる論理合成実行工程と、前記論理合成実行工程で合成させた前記論理回路の活性化率に基づいて消費電力を解析する消費電力解析工程と、をコンピュータに実行させる半導体設計支援プログラムにおいて、
前記消費電力解析工程は、
前記論理回路に含まれる所定のセルまでの経路の遅延量を算出する遅延算出工程と、
前記遅延算出工程で算出した遅延量の前記経路間のばらつきに基づいて、前記所定のセルの前記活性化率を補正する活性化率補正工程と、
を含むことを特徴とする半導体設計支援プログラム。
【請求項２】
前記遅延算出工程は、前記論理回路を構成するセルのファンアウト情報から、前記遅延量を算出することを特徴とする請求項１に記載の半導体設計支援プログラム。
【請求項３】
前記半導体集積回路の動作周波数を取得する周波数取得工程を含むとともに、
前記活性化率補正工程は、前記遅延量のばらつきおよび前記周波数取得工程で取得した前記動作周波数に基づいて前記活性化率を補正する、
ことを特徴とする請求項１または２に記載の半導体設計支援プログラム。
【請求項４】
半導体集積回路のＲＴＬ回路情報を取得するＲＴＬ取得手段と、前記ＲＴＬ取得手段が取得した前記ＲＴＬ回路情報に対して論理合成手段に論理合成を行わせ論理回路を合成させる論理合成実行手段と、前記論理合成実行手段が合成させた前記論理回路の活性化率に基づいて消費電力を解析する消費電力解析手段と、を有する半導体設計支援装置において、
前記消費電力解析手段は、
前記論理回路に含まれる所定のセルまでの経路の遅延量を算出する遅延算出手段と、
前記遅延算出手段が算出した遅延量の前記経路間のばらつきに基づいて、前記所定のセルの前記活性化率を補正するする活性化率補正手段と、
を有することを特徴とする半導体設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の消費電力を解析する半導体設計支援プログラムおよび半導体設計支援装置に関する。
【背景技術】
【０００２】
半導体論理回路の消費電力を解析することは、製品としてのスペックを満足できるかの見積もりや、デバイス動作を保証するための電源設計、デバイスのパッケージ選定のために重要である。この消費電力の解析は、回路情報と、回路の動作情報と、ＰＴＶ（製造プロセス、動作温度、動作電圧）条件と、に基づいて行われている。
【０００３】
回路情報にはさまざまな表現レベルがある。たとえばＲＴＬ（Register Transfer Level）、ネットリストレベル、ｓｐｉｃｅレベルなどである。ＲＴＬとはレジスタ（フリップフロップ）が明示されたレベルであり、レジスタ間の回路構成は、処理内容が記述されているものである。ネットリストレベルとは、レジスタ間の回路構成についても、ＡＮＤ回路やＯＲ回路といったセルを用いたネットリストで記述されているレベルである。ｓｐｉｃｅレベルはフリップフロップや、ＡＮＤ回路やＯＲ回路といったセルをトランジスタレベルで記載したものである。前者ほど抽象度の高い回路情報といえる。
【０００４】
精度の高い消費電力解析のためには、できるだけ抽象度の低い回路情報と、その抽象度でシミュレーションされた動作情報が必要となる。例えばネットリストレベルの回路情報と動作情報とを用いれば、実デバイスと１０％程度の誤差で消費電力を見積もることが可能になってきている。
【０００５】
一方、電源設計の重要性は増し、消費電力解析結果が早く必要となることが多くなっている。高速シリアル通信を備えるデバイスでは、半導体パッケージ設計が重要であるが、その解析情報として必要な消費電力解析結果は設計初期の段階で入手することが望まれている。伝送速度が上がるにつれ、各種ノイズに耐性を持つ設計が不可欠となり、パッケージ設計の期間が長くなる傾向があるからである。
【０００６】
また、パッケージの許容熱量を超えるデバイスが多くなり、パッケージ選定における消費電力解析の重要性も増している。パッケージを早期確定させることはコスト構造を明確にする上でも、ＰＣＢ（Printed Circuit Board）設計の上でも重要である。
【０００７】
しかしながら、近年の回路規模の増加に伴い、ネットリストレベルの回路情報を用いた消費電力解析に必要となる回路情報や動作情報のファイルサイズが大きくなることが問題となっている。数百万ゲートレベルのＬＳＩ（Large Scale Integration）においては、ネットリストで表現される回路情報のファイルサイズが数ギガバイト、動作情報ファイルは数十ギガバイトとなることもあり、ファイル保存領域を圧迫することがあった。
【０００８】
また、動作情報を取得するためのシミュレーション時間や解析プログラム実行時間が長くなることも問題となっている。シミュレーションを１回実行するのに１日程度かかる場合があり、複数の動作モードでのシミュレーションを行うには時間が不足する場合があった。
【０００９】
このようにネットリストを用いた消費電力解析では、一つの設計結果を検証するために時間がかかってフィードバック回数が少なくなったり、実行時期が遅くなりすぎてパッケージ選定に支障が出るケースがあった。
【００１０】
そこで、より抽象度の高いＲＴＬと、ＲＴＬでシミュレーションされた動作情報を用いた、消費電力解析手法が既に知られている。ファイルサイズも、シミュレーション時間も、ネットリストに対するものと比較し１／１０以下と圧倒的に短い。そのため、５０万ゲートを越えるようなデバイスでは、ＲＴＬを用いた消費電力解析が一般的になっている。
【００１１】
しかしながら、従来のＲＴＬの回路情報を用いた消費電力解析では、解析精度が低いという問題があった。ここでの解析精度とは、実際のデバイスの測定結果との誤差のことを示している。誤差の要因は、１つ目は、消費電力解析ツール内で行う簡易的な論理合成と実開発で最適化された論理合成の差分による回路情報の差がある。２つ目は、組み合わせ回路部の活性化率を算出するための確率伝播結果と実物との差がある。３つ目は、配線部分の負荷容量の見積もり値と実デバイスの差がある。そして４つ目は、配線部で発生するグリッジを見積もれないことによる差があり、以上の４つが主な要因となっている。一般的にＲＴＬを用いた消費電力解析と、実デバイスの測定結果とは２５％程度の誤差があるといわれている。
【００１２】
この誤差については、回路によって異なる場合があり、３０％以上の誤差となることもある。このように誤差が大きくなると、設計の後工程からの手戻りが発生する場合がある。例えば、回路設計の見直し、レイアウト上の電源設計の見直し、パッケージの見直し、などである。
【００１３】
ＲＴＬの回路情報を用いた消費電力解析における精度向上方法としては、例えば特許文献１に記載された方法が挙げられる。特許文献１は、ＲＴＬ設計データに基づいて生成された簡易ネットリストから組み合わせ回路を抽出するとともに、ＲＴＬシミュレーション結果から当該組み合わせ回路への入力データも抽出する。次に、抽出された組み合わせ回路と入力データに基づいて再シミュレーションを行って、差分活性化率データを生成する。そして、抽出前の活性化率データと差分活性化率データをマージしたデータに基づいて、ＲＴＬ設計データに無い信号データの活性化率データを確率伝播技術により算出し、確率伝播技術により算出した活性化率データに基づいて消費電力を見積もる。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に記載された方法は、上述した誤差の要因のうち、組み合わせ回路部の活性化率を算出するための確率伝播結果と実物との差については改善できるものの、他の要因については改善の余地が残っていた。
【００１５】
本発明はかかる問題を解決することを目的としている。
【００１６】
すなわち、ＲＴＬの回路情報を用いた消費電力解析精度を高くすることができる半導体設計支援プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１７】
上記に記載された課題を解決するために請求項１に記載された発明は、半導体集積回路のＲＴＬ回路情報を取得するＲＴＬ取得工程と、前記ＲＴＬ取得工程が取得した前記ＲＴＬ回路情報に対して論理合成手段に論理合成を行わせ論理回路を合成させる論理合成実行工程と、前記論理合成実行工程で合成させた前記論理回路の活性化率に基づいて消費電力を解析する消費電力解析工程と、をコンピュータに実行させる半導体設計支援プログラムにおいて、前記消費電力解析工程は、前記論理回路に含まれる所定のセルまでの経路の遅延量を算出する遅延算出工程と、前記遅延算出工程で算出した遅延量の前記経路間のばらつきに基づいて、前記所定のセルの前記活性化率を補正する活性化率補正工程と、を含むことを特徴とする半導体設計支援プログラムである。
【発明の効果】
【００１８】
請求項１に記載の発明によれば、遅延量のばらつきに基づいて活性化率を補正しているので、消費電力解析の精度を高くすることができる。
【図面の簡単な説明】
【００１９】
【図１】半導体集積回路の設計工程の一般的なフローチャートである。
【図２】本発明の一実施形態にかかる半導体設計支援プログラムのフローチャートである。
【図３】ファンアウトの説明のための回路図例である。
【図４】遅延計算の説明のための回路図例である。
【図５】図３に示された回路図におけるフリップフロップ間のパスを示した表である。
【図６】図２に示されたグリッジ発生確率テーブルの例である。
【図７】図１に示された半導体設計支援プログラムが動作するコンピュータの構成例である。
【図８】本発明の一実施形態に係る半導体設計支援装置の機能構成図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態を、図１乃至図８を参照して説明する。
【００２１】
図１は、半導体集積回路の設計工程の一般的なフローチャートである。まず、ＨＤＬ（Hardware Design Language）などによってＲＴＬ回路記述を作成する（ステップＳ１１）。ステップＳ１１で作成したＲＴＬ回路記述は次のステップＳ１２で用いるとともに、後述する消費電力解析工程における回路情報ともなる。
【００２２】
次に、ＲＴＬ回路記述と図示しない入力信号パターンデータとを用いてＲＴＬシミュレーションを行う（ステップＳ１２）。ＲＴＬシミュレーションによって所望の動作結果が得られない場合は、ステップＳ１１に戻ってＲＴＬ回路記述の修正を行う。ステップＳ１２で行ったＲＴＬシミュレーション結果は後述する消費電力解析工程における動作情報となる。ＲＴＬシミュレーションで所望の動作結果が得られた場合は、その動作結果が得られたＲＴＬ回路記述に対して論理合成を行う（ステップＳ１３）。論理合成を行うとネットリストが得られる。
【００２３】
一方、ステップＳ１１で作成したＲＴＬ回路記述を回路情報、ステップＳ１２で行ったＲＴＬシミュレーションの結果を動作情報、そして予め別途用意されているＰＴＶ条件を入力として消費電力解析を行う（ステップＳ１４）。本実施形態にかかる消費電力解析プログラムはこのステップＳ１４において適用される。ステップＳ１４で解析された消費電力は、電源設計（ステップＳ１５）およびパッケージ（ＰＫＧ）設計（ステップＳ１６）において利用される。
【００２４】
次に、ステップＳ１３で行った論理合成の結果（ネットリスト）と、ステップＳ１５で行った電源設計の結果と、ステップＳ１５で行ったパッケージ設計の結果と、を用いて回路の配置および配線を行う（ステップＳ１７）。ステップＳ１７はレイアウト工程とも呼ばれる。そして、配置および配線の結果は遅延情報としてネットリストに反映させてシミュレーションが行われ（ステップＳ１８）、所望の動作結果が得られない場合は、論理合成や配置配線まで戻り、再度合成や配置および配線を行う。所望の動作をすることが確認できれば設計完了となる。設計完了後は、製造工程、検査工程等が行われる。
【００２５】
次に、本発明の一実施形態にかかる半導体設計支援プログラムのフローチャートを図２を参照して説明する。図２に示された半導体設計支援プログラムＰ１は上述したステップＳ１４の工程の際に用いられる。
【００２６】
まず、ステップＳ２１において、設計対象の半導体集積回路を製造するプロセスに対応するライブラリセル情報と、ＲＴＬ回路記述による回路情報（ＲＴＬ回路情報）とから、解の改善処理を行わない等最適化まで行わない簡易的な論理合成（簡易合成）が行われ簡易ネットリストが生成される。なお、本ステップは、ライブラリセルを読み込まずに論理合成プログラム（論理合成手段）が有するプリミティブセル等による論理合成であってもよい。要するにＲＴＬ回路技術が簡易ネットリストに変換できればよい。なお、本ステップは、外部の論理合成プログラム等に行わせて結果（簡易ネットリスト）を受け取るようにしてもよい。即ち、ステップＳ２１は、ＲＴＬ取得工程、論理合成実行工程として機能する。
【００２７】
次に、ステップＳ２２において、各セルのファンアウトを算出する。ファンアウトとは、周知のように、セルの出力にいくつのセルが接続されているかを示す情報である。これは、セルごとの接続情報を用いることで容易に算出できる。例えば、図３の回路例では、レジスタＡの出力は、セルｃｅ１、ｃｅ２、ｃｅ３の入力に接続されているので、ファンアウトは３となる。また、セルｃｅ１の出力は、セルｃｅ２の入力のみに接続されているので、ファンアウトは１となる。ファンアウトの数は出力端子ごとに駆動が必要なセルの入力負荷の大きさを表している。
【００２８】
次に、ステップＳ２３において、フリップフロップ間のパス（経路）毎の遅延計算を行う。本ステップでは、フリップフロップ間のパス毎の遅延計算を行い、計算された遅延量に基づいてパス間（経路間）遅延のばらつき情報を生成する。即ち、本実施形態では、所定のセルをフリップフロップとしている。
【００２９】
フリップフロップ間のパス毎の遅延計算について詳細を図４を参照して説明する。図４は、図３と同じ回路である。図４において、初めに信号の出力と入力の関係となるフリップフロップの組み合わせを抽出する。図４の場合、レジスタＡからレジスタＢ、レジスタＣからレジスタＢ、レジスタＤからレジスタＢ、レジスタＡからレジスタＥ、レジスタＤからレジスタＥの５つの組み合わせがある。
【００３０】
上述した５つの組み合わせのうち、レジスタＡからレジスタＢの組み合わせについては、２つのパスがあり、それらは別々に扱う。つまり、１つ目のパスは、配線部の遅延ｄ１＋セルｃｅ２の遅延ｃ４＋配線部の遅延ｄ４となる。配線部の遅延ｄ１の遅延量はファンアウト（ｆｏ）３という情報から推定する。配線部の遅延ｄ４の遅延量はファンアウト１という情報から推定する。これにより１つ目の経路については、ｄ１（ｆｏ：３）＋ｃ４＋ｄ４（ｆｏ：１）という遅延量となる。
【００３１】
同様に、レジスタＡからレジスタＢの２つ目のパスについても、ｄ１（ｆｏ：３）＋ｃ１＋ｄ３（ｆｏ：１）＋ｃ５＋ｄ４（ｆｏ：１）という遅延量となる。つまり、論理回路を構成するセルのファンアウト情報から、セル間の遅延量を算出している。
【００３２】
即ち、ステップＳ２２、Ｓ２３は、論理回路に含まれるフリップフロップ間の経路の遅延量を算出する遅延算出工程として機能する。
【００３３】
ここで、ｃ１〜ｃ５はセル遅延のため、ライブラリに依存する値となる。それ以外のｄ１〜ｄ７については、配線の負荷容量によって変化する値であり、厳密にはセルの配置および配線が完了した後の配置によって大小が変わるものである。本実施形態においては、計算の簡略化のためファンアウトの大小でそのパスの遅延量が変わると想定し、遅延量のばらつきを算出する。
【００３４】
つまり配線部については、ファンアウトが大きい箇所は他と比較して遅延量が大きくなるとして簡易的に見積もる。セル内部の遅延値については、ライブラリの値を用いてもよいが、計算量が多くなる場合は、一律の値を用いても良い。本実施形態においては、絶対遅延量は必要ではなく相対的な値でよい。これにより計算量を小さくすることが可能となる。
【００３５】
フリップフロップ間の全てのパスについて遅延量の計算が完了した後に、パス間遅延のばらつき情報を生成する。ばらつきについては、受け側のフリップフロップごとに評価する。図５は、図４の回路において受け側のフリップフロップであるレジスタＢとレジスタＥの遅延量を表にまとめたものである。
【００３６】
図５において、“ｐａｔｈ  ｎａｍｅ”は、パスごとに任意の名前をつけたものである。ここでは受け側フリップフロップのインスタンス名をベースに名前をつけている。“ｆｒｏｍ＿ＦＦ  ｎａｍｅ”、“ｔｏ＿ＦＦ  ｎａｍｅ”は、それぞれ送り側、受け側フリップフロップのインスタンス名である。“ｖｉａ”は、どのような経路を通って受け側のフリップフロップに到達したかを示している。
【００３７】
そして、本実施形態では、受け側のフリップフロップが同じパス同士のばらつきを算出する。例えば、図５の場合ｐａｔｈ  ｎａｍｅがＢ＿ｒｅｇ１〜Ｂ＿ｒｅｇ５は、受け側のフリップフロップがレジスタＢ（ｒｅｇＢ）であるので、これらについてのばらつきを算出する。また、ｐａｔｈ  ｎａｍｅがＥ＿ｒｅｇ１〜Ｅ＿ｒｅｇ２は、受け側のフリップフロップがレジスタＥ（ｒｅｇＥ）であるので、これらについては別途ばらつきを算出する。ばらつきの算出方法は特に限定しないが、平均値の差分から算出される標準偏差の値を用いても良い。
【００３８】
ステップＳ２３で算出されたばらつきは、パス間遅延ばらつき情報Ｄ４として活性化率補正計算工程（ステップＳ２５）で用いられる。
【００３９】
一方、ステップＳ２４においては、ＲＴＬシミュレーション結果である動作情報Ｄ３に基づいて活性化率を算出する。活性化率とは、ある信号に注目したときに、単位時間中にＨｉｇｈレベルからＬｏｗレベルへの変化またはＬｏｗレベルからＨｉｇｈレベルへの変化の割合を示したもので、１サイクルに１回の変化する場合を１とする。例えばクロック信号の場合、１サイクル内に２回変化するので２、２進カウンタの場合は０．５といった値となる。本実施形態においては、各セル（少なくともフリップフロップ）の出力信号の活性化率を算出する。
【００４０】
ステップＳ２４で算出された活性化率は、セル活性化率情報Ｄ５として活性化率補正計算工程（ステップＳ２５）で用いられる。
【００４１】
次に、ステップＳ２５において、活性化率補正計算を行う。活性化率補正計算は、ステップＳ２３で算出されたパス間遅延ばらつき情報Ｄ４と、ステップＳ２４で算出されたセル活性化率情報Ｄ５と、目標動作周波数情報Ｄ６と、グリッジ発生確率テーブルＤ７と、に基づいて行われる。
【００４２】
目標動作周波数情報Ｄ６は、設計対象の半導体集積回路の動作周波数の目標値であり、外部からファイル等として読み込ませてよいし、直接入力するようにしてもよい。
【００４３】
グリッジ発生確率テーブルＤ７は、予め準備されるものであり、外部からファイル等として読み込ませてもよいし、半導体設計支援プログラムＰ１内に予め設定されていてもよい。グリッジ発生確率テーブルＤ７について図６を参照して説明する。図６は、パス間のばらつき情報（標準偏差）と活性化率補正係数との対応表である。活性化率補正係数は、遅延量のばらつきとグリッジによる活性化率の増量分とを対比させるものである。例えば、ばらつきが大きなパスについては、活性化率を大きく、ばらつきの小さなパスについては、活性化率を小さくするように値が設定される。
【００４４】
なお、グリッジ発生確率テーブルＤ７は、図６では、ばらつき情報と活性化率補正係数との関係が線形（比例関係）となっていたが非線形でもよい。また、このグリッジ発生確率テーブルＤ７は、過去の評価結果に基づいて作成すればよい。
【００４５】
そして、グリッジ発生確率テーブルＤ７を用いて、パス間遅延のばらつきから活性化率の補正量（活性化率補正係数）を求める。そして、求めた活性化率補正係数に基づいてセル活性化率情報Ｄ５の活性化率を補正する。
【００４６】
例えば、レジスタＢのセル活性化率情報Ｄ５における活性化率が０．１であったとする。レジスタＢの遅延量のばらつきがパス間遅延ばらつき情報Ｄ４から０．４であったとすると、図６から、活性化率補正係数は１．１０となり、０．１に１．１０を乗じた０．１１が新しいレジスタＢの活性化率となる。この新しい活性化率は、補正後活性化率情報Ｄ８として消費電力算出工程（ステップＳ２６）に用いられる。
【００４７】
上記例の場合、遅延量のばらつきが大きいためグリッジの発生確率が高くなり、活性化率が大きくなるように補正される。逆に遅延量のばらつきが小さければグリッジの発生確率が低くなり、活性化率が小さくなるように補正される。
【００４８】
グリッジの発生確率は、セルの出力遅延値をＴｄ、セルの入力端子への信号の到達時間差をＴｄｉｆｆとすると、これらの関係により変化することが知られている。例えば、Ｔｄに対してＴｄｉｆｆが小さい場合にはセルの出力が変化する（グリッジが発生する）前に定常的な状態に戻る。したがって、遅延量のばらつきが大きくなるとＴｄｉｆｆが大きくなるためグリッジが発生し易くなる。また、遅延量のばらつきが小さくなるとＴｄｉｆｆが小さくなるため、グリッジが発生しづらくなり、ステップＳ２４で算出した活性化率は小さい方向に補正される。
【００４９】
また、活性化率の補正時に目標動作周波数情報Ｄ６に設定されている動作周波数を入力情報として与えてもよい（必須ではない）。グリッジが発生する確率は、セルごとの遅延ばらつきが大きいことと、信号のＨｉｇｈレベルからＬｏｗレベル、ＬｏｗレベルからＨｉｇｈレベルの遷移時間が長いことで大きくなる。
【００５０】
この遷移時間は、駆動能力の大きなセルを使用することで短くなるため、グリッジが発生しづらくなるが、駆動能力の大きなセルが選択されるかどうかは、動作周波数に対して、遅延量が大きいか、小さいかで決定される。そのため、動作周波数が高い場合にはグリッジの発生確率が低いものとして、活性化率補正値を小さくし、動作周波数が低い場合はグリッジの発生確率が高いものとして、活性化率補正値を大きくする。これにより、グリッジの発生確率の補正をより正確にすることが可能となる。即ち、ステップＳ２５が周波数取得工程としても機能し、遅延量のばらつきおよび取得した動作周波数に基づいて活性化率を補正する。
【００５１】
以上の説明のとおり、ステップＳ２５が遅延算出工程で算出した遅延量のばらつきに基づいて、論理回路のセルの活性化率を補正する活性化率補正工程として機能する。
【００５２】
次に、ステップＳ２６において、消費電力算出（解析）を行う。消費電力算出は、ライブラリセル情報Ｄ１と、ステップＳ２５で算出された補正後セル活性化率情報Ｄ８と、ＰＴＶ条件Ｄ９と、に基づいて行われる。
【００５３】
ＰＴＶ条件はＤ９は、上述したように製造プロセス、動作温度、動作電圧の情報であり、外部からファイル等として読み込ませてもよいし、直接入力するようにしてもよい。
【００５４】
消費電力算出工程は、活性化率を用いる方法であれば周知の方法でよい。一例としてＲＴＬでの消費電力解析は、フリップフロップ出力の活性化率と確率伝播技術とによって算出する方法が知られている。確率伝播とは、あるゲート（ＡＮＤやＯＲなど）の入力の状態から出力の状態を確率的に求める方法である。例えばフリップフロップ出力の活性化率（補正後の活性化率）の情報から、確率伝播技術に基づいてフリップフロップ間のゲート部分の活性化率を算出し、それを消費電力計算に用いる。
【００５５】
消費電力値は、一般的に活性化率と動作周波数と負荷容量と動作電圧とによって計算される動作時電力と、セル構成と動作電圧とによって計算される待機時電力と、を加算した値になることが知られている。式に表すと例えば以下のようになる。
消費電力Ｐ＝Ｐ（動作時）＋Ｐ（待機時）
＝（（ａ×ｆ×ＣＬ×Ｖｄｄ2）＋（ａ×ｆ×Ｉｓｃ×Ｖｄｄ））＋（ＩＬ×Ｖｄｄ）
【００５６】
上式において、ａは活性化率、ｆは動作周波数、ＣＬは負荷容量、Ｖｄｄは動作電圧、Ｉｓｃはセル固有の貫通電流パラメータ、ＩＬはセル固有のリーク電流パラメータである。
【００５７】
上式のうち、活性化率ａは、補正後セル活性化率情報Ｄ８および確率伝播技術から算出される。動作周波数ｆは、目標動作周波数情報Ｄ６から得られる。負荷容量ＣＬ、動作電圧Ｖｄｄは、ＰＴＶ条件から得られる。セル固有の貫通電流パラメータＩｓｃ、セル固有のリーク電流パラメータＩＬは、セルライブラリ情報Ｄ１から得られる。
【００５８】
したがって、ライブラリセル情報Ｄ１と、ステップＳ２５で算出された補正後セル活性化率情報Ｄ８と、ＰＴＶ条件Ｄ９と、に基づいて上式から消費電力を算出することができる。
【００５９】
以上の説明のとおり、ステップＳ２２、Ｓ２３、Ｓ２４、Ｓ２５、Ｓ２６が消費電力解析工程として機能する。
【００６０】
図７は、上述した半導体設計支援プログラムＰ１が動作するコンピュータの一例のブロック図である。
【００６１】
コンピュータ５００は、ＣＰＵ５１０と、ハードディスク５２０と、メモリ５３０と、表示部５４０と、入力部５５０と、通信部５６０と、を備えている。ＣＰＵ５１０は演算処理装置であって、コンピュータ５００において実行される演算や処理を実行する。ハードディスク５２０は、データを格納する記録手段であって、コンピュータ５００上で動作するアプリケーションや、このアプリケーションにより作成されたデータなどが格納されている。メモリ５３０には、コンピュータ５００に係る各種の設定値や、ＣＰＵ５１０での演算結果などが格納される。
【００６２】
表示部５４０はディスプレイなどであり、コンピュータ５００において作成されたデータなどをユーザに閲覧可能に表示する。入力部５５０は例えばキーボードやマウスであって、ユーザの操作により各種データが入力される。通信部５６０は例えばネットワークコントロールユニットなどであり、コンピュータ５００が外部の装置と通信を行うためのものである。また、図示しないがメモリーカードリーダなどの着脱自在な記録媒体を読み書きする装置やＵＳＢ（Universal Serial Bus）インタフェースなどの外部機器と接続するためのインタフェースを備えていてもよい。
【００６３】
ハードディスク５２０には、上述した半導体設計支援プログラムＰ１や論理合成プログラム等が格納されている。即ち、図２に示したフローチャートを実行するためのコンピュータプログラムが格納されている。そして、ＣＰＵ５１０は、当該コンピュータプログラムを読み出して実行する。したがって、コンピュータ５００は、半導体設計支援装置として機能することができる。
【００６４】
図８に、コンピュータ５００が半導体設計支援装置２０として機能する際の機能的構成を示す。半導体設計支援装置２０は、簡易合成部２１と、ファンアウト算出部２２と、遅延計算部２３と、活性化率算出部２４と、活性化率補正計算部２５と、消費電力算出部２６と、を有している。これらのブロックはＣＰＵ５１０が機能する。
【００６５】
簡易合成部２１は、図２のステップＳ２１を実行する。つまり、ハードディスク５２０等に格納されたライブラリ情報Ｄ１と回路情報Ｄ２とに基づいて簡易合成を行う。即ち、簡易合成部２１は、ＲＴＬ取得手段、論理合成実行手段として機能する。
【００６６】
ファンアウト算出部２２は、図２の各セルのステップＳ２２を実行する。つまり、簡易合成部２１から出力される簡易ネットリストに基づいて、セルごとのファンアウトを算出する。
【００６７】
遅延計算部２３は、図２のステップＳ２３を実行する。つまり、図４に例示して説明したように、セルの遅延とファンアウトから推定した配線部の遅延とからフリップフロップ間のパス毎の遅延を算出する。算出された遅延情報は、パス間遅延ばらつき情報Ｄ４として、ハードディスク５２０やメモリ５３０等に格納される。即ち、ファンアウト算出部２２、遅延計算部２３は、遅延算出手段として機能する。
【００６８】
活性化率算出部２４は、図２のステップＳ２４を実行する。つまり、ハードディスク５２０等に格納された動作情報Ｄ３に基づいて活性化率を算出する。算出された活性化率は、セル活性化率情報Ｄ５としてハードディスク５２０やメモリ５３０等に格納される。
【００６９】
活性化率補正計算部２５は、図２のステップＳ２５を実行する。つまり、パス間遅延ばらつき情報Ｄ４と、ステップＳ２４で算出されたセル活性化率情報Ｄ５と、目標動作周波数情報Ｄ６と、グリッジ発生確率テーブルＤ７と、に基づいて活性化率を補正する。補正された活性化率は、補正後セル活性化率情報Ｄ８としてハードディスク５２０やメモリ５３０等に格納される。即ち、活性化率補正計算部２５は、活性化率補正手段として機能する。
【００７０】
消費電力算出部２６は、図２のステップＳ２６を実行する。つまり、ライブラリセル情報Ｄ１と、補正後セル活性化率情報Ｄ８と、ハードディスク５２０等に格納されたＰＴＶ条件Ｄ９と、に基づいて消費電力を算出する。即ち、ファンアウト算出部２２、遅延計算部２３、活性化率算出部２４、活性化率補正計算部２５、消費電力算出部２６が消費電力解析手段として機能する。
【００７１】
なお、図７では、１つのコンピュータ５００が半導体設計支援装置として機能していたが、複数のコンピュータで構成されていてもよいし、一部あるいは全部がプログラムではなくハードウェアで構成されていてもよい。
【００７２】
本実施形態によれば、ＲＴＬから簡易合成を行い得られた論理回路に含まれるフリップフロップ間のパスの遅延量を算出し、算出した遅延量のばらつきに基づいて、グリッジ発生確率テーブルＤ７から活性化率の補正係数を求める。求めた補正係数に基づいてフリップフロップの活性化率を補正して補正後セル活性化率情報Ｄ８を生成し、補正後セル活性化率情報Ｄ８に基づいて消費電力の算出を行う。このようにすることにより、遅延量のばらつきに基づいて活性化率を補正するため、グリッジの発生確率を考慮した消費電力の算出を行うことができる。したがって、ＲＴＬの回路情報を用いた消費電力解析精度を高くすることができる。
【００７３】
また、セル間の遅延量を簡易合成されたセルのファンアウトから算出するので、少ない計算量で遅延量を算出することができる。
【００７４】
また、活性化率の補正の際に動作周波数を考慮してもよい。このようにすることにより、信号の遷移時間の長さも考慮して補正することができ、より高精度に活性化率を補正して、消費電力を算出（解析）することができる。
【００７５】
なお、上述した実施形態では、グリッジ発生確率テーブルＤ７を用いて活性化率の補正を行っていたが、テーブルではなく算出式として予め組み込まれていてもよい。
【００７６】
また、上述した実施形態では、フリップフロップ間の経路のばらつきを求めて、受け側（経路の終点）のフリップフロップの活性化率を補正していたが、フリップフロップに限らず、ＡＮＤ回路やＯＲ回路などの他のセルであってもよい。勿論その場合は、補正するセルの活性化率を動作情報に基づいて算出する必要がある。
【００７７】
また、本発明は上記実施形態に限定されるものではない。即ち、当業者は、従来公知の知見に従い、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。かかる変形によってもなお本発明の半導体設計支援プログラムおよび半導体設計支援装置の構成を具備する限り、勿論、本発明の範疇に含まれるものである。
【符号の説明】
【００７８】
Ｐ          半導体設計支援プログラム
Ｓ２１      簡易合成（ＲＴＬ取得工程、論理合成実行工程）
Ｓ２２      各セルのファンアウト算出（遅延算出工程、消費電力解析工程）
Ｓ２３      フリップフロップ間のパス毎の遅延計算（遅延算出工程、消費電力解析工程）
Ｓ２４      活性化率算出（消費電力解析工程）
Ｓ２５      活性化率補正計算（活性化率補正工程、周波数取得工程、消費電力解析工程）
Ｓ２６      消費電力算出（消費電力解析工程）
２０        半導体設計支援装置
２１        簡易合成部（ＲＴＬ取得手段、論理合成実行手段）
２２        ファンアウト算出部（遅延算出手段、消費電力解析工程）
２３        遅延計算部（遅延算出手段、消費電力解析工程）
２４        活性化率算出部（消費電力解析手段）
２５        活性化率補正計算部（活性化率補正手段、消費電力解析手段）
２６        消費電力算出部（消費電力解析手段）
【先行技術文献】
【特許文献】
【００７９】
【特許文献１】特許第５１４６０８７号公報
【図１】
2016081155.tif 000003
【図２】
2016081155.tif 000004
【図３】
2016081155.tif 000005
【図４】
2016081155.tif 000006
【図５】
2016081155.tif 000007
【図６】
2016081155.tif 000008
【図７】
2016081155.tif 000009
【図８】
2016081155.tif 000010