JPWO2012046344A1 - プログラム、ライブラリ作成装置、及び消費電力計算装置 - Google Patents
プログラム、ライブラリ作成装置、及び消費電力計算装置 Download PDFInfo
- Publication number
- JPWO2012046344A1 JPWO2012046344A1 JP2012537541A JP2012537541A JPWO2012046344A1 JP WO2012046344 A1 JPWO2012046344 A1 JP WO2012046344A1 JP 2012537541 A JP2012537541 A JP 2012537541A JP 2012537541 A JP2012537541 A JP 2012537541A JP WO2012046344 A1 JPWO2012046344 A1 JP WO2012046344A1
- Authority
- JP
- Japan
- Prior art keywords
- power consumption
- cell
- condition
- value
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本発明を適用した1システムでは、半導体装置の消費電力値を計算する評価条件となりうる範囲を表す範囲情報を取得し、半導体装置を構成する基本素子であるセル毎に、範囲情報が表す範囲内の評価条件でそのセルの消費電力値の計算を行うための計算式を設定し、設定した計算式を表す計算式情報をセル毎に格納したライブラリを作成する。
Description
本発明は、半導体装置の消費電力を評価するための技術に関する。
LSIに代表される半導体装置は、高速化、及び高集積化が進んでいる。それにより、半導体装置の消費電力も増大している。このため、省電力化の要請から、半導体装置の設計と並行して、消費電力の評価(見積もり)が行われるのが普通となっている。
半導体装置の設計は、通常、基本素子として登録されたセルを組み合わせる形で行われる。セルは、半導体装置の機能的、或いは論理的な単位となりうる構成要素であり、OR、NOR、AND、及びNAND等の基本ゲートの他に、CPU、及びメモリのような規模の大きい構成要素もセルとして扱われるのが一般的である。このことから、半導体装置の消費電力計算方法としては、消費電力計算用の消費電力データをセル毎に格納したライブラリを用意し、半導体装置を構成するセル毎に、ライブラリを参照して消費電力値を計算するものが一般的である。この消費電力計算方法では、半導体装置全体の消費電力値は、セル毎に計算した消費電力値を加算して算出される。
半導体装置には同一のセルが複数搭載される。同一のセルでも搭載位置により動作状態が異なり、消費電力が異なる。これを区別するため半導体装置に搭載された状態のセル一つ一つを以降「インスタンス」と呼ぶことにする。
セル(インスタンス)の消費電力は、一般的に、リーク電力とダイナミック電力とに大別される。リーク電力は、リーク電流によって消費される電力である。ダイナミック電力は、セルの動作状態が遷移する場合に、負荷容量の充放電動作によって消費される電力、および貫通電流によって消費される電力である。動作状態は、セルの現在の状態(以降「内部状態」)或いは入力信号に依存して遷移する。
従来のライブラリは、セルの消費電力データとして、そのセルの消費電力値が定義されていた。セルのリーク電力は、そのセルの内部状態、或いは信号の入力条件によって変化する。このことから、リーク電力による消費電力値は、内部状態毎、入力条件毎、或いはそれらの組み合わせ毎に定義されるのが普通である。
図1は、リーク電力の消費電力値を定義した従来の消費電力データの記述例を説明する図である。
図1の記述例は、名称が「NAND2」のセル(NANDゲート)のものである。このセル「NAND2」は名称が「A1」及び「A2」の2つの入力端子を備えている。このことから、入力条件としては、入力端子A1及びA2に入力される各信号が共にH(論理値が1)の場合、入力端子A1に入力される信号がHで入力端子A2に入力される信号がLの場合、及びそれら以外(デフォルト時)の場合、の3つが定義されている。それら各入力条件での消費電力値としては、20.0、10.0及び15.0(単位は例えばnWである)がそれぞれ定義されている。
デフォルト時の消費電力値は、“cell_leakage_power:”以降から最初の“;”の間の記述により定義されている。デフォルト時以外では、消費電力値の他に入力条件が定義される。その入力条件、及び消費電力値は、“leakage_power() ”に続く括弧内に記述されている。入力条件は“when:”以降から最初の“;”の間の記述により定義され、定義された入力条件での消費電力値は“value”以降から最初の“;”の間の記述により定義されている。
このようなことから、図1に表すように記述された消費電力データを参照することにより、入力条件に応じたリーク電力値(消費電力値)を特定できるようになっている。図1の消費電力データ中に内部状態が定義されていないのは、NANDゲートの内部状態は入力条件にのみ依存して変化するためである。
ダイナミック電力は、信号のレベルが変化する遷移時間、及び負荷容量によって変化する。その遷移時間と負荷容量の各値は共に、任意の値である。このことから、ダイナミック電力による消費電力値は、任意の値でも対応できるように、遷移時間と負荷容量を変数(引数)としたルックアップテーブル(以降「LUT」と表記)により定義される。
遷移時間は、信号が或るレベルから別の或るレベルに変化するまでに要する時間として定義される。より具体的には、例えば信号がLのときのレベルを0、信号がHのときのレベルを100とした場合、信号のLからHへの変化では、遷移時間(以降「立ち上がり遷移時間」と呼ぶ)は例えば信号のレベルが20から80に変化するまでの時間として定義される。同様に、信号のHからLへの変化では、遷移時間(以降「立ち下がり遷移時間」と呼ぶ)はその信号のレベルが80から20に変化するまでの時間として定義される。
図2は、ダイナミック電力による消費電力値を定義した従来の消費電力データの記述例を説明する図である。
図2の記述例も図1と同様に、名称が「NAND2」のセル(NANDゲート)のものである。セル「NAND2」の出力端子の名称は「X」である。ここでは、入力端子A1に入力される信号によって発生するダイナミック電力用として、2つのLUTが定義されている。“rise_power”に続く括弧内の記述は、信号の立ち上がり時のLUTを定義するものである。“fall_power”に続く括弧内の記述は、信号の立ち下がり時のLUTを定義するものである。
図2の記述例も図1と同様に、名称が「NAND2」のセル(NANDゲート)のものである。セル「NAND2」の出力端子の名称は「X」である。ここでは、入力端子A1に入力される信号によって発生するダイナミック電力用として、2つのLUTが定義されている。“rise_power”に続く括弧内の記述は、信号の立ち上がり時のLUTを定義するものである。“fall_power”に続く括弧内の記述は、信号の立ち下がり時のLUTを定義するものである。
2つのLUTは、“index_1”及び“index_2”とそれぞれ表記の2つの変数の値の組み合わせ毎に消費電力値が定義されたものである。“index_1”は、例えば遷移時間を表す変数の名称であり、図2にはその値として0.01、0.02及び0.04(単位は例えばns)の3つが定義されている。“index_2”は、例えば負荷容量を表す変数の名称であり、図2にはその値として0.01、0.02、0.04及び0.05(単位は例えばpF)の4つが定義されている。このことから、各LUTでは、“values”に続く括弧内に、計12(=3×4)の消費電力値が定義されている。その消費電力値の単位は例えばμWである。
各消費電力値は、一対のダブルクオーテーションマークの間にカンマによって分けられて記述される。“values”に続く括弧内には、一対のダブルクオーテーションマークの間に“¥”が表記されている。この位置関係により、“¥”はデータとしては無視される。“¥”を記述しているのは、データとして記述された消費電力値の区切りを分かりやすくするためである。“¥”の挿入により、消費電力値は4つずつにまとめられて記述されている。最初の4つの消費電力値は、遷移時間が0.01nsのときのもの、次の4つの消費電力値は、遷移時間が0.02nsのときのもの、最後の4つの消費電力値は、遷移時間が0.04nsのときのものである。
上記したように、遷移時間、及び負荷容量は共に任意の値である。このため、遷移時間及び負荷容量のうちの少なくとも一方がLUTの変数の値と異なる場合、消費電力値として、補間により求められた値が用いられる。それにより、図2に表すように記述された消費電力データを参照することにより、遷移時間、及び負荷容量に応じたダイナミック電力値(消費電力値)を特定できるようになっている。
リーク電力及びダイナミック電力は共に、半導体装置を製造するプロセス、半導体装置を構成するセルに印加する電圧、及びそのセルの温度(PVT(Process、Voltage、Temperature))のばらつきによって変化する。このことから、現在では、PVTのばらつきを考慮した消費電力の見積もりが行われている。それにより、PVTのばらつきは、消費電力を計算するうえでの条件として扱われている。その条件は以降PVT条件と呼ぶことにする。
上記ライブラリは、セルの消費電力を確認するためのシミュレーション(例えばデバイスシミュレーション)の実行により作成する。この場合、PVT条件及びLUT作成条件は、入力条件、及び内部状態と共に、シミュレーションの実行条件として与えられる。LUT作成条件は、LUTに定義する消費電力値を指定するものであり、例えば変数毎の値、つまり図2において“index_1”及び“index_2”でそれぞれ定義された値を含む。それにより、シミュレーションは、各変数の値の組み合わせ毎に実行される。従来の消費電力の計算は、PVT条件、及びLUT作成条件を含む実行条件に従ったシミュレーションの実行(ライブラリの作成)→インスタンス毎の消費電力値の計算→半導体装置全体の消費電力値の計算、の順序で行われる。
図3は、従来の消費電力計算装置の構成を説明する図である。
例えばオペレータにより与えられたPVT条件情報31及びLUT作成条件情報32は、セル毎にシミュレーションにより消費電流を計算する消費電流シミュレーション部33に入力される。消費電流シミュレーション部33は、セル毎にPVT条件情報31が表すPVT条件、及びLUT作成条件情報32が表すLUT作成条件を含む実行条件に従ってシミュレーションを複数回実行し、ライブラリを作成する。
例えばオペレータにより与えられたPVT条件情報31及びLUT作成条件情報32は、セル毎にシミュレーションにより消費電流を計算する消費電流シミュレーション部33に入力される。消費電流シミュレーション部33は、セル毎にPVT条件情報31が表すPVT条件、及びLUT作成条件情報32が表すLUT作成条件を含む実行条件に従ってシミュレーションを複数回実行し、ライブラリを作成する。
インスタンスごとの消費電力計算部35は、半導体装置を構成するインスタンスごとに、ライブラリを参照して、リーク電力値、及びダイナミック電力値を計算する。入力条件、及び内部状態等のリーク電力値、及びダイナミック電力値を計算するうえで必要な情報は、例えばインスタンスごとに設定される。各インスタンスの消費電力値は、設定された情報に応じて計算されたリーク電力値、及びダイナミック電力値を用いて算出される。
LSIの消費電力計算部36は、インスタンスごとの消費電力計算部35からインスタンスごとに計算された消費電力値を入力し、それらを合計する。消費電力値の合計結果は、半導体装置全体の消費電力値37として出力される。
このようにして、半導体装置全体の消費電力値37は、与えられたPVT条件によりシミュレーションを実行し、そのシミュレーションの結果からライブラリを作成し、作成したライブラリを用いて計算される。そのシミュレーションは、LUT作成条件により特定される回数だけ実行する必要がある。そのシミュレーションの実行(ライブラリの作成)には、或る程度の時間が必要である。このため、異なるPVT条件での消費電力値37の計算は、迅速に行うのが困難となっていた。
従来のライブラリは、異なるPVT条件での消費電力を計算できるように、プロセス、電圧、及び温度に関するディレーティングファクタを定義することができるようになっている。ディレーティングファクタを定義したライブラリを作成すれば、異なるPVT条件での消費電力値37の計算も迅速に行うことができる。
上記ディレーティングファクタは、普通、プロセス、電圧、或いは温度の変化に対する消費電力の変化量を表す差分値である。しかし、プロセス、電圧、及び温度の何れであっても、その変化に対する消費電力値の変化は線形ではない。このため、ライブラリを作成した際のPVT条件と比較的に大きく異なるPVT条件で消費電力を見積もる場合、消費電力の見積もりの精度は大きく低下する。このことから、ディレーティングファクタを定義したライブラリは、事実上、比較的に大きく異なる複数のPVT条件での消費電力の見積もりに用いるのは避けるべきものとなっている。
PVT条件を変更しての消費電力の見積もりは
1)半導体装置のプロセスのばらつきごとに電力制限を満たす電源電圧を設定する
2)半導体装置の冷却条件を反映した電力計算を行う
3)半導体装置内の温度分布解析を行う
等を行うためにも必要となる。半導体装置における高集積化は、PVT条件の消費電力への影響をより大きくさせている。上記1〜3を行うのは、このことが大きな理由となっている。それにより今後は、PVT条件を様々に変更して消費電力の見積もりを行うことがより多くなると予想される。このようなことからも、高い精度を維持しつつ、比較的に大きく異なるPVT条件でも迅速に消費電力を見積もることができるようにすることが重要と云える。
1)半導体装置のプロセスのばらつきごとに電力制限を満たす電源電圧を設定する
2)半導体装置の冷却条件を反映した電力計算を行う
3)半導体装置内の温度分布解析を行う
等を行うためにも必要となる。半導体装置における高集積化は、PVT条件の消費電力への影響をより大きくさせている。上記1〜3を行うのは、このことが大きな理由となっている。それにより今後は、PVT条件を様々に変更して消費電力の見積もりを行うことがより多くなると予想される。このようなことからも、高い精度を維持しつつ、比較的に大きく異なるPVT条件でも迅速に消費電力を見積もることができるようにすることが重要と云える。
様々なPVT条件での消費電力の見積もりを迅速に行う方法としては、PVT条件ごとにライブラリを予め作成するという方法が考えられる。しかし、ライブラリの作成にはシミュレーションの実行が必要である。そのシミュレーションの実行条件となる状態量(実行条件の内容を表す変数として扱うもの)の数は少なくない。このため、シミュレーションの実行回数は膨大となり、全てのライブラリの作成には長い時間が必要となる。また、ライブラリにはLUTを定義するため、作成した全てのライブラリの保存に必要な記憶容量も非常に大きくなる。
このようなことから、PVT条件ごとにライブラリを予め作成する方法は避けるべきと云える。それにより、比較的に大きく異なるPVT条件でも迅速、且つ高精度に半導体装置の消費電力を見積もるうえで、シミュレーションの実行回数、及びデータ量を共に抑えることも重要と云える。
本発明を適用した1システムは、比較的に大きく異なるPVT条件での半導体装置の消費電力の見積もりを迅速、且つ高精度に行えるようにするための技術を提供することを目的とする。
本発明を適用した1システムは、半導体装置の消費電力値を計算する評価条件となりうる範囲を表す範囲情報を取得する情報取得手段と、半導体装置を構成する基本素子であるセル毎に、情報取得手段が取得した範囲情報が表す範囲内の評価条件で該セルの消費電力値の計算を行うための計算式を設定する計算式設定手段と、計算式設定手段が設定した計算式を表す計算式情報をセル毎に格納したライブラリを作成するライブラリ作成手段と、を具備する。
本発明を適用した他の1システムは、半導体装置の消費電力値を計算すべき評価条件を取得する条件取得手段と、半導体装置に搭載された基本素子であるセルの条件取得手段が取得した評価条件での消費電力値の計算を、消費電力値の計算に用いるべき計算式を表す計算式情報をセル毎に格納したライブラリを用いて行う第1の消費電力計算手段と、ライブラリを用いてセル毎に第1の消費電力計算手段が計算した消費電力値を用いて、半導体装置の評価条件での消費電力値を計算する第2の消費電力計算手段と、を具備する。
本発明を適用した1システムは、比較的に大きく異なるPVT条件での半導体装置の消費電力の見積もりを迅速、且つ高精度に行うことができる。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<第1実施形態>
図4は、本実施形態によるライブラリ作成装置、及び消費電力計算装置を搭載した消費電力評価装置の構成を説明する図である。なお、図4では、ライブラリ作成装置、消費電力評価装置が用いる情報も、模式的に図示している。本実施形態によるライブラリ作成装置は、対象とする半導体装置を構成する各セルの消費電力を計算するためのライブラリ45aを作成するものとして実現されている。本実施形態による消費電力計算装置は、作成したライブラリ45aを用いて半導体装置全体の消費電力値49を計算するものとして実現されている。
<第1実施形態>
図4は、本実施形態によるライブラリ作成装置、及び消費電力計算装置を搭載した消費電力評価装置の構成を説明する図である。なお、図4では、ライブラリ作成装置、消費電力評価装置が用いる情報も、模式的に図示している。本実施形態によるライブラリ作成装置は、対象とする半導体装置を構成する各セルの消費電力を計算するためのライブラリ45aを作成するものとして実現されている。本実施形態による消費電力計算装置は、作成したライブラリ45aを用いて半導体装置全体の消費電力値49を計算するものとして実現されている。
本実施形態によるライブラリ作成装置は、評価範囲情報41aを入力し、セルごとに消費電力計算用の消費電力データを登録したライブラリ45aを作成する。ライブラリ作成装置は、評価範囲情報41aを取得する情報取得部41、評価範囲情報41aを参照してライブラリ45aを作成するうえでの条件であるライブラリ作成条件43aを生成する作成条件決定部42、生成されたライブラリ作成情報43aを保存する第1の記憶部41、生成されたライブラリ作成条件43aに従ってライブラリ45aを作成する係数ライブラリ作成部44、及びライブラリ45aを保存する第2の記憶部45を備えた構成である。
評価範囲情報41aは、半導体装置の消費電力を評価する可能性が考えられるPVT条件の範囲を表すものである。情報取得部41は、評価範囲情報41aを入力するか、或いは格納したものである。本実施形態では、評価範囲情報41aとして、PVT条件以外の実行条件の範囲も指定するものを採用している。具体的には、遷移時間、及び負荷容量等の各範囲も指定する情報も評価範囲情報41aとして採用している。以降、実行条件の内容を表す各状態量は「条件変数」と呼ぶことにする。
評価範囲情報41aの内容、つまり各条件変数、及びその値域の例を説明する前に、消費電力の大部分を占めるリーク電力、及びダイナミック電力について具体的に説明する。
図5は、リーク電力を発生させるリーク電流の測定方法を説明する図である。図5において、50はセル、A1〜Aiはセル50の入力端子、X1〜Xjはセル50の出力端子、F1〜Fkはセル50の内部状態、VDDは正電圧側の正電源電圧、VSSは負電圧側の負電源電圧、IDDは正電圧側からセル50に供給される正電源電流、ISSはセル50から負電圧側に流れる負電源電流、をそれぞれ表している。
図5は、リーク電力を発生させるリーク電流の測定方法を説明する図である。図5において、50はセル、A1〜Aiはセル50の入力端子、X1〜Xjはセル50の出力端子、F1〜Fkはセル50の内部状態、VDDは正電圧側の正電源電圧、VSSは負電圧側の負電源電圧、IDDは正電圧側からセル50に供給される正電源電流、ISSはセル50から負電圧側に流れる負電源電流、をそれぞれ表している。
リーク電力は、何れのセル50への入力信号も変化しない状況下で流れるリーク電流によって生じるものである。リーク電流は、入力条件、つまり各入力端子に入力される信号の組み合わせ、及びセル50の内部状態によって異なる。このことから、リーク電流は、セル50の入力条件、及び内部状態F1, F2, …Fkを設定し、設定内容でシミュレーション(例えばデバイスシミュレーション)を実行することで算出される。セル50の各出力端子から出力される信号は、設定された入力条件、及び内部状態によって確定する。
図6は、ダイナミック電力を発生させるダイナミック電流の測定方法を説明する図である。図6において、Cloadは負荷60の負荷容量、Vは正電源電圧VDDと負電源電圧VSSの間の電位差(以降「電源電圧」)、IDDは正電源側から流れる電流(以降「正電源電流」)、ISSは負電源側に流れる電流(以降「負電源電流」)をそれぞれ表している。
図6に示すように、Tsin_upはセル50の入力端子に入力する信号の立ち上がりに要する遷移時間、Tsin_downは入力端子に入力する信号の立ち下がりに要する遷移時間、をそれぞれ表している。Tsinは立ち上がりに要する遷移時間Tsin_upと立ち下がりに要する遷移時間Tsin_downとを平均した遷移時間を表している。同様に、Tsout_upはセル50の出力端子から出力される信号の立ち上がりに要する遷移時間、Tsout_downは出力端子から出力される信号の立ち下がりに要する遷移時間、Tsoutは遷移時間Tsout_up及びTsout_downを平均した遷移時間、をそれぞれ表している。本実施形態では、遷移時間Tsin、及びTsoutをそれぞれ算出することにより、遷移時間を入力される信号における遷移時間、及び出力される信号における遷移時間に大別して扱っている。以降、Tsinと表記の入力される信号の遷移時間は「入力遷移時間」、Tsoutと表記の出力される信号の遷移時間は「出力遷移時間」とそれぞれ呼ぶことにする。図6における他のシンボルが表す意味は図5と同じであるため、説明は省略する。
立ち上がり遷移時間、及び立ち下がり遷移時間は共に、信号が或るレベルから別の或るレベルに変化するまでに要する時間として定義される。例えば負電源電圧VSSのレベルを0、正電源電圧VDDのレベルを100とした場合、立ち上がり遷移時間は、信号のレベルが20から80に変化するまでに要する時間として定義される。同様に、立ち下がり遷移時間は、信号のレベルが80から20に変化するまでに要する時間として定義される。
セル50から出力される信号の時間変化は、セル50に入力される信号の時間変化に一致するとは限らない。本実施形態において、遷移時間として入力遷移時間、及び出力遷移時間の二つを扱うのはこのためである。
セル50と接続された負荷60にセル50から出力される信号が変化する場合、信号の変化により負荷60は充放電を行う。負荷60に蓄えられる最大の電荷は、負荷60の負荷容量Cloadの値に電源電圧Vを掛けて得られる値(=Cload・V)である。負荷60が蓄える電荷は、負荷60に出力される信号のレベルが下がることにより負荷60から放出される。そのような負荷60の充放電が発生する状況下でダイナミック電力が発生する。負荷60による充電自体は、電力の消費にはならない。
本実施形態では、評価範囲情報41aの条件変数、つまり状態量として、電源電圧V、入力遷移時間Tsin、出力遷移時間Tsout、及び負荷容量Cloadを採用している。その他に、半導体装置(チップ)間におけるプロセスのばらつき(以降シンボルとして「Pchip」を表記)、半導体装置内におけるプロセスのばらつき(以降シンボルとして「Pocv」と表記)、セルを構成するトランジスタのジャンクション温度(以降シンボルとして「Tj」を表記)を状態量として採用している。評価範囲情報41aは、条件変数ごとに、その値域を表す。PVT条件は、プロセスのばらつきPchip、Pocv、電源電圧V、及びトランジスタのジャンクション温度Tjによって表されるものである。
トランジスタがFET(多くの場合、MOS FETである)であれば、ジャンクション温度Tjの代わりにチャネル温度が用いられる。しかし、消費電力の計算上、チャネル温度とジャンクション温度Tjは同じものと考えることができる。このことから、ジャンクション温度Tjは、トランジスタの種類に係わらず、トランジスタのなかで最も高温となる部分の温度を指す意味で用いる。消費電力を評価するうえでジャンクション温度Tjよりも影響が大きい、或いはより適切に消費電力を評価できるような温度が他に存在する場合、ジャンクション温度Tj以外の温度を採用しても良い。セルの温度はジャンクション温度Tjに限定されるものではない。
プロセスのばらつきPchip及びPocvは、他の条件変数と異なり、定められた次元は存在しない。このことから、プロセスのばらつきPchip及びPocvの各値は、無次元の値、つまり正規化した値により表現させている。以降、プロセスのばらつきPchip及びPocvを共に指す場合、「プロセスのばらつきP」と表記する。
図7は、プロセスのばらつきの正規化方法を説明する図である。図7において、左側のグラフは、確率変数Xに対する標準正規分布の累積分布関数F(X)、右側のグラフは、プロセスのばらつきPに対応付ける特性値Yに対する累積分布関数G(Y)、をそれぞれ表している。
特性値Yは、プロセスのばらつきPによって変化する数値である。具体的には、例えばトランジスタの閾値電圧、或いはトランジスタの動作時に流れる電流値(例えば何れも絶対値である)などの、トランジスタの特性値である。本実施形態では、プロセスのばらつきPは標準正規分布に従うと仮定し、ばらつきPによって変化する特性値Yを用いてプロセスのばらつきを正規化する。特性値Yに対応するプロセスのばらつきPの値は、2つの累積分布関数F(X)、G(Y)が同じ値(確率)となる確率変数Xの値として求める。
すなわち、
G(Y)=F(X)
より、確率変数XをばらつきPと見なして、
Y=G−1[F(P)]
となる。図7は、X(=P)が「1」の場合の、F(X)=0.84と等しい累積分布関数G(Y)に対応するG−1[F(P)]=G−1[F(1)]の関係を示している。
G(Y)=F(X)
より、確率変数XをばらつきPと見なして、
Y=G−1[F(P)]
となる。図7は、X(=P)が「1」の場合の、F(X)=0.84と等しい累積分布関数G(Y)に対応するG−1[F(P)]=G−1[F(1)]の関係を示している。
例えば物体が或る状態となる確率は、物体が或る状態とならなかった確率を表す情報と見なすことができる。確率は、そのように視点を変えた解釈が可能である。それにより、確率変数Xに対する累積分布関数F(X)の表す確率は、二つの意味に解釈することが可能である。このため、本実施形態では、確率変数Xの値が大きくなるほど、特性値Yの絶対値が小さくなるように確率変数Xと特性値Yの間の関係を考慮している。そのように考慮することにより、例えば特性値Yとしてトランジスタの動作時に流れる電流値(の絶対値)を採用していた場合、プロセスのばらつきPの値は、電流値(の絶対値)が大きくなるほど小さくなる。
特性値Yとして採用できる状態量は、プロセスのばらつきPに応じて値が変化するものであれば良いことから、特に限定するものではない。また、プロセスのばらつきPの数値化は、上述したようなもの以外の方法を採用しても良い。例えばプロセスのばらつきPに対する消費電力への影響を数値化(モデル化)することにより、想定するプロセスのばらつきPに対応する数値を直接的に求められるようにしても良い。
図4の作成条件決定部42は、上記のような条件変数により表現される評価範囲情報41aを情報取得部41から入力し、条件変数ごとに、その値域から刻み幅を決定することにより、各条件変数の値の組を特定する。各条件変数の値の組み合わせは、ライブラリ作成条件43aを作成するためのシミュレーションの実行条件とする。各条件変数の値の組、つまりシミュレーションの実行条件は、例えば以下のようなものである。なお、評価範囲情報41aは、以下のような条件変数ごとの値の組を表すものであっても良い。
Pchip:−3、−1.5、0、1.5、3
Pocv:−3、−1.5、0、1.5、3
V(V):0.8、0.9、1.0、1.1、1.2
Tj(°C):25、45、65、85、105
Tsin(ps):5、10、20、40、80
Tsout(ps):5、10、20、40、80
Cload(pF):0.005、0.01、0.020、0.050、0.100
Pocv:−3、−1.5、0、1.5、3
V(V):0.8、0.9、1.0、1.1、1.2
Tj(°C):25、45、65、85、105
Tsin(ps):5、10、20、40、80
Tsout(ps):5、10、20、40、80
Cload(pF):0.005、0.01、0.020、0.050、0.100
作成条件決定部42は、決定した実行条件ごとにシミュレーションを実行すると共に、決定した実行条件のなかからライブラリ作成条件43aの候補を抽出する。シミュレーションは、全セルのなかから選択した複数のセルを対象に行われる。セルの駆動力としては、例えば最小、最大の2種類程度の駆動力を想定する。セルは、例えばインバータ、バッファ、NANDゲート、ANDゲート、NORゲート、ORゲート、XORゲート、XNORゲート、及びセレクタを含むものである。この9種類のセルで2種類の駆動力を想定した場合、選択されるセルは18(=9×2)種類となる。
本実施形態では、各セルのリーク電流、及びダイナミック電流の各値は、評価範囲情報41aの内容を表す1つ以上の条件変数を用いた計算式により算出することを想定している。計算式とは、例えば以下のようなものである。
Ileak=exp(A+B・V+C/(Tj+273)+D・V/(Tj+273)+E・Pchip+F・Pocv) ・・・(1)
Idyn=Qdyn/Tsw ・・・(2)
Qdyn=Cint・V+(Ksi・Tsin+Kso/Tsout+Ksx・Tsin 2/Tsout)・[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))] ・・・(3)
ここで、
Ileak:リーク電流値
Idyn:ダイナミック電流値(あるPchip, Pocv, V, Tj, Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電流量)
Tsw:セルに入力される信号が変化する1周期分の時間(スイッチング時間)
Qdyn:スイッチング時間Tswに消費される消費電荷量(あるPchip, Pocv, V, Tj, Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電荷量)
である。A、B、C、D、E、F、Cint、Ksi、Kso、Ksx、Kc、Kp、Kv、及びKtは全て係数である。
Idyn=Qdyn/Tsw ・・・(2)
Qdyn=Cint・V+(Ksi・Tsin+Kso/Tsout+Ksx・Tsin 2/Tsout)・[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))] ・・・(3)
ここで、
Ileak:リーク電流値
Idyn:ダイナミック電流値(あるPchip, Pocv, V, Tj, Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電流量)
Tsw:セルに入力される信号が変化する1周期分の時間(スイッチング時間)
Qdyn:スイッチング時間Tswに消費される消費電荷量(あるPchip, Pocv, V, Tj, Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電荷量)
である。A、B、C、D、E、F、Cint、Ksi、Kso、Ksx、Kc、Kp、Kv、及びKtは全て係数である。
(1)式は、リーク電流値Ileakは電源電圧Vに応じて指数関数的に変化するとの想定をベースにし、電源電圧Vの他に、各プロセスのばらつきPchip、Pocv、ジャンクション温度Tjのそれぞれの影響を考慮したものである。(3)式では、右辺第1項の値は電荷の基準値、右辺第2項の値は基準値からの調整分となる。電荷の調整分は、入力遷移時間Tsin、出力遷移時間Tsout、プロセスのばらつきPchip、電源電圧V、ジャンクション温度Tjによって変化するものと想定している。調整分にも、電流は電源電圧Vに応じて指数関数的に変化するとの想定を反映させている。プロセスのばらつきPocvは、ダイナミック電力への影響が無視できるものとしている。(2)式は、ダイナミック電流値Idynは、スイッチング時間Tswの間に消費電荷量Qdynによって流れる電流が一定との想定により作成したものである。(1)及び(2)式により電流値Ileak、Idynを算出するのは、電源電圧Vに応じてリーク電力値、及びダイナミック電力値を計算できるようにしたためである。
なお、リーク電流値Ileak、及びダイナミック電流値Idyn(消費電荷量Qdyn)を算出する計算式は、上記のようなものに限定されない。つまり、モデル化の手法により異なる別の計算式を採用しても良い。セルごとに異なる計算式を用意しても良い。例えばリーク電流値Ileakの別の計算式としては、以下のようなものを採用しても良い。
Ileak=exp(A+B・V+C/(Tj+273)+D・V/(Tj+273)+E・Pchip+F・Pocv+G・Pchip・Pocv+H・V・Pchip+J・V・Pocv+L・Pchip/(Tj+273)+M・Pocv/(Tj+273)) ・・・(4)
ここで、G、H、J、L及びMは全て係数である。273は、温度を絶対温度に換算するための値である。
ここで、G、H、J、L及びMは全て係数である。273は、温度を絶対温度に換算するための値である。
上記(1)〜(3)式を用意したことから、作成条件決定部42がシミュレーションの実行により候補を抽出するライブラリ作成条件43aは、(1)及び(3)式の各係数の値を決定するためにシミュレーションを実行すべき実行条件群を表すものとしている。候補は、実行条件群の1実行条件となりうるものである。
(1)式には4条件変数が存在し、(3)式には6条件変数が存在する。各条件変数の値の個数は5である。このことから、(1)式ではシミュレーションの実行条件として625(=55)条件が必要であり、(3)式ではシミュレーションの実行条件として15625(=56)条件が必要となる。それにより、作成条件決定部42は、選択したセルごとに、16250(=625+15625)回のシミュレーションを少なくとも実行する。ライブラリ作成条件の候補は、計算式べつに抽出される。
上記625条件、及び15625条件は、1セルで計算式別にシミュレーションが実行される最小の実行条件数である。実際には、各セルでは、最小の実行条件数に、対象とするセルで考慮すべき入力条件数、及び内部状態数等をそれぞれ掛けた数のシミュレーションが実行される。ここでは特に断らない限り、セルによる違いは無視することにする。つまり、特に断らない限り、各セルでは最小の実行条件数のシミュレーションが実行されるものとの想定で説明を行うこととする。
評価範囲情報41aには7条件変数が存在する。このため、各条件変数の値の全組み合わせ数は78125(=57)となる。しかし、上記のように計算式ごとに必要なシミュレーションを実行すると、シミュレーションの実行回数はより少なくなる。計算式ごとに必要なシミュレーションを実行するようにしているのは、このためである。
(1)式には6係数が存在する。6係数の値の算出では、少なくとも6回の実行条件の異なるシミュレーション結果を用いるのが望ましい。本実施形態では、より高い精度を得るために、候補として抽出する実行条件数は係数の数の倍以上としている。それにより、作成条件決定部42は、(1)式を想定したライブラリ作成条件43aの候補として、例えば12の実行条件を抽出する。同様に、(3)式には8係数が存在することから、(3)式を想定したライブラリ作成条件の候補としては、例えば16の実行条件を抽出する。
以降、計算式ごとに候補として抽出される実行条件数は「候補条件数」と呼ぶことにする。候補条件数は、ライブラリ作成条件43aとして抽出される実行条件数となる。それにより、ライブラリ作成条件43aは、計算式ごとに候補条件数の実行条件を表すものとなっている。
計算式別のライブラリ作成条件43a、つまり候補条件数の実行条件は、複数の候補条件数の実行条件のなかからシミュレーションの結果を用いて抽出される。実行条件の抽出は、例えば候補条件数の実行条件ごとに、シミュレーションの結果との誤差を評価し、誤差が最小となる各係数の値が算出される候補条件数の実行条件を特定することで行われる。作成条件決定部42は、そのようにして、セルごと、計算式ごとに、より高い精度が得られる候補条件数の実行条件を特定し、その特定結果をライブラリ作成条件43aとして第1の記憶部43に保存する。
各計算式における各係数の値の算出は、シミュレーション結果と最も良く合う計算式(回帰曲線)を求める操作(フィッティング)により行われる。フィッティングを行う方法は、特に限定するものではない。
候補条件数のシミュレーションの実行条件は、例えば各条件変数の値がそれぞれ同じように変化するように選択すれば良い。或いは、実行条件を選択するうえでの規則等を設けずに、ランダムに実行条件を選択するようにしても良い。誤差の評価方法としては、例えば誤差の二乗和平方根を求めて行うものがある。誤差の評価方法も特に限定するものではない。
上記のように各条件変数の値の数を全て5にしたとしても、シミュレーションの実行条件の数は多くなる。このため、全セルを対象に全実行条件(計算式別に特定される数の実行条件)のシミュレーションを実行すると、シミュレーションの実行に要する時間は非常に長くなる。このことから、本実施形態では、全セルのなかから選択した複数のセルのみを対象に、ライブラリ作成条件43aの作成、つまり(1)及び(3)式の各係数の値を算出するためのシミュレーションの実行条件群の抽出を行うようにしている。シミュレーションの実行回数を抑えることにより、ライブラリ45aの作成を、誤差の低下を抑えつつ、より短時間に行えるようにさせている。
本実施形態では、選択したセルごとに、シミュレーションの全実行条件分だけ、シミュレーションを実行させている。これは、全実行条件を対象に誤差の評価を行えるようにしたためである。誤差の評価を行うシミュレーションの実行条件は、制限しても良い。実行条件の制限を行うことにより、シミュレーションの実行回数はより少なくなることから、ライブラリ作成条件43aは、全セル、或いは比較的に重要なセルといったより多くのセルを対象にして作成するようにしても良い。
係数ライブラリ作成部44は、第1の記憶部43に保存されたライブラリ作成条件43aを参照し、セルごとに、(1)及び(3)式の各係数の値の算出、及び算出した各係数の値のライブラリ45aへの格納を行う。ライブラリ45aは、全てのセルの各係数の値が格納されることにより作成される。係数ライブラリ作成部44は、作成したライブラリ45aを第2の記憶部45に保存する。各係数の値は以降、「係数データ」とも表記する。(1)式用の係数データは「リーク係数データ」、(3)式用の係数データは「ダイナミック係数データ」と表記して区別する。「係数データ」は、区別する必要がない場合、或いは2種類の係数データの総称として用いる。
セルのリーク電力値は、上記したように、入力条件によって変化する(図1)。セルによっては、内部状態がリーク電力に影響を及ぼす。このようなことから、(1)式の各係数は、入力条件、及び内部状態ごとに算出される。それにより、(1)式用には、最小の実行条件数に入力条件数、及び内部状態数を掛けた数のシミュレーションを実行する必要が生じる。
一方、ダイナミック電力は、1入力信号の変化によって発生する。このことから、(3)式は、1入力信号と1出力信号の関係、つまりセルの1入力端子と1出力端子の関係(以降「入出力関係」と呼ぶ)を想定したものとなっている。
複数の出力端子を備えたセルでは、1入力信号の変化によって複数の出力信号が変化する場合がありうる。各出力信号の変化は、セルの内部状態、及び他の入力信号に依存するのが普通である。以降セルの他の入力信号(他の入力端子に入力される信号)は「状況条件」と呼ぶことにする。また、入力条件、入出力関係、或いは内部状態等の計算式の各係数の値を算出するうえで区別される状態は「論理状態」と総称する。
複数の出力信号が同時変化するセルでは、以下の手順により、対象とする1出力信号分を分離する。ここでは、説明は計nの出力信号が同時に変化する場合を想定して行う。
先ず、(3)式で考慮しない、ダイナミック電力に影響を及ぼす条件変数を選択し、同時に変化する出力信号のなかで選択した条件変数の値を変化させる1出力信号を決定し、(3)式の各係数の値を算出する。この時、算出される各係数はそれぞれCint1_i、Ksi1_i、Kso1_i、Ksx1_i、Kc1_i、Kp1_i、Kv1_i、及びKt1_iとする。これら各係数は、他の同時に変化する各出力信号でも同様に算出する。各係数の下添字の最後に位置するiは1〜nの間の整数を表している。選択される条件変数は、例えば負荷容量Cloadである。選択した条件変数では、上記のように、最大で5つの値を用いることができる。
同時に変化する全ての出力信号で各係数の値を算出した後は、それぞれ算出した各係数を用いて次式へのフィッティングを行い、この式中の係数Cint_all、Ksi2_i、Ksox2_i(i=1,2,・・・,n)の各値を算出する。
Qdyn=Cint_all・V+ΣKsi2_i・Tsin・(Kc1_1+exp(Kp1_i・Pchip+Kv1_i・V+Kt1_i/(Tj+273)))+ΣKsox2_i・(Kso1_i/Tsout_i+Ksx1_i・Tsin 2/Tsout_i)・(Kc1_i+exp{Kp1_i・Pchip+Kv1_i・V+Kt1_i/(Tj+273))) ・・・(5)
ここで、Tsout_i:選択した出力信号の出力遷移時間である。
ここで、Tsout_i:選択した出力信号の出力遷移時間である。
(5)式は、(3)式の右辺第2項を展開し、各出力信号の影響を全て考慮するように変形したものである。係数Ksi2_i、Ksox2_iは、各出力信号が影響する度合いの調整用となっている。(5)式により、入力信号と対応付ける1出力信号における(3)式の各係数の値は、以下のように求められる。
Cint=Cint_all/n ・・・(6)
Ksi=Ksi2_i ・・・(7)
Kso=Ksox2_i・Kso1_i ・・・(8)
Ksx=Ksox2_i・Ksx1_i ・・・(9)
Kc=Kc1_i ・・・(10)
Kp=Kp1_i ・・・(11)
Kv=Kv1_i ・・・(12)
Kt=Kt1_i ・・・(13)
Ksi=Ksi2_i ・・・(7)
Kso=Ksox2_i・Kso1_i ・・・(8)
Ksx=Ksox2_i・Ksx1_i ・・・(9)
Kc=Kc1_i ・・・(10)
Kp=Kp1_i ・・・(11)
Kv=Kv1_i ・・・(12)
Kt=Kt1_i ・・・(13)
上記のようなことから、係数ライブラリ作成部44は、ダイナミック電力用の各係数を算出する場合、シミュレーションの結果を参照し、設定された入出力関係が指定する1入力端子における信号の変化により複数の出力信号が変化するか否か確認する。複数の出力信号が変化することを確認した場合に、(5)〜(13)式を用いて(3)式の各係数の値を算出する。そのようにして、より高い評価精度を実現させている。
図8Aは、リーク係数データの記述例を表す図であり、図8Bは、ダイナミック係数データの記述例を表す図である。図8A及び図8Bの各記述例は共に、名称が「NAND2」のセル(NANDゲート)のものである。このセル「NAND2」は名称が「A1」及び「A2」の2つの入力端子、名称が「X」の1つの出力端子を備えている。
このセル「NAND2」のリーク電力は、信号の入力条件、つまり各入力端子に入力される信号の組み合わせによって変化する。このことから、(1)式は、入力条件ごと(及び/或いは内部状態ごと)に用いられるものとなっている。それによりリーク係数データは、入力条件別に記述されている。図8Aにおいて、「LEAK(A1=“L”,A2=“L”)」は、各入力端子A1及びA2にレベルがLの信号が入力される入力条件を表している。「LEAK(A1=“H”,A2=“L”)」は、入力端子A1にレベルがHの信号、入力端子A2にレベルがLの信号が入力される入力条件を表している。
上記したように、ダイナミック電力の計算用の(3)式は、1入力信号と1出力信号の間の入出力関係を想定したものとなっている。それにより、ダイナミック係数データは、入出力関係別に記述されている。図8Bにおいて、「DYNAMIC(A1,X)」は、入力端子A1と出力端子Xの間の入出力関係を表している。「DYNAMIC(A1,X)」の記述に続く括弧内の「CONDITION01(A2=“H”)」は、入力端子A1に入力される信号が変化する間に入力端子A2にはレベルがH(論理値=1)の信号が入力される状況条件を表している。同様に、「DYNAMIC(A2,X)」は、入力端子A2と出力端子Xの入出力関係を表し、「DYNAMIC(A2,X)」に続く括弧内の「CONDITION01(A1=“H”)」は、入力端子A1にはレベルがHの信号が入力される状況条件を表している。NANDゲートは組み合わせ回路であるため、何れの状況条件にも内部状態は含まれていない。
上記のように、セルのリーク係数データ、及びダイナミック係数データは共に、入力条件、入出力関係、或いは内部状態等により区別される論理状態ごとに生成される。係数ライブラリ作成部44は、例えば論理状態ごとに、ライブラリ作成条件44が表す各実行条件でシミュレーションを実行し、係数データの生成、つまり各係数の値の算出を行う。それにより、図8A及び図8Bにそれぞれ表すようなリーク係数データ、及びダイナミック係数データがセルごとにライブラリ45aに登録される。
このようにして、本実施形態によるライブラリ作成装置は、ライブラリ45aを作成する。ライブラリ45aに記述される係数データは、論理状態ごとに各係数の値のみを表すものとしている。これは、ライブラリ45a全体のデータ量をより抑えるためである。言い換えれば、全セルに同じ計算式を適用していることから、各係数の値が判明すれば、消費電力を計算することができるためである。セルによって異なる計算式を適用可能にする場合、例えば各係数の値を含む計算式をライブラリ45aに記述するか、或いは適用する計算式を表す識別データを更にライブラリ45aに記述すれば良い。セルの種類によって適用する計算式を変える場合には、同様に各係数の値のみを論理状態ごとに記述することができる。
上記のように係数データがセルごとに記述されたライブラリ45aは、評価範囲情報41aが表すPVT条件の範囲内(ここでは他の複数の条件変数の各値域を含む)での消費電力の評価に用いることができる。このため、多くのライブラリ45aを用意しなくとも良い。ディレーティングファクタを定義したライブラリを用意する場合と比較して、用意すべきライブラリ45aの数は大幅に少なくすることができる。1ライブラリ45aのデータ量は従来から大幅に増大しない。このようなことから、従来と比較して、ライブラリの格納に必要なメモリ量も大幅に抑えつつ、幅広い範囲のPVT条件に対応できることとなる。
次に、本実施形態による消費電力計算装置について詳細に説明する。
本実施形態による消費電力計算装置は、条件取得部46、インスタンスごとの消費電力計算部47、及びLSIの消費電力計算部48を備えた構成となっている。
本実施形態による消費電力計算装置は、条件取得部46、インスタンスごとの消費電力計算部47、及びLSIの消費電力計算部48を備えた構成となっている。
条件取得部46は、消費電力の評価に用いるPVT条件46aを取得する。実際の条件取得部46は、例えばユーザ(オペレータ)にPVT条件46aを指定させる入力装置である。インスタンスごとの消費電力計算部47は、消費電力を評価する対象となる半導体装置(以降「LSI」と表記)の構成部品となっているセル(インスタンス)ごとに、消費電力を計算する。消費電力は、PVT条件によって変化する。このことから、消費電力の計算は、ライブラリ45a、及び条件取得部46から入力したPVT条件46aを参照して行われる。以下、符号「46a」は、消費電力の計算のために用意されたPVT条件にのみ付すことにより、他のPVT条件と区別する。
消費電力、つまりリーク電力値、及びダイナミック電力値は、条件変数の値によって変化する。各条件変数の値は、PVT条件46aとは別に与えられる。本実施形態では、PVT条件46aは、プロセスのばらつきPchip、電源電圧V及びジャンクション温度Tjを表すものとしている。プロセスのばらつきPocvはPVT条件46aに含めていない。これは、リーク電流値Ileakとして、平均が0、標準偏差が1の正規分布に従うと想定し、プロセスのばらつきPocvの値を変えて(1)式から得られた複数のリーク電流値Ileakの平均値を用いるからである。リーク電流値Ileakの平均値は以降「平均リーク電流値Ileaka」と表記する。プロセスのばらつきPocvはPVT条件46aに含めても良い。
リーク電力値、及びダイナミック電力値は、セルの論理状態によって変化する。このため、論理状態はインスタンスごとに設定される。それにより、インスタンスごとの消費電力計算部47は、設定された論理状態での消費電力値をインスタンスごとに計算する。
インスタンスごとの論理状態の設定方法は、特に限定されるものではない。論理状態の設定は、論理シミュレーションの実行により行うことができる。それ以外としては、論理状態をランダムに設定する、論理状態を統計的に設定する、といった方法等が考えられる。統計的な方法とは、例えばセルごとに可能な論理条件を特定し、特定した論理条件ごとに、その論理条件となる確率を評価し、評価した確率に沿って、各セル(インスタンス)に論理状態を割り当てる、といったものが考えられる。入力遷移時間Tsin、及び出力遷移時間Tsoutの設定は、例えばタイミング検証のためのSTA(Static Timing Analysis)の結果を用いて行っても良い。
ここで、上記のようにして各係数の値が算出される各計算式の計算精度について、図8A〜図14Eを参照して具体的に説明する。
図9A〜図9D、図10A〜図10D、図11A〜図11D、及び図12A〜図12Dは、(1)式により計算されるリーク電流値IleakのPVT条件による変化を表すグラフ、図13A〜図13E、及び図14A〜図14Eは、(3)式により計算される消費電荷量QdynのPVT条件、或いは他の条件変数による変化を表すグラフである。各グラフは、セル名が「NAND2」のセル(NANDゲート)のものであり、比較のためにシミュレーションの結果を併せて描いている。シミュレーション結果を表す線にはs、計算結果を表す線にはrをそれぞれ付している。
図9Aは、プロセスのばらつきPocvの値は0、電源電圧Vは1V、ジャンクション温度Tjは65°Cの条件下において、プロセスのばらつきPchipの値によるリーク電流値Ileak(μA)の変化を表すグラフである。縦軸はリーク電流値Ileak、横軸はプロセスのばらつきPocvを表している。図9Bは、プロセスのばらつきPchipの値は0、電源電圧Vは1V、ジャンクション温度Tjは65°Cの条件下において、プロセスのばらつきPocvによるリーク電流値Ileakの変化を表すグラフである。縦軸はリーク電流値Ileak、横軸はプロセスのばらつきPchipを表している。図9Cは、プロセスのばらつきPchip、Pocvの各値は0、ジャンクション温度Tjは65°Cの条件下において、電源電圧Vによるリーク電流値Ileakの変化を表すグラフである。縦軸はリーク電流値Ileak、横軸は電源電圧Vを表している。図9Dは、プロセスのばらつきPchip、Pocvの各値は0、電源電圧Vは1Vの条件下において、ジャンクション温度Tjによるリーク電流値Ileakの変化を表すグラフである。縦軸はリーク電流値Ileak、横軸はジャンクション温度Tjを表している。
図9A〜図9Dの各グラフが得られる条件は、図10A〜図10D、図11A〜図11D、及び図12A〜図12Dでも同じである。図9A〜図9D、図10A〜図10D、図11A〜図11D、及び図12A〜図12Dの間で異なるのは、入力条件、つまり各入力端子A1及びA2に入力される信号の組み合わせである。その入力条件は、図9A〜図9Dでは入力端子A1の信号レベルはH、入力端子A2の信号レベルはL、図10A〜図10Dでは入力端子A1の信号レベルはL、入力端子A2の信号レベルはH、図11A〜図11Dでは各入力端子A1及びA2の信号レベルは共にL、図12A〜図12Dでは各入力端子A1及びA2の信号レベルは共にHである。
図9A〜図9D、図10A〜図10D、図11A〜図11D、及び図12A〜図12Dから明らかなように、(1)式は異なったPVT条件、及び入力条件でもリーク電流値Ileakを高精度に算出することができる。図10Aのグラフでは、プロセスのばらつきPchipの値が小さい領域で、シミュレーション結果sと計算結果rの差が比較的に大きくなっている。しかし、その領域は、プロセスのばらつきPchipの値の算出方法(図7)から、消費電力を評価するうえで考慮する必要性が低いのが実情である。このこともあり、その領域における誤差は、消費電力の評価精度に与える影響は事実上、極めて軽微である。
図13A〜図13Eに表す各グラフは、入力端子A2の信号レベルがHとなっている状況下において、入力端子A1に入力される信号が変化する場合のものである。図14A〜図14Eに表す各グラフは、入力端子A1の信号レベルがHとなっている状況下において、入力端子A2に入力される信号が変化する場合のものである。
図13A及び図14Aに表す各グラフは共に、電源電圧Vは1V、ジャンクション温度Tjは65°C、入力遷移時間Tsinは80ps、負荷容量Cloadは0.005pFの条件下において、プロセスのばらつきPchipの値による消費電荷量Qdynの変化を表すグラフである。縦軸は消費電荷量Qdyn、横軸はプロセスのばらつきPchipを表している。図13B及び図14Bに表す各グラフは共に、プロセスのばらつきPchipの値は0、ジャンクション温度Tjは65°C、入力遷移時間Tsinは80ps、負荷容量Cloadは0.005pFの条件下において、電源電圧Vによる消費電荷量Qdynの変化を表すグラフである。縦軸は消費電荷量Qdyn、横軸は電源電圧Vを表している。図13C及び図14Cに表す各グラフは共に、プロセスのばらつきPchipの値は0、電源電圧Vは1V、入力遷移時間Tsinは80ps、負荷容量Cloadは0.005pFの条件下において、ジャンクション温度Tjによる消費電荷量Qdynの変化を表すグラフである。縦軸は消費電荷量Qdyn、横軸はジャンクション温度Tjを表している。図13D及び図14Dに表す各グラフは共に、プロセスのばらつきPchipの値は0、電源電圧Vは1V、ジャンクション温度Tjは65°C、負荷容量Cloadは0.005pFの条件下において、入力遷移時間Tsinによる消費電荷量Qdynの変化を表すグラフである。縦軸は消費電荷量Qdyn、横軸は入力遷移時間Tsinを表している。図13E及び図14Eに表す各グラフは共に、プロセスのばらつきPchipの値は0、電源電圧Vは1V、ジャンクション温度Tjは65°C、入力遷移時間Tsinは80psの条件下において、負荷容量Cloadによる消費電荷量Qdynの変化を表すグラフである。縦軸は消費電荷量Qdyn、横軸は負荷容量Cloadを表している。このようなことから、図13A〜図13E及び図14A〜図14Eにそれぞれ表すグラフ群は、条件変数である入力遷移時間Tsin、及び負荷容量Cloadを考慮したものとなっている。
図13A〜図13E及び図14A〜図14Eから明らかなように、(3)式は異なったPVT条件、及び条件変数の値でも消費電荷量Qdynを高精度に算出することができる。図13A及び図14Aの各グラフでは、(1)式と同様に、プロセスのばらつきPchipの値が小さい領域で、シミュレーション結果sと計算結果rの差が比較的に大きくなっている。しかし、その領域における誤差は、(1)式と同様の理由により、消費電力の評価精度に与える影響は事実上、極めて軽微である。
このようなことから、インスタンスごとの消費電力計算部47は、各インスタンスの設定された論理状態でのリーク電流値Ileak、消費電荷量Qdyn(ダイナミック電流値Idyn)を高精度に算出することができる。インスタンスごとの消費電力計算部47は、リーク電流値Ileak、及び消費電荷量Qdynをそれぞれ算出し、算出したリーク電流値Ileak、及び消費電荷量Qdynを用いて、インスタンス全体の消費電力値を計算する。インスタンス全体の消費電力値がLSIの消費電力計算部48に出力される。インスタンス全体の消費電力値には以降「Pinst」を付して、他の消費電力値と区別する。
LSIの消費電力計算部48は、インスタンスごとの消費電力計算部47から入力するインスタンスごとの消費電力値Pinstを累算することにより、LSI全体の消費電力値49を算出する。上記したように、インスタンスごとのリーク電流値Ileak、消費電荷量Qdyn(ダイナミック電流値Idyn)は高精度に算出することができる。このため、最終的に計算される消費電力値49も高精度なものとなる。
図4に表す条件取得部46、作成条件決定部42、係数ライブラリ作成部44、インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48は、上記のように動作する。図4に表す構成、つまり本実施形態による消費電力計算装置は、コンピュータ(データ処理装置)に本実施形態によるプログラムを実行させることによって実現される。
図19は、本実施形態を適用可能なコンピュータのハードウェア構成の一例を示す図である。ここで図19を参照して、消費電力計算装置として使用可能なコンピュータの構成例について具体的に説明する。
本実施形態によるプログラム(以降「消費電力評価プログラム」)は、例えば本実施形態によるライブラリ作成装置を実現させるサブプログラム(以降「ライブラリ作成プログラム」)、及び本実施形態による消費電力計算装置を実現させるサブプログラム(以降「消費電力計算プログラム」)を備えた構成である。本実施形態によるライブラリ作成装置、及び消費電力計算装置は、対応するサブプログラムをコンピュータに実行させることにより実現される。
図19に構成を表すコンピュータは、CPU71、メモリ72、入力装置73、出力装置74、外部記憶装置75、媒体駆動装置76、及びネットワーク接続装置77を有し、これらがバス79によって互いに接続された構成となっている。図19に示す構成は一例であり、これに限定されるものではない。
CPU71は、当該コンピュータ全体の制御を行う。図19には一つのみ示しているが、CPU71はコンピュータに複数、搭載されていても良い。
メモリ72は、プログラム実行、データ更新等の際に、外部記憶装置75(あるいは可搬型の記録媒体80)に記憶されているプログラムあるいはデータを一時的に格納するRAM等の半導体メモリである。CPU71は、プログラムをメモリ72に読み出して実行することにより、全体の制御を行う。
メモリ72は、プログラム実行、データ更新等の際に、外部記憶装置75(あるいは可搬型の記録媒体80)に記憶されているプログラムあるいはデータを一時的に格納するRAM等の半導体メモリである。CPU71は、プログラムをメモリ72に読み出して実行することにより、全体の制御を行う。
入力装置73は、例えば、キーボード等の作業者が操作する操作装置、及びその操作への操作を検出する検出装置を備えたものか、或いは他のコンピュータである端末装置(例えばコンソール)と接続するためのインターフェースである。前者の場合、入力装置73は、操作装置へのオペレータの操作を検出し、その検出結果をCPU71に通知する。後者の場合、入力装置73は、端末装置を介したオペレータの指示を受信し、その指示内容をCPU71に通知する。ここでは便宜的に、前者を入力装置73として想定する。
出力装置74は、例えば表示装置、及びその表示装置と接続された表示制御装置を備えたものである。図4に表すライブラリ作成条件43a、ライブラリ45a及び消費電力値49は、出力装置74の表示装置上に表示可能である。外部記憶装置75は、例えばフラッシュメモリ、或いはハードディスク装置等の大容量の記憶装置である。主に各種データやプログラムの保存に用いられる。
媒体駆動装置76は、メモリカード等の可搬型の記録媒体80にアクセスするものである。ネットワーク接続装置77は、例えば通信ネットワークを介した不図示の外部装置との通信を可能とさせるものである。シミュレーションの実行、消費電力の計算には、半導体装置(LSI)の設計データ(例えばセル間の接続状態を記述したネットリスト)、各セルの詳細データ(シミュレーション用のデータ)が必要である。これらのデータが外部装置に保存されている場合、それらのデータの取得はこのネットワーク接続装置77を用いて行うことができる。
消費電力評価プログラムは、外部記憶装置75、若しくは記録媒体80に記録されているか、或いは通信ネットワークを介してネットワーク接続装置77により取得される。本実施形態によるライブラリ作成装置、及び消費電力計算装置は、消費電力評価プログラムをメモリ72に読み出してCPU71が実行することにより、実現可能となる。
図19に示す構成では、図4に表す情報取得部41、作成条件決定部42、係数ライブラリ作成部44、インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48は以下の組み合わせにより実現される。ここでは便宜的に、消費電力評価プログラムが外部記憶装置75に格納され、作成したデータは外部記憶装置75に保存されると想定する。また、消費電力の評価の対象となるLSI(半導体装置)のデータ、及びシミュレーションの実行に必要な各セルの詳細データ等の消費電力の評価に必要な他のデータも全て外部記憶装置75に保存されていると想定する。
この想定では、情報取得部41、作成条件決定部42、及びインスタンスごとの消費電力計算部47は共に、例えばCPU71、メモリ72、入力装置73、外部記憶装置75、及びバス79によって実現される。係数ライブラリ作成部44、及びLSIの消費電力計算部48は共に、例えばCPU71、メモリ72、外部記憶装置75、及びバス79によって実現される。第1及び第2の記憶部43及び45は共に、例えば外部記憶装置75である。
ライブラリの作成において、入力装置73は、ライブラリ作成プログラムの起動の他に、評価範囲情報41aの入力、或いは指定に用いられる。また、例えばライブラリを作成すべきLSI(例えばネットリスト)の指定、ライブラリ45aの作成指示等に用いられる。その作成指示により、例えば作成条件決定部42はライブラリ作成条件43aを作成し、係数ライブラリ作成部44は作成されたライブラリ作成条件43aに従ってライブラリ45aを自動的に作成する。このことから、入力装置73は、情報取得部41及び作成条件決定部42を実現させる1構成要素となるが、係数ライブラリ作成部44を実現させる1構成要素とはならない。
消費電力値49の計算において、入力装置73は、消費電力計算プログラムの起動の他に、PVT条件46aの入力あるいは指定に用いられる。また、例えば消費電力値49を計算すべきLSI(例えばネットリスト)、ライブラリ45a及びPVT条件46a等の各種指定、並びに消費電力値49の計算指示等に用いられる。その計算指示により、インスタンスごとの消費電力計算部47は、指定されたPVT条件46aで指定されたライブラリ45aを用いて指定されたLSIの各インスタンスの消費電力値Pinstを算出する。LSIの消費電力計算部48は、例えば各インスタンスの消費電力値Pinstを用いて消費電力値49を自動的に計算する。このことから、入力装置73は、条件取得部46及びインスタンスごとの消費電力計算部47を実現させる1構成要素となるが、LSIの消費電力計算部48を実現させる1構成要素とはならない。計算した消費電力値49の保存先、或いは出力先等が入力装置73への操作により指定可能であれば、入力装置73もLSIの消費電力計算部48を実現させる1構成要素となる。
消費電力評価プログラムは、コンピュータに以下のような処理を実行させることにより、情報取得部41、作成条件決定部42、係数ライブラリ作成部44、インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48を実現させる。次に、図15〜図18に表す各フローチャートを参照して、消費電力評価プログラムによりコンピュータが実行する各処理について具体的に説明する。
図15は、ライブラリ作成条件決定処理のフローチャートである。始めに図15を参照して、ライブラリ作成条件決定処理について詳細に説明する。このライブラリ作成条件決定処理は、ライブラリ作成条件43aを作成するために実行される処理である。図15には、例えばライブラリを作成すべきLSI(例えばネットリスト)の指定等が行われた後のライブラリ45aの作成指示によって実行される部分を表している。作成条件決定部42は、コンピュータ(に搭載されたCPU71)がライブラリ作成条件決定処理を実行することにより実現される。
先ず、ステップS11では、コンピュータは、オペレータの入力装置73への操作に入力、或いは指定された評価範囲情報41aを取得し、ライブラリ作成条件43aを決定するうえで評価対象とするセルを複数、選択する。セルの選択は、セルの他のライブラリ、或いは指定されたLSI(例えばネットリスト)を参照して行われる。次のステップS12では、コンピュータは、条件変数ごとに、取得した評価範囲情報41aが表す値域から刻み幅を決定することにより、各条件変数の値の組を特定する。その後は、ステップS13に移行し、コンピュータは、選択した各セルで消費電流を求めるシミュレーションを実行する。各セルのシミュレーションは、計算式ごと、各条件変数の値の組み合わせごとに実行される。セルの論理状態は複数、考慮しても良いが、1セルに1論理状態のみ考慮しても良い。シミュレーションを全て実行した後はステップS14に移行する。
ステップS14では、コンピュータは、計算式、及びセルごとに、候補条件数のシミュレーションの実行条件を候補としてピックアップする。次のステップS15では、コンピュータは、計算式、及びセルごとに、ピックアップした実行条件の各シミュレーション結果を用いて各係数の値を算出し、算出した各係数の値を代入した計算式とシミュレーション結果との間の誤差を評価する。
誤差の評価後はステップS16に移行し、コンピュータは、予め定めた回数(ピックアップ回数)分、処理を繰り返したか否か判定する。ピックアップ回数分、ステップS14及びS15の処理、つまりピックアップした実行条件のシミュレーション結果を用いた各係数の値の算出、及び誤差の評価を行った場合、S16の判定はYESとなり、ステップS17に移行する。ピックアップ回数分、ステップS14及びS15の処理を行っていない場合、S16の判定はNOとなってステップS14に戻る。それにより、コンピュータは、ステップS14において、計算式、及びセルごとに、候補条件数の異なる実行条件の組み合わせを候補としてピックアップする。この場合のピックアップは、前回ピックアップした全ての実行条件を変更するように行っても良いが、一部の実行条件のみを変更するように行っても良い。このようなことから、2回目以降の実行条件のピックアップに採用する方法も、特に限定されるものではない。
ステップS17では、コンピュータは、計算式、及びセルごとにピックアップ回数分得られた誤差を比較して、最も小さい誤差を特定し、特定した誤差が得られるシミュレーションの実行条件の組み合わせをライブラリ作成条件43aとして決定する。その後、コンピュータはこのライブラリ作成条件決定処理を終了する。
図16は、リーク係数データ登録処理のフローチャートであり、図17は、ダイナミック係数データ登録処理のフローチャートである。リーク係数データ登録処理は、セルごとに、(1)式の各係数の値を表すリーク係数データをライブラリ45aに登録するための処理である。ダイナミック係数データ登録処理は、セルごとに、(3)式の各係数の値を表すダイナミック係数データをライブラリ45aに登録するための処理である。
図16及び図17には共に、1セルの1論理状態分の係数データをライブラリ45aに登録するために実行される処理を抽出して表している。しかし実際には、リーク係数データ登録処理、及びダイナミック係数データ登録処理は、各セルで各論理状態ごとに係数データをライブラリ45aに登録するものとなっている。例えば、これらリーク係数データ登録処理、及びダイナミック係数データ登録処理は共に、同じサブルーチン処理内で実行される。このサブルーチン処理(以降「係数ライブラリ作成処理」)は、例えばライブラリ45aを新たに作成した後、リーク係数データ登録処理、及びダイナミック係数データ登録処理を実行する。それにより、リーク係数データ登録処理、及びダイナミック係数データ登録処理により生成された係数データは、新たに作成されたライブラリ45aに登録される。このようなことから、係数ライブラリ作成部44は、コンピュータが係数ライブラリ作成処理を実行することで実現される。ここでは、始めに図16を参照して、リーク係数データ登録処理について詳細に説明する。
先ず、ステップS21では、コンピュータは現在、対象としているセルの論理状態(入力条件、及び内部状態等)を設定する。続くステップS22では、コンピュータはライブラリ作成条件43aを参照し、シミュレーションの実行条件を設定する。(1)式には、条件変数として、各プロセスのばらつきPchip、Pocv、電源電圧V、及びジャンクション温度Tjが存在する。このことから、ステップS22の実行により、各プロセスのばらつきPchip、Pocv、電源電圧V、及びジャンクション温度Tjの各値がシミュレーションの実行条件として設定される。
ステップS22に続くステップS23では、コンピュータは、設定された実行条件でシミュレーションを実行し、リーク電流を測定する。次に移行するステップS24では、(1)式用にライブラリ作成条件43aに登録された全実行条件でシミュレーションを実行したか否か判定する。他にシミュレーションを実行すべき実行条件が残っていない場合、S24の判定はYESとなり、ステップS25に移行する。他にシミュレーションを実行すべき実行条件が残っている場合、S24の判定はNOとなって上記ステップS22に戻る。
ステップS25では、コンピュータは、シミュレーションの全実行結果、つまり測定した全リーク電流を用いて(1)式の各係数の値を算出し、算出した各係数の値を、対象とするセルの1論理状態の係数データとしてライブラリ45aに登録する。その後、図16に表す部分のリーク係数データ登録処理を終了する。
上記ステップS22を再度実行するコンピュータは、(1)式用にライブラリ作成条件43aに登録された全実行条件のなかから、シミュレーションを実行していない実行条件を選択して設定する。このため、ステップS22〜S24で形成される処理ループをステップS24の判定がYESとなるまで繰り返し実行することにより、1セルの1論理状態のリーク係数データを生成するために実行すべきシミュレーションが全て実行される。
次に、図17を参照して、ダイナミック係数データ登録処理について詳細に説明する。
先ず、ステップS31では、コンピュータは現在、対象としているセルの論理状態(入出力関係、内部状態、及び状況条件等)を設定する。続くステップS32では、コンピュータはライブラリ作成条件43aを参照し、シミュレーションの実行条件を設定する。(3)式には、条件変数として、プロセスのばらつきPchip、電源電圧V、各遷移時間Tsin、及びTsout、並びにジャンクション温度Tjが存在する。(2)式には、条件変数としてスイッチング時間Tswが存在する。このことから、ステップS32の実行により、プロセスのばらつきPchip、電源電圧V、各遷移時間Tsin及びTsout、スイッチング時間Tsw(動作周波数f)、並びにジャンクション温度Tjの各値がシミュレーションの実行条件として設定される。
先ず、ステップS31では、コンピュータは現在、対象としているセルの論理状態(入出力関係、内部状態、及び状況条件等)を設定する。続くステップS32では、コンピュータはライブラリ作成条件43aを参照し、シミュレーションの実行条件を設定する。(3)式には、条件変数として、プロセスのばらつきPchip、電源電圧V、各遷移時間Tsin、及びTsout、並びにジャンクション温度Tjが存在する。(2)式には、条件変数としてスイッチング時間Tswが存在する。このことから、ステップS32の実行により、プロセスのばらつきPchip、電源電圧V、各遷移時間Tsin及びTsout、スイッチング時間Tsw(動作周波数f)、並びにジャンクション温度Tjの各値がシミュレーションの実行条件として設定される。
ステップS32に続くステップS33では、コンピュータは、設定された実行条件でシミュレーションを実行し、1スイッチング時間Tswの平均電流値、レベルを変化させる信号がL或いはHとなっている各状態でのリーク電流値を測定する。次のステップS34では、コンピュータは、ステップS33の測定結果を用いてダイナミック電流値を計算する。ダイナミック電流値の計算は、例えば1スイッチング時間Tswの平均電流値から、レベルを変化させる信号がL或いはHとなっている各状態でのリーク電流値分、及び負荷60への充電分(負荷60に蓄えられる最大の電荷=Cload・V)を引くことで行われる。そのようにしてダイナミック電流値を計算した後はステップS35に移行する。
ステップS35では、コンピュータは、(3)式用にライブラリ作成条件43aに登録された全実行条件でシミュレーションを実行したか否か判定する。他にシミュレーションを実行すべき実行条件が残っていない場合、S35の判定はYESとなり、ステップS36に移行する。他にシミュレーションを実行すべき実行条件が残っている場合、S35の判定はNOとなって上記ステップS32に戻る。
ステップS36では、コンピュータは、シミュレーションの全実行結果を用いて(3)式の各係数の値を算出し、算出した各係数の値を、対象とするセルの1論理状態の係数データとしてライブラリ45aに登録する。その後、図17に表す部分のダイナミック係数データ登録処理を終了する。
上記ステップS32を再度、実行するコンピュータは、(3)式用にライブラリ作成条件43aに登録された全実行条件のなかからシミュレーションを実行していない実行条件を選択して設定する。このため、ステップS32〜S35で形成される処理ループをステップS35の判定がYESとなるまで繰り返し実行することにより、1セルの1論理状態のダイナミック係数データを生成するために実行すべきシミュレーションが全て実行される。
図16及び図17に表す部分の処理は、同一のセルで論理状態ごとに繰り返し実行される。その結果、1セルの係数データが論理状態ごとにライブラリ45aに登録される。各セルで同様の処理が繰り返し実行されることにより、各セルの係数データを論理状態ごとに登録したライブラリ45aの作成が完了する。ライブラリ45aの完了後、係数ライブラリ作成処理が終了する。
図18は、消費電力計算処理のフローチャートである。この消費電力計算処理は、ライブラリ45aを用いてLSIの消費電力値を計算するための処理であり、上記消費電力計算プログラムによって実現される。インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48は、コンピュータが消費電力計算処理を実行することで実現される。
先ず、ステップS41では、コンピュータは、オペレータの入力装置73への操作に従い、各種設定を行う。例えばオペレータは、入力装置73を操作して、消費電力を評価させるLSI(例えばネットリスト)、PVT(プロセスのばらつきPchip、電源電圧V及びジャンクション温度Tj)条件46、動作周波数f、及び消費電力の評価に用いるべきライブラリ45a等を指定する。それにより、各種設定は、これらの指定内容に従って行われる。各種設定を行った後は、ステップS42に移行する。スイッチング時間Tswは動作周波数fの逆数に相当する。
ステップS42では、コンピュータは、例えばネットリストを参照し、インスタンスごとに動作情報を設定する。全てのインスタンスに動作情報を設定した後はステップS43に移行する。
動作情報は、PVT条件46a以外にインスタンスの消費電力の評価に必要な情報である。具体的には、動作率α、入力遷移時間Tsin、出力遷移時間Tsout、及び負荷容量Cloadが含まれる。
動作率αは、対応するインスタンスが動作する割合を表す情報であり、例えば0〜1の間の値である。動作率αは、論理シミュレーションの結果などを用いて、インスタンスごとに設定(算出)しても良いが、LSIのブロックごと、或いは/及び、セルとして採用された回路の種類(組み合わせ回路、順序回路、及びクロック源などによって区別される種類)ごとに設定しても良い。動作率αを設定する対象は、例えば消費電力の評価に要求される精度に応じて選択すれば良い。対象が複数のインスタンスであった場合、平均値等の動作率αを算出し、各インスタンスに割り当てるといった方法を用いることができる。
入力遷移時間Tsin、出力遷移時間Tsout、及び負荷容量Cloadは、例えばタイミング検証のためのSTA(Static Timing Analysis)の結果を用いて設定することができる。この設定は、インスタンスごとに行っても良いが、LSIのブロックごと、或いは/及び、セルとして採用された回路の種類(組み合わせ回路、順序回路、及びクロック源などによって区別される種類)ごとに行っても良い。これらの値を設定する対象も、例えば消費電力の評価に要求される精度に応じて選択すれば良い。対象が複数のインスタンスであった場合、各値として平均値等を算出し、各インスタンスに割り当てるという方法を採用することができる。
ステップS43では、コンピュータは、インスタンスごとに、設定されたPVT条件46a及び動作情報を用いてライブラリ45aを参照することにより、(1)式および(3)式から平均リーク電流値Ileaka、及び消費電荷量Qdynをそれぞれ計算する。次のステップS44では、コンピュータは、インスタンスごとに、計算した平均リーク電流値Ileaka、及び消費電荷量Qdynを用いて消費電力値Pinstを計算する。消費電力値Pinstの計算は、例えば以下の計算式を用いて行われる。
Pinst=(Ileaka+(Qdyn+Cload・V)・f・α)・V ・・・(14)
Pinst=(Ileaka+(Qdyn+Cload・V)・f・α)・V ・・・(14)
(14)式を用いて全インスタンスの消費電力値Pinstを計算した後はステップS45に移行し、コンピュータは、インスタンスごとに得られた消費電力値Pinstを累算することにより、LSI全体の消費電力値49を計算する。計算した消費電力値49を保存、或いは出力した後、この消費電力計算処理が終了する。
このようにして、指定されたLSIの消費電力値49は、ライブラリ45aを用いて計算される。ライブラリ45aは評価範囲情報41aが表すPVT条件の範囲に対応したものである。このため、例えばPVT条件46aのみを異ならせて消費電力値49を計算させる場合には、PVT条件46aの指定を変更すれば、変更後のPVT条件46aでの消費電力値49を迅速、且つ高精度に得ることができる。
本実施形態では、LSIの消費電力値49の計算に用いるライブラリ45aを指定可能とさせている。これは、ライブラリ45aを新たに作成させることなく、異なるPVT条件46aにおけるLSIの消費電力値49を計算できるようにするためである。
<第2実施形態>
LSIに発生する熱量は、消費電力によって変化する。それにより、実際のジャンクション温度Tjは消費電力によって変化する。PVT条件46aによって与えるジャンクション温度Tjは未知の消費電力値49を得るためのものである。このこともあり、PVT条件46aによって与えるジャンクション温度Tjは必ずしも適切であるとは限らない。このようなことから第2の実施形態は、より適切なジャンクション温度Tjを自動的に求め、消費電力値49の計算に反映させるようにしたものである。そのようなジャンクション温度Tjを自動的に求めて消費電力値49の計算に用いることにより、LSIの消費電力はより高精度に評価できる。
LSIに発生する熱量は、消費電力によって変化する。それにより、実際のジャンクション温度Tjは消費電力によって変化する。PVT条件46aによって与えるジャンクション温度Tjは未知の消費電力値49を得るためのものである。このこともあり、PVT条件46aによって与えるジャンクション温度Tjは必ずしも適切であるとは限らない。このようなことから第2の実施形態は、より適切なジャンクション温度Tjを自動的に求め、消費電力値49の計算に反映させるようにしたものである。そのようなジャンクション温度Tjを自動的に求めて消費電力値49の計算に用いることにより、LSIの消費電力はより高精度に評価できる。
消費電力値49の計算に自動的に求めたジャンクション温度Tjを用いることから、第2の実施形態では、消費電力計算装置のみが第1の実施形態から異なる。しかし、消費電力計算装置の構成は基本的に第1の実施形態と同じであり、動作も大部分は同じである。このようなことから、第2の実施形態による消費電力計算装置は、第1の実施形態に付した符号をそのまま用いて、第1の実施形態から異なる部分にのみ着目して行う。
第2の実施形態では、インスタンスごとの消費電力計算部47は、インスタンスごとに消費電力値Pinstを算出した後、算出した消費電力値Pinstを用いてLSI内の温度分布の解析を行う。LSI内の温度分布の解析は、周知の熱解析ツール(プログラム)を用いて行うことができる。この熱解析ツールによるLSI内の温度分布の解析を可能とするために、LSI(パッケージ部分を含む)の詳細構造を表す詳細構造データ、或いは熱解析モデルがインスタンスごとの消費電力計算部47に与えられる。ヒートシンク、或いはファン等により冷却を行うようなLSIでは、冷却条件等のデータもインスタンスごとの消費電力計算部47に与えられる。詳細構造データ、及び熱解析モデルは、LSI全体を表すものでも良いが、LSIの一部を表すものであっても良い。
第2の実施形態では、LSI内の温度分布を解析するために熱解析ツールを用いている。このため、第2の実施形態による消費電力計算プログラムには、熱解析ツールをサブプログラムとして実行させる機能が追加されている。
各インスタンスのジャンクション温度は、消費電力と周囲温度に依存する。LSI内の温度分布は、各インスタンスの周囲温度を与える。消費電力値は計算によって得られる。このため、LSI内の温度分布が特定されることにより、各インスタンスの実際のジャンクション温度Tjを測定(推定)することができる。
インスタンスごとの消費電力計算部47は、今回、消費電力値Pinstの計算に用いたジャンクション温度Tj(指定されたジャンクション温度Tj或いは更新したジャンクション温度Tj。以降「現ジャンクション温度Tj」と表記)が適切か否かの判定を、LSI内の温度分布の解析結果を用いて新たに計算されるジャンクション温度TJ(以降「新ジャンクション温度Tj」と表記)を用いて行う。それにより、現ジャンクション温度Tjが適切であるとの判定は、例えば各インスタンスで直前に得られたジャンクション温度Tj(指定されたジャンクション温度Tj或いは計算によって得られたジャンクション温度Tj)と新ジャンクション温度Tjの間の差が所定の範囲内となっている場合に行う。
インスタンスごとの消費電力計算部47は、新ジャンクション温度Tjが適切と判定すると、各インスタンスで計算した消費電力値PinstをLSIの消費電力計算部48に出力する。それにより、LSIの消費電力計算部48は、LSI全体の消費電力値49を計算する。一方、新ジャンクション温度Tjが適切と判定すると、インスタンスごとの消費電力計算部47は、消費電力値Pinstの計算に用いるジャンクション温度Tjを新たに設定し、再度、各インスタンスの消費電力値Pinstの計算、及びその計算結果を用いたLSI内の温度分布の解析を行う。新たに設定するジャンクション温度Tjとしては、各インスタンスの新ジャンクション温度Tjの平均値、その平均値と現ジャンクション温度Tjの差に応じた値を現ジャンクション温度Tjに加算した値などが考えられる。
このようにして、LSIの消費電力計算部48は、新たに計算されるジャンクション温度Tjが所定の範囲内に収束することを条件に、消費電力値Pinstの計算に用いるのが適切なジャンクション温度Tjを特定する。最終的に、各インスタンスの消費電力値Pinstは特定したジャンクション温度Tjを用いて計算する。そのように適切なジャンクション温度Tjを用いるため、計算されるLSIの消費電力値49も常に高精度なものとなる。
図20は、第2の実施形態における消費電力計算処理のフローチャートである。次に図20を参照して、第2の実施形態における消費電力処理について詳細に説明する。図20には、第1の実施形態と同じ、或いはほぼ同じ処理ステップには第1の実施形態と同じ符号を付している。それにより、第1の実施形態から異なる部分にのみ着目する形で説明を行う。
ステップS51では、コンピュータは、第1の実施形態と同様に、オペレータの操作に従い、各種設定を行う。第2の実施形態では、各種設定として、例えば熱解析ツール用の設定、つまりLSIの詳細構造を表す詳細構造データ、或いは熱解析モデルの設定、冷却条件の設定、などが追加される。PVT条件46aに含まれるジャンクション温度Tjは初期値として設定される。このような各種設定を行った後は、第1の実施形態と同様に、ステップS42〜S44の処理が実行される。ステップS44の処理を終了した後はステップS52に移行する。
ステップS52では、コンピュータは、各インスタンスで計算された消費電力値Pinstを用いて解析ツールを実行し、LSI内の温度分布を計算する。続くステップS53では、コンピュータは、各インスタンスのジャンクション温度Tj(図中「温度計算値」と表記)を計算し、計算したジャンクション温度Tjが収束したか否か判定する。各インスタンスにおいて、新たに計算したジャンクション温度Tjが初期値のジャンクション温度Tj、或いは直前に計算したジャンクション温度Tjと所定の範囲内(例えば±1°C以内)で一致していた場合、判定はYESとなってステップS55に移行する。このステップS55では、コンピュータは、インスタンスごとに計算された消費電力値Pinstを累算して、LSIの消費電力値49を計算する。消費電力値49を計算した後、この消費電力計算処理が終了する。
各インスタンスにおいて、新たに計算したジャンクション温度Tjが初期値のジャンクション温度Tj、或いは直前に計算したジャンクション温度Tjと所定の範囲内で一致していなかった場合、判定はNOとなってステップS54に移行する。このステップS54では、コンピュータは、インスタンスごとの消費電力値Pinstの計算に用いる新たなジャンクション温度Tjを設定する。新たなジャンクション温度Tjは、各インスタンスで計算したジャンクション温度Tjを用いて設定する。新たにジャンクション温度Tjを設定した後は上記ステップ43に戻る。
なお、本実施形態(第1及び第2の実施形態)では、ライブラリ45aの作成、及びLSI(半導体装置)の消費電力値49の計算はそれぞれ別々に行うようにしているが、ライブラリ45aの作成、及びLSIの消費電力値49の計算を連続して行えるようにしても良い。ライブラリ45aは、与えられた1評価範囲情報41aで1つ作成するようにしているが、1評価範囲情報41aが表す範囲の大きさによっては複数のライブラリ45aを作成するようにしても良い。そのように複数のライブラリ45aを作成する場合、ライブラリ45aの作成に要する時間はより長くなるが、消費電力の評価精度はより向上させることができる。
本発明を適用した1システムは、半導体装置の消費電力値を計算する評価条件となりうる範囲を表す範囲情報を取得する情報取得部と、前記半導体装置を構成する基本素子であるセル毎に、前記情報取得部が取得した前記範囲情報が表す範囲内の評価条件で該セルの消費電力値の計算を、想定する変数を用いて行うための計算式を設定する計算式設定部と、前記計算式設定部が設定した計算式を表す計算式情報を前記セル毎に格納したライブラリを作成するライブラリ作成部と、を有する。
本発明を適用した他の1システムは、半導体装置の消費電力値を計算すべき評価条件を取得する条件取得部と、前記半導体装置に搭載された基本素子であるセルの前記条件取得部が取得した前記評価条件での想定する変数を用いた消費電力値の計算を、前記消費電力値の計算に用いるべき計算式を表す計算式情報を前記セル毎に格納したライブラリを用いて行う第1の消費電力計算部と、前記ライブラリを用いて前記セル毎に前記第1の消費電力計算部が計算した消費電力値を用いて、前記半導体装置の前記評価条件での消費電力値を計算する第2の消費電力計算部と、を有する。
本実施形態によるライブラリ作成装置は、評価範囲情報41aを入力し、セルごとに消費電力計算用の消費電力データを登録したライブラリ45aを作成する。ライブラリ作成装置は、評価範囲情報41aを取得する情報取得部41、評価範囲情報41aを参照してライブラリ45aを作成するうえでの条件であるライブラリ作成条件43aを生成する作成条件決定部42、生成されたライブラリ作成情報43aを保存する第1の記憶部43、生成されたライブラリ作成条件43aに従ってライブラリ45aを作成する係数ライブラリ作成部44、及びライブラリ45aを保存する第2の記憶部45を備えた構成である。
Ileak=exp(A+B・V+C/(Tj+273)+D・V/(Tj+273)
+E・Pchip+F・Pocv) ・・・ (1)
Idyn=Qdyn/Tsw ・・・ (2)
Qdyn=Cint・V+(Ksi・Tsin+Kso/Tsout+Ksx・Tsin 2/Tsout)
・[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]
・・・ (3)
ここで、
Ileak :リーク電流値
Idyn :ダイナミック電流値(あるPchip, Pocv, V, T j , Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電流量)
Tsw :セルに入力される信号が変化する1周期分の時間(スイッチング時間)
Qdyn :スイッチング時間Tswに消費される消費電荷量(あるPchip, Pocv, V, T j , Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電荷量)
である。A、B、C、D、E、F、Cint、Ksi、Kso、Ksx、Kc、Kp、Kv、及びKtは全て係数である。
+E・Pchip+F・Pocv) ・・・ (1)
Idyn=Qdyn/Tsw ・・・ (2)
Qdyn=Cint・V+(Ksi・Tsin+Kso/Tsout+Ksx・Tsin 2/Tsout)
・[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]
・・・ (3)
ここで、
Ileak :リーク電流値
Idyn :ダイナミック電流値(あるPchip, Pocv, V, T j , Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電流量)
Tsw :セルに入力される信号が変化する1周期分の時間(スイッチング時間)
Qdyn :スイッチング時間Tswに消費される消費電荷量(あるPchip, Pocv, V, T j , Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電荷量)
である。A、B、C、D、E、F、Cint、Ksi、Kso、Ksx、Kc、Kp、Kv、及びKtは全て係数である。
Claims (9)
- コンピュータに、
半導体装置の消費電力値を計算する評価条件となりうる範囲を表す範囲情報を取得し、
前記半導体装置を構成する基本素子であるセル毎に、前記範囲情報が表す範囲内の評価条件で該セルの消費電力値の計算を行うための計算式を設定し、
該設定した計算式を表す計算式情報を前記セル毎に格納したライブラリを作成する処理を実行させるプログラム。 - 前記範囲情報が範囲を表す評価条件は、前記半導体装置を製造するプロセスのばらつき、前記セルに印加する電圧、及び該セルの温度を表すPVT条件を含む、
ことを特徴とする請求項1記載のプログラム。 - 前記セル毎の計算式の設定は、
前記半導体装置を構成するセルのなかから少なくとも一つの第1のセルを選択し、
前記範囲情報が表す範囲内から、前記第1のセルの消費電流を求めるシミュレーションを行うべき第1のシミュレーション条件群を決定し、
前記第1のシミュレーション条件群で前記第1のセルのシミュレーションを行い、
前記第1のシミュレーション条件群での前記シミュレーションの結果から、前記第1のセルとは異なる第2のセルでシミュレーションを行うべき第2のシミュレーション条件群を決定し、
前記第2のシミュレーション条件群で前記第2のセルの前記消費電流を求めるシミュレーションを少なくとも行い、
前記第1及び第2のシミュレーション条件群のうちの一方のシミュレーションの結果を用いて行う、
ことを特徴とする請求項2記載のプログラム。 - 前記セル毎の数式の設定は、
前記第1及び第2のシミュレーション条件群のうちの一方のシミュレーションの結果を用いて、予め用意した計算式に含まれる各係数の値を決定することにより行う、
ことを特徴とする請求項3記載のプログラム。 - 半導体装置の消費電力値を計算する評価条件となりうる範囲を表す範囲情報を取得する情報取得手段と、
前記半導体装置を構成する基本素子であるセル毎に、前記情報取得手段が取得した前記範囲情報が表す範囲内の評価条件で該セルの消費電力値の計算を行うための計算式を設定する計算式設定手段と、
前記計算式設定手段が設定した計算式を表す計算式情報を前記セル毎に格納したライブラリを作成するライブラリ作成手段と、
を具備することを特徴とするライブラリ作成装置。 - コンピュータに、
半導体装置の消費電力値を計算すべき評価条件を取得し、
前記半導体装置に搭載された基本素子であるセルの前記評価条件での消費電力値の計算を、前記消費電力値の計算に用いるべき計算式を表す計算式情報を前記セル毎に格納したライブラリを用いて行い、
前記ライブラリを用いて前記セル毎に計算した消費電力値を用いて、前記半導体装置の前記評価条件での消費電力値を計算する処理を実行させるプログラム。 - 前記評価条件は、前記セルの温度を含み、
前記セル毎の消費電力値は、前記評価条件が表す前記セルの温度を初期値とし、前記セルの温度として適切な温度を特定して計算する、
ことを特徴とする請求項6記載のプログラム。 - 半導体装置の消費電力値を計算すべき評価条件を取得する条件取得手段と、
前記半導体装置に搭載された基本素子であるセルの前記条件取得手段が取得した前記評価条件での消費電力値の計算を、前記消費電力値の計算に用いるべき計算式を表す計算式情報を前記セル毎に格納したライブラリを用いて行う第1の消費電力計算手段と、
前記ライブラリを用いて前記セル毎に前記第1の消費電力計算手段が計算した消費電力値を用いて、前記半導体装置の前記評価条件での消費電力値を計算する第2の消費電力計算手段と、
を具備することを特徴とする消費電力計算装置。 - 前記半導体装置を構成する基本素子であるセルを少なくとも表す識別情報と、
前記識別情報別に定義された、該識別情報により特定されるセルの消費電力値の計算を行うための計算式を表す計算式情報と、
を備えたことを特徴とするライブラリ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/067803 WO2012046344A1 (ja) | 2010-10-08 | 2010-10-08 | プログラム、ライブラリ作成装置、及び消費電力計算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2012046344A1 true JPWO2012046344A1 (ja) | 2014-02-24 |
Family
ID=45927358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012537541A Pending JPWO2012046344A1 (ja) | 2010-10-08 | 2010-10-08 | プログラム、ライブラリ作成装置、及び消費電力計算装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130238300A1 (ja) |
JP (1) | JPWO2012046344A1 (ja) |
WO (1) | WO2012046344A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9767240B2 (en) * | 2015-11-19 | 2017-09-19 | Globalfoundries Inc. | Temperature-aware integrated circuit design methods and systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08327698A (ja) * | 1995-05-31 | 1996-12-13 | Fujitsu Ltd | 回路シミュレーション方法及びその装置 |
JPH10124539A (ja) * | 1996-10-18 | 1998-05-15 | New Japan Radio Co Ltd | シミュレーション方法、およびライブラリデータベース |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625803A (en) * | 1994-12-14 | 1997-04-29 | Vlsi Technology, Inc. | Slew rate based power usage simulation and method |
JP3351725B2 (ja) * | 1997-01-08 | 2002-12-03 | 株式会社東芝 | パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 |
US7137080B2 (en) * | 2003-08-22 | 2006-11-14 | International Business Machines Corporation | Method for determining and using leakage current sensitivities to optimize the design of an integrated circuit |
WO2007070879A1 (en) * | 2005-12-17 | 2007-06-21 | Gradient Design Automation, Inc. | Simulation of ic temperature distributions using an adaptive 3d grid |
US7793239B2 (en) * | 2006-04-24 | 2010-09-07 | International Business Machines Corporation | Method and system of modeling leakage |
US7937256B2 (en) * | 2006-12-02 | 2011-05-03 | Altos Design Automation, Inc. | Systems and methods of efficient library characterization for integrated circuit cell libraries |
-
2010
- 2010-10-08 JP JP2012537541A patent/JPWO2012046344A1/ja active Pending
- 2010-10-08 WO PCT/JP2010/067803 patent/WO2012046344A1/ja active Application Filing
-
2013
- 2013-04-01 US US13/854,304 patent/US20130238300A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08327698A (ja) * | 1995-05-31 | 1996-12-13 | Fujitsu Ltd | 回路シミュレーション方法及びその装置 |
JPH10124539A (ja) * | 1996-10-18 | 1998-05-15 | New Japan Radio Co Ltd | シミュレーション方法、およびライブラリデータベース |
Also Published As
Publication number | Publication date |
---|---|
US20130238300A1 (en) | 2013-09-12 |
WO2012046344A1 (ja) | 2012-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI796494B (zh) | 高效積體電路模擬及測試 | |
US8645888B2 (en) | Circuit timing analysis incorporating the effects of temperature inversion | |
US7500207B2 (en) | Influence-based circuit design | |
US5751593A (en) | Accurate delay prediction based on multi-model analysis | |
US5790415A (en) | Complementary network reduction for load modeling | |
JP2005004268A (ja) | 半導体集積回路装置の動作解析方法、これに用いられる解析装置およびこれを用いた最適化設計方法 | |
US7295938B2 (en) | Clock jitter calculation device, clock jitter calculation method, and clock jitter calculation program | |
US8255850B2 (en) | Fabricating IC with NBTI path delay within timing constraints | |
US10789406B1 (en) | Characterizing electronic component parameters including on-chip variations and moments | |
JP2008250630A (ja) | デカップリングセル配置方法及びデカップリングセル配置装置 | |
US7475367B2 (en) | Memory power models related to access information and methods thereof | |
Amrouch et al. | Optimizing temperature guardbands | |
JP2009003669A (ja) | 半導体集積回路の電源変動検証装置及び方法並びにそのプログラム | |
US8478576B1 (en) | Including variability in simulation of logic circuits | |
KR100340392B1 (ko) | 집적회로장치의제조방법및집적회로장치에대한논리검사방법 | |
JPWO2006006198A1 (ja) | 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法 | |
Chan et al. | Impact of adaptive voltage scaling on aging-aware signoff | |
US7779376B2 (en) | Operation analysis method of semiconductor integrated circuit | |
WO2012046344A1 (ja) | プログラム、ライブラリ作成装置、及び消費電力計算装置 | |
US10963026B2 (en) | Digital signal transition counters for digital integrated circuits | |
US8452581B2 (en) | Technique using power macromodeling for register transfer level power estimation | |
US7630845B2 (en) | Method for calculating tolerable value for fluctuation in power supply voltage and method of testing | |
CN110991130A (zh) | 一种利用电路仿真检查标准单元时序库的方法 | |
JP5821240B2 (ja) | プログラム、ライブラリ作成装置、及び方法 | |
JP5262435B2 (ja) | 回路設計装置及び回路設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140409 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140805 |