(57)【特許請求の範囲】
【請求項１】
機能毎に分割された複数のブロックから構成される半導体集積回路のレイアウトを行うためのコンピュータに、
前記ブロック間に接続される論理パス、前記論理パスに接続される前記ブロック内の順序回路および前記順序回路に接続されるクロックパスを含む境界回路を抽出する境界回路抽出を実行させ、
前記境界回路の配置および配線の少なくともいずれかを固定する第１レイアウトを実行させ、
前記各ブロックに形成される端子の位置を決定するブロック端子配置を実行させ、
前記各ブロック内の回路の配置および配線を固定する第２レイアウトを、前記第１レイアウトにより配置および配線が行われた回路の配置および配線の少なくともいずれかを固定した状態で、前記ブロック毎に独立して実行させることを特徴とする半導体集積回路のレイアウトプログラム。
【請求項２】
請求項１の半導体集積回路のレイアウトプログラムにおいて、
前記第１レイアウトは、前記境界回路についての予め決められた配置制約および第１タイミング制約を用いて行う第１タイミングドリブンレイアウトであり、
前記第２レイアウトは、前記ブロック毎に第２タイミング制約を用いて行う第２タイミングドリブンレイアウトであり、
前記第２タイミング制約は、前記論理パスおよび前記クロックパスにおける前記各ブロック内でのタイミング制約であることを特徴とする半導体集積回路のレイアウトプログラム。
【請求項３】
請求項２の半導体集積回路のレイアウトプログラムにおいて、
前記コンピュータに、
前記第１タイミングドリブンレイアウト後に、前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、クロックスキューの調整、前記論理パスの配線経路の修正、および前記クロックパスの配線経路の修正の少なくともいずれかによる第１タイミング調整と、前記第１タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し実行させることを特徴とする半導体集積回路のレイアウトプログラム。
【請求項４】
請求項２の半導体集積回路のレイアウトプログラムにおいて、
前記コンピュータに、
前記第２タイミングドリブンレイアウト後に、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、クロックスキューの調整、前記ブロック内の論理パスの配線経路の修正、前記ブロック内のクロックパスの配線経路の修正、および前記ブロック内順序回路の配置位置の調整の少なくともいずれかによる第２タイミング調整と、前記第２タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し実行させることを特徴とする半導体集積回路のレイアウトプログラム。
【請求項５】
請求項２の半導体集積回路のレイアウトプログラムにおいて、
前記コンピュータに、
前記第２タイミングドリブンレイアウト後に、前記各ブロックをチップ上の予め決められた位置に配置するブロック結合を実行させ、
前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、前記境界回路内でのクロックスキューの調整、前記論理パスの配線経路の修正、前記クロックパスの配線経路の修正、前記境界回路内の順序回路の配置位置の調整、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、前記ブロック内の論理パスの配線経路の修正、および前記ブロック内のクロックパスの配線経路の修正の少なくともいずれかによる第３タイミング調整を、所望のタイミング条件を満たすまで繰り返し実行させることを特徴とする半導体集積回路のレイアウトプログラム。
【請求項６】
機能毎に分割された複数のブロックから構成される半導体集積回路のレイアウトシステムであって、
前記ブロック間に接続される論理パス、前記論理パスに接続される前記ブロック内の順序回路および前記順序回路に接続されるクロックパスを含む境界回路を抽出する境界回路抽出を行い、前記境界回路の配置および配線の少なくともいずれかを固定する第１レイアウトを行い、前記各ブロックに形成される端子の位置を決定するブロック端子配置を行い、前記各ブロック内の回路の配置および配線を固定する第２レイアウトを、前記第１レイアウトにより配置および配線が行われた回路の配置および配線の少なくともいずれかを固定した状態で、前記ブロック毎に独立して行うプログラムを格納する記憶部と、
前記記憶部に格納された前記プログラムを実行する制御部とを備えていることを特徴とする半導体集積回路のレイアウトシステム。
【請求項７】
請求項６の半導体集積回路のレイアウトシステムにおいて、
前記第１レイアウトは、前記境界回路についての予め決められた配置制約および第１タイミング制約を用いて行う第１タイミングドリブンレイアウトであり、
前記第２レイアウトは、前記ブロック毎に第２タイミング制約を用いて行う第２タイミングドリブンレイアウトであり、
前記第２タイミング制約は、前記論理パスおよび前記クロックパスにおける前記各ブロック内でのタイミング制約であることを特徴とする半導体集積回路のレイアウトシステム。
【請求項８】
請求項７の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記第１タイミングドリブンレイアウト後に、前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、クロックスキューの調整、前記論理パスの配線経路の修正、および前記クロックパスの配線経路の修正の少なくともいずれかによる第１タイミング調整と、前記第１タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウトシステム。
【請求項９】
請求項７の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記第２タイミングドリブンレイアウト後に、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、クロックスキューの調整、前記ブロック内の論理パスの配線経路の修正、前記ブロック内のクロックパスの配線経路の修正、および前記ブロック内順序回路の配置位置の調整の少なくともいずれかによる第２タイミング調整と、前記第２タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウトシステム。
【請求項１０】
請求項７の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記第２タイミングドリブンレイアウト後に、前記各ブロックをチップ上の予め決められた位置に配置するブロック結合を行い、前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、前記境界回路内でのクロックスキューの調整、前記論理パスの配線経路の修正、前記クロックパスの配線経路の修正、前記境界回路内の順序回路の配置位置の調整、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、前記ブロック内の論理パスの配線経路の修正、および前記ブロック内のクロックパスの配線経路の修正の少なくともいずれかによる第３タイミング調整を、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウトシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のレイアウトプログラムおよび半導体集積回路のレイアウトシステムに関する。
【０００２】
【従来の技術】
近年のプロセスの微細化に伴い、大規模、高速な半導体集積回路の開発が盛んになっている。これに伴い、半導体集積回路のチップ全体についてのタイミングドリブンレイアウトでは、対象とする回路規模が大きくなり、制約条件はさらに厳しくなる。そのため、レイアウト処理の収束時間は大幅に増加し、論理回路全体を一度にレイアウトすることは困難になってきている。そこで、大規模、高速な半導体集積回路のレイアウト設計においては、ブロック毎に設計を行う階層レイアウト設計が行われている。
【０００３】
従来の階層レイアウト設計では、まず階層分割されたブロック毎が個別にレイアウトされる。次に、個別にレイアウトされたブロックの端子がチップの最上位階層で接続されることで、異なるブロック間の配線が完了する。そして、チップ全体のレイアウトが完了する。
また、半導体集積回路のレイアウト設計の一方式では、まず半導体集積回路の入出力バッファを除く内部回路のみのレイアウトが行われる。次に、所望の遅延特性を保証する入出力バッファが選択される。そして、選択された入出力バッファを用いて、内部回路と入出力バッファ間の配置および配線が行われる（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開平８−２１３４６７号公報
【０００５】
【発明が解決しようとする課題】
従来の階層レイアウト設計においては、各ブロックのレイアウト設計が個別に行われた後、チップの最上位階層において異なるブロック間の配線が行われる。そのため、タイミング制約が各ブロックに適切に与えられていない場合には、レイアウト設計の収束は困難になる。具体的には、チップの最上位階層において各ブロックの端子を相互に接続した際に、所望のタイミング条件を満たすことができなくなる。
【０００６】
レイアウト設計が収束しない場合には、レイアウト設計の上流工程（例えば、フロアプラン）までの後戻りが発生する。最悪の場合には、論理設計までの後戻りが発生する。この結果、半導体集積回路チップの開発期間および開発コストが大幅に増大してしまう。
また、半導体集積回路の大規模化および高速化に伴い、設計開始からチップが完成するまでの開発期間は長期化している。しかしながら、製品開発期間の短縮という市場からの要求は、益々強くなってきている。
【０００７】
本発明の目的は、レイアウト設計におけるレイアウト処理時間を短縮することにある。また、本発明の別の目的は、半導体集積回路チップの開発期間を短縮することにある。
【０００８】
【課題を解決するための手段】
本発明の第１の態様では、まず境界回路が抽出される。境界回路は、機能毎に分割されたブロック間に接続される論理パス（いわゆるデータパス）、その論理パスに接続されるブロック内の順序回路およびその順序回路に接続されるクロックパスを含んでいる。次に、抽出された境界回路の配置および配線の少なくともいずれかを固定する第１レイアウトが行われる。その後、各ブロックに形成される端子の位置を決定するブロック端子配置が行われる。そして、各ブロック内の回路の配置および配線を固定する第２レイアウトが、第１レイアウトにより配置および配線が行われた回路の配置および配線の少なくともいずれかを固定した状態で、ブロック毎に独立して行われる。すなわち、各ブロック内の回路のレイアウトが行われる前に、境界回路のレイアウトが行われる。
【０００９】
大規模な半導体集積回路において、境界回路は、論理回路全体に比べ非常に小規模である。このため、境界回路のレイアウト（第１レイアウト）は短時間で完了することができる。また、各ブロック内の回路のレイアウト（第２レイアウト）が行われる前に、境界回路のレイアウト（第１レイアウト）が行われることで、異なるブロック間の配線のタイミングをレイアウト設計の初期段階で収束させておくことができる。この結果、レイアウト設計の上流工程または論理設計までの後戻りを防止できる。従って、レイアウト設計におけるレイアウト処理時間を短縮することができる。換言すれば、半導体集積回路チップの開発期間を短縮でき、半導体集積回路チップの製造コストを削減できる。
【００１０】
本発明の第２の態様では、境界回路が抽出された後に、境界回路についての予め決められた配置制約および第１タイミング制約を用いて、抽出された境界回路の配置および配線を固定する第１タイミングドリブンレイアウトが、第１レイアウトとして行われる。次に、境界回路内の論理パスおよびクロックパスにおける各ブロック内での第２タイミング制約が生成される。そして、第２タイミング制約を用いて、各ブロック内の回路の配置および配線を固定する第２タイミングドリブンレイアウトが、第２レイアウトとしてブロック毎に独立して行われる。
【００１１】
タイミングドリブンレイアウト手法を用いて第１および第２レイアウトが行われる場合にも、異なるブロック間の配線のタイミングをレイアウト設計の初期段階で収束させておくことができる。この結果、レイアウト設計の上流工程または論理設計までの後戻りを防止できる。従って、レイアウト設計におけるレイアウト処理時間を短縮することができる。換言すれば、半導体集積回路チップの開発期間を短縮でき、半導体集積回路チップの製造コストを削減できる。
【００１２】
本発明の第３の態様では、境界回路が抽出された後に、所望のタイミング条件が満たされるまで、第１タイミングドリブンレイアウトと第１タイミング調整が繰り返し行われる。第１タイミング調整は、境界回路内へのバッファの挿入、境界回路内の論理パスの駆動能力の変更、境界回路内のクロックパスの駆動能力の変更、クロックスキューの調整、境界回路内の論理パスの配線経路の修正、および境界回路内のクロックパスの配線経路の修正の少なくともいずれかにより行われる。
【００１３】
境界回路について、第１タイミングドリブンレイアウトと第１タイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、半導体集積回路チップの動作速度および動作マージンを向上させることができる。
本発明の第４の態様では、第２タイミング制約が生成された後に、所望のタイミング条件が満たされるまで、ブロック毎に独立して、第２タイミングドリブンレイアウトと第２タイミング調整が繰り返し行われる。第２タイミング調整は、ブロック内へのバッファの挿入、ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、ブロック内順序回路に接続されるクロックパスの駆動能力の変更、クロックスキューの調整、ブロック内の論理パスの配線経路の修正、ブロック内のクロックパスの配線経路の修正、およびブロック内順序回路の配置位置の調整の少なくともいずれかにより行われる。
【００１４】
各ブロックについて、第２タイミングドリブンレイアウトと第２タイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、半導体集積回路チップの動作速度および動作マージンを向上させることができる。
本発明の第５の態様では、第２タイミングドリブンレイアウトが行われた後に、各ブロックをチップ上の予め決められた位置に配置するブロック結合が行われる。次に、所望のタイミング条件が満たされるまで、第３タイミング調整が繰り返し行われる。第３タイミング調整は、境界回路内へのバッファの挿入、境界回路内の論理パスの駆動能力の変更、境界回路内のクロックパスの駆動能力の変更、境界回路内でのクロックスキューの調整、境界回路内の論理パスの配線経路の修正、境界回路内のクロックパスの配線経路の修正、境界回路内の順序回路の配置位置の調整、ブロック内へのバッファの挿入、ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、ブロック内順序回路に接続されるクロックパスの駆動能力の変更、ブロック内の論理パスの配線経路の修正、およびブロック内のクロックパスの配線経路の修正の少なくともいずれかにより行われる。
【００１５】
論理回路全体について、第３タイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、半導体集積回路チップの動作速度および動作マージンを向上させることができる。
【００１６】
【発明の実施の形態】
以下、図面を用いて本発明の実施形態を説明する。
図１〜図９は、本発明の第１の実施形態を示している。図１に示すように、本発明のレイアウトシステムSYSは、レイアウト用プログラムを記録したCD-ROM２２またはフレキシブルディスク２４などの記録媒体と、ワークステーションWSとから構成されている。ワークステーションWSは、画面表示を行うディスプレイ１０と、キーを押して指示を行うキーボード１２と、CPU１６（制御部）、ハードディスク１８（記憶部）および記録媒体ドライブ装置２０が内蔵された制御装置１４とを有している。記録媒体ドライブ装置２０には、CD-ROM２２またはフレキシブルディスク２４が装着可能である。ワークステーションWSは、記録媒体ドライブ装置２０にCD-ROM２２またはフレキシブルディスク２４を装着後、キーボード１２を介して入力される指示により、CD-ROM２２またはフレキシブルディスク２４に記録されたレイアウト用プログラムをハードディスク１８にダウンロードする。ワークステーションWSは、CPU１６がレイアウト用プログラムを実行することにより、半導体集積回路のレイアウト処理が可能になる。すなわち、ワークステーションWSは、半導体集積回路を設計するレイアウトシステムSYSとして機能する。
【００１７】
図２〜図８は、第１の実施形態におけるレイアウト処理の概要を示している。
図２に示すように、半導体集積回路CHIPは、機能毎に分割されたブロックBLK（BLK1〜BLK4）およびクロック生成回路CPGから構成される。ここで、クロック生成回路CPGは、内部回路の配置と配線および端子の位置が既に固定されたブロック（マクロブロック）である。また、ブロックBLKおよびクロック生成回路CPGの半導体集積回路CHIP上での位置（レイアウト領域（図２破線枠））は、予めフロアプランが行われることにより決められている。なお、フロアプランは、レイアウトシステムSYSにより行われても、人手により行われてもよい。
【００１８】
まず、レイアウトシステムSYSは、レイアウト処理する半導体集積回路CHIP内の回路の接続関係を示すネットリストおよびフロアプラン情報から境界回路BCを抽出する。境界回路BCは、ブロックBLK間に接続される論理パス（いわゆるデータパス）、その論理パスに接続されるブロックBLK内の初段のフリップフロップ（順序回路）、およびそのフリップフロップに接続されるクロックパスを含む。
【００１９】
例えば、図３に示すように、境界回路BCは、ブロックBLK1とブロックBLK2の間に接続される論理パスLP、論理パスLPに接続されるブロックBLK1内のフリップフロップFF1とブロックBLK2内のフリップフロップFF2、およびフリップフロップFF1とフリップフロップFF2に接続されるクロックパスCPを含む。論理パスLPは、組合せ回路CL1および組合せ回路CL2を含む。また、クロックパスCPはクロックドライバCD1およびクロックドライバCD2を含む。
【００２０】
レイアウトシステムSYSによる境界回路BCの抽出は、例えば、クロック生成回路CPGを出発点として、ネットリストおよびフロアプラン情報を探索することにより行われる。ネットリストの探索は、例えば、セルの種類（組合せ回路セルまたは順序回路セル）、セルの端子の種類（データ端子またはクロック端子）、セルの端子の入出力属性（入力端子または出力端子）、およびセルが属するブロックBLKを示すセルのブロック属性を用いて行われる。これにより、レイアウトシステムSYSは境界回路BCを容易に抽出できる。
【００２１】
次に、図４に示すように、レイアウトシステムSYSは、抽出された論理パスLPおよびクロックパスCPを含む境界回路BC（図４網掛部）の配置および配線の少なくともいずれかを固定するために、第１タイミングドリブンレイアウトを行う。第１タイミングドリブンレイアウトは、予め決められた配置制約（セルのブロック属性）および第１タイミング制約を用いて行われる。第１タイミング制約は、例えば、半導体集積回路CHIPの動作周波数、クロックの遅延時間の差（クロックスキュー）、およびフリップフロップ間の信号伝播の遅延時間である。なお、第１タイミング制約は、レイアウトシステムSYSにより生成されても、人手により生成されてもよい。また、境界回路BCの各セルは、ブロック属性に基づいて、フロアプランによって決められたブロックBLKのレイアウト領域内に配置される。
【００２２】
次に、レイアウトシステムSYSは、第１タイミングドリブンレイアウトにより得られた境界回路BCのレイアウト結果に対して、第１タイミング調整を行う。第１タイミング調整は、以下の（１）〜（５）の少なくともいずれかにより行われる。なお、第１タイミング調整は、人手により行われてもよい。
（１）境界回路BC内へのバッファの挿入
（２）境界回路BC内の論理パスの駆動能力の変更
（３）境界回路BC内のクロックパスの駆動能力の変更、クロックスキューの調整
（４）境界回路BC内の論理パスの配線経路の修正
（５）境界回路BC内のクロックパスの配線経路の修正
なお、第１タイミングドリブンレイアウトを行う際に、クロックパスの遅延時間は０としてもよい。
【００２３】
この後、レイアウトシステムSYSは、第１タイミングドリブンレイアウトおよび第１タイミング調整により得られた境界回路BCのレイアウト結果が、所望のタイミング条件を満たすか否かを判定する。所望のタイミング条件が満たされない場合、レイアウトシステムSYSは第１タイミングドリブンレイアウトと第１タイミング調整を再度行う。所望のタイミング条件が満たされる場合、境界回路BCの配置および配線の少なくともいずれかが固定される（図４網掛部）。
【００２４】
次に、図５に示すように、レイアウトシステムSYSは、境界回路BCの配線経路と各ブロックBLKのレイアウト領域の外郭OL1、OL2との交点に端子を配置する。例えば、ブロックBLK1のレイアウト領域の外郭OL1と論理パスLPの配線経路の交点に出力端子PIN10が配置される。ブロックBLK1のレイアウト領域の外郭OL1とクロックパスCPの配線経路の交点に入力端子PIN12が配置される。ブロックBLK2のレイアウト領域の外郭OL2と論理パスLPの配線経路の交点に入力端子PIN20が配置される。ブロックBLK2のレイアウト領域の外郭OL2とクロックパスCPの配線経路の交点に入力端子PIN22が配置される。
【００２５】
次に、図６に示すように、レイアウトシステムSYSは、第１タイミングドリブンレイアウトおよび第１タイミング調整により得られた境界回路BCのレイアウト結果から、ブロックBLK毎に第２タイミング制約を生成する。第２タイミング制約は、例えば、半導体集積回路CHIPの動作周波数、クロックスキュー、フリップフロップ間の信号伝播の遅延時間、およびフリップフロップのデータ端子とブロックBLKの端子との間の信号伝播の遅延時間である。例えば、フリップフロップFF1から出力端子PIN10までの遅延時間DELAY1が、第２タイミング制約の１つとしてブロックBLK1に与えられる。出力端子PIN10からフリップフロップFF2まで（出力端子PIN10−入力端子PIN20−組合せ回路CL2−フリップフロップFF2）の遅延時間とクロックドライバCD2の遅延時間との差が、第２タイミング制約の１つとして出力端子PIN10に与えられる。入力端子PIN20からフリップフロップFF2までの遅延時間DELAY2が、第２タイミング制約の１つとしてブロックBLK2に与えられる。クロック生成回路CPGから入力端子PIN20まで（クロック生成回路CPG−クロックドライバCD1−フリップフロップFF1−組合せ回路CL1−出力端子PIN10−入力端子PIN20）の遅延時間が、第２タイミング制約の１つとして入力端子PIN20に与えられる。なお、第２タイミング制約は、人手により生成されてもよい。
【００２６】
次に、図７に示すように、レイアウトシステムSYSは、各ブロックBLK内の回路（図７破線枠）の配置および配線を固定するために、第２タイミングドリブンレイアウトをブロックBLK毎に独立して行う。第２タイミングドリブンレイアウトは、ブロックBLK毎の第２タイミング制約を用いて行われる。また、第２タイミングドリブンレイアウトにおいて、第１タイミングドリブンレイアウトにより配置および配線が行われた回路の配置および配線の少なくともいずれかは固定しておく（図７網掛部）。
【００２７】
例えば、図８に示すように、ブロックBLK1において、フリップフロップFF1と、フリップフロップFF1から出力端子PIN10までの論理パスLP1と、入力端子PIN12からフリップフロップFF1までのクロックパスCP1との配置および配線の少なくともいずれかを固定した状態で、第２タイミングドリブンレイアウトが行われる。ブロックBLK2において、フリップフロップFF2と、入力端子PIN20からフリップフロップFF2までの論理パスLP2と、入力端子PIN22からフリップフロップFF2までのクロックパスCP2との配置および配線の少なくともいずれかを固定した状態で、第２タイミングドリブンレイアウトが行われる。
【００２８】
次に、レイアウトシステムSYSは、第２タイミングドリブンレイアウトにより得られた各ブロックBLK内の回路のレイアウト結果に対して、第２タイミング調整を行う。第２タイミング調整は、以下の（６）〜（１１）の少なくともいずれかにより行われる。なお、第２タイミング調整は、人手により行われてもよい。
【００２９】
（６）ブロックBLK内へのバッファの挿入
（７）ブロックBLK内にあるフリップフロップ（順序回路）間の論理パスの駆動能力の変更
（８）ブロックBLK内にあるフリップフロップに接続されるクロックパスの駆動能力の変更、クロックスキューの調整
（９）ブロックBLK内の論理パスの配線経路の修正
（１０）ブロックBLK内のクロックパスの配線経路の修正
（１１）ブロックBLK内にあるフリップフロップ（順序回路）の配置位置の調整
この後、レイアウトシステムSYSは、第２タイミングドリブンレイアウトおよび第２タイミング調整により得られた各ブロックBLK内の回路のレイアウト結果が、所望のタイミング条件を満たすか否かを判定する。少なくともいずれかのブロックBLKが所望のタイミング条件を満たさない場合、レイアウトシステムSYSは、そのブロックBLKについて第２タイミングドリブンレイアウトと第２タイミング調整を再度行う。すべてのブロックBLKが所望のタイミング条件を満たす場合、ブロックBLK内の回路の配置および配線が固定される（前述した図７破線枠）。すなわち、論理回路全体（半導体集積回路CHIP）のレイアウト処理は完了する。
【００３０】
図９は、第１の実施形態におけるレイアウト処理の動作を示している。レイアウト処理は、レイアウトシステムSYSのCPU１６がレイアウト用プログラムを実行することで行われる。
ステップS00において、フロアプランが行われる。この後、処理はステップS10に移行する。
【００３１】
ステップS10において、レイアウト処理する半導体集積回路CHIPのネットリストおよびフロアプラン情報から境界回路BCが抽出される（前述した図２に対応）。境界回路BCは、機能毎にレイアウト階層として分割されたブロックBLK間に接続される論理パス、その論理パスに接続されるブロックBLK内の初段の順序回路、およびその順序回路に接続されるクロックパスを含む（前述した図３に対応）。この後、処理はステップS20に移行する。
【００３２】
ステップS20において、ステップS10により抽出された境界回路BCの配置および配線の少なくともいずれかを固定するために第１タイミングドリブンレイアウトが行われる（前述した図４に対応）。第１タイミングドリブンレイアウトは、予め決められた配置制約および第１タイミング制約を用いて行われる。この後、処理はステップS30に移行する。
【００３３】
ステップS30において、ステップS20により得られた境界回路BCのレイアウト結果に対して、前述した第１タイミング調整（１）〜（５）の少なくともいずれかが行われる。この後、処理はステップＳ４０に移行する。
ステップS40において、ステップS20およびステップS30により得られた境界回路BCのレイアウト結果が所望のタイミング条件を満たすか否かが、判定される。所望のタイミング条件が満たされない場合、処理はステップS20に移行する。また、必要に応じて、処理はステップS00に移行する。所望のタイミング条件が満たされる場合、処理はステップS50に移行する。
【００３４】
ステップS50において、ステップS20およびステップS30により得られた境界回路BCの配線経路と各ブロックBLKのレイアウト領域の外郭との交点に端子が配置される（前述した図５に対応）。この後、処理はステップS60に移行する。
ステップS60において、ステップS20およびステップS30により得られた境界回路BCのレイアウト結果から、ブロックBLK毎に第２タイミング制約が生成される（前述した図６に対応）。この後、処理はステップS70に移行する。
【００３５】
ステップS70において、各ブロックBLK内の回路の配置および配線を固定するために、第２タイミングドリブンレイアウトがブロックBLK毎に独立して行われる（前述した図７に対応）。第２タイミングドリブンレイアウトは、ステップS60により生成されたブロックBLK毎の第２タイミング制約を用いて行われる。また、第２タイミングドリブンレイアウトにおいて、ステップS20およびステップS30により配置および配線が行われた回路の配置および配線の少なくともいずれかは固定しておく（前述した図８に対応）。この後、処理はステップS80に移行する。
【００３６】
ステップS80において、ステップS70により得られた各ブロックBLK内の回路のレイアウト結果に対して、前述した第２タイミング調整（６）〜（１１）の少なくともいずれかが行われる。この後、処理はステップS90に移行する。
ステップS90において、ステップS70およびステップS80により得られた各ブロックBLK内の回路のレイアウト結果が所望のタイミング条件を満たすか否かが判定される。少なくともいずれかのブロックBLKが所望のタイミング条件を満たさない場合、処理はステップS70に移行する。すべてのブロックBLKが所望のタイミング条件を満たす場合、ブロックBLK内の回路の配置および配線が固定される。そして、論理回路全体（半導体集積回路CHIP）のレイアウト処理は完了する。
【００３７】
なお、ステップS90の後に、CPU１６により、各ブロックBLK内の回路のレイアウト結果が半導体集積回路CHIP上の予め決められた位置に配置され、配線の最適化やタイミング調整が行われてもよい。
以上、第１の実施形態では、次の効果が得られる。境界回路BCのタイミングが収束した後に、各ブロックBLK内の回路のレイアウトが行われることで、各ブロックBLK内の回路のタイミングが収束した後にタイミングエラーは発生しない。これにより、フロアプランまたは論理設計までの後戻りによるレイアウト処理時間の増大が防止される。すなわち、半導体集積回路CHIPの開発期間の短縮および製造コストの削減を実現できる。また、タイミングドリブンレイアウトとタイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、半導体集積回路CHIPの動作速度および動作マージンの向上を実現できる。
【００３８】
図１０は、本発明の第２の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明は省略する。図１０は、第２の実施形態におけるレイアウト処理の動作を示している。レイアウト処理は、レイアウトシステムSYSのCPU１６がレイアウト用プログラムを実行することで行われる。
【００３９】
まず、第１の実施形態と同様に、ステップS10、ステップS20、ステップS50、ステップS60およびステップS70が順次行われる。これにより、境界回路BCのレイアウトおよび各ブロックBLK内の回路のレイアウトが行われる。この後、処理はステップS100に移行する。
ステップS100において、ステップS70により得られた各ブロックBLK内の回路のレイアウト結果を、半導体集積回路CHIP上の予め決められた位置に配置するブロック結合が行われる。この後、処理はステップS110にする。
【００４０】
ステップS110において、ステップS100により得られた論理回路全体のレイアウト結果に対して、第３タイミング調整が行われる。第３タイミング調整は、以下の（１）〜（１１）の少なくともいずれかにより行われる。
（１）境界回路BC内へのバッファの挿入
（２）境界回路BC内の論理パスの駆動能力の変更
（３）境界回路BC内のクロックパスの駆動能力の変更、クロックスキューの調整
（４）境界回路BC内の論理パスの配線経路の修正
（５）境界回路BC内のクロックパスの配線経路の修正
（６）境界回路BC内にあるフリップフロップ（順序回路）の配置位置の調整
（７）ブロックBLK内へのバッファの挿入
（８）ブロックBLK内にあるフリップフロップ（順序回路）間の論理パスの駆動能力の変更
（９）ブロックBLK内にあるフリップフロップに接続されるクロックパスの駆動能力の変更
（１０）ブロックBLK内の論理パスの配線経路の修正
（１１）ブロックBLK内のクロックパスの配線経路の修正
なお、第３タイミング調整は、人手により行われてもよい。この後、処理はステップS120に移行する。
【００４１】
ステップS120において、ステップS110により得られた論理回路全体のレイアウト結果が所望のタイミング条件を満たすか否かが、判定される。所望のタイミング条件が満たされない場合、ステップS110に移行する。所望のタイミング条件が満たされる場合、論理回路全体の配置および配線が固定される。すなわち、論理回路全体（半導体集積回路CHIP）のレイアウト処理は完了する。
【００４２】
この実施形態においても、前述した第１の実施形態と同様の効果を得ることができる。
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）  機能毎に分割された複数のブロックから構成される半導体集積回路のレイアウト方法であって、
前記ブロック間に接続される論理パス、前記論理パスに接続される前記ブロック内の順序回路および前記順序回路に接続されるクロックパスを含む境界回路を抽出する境界回路抽出を行い、
前記境界回路の配置および配線の少なくともいずれかを固定する第１レイアウトを行い、
前記各ブロックに形成される端子の位置を決定するブロック端子配置を行い、
前記各ブロック内の回路の配置および配線を固定する第２レイアウトを、前記ブロック毎に独立して行うことを特徴とする半導体集積回路のレイアウト方法。
【００４３】
（付記２）  付記１の半導体集積回路のレイアウト方法において、
前記第１レイアウトは、前記境界回路についての予め決められた配置制約および第１タイミング制約を用いて行う第１タイミングドリブンレイアウトであり、
前記第２レイアウトは、前記ブロック毎に第２タイミング制約を用いて行う第２タイミングドリブンレイアウトであり、
前記第２タイミング制約は、前記論理パスおよび前記クロックパスにおける前記各ブロック内でのタイミング制約であることを特徴とする半導体集積回路のレイアウト方法。
【００４４】
（付記３）  付記２の半導体集積回路のレイアウト方法において、
前記第１タイミングドリブンレイアウト後に、前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、クロックスキューの調整、前記論理パスの配線経路の修正、および前記クロックパスの配線経路の修正の少なくともいずれかによる第１タイミング調整と、前記第１タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウト方法。
【００４５】
（付記４）  付記２の半導体集積回路のレイアウト方法において、
前記第２タイミングドリブンレイアウト後に、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、クロックスキューの調整、前記ブロック内の論理パスの配線経路の修正、前記ブロック内のクロックパスの配線経路の修正、および前記ブロック内順序回路の配置位置の調整の少なくともいずれかによる第２タイミング調整と、前記第２タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウト方法。
【００４６】
（付記５）  付記２の半導体集積回路のレイアウト方法において、
前記第２タイミングドリブンレイアウト後に、前記各ブロックをチップ上の予め決められた位置に配置するブロック結合を行い、
前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、前記境界回路内でのクロックスキューの調整、前記論理パスの配線経路の修正、前記クロックパスの配線経路の修正、前記境界回路内の順序回路の配置位置の調整、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、前記ブロック内の論理パスの配線経路の修正、および前記ブロック内のクロックパスの配線経路の修正の少なくともいずれかによる第３タイミング調整を、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウト方法。
【００４７】
（付記６）  付記２の半導体集積回路のレイアウト方法において、
前記第２タイミング制約は、前記ブロック端子配置後に生成されることを特徴とする半導体集積回路のレイアウト方法。
（付記７）  付記１の半導体集積回路のレイアウト方法において、
前記順序回路は、前記論理パスに接続される前記ブロック内の初段の順序回路であることを特徴とする半導体集積回路のレイアウト方法。
【００４８】
（付記８）  付記１の半導体集積回路のレイアウト方法において、
前記境界回路抽出前に、前記各ブロックのチップ上の位置を決定するフロアプランを行うことを特徴とする半導体集積回路のレイアウト方法。
（付記９）  機能毎に分割された複数のブロックから構成される半導体集積回路のレイアウトシステムであって、
前記ブロック間に接続される論理パス、前記論理パスに接続される前記ブロック内の順序回路および前記順序回路に接続されるクロックパスを含む境界回路を抽出する境界回路抽出を行い、前記境界回路の配置および配線の少なくともいずれかを固定する第１レイアウトを行い、前記各ブロックに形成される端子の位置を決定するブロック端子配置を行い、前記各ブロック内の回路の配置および配線を固定する第２レイアウトを、前記ブロック毎に独立して行うプログラムを格納する記憶部と、
前記記憶部に格納された前記プログラムを実行する制御部とを備えていることを特徴とする半導体集積回路のレイアウトシステム。
【００４９】
（付記１０）  付記９の半導体集積回路のレイアウトシステムにおいて、
前記第１レイアウトは、前記境界回路についての予め決められた配置制約および第１タイミング制約を用いて行う第１タイミングドリブンレイアウトであり、
前記第２レイアウトは、前記ブロック毎に第２タイミング制約を用いて行う第２タイミングドリブンレイアウトであり、
前記第２タイミング制約は、前記論理パスおよび前記クロックパスにおける前記各ブロック内でのタイミング制約であることを特徴とする半導体集積回路のレイアウトシステム。
【００５０】
（付記１１）  付記１０の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記第１タイミングドリブンレイアウト後に、前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、クロックスキューの調整、前記論理パスの配線経路の修正、および前記クロックパスの配線経路の修正の少なくともいずれかによる第１タイミング調整と、前記第１タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウトシステム。
【００５１】
（付記１２）  付記１０の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記第２タイミングドリブンレイアウト後に、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、クロックスキューの調整、前記ブロック内の論理パスの配線経路の修正、前記ブロック内のクロックパスの配線経路の修正、および前記ブロック内順序回路の配置位置の調整の少なくともいずれかによる第２タイミング調整と、前記第２タイミングドリブンレイアウトとを、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウトシステム。
【００５２】
（付記１３）  付記１０の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記第２タイミングドリブンレイアウト後に、前記各ブロックをチップ上の予め決められた位置に配置するブロック結合を行い、前記境界回路内へのバッファの挿入、前記論理パスの駆動能力の変更、前記クロックパスの駆動能力の変更、前記境界回路内でのクロックスキューの調整、前記論理パスの配線経路の修正、前記クロックパスの配線経路の修正、前記境界回路内の順序回路の配置位置の調整、前記ブロック内へのバッファの挿入、前記ブロック内にあるブロック内順序回路間の論理パスの駆動能力の変更、前記ブロック内順序回路に接続されるクロックパスの駆動能力の変更、前記ブロック内の論理パスの配線経路の修正、および前記ブロック内のクロックパスの配線経路の修正の少なくともいずれかによる第３タイミング調整を、所望のタイミング条件を満たすまで繰り返し行うことを特徴とする半導体集積回路のレイアウトシステム。
【００５３】
（付記１４）  付記１０の半導体集積回路のレイアウトシステムにおいて、
前記第２タイミング制約は、前記ブロック端子配置後に生成されることを特徴とする半導体集積回路のレイアウトシステム。
（付記１５）  付記９の半導体集積回路のレイアウトシステムにおいて、
前記順序回路は、前記論理パスに接続される前記ブロック内の初段の順序回路であることを特徴とする半導体集積回路のレイアウトシステム。
【００５４】
（付記１６）  付記９の半導体集積回路のレイアウトシステムにおいて、
前記制御部は、前記境界回路抽出前に、前記各ブロックのチップ上の位置を決定するフロアプランを行うことを特徴とする半導体集積回路のレイアウトシステム。
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【００５５】
【発明の効果】
本発明の第１および第２の態様では、各ブロック内の回路のレイアウトが行われる前に、境界回路のレイアウトが行われることで、異なるブロック間の配線のタイミングをレイアウト設計の初期段階で収束させておくことができる。この結果、レイアウト設計の上流工程または論理設計までの後戻りを防止できる。従って、レイアウト設計におけるレイアウト処理時間を短縮することができる。換言すれば、半導体集積回路チップの開発期間を短縮でき、半導体集積回路チップの製造コストを削減できる。
【００５６】
本発明の第３の態様では、境界回路について、第１タイミングドリブンレイアウトと第１タイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、最適なフロアプランになることにより半導体集積回路チップの動作速度および動作マージンを向上させることができる。
【００５７】
本発明の第４の態様では、各ブロックについて、第２タイミングドリブンレイアウトと第２タイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、半導体集積回路チップの動作速度および動作マージンを向上させることができる。
【００５８】
本発明の第５の態様では、論理回路全体について、第３タイミング調整が、所望のタイミング条件を満たすまで繰り返し行われることで、半導体集積回路チップの動作速度および動作マージンを向上させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示すシステム構成図である。
【図２】第１の実施形態のレイアウト処理が行われる半導体集積回路の概略ブロック図である。
【図３】第１の実施形態のレイアウト処理における境界回路の抽出を示す説明図である。
【図４】第１の実施形態のレイアウト処理における第１タイミングドリブンレイアウトの説明図である。
【図５】第１の実施形態のレイアウト処理におけるブロック端子の配置を示す説明図である。
【図６】第１の実施形態のレイアウト処理における第２タイミング制約の生成を示す説明図である。
【図７】第１の実施形態のレイアウト処理における第２タイミングドリブンレイアウトの説明図である。
【図８】図７の第２タイミングドリブンレイアウトの詳細を示す説明図である。
【図９】第１の実施形態のレイアウト処理を示すフローチャートである。
【図１０】本発明の第２の実施形態を示すフローチャートである。
【符号の説明】
１０  ディスプレイ
１２  キーボード
１４  制御装置
１６  CPU
１８  ハードディスク
２０  記録媒体ドライブ装置
２２  CD-ROM
２４  フレキシブルディスク
BC  境界回路
BLK1、BLK2、BLK3、BLK4  ブロック
CD1、CD2  クロックドライバ
CHIP  半導体集積回路
CL1、CL2  組合せ回路
CP、CP1、CP2  クロックパス
CPG  クロック生成回路
DELAY1、DELAY2  遅延時間
FF1、FF2  フリップフロップ
LP、LP1、LP2  論理パス
OL1、OL2  外郭
PIN10、PIN12、PIN20、PIN22  ブロック端子
SYS  レイアウトシステム
WS  ワークステーション
【図１】
0004261172.tif 000002
【図２】
0004261172.tif 000003
【図３】
0004261172.tif 000004
【図４】
0004261172.tif 000005
【図５】
0004261172.tif 000006
【図６】
0004261172.tif 000007
【図７】
0004261172.tif 000008
【図８】
0004261172.tif 000009
【図９】
0004261172.tif 000010
【図１０】
0004261172.tif 000011