(57)【特許請求の範囲】
【請求項１】
電子システムを用いてセルの自動配置を行う半導体集積回路装置の設計方法であって、
配置プログラムによるセルの配置処理中に、予め作成したタイミング最適化後の遅延見積もりおよび面積見積もりの値が登録されたタイミング・面積見積もり用ライブラリを用いて、前記遅延見積もりおよび前記面積見積もりの値からタイミング制約を満たしながら配線混雑が発生しないように前記セルを配置することを特徴とする半導体集積回路装置の設計方法。
【請求項２】
請求項１記載の半導体集積回路装置の設計方法において、
前記タイミング・面積見積もり用ライブラリは、
配置前のタイミングが異なるパスとなる長配線用見積もりライブラリ、多ファンアウト用見積もりライブラリ、および多段ロジック用見積もりライブラリからなることを特徴とする半導体集積回路装置の設計方法。
【請求項３】
請求項２記載の半導体集積回路装置の設計方法において、
前記長配線用見積もりライブラリは、
セルの配線距離を変化させ、前記セルの駆動能力変更、またはバッファリングにより距離に応じた遅延値と、前記セルの面積とを見積もったライブラリからなることを特徴とする半導体集積回路装置の設計方法。
【請求項４】
請求項２記載の半導体集積回路装置の設計方法において、
前記多ファンアウト用見積もりライブラリは、
ファンアウト数を変化させ、分割に必要なバッファ木の段数とバッファ数を見積もり、前記バッファ木の段数から見積もった遅延値、および前記バッファ数から見積もった面積を見積もったライブラリからなることを特徴とする半導体集積回路装置の設計方法。
【請求項５】
請求項２記載の半導体集積回路装置の設計方法において、
前記多段ロジック用見積もりライブラリは、
配線の負荷を略ゼロとしてタイミングクリティカルなパス群を抽出し、使用周波数より要求周波数を厳しくして最適化した際の遅延値、および面積を見積もったライブラリからなることを特徴とする半導体集積回路装置の設計方法。
【請求項６】
請求項３記載の半導体集積回路装置の設計方法において、
前記長配線用見積もりライブラリは、
配線距離に対して速度の逆数が最小となるポイントにバッファリングされることを想定して遅延値、および面積を見積もったライブラリからなることを特徴とする半導体集積回路装置の設計方法。
【請求項７】
請求項４記載の半導体集積回路装置の設計方法において、
前記多ファンアウト用見積もりライブラリは、
配線距離に対して速度の逆数が最小となるポイントにバッファリングされることを想定して遅延値、および面積を見積もったライブラリからなることを特徴とする半導体集積回路装置の設計方法。
【請求項８】
請求項６記載の半導体集積回路装置の設計方法において、
配線距離に対して速度の逆数が最小となる前記ポイントを、２以上の異なるバッファの駆動能力毎に求め、前記長配線用見積もりライブラリは、前記２以上の異なるバッファの駆動能力毎に求められた速度の逆数が最小となるポイントに基づいて、遅延値、および面積をそれぞれ見積もることを特徴とする半導体集積回路装置の設計方法。
【請求項９】
請求項７記載の半導体集積回路装置の設計方法において、
配線距離に対して速度の逆数が最小となる前記ポイントを、２以上の異なるバッファの駆動能力毎に求め、前記多ファンアウト用見積もりライブラリは、前記２以上の異なるバッファの駆動能力毎に求められた速度の逆数が最小となるポイントに基づいて、遅延値、および面積をそれぞれ見積もることを特徴とする半導体集積回路装置の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置の設計技術に関し、特に、半導体集積回路装置におけるレイアウト処理の最適化処理に有効な技術に関する。
【背景技術】
【０００２】
半導体集積回路装置のレイアウト設計技術としては、たとえば、自動レイアウトを実行する自動レイアウト設計ツール、いわゆるＥＤＡ（Electronic Design Automation）ツールを用いることが広く知られている。
【０００３】
自動レイアウト設計ツールは、セルやマクロセルの接続情報（ネットリスト＝論理回路設計結果）を入力すると、半導体チップ上のセルやマクロセルの位置を自動的に決めて配置し、その間を自動的に結ぶ処理などを行う。
【０００４】
この種のＥＤＡツールを用いたセル配置の最適化技術としては、たとえば、図１９に示すように、初期のセル配置ではタイミングを考慮せず、配置後のタイミング最適化結果より、配置位置を改善したり、フロアプラン変更を行うものや、図２０に示すように、初期状態でタイミングを計算し、初期状態におけるクリティカルタイミングパスを近接配置するように配置を行い、最適化後、タイミングが収束しない場合にフロアプランの変更を行うものなどが知られている。
【０００５】
図１９、および図２０に示したセル配置の最適化技術において、与えられる回路は、たとえば、フリップフロップとパスとで構成された回路（図２１の左側、および図２２の左側にそれぞれ示す）である。ここで、パスとは組み合わせ回路からなっている信号経路を示す。また、フリップフロップと組み合わせ回路を構成する要素をセルと呼ぶ。
【０００６】
セル配置の最適化とは、最小配線長で配線可能となり、かつ、次のステップのタイミング最適化にてパスで接続されたフリップフロップ間に与えられた、タイミング制約を満たすことができるようにセル位置を決めることである。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、上記のような半導体集積回路装置の設計技術では、次のような問題点があることが本発明者により見い出された。
【０００８】
図１９に示したセル配置の最適化手法では、配線可能にすることのみを考慮するため、たとえば、図２１の右側に示すように、次ステップにおけるタイミング最適化処理にてタイミング制約を満たすことができないタイミング違反が発生したり、面積が増大してしまい、配線不可能となってしまう恐れが生じる。
【０００９】
また、タイミング最適化後に配置改善しても、別のパスでのタイミングを考慮できないため、別の箇所にてタイミング違反が発生したり、面積増大が発生してしまうという問題がある。
【００１０】
さらに、図１９に示したように、タイミング最適化後の配置改善においてもタイミング制約を満たさない場合は、セル配置可能箇所の形状（フロアプラン）変更を行う必要があり、設計期間の増大を招いてしまうことになる。
【００１１】
一方、図２０に示したセル配置の最適化手法の場合には、図２２に示すように、タイミング制約を満たすことが困難なパス（以下、クリティカルパスという）を予め求めておき、それらクリティカルパス中にあるセル（フリップフロップを含む）近接配置することで、次のステップのタイミング最適化にてタイミング制約を満たすことを試みるが、定めたクリティカルパスが最適化後にクリティカルパスとならず、異なったパスがクリティカルとなる場合がある。
【００１２】
このため、図２２の右側に示すように、タイミング最適化が容易であるにも拘わらず、近接配置され配線混雑が発生したり、タイミング最適化前では、比較的、タイミング制約を容易に満たすとされたパスが、離れて配置され、タイミング最適化処理にて、タイミング制約を満たすことができなくなるという問題が発生する。この場合、図２０に示すように、フロアプラン変更が必要となるために設計期間の増大などを招いてしまうことになる。
【００１３】
本発明の目的は、セルの配置処理において、タイミング最適化後のタイミング、および面積を見積もることにより、タイミング最適化後のセルの配置変更を大幅に低減し、半導体集積回路装置のレイアウト設計にかかる期間を大幅に短縮する技術を提供することにある。
【００１４】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１６】
本発明は、電子システムを用いてセルの自動配置を行う半導体集積回路装置の設計方法であって、配置プログラムによるセルの配置処理中に、予め作成したタイミング、および面積を見積もるタイミング・面積見積もり用ライブラリを用いてタイミング最適化後のタイミング制約、および面積増加をそれぞれ見積もり、タイミング制約を満たしながら配線混雑が発生しないようにセルを配置するものである。
【００１７】
また、本発明は、前記タイミング・面積見積もり用ライブラリが、配置前のタイミングが異なるパスとなる長配線用見積もりライブラリ、多ファンアウト用見積もりライブラリ、および多段ロジック用見積もりライブラリからなるものである。
【００１８】
さらに、本発明は、前記長配線用見積もりライブラリが、セルの配線距離を変化させ、セルの駆動能力変更、またはバッファリングにより距離に応じた遅延値と、セルの面積とを見積もったライブラリからなるものである。
【００１９】
また、本発明は、前記多ファンアウト用見積もりライブラリが、ファンアウト数を変化させ、分割に必要なバッファ木の段数とバッファ数を見積もり、該バッファ木の段数から見積もった遅延値、および該バッファ数から見積もった面積を見積もったライブラリからなるものである。
【００２０】
さらに、本願のその他の発明の概要を簡単に示す。
【００２１】
本発明は、前記多段ロジック用見積もりライブラリが、配線の負荷を略ゼロとしてタイミングクリティカルなパス群を抽出し、使用周波数より要求周波数を厳しくして最適化した際の遅延値、および面積を見積もったライブラリからなるものである。
【００２２】
また、本発明は、前記長配線用見積もりライブラリが、配線距離に対して速度の逆数が最小となるポイントにバッファリングされることを想定して遅延値、および面積を見積もったライブラリからなるものである。
【００２３】
さらに、本発明は、前記多ファンアウト用見積もりライブラリが、配線距離に対して速度の逆数が最小となるポイントにバッファリングされることを想定して遅延値、および面積を見積もったライブラリからなるものである。
【００２４】
また、本発明は、前記配線距離に対して速度の逆数が最小となるポイントを、２以上の異なるバッファの駆動能力毎に求め、前記長配線用見積もりライブラリは、２以上の異なるバッファの駆動能力毎に求められた速度の逆数が最小となるポイントに基づいて、遅延値、および面積をそれぞれ見積もるものである。
【００２５】
さらに、本発明は、前記配線距離に対して速度の逆数が最小となるポイントを、２以上の異なるバッファの駆動能力毎に求め、前記多ファンアウト用見積もりライブラリは、２以上の異なるバッファの駆動能力毎に求められた速度の逆数が最小となるポイントに基づいて、遅延値、および面積をそれぞれ見積もるものである。
【発明の効果】
【００２６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２７】
（１）タイミング最適化後におけるセルの大幅な配置変更を不要とすることができるので、半導体集積回路装置におけるレイアウト設計を効率よく行うことができる。
【００２８】
（２）上記（１）により、半導体集積回路装置の設計期間を短縮することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施の形態によるセルの初期配置処理の一例を示した説明図である。
【図２】図１のセルの初期配置処理に用いられるタイミング・面積見積もり用ライブラリ作成時におけるバッファリング箇所の一例を示す説明図である。
【図３】図２のタイミング・面積見積もり用ライブラリを構成する長配線用見積もりライブラリの作成の一例を示す説明図である。
【図４】図３に示した長配線用見積もりライブラリの作成における詳細な説明図である。
【図５】図２のタイミング・面積見積もり用ライブラリを構成する多ファンアウト用見積もりライブラリの作成の一例を示す説明図である。
【図６】図５に示した多ファンアウト用見積もりライブラリの作成における詳細な説明図である。
【図７】図２のタイミング・面積見積もり用ライブラリを構成する多段ロジック用見積もりライブラリの作成の一例を示す説明図である。
【図８】図７に示した多段ロジック用見積もりライブラリ作成の一例を示す詳細な説明図である。
【図９】図７に示した多段ロジック用見積もりライブラリ作成の他の例を示す詳細な説明図である。
【図１０】図３の長配線用見積もりライブラリをセルの配置プログラムに組み込み、長配線のタイミングと面積を見積もりながらセルの配置を行う処理の一例を示す説明図である。
【図１１】図４の多ファンアウト用見積もりライブラリをセルの配置プログラムに組み込み、多ファンアウトのタイミングと面積を見積もりながらセルの配置処理を行う際の一例を示した説明図である。
【図１２】一般的な多段論理におけるタイミング違反の一例を示す説明図である。
【図１３】図７の多段ロジック用見積もりライブラリをセルの配置プログラムに組み込み、論理段数が多いパスについてタイミングと面積を見積もりながら配置処理を行う一例を示した説明図である。
【図１４】低駆動能力セルと高駆動能力セルとによる速度の逆数の最小点の違いの一例を示す説明図である。
【図１５】高駆動能力セルと低駆動能力セルとによる見積もり面積と見積もり遅延値の求め方の一例を示す説明図である。
【図１６】本発明者が検討した階層レイアウト処理の一例を示す説明図である。
【図１７】本発明の一実施の形態によるブロックのタイミング見積もりを階層レイアウト処理に用いた際のレイアウト処理の一例を示す説明図である。
【図１８】本発明者が検討したホールドタイミング最適化処理の一例を示す説明図である。
【図１９】本発明者が検討したセル配置処理の一例を示す説明図である。
【図２０】本発明者が検討したセル配置処理の他の例を示す説明図である。
【図２１】図１９のセル配置処理における問題点を示す説明図である。
【図２２】図２０のセル配置処理における問題点を示す説明図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３１】
本実施の形態において、半導体集積回路装置におけるセルの配置最適化方法は、パーソナルコンピュータやワークステーションなどに例示されるコンピュータシステムからなる電子システムによって処理される。
【００３２】
電子システムは、たとえば、入力部、中央制御装置、出力部、ならびにデータベースなどから構成されている。入力部は、種々のデータを入力することができるキーボードなどであり、該入力部には、中央制御装置が接続されている。
【００３３】
出力部は、たとえば、ディスプレイやプリンタなどからなり、入力部から入力したデータや中央制御装置が演算した結果などを表示したり、プリント出力などを行う。データベースは、半導体集積回路装置におけるレイアウト設計に用いられる各種のレイアウト情報などのデータが格納されている。
【００３４】
図１は、セルの初期配置処理の一例を示した説明図である。
【００３５】
図示するように、ネットリスト１、タイミング制約２、フロアプラン３、レイアウトライブラリ４、およびタイミングライブラリ５などを用いた初期配置処理中に、タイミング最適化後のタイミング、面積を見積もるためのタイミング・面積見積もり用ライブラリを予め作成しておき、タイミング制約２を満たすことができるかを見積もる。
【００３６】
この場合、タイミング制約２を満たすことが困難なパスにあるセルは、近接配置し、逆に容易なパスは離して配置する。その際、面積増加も見積もり、配線混雑が発生しないようにする。パスとは、フリップフロップとその間の組み合わせ論理セルの接続を示すものであり、セル間の接続を信号という。
【００３７】
ここで、セルとは、バッファ、インバータ、フリップフロップ、ＡＮＤ(論理積回路)、ＯＲ(論理和回路)、ＮＡＮＤ(否定論理積回路)、ＮＯＲ(否定論理和回路)など、回路機能を構成する基本単位の要素のことである。通常、同じ論理機能を持つセルであっても出力負荷の駆動能力を変えた複数のバリエーションを備える。
【００３８】
また、ネットリスト１は、半導体集積回路装置のセルの接続を記述したものであり、回路図、および結線情報に相当する。フロアプラン３は、レイアウトでのセル配置可能領域を定義したファイルである。セル配置ができない領域としては、たとえば、Ｉ／Ｏ(Ｉｎｐｕｔ／Ｏｕｔｐｕｔ)領域、メモリ、電源回路領域などがある。
【００３９】
ネットリスト１上での塊（論理機能上の結びつきが強く１つのブロックとして判別したほうがよいものなど）はフロアプラン３上でパーティショニング（領域指定）を行い配置すべき大まかなエリア指定を行うこともある。
【００４０】
タイミング制約２は、フリップフロップ間のデータ転送の遅延時間を決めた制約である。通常、フリップフロップに供給するクロック信号の速度（周波数）により遅延時間を設定する。複数の異なる速度（周波数）の異なるクロック信号をフリップフロップ間に定義したり、設計要求として特定のフリップフロップ間の遅延時間を無視するように設定したりするため、フリップフロップ間毎に設定される遅延時間はフリップフロップ間ごとに異なる。
【００４１】
タイミングライブラリ５は、各セルについて、ある出力負荷（ＲＣ）により決まるタイミングを記述したものである。たとえば、「10pf、20pf、30pf、40pf」の出力負荷に対し、そのセルの遅延時間を計算し、「10pf -> 5ps、20pf -> 8ps、30pf -> 10ps、40pf -> 14ps」というようにルックアップテーブル方式で遅延時間を記述する。ルックアップテーブル方式で定義された遅延時間の精度を保証するため、最大ファンアウト数も定義する。最大ファンアウト数とは、そのセルの出力に並列接続可能な次段セルの数を示す。
【００４２】
レイアウトライブラリ４は、各セルについて、セルの枠（縦横寸法）、セル面積、セル内パタンを記述したものであり、セル内パタンとしては、信号を接続する端子用パタンと、セル上に配線を通してはいけない部分を設定するための配線障害物用パタンがある。
【００４３】
また、タイミング・面積見積もり用ライブラリは、図１の右側に示すように、配置前のタイミングが異なる条件のパスとなる、長配線用見積もりライブラリ６、多ファンアウト用見積もりライブラリ７、および多段ロジック用見積もりライブラリ８からなる。
【００４４】
図２は、タイミング・面積見積もり用ライブラリ作成時におけるバッファリング（バッファ挿入）箇所を定めるための一例を示す説明図である。
【００４５】
あるセル間の信号経路にバッファを挿入しバッファリングすると、図２の右側に示すように、セル遅延とバッファが駆動する配線の遅延が発生する。その遅延値はバッファ遅延とバッファが駆動する配線遅延の合計となる。遅延値÷距離（配線の場合は距離に比例して抵抗Ｒと容量Ｃが増加するので抵抗Ｒまたは容量Ｃと置き換えて考えることができる。ファンアウトの場合は容量Ｃが増加するので容量Ｃで考える。）で求められる速度の逆数は、図２の左側のグラフに示すように、ある距離のポイントで最小となる。
【００４６】
これはバッファから次段セルまでの距離が近い場合は分母となる距離が小さくなる一方、バッファ遅延量はほぼ一定なので速度の逆数は増加し、距離が遠くなると分子の遅延量のうち配線遅延が増えるのでこの場合も速度の逆数が増加するためである。この速度の逆数が最小になるポイントは言い換えれば速度が最大となるポイントとなる。
【００４７】
このポイントがバッファリングに最良の地点である。バッファリング最適点は計算上では１点であるが、図２左側のグラフからわかる通り、最小となるポイント近傍では実用上はほぼ最小値と同等の効果が得られる領域が存在する。
【００４８】
したがってバッファリングを行うポイントは速度の逆数が最小になるポイントを中心に前後に幅を持たせてポイントを適宜選択することが可能である。例えばバッファからセルまでの配線長を長めにして配線距離を稼ぎたい場合は速度の逆数が最小になるポイントから１％〜５０％長いポイントを採用する手法も可能である。
【００４９】
逆に配線の充放電電力を少なくし低消費電力向きのライブラリとしたい場合などは速度の逆数が最小になるポイントから１％〜５０％短い距離を選択することも可能である。長配線用見積もりライブラリ６、ならびに多ファンアウト用見積もりライブラリ７の作成には、このバッファリング手法を使って遅延と面積を見積もる。
【００５０】
長配線用見積もりライブラリ６はいくつかの想定した配線距離に対し、セルの駆動能力変更または上記の最適な距離でのバッファリングを行った場合の遅延時間を算出してルックアップテーブルを作成する。
【００５１】
多ファンアウト用見積もりライブラリ７はファンアウト数に相当する容量Ｃを用いてセルの駆動能力変更または上記の最適なバッファサイズでのバッファリングを行った場合の遅延時間を算出してルックアップテーブルを作成する。
【００５２】
図３は、長配線用見積もりライブラリ６の作成の一例を示す説明図である。
【００５３】
長配線用見積もりライブラリ６は、図示するように、ネットリスト１から使用セル種の情報、タイミング制約２から使用する周波数の情報、フロアプラン３から想定(配線)距離情報、レイアウトライブラリ４からセル面積情報、およびタイミングライブラリ５のタイミング情報などから作成する。
【００５４】
まず、距離（抵抗Ｒまたは容量Ｃの値）を小から大へ一定値毎に変化させ、セルの駆動能力変更、あるいは、バッファリングにより距離に応じた遅延値と総面積を見積もる。また、セルの駆動能力変更による遅延値見積もりは、使用するセル種のみについて実施する。
【００５５】
見積もった遅延と面積は、一定値毎に変化させた距離に対して求め、たとえば、ルックアップテーブル形式などで保存する。
【００５６】
距離を変化させるときは、フロアプラン３から配線が取りうる距離の最小値と最大値を求め、その範囲でのみ変化させる。また、見積もった遅延値が与えられたタイミング制約を越えた場合も、見積もり値を求める処理を終了する。
【００５７】
駆動能力変更による遅延値見積もりは、使用セル種のみについて実施することで処理時間を短縮する。そして、図３の右側に示すように、距離（ＲまたはＣ値）と見積もった遅延値、および面積をプロットすることにより、長配線用見積もりライブラリ６とする。
【００５８】
図４は、図３に示した長配線用見積もりライブラリ６の作成における詳細な説明図である。
【００５９】
まず、長配線用見積もりライブラリ６を作成する際には、図４の上方に示すように、駆動能力変更することによって最小となる遅延値をタイミングライブラリ５から見積もる。続いて、図４の下方に示すように、バッファリング（バッファ挿入）により速度の逆数が最小となる距離に分割し、挿入されたバッファのセルの遅延と配線との遅延とからなる遅延値を見積もる。
【００６０】
そして、見積もった２つの遅延値のうち、遅延値が小さい方を選択し、長配線用見積もりライブラリ６の見積もり遅延値、および見積もり面積とする。このとき、バッファリングする距離は、図２に示す速度の逆数の最小地点(点線丸印で示す)とする。
【００６１】
図５は、多ファンアウト用見積もりライブラリ７の作成の一例を示す説明図である。
【００６２】
多ファンアウト用見積もりライブラリ７は、図５の左側に示すように、ネットリスト１から多ファンアウトネットの情報、タイミング制約２から使用する周波数の情報、フロアプラン３から想定(配線)距離情報、レイアウトライブラリ４からセル面積情報、およびタイミングライブラリ５のタイミング情報などを用いて作成する。
【００６３】
多ファンアウトは、回路の中で、タイミングライブラリ５にて決められた最大ファンアウト数を超えたファンアウト数の信号のことをいう。この場合、ファンアウト数を小から大に変化させ、分割に必要なバッファ木の段数とバッファ数を見積もる。バッファ木の段数から遅延値を、バッファ数から面積を見積もる。
【００６４】
与えられたネット中にある多ファンアウトの範囲のみについて作成する。そして、図５の右側に示すように、ファンアウト数と見積もった遅延値と面積をプロットすることで、多ファンアウト用見積もりライブラリ７とする。
【００６５】
多ファンアウトは、図６に示すように、駆動している１つのソースと、駆動されているリーフ群からなる。多ファンアウト用見積もりライブラリ作成時には、図２に示した速度の逆数が最小になるＲまたはＣ値になるように、リーフをグループでまとめてバッファリングする。
【００６６】
さらに、グルーピングしたバッファ群を、速度の逆数が最小となるようにまとめてバッファリングする。これをソースに到達するまで繰り返す。このように、バッファリングした後、ソースからリーフまでの遅延を見積もり遅延、バッファの総面積を見積もり面積とする。
【００６７】
図７は、多段ロジック用見積もりライブラリ８の作成の一例を示す説明図である。
【００６８】
多段ロジック用見積もりライブラリ８は、図７の左側に示すように、ネットリスト１から多段ロジックの情報、タイミング制約２から使用する周波数の情報、フロアプラン３から想定(配線)距離情報、レイアウトライブラリ４からセル面積情報、およびタイミングライブラリ５のタイミング情報などから作成する。
【００６９】
この場合、配線の負荷をゼロ（あるいは非常に小さい値）として、信号が通過するゲート数が多くタイミングクリティカルなパス（多段ロジック部分）群を抽出し、使用周波数（タイミング制約におけるフリップフロップ間の遅延値）より要求周波数を厳しくして最適化した場合の遅延値と面積を見積もる。厳しくした要求周波数に対して遅延時間が目標に到達しなくなった時点で、そのパスの最適化を終了する。
【００７０】
そして、初期段数と要求周波数（見積もり遅延値）、面積を、図７の右側に示すように、プロットすることで多段ロジック用見積もりライブラリ８とする。また、多段ロジック用見積もりライブラリ８の作成においては、図８に示すように、抽出パス群に共通部分がなければ、最適化を並列実行する。図８において、’Ｚ’は、要求周波数に対応した許容されるパスの遅延時間を示し、’Ｙ’は、使用周波数に対応したパスの遅延時間を示す。
【００７１】
また、多段ロジック用見積もりライブラリ８は、回路全体に対して作成してもよいが、たとえば、図９に示すように、抽出パス群を論理モジュール毎にそれぞれ分けることができれば、該論理モジュール毎に多段ロジック用見積もりライブラリ８を作成するようにしてもよい。
【００７２】
それにより、より高精度な多段ロジック用見積もりライブラリ８を生成することができる。さらに、クリティカルパスが少なければ、抽出したクリティカルパス専用の見積もりライブラリを作成するようにしてもよい。
【００７３】
図１０は、セルの配置プログラムに長配線用見積もりライブラリを組み込み、長配線のタイミングと面積を見積もりながら、セルの配置を行う処理の一例を示す説明図である。
【００７４】
図１０の左側に示すように、接続混雑によって配線不可能な場合、配線可能とするために、セルを離して配置する必要がある。そこで、図１０の右側に示すように、タイミング・面積見積もり用ライブラリの遅延見積もりと面積見積もりの値を用いて、タイミング違反が発生しない範囲で混雑を解消するようにセルを離して配置する。
【００７５】
この際、遅延見積もりと面積見積もりの値を用いて、次のステップでのタイミング最適化後にタイミング違反や全体の面積の増大が極力発生しないようにセルを移動させ、配線可能な配置結果を得る。
【００７６】
たとえば、クリティカルパスとなっているセルであっても、遅延見積もり値により、次ステップのタイミング最適化後にタイミング違反や面積増大などが発生しない場合には、フリップフロップを離して配置することが可能であり、クリティカルパスとなっていないセルであっても、遅延見積もり値により、次ステップのタイミング最適化後にタイミング違反などが発生する場合には、フリップフロップを近接配置する。
【００７７】
図１１は、セルの配置プログラムに多ファンアウト用見積もりライブラリを組み込み、多ファンアウトのタイミングと面積を見積もりながら、セルの配置処理を行う際の一例を示した説明図である。
【００７８】
一般に、セルの配置処理では、図１１の左側に示すように、最初に多ファンアウトの遅延を無視して配置処理を行っていたが、ここでは、ファンアウト数に応じて遅延と面積を見積もる。すなわち多ファンアウト用見積もりライブラリを用いて遅延を最小にしながらバッファ木を適用する。
【００７９】
タイミングクリティカルパスについては、ファンアウト数から遅延を見積もり、次のタイミング最適化において、配線可能とするために、フリップフロップを離して配置する必要がある。この際、図１１の右側に示すように、遅延値と面積見積もりにより、次のステップでのタイミング最適化後にタイミング違反や面積増大が極力発生しないようにフリップフロップを移動させ、配線可能な配置結果を得ることができる。
【００８０】
図１２は、多段論理におけるタイミング違反の一例を示す説明図であり、図１３は、セルの配置プログラムに多段ロジック用見積もりライブラリを組み込み、論理段数が多いパスについて、タイミングと面積を見積もりながら、配置処理を行う一例を示した説明図である。
【００８１】
一般に、多段論理があってタイミングが厳しい場合には、図１２に示すように、多段論理に対して最適化前の遅延値を元に計算するとタイミング違反が発生してしまい、配線可能にするためのフリップフロップ移動ができなかった。
【００８２】
一方、本発明では、図１３に示すように、多段ロジック用見積もりライブラリを用いることで多段論理の最適化後のタイミングを見積もることができるので、フリップフロップを動かしても次のステップであるタイミング最適化により、タイミング制約を満たすことができる、と判断することができる。これによってフリップフロップを移動することが可能となり、配線を可能にすることができる。このとき、長配線用見積もりライブラリを用いて、セルを移動した場合のタイミング最適化後のタイミングと面積を見積もる。
【００８３】
次に、タイミング・面積見積もり用ライブラリにおける高精度な見積もり技術について説明する。
【００８４】
長配線、多ファンアウト用見積もりライブラリの精度向上のため、面積、および遅延の見積もり値をバッファの駆動能力毎に求める。これは、図１４のグラフに示すように、低駆動能力セルと高駆動能力セルとで速度の逆数の最小点が異なるためである。
【００８５】
たとえば、図１５の左側のグラフに示す高駆動能力セルと図１５の右側のグラフに示す低駆動能力セルとでは、同じ遅延値でも、見積もり面積が異なることになる。たとえば高駆動能力セルでは比較的駆動能力の小さい場合、Ａの遅延時間のときの見積もり面積はＡ’の点になるが、低駆動能力セルで同じ遅延時間Ｂのときの見積もり面積はＢ’となり高駆動能力セルの見積もり面積Ａ’より小さい面積で同じ遅延時間を実現できる。
【００８６】
一方、比較的大きい遅延時間の場合、同じ遅延時間Ｃ及びＤのときの見積もり面積は高駆動能力セルと低駆動能力セルでそれぞれＣ’とＤ’になり、高駆動能力セルのほうが面積が小さくなる。
【００８７】
これより、セルの駆動能力に応じた見積もり遅延最小値を選択し、距離やファンアウト数に対して見積もり遅延と見積もり面積をプロット、もしくはテーブル化したライブラリを、タイミングクリティカル品種やパス用に使う。
【００８８】
一方、見積もり面積最小値を選択して、距離やファンアウト数に対して見積もり遅延と見積もり面積をプロット、もしくはテーブル化したライブラリを、高密度品種やパスに適用する。すなわち、高駆動能力セルでは、見積もり遅延の最小値Ａ（図１５の左上側のグラフ）を選択し、見積もり面積値は、該最小値Ａに対応する見積もり面積値Ａ’（図１５の左下側のグラフ）を選択して、タイミングクリティカル品種やパス用に使用する。
【００８９】
また、低駆動能力セルでは、見積もり面積の最小値Ｂ（図１５の右上側のグラフ）を選択し、見積もり遅延値は、該最小値Ｂに対応する見積もり遅延値Ｂ’（図１５の右下側のグラフ）を選択して、高密度品種やパス用に使う。
【００９０】
この他にも、多段論理用見積もりライブラリの精度向上のために、見積もり用論理最適化後の１つのセルに接続する信号数／セル数（＝見積もり接続数）を求め、混雑度の指標としたり（混雑度が高い場合には、配線のための面積がより多く必要であるため、見積もり面積値を大きくする）、実最適化後の結果と見積もり値との差を比率、あるいは絶対値差で保存しておき、保存した比率、または絶対値差などを考慮してタイミング・面積見積もり用ライブラリを修正するようにしてもよい。
【００９１】
また、本発明は、セルの配置だけでなく、たとえば、階層レイアウトにおける設計期間短縮に用いることも可能である。
【００９２】
通常、階層レイアウト処理では、図１６に示すように、作成したブロックデータを用いてブロックレイアウトが完了するまで、ブロックタイミングモデルを作成することができず、トップレイアウトを実施できない。
【００９３】
しかし、図１７に示すように、本発明によればブロックデータからブロックタイミングを見積もることができ、モデルを作成できるので、ブロックレイアウトを完了する前にトップレイアウトと最適化を開始することができる。この際、クロック遅延も見積もることができる（この場合、ファンアウト用見積もりライブラリを用いるものとする）。
【００９４】
また、本発明による見積もりは、タイミング、面積だけでなく、たとえば、消費電力も見積もりライブラリとしておき、配置時に消費電力も見積もるようにしてもよい。消費電力が長配線や多ファンアウトのためのバッファリングにて大きくならないようにセルを移動し、配線可能なセル配置を得る。
【００９５】
この場合、見積もり消費電力が最小となる、タイミングと面積を見積もって、長配線用見積もりライブラリ、多ファンアウト用見積もりライブラリとしてそれぞれライブラリ化しておき、低消費電力が要求される回路、箇所に適用する。
【００９６】
さらに、本発明による見積もりは、ホールドタイミング最適化処理に組み込むことも可能である。
【００９７】
従来、ホールドタイミング違反パスの一部を含む別パスが、セットアップタイミングに余裕がない場合、ホールドタイミング違反解消のための遅延素子を挿入することができなった。
【００９８】
たとえば、図１８に示すフリップフロップＡ、ｌｏｇｉｃ−ａ、ｌｏｇｉｃ−ｃ、フリップフロップＣの接続経路となるパスＰａｔｈ１、およびフリップフロップＢ、ｌｏｇｉｃ−ｃ、フリップフロップＤの接続経路となるパスＰａｔｈ２のセットアップタイミングが厳しい場合、フリップフロップＢ、ｌｏｇｉｃ−ｃ、フリップフロップＣの接続経路となるパスＰａｔｈ３のホールドタイミング違反パスを解消できないか、パスＰａｔｈ１、あるいはパスＰａｔｈ２のセットアップタイミングを許して、パスＰａｔｈ３のホールドタイミング違反を解消するため、パスＰａｔｈ１、またはパスＰａｔｈ２のセットアップタイミング違反が残る場合があった。
【００９９】
しかし、本発明による面積、および遅延見積もりをホールドタイミング最適化処理へ組み込むことにより、セットアップタイミングに余裕がなくても、最適化後のタイミングを見積もり、最適化後にはタイミングに余裕がある部分を抽出し、ホールドタイミング違反解消のための遅延素子を挿入することができる。
【０１００】
この場合、図１８におけるｌｏｇｉｃ−ａ、およびロジックｌｏｇｉｃ−ｂの最適化後のセットアップタイミングを提案手法により見積もり、実タイミングと見積もったタイミングとの差（余裕度）を求め、ロジックｌｏｇｉｃ−ａの余裕度の許す範囲で、フリップフロップＢ→ロジックｌｏｇｉｃ−ｃに、ロジックｌｏｇｉｃ−ｂの余裕度の許す範囲でロジックｌｏｇｉｃ−ｃ→フリップフロップＣに遅延セル(バッファ)を挿入し、パスＰａｔｈ３のホールドタイミング違反を解消する。
【０１０１】
ホールドタイミング違反解消後、パスＰａｔｈ１、およびパスＰａｔｈ２のセットアップタイミング違反が残るが、パスＰａｔｈ３を保持したまま、ロジックｌｏｇｉｃ−ａ、ロジックｌｏｇｉｃ−ｂを高速化する方向へ最適化することによりセットアップタイミングを解消することができる。
【０１０２】
それにより、本実施の形態によれば、タイミング最適化後のタイミング、面積を見積もってセル配置を決めるので、タイミング最適化後にセル配置改善やフロアプラン変更といった処理が不要となり、設計期間を短縮することができる。
【０１０３】
また、タイミング、および面積見積もりをライブラリとして用意するので、配置途中で最適化処理を必要とせず、高速に見積もり値を得ることができる。
【０１０４】
さらに、セルの配置処理中は、実際にはタイミング最適化（回路変更）を行わないため、データベースをアップデートする必要がなく、高速、かつ、メモリ使用量のオーバーヘッドを少なくすることができる。
【０１０５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１０６】
本発明は、半導体集積回路装置の自動化レイアウト設計技術に適している。
【符号の説明】
【０１０７】
１  ネットリスト
２  タイミング制約
３  フロアプラン
４  レイアウトライブラリ
５  タイミングライブラリ
６  長配線用見積もりライブラリ
７  多ファンアウト用見積もりライブラリ
８  多段ロジック用ライブラリ
【図１】
0005401376.tif 000002
【図２】
0005401376.tif 000003
【図３】
0005401376.tif 000004
【図４】
0005401376.tif 000005
【図５】
0005401376.tif 000006
【図６】
0005401376.tif 000007
【図７】
0005401376.tif 000008
【図８】
0005401376.tif 000009
【図９】
0005401376.tif 000010
【図１０】
0005401376.tif 000011
【図１１】
0005401376.tif 000012
【図１２】
0005401376.tif 000013
【図１３】
0005401376.tif 000014
【図１４】
0005401376.tif 000015
【図１５】
0005401376.tif 000016
【図１６】
0005401376.tif 000017
【図１７】
0005401376.tif 000018
【図１８】
0005401376.tif 000019
【図１９】
0005401376.tif 000020
【図２０】
0005401376.tif 000021
【図２１】
0005401376.tif 000022
【図２２】
0005401376.tif 000023