(57)【要約】【課題】回路マクロについての平均リーク電力感度を求める方法およびＩＣ設計プロセスにおいてリーク電力感度を用いてＩＣを最適化する方法を提供すること。【解決手段】集積回路設計は、デバイス・セルからなる回路マクロを有する。これらのセルは、様々なプロセス、環境および電圧パラメータへのリーク電流の依存性を求めることによって特徴づけられる。回路マクロを設計するとき、このデータならびに電力および温度分布についての多次元モデルを用いて、回路マクロのリーク電力を計算する。回路マクロは、タイミングが重要なマクロとタイミングが重要でないマクロとして識別される。統計的な方法を用いて、設計する特定の回路マクロについての平均リーク感度を求める。設計者は、この感度データを用いて、選択された回路マクロを設計し直して、リーク電力を減少させる方法を決定する。【選択図】図１０
2005071360.tif 000002
【特許請求の範囲】
【請求項１】
プロセス、回路および環境設計パラメータを含めて、ＩＣパラメータを有するＩＣ（集積回路）を設計する方法であって、
設計ツールを用いて、前記ＩＣを構成する回路マクロを配置し構成するステップと、
前記各回路マクロごとにリーク電力を求めるステップと、
前記回路マクロについて、前記ＩＣパラメータの変動に対する平均リーク電力感度を求めるステップと、
前記平均リーク電力感度の解析に応答して、前記ＩＣパラメータから第１パラメータを選択するステップと、
１つまたは複数の前記第１パラメータを改変することによって、前記ＩＣの前記回路マクロのうち１つまたは複数の選択された回路マクロについてのリーク電力を減少させるステップとを含む、方法。
【請求項２】
前記回路マクロが、タイミングが重要でない回路マクロとタイミングが重要な回路マクロとに分類され、前記タイミングが重要でない回路マクロが、全体的なＩＣの性能に大きな影響を及ぼすことなく改変された前記ＩＣパラメータを有し得る、請求項１に記載の方法。
【請求項３】
前記回路マクロが、タイミングが重要でない回路マクロとタイミングが重要な回路マクロとに分類され、前記１つまたは複数の選択された回路マクロが、前記タイミングが重要でない回路マクロに相当する、請求項１に記載の方法。
【請求項４】
前記ＩＣについての第１設計電力損失と、前記リーク電力を減少させる前記ステップの後で前記ＩＣについて求めた第２電力損失との差として電力損失マージンを求めるステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記回路マクロが、タイミングが重要でない回路マクロとタイミングが重要な回路マクロとに分類され、前記電力損失マージンを用いて、前記タイミングが重要な回路マクロに対応する前記回路マクロの１つを設計し直して、前記全体的なＩＣの電力を、前記ＩＣについての前記第１設計電力損失にほぼ等しく、またはそれ未満に保ちつつ、前記設計し直した回路マクロの性能を向上させるステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記平均リーク電力感度を求める前記ステップが、
前記回路マクロの各入力ノードごとに発生確率を求めるステップと、
前記回路マクロ中の各セルごとに状態発生確率を計算するステップと、
セル・ライブラリから、前記回路マクロに対するセル入力について、前記ＩＣパラメータの関数として所定のリーク・データおよびリーク感度データを取り出すステップと、
前記取り出すステップからの前記リーク・データ、前記回路マクロの前記各入力ノードごとの前記発生確率および前記回路マクロ中の各セルの前記状態発生確率に応答して、前記回路マクロについての平均リーク電流を計算するステップと、
前記取り出すステップからの前記リーク感度データ、前記回路マクロの前記各入力ノードごとの前記発生確率および前記回路マクロ中の各セルの前記状態発生確率に応答して、各回路マクロごとに、前記各ＩＣパラメータに対応する平均リーク感度を計算するステップと、
前記ＩＣ設計を最適化する際に用いるため、各回路マクロごとに各パラメータごとの平均リーク電流感度データを保存するステップとを含む、請求項１に記載の方法。
【請求項７】
回路解析ツールおよび回路シミュレーション・ツールを用いることによって、前記セル入力について前記ＩＣパラメータに対する前記リーク・データおよび前記リーク感度データをあらかじめ求める、請求項６に記載の方法。
【請求項８】
前記平均リーク電流を計算する前記ステップが、
前記回路マクロの各セルの各ノードの各論理状態ごとのリーク電流に、前記各ノードごとの対応する論理状態発生確率を掛けて、各セルの各ノードごとにノード・リーク電流を生成するステップと、
前記セルの各ノードにわたって前記ノード・リーク電流を合計して、セル・リーク電流を生成するステップと、
各セルにわたって前記セル・リーク電流を合計して、前記平均マクロ・リーク電流を生成するステップとを含む方法を用いる、請求項６に記載の方法。
【請求項９】
前記ＩＣパラメータのパラメータＰに対する前記平均リーク感度を計算する前記ステップが、
前記回路マクロの各セルの各ノードの各論理状態ごとの前記パラメータＰに対するリーク感度に、前記各ノードごとの対応する論理状態発生確率を掛けて、各セルの各ノードごとにノード・リーク感度を生成するステップと、
前記セルの各ノードにわたって前記ノード・リーク感度を合計して、前記パラメータＰに対するセル・リーク感度を生成するステップと、
前記マクロの各セルにわたって前記セル・リーク感度を合計して、前記平均マクロ・リーク感度を生成するステップとを含む方法を用いる、請求項６に記載の方法。
【請求項１０】
前記ＩＣパラメータを改変してマクロ・リーク電流を減少させる影響を評価する設計者の要求に応答して、ＩＣ設計中に前記保存したリーク感度データを出力するステップをさらに含む、請求項６に記載の方法。
【請求項１１】
機械可読媒体に埋め込まれ、プロセッサ用のプログラムを含み、ＩＣパラメータに関する平均マクロ・リーク電力感度を求めるコンピュータ・プログラムであって、前記コンピュータ・プログラムが、
設計ツールを用いて、前記ＩＣを構成する回路マクロを配置し構成するプログラム・ステップと、
前記各回路マクロごとにリーク電力を求めるプログラム・ステップと、
前記回路マクロについて、前記ＩＣパラメータの変動に対する平均リーク電力感度を求めるプログラム・ステップと、
前記平均リーク電力感度の解析に応答して、前記ＩＣパラメータから第１パラメータを選択するプログラム・ステップと、
１つまたは複数の前記第１パラメータを改変することによって、前記ＩＣの前記回路マクロのうち１つまたは複数の選択された回路マクロについてのリーク電力を減少させるプログラム・ステップとを実施する命令を含む、コンピュータ・プログラム。
【請求項１２】
前記回路マクロが、タイミングが重要でない回路マクロとタイミングが重要な回路マクロとに分類され、前記タイミングが重要でない回路マクロが、全体的なＩＣの性能に大きな影響を及ぼすことなく改変された前記ＩＣパラメータを有し得る、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記回路マクロが、タイミングが重要でない回路マクロとタイミングが重要な回路マクロとに分類され、前記１つまたは複数の選択された回路マクロが、前記タイミングが重要でない回路マクロに相当する、請求項１１に記載のコンピュータ・プログラム。
【請求項１４】
前記ＩＣについての所望の設計電力損失と、前記リーク電力を減少させる前記ステップの後で前記ＩＣについて求めた設計電力損失との差として電力損失マージンを求めるステップをさらに含む、請求項１１に記載のコンピュータ・プログラム。
【請求項１５】
前記回路マクロが、タイミングが重要でない回路マクロとタイミングが重要な回路マクロとに分類され、前記電力損失マージンを用いて、前記タイミングが重要な回路マクロに対応する前記回路マクロの１つを設計し直して、前記全体的なＩＣの電力を、前記ＩＣについての前記所望の設計電力損失にほぼ等しく、またはそれ未満に保ちつつ、前記設計し直した回路マクロの性能を向上させるステップをさらに含む、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
前記平均リーク電力感度を求める前記ステップが、
前記回路マクロの各入力ノードごとに発生確率を求めるステップと、
前記回路マクロ中の各セルごとに状態発生確率を計算するステップと、
セル・ライブラリから、前記回路マクロに対するセル入力について、前記ＩＣパラメータの関数として所定のリーク・データおよびリーク感度データを取り出すステップと、
前記取り出すステップからの前記リーク・データ、前記回路マクロの前記各入力ノードごとの前記発生確率および前記回路マクロ中の各セルの前記状態発生確率に応答して、前記回路マクロについての平均リーク電流を計算するステップと、
前記取り出すステップからの前記リーク感度データ、前記回路マクロの前記各入力ノードごとの前記発生確率および前記回路マクロ中の各セルの前記状態発生確率に応答して、各回路マクロごとに、前記各ＩＣパラメータに対応する平均リーク感度を計算するステップと、
前記ＩＣ設計を最適化する際に用いるため、各回路マクロごとに各パラメータごとの平均リーク電流感度データを保存するステップとを含む、請求項１１に記載のコンピュータ・プログラム。
【請求項１７】
回路解析ツールおよび回路シミュレーション・ツールを用いることによって、前記セル入力についての前記ＩＣパラメータに対する前記リーク・データおよび前記リーク感度データをあらかじめ求める、請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記平均リーク電流を計算する前記ステップが、
前記回路マクロの各セルの各ノードの各論理状態ごとのリーク電流に、前記各ノードごとの対応する論理状態発生確率を掛けて、各セルの各ノードごとにノード・リーク電流を生成するステップと、
前記セルの各ノードにわたって前記ノード・リーク電流を合計して、セル・リーク電流を生成するステップと、
各セルにわたって前記セル・リーク電流を合計して、前記平均マクロ・リーク電流を生成するステップとを含む方法を用いる、請求項１６に記載のコンピュータ・プログラム。
【請求項１９】
前記ＩＣパラメータのパラメータＰについて前記平均リーク感度を計算する前記ステップが、
前記回路マクロの各セルの各ノードの各論理状態ごとの前記パラメータＰに対するリーク感度に、前記各ノードごとの対応する論理状態発生確率を掛けて、各セルの各ノードごとにノード・リーク感度を生成するステップと、
前記セルの各ノードにわたって前記ノード・リーク感度を合計して、前記パラメータＰに対するセル・リーク感度を生成するステップと、
前記マクロの各セルにわたって前記セル・リーク感度を合計して、前記平均マクロ・リーク感度を生成するステップとを含む方法を用いる、請求項１６に記載のコンピュータ・プログラム。
【請求項２０】
前記ＩＣパラメータを改変してマクロ・リーク電流を減少させる影響を評価する設計者の要求に応答して、ＩＣ設計中に前記保存したリーク感度データを出力するステップをさらに含む、請求項１６に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、全リーク感度を求め、そのリーク感度を用いてＩＣ（集積回路）の設計を最適化する方法およびアルゴリズムに関する。
【背景技術】
【０００２】
最小フィーチャ・サイズが継続して縮小する状況では、リーク電流が今後のＣＭＯＳ（相補型金属酸化膜シリコン）設計の主要な挑戦課題になることが予想される。それぞれのリーク電流は、現世代のＣＭＯＳ技術では総チップ電力の約１０％を占めるが、次世代技術ではこの数字は５０％に上がることが予想される。リーク電流が増大すると、モバイルおよびハンドヘルド電子機器などのバッテリ駆動デバイスに関する問題が生じるだけでなく、リーク電流が総電力のより大きな割合を占めるようになるにつれ、能動的な対策がますます不可欠になる。
【０００３】
リークを推定し低減するほとんどの技術では、電源電圧を下げることに伴って閾値電圧が低くなるために生じるサブスレッショルド（sub-threshold）・リークに主眼を置いている。ゲート酸化膜の厚さが薄くなると、もはやゲート・リーク電流を無視できなくなる。ゲート・リークは、サブスレッショルド・リークに匹敵する大きさになる傾向がある。総チップ・リークを正確に推定するには、ゲートおよびサブスレッショルドによるリークの両方を検討することが必要である。
【０００４】
総チップ・リークを推定する方法が、いくつかの刊行物で報告されている。１つの刊行物の著者は、線形回帰モデル（linear regression model）を用いて、ＡＳＩＣ（特定用途向け集積回路）環境でのゲート数に基づいて総チップ・リークを推定している。別の刊行物では、ダイ・プロセスの変動幅の影響を含める方法が提案されている。リーク電流は、チャネル温度、Ｖｄｄ（電源電圧）および負荷などの環境ファクタに大きく依存することがわかっている。リーク電力（leakagepower）は温度にほぼ線形に依存する。例えば、温度が３０℃変化すると、リークに３０％の影響を及ぼすことになる。しかし、リーク電力はＶｄｄにより大きく指数的に依存し、そのため、Ｖｄｄが２０％変動すると、リーク電力に２倍よりも大きな影響を及ぼすことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
チップ設計者は、リーク電力を推定するのに実験的な方法を用いてきた。実験的な方法では、チップ全体にわたって温度およびＶｄｄの分布が均一であると仮定する。しかし、現在の複雑な工業用設計では、温度およびＶｄｄの変動はともに強い局所性を有する。すなわち、それらはチップ全体にわたって均一ではない。ある位置におけるこれらの変動の厳密な量は、トランジスタおよびデカップリング・コンデンサ（decoupling capacitor）の分布、負荷ならびに電力グリッドおよびパッケージ設計の質によって決まる。リークは、回路トポロジー（circuittopology）およびプロセス・パラメータにも依存する。総チップ・リークの推定では、実験的な方法は簡易的すぎて不正確である。
【０００６】
コンピュータその他のデータ処理機能を実施するのに用いられる最新のＩＣは、通常、回路マクロ（circuit macro）を有し、その性能によりそのＩＣの処理能力が決まる。これらのタイミングが重要な（timing-critical）回路マクロは、そのＩＣの機能に関して全回路の２０％しか占めないことがある。残りの８０％の（タイミングが重要でない（timing-noncritical））回路は、タイミングまたはスピードにそれほど依存しない。しかし、リーク電力は、主にノードの論理状態、ＩＣの電源電圧、温度およびプロセス変数によって決まる。したがって、タイミングが重要でない回路では、必要以上に大きなリーク電力の損失が生じる（dissipate）ことがある。タイミングが重要でない回路のリーク電力を少なくすることができれば、過剰な電力マージン（powermargin）を用いて、全体的なチップ電力を所望の制限内に保ちつつ、タイミングが重要である回路の性能を向上させことができる。こうするには、設計プロセス中にリーク電力を検討する必要がある。さらに、チップ設計者は、リーク電力を小さくするのに最も効果的な設計上のトレードオフを行うことができるように、リーク電力が、プロセス、フィーチャ・サイズおよび環境ファクタに応じてどのように変化するかを知る必要がある。
【０００７】
したがって、回路状態に無関係な、回路マクロについての平均リーク電力感度を求める方法およびＩＣ設計プロセスにおいてリーク電力感度を用いてＩＣを最適化する方法が求められている。
【課題を解決するための手段】
【０００８】
ＩＣ（集積回路）の設計プロセス中に、ＩＣ設計者は、ＩＣの全回路を回路マクロに分割することがある。すなわち、タイミングが重要な回路とタイミングが重要でない回路を、定義可能な回路マクロに分ける。このＩＣのリーク電力および動的電力（dynamic power）を決め、次いで、これらのリーク電力および動的電力を用いて、ＩＣ全体にわたり、回路マクロに対応する温度分布を決めることができる。その後、ＩＣの総電力損失および温度を解析して、電力バジェット（powerbudget）の調整が有利かどうかを決めることができる。プロセス、環境および回路トポロジー・パラメータへのリークの依存性は、回路解析およびシミュレーション・ツールによってあらかじめ求められる。回路マクロが設計されると、状態確率（stateprobability）解析が行われて、回路マクロについての平均リークが決まる。この時点で、平均リークは回路状態に無関係であり、特定のマクロ・デバイス・トポロジー、プロセスおよび環境パラメータだけの関数である。様々なパラメータへのリークの依存性は周知なので、１次以降の導関数を含めてリーク感度を計算することができる。ＩＣ設計者は、回路マクロについてのリーク感度を用いてこれらの回路マクロを改変して、リーク電力を減少させるのに最も効果的であり、他の回路機能要件を満足するパラメータを選択することによってチップ設計を最適化する。選択された回路マクロについてリーク電力を減少させた後で、全体的な電力損失バジェット内に留めながら、過剰な電力バジェットを用いて他の回路マクロの性能を向上させることができる。
【０００９】
上記説明では、以下の本発明の詳細な説明をよりよく理解することができるように、本発明の特徴および技術的な利点をやや広く概説した。以下に、本発明の特許請求の範囲の主題を形成する本発明の追加の特徴および利点を説明する。
【００１０】
本発明およびその利点をより完全に理解するために、添付の図面と併せて以下の説明を参照されたい。
【発明を実施するための最良の形態】
【００１１】
以下の説明では、本発明を十分に理解するために多くの特定の細部を述べる。ただし、このような特定の細部を用いずに本発明を実施できることが当業者には明らかであろう。他の例では、不必要な細部で本発明を不明瞭にしないために、ブロック図形式で周知の回路を示すことがある。ほとんどの場合、タイミング、通信プロトコルのデータ・フォーマットなどに関する細部は、このような細部が本発明を完全に理解するのに不必要であり、かつ関連技術分野の当業者の技術範囲内である限り割愛してある。
【００１２】
次に、図面を参照するが、図に示す要素は必ずしも原寸で示されておらず、いくつかの図を通じて同様のまたは類似の要素は、同じ参照番号によって示す。
【００１３】
リーク電力は、高性能集積回路の設計において、新たな、かつ極めて重要な挑戦課題として取り上げられつつある。多くの研究報告で、リークが各技術世代で飛躍的に増加しており、総システム電力の大きな割合を占めることになると予想されることが示されている。本発明の実施形態は、静的な、すなわち入力に無関係な手法を用いて、組合せ論理回路のリークを効率的かつ正確に推定する方法を提供する。確率的な技法を用い、可能なあらゆる入力パターンを考慮して、組合せ回路の平均リークを計算する。さらに、大型の組合せ回路についてのリークの入力依存性は平均化効果のためにかなり小さく、そのため静的な推定がさらに可能になる。本発明の実施形態により、ＩＳＣＡＳベンチマーク回路などの回路ベンチマークに関して、平均誤差がたかだか２％にすぎないという正確な結果が得られる。本発明を用いて、リーク電力成分を別々に、すなわち、その回路のサブスレッショルド・リーク成分およびゲート・リーク成分を予測することができる。さらに、ここで開示する方法を用いて、環境およびプロセス変数に対する回路のリーク感度も予測することができる。予測された感度の用途として、回路のリークについての簡単で効率的かつコンパクトなモデルを構築する際に用いることができる。このリーク感度は、性能の最適化、製造歩留まりの改善および製品の品質向上を含めて、広範な用途に用いることもできる。
【００１４】
リークの推定に関する初期の研究は、サブスレッショルド・リークおよび回路状態（または入力パターン）へのリークの依存性に主眼を置いていた。典型的には、ＣＭＯＳ回路が、解析的な式を用いてリークが計算されるトランジスタ・スタックによって、マクロ的にモデル化された。簡単で解析的な式が、トランジスタ・スタックのリーク電流について得られる。統計的な手法を用いて、リークが少ないパターンを見つけ出すこともできるが、分岐限定（branch-and bound）および発見的アルゴリズムをともに用いてリーク電力範囲を見つけることもできる。また、自動テスト・パターン生成に基づく手法を用いて、リーク電力範囲およびそれに関連する入力パターンを見つけることができる。フルチップの総リーク電力の推定では、ゲートおよびトランジスタ数に基づく回帰モデルを用いることもできる。しかし、一般に、単純な回帰モデルの精度を制御するのは難しい。さらに、単純な回帰モデルでは、回路トポロジーへのリークの依存性を無視する。より正確な手法では、有効スタック近似（effectivestacking approximation）を行った後で、総リーク電力を推定する。各セルごとの有効スタック推定値は、それらの使用回数によって重みづけされる。しかし、このモデルでは回路の機能は考慮されない。さらに、トランジスタ・スタックによって各セルをマクロ的にモデル化すると、望ましくない誤差が生じることがある。
【００１５】
リークは、正確な入力依存性解析か、あるいは、それよりは正確さに欠けるが、全トランジスタ幅またはゲート数に基づくハイレベル・モデルによって予測することができる。入力依存性に関して検討を行うと、多くの点で、適用する解析方法の精度と効率の間には明らかなトレードオフがあることが示される。新しい集積技術の出現により、適切な設計および最適化を行うために、効率的かつ正確にリーク電力を推定することが求められている。本発明の実施形態では、強力で静的な、すなわち入力に無関係な解析技法を用いてリークを推定し、それによって、所望の精度および効率が得られる。しかし、特殊な回路トポロジーを評価する際には、依然として動的な（入力に依存する）技法を用いてリークを少なくすることがあるが、最も一般的な組合せ回路では、静的な方法を適用できる可能性が高い。本発明の実施形態では、粗い推定方法が用いられるときには得られない回路トポロジーおよびデバイスの接続性が正確に明らかになる。
【００１６】
本発明の実施形態では、環境およびプロセス・パラメータに対するリーク感度が推定され、設計の最適化および計画においてリーク感度が用いられる。指定したパラメータに対するリーク感度は、静的なリーク推定値とともに計算することができる。さらに、本発明の実施形態では、リーク感度情報を利用して、リークのパラメータ依存性をモデル化する。本発明の実施形態は、組合せ論理回路に適用可能である。メモリおよびクロック・システム素子（キャッシュ、レジスタおよびラッチ）を含めて、ＩＣの他の回路機能を直接モデル化することができる。というのは、それらは、構造がより規則正しく、極めて高頻度で再使用され、かつあらかじめ特徴づけを行うのがより簡単だからである。
【００１７】
リーク電流は、入力刺激、デバイス特性（閾値電圧、ゲート酸化膜の厚さ、チャネル長）および動作条件（ＶＤＤおよび温度）など、多くの主要な回路変数によって決まる。主要なプロセス技術によって実施される基本論理ゲートについてのリークの入力依存性を最初に説明する。
【００１８】
図１に、あらゆる可能な入力論理状態パターン１０２に関して、（図示しない）３入力ＮＡＮＤゲートについての総リーク電流を示す。図１から、リーク電流１０１が入力に大きく依存することが明らかである。パターン１０３（１１１）では、パターン１０４（０００）よりも１０倍大きいリークが生じる。しかし、組合せ回路のサイズが大きくなると、この入力依存性は弱くなる。これは、主に、回路中でリーク状態の高低を相殺する平均化効果のためである。例として、図２に、（図示しない）ＩＳＣＡＳベンチマーク回路ｃ４３２に関して、多数のランダム入力ベクトル２０２に対する総リーク２０１を示す。回路ｃ４３２は、あらかじめ指定した遅延目標を満足する典型的なゲート・ライブラリによって合成される。他の回路についての総リークの入力依存性を図３の表１にまとめる。各ベンチマーク回路３０１ごとに、１００００個のランダム入力パターンによるリーク電流の両極端の統計値（Ｉｍａｘ３０４およびＩｍｉｎ３０５）および変動係数（ｃｖ．）３０６（標準偏差／平均値）が報告されている。表１は、総リークが、セル３０２を備える回路３０１に印加される入力（３０３）に応じて約１５％変化すること（３０４および３０５）を示している。より大型のサイズの回路でも、類似の傾向が見られる。
【００１９】
リークは入力ベクトルに大きく依存することがあるが、入力ベクトルは、環境変数（電源電圧、温度）およびプロセス変動（有効チャネル長、閾値電圧、酸化膜の厚さなど）の影響ほどは重大ではない。このことを確認するために、図４に、リークへのプロセス変動の影響をまとめる。図４には、異なるプロセス条件４０５に応じてどのようにリーク電流４０１が変化するかを示す。正規化されたプロセス・パラメータを用いて、「速い」側と「遅い」側（"fast" and "slow" corners）の間でプロセス条件をモデル化する。公称プロセス条件４０５を０．５で示す。すなわち、公称プロセス条件とは、有効チャネル長、閾値電圧、酸化膜の厚さについての公称値である。また、各プロセス点において入力ベクトルのために生じるリークの変動を、多数の入力サンプルについて得られた最大リーク４０３、平均リーク４０２および最小リーク４０４で示す。
【００２０】
図５に、（図示しない）ベンチマーク回路ｃ４３２に関して、リーク電流５０１に対する温度変動の影響を示す。図５には、リーク電流５０１において、入力変動に応じた変化よりもプロセス・パラメータに応じた変化の方がはるかに大きくなることを示す。同様に、図５に、回路ｃ４３２についてリークの温度依存性を示す。各温度において、異なる入力ベクトルについてのリーク電流の最大値５０４、平均値（中心値）５０３および最小値５０５もプロットする。プロセス変動パラメータと同様に、リークは、入力ベクトルによる変化に比べて、温度によりはるかに大きく変化する。同様の傾向が、リーク電流のＶｄｄ（電源電圧）への依存性（図示せず）に関しても見られる。
【００２１】
入力に対する依存性は依然として重大であり、場合によっては、例えばスタンバイ・モードでは対処する必要があるが、効果的なリーク推定法においては、プロセス・パラメータ、温度およびＶｄｄへのリークの依存性がより重大である。したがって、可能な入力条件下で、平均リーク電力を予測する静的な（入力に無関係な）方法を開発することが望ましい。入力に対する変動性を除外することによって、より容易に、かつより効率的に温度、電源およびプロセス変動の影響を明らかにすることができる。この静的な手法では、あらゆる可能な入力パターンについて平均リーク電力を正確に検討して、かなり長い動作時間にわたってリークの全体的な評価を実現する。
【００２２】
一般に、組合せ論理回路は、ゲート、チャネル接続領域その他の基本構造の形態で、より小さなセルに分割される。セルの境界におけるノード変数は、完全論理値（full logic values）（１または０）を保持すると仮定する。基本的に、総リーク電力損失は、各セルで生じるリーク損失の合計である。各セルごとのリーク電力があらゆる回路入力状態についてあらかじめ特徴づけられると仮定する。これは、ライブラリ生成中に、正確な回路シミュレーションによって行うことができる。入力ベクトルに対するセルｉのリーク電力をＬｉ（ｘｉ）と示すと、所与の入力ベクトルに対する総リーク電力は次のようになる。
【００２３】
【数１】
2005071360.tif 000003
【００２４】
回路の現在の状態、すなわち各セルごとの入力は、その回路で実施される接続性および機能によって決まることになることに留意されたい。
【００２５】
スイッチング電力（switching power）の推定には確率的な手法が用いられてきたが、これらの手法では、スイッチング電力の時間的な（すなわち遅延）依存性はモデル化されない。ただし、リークは遅延には無関係であり、したがってリークには確率的な手法がより適切である。
【００２６】
ノード発生確率（node occurrence probability）は、以下のように定義される。ノードｎは、完全論理状態値（Ｖｄｄまたは接地）での特定のセルの主入力または出力と仮定する。ｎのノード発生確率は、ノードｎが論理値１になる確度と定義することができ、ＰＮ（ノードｎが論理１状態を有する確率）と記述し得る。したがって、ノードｎが論理０状態になる確率は、１−ＰＮとなろう。
【００２７】
状態発生確率（state occurrence probability）は、以下のように定義される。状態発生確率Πｉ（ｘ）は、セルが、入力ｘによって一義的に与えられる論理状態となる確率と定義し得る。状態発生確率は、セルｉの入力ノードの結合確率（jointprobability）と称することができる。セル入力がそれぞれ独立している場合、Πｉ（ｘ）の計算は、単に関連するノード発生確率の乗算である。２入力ＮＡＮＤゲート６０１についての一例を図６に示す。これらの入力についての入力発生確率をＰ１およびＰ２と仮定すると、出力確率は式６０２によって示される。ＮＡＮＤゲート６０１に印加される論理状態６０３は、それに対応するゲート・リーク電流６０４およびサブスレッショルド・リーク電流６０５を有する。このサブスレッショルド・リークは、例えば、論理ゲートの電界効果トランジスタのドレインとソースの間で、そのゲートがそのスイッチング閾値未満のときに生じるリークである。各入力パターンごとの総リーク電流６０６は、対応するゲート・リーク６０４とサブスレッショルド・リーク６０５の合計である。各入力パターンごとにリークは異なるので、平均リークは、個々のパターンの状態発生確率６０７およびそれに対応するリーク（６０４および６０５）によって決まる。
【００２８】
平均リーク電力は、以下のように定義される。総リーク電力（μＬｔｏｔ）の真の確率的な平均値は、各状態におけるリークをすべてのセルについて重み付けして合計したものである。重みは、単に状態発生確率である。
【００２９】
【数２】
2005071360.tif 000004
【００３０】
リーク電流は、シミュレーションおよび解析プログラム（programming）によって事前に特徴づけられ、それは、例えばセル・ライブラリに記憶される。したがって、Ｌｉ（ｘｉ）の値の組は、各セルごとにセル・ライブラリから利用可能である。このため、上式（２）の厳密な計算には、各セルおよび状態ごとに真の状態発生確率Πｉ（ｘｉ）が必要である。ただし、組合せ回路に関するΠｉ（ｘｉ）ｎの厳密な計算は難しい問題であることが示されている。
【００３１】
回路および入力の情報を用いて状態発生確率を予測する実用的な手法は、それを簡単かつ効率的にするために、回路内の空間依存性、例えば、ゲートがどこに配置されているかを無視することである。空間依存性は、平均リークの推定に大きく寄与しないという結果が示されている。というのは、推定値がすでに極めて正確であるからである。さらに、この手法では、入力確率が指定されているときには、それを利用することができる。
【００３２】
入力ベクトルｘ＝ｘ１ｘ２．．．ｘｎおよび出力ノードＮ０を伴う回路セルＣを考える。空間的独立性を仮定すると、出力ノードＮ０についてのノード発生確率は、次のように定義される。
【００３３】
【数３】
2005071360.tif 000005
【００３４】
ただし、Ｏ（ｘ）は論理関数を示し、ｍ（ｏ）は、入力ｘｉについてのＯ（ｘ）に関する論理関数中の小項（mini-terms）の組である。空間的独立性を仮定すると、回路セルＣについての状態発生確率は、その回路セルのすべての入力のノード発生確率の乗算になる。
【００３５】
【数４】
2005071360.tif 000006
【００３６】
さらに、状態発生確率が計算されると、それらを別々に用いて、リーク成分、すなわちゲート・リーク電流およびサブスレッショルド・リーク電流を含む計算を行うことができる。これらの値は、図６に示す方法を用いてあらかじめ特徴づけを行う際に計算される。
【００３７】
空間的独立性の仮定の下でのΠｉ（ｘｉ）の推定値に基づいて、ＳＰ法（静的な確率論的方法）により、平均リーク電力が次のように推定される。
【００３８】
【数５】
2005071360.tif 000007
【００３９】
空間的独立性を仮定すると、線形時間内でこの回路をレベル順序（論理段数（logicdepth））で詳しく検討することによって、ノードおよび状態の発生確率を同時に計算することができることが保証される。このため、その実行時の複雑さは、回路段数およびセル入力数に応じて大きくなる。スイッチング確率と比較すると、ここで説明した手法により、フィードバックによって回路を容易に明らかにすることができる。ただし、再度収束するファンアウトまたは既存の主入力の相関関係の影響は、空間的独立性の仮定によって無視し得る。
【００４０】
本発明の実施形態によるＳＰ法を用いて、組合せ回路のリーク電力変動を推定することもできる。空間的独立性を仮定すると、総リークの偏差σ２Ｌｔｏｔは、各セルのリーク電流の偏差の合計になる。各セルのリーク電流の偏差は、その特定のセルの発生確率の状態によって表される。その結果、総リークの偏差の推定値は次のようになる。
【００４１】
【数６】
2005071360.tif 000008
【００４２】
この偏差の推定値により、入力変動のために生じるリーク電流の変動性の大きさが推定され、入力依存性を示すものとして用いることができる。これを、かなり大きな入力依存性を示す特定の回路の動的な推定のトリガとして用いることができる。
【００４３】
本発明のＳＰ法により、デバイス数またはゲート数に基づく簡単な方法に比べて、リーク電力の推定精度が向上する。というのは、この方法では、トポロジーおよび接続性を含めて、回路に関するより多くの情報を利用するからである。それ以上の精度が望まれる場合には、高度な方法を用いて、空間的な相関関係を明らかにすることもできるが、こうすると、実行時の全体的な複雑さがかなり増すことがある。
【００４４】
下記に、本発明の実施形態を用いて得られたＩＳＣＡＳベンチマーク回路モデルの実験結果の一部を示す。この組合せＩＳＣＡＳ回路は、遅延制約を伴う基本ゲートのライブラリを利用して合成されたものである。プロセス技術は、最新のものを用いる。公称条件下で回路シミュレータ（例えばＳＰＩＣＥ）によって、所与の入力ベクトルについての各回路の総リークを推定する。各回路ごとに、１００００個のランダムに生成された入力ベクトルからなるサンプルについての総リーク電流を求めた。主入力はそれぞれ、０．５のバイナリ・ノード発生確率を有すると仮定する。平均リークは、単に算術平均をとることによって計算される。正確な推定を行うのに、１００００個のサンプルで十分であることがわかった。
【００４５】
小さなＣプログラムを用いて、ＳＰ法による平均リーク推定値を計算した。図７の表２に、ＳＰ法によって得られた結果を示す。実際の平均リーク電流７０２とＳＰによる推定値７０３が極めて良好に一致することに留意されたい。平均相対誤差７０４は、たかだか約２％にすぎない。７０１に示す各回路では、本発明の実施形態を用いるＳＰ法による推定値７０３により、単一入力ベクトルについてさえ、回路シミュレーションを実行することによって得られるであろう速さよりも何桁も速く結果が求められる。図７は、本発明の実施形態による静的なリーク推定方法を用いた計算上の利点を示している。
【００４６】
デジタル回路では通常、サイズおよび論理段数が、空間依存性の有意性に大きな影響を及ぼす。一般に、論理段数がより少ない回路では、より有意な空間依存性が予想されよう。空間依存性の概念は定量化しテストすることが難しいので、様々なサイズおよび論理段数の回路についてＳＰ法のロバスト性に関する簡単な解析を実施することがある。この解析を行うことによって、様々なレベルの空間相関関係でＳＰ法による推定値の振る舞いを観察することができる。元々５０個の論理段数レベルで実施する回路ｃ５３１５を例として用いた。主入力と指定した論理段数の間でセルを抽出することによって、様々な論理段数で多くの副回路を抽出することができる。これらの回路は、それらが同じ入力を共有するにも関わらず異なる空間依存性を有することがある。図８は、ＳＰ法のパーセント変動８０１が、異なる論理段数レベル８０２によるものであることを示している。したがって、独立性の仮定はかなりの利点になる。
【００４７】
以下に、あらかじめ指定された主入力確率を扱う際のＳＰ法の重要な特徴を示す。例として、（図示しない）ベンチマーク回路ｃ１９０８の最初の４つの入力に関するノード発生確率は、０．１〜０．９まで０．１きざみで変化する。他のすべての入力は、設定された発生確率０．５を有する。これらの発生確率で１０，０００個のランダム入力サンプルを生成し、リーク電流９０１をプロットして、回路シミュレータおよび本発明の実施形態によるＳＰ法を用いて求めた。平均リーク９０１は、回路シミュレーションを用いて計算した。図９の結果は、ＳＰ法によるリーク電流９０３とシミュレーション結果９０２が良好に一致することを示している。相対誤差は良好に範囲内に収まっており、各データ点において５％未満である。回路（またはマクロ）の発生確率が、よりハイレベルの解析およびシミュレーション・ツール、おそらくは挙動レベルまたはアーキテクチャ・レベルの解析から得られるときには、それらに特有に入力確率を扱うと、より有用になり得る。
【００４８】
前のセクションでは、リークが、プロセスおよび環境の主要パラメータに強く依存することが示された。したがって、綿密な解析のフレームワークでは、このような主要パラメータへの依存性を考慮に入れるべきである。そうすると、設計者は、通常の動作条件、好ましい動作条件および不利な動作条件で、リーク性能をより高い信頼性で評価することができる。
【００４９】
プロセスまたは環境の特定パラメータ（ｐ）へのリークの依存性を評価する１つの手法は、様々なｐで平均リークを推定することである。このためには、すべてのｐについて設計コンポーネント（ゲート）をあらかじめ特徴づけ、異なるテーブルを用いてリークの推定値を計算する必要がある。パラメータ依存性をモデル化するより実用的な代替方法では、ｐに対する平均リーク感度を推定する。
【００５０】
本発明の実施形態では、各入力における各セルごとのリークの感度、すなわち、あらかじめ求められ、かつあらかじめ特徴づけられたライブラリ内で利用可能なｄ（Ｌｉ（ｘｉ））ｄｐの値の組を用いる。これは、ライブラリをあらかじめ特徴づけるステップ中に単純明快なやり方で行うことができる。さらに、個々のｐの変動は回路の論理状態を変化させないと仮定する。この仮定は、プロセス／環境条件に対して論理機能の堅固さを仮定しているために、かなり妥当なものである。こうすると、状態発生確率がｐに無関係であることを示すことになる。これは極めて重要な結果である。というのは、ｐに対する平均リーク感度についての推定値が、以下のように式（５）の公称推定値と同じ方式で記述することができるからである。
【００５１】
【数７】
2005071360.tif 000009
【００５２】
同様に、高次の感度も次のように類似の形式になる。
【００５３】
【数８】
2005071360.tif 000010
【００５４】
プロセスおよび環境パラメータに対する回路のリーク感度を決定することは、現実的な設計上の決定および最適化を行う上で不可欠である。電力に留意する方法（power-aware methodology）では、制御可能な設計パラメータ、例えば閾値電圧または酸化膜の厚さに対する感度は、総電力損失を最小限に抑えるための鍵である。
【００５５】
図１０は、本発明の実施形態による方法ステップを示すブロック図である。ブロック１００１で、回路マクロ中のセルを定義する回路設計データを読み込み、ネット・リスト（net list）を用いて相互接続ネットを構築する。ブロック１００２で、回路マクロへの各境界入力ごとに、発生確率を求める。回路マクロの入力数は制限されていることがあるが、多数の入力ノードを伴う多数の論理段数レベルを有し得る。ブロック１００３で、回路マクロ中のセルについて論理状態発生確率を計算する。これは、図６に示す方法を用いて行う。ブロック１００４で、セル・ライブラリから、プロセスおよび環境パラメータに関するリークおよびリーク感度データを取り出す。このデータは、回路シミュレーションおよび解析プログラムを用いてあらかじめ求めたものである。このデータおよびブロック１００３からの結果により、ブロック１００９の式１００６を用いて平均リークを求める。同様に、式１００７を用いて、パラメータ「ｐ」の例に対する平均リーク感度１００７を求める。必要な場合には式１００８を用いて、高次のリーク感度を計算することができる。
【００５６】
図１１は、本発明の実施形態で用いる方法ステップの流れ図である。ステップ１１０１で、設計ツール・データから、選択された回路マクロを構成する回路ゲートおよびネット・リストを抽出する。ステップ１１０２で、この回路マクロへの入力についての発生確率を求める。これは、回路シミュレーション・ソフトウエアから得ることができる。ステップ１１０３で、図６に示す方法を用いて、各ゲートごとに論理状態発生確率を求める。ステップ１１０４で、セル・ライブラリから、これらのセルについてのリークおよびリーク感度を取り出す。このデータは、回路のシミュレーションおよび解析を用いてあらかじめ求めたものである。ステップ１１０５で、リーク・データに状態発生確率を掛け、すべてのセルおよびすべての入力にわたって合計する本発明の実施形態を用いて、選択された回路マクロについての平均リーク電流を計算する。ステップ１１０６で、選択された回路マクロについての各パラメータごとに、リーク感度データに状態発生確率を掛け、すべてのセルおよびすべての入力にわたって合計する本発明の実施形態を用いて、平均リーク感度を計算する。ステップ１１０７で、プロセス・パラメータについてのリーク電流およびリーク感度データを記憶して、ＩＣ設計を最適化するのに用いる。
【００５７】
図１２は、本発明の実施形態で用いる、ＩＣの設計を最適化する方法ステップの流れ図である。ステップ１２０１で、配置およびシミュレーション・ツールを用いてＩＣの機能設計を行う。ステップ１２０２で、このＩＣを、タイミングが重要な回路マクロとタイミングが重要でない回路マクロに分割する。ステップ１２０３で、温度および回路マクロの電源電圧を考慮する反復技法を用いて、このＩＣについてのリークおよび動的電力を計算する。ステップ１２０４で、この結果が、最適化によって全体的なＩＣの性能または電力が改善し得ることを示すかどうかを決定する。最適化に進む決定がなされた場合、ステップ１２０７で、図１１のステップ１１０７からの平均リーク感度データ記憶値を用いて、リーク電流を減少させる際にどのパラメータにより最適な結果が得られるかを決定する。ステップ１２０８で、得られた電力マージンを用いてタイミングが重要な回路を改善することによってＩＣの性能を向上させることに、得られた電力マージンを用いるかどうかを決定する。ステップ１２０８におけるテスト結果がＮＯの場合、設計プロセスを終了して、得られた電力マージンを用いてＩＣの効率を改善する。ステップ１２０８におけるテスト結果がＹＥＳの場合、得られた電力マージンを用いてタイミングが重要な回路を設計し直すことができる設計プロセスに戻る。
【００５８】
図１３に、本発明を実施するための代表的なハードウエア環境を示す。図には、システム・バス１３１２を介して相互接続されたＣＰＵ（中央処理装置）１３１０および他の複数のユニットを有する本発明によるワークステーションの典型的なハードウエア構成を示す。図１３に示すワークステーションは、ＲＡＭ（ランダム・アクセス・メモリ）１３１４、ＲＯＭ（読み出し専用メモリ）１３１６、ならびにディスク・ユニット１３２０およびテープ・ドライブ１３４０などの周辺装置をバス１３１２に接続するＩ／Ｏ（入出力）アダプタ１３１８、キーボード１３２４、マウス１３２６、スピーカ１３２８、マイクロホン１３３２、または（図示しない）タッチ・スクリーン装置などの他のユーザ・インターフェース装置、あるいはそれらすべてをバス１３１２に接続するユーザ・インターフェース・アダプタ１３２２、ワークステーションをデータ処理ネットワークに接続する通信アダプタ１３３４、ならびにバス１３１２をディスプレイ装置１３３８に接続するディスプレイ・アダプタ１３３６を含む。セル・ライブラリ・データは、ＲＡＭ１３１４または記憶ユニット１３２０および１３４０に記憶させることができる。回路解析プログラムおよびシミュレーション・プログラムをＣＰＵ１３１０上で実行して、プロセスおよび環境パラメータへのセルのリーク電流依存性をあらかじめ求めることができる。同様に、ＣＰＵ１３１０は、回路マクロ中のセルについての状態発生確率を用いて平均リーク電流および感度を計算するプログラムを実行し得る。さらに、ＣＰＵ１３１０は、回路マクロを設計し、かつそれらをタイミングが重要な回路とタイミングが重要でない回路に分割するのに用いるソフトウエア設計プログラムを実行し得る。このソフトウエア設計プログラムは、本発明の実施形態を用いて得られたリーク感度データにアクセスして、設計プロセス中にリーク電力が最適化されるように改変することができるパラメータに設計者の注意を向けさせることができる。これらのプログラムからのデータは、ＲＡＭ１３１４に記憶させることができる。
【００５９】
本発明およびその利点を詳細に説明してきたが、添付の特許請求の範囲で定義される本発明の趣旨および範囲から逸脱することなく、本明細書で様々な変更、置換および改変を加えることができることを理解されたい。
【図面の簡単な説明】
【００６０】
【図１】３入力ＮＡＮＤゲートについて、リーク電流と入力論理状態の関係を示すグラフである。
【図２】ＩＳＣＡＳ（回路およびシステムに関する国際シンポジウム）ベンチマーク回路に関して、入力ベクトルへの総リークの依存性を示すグラフである。
【図３】様々なＩＳＣＡＳベンチマーク回路に関して、入力ベクトルへのリーク電流の依存性を示す表である。
【図４】ＩＳＣＡＳベンチマーク回路ｃ４３２に関して、リーク電流に対するプロセス変動の影響を示すグラフである。
【図５】ＩＳＣＡＳベンチマーク回路ｃ４３２に関して、リーク電流に対する温度変動の影響を示すグラフである。
【図６】２入力ＮＡＮＤゲートについての出力ノード発生確率の計算を示す表である。
【図７】本発明の実施形態を用いて求めた平均リーク電力を示す表である。
【図８】本発明の実施形態を用いて、ＩＳＣＡＳベンチマーク回路Ｃ５３１５についての様々な論理段数レベルを用いて得られた相対誤差を示すグラフである。
【図９】本発明の実施形態を用いた、平均リーク電力とリーク電力の推定値の比較を示すグラフである。
【図１０】本発明の実施形態に従ってプロセス・パラメータ「ｐ」のリーク感度を求める際のステップを示す流れ図である。
【図１１】本発明の実施形態に従ってＩＣを設計する方法ステップを示す流れ図である。
【図１２】本発明の実施形態に従って平均リーク感度を求める際の方法ステップを示す流れ図である。
【図１３】本発明の方法ステップを用いたコンピュータ・プログラムを実行し、本発明の実施形態を実施するのに適したデータ処理システムのブロック図である。
【符号の説明】
【００６１】
１０１  リーク電流
１０２  入力論理状態パターン
１０３  入力パターン
１０４  入力パターン
２０１  総リーク
２０２  ランダム入力ベクトル
３０１  ベンチマーク回路
３０２  セル
３０３  入力
３０４  Ｉｍａｘ
３０５  Ｉｍｉｎ
３０６  変動係数
４０１  リーク電流
４０２  平均リーク
４０３  最大リーク
４０４  最小リーク
４０５  プロセス条件
５０１  リーク電流
５０３  平均リーク電流
５０４  最大リーク電流
５０５  最小リーク電流
６０１  ２入力ＮＡＮＤゲート
６０２  出力確率
６０３  論理状態
６０４  ゲート・リーク電流
６０５  サブスレッショルド・リーク電流
６０６  総リーク電流
６０７  状態発生確率
７０１  回路
７０２  平均リーク電流
７０３  ＳＰ法による推定値
７０４  平均相対誤差
８０１  パーセント変動
８０２  論理段数レベル
９０１  平均リーク電流
９０２  シミュレーション結果
９０３  ＳＰ法によるリーク電流
１００６  平均リーク
１００７  平均リーク感度
１００８  高次のリーク感度
１３１０  ＣＰＵ
１３１２  システム・バス
１３１４  ＲＡＭ
１３１６  ＲＯＭ
１３１８  Ｉ／Ｏアダプタ
１３２０  ディスク・ユニット
１３２２  ユーザ・インターフェース・アダプタ
１３２４  キーボード
１３２６  マウス
１３２８  スピーカ
１３３２  マイクロホン
１３３４  通信アダプタ
１３３６  ディスプレイ・アダプタ
１３３８  ディスプレイ装置
１３４０  テープ・ドライブ
Ｃ  回路セル
【図１】
2005071360.tif 000011
【図２】
2005071360.tif 000012
【図３】
2005071360.tif 000013
【図４】
2005071360.tif 000014
【図５】
2005071360.tif 000015
【図６】
2005071360.tif 000016
【図７】
2005071360.tif 000017
【図８】
2005071360.tif 000018
【図９】
2005071360.tif 000019
【図１０】
2005071360.tif 000020
【図１１】
2005071360.tif 000021
【図１２】
2005071360.tif 000022
【図１３】
2005071360.tif 000023