(57)【要約】【課題】  設計の早期に迅速かつ簡単に精度の高い消費電力を見積もることのできる半導体集積回路の消費電力見積もり方法を提供する。【解決手段】  本発明は、下位モジュール毎に論理シミュレーションを実行して波形ダンプファイルを出力するステップ（Ｓ．１−Ｓ．３）、波形ダンプファイルを読み込んで下位モジュール毎にトグルレートとプロバビリティとを抽出するステップ（Ｓ．４）、抽出されたトグルレートとプロバビリティとに下位モジュール毎の動作率を反映するステップ（Ｓ．６）、論理素子間を接続する配線の一覧を記述したネットリストを読み込んでこのネットリストの各ノードに動作率が反映されたトグルレートとプロバビリティとを設定するステップ（Ｓ．８）、そのネットリストを用いて消費電力見積もりを実行する実行ステップ（Ｓ．９、Ｓ．１０）を含む。【選択図】  図１
2012043170.tif 000002
【特許請求の範囲】
【請求項１】
下位モジュール毎の複数のシミュレーション結果の波形ダンプファイルを読み込む手段と、下位モジュール毎の動作率を読み込む手段と、シミュレーション結果と動作率に応じてモジュール毎の各ノードのトグルレートとプロバビリティを算出する手段と、消費電力を見積もる手段とを備えたことを特徴とする半導体集積回路の消費電力見積もり装置。
【請求項２】
レイアウト後のネットリストを読み込む手段と、レイアウト後の寄生容量ファイルを読み込む手段と、ゲートレベルでのチップ全体の消費電力を見積もる手段を備えたことを特徴とする請求項１に記載の半導体集積回路の消費電力見積もり装置。
【請求項３】
下位モジュール毎に論理シミュレーションを実行して波形ダンプファイルを出力するステップと、前記波形ダンプファイルを読み込んで下位モジュール毎にトグルレートとプロバビリティとを抽出するステップと、抽出された前記トグルレートとプロバビリティとに前記下位モジュール毎の動作率を反映するステップと、論理素子間を接続する配線の一覧を記述したネットリストを読み込んで該ネットリストの各ノードに動作率が反映されたトグルレートとプロバビリティとを設定するステップと、前記ネットリストを用いて消費電力見積もりを実行する実行ステップとを含む半導体集積回路の消費電力見積もり方法。
【請求項４】
コンピュータによる半導体集積回路の消費電力見積もり方法を用いて半導体集積回路を製造する半導体集積回路の製造方法であって、
前記半導体集積回路の消費電力見積もり方法は、下位モジュール毎に論理シミュレーションを実行して波形ダンプファイルを出力するステップと、前記波形ダンプファイルを読み込んで下位モジュール毎にトグルレートとプロバビリティとを抽出するステップと、抽出された前記トグルレートとプロバビリティとに前記下位モジュール毎の動作率を反映するステップと、論理素子間を接続する配線の一覧を記述したネットリストを読み込んで該ネットリストの各ノードに動作率が反映されたトグルレートとプロバビリティとを設定するステップと、前記ネットリストを用いて消費電力見積もりを実行する実行ステップとを含むことを特徴とする半導体集積回路の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置に関する。
【背景技術】
【０００２】
半導体集積回路の消費電力値の見積もりには、論理回路を構成する各素子のトグルレートとプロバビリティとが必要である。トグルレートは単位時間当たりにおける出力信号値をトグルした回数（前の出力信号値の状態を切り換えた回数）である。プロバビリティは期間内（単位時間内）における信号値の“H”の占める割合である。例えば、クロックのように”H”と”L”を繰り返す場合は「０．５」、全て”H”であった場合は「１」、全て”L”であった場合は「０」となる。このトグルレートとプロバビリティと消費電力見積もり用ライブラリ、複数の論理素子とこの論理素子間の接続情報とからなるネットリスト、寄生容量抽出手段により抽出された寄生容量ファイル等により消費電力値を見積もることが可能となる。
【０００３】
トグルレートとプロバビリティとを算出する方法には、主にチップトップレベルのレジスタートランスファーレベルRTL（論理回路をハードウエア記述言語で記述する手法）やゲートレベルの論理シミュレーション結果である波形ダンプファイル（波形バックファイル）に基づき抽出する方法がある（例えば、特許文献１を参照）。また、下位モジュール毎に動作率を決めて、この動作率に基づきトグルレートとプロバビリティを算出する方法もある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、チップレベルの論理シミュレーション結果の波形ダンプファイルを作成するためには全てのRTLが組み上がることと、全てのモジュールを可能な限り動作させるような消費電力見積り用パターンを作成する必要があり、非常に困難で時間が掛かる。
その一方、下位モジュール毎に動作率を決めてから消費電力を求める方法では、下位モジュールの実際の動作を考慮していない為、消費電力の見積もり精度が劣化する。
本発明は、上記の問題点に鑑み、設計の早期に迅速かつ簡単に精度の高い消費電力を見積もることのできる半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、チップトップレベルでシミュレーションパターンとしての消費電力見積もり用パターンを作成するのではなくシミュレーションパターンの作り易いチップレベルの下位モジュール毎に論理シミュレーションを実行し、その結果をチップレベルに反映させることを特徴とする。その際、そのまま反映させると消費電力見積り用のテストパターンが大きくなるため、下位モジュール毎に仕様等により動作率を決めて、その動作率の値に応じてその結果をチップレベルに反映させることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、下位モジュール毎の論理シミュレーション結果を用いるため、設計の早期に簡単に消費電力見積もりを実施することが可能となり、また、その結果をそのまま使用するのではなく、動作率を考慮して消費電力を見積もるので、精度の高い消費電力見積もりが可能である。
また、本発明に係るコンピュータによる半導体集積回路の消費電力見積もり方法を用いれば、消費電力の少ない半導体集積回路を製造することができる。
【図面の簡単な説明】
【０００７】
【図１】図１は本発明に係る半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置の処理を説明するためのフローチャートである。
【図２】図２は本発明に係る半導体集積回路の消費電力見積もり装置のハードウエアの構成を示すブロック図である。
【図３】図３はモジュールの構成の一例を示すブロック図である。
【図４】図４は図３に示すモジュールＡの下位モジュールを示すブロック図である。
【図５】図５はトグルレートとプロバビリィティとの抽出結果の一例を示す図である。
【図６】図６は図３に示す各モジュールの動作率の一例を示す説明図である。
【図７】図７は図５に示すトグルレートに動作率を反映させた状態を示す説明図である。
【図８】図８はネットリストの構成の一例を示す説明図である。
【発明を実施するための形態】
【実施例】
【０００８】
図１は本発明に係る半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置の処理を説明するためのフローチャートである。
図２は本発明に係る半導体集積回路の消費電力見積もり装置のハードウエアの構成を示すブロック図である。
その図２において、１はＣＰＵ、２はハードディスク、３はキーボード、４はディスプレイ、５はメモリである。メモリ５には、図１に示す各ステップを実行する所定のプログラムが格納されている。
【０００９】
ＣＰＵ１は、メモリ５に格納されている所定のプログラムを読み込んで、図１に示す消費電力の見積もりステップを実行する機能を果たす。
ハードディスク２には、後述する下位モジュールの論理回路、ダンプファイル、寄生容量ファイル等が保存されるものである。
【００１０】
まず、ＣＰＵ１は、キーボード３からの操作指令により下位モジュールのＲＴＬ（論理回路）をハードディスク２から読み込む（Ｓ．１）。次に、ＣＰＵ１は下位モジュール毎に論理シミュレーションを実行し（Ｓ．２）、波形ダンプファイルを出力する。（Ｓ．３）。
以下、例えば、図３に示すように、トップモジュールが下位のモジュールＡと下位のモジュールＢと下位のモジュールＣとクロック生成部とが構成されているものとして説明する。
これらのモジュールＡ、Ｂ、Ｃは、ハードディスク２にそれぞれ保存されている。ＣＰＵ１は、これらのモジュールＡ、Ｂ、ＣのＲＴＬをモジュール毎に読み込み、それぞれ、論理シミュレーションを実行するものである。
【００１１】
この論理シミュレーションを行うモジュールの単位は機能別に分類しても良いし、下位モジュールの更に下位のモジュールとしても良い。
論理シミュレーションを実施し易い単位として可能な限り動作させるようにテストパターンを作成する。
【００１２】
波形ダンプファイルは、論理シミュレーションを実施した回数分を出力させる。例えば、図３に示すモジュール構成の場合、モジュールA、モジュールB、モジュールCの３つの波形ダンプファイルを出力して（Ｓ．３）、例えば、ハードディスク２に保存させる。
続いて、ＣＰＵ１は論理シミュレーションの実行結果としてのこれらの波形ダンプファイルからトグルレートとプロバビリティを抽出する（Ｓ．４）。
なお、トグルレートとプロバビリィティとを抽出するのは、フリップフロップFFの出力と各モジュールＡ、Ｂ、Ｃのポートとする。
例えば、図４に示すモジュールAの構成に基づきトグルレートとプロバビリティとの抽出について説明する。
【００１３】
図４は、モジュールＡが更に下位のモジュールＡ＿１と下位のモジュールＡ＿２とから構成され、モジュールＡ＿１には論理回路としてのゲーテッドＤ型フリップフロップＤＦＦ＿Ａが含まれ、下位モジュールＡ＿２にはゲーテッドＤ型フリップフロップＤＦＦ＿Ｂ、ゲーテッドＤ型フリップフロップＤＦＦ＿Ｃが含まれているとする。なお、符号Ｍｘは、例えば、フリップフロップＦＦ以外の論理回路の回路要素を示している。
【００１４】
この図４に示すモジュールＡの構成の場合、各Ｄ型フリップフロップＤＦＦ＿Ａ、ＤＦＦ＿Ｂ、ＤＦＦ＿Ｃの出力ポート（ｏｕ１、ｏｕ２、ｏｕ３）、各モジュールの入力・出力ポート、すなわち、モジュールＡの入力ポートｉｎ１、モジュールＡ＿１の入力ポートｉｎ２、モジュールＡ＿２の入力ポートｉｎ３、下位モジュールＡ＿１の出力ポートｏｕ４、下位モジュールＡ＿２の出力ポートｏｕ５、モジュールＡの出力ポートｏｕ６が抽出ポイントなる。  なお、クロックラインの入力ポートｉｎ４、ｉｎ５、ｉｎ６は特殊ラインであるので、トグルレートとプロバビリティとの抽出を行わない。
【００１５】
図５はモジュールＡの論理シミュレーション結果により得られた波形ダンプファイルから抽出されたトグルレートとプロバビリィティとの抽出結果の一例を示す図である。
RTLでは各フリップフロップＦＦの出力端子名は決まっていないが、論理合成時に使用するフリップフロップＦＦの端子名に合わせて設定を行う。この実施例では、フリップフロップＦＦの出力端子名はＱとする。
【００１６】
この図５において、下位のモジュールA#1/DFF#A/Q、下位のモジュールA#2/DFF#B/Q、下位のモジュールA#２/DFF#Ｃ/QのFFの出力端子とモジュールＡのポートAA、下位のモジュールA#1/DFF#A/ＡＡのトグルレートとプロバビリティとを抽出した値が表として示されている。これらの値は、ハードディスク２に記憶され、かつ、ディスプレイ４に表示される。
【００１７】
ＣＰＵ１はこの抽出作業を全波形ダンプファイルに対して実行する。次に、ＣＰＵ１はハードディスク２からモジュール毎の動作率を読み込む（Ｓ．５）。図６はモジュール毎の動作率の一例を示す図である。なお、このモジュール毎の動作率は、設計仕様や公知のESLシミュレーション等によって各モジュールＡ、Ｂ、Ｃがどの程度動作するのか算出される。
図６には、モジュールAの動作率が２０％、モジュールBの動作率が３０％、モジュールCの動作率が７０%として示されている。次に、モジュール毎の動作率をトグルレートに反映させる（Ｓ．６）。図７は図５に示すトグルレートに動作率を反映した例を示している。
【００１８】
モジュールAの動作率は２０%であるから、モジュールAの下位のモジュールＡ＿１／ＤＦＦ＿Ａ／Ｑのトグルレートは「０．０３」に、動作率２０%を掛けて「０．００６」になり、モジュールＡ＿２／ＤＦＦ＿Ｂ／Ｑのトグルレートは「０．０４」に、動作率３０%を掛けて「０．０１２」になる。また、モジュールＡ＿２／ＤＦＦ＿Ｃ／Ｑのようにトグルレートが「０」の場合、「０」である。
このように、他のノードやモジュールに対しても動作率の反映を行う。この時、プロバビリィティの値は変更しない。プロバビリィティは動作率の影響を考慮することが難しいからである。
【００１９】
次に、ＣＰＵ１は、素子間を接続する配線（ネット）の一覧を記述したネットリストを読み込む（Ｓ．７）。このネットリストは論理回路の合成直後でも良いが、見積り精度を上げるためにレイアウト後のネットリストと寄生容量ファイルとを用いる方が良い。
次に、ネットリストの各ノードにトグルレートとプロバビリィティの値を設定する（Ｓ．８）。RTLとゲートレベルのネットリストを比較するとフリップフロップFFの出力と下位モジュールのポートとは論理合成等により大きく変更されない。
すなわち、ＲＴＬシミュレーションによる消費電力見積もり用パターンを用いてゲートレベルのネットリストの消費電力を見積もるための論理合成を行う場合、ＲＴＬとゲートレベルとで情報が大きく変更されない箇所、すなわち、モジュールのインスタンス名とポート名とレジスタ名とに関しては情報が大きく変更されないので、これらのノードに対してトグルレートの値とプロバビリティの値とを設定する。
【００２０】
よって、RTLで抽出した各ノードの値をゲートレベルのネットリストに対して設定することができる。図８はネットリストの構成の一例を示している。
図８は、トップ（ＴＯＰ）モジュールがモジュールＡとモジュールＢとモジュールＣとクロック生成部とから構成されたネットリストを示す説明図である。
その図８において、トップ（ＴＯＰ）モジュールは、モジュールＡ、モジュールＢ、モジュールＣ、クロック生成部、バッファＢＵＦ＿Ｂ３４、バッファＢＵＦ＿Ｃ３５、外部端子２８、２９、３０、クロック入力端子３０’を含む。
【００２１】
モジュールＡは、下位モジュールＡ＿１、下位モジュールＡ＿２、バッファＢＵＦ＿Ａ３３を含み、下位モジュールＡ＿１はオア回路ＯＲ＿Ａ３１とＤ型フリップフロップＤＦＦ＿Ａとから構成され、下位モジュールＡ＿２はＤ型フリップフロップＤＦＦ＿Ｂとアンド回路ＡＮＤ＿Ａ３２とＤ型フリップフロップＤＦＦ＿Ｃとから構成されている。
下位モジュールＣは、インバータＩＮＶ＿Ａ３６とＤ型フリップフロップＤＦＦ＿Ｄとその他の論理回路素子Ｍｘを含む。クロック生成部はＰＬＬ回路２７を含んでいる。
【００２２】
外部端子２８は下位モジュールＡ＿１のオア回路ＯＲ＿Ａ３１の一入力端子に接続されると共に、アンド回路ＡＮＤ＿Ａ３２の一入力端子に接続されている。外部端子２９は入力ポートｉｎ１を介してオア回路ＯＲ＿Ａ３１の他入力端子に接続されている。
クロック生成部の出力端子２７はバッファＢＵＦ＿Ｃ３５の入力端子と、バッファＢＵＦ＿Ｂ３４の入力端子と、バッファＢＵＦ＿Ａ３３の入力端子と、Ｄ型フリップフロップＤＦＦ＿Ａのクロック入力端子ＣＫとに接続されている。
【００２３】
オア回路ＯＲ＿Ａ３１の出力端子はＤ型フリップフロップＤＦＦ＿ＡのＤ端子に接続されている。Ｄ型フリップフロップＤＦＦ＿Ａの出力ポートｏｕ１はＤ型フリップフロップＤＦＦ＿ＢのＤ端子に接続されている。バッファＢＵＦ＿Ａ３３の出力端子は、Ｄ型フリップフロップＤＦＦ＿Ｂのクロック入力端子ＣＫとＤ型フリップフロップＤＦＦ＿Ｃのクロック入力端子ＣＫとに接続されている。
【００２４】
Ｄ型フリップフロップＤＦＦ＿Ｂの出力ポートｏｕ２はアンド回路ＡＮＤ＿Ａ３２の入力端子に接続され、アンド回路ＡＮＤ＿Ａ３２の出力端子はＤ型フリップフロップＤＦＦ＿ＣのＤ端子に接続されている。Ｄ型フリップフロップＤＦＦ＿Ｃの出力ポートｏｕ３はモジュールＢの入力ポートに接続されている。バッファＢＵＦ＿Ｂ３４の出力端子はモジュールＢのクロック入力端子に接続されている。
【００２５】
外部端子３０はインバータＩＮＶ＿Ａ３６の入力端子に接続され、インバータＩＮＶ＿Ａの出力端子はＤ型フリップフロップＤＦＦ＿ＤのＤ端子に接続され、バッファＢＵＦ＿Ｃ３５の出力端子はＤ型フリップフロップＤＦＦ＿Ｄのクロック入力端子ＣＫに接続され、Ｄ型フリップフロップＤＦＦ＿Ｄの出力ポートＱは論理回路Ｍｘを介してモジュールＢの入力端子に接続されると共に、外部出力端子３６に接続されている。モジュールＢの出力端子は外部出力端子３７、３８に接続されている。
【００２６】
図７に示すモジュールA#1/DFF#A/Qのトグルレートとプロバビリティとの値は図８に示すモジュールAの下位モジュールのモジュールA#1/DFF#A/Qの出力ポートｏｕ１に対して設定を行い、図８に示す入力ポートAA（ｉｎ１）のトグルレートとプロバビリティとの値は下位モジュールA#1/AAの入力ポート（ｉｎ２）に設定を行うというように全モジュールの全ノードに対して設定を行う。
【００２７】
クロックラインはクロックのおおもとに対して設定を行う。図８に示すネットリストでは、PLL回路の出力端子２７から出力される設定周波数に応じたトグルレートとプロバビリィティの設定を行う。
クロックが常に動作しているとき、プロバビリィティは０．５であり、クロックの動作が停止している場合、停止期間を考慮して設定を行う。
また、外部端子２８〜３０は仕様に応じたトグルレートとプロバビリィティの値の設定を行う。その他、AND回路３２やOR回路３１等のセルやバッファ３３〜３５やインバータ３６等のセルについては確率伝播により計算を行う。
【００２８】
この確率伝播の方法は、従来から公知の技術であるので、その説明は省略する。次に、ＣＰＵ１は、消費電力見積もり用ライブラリを読み込み（Ｓ．９）、消費電力見積もりを実施する。（Ｓ．１０）。
このように、この実施例では、ＣＰＵ１が下位モジュール毎の複数の論理シミュレーション結果の波形ダンプファイルを読み込む手段と、下位モジュール毎の動作率を読み込む手段と、論理シミュレーション結果と動作率に応じてモジュール毎の各ノードのトグルレートとプロバビリティを算出する手段と、消費電力を見積もる手段として機能し、論理シミュレーション結果と動作率に応じてモジュール毎の各ノードのトグルレートとプロバビリティとを算出しているので、消費電力見積もりパターンを作成し易い下位モジュール毎に論理シミュレーションを実行し、その結果にモジュール毎の動作率を反映させることができ、チップトップレベルの消費電力の見積もりを設計の早期に精度を高く行うことができる。
【００２９】
また、ＣＰＵ１が、レイアウト後のネットリストを読み込む手段と、レイアウト後の寄生容量ファイルを読み込む手段と、ゲートレベルでのチップ全体の消費電力を見積もる手段としても機能するので、より一層設計を迅速にかつ簡単に消費電力見積もりを実施することが可能となり、また、その結果をそのまま使用するのではなく、動作率を考慮して消費電力を見積もるので、精度の高い消費電力見積もりが可能である。
また、本発明に係るコンピュータによる半導体集積回路の消費電力見積もり方法を用いれば、消費電力の少ない半導体集積回路を製造することができる。
【符号の説明】
【００３０】
Ｓ．１〜Ｓ．１０…ステップ
【先行技術文献】
【特許文献】
【００３１】
【特許文献１】特開２００１−３５０８１５号公報
【図１】
2012043170.tif 000003
【図２】
2012043170.tif 000004
【図３】
2012043170.tif 000005
【図４】
2012043170.tif 000006
【図５】
2012043170.tif 000007
【図６】
2012043170.tif 000008
【図７】
2012043170.tif 000009
【図８】
2012043170.tif 000010