【発明の詳細な説明】
スタンダードセルライブラリの最適化方法及び装置技術分野
本発明は、集積回路を設計する方法及び装置に関し、より詳細には、集積回路
の設計に使用されるスタンダードセルライブラリの最適化方法及び装置に関する
。発明の背景
スタンダードセルライブラリから製作された集積回路(IC)を使用する様々
な集積システムにおいて、デジタルスタンダードセルが使用されている。これら
のシステムは、設計要求において広範な変化性を有する。幾つかのシステムでは
電力消費が重大であり、他のシステムではコストの削減のためにシリコン面積の
最小化が重要であり、幾つかのシステムでは動作速度が優先的な考察事項である
。システム設計の変化する要求事項とデジタルスタンダードセルの広く普及した
使用において、これら特定のニーズに調和したスタンダードセルライブラリを有
することが望ましい。
スタンダードセルライブラリの以前の最適化は、特定の回路及び実行に集中し
ていた。典型的に、スタンダードセルの最適化は、バッファ又はインバータ連鎖
(chain)の設計に限定され、それは電力の浪費又は信号遅延を最小化するよう
に最適化されてきた。低電力最適化の例が、Sha Ma及びPaul Franzonによる“C
MOSバッファ設計におけるエネルギー制御及び正確な遅延推定”、半導体回路
のIEEEジャーナル、vol.29、no.9、pp.1150-1153、1994年9月、に記載
されている。S.R.Vemura及びA.R.Thorbjornsenに
よる“可変テープCMOSバッファ”、半導体回路のIEEEジャーナル、vol.
26、no.9、pp.1265-1269、1991年9月は、最小遅延バッファ最適化の例を議
論する。実際、遅延の最適化の努力は、NMOSとPMOSの比率よりもむしろ
連続段の比率を主たる目標としてきた。しかし、選択されたパラメータセットの
いずれか一つに対する単一の最適化方法及び装置を提供することの有益性につい
て記載する参考文献は無かった。発明の概要
一つの観点によれば、本発明は、集積回路の製作に使用するスタンダードセル
要素のライブラリについてのデバイス仕様のセットを設計する方法である。その
方法は、a)要素を作成するためのプロセス技術を決定する工程と、b)最適化
基準の所定のセットから一つの最適化基準を決定する工程と、を備える。その方
法は更に、c)ライブラリ特定知識のセットを指定する工程を備える。その方法
は更に、d)ライブラリ特定知識のセットをプロセス技術及び最適化基準として
処理し、それからデバイス仕様のセットを作成する工程、を備える。
別の観点によれば、本発明は、集積回路の製作に使用するCMOSスタンダー
ドセル要素のライブラリについてのデバイス仕様のセットを設計する方法である
。各CMOSスタンダードセル要素は、NタイプトランジスタとPタイプトラン
ジスタとを含む。その方法は、a)CMOSスタンダードセル要素を作成するた
めのプロセス技術を決定する工程と、b)最適化基準の所定のセットから一つの
最適化基準を決定する工程と、を備える。その方法は更に、c)ライブラリ特定
知識のセットを指定する工程を備える。また、その方法は、d)ライブラリ特定
知識のセットをプロセス技術及び最適化
基準として処理し、それからデバイス仕様のセットを作成する工程を備える。
更に別の観点によれば、本発明は、集積回路の製作に使用するスタンダードセ
ル要素のライブラリについてのデバイス仕様のセットを設計する装置である。そ
の装置は、要素を作成するためのプロセス技術を決定する入力回路と、最適化基
準の所定のセットから一つの最適化基準を決定する入力回路と、を備える。その
方法は更に、ライブラリの特定知識のセットを指定する記憶装置を備える。その
装置は更に、ライブラリの特定知識のセットをプロセス技術及び最適化基準とし
て処理し、それからデバイス仕様のセットを作成する処理回路を備える。図面の簡単な説明
図1は、本発明の方法のブロック図である。
図2は、低電力消費のデバイス仕様のセットを設計する方法のフローチャート
である。
図3は、図2に示す低電力消費のデバイス仕様のセットを設計する方法のより
詳細なフローチャートである。
図4は、論理ゲートの組み合わせのノイズマージンをチェックする方法のフロ
ーチャートである。
図5は、図5A及び5Bの正しい配置を示す図である。
図5Aは、特定の論理ゲートのノイズマージンをチェックする方法のフローチ
ャートの第1部分である。
図5Bは、特定の論理ゲートのノイズマージンをチェックする方法のフローチ
ャートの第2部分である。
図6は、図6A及び6Bの正しい配置を示す図である。
図6Aは、論理ゲートの面積を最小化する方法のフローチャート
の第1部分である。
図6Bは、論理ゲートの面積を最小化する方法のフローチャートの第2部分で
ある。
図7は、図7A及び7Bの正しい配置を示す図である。
図7Aは、論理ゲートのNMOS及びPMOS幅を最適化する方法のフローチ
ャートの第1部分である。
図7Bは、論理ゲートのNMOS及びPMOS幅を最適化する方法のフローチ
ャートの第2部分である。
図8は、図8A及び8Bの正しい配置を示す図である。
図8Aは、所定の論理ゲートのNMOS幅とPMOS幅の比を最適化する方法
のフローチャートの第1部分である。
図8Bは、所定の論理ゲートのNMOS幅とPMOS幅の比を最適化する方法
のフローチャートの第2部分である。
図9は、図9A及び9Bの正しい配置を示す図である。
図9Aは、所定の論理ゲートのトータル幅を最適化する方法のフローチャート
の第1部分である。
図9Bは、所定の論理ゲートのトータル幅を最適化する方法のフローチャート
の第2部分である。
図10は、所定の論理ゲートのNMOS幅又はPMOS幅のいずれかを最適化
する方法のフローチャートである。
図11は、図11A及び11Bの正しい配置を示す図である。
図11Aは、所定の論理ゲートのPMOS幅を最適化する方法のフローチャー
トの第1部分である。
図11Bは、所定の論理ゲートのPMOS幅を最適化する方法のフローチャー
トの第2部分である。
図12は、図12A及び12Bの正しい配置を示す図である。
図12Aは、所定の論理ゲートのNMOS幅を最適化する方法の
フローチャートの第1部分である。
図12Bは、所定の論理ゲートのNMOS幅を最適化する方法のフローチャー
トの第2部分である。
図13は、図13A及び13Bの正しい配置を示す図である。
図13Aは、所定の論理ゲートの速度を最大化する方法のフローチャートの第
1部分である。
図13Bは、所定の論理ゲートの速度を最大化する方法のフローチャートの第
2部分である。本発明の好適な実施形態の詳細な説明
図1は、本発明の方法のブロック図である。方法100は、所望の要素を製作
するためのプロセス技術を決定するステップ102を含む。また、方法100は
、所定の最適化基準のセットから一つの最適化基準を決定するステップ104を
有する。
本発明のスタンダードセルコンパイラは全て、トランジスタサイズの3つのセ
ットの1つを使用する。トランジスタサイズの3つのセットはそれぞれ低電力、
高速又は最小面積設計について最適化されており、それにより、それに応じて最
適化されるスタンダードセルライブラリを作成する。例えば、スタンダードセル
の高さはトランジスタサイズの関数である。これは、デバイスサイズの最適化を
実行する際に、面積コストを決定する手段を提供する。
トランジスタサイズの各セットは、4個のNMOS及び4個のPMOSのサイ
ズからなる。4個のサイズは、直列に接続されるトランジスタ数に基づいて選択
される。例えば、2入力NANDゲートは、直列の2個のNMOSデバイスを有
する。従って、そのようなゲートは、直列の2個のNMOSトランジスタについ
て選択されたトランジスタサイズを有するであろう。このトランジスタサイズに
ついて使用される表記はN_2sである。同一の2入力NANDゲートは直列の1個
のPMOSデバイスを有する。従って、そのようなゲートは直列の単一のPMO
Sトランジスタについて選択されたトランジスタサイズ、P_1sを使用するであろ
う。
トランジスタサイズの最適化の目標は、スタンダードセルライブラリを最適化
して最小電力浪費、最大動作速度、又は最小シリコン面積を達成する、4個のN
MOS及び4個のCMOSトランジスタサイズを決定することである。3つの最
適化手順の詳細を以下に述べる。
再度図1を参照すると、サイズ決定プログラム106はステップ102及び1
04の結果、並びにライブラリ特定知識データベース108からの情報を受け取
る。後に詳細に説明するように、次にサイズ決定プログラム106は、ライブラ
リ特定知識のセットをプロセス技術及び最適化基準の関数として処理し、デバイ
ス仕様110のセットを作成する。続いて、デバイス仕様のセット110をパラ
メータ化ライブラリコンパイラ112により使用可能とし、そのライブラリコン
パイラ112は所望のスタンダードセル要素をコンパイルし、結果としてのライ
ブラリ114を作成する。
図2は、低電力消費のデバイス仕様のセットを設計するための方法のフローチ
ャートである。集積回路では、電力の浪費は、実用的な限りにおいてキャパシタ
ンスを減少させることにより最小化される。これは、ゲートについての最小ノイ
ズマージンの設定により与えられる下限を条件に、最小デバイスサイズと共に実
行される。ノイズマージンの限界は、スタンダードセルが電源ノイズに対する十
分な免疫性を有することを保証する。ノイズマージンは、ゲートの論理スレッシ
ョルドと電源の間の差として定義される。ゲートの論理スレッショルドは、反転
ゲートの出力が全ての入力に短絡された
状態で評価される。論理スレッショルドは、温度、電源及びプロセスの変化にわ
たり、スタンダードセルライブラリ中の全てのゲートについて評価される。ゲー
トがノイズマージン要求を満足することに失敗し、プロセスが再開される場合に
トランジスタサイズが調整される。これは、全てのゲートがノイズマージン要求
に合格するまで繰り返される。トランジスタサイズを減少させるための優先がプ
ロセスに含められるが、ノイズマージン要求を満足することが要求された場合に
トランジスタサイズは増加する。加えて、ゲートについての出力立ち上がり及び
立ち下がり時間は、一つのゲートが駆動可能な最大キャパシタンスを制限するこ
とにより制限される。最大キャパシタンスは、電源からPMOS及びNMOSデ
バイスを通って接地面に流れる貫通電流を制限する。
図2は、低電力消費のデバイス仕様のセットを設計するための方法のフローチ
ャートである。方法200は初期化ステップ202を有し、そこでは4個のNM
OS及び4個のPMOSトランジスタサイズの各々が、特定のプロセス技術の設
計ルールにより許容される最小サイズであるbaに設定される。この後、ステッ
プ204において、サブルーチンCheck()を実行することにより静的ノイズマー
ジン(NM)をチェックし、そのサブルーチンCheck()は後に更に詳細に説明さ
れる。
図3は、図2に示す、低電力消費のデバイス仕様のセットを設計するための方
法200のより詳細なフローチャートである。方法200は、最小サイズデバイ
スの初期化から始まる(ステップ202)。次に、最小サイズデバイスにより構
成されたNORゲートの静的NMをテストする(ステップ300)。NORゲー
トのNMが低すぎる場合、PMOSデバイスのサイズを増加し(ステップ302
)、ステップ300を再度実行する。
結局NORゲートのNMは十分に高いレベルに達し、方法200はステップ3
08へ進む。ステップ308では、NANDゲートのNMをテストする。それが
高すぎる場合、方法200はステップ310へ進み、そこでNMOSデバイスの
サイズを増加し、ステップ308を再度実行する。
ここでも、結局NANDゲートのNMは高すぎないようになり、その点で方法
200はNMOS及びPMOSサイズの種々の組み合わせである複合ゲートの論
理スレッショルドを決定する(ステップ312)。複合ゲートのNMが所定値に
より境界を画される範囲外にある場合、方法200は、NMが低すぎるかどうか
を決定する(ステップ314)。そうである場合、PMOSデバイスのサイズを
増加し、方法200はステップ312へ戻る。NMが低すぎない場合、それは高
すぎるに違いなく、その場合その方法はステップ318へ移行し、そこでNMO
Sデバイスのサイズを増加し、ステップ312を再実行する。NMの値が決定さ
れた範囲内である場合、方法200はステップ304へ移行し、そこで複合ゲー
トについての変更があるかどうかが決定される。変更がある場合、その方法はス
テップ300へ戻り、プロセスを再度開始する。複合ゲートについて変更が無い
場合、その方法が停止ステップ306へ移行し、終了する。
図4は、論理ゲートの組み合わせのノイズマージンをチェックする方法のフロ
ーチャートである。その方法400はステップ402で始まり、それは、方法4
00を使用する時にPMOS及びNMOSデバイスが変化しているかどうかを決
定する。最初は、PMOS及びNMOSデバイスは変化しており、よって方法4
00はステップ404へ移行し、そこで、後に詳細に説明するサブルーチンChec
k NM_gate()を使用して4個のPMOSサイズ値を変化させる効果を評価するこ
とによりNORゲートをチェックする。次に、方法40
0はステップ408へ移行し、そこで再度サブルーチンCheck NM_gate()を使用
して4個のNMOSゲートサイズ値を変化させる効果を評価することにより、N
ANDゲートをチェックする。最後に、方法400はステップ410へ移行し、
そこで再度サブルーチンCheck NM_gate()を使用して4個のNMOSサイズのう
ちの3個の値と4個のPMOSサイズのうちの3個の値を変化させる効果を評価
することにより複合ゲートをチェックする。それから方法400はステップ40
2へ戻り、そこでPMOS及びNMOSについてのあらゆる変化を決定する。変
化が無い場合、方法400はリターンステップ406へ移行する。
図5は、図5A及び図5Bの正しい配置を示す図である。図5Aは、特定の論
理ゲートのノイズマージンをチェックする方法のフローチャートの第1部分であ
る。図5Bは、特定の論理ゲートのノイズマージンをチェックする方法のフロー
チャートの第2部分である。方法500はステップ502で始まり、そこでNM
OS及びPMOSサイズ、最小NMOS及びPMOSステップサイズ、及び論理
スレッショルドLTmin及びLTmaxを設定する。方法500がステップ504へ進ん
だ後、論理スレッショルドを論理スレッショルドの現在値LTmin及びLTmaxと比較
する。論理スレッショルドが大きすぎも小さすぎもしない場合、方法500はス
テップ506へ移行し、そこでNMOS及びPMOSサイズの値を確立し、それ
からステップ508へ移行し、そこからサブルーチンはリターンする。論理スレ
ッショルドが大きすぎるか小さすぎる場合、方法500はステップ510へ移行
し、そこで高低の供給電圧、P及びNの強度の組み合わせ、及び最小及び最大温
度について論理スレッショルドを再計算する。
ステップ512へ移行した後、方法500はそれから論理スレッ
ショルドをスレッショルドと比較する。論理スレッショルドが高すぎる場合、方
法は比較ステップ514へ移行し、論理スレッショルドが高すぎるかを決定する
。そうである場合、方法500はステップ516へ移行し、そこでPMOSの新
しいサイズを最小許容PMOSサイズと比較する。PMOSの新しいサイズが最
小許容PMOSサイズより大きい場合、PMOSサイズの増加変化のサイズを係
数2で減少させる(ステップ520)。そうでなければ(ステップ524)、N
MOSサイズの増加変化のサイズを係数2で減少させる。PMOSサイズの増加
変化のサイズを係数2で減少させた場合、方法はステップ522へ移行し、そこ
で現在のPMOSサイズを増加変化の新しい値だけ減少させる。一方、NMOS
サイズの増加変化のサイズを係数2で減少させた場合、現在のNMOSサイズを
、PMOSサイズの増加変化の新しい値だけ増加させる。
方法500のステップ518で、論理スレッショルドをテストする。それが低
すぎる場合、方法500はステップ528へ移行する。この点で、ステップ51
6、520、522及び526でPMOSサイズの現在値について実行されたの
と同様のテストをNMOSサイズの現在値について実行する。結局、方法500
はステップ534へ到達し、そこでNMを再評価し、方法はステップ504へ戻
る。
最小面積最適化は、最小面積内で可能な最速セルを達成するために設計される
。デバイスは、最小スタンダードセル高さを満たすようにサイズ決定される。最
小ノイズマージンのチェックに加えて、ゲートの出力立ち上がり時間と出力立ち
下がり時間の比を制御する。この目標を達成するため、トランジスタサイズの初
期セットを、スタンダードセル高さの要求を考慮して選択する。このトランジス
タサイズの初期セットを、反復的SPICEシミュレーションを使用してスタン
ダードセル高さを増加させることなくゲート遅延を最小
化することによりさらに最適化する。このプロセスにおいて、最小レイアウト面
積内に最大速度ゲートが得られる。トランジスタサイズの初期セットは、表1、
“面積最適化のための初期電流比”に指定された電流比を使用して、種々のゲー
トの立ち上がり及び立ち下がり時間をほぼ等しくする。電流のこれらのセットは
、面積とパフォーマンスとの良好なトレードオフを提供することが経験的に分か
っている。
これらのサイズは、それからスタンダードセル高さを計算するために使用され
る。それから、この初期デバイスセットを、初期スタンダードセル高さを増加さ
せないという例外下で、高速最適化と同様のシーケンスを使用してさらに最適化
する。最適化は、表2、“最小面積ゲート最適化ステップ”に示されるインバー
タ、NAND及びNORゲートのセットについて行う。このプロセスは、最小面
積についてのスタンダードセルライブラリの最適化に要求されるトランジスタサ
イズのセットを確立する。その最適化は、1個、2個及び3個の直列NMOS及
びPMOSトランジスタサイズを決定する。4個の直列NMOS及びPMOSト
ランジスタサイズは、4個の直列デバイスが3個の直列トランジスタサイズと同
一のプルアップ及びプルダウン電流を提供するように設定する。しかし、4個の
直列デバイスサイズは、このステップのスタンダードセル高さルーチンにより計
算されたように、最大NMOS及びPMOSデバイス幅に
制限される。
次に、インバータ、NAND及びNORゲートについてプルアップ及びプルダ
ウン電流の比をチェックする。このプルアップ及びプルダウン電流の比は制限さ
れる。可能であればNMOS及びPMOSトランジスタ幅を減少させ、そうでな
ければ、必要に応じて逆(PMOS/NMOS)のトランジスタサイズを増加さ
せる。
低電力最適化について記載した最後の静的ノイズマージンチェックは、結果と
して得られるスタンダードセルライブラリが低電力最適化セルと同一のノイズマ
ージン要求を満足することを保証する。
図6は、図6A及び6Bの正しい配置を示す図である。図6Aは論理ゲートの
面積を最小化する方法のフローチャートの第1部分である。図6Bは、論理ゲー
トの面積を最小化する方法のフローチャートの第2部分である。方法600にお
いて、ステップ602は最小NMOS及びPMOS幅を設定する。次に、ステッ
プ604において、方法600は、N_1sのプルダウン電流に適合するように他
のNMOSデバイスをサイズ決定し、P_1sのプルダウン電流に適合するように他
のPMOSデバイスをサイズ決定する。ステップ606に移行し、方法600は
スタンダードセル高さについての値HeightLimitを確立する。この高さはステッ
プ608において7%
増加させられる。ステップ610において、最小NMOS幅をbaに設定し、最小
PMOS幅も同様とする。ステップ612でサイズmin_nの単一デバイスの直列
電流を決定し、次に、最大NMOS幅を、サイズmin_nの単一デバイスの直列電
流より33パーセント大きい電流を提供するのに必要な2個の直列幅と等しく設
定する。
方法600のステップ616において、N_1sをmin_nに設定し、N_2sをMax_n/2
に設定し、これら2つの値からN_3sを決定する。ステップ618において、サイ
ズmin_pの単一デバイスの直列電流を決定する。それから、最大PMOS幅を、
サイズmin_pの単一デバイスの直列電流を提供するために必要な3個の直列幅の
値に設定する(ステップ620)。
ステップ622で、P_1s、P_2s、及びP_3sの値を確立する。ステップ624
で、HeightLimit値を、その以前の最小値及びステップ622で設定された値に
ついてのスタンダードセル高さに設定する。
ステップ626で、SPICEを反復的に使用し、後に議論されるサブルーチ
ンopt_np()を使用してデバイスサイズを調整することにより2入力NANDにつ
いての遅延を最小化する。ステップ628で、SPICEを反復的に使用し、デ
バイスサイズを調整することによりインバータについての遅延を最小化する。ス
テップ630で、SPICEを反復的に使用し、デバイスサイズを調整すること
により2入力NORについての遅延を最小化する。ステップ632で、SPIC
Eを反復的に使用し、デバイスサイズを調整することにより3入力NANDにつ
いての遅延を最小化する。最後に、ステップ634で、SPICEを反復的に使
用し、デバイスサイズを調整することにより3入力NORについての遅延を最小
化する。
次に、ステップ636で、3個の直列電流N_3s及びP_3sを決定する。ステッ
プ638で、適当な電流とNMOS及びPMOSにつ
いて使用可能な最小空間とを個々に比較して値N-4s及びP-4sを決定する。ステッ
プ640で静的NMをチェックし、ステップ642で立ち上がり及び立ち下がり
時間が相互の3の因数以内であることをチェックする。
図7は、図7A及び7Bの正しい配置を示す図である。図7Aは、論理ゲート
のNMOS及びPMOS幅を最適化する方法のフローチャートの第1部分である
。図7Bは、論理ゲートのNMOS及びPMOS幅を最適化する方法のフローチ
ャートの第2部分である。方法700のステップ702で、パラメータを初期化
する。次に、後に議論するサブルーチンopt_ratio()を使用することによりN対
P比を最適化する。方法700はそれからステップ706に移行し、そこで高さ
を高さ制限と比較する。高さが高すぎる場合、方法700はステップ708へ移
行し、そこで減少させたパラメータと共にサブルーチンopt_total()を使用して
トータルデバイス幅を最適化する。サブルーチンopt_total()は後に議論される
。それから方法700はステップ710に移行する。一方、高さが高さ制限を超
えていない場合(ステップ706)、増加させたパラメータと共にサブルーチン
opt_total()を使用してトータルデバイス幅を最適化する。
再び高さを高さ制限と比較する(ステップ710)。高さが高さ制限より大き
くない場合、方法700はステップ714へ移行し、そこで増加させたパラメー
タと共にサブルーチン opt_ratio()を使用してN対P比を最適化する。一方、高
さが高さ制限より大きい場合、方法700はステップ718へ移行し、そこで減
少させたパラメータと共にサブルーチンopt_ratio()を使用してN対P比を最適
化する。とにかく、方法700は次にステップ716へ移行し、そこで以前の反
復からこのサブルーチンを通じて高さ制限内の最良の
遅延を決定する。MatchCurrentsパラメータが設定された場合、他をデバイスを
PMOS及びNMOS電流に適合するように再度サイズ決定する。
方法700のステップ722で、パラメータとして指定された厳しい制限が無
い場合に、より良好な制限についてのチェックが行われる。より良好な制限があ
れば、方法700はステップ724へ移行し、そこでパーセンテージ遅延改善を
高さのパーセンテージ増加の平方と比較する。パーセンテージ遅延改善が高さの
パーセンテージ増加の平方より小さい場合、方法700はステップ726へ移行
し、そこでデバイスサイズが承認される。とにかく、MatchCurrentsが設定され
ている場合、ステップ728で電流に適合するように他のデバイスを再度サイズ
決定する。
図8は、図8A及び8Bの正しい配置を示す図である。図8Aは、所定の論理
ゲートのNMOS幅対PMOS幅の比を最適化する方法のフローチャートの第1
部分である。図8Bは、所定の論理ゲートのNMOS幅対PMOS幅の比を最適
化する方法のフローチャートの第2部分である。方法800において、ステップ
802はP/N比が収束したかを決定する。もし収束していなければ、サブルー
チンはリターンする(ステップ804)。そうでなければ、スタンダードセル高
さを再計算し、標準負荷容量を確立する(ステップ806)。次に、ステップ8
08で、指定されたPMOS及びNMOSサイズのゲートを通じる遅延を計算す
る。
ステップ810で、2つの評価がなされる。一つの評価は、スタンダードセル
高さが高さ制限より小さいかを決定する比較に基づく。もしそうであり、且つ遅
延が改善された場合、方法800はステップ824へ移行する。他方の評価は、
厳しい制限が無く、且つパーセンテージ遅延改善が高さのパーセンテージ増加の
平方より大きい
場合に使用される。ここでも、そうである場合、方法800はステップ824へ
移行する。これら2つの可能性を採り損ねた場合、方法800はステップ812
へ移行し、そこでpステップサイズを可能な最小値と比較する。それが小さすぎ
る場合、方法800はステップ814でpステップサイズを確立し、ステップ8
16へ移行する。そうでなければ、P/N比は収束し(ステップ818)、方法
はステップ816へ移行する。
ステップ816で、P/N比の変化方向を決定する。それが増加している場合
、PMOSの値を減少させ、NMOSの値を増加させる(ステップ818)。そ
れから、方法800はステップ820へ移行する。そうでなければ、PMOSの
値を増加させ、NMOSの値を減少させ、それにより変化方向が増加するように
する。それから方法800はステップ820を通過する。
ステップ820はNMOS及びPMOS電流に適合するように他のデバイスを
再度サイズ決定し、それからステップ802へ戻る。ステップ810でのテスト
に合格すると、方法800はステップ824へ移行し、そこでも変化方向を評価
する。それが増加している場合、PMOS値を増加させ、NMOS値を減少させ
、それから方法はステップ820へ移行する。変化方向が減少している場合、方
法800はステップ826へ移行し、そこでPMOS値を減少させ、NMOS値
を増加させ、方法はステップ820へ移行する。
図9は、図9Aと9Bの正しい配置を示す図である。図9Aは、所定の論理ゲ
ートのトータル幅を最適化する方法のフローチャートの第1部分を示す。図9B
は、所定の論理ゲートのトータル幅を最適化する方法のフローチャートの第2部
分を示す。この方法のステップ902で、トータル幅の値が収束したかを決定す
る。収束していない場合、方法900はリターンステップ904へ移行する。収
束した場合、方法900はステップ906へ移行し、そこでスタンダードセル高
さ及び標準負荷容量を設定する。ステップ908で、PMOS/NMOSのサイ
ズを有するゲートタイプを通じる遅延を計算し、方法900はステップ910へ
移行する。
ステップ910で、2つの評価がなされる。一つの評価は、スタンダードセル
高さが高さ制限より小さいかを決定する比較に基づく。そうであり、且つ遅延が
改善された場合、方法900はステップ926へ移行する。他方の評価は、厳し
い制限が無く、且つパーセンテージ遅延改善が高さのパーセンテージ増加の平方
より大きい場合に使用される。ここでも、そうである場合、方法900はステッ
プ926へ移行する。これらの可能性を採り損ねた場合、方法900はステップ
912へ移行し、そこでpステップサイズを可能な最小値と比較する。それが小
さすぎる場合、方法900はステップ914でpステップサイズを減少させ、ス
テップ916へ移行する。そうでない場合、トータル幅は収束し(ステップ91
8)、方法はステップ916へ移行する。
ステップ916で、トータル幅の変化方向を決定する。それが増加している場
合、PMOSの値を減少させ、NMOSの値を増加させる(ステップ920)。
それから、方法900はステップ922へ移行する。そうでない場合、PMOS
の値を増加させ、NMOSの値を減少させ、それにより変化方向が増加するよう
にする。また、方法900はステップ922も通過する。
ステップ922はNMOS及びPMOS電流に適合するように他のデバイスを
再度サイズ決定し、それからステップ902へ戻る。ステップ910でのテスト
が合格すると、方法900はステップ926へ移行し、そこでトータル幅の変化
方向をも評価する。それが増加していると、PMOS値を増加させ、NMOS値
を減少させ、
それから方法900はステップ922へ移行する。変化方向が減少している場合
、方法900はステップ928へ移行し、そこでPMOS値を減少させ、NMO
S値を増加させ、方法900はステップ922へ移行する。
図10は所定の論理ゲートのNMOS幅又はPMOS幅のいずれかを最適化す
る方法のフローチャートである。ステップ1002で、パラメータを初期化する
。ステップ1004で、MOSがNMOSであるかに依存して切り替えがなされ
る。そうでない場合、後に議論するopt_p()を使用してPMOSサイズを最適化
する。そうである場合、後に議論するopt_n()を使用してNMOSサイズを最適
化する。いずれにしても、高さ制限内の最良の遅延を全ての先行する実行から決
定し、方法はステップ1012へ移行する。ステップ1012で、高さ制限が無
いと仮定した場合に、高さ制限を超えるより良好な遅延が存在するかを決定する
。より良好な遅延が存在する場合、方法1000はステップ1014へ移行し、
そこでパーセンテージ遅延改善を高さのパーセンテージ増加の平方と比較する。
パーセンテージ遅延改善が高さのパーセンテージ増加の平方より大きい場合、方
法1000はステップ1018へ移行し、そこでサブルーチンを通じるこの通過
についてのデバイスサイズを承認する。それから方法1000はステップ101
6へ移行する。パーセンテージ遅延改善が高さのパーセンテージ増加の平方より
大きくない場合、方法1000は単純にステップ1016へ移行する。
図11は、図11A及び11Bの正しい配置を示す図である。図11Aは、所
定の論理ゲートのPMOS幅を最適化する方法のフローチャートの第1部分であ
る。図11Bは、所定の論理ゲートのPMOS幅を最適化する方法のフローチャ
ートの第2部分である。方法1100のステップ1102で、PMOSサイズが
収束したかを
決定する。それが収束していない場合、方法1100はリターンステップ110
4へ移行する。それが収束した場合、方法1100はステップ1106へ移行し
、そこでスタンダードセル高さ及び標準負荷容量を設定する。ステップ1108
で、サイズPMOSを有するゲートタイプを通じる遅延を計算し、方法1100
はステップ1110へ移行する。
ステップ1110で、2つの評価がなされる。一つの評価は、スタンダードセ
ル高さが高さ制限より小さいかを決定する比較に基づく。もしそうであり、且つ
遅延が改善された場合、方法1100はステップ1126へ移行する。他方の評
価は、厳しい制限が無く、且つパーセンテージ遅延改善が高さのパーセンテージ
増加の平方より大きい場合に使用される。ここでも、そうである場合、方法11
00はステップ1126へ移行する。これらの2つの可能性を採り損ねると、方
法1100はステップ1112へ移行し、そこでpステップサイズを可能な最小
値と比較する。それが小さすぎる場合、方法1100はステップ1114でpス
テップサイズを減少させ、ステップ1116へ移行する。そうでない場合、PM
OSサイズは収束し(ステップ1118)、方法はステップ1116へ移行する
。
ステップ1116で、PMOSサイズの変化方向を決定する。それが増加して
いる場合、PMOS値を減少させる(ステップ1120)。それから、方法11
00はステップ1122へ移行する。そうでなければ、PMOS値を増加させ、
それにより変化方向が増加するようにする。それから、方法1100はステップ
1122へ進む。
ステップ1122は他のデバイスの再サイズ決定を行わないが、ステップ11
02へ戻る。ステップ1110でのテストに合格すると、方法1100はステッ
プ1126へ移行し、そこでトータル幅
の変化方向をも評価する。それが増加している場合、PMOS値を増加させ、そ
れから方法1100はステップ1122へ移行する。変化方向が減少している場
合、方法1100はステップ1128へ移行し、そこでPMOS値を減少させ、
方法1100はステップ1122へ移行する。
図12は、図12A及び12Bの正しい配置を示す図である。図12Aは、所
定の論理ゲートのNMOS幅を最適化する方法のフローチャートの第1部分であ
る。図12Bは、所定の論理ゲートのNMOS幅を最適化する方法のフローチャ
ートの第2部分である。方法1200のステップ1202で、NMOSサイズが
収束したかを決定する。それが収束していない場合、方法1200はリターンス
テップ1204へ移行する。それが収束した場合、方法1200はステップ12
06へ移行し、そこでスタンダードセル高さ及び標準負荷容量を設定する。ステ
ップ1208で、サイズNMOSを有するゲートタイプを通じる遅延を計算し、
方法1200はステップ1210へ移行する。
ステップ1210で、2つの評価がなされる。一つの評価は、スタンダードセ
ル高さが高さ制限より小さいかを決定する比較に基づく。もしそうであり、且つ
遅延が改善された場合、方法1200はステップ1226へ移行する。他方の評
価は、厳しい制限が無く、且つパーセンテージ遅延改善が高さのパーセンテージ
増加の平方より大きい場合に使用される。ここでも、そうである場合、方法12
00はステップ1226へ移行する。これら2つの可能性を採り損ねると、方法
1200はステップ1212へ移行し、そこでnステップサイズを可能な最小値
と比較する。それが小さすぎる場合、方法1200はステップ1214でnステ
ップサイズを減少させ、ステップ1216へ移行する。そうでない場合、NMO
Sサイズは収
束し(ステップ1218)、方法はステップ1216へ移行する。
ステップ1216で、NMOSサイズの変化方向を決定する。それが増加して
いる場合、NMOS値を減少させる(ステップ1220)。それから、方法12
00はステップ1222へ移行する。そうでなければ、NMOS値を増加させ、
それにより変化方向を増加するようにする。それから、方法1200はステップ
1222へ進む。
ステップ1222は他のデバイスの再サイズ決定を行わないが、ステップ12
02へ戻る。ステップ1210でのテストに合格すると、方法1200はステッ
プ1226へ移行し、そこでNMOSの変化方向をも評価する。それが増加して
いる場合、NMOS値を増加させ、それから方法1200はステップ1222へ
移行する。変化方向が減少している場合、方法1200はステップ1228へ移
行し、そこでNMOS値を減少させ、方法1200はステップ1222へ移行す
る。
高速最適化の目標は、過剰な面積増加を伴わずに最小ゲート遅延を達成するこ
とである。スタンダードセル幅はデバイスサイズに伴って大幅に変化することは
ないので、面積増加はセル高さにより決定される。これを達成するため、最小サ
イズのNMOSと、1及び1.5倍の最小PMOSに基づいて最小スタンダード
セル高さを計算する。スタンダードセル高さは、この最小値の公称25パーセン
ト増まで増加することを許容される。速度の増加が高さの増加の平方を超える場
合に限り、スタンダードセル高さはこの25%を超えて更に増加することを許容
される。
最適なNMOS及びPMOSトランジスタサイズを選択してゲート遅延を最小
化する反復的SPICEシミュレーションを使用して、デバイスサイズをこのス
タンダードセル高さに適合するように計算
する。ゲート遅延は、直列な3個のゲートについての入力立ち上がり及び立ち下
がり遅延の平均として測定される。未使用の入力は、NANDゲートについては
ハイに、NORゲートについてはローに接続される。各ゲートの負荷は後続のゲ
ートと標準負荷である。標準負荷は、4のクロックされたインバータの入力遅延
とスタンダードセル高さにより決定される配線容量との和である。この負荷は、
デバイスサイズが最適化されると変化し、デバイスサイズが変化すると負荷容量
の影響を反映する。そのゲートのトランジスタサイズを決定する表3“高速ゲー
ト最適化ステップ”に示されるNAND及びNORゲートのセットに対して最適
化が行われる。SPICEによる最適化は、高速動作のためのスタンダードセル
ライブラリを最適化するために要求される1個、2個、及び3個の直列NMOS
及びPMOSトランジスタサイズを確立する。4個の直列NMOS及びPMOS
トランジスタサイズは、4個の直列デバイスが3個の直列トランジスタサイズと
等しいプルアップ及びプルダウン電流を提供するように設定する。しかし、4個
の直列デバイスサイズは、このステップのスタンダードセル高さルーチンにより
計算されるような最大NMOS及びPMOSデバイス幅に制限される。最終的な
静的ノイズマージンチェックは、高速スタンダードセルライブラリが低電力最適
化セルと等しいノイズマージン要求を満足することを保証する。
図13は、図13Aと13Bの正しい配置を示す図である。図13Aは、所定
の論理ゲートの速度を最大化する方法のフローチャートの第1部分である。図1
3Bは、所定の論理ゲートの速度を最大化する方法のフローチャートの第2部分
である。方法1300のステップ1302において、NMOSの最小幅をbaに
設定し、PMOSの最小幅P_1sをbaの50%増に設定する。ステップ1304
で、他のNMOSデバイスをプルダウン電流N_1sに適合するようにサイズ決定
し、他のPMOSデバイスをプルアップ電流P_1sに適合するようにサイズ決定
する。ステップ1306へ進み、指定されたデバイスサイズを有するスタンダー
ドセル高さを計算する。次に、ステップ1308で、高さ制限値に17パーセン
トを加える。
ステップ1310で、2個の直列NMOSのサイズを大きくなる(即ち、N_2
sの50パーセント増)ように初期化する。また、1個の直列PMOSのサイズ
を小さく(=ba)なるように初期化する。次に、サブルーチンopt_np()を使用
して、SPICEを反復的に実行し且つデバイスサイズを調整することにより2
入力NANDの遅延を最小化する。これに続き、ステップ1314で高さ制限に
7パーセントを加える。
ステップ1316で、サブルーチンopt_np()を使用して、反復的
にSPICEを実行し且つデバイスサイズを調整することにより2入力NORの
遅延を最小化する。これに続き、ステップ1318で、新たなデバイスサイズに
よりスタンダードセル高さを計算し、高さ制限値として使用する。
ステップ1320で、サブルーチンopt_n_or_p()を使用して、反復的にSPI
CEを実行し且つデバイスサイズを調整することにより3入力NANDの遅延を
最小化する。これに続き、ステップ1322で、新たなデバイスサイズによりス
タンダードセル高さを計算し、高さ制限値として使用する。
ステップ1324で、サブルーチンopt_n_or_p()を使用して、反復的にSPI
CEを実行し且つデバイスサイズを調整することにより3入力NORの遅延を最
小化する。これに続き、ステップ1326で、3個の直列N_3s電流及び3個の直
列P_3sを見出す。それから、これらの値を使用し、ステップ1328で計算値の
最小値並びにNMOS及びPMOSについて使用可能な個々の空間としてN_4s
及びP_4sの値を確立する。最後に、ステップ1330で静的NMをチェックする
。
上記は本発明の好適な実施形態の詳細な説明であるが、当業者により行われ、
且つ本発明の視野の範囲内にある本発明の多くの代替的実施形態が存在する。従
って、本発明は添付の請求の範囲によって決定される。DETAILED DESCRIPTION OF THE INVENTION Standard Cell Library Optimization Method and Apparatus Technical field The present invention relates to a method and apparatus for designing an integrated circuit, and more particularly, to a method and apparatus for optimizing a standard cell library used for designing an integrated circuit. Background of the Invention Digital standard cells are used in various integrated systems that use integrated circuits (ICs) made from standard cell libraries. These systems have wide variability in design requirements. In some systems, power consumption is significant, in other systems minimizing silicon area is important to reduce cost, and in some systems operating speed is a primary consideration. With the changing requirements of system design and the widespread use of digital standard cells, it is desirable to have a standard cell library that matches these particular needs. Previous optimizations of the standard cell library have focused on specific circuits and implementations. Typically, standard cell optimization has been limited to the design of buffers or inverter chains, which have been optimized to minimize power waste or signal delay. An example of low power optimization is "Energy Control and Accurate Delay Estimation in CMOS Buffer Design" by Sha Ma and Paul Franzon, IEEE Journal of Semiconductor Circuits, vol. 29, no. 9, pp. 1150-1153, 1994. September, 2005. SR. Vemura and AR. Thorbjornsen, "Variable Tape CMOS Buffers", IEEE Journal of Semiconductor Circuits, vol. 26, no. 9, pp. 1265-1269, September 1991, discusses examples of minimum delay buffer optimization. In fact, delay optimization efforts have primarily focused on the ratio of continuous stages, rather than the ratio of NMOS to PMOS. However, no references describe the benefits of providing a single optimization method and apparatus for any one of the selected parameter sets. Summary of the Invention According to one aspect, the present invention is a method for designing a set of device specifications for a library of standard cell elements used in integrated circuit fabrication. The method comprises the steps of: a) determining a process technique for creating an element; and b) determining an optimization criterion from a predetermined set of optimization criteria. The method further comprises c) specifying a set of library specific knowledge. The method further comprises: d) processing the set of library-specific knowledge as process technology and optimization criteria, and creating a set of device specifications therefrom. According to another aspect, the present invention is a method for designing a set of device specifications for a library of CMOS standard cell elements used in integrated circuit fabrication. Each CMOS standard cell element includes an N-type transistor and a P-type transistor. The method comprises the steps of: a) determining a process technique for creating a CMOS standard cell element; and b) determining one optimization criterion from a predetermined set of optimization criteria. The method further comprises c) specifying a set of library specific knowledge. The method also includes d) processing the set of library-specific knowledge as process technology and optimization criteria, and then generating a set of device specifications. According to yet another aspect, the present invention is an apparatus for designing a set of device specifications for a library of standard cell elements used in integrated circuit fabrication. The apparatus includes an input circuit that determines a process technique for creating the element, and an input circuit that determines one optimization criterion from a predetermined set of optimization criteria. The method further comprises storage for specifying a specific set of knowledge of the library. The apparatus further comprises processing circuitry for processing the set of library-specific knowledge as process technology and optimization criteria, and then generating a set of device specifications. BRIEF DESCRIPTION OF THE FIGURES FIG. 1 is a block diagram of the method of the present invention. FIG. 2 is a flowchart of a method for designing a set of low power consumption device specifications. FIG. 3 is a more detailed flowchart of the method for designing the set of low power consumption device specifications shown in FIG. FIG. 4 is a flowchart of a method for checking a noise margin of a combination of logic gates. FIG. 5 shows the correct arrangement of FIGS. 5A and 5B. FIG. 5A is a first part of a flowchart of a method for checking a noise margin of a specific logic gate. FIG. 5B is a second part of a flowchart of a method for checking the noise margin of a particular logic gate. FIG. 6 shows the correct arrangement of FIGS. 6A and 6B. FIG. 6A is a first part of a flowchart of a method for minimizing the area of a logic gate. FIG. 6B is a second part of a flowchart of a method for minimizing the area of a logic gate. FIG. 7 shows the correct arrangement of FIGS. 7A and 7B. FIG. 7A is a first part of a flowchart of a method for optimizing the NMOS and PMOS widths of a logic gate. FIG. 7B is a second part of a flowchart of a method for optimizing the NMOS and PMOS widths of a logic gate. FIG. 8 shows the correct arrangement of FIGS. 8A and 8B. FIG. 8A is a first part of a flowchart of a method for optimizing the ratio of the NMOS width to the PMOS width of a given logic gate. FIG. 8B is a second part of a flowchart of a method for optimizing the ratio of the NMOS width to the PMOS width of a given logic gate. FIG. 9 shows the correct arrangement of FIGS. 9A and 9B. FIG. 9A is a first part of a flowchart of a method for optimizing the total width of a given logic gate. FIG. 9B is a second part of a flowchart of a method for optimizing the total width of a given logic gate. FIG. 10 is a flowchart of a method for optimizing either the NMOS width or the PMOS width of a predetermined logic gate. FIG. 11 shows the correct arrangement of FIGS. 11A and 11B. FIG. 11A is a first part of a flowchart of a method for optimizing the PMOS width of a given logic gate. FIG. 11B is a second part of a flowchart of a method for optimizing the PMOS width of a given logic gate. FIG. 12 shows the correct arrangement of FIGS. 12A and 12B. FIG. 12A is a first part of a flowchart of a method for optimizing the NMOS width of a given logic gate. FIG. 12B is a second part of a flowchart of a method for optimizing the NMOS width of a given logic gate. FIG. 13 shows the correct arrangement of FIGS. 13A and 13B. FIG. 13A is a first part of a flowchart of a method for maximizing the speed of a given logic gate. FIG. 13B is a second part of a flowchart of a method for maximizing the speed of a given logic gate. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION FIG. 1 is a block diagram of the method of the present invention. Method 100 includes a step 102 of determining a process technique for fabricating a desired component. The method 100 also includes determining 104 one optimization criterion from the predetermined set of optimization criteria. All standard cell compilers of the present invention use one of three sets of transistor sizes. The three sets of transistor sizes are each optimized for low power, high speed or minimum area design, thereby creating a standard cell library that is optimized accordingly. For example, the height of a standard cell is a function of transistor size. This provides a means to determine area cost when performing device size optimization. Each set of transistor sizes consists of four NMOS and four PMOS sizes. The four sizes are selected based on the number of transistors connected in series. For example, a two-input NAND gate has two NMOS devices in series. Thus, such a gate would have a transistor size selected for two NMOS transistors in series. The notation used for this transistor size is N_2s. The same two-input NAND gate has one PMOS device in series. Thus, such a gate would use the transistor size, P_1s, selected for a single PMOS transistor in series. The goal of transistor size optimization is to determine the four NMOS and four CMOS transistor sizes that optimize the standard cell library to achieve minimum power waste, maximum operating speed, or minimum silicon area. . The details of the three optimization procedures are described below. Referring again to FIG. 1, size determination program 106 receives the results of steps 102 and 104 and information from library specific knowledge database 108. As will be described in more detail below, the sizing program 106 then processes the set of library-specific knowledge as a function of process technology and optimization criteria to create a set of device specifications 110. Subsequently, the device specification set 110 is made available to the parameterized library compiler 112, which compiles the desired standard cell elements and creates the resulting library 114. FIG. 2 is a flowchart of a method for designing a set of low power consumption device specifications. In integrated circuits, power waste is minimized by reducing capacitance where practical. This is done with the minimum device size, subject to a lower limit given by the setting of the minimum noise margin for the gate. Noise margin limitations ensure that standard cells have sufficient immunity to power supply noise. Noise margin is defined as the difference between the logic threshold of the gate and the power supply. The logic threshold of the gate is evaluated with the output of the inverting gate shorted to all inputs. Logic thresholds are evaluated for all gates in the standard cell library over temperature, power supply and process changes. The transistor size is adjusted when the gate fails to meet noise margin requirements and the process is restarted. This is repeated until all gates pass the noise margin requirements. Priorities for reducing transistor size are included in the process, but transistor size increases when required to meet noise margin requirements. In addition, the output rise and fall times for a gate are limited by limiting the maximum capacitance a single gate can drive. The maximum capacitance limits the through current flowing from the power supply through the PMOS and NMOS devices to the ground plane. FIG. 2 is a flowchart of a method for designing a set of low power consumption device specifications. The method 200 includes an initialization step 202 in which each of the four NMOS and four PMOS transistor sizes is set to ba, which is the minimum size allowed by the design rules of the particular process technology. Thereafter, at step 204, the static noise margin (NM) is checked by executing a subroutine Check (), which subroutine Check () will be described in more detail later. FIG. 3 is a more detailed flowchart of the method 200 for designing a set of low power consumption device specifications shown in FIG. Method 200 begins by initializing a minimum size device (step 202). Next, the static NM of the NOR gate constituted by the smallest size device is tested (step 300). If the NM of the NOR gate is too low, increase the size of the PMOS device (step 302) and execute step 300 again. Eventually, the NM of the NOR gate reaches a sufficiently high level and the method 200 proceeds to step 308. In step 308, the NM of the NAND gate is tested. If it is too high, method 200 proceeds to step 310, where the size of the NMOS device is increased and step 308 is performed again. Again, eventually the NM of the NAND gate will not be too high, at which point the method 200 determines the logic threshold of the composite gate, which is various combinations of NMOS and PMOS sizes (step 312). If the composite gate NM is outside the range bounded by the predetermined value, the method 200 determines whether the NM is too low (step 314). If so, the size of the PMOS device is increased and the method 200 returns to step 312. If the NM is not too low, it must be too high, in which case the method proceeds to step 318, where the size of the NMOS device is increased and step 312 is re-executed. If the value of NM is within the determined range, the method 200 proceeds to step 304 where it is determined whether there is a change for the composite gate. If there are changes, the method returns to step 300 and starts the process again. If there is no change in the composite gate, the method moves to stop step 306 and ends. FIG. 4 is a flowchart of a method for checking a noise margin of a combination of logic gates. The method 400 begins at step 402, which determines whether the PMOS and NMOS devices are changing when using the method 400. Initially, the PMOS and NMOS devices are changing, so the method 400 moves to step 404, where the four PMOS size values are changed using the subroutine Check NM_gate (), which will be described in greater detail below. Check the NOR gate by evaluating the effect. Next, the method 400 proceeds to step 408, where the NAND gate is checked again by evaluating the effect of changing the four NMOS gate size values using the subroutine Check NM_gate (). Finally, the method 400 moves to step 410, where again the subroutine Check NM_gate () is used to change three of the four NMOS sizes and three of the four PMOS sizes. Check the composite gate by evaluating the effect of causing it. The method 400 then returns to step 402 where it determines any changes for PMOS and NMOS. If there is no change, the method 400 moves to the return step 406. FIG. 5 shows the correct arrangement of FIGS. 5A and 5B. FIG. 5A is a first part of a flowchart of a method for checking a noise margin of a specific logic gate. FIG. 5B is a second part of a flowchart of a method for checking the noise margin of a particular logic gate. The method 500 begins at step 502, where the NMOS and PMOS sizes, minimum NMOS and PMOS step sizes, and logic thresholds LTmin and LTmax are set. After the method 500 proceeds to step 504, the logic threshold is compared with the current logic threshold values LTmin and LTmax. If the logic threshold is not too large or too small, the method 500 proceeds to step 506, where the values of the NMOS and PMOS sizes are established, and then to step 508, from which the subroutine returns. If the logic threshold is too large or too small, the method 500 proceeds to step 510, where the logic threshold is recalculated for high and low supply voltages, P and N intensity combinations, and minimum and maximum temperatures. After moving to step 512, the method 500 then compares the logic threshold to the threshold. If the logic threshold is too high, the method moves to comparison step 514 to determine if the logic threshold is too high. If so, the method 500 proceeds to step 516, where the new size of the PMOS is compared to the minimum allowable PMOS size. If the new size of the PMOS is larger than the minimum allowable PMOS size, the size of the increasing change in the PMOS size is reduced by a factor of 2 (step 520). Otherwise (step 524), the size of the increase in NMOS size is reduced by a factor of two. If the size of the increase in PMOS size has been reduced by a factor of two, the method proceeds to step 522, where the current PMOS size is reduced by the new value of the increase. On the other hand, if the size of the increase in the NMOS size is reduced by a factor of 2, the current NMOS size is increased by the new value of the increase in the PMOS size. At step 518 of the method 500, the logic threshold is tested. If it is too low, the method 500 moves to step 528. At this point, a test similar to that performed for the current value of the PMOS size in steps 516, 520, 522 and 526 is performed for the current value of the NMOS size. Eventually, method 500 reaches step 534, where the NM is reevaluated, and the method returns to step 504. Minimum area optimization is designed to achieve the fastest cells possible within the minimum area. The device is sized to meet the minimum standard cell height. In addition to checking the minimum noise margin, it controls the ratio between the gate output rise time and output fall time. To achieve this goal, an initial set of transistor sizes is selected taking into account standard cell height requirements. This initial set of transistor sizes is further optimized by using iterative SPICE simulations to minimize gate delay without increasing standard cell height. In this process, the maximum speed gate is obtained within the minimum layout area. The initial set of transistor sizes uses the current ratios specified in Table 1, "Initial Current Ratio for Area Optimization", to make the rise and fall times of the various gates approximately equal. It has been empirically found that these sets of currents provide a good trade-off between area and performance. These sizes are then used to calculate the standard cell height. This initial set of devices is then further optimized using a sequence similar to the fast optimization, with the exception that the initial standard cell height is not increased. Optimization is performed on the set of inverters, NAND and NOR gates shown in Table 2, "Minimum Area Gate Optimization Step". This process establishes the set of transistor sizes required for standard cell library optimization for minimum area. The optimization determines one, two and three series NMOS and PMOS transistor sizes. The four series NMOS and PMOS transistor sizes are set such that the four series devices provide the same pull-up and pull-down current as the three series transistor sizes. However, the size of the four series devices is limited to the maximum NMOS and PMOS device width, as calculated by the standard cell height routine in this step. Next, check the ratio of the pull-up and pull-down currents for the inverter, NAND and NOR gates. The ratio of this pull-up and pull-down current is limited. If possible, reduce the NMOS and PMOS transistor width; otherwise, increase the inverse (PMOS / NMOS) transistor size as needed. The final static noise margin check described for low power optimization ensures that the resulting standard cell library meets the same noise margin requirements as low power optimized cells. FIG. 6 shows the correct arrangement of FIGS. 6A and 6B. FIG. 6A is a first part of a flowchart of a method for minimizing the area of a logic gate. FIG. 6B is a second part of a flowchart of a method for minimizing the area of a logic gate. In the method 600, step 602 sets minimum NMOS and PMOS widths. Next, in step 604, the method 600 sizes the other NMOS device to match the N_1s pull-down current and the other PMOS device to match the P_1s pull-down current. Moving to step 606, the method 600 establishes a value HeightLimit for the standard cell height. This height is increased by 7% in step 608. In step 610, the minimum NMOS width is set to ba, and the same is applied to the minimum PMOS width. The series current of a single device of size min_n is determined in step 612, and then the maximum NMOS width is increased by two series widths needed to provide a current 33% greater than the series current of a single device of size min_n. Set equal to In step 616 of method 600, N_1s is set to min_n, N_2s is set to Max_n / 2, and N_3s is determined from these two values. At step 618, the series current of a single device of size min_p is determined. The maximum PMOS width is then set to the value of the three series widths required to provide a single device series current of size min_p (step 620). At step 622, the values of P_1s, P_2s, and P_3s are established. At step 624, the HeightLimit value is set to the standard cell height for the previous minimum and the value set at step 622. At step 626, the delay for the two-input NAND is minimized by iteratively using SPICE and adjusting the device size using the subroutine opt_np () discussed later. At step 628, the delay for the inverter is minimized by iteratively using SPICE and adjusting the device size. At step 630, the delay for the two-input NOR is minimized by iteratively using SPICE and adjusting the device size. At step 632, the delay for the 3-input NAND is minimized by iteratively using SPICE and adjusting the device size. Finally, at step 634, SPICE is used iteratively to minimize the delay for the 3-input NOR by adjusting the device size. Next, in step 636, three series currents N_3s and P_3s are determined. At step 638, the values N-4s and P-4s are determined by individually comparing the appropriate currents with the minimum space available for NMOS and PMOS. Step 640 checks the static NM, and step 642 checks that the rise and fall times are within a factor of three of each other. FIG. 7 shows the correct arrangement of FIGS. 7A and 7B. FIG. 7A is a first part of a flowchart of a method for optimizing the NMOS and PMOS widths of a logic gate. FIG. 7B is a second part of a flowchart of a method for optimizing the NMOS and PMOS widths of a logic gate. At step 702 of the method 700, the parameters are initialized. Next, the N-to-P ratio is optimized by using a subroutine opt_ratio () discussed later. The method 700 then moves to step 706, where the height is compared to a height limit. If the height is too high, the method 700 moves to step 708, where the total device width is optimized using the subroutine opt_total () with the reduced parameters. The subroutine opt_total () will be discussed later. The method 700 then moves to step 710. On the other hand, if the height does not exceed the height limit (step 706), the total device width is optimized using the subroutine opt_total () with the increased parameter. Again, the height is compared to the height limit (step 710). If the height is not greater than the height limit, the method 700 proceeds to step 714, where the N to P ratio is optimized using the subroutine opt_ratio () with the increased parameters. On the other hand, if the height is greater than the height limit, the method 700 proceeds to step 718, where the N: P ratio is optimized using the subroutine opt_ratio () with the reduced parameter. Regardless, the method 700 then proceeds to step 716, where the best delay within height limits is determined through this subroutine from a previous iteration. If the MatchCurrents parameter is set, the others are resized to match the PMOS and NMOS currents. At step 722 of the method 700, a check is made for a better limit if there are no hard limits specified as parameters. If there is a better restriction, the method 700 moves to step 724, where the percentage delay improvement is compared to the square of the percentage increase in height. If the percentage delay improvement is less than the square of the percentage increase in height, the method 700 proceeds to step 726, where the device size is approved. Regardless, if MatchCurrents is set, the other devices are resized at step 728 to match the current. FIG. 8 shows the correct arrangement of FIGS. 8A and 8B. FIG. 8A is a first part of a flowchart of a method for optimizing the ratio of the NMOS width to the PMOS width of a given logic gate. FIG. 8B is a second part of a flowchart of a method for optimizing the ratio of the NMOS width to the PMOS width of a given logic gate. In the method 800, step 802 determines whether the P / N ratio has converged. If not, the subroutine returns (step 804). Otherwise, the standard cell height is recalculated to establish a standard load capacity (step 806). Next, in step 808, the delay through the gate of the designated PMOS and NMOS size is calculated. At step 810, two evaluations are made. One evaluation is based on a comparison that determines whether the standard cell height is less than the height limit. If so, and if the delay has been improved, the method 800 proceeds to step 824. The other evaluation is used when there are no hard limits and the percentage delay improvement is greater than the square of the percentage increase in height. Again, if so, method 800 proceeds to step 824. If these two possibilities are not met, the method 800 moves to step 812, where the p-step size is compared to the smallest possible value. If it is too small, the method 800 establishes a p step size at step 814 and proceeds to step 816. Otherwise, the P / N ratio converges (step 818) and the method moves to step 816. At step 816, the direction in which the P / N ratio changes is determined. If so, the value of PMOS is decreased and the value of NMOS is increased (step 818). Then, the method 800 moves to step 820. Otherwise, increase the value of PMOS and decrease the value of NMOS, thereby increasing the direction of change. The method 800 then goes to step 820. Step 820 resizes the other device to match the NMOS and PMOS currents and then returns to step 802. If the test at step 810 passes, the method 800 proceeds to step 824, where the direction of change is also evaluated. If it is increasing, increase the PMOS value and decrease the NMOS value, then the method moves to step 820. If the direction of change is decreasing, the method 800 proceeds to step 826, where the PMOS value is decreased and the NMOS value is increased, and the method proceeds to step 820. FIG. 9 shows the correct arrangement of FIGS. 9A and 9B. FIG. 9A shows a first part of a flowchart of a method for optimizing the total width of a given logic gate. FIG. 9B shows a second part of a flowchart of a method for optimizing the total width of a given logic gate. In step 902 of the method, it is determined whether the value of the total width has converged. If not, the method 900 moves to the return step 904. If so, the method 900 moves to step 906, where the standard cell height and standard load capacity are set. At step 908, the delay through the gate type having the size of PMOS / NMOS is calculated, and the method 900 proceeds to step 910. At step 910, two evaluations are made. One evaluation is based on a comparison that determines whether the standard cell height is less than the height limit. If so, and if the delay has been improved, the method 900 moves to step 926. The other evaluation is used when there is no hard limit and the percentage delay improvement is greater than the square of the percentage increase in height. Again, if so, method 900 proceeds to step 926. If these possibilities are not taken, the method 900 proceeds to step 912, where the p-step size is compared to the smallest possible value. If it is too small, the method 900 decreases the p step size at step 914 and proceeds to step 916. Otherwise, the total width converges (step 918) and the method moves to step 916. At step 916, the direction of change of the total width is determined. If so, the value of the PMOS is decreased and the value of the NMOS is increased (step 920). Then, the method 900 moves to step 922. If not, the value of PMOS is increased and the value of NMOS is decreased, thereby increasing the direction of change. The method 900 also passes through step 922. Step 922 resizes the other device to match the NMOS and PMOS currents and then returns to step 902. If the test at step 910 passes, the method 900 proceeds to step 926, where the direction of change of the total width is also evaluated. If it is increasing, the PMOS value is increased and the NMOS value is decreased, then the method 900 moves to step 922. If the direction of change is decreasing, the method 900 proceeds to step 928, where the PMOS value is decreased and the NMOS value is increased, and the method 900 proceeds to step 922. FIG. 10 is a flowchart of a method for optimizing either the NMOS width or the PMOS width of a predetermined logic gate. In step 1002, parameters are initialized. At step 1004, a switch is made depending on whether the MOS is an NMOS. Otherwise, optimize the PMOS size using opt_p (), discussed later. If so, optimize the NMOS size using opt_n (), discussed below. In any case, the best delay within the height limit is determined from all previous runs, and the method moves to step 1012. Step 1012 determines if there is a better delay beyond the height limit, assuming that there is no height limit. If a better delay exists, the method 1000 proceeds to step 1014, where the percentage delay improvement is compared to the square of the percentage increase in height. If the percentage delay improvement is greater than the square of the percentage increase in height, the method 1000 proceeds to step 1018, where it approves the device size for this pass through the subroutine. The method 1000 then moves to step 1016. If the percentage delay improvement is not greater than the square of the percentage increase in height, the method 1000 simply proceeds to step 1016. FIG. 11 shows the correct arrangement of FIGS. 11A and 11B. FIG. 11A is a first part of a flowchart of a method for optimizing the PMOS width of a given logic gate. FIG. 11B is a second part of a flowchart of a method for optimizing the PMOS width of a given logic gate. At step 1102 of method 1100, it is determined whether the PMOS size has converged. If it has not converged, the method 1100 proceeds to return step 1104. If it converges, method 1100 proceeds to step 1106, where the standard cell height and standard load capacity are set. At step 1108, the delay through the gate type having the size PMOS is calculated, and the method 1100 proceeds to step 1110. At step 1110, two evaluations are made. One evaluation is based on a comparison that determines whether the standard cell height is less than the height limit. If so, and if the delay has been improved, method 1100 proceeds to step 1126. The other evaluation is used when there is no hard limit and the percentage delay improvement is greater than the square of the percentage increase in height. Again, if so, the method 1100 moves to step 1126. If these two possibilities are not taken, the method 1100 proceeds to step 1112, where the p step size is compared to the smallest possible value. If it is too small, the method 1100 decreases the p step size at step 1114 and proceeds to step 1116. Otherwise, the PMOS size converges (step 1118) and the method moves to step 1116. In step 1116, the change direction of the PMOS size is determined. If so, the PMOS value is decreased (step 1120). Then, the method 1100 moves to step 1122. Otherwise, increase the PMOS value, thereby increasing the direction of change. The method 1100 then proceeds to step 1122. Step 1122 does not make a resize decision for another device, but returns to step 1102. If the test at step 1110 passes, the method 1100 proceeds to step 1126, where the direction of change of the total width is also evaluated. If so, the PMOS value is increased, and then the method 1100 proceeds to step 1122. If the direction of change is decreasing, method 1100 proceeds to step 1128, where the PMOS value is decreased, and method 1100 proceeds to step 1122. FIG. 12 shows the correct arrangement of FIGS. 12A and 12B. FIG. 12A is a first part of a flowchart of a method for optimizing the NMOS width of a given logic gate. FIG. 12B is a second part of a flowchart of a method for optimizing the NMOS width of a given logic gate. At step 1202 of the method 1200, it is determined whether the NMOS size has converged. If it has not converged, the method 1200 moves to the return step 1204. If it converges, method 1200 proceeds to step 1206, where the standard cell height and standard load capacity are set. In step 1208, calculate the delay through the gate type with size NMOS, and the method 1200 moves to step 1210. At step 1210, two evaluations are made. One evaluation is based on a comparison that determines whether the standard cell height is less than the height limit. If so, and if the delay has been improved, the method 1200 moves to step 1226. The other evaluation is used when there is no hard limit and the percentage delay improvement is greater than the square of the percentage increase in height. Again, if so, the method 1200 moves to step 1226. If these two possibilities are not taken, the method 1200 proceeds to step 1212, where the n-step size is compared to the smallest possible value. If it is too small, the method 1200 reduces the n step size at step 1214 and proceeds to step 1216. Otherwise, the NMOS size converges (step 1218) and the method moves to step 1216. In step 1216, a change direction of the NMOS size is determined. If it is increasing, decrease the NMOS value (step 1220). The method 1200 then moves to step 1222. Otherwise, increase the NMOS value, thereby increasing the direction of change. The method 1200 then proceeds to step 1222. Step 1222 does not determine the resize of another device, but returns to step 1202. If the test at step 1210 passes, the method 1200 proceeds to step 1226, where the direction of change of the NMOS is also evaluated. If so, the NMOS value is increased, and then the method 1200 proceeds to step 1222. If the direction of change is decreasing, the method 1200 proceeds to step 1228, where the NMOS value is decreased, and the method 1200 proceeds to step 1222. The goal of fast optimization is to achieve a minimum gate delay without excessive area increase. Since the standard cell width does not change significantly with the device size, the area increase is determined by the cell height. To achieve this, the minimum standard cell height is calculated based on the minimum size NMOS and the minimum PMOS of 1 and 1.5 times. The standard cell height is allowed to increase to a nominal 25 percent increase of this minimum. The standard cell height is allowed to further increase beyond this 25% only if the speed increase exceeds the square of the height increase. The device size is calculated to fit this standard cell height using an iterative SPICE simulation that selects the optimal NMOS and PMOS transistor sizes to minimize gate delay. Gate delay is measured as the average of the input rise and fall delays for the three gates in series. Unused inputs are tied high for NAND gates and low for NOR gates. The load on each gate is the subsequent gate and the standard load. The standard load is the sum of the input delay of the four clocked inverters and the wiring capacitance determined by the standard cell height. This load changes as the device size is optimized and reflects the effect of the load capacitance as the device size changes. Optimization is performed on the set of NAND and NOR gates shown in Table 3, "Fast Gate Optimization Step", which determines the transistor size of that gate. Optimization by SPICE establishes the required one, two, and three series NMOS and PMOS transistor sizes to optimize the standard cell library for high speed operation. The four series NMOS and PMOS transistor sizes are set such that four series devices provide pull-up and pull-down currents equal to three series transistor sizes. However, the size of the four series devices is limited to the maximum NMOS and PMOS device width as calculated by the standard cell height routine of this step. The final static noise margin check ensures that the high-speed standard cell library meets the same noise margin requirements as low power optimized cells. FIG. 13 shows the correct arrangement of FIGS. 13A and 13B. FIG. 13A is a first part of a flowchart of a method for maximizing the speed of a given logic gate. FIG. 13B is a second part of a flowchart of a method for maximizing the speed of a given logic gate. In step 1302 of the method 1300, the minimum width of the NMOS is set to ba and the minimum width P_1s of the PMOS is set to 50% of ba. At step 1304, another NMOS device is sized to match the pull-down current N_1s, and another PMOS device is sized to match the pull-up current P_1s. Proceeding to step 1306, the height of the standard cell having the specified device size is calculated. Next, in step 1308, 17 percent is added to the height limit. At step 1310, the size of the two series NMOSs is initialized to be large (ie, a 50% increase in N_2s). In addition, initialization is performed so that the size of one series PMOS becomes small (= ba). Then, using the subroutine opt_np (), iteratively performs SPICE and adjusts the device size to minimize the delay of the 2-input NAND. Following this, step 1314 adds 7 percent to the height limit. At step 1316, the subroutine opt_np () is used to iteratively perform SPICE and adjust the device size to minimize the delay of the two-input NOR. Following this, in step 1318, the standard cell height is calculated with the new device size and used as the height limit. At step 1320, the subroutine opt_n_or_p () is used to iteratively execute SPICE and adjust the device size to minimize the delay of the 3-input NAND. Following this, in step 1322, the standard cell height is calculated with the new device size and used as the height limit. At step 1324, the subroutine opt_n_or_p () is used to iteratively perform the SPICE and adjust the device size to minimize the delay of the 3-input NOR. Following this, step 1326 finds three series N_3s currents and three series P_3s. These values are then used to establish, at step 1328, the minimum of the calculated values and the values of N_4s and P_4s as the individual spaces available for NMOS and PMOS. Finally, in step 1330, the static NM is checked. While the above is a detailed description of the preferred embodiments of the present invention, there are many alternative embodiments of the present invention made by those skilled in the art and within the scope of the present invention. Accordingly, the invention is defined by the appended claims.
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 ジェンセン,ジョーン,エス.
アメリカ合衆国,98407 ワシントン州,
タコマ,エヌ.27ティーエイッチ ストリ
ート 3423
(72)発明者 ロスマン,トーマス,エフ.
アメリカ合衆国,98029 ワシントン州,
イザクアー,エス.イー.45ティーエイッ
チ ウェイ 24609────────────────────────────────────────────────── ───
Continuation of front page
(72) Inventor Jensen, Joan, S.
United States of America, 98407 Washington,
Tacoma, N. 27 Tea H Story
3423
(72) Inventor Rossman, Thomas, F.
United States of America, 98029 Washington,
Isaqua, S. E. 45 tee
Chi Wei 24609