説明

半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置

【課題】 設計の早期に迅速かつ簡単に精度の高い消費電力を見積もることのできる半導体集積回路の消費電力見積もり方法を提供する。
【解決手段】 本発明は、下位モジュール毎に論理シミュレーションを実行して波形ダンプファイルを出力するステップ(S.1−S.3)、波形ダンプファイルを読み込んで下位モジュール毎にトグルレートとプロバビリティとを抽出するステップ(S.4)、抽出されたトグルレートとプロバビリティとに下位モジュール毎の動作率を反映するステップ(S.6)、論理素子間を接続する配線の一覧を記述したネットリストを読み込んでこのネットリストの各ノードに動作率が反映されたトグルレートとプロバビリティとを設定するステップ(S.8)、そのネットリストを用いて消費電力見積もりを実行する実行ステップ(S.9、S.10)を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置に関する。
【背景技術】
【0002】
半導体集積回路の消費電力値の見積もりには、論理回路を構成する各素子のトグルレートとプロバビリティとが必要である。トグルレートは単位時間当たりにおける出力信号値をトグルした回数(前の出力信号値の状態を切り換えた回数)である。プロバビリティは期間内(単位時間内)における信号値の“H”の占める割合である。例えば、クロックのように”H”と”L”を繰り返す場合は「0.5」、全て”H”であった場合は「1」、全て”L”であった場合は「0」となる。このトグルレートとプロバビリティと消費電力見積もり用ライブラリ、複数の論理素子とこの論理素子間の接続情報とからなるネットリスト、寄生容量抽出手段により抽出された寄生容量ファイル等により消費電力値を見積もることが可能となる。
【0003】
トグルレートとプロバビリティとを算出する方法には、主にチップトップレベルのレジスタートランスファーレベルRTL(論理回路をハードウエア記述言語で記述する手法)やゲートレベルの論理シミュレーション結果である波形ダンプファイル(波形バックファイル)に基づき抽出する方法がある(例えば、特許文献1を参照)。また、下位モジュール毎に動作率を決めて、この動作率に基づきトグルレートとプロバビリティを算出する方法もある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、チップレベルの論理シミュレーション結果の波形ダンプファイルを作成するためには全てのRTLが組み上がることと、全てのモジュールを可能な限り動作させるような消費電力見積り用パターンを作成する必要があり、非常に困難で時間が掛かる。
その一方、下位モジュール毎に動作率を決めてから消費電力を求める方法では、下位モジュールの実際の動作を考慮していない為、消費電力の見積もり精度が劣化する。
本発明は、上記の問題点に鑑み、設計の早期に迅速かつ簡単に精度の高い消費電力を見積もることのできる半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置を提供することにある。
【課題を解決するための手段】
【0005】
本発明は、チップトップレベルでシミュレーションパターンとしての消費電力見積もり用パターンを作成するのではなくシミュレーションパターンの作り易いチップレベルの下位モジュール毎に論理シミュレーションを実行し、その結果をチップレベルに反映させることを特徴とする。その際、そのまま反映させると消費電力見積り用のテストパターンが大きくなるため、下位モジュール毎に仕様等により動作率を決めて、その動作率の値に応じてその結果をチップレベルに反映させることを特徴とする。
【発明の効果】
【0006】
本発明によれば、下位モジュール毎の論理シミュレーション結果を用いるため、設計の早期に簡単に消費電力見積もりを実施することが可能となり、また、その結果をそのまま使用するのではなく、動作率を考慮して消費電力を見積もるので、精度の高い消費電力見積もりが可能である。
また、本発明に係るコンピュータによる半導体集積回路の消費電力見積もり方法を用いれば、消費電力の少ない半導体集積回路を製造することができる。
【図面の簡単な説明】
【0007】
【図1】図1は本発明に係る半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置の処理を説明するためのフローチャートである。
【図2】図2は本発明に係る半導体集積回路の消費電力見積もり装置のハードウエアの構成を示すブロック図である。
【図3】図3はモジュールの構成の一例を示すブロック図である。
【図4】図4は図3に示すモジュールAの下位モジュールを示すブロック図である。
【図5】図5はトグルレートとプロバビリィティとの抽出結果の一例を示す図である。
【図6】図6は図3に示す各モジュールの動作率の一例を示す説明図である。
【図7】図7は図5に示すトグルレートに動作率を反映させた状態を示す説明図である。
【図8】図8はネットリストの構成の一例を示す説明図である。
【発明を実施するための形態】
【実施例】
【0008】
図1は本発明に係る半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置の処理を説明するためのフローチャートである。
図2は本発明に係る半導体集積回路の消費電力見積もり装置のハードウエアの構成を示すブロック図である。
その図2において、1はCPU、2はハードディスク、3はキーボード、4はディスプレイ、5はメモリである。メモリ5には、図1に示す各ステップを実行する所定のプログラムが格納されている。
【0009】
CPU1は、メモリ5に格納されている所定のプログラムを読み込んで、図1に示す消費電力の見積もりステップを実行する機能を果たす。
ハードディスク2には、後述する下位モジュールの論理回路、ダンプファイル、寄生容量ファイル等が保存されるものである。
【0010】
まず、CPU1は、キーボード3からの操作指令により下位モジュールのRTL(論理回路)をハードディスク2から読み込む(S.1)。次に、CPU1は下位モジュール毎に論理シミュレーションを実行し(S.2)、波形ダンプファイルを出力する。(S.3)。
以下、例えば、図3に示すように、トップモジュールが下位のモジュールAと下位のモジュールBと下位のモジュールCとクロック生成部とが構成されているものとして説明する。
これらのモジュールA、B、Cは、ハードディスク2にそれぞれ保存されている。CPU1は、これらのモジュールA、B、CのRTLをモジュール毎に読み込み、それぞれ、論理シミュレーションを実行するものである。
【0011】
この論理シミュレーションを行うモジュールの単位は機能別に分類しても良いし、下位モジュールの更に下位のモジュールとしても良い。
論理シミュレーションを実施し易い単位として可能な限り動作させるようにテストパターンを作成する。
【0012】
波形ダンプファイルは、論理シミュレーションを実施した回数分を出力させる。例えば、図3に示すモジュール構成の場合、モジュールA、モジュールB、モジュールCの3つの波形ダンプファイルを出力して(S.3)、例えば、ハードディスク2に保存させる。
続いて、CPU1は論理シミュレーションの実行結果としてのこれらの波形ダンプファイルからトグルレートとプロバビリティを抽出する(S.4)。
なお、トグルレートとプロバビリィティとを抽出するのは、フリップフロップFFの出力と各モジュールA、B、Cのポートとする。
例えば、図4に示すモジュールAの構成に基づきトグルレートとプロバビリティとの抽出について説明する。
【0013】
図4は、モジュールAが更に下位のモジュールA_1と下位のモジュールA_2とから構成され、モジュールA_1には論理回路としてのゲーテッドD型フリップフロップDFF_Aが含まれ、下位モジュールA_2にはゲーテッドD型フリップフロップDFF_B、ゲーテッドD型フリップフロップDFF_Cが含まれているとする。なお、符号Mxは、例えば、フリップフロップFF以外の論理回路の回路要素を示している。
【0014】
この図4に示すモジュールAの構成の場合、各D型フリップフロップDFF_A、DFF_B、DFF_Cの出力ポート(ou1、ou2、ou3)、各モジュールの入力・出力ポート、すなわち、モジュールAの入力ポートin1、モジュールA_1の入力ポートin2、モジュールA_2の入力ポートin3、下位モジュールA_1の出力ポートou4、下位モジュールA_2の出力ポートou5、モジュールAの出力ポートou6が抽出ポイントなる。 なお、クロックラインの入力ポートin4、in5、in6は特殊ラインであるので、トグルレートとプロバビリティとの抽出を行わない。
【0015】
図5はモジュールAの論理シミュレーション結果により得られた波形ダンプファイルから抽出されたトグルレートとプロバビリィティとの抽出結果の一例を示す図である。
RTLでは各フリップフロップFFの出力端子名は決まっていないが、論理合成時に使用するフリップフロップFFの端子名に合わせて設定を行う。この実施例では、フリップフロップFFの出力端子名はQとする。
【0016】
この図5において、下位のモジュールA#1/DFF#A/Q、下位のモジュールA#2/DFF#B/Q、下位のモジュールA#2/DFF#C/QのFFの出力端子とモジュールAのポートAA、下位のモジュールA#1/DFF#A/AAのトグルレートとプロバビリティとを抽出した値が表として示されている。これらの値は、ハードディスク2に記憶され、かつ、ディスプレイ4に表示される。
【0017】
CPU1はこの抽出作業を全波形ダンプファイルに対して実行する。次に、CPU1はハードディスク2からモジュール毎の動作率を読み込む(S.5)。図6はモジュール毎の動作率の一例を示す図である。なお、このモジュール毎の動作率は、設計仕様や公知のESLシミュレーション等によって各モジュールA、B、Cがどの程度動作するのか算出される。
図6には、モジュールAの動作率が20%、モジュールBの動作率が30%、モジュールCの動作率が70%として示されている。次に、モジュール毎の動作率をトグルレートに反映させる(S.6)。図7は図5に示すトグルレートに動作率を反映した例を示している。
【0018】
モジュールAの動作率は20%であるから、モジュールAの下位のモジュールA_1/DFF_A/Qのトグルレートは「0.03」に、動作率20%を掛けて「0.006」になり、モジュールA_2/DFF_B/Qのトグルレートは「0.04」に、動作率30%を掛けて「0.012」になる。また、モジュールA_2/DFF_C/Qのようにトグルレートが「0」の場合、「0」である。
このように、他のノードやモジュールに対しても動作率の反映を行う。この時、プロバビリィティの値は変更しない。プロバビリィティは動作率の影響を考慮することが難しいからである。
【0019】
次に、CPU1は、素子間を接続する配線(ネット)の一覧を記述したネットリストを読み込む(S.7)。このネットリストは論理回路の合成直後でも良いが、見積り精度を上げるためにレイアウト後のネットリストと寄生容量ファイルとを用いる方が良い。
次に、ネットリストの各ノードにトグルレートとプロバビリィティの値を設定する(S.8)。RTLとゲートレベルのネットリストを比較するとフリップフロップFFの出力と下位モジュールのポートとは論理合成等により大きく変更されない。
すなわち、RTLシミュレーションによる消費電力見積もり用パターンを用いてゲートレベルのネットリストの消費電力を見積もるための論理合成を行う場合、RTLとゲートレベルとで情報が大きく変更されない箇所、すなわち、モジュールのインスタンス名とポート名とレジスタ名とに関しては情報が大きく変更されないので、これらのノードに対してトグルレートの値とプロバビリティの値とを設定する。
【0020】
よって、RTLで抽出した各ノードの値をゲートレベルのネットリストに対して設定することができる。図8はネットリストの構成の一例を示している。
図8は、トップ(TOP)モジュールがモジュールAとモジュールBとモジュールCとクロック生成部とから構成されたネットリストを示す説明図である。
その図8において、トップ(TOP)モジュールは、モジュールA、モジュールB、モジュールC、クロック生成部、バッファBUF_B34、バッファBUF_C35、外部端子28、29、30、クロック入力端子30’を含む。
【0021】
モジュールAは、下位モジュールA_1、下位モジュールA_2、バッファBUF_A33を含み、下位モジュールA_1はオア回路OR_A31とD型フリップフロップDFF_Aとから構成され、下位モジュールA_2はD型フリップフロップDFF_Bとアンド回路AND_A32とD型フリップフロップDFF_Cとから構成されている。
下位モジュールCは、インバータINV_A36とD型フリップフロップDFF_Dとその他の論理回路素子Mxを含む。クロック生成部はPLL回路27を含んでいる。
【0022】
外部端子28は下位モジュールA_1のオア回路OR_A31の一入力端子に接続されると共に、アンド回路AND_A32の一入力端子に接続されている。外部端子29は入力ポートin1を介してオア回路OR_A31の他入力端子に接続されている。
クロック生成部の出力端子27はバッファBUF_C35の入力端子と、バッファBUF_B34の入力端子と、バッファBUF_A33の入力端子と、D型フリップフロップDFF_Aのクロック入力端子CKとに接続されている。
【0023】
オア回路OR_A31の出力端子はD型フリップフロップDFF_AのD端子に接続されている。D型フリップフロップDFF_Aの出力ポートou1はD型フリップフロップDFF_BのD端子に接続されている。バッファBUF_A33の出力端子は、D型フリップフロップDFF_Bのクロック入力端子CKとD型フリップフロップDFF_Cのクロック入力端子CKとに接続されている。
【0024】
D型フリップフロップDFF_Bの出力ポートou2はアンド回路AND_A32の入力端子に接続され、アンド回路AND_A32の出力端子はD型フリップフロップDFF_CのD端子に接続されている。D型フリップフロップDFF_Cの出力ポートou3はモジュールBの入力ポートに接続されている。バッファBUF_B34の出力端子はモジュールBのクロック入力端子に接続されている。
【0025】
外部端子30はインバータINV_A36の入力端子に接続され、インバータINV_Aの出力端子はD型フリップフロップDFF_DのD端子に接続され、バッファBUF_C35の出力端子はD型フリップフロップDFF_Dのクロック入力端子CKに接続され、D型フリップフロップDFF_Dの出力ポートQは論理回路Mxを介してモジュールBの入力端子に接続されると共に、外部出力端子36に接続されている。モジュールBの出力端子は外部出力端子37、38に接続されている。
【0026】
図7に示すモジュールA#1/DFF#A/Qのトグルレートとプロバビリティとの値は図8に示すモジュールAの下位モジュールのモジュールA#1/DFF#A/Qの出力ポートou1に対して設定を行い、図8に示す入力ポートAA(in1)のトグルレートとプロバビリティとの値は下位モジュールA#1/AAの入力ポート(in2)に設定を行うというように全モジュールの全ノードに対して設定を行う。
【0027】
クロックラインはクロックのおおもとに対して設定を行う。図8に示すネットリストでは、PLL回路の出力端子27から出力される設定周波数に応じたトグルレートとプロバビリィティの設定を行う。
クロックが常に動作しているとき、プロバビリィティは0.5であり、クロックの動作が停止している場合、停止期間を考慮して設定を行う。
また、外部端子28〜30は仕様に応じたトグルレートとプロバビリィティの値の設定を行う。その他、AND回路32やOR回路31等のセルやバッファ33〜35やインバータ36等のセルについては確率伝播により計算を行う。
【0028】
この確率伝播の方法は、従来から公知の技術であるので、その説明は省略する。次に、CPU1は、消費電力見積もり用ライブラリを読み込み(S.9)、消費電力見積もりを実施する。(S.10)。
このように、この実施例では、CPU1が下位モジュール毎の複数の論理シミュレーション結果の波形ダンプファイルを読み込む手段と、下位モジュール毎の動作率を読み込む手段と、論理シミュレーション結果と動作率に応じてモジュール毎の各ノードのトグルレートとプロバビリティを算出する手段と、消費電力を見積もる手段として機能し、論理シミュレーション結果と動作率に応じてモジュール毎の各ノードのトグルレートとプロバビリティとを算出しているので、消費電力見積もりパターンを作成し易い下位モジュール毎に論理シミュレーションを実行し、その結果にモジュール毎の動作率を反映させることができ、チップトップレベルの消費電力の見積もりを設計の早期に精度を高く行うことができる。
【0029】
また、CPU1が、レイアウト後のネットリストを読み込む手段と、レイアウト後の寄生容量ファイルを読み込む手段と、ゲートレベルでのチップ全体の消費電力を見積もる手段としても機能するので、より一層設計を迅速にかつ簡単に消費電力見積もりを実施することが可能となり、また、その結果をそのまま使用するのではなく、動作率を考慮して消費電力を見積もるので、精度の高い消費電力見積もりが可能である。
また、本発明に係るコンピュータによる半導体集積回路の消費電力見積もり方法を用いれば、消費電力の少ない半導体集積回路を製造することができる。
【符号の説明】
【0030】
S.1〜S.10…ステップ
【先行技術文献】
【特許文献】
【0031】
【特許文献1】特開2001−350815号公報

