半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法
【課題】精度よく簡便にチップサイズを見積もることができる、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップ見積もり方法を提供する。
【解決手段】回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部1と、セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部21と、前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部22と、を備えたことを特徴とする。
【解決手段】回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部1と、セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部21と、前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部22と、を備えたことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法に関する。
【背景技術】
【0002】
従来、半導体集積回路のチップサイズを見積もる場合、スタンダードセルで構成されるランダムロジックの部分に関しては、回路規模をゲート数で表現して見積もりの入力情報とすることが一般的であった。一般的には、例えば7グリッドと9グリッドなど、異なる複数のセルライブラリについて見積もりを行い、サイズの小さいほうのセルライブラリを用いて実際の回路設計や半導体集積回路の製作を行うことが多い。
【0003】
チップサイズの見積もりを異なる複数のセルライブラリで行い結果を比較する場合、すべてのセルライブラリの見積もりの入力情報として同一のゲート数を使用すると、セルの動作周波数に関係なく、セルの高さの低いグリッドのセルライブラリのほうが、総面積が小さくなる傾向にあった。(すなわち、7グリッドのセルライブラリのほうが常に9グリッドのセルライブラリのほうが動作周波数に関係なく常にセルの総面積が小さく見積もられる。)
しかしながら、実際の回路設計では、動作周波数が高くなるにつれ、駆動能力の大きいセルが使用されたりバッファが挿入されたりする。このとき、セルの高さの高いグリッドのセルライブラリのほうが同じゲート数でもセルの性能がよく、動作速度が速い場合が多い。従って、動作周波数が高くなった場合に、セルの高さの高いグリッドのセルライブラリを用いるほうが駆動能力の大きいセルの使用やバッファの挿入が抑制される。すなわちセルの高さの高いグリッドのセルライブラリのほうが回路規模が小さく、ゲート数が小さくなる傾向にある。このため、実際には、動作周波数が高くなるとセルの高さの高いグリッドのセルライブラリのほうがセルの総面積が小さくなる可能性がある。
【0004】
このように、異なる複数のセルライブラリのチップサイズを見積もって結果を比較する場合、従来は回路規模として同一のゲート数を入力していたため、動作周波数が高くなるにつれて見積もり精度が低下し、正しい比較結果が導き出せず、最適でないセルライブラリが選択されてしまうという問題があった。
【0005】
見積もりの入力として用いるゲート数を、対象となる個々のセルライブラリに応じた値にする方法が考えられるが、セルライブラリ毎に見積もりのたびに回路の論理合成などを行うことは手間とコストがかかったり、情報が少ないと論理合成自体ができなかったりするという問題があった。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−234187号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、本実施形態は、以上の点に鑑みてなされたもので、精度よく簡便にチップサイズを見積もることができる、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本実施形態の半導体集積回路のチップサイズ見積もり装置は、回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部と、セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部と、前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部と、を備えたことを特徴とする。
【図面の簡単な説明】
【0009】
【図1】本実施形態に係わる半導体集積回路のチップサイズ見積もり装置の構成の一例を説明する図。
【図2】チップサイズ見積もり用係数テーブル23の一例を説明する図。
【図3】動作タイミングを考慮して設計された回路の一例を説明する図。
【図4】動作タイミングを考慮せずに図3の回路と同様の機能の実現だけを目的として構成された回路を説明する図。
【図5】チップサイズの見積もり対象であるチップのレイアウトの一例を説明する図。
【図6】ランダムロジック部7の面積を見積もる手順を説明するフローチャート。
【図7】図6のランダムロジック部7について本実施形態により算出されたセル総面積と動作周波数との関係を示すグラフ。
【図8】見積もり対象のセルのレイアウトを説明する図であり、図8(a)は9グリッドのセルライブラリを用いたセルのレイアウトを示しており、図8(b)は7グリッドのセルライブラリを用い、図8(a)と同じ機能を有するセルのレイアウトを示している。
【図9】従来の手法により算出されたセル総面積と動作周波数との関係を示すグラフ。
【図10】チップサイズ見積もり用係数テーブル23´の一例を説明する図
【図11】基本セルのみで構成されたセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図。
【図12】動作タイミングを考慮せずに図11の回路と同様の機能の実現だけを目的として構成された回路を説明する図。
【図13】図11の回路と同様の機能を有し、複合セルを含む別のセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図。
【発明を実施するための形態】
【0010】
以下、図面を参照して実施形態を説明する。
【0011】
まず、図1を参照して、本実施形態の半導体集積回路のチップサイズ見積もり装置の構成を説明する。図1は、本実施形態に係わる半導体集積回路のチップサイズ見積もり装置の構成の一例を説明する図である。
【0012】
図1に示すように、半導体集積回路のチップサイズ見積もり装置は、見積もり条件などを入力するための入力部1と、入力された情報などからチップサイズの見積もりを行う見積もり部2と、見積もり結果を出力する出力部3とから構成される。
【0013】
入力部1は、チップに搭載されたランダムロジック部の回路規模を表すゲート数や、動作周波数や、見積もり対象のセルライブラリなどを入力する部分であり、例えばキーボードやタッチパネルなどで構成される。
【0014】
見積もり部2は、見積もりに用いられる各種設定値を格納する設定値記憶部21と、入力部1から入力されたデータや設定値記憶部21に格納されている設定値を用いてランダムロジック部の総面積を算出し、チップサイズの見積もりを行う計算部22とから構成されている。
【0015】
出力部3は、見積もり部2で行われる見積もり結果を出力する部分であり、例えばディスプレイなどで構成される。
【0016】
設定値記憶部21には、例えば図2に示すような、チップサイズ見積もりに用いられる設定値が入力された、チップサイズ見積もり用係数テーブル23が格納されている。図2は、チップサイズ見積もり用係数テーブル23の一例を説明する図である。
【0017】
図2に示すように、チップサイズ見積もり用係数テーブル23は、セルライブラリを識別するためのライブラリ種別231と、動作周波数232と、性能考慮ゲート数係数233との3項目の列で構成されている。
【0018】
ライブラリ種別231には、例えばセルの高さが7グリッドのセルライブラリは“1”、9グリッドのセルライブラリは“2”、11グリッドのセルライブラリは“3”のように、セルライブラリを識別するためのユニークな番号や文字列などが設定される。
【0019】
動作周波数232には、見積もりが行われる可能性のある範囲における、動作周波数の代表的な数値(例えば100[MHz]、200[MHz]、300[MHz]・・・など)が設定される。
【0020】
性能考慮ゲート数係数233は、チップに搭載されたランダムロジック部の回路規模をあらわすゲート数(実際の設計段階で配置されるゲート数)を、最小機能ゲート数で除した値である。
【0021】
ここで、性能考慮ゲート数係数233と最小機能ゲート数について、図3及び図4を用いて説明する。図3は、動作タイミングを考慮して設計された回路の一例を説明する図であり、図4は、動作タイミングを考慮せずに図3の回路と同様の機能の実現だけを目的として構成された回路を説明する図である。
【0022】
図3に示す回路は、3つのフリップフロップ11、12、13と、NAND14と、バッファ15とのセルから構成されている。各セル11〜15には、それぞれのセルの駆動能力を、最小駆動能力のセルの駆動能力に対する倍率として各記号の内側に記載している。すなわち、フリップフロップ11、12は、最小駆動能力のフリップフロップの2倍の駆動能力を有し、フリップフロップ13は、最小駆動能力のフリップフロップの4倍の駆動能力を有する。また、NAND14は、最小駆動能力のNANDの4倍の駆動能力を有し、バッファ15は、最小駆動能力のバッファの2倍の駆動能力を有する。
【0023】
また、図3には、セル11〜15のそれぞれを構成する機能ゲートの数を、各記号の下部に記載している。なお、機能ゲートとはトランジスタ4個を1ゲートと定義するものである。例えば、最小の駆動能力の2入力NANDセルは、トランジスタ4個で構成されるため、このNANDセルの機能ゲート数は1となる。
【0024】
なお、ゲートの定義には機能ゲートのほかに面積ゲートがあげられる。面積ゲートとは、最小の駆動能力の2入力NANDセルの面積を1ゲートと定義するものである。従って、最小の駆動能力の2入力NANDセルは機能ゲート数も面積ゲート数も共に1となる。
【0025】
図3に示す回路では、フリップフロップ11、12の機能ゲート数はそれぞれ6.5ゲートであり、スリップフロップ13の機能ゲート数は8ゲートである。また、NAND14の機能ゲート数は4ゲートであり、バッファの機能ゲート数は1.5ゲートである。従って、回路全体の機能ゲート数は26.5ゲートとなる。なお、同じ機能と動作周波数であっても、用いるセルライブラリが異なればそれぞれのセルの駆動能力やバッファの挿入数などが変わるため、回路全体の機能ゲート数は26.5ゲートよりも大きい場合も小さい場合もありうる。
【0026】
一方、図4に示す回路は、動作タイミングを考慮せずに設計されているため、バッファが挿入されていない。従って、駆動能力が最小の3つのフリップフロップ110、120、130と、NAND140のみで構成されている。各セルの機能ゲート数は、フリップフロップ110、120、130が6ゲートであり、NAND140が1ゲートである。従って、回路全体の機能ゲート数は19ゲートとなる。
【0027】
図4に示すような、動作タイミングを考慮せずに機能の実現のみを考慮した回路の合計の機能ゲート数を、最小機能ゲート数と定義する。最小機能ゲート数はセルライブラリへの依存性が小さいと考えられる。また、図3に示すように所定の動作周波数の動作速度を達成するために動作タイミングを考慮して設計された回路の合計の機能ゲート数を、最小機能ゲート数で除した値を性能考慮ゲート数係数と定義する。すなわち、図3に示す回路における性能考慮ゲート数係数は、26.5/19=1.39となる。
【0028】
上述したとおり、回路の機能ゲート数は、動作周波数が同じでもセルライブラリが異なれば異なる値をとることが多い。また、動作周波数が異なれば、同じセルライブラリを用いても、駆動能力の異なるセルを用いたりバッファを挿入・削除したりするために、機能ゲート数は当然異なる値となる可能性が高い。従って、性能考慮ゲート数係数は、動作周波数やセルライブラリに応じて異なる値をとり、セルライブラリの特性や動作周波数による回路規模の増減を反映した値となる。
【0029】
なお、図2に示すチップサイズ見積もり用係数テーブル23における性能考慮ゲート数係数233の値はあくまでも一例であり、セルライブラリの特性や回路などに応じて最適な値に適宜設定して見積もりを行う。性能考慮ゲート数係数の算出は、例えば、複数の回路に対してそれぞれの回路で動作周波数を変えて論理合成などを行い、その結果得られたゲート数に基づき統計的に算出したり、過去に見積もりを行った回路における実際の回路規模から統計的に推定したりする方法が用いられる。
【0030】
次に、本実施形態におけるチップサイズの見積もり方法について、図5に示す具体的な例と、図6に示すフローチャートとを用いて説明する。図5はチップサイズの見積もり対象であるチップのレイアウトの一例を説明する図であり、図6はランダムロジック部7の面積を見積もる手順を説明するフローチャートである。
【0031】
図5に示すチップは、例えば携帯電話用のチップであり、アナログI/F4と、SRAM5と、ハードマクロ部6と、ランダムロジック部7とを有する。ランダムロジック部7は、画像処理部71、CPU72、複号化部73、などのセルを有する。
【0032】
以下、図5のチップのサイズを見積もるために、ランダムロジック部7の面積を見積もる手順について図6に従って説明する。
【0033】
まず、ステップS1おいて、見積もり対象のランダムロジック部7の最小機能ゲート数と、見積もり条件である動作周波数とを決定し、入力部1から入力する。次に、ステップS2に進み、見積もり対象のセルライブラリを選択し、入力部1から入力する。セルライブラリは複数選択してもよいし、1つのみでもよい。
【0034】
続いてステップS3に進み、ステップS1で入力された最小機能ゲート数及び動作周波数と、ステップS2で選択されたセルライブラリに基づき、性能考慮ゲート数係数を決定する。具体的には、設定値記憶部21に格納されているチップサイズ見積もり用係数テーブル23を参照し、ライブラリ種別231をキーとして、ステップS2で選択されたセルライブラリに対応するレコードを抽出する。更に、動作周波数232をキーとして、ステップS1で入力された動作周波数に対応するレコードを抽出する。抽出されたレコードの性能考慮ゲート数係数233の項目に設定されている値を、見積もりで使用する性能考慮ゲート数係数の値として決定する。
【0035】
次に、ステップS4において、ステップS1で入力された最小機能ゲート数に、ステップS3で決定された性能考慮ゲート数係数を乗じ、見積もり対象のランダムロジック部7のゲート数を算出する。最後に、ステップS5に進み、ステップS4で算出したゲート数に基づき、ランダムロジック部7の面積を見積もる。
【0036】
面積の見積もり方法には様々な手法が挙げられ用いることができる。ここでは一例をあげる。まず、ステップS4で算出されたゲート数に対し、論理設計以降のDFT(Design for Test)設計やクロックツリー生成、タイミング考慮のレイアウト設計などで追加されることが予想されるセルの増分を加える。このゲート数にセルライブラリに依存した面積係数(1機能ゲートあたりの面積)を乗じて面積を算出する。なお、論理設計以降のセルの増分や面積係数を性能考慮ゲート数係数に予め包含しておくことも可能であり、この場合は上述の乗算処理は不要となる。
【0037】
続いて、算出されたセルの面積をセル配置密度(Utilization)で除し、ランダムロジック部7の面積の見積もりが完了する。なお、セル配置密度の値の決め方も、過去の経験値に基づく方法など従来から様々な手法があるが、最適な方法を用いることができる。また、セル配置密度は、セルライブラリやゲート数などに依存して値が変化することが多いため、チップサイズ見積もり用係数テーブル23のようなテーブル、もしくはゲート数を変数としてセル配置密度を算出するための式をセルライブラリごとに準備して設定値記憶部21に格納しておいてもよい。
【0038】
なお、ステップS1において、最小機能ゲート数が不明であり、例えば、特定のセルライブラリで所定の動作周波数における見積もりの結果得られたゲート数が既知である場合、例えば、別のセルライブラリを用いた同機能・同じ動作周波数の回路について見積もり結果が得られているが最小機能ゲート数係数が不明である場合、以下のようにして最小機能ゲート数を算出して入力値とする。(複数のセルライブラリで回路規模の比較をする場合などがこれに該当する可能性がある。)
まず、チップサイズ見積もり用係数テーブル23を参照し、ライブラリ種別231をキーとして、見積もりを実施したセルライブラリに対応するレコードを抽出する。更に、動作周波数232をキーとして、見積もりを実施した動作周波数に対応するレコードを抽出する。抽出されたレコードの性能考慮ゲート数係数233の項目に設定されている値で既知のゲート数を除し、最小機能ゲート数を算出する。
【0039】
このようにして算出されたランダムロジック部7のセル総面積と動作周波数との関係を図7に示す。図7は、図6のランダムロジック部7について本実施形態により算出されたセル総面積と動作周波数との関係を示すグラフである。図7において、7グリッドのセルライブラリにおける見積もり結果をセルライブラリ1、9グリッドのセルライブラリの見積もり結果をセルライブラリ2、11グリッドのセルライブラリの見積もり結果をセルライブラリ3として示している。
【0040】
図7に示すように、全てのセルライブラリにおいて、動作周波数が高くなるとセル総面積も大きくなっている。しかし、動作周波数に対するセル総面積の増加の割合(直線の傾きに相当する)は、セルライブラリによって異なり、セルの高さの低いセルライブラリのほうがセルの高さの高いセルライブラリよりも増加の割合が大きくなっている。
【0041】
一般的に、セルの高さが高くなるほど同じ機能ゲート数でもセルの性能がよく、動作速度が速い場合が多い。動作周波数が高くなるにつれて、駆動能力の大きなセルを用いたり、動作タイミングを実現するためにバッファを挿入したりする必要があるのだが、セルの高さの高いライブラリのほうはもともと性能のよいセルを用いているために、セルの高さの低いライブラリに比べてその必要が少なくなる。従って、図7に示すような関係(動作周波数に対するセル総面積の増加の割合が、セルライブラリ3<セルライブラリ2<セルライブラリ1の順になること)は、回路設計における実情を反映しているといえる。
【0042】
動作周波数が小さい領域では、駆動能力の高い大きなセルを用いたりバッファを挿入したりする必要が少ないため、セルに用いるトランジスタの面積が小さい高さの低いグリッドのセルライブラリのほうが、セルの総面積も小さい傾向になる。従って、7グリッドのセルライブラリを用いた場合のセル総面積をS7、9グリッドのセルライブラリを用いた場合のセル総面積をS9、11グリッドのセルライブラリを用いた場合のセル総面積をS11とすると、図7に示すように、S7<S9<S11となる。
【0043】
動作周波数が高くなると、7グリッドのセルライブラリには駆動能力の大きなセルやバッファを多く挿入する必要が生じるため、セル総面積が9グリッドのセルライブラリよりも大きくなる(S9<S7<S11)。更に動作周波数が高くなると、11グリッドのセルライブラリの総面積よりも大きくなる(S9<S11<S7)。
【0044】
また更に動作周波数が高くなると、9グリッドのセルライブラリにも駆動能力の大きなセルを用いたりバッファを挿入したりする数が増え、セル総面積は11グリッドのセルライブラリよりも大きくなる(S11<S9<S7)。従って、動作周波数が高い領域では、グリッドの高さが一番高い11グリッドのセルライブラリを用いた場合のセルの総面積が一番小さく見積もられる。
【0045】
ここで、本実施形態の手法による見積もり結果を、従来の手法で行った見積もり結果と比較する。以下、図8及び図9を用いて従来の手法でのセル総面積の見積もりについて説明する。図8は、見積もり対象のセルのレイアウトを説明する図であり、図8(a)は9グリッドのセルライブラリを用いたセルのレイアウトを示しており、図8(b)は7グリッドのセルライブラリを用い、図8(a)と同じ機能を有するセルのレイアウトを示している。また、図9は、従来の手法により算出されたセル総面積と動作周波数との関係を示すグラフである。
【0046】
9グリッドのセルライブラリを用いている図8(a)に示すセル8は、2入力のNAND81と、フリップフロップ82と、スキャンFF83とを並列に並べて構成されている。これらは全て最小駆動能力のセルで構成されている。すなわち、NAND81は最小の駆機能ゲート数も面積ゲート数も1である。また、フリップフロップ82は、機能ゲート数が6であり、面積ゲートは5である。また、スキャンFF83は、機能ゲート数が8であり、面積ゲートは7である。
【0047】
一方、7グリッドのセルライブラリを用いている図8(b)に示すセル9は、2入力のNAND91と、フリップフロップ92と、スキャンFF93とを並列に並べて構成されている。各セルは、図8(a)に示すセルと同機能を有しておりトランジスタ数も等しい。従って、NAND91の機能ゲート数は1、フリップフロップ92の機能ゲート数は6、スキャンFFの機能ゲート数は8である。従って、9グリッドのセルライブラリでも、7グリッドのセルライブラリでも、機能ゲート数の合計はどちらも15機能ゲートとなる。
【0048】
これに対し、面積ゲートを考えた場合、一般的に機能の複雑な大きいセルになるほどトランジスタ間の配線構造が複雑になるため、高さの低いセルのほうが高いセルに比べてより大きな幅を必要とする。従って、NAND91の幅はNAND81と等しく面積ゲート数は1であるが、他のセルは幅が大きくなるためこれに比例して面積ゲート数も大きくなる。具体的には、フリップフロップ92の面積ゲート数は5.5、スキャンFFの面積ゲート数は7.75となり、セル9全体では合計14.25面積ゲートとなる。
【0049】
なお、面積ゲート数の値は9グリッドのセルライブラリを用いているセル8の合計の面積ゲート数(=13)よりも大きな値であるが、1面積ゲートあたりの面積は7グリッドのセルライブラリのほうが9グリッドのセルライブラリよりも小さい。実際の面積を算出すると、セル8は9×13=117平方グリッドであり、セル9は7×14.25=99.75となり、高さの低い7グリッドのセルライブラリを用いたほうが小さく見積もられる。
【0050】
以上を踏まえ、動作周波数を変えて9グリッドのセルライブラリと7グリッドのセルライブラリとでランダムロジックの総面積を見積もり、その結果を比較する場合を考える。見積もりの際に入力とする回路規模は、いずれかのセルライブラリまたは更に別のセルライブラリで論理合成を行った結果のゲート数を使用する場合や、過去の類似の集積回路のゲート数から推測する場合などがある。いずれの場合も、動作周波数が高くなるほどゲート数は大きくなる傾向にある。これは、動作速度を達成するために、駆動能力の大きなセルが使用されたり、バッファセルの挿入が必要となったりするためである。
【0051】
上述のようにして求められたゲート数(機能ゲートまたは面積ゲート)を両方のセルライブラリに入力するのであるが、このとき、どちらのセルライブラリにも同数のゲート数を入力する。ゲート数を入力して見積もりを実行した場合の結果を図9に示す。図9において、7グリッドのセルライブラリにおける見積もり結果をセルライブラリ1、9グリッドのセルライブラリの見積もり結果をセルライブラリ2として示している。
【0052】
図9に示すように、どちらのセルライブラリについても、動作周波数が高くなると入力するゲート数の増加に伴いセル総面積も大きくなっている。また、動作周波数に対するセル総面積の増加の割合(直線の傾きに相当する)は、セルライブラリによらずほぼ同じ割合となっている。従って、どの周波数領域においても7グリッドのセルライブラリを用いたほうが、9グリッドのセルライブラリを用いるよりもセルの総面積が小さくなると評価される。
【0053】
しかしながら、セルの高さが高くなるほど同じ機能ゲート数でもセルの性能がよく、動作速度が速い場合が多い。動作周波数が高くなるにつれて、駆動能力の大きなセルを用いたり、動作タイミングを実現するためにバッファを挿入したりする必要があるのだが、セルの高さの高いライブラリのほうはもともと性能のよいセルを用いているために、セルの高さの低いライブラリに比べてその必要が少なくなる。このため、動作周波数が高くなるほど9グリッドのセルライブラリのほうが、7グリッドのセルライブラリよりも回路の規模が小さくなる傾向にある。すなわち、動作周波数が高くなるにつれて、入力値であるゲート数が回路設計で実際に配置されるゲート数と乖離した値になってしまい、見積もり精度が悪くなっている。
【0054】
これと比べ、本実施形態においては、総面積の見積もりに用いる回路規模として、見積もり対象となるセルライブラリの特性や動作周波数を考慮した適切なゲート数を用いるため、見積もり精度を向上させることができる。また、総面積の見積もりに用いる回路規模(=設計段階で実際に配置されるゲート数)を、セルライブラリへの依存性の小さい最小機能ゲート数とセルライブラリの特性や動作周波数に依存して値が異なる性能考慮ゲート数係数との積で表現し、性能考慮ゲート数係数は予め装置内に設定しておき、見積もりの入力情報として最小機能ゲート数を用いることで、異なるセルライブラリの見積もりを行う場合にも、都度入力の値を変更する必要がなく同じ値を入力すればよいため、簡便に見積もりを行うことができる。
【0055】
なお、上述した実施形態においては、代表的な動作周波数の性能考慮ゲート数係数を予め算出し、図2に示すようなテーブル形式で装置内に格納しているが、セルライブラリごとに動作周波数から性能考慮ゲート数係数の値が導出できればよく、例えば、セルライブラリごとに動作周波数と性能考慮ゲート数係数との関係式を予め求めて装置内に格納しておき、これをテーブルの代わりに用いてもよい。
【0056】
また、図2に示すチップサイズ見積もり用係数テーブル23は、セルライブラリごとにテーブルを分割し、複数のテーブルとして保持してもよい。
【0057】
更に、性能考慮ゲート数係数は、動作周波数以外にも例えば見積もり対象の回路内におけるフリップフロップのパスの論理段数にも依存する。従って、図2に示すチップサイズ見積もり用係数テーブル23にフリップフロップのパスの論理段数を示すパス段数234という項目を追加して、図10に示すようなチップサイズ見積もり用係数テーブル23´を作成し、これを見積もりに用いてもよい。図10は、チップサイズ見積もり用係数テーブル23´の一例を説明する図である。
【0058】
(変形例)
次に、上述した実施形態の変形例を説明する。上述した実施形態では、見積もり対象のセルライブラリはすべて基本ゲートで構成されていたが、変形例では複数の基本ゲートの組み合わせから成る複合ゲートを含むセルライブラリも対象として見積もりを行う。
【0059】
以下、図11〜図13を用いて、複合ゲートを含むセルライブラリの見積もりについて、具体的な回路を例示して説明する。なお、複合ゲートを含むセルライブラリを用いて構成される回路と、基本ゲートのみで構成されたセルライブラリを用いて構成された回路とを比較する形で説明していく。
【0060】
図11は基本セルのみで構成されたセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図であり、図12は、動作タイミングを考慮せずに図11の回路と同様の機能の実現だけを目的として構成された回路を説明する図である。図13は、図11の回路と同様の機能を有し、複合セルを含む別のセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図である。
【0061】
図11に示す回路は、基本セルのみで構成されており、具体的には3つのフリップフロップ31、32、33と、NAND34と、AND35と、NOT36と、NOR37とのセルから構成されている。それぞれのセルは動作タイミングを考慮した駆動能力を有しており、フリップフロップ31、32は最小駆動能力のフリップフロップの2倍の駆動能力を有し、フリップフロップ33は、最小駆動能力のフリップフロップの4倍の駆動能力を有する。また、NAND34は、最小駆動能力のNANDの4倍の駆動能力を有する。さらに、AND35と、NOT36と、NOR37は最小駆動能力である。
【0062】
また、図11に示す回路では、フリップフロップ31、32の機能ゲート数はそれぞれ6.5ゲートであり、スリップフロップ33の機能ゲート数は8ゲートである。また、NAND34の機能ゲート数は4ゲートであり、AND35の機能ゲート数は1.5ゲートである。更に、NOT36の機能ゲート数は0.5ゲートであり、NOR37の機能ゲート数は1ゲートである。従って、回路全体の機能ゲート数は28ゲートとなる。
【0063】
一方、図12に示す回路は、動作タイミングを考慮せずに設計されているため、駆動能力が最小のセルのみで構成されている。すなわち、最小駆動能力の3つのフリップフロップ310、320、330と、最小駆動能力のNAND340、AND350、NOT360、NOR370のセルで構成されている。各セルの機能ゲート数は、フリップフロップ310、320、330が6ゲートであり、NAND340とNOR37が1ゲートである。また、AND350は1.5ゲートであり、NOT360は0.5ゲートである。従って、回路全体の機能ゲート数は22ゲートとなる。
【0064】
更に、図13に示す回路は、図11に示す回路と同じ機能を有しており、同じ動作タイミングを考慮した回路であるが、複合ゲートを含む別のセルライブラリを用いている。具体的には3つのフリップフロップ311、321、331と、NAND341と、ANDとNOTとNORとを一つのセルにまとめた複合ゲートセル351とから構成されている。
【0065】
それぞれのセルは動作タイミングを考慮した駆動能力を有しており、フリップフロップ311、321は最小駆動能力のフリップフロップの2倍の駆動能力を有し、フリップフロップ331は、最小駆動能力のフリップフロップの4倍の駆動能力を有する。また、NAND341は、最小駆動能力のNANDの4倍の駆動能力を有する。さらに、複合ゲートセル351は最小駆動能力である。
【0066】
また、図13に示す回路では、フリップフロップ311、321の機能ゲート数はそれぞれ6.5ゲートであり、スリップフロップ331の機能ゲート数は8ゲートである。また、NAND341の機能ゲート数は4ゲートであり、複合ゲートセル351の機能ゲート数は2ゲートである。従って、回路全体の機能ゲート数は27ゲートとなる。
【0067】
図11に示す回路と図13に示す回路とは、同一の機能・動作速度を実現することを目的とした回路であり、性能も同等なセルライブラリを用いている。(同じ高さのグリッドのセルライブラリを用いている)。ところが、図11に示す回路の全体の機能ゲート数が28ゲートであるのに対し、図13に示す回路の全体の機能ゲート数は27ゲートであり、1機能ゲート少なくなっている。
【0068】
このゲート数の差は、図11で用いているセルライブラリは基本セルのみで構成されているのに対し、図13で用いているセルライブラリは、複合ゲートセルも用意されていることに起因する。すなわち、複合ゲートセルのラインナップの有無や、用意されている複合ゲートセルの種類や数によって、実際の回路のゲート数が変わってしまう。
【0069】
そこで、図12に示すような、動作タイミングを考慮せずに図11及び図13の回路と同様の機能の実現だけを目的として、基本セルのみで構成された回路の全体の機能ゲート数を最小機能ゲート数とする。すなわち、この場合の最小機能ゲート数は22ゲートとなる。図11及び図13の回路全体の機能ゲート数を、最小機能ゲート数と性能考慮ゲート数係数の積として表現すると、図11の回路の性能考慮ゲート数係数は28/22=1.27となり、図13の回路の性能考慮ゲート数係数は27/22=1.23となる。
【0070】
このように、複合ゲートセルのラインナップの異なるセルライブラリ毎に性能考慮ゲート数係数を算出し、例えば図2に示すチップサイズ見積もり用係数テーブル23のようなテーブル形式で動作周波数に対する性能考慮ゲート数係数の値を予め設定しておく。すると、複合ゲートセルのラインナップが異なるセルライブラリの見積もりを行う場合にも、都度入力の値を変更する必要がなく、最小機能ゲート数を共通の入力値として入力すればよく、セルライブラリごとに入力の値を変更する必要がなく、簡便に見積もりを行うことができる。
【0071】
入力された最小機能ゲート数と見積もり条件に合う性能考慮ゲート数係数とを乗じて実際のゲート数を算出し、総面積の見積もりに用いるので、見積もり対象となるセルライブラリの特性や動作周波数を考慮した適切なゲート数を用いることができ、見積もり精度を向上させることができる。
【0072】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【0073】
1…入力部、2…見積もり部、3…出力部、21…設定値記憶部、22…計算部
【技術分野】
【0001】
本実施形態は、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法に関する。
【背景技術】
【0002】
従来、半導体集積回路のチップサイズを見積もる場合、スタンダードセルで構成されるランダムロジックの部分に関しては、回路規模をゲート数で表現して見積もりの入力情報とすることが一般的であった。一般的には、例えば7グリッドと9グリッドなど、異なる複数のセルライブラリについて見積もりを行い、サイズの小さいほうのセルライブラリを用いて実際の回路設計や半導体集積回路の製作を行うことが多い。
【0003】
チップサイズの見積もりを異なる複数のセルライブラリで行い結果を比較する場合、すべてのセルライブラリの見積もりの入力情報として同一のゲート数を使用すると、セルの動作周波数に関係なく、セルの高さの低いグリッドのセルライブラリのほうが、総面積が小さくなる傾向にあった。(すなわち、7グリッドのセルライブラリのほうが常に9グリッドのセルライブラリのほうが動作周波数に関係なく常にセルの総面積が小さく見積もられる。)
しかしながら、実際の回路設計では、動作周波数が高くなるにつれ、駆動能力の大きいセルが使用されたりバッファが挿入されたりする。このとき、セルの高さの高いグリッドのセルライブラリのほうが同じゲート数でもセルの性能がよく、動作速度が速い場合が多い。従って、動作周波数が高くなった場合に、セルの高さの高いグリッドのセルライブラリを用いるほうが駆動能力の大きいセルの使用やバッファの挿入が抑制される。すなわちセルの高さの高いグリッドのセルライブラリのほうが回路規模が小さく、ゲート数が小さくなる傾向にある。このため、実際には、動作周波数が高くなるとセルの高さの高いグリッドのセルライブラリのほうがセルの総面積が小さくなる可能性がある。
【0004】
このように、異なる複数のセルライブラリのチップサイズを見積もって結果を比較する場合、従来は回路規模として同一のゲート数を入力していたため、動作周波数が高くなるにつれて見積もり精度が低下し、正しい比較結果が導き出せず、最適でないセルライブラリが選択されてしまうという問題があった。
【0005】
見積もりの入力として用いるゲート数を、対象となる個々のセルライブラリに応じた値にする方法が考えられるが、セルライブラリ毎に見積もりのたびに回路の論理合成などを行うことは手間とコストがかかったり、情報が少ないと論理合成自体ができなかったりするという問題があった。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−234187号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、本実施形態は、以上の点に鑑みてなされたもので、精度よく簡便にチップサイズを見積もることができる、半導体集積回路のチップサイズ見積もり装置、及び半導体集積回路のチップサイズ見積もり方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本実施形態の半導体集積回路のチップサイズ見積もり装置は、回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部と、セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部と、前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部と、を備えたことを特徴とする。
【図面の簡単な説明】
【0009】
【図1】本実施形態に係わる半導体集積回路のチップサイズ見積もり装置の構成の一例を説明する図。
【図2】チップサイズ見積もり用係数テーブル23の一例を説明する図。
【図3】動作タイミングを考慮して設計された回路の一例を説明する図。
【図4】動作タイミングを考慮せずに図3の回路と同様の機能の実現だけを目的として構成された回路を説明する図。
【図5】チップサイズの見積もり対象であるチップのレイアウトの一例を説明する図。
【図6】ランダムロジック部7の面積を見積もる手順を説明するフローチャート。
【図7】図6のランダムロジック部7について本実施形態により算出されたセル総面積と動作周波数との関係を示すグラフ。
【図8】見積もり対象のセルのレイアウトを説明する図であり、図8(a)は9グリッドのセルライブラリを用いたセルのレイアウトを示しており、図8(b)は7グリッドのセルライブラリを用い、図8(a)と同じ機能を有するセルのレイアウトを示している。
【図9】従来の手法により算出されたセル総面積と動作周波数との関係を示すグラフ。
【図10】チップサイズ見積もり用係数テーブル23´の一例を説明する図
【図11】基本セルのみで構成されたセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図。
【図12】動作タイミングを考慮せずに図11の回路と同様の機能の実現だけを目的として構成された回路を説明する図。
【図13】図11の回路と同様の機能を有し、複合セルを含む別のセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図。
【発明を実施するための形態】
【0010】
以下、図面を参照して実施形態を説明する。
【0011】
まず、図1を参照して、本実施形態の半導体集積回路のチップサイズ見積もり装置の構成を説明する。図1は、本実施形態に係わる半導体集積回路のチップサイズ見積もり装置の構成の一例を説明する図である。
【0012】
図1に示すように、半導体集積回路のチップサイズ見積もり装置は、見積もり条件などを入力するための入力部1と、入力された情報などからチップサイズの見積もりを行う見積もり部2と、見積もり結果を出力する出力部3とから構成される。
【0013】
入力部1は、チップに搭載されたランダムロジック部の回路規模を表すゲート数や、動作周波数や、見積もり対象のセルライブラリなどを入力する部分であり、例えばキーボードやタッチパネルなどで構成される。
【0014】
見積もり部2は、見積もりに用いられる各種設定値を格納する設定値記憶部21と、入力部1から入力されたデータや設定値記憶部21に格納されている設定値を用いてランダムロジック部の総面積を算出し、チップサイズの見積もりを行う計算部22とから構成されている。
【0015】
出力部3は、見積もり部2で行われる見積もり結果を出力する部分であり、例えばディスプレイなどで構成される。
【0016】
設定値記憶部21には、例えば図2に示すような、チップサイズ見積もりに用いられる設定値が入力された、チップサイズ見積もり用係数テーブル23が格納されている。図2は、チップサイズ見積もり用係数テーブル23の一例を説明する図である。
【0017】
図2に示すように、チップサイズ見積もり用係数テーブル23は、セルライブラリを識別するためのライブラリ種別231と、動作周波数232と、性能考慮ゲート数係数233との3項目の列で構成されている。
【0018】
ライブラリ種別231には、例えばセルの高さが7グリッドのセルライブラリは“1”、9グリッドのセルライブラリは“2”、11グリッドのセルライブラリは“3”のように、セルライブラリを識別するためのユニークな番号や文字列などが設定される。
【0019】
動作周波数232には、見積もりが行われる可能性のある範囲における、動作周波数の代表的な数値(例えば100[MHz]、200[MHz]、300[MHz]・・・など)が設定される。
【0020】
性能考慮ゲート数係数233は、チップに搭載されたランダムロジック部の回路規模をあらわすゲート数(実際の設計段階で配置されるゲート数)を、最小機能ゲート数で除した値である。
【0021】
ここで、性能考慮ゲート数係数233と最小機能ゲート数について、図3及び図4を用いて説明する。図3は、動作タイミングを考慮して設計された回路の一例を説明する図であり、図4は、動作タイミングを考慮せずに図3の回路と同様の機能の実現だけを目的として構成された回路を説明する図である。
【0022】
図3に示す回路は、3つのフリップフロップ11、12、13と、NAND14と、バッファ15とのセルから構成されている。各セル11〜15には、それぞれのセルの駆動能力を、最小駆動能力のセルの駆動能力に対する倍率として各記号の内側に記載している。すなわち、フリップフロップ11、12は、最小駆動能力のフリップフロップの2倍の駆動能力を有し、フリップフロップ13は、最小駆動能力のフリップフロップの4倍の駆動能力を有する。また、NAND14は、最小駆動能力のNANDの4倍の駆動能力を有し、バッファ15は、最小駆動能力のバッファの2倍の駆動能力を有する。
【0023】
また、図3には、セル11〜15のそれぞれを構成する機能ゲートの数を、各記号の下部に記載している。なお、機能ゲートとはトランジスタ4個を1ゲートと定義するものである。例えば、最小の駆動能力の2入力NANDセルは、トランジスタ4個で構成されるため、このNANDセルの機能ゲート数は1となる。
【0024】
なお、ゲートの定義には機能ゲートのほかに面積ゲートがあげられる。面積ゲートとは、最小の駆動能力の2入力NANDセルの面積を1ゲートと定義するものである。従って、最小の駆動能力の2入力NANDセルは機能ゲート数も面積ゲート数も共に1となる。
【0025】
図3に示す回路では、フリップフロップ11、12の機能ゲート数はそれぞれ6.5ゲートであり、スリップフロップ13の機能ゲート数は8ゲートである。また、NAND14の機能ゲート数は4ゲートであり、バッファの機能ゲート数は1.5ゲートである。従って、回路全体の機能ゲート数は26.5ゲートとなる。なお、同じ機能と動作周波数であっても、用いるセルライブラリが異なればそれぞれのセルの駆動能力やバッファの挿入数などが変わるため、回路全体の機能ゲート数は26.5ゲートよりも大きい場合も小さい場合もありうる。
【0026】
一方、図4に示す回路は、動作タイミングを考慮せずに設計されているため、バッファが挿入されていない。従って、駆動能力が最小の3つのフリップフロップ110、120、130と、NAND140のみで構成されている。各セルの機能ゲート数は、フリップフロップ110、120、130が6ゲートであり、NAND140が1ゲートである。従って、回路全体の機能ゲート数は19ゲートとなる。
【0027】
図4に示すような、動作タイミングを考慮せずに機能の実現のみを考慮した回路の合計の機能ゲート数を、最小機能ゲート数と定義する。最小機能ゲート数はセルライブラリへの依存性が小さいと考えられる。また、図3に示すように所定の動作周波数の動作速度を達成するために動作タイミングを考慮して設計された回路の合計の機能ゲート数を、最小機能ゲート数で除した値を性能考慮ゲート数係数と定義する。すなわち、図3に示す回路における性能考慮ゲート数係数は、26.5/19=1.39となる。
【0028】
上述したとおり、回路の機能ゲート数は、動作周波数が同じでもセルライブラリが異なれば異なる値をとることが多い。また、動作周波数が異なれば、同じセルライブラリを用いても、駆動能力の異なるセルを用いたりバッファを挿入・削除したりするために、機能ゲート数は当然異なる値となる可能性が高い。従って、性能考慮ゲート数係数は、動作周波数やセルライブラリに応じて異なる値をとり、セルライブラリの特性や動作周波数による回路規模の増減を反映した値となる。
【0029】
なお、図2に示すチップサイズ見積もり用係数テーブル23における性能考慮ゲート数係数233の値はあくまでも一例であり、セルライブラリの特性や回路などに応じて最適な値に適宜設定して見積もりを行う。性能考慮ゲート数係数の算出は、例えば、複数の回路に対してそれぞれの回路で動作周波数を変えて論理合成などを行い、その結果得られたゲート数に基づき統計的に算出したり、過去に見積もりを行った回路における実際の回路規模から統計的に推定したりする方法が用いられる。
【0030】
次に、本実施形態におけるチップサイズの見積もり方法について、図5に示す具体的な例と、図6に示すフローチャートとを用いて説明する。図5はチップサイズの見積もり対象であるチップのレイアウトの一例を説明する図であり、図6はランダムロジック部7の面積を見積もる手順を説明するフローチャートである。
【0031】
図5に示すチップは、例えば携帯電話用のチップであり、アナログI/F4と、SRAM5と、ハードマクロ部6と、ランダムロジック部7とを有する。ランダムロジック部7は、画像処理部71、CPU72、複号化部73、などのセルを有する。
【0032】
以下、図5のチップのサイズを見積もるために、ランダムロジック部7の面積を見積もる手順について図6に従って説明する。
【0033】
まず、ステップS1おいて、見積もり対象のランダムロジック部7の最小機能ゲート数と、見積もり条件である動作周波数とを決定し、入力部1から入力する。次に、ステップS2に進み、見積もり対象のセルライブラリを選択し、入力部1から入力する。セルライブラリは複数選択してもよいし、1つのみでもよい。
【0034】
続いてステップS3に進み、ステップS1で入力された最小機能ゲート数及び動作周波数と、ステップS2で選択されたセルライブラリに基づき、性能考慮ゲート数係数を決定する。具体的には、設定値記憶部21に格納されているチップサイズ見積もり用係数テーブル23を参照し、ライブラリ種別231をキーとして、ステップS2で選択されたセルライブラリに対応するレコードを抽出する。更に、動作周波数232をキーとして、ステップS1で入力された動作周波数に対応するレコードを抽出する。抽出されたレコードの性能考慮ゲート数係数233の項目に設定されている値を、見積もりで使用する性能考慮ゲート数係数の値として決定する。
【0035】
次に、ステップS4において、ステップS1で入力された最小機能ゲート数に、ステップS3で決定された性能考慮ゲート数係数を乗じ、見積もり対象のランダムロジック部7のゲート数を算出する。最後に、ステップS5に進み、ステップS4で算出したゲート数に基づき、ランダムロジック部7の面積を見積もる。
【0036】
面積の見積もり方法には様々な手法が挙げられ用いることができる。ここでは一例をあげる。まず、ステップS4で算出されたゲート数に対し、論理設計以降のDFT(Design for Test)設計やクロックツリー生成、タイミング考慮のレイアウト設計などで追加されることが予想されるセルの増分を加える。このゲート数にセルライブラリに依存した面積係数(1機能ゲートあたりの面積)を乗じて面積を算出する。なお、論理設計以降のセルの増分や面積係数を性能考慮ゲート数係数に予め包含しておくことも可能であり、この場合は上述の乗算処理は不要となる。
【0037】
続いて、算出されたセルの面積をセル配置密度(Utilization)で除し、ランダムロジック部7の面積の見積もりが完了する。なお、セル配置密度の値の決め方も、過去の経験値に基づく方法など従来から様々な手法があるが、最適な方法を用いることができる。また、セル配置密度は、セルライブラリやゲート数などに依存して値が変化することが多いため、チップサイズ見積もり用係数テーブル23のようなテーブル、もしくはゲート数を変数としてセル配置密度を算出するための式をセルライブラリごとに準備して設定値記憶部21に格納しておいてもよい。
【0038】
なお、ステップS1において、最小機能ゲート数が不明であり、例えば、特定のセルライブラリで所定の動作周波数における見積もりの結果得られたゲート数が既知である場合、例えば、別のセルライブラリを用いた同機能・同じ動作周波数の回路について見積もり結果が得られているが最小機能ゲート数係数が不明である場合、以下のようにして最小機能ゲート数を算出して入力値とする。(複数のセルライブラリで回路規模の比較をする場合などがこれに該当する可能性がある。)
まず、チップサイズ見積もり用係数テーブル23を参照し、ライブラリ種別231をキーとして、見積もりを実施したセルライブラリに対応するレコードを抽出する。更に、動作周波数232をキーとして、見積もりを実施した動作周波数に対応するレコードを抽出する。抽出されたレコードの性能考慮ゲート数係数233の項目に設定されている値で既知のゲート数を除し、最小機能ゲート数を算出する。
【0039】
このようにして算出されたランダムロジック部7のセル総面積と動作周波数との関係を図7に示す。図7は、図6のランダムロジック部7について本実施形態により算出されたセル総面積と動作周波数との関係を示すグラフである。図7において、7グリッドのセルライブラリにおける見積もり結果をセルライブラリ1、9グリッドのセルライブラリの見積もり結果をセルライブラリ2、11グリッドのセルライブラリの見積もり結果をセルライブラリ3として示している。
【0040】
図7に示すように、全てのセルライブラリにおいて、動作周波数が高くなるとセル総面積も大きくなっている。しかし、動作周波数に対するセル総面積の増加の割合(直線の傾きに相当する)は、セルライブラリによって異なり、セルの高さの低いセルライブラリのほうがセルの高さの高いセルライブラリよりも増加の割合が大きくなっている。
【0041】
一般的に、セルの高さが高くなるほど同じ機能ゲート数でもセルの性能がよく、動作速度が速い場合が多い。動作周波数が高くなるにつれて、駆動能力の大きなセルを用いたり、動作タイミングを実現するためにバッファを挿入したりする必要があるのだが、セルの高さの高いライブラリのほうはもともと性能のよいセルを用いているために、セルの高さの低いライブラリに比べてその必要が少なくなる。従って、図7に示すような関係(動作周波数に対するセル総面積の増加の割合が、セルライブラリ3<セルライブラリ2<セルライブラリ1の順になること)は、回路設計における実情を反映しているといえる。
【0042】
動作周波数が小さい領域では、駆動能力の高い大きなセルを用いたりバッファを挿入したりする必要が少ないため、セルに用いるトランジスタの面積が小さい高さの低いグリッドのセルライブラリのほうが、セルの総面積も小さい傾向になる。従って、7グリッドのセルライブラリを用いた場合のセル総面積をS7、9グリッドのセルライブラリを用いた場合のセル総面積をS9、11グリッドのセルライブラリを用いた場合のセル総面積をS11とすると、図7に示すように、S7<S9<S11となる。
【0043】
動作周波数が高くなると、7グリッドのセルライブラリには駆動能力の大きなセルやバッファを多く挿入する必要が生じるため、セル総面積が9グリッドのセルライブラリよりも大きくなる(S9<S7<S11)。更に動作周波数が高くなると、11グリッドのセルライブラリの総面積よりも大きくなる(S9<S11<S7)。
【0044】
また更に動作周波数が高くなると、9グリッドのセルライブラリにも駆動能力の大きなセルを用いたりバッファを挿入したりする数が増え、セル総面積は11グリッドのセルライブラリよりも大きくなる(S11<S9<S7)。従って、動作周波数が高い領域では、グリッドの高さが一番高い11グリッドのセルライブラリを用いた場合のセルの総面積が一番小さく見積もられる。
【0045】
ここで、本実施形態の手法による見積もり結果を、従来の手法で行った見積もり結果と比較する。以下、図8及び図9を用いて従来の手法でのセル総面積の見積もりについて説明する。図8は、見積もり対象のセルのレイアウトを説明する図であり、図8(a)は9グリッドのセルライブラリを用いたセルのレイアウトを示しており、図8(b)は7グリッドのセルライブラリを用い、図8(a)と同じ機能を有するセルのレイアウトを示している。また、図9は、従来の手法により算出されたセル総面積と動作周波数との関係を示すグラフである。
【0046】
9グリッドのセルライブラリを用いている図8(a)に示すセル8は、2入力のNAND81と、フリップフロップ82と、スキャンFF83とを並列に並べて構成されている。これらは全て最小駆動能力のセルで構成されている。すなわち、NAND81は最小の駆機能ゲート数も面積ゲート数も1である。また、フリップフロップ82は、機能ゲート数が6であり、面積ゲートは5である。また、スキャンFF83は、機能ゲート数が8であり、面積ゲートは7である。
【0047】
一方、7グリッドのセルライブラリを用いている図8(b)に示すセル9は、2入力のNAND91と、フリップフロップ92と、スキャンFF93とを並列に並べて構成されている。各セルは、図8(a)に示すセルと同機能を有しておりトランジスタ数も等しい。従って、NAND91の機能ゲート数は1、フリップフロップ92の機能ゲート数は6、スキャンFFの機能ゲート数は8である。従って、9グリッドのセルライブラリでも、7グリッドのセルライブラリでも、機能ゲート数の合計はどちらも15機能ゲートとなる。
【0048】
これに対し、面積ゲートを考えた場合、一般的に機能の複雑な大きいセルになるほどトランジスタ間の配線構造が複雑になるため、高さの低いセルのほうが高いセルに比べてより大きな幅を必要とする。従って、NAND91の幅はNAND81と等しく面積ゲート数は1であるが、他のセルは幅が大きくなるためこれに比例して面積ゲート数も大きくなる。具体的には、フリップフロップ92の面積ゲート数は5.5、スキャンFFの面積ゲート数は7.75となり、セル9全体では合計14.25面積ゲートとなる。
【0049】
なお、面積ゲート数の値は9グリッドのセルライブラリを用いているセル8の合計の面積ゲート数(=13)よりも大きな値であるが、1面積ゲートあたりの面積は7グリッドのセルライブラリのほうが9グリッドのセルライブラリよりも小さい。実際の面積を算出すると、セル8は9×13=117平方グリッドであり、セル9は7×14.25=99.75となり、高さの低い7グリッドのセルライブラリを用いたほうが小さく見積もられる。
【0050】
以上を踏まえ、動作周波数を変えて9グリッドのセルライブラリと7グリッドのセルライブラリとでランダムロジックの総面積を見積もり、その結果を比較する場合を考える。見積もりの際に入力とする回路規模は、いずれかのセルライブラリまたは更に別のセルライブラリで論理合成を行った結果のゲート数を使用する場合や、過去の類似の集積回路のゲート数から推測する場合などがある。いずれの場合も、動作周波数が高くなるほどゲート数は大きくなる傾向にある。これは、動作速度を達成するために、駆動能力の大きなセルが使用されたり、バッファセルの挿入が必要となったりするためである。
【0051】
上述のようにして求められたゲート数(機能ゲートまたは面積ゲート)を両方のセルライブラリに入力するのであるが、このとき、どちらのセルライブラリにも同数のゲート数を入力する。ゲート数を入力して見積もりを実行した場合の結果を図9に示す。図9において、7グリッドのセルライブラリにおける見積もり結果をセルライブラリ1、9グリッドのセルライブラリの見積もり結果をセルライブラリ2として示している。
【0052】
図9に示すように、どちらのセルライブラリについても、動作周波数が高くなると入力するゲート数の増加に伴いセル総面積も大きくなっている。また、動作周波数に対するセル総面積の増加の割合(直線の傾きに相当する)は、セルライブラリによらずほぼ同じ割合となっている。従って、どの周波数領域においても7グリッドのセルライブラリを用いたほうが、9グリッドのセルライブラリを用いるよりもセルの総面積が小さくなると評価される。
【0053】
しかしながら、セルの高さが高くなるほど同じ機能ゲート数でもセルの性能がよく、動作速度が速い場合が多い。動作周波数が高くなるにつれて、駆動能力の大きなセルを用いたり、動作タイミングを実現するためにバッファを挿入したりする必要があるのだが、セルの高さの高いライブラリのほうはもともと性能のよいセルを用いているために、セルの高さの低いライブラリに比べてその必要が少なくなる。このため、動作周波数が高くなるほど9グリッドのセルライブラリのほうが、7グリッドのセルライブラリよりも回路の規模が小さくなる傾向にある。すなわち、動作周波数が高くなるにつれて、入力値であるゲート数が回路設計で実際に配置されるゲート数と乖離した値になってしまい、見積もり精度が悪くなっている。
【0054】
これと比べ、本実施形態においては、総面積の見積もりに用いる回路規模として、見積もり対象となるセルライブラリの特性や動作周波数を考慮した適切なゲート数を用いるため、見積もり精度を向上させることができる。また、総面積の見積もりに用いる回路規模(=設計段階で実際に配置されるゲート数)を、セルライブラリへの依存性の小さい最小機能ゲート数とセルライブラリの特性や動作周波数に依存して値が異なる性能考慮ゲート数係数との積で表現し、性能考慮ゲート数係数は予め装置内に設定しておき、見積もりの入力情報として最小機能ゲート数を用いることで、異なるセルライブラリの見積もりを行う場合にも、都度入力の値を変更する必要がなく同じ値を入力すればよいため、簡便に見積もりを行うことができる。
【0055】
なお、上述した実施形態においては、代表的な動作周波数の性能考慮ゲート数係数を予め算出し、図2に示すようなテーブル形式で装置内に格納しているが、セルライブラリごとに動作周波数から性能考慮ゲート数係数の値が導出できればよく、例えば、セルライブラリごとに動作周波数と性能考慮ゲート数係数との関係式を予め求めて装置内に格納しておき、これをテーブルの代わりに用いてもよい。
【0056】
また、図2に示すチップサイズ見積もり用係数テーブル23は、セルライブラリごとにテーブルを分割し、複数のテーブルとして保持してもよい。
【0057】
更に、性能考慮ゲート数係数は、動作周波数以外にも例えば見積もり対象の回路内におけるフリップフロップのパスの論理段数にも依存する。従って、図2に示すチップサイズ見積もり用係数テーブル23にフリップフロップのパスの論理段数を示すパス段数234という項目を追加して、図10に示すようなチップサイズ見積もり用係数テーブル23´を作成し、これを見積もりに用いてもよい。図10は、チップサイズ見積もり用係数テーブル23´の一例を説明する図である。
【0058】
(変形例)
次に、上述した実施形態の変形例を説明する。上述した実施形態では、見積もり対象のセルライブラリはすべて基本ゲートで構成されていたが、変形例では複数の基本ゲートの組み合わせから成る複合ゲートを含むセルライブラリも対象として見積もりを行う。
【0059】
以下、図11〜図13を用いて、複合ゲートを含むセルライブラリの見積もりについて、具体的な回路を例示して説明する。なお、複合ゲートを含むセルライブラリを用いて構成される回路と、基本ゲートのみで構成されたセルライブラリを用いて構成された回路とを比較する形で説明していく。
【0060】
図11は基本セルのみで構成されたセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図であり、図12は、動作タイミングを考慮せずに図11の回路と同様の機能の実現だけを目的として構成された回路を説明する図である。図13は、図11の回路と同様の機能を有し、複合セルを含む別のセルライブラリを用い、動作タイミングを考慮して設計された回路の一例を説明する図である。
【0061】
図11に示す回路は、基本セルのみで構成されており、具体的には3つのフリップフロップ31、32、33と、NAND34と、AND35と、NOT36と、NOR37とのセルから構成されている。それぞれのセルは動作タイミングを考慮した駆動能力を有しており、フリップフロップ31、32は最小駆動能力のフリップフロップの2倍の駆動能力を有し、フリップフロップ33は、最小駆動能力のフリップフロップの4倍の駆動能力を有する。また、NAND34は、最小駆動能力のNANDの4倍の駆動能力を有する。さらに、AND35と、NOT36と、NOR37は最小駆動能力である。
【0062】
また、図11に示す回路では、フリップフロップ31、32の機能ゲート数はそれぞれ6.5ゲートであり、スリップフロップ33の機能ゲート数は8ゲートである。また、NAND34の機能ゲート数は4ゲートであり、AND35の機能ゲート数は1.5ゲートである。更に、NOT36の機能ゲート数は0.5ゲートであり、NOR37の機能ゲート数は1ゲートである。従って、回路全体の機能ゲート数は28ゲートとなる。
【0063】
一方、図12に示す回路は、動作タイミングを考慮せずに設計されているため、駆動能力が最小のセルのみで構成されている。すなわち、最小駆動能力の3つのフリップフロップ310、320、330と、最小駆動能力のNAND340、AND350、NOT360、NOR370のセルで構成されている。各セルの機能ゲート数は、フリップフロップ310、320、330が6ゲートであり、NAND340とNOR37が1ゲートである。また、AND350は1.5ゲートであり、NOT360は0.5ゲートである。従って、回路全体の機能ゲート数は22ゲートとなる。
【0064】
更に、図13に示す回路は、図11に示す回路と同じ機能を有しており、同じ動作タイミングを考慮した回路であるが、複合ゲートを含む別のセルライブラリを用いている。具体的には3つのフリップフロップ311、321、331と、NAND341と、ANDとNOTとNORとを一つのセルにまとめた複合ゲートセル351とから構成されている。
【0065】
それぞれのセルは動作タイミングを考慮した駆動能力を有しており、フリップフロップ311、321は最小駆動能力のフリップフロップの2倍の駆動能力を有し、フリップフロップ331は、最小駆動能力のフリップフロップの4倍の駆動能力を有する。また、NAND341は、最小駆動能力のNANDの4倍の駆動能力を有する。さらに、複合ゲートセル351は最小駆動能力である。
【0066】
また、図13に示す回路では、フリップフロップ311、321の機能ゲート数はそれぞれ6.5ゲートであり、スリップフロップ331の機能ゲート数は8ゲートである。また、NAND341の機能ゲート数は4ゲートであり、複合ゲートセル351の機能ゲート数は2ゲートである。従って、回路全体の機能ゲート数は27ゲートとなる。
【0067】
図11に示す回路と図13に示す回路とは、同一の機能・動作速度を実現することを目的とした回路であり、性能も同等なセルライブラリを用いている。(同じ高さのグリッドのセルライブラリを用いている)。ところが、図11に示す回路の全体の機能ゲート数が28ゲートであるのに対し、図13に示す回路の全体の機能ゲート数は27ゲートであり、1機能ゲート少なくなっている。
【0068】
このゲート数の差は、図11で用いているセルライブラリは基本セルのみで構成されているのに対し、図13で用いているセルライブラリは、複合ゲートセルも用意されていることに起因する。すなわち、複合ゲートセルのラインナップの有無や、用意されている複合ゲートセルの種類や数によって、実際の回路のゲート数が変わってしまう。
【0069】
そこで、図12に示すような、動作タイミングを考慮せずに図11及び図13の回路と同様の機能の実現だけを目的として、基本セルのみで構成された回路の全体の機能ゲート数を最小機能ゲート数とする。すなわち、この場合の最小機能ゲート数は22ゲートとなる。図11及び図13の回路全体の機能ゲート数を、最小機能ゲート数と性能考慮ゲート数係数の積として表現すると、図11の回路の性能考慮ゲート数係数は28/22=1.27となり、図13の回路の性能考慮ゲート数係数は27/22=1.23となる。
【0070】
このように、複合ゲートセルのラインナップの異なるセルライブラリ毎に性能考慮ゲート数係数を算出し、例えば図2に示すチップサイズ見積もり用係数テーブル23のようなテーブル形式で動作周波数に対する性能考慮ゲート数係数の値を予め設定しておく。すると、複合ゲートセルのラインナップが異なるセルライブラリの見積もりを行う場合にも、都度入力の値を変更する必要がなく、最小機能ゲート数を共通の入力値として入力すればよく、セルライブラリごとに入力の値を変更する必要がなく、簡便に見積もりを行うことができる。
【0071】
入力された最小機能ゲート数と見積もり条件に合う性能考慮ゲート数係数とを乗じて実際のゲート数を算出し、総面積の見積もりに用いるので、見積もり対象となるセルライブラリの特性や動作周波数を考慮した適切なゲート数を用いることができ、見積もり精度を向上させることができる。
【0072】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【0073】
1…入力部、2…見積もり部、3…出力部、21…設定値記憶部、22…計算部
【特許請求の範囲】
【請求項1】
回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部と、
セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部と、
前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部と、
を備えたことを特徴とする、半導体集積回路のチップサイズ見積もり装置。
【請求項2】
前記性能考慮ゲート数係数は、動作周波数と関連付けられて設定保持部に格納されていることを特徴とする、請求項1に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項3】
前記性能考慮ゲート数係数は、前記回路のパスの論理段数と関連付けられて設定保持部に格納されていることを特徴とする、請求項1又は請求項2に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項4】
前記セルライブラリは、複合ゲートセルも含むセルで構成されたセルライブラリを含むことを特徴とする、請求項1から請求項3のいずれか一項に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項5】
回路の機能の実現に最小限必要なゲート数である最小機能ゲート数と動作周波数とを入力し、
見積もり対象のセルライブラリを選択し、
予めセルライブラリごとに設定されている所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数から、入力された前記最小機能ゲート数および前記動作周波数と選択された前記セルライブラリとから、見積もりに用いる特定の値の前記性能考慮ゲート数係数を決定し、
前記最小機能ゲート数と決定された前記性能考慮ゲート数係数とから見積もりに用いるゲート数を算出し、
前記算出されたゲート数を用いて前記回路の総面積を見積もることを特徴とする、半導体集積回路のチップサイズ見積もり方法。
【請求項1】
回路の機能の実現に最小限必要なゲート数である最小機能ゲート数を入力する入力部と、
セルライブラリごとに所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数が予め設定された設定値保持部と、
前記最小機能ゲート数と前記性能考慮ゲート数係数とから算出されるゲート数を用いて前記回路の総面積を見積もる計算部と、
を備えたことを特徴とする、半導体集積回路のチップサイズ見積もり装置。
【請求項2】
前記性能考慮ゲート数係数は、動作周波数と関連付けられて設定保持部に格納されていることを特徴とする、請求項1に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項3】
前記性能考慮ゲート数係数は、前記回路のパスの論理段数と関連付けられて設定保持部に格納されていることを特徴とする、請求項1又は請求項2に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項4】
前記セルライブラリは、複合ゲートセルも含むセルで構成されたセルライブラリを含むことを特徴とする、請求項1から請求項3のいずれか一項に記載の半導体集積回路のチップサイズ見積もり装置。
【請求項5】
回路の機能の実現に最小限必要なゲート数である最小機能ゲート数と動作周波数とを入力し、
見積もり対象のセルライブラリを選択し、
予めセルライブラリごとに設定されている所定の動作速度の達成に必要となるゲート数と前記最小機能ゲート数との比率である性能考慮ゲート数係数から、入力された前記最小機能ゲート数および前記動作周波数と選択された前記セルライブラリとから、見積もりに用いる特定の値の前記性能考慮ゲート数係数を決定し、
前記最小機能ゲート数と決定された前記性能考慮ゲート数係数とから見積もりに用いるゲート数を算出し、
前記算出されたゲート数を用いて前記回路の総面積を見積もることを特徴とする、半導体集積回路のチップサイズ見積もり方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−243151(P2012−243151A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−113926(P2011−113926)
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]