(57)【要約】【課題】精度よく簡便にチップサイズを見積もることができる、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップ見積もり方法を提供する。【解決手段】回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部１と、セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部２１と、前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部２２と、を備えたことを特徴とする。【選択図】図１
2012243151.tif 000002
【特許請求の範囲】
【請求項１】
回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部と、
セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部と、
前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部と、
を備えたことを特徴とする、半導体集積回路のチップサイズ見積もり装置。
【請求項２】
前記性能考慮ゲート数係数は、動作周波数と関連付けられて設定保持部に格納されていることを特徴とする、請求項１に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項３】
前記性能考慮ゲート数係数は、前記回路のパスの論理段数と関連付けられて設定保持部に格納されていることを特徴とする、請求項１又は請求項２に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項４】
前記セルライブラリは、複合ゲートセルも含むセルで構成されたセルライブラリを含むことを特徴とする、請求項１から請求項３のいずれか一項に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項５】
回路の機能の実現に最小限必要なゲート数である最小機能ゲート数と動作周波数とを入力し、
見積もり対象のセルライブラリを選択し、
予めセルライブラリごとに設定されている所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数から、入力された前記最小機能ゲート数および前記動作周波数と選択された前記セルライブラリとから、見積もりに用いる特定の値の前記性能考慮ゲート数係数を決定し、
前記最小機能ゲート数と決定された前記性能考慮ゲート数係数とから見積もりに用いるゲート数を算出し、
前記算出されたゲート数を用いて前記回路の総面積を見積もることを特徴とする、半導体集積回路のチップサイズ見積もり方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路のチップサイズを見積もる場合、スタンダードセルで構成されるランダムロジックの部分に関しては、回路規模をゲート数で表現して見積もりの入力情報とすることが一般的であった。一般的には、例えば７グリッドと９グリッドなど、異なる複数のセルライブラリについて見積もりを行い、サイズの小さいほうのセルライブラリを用いて実際の回路設計や半導体集積回路の製作を行うことが多い。
【０００３】
チップサイズの見積もりを異なる複数のセルライブラリで行い結果を比較する場合、すべてのセルライブラリの見積もりの入力情報として同一のゲート数を使用すると、セルの動作周波数に関係なく、セルの高さの低いグリッドのセルライブラリのほうが、総面積が小さくなる傾向にあった。（すなわち、７グリッドのセルライブラリのほうが常に９グリッドのセルライブラリのほうが動作周波数に関係なく常にセルの総面積が小さく見積もられる。）
しかしながら、実際の回路設計では、動作周波数が高くなるにつれ、駆動能力の大きいセルが使用されたりバッファが挿入されたりする。このとき、セルの高さの高いグリッドのセルライブラリのほうが同じゲート数でもセルの性能がよく、動作速度が速い場合が多い。従って、動作周波数が高くなった場合に、セルの高さの高いグリッドのセルライブラリを用いるほうが駆動能力の大きいセルの使用やバッファの挿入が抑制される。すなわちセルの高さの高いグリッドのセルライブラリのほうが回路規模が小さく、ゲート数が小さくなる傾向にある。このため、実際には、動作周波数が高くなるとセルの高さの高いグリッドのセルライブラリのほうがセルの総面積が小さくなる可能性がある。
【０００４】
このように、異なる複数のセルライブラリのチップサイズを見積もって結果を比較する場合、従来は回路規模として同一のゲート数を入力していたため、動作周波数が高くなるにつれて見積もり精度が低下し、正しい比較結果が導き出せず、最適でないセルライブラリが選択されてしまうという問題があった。
【０００５】
見積もりの入力として用いるゲート数を、対象となる個々のセルライブラリに応じた値にする方法が考えられるが、セルライブラリ毎に見積もりのたびに回路の論理合成などを行うことは手間とコストがかかったり、情報が少ないと論理合成自体ができなかったりするという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２３４１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで、本実施形態は、以上の点に鑑みてなされたもので、精度よく簡便にチップサイズを見積もることができる、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本実施形態の半導体集積回路のチップサイズ見積もり装置は、回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部と、セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部と、前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部と、を備えたことを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係わる半導体集積回路のチップサイズ見積もり装置の構成の一例を説明する図。
【図２】チップサイズ見積もり用係数テーブル２３の一例を説明する図。
【図３】動作タイミングを考慮して設計された回路の一例を説明する図。
【図４】動作タイミングを考慮せずに図３の回路と同様の機能の実現だけを目的として構成された回路を説明する図。
【図５】チップサイズの見積もり対象であるチップのレイアウトの一例を説明する図。
【図６】ランダムロジック部７の面積を見積もる手順を説明するフローチャート。
【図７】図６のランダムロジック部７について本実施形態により算出されたセル総面積と動作周波数との関係を示すグラフ。
【図８】見積もり対象のセルのレイアウトを説明する図であり、図８（ａ）は９グリッドのセルライブラリを用いたセルのレイアウトを示しており、図８（ｂ）は７グリッドのセルライブラリを用い、図８（ａ）と同じ機能を有するセルのレイアウトを示している。
【図９】従来の手法により算出されたセル総面積と動作周波数との関係を示すグラフ。
【図１０】チップサイズ見積もり用係数テーブル２３´の一例を説明する図
【図１１】基本セルのみで構成されたセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図。
【図１２】動作タイミングを考慮せずに図１１の回路と同様の機能の実現だけを目的として構成された回路を説明する図。
【図１３】図１１の回路と同様の機能を有し、複合セルを含む別のセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態を説明する。
【００１１】
まず、図１を参照して、本実施形態の半導体集積回路のチップサイズ見積もり装置の構成を説明する。図１は、本実施形態に係わる半導体集積回路のチップサイズ見積もり装置の構成の一例を説明する図である。
【００１２】
図１に示すように、半導体集積回路のチップサイズ見積もり装置は、見積もり条件などを入力するための入力部１と、入力された情報などからチップサイズの見積もりを行う見積もり部２と、見積もり結果を出力する出力部３とから構成される。
【００１３】
入力部１は、チップに搭載されたランダムロジック部の回路規模を表すゲート数や、動作周波数や、見積もり対象のセルライブラリなどを入力する部分であり、例えばキーボードやタッチパネルなどで構成される。
【００１４】
見積もり部２は、見積もりに用いられる各種設定値を格納する設定値記憶部２１と、入力部１から入力されたデータや設定値記憶部２１に格納されている設定値を用いてランダムロジック部の総面積を算出し、チップサイズの見積もりを行う計算部２２とから構成されている。
【００１５】
出力部３は、見積もり部２で行われる見積もり結果を出力する部分であり、例えばディスプレイなどで構成される。
【００１６】
設定値記憶部２１には、例えば図２に示すような、チップサイズ見積もりに用いられる設定値が入力された、チップサイズ見積もり用係数テーブル２３が格納されている。図２は、チップサイズ見積もり用係数テーブル２３の一例を説明する図である。
【００１７】
図２に示すように、チップサイズ見積もり用係数テーブル２３は、セルライブラリを識別するためのライブラリ種別２３１と、動作周波数２３２と、性能考慮ゲート数係数２３３との３項目の列で構成されている。
【００１８】
ライブラリ種別２３１には、例えばセルの高さが７グリッドのセルライブラリは“１”、９グリッドのセルライブラリは“２”、１１グリッドのセルライブラリは“３”のように、セルライブラリを識別するためのユニークな番号や文字列などが設定される。
【００１９】
動作周波数２３２には、見積もりが行われる可能性のある範囲における、動作周波数の代表的な数値（例えば１００［ＭＨｚ］、２００［ＭＨｚ］、３００［ＭＨｚ］・・・など）が設定される。
【００２０】
性能考慮ゲート数係数２３３は、チップに搭載されたランダムロジック部の回路規模をあらわすゲート数（実際の設計段階で配置されるゲート数）を、最小機能ゲート数で除した値である。
【００２１】
ここで、性能考慮ゲート数係数２３３と最小機能ゲート数について、図３及び図４を用いて説明する。図３は、動作タイミングを考慮して設計された回路の一例を説明する図であり、図４は、動作タイミングを考慮せずに図３の回路と同様の機能の実現だけを目的として構成された回路を説明する図である。
【００２２】
図３に示す回路は、３つのフリップフロップ１１、１２、１３と、ＮＡＮＤ１４と、バッファ１５とのセルから構成されている。各セル１１〜１５には、それぞれのセルの駆動能力を、最小駆動能力のセルの駆動能力に対する倍率として各記号の内側に記載している。すなわち、フリップフロップ１１、１２は、最小駆動能力のフリップフロップの２倍の駆動能力を有し、フリップフロップ１３は、最小駆動能力のフリップフロップの４倍の駆動能力を有する。また、ＮＡＮＤ１４は、最小駆動能力のＮＡＮＤの４倍の駆動能力を有し、バッファ１５は、最小駆動能力のバッファの２倍の駆動能力を有する。
【００２３】
また、図３には、セル１１〜１５のそれぞれを構成する機能ゲートの数を、各記号の下部に記載している。なお、機能ゲートとはトランジスタ４個を１ゲートと定義するものである。例えば、最小の駆動能力の２入力ＮＡＮＤセルは、トランジスタ４個で構成されるため、このＮＡＮＤセルの機能ゲート数は１となる。
【００２４】
なお、ゲートの定義には機能ゲートのほかに面積ゲートがあげられる。面積ゲートとは、最小の駆動能力の２入力ＮＡＮＤセルの面積を１ゲートと定義するものである。従って、最小の駆動能力の２入力ＮＡＮＤセルは機能ゲート数も面積ゲート数も共に１となる。
【００２５】
図３に示す回路では、フリップフロップ１１、１２の機能ゲート数はそれぞれ６．５ゲートであり、スリップフロップ１３の機能ゲート数は８ゲートである。また、ＮＡＮＤ１４の機能ゲート数は４ゲートであり、バッファの機能ゲート数は１．５ゲートである。従って、回路全体の機能ゲート数は２６．５ゲートとなる。なお、同じ機能と動作周波数であっても、用いるセルライブラリが異なればそれぞれのセルの駆動能力やバッファの挿入数などが変わるため、回路全体の機能ゲート数は２６．５ゲートよりも大きい場合も小さい場合もありうる。
【００２６】
一方、図４に示す回路は、動作タイミングを考慮せずに設計されているため、バッファが挿入されていない。従って、駆動能力が最小の３つのフリップフロップ１１０、１２０、１３０と、ＮＡＮＤ１４０のみで構成されている。各セルの機能ゲート数は、フリップフロップ１１０、１２０、１３０が６ゲートであり、ＮＡＮＤ１４０が１ゲートである。従って、回路全体の機能ゲート数は１９ゲートとなる。
【００２７】
図４に示すような、動作タイミングを考慮せずに機能の実現のみを考慮した回路の合計の機能ゲート数を、最小機能ゲート数と定義する。最小機能ゲート数はセルライブラリへの依存性が小さいと考えられる。また、図３に示すように所定の動作周波数の動作速度を達成するために動作タイミングを考慮して設計された回路の合計の機能ゲート数を、最小機能ゲート数で除した値を性能考慮ゲート数係数と定義する。すなわち、図３に示す回路における性能考慮ゲート数係数は、２６．５／１９＝１．３９となる。
【００２８】
上述したとおり、回路の機能ゲート数は、動作周波数が同じでもセルライブラリが異なれば異なる値をとることが多い。また、動作周波数が異なれば、同じセルライブラリを用いても、駆動能力の異なるセルを用いたりバッファを挿入・削除したりするために、機能ゲート数は当然異なる値となる可能性が高い。従って、性能考慮ゲート数係数は、動作周波数やセルライブラリに応じて異なる値をとり、セルライブラリの特性や動作周波数による回路規模の増減を反映した値となる。
【００２９】
なお、図２に示すチップサイズ見積もり用係数テーブル２３における性能考慮ゲート数係数２３３の値はあくまでも一例であり、セルライブラリの特性や回路などに応じて最適な値に適宜設定して見積もりを行う。性能考慮ゲート数係数の算出は、例えば、複数の回路に対してそれぞれの回路で動作周波数を変えて論理合成などを行い、その結果得られたゲート数に基づき統計的に算出したり、過去に見積もりを行った回路における実際の回路規模から統計的に推定したりする方法が用いられる。
【００３０】
次に、本実施形態におけるチップサイズの見積もり方法について、図５に示す具体的な例と、図６に示すフローチャートとを用いて説明する。図５はチップサイズの見積もり対象であるチップのレイアウトの一例を説明する図であり、図６はランダムロジック部７の面積を見積もる手順を説明するフローチャートである。
【００３１】
図５に示すチップは、例えば携帯電話用のチップであり、アナログＩ／Ｆ４と、ＳＲＡＭ５と、ハードマクロ部６と、ランダムロジック部７とを有する。ランダムロジック部７は、画像処理部７１、ＣＰＵ７２、複号化部７３、などのセルを有する。
【００３２】
以下、図５のチップのサイズを見積もるために、ランダムロジック部７の面積を見積もる手順について図６に従って説明する。
【００３３】
まず、ステップＳ１おいて、見積もり対象のランダムロジック部７の最小機能ゲート数と、見積もり条件である動作周波数とを決定し、入力部１から入力する。次に、ステップＳ２に進み、見積もり対象のセルライブラリを選択し、入力部１から入力する。セルライブラリは複数選択してもよいし、１つのみでもよい。
【００３４】
続いてステップＳ３に進み、ステップＳ１で入力された最小機能ゲート数及び動作周波数と、ステップＳ２で選択されたセルライブラリに基づき、性能考慮ゲート数係数を決定する。具体的には、設定値記憶部２１に格納されているチップサイズ見積もり用係数テーブル２３を参照し、ライブラリ種別２３１をキーとして、ステップＳ２で選択されたセルライブラリに対応するレコードを抽出する。更に、動作周波数２３２をキーとして、ステップＳ１で入力された動作周波数に対応するレコードを抽出する。抽出されたレコードの性能考慮ゲート数係数２３３の項目に設定されている値を、見積もりで使用する性能考慮ゲート数係数の値として決定する。
【００３５】
次に、ステップＳ４において、ステップＳ１で入力された最小機能ゲート数に、ステップＳ３で決定された性能考慮ゲート数係数を乗じ、見積もり対象のランダムロジック部７のゲート数を算出する。最後に、ステップＳ５に進み、ステップＳ４で算出したゲート数に基づき、ランダムロジック部７の面積を見積もる。
【００３６】
面積の見積もり方法には様々な手法が挙げられ用いることができる。ここでは一例をあげる。まず、ステップＳ４で算出されたゲート数に対し、論理設計以降のＤＦＴ（Ｄｅｓｉｇｎ ｆｏｒ Ｔｅｓｔ）設計やクロックツリー生成、タイミング考慮のレイアウト設計などで追加されることが予想されるセルの増分を加える。このゲート数にセルライブラリに依存した面積係数（１機能ゲートあたりの面積）を乗じて面積を算出する。なお、論理設計以降のセルの増分や面積係数を性能考慮ゲート数係数に予め包含しておくことも可能であり、この場合は上述の乗算処理は不要となる。
【００３７】
続いて、算出されたセルの面積をセル配置密度（Ｕｔｉｌｉｚａｔｉｏｎ）で除し、ランダムロジック部７の面積の見積もりが完了する。なお、セル配置密度の値の決め方も、過去の経験値に基づく方法など従来から様々な手法があるが、最適な方法を用いることができる。また、セル配置密度は、セルライブラリやゲート数などに依存して値が変化することが多いため、チップサイズ見積もり用係数テーブル２３のようなテーブル、もしくはゲート数を変数としてセル配置密度を算出するための式をセルライブラリごとに準備して設定値記憶部２１に格納しておいてもよい。
【００３８】
なお、ステップＳ１において、最小機能ゲート数が不明であり、例えば、特定のセルライブラリで所定の動作周波数における見積もりの結果得られたゲート数が既知である場合、例えば、別のセルライブラリを用いた同機能・同じ動作周波数の回路について見積もり結果が得られているが最小機能ゲート数係数が不明である場合、以下のようにして最小機能ゲート数を算出して入力値とする。（複数のセルライブラリで回路規模の比較をする場合などがこれに該当する可能性がある。）
まず、チップサイズ見積もり用係数テーブル２３を参照し、ライブラリ種別２３１をキーとして、見積もりを実施したセルライブラリに対応するレコードを抽出する。更に、動作周波数２３２をキーとして、見積もりを実施した動作周波数に対応するレコードを抽出する。抽出されたレコードの性能考慮ゲート数係数２３３の項目に設定されている値で既知のゲート数を除し、最小機能ゲート数を算出する。
【００３９】
このようにして算出されたランダムロジック部７のセル総面積と動作周波数との関係を図７に示す。図７は、図６のランダムロジック部７について本実施形態により算出されたセル総面積と動作周波数との関係を示すグラフである。図７において、７グリッドのセルライブラリにおける見積もり結果をセルライブラリ１、９グリッドのセルライブラリの見積もり結果をセルライブラリ２、１１グリッドのセルライブラリの見積もり結果をセルライブラリ３として示している。
【００４０】
図７に示すように、全てのセルライブラリにおいて、動作周波数が高くなるとセル総面積も大きくなっている。しかし、動作周波数に対するセル総面積の増加の割合（直線の傾きに相当する）は、セルライブラリによって異なり、セルの高さの低いセルライブラリのほうがセルの高さの高いセルライブラリよりも増加の割合が大きくなっている。
【００４１】
一般的に、セルの高さが高くなるほど同じ機能ゲート数でもセルの性能がよく、動作速度が速い場合が多い。動作周波数が高くなるにつれて、駆動能力の大きなセルを用いたり、動作タイミングを実現するためにバッファを挿入したりする必要があるのだが、セルの高さの高いライブラリのほうはもともと性能のよいセルを用いているために、セルの高さの低いライブラリに比べてその必要が少なくなる。従って、図７に示すような関係（動作周波数に対するセル総面積の増加の割合が、セルライブラリ３＜セルライブラリ２＜セルライブラリ１の順になること）は、回路設計における実情を反映しているといえる。
【００４２】
動作周波数が小さい領域では、駆動能力の高い大きなセルを用いたりバッファを挿入したりする必要が少ないため、セルに用いるトランジスタの面積が小さい高さの低いグリッドのセルライブラリのほうが、セルの総面積も小さい傾向になる。従って、７グリッドのセルライブラリを用いた場合のセル総面積をＳ７、９グリッドのセルライブラリを用いた場合のセル総面積をＳ９、１１グリッドのセルライブラリを用いた場合のセル総面積をＳ１１とすると、図７に示すように、Ｓ７＜Ｓ９＜Ｓ１１となる。
【００４３】
動作周波数が高くなると、７グリッドのセルライブラリには駆動能力の大きなセルやバッファを多く挿入する必要が生じるため、セル総面積が９グリッドのセルライブラリよりも大きくなる（Ｓ９＜Ｓ７＜Ｓ１１）。更に動作周波数が高くなると、１１グリッドのセルライブラリの総面積よりも大きくなる（Ｓ９＜Ｓ１１＜Ｓ７）。
【００４４】
また更に動作周波数が高くなると、９グリッドのセルライブラリにも駆動能力の大きなセルを用いたりバッファを挿入したりする数が増え、セル総面積は１１グリッドのセルライブラリよりも大きくなる（Ｓ１１＜Ｓ９＜Ｓ７）。従って、動作周波数が高い領域では、グリッドの高さが一番高い１１グリッドのセルライブラリを用いた場合のセルの総面積が一番小さく見積もられる。
【００４５】
ここで、本実施形態の手法による見積もり結果を、従来の手法で行った見積もり結果と比較する。以下、図８及び図９を用いて従来の手法でのセル総面積の見積もりについて説明する。図８は、見積もり対象のセルのレイアウトを説明する図であり、図８（ａ）は９グリッドのセルライブラリを用いたセルのレイアウトを示しており、図８（ｂ）は７グリッドのセルライブラリを用い、図８（ａ）と同じ機能を有するセルのレイアウトを示している。また、図９は、従来の手法により算出されたセル総面積と動作周波数との関係を示すグラフである。
【００４６】
９グリッドのセルライブラリを用いている図８（ａ）に示すセル８は、２入力のＮＡＮＤ８１と、フリップフロップ８２と、スキャンＦＦ８３とを並列に並べて構成されている。これらは全て最小駆動能力のセルで構成されている。すなわち、ＮＡＮＤ８１は最小の駆機能ゲート数も面積ゲート数も１である。また、フリップフロップ８２は、機能ゲート数が６であり、面積ゲートは５である。また、スキャンＦＦ８３は、機能ゲート数が８であり、面積ゲートは７である。
【００４７】
一方、７グリッドのセルライブラリを用いている図８（ｂ）に示すセル９は、２入力のＮＡＮＤ９１と、フリップフロップ９２と、スキャンＦＦ９３とを並列に並べて構成されている。各セルは、図８（ａ）に示すセルと同機能を有しておりトランジスタ数も等しい。従って、ＮＡＮＤ９１の機能ゲート数は１、フリップフロップ９２の機能ゲート数は６、スキャンＦＦの機能ゲート数は８である。従って、９グリッドのセルライブラリでも、７グリッドのセルライブラリでも、機能ゲート数の合計はどちらも１５機能ゲートとなる。
【００４８】
これに対し、面積ゲートを考えた場合、一般的に機能の複雑な大きいセルになるほどトランジスタ間の配線構造が複雑になるため、高さの低いセルのほうが高いセルに比べてより大きな幅を必要とする。従って、ＮＡＮＤ９１の幅はＮＡＮＤ８１と等しく面積ゲート数は１であるが、他のセルは幅が大きくなるためこれに比例して面積ゲート数も大きくなる。具体的には、フリップフロップ９２の面積ゲート数は５．５、スキャンＦＦの面積ゲート数は７．７５となり、セル９全体では合計１４．２５面積ゲートとなる。
【００４９】
なお、面積ゲート数の値は９グリッドのセルライブラリを用いているセル８の合計の面積ゲート数（＝１３）よりも大きな値であるが、１面積ゲートあたりの面積は７グリッドのセルライブラリのほうが９グリッドのセルライブラリよりも小さい。実際の面積を算出すると、セル８は９×１３＝１１７平方グリッドであり、セル９は７×１４．２５＝９９．７５となり、高さの低い７グリッドのセルライブラリを用いたほうが小さく見積もられる。
【００５０】
以上を踏まえ、動作周波数を変えて９グリッドのセルライブラリと７グリッドのセルライブラリとでランダムロジックの総面積を見積もり、その結果を比較する場合を考える。見積もりの際に入力とする回路規模は、いずれかのセルライブラリまたは更に別のセルライブラリで論理合成を行った結果のゲート数を使用する場合や、過去の類似の集積回路のゲート数から推測する場合などがある。いずれの場合も、動作周波数が高くなるほどゲート数は大きくなる傾向にある。これは、動作速度を達成するために、駆動能力の大きなセルが使用されたり、バッファセルの挿入が必要となったりするためである。
【００５１】
上述のようにして求められたゲート数（機能ゲートまたは面積ゲート）を両方のセルライブラリに入力するのであるが、このとき、どちらのセルライブラリにも同数のゲート数を入力する。ゲート数を入力して見積もりを実行した場合の結果を図９に示す。図９において、７グリッドのセルライブラリにおける見積もり結果をセルライブラリ１、９グリッドのセルライブラリの見積もり結果をセルライブラリ２として示している。
【００５２】
図９に示すように、どちらのセルライブラリについても、動作周波数が高くなると入力するゲート数の増加に伴いセル総面積も大きくなっている。また、動作周波数に対するセル総面積の増加の割合（直線の傾きに相当する）は、セルライブラリによらずほぼ同じ割合となっている。従って、どの周波数領域においても７グリッドのセルライブラリを用いたほうが、９グリッドのセルライブラリを用いるよりもセルの総面積が小さくなると評価される。
【００５３】
しかしながら、セルの高さが高くなるほど同じ機能ゲート数でもセルの性能がよく、動作速度が速い場合が多い。動作周波数が高くなるにつれて、駆動能力の大きなセルを用いたり、動作タイミングを実現するためにバッファを挿入したりする必要があるのだが、セルの高さの高いライブラリのほうはもともと性能のよいセルを用いているために、セルの高さの低いライブラリに比べてその必要が少なくなる。このため、動作周波数が高くなるほど９グリッドのセルライブラリのほうが、７グリッドのセルライブラリよりも回路の規模が小さくなる傾向にある。すなわち、動作周波数が高くなるにつれて、入力値であるゲート数が回路設計で実際に配置されるゲート数と乖離した値になってしまい、見積もり精度が悪くなっている。
【００５４】
これと比べ、本実施形態においては、総面積の見積もりに用いる回路規模として、見積もり対象となるセルライブラリの特性や動作周波数を考慮した適切なゲート数を用いるため、見積もり精度を向上させることができる。また、総面積の見積もりに用いる回路規模（＝設計段階で実際に配置されるゲート数）を、セルライブラリへの依存性の小さい最小機能ゲート数とセルライブラリの特性や動作周波数に依存して値が異なる性能考慮ゲート数係数との積で表現し、性能考慮ゲート数係数は予め装置内に設定しておき、見積もりの入力情報として最小機能ゲート数を用いることで、異なるセルライブラリの見積もりを行う場合にも、都度入力の値を変更する必要がなく同じ値を入力すればよいため、簡便に見積もりを行うことができる。
【００５５】
なお、上述した実施形態においては、代表的な動作周波数の性能考慮ゲート数係数を予め算出し、図２に示すようなテーブル形式で装置内に格納しているが、セルライブラリごとに動作周波数から性能考慮ゲート数係数の値が導出できればよく、例えば、セルライブラリごとに動作周波数と性能考慮ゲート数係数との関係式を予め求めて装置内に格納しておき、これをテーブルの代わりに用いてもよい。
【００５６】
また、図２に示すチップサイズ見積もり用係数テーブル２３は、セルライブラリごとにテーブルを分割し、複数のテーブルとして保持してもよい。
【００５７】
更に、性能考慮ゲート数係数は、動作周波数以外にも例えば見積もり対象の回路内におけるフリップフロップのパスの論理段数にも依存する。従って、図２に示すチップサイズ見積もり用係数テーブル２３にフリップフロップのパスの論理段数を示すパス段数２３４という項目を追加して、図１０に示すようなチップサイズ見積もり用係数テーブル２３´を作成し、これを見積もりに用いてもよい。図１０は、チップサイズ見積もり用係数テーブル２３´の一例を説明する図である。
【００５８】
（変形例）
次に、上述した実施形態の変形例を説明する。上述した実施形態では、見積もり対象のセルライブラリはすべて基本ゲートで構成されていたが、変形例では複数の基本ゲートの組み合わせから成る複合ゲートを含むセルライブラリも対象として見積もりを行う。
【００５９】
以下、図１１〜図１３を用いて、複合ゲートを含むセルライブラリの見積もりについて、具体的な回路を例示して説明する。なお、複合ゲートを含むセルライブラリを用いて構成される回路と、基本ゲートのみで構成されたセルライブラリを用いて構成された回路とを比較する形で説明していく。
【００６０】
図１１は基本セルのみで構成されたセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図であり、図１２は、動作タイミングを考慮せずに図１１の回路と同様の機能の実現だけを目的として構成された回路を説明する図である。図１３は、図１１の回路と同様の機能を有し、複合セルを含む別のセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図である。
【００６１】
図１１に示す回路は、基本セルのみで構成されており、具体的には３つのフリップフロップ３１、３２、３３と、ＮＡＮＤ３４と、ＡＮＤ３５と、ＮＯＴ３６と、ＮＯＲ３７とのセルから構成されている。それぞれのセルは動作タイミングを考慮した駆動能力を有しており、フリップフロップ３１、３２は最小駆動能力のフリップフロップの２倍の駆動能力を有し、フリップフロップ３３は、最小駆動能力のフリップフロップの４倍の駆動能力を有する。また、ＮＡＮＤ３４は、最小駆動能力のＮＡＮＤの４倍の駆動能力を有する。さらに、ＡＮＤ３５と、ＮＯＴ３６と、ＮＯＲ３７は最小駆動能力である。
【００６２】
また、図１１に示す回路では、フリップフロップ３１、３２の機能ゲート数はそれぞれ６．５ゲートであり、スリップフロップ３３の機能ゲート数は８ゲートである。また、ＮＡＮＤ３４の機能ゲート数は４ゲートであり、ＡＮＤ３５の機能ゲート数は１．５ゲートである。更に、ＮＯＴ３６の機能ゲート数は０．５ゲートであり、ＮＯＲ３７の機能ゲート数は１ゲートである。従って、回路全体の機能ゲート数は２８ゲートとなる。
【００６３】
一方、図１２に示す回路は、動作タイミングを考慮せずに設計されているため、駆動能力が最小のセルのみで構成されている。すなわち、最小駆動能力の３つのフリップフロップ３１０、３２０、３３０と、最小駆動能力のＮＡＮＤ３４０、ＡＮＤ３５０、ＮＯＴ３６０、ＮＯＲ３７０のセルで構成されている。各セルの機能ゲート数は、フリップフロップ３１０、３２０、３３０が６ゲートであり、ＮＡＮＤ３４０とＮＯＲ３７が１ゲートである。また、ＡＮＤ３５０は１．５ゲートであり、ＮＯＴ３６０は０．５ゲートである。従って、回路全体の機能ゲート数は２２ゲートとなる。
【００６４】
更に、図１３に示す回路は、図１１に示す回路と同じ機能を有しており、同じ動作タイミングを考慮した回路であるが、複合ゲートを含む別のセルライブラリを用いている。具体的には３つのフリップフロップ３１１、３２１、３３１と、ＮＡＮＤ３４１と、ＡＮＤとＮＯＴとＮＯＲとを一つのセルにまとめた複合ゲートセル３５１とから構成されている。
【００６５】
それぞれのセルは動作タイミングを考慮した駆動能力を有しており、フリップフロップ３１１、３２１は最小駆動能力のフリップフロップの２倍の駆動能力を有し、フリップフロップ３３１は、最小駆動能力のフリップフロップの４倍の駆動能力を有する。また、ＮＡＮＤ３４１は、最小駆動能力のＮＡＮＤの４倍の駆動能力を有する。さらに、複合ゲートセル３５１は最小駆動能力である。
【００６６】
また、図１３に示す回路では、フリップフロップ３１１、３２１の機能ゲート数はそれぞれ６．５ゲートであり、スリップフロップ３３１の機能ゲート数は８ゲートである。また、ＮＡＮＤ３４１の機能ゲート数は４ゲートであり、複合ゲートセル３５１の機能ゲート数は２ゲートである。従って、回路全体の機能ゲート数は２７ゲートとなる。
【００６７】
図１１に示す回路と図１３に示す回路とは、同一の機能・動作速度を実現することを目的とした回路であり、性能も同等なセルライブラリを用いている。（同じ高さのグリッドのセルライブラリを用いている）。ところが、図１１に示す回路の全体の機能ゲート数が２８ゲートであるのに対し、図１３に示す回路の全体の機能ゲート数は２７ゲートであり、１機能ゲート少なくなっている。
【００６８】
このゲート数の差は、図１１で用いているセルライブラリは基本セルのみで構成されているのに対し、図１３で用いているセルライブラリは、複合ゲートセルも用意されていることに起因する。すなわち、複合ゲートセルのラインナップの有無や、用意されている複合ゲートセルの種類や数によって、実際の回路のゲート数が変わってしまう。
【００６９】
そこで、図１２に示すような、動作タイミングを考慮せずに図１１及び図１３の回路と同様の機能の実現だけを目的として、基本セルのみで構成された回路の全体の機能ゲート数を最小機能ゲート数とする。すなわち、この場合の最小機能ゲート数は２２ゲートとなる。図１１及び図１３の回路全体の機能ゲート数を、最小機能ゲート数と性能考慮ゲート数係数の積として表現すると、図１１の回路の性能考慮ゲート数係数は２８／２２＝１．２７となり、図１３の回路の性能考慮ゲート数係数は２７／２２＝１．２３となる。
【００７０】
このように、複合ゲートセルのラインナップの異なるセルライブラリ毎に性能考慮ゲート数係数を算出し、例えば図２に示すチップサイズ見積もり用係数テーブル２３のようなテーブル形式で動作周波数に対する性能考慮ゲート数係数の値を予め設定しておく。すると、複合ゲートセルのラインナップが異なるセルライブラリの見積もりを行う場合にも、都度入力の値を変更する必要がなく、最小機能ゲート数を共通の入力値として入力すればよく、セルライブラリごとに入力の値を変更する必要がなく、簡便に見積もりを行うことができる。
【００７１】
入力された最小機能ゲート数と見積もり条件に合う性能考慮ゲート数係数とを乗じて実際のゲート数を算出し、総面積の見積もりに用いるので、見積もり対象となるセルライブラリの特性や動作周波数を考慮した適切なゲート数を用いることができ、見積もり精度を向上させることができる。
【００７２】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００７３】
１…入力部、２…見積もり部、３…出力部、２１…設定値記憶部、２２…計算部
【図１】
2012243151.tif 000003
【図２】
2012243151.tif 000004
【図３】
2012243151.tif 000005
【図４】
2012243151.tif 000006
【図５】
2012243151.tif 000007
【図６】
2012243151.tif 000008
【図７】
2012243151.tif 000009
【図８】
2012243151.tif 000010
【図９】
2012243151.tif 000011
【図１０】
2012243151.tif 000012
【図１１】
2012243151.tif 000013
【図１２】
2012243151.tif 000014
【図１３】
2012243151.tif 000015