(57)【要約】【課題】  論理モデルの作成が困難なブロックを含む回路の動作周波数を推定する。【解決手段】  対象とするセルのライブラリ情報に論理情報が定義されているか否かを判定し（ステップＳ１４）、論理情報が定義されている場合には、論理情報から動作周波数を見積もり（ステップＳ１５）、論理情報が定義されていない場合には、ライブラリ情報中のタイミング情報から動作周波数を見積もる（ステップＳ１６）。また、タイミング情報から動作周波数を見積もる際に、対象とするセルにクロック信号が与えられるか否かを判断し、この判断結果に基づいて動作周波数を見積もるようにする。【選択図】  図２
2006293823.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置のセルのライブラリ情報を元にセルへの入力信号から出力信号における推定動作率を求める装置であって、
予め動作率の推定対象となるセルのライブラリ情報を記憶しておく蓄積部と、
前記蓄積部から前記ライブラリ情報を読出し、前記ライブラリ情報に前記推定対象のセルの論理情報が定義されているか否かを判定し、前記論理情報が定義されている場合には、前記論理情報から前記推定動作率を求め、前記論理情報が定義されていない場合には、前記ライブラリ情報中のタイミング情報から前記推定動作率を求める処理部と、
を備えることを特徴とする動作率推定装置。
【請求項２】
前記処理部は、
前記タイミング情報から前記推定動作率を求める際に、前記推定対象のセルにクロック信号が与えられるか否かを判断し、
判断結果が前記推定対象のセルにクロック信号が与えられないことを示す場合には、推定の対象となる出力信号に関連するタイミングアークを持つ入力信号の最大動作率を前記推定動作率として求め、
判断結果が前記推定対象のセルにクロック信号が与えられることを示す場合には、前記推定の対象となる出力信号に関連するタイミングアークを持つクロック信号の最大動作率に所定の係数を乗じたものと、該クロック信号以外の入力信号の最大動作率との内で低い方の動作率を前記推定動作率として求めることを特徴とする請求項１記載の動作率推定装置。
【請求項３】
前記所定の係数は、１／２であることを特徴とする請求項２記載の動作率推定装置。
【請求項４】
動作率推定装置が半導体装置のセルのライブラリ情報を元にセルへの入力信号から出力信号における推定動作率を求める方法であって、
動作率の推定対象となるセルのライブラリ情報に論理情報が定義されているか否かを判定するステップと、
前記判定の結果、前記論理情報が定義されている場合には、前記論理情報から前記推定動作率を求めるステップと、
前記判定の結果、前記論理情報が定義されていない場合には、前記ライブラリ情報中のタイミング情報から前記推定動作率を求めるステップと、
を含むことを特徴とする半導体装置の動作率推定方法。
【請求項５】
前記タイミング情報から前記推定動作率を求めるステップにおいて、
前記推定対象のセルにクロック信号が与えられるか否かを判断し、
判断結果が前記推定対象のセルにクロック信号が与えられないことを示す場合には、推定の対象となる出力信号に関連するタイミングアークを持つ入力信号の最大動作率を前記推定動作率として求め、
判断結果が前記推定対象のセルにクロック信号が与えられることを示す場合には、前記推定の対象となる出力信号に関連するタイミングアークを持つクロック信号の最大動作率に所定の係数を乗じたものと、該クロック信号以外の入力信号の最大動作率との内で低い方の動作率を前記推定動作率として求めることを特徴とする請求項４記載の半導体装置の動作率推定方法。
【請求項６】
前記所定の係数は、１／２であることを特徴とする請求項５記載の半導体装置の動作率推定方法。
【請求項７】
半導体装置のセルのライブラリ情報を元にセルへの入力信号から出力信号における推定動作率を求めるプログラムであって、コンピュータに、
予め動作率の推定対象となるセルのライブラリ情報を記憶しておく記憶手段と、
前記記憶手段から前記ライブラリ情報を読み出し、前記推定対象のセルの論理情報が定義されているか否かを判定する判定手段と、
前記判定手段の判定の結果、前記論理情報が定義されている場合には、前記論理情報から前記推定動作率を求める手段と、
前記判定手段の処理の結果、前記論理情報が定義されていない場合には、前記ライブラリ情報中のタイミング情報から前記推定動作率を求める手段と、
を実行させるプログラム。
【請求項８】
前記タイミング情報から前記推定動作率を求める手段は、
前記推定対象のセルにクロック信号が与えられるか否かを判断し、
判断結果が前記推定対象のセルにクロック信号が与えられないことを示す場合には、推定の対象となる出力信号に関連するタイミングアークを持つ入力信号の最大動作率を前記推定動作率として求め、
判断結果が前記推定対象のセルにクロック信号が与えられることを示す場合には、前記推定の対象となる出力信号に関連するタイミングアークを持つクロック信号の最大動作率に所定の係数を乗じたものと、該クロック信号以外の入力信号の最大動作率との内で低い方の動作率を前記推定動作率として求める手段である請求項７記載のプログラム。
【請求項９】
前記所定の係数は、１／２である請求項８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の動作率推定方法、装置、およびプログラムに係り、特に半導体装置を設計する際にライブラリを元に半導体装置の動作率を推定する方法、装置、およびプログラムに係る。
【背景技術】
【０００２】
電子機器の高度化、多様化に伴い半導体装置の大規模化、低消費電力化が進んでいる。このような半導体装置を設計する上で、設計段階において半導体装置の動作周波数を見積もることは、設計工程を加速する意味においても重要なことである。すなわち、電気回路の動作周波数を推定することで、電気回路の消費電力の見積やＥＭ（electro migration）のチェック等を行って適切な回路設計を行うことができる。電気回路の消費電力を見積もる場合、その回路全体の最高動作周波数から見積もることも可能であるが、多くの場合、回路全体がその最高動作周波数で動作するわけではないため、このような方法で見積もった消費電力は、大き過ぎる結果となってしまう。そこで、より正確な動作周波数推定に対し、テストパターンを用いた論理シミュレーションが行われていた。しかしながら、テストパターンの作成と、テストパターンを用いた論理シミュレーションとには、多大な工数がかかるという欠点があった。
【０００３】
そこでテストパターンを用いた論理シミュレーションによることなく、簡易かつ迅速に、かつ比較的高精度で電気回路の消費電力を推定する方法が特許文献１において開示されている。この方法では、入力信号と出力信号との真理値表（論理式）を用いて、出力信号の変化確率を入力信号の変化確率による関数で表現し、この関数を用いて順次変化確率を計算することで、回路全体の動作周波数を求める。このようにして、各信号線における信号の変化確率を求めることにより、電気回路の消費電力を正確かつ迅速に推定している。
【０００４】
【特許文献１】特開平８−６９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に記載の方法では、真理値表（論理式）を得るために回路中に存在する全ての論理ブロックについて論理モデルが作成可能であることが前提となっている。しかしながら、回路の複雑化に伴い、論理ブロックの種類によっては、論理モデルの作成が行えない場合も増えつつある。例えば、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）、ＣＰＵ、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といった回路ブロックでは、出力の論理は、内部状態に依存し、その内部状態も複雑であるために、論理式で表すことはほとんど不可能である。このような論理式で表すことができない論理ブロックが存在する回路では、回路における変化確率を算出する関数が求められないので、動作周波数自体を計算することができない。したがって、論理モデルの作成が困難なブロックを含む場合、特許文献１に記載の方法では、電気回路の消費電力を推定することが不可能である。
【課題を解決するための手段】
【０００６】
前記課題を解決する本発明の一つのアスペクトに係る動作率推定装置は、半導体装置のセルのライブラリ情報を元にセルへの入力信号から出力信号における推定動作率を求める装置である。この装置は、予め動作率の推定対象となるセルのライブラリ情報を記憶しておく蓄積部と、蓄積部からライブラリ情報を読出し、ライブラリ情報に推定対象のセルの論理情報が定義されているか否かを判定し、論理情報が定義されている場合には、論理情報から推定動作率を求め、論理情報が定義されていない場合には、ライブラリ情報中のタイミング情報から推定動作率を求める処理部と、を備える。
【０００７】
本発明の一つのアスペクトに係る半導体装置の動作率推定方法は、動作率推定装置が半導体装置のセルのライブラリ情報を元にセルへの入力信号から出力信号における推定動作率を求める方法である。この方法は、動作率の推定対象となるセルのライブラリ情報に論理情報が定義されているか否かを判定するステップと、判定の結果、論理情報が定義されている場合には、論理情報から推定動作率を求めるステップと、判定の結果、論理情報が定義されていない場合には、ライブラリ情報中のタイミング情報から推定動作率を求めるステップと、を含む。
【０００８】
本発明の一つのアスペクトに係るプログラムは、半導体装置のセルのライブラリ情報を元にセルへの入力信号から出力信号における推定動作率を求めるプログラムである。このプログラムは、コンピュータに、予め動作率の推定対象となるセルのライブラリ情報を記憶しておく記憶手段と、記憶手段からライブラリ情報を読み出し、推定対象のセルの論理情報が定義されているか否かを判定する判定手段と、判定手段の判定の結果、論理情報が定義されている場合には、論理情報から推定動作率を求める手段と、判定手段の処理の結果、論理情報が定義されていない場合には、ライブラリ情報中のタイミング情報から推定動作率を求める手段と、を実行させる。
【発明の効果】
【０００９】
本発明によれば、論理モデルの作成が困難なブロックであっても、タイミング情報を用いて動作率を計算するので、回路全体の動作率を推定することが可能となる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施形態に係る半導体装置の動作率推定装置の構成を示すブロック図である。図１において、動作率推定装置は、パーソナルコンピュータやエンジニアリングワークステーション等の情報処理装置から構成され、処理装置１０、入力装置１１、出力装置１２、記憶装置１３を備える。記憶装置１３は、動作率推定の対象とされる半導体装置のデザイン情報１４、ライブラリ情報１５、さらに処理装置１０を動作させる動作周波数推定プログラム２０を蓄える。ライブラリ情報１５には、論理情報（論理ライブラリ）１６とタイミング情報（遅延解析ライブラリ）１７とが含まれる。処理装置１０は、入力装置１１からのコマンドなどに従って、動作周波数推定プログラム２０を実行させる。プログラムの実行によって、デザイン情報１４から所定のセルを順次取り出し、セルに対応するライブラリ情報を元にセルへの入力信号から出力信号における動作率を推定する。動作率の推定対象とする回路に含まれる全てのセルについて動作率の推定を実行し、実行結果を出力装置１２に出力する。実行結果は、消費電力の見積やＥＭ（electro migration）のチェックなどのための中間ファイルとして機能する。なお、ここで動作率とは、単位時間辺りの論理レベル変化数、すなわち動作周波数あるいはトグル率に相当するものである。また、セルとは、バッファやインバータのようなプリミティブなセル以外にメモリやプリミティブなセルを複数組み合わせたマクロセルをも含むものである。
【００１１】
次に、動作率推定装置の処理内容の詳細について説明する。図２は、本発明の実施形態に係る半導体装置の動作率推定装置の処理を表すフローチャートである。なお以下の説明では、動作率を動作周波数として表記する。
【００１２】
まず始めに、ステップＳ１１において、処理装置１０は、動作周波数を求める対象となる回路のデザイン情報１４と、ライブラリセルの論理情報１６およびタイミング情報１７を格納したライブラリ情報１５とを記憶装置１３から読み込む。
【００１３】
ステップＳ１２において、回路（デザイン）の動作周波数を求めるためのスタートポイント（外部入力端子等）に対して動作周波数を設定する。
【００１４】
ステップＳ１３において、ステップＳ１２で設定されたスタートポイントから回路をトレースして動作周波数を求めるセルを選択する。
【００１５】
ステップＳ１４において、ステップＳ１３で選択されたセルの論理ライブラリを参照し、ライブラリ中に論理情報が定義されていれば、ステップＳ１５に進み、定義されていない場合（ブラックボックスであれば）、ステップＳ１６に進む。
【００１６】
ステップＳ１５において、ライブラリに定義された論理情報を元にして、入力信号の動作周波数から出力信号の動作周波数を見積もり、ステップＳ１７に進む。
【００１７】
ステップＳ１６において、ライブラリに定義されたタイミングアークを元にして、入力信号の動作周波数から出力信号の動作周波数を見積もる。なお、ここでタイミングアークとは、セル（ブロック）内部のセルの入力端子から出力端子へのタイミングパス（遅延伝播経路）を意味する。
【００１８】
ステップＳ１７において、全てのセルの動作周波数が計算されたか否かを判定し、全てのセルについて完了していなければ、ステップＳ１３に戻る。
【００１９】
ステップＳ１８において、動作周波数の見積結果を出力し、一連の動作を終了する。
【００２０】
なお、図２のフローチャートでは、出力から入力にフィードバックするループが存在しないことを前提にしている。フィードバックループが存在する場合には、出力端の動作周波数が求まらないと、入力端の動作周波数を求めることができないので、ループを切断し、入力端には、例えばクロック周波数など所定の周波数を入力するように設定するものとする。
【００２１】
次に、ステップＳ１６の詳細について説明する。図３は、図２のステップＳ１６の詳細を表すフローチャートである。
【００２２】
ステップＳ２１において、セルにクロック信号の入力があるか否かを判定し、クロック信号の入力がある場合、ステップＳ２３に進み、無い場合、ステップＳ２２に進む。
【００２３】
ステップＳ２２において、動作周波数を見積もる出力信号に関連するタイミングアークを持つ入力信号の最大周波数を出力信号の動作周波数とし、ステップＳ１７に戻る。
【００２４】
ステップＳ２３において、動作周波数を見積もる出力信号に関連するタイミングアークを持つクロック信号の１／２の周波数と、クロック信号以外の入力信号の最大周波数を比較する。クロック信号の１／２の周波数が最大周波数を超えればステップＳ２５に進み、クロック信号の１／２の周波数が最大周波数以下であればステップＳ２４に進む。なお、ステップＳ２３において、動作周波数を見積る出力信号に関連するタイミングアークを持つクロック信号が、複数ある場合には、それらのクロック信号の中から最大周波数であるクロック信号を選択し、そのクロック信号の１／２の周波数と、クロック信号以外の入力信号の最大周波数を比較するようにする。ここで、クロック信号の周波数を１／２としているのは、その出力信号が、クロック信号の立ち上がり（あるいは立下り）で変化することを想定しているためである。対象となるセルの動作によって、この１／２の係数を適宜変更しても良いことは言うまでもない。
【００２５】
ステップＳ２４において、クロック信号の周波数の１／２を出力信号の動作周波数とし、ステップＳ１７に戻る。
【００２６】
ステップＳ２５において、クロック信号以外の入力信号の最大周波数を出力信号の動作周波数とし、ステップＳ１７に戻る。
【００２７】
ここで、ステップＳ２４、Ｓ２５での周波数決定について説明する。クロック信号と、クロック信号以外の例えばデータ信号とが入力となるセルの場合、クロック信号がいかに高速な周波数であっても、データ信号に変化がなければその出力信号は変化しない。逆の場合も同様である。すなわち、このようなセルの出力信号の動作周波数は、クロック信号の動作周波数とクロック信号以外の動作周波数とで低い方の動作周波数に依存する、と言うことができる。また、このような周波数決定を行うことで、過剰に悲観的な結果、つまり非現実的な周波数を動作周波数としてしまうことを排除することができる。
【００２８】
以上のように動作率推定装置は、動作周波数を推定し、対象とされる回路に論理モデルの作成が困難なブロックが含まれていても、そのブロックに関しては、タイミングパス情報を用いて動作周波数を計算する。したがって、回路全体にわたって動作周波数を推定することができる。そして回路の動作周波数から回路の消費電力を見積もることもできる。
【実施例】
【００２９】
次に、動作周波数推定の対象となる簡単な回路を例として採り上げ、動作周波数の推定方法について説明する。図４は、動作周波数推定の対象となる回路例を示すブロック図である。図４において、Ｕ１は、２入力ＡＮＤ（論理積）回路、Ｕ２は、バッファである。また、Ｕ３、Ｕ５は、否定回路（インバータ）、Ｕ４は、ライブラリ情報に論理情報が定義されていないセル（ブロック）、Ｕ６は、２入力ＯＲ（論理和）回路である。Ｕ１〜Ｕ６のそれぞれは、図５に示すようなシンボルと論理式で表される。図４において、入力端子ＩＮ１、ＩＮ２は、２入力ＡＮＤ回路の入力端子に接続され、ＡＮＤ回路の出力端子は、セルＵ４の入力端子Ｃに接続される。入力端子ＩＮ３は、セルＵ４の入力端子Ｂに接続される。入力端子ＩＮ４は、バッファＵ２を介してセルＵ４の入力端子Ａに接続される。入力端子ＩＮ５は、セルＵ４の入力端子Ｄに接続される。セルＵ４の出力端子Ｘは、インバータＵ５を介して出力端子ＯＵＴ１に接続される。セルＵ４の出力端子Ｙは、２入力ＯＲ回路Ｕ６の一方の入力端子に接続される。入力端子ＩＮ６は、インバータＵ３を介して２入力ＯＲ回路Ｕ６の他方の入力端子に接続される。２入力ＯＲ回路Ｕ６の出力端子は、出力端子ＯＵＴ２に接続される。
【００３０】
ここで各セル（ブロック）における動作周波数ｆ（）を、式（１）のようにトグルレートと状態確率の２つの値の組で表現することとする。
ｆ（信号名）＝（トグルレート，状態確率）      −−−−式（１）
ここで、トグルレートは、単位時間当たりの信号変化（０→１、１→０）数である。例えば単位時間を１μｓと設定することでトグルレートの値をＭＨｚ単位の周波数で表現しているとみなすことができる。また、状態確率は、信号が１である確率を０〜１で表し、動作周波数の計算時に補助的に使用する。
【００３１】
まず論理情報が定義されているプリミティブな回路に対する動作周波数計算の基本的な考え方について説明する。
【００３２】
・トグルレートの計算
トグルレートを求める基本的な考えは、ある入力端子のトグルレートがどの程度の確率で出力端子に伝わるかということに基づく。そして、他の端子の状態確率を、この出力端子に伝わる確率を算出するための補助として用いるようにする。このような考えに基づいて、トグルレートの計算式を次の式（２）で表す。
出力端子Ｙのトグルレート＝Σ（入力端子Ａｎのトグルレート×入力端子Ａｎの状態変化により出力端子Ｙの状態変化が発生する確率）      −−−−−−式（２）
ただし、ｎ＝１，２，３，…である。
【００３３】
・状態確率の計算
状態確率は、その信号が１になる確率であるため、出力端子の状態確率は、出力端子の論理が１となる入力端子の組み合わせの確率の総和となる。
【００３４】
以下に出力がＹである代表的なプリミティブな回路におけるトグルレートｔ（Ｙ）、状態確率ｐ（Ｙ）を示す。
【００３５】
・Ｙ＝Ａ
これは単なるバッファであって最も単純なケースであり、Ａが変化すればＹが必ず変化する。また、Ａが１の時にＹが１になる。したがって、以下の式（３）、（４）でトグルレートと状態確率を決定する。
ｔ（Ｙ）＝ｔ（Ａ）                        −−−−−−式（３）
ｐ（Ｙ）＝ｐ（Ａ）                        −−−−−−式（４）
【００３６】
・Ｙ＝！Ａ
これはインバータ（否定回路）であって、このケースも、Ａが変化すればＹが必ず変化する。また、Ａが０の時にＹが１になる。したがって、以下の式（５）、（６）でトグルレートと状態確率を決定する。
ｔ（Ｙ）＝ｔ（Ａ）                        −−−−−−式（５）
ｐ（Ｙ）＝１−ｐ（Ａ）                    −−−−−−式（６）
【００３７】
・Ｙ＝Ａ＊Ｂ
これはＡＮＤ（論理積）回路であって、Ａの変化がＹに伝搬するのは、Ｂ＝１の場合である。そして、Ｂの変化がＹに伝搬するのは、Ａ＝１の場合である。また、Ｙが１となるのはＡ＝Ｂ＝１の場合のみである。したがって、以下の式（７）、（８）でトグルレートと状態確率を決定する。
ｔ（Ｙ）＝ｔ（Ａ）＊ｐ（Ｂ）＋ｔ（Ｂ）＊ｐ（Ａ）      −−−−−−式（７）
ｐ（Ｙ）＝ｐ（Ａ）＊ｐ（Ｂ）                          −−−−−−式（８）
【００３８】
・Ｙ＝Ａ＋Ｂ
これはＯＲ（論理和）回路であって、Ａの変化がＹに伝搬するのは、Ｂ＝０の場合である。そして、Ｂの変化がＹに伝搬するのは、Ａ＝０の場合である。また、Ｙが１となるのはＡかＢのいずれかが１の場合である。したがって、以下の式（９）、（１０）でトグルレートと状態確率を決定する。
ｔ（Ｙ）＝ｔ（Ａ）＊（１−ｐ（Ｂ））＋ｔ（Ｂ）＊（１−ｐ（Ａ））      −−−−−−式（９）
ｐ（Ｙ）＝ｐ（Ａ）＊ｐ（Ｂ）＋ｐ（Ａ）＊（１−ｐ（Ｂ））＋（１−ｐ（Ａ））＊ｐ（Ｂ）      −−−−−−式（１０）
【００３９】
ここで図４における入力端子ＩＮ１〜ＩＮ６に与える信号の動作周波数を以下の式（１１）〜（１６）の通りであるとする。
ｆ（ＩＮ１）＝（１００，０．３）      −−−−−−式（１１）
ｆ（ＩＮ２）＝（１５０，０．６）      −−−−−−式（１２）
ｆ（ＩＮ３）＝（８０，０．５）        −−−−−−式（１３）
ｆ（ＩＮ４）＝（２００，０．７）      −−−−−−式（１４）
ｆ（ＩＮ５）＝（４００，０．４）      −−−−−−式（１５）
ｆ（ＩＮ６）＝（５０，０．２）        −−−−−−式（１６）
【００４０】
次に、各ブロックの出力信号の動作周波数について、入力側から順次トレースを行い、計算可能なブロックから計算を行っていく。図４の回路では、Ｕ１→Ｕ２→Ｕ３→Ｕ４→Ｕ５→Ｕ６の順序で計算を行う。なお、Ｕ４（ブラックボックス）以外のブロックの動作周波数計算は、上述の各ブロックの動作周波数計算方法に従う。
【００４１】
［Ｕ１の動作周波数計算］
式（７）、（８）と式（１１）、（１２）とに基づいて、式（１７）を得る。
ｆ（Ｕ１：Ｙ）＝ｆ（ＩＮ１）＊ｆ（ＩＮ２）＝（１００，０．３）＊（１５０，０．６）＝（１０５，０．１８）      −−−−−−式（１７）
【００４２】
［Ｕ２の動作周波数計算］
式（３）、（４）と式（１４）とに基づいて、式（１８）を得る。
ｆ（Ｕ２：Ｙ）＝（２００，０．７）      −−−−−−式（１８）
【００４３】
［Ｕ３の動作周波数計算］
式（５）、（６）と式（１６）とに基づいて、式（１９）を得る。
ｆ（Ｕ３：Ｙ）＝（５０，０．８）      −−−−−−式（１９）
【００４４】
［Ｕ４の動作周波数計算］
Ｕ４のブロックは、図５に示すようにブラックボックスであって論理情報を持たない。そこで、図６に示すような遅延計算ライブラリ（タイミング情報の一種）を入力し、以下の（１）、（２）、（３）に示す手順で動作周波数を求める。
【００４５】
（１）入力した遅延計算ライブラリを参照し、各出力端子がどの入力端子からの遅延パスを持つか確認する。この結果、図６を参照するとＵ４は、以下の２つのパスを持つ。
出力端子Ｘ：入力端子Ａ、Ｂからの遅延パスを持つ。
出力端子Ｙ：入力端子Ｃ、Ｄからの遅延パスを持つ。
【００４６】
（２）出力端子Ｘについて動作周波数を決定する。
（１）の結果を元に出力端子Ｘの動作周波数を入力端子Ａ、Ｂの動作周波数から決定する。ここで、入力端子Ｂは、図６に示すようにクロック属性を持つため、図３のステップＳ２３において説明したように、動作周波数に係数１／２を掛ける。そして入力端子Ａの周波数と比較する。ｆ（Ｕ２：Ｙ）＝（２００，０．７）＞ｆ（ＩＮ３）／２）＝（８０，０．５）／２であるから、図３のステップＳ２４において、動作周波数は、以下の式（２０）で決定される。
ｆ（Ｕ４：Ｘ）＝ｍｉｎ（ｆ（Ｕ２：Ｙ），（ｆ（ＩＮ３）／２））＝ｍｉｎ（（２００，０．７），（８０，０．５）／２）＝（４０，０．５）      −−−−−−式（２０）
ただし、ブラックボックスの動作周波数決定では、トグルレートのみを処理対象とし、状態確率は、常に０．５とする。これは、対象がブラックボックスであって状態確率を一意に決定することができないため、最も悲観的な状態とさせるためである。
【００４７】
（３）  出力端子Ｙについて動作周波数を決定する。
（１）の結果を元に出力端子Ｙの動作周波数を入力端子Ｃ、Ｄから決定する。ここで、入力端子Ｃ、Ｄは、図６に示すようにクロック属性を持たない（データ属性である）ため、図３のステップＳ２２において、入力端子Ｃ、Ｄの内、高い方の周波数を選択する。すなわち、ｆ（Ｕ１：Ｙ）＝（１０５，０．１８）＜ｆ（ＩＮ５））＝（４００，０．４）であるので、式（２１）のように決定する。
ｆ（Ｕ４：Ｙ）＝ｍａｘ（ｆ（Ｕ１：Ｙ），（ｆ（ＩＮ５））＝ｍａｘ（（１０５，０．１８），（４００，０．４））＝（４００，０．５）      −−−−−−式（２１）
なお、状態確率を上記（２）と同様に０．５とする。
【００４８】
［Ｕ５の動作周波数計算］
式（５）、（６）と式（２０）とに基づいて、式（２２）を得る。
ｆ（Ｕ５：Ｙ）＝（４０，０．５）      −−−−−−式（２２）
【００４９】
［Ｕ６の動作周波数計算］
式（９）、（１０）と式（１９）、（２１）とに基づいて、式（２３）を得る。
ｆ（Ｕ６：Ｙ）＝ｆ（Ｕ４：Ｙ）＋ｆ（Ｕ３：Ｙ）＝（４００，０．５）＋（５０，０．８）＝（１０５，０．９）      −−−−−−式（２３）
【００５０】
以上の結果をまとめると、図４の各回路の動作周波数は、以下の式（２４）〜（３０）のように求められる。
ｆ（Ｕ１：Ｙ）＝（１０５，０．１８）                    −−−−−−式（２４）
ｆ（Ｕ２：Ｙ）＝（２００，０．７）                      −−−−−−式（２５）
ｆ（Ｕ３：Ｙ）＝（５０，０．８）                        −−−−−−式（２６）
ｆ（Ｕ４：Ｘ）＝（４０，０．５）                        −−−−−−式（２７）
ｆ（Ｕ４：Ｙ）＝（４００，０．５）                      −−−−−−式（２８）
ｆ（Ｕ５：Ｙ）＝ｆ（ＯＵＴ１）＝（４０，０．５）        −−−−−−式（２９）
ｆ（Ｕ６：Ｙ）＝ｆ（ＯＵＴ２）＝（１０５，０．９）      −−−−−−式（３０）
【００５１】
以上のように、論理情報が定義されている回路では、その論理情報を元に動作周波数を計算する。また、Ｕ４のような論理モデルの作成が困難なブロック（ブラックボックス）に関しては、タイミング情報を用いて動作周波数を計算する。これらの計算を入力側から順次適用することで、図４の回路全体にわたって動作周波数を求めることができる。なお、図４に示した回路では、出力から入力にフィードバックするループが存在しないが、フィードバックループが存在する場合には、先に述べたようにループを切断し、入力端には、例えばクロック周波数など所定の周波数を入力するように設定するものとする。
【００５２】
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものではなく、本願特許請求の範囲の各請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態に係る半導体装置の動作率推定装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る半導体装置の動作率推定装置の処理を表すフローチャートである。
【図３】図２のステップＳ１６の詳細を表すフローチャートである。
【図４】動作周波数推定の対象となる回路例を示すブロック図である。
【図５】代表的なセルのシンボルと論理式を表す図である。
【図６】ブラックボックスであるセルの遅延計算ライブラリの例を示す図である。
【符号の説明】
【００５４】
１０  処理装置
１１  入力装置
１２  出力装置
１３  記憶装置
１４  デザイン情報
１５  ライブラリ情報
１６  論理情報
１７  タイミング情報
２０  動作周波数推定プログラム
Ｕ１  ２入力ＡＮＤ回路
Ｕ２  バッファ
Ｕ３、Ｕ５  否定回路
Ｕ４  ライブラリ情報に論理情報が定義されていないセル
Ｕ６  ２入力ＯＲ回路
ＩＮ１〜ＩＮ６  入力端子
ＯＵＴ１、ＯＵＴ２  出力端子
【図１】
2006293823.tif 000003
【図２】
2006293823.tif 000004
【図３】
2006293823.tif 000005
【図４】
2006293823.tif 000006
【図５】
2006293823.tif 000007
【図６】
2006293823.tif 000008