(57)【特許請求の範囲】
【請求項１】
集積回路の動作確率をコンピュータを用いて計算することにより、前記集積回路の電力を評価する方法において、
前記集積回路内の各ゲートの入力となっている複数の信号間の最小遅延時間差をコンピュータが計算する手順と、
この最小遅延時間差に基づいて、コンピュータが前記ゲートの入力をグループ分けする手順と、
このグループ分けされた各々のグループに対し、各ゲートの入力となっている複数の信号間の相関に基づいて、前記グループに属する各々の信号に関する各ゲートの出力ノードの論理値が１になる確率である信号確率、及び、各ゲートの出力ノードの論理値が変化する確率であるスイッチング確率を含むゲートの出力ノードに関する確率の計算をコンピュータが行う手順と、
このゲートの出力ノードに関する確率を用いて前記集積回路の電力を評価する手順と、
を有することを特徴とする集積回路の電力評価方法。
【請求項２】
前記ゲートの出力ノードに関する確率の計算する際に、
前記集積回路内の２つ以上のノードが同一の信号に依存している場合に、この信号の確率に関するマルコフ性を仮定し、前記信号に起因する相関による確率計算の誤差が予め設定された要求誤差より小さい場合には、それらのノード間の前記信号に関する相関を無視して前記出力ノードに関する確率をコンピュータが計算することを特徴とする請求項１記載の集積回路の電力評価方法。
【請求項３】
前記ゲートの出力ノードに関する確率の計算する際に、
２つ以上のノードが同一の信号Ｘに依存している場合に、信号Ｘの論理値に関する確率が、規定された最大許容誤差をＥｒｒｏｒ、信号Ｘが論理値０をとる確率をＰ（Ｘ）、信号Ｘが論理値１を取る確率を
0003699901.tif 000105
の条件を満たす場合に、規定された最大許容誤差内でそれらのノード間の信号Ｘに関する相関を無視して前記出力ノードに関する確率をコンピュータが計算することを特徴とする請求項１記載の集積回路の電力評価方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は集積回路の電力の評価方法に関し、特に、集積回路内の論理回路の信号確率やスウィッチング確率等を用いて集積回路の電力の評価を行う方法に関する。
【０００２】
【従来の技術】
集積回路、特に、ＣＭＯＳ集積回路内の消費電力の原因は大別して、リーク電流による消費電力、貫通電流による消費電力、充放電による消費電力が挙げられる。
【０００３】
これらのうち、リーク電流による消費電力、貫通電流による消費電力の２つの原因による消費電力は充放電による消費電力に比べて無視できるほど小さい。従って、消費電力を見積もるときには、第一に充放電による効果を調べることが効果的である。ここで、充放電による消費電力とは、回路内のひと続きの配線（以下、ネットまたはノードと呼ぶ）の電位の変化（以下、スウィッチングと呼ぶ）により、そのノードの駆動する容量に対して充放電が起こったときに流れる電流によって消費される電力のことである。ノードＺにおける充放電による平均の消費電力Ｐｏｗ（Ｚ）はおおよそ次の式で見積もることが出来る。
【０００４】
【数１】
0003699901.tif 000002
ここでＶDDは電源電圧、ＣZ はノードＺの駆動する容量、Ｄ（Ｚ）はノードＺにおける単位時間あたりのスウィッチングの回数の平均値（以下、遷移密度と呼ぶ）である。
【０００５】
特に、回路がクロックに同期して動作している場合には式(1) は、
【数２】
0003699901.tif 000003
と書ける。ここでｆはクロック周波数、Ｎ（Ｚ）はノードＺにおける１クロックあたりの平均充放電回数である。式(1) により、ＶDD，ＣZ が知られている場合にはＤ（Ｚ）を求めることにより、消費電力を見積もることが出来る。従って遷移密度Ｄ（Ｚ）を見積もることが消費電力予測の中心課題となる。この遷移密度を見積もる方法は、第１の方法としてシミュレーションに基づく方法と、第２の方法として確率計算に基づく方法とがある。
【０００６】
第１の方法では、論理回路の入力端子（以下、プライマリー・インプットと呼ぶ）へ入力パターンデータ（以下、テストベクトルと呼ぶ）を入力し、回路内の各ノードにおけるスウィッチングの回数を計測することによって遷移密度を見積もる。この方法では流すテストベクトルの長さが長いほど精度が上がるがそのために費やす時間はそれだけ大きくなる。
【０００７】
第２の方法では、実際にテストベクトルを流さずに、各プライマリー・インプットの遷移密度に関する情報のみを与え、確率計算により遷移密度の内部ノードへの伝播を見積もる。即ち、回路全体の入力（以後これをプライマリー・インプットと呼ぶ）に関する確率量、例えば信号の論理値が１になる信号確率や信号の論理値が変化する確率であるスウィッチング確率を入力としてその内部ノードへの伝播を調べ、各ノードでのスウィッチング確率Ｐswを計算し、
Ｐｏｗ＝ＰSWＰｏｗ（/switch)    (3)
という式に従って消費電力Ｐｏｗｅｒを求める方法である。ただし、ＰSWは信号の論理値が変化する確率（スウィッチング確率、または動作確率ともいう）であり、Ｐｏｗ（/switch)は１回の信号の変化に伴う消費電力である。この方法は原理的にはテストベクトルを必要とせず、実行時間は比較的短いが、信号の再収斂、順序回路、及び内部浮遊ノードを取り扱うのに問題がある。
【０００８】
信号の再収斂とは、あるノードがいくつかの論理ゲートの入力ノードとなっており、それらの論理ゲートの出力を次々に辿っていくとある同一の論理ゲートの入力となっていることをいう。このときにはその論理ゲートの入力のうち相異なる二つの入力ノードで同一のプライマリー・インプットに依存するものが存在することになる。一般に、相異なる二つのノードＡ，Ｂの依存するプライマリー・インプットの集合が空でない共通部分をもつならば、Ａ，Ｂ間には信号間相関がある、或いは簡単に、Ａ，Ｂ間には相関がある、という。従って、ある論理ゲートの入力ノードの中に信号間相関のある二つのノードが存在するならば、信号の再収斂が起きていることになる。このようなことが起きている場合にあるゲートの出力ノードの厳密な遷移密度を計算するためには、同一のノードから発した信号が異なる２つ以上の経路を通ってそのゲートにたどり着いたかどうかを調べなくてはならず、もしそうなっている場合には計算複雑度が指数関数的に増大するために現実的な時間内で計算を実行することは一般に不可能となる。
【０００９】
順序回路では、あるゲートの出力がめぐりめぐって同じゲートに入る場合が起こり、そのようなループ上のノードにおける遷移密度は自分自身に依存することになり、入力から出力への遷移密度の伝播という概念ではとらえきれなくなり、遷移密度計算が困難になる。
【００１０】
内部浮遊ノードはハイ・インピーダンス状態などの不確定論理値をもたらし、やはり遷移密度計算を困難にする。
【００１１】
このうち原理的に最も重要であるのが信号の再収斂の問題である。これを厳密に解こうとすると指数関数的な計算時間を必要とすることが知られており、現実には実行不可能である。そのために近似的な方法に頼るしかないが、そのような方法として現在までに次のようなアルゴリズムが提案されている。
【００１２】
（ｉ）ＣＯＰ
（ii）ＤＷＡＡ（Dynamic Weighted Averaging Algorithm）
（iii)ＣＣＭ（Correlation Coefficient Method）
第１の方法であるＣＯＰとは各ゲートの入力を全て独立とみなす方法である。従って信号間相関は全く無視してしまうことになり、上記の方法中、精度的には最悪であるが実行時間は最も小さい。
【００１３】
第２の方法であるＤＷＡＡとは信号間相関を起こしている各ノードの論理値を０，１に固定してＣＯＰを適用する方法であり、信号間相関の第一次の効果を考慮に入れている。この方法はS.Ercolani, M.Favalli, M.Damiani, P.Olivo, B.Ricco，“Estimate of Signal Probability in Combinational Logic Networks”，European Test Conf.,pp.132-138,1989.（以下、この論文をＥＦＤＯＲと呼んで参照する）で紹介され、ＣＯＰよりも精度がよい。
【００１４】
第３の方法であるＣＣＭはＤＷＡＡと同じ論文ＥＦＤＯＲで初めて紹介され、R.Marculescu, D.Marculescu, M.Pedram，“Switching Activity Analysis Considering Spatiotemporal Correlations ”International Conference on CAD-94,pp.294-299,1994．（以下、この論文をＭＭＰと呼んで参照する）で確立された方法であり、上に述べた方法の中で最も精度が高い。この方法は、ノード間の信号間相関の度合いを相関係数という量で表し、３つ以上のノード間の相関係数を２つのノード間の相関係数の積で近似することにより、計算を行っている。ＣＣＭはＣＯＰやＤＷＡＡよりも精度が良いが多少時間がかかるのが難点である。しかし精度が良いといってもまだ不十分であり、論文ＭＭＰでは回路分割をしてＣＣＭとＢＤＤを組み合わせることにより精度を向上させることを提案している。しかし、そのときの計算複雑度はかなり大きなものになり、シミュレーションを実行した方が効率が良い場合があることが予想される。これでは確率計算に基づく方法の長所が全く失われてしまう恐れがある。
【００１５】
また、確率に基づく方法は精度の入力データ依存性が強く、遅延時間についても考慮されていない。しかし時間的に離れた信号は独立とみなせる（F.N.Najm，“Improved Estimation of the Switching Activity for Reliability Prediction in VLSI Circuits ”，Custom Integrated Circuits Conf., pp.429-432,1994.) ので遅延時間差が大きい信号間の相関を無視できる場合がある。しかしこの論文には信号間相関を無視できるような時間的距離が提示されていない。
【００１６】
ところで、実際のＬＳＩの動作を解析するには平均電力だけでなく瞬時電力も知る必要がある。たとえば電源電圧変動に起因するノイズの問題を解析するには瞬時電力または瞬時電流が必要となる。しかし、時間のかかるシミュレーションを用いた手法はあるものの、シミュレーションを用いない瞬時電力の計算法はまだ具体的に開発されていない。Najm等による“Probabilistic simulation for reliability analysis of CMOS VLSI circuits.”IEEE Trans.CAD 9(4),pp.439-450，April,1990、やR.Burch による“Pattern-Independent Current Estimation for Reliability Analysis of CMOS Circuits”，pp.294-299,25th DA Conf.,1988.などがあるが、確率波形という概念を用いて計算している。しかし実際のＬＳＩの設計においては、ＣＰＵならばプログラム、信号処理用のＬＳＩならば入力データと言うように具体的な入力パターンによる電流や瞬時電力の変化を知る必要がある。特に、電源系のノイズなどを考える場合は電源系の短時間の振る舞いが分からなければならない。従来提案されている手法はこれらの目的には不十分なものであった。
【００１７】
【発明が解決しようとする課題】
以上のように、シミュレーションに基づく方法は、テストベクトルを多く入力すれば精度は向上するが大量の時間を要する。その一方、確率計算に基づく方法は比較的短時間で実行可能であるが、精度的に問題があり、この精度の入力データに依存するため、誤差を規定することが難しいという問題点があった。
【００１８】
本発明は、上記問題点を解決するためになされたものであり、その目的とするところは、高精度かつ短時間で効率よく実行できる集積回路の電力評価方法を提供する事にある。
【００１９】
【課題を解決するための手段】
上記目的を達成するため、第１の発明の第１の構成は、複数の論理ゲートを接続して構成される論理回路を備える集積回路の電力の評価を行う方法において、各論理ゲートの出力ノードの論理値が１になる確率（以下、信号確率と記す）、及び、各論理ゲートの出力ノードの論理値が変化する確率（以下、スウィッチング確率と記す）に代表される出力ノードに付随する確率量に対して、その確率量の厳密な値Ｐe と、論理ゲートの入力を全て独立として計算した値Ｐa との差Ｐe −Ｐa を、回路全体の入力信号に対応する当該確率量に関して級数展開し、そのうちの有限個の項を補正項として求め、前記Ｐa の値にその補正項を加えたものを上記確率量の近似値として集積回路の電力評価を行うことを特徴とする。
【００２０】
また、第１の発明の第２の構成は、複数の論理ゲートを接続して構成される論理回路を備える集積回路の電力の評価を行う方法において、前記論理回路を複数の論理ゲートから構成される論理モジュールの集合に分割し、前記各論理モジュールに属する各ノードの論理値をその論理モジュールの入力信号の論理関数として表し、信号確率やスウィッチング確率に代表されるそのノードに付随する確率量に対して、その確率量の厳密な値Ｐe と、論理モジュールの入力を全て独立として計算した値Ｐa との差Ｐe −Ｐa を、回路全体の入力信号に対応する当該確率量に関して級数展開し、そのうちの有限個の項を補正項として求め、前記Ｐa の値にその補正項を加えたものを上記確率量の近似値として集積回路の電力評価を行うことを特徴とする。
【００２１】
ここで、前記論理回路の任意のノードのスウィッチング確率に、そのノードの駆動容量と電源電圧の２乗とクロック周波数を乗じた値を、そのノードの充放電による消費電力として集積回路の電力評価を行うことが好ましい。
【００２２】
また、前記論理回路の任意のゲートの任意の入力遷移パターンの起こる確率に、その入力遷移パターンが起こった場合の１遷移あたりの消費電力を乗じた値を、そのゲートにおける当該入力遷移による平均消費電力として集積回路の電力評価を行うことが好ましい。
【００２３】
上記目的を達成するため、本願発明に係る集積回路の動作確率をコンピュータを用いて計算することにより、前記集積回路の電力を評価する方法は、前記集積回路内の各ゲートの入力となっている複数の信号間の最小遅延時間差をコンピュータが計算する手順と、この最小遅延時間差に基づいて、コンピュータが前記ゲートの入力をグループ分けする手順と、このグループ分けされた各々のグループに対し、各ゲートの入力となっている複数の信号間の相関に基づいて、前記グループに属する各々の信号に関する各ゲートの出力ノードの論理値が１になる確率である信号確率、及び、各ゲートの出力ノードの論理値が変化する確率であるスイッチング確率を含むゲートの出力ノードに関する確率の計算をコンピュータが行う手順と、このゲートの出力ノードに関する確率を用いて前記集積回路の電力を評価する手順と、を有することを特徴とする。
【００２６】
また、第３の発明の第１の構成は、集積回路の消費電力を予測してその評価を行う方法において、一次入力端子に時系列的に与えられる入力パターンの集合を時間的区間で分割するステップと、各時間区間ごとの一次入力端子に与えられるパターンの統計・確率的特性を計算するステップと、各時間区間の消費電力を当該統計・確率特性より算出するステップと、各時間区間の算出された消費電力を時系列的に配列するステップと、を行うことを特徴とする。
【００２７】
また、第３の発明の第２の構成は、論理回路の入力端子に統計・確率量を与え、当該確率量の伝搬を評価することにより集積回路の電力を評価する方法において、対象回路の入力端子に与えられる入力信号または入力信号特性を用いて電力評価を行う前に、当該集積回路の回路構造または回路動作の記述を入力し、電力予測に必要とする評価式またはデータ構造に変換して記憶装置に格納し、該評価式またはデータ構造を電力予測に複数回利用する事を特徴とする。
【００２８】
また、第３の発明の第３の構成は、集積回路の電力評価方法において、評価の単位となる集積回路の部分回路を着目した回路系統ごとに分類し、所望の部分回路の集合に対して消費電力および電源電流を出力できる事を特徴とする。
【００２９】
【作用】
第１の発明の構成によれば、各ゲートの入力を独立とみなして計算された確率量を補正することにより、高精度、かつ高速に、組み合わせ論理回路の各ノードに対する信号確率、スウィッチング確率の計算が実行できる。さらに回路分割を行い、ＢＤＤを使用することにより、精度を高めることも可能である。
【００３０】
第２の発明の構成によれば、遅延時間差および入力の確率値を考慮して規定された最大許容誤差内で信号間相関を無視することにより論理回路の動作確率の計算を軽減できる。
【００３１】
更に、第３の発明の構成によれば、回路シミュレータや論理シミュレータを用い長時間の計算をする事なく論理回路内部での時々刻々変化する電力を知る事ができる。さらに第３の発明により電力計算に必要な時間がシミュレータ方式と比較して大きく節約可能となる。また時間区間の精細度を調整する事によって所望の精度で電力の変化を調べる事ができる。また、各時間区間ごとに繰り返し計算するべき処理を一度にまとめて処理できるため計算効率向上が図れる。更に、設計者は任意の部分回路の消費電力を評価・比較する事が可能となる。
【００３２】
【実施例】
以下に本発明に係る集積回路の電力評価方法の実施例を図面を参照しながら説明する。
【００３３】
第１実施例
以下、第１の発明に関する実施例について説明する。ここでは、まず本発明を理解するために必要な諸定義について述べてから実施例について述べることにする。第１実施例では本発明を信号確率に適用した場合について述べ、第２実施例では本発明をスウィッチング確率に適用した場合について述べる。また、第３実施例では第１実施例，第２実施例の方法によるノード、およびゲートの消費電力見積方法を示し、第４実施例では第３実施例の見積方法を利用した論理回路最適化の例を示す。
【００３４】
以下でいう論理回路とは、順序回路を含まない組み合わせ論理回路のことをいう。この論理回路のプライマリー・インプットの個数をｎとし、それらをｘ1 ，…，ｘn と記述する。プライマリー・インプットｘi （ｉ＝１，…，ｎ）の時刻ｔにおける論理値をｘi （ｔ）と書く。時刻に対する依存性を無視してｘi と書くこともある。従ってｘi という記号はプライマリー・インプットの名前とその論理値の両方に用いられるが、その区別は重要ではない場合が多いので混乱はない。一般に論理回路の任意のノードはプライマリー・インプットｘ1 ，…，ｘn の論理関数となるがそれらについても同様である。すなわち、ノードＺに対してＺという記号はそのノードの名前と時刻を無視した論理値の双方の意味を持つ。以下では断り無しに論理関数といえばプライマリー・インプットｘ1 ，…，ｘn の論理関数のことをいう。
【００３５】
論理回路とプライマリー・インプットに対して次の３つの事柄を仮定する。
【００３６】
（１）確率の時間並進不変性
（２）プライマリー・インプットの相互独立性
（３）遅延時間０
【００３７】
仮定（１）は、
【数３】
0003699901.tif 000004
が任意の時刻ｔ、ｔij（ｊ＝１，…，ｎi ；ｉ＝１，…，ｎ）、およびαij＝０，１（ｊ＝１，…，ｎi ；ｉ＝１，…，ｎ）に対して成り立つことを意味する。
【外３】
0003699901.tif 000005
の論理関数Ｘに対してＸが論理値１を持つ確率をＰ（Ｘ）と記述し、これを論理関数Ｘに対する確率と呼ぶことにする。この仮定により特に一つの時刻にのみ依存する任意の論理関数Ｘ（ｔ）に対してＰ（Ｘ（ｔ))は時刻ｔに依存しないことがいえる。よってＰ（Ｘ（ｔ))をＰ（Ｘ）と書くことにする。また、二つ以上の時刻に依存する論理関数に対する確率は時刻の差のみに依存することがいえる。
【００３８】
仮定（２）は、
【数４】
0003699901.tif 000006
が任意の時刻ｔij（ｊ＝１，…，ｎi ；ｉ＝１，…，ｎ）、およびαij＝０，１（ｊ＝１，…，ｎi ；ｉ＝１，…，ｎ）に対して成り立つことを意味する。ただし、同一のプライマリー・インプットの時間に関する独立性は仮定されていないので、例えば時刻ｔ1 ，ｔ2 に対してＰ（ｘ1 （ｔ1 ）ｘ1 （ｔ2 ))とは一般に異なる。
【００３９】
仮定（３）は、論理回路の内部ノードのある時刻での論理値は、同じ時刻でのプライマリー・インプットの論理値によって定まることを意味する。すなわち、回路中の任意のノードＺの時刻ｔでの論理値はただ一つの時間にのみ依存し、Ｚ（ｔ）と書くことができる。従って任意のノードＺに対する時刻ｔでの確率はＰ（Ｚ）と書ける。これをノードＺの信号確率と呼ぶ。
【００４０】
回路中のノードのようにただ一つの時刻のみ依存する任意の論理関数Ｘ（ｔ）を積和形式で表すと
【数５】
0003699901.tif 000007
【外４】
0003699901.tif 000008
理値をとる。式(39)と次に述べる定理は以下の文章でたびたび参照されることになる。
【００４１】
定理０．１
Ｘ（ｔ），Ｙ（ｔ）をただ１つの時刻のみに依存するプライマリー・インプットの任意の論理関数とすると任意のｔ1 ，ｔ2 に対して
【数６】
Ｐ（Ｘ（ｔ1 ）Ｙ（ｔ2 ))＝Ｐ（Ｘ（ｔ2 ）Ｙ（ｔ1 ))    (7)
が成り立つ。
【００４２】
（証明）Ｘ，Ｙを積和形式に展開して式(39)の形で表すと、この定理は任意のｉ（ｉ＝１，…，ｎ）に対して
【数７】
0003699901.tif 000009
が成り立ち、Ｐ（ｘi （ｔ))が時刻ｔに依存しないことを用いると、
【数８】
0003699901.tif 000010
が成り立つ。                                                （証明終）
ｘi を任意のプライマリー・インプット、Ｘを任意の論理関数とすると
【数９】
0003699901.tif 000011
式(46)をプライマリー・インプットｘi に関するＸのShannon 展開という。また
【外５】
0003699901.tif 000012
ぶ。ここで、Ｘに対する上付きの添え字０，１は論理的な否定や肯定を意味するものではないことに注意されたい。例えばプライマリー・インプットｘi に対し
【外６】
0003699901.tif 000013
うに同じ記号を使うのはまぎらわしいが、今の場合Ｘi という量が定義されていないので間違いを犯すことは少ない。以下の文においてもこの記号の意味の判断に迷うことは希であろう。
【００４３】
次にスウィッチング確率の定義とその遷移密度との関係について述べる。
【００４４】
τをその時間内で高々一回しかスウィッチングの起こらないような時間間隔と
【外７】
0003699901.tif 000014
チング確率ＰSW（Ｚ；τ）を時間が間に論理値の変化する確率として定義する。従って
【数１０】
0003699901.tif 000015
と書くことが出来る。
【００４５】
スウィッチング確率は時間τの間に起こるスウィッチングの回数の平均値であり遷移密度と次のような関係にある。
【００４６】
【数１１】
0003699901.tif 000016
なお、以上の記述では論理回路として暗にＣＭＯＳ論理回路を想定しているため、スウィッチング確率に注目しているが、ダイナミック回路やレシオ型の回路においては信号確率によって消費電力を見積もることができる。
【００４７】
次に、本発明（以下、ＢＡＭと呼ぶ）による信号確率の計算方法を示す。
【００４８】
（１）まず最初にＺが２入力ＡＮＤゲートの出力ノードである場合について説明する。このゲートの入力ノードをＡ，Ｂとすると、明らかに
Ｚ＝ＡＢ      (19)
の関係がある。式(6) をＡ，Ｂに対して適用すると
【数１２】
0003699901.tif 000017
となる。式(20)は２入力ＡＮＤゲートの出力の信号確率を表す厳密な式であるが、それを直接計算することは既に述べたようにＮＰ困難である。従って厳密に計算することはあきらめて、何らかの近似をする必要がある。最も簡単な近似法は論理ゲートの入力を全て独立とみなしてしまうＣＯＰであるが、実験してみるとわかるようにＣＯＰによる近似はあまり精度が良くない。従って、もう一段高い精度を得ることのできる近似方法が必要になる。そのために厳密な信号確率Ｐ（ＡＢ）とそのＣＯＰによる近似Ｐ（Ａ）Ｐ（Ｂ）との違いを調べる。Ａ，Ｂを式(6) のように積和形式で表し、Ｐ（Ａ），Ｐ（Ｂ）を計算して積をとると
【数１３】
0003699901.tif 000018
と定めると
【数１４】
Ｐ（ＡＢ）＝Ｆ（χ），Ｐ（Ａ）Ｐ（Ｂ）＝Ｆ（η）    (24)
となる。従ってＰ（ＡＢ）とＰ（Ａ）Ｐ（Ｂ）の差は
【数１５】
Ｐ（ＡＢ）−Ｐ（Ａ）Ｐ（Ｂ）＝Ｆ（χ）−Ｆ（η）    (25)
と表すことができる。この式をTaylor展開し、その第一次までの項をとると、
【数１６】
0003699901.tif 000019
となる。この式の右辺をもっと簡単な式で表すために、Ｆ（η）＝Ｐ（Ａ）Ｐ（Ｂ）の右辺のＡ，Ｂをｘi に関してShannon 展開すると
【数１７】
0003699901.tif 000020
となる。この式によればＰ（Ｚ）の近似値を計算するためにはゲート入力Ａ，Ｂ
【外８】
0003699901.tif 000021
【数１８】
0003699901.tif 000022
となり、Ｐ（Ｚ）を計算したのと同様にTaylor展開することで計算できる。しか
【外９】
0003699901.tif 000023
０次の項までとることになり、
【数１９】
0003699901.tif 000024
式(31)，(35)が２入力ＡＮＤゲートに対するＢＡＭの基本式である。
【００４９】
以下では式(31)および、式(35)の右辺をそれぞれＰ（Ａ）＊Ｐ（Ｂ），Ｐ（Ａ
【外１０】
0003699901.tif 000025
【数２０】
0003699901.tif 000026
このように各ノードに対して、そのノードの信号確率（Ｐ（Ａ))と、そのノードの各プライマリー・インプットに関するShannon 展開の係数（cofactor）に対す
【外１１】
0003699901.tif 000027
してゆくのがＢＡＭの特徴である。
【００５０】
（２）ＢＡＭとＣＯＰの異なる点は式(35)の計算を行わなければならないことと、式(31)の右辺第２項が存在することである。式(31)の右辺第１項は注目する論理ゲートにＣＯＰを適用して計算されたものに他ならないので、式(31)の右辺第２項はそれに対する補正項とみなされる。ここではこの補正項の意味について述べる。この補正項の意味を一言で述べるとブール代数と実数体の演算規則の違いに対する補正であるといえる。それを説明するために簡単な例を挙げて説明する。
【００５１】
図２のような論理回路では
Ａ＝ｘ1 ｘ2 ，Ｂ＝ｘ2 ｘ3     (38)
となっているのでＺの厳密な信号確率Ｐext （Ｚ）は
【数２１】
0003699901.tif 000028
である。一方、ＣＯＰによる近似値Ｐcop （Ｚ）は
【数２２】
0003699901.tif 000029
となっている。Ｐext （Ｚ）とＰcop （Ｚ）の違いは式(72)と式(73)の３行目から４行目へ移行するときのブール代数で成り立つ関係
ｘ2 ｘ2 ＝ｘ2         (41)
と実数体で成り立つ関係
Ｐ（ｘ2 ）Ｐ（ｘ2 ）＝Ｐ（ｘ2 ）2     (42)
【外１２】
0003699901.tif 000030
（ｘ1 ）Ｐ（ｘ3 ）であるから、ＢＡＭによるＺの信号確率の近似値Ｐbam （Ｚ）は
【数２３】
0003699901.tif 000031
となり、厳密な値Ｐext （Ｚ）に一致する。この補正項を書き直せば
【数２４】
0003699901.tif 000032
であり、先に述べたｘ2 に関するブール代数の演算と実数の演算との差が現れる。つまり、この補正項はＰcop （Ｚ）の中に現れるＰ（ｘ2 ）2 をＰext （Ｚ）の中のＰ（ｘ2 ）に引き戻す役割を演じているのである。
【００５２】
ここに挙げた論理回路ではＢＡＭによる補正が厳密な値を与えたが、一般の論理回路では必ずしもそうなってはいない。たとえばＰ（ｘ1 ）2 Ｐ（ｘ2 ）2 という項がＣＯＰで計算された信号確率の中に現れた場合、ＣＯＰを補正して厳密な信号確率を得るためにはＰ（ｘ1 ）2 とＰ（ｘ2 ）2 とを同時にそれぞれＰ（ｘ1 ），Ｐ（ｘ2 ）に引き戻さねばならないが、ＢＡＭでは各プライマリー・インプットに対して一度ずつしかこの引き戻しを実行しない。つまり、この場合のＢＡＭによる補正項は
【数２５】
0003699901.tif 000033
となり、これは一般には
【数２６】
Ｐ（ｘ1 ）Ｐ（ｘ2 ）−Ｐ（ｘ1 ）2 Ｐ（ｘ2 ）2     (46)
とは異なる。もし、この引き戻しも行いたいと思うならば式(26)でTaylor展開のより高次の項を考慮しなければならない。しかし、容易に分かるようにｋ次までのテーラー展開をとった場合には信号確率の計算にｎk Ｇ（Ｇはゲート数）のオーダーの計算時間を要することになり、プライマリー・インプットの数ｎが大きくなるにつれ、これはたとえばｋ＝２の場合ですら加速度的に増大する。従って現実的な計算時間としては上に述べたｋ＝１の場合が適当なのである。
【００５３】
（３）次にＺがインバーターの出力ノードである場合について説明する。インバーターの入力ノードをＡとすると
【数２７】
0003699901.tif 000034
となる。
【００５４】
全ての論理回路は２入力ＡＮＤゲートとインバーターで展開できるので式(31)，(35)，(48)，(51)により、ＢＡＭによる計算を任意の論理回路に適用することができる。
【００５５】
（４）ここでＢＡＭによる誤差を評価する。
【００５６】
【外１３】
0003699901.tif 000035
べたように
【数２８】
0003699901.tif 000036
となる。ただし、等号はＰ（ｘi ）＝０．５のときに成り立つ。従って、式(31)の誤差は０．２５2 ＝０．０６２５程度である。同様に、式(35)の誤差は０．２５程度である。しかし、これは入力Ａ，Ｂの信号確率Ｐ（Ａ），Ｐ（Ｂ）および
【外１４】
0003699901.tif 000037
が厳密な値をもつ場合である。一般にはＡ，Ｂは他の論理ゲートの出力ノードとなっているのでそれらの信号確率、cofactorに対する確率は誤差をもつ。ここで任意のノードにおける誤差が信号確率に対して０．０６２５、cofactorに対して０．２５の程度であることを証明する。
【００５７】
それを証明するには任意の論理ゲートの入力ノードがそのような誤差をもつと仮定してその出力ノードが同様の誤差をもつことを証明すればよい（帰納法）。注目する論理ゲートがインバーターである場合には、入力と出力の誤差の大きさが同じであることは明かであるから、２入力ＡＮＤゲートの場合を証明すればよい。式(31)の右辺第１項の誤差は仮定により０．０６２５の程度である。右辺第
【外１５】
0003699901.tif 000038
もつＡ，Ｂのcofactorに対する確率に掛けられているので右辺第２項全体としては０．２５×０．２５＝０．０６２５の程度の誤差をもつ。従ってＰ（Ｚ）は０．０６２５の程度の誤差をもつ。一方、式(35)が０．２５の程度の誤差をもつことは明かである。以上から２入力ＡＮＤゲートの出力ノードＺの信号確率は０．０６２５の程度の誤差をもち、cofactorに対する確率は０．２５の程度の誤差をもつことがいえた。従って帰納法により、すべてのノードの信号確率は０．０６２５の程度の誤差をもち、cofactorに対する確率は０．２５の程度の誤差をもつことが証明された。
【００５８】
この証明は誤差の程度に関する評価であり、実際には誤差の蓄積が起こり、論理回路によっては上で予測された誤差を大きく上回る場合があることに注意しなければならない。
【００５９】
（５）以上ではＺが２入力ＡＮＤゲートかインバーターの場合について述べたが、ここでは一般の論理ゲートに対するＢＡＭの適用法を説明する。
【００６０】
Ｚが２入力ＡＮＤゲートやインバーターとは限らない一般の論理ゲートの出力ノードであるとし、そのゲートの入力をＡ1 ，…，Ａm とする。このときＺはＡ1 ，…，Ａm の論理関数であると同時にＡa （ａ＝１，…，ｍ）を通じてプライマリー・インプットの論理関数でもある。関数記号で書くとこのことは
【数２９】
0003699901.tif 000039
を意味する。Ｚをゲート入力に関する積和形式で表すと
【数３０】
0003699901.tif 000040
が成り立つ。Ａ1 ，…，Ａm の間に信号間相関がある場合があるので一般には
【数３１】
0003699901.tif 000041
を得る。演算‘＊’は結合律を満たさないので、この式はＡa （ａ＝１，…，ｍ）の番号付けに依存することになるが、このことについては後に述べることにして、とりあえずこの番号付けによる違いは無視することにする。以上の計算を実際に行うには次のようにShannon 展開を用いればよい。Ｚの依存するゲート入力の一つをＡa とすると、
【数３２】
0003699901.tif 000042
【外１６】
0003699901.tif 000043
annon 展開の係数（cofactor）である。これをＺのプライマリー・インプットに関するShannon 展開の係数と混同しないようにしなければならない。そのような混乱を避けるため、ゲート入力に関するShannon 展開の係数に関しては上付きの添え字としてμ，υ，…を用い、下付きの添え字としてａ，ｂ，…を用いることにする。それに対してプライマリー・インプットに関するShannon 展開の係数に関してはこれまで通り、上付きの添え字としてα，β，…を用い、下付きの添え字としてｉ，ｊ，…を用いることにする。さて、式(60)によると
【数３３】
0003699901.tif 000044
【外１７】
0003699901.tif 000045
・インプットに対して定義されていた記号を流用しているので混同しないように注意しなければならない。さて、式(61)の右辺をＢＡＭによって近似すると
【数３４】
0003699901.tif 000046
となる。この式をより詳しく書くと次の補題の式(63)でＸ＝Ｚとしたものになる。
【００６１】
補題０．１
Ｘが論理関数Ａ1 ，…，Ａm の論理関数であるとき、任意のａ＝１，…，ｍに対するＢＡＭによる近似式は
【数３５】
0003699901.tif 000047
【外１８】
0003699901.tif 000048
non 展開の係数（cofactor）であるとする。
【００６２】
（証明）式(63)に関しては既に述べたので式(30)を証明する。
【００６３】
【数３６】
0003699901.tif 000049
により定義されているが、この式を、ＸをＡa についてShannon 展開したのちに
【数３７】
0003699901.tif 000050
というＢＡＭによる近似をすればよい。
【００６４】
この補題を再帰的に使用することによりノードＺの信号確率Ｐ（Ｚ）、cofact
【外１９】
0003699901.tif 000051
補題０．２
【数３８】
0003699901.tif 000052
【外２０】
0003699901.tif 000053
２番目の等式を証明するには
【数３９】
0003699901.tif 000054
が成り立つことを用いればよい。
【００６５】
この補題により、式(63)は
【数４０】
0003699901.tif 000055
と書くことが出来る。
【００６６】
（６）ここでは‘＊’演算の結合律の破れを評価する。そのためにはＰ（Ａ）＊（Ｐ（Ｂ）＊Ｐ）Ｃ))−（Ｐ（Ａ）＊Ｐ（Ｂ))＊Ｐ（Ｃ）を調べればよい。
【００６７】
【数４１】
0003699901.tif 000056
という結果を得る。ただし、δi （Ａ），δi （Ｃ）はそれぞれＡ，Ｃに対するShannon 展開の誤差であり、例えばＡに関しては
【数４２】
0003699901.tif 000057
と定義されている。Ｃについても同様である。よってδi （Ａ），δi （Ｃ）が小さければ結合律が近似的に成り立つことになる。
【００６８】
（７）以上述べた方法（ＢＡＭ）によって回路内の任意のノードの信号確率を計算するアルゴリズムＢＡＭ ＳＩＧＮＡＬ（）を示す。
【００６９】
まず最初に、論理回路中の全ての論理ゲートをスタックＳＴＡＣＫ Ｇに積んでおく。このとき任意の論理ゲートＧに対し、その入力ノードを出力とするような論理ゲートはＳＴＡＣＫ Ｇの中で必ずＧよりも上に積まれているものとする。
【００７０】
procedure ＢＡＭ ＳＩＧＮＡＬ（）：
begin
while ＳＴＡＣＫ Ｇが空でない  do
Ｇの出力をＺとし、それをＧの入力の論理関数として表す；
サイズ２ｎ＋１の配列Ｐを用意する；
ＢＡＭs （Ｚ，Ｐ）；
【外２１】
0003699901.tif 000058
する；
end
ここでＢＡＭs （）というアルゴリズムは次のように与えられている。
【００７１】
procedure ＢＡＭs （Ｘ，Ｐ）：
begin
if  Ｘが恒偽関数  then
Ｐの全ての要素の値に０を代入；
return；
if  Ｘが恒真関数  then
Ｐの全ての要素の値に１を代入；
return；
Ｘの依存するゲート入力の一つをＡa とする；
【外２２】
0003699901.tif 000059
０，１）の値をＰに代入する；
comment このときＢＡＭs （）を再帰的に呼び出す；
return；
end
上のアルゴリズムによると論理ゲートの出力と入力の間の論理関係が与えられていれば計算を実行できることが分かる。従っていくつかの論理ゲートの集合（以下、これを論理モジュール）を考え、回路を論理モジュールに分割すれば計算精度が上がることが期待される。なぜなら論理モジュールの出力と入力の間の論理関係を与えることにより、論理モジュール内の信号間相関は既に考慮されていることになるからである。このように論理回路を仮想的な論理モジュールに分割して計算する場合、上記アルゴリズムを次のように変更すればよい。
【００７２】
ＢＡＭ ＳＩＧＮＡＬ（）の３行目を“Ｇの出力をＺとし、ＺをＧの属する論理モジュールの入力の論理関数として表す；”に変更し、ＢＡＭs （）の５行目を“Ｘの依存する論理モジュールの入力の一つをＡa とする；”に変更する。
【００７３】
図１はＢＡＭs （Ｘ，Ｐ）を表すフローの図である。
【００７４】
（８）ここでは例として図２の回路にＣＯＰ，ＣＣＭ，ＢＡＭを適用した場合について述べる。
【００７５】
図２の回路のプライマリー・インプットｘ1 ，ｘ2 ，ｘ3 にそれぞれ０．１，０．３，０．９という信号確率の値が与えられているものとする。このとき、厳密な計算によると出力ノードＺの信号確率Ｐ（Ｚ）は０．０２７になる。これをＣＯＰで計算するとＰ（Ｚ）＝０．００８１となり、厳密な値との誤差は大きい。一方、ＣＣＭとＢＡＭによる計算は厳密な値を与える。
【００７６】
第２実施例
第２実施例では第１の発明を用いてスウィッチング確率の計算方法を述べる。
（１）まず最初にＺが２入力ＡＮＤゲートの出力ノードである場合について述
【外２３】
0003699901.tif 000060
よいが、Ｐ（Ｚ）が計算されていれば
【数４３】
0003699901.tif 000061
であるのでＰ（Ｚ（τ）Ｚ（０))を計算すればよいことになる。このゲートの入力ノードをＡ，Ｂとすると、
Ｚ＝ＡＢ      (80)
の関係があるので計算すべき量Ｐ（Ｚ（τ）Ｚ（０))は
【数４４】
Ｐ（Ｚ（τ）Ｚ（０))＝Ｐ（Ａ（τ）Ａ（０）Ｂ（τ）Ｂ（０))    (81)
と表すことができる。式(6) を用いれば、
【数４５】
0003699901.tif 000062
となる。信号確率の場合と同様に式(82)とＣＯＰによる計算値
【数４６】
0003699901.tif 000063
の差を調べてＢＡＭによる補正項を計算する。そのために
【数４７】
0003699901.tif 000064
と定めると
【数４８】
Ｐ（Ａ（τ）Ａ（０）Ｂ（τ）Ｂ（０))＝Ｆ（χ），
Ｐ（Ａ（τ）Ａ（０))Ｐ（Ｂ（τ）Ｂ（０))＝Ｆ（η）            (86)
となる。従ってＰ（Ａ（τ）Ａ（０）Ｂ（τ）Ｂ（０))とＰ（Ａ（τ）Ａ（０))Ｐ（Ｂ（τ）Ｂ（０))との差は
【数４９】
0003699901.tif 000065
と表すことができる。この式をTaylor展開し、その第一次までの項をとると、
【数５０】
0003699901.tif 000066
を得る。定理０．１を考慮にいれて、さらに変形すると
【数５１】
0003699901.tif 000067
を得る。Ｚも他のゲートの入力になっている可能性があるため、上で計算したＰ（Ｚ（τ）Ｚ（０))の他にShannon 展開の係数（cofactor）に関するＰ((Ｚ（τ
【外２４】
0003699901.tif 000068
様の考察により
【数５２】
0003699901.tif 000069
を近似する。
【００７７】
式(95)，(96)がスウィッチング確率に対するＢＡＭの基本式である。
【００７８】
信号確率の場合と同様、式(95)および、式(96)の右辺を記号‘＊’を用いてそ
【外２５】
0003699901.tif 000070
（２）次にＺがインバーターの出力ノードである場合を考察する。その入力ノードをＡとすると、
【数５３】
0003699901.tif 000071
であることもわかる。
【００７９】
（３）以上ではＺが２入力ＡＮＤゲートかインバーターの場合について述べたが、ここでは一般の論理ゲートの場合を考察する。
【００８０】
Ｚが２入力ＡＮＤゲートやインバーターとは限らない一般の論理ゲートの出力ノードであるとし、そのゲートの入力をＡ1 ，…，Ａm とする。このときＺはＡ1 ，…，Ａm の論理関数であると同時にＡa （ａ＝１，…，ｍ）を通じてプライマリー・インプットの論理関数でもある。関数記号で書くとこのことは
【数５４】
0003699901.tif 000072
を意味する。Ｚをゲート入力に関する積和形式で表すと
【数５５】
0003699901.tif 000073
の再帰的な計算方法を示す。そのためには次の補題を利用する。
【００８１】
補題０．３
Ｘ，ＹがＡ1 ，…，Ａm の論理関数であるとき、任意のａ＝１，…，ｍに対してＢＡＭによる近似式は
【数５６】
0003699901.tif 000074
と定義する。
【００８２】
（証明）補題０．１と同様なので省略する。                  （証明終）
信号確率の場合と同様、この補題を再帰的に利用することによりＰ（Ｚ（τ）
【外２６】
0003699901.tif 000075
補題０．４
【数５７】
0003699901.tif 000076
（証明）第１行目の第１式の証明は容易。第１行目の第２式の証明は第２行目の式と補題０．２の帰結である。第２行目の式は補題０．２の第２式の証明と同様にできる。第３行目の式は定理０．１から明かである。        （証明終）
（４）ここでＢＡＭによるスウィッチング確率の計算アルゴリズムを示す。ノ
【外２７】
0003699901.tif 000077
ことによって与えられる。
【００８３】
procedure ＢＡＭt （Ｘ，Ｙ，Ｐ）：
begin
if  ＸまたはＹが恒偽関数  then
Ｐの全ての要素の値に０を加入；
return；
if  Ｘが恒真関数  then
ＢＡＭs （Ｙ，Ｐ）；
return；
if  Ｙが恒真関数  then
ＢＡＭs （Ｘ，Ｐ）；
return；
Ｘの依存する論理モジュールの入力の一つをＡa とする；
式(70)，(71)で計算した値をＰに代入する；
comment このときＢＡＭt （）を再帰的に呼び出す；
return；
end
ここでＰは計算した値を格納する配列である。また、このアルゴリズムの中の論理モジュールとしては、論理ゲート自体のことを指す場合もあるし、実施例１に述べたような仮想的論理モジュールのことを指す場合もある。
【００８４】
（５）以上のアルゴリズムを用いて実験を行った。
【００８５】
回路としてはＩＳＣＡＳ８５のベンチマークデータを採用し、ランダム・シミュレーション（ＳＩＭ）からのスウィッチング確率の絶対誤差の２乗平均の平方根（表の中のエラーの項目）とＣＰＵタイム（表の中のＣＰＵタイムの項目）を測定した。実験の結果は次の通りである。
【００８６】
【表１】
0003699901.tif 000078
この実験においてランダム・シミュレーションで流したテスト・ベクトルの数は１０００００であり、全てのプライマリー・インプットの信号確率とスウィッチング確率を０．５とした。ただし、Ｃ１７の回路に対してはＣＯＰとＢＡＭの誤差は厳密な計算値からのものである。この実験では、比較のためにＳＩＭ，ＣＯＰ，ＣＣＭについても記載されているが、ＳＩＭとＣＯＰについては独自にプログラムを作成して実験し、ＣＣＭについての結果はＭＭＰから引用した。ただし、ＣＰＵタイムはマシンの性能差を考慮した換算値を用いた。この表から次のように結論される。
【００８７】
まず、誤差に関していえば、ＢＡＭはＣＯＰよりも一般に精度が良く、信頼性が高い。一方、ＣＣＭは必ずしもそうではなく、回路によっては非常に精度の良い場合もあるが精度の悪くなる場合もあり、一定していない。つまり、信頼性が低い。ＣＰＵタイムについては、ＣＯＰとＢＡＭはＣＣＭよりも圧倒的に優れている。従って、総合的にみるとＢＡＭの方がＣＯＰやＣＣＭよりも勝っていると結論できる。
【００８８】
次に回路全体の消費電力の見積誤差に関して述べる。
【００８９】
配線容量を無視し、ゲート入力容量が一定であるとすると、回路全体の消費電力は、各ノードのファンアウト数（そのノードが入力するゲート数）にそのノードのスウィッチング確率を乗じてノードについての和をとったものにほぼ比例する。これをnormalized power dissipation measure（ＮＰＤＭ）と呼ぶ。ＮＰＤＭに関するＣＯＰとＢＡＭのランダム・シミュレーションからの誤差は次の表のようになる。
【００９０】
【表２】
0003699901.tif 000079
この表から、ＢＡＭによる回路全体の消費電力の見積誤差は数％以内であると結論できる。
【００９１】
第３実施例
次に、第１実施例，第２実施例の方法により、スウィッチング確率を求めることが出来るので式(1) ，(8) により、各ノードにおける充放電による消費電力を求めることが出来る。しかし、回路全体はノードとゲートで構成され、ゲート内部でもゲート入力が遷移する事で電力が消費されるので、それによる消費電力も考慮にいれなければならない。
【００９２】
注目するゲートをＧとし、その入力ノードをＡ1 ，…，Ａm とする。このときＧによって消費される平均消費電力Ｐｏｗ（Ｇ）は次のように表すことが出来る。
【００９３】
【数５８】
0003699901.tif 000080
【外２８】
0003699901.tif 000081
知の場合には、第２実施例の方法によりＰｏｗ（Ｇ）を計算することが出来る。
【００９４】
第４実施例
次に、第４実施例では第３実施例によって見積もった消費電力の見積値を利用した回路最適化方法を示す。
【００９５】
論理回路図上の図３のような３入力ＡＮＤゲートをレイアウトの段階で図１のように２つの２入力ＡＮＤゲートに展開する必要が生じたと仮定する。図３の各ノードＡ，Ｂ，Ｃを図４のノードａ，ｂ，ｃに割り当てるのであるが、Ａ，Ｂ，Ｃのどのノードを図４のノードｃに割り当てるかにより、３通りの方法が存在する（ａ，ｂのノードは同等であると仮定している）。このとき、消費電力が最小となるような割当を行うことが要求されていると仮定する。
【００９６】
手順としては、全ての割当方法を試して最も消費電力の小さくなるものを採用することにする。
【００９７】
図４の各ノードの駆動容量が全て等しいとすると、ノード全体により消費される電力は
【数５９】
ＰSW（ａ；τ）＋ＰSW（ｂ；τ）＋ＰSW（ｃ；τ）＋ＰSW（Ｎ；τ）  (111) に比例する。この式の３項の和は割当に依存しないので最後の項に注目する。ａ，ｂに割り当てられるノードが独立であると仮定すると
【数６０】
0003699901.tif 000082
という関係がある。図３におけるノードＡ，Ｂ，Ｃに対して、
ＰSW＝（Ａ；τ）＝０．５，
ＰSW＝（Ｂ；τ）＝０．３，
ＰSW＝（Ｃ；τ）＝０．２，      (113)
Ｐ（Ａ）＝Ｐ（Ｂ）＝Ｐ（Ｃ）＝０．５    (114)
であり、Ａ，Ｂ，Ｃが独立であると仮定すると、ｃにＡを割り当てたとき、
ＰSW（Ｎ；τ）＝０．２２，      (115)
ｃにＢを割り当てたとき、
ＰSW（Ｎ；τ）＝０．３，        (116)
ｃにＣを割り当てたとき、
ＰSW（Ｎ；τ）＝０．３２５，    (117)
となり、ｃにＡを割り当てたときの消費電力が最も小さいことがわかる。Ａ，Ｂ，Ｃが独立でないときには、ＢＡＭによる、より精密な値を用いる必要がある。
【００９８】
このようにして消費電力が最小となるような論理合成に本発明を適用できる。
通常は最適化するものは消費電力だけではなく、例えばタイミングなどの制約を受ける場合がある。このようなときには消費電力を最小にするよりもタイミング制約条件を満たすことが優先する。そのような場合には、タイミング制約条件を満たすような論理合成が行われた後に、消費電力の最適化を行う。
【００９９】
第５実施例
第２の発明に関する第１の実施例について説明する。簡単のため、順序回路が含まれないような回路（組み合わせ回路）における信号確率の計算について考える。
【０１００】
図６のような回路において独立なプライマリー・インプットＸi の信号確率Ｐ（Ｘi ＝１）（ｉ＝１，２，３）が与えられたとき出力Ｚでの信号確率を計算する。ただし、Ｐ（Ａ）は条件Ａが成り立つ確率であると定義する。遅延時間を無視すると明らかに
【数６１】
Ｐ（Ｚ＝１）＝Ｐ（Ｘ1 ＝１）Ｐ（Ｘ2 ＝１）Ｐ（Ｘ3 ＝１）      (118)
となる。しかし、各ゲートが大きさ１の遅延時間を持つとすればＺが時刻ｔ＝０で信号値１を持つ確率は
【数６２】
0003699901.tif 000083
となる。ここでＰ（Ａ1 ；Ａ2 ；…；Ａn ）は条件Ａ1 ，Ａ2 ，…．Ａn が共に成り立つ確率であると定義する。また、全ての時間は最小時間単位τの整数倍であるとして時間を整数値で表す。従って時間ｉとは真の時間ｉ×τのことをいう。もしも信号Ｘ2 の時間的相関が非常に小さく時刻ｔ＝−２とｔ＝−４における信号が独立とみなせるならば
【数６３】
0003699901.tif 000084
が成り立つ。さらにプライマリー・インプットの信号確率が時刻に依存しないと仮定すれば結局、
【数６４】
Ｐ（Ｚ＝１）＝Ｐ（Ｘ1 ＝１）Ｐ（Ｘ2 ＝１）2 Ｐ（Ｘ3 ＝１）    (121)
となり、図２においてＹ1 ，Ｙ2 を独立とみなして
【数６５】
0003699901.tif 000085
と計算した場合と同様になる。このようにディレイを考慮すると回路図においては相関のある信号も実際には相関がないものとして計算できる場合がある。このことは信号間相関のある回路において計算の手間を著しく減少させる。
【０１０１】
上述の例ではＺに対するＸ2 の遅延時間差が２のときに相関を無視したが、実際にどの程度の遅延時間差があればこの様な無視が可能なのかを調べる。
【０１０２】
そのために以下の事柄を仮定する。
（１）全てのプライマリー・インプットは互いに独立である。
（２）信号確率は時刻に依存しない。
（３）任意のプライマリー・インプットのある時刻における信号確率は直前の時刻の信号値にのみ依存し、それ以前の信号値に依存しない。
（４）スウィッチング確率は時刻に依存しない。
【０１０３】
３番目の仮定はMarkov性の仮定と呼ばれ、式で表すと次のようになる。
【０１０４】
【数６６】
0003699901.tif 000086
ただし、Ｘは任意のプライマリー・インプットとする。ここでＰ（Ａ｜Ｂ）は条件Ｂのもとで条件Ａが起こる条件付き確率である。条件付き確率は
Ｐ（Ａ｜Ｂ）Ｐ（Ｂ）＝Ｐ（Ａ；Ｂ）    (124)
という式を満たす。信号に対する条件付き確率Ｐ（Ｘ＝ｘ，ｔ−１｜Ｘ＝ｙ，ｔ＝０）を遷移Ｘ＝ｙ→Ｘ＝ｘに対する遷移確率という。４番目の仮定は任意の時刻ｉに対して
【数６７】
0003699901.tif 000087
であることを示す。以下ではこれらの仮定を原則として断り無しに用いる。
【０１０５】
さて、一般にゲートの出力の確率をその出力からプライマリー・インプットに至る全ての経路を考慮することによりプライマリー・インプットに関する確率で表した場合に各プライマリー・インプットＸから
【数６８】
Ｐ（Ｘ＝ｘ1 ，ｔ＝ｉ1 ；Ｘ＝ｘ2 ，ｔ＝ｉ2 ；…；Ｘ＝ｘn ，ｔ＝ｉn ）                                                                (126)
という形の寄与がある。これを信号Ｘのｎ点の自己相関関数と呼ぶ。ここでｘ1 ，…，ｘn は０または１の論理値を示し、ｉ1 ≧…≧ｉn はある最小時間単位τの整数倍で表した時刻を示す。Markov性の仮定によりこれを厳密に計算することが可能である。
【０１０６】
例えばＰ（Ｘ＝ｘn ，ｔ＝ｎ；Ｘ＝ｘ0 ，ｔ＝０）の計算方法は以下のようになる。
【０１０７】
明らかに
【数６９】
0003699901.tif 000088
と書ける。これを簡単に記述するために２×２行列Ｑを
【数７０】
Ｑij＝Ｐ（Ｘ＝ｉ，ｔ＝１｜Ｘ＝ｊ，ｔ＝０）（ｉ，ｊ＝０，１）   (129)
によって定める。すると式(14)は
0003699901.tif 000089
となる。ここで［Ｑn ］xn,x0 は行列Ｑn の第（ｘn ，ｘ0 ）成分を示す。Ｑは遷移行列と呼ばれている。Ｑn が計算できれば信号Ｘの自己相関関数が計算できるがＱは
【数７１】
0003699901.tif 000090
ただし
【数７２】
α0 ＝Ｐ（Ｘ＝１，ｔ＝１｜Ｘ＝０，ｔ＝０），
α1 ＝Ｐ（Ｘ＝０，ｔ＝１｜Ｘ＝１，ｔ＝０）       (132)
と書けるので
【数７３】
0003699901.tif 000091
という関係を用いた。従って、
【数７４】
0003699901.tif 000092
となる。式(135) の右辺が０であるときｔ＝ｎでのＸとｔ＝０でのＸが独立となるので、式(135) の右辺はそうみなしたときの誤差と考えることができる。例えば１０％の要求誤差の場合には
【数７５】
0003699901.tif 000093
を満たすような遅延時間差があればｔ＝ｎでのＸとｔ＝０でのＸとを独立とみなしてもよいことになる。特に｜１−α0 −α1 ｜＝０の場合には式(134) から任意の正のｎに対してｔ＝ｎでのＸとｔ＝０でのＸとは厳密な意味で独立となる。また、｜１−α0 −α1 ｜＝１の場合には式(135) からＰ（Ｘ＝０）Ｐ（Ｘ＝１）が要求される誤差より小さい場合のみｔ＝ｎでのＸとｔ＝０でのＸとを独立と見なせることが分かる。逆に、Ｐ（Ｘ＝０）Ｐ（Ｘ＝１）が要求される誤差ｅｒｒｏｒより小さい場合には｜１−α0 −α1 ｜≦１なのですべてのｎに対してｔ＝ｎでのＸとｔ＝０でのＸとを独立と見なせることができる。特にｎ＝０の場合にも独立と見なせるが、このことはＸに与えた信号確率がＰ（Ｘ＝０）Ｐ（Ｘ＝１）≦ｅｒｒｏｒを満たす場合には遅延時間差を考慮しなくても信号Ｘに関してはもともと相関がないものとして計算してもよいということになる。例えば、図７のようにＸ1 ，…，Ｘn というプライマリー・インプットをもつ回路においてＸi はＹ1 ，Ｙ2 を通じて出力Ｚを持つゲートにおいて相関を引き起こしているがＰ（Ｘi ＝０）Ｐ（Ｘi ＝１）≦ｅｒｒｏｒが満たされている場合には
【数７６】
Ｐ（Ｚ＝１）＝Ｐ（Ｙ1 ＝１）Ｐ（Ｙ2 ＝１）      (137)
として計算しても誤差はｅｒｒｏｒ以内である。この理由をもっと詳しく述べる。
【０１０８】
図７においてＹ1 ，Ｙ2 をプライマリー・インプットの論理関数として表し、Ｘi についてShannon 展開すると
【数７７】
0003699901.tif 000094
となる。一方Ｙ1 ，Ｙ2 を独立とみなしたときのＺでの信号確率は
【数７８】
0003699901.tif 000095
となり一般には厳密な値
【数７９】
0003699901.tif 000096
とは一致しない。これは式(139) の２行目から３行目でＸi に対してはＸi Ｘi 
【外２９】
0003699901.tif 000097
率Ｐ（Ｘi ＝ｘ）に対してはそのような関係式が一般には成り立たないことにある。ところが条件Ｐ（Ｘi ＝０）Ｐ（Ｘi ＝１）≦ｅｒｒｏｒはこれらのブール代数の関係が許容誤差（ｅｒｒｏｒ）内で確率に対しても成り立つことを保証するのである。
【０１０９】
相関を引き起こしている信号がただ一つの場合には上述の誤差ｅｒｒｏｒはゲートの出力の誤差と一致する。しかし、ゲートの上流で複数の相関が起こっている場合には、ゲートＧの出力に関して規定された最大許容誤差をＥG とすると、ＥG があまり大きくないときは
Ｃ1 Ｅ1 ＋Ｃ2 Ｅ2 ＋…＋Ｃn Ｅn ≦ＥG     (142)
を満たすように各プライマリー・インプットＸi に関する最大許容誤差Ｅi （ｉ＝１，…，ｎ）を規定してやるとよい。ここでＣi は論理回路を基本的なゲート（例えばＡＮＤとインバーター）で展開したときにＧの上流でプライマリー・インプットＸi （ｉ＝１，…，ｎ）が引き起こしている相関の個数である。この関係式は、相関が１つある度にBoole 代数の関係を用いなければならないということからの大ざっぱな見積である。
【０１１０】
以上のことから入力の確率のＰ（Ｘ＝０）Ｐ（Ｘ＝１）が小さいときに出力の確率の誤差が小さいことが予想されるが、このことを１ビットの加算器に対して遅延がない場合に確かめてみた。その結果を下の表にまとめてある。
【０１１１】
【表３】
0003699901.tif 000098
ここで出力の確率Ａとは全てのゲートの入力を独立とみなし、信号間相関を無視して計算したサム（ＳＵＭ）およびキャリー（ＣＡＲＲＹ）という名前の出力ノードでの確率であり、出力の確率Ｂはそれらの厳密な確率の値である。この表によれば入力Ａ，Ｂ，Ｃの確率に対してＰ（Ｘ＝０）Ｐ（Ｘ＝１）（Ｘ＝Ａ，Ｂ，Ｃ）が小さい場合の方が大きい場合よりも出力の確率の誤差が確かに小さくなっている。
【０１１２】
以上の議論は２点の自己相関関数をもとにした議論であった。一般のｎ点の自己相関関数に対しては
【数８０】
0003699901.tif 000099
が成り立ち、２点の自己相関関数の場合と同様の議論が適用できる。
【０１１３】
以上の結果に基づいて信号間相関および遅延時間差を考慮に入れて確率伝播を計算するアルゴリズムを作成すると次のようになる。
１°ゲート全体をプライマリー・アウトプットからの深さ優先探索順に並べる。この順序に従って各ゲートＧに対し、以下の操作を行う。
２°ゲートＧに定められた最大許容誤差に対して各プライマリー・インプットに要求される最大許容誤差を設定し、相関を無視できる最小遅延時間差を計算する。
３°Ｇの入力を論理回路図上で相関のあるものどうしグループ分けする。
４°同じグループに属する各ノードＹi （ｉ＝１，…，ｋ）に対し、各プライマリー・インプットＸ1 ，Ｘ2 ，…，Ｘn からＹi へ到達するまでの時間を遅延時間を考慮して経路毎に求める。
【０１１４】
例えばグループ｛Ｙ1 ，Ｙ2 ，Ｙ3 ｝に対して次のようになったとする。
【０１１５】
【表４】
0003699901.tif 000100
ただし、この表の項目の数字は各経路に対するそれぞれのプライマリー・インプットからの遅延時間である。
【０１１６】
５°全てのプライマリー・インプットに対し、それがＹi ，Ｙj に達するまでの遅延時間の差が２°で計算された最小遅延時間差以上であればＹi ，Ｙj の相関を無視することにし、３°で定められた入力のグループ分けに対し、互いの相関の無視できないものを同じグループとする、より細いグループ分けをする。例えば上の表において、相関を無視できるような最小の遅延時間差がプライマリー・インプットＸ1 ，Ｘ2 ，Ｘ3 ，Ｘ4 に対してそれぞれ３，２，４，２であったとすると細分されたグループ分けは｛Ｙ1 ，Ｙ2 ｝，｛Ｙ3 ｝となる。
【０１１７】
６°細分された各グループ毎に相関を考慮した計算を行い、グループ間は独立であるとみなしてＧの出力に対する確率計算を行う。
【０１１８】
このようにグループをできるだけ細分することには、以前に計算した結果を用いて計算の手間を軽減できるという効果がある。例えば図３のような回路においてＸi に関する相関を無視しても良い場合には既に計算された値Ｐ（Ｙ1 ＝１），Ｐ（Ｙ2 ＝１）を用いて
【数８１】
Ｐ（Ｚ＝１）＝Ｐ（Ｙ1 ＝１）Ｐ（Ｙ2 ＝１）    (145)
と計算できるが、相関を無視できない場合にはもっと複雑な方法で計算しなければならない。
【０１１９】
図５は上記のアルゴリズムをまとめたものである。このアルゴリズムの計算時間は回路および各ゲートに対する遅延時間、そして要求される最大許容誤差に依存し、最悪の場合Ο（｜Ｇ｜×Ｘ）であり、最良の場合はΟ（｜Ｇ｜）である。ただし、｜Ｇ｜は回路全体に含まれるゲートの数を表し、Ｘは６°の手続きに要する最悪の場合の時間である。
【０１２０】
第６実施例
第５実施例では信号確率について述べたが本実施例では遷移確率について述べる。再び、簡単のため、順序回路が含まれないような回路（組み合わせ回路）を考える。図６のような回路において独立なプライマリー・インプットＸi の遷移確率Ｐ（Ｘi ＝ｘ｜Ｘi ＝ｙ）（ｉ＝１，２，３；ｘ，ｙ＝０，１）が与えられたとき出力Ｚでの遷移確率を計算する。ただし、
【数８２】
Ｐ（Ｘ＝ｘ｜Ｘ＝ｙ）＝Ｐ（Ｘ＝ｘ，ｔ＝１｜Ｘ＝ｙ，ｔ＝０）    (140)
と定義する。遅延時間を無視すると明らかに
【数８３】
0003699901.tif 000101
となる。しかし、各ゲートが大きさ２の遅延時間を持つとすればＺが時刻ｔ＝０で信号値１を持ち、時刻ｔ＝１で信号値１を持つ確率は
【数８４】
0003699901.tif 000102
となる。もしも信号Ｘ2 の時間的自己相関が非常に小さく、３以上の時間だけ離れた信号が独立とみなせるならば
【数８５】
0003699901.tif 000103
となり、図６においてＹ1 ，Ｙ2 を独立とみなして
【数８６】
0003699901.tif 000104
と計算した場合と同様になる。このように遷移確率の場合も信号確率の場合と同様、自己相関関数を計算することにより相関の有無を判定でき、第５実施例と同様のアルゴリズムを適用することができる。
【０１２１】
以上、第２の発明の実施例について説明したが、もしも最小時間単位τをクロック・サイクルにとると遅延時間差が１以上の組み合わせ回路は一般的な観点からいってうまく動作していない回路である。しかし相関の手前でフリップ・フロップなどの記憶素子が入ると遅延時間差が１以上の場合も正常な場合になる。このように順序回路を合わせて考えると第２の発明の適用範囲が広がる。
【０１２２】
第７実施例
第３の発明による消費電力評価法の一実施例を図８のフローチャートを参照して説明する。論理回路の入力端子に与えられる入力信号は、各入力信号端子ごとに時系列的に記述され、まとめて記憶装置８０１に格納されている。処理ステップＳ８０２は入力パターンを各端子ごとに時間区間に分割し、各時間区間の入力信号系列を確率量に変換する処理を行う。評価対象の量によって、求める確率量は異なるが、信号が論理的な“１”になる確率を表す信号確率、または信号が変化可能な場合の数に対して変化する確率を示すスウィッチング確率（遷移確率）などが対象となる。各端子ごと、各時間区間ごとに計算された確率量は記憶装置８０３に格納される。処理ステップＳ８０４は各時間区間ごとの入力端子に対して与えられた確率量から当該時間区間の電力を計算する。その結果は記憶装置８０６に時間区間と、本発明に従って部分回路の分類に従って格納される。電力計算のステップＳ８０４は、指定された全時間区間の電力計算が終了したかを、判定ステップＳ８０５によって判断し、終了すればすべての処理を完了する。８０８は時系列的に表現した出力グラフの例である。
【０１２３】
本発明による消費電力評価の実施例の一つを、図９の２つのＡＮＤゲートＡＮＤ１，ＡＮＤ２とオアゲートＯＲ１から構成される論理回路を例に取って説明する。図１０は図８のステップＳ８０２の入力パターンの区間への分割と、入力端子に対する区間の信号確率計算などの確率量を計算する方法を具体的な回路と入力パターンを用いて例示している。図１０の１００１は入力パターンとスウィッチング事象を示しており。Ａ２のカラムは記憶装置８０１に記憶される入力パターンであり、Ａ１のカラムは時刻を示している。Ａ３のカラムは図９の回路において各ゲートの出力でどの様にスウィッチングが起こるかを参考のために記したものである。Ａ２のカラムの入力パターンは、１００４のＢ１のカラムに示された時間区間に対して、１００２の入力の信号確率計算手順に従ってカラムＢ２に示されたように各入力端子の信号確率に変換される。一方１００３の入力のスウィッチング確率計算手段によってＣ２のカラムに示されたように各入力端子のスウィッチング確率に変換される。この１００２，１００３の手順は図８の実施例におけるステップＳ８０２の処理に対応している。１００２，１００３の手順によって得られた確率量すなわち１００４のＢ２および１００５のＣ２は図８の実施例の記憶装置８０３に格納されている。図１１（ａ）のスウィッチング確率は図８の実施例においてステップＳ８０４を用いて区間瞬時電力を計算した結果であり、その結果は記憶装置８０６に格納される。図１１（ａ）の例では各ゲートの出力ノードのスウィッチング確率とそれらの総和が計算されている。図１１（ｂ）は時間区画の刻みをより細かくして計算した例であり、瞬時電力を知る上で分解能が上がる。この回路と入力パターンに対して本発明の一実施例である電力評価法を適用した結果をグラフとして示したものが図１２である。ここで図１２の（ａ）は時間区画の刻みを１とした場合であり、（ｂ）は刻みを４、（ｃ）は刻みを２とした場合である。この表示は図８の実施例における表示８０８に対応している。この実施例の図１２，図１３の電力計算例では各ゲートの出力ノードの静電容量を簡単のためすべて１とし、論理振幅も０ボルトから１ボルトの間と仮定して計算がされている。これはただ理解を容易にするためだけであって、実際の電力評価には別途準備した各ノードの静電容量と論理振幅を用いなければならない。
【０１２４】
図８は通常の計算機を用いて実現する実施例のフローチャートであるが、第３の発明をハードウェアまたは２個以上の処理装置を用いて実現する実施例においては図８のステップＳ８０２、ステップＳ８０４、ステップＳ８０７をパイプラインに構成し、各々の記憶装置、つまり記憶装置８０１、記憶装置８０３、記憶装置８０６をファーストイン・ファーストアウトのバッファとして構成する事ができる。
【０１２５】
本実施例においては時間区間は必ずしも均一である必要はなく、その要求精度に従って詳細を知りたい部分に対しては細かい時間区画を設定する事ができる。
【０１２６】
第８実施例
第３の発明に関する第２の実施例を図１４のシステム構成図を用いる事によって説明する。本システム構成図において、１４０５は回路の構造または動作の記述を格納する記憶装置であり、論理回路の入力端子に確率量を与えて電力計算をする処理手順を実現したステップＳ１４０４に適した表現形式に当該回路の構造および／または動作記述を変換する処理手順を実現したステップＳ１４０６の入力となるデータを格納する。ステップＳ１４０６は確率計算による電力計算が行い易いように動作記述をもとに論理式の生成・変形や、回路の分割、ＢＤＤによる論理式の表現の生成、具体的な電力計算のための各論理ゲートの出力ノードの静電容量の計算および計算手順との結合などを行う。これらの情報は記憶装置１４０７に格納され、瞬時電力計算手順を実現するステップＳ１４０４で利用する。この瞬時電力計算手順を実現したモジュールにおいては同一の回路に対する電力計算をすべての時間区間に対して行わねばならず計算時間を要する。そこで本実施例ではあらかじめ最適な計算が可能なようにステップＳ１４０６で準備する事によって全体の処理時間を短くする事ができる。１４０１，Ｓ１４０２，１４０３，１４０８，Ｓ１４０９，１４１０は図８の８０１，Ｓ８０２，８０６，Ｓ８０７，８０８にそれぞれ対応する。
【０１２７】
第９実施例
次に、第３の発明の一実施例を図１１と図１３を用いて説明する。瞬時電力計算のステップＳ８０４によって計算した結果は記憶装置８０６に格納されるが、この格納時のデータの構成を図１１に示したように各部分回路ごとのスウィッチング確率として格納する。このようなデータの構成として格納する事によって図１３に示したように各部分ごとの電力の時間的な推移を表示できるようになる。
【０１２８】
回路を部分回路に分割する基準としては設計者が用いた設計階層が最も良く用いられる例であるが、数種類のクロック系を持つ回路においてはクロック系ごとに回路を分類するなどの方法も実現する事ができる。本発明を実現するのには回路の各ノードを設計階層や、電源系、クロック系などの回路に従って検索・分類できるデータ構造を選択する事によって効率よく実現する事ができる。
【０１２９】
上記実施例においては、図８のステップＳ８０４に対応する部分は論理回路の入力端子に確率量を与え、その確率量が各ゲートの出力にどの様に伝搬して行くかを調べるアルゴリズムを利用しているが、この部分のアルゴリズムは必ずしもこの方式に限定されるものではない。これ以外のアルゴリズムを用いても本発明の優位性を損なわれるものではない。別のアルゴリズムの例としては入力信号の各時間区間ごとの入力の統計・確率的性質を満足する短いランダムな入力パターンを発生して回路をシミュレーションする方法もある。この方法によれば短い入力パターンで入力信号の統計・確率的性格を十分に表現できれば精度良くかつ効率も良い電力評価が可能となる。
【０１３０】
本発明では、ＣＭＯＳ以外の回路方式の集積回路にも適用できるのは明かである。たとえばＥ／Ｄ  ＭＯＳに対しては論理ゲートの入力端子に論理ゲートの出力を“０”とする論理値が与えられている間は電流が流れている。このような回路固有の特性のために電力予測においてスウィッチング確率だけでなく信号確率も考慮する必要がでてくる。さらにダイナミック論理を用いた回路においてはプリチャージの効果を十分に考えた評価方式を導入する事によってこれらの発明を適用できる。
【０１３１】
【発明の効果】
第１の発明によれば、代表的な従来手法ＣＣＭと同程度の精度、および数十分の１以下の計算時間で論理回路のノードのスウィッチング確率を計算することができる。
【０１３２】
ノードの駆動する容量が与えられている場合、そのノードのスウィッチング確率が分かれば、そのノードでの平均消費電力が計算でき、また、セルの入力遷移パターンに対するそのセルの消費電力が与えられている場合、本発明を使用して、各入力遷移パターンの起こる確率を計算することが可能であり、各セルの平均消費電力を見積もることが出来る。
【０１３３】
さらに論理合成ツールと組み合わせることにより、ＲＴＬレベルなどのより設計の初期段階での見積も可能である。
【０１３４】
また、本発明を使用して見積もった消費電力の大きなノードの付近の論理回路を変更することにより、消費電力を低減するなどの回路最適化に役に立つ。
【０１３５】
本発明は論理回路レベルの消費電力見積であるため、設計の変更や選ぶべきパッケージの種類を設計の比較的初期の段階で決定することができる。
【０１３６】
第２の発明によれば、遅延時間差および入力の確率値を考慮して規定された最大許容誤差内で信号間相関を無視することにより論理回路の動作確率の計算を軽減できる。
【０１３７】
第３の発明により、瞬時電力の時間的な推移を短い計算時間で求める事ができる。また、容易に時間区間を設定でき必要な時間精度で電力の変化を知る事ができる。
【０１３８】
また、各時間区間に対して多数回必要となる計算のうち共通の部分を取り出し最適化する事によって電力評価に必要な計算時間を大幅に短縮でき、効率向上が図れる。
【０１３９】
更に、集積回路の各部分の消費電力を個別に知ることが容易にできるようになる。これにより集積回路設計者は容易に回路を最適化することができる。
【図面の簡単な説明】
【図１】第１の発明の実施例を表すフローを示す図である。
【図２】信号間相関のある簡単な論理回路の例である。
【図３】３入力ＡＮＤゲートの論理回路図である。
【図４】図６の論理ゲートを２入力ＡＮＤゲートで分解した論理回路図である。
【図５】第２の発明の実施例を表すフローを示す図である。
【図６】信号間相関のある簡単な回路の例である。
【図７】信号間相関のある回路の例である。
【図８】第３の発明による実施例の処理手順を示すフローチャートである。
【図９】第３の発明の実施例の処理内容を説明するための論理回路の例である。
【図１０】第３の発明の実施例の図８におけるステップＳ８０２の処理内容を示した図である。
【図１１】各ゲート出力のスウィッチング確率を示した図表であり、（ａ）は時間区間が４の場合であり、（ｂ）は時間区間が２の場合である。
【図１２】第３の発明による電力評価の結果の例を、３種類の時間区間に対して示す図表である。
【図１３】第３の発明により部分回路の電力を表現した図表である。
【図１４】第３の発明に関する実施例のシステム構成を示すシステム構成図である。
【符号の説明】
１００１  入力信号の例を示すテーブル
１００４  入力信号確率の計算結果を示すテーブル
１００５  入力スウィッチング確率計算結果を示すテーブル
Ｘ  論理式
Ｐ  実数の配列
Ｚ  論理回路の出力
Ａ，Ｂ，Ｃ  ノード
ａ，ｂ，ｃ  ノード
Ｎ  ノード
ｘi （ｉ＝１，…，３）  論理回路のプライマリー・インプット
Ｙ1 ，Ｙ2   ノード
Ｇ1 ，Ｇ2   論理回路
【図１】
0003699901.tif 000106
【図２】
0003699901.tif 000107
【図３】
0003699901.tif 000108
【図４】
0003699901.tif 000109
【図５】
0003699901.tif 000110
【図６】
0003699901.tif 000111
【図７】
0003699901.tif 000112
【図８】
0003699901.tif 000113
【図９】
0003699901.tif 000114
【図１０】
0003699901.tif 000115
【図１１】
0003699901.tif 000116
【図１２】
0003699901.tif 000117
【図１３】
0003699901.tif 000118
【図１４】
0003699901.tif 000119