(57)【特許請求の範囲】
【請求項１】
回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、余裕のないブロックに含まれているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第１のステップに進む第５のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２】
回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、セル使用余裕度に余裕のないブロック内にある、タイミングに余裕のあるパス上のバッファを削除し、前記第１のステップに進む第５のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３】
回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第１のステップに進む第５のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているバッファを削除し、前記第１のステップに進む第５のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、余裕のないブロックに含まれているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第１のステップに進む第５のステップと、
を実行することを特徴とする配置方法。
【請求項６】
コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、セル使用余裕度に余裕のないブロック内にある、タイミングに余裕のあるパス上のバッファを削除し、前記第１のステップに進む第５のステップと、
を実行することを特徴とする配置方法。
【請求項７】
コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第１のステップに進む第５のステップと、
を実行することを特徴とする配置方法。
【請求項８】
コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第１のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第２のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第３のステップと、
該モデルを用いてパスのタイミングを評価する第４のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているバッファを削除し、前記第１のステップに進む第５のステップと、
を実行することを特徴とする配置方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子装置の実装設計に係り、電子回路の自動レイアウトを行う配置装置および方法に関する。
【０００２】
【従来の技術】
最近の回路技術の進歩に伴い、ＶＬＳＩ（very large scale integrated circuit ）の集積度の向上および回路規模の増大には目覚ましいものがある。このような集積度の向上および回路規模の増大に伴って、タイミング、配線率、および消費電力が設計者の要求を満たすように、これらのパラメータをＣＡＤ（computer-aided design ）ツールで制御することが大きな問題になっている。ここで、配線率とは、配線すべきネットの総数に対する実際に配線されたネットの数の割合を表し、これが１００％になることが最終的な目標である。
【０００３】
従来のＶＬＳＩの自動レイアウトは、一般に、回路素子（セルまたはモジュール）の配置と素子間の配線の２つの処理に分けて行われる。そして、配置および配線が終了した後に、タイミングの厳しい信号パス上のセルの置き換えや、ネットへのバッファの挿入を行って、タイミング等を改善するようにしている。
【０００４】
また、従来の配置方法の１つとしては、ｍｉｎ−ｃｕｔ法が知られている。この方法では、カット数を評価基準としてＬＳＩチップの論理分割を逐次繰り返すことにより、セルの配置が決定される。ここで、カット数とは、チップ上に引いたカットラインを横切る論理的な配線（ネット）の数を表す。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来の回路設計には、次のような問題がある。
自動レイアウトにおいて、配置および配線が完全に終了してしまった状態では、新たにセルのサイズを大きくしたり、パス上にバッファを挿入したりするためには、十分な空きセルスペースが必要である。ところが、最近の配線層の多層化に伴い狭い領域での配線が容易になったために、チップ上の配線領域の面積が減少し、逆にセルの使用面積が増加している。このため、チップ面積に対するセル使用面積の割合（セル使用率）は８０％を越えている。
【０００６】
したがって、配置および配線が完全に終了してしまった状態においては、十分な空きセルスペースが存在しないのが現状である。このため、タイミングを最適化できるサイズにセルを変更したり、最適な場所にバッファを挿入したりすることが必ずしも可能ではないという問題がある。
【０００７】
また、一般に、タイミングが厳しいパスは集中する傾向があり、仮にセルを置くためのスペースがあったとしても、そのスペースにセルを置くことによって、配線のためのスペースが不足することがある。このため、かえって配線が迂回することになり、タイミングを悪化させるという問題も生じている。
【０００８】
本発明の課題は、電子回路の自動レイアウトにおいて、タイミング等のパラメータが設計者の要求を満たすように配置を変更する配置装置および方法を提供することである。
【０００９】
【課題を解決するための手段】
図１は、本発明の配置装置の原理図である。図１の配置装置は、格納手段１と変更手段２を備え、回路設計において、領域分割を繰り返しながらセルの配置を決定する。
【００１０】
格納手段１は、ある分割レベルにおいて、分割により生成されたブロックのブロック情報を格納する。変更手段２は、ブロック情報を用いて、その分割レベルにおける配置を変更し、変更された配置を出力する。
【００１１】
領域分割の方法としては、例えば、上述したｍｉｎ−ｃｕｔ法が用いられ、格納手段１は、階層的に繰り返される論理分割のある分割レベルにおいて、その分割レベルに属する各ブロックのブロック情報とセル配置の情報を格納する。変更手段２は、その分割レベルにおけるブロック情報を用いて、１つまたは複数のブロック内のセルを変更／削除／追加することで、設計者の要求が満たされるように、セル配置を変更する。
【００１２】
このように、配置および配線が完全に終了した後ではなく、配置処理の途中のある分割レベルにおいてセル配置を変更することにより、タイミング等のパラメータが最適化されるような変更を行うことが可能になる。また、このような変更を各分割レベルにおいて繰り返すことで、配置はさらに最適化される。
【００１３】
例えば、図１の格納手段１は、後述する図３２のメモリ１２に対応し、図１の変更手段２は、図３２のＣＰＵ（中央処理装置）１１およびメモリ１２に対応する。
【００１４】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態では、論理分割に基づく配置方法の各分割レベル（階層）において、分割されたブロックの情報と概略配線情報とを基にゲートのサイジングやバッファの挿入／削除を行うことにより、設計者の要求を満たす配置を自動的に実現する。より具体的には、このような配置方法の１つであるｍｉｎ−ｃｕｔ法の各分割レベルにおいて、ゲートのパワーを変更したり、ネットにバッファを挿入したり、バッファを削除したりすることにより、タイミング、配線率、および消費電力の制御を行う。
【００１５】
ｍｉｎ−ｃｕｔ法においては、前述したように、チップ領域の論理分割を階層的に繰り返すことによりセル配置を決定しているが、分割における各レベルでのブロックは、例えば、図２に示すような構造を持つ。このとき、配置装置は、以下の情報を保持している。
１．ライブラリ情報
ライブラリに登録された各回路素子の属性を表す。図２の回路の場合、例えば、図３に示すようなライブラリテーブルがライブラリ情報として保持される。ここでは、Ｌ０〜Ｌ８の９個の素子が登録されている。
【００１６】
図３において、各素子の情報は、識別子（ｌｉｂＩｄ）、種類（ｌｉｂ＿ｋｉｎｄ（ｌｉｂＩｄ））、パワータイプ（ｌｉｂ＿ｐｏｗｅｒ（ｌｉｂＩｄ））、面積（ｌｉｂ＿ａｒｅａ（ｌｉｂＩｄ））、入力端子のキャパシタンス（ｌｉｂ＿ｉｎｐ＿ｃａｐａ（ｌｉｂＩｄ））、出力端子のドライブ能力（ｌｉｂ＿ｏｕｔ＿ｄｒｉｖｅ（ｌｉｂＩｄ））、およびゲート遅延（ｌｉｂ＿ｄｅｌａｙ（ｌｉｂＩｄ））からなる。
【００１７】
例えば、Ｌ０はローパワーのインバータに対応し、Ｌ１はノーマルパワーのインバータに対応し、Ｌ２はハイパワーのインバータに対応する。また、Ｌ３、Ｌ４、Ｌ５はＮＡＮＤゲートに対応し、Ｌ６、Ｌ７、Ｌ８はバッファに対応する。
２．セル情報
配置された各セルの属性を表す。図２の回路の場合、例えば、図４に示すようなセルテーブルがセル情報として保持される。ここでは、図２の４個のセルＣ０、Ｃ１、Ｃ２、Ｃ３の情報が登録されている。
【００１８】
図４において、各セルの情報は、識別子（ｃｅｌｌＩｄ）、セルが属するブロックのブロック座標（ｃｅｌｌ＿ｘ（ｃｅｌｌＩｄ），ｃｅｌｌ＿ｙ（ｃｅｌｌＩｄ））、およびセルに対応する素子のライブラリ識別子（ｃｅｌｌ＿ｋｉｎｄ（ｃｅｌｌＩｄ））からなる。また、セルの面積（ｃｅｌｌ＿ａｒｅａ（ｃｅｌｌＩｄ））を付加することもできる。
【００１９】
例えば、セルＣ０のブロック座標は（１，０）であり、対応するライブラリ識別子はＬ０となっている。したがって、この時点では、セルＣ０としてローパワーのインバータが割り当てられていることが分かる。図２においては、ローパワーのセルは細線で描かれており、ハイパワーのセルは太線で描かれている。
３．ネット情報
セル間のネットの属性を表す。図２の回路の場合、例えば、図５に示すようなネットテーブルがネット情報として保持される。ここでは、図２の６個のネットＮ０、Ｎ１、Ｎ２、Ｎ３、Ｎ４、Ｎ５の情報が登録されている。
【００２０】
図５において、各ネットの情報は、識別子（ｎｅｔＩｄ）、ネットのスラック（ｎｅｔ＿ｓｌａｃｋ（ｎｅｔＩｄ））、および総キャパシタンス（ｎｅｔ＿ｃａｐａ（ｎｅｔＩｄ））からなる。スラックは、パスに含まれる各ネットにおける信号のタイミング（到着時刻）の余裕度を表し、例えば、次式により与えられる。
スラック＝要求された到着時刻−実際の到着時刻                  （１）
また、ネットテーブルには、配線パターン識別子（ｎｅｔ＿ｐａｔｔｅｒｎ（ｎｅｔＩｄ））やシミュレーション実行後の状態に基づく信号変化の周波数（ｎｅｔ＿ｆ（ｎｅｔＩｄ））を付加することもできる。配線パターンは、後述するように、タイミングを計算するためのモデルを構築する際に生成される。また、信号変化の周波数は、１秒間にネットの電荷が放電される回数、言い換えれば、１秒間にネット上の信号が変化する回数を表す。
４．ブロック情報
分割により生成されたブロックの属性を表す。図２の回路の場合、例えば、図６に示すようなブロックテーブルがブロック情報として保持される。ここでは、図２の９個のブロックの情報が登録されており、各ブロックは１０×１０の正方形であるものと仮定している。
【００２１】
図６において、各ブロックの情報は、ブロック座標（ｘ，ｙ）、ブロックの中心位置の座標（ｂｌｏｃｋ＿ｃｅｎｔｅｒ＿ｘ（ｘ，ｙ）），ｂｌｏｃｋ＿ｃｅｎｔｅｒ＿ｙ（ｘ，ｙ））、セル使用可能面積（ｂｌｏｃｋ＿ａｒｅａ＿ｃａｐａ（ｘ，ｙ））、およびセル使用面積（ｂｌｏｃｋ＿ｃｅｌｌ＿ａｒｅａ（ｘ，ｙ））からなる。ブロック座標は、ブロックの識別子として用いられる。また、セル使用可能面積は、通常、ブロックの面積から配線領域等に使用する面積を除いて設定される。
【００２２】
例えば、ブロック座標（０，０）のブロックの中心位置は（ｘ，ｙ）＝（５，５）であり、セル使用可能面積は“７”である。しかしながら、図２では、このブロックにはセルが置かれていないため、セル使用面積は“０”となっている。
【００２３】
また、ブロック座標（０，１）のブロックの中心位置は（ｘ，ｙ）＝（５，１５）であり、セル使用可能面積は“７”である。図２では、このブロックにセルＣ２が置かれており、図４より、このセルに対応するライブラリ識別子はＬ０である。また、図３より、Ｌ０の面積は“１”であるため、ブロック（０，１）のセル使用面積には“１”が格納される。
【００２４】
また、配置装置は、各セルと各ネットの接続関係を表す情報として、図７および図８に示すようなリストを保持している。図７のリストは、各セルの識別子に１つ以上のネットの識別子をポインタで繋げた構造を持ち、あるセルに接続されたネットを検索する際に用いられる。また、図８のリストは、各ネットの識別子に１つ以上のセルの識別子をポインタで繋げた構造を持ち、あるネットに接続されたセルを検索する際に用いられる。
【００２５】
配置装置は、上述したライブラリ情報、セル情報、ネット情報、およびブロック情報を入力として、概略配線の配線パターンを生成し、タイミングを計算するためのモデルを構築する。
【００２６】
この配線パターンにおいては、あるブロック（ｘ，ｙ）に含まれるセルの端子は、すべてそのブロックの中心に位置すると仮定し、配線の分岐もブロックの中心で行われると仮定する。そして、ネットの配線遅延を計算するために、まず、ブロック内で閉じているネットの配線長（ｗｉｒｅ＿ｌｅｎ＿ｉｎ＿ｂｌｏｃｋ（ｎｅｔＩｄ，ｘ，ｙ））を求める。
【００２７】
この配線長は、そのネットに繋がっており、ブロックに含まれている端子の数（ｐｉｎ＿ｎｕｍｂｅｒ（ｎｅｔＩｄ，ｘ，ｙ））を基に、次式により計算される。
ｗｉｒｅ＿ｌｅｎ＿ｉｎ＿ｂｌｏｃｋ（ｎｅｔＩｄ，ｘ，ｙ）
＝α＋β×ｐｉｎ＿ｎｕｍｂｅｒ（ｎｅｔＩｄ，ｘ，ｙ）            （２）
ここで、αおよびβは、あらかじめ決められた定数であり、ｐｉｎ＿ｎｕｍｂｅｒ（ｎｅｔＩｄ，ｘ，ｙ）は、そのネットに関する混雑度（実際の配線の数）を表すと考えられる。
【００２８】
次に、得られたブロック内の配線長と、ブロック間の配線長と、単位長さあたりの遅延時間（単位遅延量）から、次式によりネットの配線遅延が計算される。
配線遅延
＝単位遅延量×（ブロック内の配線長＋ブロック間の配線長）        （３）
図９は、図２の回路のセルとネットの遅延を示している。図９において、各セルの遅延としては、図３のライブラリテーブルに登録された値が用いられており、各ネットの遅延は、（３）式により計算されている。ただし、ここでは、簡単のために、単位遅延量＝１、ブロック内の配線長＝０（α＝β＝０）、ブロック間の配線長＝ネットがブロック間の境界をまたぐ回数、としている。
【００２９】
例えば、ネットＮ３の場合、ブロック（０，１）とブロック（０，２）の境界と、ブロック（１，１）とブロック（１，２）の境界と、ブロック（０，２）とブロック（１，２）の境界と、ブロック（１，２）とブロック（２，２）の境界をまたいでいる。したがって、ネットの配線長は“４”になり、遅延も“４”になっている。
【００３０】
また、図１０は、図９の遅延から計算されたパスの遅延を示している。図１０において、１つのパスはセルおよびネットからなり、パスの遅延はそれに含まれるセルおよびネットの遅延の総和により与えられる。ネットＮ０、Ｎ１の左端に信号が到着した時刻を“０”と仮定すると、各ネットの端点（各セルの入出力端子）に信号が到着する時刻がパスの遅延に一致する。
【００３１】
例えば、ネットＮ１からネットＮ５に至るパスの場合、図９より、ネットＮ１、セルＣ０、ネットＮ２、セルＣ１、ネットＮ３、セルＣ３、およびネットＮ５の遅延は、それぞれ、“１”、“４”、“１”、“２”、“４”、“４”、および“２”であるので、パスの遅延は“１８”となる。したがって、ネットＮ５の右端における到着時刻は“１８”となる。
【００３２】
また、図１１は、図１０の到着時刻から計算されたネットのスラックを示している。図１１においては、各ネットの端点における“実際の到着時刻／要求された到着時刻”が示されており、（）内の数値は、（１）式により計算されたスラックを表している。こうして計算されたスラックは、図５のネットテーブルに格納される。
【００３３】
一般に、スラックが“０”または負の場合、そのネットはクリティカルであると考えられ、そのネットに至るパスのタイミングを改善することが望ましい。また、スラックが正の場合、そのネットのタイミングには余裕があると考えられる。
【００３４】
また、配置装置は、あるブロック（ｘ，ｙ）に含まれるセルのサイズを大きくする操作、または、そのブロックにバッファを挿入する操作を、次式が満たされることを条件として許可する。
ｂｌｏｃｋ＿ａｒｅａ＿ｃａｐａ（ｘ，ｙ）
＞ｂｌｏｃｋ＿ｃｅｌｌ＿ａｒｅａ（ｘ，ｙ）                      （４）
（４）式は、セル使用面積がセル使用可能面積より小さいことを表しており、この式が満たされる限り、そのブロック内での配線可能性が保証される。言い換えれば、ブロック内でセル使用面積が増加するような配置変更は、（４）式の条件により制限されている。
【００３５】
次に、図１２から図３１までを参照しながら、本実施形態の配置装置による配置処理について詳細に説明する。
図１２は、配置処理のフローチャートである。配置装置は、まず、チップの論理分割の分割レベルを表す制御変数Ｌを０とおき（ステップＳ１）、Ｌを分割レベルの最大値ｍａｘ＿ｌｅｖｅｌと比較する（ステップＳ２）。
【００３６】
Ｌがｍａｘ＿ｌｅｖｅｌ以下であれば、現在のレベルにおける各ブロックをカット数が最適になるように分割して、次のレベルのブロックを生成する（ステップＳ３）。そして、グローバル配線を行って配線パターンを生成し、遅延の評価等のためのモデルを構築する（ステップＳ４）。
【００３７】
次に、このモデルを用いて、得られた配置のタイミングを改善する処理を行い（ステップＳ５）、配線率を改善する処理を行い（ステップＳ６）、消費電力を改善する処理を行う（ステップＳ７）。次に、Ｌに１を加算して（ステップＳ８）、ステップＳ２以降の処理を繰り返す。そして、ステップＳ２においてＬがｍａｘ＿ｌｅｖｅｌを越えれば、詳細配置を行って（ステップＳ９）、処理を終了する。
【００３８】
ここで、ステップＳ５、Ｓ６、およびＳ７における処理を説明するための準備として、これらの処理に含まれる基本処理について、図１３から図２８までを参照しながら説明する。
【００３９】
図１３は、タイミングを改善するために行われるセル変更処理のフローチャートである。この処理では、ある分割レベルにおいて、スラックの値が小さい順にネットをソートし、スラックが負であるネット（ｎｅｔ＿ｓｌａｃｋ（ｎｅｔＩｄ）＜０）に関して、loading over等の与えられた制約条件を満たしている範囲内で、そのネットに接続されているセルのライブラリのパワータイプ（ｌｉｂ＿ｐｏｗｅｒ（ｌｉｂＩｄ））を変更する。
【００４０】
スラックが負であるネットは、タイミングの厳しいパスに含まれると考えられ、このネットのスラックを改善することで、それを含むパスのタイミングを改善することができる。また、スラックが正であるネットは、タイミングに余裕のあるパスに含まれる。
【００４１】
また、ネットのloading overは、ネットの総キャパシタンスに関する制限を表し、例えば、次式により与えられる。
Ｃmax ×γ＞ｎｅｔ＿ｃａｐａ（ｎｅｔＩｄ）                    （５）
ここで、Ｃmax は、そのネットをドライブするセルの出力端子のドライブ能力を表し、γは、あらかじめ決められた定数である。（５）式は、ネットの総キャパシタンスを出力端子のドライブ能力のγ倍より小さい値に制限することを表している。
【００４２】
配置装置は、まず、ネットテーブルのデータをスラックの値が小さい順にソートし（ステップＳ１１）、スラックが負のネットがあるか否かをチェックする（ステップＳ１２）。スラックが負のネットがあれば、その中の１つを選択し（ステップＳ１３）、選択されたネットに接続されているセルを１つ選択する（ステップＳ１４）。
【００４３】
そして、（４）、（５）式を含む与えられた制約条件が満たされる範囲内でネットのスラックが改善されるように、選択されたセルのパワータイプを変更する（ステップＳ１５）。これにより、セルテーブルにおいて、対応するセルのライブラリ識別子が変更される。（４）式が満たされるようにセルを変更することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずにタイミングを改善することができる。
【００４４】
次に、変更されたセルを用いてネットの遅延を評価し（ステップＳ１６）、タイミングが改善されたか否かをチェックする（ステップＳ１７）。タイミングが改善されれば、ブロックテーブルにおいて、変更されたセルを含むブロックのセル使用面積を変更する（ステップＳ１８）。また、タイミングが改善されなければ、セルテーブルのライブラリ識別子を元に戻すことで、セルのパワータイプを元に戻す（ステップＳ１９）。
【００４５】
次に、選択されたネットに他のセルがあるか否かをチェックし（ステップＳ２０）、他のセルがあれば、ステップＳ１４以降の処理を繰り返す。また、そのネットのすべてのセルについて処理が終了すると、他のネットについてステップＳ１２以降の処理を繰り返す。そして、スラックが負のネットがなくなると、処理を終了する。
【００４６】
例えば、図５のネットテーブルをスラックの値でソートすると、図１４のようになる（ステップＳ１１）。ただし、図１４では、総キャパシタンスは省略されている。ここでは、ネットＮ１、Ｎ２、Ｎ３、およびＮ５のスラックが負であるため、これらのネットが処理対象となる。
【００４７】
このうちネットＮ５が処理対象として選択されたとすると、図８のリストから、このネットにはセルＣ３のみが接続されていることが分かる。そこで、セルＣ３が処理対象として選択され、ネットＮ５のスラックが改善されるように、このセルのパワータイプが変更される。
【００４８】
ここで、図４のセルテーブルを参照すると、セルＣ３のライブラリ識別子はＬ０であることが分かり、図３のライブラリテーブルを参照すると、ライブラリ識別子Ｌ０の種類はインバータであることが分かる。さらに、ライブラリテーブルには３つの異なるパワータイプのインバータが登録されており、パワーが大きくなるほど遅延は小さくなっている。したがって、セルＣ３をよりパワーの大きなインバータに変更すれば、ネットＮ５のスラックが改善されると考えられる。
【００４９】
そこで、配置装置は、セルＣ３のライブラリ識別子をＬ０からＬ２に変更することで、そのパワータイプを“ＬＯＷ”から“ＨＩＧＨ”に変更する（ステップＳ１５）。これにより、図２の配置は図１５のように変更される。図１５においては、セルＣ３が太線で描かれており、ハイパワーのセルに変更されたことを示している。
【００５０】
また、図３のライブラリテーブルより、インバータＬ２の面積は“３”であるので、セルＣ３を含むブロック（２，２）のｂｌｏｃｋ＿ｃｅｌｌ＿ａｒｅａ（２，２）は“３”となる。しかし、図６のブロックテーブルより、ブロック（２，２）のｂｌｏｃｋ＿ａｒｅａ＿ｃａｐａ（２，２）は“７”であるため、セルＣ３をＬ０からＬ２に変更しても、（４）式は満たされている。
【００５１】
次に、図１５の配置の遅延を評価すると、図９、図１０、および図１１に示した数値は、それぞれ、図１６、図１７、および図１８に示すように変更される（ステップＳ１６）。図１６においては、セルＣ３の遅延が“４”から“２”に減少し、図１７においては、ネットＮ５のパスの遅延が“１８”から“１６”に減少している。そして、図１８においては、ネットＮ５のスラックが“−１”から“１”に改善されている。
【００５２】
また、これに伴って、ネットＮ１、Ｎ２、およびＮ３の各端点における“要求された到着時刻”に“２”が加算され、これらのネットのスラックも“−１”から“１”に改善されている。
【００５３】
このため、配置装置は、セルの変更を確定し、図６のブロックテーブルにおいて、ブロック（２，２）のセル使用面積を“１”から“３”に変更する（ステップＳ１８）。こうして、スラックが負のネットに接続されたセルのパワーが大きくなり、スラックが正に改善される。
【００５４】
次に、図１９は、配線率を改善するために行われるセル変更処理のフローチャートである。この処理では、ある分割レベルにおいて、次式により各ブロックのセル使用余裕度（ｂｌｏｃｋ＿ｒｏｏｍ（ｘ，ｙ））を求める。
ｂｌｏｃｋ＿ｒｏｏｍ（ｘ，ｙ）
＝ｂｌｏｃｋ＿ａｒｅａ＿ｃａｐａ（ｘ，ｙ）
−ｂｌｏｃｋ＿ｃｅｌｌ＿ａｒｅａ（ｘ，ｙ）                    （６）
そして、このセル使用余裕度の小さい順にブロックをソートし、余裕のないブロックに含まれているセルに対して、与えられた制約条件を満たしている範囲内で、パワーが小さくなるようにセルのライブラリのパワータイプを変更する。
【００５５】
配置装置は、まず、ブロックテーブルの各ブロックについて、（６）式に基づいてセル使用余裕度を計算し（ステップＳ２１）、ブロックテーブルのデータをセル使用余裕度の値が小さい順にソートする（ステップＳ２２）。例えば、図６のブロックテーブルの各ブロックのセル使用余裕度を計算し、ブロックテーブルをセル使用余裕度でソートすると、図２０のようになる。
【００５６】
次に、余裕のないブロックがあるか否かをチェックする（ステップＳ２３）。ここでは、各ブロックのセル使用余裕度を所定値と比較し、セル使用余裕度が所定値より小さいブロックを余裕のないブロックとして抽出する。所定値としては、例えば、“０”が用いられる。そして、余裕のないブロックがあれば、その中の１つを選択し（ステップＳ２４）、選択されたブロック内のセルを１つ選択する（ステップＳ２５）。
【００５７】
そして、（４）、（５）式を含む与えられた制約条件が満たされる範囲内でブロックのセル使用余裕度が改善されるように、選択されたセルのパワーを小さくする（ステップＳ２６）。
【００５８】
このとき、（４）式が満たされるようにセルのパワータイプを変更することにより、セル使用率を一定値以内に抑えることができ、配線率の改善と消費電力の最小化を図ることができる。さらに、タイミング破綻（timing violation）を防止するために、タイミングに余裕のあるパス上のセルのみを変更の対象とするような制約条件を課しておく。
【００５９】
次に、選択されたブロック内に他のセルがあるか否かをチェックし（ステップＳ２７）、他のセルがあれば、ステップＳ２５以降の処理を繰り返す。また、そのブロック内のすべてのセルについて処理が終了すると、他のブロックについてステップＳ２３以降の処理を繰り返す。そして、余裕のないブロックがなくなると、処理を終了する。
【００６０】
次に、図２１は、消費電力を改善するために行われるセル変更処理のフローチャートである。この処理では、ある分割レベルにおいて、シミュレーション実行後の状態に基づく信号変化の周波数と総キャパシタンスの積とネットの電圧Ｖから、次式により各ネットの電力（ｎｅｔ＿ｐｏｗｅｒ（ｎｅｔＩｄ））を求める。
ｎｅｔ＿ｐｏｗｅｒ（ｎｅｔＩｄ）
＝ｎｅｔ＿ｃａｐａ（ｎｅｔＩｄ）×ｎｅｔ＿ｆ（ｎｅｔＩｄ）
×（１／２）Ｖ2                                               （７）
そして、この電力の大きい順にネットをソートし、与えられた制約条件を満たしている範囲内で、各ネットに接続されているセルのパワーを小さくしてみる。その結果、すべてのネットの電力の総和が小さくなれば、セルのパワータイプを変更する。
【００６１】
配置装置は、まず、ネットテーブルの各ネットについて、（７）式に基づいて電力を計算し（ステップＳ３１）、ネットテーブルのデータを電力の値が大きい順にソートする（ステップＳ３２）。次に、ソート順に１つのネットを選択し（ステップＳ３３）、選択されたネットに接続されたセルを１つ選択する（ステップＳ３４）。
【００６２】
そして、（４）、（５）式を含む与えられた制約条件が満たされる範囲内でネットの電力が改善されるように、選択されたセルのパワーを小さくする（ステップＳ３５）。
【００６３】
このとき、（４）式が満たされるようにセルのパワータイプを変更することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずに消費電力の最小化を図ることができる。さらに、タイミング破綻を防止するために、タイミングに余裕のあるパス上のセルのみを変更の対象とするような制約条件を課しておく。この場合、ステップＳ３３において、スラックが正のネットのみが処理対象として選択される。
【００６４】
次に、変更されたセルを用いてネットの電力の総和を評価し（ステップＳ３６）、総消費電力が改善されたか否かをチェックする（ステップＳ３７）。総消費電力が減少していれば、ブロックテーブルにおいて、変更されたセルを含むブロックのセル使用面積を変更する（ステップＳ３８）。また、総消費電力が減少していなければ、セルのパワータイプを元に戻す（ステップＳ３９）。
【００６５】
次に、選択されたネットに接続された他のセルがあるか否かをチェックし（ステップＳ４０）、他のセルがあれば、ステップＳ３４以降の処理を繰り返す。また、そのネットに接続されたすべてのセルについて処理が終了すると、未処理の他のネットがあるか否かをチェックする（ステップＳ４１）。他のネットがあれば、ステップＳ３３以降の処理を繰り返し、未処理のネットがなくなると、処理を終了する。
【００６６】
次に、図２２は、タイミングを改善するために行われるバッファ挿入／削除処理のフローチャートである。この処理では、ある分割レベルにおいて、スラックの値が小さい順にネットをソートし、スラックが負であるネットに関して、与えられた制約条件を満たしている範囲内で、そのネットにバッファを挿入したり、そのネットからバッファを削除したりする。
【００６７】
図２２のステップＳ５１〜Ｓ５３の処理は、図１３のステップＳ１１〜Ｓ１３の処理と同様である。配置装置は、ステップＳ５３においてネットを選択すると、（４）、（５）式を含む与えられた制約条件が満たされる範囲内でネットのスラックが改善されるように、選択されたネットに新たなバッファを挿入するか、あるいは、そのネットから既存のバッファを削除する（ステップＳ５４）。このとき、バッファを挿入する位置は、ブロック座標により指定される位置に限定する。
【００６８】
バッファの挿入／削除により、セルテーブル、ブロックテーブル、ネットテーブル等の情報が変更される。（４）式が満たされるようにバッファを挿入／削除することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずにタイミングを改善することができる。
【００６９】
そして、ステップＳ５２以降の処理を繰り返し、スラックが負のネットがなくなると、処理を終了する。
例えば、図１４のソート結果において、ネットＮ３が処理対象として選択されたとする。このとき、図１４より、ネットＮ４のスラックは“５”であり、ネットＮ４のタイミングには余裕があることが分かる。そこで、ネットＮ４に接続されたセルＣ２の入力側にバッファを挿入して、ネットＮ３のサイズを小さくすれば、ネットＮ３の遅延が減少し、ネットＮ３、Ｎ５のスラックが改善されると考えられる。
【００７０】
そこで、配置装置は、図２３に示すように、ネットＮ３上のブロック座標（０，２）の位置にパワータイプ“ＬＯＷ”のバッファＣ４を挿入して、ネットＮ３を小さくし、新たなネットＮ６を生成する（ステップＳ５４）。これにより、図４のセルテーブルには、ライブラリ識別子Ｌ６を持つセルＣ４が追加され、図５のネットテーブルには、ネットＮ６が追加される。
【００７１】
また、図３のライブラリテーブルより、バッファＬ６の面積は“２”であるので、図６のブロックテーブルにおいて、ブロック（０，２）のｂｌｏｃｋ＿ｃｅｌｌ＿ａｒｅａ（０，２）は“０”から“２”に変更される。しかし、ブロック（０，２）のｂｌｏｃｋ＿ａｒｅａ＿ｃａｐａ（０，２）は“７”であるため、バッファＬ６を挿入しても、（４）式は満たされている。
【００７２】
また、図９、図１０、および図１１に示した数値は、それぞれ、図２４、図２５、および図２６に示すように変更される。図２３においては、ネットＮ３がまたぐブロック間の境界の数が“４”から“３”に減少しているため、図２４においても、ネットＮ３の遅延が“４”から“３”に減少している。また、ネットＮ６はブロック（０，１）とブロック（０，２）の境界をまたいでいるため、ネットＮ６の遅延は“１”となっている。
【００７３】
また、図２５においては、ネットＮ５のパスの遅延が“１８”から“１７”に減少し、逆に、ネットＮ４のパスにおいては、遅延“４”のバッファＣ４が挿入されたために、パスの遅延が“１７”から“２１”に増加している。
【００７４】
そして、図２６においては、ネットＮ５のスラックが“−１”から“０”に改善されている。これに伴って、ネットＮ１、Ｎ２、およびＮ３の各端点における“要求された到着時刻”に“１”が加算され、これらのネットのスラックも“−１”から“０”に改善されている。逆に、ネットＮ４のスラックは“５”から“１”に減少しているが、スラックが負のネットがなくなったことで、回路全体としてはスラックが改善されたことになる。
【００７５】
次に、図２７は、配線率を改善するために行われるバッファ削除処理のフローチャートである。この処理では、ある分割レベルにおいて、各ブロックのセル使用余裕度を求め、その値の小さい順にブロックをソートする。そして、与えられた制約条件を満たしている範囲内で、余裕のないブロックに含まれているバッファを削除する。
【００７６】
図２７のステップＳ６１〜Ｓ６４の処理は、図１９のステップＳ２１〜Ｓ２４の処理と同様である。配置装置は、ステップＳ６４においてブロックを選択すると、次に、選択されたブロック内のバッファを１つ選択する（ステップＳ６５）。
【００７７】
そして、（４）、（５）式を含む与えられた制約条件が満たされる範囲内でブロックのセル使用余裕度が改善されるように、選択されたバッファを削除する（ステップＳ６６）。
【００７８】
このとき、（４）式が満たされるようにバッファを削除することにより、セル使用率を一定値以内に抑えることができ、配線率の改善と消費電力の最小化を図ることができる。さらに、タイミング破綻を防止するために、タイミングに余裕のあるパス上のバッファのみを削除の対象とするような制約条件を課しておく。
【００７９】
次に、選択されたブロック内に他のバッファがあるか否かをチェックし（ステップＳ６７）、他のバッファがあれば、ステップＳ６５以降の処理を繰り返す。また、そのブロック内のすべてのバッファについて処理が終了すると、他のブロックについてステップＳ６３以降の処理を繰り返す。そして、余裕のないブロックがなくなると、処理を終了する。
【００８０】
次に、図２８は、消費電力を改善するために行われるバッファ削除処理のフローチャートである。この処理では、ある分割レベルにおいて、各ネットの電力を求め、その値の大きい順にネットをソートする。そして、与えられた制約条件を満たしている範囲内で、すべてのネットの電力の総和が小さくなるように、各ネットに接続されているバッファを削除する。
【００８１】
図２８のステップＳ７１〜Ｓ７３の処理は、図２１のステップＳ３１〜Ｓ３３の処理と同様である。配置装置は、ステップＳ７３においてネットを選択すると、選択されたネットに接続されたバッファを１つ選択する（ステップＳ７４）。
【００８２】
そして、（４）、（５）式を含む与えられた制約条件が満たされる範囲内でネットの電力が改善されるように、選択されたバッファを削除する（ステップＳ７５）。
【００８３】
このとき、（４）式が満たされるようにバッファを削除することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずに消費電力の最小化を図ることができる。さらに、タイミング破綻を防止するために、タイミングに余裕のあるパス上のバッファのみを削除の対象とするような制約条件を課しておく。この場合、ステップＳ７３において、スラックが正のネットのみが処理対象として選択される。
【００８４】
次に、選択されたネットに接続された他のバッファがあるか否かをチェックし（ステップＳ７６）、他のバッファがあれば、ステップＳ７４以降の処理を繰り返す。また、そのネットに接続されたすべてのバッファについて処理が終了すると、未処理の他のネットがあるか否かをチェックする（ステップＳ７７）。他のネットがあれば、ステップＳ７３以降の処理を繰り返し、未処理のネットがなくなると、処理を終了する。
【００８５】
以上説明した基本処理において、バッファを挿入／削除する処理には、バッファと同様の機能を持つ１つ以上のセルを挿入／削除する処理も含まれる。例えば、この処理において、連続した偶数個のインバータを挿入／削除してもよい。
【００８６】
次に、これらの基本処理を参照しながら、図１２のステップＳ５、Ｓ６、およびＳ７における処理を説明する。
図２９は、図１２のステップＳ５におけるタイミング改善処理のフローチャートである。この処理においては、図１３のセル変更処理と図２２のバッファ挿入／削除処理を組み合わせることで、より効果的にタイミングを改善する。
【００８７】
図２９のステップＳ８１〜Ｓ８３の処理は、図１３のステップＳ１１〜Ｓ１３の処理と同様である。配置装置は、ステップＳ８３においてネットを選択すると、図１３のステップＳ１４〜Ｓ２０の処理を行って、選択されたネットに接続されたセルのパワータイプを変更する（ステップＳ８４）。
【００８８】
そして、ステップＳ２０において未処理の他のセルがなくなると、次に、図２２のステップＳ５４の処理を行って、選択されたネットにバッファを挿入したり、そのネットからバッファを削除したりする（ステップＳ８５）。そして、ステップＳ８２以降の処理を繰り返し、ステップＳ８２においてスラックが負のネットがなくなると、処理を終了する。
【００８９】
次に、図３０は、図１２のステップＳ６における配線率改善処理のフローチャートである。この処理においては、図１９のセル変更処理と図２７のバッファ削除処理を組み合わせることで、より効果的に配線率を改善する。
【００９０】
図３０のステップＳ９１〜Ｓ９４の処理は、図１９のステップＳ２１〜Ｓ２４の処理と同様である。配置装置は、ステップＳ８４においてブロックを選択すると、図１９のステップＳ２５〜Ｓ２７の処理を行って、選択されたブロック内のセルのパワータイプを変更する（ステップＳ９５）。
【００９１】
そして、ステップＳ２７において未処理の他のセルがなくなると、次に、図２７のステップＳ６５〜Ｓ６７の処理を行って、選択されたブロック内のバッファを削除する（ステップＳ９６）。そして、ステップＳ６７において未処理の他のバッファがなくなると、ステップＳ９３以降の処理を繰り返し、ステップＳ９３において余裕のないブロックがなくなると、処理を終了する。
【００９２】
図３１は、図１２のステップＳ７における消費電力改善処理のフローチャートである。この処理においては、図２１のセル変更処理と図２８のバッファ削除処理を組み合わせることで、より効果的に消費電力を改善する。
【００９３】
図３１のステップＳ１０１〜Ｓ１０３の処理は、図２１のステップＳ３１〜Ｓ３３の処理と同様である。配置装置は、ステップＳ１０３においてネットを選択すると、図２１のステップＳ３４〜Ｓ４０の処理を行って、選択されたネットに接続されたセルのパワータイプを変更する（ステップＳ１０４）。
【００９４】
そして、ステップＳ４０において未処理の他のセルがなくなると、次に、図２８のステップＳ７４〜Ｓ７６の処理を行って、選択されたネットからバッファを削除する（ステップＳ１０５）。そして、ステップＳ７６において未処理の他のバッファがなくなると、未処理の他のネットがあるか否かをチェックする（ステップＳ１０６）。他のネットがあれば、ステップＳ１０３以降の処理を繰り返し、ステップＳ１０６において他のネットがなくなると、処理を終了する。
【００９５】
ところで、本実施形態の配置装置は、図３２に示すような情報処理装置（コンピュータ）を用いて構成することができる。図３２の情報処理装置は、ＣＰＵ（中央処理装置）１１、メモリ１２、入力装置１３、出力装置１４、外部記憶装置１５、媒体駆動装置１６、およびネットワーク接続装置１７を備え、それらはバス１８により互いに接続されている。
【００９６】
メモリ１２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムとデータを格納する。ＣＰＵ１１は、メモリ１２を利用してプログラムを実行することにより、必要な処理を行う。
【００９７】
図３のライブラリテーブル、図４のセルテーブル、図５のネットテーブル、図６のブロックテーブル、図７および図８のリスト等のデータは、メモリ１２に保持される。
【００９８】
入力装置１３は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、ユーザからの指示や情報の入力に用いられる。出力装置１４は、例えば、ディスプレイ、プリンタ、スピーカ等であり、ユーザへのメッセージや処理結果の出力に用いられる。
【００９９】
外部記憶装置１５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク（magneto-optical disk）装置等である。情報処理装置は、この外部記憶装置１５に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ１２にロードして使用することができる。また、外部記憶装置１５は、図３のライブラリテーブルを格納するデータベースとしても用いられる。
【０１００】
媒体駆動装置１６は、可搬記録媒体１９を駆動し、その記録内容にアクセスする。可搬記録媒体１９としては、メモリカード、フロッピーディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体１９に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ１２にロードして使用することができる。
【０１０１】
ネットワーク接続装置１７は、任意のネットワーク（回線）を介して外部の装置と通信し、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、ネットワーク接続装置１７を介して上述のプログラムとデータを外部の装置から受け取り、それらをメモリ１２にロードして使用することができる。
【０１０２】
図３３は、図３２の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体１９や外部のデータベース２０に保存されたプログラムとデータは、メモリ１２にロードされる。そして、ＣＰＵ１１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【０１０３】
【発明の効果】
本発明によれば、電子回路の自動レイアウトにおいて領域の論理分割に基づくセル配置を行うとき、各分割レベルにおいてセルのパワータイプの変更やバッファの挿入／削除を行うことで、タイミング、配線率、および消費電力を改善することができる。これにより、配線による遅延を指定された範囲内に抑えることが可能になり、回路のパフォーマンスが向上する。
【図面の簡単な説明】
【図１】本発明の配置装置の原理図である。
【図２】セルの配置を示す図である。
【図３】ライブラリテーブルを示す図である。
【図４】セルテーブルを示す図である。
【図５】ネットテーブルを示す図である。
【図６】ブロックテーブルを示す図である。
【図７】第１のリストを示す図である。
【図８】第２のリストを示す図である。
【図９】第１のセルとネットの遅延を示す図である。
【図１０】第１のパス遅延を示す図である。
【図１１】第１のスラックを示す図である。
【図１２】配置処理のフローチャートである。
【図１３】第１のセル変更処理のフローチャートである。
【図１４】ネットテーブルのソート結果を示す図である。
【図１５】ゲートの変更を示す図である。
【図１６】第２のセルとネットの遅延を示す図である。
【図１７】第２のパス遅延を示す図である。
【図１８】第２のスラックを示す図である。
【図１９】第２のセル変更処理のフローチャートである。
【図２０】ブロックテーブルのソート結果を示す図である。
【図２１】第３のセル変更処理のフローチャートである。
【図２２】バッファ挿入／削除処理のフローチャートである。
【図２３】バッファの挿入を示す図である。
【図２４】第３のセルとネットの遅延を示す図である。
【図２５】第３のパス遅延を示す図である。
【図２６】第３のスラックを示す図である。
【図２７】第１のバッファ削除処理のフローチャートである。
【図２８】第２のバッファ削除処理のフローチャートである。
【図２９】タイミング改善処理のフローチャートである。
【図３０】配線率改善処理のフローチャートである。
【図３１】消費電力改善処理のフローチャートである。
【図３２】情報処理装置の構成図である。
【図３３】記録媒体を示す図である。
【符号の説明】
１  格納手段
２  変更手段
１１  ＣＰＵ
１２  メモリ
１３  入力装置
１４  出力装置
１５  外部記憶装置
１６  媒体駆動装置
１７  ネットワーク接続装置
１８  バス
１９  可搬記録媒体
２０  データベース
【図１】
0003804901.tif 000002
【図２】
0003804901.tif 000003
【図３】
0003804901.tif 000004
【図４】
0003804901.tif 000005
【図５】
0003804901.tif 000006
【図６】
0003804901.tif 000007
【図７】
0003804901.tif 000008
【図８】
0003804901.tif 000009
【図９】
0003804901.tif 000010
【図１０】
0003804901.tif 000011
【図１１】
0003804901.tif 000012
【図１２】
0003804901.tif 000013
【図１３】
0003804901.tif 000014
【図１４】
0003804901.tif 000015
【図１５】
0003804901.tif 000016
【図１６】
0003804901.tif 000017
【図１７】
0003804901.tif 000018
【図１８】
0003804901.tif 000019
【図１９】
0003804901.tif 000020
【図２０】
0003804901.tif 000021
【図２１】
0003804901.tif 000022
【図２２】
0003804901.tif 000023
【図２３】
0003804901.tif 000024
【図２４】
0003804901.tif 000025
【図２５】
0003804901.tif 000026
【図２６】
0003804901.tif 000027
【図２７】
0003804901.tif 000028
【図２８】
0003804901.tif 000029
【図２９】
0003804901.tif 000030
【図３０】
0003804901.tif 000031
【図３１】
0003804901.tif 000032
【図３２】
0003804901.tif 000033
【図３３】
0003804901.tif 000034