【特許請求の範囲】
【請求項1】
下位モジュール毎の複数のシミュレーション結果の波形ダンプファイルを読み込む手段と、下位モジュール毎の動作率を読み込む手段と、シミュレーション結果と動作率に応じてモジュール毎の各ノードのトグルレートとプロバビリティを算出する手段と、消費電力を見積もる手段とを備えたことを特徴とする半導体集積回路の消費電力見積もり装置。
【請求項2】
レイアウト後のネットリストを読み込む手段と、レイアウト後の寄生容量ファイルを読み込む手段と、ゲートレベルでのチップ全体の消費電力を見積もる手段を備えたことを特徴とする請求項1に記載の半導体集積回路の消費電力見積もり装置。
【請求項3】
下位モジュール毎に論理シミュレーションを実行して波形ダンプファイルを出力するステップと、前記波形ダンプファイルを読み込んで下位モジュール毎にトグルレートとプロバビリティとを抽出するステップと、抽出された前記トグルレートとプロバビリティとに前記下位モジュール毎の動作率を反映するステップと、論理素子間を接続する配線の一覧を記述したネットリストを読み込んで該ネットリストの各ノードに動作率が反映されたトグルレートとプロバビリティとを設定するステップと、前記ネットリストを用いて消費電力見積もりを実行する実行ステップとを含む半導体集積回路の消費電力見積もり方法。
【請求項4】
コンピュータによる半導体集積回路の消費電力見積もり方法を用いて半導体集積回路を製造する半導体集積回路の製造方法であって、
前記半導体集積回路の消費電力見積もり方法は、下位モジュール毎に論理シミュレーションを実行して波形ダンプファイルを出力するステップと、前記波形ダンプファイルを読み込んで下位モジュール毎にトグルレートとプロバビリティとを抽出するステップと、抽出された前記トグルレートとプロバビリティとに前記下位モジュール毎の動作率を反映するステップと、論理素子間を接続する配線の一覧を記述したネットリストを読み込んで該ネットリストの各ノードに動作率が反映されたトグルレートとプロバビリティとを設定するステップと、前記ネットリストを用いて消費電力見積もりを実行する実行ステップとを含むことを特徴とする半導体集積回路の製造方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−43170(P2012−43170A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−183724(P2010−183724)
【出願日】平成22年8月19日(2010.8.19)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】