(57)【特許請求の範囲】
【請求項１】
複数のネットを含む論理ネットワークのリーク・パワーを低減するためにコンピュータに、
ａ）前記論理ネットワーク内の１つ以上の第１のネットの可観測性don't care（ＯＤＣ：observability  don't care）情報を決定するステップであって、
前記ＯＤＣ情報が、前記第１のネットにおける入力値の値にかかわらず拘わらず、その出力をラッチするためにクロックを与えた状態の前記論理ネットワークの出力値に影響しない入力値を表し、前記ＯＤＣ情報が、前記論理ネットワークの前記第１のネットのスリープ状態を識別するために使用される前記ＯＤＣ情報を決定するステップと、
ｂ）識別された前記スリープ状態の少なくとも１つの少なくとも一部の間に、前記第１のネットから選択された少なくとも１つのネットを、特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも１つのネットを決定する確率的分析を実行するステップと、
を実行させるプログラム。
【請求項２】
前記確率的分析を実行するステップが、
１つ以上の選択されたネットの各々が第１の論理状態であり、それぞれの第１のリーク・パワー特性値を有する確率と、選択された前記ネットの各々が第２の論理状態であり、それぞれの第２のリーク・パワー特性値を有する確率とを決定するステップと、
選択された前記ネットの各々に対して、前記第１の状態のパワー・リークをそのそれぞれの第１の状態確率値と乗算し、前記第２の状態のパワー・リークをそのそれぞれの第２の状態確率値と乗算するステップと、
選択された前記ネットに対して、結果のリーク・パワーを推定するステップと
を含む、請求項１記載のプログラム。
【請求項３】
選択された前記ネットの各々が、それぞれのネットをドライブする少なくとも１つのゲート素子の少なくとも１つの論理入力を供給し、前記プログラムが、前記ゲート素子の入力における更新された確率にもとづき、論理変更のファンアウト・コーン内のネットの確率を再計算するステップを更に含み、
前記確率的分析を実行するステップが、選択された各ネットに対して、前記ネットが第１の論理状態から第２の論理状態に、或いは第２の論理状態から第１の論理状態にスイッチする確率を計算するステップと、
選択された各ネットが特定の状態になるであろう期間を決定するステップと、
選択された各ネットに対して、結果のリーク・パワーを推定するステップと
を含む、請求項２記載のプログラム。
【請求項４】
前記ＯＤＣ情報を決定するステップが、ＯＤＣのスイッチング確率を決定するステップを更に含み、
前記ステップｂ）において、特定の値に強制される少なくとも１つのネットの選択が、１つ以上の基準、すなわち、選択された前記ネットがＯＤＣ状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、請求項２記載のプログラム。
【請求項５】
選択されたネットを強制する前記ステップｂ）に続き、前記ＯＤＣ及び確率情報を更新するステップｃ）を実行し、所定の条件が満足されるまで、ステップｂ）からｃ）を繰り返すステップを含む、請求項１記載のプログラム。
【請求項６】
前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、請求項５記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に半導体素子に関し、特に、確率決定に従う低減制御回路を提供することにより、半導体素子におけるリーク電流を低減するシステム及び方法に関する。
【０００２】
【従来の技術】
リーク電流を低減するための２つの主なアプローチが提案されている。それらは、しきい値電圧制御と論理状態制御である。
【０００３】
集積回路におけるリーク電流は、ＦＥＴのしきい値電圧に反比例し、しきい値電圧を上げるとリーク電流が低減する。しかしながら、しきい値電圧を上げると素子の性能が低下する。従って、消極的なしきい値電圧制御方法では一般に、タイミング的に厳格でない論理パスの部分を選択し、回路のその部分により高いしきい値素子を使用する。積極的なしきい値制御方法も存在し、そこではしきい値電圧が能動体により動的に調整されるか、或いは、チップが回路の完全な性能が要求されず、最小のリークが所望される"スタンバイ"または"スリープ"・モードのときに、十分にバイアスする。
【０００４】
リークの論理状態は、回路のリークがその入力の状態の大きく依存するという概念にもとづく。例えば、ＣＭＯＳ２ウェイ（two-way）ＮＡＮＤゲートは、両方の入力がロー電圧のときに、両方の入力がハイ電圧のときよりも一桁低いリーク電流を有する。これらの方法のリーク制御は、論理ネットワークを想定したとき、論理ネットワークの入力に加えられ、可能な最も低いリーク状態を生成する論理値のセットを見い出す。この低リーク状態を生じる論理値のセットは、"低リーク・ベクトル"と呼ばれる。低リーク・ベクトルは、チップが"スタンバイ"または"スリープ"動作モードに入力するとき、論理ネットワークに低リーク・ベクトルを強制する変更記憶素子により、論理ネットワークに適用される。
【０００５】
このアプローチの主な課題の１つは、大規模な論理回路上で低リーク・ベクトルを見い出すことである。可能な論理状態の数は、回路への入力の数に直接比例するので、全ての可能な状態を網羅的にチェックすることは不可能ではないにしても非現実的である。従って状態空間を開拓し、"低リーク・ベクトル"を見い出すヒューリスティック・アルゴリズムが開発された。これらのアルゴリズムは、回路への入力を制御できるだけで、可能な"最低リーク・ベクトル"を見い出せないであろう事実により制限される。
【０００６】
論理状態制御アプローチの別の制限は、"スリープ"状態と"アクティブ"状態との区別が常に明確とは限らないことである。設計の異なる部分が異なる時間の間、非アクティブ（すなわち一種の"スリープ"・モード）であるかもしれない。アクティブ・スイッチング・パワーに対するリーク・パワーの相対重要度が増しつつある新規技術では、比較的短い期間でさえも論理ネットワークのこれらの非アクティブ部分のリークを低減することが重要となる。
【０００７】
従来システムではリーク低減技術の焦点は、記憶素子を低リーク・ベクトルに強制することにより、"スタンバイ"に入る際に設計に適用される低リーク・ベクトルを静的に決定することに置かれてきた。
【０００８】
論理ネットワーク状態に関する確率的情報を利用することにより、デジタル回路設計を最適化する技術が存在する。特に参考文献の１つとして、S. Sirichotiyakul、T. Edwardsらによる"Stand-by Power Minimization through Simultaneous Threshould Voltage Selection and Circuit Sizing"、ACM 1999、Ch. 26. 2、pp. 436-441が挙げられる。この参考文献は、リークを低減または最小化するために、確率的分析を用いてトランジスタをサイズ決めし、電圧しきい値を変更することを教示する。しかしながら、この従来技術は、回路のスリープ状態及び信号の論理状態の設定を考慮していない。
【０００９】
従って、論理状態統計にもとづき確率的アプローチを用いて、集積回路素子の任意の時点での期待リークを見い出すことにより、低リーク・ベクトルを見い出す改善された方法及び機構を提供することが望まれる。
【００１０】
更に、半導体回路がアイドル状態のとき、回路が大域的または局所的に最適化状態になるように、論理を操作して確率を変化させる改善された方法及び機構を提供することが望まれる。
【００１１】
更に、回路が"アクティブ"の間にも、リーク電流を低減する論理最適化を可能にする、従って"スリープ"と"アクティブ"・モード動作の間の不明瞭な線を収容する確率的アプローチを用いて、低リーク・ベクトルを見い出す改善された方法及び機構を提供することが望まれる。
【００１２】
【発明が解決しようとする課題】
従って本発明の目的は、確率的分析にもとづき、論理ゲートの状態を強制し、リークを低減する論理システム設計方法を提供することである。
【００１３】
本発明の別の目的は、多くのアクティブ／半アクティブ／スタンバイ状態の任意の間に低リーク設計となるように、論理ネットワークを変更する合成の間に、リーク確率を見い出す方法及び機構を提供することである。
【００１４】
更に本発明の別の目的は、素子の収容域を形成したり、特殊なスイッチを追加することなく、多くのアクティブ／半アクティブ／スタンバイ状態の任意の間に、リークを低減し、低オーバヘッドとする確率的分析を実現する論理システム設計方法を提供することである。
【００１５】
更に本発明の別の目的は、低リーク設計となるように、論理ネットワークを変更する合成の間に、ゲートの固有の性質を利用して論理状態を強制する方法及び機構を提供することである。
【００１６】
【課題を解決するための手段】
本発明は論理状態統計にもとづき、任意の時点での期待リークを見い出す確率的アプローチを用いることにより、正確な低リーク・ベクトルを見い出す困難を克服するものである。これは回路が"アクティブ"の間にもリーク電流を低減する論理最適化を可能にし、それにより"スリープ"と"アクティブ"・モード動作との間の不明瞭な線を収容する。幾つかの手法により確率的情報が計算され記憶される。これらの手法は、スイッチング・パワーの分析のために、スイッチング情報を決定する手法と似通っている。シミュレーション・トレースの結果として情報が個々のネット上で収集される。或いは、信号間の相関を追跡するために、様々な入力状態（基本入力及びラッチ出力論理値のセット）の確率が追跡される。こうした入力状態情報が、２分決定グラフ（ＢＤＤ：binary decision diagram）または他の周知の手段を用いて簡潔に記憶される。各信号について、その信号が特定値（他の全ての信号値に無関係か、状態情報を通じて相関付けられる）である確率と、論理ネットワーク内の各ブロックについて、入力値の各可能な組み合わせに対するそのブロックのリークに関する情報が与えられると、全てのブロックに渡り合計することにより推定リーク・パワーが計算される。すなわち、ブロック入力値の全ての組み合わせに渡って、その入力値の組み合わせの下でのリークに、その入力値の組み合わせの発生確率を掛けた積の総和が計算される。これらの信号確率に影響を及ぼす論理ネットワークの変更が行われた場合、確率が更新され、リーク・パワーの結果の変化が推定される。信号確率の更新は論理ネットワークの一部または全部を再シミュレートすることにより、或いはネットをドライブするゲートの入力における更新確率にもとづき、論理変更のファンアウト・コーン内のネット上の確率を再計算することにより、またはこれらの組み合わせや他の手段により達成される。
【００１７】
信号確率と共に、また同様に各状態について、論理ネットワークがその状態のときに、任意の所与の信号ネットがスイッチする確率が計算される。再度、これは論理ネットワーク内の様々なネットを独立に扱うことにより行われる。この場合、対象となるスイッチング確率は単に、ネットがローのときにハイになる条件付き確率であり、またネットがハイのときにローになる条件付き確率である。これらのスイッチング確率はまたグローバル状態にもとづき、ＢＤＤまたは他の手段を用いて計算される。この情報は、ネットが特定の状態にあるであろう期間、従って、その状態に関連付けられるリーク・パワーを浪費する期間を決定する支援し、ネット上のリークを低減する相対重要度を決定するために使用される。
【００１８】
著しく異なる動作モードが知れているとき、確率と結果のリーク・パワー推定値の別々のセットが、各モードについて保持される。次に、各モードで費やされる期待期間と各モードにおけるパワー低減の重要度とにもとづき、これらの異なるモード・パワーの重み付け合計を低減するために、最適化が実施される（例えば、バッテリ・パワーまたは壁面コンセントで動作する素子は、後者の場合よりも前者の場合に、よりパワーを低減する必要がある）。一部のモードでは、特定の論理ネットワーク入力値（基本入力またはラッチ出力）が知れており、従って、０及び１の状態確率を有する。基本入力の値が制御されない場合でも、特定のモードは特定の基本入力が定義済み状態であるモードとして定義され得る。
【００１９】
この確率的リーク情報が与えられると、リーク・パワーを低減する様々な最適化が実行される。一般にこれらの方法は論理において、"don't care"、すなわち、ゲートまたはサブネットワーク出力値がどうであろうと問題とならない場合の、そうしたゲートまたはサブネットワークへの入力条件を利用する。これらのdon't care条件は、高級言語入力による指定を通じて（例えばcase文におけるdefault case）、或いは論理ネットワークの分析を通じて、またはこれらの組み合わせにより決定される。同様に、特定のネットまたはネット・セットがdon't caseである論理条件が、同様に特定の指定信号（例えば特定の機能またはチップ全体のための"スリープ・モード"信号）により、或いは論理ネットワークの分析（すなわちdon't careを意味する論理機能の決定）により、またはこれらの組み合わせにより決定される。変更を加える時期を決定するために選択される機能が、常に信号がdon't careであることを意味する限り、don't care関数全体が最適化において使用される必要はない（すなわち、リークを低減する全てのdon't care条件に対して変更を加える必要はない）。換言すると、信号がdon't careであると判断するのに十分ではあるが、必要条件である必要のない関数が探索される。更に、don't care関数と特定のネットに関連付けられるリークとの間に相互作用が存在し得る。例えば、信号確率を増加させるとリークが減少するモードＡと、信号確率を減少させるとリークが減少するモードＢの両方において、信号はdon't careであるかもしれない。明らかにこれらの２つのモードにおいて、信号確率を異なる方向にドライブする変更を加えることが目標となる。
【００２０】
本発明によれば、複数のネットを含む論理ネットワークのリーク・パワーを低減する方法が提供される。この方法は、前記論理ネットワーク内の１つ以上のネットの可観測性don't care（ＯＤＣ：observability don't care）情報を決定するステップを含み、ＯＤＣ情報は、ネットにおける入力値が論理ネットワークの出力値に影響しない入力のセットを表し、ＯＤＣは論理ネットワークの個々のネットのスリープ状態を識別するために使用される。方法は更に、スリープ状態の少なくとも一部の間に、ネットを特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも１つのネットを決定する確率的分析を実行するステップと、期待パワー消費が低減されるとき、決定されたネットをそのスリープ状態の一部の間に決定された値に強制するステップとを含む。
【００２１】
好適には、これらのdon't care状態を最適化し、リーク・パワーを低減するために使用される従来の論理合成技術が、面積を低減し、回路性能を改善し、ときにスイッチング・パワーを低減するために使用される。従って、幾つかの異なる目的のための同時最適化が試行される。これらは変化が様々な目的関数に及ぼす影響の重み付け合計を取り（例えばK1*delta-面積+K2*delta-スイッチング・パワー+K3*delta-リーク電流）、この重み付け合計において最善の改善を提供する最適化を選択することにより組み合わされる。こうしたコスト・ベースの変化もまた制限を受け、例えばネット・スラック（net slack）があるしきい値以下にならない限り、前記の重み付け目的関数の合計において最善の改善を与える変化を加えるようにする。
【００２２】
【発明の実施の形態】
本発明の原理によれば、合成される回路の様々なネット（ネットワーク）の静的確率及びスイッチング確率を確認するために、第１のフェーズ分析が実行される。この分析は好適には、論理回路設計を最適化するために要求される、リークの増分的確率分析を含む。アルゴリズムでは、当業者には周知のブール関数を表す２分決定グラフ（ＢＤＤ）が使用される。ブール関数及びそれらの特性の詳細については、Randal E. Bryantによる参考文献"Symbolic Boolean Manipulation with Ordered Binary-Decision Diagrams"、ACM Computing Surveys、Vol. 24、No. 3、September 1992及びR. RutenbarによるSchool of Computer Science、Carnegie Mellon University、Fall' 97 class notesで述べられている。尚、左記の開示は、<http://www.ece.cmu.edu/〜ee760/>で見い出すことができる。ＢＤＤは基本的に、幾つかの変数に依存する関数を表す２分木である。変数が特定の論理状態値（例えば"０"）に制限されるとき、関数は変化し、オリジナル変数のサブセットに依存する。このプロセスは、当業者にはシャノン・コファクタリング（Shannon cofactoring）として知られ、関数が１変数の関数に帰着するように繰り返される。従って入力変数の任意の割当てに対して、ツリー関数を通じてパスを走査することにより関数の値が決定される。一般にＢＤＤと称するとき、これは削減された順序付け図であり、ルートからリーフ（leaf）に至る任意のパスに沿う変数に常に定義済みの順序で遭遇し（全ての変数が全てのパス上に存在する必要がない）、同じ変数及び同じ子を有する２つのノードが併合され、その２つの子が同一である任意のノードが削除される。ＢＤＤの他の多くの操作及び動作が業界で知られている。コンピュータ支援設計業務において削減された順序付けＢＤＤを表現し、効率的に操作するデータ構造が、Karl S. Braceらによる参考文献"Efficient Implementation of a BDD Package"で述べられており、業界において周知である。この機能を提供するコンピュータ・パッケージは、例えばSynopsys、Inc. of Mountain View、CAから販売されている。
【００２３】
この第１のフェーズ分析に従い、説明の目的上、デジタル回路ネットワーク内の"ネット"はＢＤＤにより表され、ＢＤＤ構造内の各ノードがＢＤＤを通じて取られるパスを決定する決定変数として、基本入力、すなわちネットの値を有するものとする。一旦ＢＤＤが作成されると、ＢＤＤにより表されるネットが特定の状態にある確率が決定される。この様子が、例えばBryantによる前記参照文献"Symbolic Boolean Manipulation with Ordered Binary-Decision Diagrams"で述べられている。一般に、高度なシミュレーションを用いることにより基本入力での確率が最初に決定され、次に、内部的なネットの確率がＢＤＤを用いて決定される。しかしながら本発明によれば、高度シミュレーションを用いても確率決定を可能にしないネットワークが変更される。従って、ＢＤＤを用いての信号確率の計算が、既知の確率を有するリーフから開始する。例えば、ノード０が１である確率は０（常に０）であり、ノード１が１である確率は１である。正に０及び１である子を有するＢＤＤ内のノードを考えると、常にその属性を有する少なくとも１つのノードが存在する。そのノードの決定変数が１となる１／４の確率を有し、当該変数が１のとき、そのノードにより表される関数が１で、当該変数が０のとき、関数が０の場合、その関数は１となる１／４の確率を有する。代わりに、当該変数が１のとき、そのノードにより表される関数が０で、当該変数が０のとき、関数が１の場合、換言すると、ノードが変数の逆元を表す場合、その関数は１となる３／４の確率を有する。このようにＢＤＤ内の各ノードに対して、この計算が実行される。すなわち、ノードにより表される関数の確率は、ノードの決定変数が１である確率と、そのノードの１の子が１となる確率とを掛け合わせた積と、ノードの決定変数が０である確率と、そのノードの０の子が１となる確率とを掛け合わせた積との和、すなわち単純合計となる。これは、例えばツリーのポスト・オーダ・デプス・ファースト（post-order depth-first：後順深さ優先）探索走査を用いて再帰的に実行される。このようにして、このツリー内の任意のノードに対して確率が見い出され、そのノードにより表される関数を有するネットが１である確率を提供する。
【００２４】
この技術は静的確率、すなわち信号の値が１である確率、または信号が０である確率を決定するためのものである。本発明によれば、スイッチング確率の追加の考慮が成される。なぜなら、何かが毎サイクルごとにスイッチングしている場合（または３サイクル置きまたは１０サイクル置きにスイッチングしている場合であっても）、それを特定の状態に強制することは望ましくない。なぜなら、信号を特定の状態に強制するオーバヘッドが大きくなり、すなわち、その遷移を行うために使われるパワーが、非常に短い期間に渡り保管されてきたリーク・パワーよりも大きくなるからである。従って好適にはこれらの技術は、信号が長い時間don't careである高い確率を有する場合に適用されるべきである。信号は高い確率である必要はないが、don't careのとき、長い時間don't careであることが有望でなければならない。
【００２５】
スイッチされる確率について見ると、Peter H. Schneiderらによる"Fast Power Estimation of Large Circuits"、IEEE Design and Test of Computers、1996、pp. 70-78が参照される。この参考文献は基本的に、静的手法と同じ思想であるが、時間的な１スライスを表す基本入力の１セット（例えば現変数入力Ｘ１、Ｘ２、．．．、Ｘｎ）を有するネットに対してＢＤＤを生成することに加え、そのネットのＢＢＤが次の連続スライスに対して、例えば次状態変数入力ＸT1、ＸT2、．．、ＸTnの関数として生成される。ＢＤＤのこれらのセットは同一である。なぜなら、ネット構造がサイクル毎に変化しないからである。従って、任意の特定の遷移において前の状態の変数が与えられると、次の状態において変数がどのようであるかを知ることができる。これらの２つのＢＤＤは次に排他的論理和され、現状態変数と次状態変数の両方の関数である新たな関数を表す新たなＢＤＤを生成する。この新たな関数（結合ＢＤＤ）は、信号が１対の連続サイクルの間をいつスイッチするかを直接的に表す関数である。
【００２６】
好適には、前記のSchneiderらによる参考文献"Fast Power Estimation of Large Circuits"で述べられるように、スイッチング確率を計算するために変数を現状態と次状態の間でインタリーブすることにより、作成されたＢＤＤが特別に順序付けされる。例えば、入力変数Ｘ01及びＸT1は現状態の変数（０の上付文字で定義される）と、次状態の変数（Ｔの上付文字で定義される）をそれぞれ表す。従って、Ｘ01及びＸT1変数が隣接するとき、静的状態に対して実行された同一種類の確率分析が、今度は１度に１対の変数に対して実行される。従って、Schneiderらの論文で述べられるように、また図１のＢＤＤツリー構造１１により表されるように、与えられる確率はＸ01及びＸT1が両方１であるときを表し、これはこのツリーの最左端分岐１２に対応し、すなわち変数が前サイクルにおいて１であり、次のサイクルでも１に留まる。同様に、このツリー１１の最右端分岐１３は、変数が前サイクルにおいて０であり、次のサイクルでも０に留まる場合を示す。中間のケースでは、パスが左を走査し、次に右の分岐１６を走査するとき、スイッチングが発生することを示す。これは変数が前サイクルにおいて１であり、次のサイクルで０になることを表す。換言すると、変数はこの遷移の間に立ち下がる。他の残りのパス１８は１であり、遷移の間に信号が立ち上がることを示す。
【００２７】
一旦全ての統計が高度シミュレーションを通じて集められると、信号が０である確率に関する統計だけでなく、それがスイッチする確率に関する統計も収集される。決定変数が入力信号の現状態値及び次状態値に対応するＢＤＤの２つのレベルを１度に見ることにより、幾分より複雑な分析が実行される。この分析は、決定変数に対応する入力信号が１であり、そのまま１に留まる確率をその分岐上の確率と乗算する演算と、決定変数に対応する入力信号が０であり、そのまま０に留まる確率を適切な分岐上の確率と乗算する演算と、他の２つの分岐確率を一緒に加算する演算と（なぜなら立ち上り確率は常に立ち下り確率に等しいため）、その値を決定変数に対応する入力がスイッチする確率と乗算する演算とを要求する。これらの確率をツリー上で伝搬することで、ルートでの確率、すなわち、この信号が任意の連続するサイクル対の間でスイッチされる確率が生成される。
【００２８】
論理ネットワークにおいて複数変化を効率的に生成及び評価するために、これらの演算は増分的に実行されなければならない。例えば、米国特許第５５０８９３７号"INCREMENTAL TIMING ANALYSIS"では、データの増分伝搬をネットワークを通じて順方向に効率的に実行する分析方法が述べられている。これらのステップには、例えば、最初にネットワーク内の全てのネット上でのスイッチング確率を見い出す初期分析を実行するステップと、次に論理変更を行うステップ、例えばゲート入力において論理１状態を強制するステップとを含む。ネットワーク全体について解析を最初からやり直すのではなく、値を更新するために必要な限りにおいて変更が導入され、伝搬される。従って、本発明の好適な実施例によれば、状態確率及びスイッチング確率を決定する方法が、米国特許第５５０８９３７号に従う増分的更新機構と共に適用される。
【００２９】
ネットワーク関数を表すＢＤＤの作成及び実現、並びに信号の状態及び信号のスイッチング確率、及びネットワークに変更が加えられたときに、信号をどのように更新するかを決定する手段に加え、分析の次のフェーズは"don't care"条件、特に可観測性don't care（ＯＤＣ：observability don't care）の計算及び評価を要求する。ここでＯＤＣは、出力が環境により監視されない、すなわちネットの値に関与しない状況における入力のセットを表す。論理ネットワーク内のネットに対してＯＤＣセットは、条件セット（すなわち論理ネットワークの入力ベクトル）であり、この条件の下では、ネット上の値は論理ネットワークのいずれの基本出力にも影響せず、また論理ネットワーク内のラッチに記憶される値にも影響しない。従って、これらのＯＤＣ条件の下で、論理ネットワークの関数（観測可能な出力またはラッチ内容）に影響を及ぼすことなく、ネットが任意の選択値を取れるように、ネットワークは変更される。
【００３０】
ＯＤＣの計算は多様に行われる。ブール・モデルにおいてＯＤＣを計算するアルゴリズムの詳細は、Giovanni De Micheliによる書籍"Synthesis and Optimization of Digital Circuits"、McGraw-Hill Publishing、Chapter 8、pp. 380-396で見い出される。本発明の状況では、ＯＤＣセットは電子素子のスリープ動作モードと同意語であるが、これは従来ラッチからクロック信号を削除することと見なされた従来のスリープ・モードとは異なる。従来のスリープ・モードでは、ラッチ上で強制される値が読出されていないために重要でない。本発明では、可観測性don't careを計算するアルゴリズムは、再収束（reconvergence）が存在しないことが知れているローカル・ファンアウトに、或いは、パスの全てのファンアウトをブロックすることが知れているグローバル信号に関わる。これは、例えば、出力からの開始を要求する"カットセット（cut sets）"を実現し、全てのファンアウトを見い出すなど、既知の方法により行われ、各パスに沿って、信号によりブロックされる場所が存在するか否かを判断する。
【００３１】
より詳細には、ＯＤＣの計算を実行する１方法が図２に示される。図２に示されるように、この方法は、論理ブロック４２及び５２を有する論理ネットワーク１０において、（ＯＤＣが計算される）対象ネット４０からの全てのパスをインタセプトするカット３５を定義するステップを含む。次に、このカット内の全てのネットが対象ネットに独立である条件が計算される。ネットＮに関するカット・ネットＣのブール・デリバティブは、ｄＣ／ｄＮとして示される。Ｃ＝ｆ（Ｎ、．．．）ならば、ｄＣ／ｄＮ＝ｆ（Ｎ＝０、．．．）とｆ（Ｎ＝１、．．．）との排他的論理和である。ｄＣ／ｄＮが０のとき、すなわちｄＣ／ｄＮの逆元が１のとき、ネットＣはネットＮに独立である。カット・セット内の全てのネットに対するこれらの条件の論理積（ＡＮＤ）を取ることにより、ネットＮに対するＯＤＣ条件のセットが与えられる。ネットＮに対する総ＯＤＣセットを計算するために、カット３５'が基本出力に取られるべきである（すなわち、図２の論理ブロック５２は空であるべき）。
【００３２】
ＯＤＣの計算において、必要とされる労力と完全性との間には、トレードオフが存在する。ＯＤＣセットの計算は、ネットとカットとの間の全ての論理の分析を要求する。ネットの完全なＯＤＣセットは、そのネットの完全なファンアウト・コーンの分析を要求する。それにひきかえ、カットがネットに近い場合、少量の論理だけが分析されればよい。従って完全性のためには、カットをできるだけ右に（すなわちネットワーク出力に向けて）押し出すことが好ましい。一方計算スピードのためには、カットをできるだけ左に（すなわちネットに向けて）押し出すことが好ましい。これはまたＯＤＣセットの増分的更新に拡張される。すなわち、ネットとカットとの間の論理（図２の論理ブロック４２）に変更が加えられると、ＯＤＣセットが計算されなければならない。従って、論理ブロック４２のサイズを最小化すると、ＯＤＣセットの再計算を要求する潜在的な変更の数が最小化される。
【００３３】
多くの場合論理ネットワークの"スリープ"状態は、結果が論理ネットワークの出力の近くに伝搬するのをブロックする信号により決定される。例えば、しばしば論理ネットワーク出力をラッチするクロックをゲートすることが行われる。こうしたケースでは、関連ＯＤＣの決定がＯＤＣが計算されているネットから遠く離れたカットを用いて行われ、従って、ＯＤＣセットを計算的に高価にする。有用なＯＤＣセットを安価に獲得する１方法は、ネットＮのファンアウト・コーンを通じる、あるカット内の全てのネットのＯＤＣである条件が、ネットＮのＯＤＣでもあることを記すことによる。図３のネット４０を考慮すると、カット３５'内の全てのネットのＯＤＣである条件は、対象ネットのＯＤＣでもある。これらの条件は前述のように、ブール・デリバティブを用いて見い出され、次にカット内の全てのネットを横断して、条件を論理積（ＡＮＤ）する。同様に、ネットのローカルＯＤＣが、前述のように、カット３５に対して計算される。これら２つのＯＤＣセットの論理和（ＯＲ）もまた、ネット４０の有効なＯＤＣである。論理ブロック４２及び６２が論理ブロック５２に比較して小さい場合、このことはＯＤＣ計算において多大な時間を節約することができる。更に、カット３５'は多くのネット間で共用され、従って、ローカルＯＤＣだけが各ネットに対して別途計算される必要がある。
【００３４】
ＯＤＣの増分的更新は前述のように、カット対を用いてＯＤＣを決定し、次に論理変更が行われるとき、図３の"論理ブロック４２"または"論理ブロック６２"内において、変更された論理を含むネットを決定することにより計算される。一部の実施例では、完全なＯＤＣセットを見い出すことが必要でなく、それらのサブセットを見い出せばよい。すなわち、計算が容易で非常に多くのケースにおいて、don't careである関数を見い出す。従って、このネットを強制するアクションが取られるとき、その関数のサブセットをインプリメントすることが望ましい。換言すると、非常に複雑な関数はオーバヘッドの点で高価であり、ネットを強制する論理を構築することができない。しかしながら、単純な回路での信号は、９５％の時間真であることが判明しており、論理ゲートに関して、５％のコストで実現できる。従って、たとえ全部のＯＤＣセットをカバーしなくても、より単純な関数が構築される。なぜなら、オーバヘッドが追加される量と、リークが低減される時間量とは、常にトレードオフの関係にあるからである。
【００３５】
いずれにしても本発明の好適な実施例によれば、ＯＤＣ状態の確率分析が実行される。各ネットに対してその関数を見い出す、すなわち基本入力の点から、任意の時刻におけるこのネットの値を見い出すことに加え、関数が変更されるかもしれない時期を示すＯＤＣ関数が計算される。なぜならＯＤＣが１のときに、ネットを異なる値に強制する入力が導入される場合、ネットワーク振舞いは変更されないからである。これに反してＯＤＣが０のときに、ネットを異なる値に強制する入力が導入される場合には、それは出力で観測でき、ネットワークの関数内で不当な変化を構成し得る。
【００３６】
更に続けると、各ネットに対してＯＤＣを表す関数を計算した後、ＯＤＣのスイッチング確率、すなわちどのくらい頻繁に関数がその状態にスイッチ・インし、またその状態からスイッチ・アウトするかが決定される。これは現状態及び次状態変数に関連して、これらのＯＤＣに対して生成されるＢＤＤから計算される。１例では、ＢＤＤが排他的論理和（ＸＯＲ）されて、ＯＤＣのスイッチング関数が獲得され、そのスイッチング確率が決定される。
【００３７】
前述の追加のスイッチング情報は、ネットを低リーク状態に強制する（リーク・パワーを低減するが、スイッチング・パワーを増加する）ための追加の論理遷移を導入するか、それともネットの論理状態を維持するかを決定するために使用される。ネットが低リーク状態に強制される場合、消費されるパワーは低リーク状態での１サイクル当たりのリーク・パワーと、ネットが低リーク状態に留まる期待サイクル数との積と、その状態へ及びその状態から遷移するために要求されるスイッチング・パワーとの和である。低リーク状態に強制されない場合には、消費パワーは、１サイクル当たりの期待パワーと（期待リーク及びスイッチング・パワーの両方を考慮して確率的に決定される）、左記と同じサイクル数との積である。これらの値を比較することにより、ネットを低リーク状態に強制することにより、パワーが低減されるか否かが決定される。
【００３８】
この第１のフェーズの終わりに当たり、各ネットに対して４つの様々な関数が獲得される。すなわち状態関数（状態）及びスイッチング確率関数（状態）と、状態関数（ＯＤＣ）及びスイッチング関数（ＯＤＣ）である。一旦全ての情報が獲得されると、試行錯誤法により、決定された全ての情報を利用して、リークの改善が図られる。前記の米国特許第５５０８９３７号で述べられる増分的分析は、これらの関数の各々を更新するために考慮される。
【００３９】
特に、試行錯誤法に関して、次の分析が実行される。すなわち、１）ランダムにネットを選択し、２）そのＯＤＣを見い出し、３）異なるネットワークであり得るそのＯＤＣの様々な単純化を見い出す（作成のために、様々な量の論理が要求される）。見い出されるＯＤＣは、次の所望のトレードオフ基準にもとづき、独立に選択される。すなわち、１）ネットワークがＯＤＣ状態になる確率が最大である、２）この状態にスイッチ・インし、この状態からスイッチ・アウトする確率が最小である、及び３）計算が簡単であることである。例えば、新たな潜在的なＯＤＣ関数が見い出され、その確率が非常に低いか、そのスイッチング確率が非常に高い場合、それはスキップされてよい（例えば、あまりに高価と思われるので）。ＯＤＣ関数が見い出されると、すなわち、ネットが特定の状態に強制される条件が決定されると、ネットが１または０に強制される。例えば、信号が信号ＮＯＴ（ＯＤＣ）とＡＮＤされ、または信号ＯＤＣとＮＯＲされて、０に強制される。或いは、信号ＯＤＣとＯＲされ、または信号ＮＯＴ（ＯＤＣ）とＮＡＮＤされて１に強制される。強制論理の犠牲は、強制信号（ＯＤＣサブセット）を生成し、信号をある値に強制するために追加される論理の累積消費パワー（スイッチング・パワーとリーク・パワーの両方）である。変更の犠牲／節約は、リークによるパワー変化、及び強制信号及びそのファンアウトの変更後確率によるスイッチング変化に、この犠牲を追加する
【００４０】
図４乃至図６は、単純なＡＮＤゲートの論理状態を強制する状況を示す。図４のＡＮＤゲート７０の出力ネットに注目すると、ネットにＯＤＣ関数が存在し（ことによるとそのネットの完全なＯＤＣ関数のサブセットである）、ＯＤＣ関数が真のとき、この出力を１に強制することが望ましいことが判断される。１は直接ＡＮＤゲートに強制されないので、図５に示されるように、ＯＲゲート７２がＡＮＤゲートの出力に配置され、ＯＤＣ関数がＯＲゲートに供給されてＡＮＤを１に強制する。或いは、１対の入力を有するＡＮＤゲート７０の出力を０に強制するために、図６に示されるように、ＯＤＣがインバータ７３を介してＡＮＤゲートに供給される。ここでインバータ７３はＯＤＣを反転し、ＡＮＤゲートを０に強制する。簡単な計算、高い確率、及び低スイッチング基準にもとづき、一旦ＯＤＣまたはそのサブセットが見い出されるとゲートが強制される。ここでネットの出力を強制すると、幾つかの伝搬効果が生じることになる。それにより、０に強制される出力は、幾つかの他のネットを様々な状態に強制し得、同様に出力が１に強制される場合についても同じことが言える。増分的分析によれば、ゲートを特定の状態（１または０）に強制するアクションが取られると、影響される全ての確率が再計算され、更にリーク・パワー、及びこのネットワークにより消費されるスイッチング・パワーが再計算され、信号を強制する前に消費されたパワーと比較される。消費パワーが悪化する場合、この変化は廃棄される。
【００４１】
シミュレート化アニーリング：
ネット状態を強制するこの純粋にランダムな方法は、シミュレート化アニーリングなどの、他のネットワーク最適化手法と共に実施されてもよい。シミュレート化アニーリングは、ランダム種類の最適化を実行するために使用される汎用最適化フレームワークを提供する。これはネットの論理状態の強制に応じて、結晶の結晶化の熱力学をシミュレートし、パワー消費の観点からネットの良否を決定する。移動が事態を良化する場合それは受け入れられる。しかしながら、事態が悪化する場合には、温度と呼ばれる擬似変数の関数であるボルツマン分布に関連付けられる確率で受け入れられる。当業者には知れるように、アニーリング・シミュレーションは高温から開始し、たくさんの悪い移動及びたくさんの良い移動が受け入れられることが期待され、次に温度がゆっくり低下される。このプロセスが進行し、温度が下がると受け入れられる悪い移動が少なくなる。アニーリングに関する広範な資料が存在する。例えば、S. Kirkpatrick、C. D. Gelatt及びM. P. Vecchiによる"Optimization by Simulated Annealing"、Science、vol. 220、pp. 671-680、May 1983及び本発明に従い、シミュレート化アニーリングがこのランダム手法と併せて使用される。
【００４２】
感度情報の逆方向伝搬：
リークを改善する第２の方法では、どのネットを使用するかの判断を下すための追加の"感度分析"が実行される。すなわち本発明によれば、最適化プロセスを導き、潜在的なネットワーク変化を評価するために、各ネットについて、その出力コーン内の論理のリークに影響する全効果を決定することが好ましい。これは概念的または文字通り、状態確率に関するリーク・パワーのデリバティブの形式を取る。これらの値は、論理ネットワークを通じる情報の逆方向伝搬を通じて計算される。例えば、ＡＮＤゲートが出力確率０．２５、リーク・デリバティブＤ、及び各々が独立な確率０．５を有する２入力を有する場合、各入力ネットは出力ネットに影響する半分の確率しか有さないので、逆方向伝搬寄与度は０．５*Ｄである。これにネットそのものによるリークが追加されなければならず、これはネットが０のときと１のときとの間の、ネットのソース・ゲートのリークの差である。半導体チップ上のリークは、ネットそのもの内ではなく、ネットが接続されるゲート及び他の回路を通じて発生する。特定の状態でのネットのリークを指すとき、これはネットが接続される回路内のそれらの状態において発生するリークを意味する。同様にネットの入力とは、ネットをドライブするゲートへの入力を意味すると理解される。
【００４３】
変更の選択は、可能な変更のセットから任意の可能な変更を選択し、各々の潜在的な利点を評価することにより行われる。最適化の目標において、改善をもたらすことが期待される特定の変更が選択される。例えば、前述のように、１）高いリーク・パワー・デリバティブを有し、２）それらの状態確率を著しく変化させる潜在性を有し、３）提案された変形を許可する十分に肯定的なスラック（余裕）を有するネットが選択される。
【００４４】
この追加の分析は、ランダム・アプローチよりもより効果的な"感度"分析である。なぜならこれはネットの出力が、例えばその入力（ネット）の各々が１である確率に関連して、１である確率のデリバティブの決定を含み、デリバティブ計算がネットワークを通じて逆方向に伝搬するからである。例えば、特定の状態にある可能性の高い特定のネットにおいて、ＡＮＤゲートが与えられる場合、例えば出力は論理１である０．８の確率を有し、論理０である０．２の確率を有する。これはその入力ネットのそれぞれの確率に関連付けられる。全体的に独立なネットでは（再収束が存在しない）、出力が１である確率は、実際に（例えばＡＮＤゲートの）２つの入力が１である確率の積である。なぜなら、全ての入力が１の場合のみ、出力は１であるからである。従って、入力の確率の積が総確率を提供する。同様に、これは逆方向に伝搬され得る。ＯＲゲートでは、どちらかの入力が１の場合のみ、すなわち、両方の入力とも０でないとき、ＯＲゲートの出力は１である。従って、２つの入力について出力が１である確率は、次のようになる。すなわち、
【数１】
(１−(１−第１の入力が１である確率)×(１−第２の入力が１である確率))
【００４５】
１例として、ネットＮのリーク・デリバティブは、Ｎの状態確率の変化に関連付けられるリーク・パワーの変化として定義される。これはＮをドライブするゲートのリークの変化だけでなく、ネットＮの状態確率の変化の結果、その入力確率が変化するネットＮのファンアウト内の全てのゲートのリークの変化も含む。このデリバティブを正確に計算することは、論理ネットワーク内の再収束の影響により困難である。しかしながら、この計算は、各ゲートについてその全ての入力に対する変更が独立に行えると仮定することにより、効率的に近似される（すなわち、それらの共同のファンイン・コーン内の共通のネット上の変更によらない）。この場合、ゲートの各入力において、ゲート出力の状態確率の変化が計算される。これは出力ネットのリーク・デリバティブの乗数倍であり、入力確率の変化によるゲート自体のリーク・パワーの変化に追加されて、ゲート入力ピンのリーク・デリバティブが求まる。最後に、ネットの全てのシンクのリーク・デリバティブが合計され、ネット自体のリーク・デリバティブが求まる。
【００４６】
図７は、本発明による感度分析において使用されるリーク・デリバティブのアプリケーションを示す。図７において、ＡＮＤゲート８０の出力確率は入力確率の積であり（上側のゲート８０の状態確率デリバティブは０．２で、下側のＡＮＤゲート８２のそれは０．９）、ネットＮの状態確率に関して、２つのネットのそれぞれのリーク・デリバティブが計算される。すなわち、それぞれ０．２*４＝０．８及び０．９*（−１０）＝−９．０である（図７に示されるリーク・デリバティブは、ネット自体の状態確率に関する）。入力確率ｐ１及びｐ２を有するＡＮＤゲートの期待リークは、次のようになる。
【数２】
0003836715.tif 000002
【００４７】
ｐ１に関するゲート自体のリーク・デリバティブは、０．７−０．５ｐ２である。上側のゲートのリーク・デリバティブは、０．７−０．５*０．２＝０．６であり、下側のゲートのそれは、０．７−０．５*０．９＝０．２５である。従って、ネットＮの総リーク・デリバティブは、０．８＋０．６−９．０＋０．２５＝−７．３５である。これはネットＮのスイッチング確率を、例えば０．４から０．３に低減すると、約０．７３５単位のリーク・パワーが節約できることを示す。
【００４８】
これは単に真のリーク・デリバティブの近似であるので、最適化を導くために使用される。結果は前述のＢＤＤベースの方法を用いるよりも正確な、増分的パワー分析によりチェックされる。更に、ゲートへの２つの入力の確率の変化がパワーを低減させたり、逆に、任意のある入力自体の確率の変化がパワーを増加させる場合がある。パワー最小化のためのこうした機会は、リーク・デリバティブ法を用いて見い出されるが、こうした変化の下流での結果が見い出されてもよい。
【００４９】
感度情報、すなわち、ゲートをドライブするその入力の各々が１である確率に関連して、信号が１である確率のデリバティブを見い出し、逆方向に伝搬することはパワー消費と相関付けられる。すなわち、駆動ゲートの各入力に対してその入力がゲート出力値を制御する確率（例えば、ＡＮＤゲートでは、他の全てのゲート入力が１である確率）を取得し、それをネット（ゲート出力）の状態確率に関するリーク・パワーのデリバティブと乗算し、次にこの結果を、入力が１のときの駆動ゲート自体のリーク・パワーと、入力が０のときの駆動ゲート自体のリーク・パワーとの差に加算することにより、より情報の豊富なリーク・デリバティブが得られる。期待リーク電流のデリバティブは、各ネット上の感度測定を得るために逆方向に伝搬される。これは確率分析にもとづく強制ネットの変化が与えられるとき、総リーク電流の期待変化の計算を可能にする点で貴重である。
【００５０】
この情報は総リーク電流の期待変化の客観的測定が、例えば信号を強制するために必要な論理を追加する犠牲と比較される点で貴重である。従って、潜在的なネットワーク変更を選択する試行錯誤アプローチを取るのではなく、本発明の分析フェーズは感度分析を含み、感度に従い、ネットを通じて分類する追加のステップを要求する。こうしてローカル推定が状態確率及びスイッチング確率の期待変化から求められる。例えば、（反転）ＯＤＣ関数と特定のネットの状態関数とのＡＮＤを取り、新たなスイッチング確率及び状態確率を局所的に見い出し、次に感度情報を用いて局所変化の伝搬効果を推定する。ＯＤＣ関数とネットのオリジナル状態関数との間には、相関が有り得るので、単に状態確率に反転ＯＤＣ関数の確率を乗じるのではなく、このＡＮＤされた関数の確率を計算することが好ましい。この期待変化に設計の各ネットのリーク・デリバティブを乗し、それらを分類し、最初に最善のネットを取り出することが純粋にランダムなアプローチの改善である。
【００５１】
この時点で、分析はＯＤＣを用いて論理が強制され、スイッチング確率に関連してリークが低減される、ネットワーク内の位置の決定を含む。ＯＤＣを決定する分析は、更に次の基準にもとづくトレードオフにもとづく。すなわち、１）ＯＤＣ状態にある確率を最大化する、２）この状態にまたは状態からスイッチ・イン及びスイッチ・アウトする（高価である）確率を最小化する、及び３）計算の単純化であり、好適には、論理を強制する良い場所を見い出すために分析において感度が使用される。或いは、幾つかのネットをランダムに試し、最善のネットを拾い出すより単純な貪欲な方法が実行される。これはまた、ここで述べられるシミュレート化アニーリング手法に従い実行されてもよい。
【００５２】
この分析にもとづくこれらの方法の１つ、例えば試行錯誤法が、これらの摂動の１つを試行し、結果を測定する。すなわちこの方法の適用の結果が、ネット位置において固定状態を強制する場合、次のステップは例えば、１）到来した信号をゲートする、例えばその位置に追加のＯＲゲートを配置する（外部論理に配置する）こと、または２）そのことにより対象ゲートを置換し、従って追加の入力を有することとの間のトレードオフを評価する。ゲート化論理の配置を要求する第１のケースでは、論理の挿入が信号の遅延に影響し、信号の到来時刻に応じて他の伝搬信号の遅延にも影響し得る。論理の挿入が信号の遅延に影響する場合、この影響及び、遅延、パワー消費、ノイズなどの点で、その総性能的犠牲を緩和する他の変化がトリガされてもよい。或いは、余分な入力を有するネットにおいて、第１のゲートの置換を要求する第２のケースでは、例えば、ゲートの特性を示す関連ライブラリ素子が保持される。例えば、２入力ＮＡＮＤゲートでは、余分な入力を有する関連３入力ＮＡＮＤゲート・ライブラリ素子が保持される。この結果、ゲートの置換は同じ利点を提供し得るが、遅延またはパワー消費などは減少し、より良い代替実施例となる。従って設計においてパワーを低減する目的に加え、例えばチップ全体内で最も遅いパスが、そのチップ全体の実行速度を制限するという意味で、性能の制約が評価されなければならない。外部タイミング要求を満足しなければならない、すなわち、少なくともその速度が維持されなければならないチップ性能が指定されてもよい。換言すると、チップ遅延がこれらの要求を満足しない場合、チップは技術的に機能しない。同様に、ノイズ分析などの他の領域においても、満足されなければならない制約が存在したり、特定の状況の下でチップが機能しないかもしれない。従って、こうした機能制約に従い、パワー最小化が実施されなければならない。
【００５３】
アルゴリズム：
図８は、本発明の原理に従う論理システム設計方法を概念的に示すブロック図である。本発明の好適な実施例に従う方法２００は、操作されるネット・リストを入力する第１のステップを含む。次にステップ２０４で示されるように、追加のステップが、状態スイッチング、ＯＤＣ関数、及び確率の計算を要求し、ステップ２０６で、全体としてのネットワークの初期パワー計算を行う。次にステップ２１０で関数を保持しながら、ネットに論理変更を強制する。これは例えば、ネットを強制する１つ以上の場所を選択するステップと、バッファリングするステップと、クローン化するステップとを要求する。より詳細には、加えられる変更のタイプは、多くの従来の論理合成変更を含む。これらには、例えば、１）論理信号の極性の変更、２）ゲートのファクタリング、３）ゲートのクローン化（ゲートのコピーを生成し、そのファンアウトをオリジナルとコピーとの間で分配する）、４）バッファの追加、５）"再配線（rewiring）"変形の実行（ゲートへの論理信号の冗長な接続の追加及び削除）、６）"同期化（retiming）"変形の実行（論理アクセス・ラッチ境界の移動）が含まれる。物理情報（例えばブロック配置）の存在の下で、論理合成機能が実行される場合、変更は更に、７）新たな位置へのゲートの移動、及び８）ネットの経路指定の変更を含み得る。これらに加え、特にリーク・パワーの低減を目的とした新たなタイプの変更が実施され、それらには、９）ネット値がdon't careのとき、ネットをその低リーク状態に強制するゲートの追加、及び１０）所与の状態においてマスタ／スレーブ・ラッチの出力がdon't careの場合、スレーブ・ラッチを最低リーク・パワー状態に強制することなどが含まれる。余分な状態がネットワークの順次振舞いに追加され、ラッチ値が次に必要とされる前に、（マスタ・ラッチに記憶される）適正な論理値を１サイクルまたは半サイクル内にスレーブ内に強制する。また、１１）ゲート出力がdon't careのとき、余分なトランジスタを高リーク・パスに直列に配置する余分な入力がゲートに追加される。例えばハイであるＮＯＲゲートは、リークが発生する２つの並列ＮＦＥＴを有する。ゲートを２−１ＯＡＩ（or-and-invertゲート）に変換し、余分なＡＮＤにゲートの出力がdon't careでないときハイとなる入力を追加することにより、ゲートにおけるリークが低減される。
【００５４】
あるケースでは、論理ネットワークの大きな部分（多数のネット）が、同時にかなりの時間スリープ状態であり得る。これは例えば、未使用時に機能ユニット（例えばマルチプレクサ）がオフされる場合などにしばしば見受けられる。こうしたケースでは、変更タイプとして、変更セットを考慮することにより、より高機能な選択が行われ得る。これにより変更の間の相互作用が加味される。これは次のステップにより行われる。
【００５５】
ステップ１：リーク電流が低減されるべきサブネットワークを見い出す。サブネットワークの出力は、比較的長い時間安定である高い確率を有するdon't care関数を共用するべきである。１例は、体系的にスリープ状態に強制される機能ユニットの全ての出力である。こうしたサブネットワークはまた、共通カットセット内の全てのネットのＯＤＣのＡＮＤが１となる高い確率を有するように、サブネットワークの全ファンアウトをインタセプトする共通のカットセットを見い出すことによっても見い出される。例えば、図３において、サブネットワークは、ファンアウトがカット３５'により完全にインタセプトされる全てのネット及びブロックを含むように定義される。サブネットワークの入力はラッチか、論理値が強制される中間信号である。
【００５６】
ステップ２：各サブネット入力上の値を独立に０及び１に強制するために、どちらが最低リークを与えるかを判断する（すなわち一時的に入力を各値に強制する）。これはサブネットワーク入力の数の２倍に等しい、多数のパターン・アプリケーションを要求する（サブネットワーク入力が既にある値に強制されている場合、信号はその反対の値に強制される必要があるだけである）。値の変化の強制がパワーを低減しない場合、または入力を強制するために要求される追加の論理の犠牲が達成される利点を上回る場合、アプリケーションが実施され、所望の低リーク状態が見い出される。それ以外では、アプリケーションは最も有利な入力を、最大の利点をもたらすと決定された値に強制する。
【００５７】
ステップ３：改善が見い出されなくなるまで、ステップ２を繰り返す。
【００５８】
これらのステップの詳細が、図９乃至図１２に関連して述べられる。図９は、４つの入力ａ、ｂ、ｃ、及びｄを有する論理ネットワーク１００を示す。これらの入力から発する共有領域１０２、１０４、１０６及び１０８は、入力のそれぞれのファンアウト・コーンを表す。図示のように、入力ａ及びｂのファンアウト・コーンはオーバラップし、入力ｂ及びｃのファンアウト・コーンについても同様である。この例では、低リーク・ベクトルの探索は、全ての入力を０にセットすることにより開始され、入力を１または０にセットする強制する犠牲は、０と仮定される。より一般的なケースでは、これらの信号は既に、例えば前述のＢＤＤ法により決定される状態確率を有し、関連する犠牲を伴う追加の論理が、各入力を強制するために要求される。最も単純なアプローチでは、図１０に示されるように、各それぞれの入力について、その入力が単独で変化した場合、全体パワーの変化が決定される。次に、最大のパワー低減を示す入力（図１０で丸印で囲まれる）が選択され、その入力が変更される。このプロセスは、ステップ４で、もはやパワー改善が不可能になるまで繰り返される。
【００５９】
この方法の変形が図１１に示され、ここではそのファンアウト・コーンがオーバラップしない入力のクラスタを見い出す。ステップ２での有向探索の一部が、様々なサブネットワーク入力及びラッチのファンアウト・コーンの間のオーバラップを決定することにより並列に実行される。値を１つずつ強制する代わりに、ファンアウト・コーンがオーバラップしない、従って、リーク・パワーへの影響が相互作用しない任意の個数の値が強制されてもよい。これは前もって入力を非オーバラップ・コーンに区分化し、各区分から強制すべき高々１入力を選択することにより行われる。この例では、第１のクラスタが入力ａ、ｂ、ｃを含み、第２のクラスタが入力ｄだけを含む。前述のように、各基本入力に対してパワー変化が見い出されるが、最善のパワー低減を提供する各クラスタからの入力が選択される。図１１に示される例では、第１のクラスタから入力ｃが選択され、第２のクラスタから入力ｄが選択され、これらが同時に変化される。このアプローチは以降、パワー低減が不能になるまで繰り返される。図１１に示されるように、ステップ３では、可能な全ての変化がパワーを増加させる。
【００６０】
或いは、同時に強制され得る入力の最も大きなセットを表す最大１つの色分け可能セット（one-colorable set）を見い出すために、より高機能なグラフ色分けアルゴリズムが使用される。こうした色分けアルゴリズムは、検討中の各入力を強制することにより生成されるリーク低減量により重みづけされる。従って、図１２に示されるように、入力のグラフが作成され、ここでファンアウト・コーンがオーバラップしない任意の入力対の間にエッジが存在する。再度、各基本入力に対するパワー変化が決定される。その変化がパワーを低減する入力に対応するノードだけを含む、サブグラフの最大独立サブセットが見い出される。最大の独立セットは、最大の総重みを有するノードのセットであり（重みはノードを変化させることにより可能なパワー低減量である）、これはグラフ色分けアルゴリズム（graph coloring algorithm）により、単色で色分けされる。図１２に示される例では、パワー低減を示す全ての入力は独立であり、従って同時に変化され得る。この最大独立セット内の全てのノードは変化され、プロセスはステップ２で、もはやパワー低減が不能になるまで繰り返される。
【００６１】
或いは、衝突マトリックスを作成することにより、オーバラップが決定されてもよい。衝突マトリックスでは、２つのサブネットワークの入力のファンアウト・コーンがオーバラップするとき、"１"が入力される。次に、貪欲な方法により、同時に強制する入力のセットの選択が行われる。パワーを低減する最初の入力が、強制すべき入力として選択され、その後、強制される入力のセットに、ファンアウトがこれまでに追加された入力とオーバラップしない全ての入力が、１つずつ追加される。
【００６２】
別の実施例では、強制を受けない信号確率から開始するのではなく、サブネットワークの入力上の強制値のランダムに決定されたセットから開始することが可能である。様々なこうしたランダム開始ポイントが使用され、前述のように、有向探索が各々から実行される。このことは問題の空間において局所極小を回避する支援となる。シミュレート化アニーリング法はまた、前述の探索に適用され、局所極小を回避する。
【００６３】
図８に戻り、変更によりネットを強制した後、次のステップ２１２では、確率、関数、及びパワー計算などを更新する。次にステップ２１４で、許容可能な性能基準、すなわち、遅延、ノイズ、パワー消費などに従い、論理変更を保持する提案された関数を受諾するか、或いは拒否するかを決定する。次にステップ２２０では、移動が総合的な犠牲を低下させる場合、提案された論理変更が受諾され、この場合、強制される論理変更が設計において実施される。それ以外では、ステップ２２２で、提案された変更が拒否され、この場合には設計変更が行われない。提案された変更が受諾または拒否された後、プロセスはステップ２３０に進み、ここで追加の変更が加えられるべきか否かが判断される。この判断は、例えば、設計目標が満足されたか否か、或いは、プロセスのランタイムが指定限度値に達したか否か、または過去の何度かの繰り返しを通じて、意味のある改善が成されたか否かを確認することなどにより下される。更に追加の変更が行われるべきと判断される場合、プロセスは終了する。それ以外では、プロセスはステップ２１０にループして戻り、論理変更を保持する新たな関数が生成される。
【００６４】
次に、本方法全体の適用例について述べることにする。図１３は、本方法が適用される論理ネットワーク１５０を示す。各ネット、例えばネットＸ、Ｙ、Ｚ、Ｑ、Ｒは、シンクの数及び総配線長に関連付けられるサイズ（キャパシタンス）を有する。各ゲート、例えばゲートＧＸ、ＧＹ、ＧＺ、ＧＱ、ＧＲもまた、その出力ネットのサイズ、及びそのタイミング要求に関連付けられるサイズを有する（例えばタイミング要求が厳しいゲートほど長い）。各ネットのスイッチング・パワーは、１／２ｆｐＣＶ2である。ここでｆはクロック周波数、ｐはネット・スイッチング確率、Ｃはネット・キャパシタンス、Ｖは供給電圧である。これはネット・キャパシタンス及びスイッチング確率に比例する。各ゲートのリーク・パワーはゲート・サイズに比例する。論理ネットワーク１５０に使用されるゲートのリーク・パワーが、図１５乃至図１７の表に示される。各ゲートの値は、その状態が発生する確率と乗算され、合計がゲート・サイズと乗算されて、期待平均ゲート・リーク・パワーが得られる。ネット・スイッチング・パワーは、ネット・サイズにスイッチング・パワーを乗算した結果の１００倍として計算される。
【００６５】
ネット１５０の基本入力Ａ乃至Ｅにおける信号（状態）確率が、図１８に示され、一般にシステム・レベルのシミュレーションから導出される。スイッチング確率、すなわち、信号が所与の連続サイクル対の間で１から０に、または０から１に変化する確率が更に各信号に対して決定される。同様に、各ゲートに対して異なるリーク・パワーを生じる各入力条件の確率が決定される。これは前述のように、ＢＤＤにもとづく方法により行われる。１例として、ネットＸのＢＤＤ及びノード確率が図１９及び図２０に示される。各ネットの確率及び結果のスイッチング・パワーが、図２１に示される。各ゲートの確率及び結果のリーク・パワーが、図２２及び図２３に示される。これらから、ネットワークの総期待平均リーク・パワーは、１３．００３３となる。
【００６６】
ゲートＧＺは最も大きなリーク・パワーを有するので、ＯＤＣがネットＺについて生成され、リークを低減するために、ゲートＺへの別の入力が追加されるか否かを確認するために使用される。ゲートＺのＯＤＣは、NOT（A） OR （NOT（B） AND NOT（C））となり、Ｑ及びＲのＺに関して、ブール・デリバティブ（Ｚの全てのファンアウトを通るカットを形成する）を得ることにより決定され、この条件が真である確率は０．９２５である。この関数を表す信号は、論理ネットワーク内に存在しないが、信号Ａの反転がＯＤＣ（Ｚ）のサブセットであることが見い出される。ＢＤＤは、関数J AND NOT（K）を計算することにより、信号Ｊが信号Ｋのサブセットであるか否か（すなわちＪがＫを暗黙指定する）を判断するために容易に使用される。この関数が常に偽の場合、ＪはＫの有効なサブセットである。図１３の論理ネットワーク１５０の例に戻り、信号Ａは１である低い確率（従ってその反転は１である高い確率を有する）、及びスイッチングの低い確率を有するので、リークを低減するための良い候補である。ネットの有効なＯＤＣ（またはサブセット）の反転を、そのネットをドライブするＡＮＤまたはＮＡＮＤゲートへの入力として追加することが受け入れ可能であるので、ＡをゲートＧＺへの追加の入力として追加する試行が行われる。結果のネットワーク１５０'が図１４に示される。この変更されたネットワークにおける、各ネットの確率及び結果のスイッチング・パワーが図２４に示される。この変更されたネットワークにおける、各ゲートの確率及び結果のリーク・パワーが、図２５乃至図２７に示される。ネットワークの総期待パワーは、１０．４８７１５であり、これはオリジナル（この例では、リーク・パワー及びスイッチング・パワーの両方の低減を含む）よりも小さいので、変更が保存される。
【００６７】
以上、本発明は特にその好適な実施例について述べられてきたが、当業者であれば、前述の実施例の変更及び他の変更が、本発明の趣旨及び範囲から逸れることなく可能であることが理解できよう。
【００６８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６９】
（１）複数のネットを含む論理ネットワークのリーク・パワーを低減する方法であって、
ａ）前記論理ネットワーク内の１つ以上の第１のネットの可観測性don't care（ＯＤＣ：observability don't care）情報を決定するステップであって、前記ＯＤＣ情報が、前記第１のネットにおける入力値が前記論理ネットワークの出力値に影響しない前記入力値のセットを表し、前記ＯＤＣ情報が、前記論理ネットワークの前記第１のネットのスリープ状態を識別するために使用され、
ｂ）識別された前記スリープ状態の少なくとも１つの少なくとも一部の間に、前記第１のネットから選択された少なくとも１つのネットを、特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも１つのネットを決定する確率的分析を実行するステップと、
ｃ）前記期待パワー消費が低減されるとき、前記スリープ状態部分の間に、選択された前記ネットを前記特定の値に強制するステップと
を含む、方法。
（２）前記確率的分析を実行するステップが、
１つ以上の選択されたネットの各々が第１の論理状態であり、それぞれの第１のリーク・パワー特性値を有する確率と、選択された前記ネットの各々が第２の論理状態であり、それぞれの第２のリーク・パワー特性値を有する確率とを決定するステップと、
選択された前記ネットの各々に対して、前記第１の状態のパワー・リークをそのそれぞれの第１の状態確率値と乗算し、前記第２の状態のパワー・リークをそのそれぞれの第２の状態確率値と乗算するステップと、
選択された前記ネットに対して、結果のリーク・パワーを推定するステップとを含む、前記（１）記載の方法。
（３）選択された前記ネットの各々が、それぞれのネットをドライブする少なくとも１つのゲート素子の少なくとも１つの論理入力を供給し、前記方法が、前記ゲート素子の入力における更新された確率にもとづき、論理変更のファンアウト・コーン内のネットの確率を再計算するステップを含む、前記（２）記載の方法。
（４）前記確率的分析を実行するステップが、
選択された各ネットに対して、前記ネットが第１の論理状態から第２の論理状態に、或いは第２の論理状態から第１の論理状態にスイッチする確率を計算するステップと、
選択された各ネットが特定の状態になるであろう期間を決定するステップと、
選択された各ネットの結果のパワーを推定するステップと
を含む、前記（２）記載の方法。
（５）前記ＯＤＣ情報を決定するステップが、ＯＤＣのスイッチング確率を決定するステップを含む、前記（２）記載の方法。
（６）前記ステップｂ）において、特定の値に強制される少なくとも１つのネットの選択が、１つ以上の基準、すなわち、選択された前記ネットがＯＤＣ状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、前記（５）記載の方法。
（７）選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップｂ）が、前記ネットへの入力における論理信号の極性を変更するステップを含む、前記（５）記載の方法。
（８）選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップｂ）が、ゲートをファクタリングするステップを含む、前記（５）記載の方法。
（９）選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップｂ）が、ゲートのコピーを生成し、そのファンアウトをオリジナル・ネットとコピー・ネットとの間で分配するステップを含む、前記（５）記載の方法。
（１０）選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップｂ）が、１つ以上のバッファを追加するステップを含む、前記（５）記載の方法。
（１１）選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップｂ）が、ゲートへの論理信号の冗長な接続を追加及び削除するステップを含む、前記（５）記載の方法。
（１２）選択されたネットを特定の値に強制するシミュレーションを実行する前記ステップｂ）が、前記ネット値がdon't careのとき、前記ネットを低リーク状態に強制する回路を入力に追加するステップを含む、前記（５）記載の方法。
（１３）前記方法が、
選択された各ネットに対して、状態確率に関連してリーク・パワーのデリバティブを計算することにより、変更がその出力コーン内の論理のリークに与える総効果を決定するステップを含み、ネットの前記リーク・デリバティブが、前記ネットの状態確率の変化に関連付けられるリーク・パワーの変化を表し、
デリバティブ計算を前記ネットワークを通じて逆方向に伝搬させ、実行するステップを含む、前記（５）記載の方法。
（１４）期待パワー消費が低減されるネットを決定する前記ステップが、パワー消費節約の決定を含み、前記方法が、
強制されるネットのファンアウト・コーン内の回路のパワー消費への影響を考慮するステップを含む、前記（３）記載の方法。
（１５）期待パワー消費が低減されるネットを決定する前記ステップが、選択されたネットを、決定された値に強制するために使用される前記回路により要求されるパワー消費を考慮するステップを含む、前記（１２）記載の方法。
（１６）選択されたネットを強制する前記ステップｃ）に続き、前記ＯＤＣ及び確率情報を更新するステップｄ）を実行し、所定の条件が満足されるまで、ステップｂ）からｄ）を繰り返すステップを含む、前記（１）記載の方法。
（１７）前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、前記（６）記載の方法。
（１８）前記スリープ状態部分の決定が、前記論理ネットワークがスリープ状態の決定部分にある確率を最大化するステップを含む、前記（１）記載の方法。
（１９）前記スリープ状態部分の決定が、前記論理ネットワークがスリープ状態の決定部分に留まる時間を最大化するステップを含む、前記（１）記載の方法。
（２０）前記スリープ状態部分の決定が、スリープ状態の決定部分がスリープ状態の一部でもあるネットの数を最大化するステップを含む、前記（１）記載の方法。
（２１）異なるスリープ状態部分の間に、選択されたネットが異なる状態に強制されるようにＯＤＣ状態が区分化される、前記（１）記載の方法。
（２２）前記強制するステップが、幾つかのネットを同時に論理値に強制するステップを含み、前記強制するステップが、
各ネットを論理０及び論理１の両方に独立に設定し、各設定において期待パワー消費の変化を決定するステップと、
最大パワー節約を与える状態に強制される少なくとも１つのネットを選択するステップと、
所定の条件が満足されるまで、前記設定及び選択ステップを繰り返すステップと
を含む、前記（２０）記載の方法。
（２３）前記選択するステップが、オーバラップしないファンアウト・コーンを有するネットのセットを選択するステップを含む、前記（２２）記載の方法。
（２４）複数のネットを含む論理ネットワークのリーク・パワーを低減する方法であって、
ａ）前記論理ネットワーク内のネットの状態関数、スイッチング関数及びそれらの確率を計算し、前記論理ネットワークのネットのスリープ状態、及びその確率を識別するために使用される可観測性don't care（ＯＤＣ：observability don't care）関数を計算するステップと、
ｂ）１つ以上の前記ネットの初期パワー・リーク計算を計算するステップと、ｃ）前記１つ以上のネットの、少なくとも１つの選択されたネットの論理変更を保持する１つ以上の関数を決定し、スリープ状態の少なくとも一部の間に、前記選択されたネットを特定の値に強制する前記論理変更をシミュレートするステップと、
ｄ）前記論理ネットワークの選択されたネットに対して、前記状態関数、スイッチング関数、及びＯＤＣ関数を更新し、前記論理変更に照らして、これらの確率を更新するステップと、
ｅ）前記選択されたネットの強制の結果生じる、該ネットのパワー・リーク変化を計算するステップと、
ｆ）受け入れ可能な性能基準に従い、前記論理変更を保持する前記関数を受け入れるか拒否するかを決定するステップと
を含む、方法。
（２５）前記決定するステップが、受け入れ可能な性能基準が満足されるまで、前記ステップｃ）乃至ｆ）を繰り返すステップを含む、前記（２４）記載の方法。
（２６）前記受け入れ可能な性能基準が前記ネットワークのパワー消費を含む、前記（２５）記載の方法。
（２７）前記受け入れ可能な性能基準が前記ネットワークを通じる信号伝搬遅延を含む、前記（２５）記載の方法。
（２８）前記受け入れ可能な性能基準が前記ネットワーク内のノイズ・レベルを含む、前記（２５）記載の方法。
（２９）前記ステップｃ）における、特定の値に強制される少なくとも１つのネットの選択が、１つ以上の基準、すなわち、選択された前記ネットがＯＤＣ状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、前記（２４）記載の方法。
（３０）選択ネットを特定の値に強制する論理変更を保持する１つ以上の関数を決定する前記ステップｃ）が、
前記ネットへの入力において、論理信号の極性を変更するステップと、
前記ネットワークのゲートをファクタリングするステップと、
ゲートのコピーを生成し、そのファンアウトをオリジナル・ネットとコピー・ネットとの間で分配するステップと、
１つ以上のバッファを追加するステップと、
ゲートへの論理信号の冗長な接続を追加及び削除するステップと
を含む、グループから選択される１つ以上のステップを含む、前記（２４）記載の方法。
（３１）選択ネットを特定の値に強制する論理変更を保持する１つ以上の関数を決定する前記ステップｃ）が、前記ネット値がdon't careのとき、前記ネットを低リーク状態に強制する回路を入力に追加するステップを含む、前記（２４）記載の方法。
（３２）前記方法が、
選択された各ネットに対して、状態確率に関連してリーク・パワーのデリバティブを計算することにより、変更がその出力コーン内の論理のリークに与える総効果を決定するステップを含み、ネットの前記リーク・デリバティブが、前記ネットの状態確率の変化に関連付けられるリーク・パワーの変化を表し、
デリバティブ計算を前記ネットワークを通じて逆方向に伝搬させ、実行するステップを含む、前記（２４）記載の方法。
（３３）期待パワー消費が低減されるネットを決定する前記ステップが、パワー消費節約の決定を含み、前記方法が、
強制されるネットのファンアウト・コーン内の回路のパワー消費への影響を考慮するステップを含む、前記（３１）記載の方法。
（３４）期待パワー消費が低減されるネットを決定する前記ステップが、選択されたネットを決定された値に強制するために使用される前記回路により要求されるパワー消費を考慮するステップを含む、前記（３１）記載の方法。
（３５）前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、前記（２９）記載の方法。
（３６）前記スリープ状態部分の決定が、前記論理ネットワークがスリープ状態の決定部分にある確率を最大化するステップを含む、前記（２４）記載の方法。
（３７）前記スリープ状態部分の決定が、前記論理ネットワークが一旦スリープ状態の決定部分に入力したとき、該決定部分に留まる時間を最大化するステップを含む、前記（２４）記載の方法。
（３８）複数のネットを含む論理ネットワークのリーク・パワーを低減する方法を実行する、マシンにより実行可能な命令のプログラムを有する、前記マシンにより読取り可能なプログラム記憶装置であって、前記方法が、
ａ）前記論理ネットワーク内の１つ以上の第１のネットの可観測性don't care（ＯＤＣ：observability don't care）情報を決定するステップであって、前記ＯＤＣ情報が、前記第１のネットにおける入力値が前記論理ネットワークの出力値に影響しない入力値のセットを表し、前記ＯＤＣ情報が、前記論理ネットワークの前記第１のネットのスリープ状態を識別するために使用され、
ｂ）識別された前記スリープ状態の少なくとも１つの少なくとも一部の間に、前記第１のネットから選択された少なくとも１つのネットを、特定の値に強制するシミュレーションを実行し、期待パワー消費が低減される少なくとも１つのネットを決定する確率的分析を実行するステップと、
ｃ）前記期待パワー消費が低減されるとき、前記スリープ状態部分の間に、選択された前記ネットを前記特定の値に強制するステップと
を含む、方法。
（３９）前記確率的分析を実行するステップが、
１つ以上の選択されたネットの各々が第１の論理状態であり、それぞれの第１のリーク・パワー特性値を有する確率と、選択された前記ネットの各々が第２の論理状態であり、それぞれの第２のリーク・パワー特性値を有する確率とを決定するステップと、
選択された前記ネットの各々に対して、前記第１の状態のパワー・リークをそのそれぞれの第１の状態確率値と乗算し、前記第２の状態のパワー・リークをそのそれぞれの第２の状態確率値と乗算するステップと、
選択された前記ネットに対して、結果のリーク・パワーを推定するステップとを含む、前記（３８）記載の方法。
（４０）選択された前記ネットの各々が、それぞれのネットをドライブする少なくとも１つのゲート素子の少なくとも１つの論理入力を供給し、前記方法が、前記ゲート素子の入力における更新された確率にもとづき、論理変更のファンアウト・コーン内のネットの確率を再計算するステップを含む、前記（３９）記載の方法。
（４１）前記確率的分析を実行するステップが、
選択された各ネットに対して、前記ネットが第１の論理状態から第２の論理状態に、或いは第２の論理状態から第１の論理状態にスイッチする確率を計算するステップと、
選択された各ネットが特定の状態になるであろう期間を決定するステップと、
選択された各ネットの結果のパワーを推定するステップと
を含む、前記（４０）記載の方法。
（４２）前記ＯＤＣ情報を決定するステップが、ＯＤＣのスイッチング確率を決定するステップを含む、前記（３９）記載の方法。
（４３）前記ステップｂ）において、特定の値に強制される少なくとも１つのネットの選択が、１つ以上の基準、すなわち、選択された前記ネットがＯＤＣ状態にある確率が最大であるか否か、及び選択された前記ネットがこの状態にスイッチ・イン及びスイッチ・アウトする確率が最小であるか否かにもとづく、前記（４２）記載の方法。
（４４）選択されたネットを強制する前記ステップｃ）に続き、前記ＯＤＣ及び確率情報を更新するステップｄ）を実行し、所定の条件が満足されるまで、ステップｂ）からｄ）を繰り返すステップを含む、前記（３８）記載の方法。
（４５）前記スリープ状態部分が、全ての有効なスリープ状態のサブセットを含み、前記スリープ状態部分の計算が単純に計算される、前記（４４）記載の方法。
（４６）パワー消費が低減された集積回路素子であって、ネットにおける入力値のセットが、論理ネットワークの出力値に影響しないスリープ状態を取り得る、１つ以上のネットを含む論理ネットワークを含み、少なくとも１つの前記ネットが、確率的分析により予め決定された低パワー消費を示すように、特定の値に強制され、前記論理ネットワーク内の素子が、期待パワー消費が低減されるスリープ状態の間に、選択された前記ネットを前記特定の値に強制する集積回路素子。
【図面の簡単な説明】
【図１】図１は、ネット機能の時刻Ｘ01及びＸT1における信号スイッチング確率変化を示すＢＤＤツリー構造を示す図である。
【図２】論理ブロックを有する論理ネットワーク内において、ＯＣＤが計算される対象となるネットからの全てのパスをインタセプトするカットを定義する方法を示す図である。
【図３】論理ブロックを有する論理ネットワーク内において、ＯＣＤが計算される対象となるネットからの全てのパスをインタセプトするカットを定義する方法を示す図である。
【図４】単純なＡＮＤゲートの論理状態を強制する状況を示す図である。
【図５】単純なＡＮＤゲートの論理状態を強制する状況を示す図である。
【図６】単純なＡＮＤゲートの論理状態を強制する状況を示す図である。
【図７】本発明による感度分析において使用されるリーク・デリバティブのアプリケーション例を示す図である。
【図８】本発明の原理に従う論理システム設計方法を概念的に示すブロック図である。
【図９】図１０乃至図１２に従い、低リーク・ベクトル探索において使用される論理ネットワーク１００を示す図である。
【図１０】第１の探索アプローチに従い、図９のネットワークにおいて見い出される低リーク・ベクトルの結果を示す図である。
【図１１】クラスタリング・アプローチに従い、図９のネットワークにおいて見い出される低リーク・ベクトルの結果を示す図である。
【図１２】グラフ色分けアプローチに従い、図９のネットワークにおいて見い出される低リーク・ベクトルの結果を示す図である。
【図１３】本発明の方法に従い実行される確率的分析の対象となる論理ネットワーク１５０を示す図である。
【図１４】本発明の方法を適用により、リーク・パワーの低減のために設計された、図１３のネットワークに対応する結果の論理ネットワーク１５０'を示す図である。
【図１５】図１３の論理ネットワーク１５０において使用されるゲートのリーク・パワー・テーブルを示す図である。
【図１６】図１３の論理ネットワーク１５０において使用されるゲートのリーク・パワー・テーブルを示す図である。
【図１７】図１３の論理ネットワーク１５０において使用されるゲートのリーク・パワー・テーブルを示す図である。
【図１８】図１３の論理ネットワーク１５０の基本入力Ａ−Ｅに関する信号（状態）確率を示す図である。
【図１９】図１３の論理ネットワーク１５０のネットＸのＢＤＤ及びノード確率を示す図である。
【図２０】図１３の論理ネットワーク１５０のネットＸのＢＤＤ及びノード確率を示す図である。
【図２１】図１３の論理ネットワーク１５０内で示される各ネットの確率及び結果のスイッチング・パワーを示す図である。
【図２２】図１３の論理ネットワーク１５０の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図２３】図１３の論理ネットワーク１５０の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図２４】図１４の変更ネットワーク１５０'内の各ネットの確率及び結果のスイッチング・パワーを示す図である。
【図２５】図１４の変更ネットワーク１５０'の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図２６】図１４の変更ネットワーク１５０'の各ゲートの確率及び結果のリーク・パワーを示す図である。
【図２７】図１４の変更ネットワーク１５０'の各ゲートの確率及び結果のリーク・パワーを示す図である。
【符号の説明】
１０、１００、１５０  論理ネットワーク
１１  ＢＤＤツリー構造
１２  最左端分岐
１３  最右端分岐
１６  分岐
１８  パス
３５  カット
４０  対象ネット
７０、８０、８２  ＡＮＤゲート
７２  ＯＲゲート
７３  インバータ
１０２、１０４、１０６、１０８  共有領域
【図１】
0003836715.tif 000003
【図２】
0003836715.tif 000004
【図３】
0003836715.tif 000005
【図４】
0003836715.tif 000006
【図５】
0003836715.tif 000007
【図６】
0003836715.tif 000008
【図７】
0003836715.tif 000009
【図８】
0003836715.tif 000010
【図９】
0003836715.tif 000011
【図１０】
0003836715.tif 000012
【図１１】
0003836715.tif 000013
【図１２】
0003836715.tif 000014
【図１３】
0003836715.tif 000015
【図１４】
0003836715.tif 000016
【図１５】
0003836715.tif 000017
【図１６】
0003836715.tif 000018
【図１７】
0003836715.tif 000019
【図１８】
0003836715.tif 000020
【図１９】
0003836715.tif 000021
【図２０】
0003836715.tif 000022
【図２１】
0003836715.tif 000023
【図２２】
0003836715.tif 000024
【図２３】
0003836715.tif 000025
【図２４】
0003836715.tif 000026
【図２５】
0003836715.tif 000027
【図２６】
0003836715.tif 000028
【図２７】
0003836715.tif 000029