(57)【要約】【課題】  本発明の課題は、挿入するセル及び移動させるセルを既配線上に最適に配置することによって、タイミングＥＣＯの回数を削減することを目的とする。【解決手段】  本発明の課題は、コンピュータが、タイミングエラーを回避するための対象となる既配線上の少なくとも１つ以上の対象セルの出力側の前段セルから該対象セルの入力側の後段セルまでを１つのネットとして定義するネット定義手順と、前記１つのネット内の対象セルの個数より多い数を、前記対象セルを配置する候補となる候補点の個数として算出する候補点個数算出手順と、前記既配線上に複数の前記候補点を配置させ、複数の前記候補点のうち前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置として決定する配置位置決定手順とを有する半導体集積回路のレイアウト処理におけるタイミング調整方法によって達成される。【選択図】  図３
2006004994.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のレイアウト処理におけるタイミング調整方法において、
コンピュータが、
タイミングエラーを回避するための対象となる既配線上の少なくとも１つ以上の対象セルの出力側の前段セルから該対象セルの入力側の後段セルまでを１つのネットとして定義するネット定義手順と、
前記１つのネット内の対象セルの個数より多い数を、前記対象セルを配置する候補となる候補点の個数として算出する候補点個数算出手順と、
前記既配線上に複数の前記候補点を配置させ、複数の前記候補点のうち前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置として決定する配置位置決定手順とを実行することを特徴とするタイミング調整方法。
【請求項２】
前記配置位置決定手順は、
前記１つのネット内の前記既配線上に複数の前記候補点を等間隔で配置する候補点配置手順と、
前記対象セルを前記候補点に配置した場合の該各候補点の容量を抽出する候補点毎容量抽出手順と、
前記抽出された容量に基づいて、前記候補点毎にタイミング検証を行い、そのタイミング検証結果を候補点毎に結果テーブルに出力する候補点毎タイミング検証手順とを有し、
前記結果テーブルを参照し、前記１つのネット内にて前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置とすることを特徴とする請求項１記載のタイミング調整方法。
【請求項３】
前記対象セルを前記決定された配置位置に配置後、前記既配線を変更することなく、未結線部分に対して配線処理を行う未結線配線処理手順を更に有することを特徴とする請求項１又は２記載のタイミング調整方法。
【請求項４】
前記対象セルは、ホールドエラーに対して前記既配線上に挿入されるセルであることを特徴とする請求項１乃至３のいずれか一項記載のタイミング調整方法。
【請求項５】
前記対象セルは、セットアップエラーに対して前記既配線上で移動されるセルであることを特徴とする請求項１乃至３のいずれか一項記載のタイミング調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト処理におけるタイミングＥＣＯ処理を行うためにセルの挿入又は移動による最適な配置位置を求め、更に、タイミングエラーに対するネットとそのネットに隣接するネットのみの容量を抽出するための半導体集積回路のレイアウト処理におけるタイミング調整方法に関する。
【背景技術】
【０００２】
従来より、従来の半導体集積回路のレイアウト方法においては、例えば、チップ面にレイアウトしたセルに対する入力データのタイミング調整を行う場合、タイミング検証が行われる。タイミング検証によって入力データの遅延が小さすぎる場合に発生するホールドエラーを検出すると、ホールドエラーを解消するような位置にバッファを挿入するなどの処理を行っていた。また、タイミング検証によって入力データの遅延が大きすぎる場合に発生するセットアップエラーを検出すると、セットアップエラーを解消するようにセルのパワータイプを上げるなどの処理を行っていた。
【０００３】
このように、タイミング検証によって検出されるホールドエラー及びセットアップエラーに応じた処理を実行することによって、適切なタイミング調整を実現するようにしていた。
【特許文献１】特開平９−２１８８８８号公報
【特許文献２】特開２００３−３１６８３９号公報
【特許文献３】特開平１０−１６３３３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の半導体集積回路のレイアウト方法では、ホールドエラーに対してなされる挿入するセル（例えば、バッファ）の位置は、前後のセルの間に適当に置かれていた。そのため、配線が混雑している場合など配線が引けなかったり、迂回する配線によって逆にタイミングが悪化して周りへの悪影響となる等の問題があった。配線が迂回する場合には、消費電力が上がるといった別の問題を引き起こしていた。
【０００５】
また、セットアップエラーに対してなされるセルのパワータイプを上げるなどの処理では、配置位置に関してそのままであった。
【０００６】
このような問題によって、容量抽出を行いタイミング検証を再度行ってみると、ホールドエラーに対して挿入したバッファの配置位置が最適でないために、ホールドエラーが十分に解消されていなかったり、逆に容量が付きすぎてセットアップエラーになったり等により、エラーを十分に解消できていない状態となることがあった。
【０００７】
また、セットアップエラーに対してパワータイプを上げたセルは元の配置位置のままであるため、セットアップエラーが直りきってなかったり、逆にセットアップエラーが悪化していたりしていた。
【０００８】
そのため、ホールドエラー及びセットアップエラーに対する処理を繰り返し行う必要があった。このように、上記従来の半導体集積回路のレイアウト方法では、タイミング調整のためにセルの挿入又はセルタイプの変更を行ってはいたが、最適でない位置にセルが配置されることでタイミングエラーを回避することができず、何度もタイミングＥＣＯ（Engineering Change Order）を繰り返すことで、多くの工数がかかってしまっていた。
【０００９】
従って、本発明の目的は、挿入するセル及び移動させるセルを既配線上に最適に配置することによって、タイミングＥＣＯの回数を削減することができる半導体集積回路のレイアウト処理におけるタイミング調整方法を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明は、半導体集積回路のレイアウト処理におけるタイミング調整方法において、コンピュータが、タイミングエラーを回避するための対象となる既配線上の少なくとも１つ以上の対象セルの出力側の前段セルから該対象セルの入力側の後段セルまでを１つのネットとして定義するネット定義手順と、前記１つのネット内の対象セルの個数より多い数を、前記対象セルを配置する候補となる候補点の個数として算出する候補点個数算出手順と、前記既配線上に複数の前記候補点を配置させ、複数の前記候補点のうち前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置として決定する配置位置決定手順とを実行するように構成される。
【００１１】
このような半導体集積回路のレイアウト処理におけるタイミング調整方法では、既配線上に挿入するセル及び移動させるセルを配置することによって、タイミングＥＣＯの回数を削減することができる。
【００１２】
上記課題を解決するための手段として、本発明は、上記手順をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体、及び、コンピュータ実行可能なプログラム、並びに、該プログラムによって上記手順を実行する情報処理装置とすることもできる。
【発明の効果】
【００１３】
本願発明は、挿入するセル及び移動させるセルを既配線上に最適に配置することによって、タイミングＥＣＯ回数を削減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１５】
本発明に係る半導体集積回路のレイアウト処理におけるタイミング調整方法を実現する情報処理装置は、コンピュータ装置であって、図１に示すようなハードウェア構成を有する。図１は、本発明の一実施例に係る情報処理装置のハードウェア構成を示す図である。
【００１６】
図１において、情報処理装置１００は、コンピュータによって制御される装置であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、出力ユニット１４と、入力ユニット１５と、通信ユニット１６と、記憶装置１７と、ドライバ１８とで構成され、システムバスＢに接続される。
【００１７】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従って情報処理装置１００を制御する。メモリユニット１２は、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等にて構成され、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００１８】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力ユニット１４は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット１５は、マウス、キーボード等を有し、利用者が情報処理装置１００が処理を行なうための必要な各種情報を入力するために用いられる。
【００１９】
通信ユニット１６は、情報処理装置１００が例えばインターネット、ＬＡＮ（Local Area Network）等のネットワーク２を介して例えばＰＣ３と接続する場合に、ＰＣ３との間の通信制御をするための装置である。このようにネットワークを構成することによって、本発明に係るタイミング調整方法での処理をＰＣ３の利用者が利用することができる。
【００２０】
記憶装置１７は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
【００２１】
情報処理装置１００よって行われるタイミング調整方法での処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）等の記憶媒体１９によって情報処理装置１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライバ１８にセットされると、ドライバ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。
【００２２】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット１６によってネットワークを介してダウンロードし、記憶装置１７にインストールするようにしても良い。
【００２３】
情報処理装置１００のＣＰＵ１１によって実行される半導体集積回路のレイアウト処理の概要について図２で説明する。図２は、レイアウト処理の概要を説明するためのフローチャート図である。
【００２４】
図２において、予め設計されたセルを基板上に配置し、配置したセルへの配線処理を行う（ステップＳ１）。複数のセルが配置され、各セルへの配線処理がなされた半導体集積回路のＲＣ抽出を行い（ステップＳ２）、本発明に係るタイミング調整方法を適用したタイミング検証を行う（ステップＳ３）。このタイミング検証によって、タイミングエラーが回避されると、レイアウト処理を終了する。
【００２５】
次に、本発明に係るタイミング調整処理について図３から図６で詳述する。
【００２６】
図３は、タイミング調整処理を説明するためのフローチャート図である。図３において、図２のＲＣ抽出の結果に基づいてなされたタイミング検証によって、ホールドエラーへの対策としてバッファが挿入され、また、セットアップエラーへの対策としてセルタイプが変更される対象となった対象ネットを示すネットリストを作成する（ステップＳ３０１）。
【００２７】
そして、ステップＳ３０１によって作成されたネットリストに示される対象ネット内を分割するネットを分割ネットとして抽出する（ステップＳ３０２）。つまり、ホールドエラー対策として挿入されるバッファ及びセットアップエラー対策として移動されるバッファ夫々の入力側と出力側のネットを抽出し、分割ネットとしてメモリユニット１２又は記憶装置１７内に出力して格納する。
【００２８】
次に、全エラーパスに対して、既配線を分割する複数の候補分割点を求める（ステップＳ３０３）。つまり、ステップＳ３０２にて抽出された各分割ネットに対して、既配線上にバッファを挿入又は移動するための複数の配置位置を候補分割点として求める。
【００２９】
そして、エラーパスに対して、全ての候補分割点におけるＲＣ抽出を行う（ステップＳ３０４）。ここでのＲＣ抽出は、全エラーパスに対して、候補分割点毎にバッファを挿入或いは移動したと仮定して、候補となる場合分けの数分実行され、その結果が、最適な配置位置を決定するためのテーブル（後述）に出力される。更に、エラーパスに隣接するネットのＲＣ抽出を行う（ステップＳ３０５）。隣接するネットのＲＣ抽出の結果は、ステップＳ３０４での結果に反映される。
【００３０】
次に、エラーバス部分のタイミング検証を行う（ステップＳ３０６）。このタイミング検証は、エラーパスだけの容量から行う。
【００３１】
各エラーパス部分のみに対するタイミング検証によって検出されたエラーに対して、最適な配置位置を決定する（ステップＳ３０７）。
【００３２】
つまり、セットアップエラーに対しては、最適な配置位置を決定するためのテーブルを参照することによって、複数の候補分割点のうちで最適にエラーが改善された候補分割点を、バッファを挿入する最適な配置位置として決定する。
【００３３】
また、ホールドエラーに対しても同様に、最適な配置位置を決定するためのテーブルを参照することによって、複数の候補分割点のうちで最適にエラーが改善された候補分割点を、バッファを移動する最適な配置位置として決定する。
【００３４】
配置位置を決定する際に、配置しようとした候補分割点に既存セルがありオーバーラップする場合は、その位置から最も近い既配線上の位置を求めて、バッファを挿入又は移動させる。
【００３５】
最適な配置位置へバッファを挿入又は移動して配置する（ステップＳ３０８）。ステップＳ３０７で最適な配置位置として決定された候補分割点へバッファを挿入又は移動する。
【００３６】
そして、未結線部分に対して配線処理を行う（ステップＳ３０９）。ステップＳ３０８にて、挿入されたバッファへは、既配線上のそのバッファへ配線するための配線処理を行い、移動されたバッファへは、移動元の未結線部分に対して配線すると共に、既配線上で移動されたそのバッファへ配線するための配線処理を行う。
【００３７】
そして、最適な配置位置を決定するためのテーブルを参照して、まだエラーが残っているか否かを判断する（ステップＳ３１０）。エラーが残っている場合、ステップＳ３０１へ戻り上記同様の処理を繰り返す。エラーが残っていないばあい、タイミング調整処理を終了する。
【００３８】
図３のステップＳ３０３での候補分割点を決定する処理について図４及び図５で詳述する。図４及び図５は、候補分割点を決定する処理を説明するための図である。図４及び図５に示すフローチャートに従って、ＣＰＵ１１によって候補分割点を決定する処理が実行される。
【００３９】
図４において、挿入される又は移動されるバッファ（以下、対象バッファという）の入力側のネットと出力側のネットとが１本の配線で繋がれていると仮定して（ステップＳ３２１）、連続するネットを１ネットと仮定する（ステップＳ３２２）。つまり、ネットリストによって示される対象ネット内の２つ以上の分割ネットが連続するネットと見なされ、１ネットとして設定される。
【００４０】
変数ｎに０を設定する（ステップＳ３２３）。
【００４１】
ステップＳ３２２にて仮定した１ネット内の最終段の対象バッファからｎ個目の対象バッファの出力が、複数のバッファと繋がっているか否かを判断する（ステップＳ３２４）。複数のバッファと繋がっている場合、最終段からｎ個目の対象バッファは、前段バッファと前段バッファの出力側から配線経路を辿って最初の分岐点までの間を第一の配置位置範囲とする（ステップＳ３２５）。
【００４２】
一方、複数のバッファと繋がっていない場合、最終段からｎ個目の対象バッファは、後段バッファと後段バッファの入力側から配線経路を辿って最初の分岐点、又は、前段バッファの出力側までの間を第二の配置位置範囲とする（ステップＳ３２６）。
【００４３】
続けて、処理中の１ネット内に対象バッファがまだあるか否かを判断する（ステップＳ３２７）。対象バッファがまだある場合、変数ｎに１をインクリメントして（ステップＳ３２８）、ステップＳ３２４へ戻り上記同様の処理を繰り返す。一方、対象バッファがない場合、図５のステップＳ３２９へ進む。
【００４４】
図５において、前段バッファから第一の配置位置範囲まで、及び、後段バッファから第二の配置位置範囲までを夫々、新たに１ネットと仮定する（ステップＳ３２９）。
【００４５】
そして、１ネット内に存在する対象バッファ数を求めて（ステップＳ３３０）、対象バッファ数に所定数を加えた値を候補分割点の数とする（ステップＳ３３１）。１ネット内の配線を候補分割点の数に１を加えた値で等分し、候補分割点の配置位置を求める（ステップＳ３３２）。
【００４６】
最適な配置位置を決定するためのテーブルについて説明する。図６は、最適な配置位置を決定するためのテーブルの例を示す図である。
【００４７】
図６において、最適な配置位置を決定するためのテーブルは、レコードを識別するためのレコードＮｏ．、エラーパスのスタートピンを特定するスタートピン名、エラーパスのエンドピンを特定するエンドピン名、セットアップエラー値、ホールドエラー値、第一の対称バッファの候補分割点の位置座標を示す座標１、第二の対象バッファの候補分割点の位置座標を示す座標２等の項目によって構成される。
【００４８】
このテーブルの例では、挿入又は移動される対象バッファが、図４のステップＳ３２２で仮定される１ネット内（１つのエラーパス内）に２つある場合を示している。１ネット内には、１つ以上の対象バッファが存在し、３以上の対象バッファが存在した場合にも、候補分割点の位置座標を示す項目を増やした同様のテーブルが使用される。
【００４９】
このようなテーブルにおいて、例えば、レコードＮｏ．１からＮｏ．６までが、スタートピン名「ＡＡＡＡＡ．Ｑ」及びエンドピン名「ＢＢＢＢＢ．Ｄ」において、２つのバッファを挿入する配置位置の組み合わせによるホールドエラー値の結果を示している。この結果を参照することによって、レコードＮｏ．３の２つのバッファが夫々、座標１「Ｘ３００Ｙ２００」と座標２「Ｘ６００Ｙ２００」とに配置した場合に、ホールドエラー値が検出されなかったことを示していることが分かる。従って、スタートピン名「ＡＡＡＡＡ．Ｑ」及びエンドピン名「ＢＢＢＢＢ．Ｄ」において、２つのバッファを挿入する配置位置の組み合わせは、座標１「Ｘ３００Ｙ２００」と座標２「Ｘ６００Ｙ２００」とに決定される。
【００５０】
また、例えば、レコードＮｏ．７からＮｏ．１２までが、スタートピン名「ＹＹＹＹＹ．Ｑ」及びエンドピン名「ＺＺＺＺＺ．Ｄ」において、２つのバッファを移動する配置位置の組み合わせによるセットアップエラー値の結果を示している。この結果を参照することによって、レコードＮｏ．１２の２つのバッファが夫々、座標１「Ｘ１０００Ｙ５００」と座標２「Ｘ１１０Ｙ５００」とに配置した場合に、セットアップエラー値が検出されなかったことを示していることが分かる。従って、スタートピン名「ＹＹＹＹＹ．Ｑ」及びエンドピン名「ＺＺＺＺＺ．Ｄ」において、２つのバッファを移動する配置位置の組み合わせは、座標１「Ｘ１０００Ｙ５００」と座標２「Ｘ１１０Ｙ５００」とに決定される。
【００５１】
次に、図２から図５に示すフローチャートに従って実現される処理例について説明する。
【００５２】
先ず、挿入又は移動の対象となる対象バッファが１つの場合について図７で説明する。図７は、対象バッファが１つの場合を示す図である。
【００５３】
図７（Ａ）では、前段バッファ４１と後段バッファ５１との間に、挿入又は移動する対象バッファ６１が配置される場合を示している。
【００５４】
図７（Ｂ）では、対象バッファ６１の入力側及び出力側のネットが分割ネットとして抽出される（図３のステップＳ３０２）様子を示している。
【００５５】
図７（Ｃ）では、決定された候補分割点の配置の様子を示している。図７（Ｂ）に示される抽出された２つの分割ネットは連続した１つのネットと仮定され（図４のステップＳ３２１及びＳ３２２）、前段バッファ４１と後段バッファ５１との間が第二の配線位置範囲として設定される（図４のステップＳ３２６）。
【００５６】
そして、その第二の配線位置範囲を分割するための所定数を２とした場合、候補分割点の数が３点として求められ（図５のステップＳ３３１）、前段バッファ４１から１／４地点を候補分割点７１ａ、２／１地点を候補分割点７１ｂ、そして３／４地点を候補分割点７１ｃが決定される（図５のステップＳ３３２）。
【００５７】
次に、対象バッファが２つの場合について図８で説明する。図８は、対象バッファが２つの場合を示す図である。
【００５８】
図８（Ａ）では、前段バッファ４２と後段バッファ５２との間に、挿入又は移動する２つの対象バッファ６２ａ及び６２ｂが配置される場合を示している。
【００５９】
図８（Ｂ）では、決定された候補分割点の配置の様子を示している。図７に示す対象バッファが１つの場合と同様の処理によって、対象バッファが２つであるので、所定数を２とすると、前段バッファ４２から１／５地点を候補分割点７２ａ、２／５地点を候補分割点７２ｂ、３／５地点を候補分割点７２ｃ、及び４／５地点を候補分割点７２ｄが決定される。
【００６０】
図８に示す場合について更に、２つの対象バッファの配置位置の組み合わせについて図９で説明する。図９は、２つの対象バッファの配置位置の組み合わせの例を示す図である。
【００６１】
図９（Ａ）では、前段バッファ４２と後段バッファ５２との間において、候補分割点７２ａに対象バッファ６２ａを配置し、候補分割点７２ｂに対象バッファ６２ｂを配置した配置位置の組み合わせを示している。
【００６２】
図９（Ｂ）では、前段バッファ４２と後段バッファ５２との間に、候補分割点７２ａに対象バッファ６２ａを配置し、候補分割点７２ｃに対象バッファ６２ｂを配置した配置位置の組み合わせを示している。
【００６３】
図９（Ｃ）では、前段バッファ４２と後段バッファ５２との間に、候補分割点７２ａに対象バッファ６２ａを配置し、候補分割点７２ｄに対象バッファ６２ｂを配置した配置位置の組み合わせを示している。
【００６４】
図９（Ｄ）では、前段バッファ４２と後段バッファ５２との間に、候補分割点７２ｂに対象バッファ６２ａを配置し、候補分割点７２ｃに対象バッファ６２ｂを配置した配置位置の組み合わせを示している。
【００６５】
図９（Ｅ）では、前段バッファ４２と後段バッファ５２との間に、候補分割点７２ｂに対象バッファ６２ａを配置し、候補分割点７２ｄに対象バッファ６２ｂを配置した配置位置の組み合わせを示している。
【００６６】
図９（Ｆ）では、前段バッファ４２と後段バッファ５２との間に、候補分割点７２ｃに対象バッファ６２ａを配置し、候補分割点７２ｄに対象バッファ６２ｂを配置した配置位置の組み合わせを示している。
【００６７】
図３のステップＳ３０４では、図９（Ａ）から図９（Ｆ）に示される配置点の組み合わせ毎にＲＣ抽出を行うこととなる。
【００６８】
次に、前段バッファから複数の後段バッファに分岐する場合について図１０で説明する。図１０は、分岐がある場合の例を示す図である。
【００６９】
図１０（Ａ）では、前段バッファ４３から複数の後段バッファ５３ａから５３ｃに分岐する場合における前段バッファ４３から複数の後段バッファ５３ｃとの間に、挿入又は移動する２つの対象バッファ６３ａ及び６３ｂが配置されている場合を示している。対象バッファ６３ａは、前段バッファ４３と後段バッファ５３ａへの分岐点９ａとの間に配置され、対象バッファ６３ｂは、前段バッファ４３から後段バッファ５３ｂへの分岐点９ｂと後段バッファ５３ｃとの間に配置されている場合を示す。
【００７０】
図１０（Ｂ）では、１つの対象バッファ６３ｂが、前段バッファ４３から後段バッファ５３ｂへの分岐点９ｂと後段バッファ５３ｃとの間に配置され（図４のステップＳ３２６）、
所定数を２として３つの候補分岐点７３ａ、７３ｂ、及び７３ｃが均等に配置される様子を示している（図５のステップＳ３３１及びＳ３３２）。
【００７１】
図１０（Ｃ）では、１つの対象バッファ６３ａが、前段バッファ４３と前段バッファ４３から後段バッファ５３ａへの分岐点９ａとの間に配置され（図４のステップＳ３２５）、
所定数を２として３つの候補分岐点８３ａ、８３ｂ、及び８３ｃが均等に配置される様子を示している（図５のステップＳ３３１及びＳ３３２）。
【００７２】
次に、図３のステップＳ３０５にて行われるエラーパスに隣接するネットのＲＣ抽出の例について図１１で説明する。図１１は、隣接するネットのＲＣ抽出の例を示す図である。
【００７３】
図１１に示すように、例えば、エラーパスに沿ってエラーパスを中心とした左右の所定グリッド（例えば１０グリッド）以内の離れたところの周りのネットを対象としてＲＣ抽出を行う。
【００７４】
次に、図３のステップＳ２０９にて行われる未結線部分に対する配線処理について図１２及び図１３にて説明する。
【００７５】
先ず、対象バッファがエラーパス上に挿入される場合の配線処理について図１２で説明する。図１２は、対象バッファが挿入された場合の配線処理を示す図である。
【００７６】
図１２（Ａ）では、前段バッファ４１と後段バッファ５１との間に対象バッファ６１を挿入して配置した様子を示している。この状態では、対象バッファ６１は未だ配線されていない状態であるので、配線処理を行う。対象バッファ６１を挿入する場合、対象バッファ６１上の既配線を一旦削除し、対象バッファ６１の入力端子及び出力端子へ夫々結線する。
【００７７】
図１２（Ｂ）では、対象バッファ６１上の既配線部分が取り除かれて、対象バッファ６１の入力端子及び出力端子が夫々結線された様子を示している。
【００７８】
次に、エラーパス上の対象バッファを移動した場合の配線処理について図１３で説明する。図１３は、対象バッファを移動した場合の配線処理を示す図である。
【００７９】
図１３（Ａ）は、前段バッファ４１と後段バッファ５１との間に配置されていた対象バッファ６１を前段バッファ４１寄りに移動させた様子を示している。この状態では、前段バッファ４１と後段バッファ５１との間の既配線が後段バッファ５１寄りの元の対象バッファ６１の配置位置で途絶えており、また、対象バッファ６１は未配線のままであるので、配線処理を行う。対象バッファ６１を移動する場合、移動先の対象バッファ６１上の既配線を一旦削除し、対象バッファ６１の入力端子及び出力端子へ夫々結線する。そして、移動元の切れた配線を結線する。
【００８０】
図１３（Ｂ）では、対象バッファ６１上の既配線部分が取り除かれて、対象バッファ６１の入力端子及び出力端子が夫々結線され、かつ、移動元の切れた配線が結線された様子を示している。
【００８１】
上述したように、本発明によれば、既配線上にセル（例えばバッファ）を挿入又は移動するための配線遅延の変化を最小限に抑えることができる。また、最適な位置にセル（バッファ）を挿入又は移動するための１回のタイミングＥＣＯによって殆どのエラーを回避することが可能となる等の効果を奏する。このような効果によって、タイミングＥＣＯの回数の削減、セル（バッファ）の挿入個数又はセルタイプの変更を抑えることができる。従って、タイミング調整の性能を向上させることができる。
【００８２】
以下に付記する。
（付記１）
半導体集積回路のレイアウト処理におけるタイミング調整方法において、
コンピュータが、
タイミングエラーを回避するための対象となる既配線上の少なくとも１つ以上の対象セルに対して、前段セルから後段セルまでを１つのネットとして定義するネット定義手順と、
前記１つのネット内の対象セルの個数より多い数を、前記対象セルを配置する候補となる候補点の個数として算出する候補点個数算出手順と、
前記既配線上に複数の前記候補点を配置させ、複数の前記候補点のうち前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置として決定する配置位置決定手順とを実行することを特徴とするタイミング調整方法。
（付記２）
前記配置位置決定手順は、
前記１つのネット内の前記既配線上に複数の前記候補点を等間隔で配置する候補点配置手順と、
前記対象セルを前記候補点に配置した場合の該各候補点の容量を抽出する候補点毎容量抽出手順と、
前記抽出された容量に基づいて、前記候補点毎にタイミング検証を行い、そのタイミング検証結果を候補点毎に結果テーブルに出力する候補点毎タイミング検証手順とを有し、
前記結果テーブルを参照し、前記１つのネット内にて前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置とすることを特徴とする付記１記載のタイミング調整方法。
（付記３）
前記対象セルを前記決定された配置位置に配置後、前記既配線を変更することなく、未結線部分に対して配線処理を行う未結線配線処理手順を更に有することを特徴とする付記１又は２記載のタイミング調整方法。
（付記４）
前記対象セルは、ホールドエラーに対して前記既配線上に挿入されるセルであることを特徴とする付記１乃至３のいずれか一項記載のタイミング調整方法。
（付記５）
前記対象セルは、セットアップエラーに対して前記既配線上で移動されるセルであることを特徴とする付記１乃至３のいずれか一項記載のタイミング調整方法。
（付記６）
前記候補点毎容量抽出手順は、
前記対象セルを前記候補点に配置した場合の該各候補点のみの容量を抽出する第一容量抽出手順と、
前記１つのネット内の前記既配線から隣接する所定距離における容量を抽出する第二容量抽出手順と、
前記第一容量抽出手順にて抽出された前記各候補点のみの容量に対して、前記第二容量抽出手順にて抽出された容量を反映させる容量反映手順とを有することを特徴とする付記１乃至５のいずれか一項記載のタイミング調整方法。
（付記７）
前記ネット定義手順によって定義された前記１つのネット内で、複数の後段セルによって前記前段セルからの前記既配線が分岐するか否かを判断する分岐判断手順と、
前記分岐判断手順によって分岐があると判断された場合、前記前段セルから該前段セルの出力側からの最初の分岐点までを１つのネットと定義し、前記後段セルから該後段セルの入力側からの最初の分岐点までを１つのネットと定義する分岐ネット定義手順とを有することを特徴とする付記１乃至６のいずれか一項記載のタイミング調整方法。
（付記８）
半導体集積回路のレイアウト処理におけるタイミング調整方法での処理を実行するプログラムを記憶したコンピュータ読み取り可能な記憶媒体において、
前記コンピュータに、
タイミングエラーを回避するための対象となる既配線上の少なくとも１つ以上の対象セルの出力側の前段セルから該対象セルの入力側の後段セルまでを１つのネットとして定義するネット定義手順と、
前記１つのネット内の対象セルの個数より多い数を、前記対象セルを配置する候補となる候補点の個数として算出する候補点個数算出手順と、
前記既配線上に複数の前記候補点を配置させ、複数の前記候補点のうち前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置として決定する配置位置決定手順とを実行させること特徴とするプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
（付記９）
前記配置位置決定手順は、
前記１つのネット内の前記既配線上に複数の前記候補点を等間隔で配置する候補点配置手順と、
前記対象セルを前記候補点に配置した場合の該各候補点の容量を抽出する候補点毎容量抽出手順と、
前記抽出された容量に基づいて、前記候補点毎にタイミング検証を行い、そのタイミング検証結果を候補点毎に結果テーブルに出力する候補点毎タイミング検証手順とを有し、
前記結果テーブルを参照し、前記１つのネット内にて前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置とすることを特徴とする付記８記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
（付記１０）
半導体集積回路のレイアウト処理におけるタイミング調整方法での処理を実行するプログラムにおいて、
前記コンピュータに、
タイミングエラーを回避するための対象となる既配線上の少なくとも１つ以上の対象セルの出力側の前段セルから該対象セルの入力側の後段セルまでを１つのネットとして定義するネット定義手順と、
前記１つのネット内の対象セルの個数より多い数を、前記対象セルを配置する候補となる候補点の個数として算出する候補点個数算出手順と、
前記既配線上に複数の前記候補点を配置させ、複数の前記候補点のうち前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置として決定する配置位置決定手順とを実行させること特徴とするプログラム。
（付記１１）
前記配置位置決定手順は、
前記１つのネット内の前記既配線上に複数の前記候補点を等間隔で配置する候補点配置手順と、
前記対象セルを前記候補点に配置した場合の該各候補点の容量を抽出する候補点毎容量抽出手順と、
前記抽出された容量に基づいて、前記候補点毎にタイミング検証を行い、そのタイミング検証結果を候補点毎に結果テーブルに出力する候補点毎タイミング検証手順とを有し、
前記結果テーブルを参照し、前記１つのネット内にて前記タイミングエラーの値が最もゼロに近い候補点を前記対象セルの配置位置とすることを特徴とする付記１０記載のプログラム。
【００８３】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施例に係る情報処理装置のハードウェア構成を示す図である。
【図２】レイアウト処理の概要を説明するためのフローチャート図である。
【図３】タイミング調整処理を説明するためのフローチャート図である。
【図４】候補分割点を決定する処理を説明するための図である。
【図５】候補分割点を決定する処理を説明するための図である。
【図６】最適な配置位置を決定するためのテーブルの例を示す図である。
【図７】対象バッファが１つの場合を示す図である。
【図８】対象バッファが２つの場合を示す図である。
【図９】２つの対象バッファの配置位置の組み合わせの例を示す図である。
【図１０】分岐がある場合の例を示す図である。
【図１１】隣接するネットのＲＣ抽出の例を示す図である。
【図１２】対象バッファが挿入された場合の配線処理を示す図である。
【図１３】対象バッファを移動した場合の配線処理を示す図である。
【符号の説明】
【００８５】
１１        ＣＰＵ
１２        メモリユニット
１３        表示ユニット
１４        出力ユニット
１５        入力ユニット
１６        通信ユニット
１７        記憶装置
１８        ドライバ
１９        記憶媒体
【図１】
2006004994.tif 000003
【図２】
2006004994.tif 000004
【図３】
2006004994.tif 000005
【図４】
2006004994.tif 000006
【図５】
2006004994.tif 000007
【図６】
2006004994.tif 000008
【図７】
2006004994.tif 000009
【図８】
2006004994.tif 000010
【図９】
2006004994.tif 000011
【図１０】
2006004994.tif 000012
【図１１】
2006004994.tif 000013
【図１２】
2006004994.tif 000014
【図１３】
2006004994.tif 000015