(57)【要約】【課題】本発明は、回路設計において短い処理時間で終了することが可能な遅延調整方法及び遅延調整システムを提供することを目的とする。【解決手段】遅延調整方法は、レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを判断する段階と、１つの処理が可能であるとの判断に応じてレイアウト情報を含む回路記述において処理を実行する各段階を含む。【選択図】図２
2004252762.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを判断する段階と、
該１つの処理が可能であるとの判断に応じて該レイアウト情報を含む回路記述において該処理を実行する
各段階を含むことを特徴とする遅延調整方法。
【請求項２】
該レイアウト情報を含む回路記述において遅延計算を実行し、
該遅延計算の結果と目標遅延時間との差に基づいて遅延調整量を求め、
該遅延調整量を少なくするように該少なくとも１つの処理を選択する
各段階を更に含むことを特徴とする請求項１記載の遅延調整方法。
【請求項３】
該処理が実行された該レイアウト情報を含む回路記述に対して遅延計算を実行する段階を更に含むことを特徴とする請求項２記載の遅延調整方法。
【請求項４】
レイアウト情報を含む回路記述において指定位置に指定セルが配置可能か否かを判断する配置情報管理ユニットと、
該レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを該配置情報管理ユニットに判断させ、該１つの処理が可能であるとの判断に応じて該レイアウト情報を含む回路記述において該処理を実行するセル最適化ユニット
を含むことを特徴とする遅延調整システム。
【請求項５】
該セル最適化ユニットは、該レイアウト情報を含む回路記述において実行した遅延計算の結果と目標遅延時間との差に基づいて遅延調整量を求め、該遅延調整量を少なくするように該少なくとも１つの処理を選択し、配置情報管理ユニットに対して該選択された処理に関わる指定セル及び指定位置を通知することを特徴とする請求項４記載の遅延調整システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に論理回路設計方法及び論理回路設計システムに関し、詳しくは、論理回路レイアウトにおいて遅延を調整する遅延調整方法及び遅延調整システムに関する。
【従来の技術】
従来の論理設計の遅延調整においては、レイアウト設計後にタイミング検証を行い、このタイミング検証で問題が発見されると、タイミングに問題がある回路部分のレイアウトを変更する。レイアウト変更後に再びタイミング検証を行い、このタイミング検証でまた問題が発見されれば、問題がある回路部分のレイアウトを変更する。このようにタイミング検証及びレイアウト変更を繰り返すことによって、タイミング違反がなくなるように論理回路の設計に関して収束を図っていた。
【０００２】
図１は、従来の遅延調整処理の流れを示すフローチャートである。
【０００３】
図１において、ステップＳＴ１で、回路記述に従いセルをチップ上の各位置に配置しセル間を配線することで、設計対象の論理回路のレイアウト（配置・配線）を作成する。
【０００４】
ステップＳＴ２で、配線の抵抗及び容量（ＲＣ）を抽出し、配線ＲＣを含む回路記述を生成する。配線ＲＣとは、一連の抵抗Ｒと容量Ｃとを交互に連結することにより配線の特性を表現するものであり、対象となる配線の遅延を計算するために用いられる。
【０００５】
ステップＳＴ３で、遅延時間調整を行う。遅延時間調整においては、まず配線ＲＣに基づいた遅延計算を行なう。得られた遅延計算の結果と種々の制約条件とに基づいて、セルの挿入／削除／置換／移動等により、レイアウトを変更して遅延を調整する。この制約条件には、所望の遅延時間を示す遅延時間に関する制約条件に加えて、信号スキュー（タイミングのずれ）についての制約、ドライバビリティ（ドライバの駆動能力）についての制約、信号波形のなまり具合を示すスルーレート（ＳＲ）に関する制約等がある。
【０００６】
ステップＳＴ３における遅延時間調整の結果、新たな回路記述が生成される。その後ステップＳＴ１に戻り、新たな回路記述から設計対象の論理回路のレイアウト（配置・配線）を作成し、以降のステップを繰り返す。
【０００７】
以上のようにして、タイミング検証及びレイアウト変更を繰り返す。タイミング検証の結果、所望の遅延時間が達成されたと判断される場合には、現在のレイアウトをタイミング検証済みレイアウトとして出力する。
【０００８】
【特許文献１】
特開平７−１４９２７号公報
【発明が解決しようとする課題】
図１に示すように、タイミング検証及びレイアウト変更を繰り返しレイアウトの収束を図る方法では、レイアウト変更するたびに配線抵抗及び配線容量の抽出処理と遅延時間計算処理を実行するので、レイアウトを収束させるまでに時間がかかるという問題がある。
【０００９】
以上を鑑みて、本発明は、回路設計において短い処理時間で終了することが可能な遅延調整方法及び遅延調整システムを提供することを目的とする。
【課題を解決するための手段】
本発明による遅延調整方法は、レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを判断する段階と、該１つの処理が可能であるとの判断に応じて該レイアウト情報を含む回路記述において該処理を実行する各段階を含むことを特徴とする。
【００１０】
また本発明による遅延調整システムは、レイアウト情報を含む回路記述において指定位置に指定セルが配置可能か否かを判断する配置情報管理ユニットと、該レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを該配置情報管理ユニットに判断させ、該１つの処理が可能であるとの判断に応じて該レイアウト情報を含む回路記述において該処理を実行するセル最適化ユニットを含むことを特徴とする。
【００１１】
上記のようにして、セル最適化ユニットは、レイアウト情報に基づき、セルの挿入／削除／置換／移動等の処理が可能か否かを判断しながら遅延を調整する。全ての処理はレイアウト情報に基づいて行われるため、配線ＲＣを含む回路記述において遅延計算及び遅延調整を必要に応じて繰り返せばよく、配線抵抗及び配線容量を抽出する処理を再度実行する必要は無い。従って、短い処理時間で遅延調整を終了することが可能となる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１２】
図２は、本発明による遅延調整処理システムの構成を示す図である。
【００１３】
図２の遅延調整処理システム１０は、セル最適化ユニット１１、配置情報管理ユニット１２、回路記述データ１３、及び制約条件データ１４を含む。
【００１４】
セル最適化ユニット１１は、配線ＲＣを含む回路記述データ１３から遅延時間を計算し、遅延計算の結果と所定の制約条件とに基づいて、回路記述データ１３上においてセルの挿入／削除／置換／移動等を行いセルを最適化する。この所定の制約条件は、制約条件データ１４として提供される。制約条件データ１４には、所望の遅延時間を示す遅延時間の制約に加え、信号スキュー（タイミングのずれ）についての制約、ドライバビリティ（ドライバの駆動能力）についての制約、信号波形のなまり具合を示すスルーレート（ＳＲ）に関する制約等が規定されている。セル最適化ユニット１１は、制約条件データ１４を参照しながら、これらの制約を満たすようにセルの挿入／削除／置換／移動等を行う。
【００１５】
配置情報管理ユニット１２は、回路記述データ１３に示される各セル及び配線のサイズ及び位置等の情報に基づいて、ある位置に対してセルを配置可能か否かを示す配置可否判定用データを保持している。この配置可否判定用データは例えば、チップ上の領域を配置可能領域と配置不可能領域とに区分して示すデータである。
【００１６】
所望の位置におけるセルの挿入／置換／移動等が可能か否かを判断するために、セル最適化ユニット１１は、挿入／置換／移動するセルの位置に関する位置情報及び挿入／置換／移動するセルのサイズ等に関するセル情報を配置情報管理ユニット１２に供給する。供給されたこれらの情報に基づいて、配置情報管理ユニット１２は、配置可否判定用データを参照してセルの挿入／置換／移動が可能であるか否かを判定する。判定結果は、配置情報管理ユニット１２からセル最適化ユニット１１に通知される。
【００１７】
セル最適化ユニット１１は、配置情報管理ユニット１２からの通知に基づいて、指定した位置へのセルの挿入／置換／移動が可能な場合には挿入／置換／移動等の処理を実行する。指定した位置へのセルの挿入／置換／移動が不可能な場合には、新たな位置を指定し直して、この位置について挿入／置換／移動等が可能か否かを配置情報管理ユニット１２に問い合わせる。このようにして、セル最適化ユニット１１は、所望の位置におけるセルの挿入／置換／移動等の処理が可能か否かを判断しながら、セルの挿入／削除／置換／移動等の処理を実行して遅延を調整する。遅延調整により最適化された結果は、最適セルによる回路記述１６として出力される。
【００１８】
上記のようにして、セル最適化ユニット１１は、レイアウト情報を含む回路記述に基づき、セルの挿入／削除／置換／移動等の処理が可能か否かを判断しながら遅延を調整する。全ての処理はレイアウト情報に基づいて行われ、配線ＲＣを含む回路記述において遅延計算及び遅延調整を必要に応じて繰り返すだけでよく、配線抵抗及び配線容量を抽出する処理を再度実行する必要は無い。従って、短い処理時間で遅延調整を終了することが可能となる。
【００１９】
図１に示されるように、セル最適化ユニット１１は、回路記述データ１３を読み込む回路記述読み込み処理２１と、遅延時間の最適化を行う単位を決定する最適化単位認識処理２２と、遅延時間を調整する遅延時間調整処理２３と、遅延時間調整結果を主力する調整結果出力処理２４を含む。
【００２０】
まず回路記述読み込み処理２１により回路記述データ１３の回路記述を読み込み、メモリ上に回路情報を構築する。次に最適化単位認識処理２２により、メモリ上に構築された回路を最適化単位に分割する。ここで最適化単位とは、回路上のセルと配線とからなる１つの纏まりであり、この最適化単位毎に、各配線上で遅延時間を調整する。
【００２１】
図３は、最適化単位の設定の具体例を示す図である。
【００２２】
図３は、遅延調整対象の回路の具体例を示し、この回路は、バッファ５１乃至５６、フリップフロップ５７乃至６２、及びセレクタ６３を含む。ノードｎ０はスタートノードであり、ノードｎ１、ｎ２、ｎ５、及びｎ６は分岐ノードである。またノードｎ３及びｎ４は収斂ノードであり、ノードｎ７乃至ｎ１１はエンドノードである。ここで分岐ノード及び収斂ノードとは、抵抗若しくはセルが合わせて３つ以上接続するノード、又は、セル内にパスの分岐若しくは収斂が存在する場合には複数のピンにパスが分かれている側の入力ノード又は出力ノードである。
【００２３】
図３において、点線で囲まれた領域３１乃至４１が最適化単位である。図に示されるように、スタートノード、分岐ノード、収斂ノード、及びエンドノードについて、何れかのノードに挟まれた配線及びセルの集まりを１つの最適化単位として定義する。最適化単位には必ず配線が含まれ、またセルは０以上含まれる。
【００２４】
上述のように最適化単位認識処理２２により最適化単位が設定されると、次に遅延時間調整処理２３が実行される。
【００２５】
図４は、遅延時間調整処理２３の処理の流れを示すフローチャートである。図５は、図３の回路についての遅延調整処理の具体例を説明するための図である。
【００２６】
遅延時間調整処理２３において、まずステップＳＴ１で、配線ＲＣを含む回路記述に基づいて遅延計算を実行する。具体的には、信号のスタートノードから開始して、各パスを辿りながらセル及び配線の遅延を順次加算していく。途中の収斂ノードにおいては、遅延量をマージした時に、収斂する複数のパス間の遅延量の差分情報を保存しておく。
【００２７】
これにより図５に示されるように、例えばエンドノードｎ７においては、遅延時間７７０ｐｓ（ピコセカンド）後にスタートノードｎ０から信号が到達することが分かる。同様に、エンドノードｎ８においては遅延時間７８０ｐｓ、エンドノードｎ９においては遅延時間９３０ｐｓ、エンドノードｎ１０においては遅延時間９４０ｐｓ、エンドノードｎ１１においては遅延時間９５０ｐｓとなっている。またセレクタ６３の位置においては、差分情報として、例えばＡ入力はＢ入力より遅延時間が１００ｐｓ長いといった情報が記録される。
【００２８】
次にステップＳＴ２において、最適化単位毎に調整時間を計算する。図５の例において所望の遅延時間（目標遅延時間）が１０００ｐｓであるとすると、例えば最適化単位３５については、エンドノードｎ７の遅延時間７７０ｐｓであるから２３０ｐｓだけ遅延時間を長くする必要がある。同様に最適化単位３６については、２２０ｐｓだけ遅延時間を長くする必要がある。最適化単位３２については、最適化単位３５と最適化単位３６との一段前に位置しているので、最適化単位３５の遅延調整量２３０ｐｓと最適化単位３６の遅延調整量２２０ｐｓとの小さい方である２２０ｐｓが最適化単位３２の遅延調整量となる。何故なら、最適化単位３２の位置において遅延調整量２２０ｐｓを実現できているとすると、最適化単位３５において１０ｐｓの遅延調整をすればよく、また最適化単位３６においては遅延調整無しでよいからである。
【００２９】
同様に、ノードｎ９乃至ｎ１１から遡ることで、最適化単位３３については５０ｐｓだけ遅延時間を長くする必要があることが分かる。また保存されている差分情報に従えば、ノードｎ１からノードｎ３までの遅延時間とノードｎ１からノードｎ４までの遅延時間との差が１００ｐｓであるので、最適化単位３４には１５０ｐｓだけ遅延時間を長くする必要があることが分かる。
【００３０】
従って、最適化単位３１における遅延調整量は、最適化単位３２乃至３４の遅延調整量のうちの最小値である５０ｐｓとなる。最適化単位３１において５０ｐｓの遅延調整を実現すれば、最適化単位３２においては１７０ｐｓの遅延調整をし、最適化単位３３においては遅延調整無しでよいことになる。
【００３１】
このようにして、エンドノード側で最適化単位毎に必要な遅延調整量を割り当て、スタートノード側に遡りながら、下流側の最適化単位の遅延調整量に基づいて上流側の最適化単位の遅延調整量を決定していく。分岐ノード上流側の最適化単位には、分岐ノード下流側の複数の遅延調整量の内で最小の遅延調整量を割り当てるようにする。また収斂ノード上流側の複数の最適化単位については、記録されている差分情報に従って遅延調整量に差をもたせる。このようにして成るべくスタートノードｎ１に近い側で必要な遅延調整量を実現するようにすれば、その後段において、遅延調整をする必要がある最適化単位が少なくなり、効率的な遅延調整処理を実現することが出来る。
【００３２】
図６は、遅延時間を増大させる遅延調整と遅延時間を減少させる遅延調整が混在する場合の遅延調整処理の具体例を説明するための図である。
【００３３】
図６において、各エンドノードにおける遅延時間は図５の場合と同一であり、エンドノードｎ７は遅延時間７７０ｐｓ、エンドノードｎ８は遅延時間７８０ｐｓ、エンドノードｎ９は遅延時間９３０ｐｓ、エンドノードｎ１０は遅延時間９４０ｐｓ、エンドノードｎ１１は遅延時間９５０ｐｓとなっている。但し、図６の例においては、所望の遅延時間（目標遅延時間）が８００ｐｓであると仮定されている。
【００３４】
最適化単位３５については、エンドノードｎ７の遅延時間７７０ｐｓであるから３０ｐｓだけ遅延時間を長くする必要がある。同様に最適化単位３６については、２０ｐｓだけ遅延時間を長くする必要がある。最適化単位３２については、最適化単位３５と最適化単位３６との一段前に位置しているので、最適化単位３５の遅延調整量３０ｐｓと最適化単位３６の遅延調整量２０ｐｓとの小さい方である２０ｐｓが遅延調整量となる。
【００３５】
最適化単位４０については、エンドノードｎ１０の遅延時間９４０ｐｓであるから−１４０ｐｓだけ遅延時間を調整する必要がある（１４０ｐｓだけ遅延時間を短くする必要がある）。同様に最適化単位４１については、−１５０ｐｓだけ遅延時間を調整する必要がある。最適化単位３９については、最適化単位４０と最適化単位４１との一段前に位置しているので、最適化単位４０の遅延調整量−１４０ｐｓと最適化単位４１の遅延調整量−１５０ｐｓとの調整量（絶対値）が小さい方である−１４０ｐｓが遅延調整量となる。
【００３６】
同様にして、ノードｎ９乃至ｎ１１から遡ることで、最適化単位３３については−１３０ｐｓの遅延調整量となる。また保存されている差分情報に従えば、ノードｎ１からノードｎ３までの遅延時間とノードｎ１からノードｎ４までの遅延時間との差が１００ｐｓであるので、最適化単位３４は−３０ｐｓの遅延調整量となることが分かる。
【００３７】
従って、最適化単位３１における遅延調整量は、最適化単位３２乃至３４の遅延調整量の範囲のうちで最小の値である０ｐｓとなる。即ち、−１３０ｐｓから２０ｐｓまでの調整量の範囲のうちで最も調整量が小さい値（絶対値が小さい値）である０ｐｓが選択される。最適化単位３１において０ｐｓの遅延調整を実現すれば、最適化単位３２においては２０ｐｓの遅延調整をし、最適化単位３３においては−１３０ｐｓの遅延調整をすればよいことになる。
【００３８】
このようにして、エンドノード側で最適化単位毎に必要な遅延調整量を割り当て、スタートノード側に遡りながら、下流側の最適化単位の遅延調整量に基づいて上流側の最適化単位の遅延調整量を決定していく。分岐ノード上流側の最適化単位には、分岐ノード下流側の複数の遅延調整量が分布する範囲の内で絶対値が最小の遅延調整量を割り当てるようにする。また収斂ノード上流側の複数の最適化単位については、記録されている差分情報に従って遅延調整量に差をもたせる。このようにして成るべくスタートノードｎ１に近い側で必要な遅延調整量を実現するようにすれば、その後段において、遅延調整をする必要がある最適化単位が少なくなると共に必要な遅延調整量が小さくなり、効率的な遅延調整処理を実現することが出来る。
【００３９】
図７は、遅延調整処理の更に別の具体例を説明するための図である。
【００４０】
図５及び図６の例では、遅延時間を求める際に、収斂ノードに対応するセル（セレクタ６３）において遅延量をマージしたときに、差分情報を求めて保存しておく構成となっている。図７の例では、遅延量をマージすることなく全てのパスについての遅延時間を求めておいて、最適化単位毎の遅延調整量を求める。この場合には、全てのパスについての遅延時間と目標遅延時間との差分のうちで、最も絶対値の小さい値を遅延調整量として選択するが、正負両方の値がある場合には遅延調整量を０とする。
【００４１】
図７において、各エンドノードにおける遅延時間は図５及び図６の場合と同一であり、エンドノードｎ７は遅延時間７７０ｐｓ、エンドノードｎ８は遅延時間７８０ｐｓである。またセレクタ６３がＡ入力を選択した条件で、エンドノードｎ９は遅延時間９３０ｐｓ、エンドノードｎ１０は遅延時間９４０ｐｓ、エンドノードｎ１１は遅延時間９５０ｐｓとなっている。またセレクタ６３がＢ入力を選択した条件で、エンドノードｎ９は遅延時間８３０ｐｓ、エンドノードｎ１０は遅延時間８４０ｐｓ、エンドノードｎ１１は遅延時間８５０ｐｓとなっている。また図７の例においては、所望の遅延時間（目標遅延時間）が９００ｐｓであると仮定されている。
【００４２】
例えばノードｎ９において、セレクタ６３がＡ入力を選択した場合には遅延時間は９３０ｐｓであるが、セレクタ６３がＢ入力を選択した場合には遅延時間は８３０ｐｓとなっている。この遅延時間９３０ｐｓと８３０ｐｓとの間に、所望の遅延時間９００ｐｓが存在することになる。このような場合には、最適化単位３７乃至４１には遅延量０ｐｓを割り当てて、最適化単位３３には遅延調整量−３０ｐｓ、最適化単位３４には遅延調整量７０ｐｓを割り当てればよい。
【００４３】
図４を再び参照し、ステップＳＴ３において、最適化単位を選択する。例えば入力ノード側から最適化単位に順番に番号をふり、番号の小さいものから順番に選択していく。ステップＳＴ４において、順次選択される最適化単位に対して、ステップＳＴ２で求めた遅延調整量が小さくなるように、セルの挿入／削除／置換／移動処理を実行する。その後ステップＳＴ５において、再度遅延計算を行なう。更にステップＳＴ６及びＳＴ７で制約チェックを実行し、所定の制約が満たされるか又は残りの全ての最適化単位に対してセル挿入／削除／置換／移動処理が実行できなくなるまで、上記処理を繰り返す。
【００４４】
図８は、セルを挿入／削除／置換／移動する処理の流れを示すフローチャートである。図８の処理において、セルを挿入／削除／置換／移動する対象は、選択された最適化単位である。この選択された最適化単位は一つ以上の配線を含む。
【００４５】
ステップＳＴ１において、最適化単位の中の配線を一つ選択する。選択順としては、例えば配線長の長い順、又は短い順、クロックソースから近い順、遠い順等が考えられる。
【００４６】
ステップＳＴ２において、選択された配線の遅延時間と、その配線を駆動する側に接続されたセルの遅延時間とを比較する。但し、駆動する側にセルが接続されていない（セルではなく配線が接続されている）場合は、存在しないセルに対しての削除／置換／移動処理はできないので、挿入しようとするセルの遅延時間を比較対象とする。配線遅延時間とセル遅延時間との比と、選択されている最適化単位の遅延調整量との関係から、セルの挿入／削除／置換／移動のうち何れの処理を選択するか決定する。
【００４７】
この際の選択条件は例えば以下のように設定する。
場合１：  （遅延調整量）＞＝（セル遅延／２）
（配線遅延／２）＞（セル遅延）  →  セル削除
（配線遅延）＞＝（セル遅延）＞（配線遅延／２）  →  セル置換
（セル遅延）＞＝（配線遅延）  →  セル挿入
場合２：  （セル遅延／２）＞（遅延調整量）＞＝（−セル遅延／２）
セル移動
場合３：  （−セル遅延／２）＞（遅延調整量）
（配線遅延／２）＞（セル遅延）  →  セル挿入
（配線遅延）＞＝（セル遅延）＞（配線遅延／２）  →  セル置換
（セル遅延）＞＝（配線遅延）  →  セル削除
上記のようなルールで処理内容を選択する理由は、例えばセルを挿入すると配線遅延が変化することになるが、この際にセル挿入によるセルの遅延量増加の寄与分と、配線の遅延量変化分を比較考量する必要があるからである。例えば上記場合１は、遅延を増大させる必要があり、しかも必要な遅延調整量が大きい場合に相当する。セルの遅延が配線遅延以上であれば、セルを挿入することで遅延を増大させることができる。但しセルを挿入することで配線遅延が概略１／２になると考えると、配線遅延／２よりもセル遅延が小さいような場合には、セル挿入によりかえって遅延量が減少してしまう。従って、配線遅延／２よりもセル遅延が小さい場合には、セルを削除することで遅延量を増大することができることになる。
【００４８】
ステップＳＴ２でセル挿入を選択した場合は、ステップＳＴ３において挿入するセルを選択し、ステップＳＴ４において挿入位置を配線上から選択する。ステップＳＴ２でセル置換を選択した場合は、ステップＳＴ５において置換するセルを選択する。ステップＳＴ２でセル移動を選択した場合は、ステップＳＴ６において移動位置を配線上から選択する。
【００４９】
ステップＳＴ７で、対象のセルを選択位置に配置可能か否かを判断する。この判断は、配置情報管理ユニット１２がセル情報及び位置情報１５に基づいて行う。配置できない場合にはステップＳＴ８に進み、他の位置候補があるか否かを判断する。他の位置候補がある場合には、ステップＳＴ４又はステップＳＴ６に進み、セルの挿入位置又は移動位置を再選択する。他の配置候補が無い場合には、ステップＳＴ３又はステップＳＴ５に進み、挿入セル又は置換セルを再選択する。ステップＳＴ７で配置可能と判断される場合は、ステップＳＴ９に進む。
【００５０】
なおステップＳＴ２でセル削除を選択した場合は、ステップＳＴ８で削除セルを選択しステップＳＴ９に進む。
【００５１】
ステップＳＴ９において、セルの挿入／削除／置換／移動を行なった場合に、遅延時間がどのように変化するかについて見込み値を計算する。見込み値の計算は例えば以下のように行なう。
【００５２】
配線遅延値Ｔｌｉｎｅの配線の真中に、セル遅延値Ｔｇａｔｅのセルを挿入する場合、
挿入前遅延＝  Ｔｌｉｎｅ；
挿入後遅延＝  Ｔｌｉｎｅ／２  ＋  Ｔｇａｔｅ；
挿入前後の遅延差＝  Ｔｌｉｎｅ  −  （Ｔｌｉｎｅ／２  ＋  Ｔｇａｔｅ）  ＝  Ｔｌｉｎｅ／２  −  Ｔｇａｔｅ；
挿入前の最適化単位の遅延調整量＝  ｓｋｅｗ；
挿入後の最適化単位の遅延調整量＝  ｓｋｅｗ  −  （Ｔｌｉｎｅ／２  −  Ｔｇａｔｅ）；
従って、｜ｓｋｅｗ｜  ＞  ｜ｓｋｅｗ  −  Ｔｌｉｎｅ／２  ＋  Ｔｇａｔｅ｜  ならば、セルの挿入処理を実行する。
【００５３】
ステップＳＴ１０において、上記の例のようにして見込み値を計算した結果、遅延調整量が小さくなるか否かを判断する。遅延調整量が小さくならない場合には、ステップＳＴ２に戻り別条件下で同様の処理を繰り返す。遅延調整量が小さくなる場合には、ステップＳＴ１１に進み、実際にセルの挿入／削除／置換／移動を実行する。このとき挿入／置換／移動したセルの情報と配置位置情報とを、配置情報管理ユニット１２に渡す。これに応じて、配置情報管理ユニット１２は、内部に保持している配置情報（配置可否判定用データ）を更新する。
【００５４】
以上でセルを挿入／削除／置換／移動する処理を終了する。
【００５５】
なおセル挿入／削除／置換／移動処理において、同一の最適化単位内に挿入するセルと削除するセルとの双方が存在する場合には、挿入するセルに削除したセルの名前を使用し、セルの移動として扱っても良い。
【００５６】
図９は、本発明による遅延調整処理を実行する装置の構成を示す図である。
【００５７】
図９に示されるように、本発明による遅延調整処理を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図８の装置は、コンピュータ５１０と、コンピュータ５１０に接続されるディスプレイ装置５２０、通信装置５２３、及び入力装置よりなる。入力装置は、例えばキーボード５２１及びマウス５２２を含む。コンピュータ５１０は、ＣＰＵ５１１、ＲＡＭ５１２、ＲＯＭ５１３、ハードディスク等の二次記憶装置５１４、可換媒体記憶装置５１５、及びインターフェース５１６を含む。
【００５８】
キーボード５２１及びマウス５２２は、ユーザとのインターフェースを提供するものであり、コンピュータ５１０を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置５２０は、コンピュータ５１０で処理された結果等を表示すると共に、コンピュータ５１０を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置５２３は、遠隔地との通信を行なうためのものであり、例えばモデムやネットワークインターフェース等よりなる。
【００５９】
本発明による遅延調整処理は、コンピュータ５１０が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置５１５に装着可能な記憶媒体Ｍに記憶されており、記憶媒体Ｍから可換媒体記憶装置５１５を介して、ＲＡＭ５１２或いは二次記憶装置５１４にロードされる。或いは、このコンピュータプログラムは、遠隔地にある記憶媒体（図示せず）に記憶されており、この記憶媒体から通信装置５２３及びインターフェース５１６を介して、ＲＡＭ５１２或いは二次記憶装置５１４にロードされる。
【００６０】
キーボード５２１及び／又はマウス５２２を介してユーザからプログラム実行指示があると、ＣＰＵ５１１は、記憶媒体Ｍ、遠隔地記憶媒体、或いは二次記憶装置５１４からプログラムをＲＡＭ５１２にロードする。ＣＰＵ５１１は、ＲＡＭ５１２の空き記憶空間をワークエリアとして使用して、ＲＡＭ５１２にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。ＲＡＭ５１２或いは二次記憶装置５１４には、回路記述データ１３及び制約条件データ１４等が格納されている。なおＲＯＭ５１３には、コンピュータ５１０の基本動作を制御するための制御プログラムが格納されている。
【００６１】
上記コンピュータプログラムを実行することで、上記実施例で説明されたように、遅延調整処理を実行する。
【００６２】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００６３】
本発明は以下の内容を含むものである。
（付記１）レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを判断する段階と、
該１つの処理が可能であるとの判断に応じて該レイアウト情報を含む回路記述において該処理を実行する
各段階を含むことを特徴とする遅延調整方法。
（付記２）該レイアウト情報を含む回路記述において遅延計算を実行し、
該遅延計算の結果と目標遅延時間との差に基づいて遅延調整量を求め、
該遅延調整量を少なくするように該少なくとも１つの処理を選択する
各段階を更に含むことを特徴とする付記１記載の遅延調整方法。
（付記３）該処理が実行された該レイアウト情報を含む回路記述に対して遅延計算を実行する段階を更に含むことを特徴とする付記２記載の遅延調整方法。
（付記４）該回路記述を複数の最適化単位に分割する段階を更に含み、該遅延調整量を求める段階は該最適化単位毎に該遅延調整量を求めることを特徴とする付記３記載の遅延調整方法。
（付記５）該最適化単位は、スタートノード、分岐ノード、収斂ノード、及びエンドノードの何れかに挟まれた回路部分として定義されることを特徴とする付記４記載の遅延調整方法。
（付記６）該遅延調整量を求める段階は、
該エンドノード側の最適化単位に対して該遅延計算の結果と該目標遅延時間との差に基づいて遅延調整量を求め、
該エンドノード側から該スタートノード側に向けて下流側の最適化単位の遅延調整量に基づいて上流側の最適化単位の遅延調整量を決定していく
各段階を含むことを特徴とする付記５記載の遅延調整方法。
（付記７）該遅延調整量を決定していく段階は、分岐ノード上流側の最適化単位に対して、該分岐ノード下流側の複数の最適化単位の遅延調整量が分布する範囲の内で絶対値が最小の遅延調整量を割り当てることを特徴とする付記６記載の遅延調整方法。
（付記８）該遅延調整量を決定していく段階は、収斂ノード上流側の複数の最適化単位に対して、予め該収斂ノードに関して記録されている差分情報に従って遅延調整量に差をもたせることを特徴とする付記６記載の遅延調整方法。
（付記９）レイアウト情報を含む回路記述において指定位置に指定セルが配置可能か否かを判断する配置情報管理ユニットと、
該レイアウト情報を含む回路記述においてセルの挿入、削除、置換、及び移動の少なくとも１つの処理が可能か否かを該配置情報管理ユニットに判断させ、該１つの処理が可能であるとの判断に応じて該レイアウト情報を含む回路記述において該処理を実行するセル最適化ユニット
を含むことを特徴とする遅延調整システム。
（付記１０）該セル最適化ユニットは、該レイアウト情報を含む回路記述において実行した遅延計算の結果と目標遅延時間との差に基づいて遅延調整量を求め、該遅延調整量を少なくするように該少なくとも１つの処理を選択し、配置情報管理ユニットに対して該選択された処理に関わる指定セル及び指定位置を通知することを特徴とする付記９記載の遅延調整システム。
【発明の効果】
上記発明によれば、セル最適化ユニットは、レイアウト情報を含む回路記述に基づき、セルの挿入／削除／置換／移動等の処理が可能か否かを判断しながら遅延を調整する。全ての処理はレイアウト情報に基づいて行われ、配線ＲＣを含む回路記述において遅延計算及び遅延調整を必要に応じて繰り返すだけでよく、配線抵抗及び配線容量を抽出する処理を再度実行する必要は無い。従って、短い処理時間で遅延調整を終了することが可能となる。
【図面の簡単な説明】
【図１】従来の遅延調整処理の流れを示すフローチャートである。
【図２】本発明による遅延調整処理システムの構成を示す図である。
【図３】最適化単位の設定の具体例を示す図である。
【図４】遅延時間調整処理の処理の流れを示すフローチャートである。
【図５】図３の回路についての遅延調整処理の具体例を説明するための図である。
【図６】遅延時間を増大させる遅延調整と遅延時間を減少させる遅延調整が混在する場合の遅延調整処理の具体例を説明するための図である。
【図７】遅延調整処理の更に別の具体例を説明するための図である。
【図８】セルを挿入／削除／置換／移動する処理の流れを示すフローチャートである。
【図９】本発明による遅延調整処理を実行する装置の構成を示す図である。
【符号の説明】
１０  遅延調整処理システム
１１  セル最適化ユニット
１２  配置情報管理ユニット
１３  回路記述データ
１４  制約条件データ
１５  セル情報及び位置情報
２１  回路記述読み込み処理
２２  最適化単位認識処理
２３  遅延時間調整処理
２４  調整結果出力処理
３１−４１  最小化単位
５１−５６  インバータ
５７−６２  フリップフロップ
６３  セレクタ
【図１】
2004252762.tif 000003
【図２】
2004252762.tif 000004
【図３】
2004252762.tif 000005
【図４】
2004252762.tif 000006
【図５】
2004252762.tif 000007
【図６】
2004252762.tif 000008
【図７】
2004252762.tif 000009
【図８】
2004252762.tif 000010
【図９】
2004252762.tif 000011