(57)【要約】【課題】タイミング調整のイタレーションの回数を減らすことができる集積回路のレイアウト設計方法を提供する。【解決手段】トップレベルのフロアプランを行う（Ｓ１）。但し、レイアウト階層ブロックの代わりに、擬似レイアウト階層ブロック（トップレベルのフロアプラン時のレイアウト階層ブロックの領域を示すもの）を設定する。次に、レイアウト階層ブロックでのレイアウト設計処理（フロアプラン、初期配置、理想クロックでのタイミング最適化合成）を行い（Ｓ２）、レイアウト階層ブロックの配置情報４８をトップレベルにフィードバックする（Ｓ３）。次に、トップレベルでのレイアウト設計処理（初期配置、クロック合成、クロック遅延伝播を考慮したタイミング最適化合成、配線）を行う（Ｓ４）。【選択図】図１
2007080256.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いる集積回路のレイアウト設計方法であって、
集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランを行う工程と、
前記レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、
前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を有する
ことを特徴とする集積回路のレイアウト設計方法。
【請求項２】
集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランを行う工程と、
前記レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、
前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を
コンピュータに実行させることを特徴とする集積回路のレイアウト設計プログラム。
【請求項３】
前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程は、
初期配置を行う工程と、クロック合成を行う工程と、前記レイアウト階層ブロックを面積がゼロの階層ブロックとする工程と、タイミング最適化を行う工程と、前記階層ブロックの領域に前記タイミング最適化後の前記レイアウト階層ブロック内の配置情報をフィードバックする工程を順に行う工程である
ことを特徴とする請求項１記載の集積回路のレイアウト設計プログラム。
【請求項４】
コンピュータを用いる集積回路のレイアウト設計方法であって、
集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置を行う工程と、
前記レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、
前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を有する
ことを特徴とする集積回路のレイアウト設計方法。
【請求項５】
集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置を行う工程と、
前記レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、
前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を
コンピュータに実行させることを特徴とする集積回路のレイアウト設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いる集積回路のレイアウト設計方法および集積回路のレイアウト設計プログラムに関する。
【背景技術】
【０００２】
従来、ＬＳＩ（大規模集積回路）のレイアウト設計方法として、例えば、フラットレイアウト設計方法および階層レイアウト設計方法が提案されている。フラットレイアウト設計方法は、トップレベル（上位階層）において、ＲＡＭ、ＲＯＭ等のマクロセルの配置位置やＡＮＤゲート、ＯＲゲート等のユニットセル領域を決め、同一フラットでレイアウト設計処理を行うという方法である。
【０００３】
これに対して、階層レイアウト設計方法は、トップレベルにおいて、レイアウト階層ブロック（ユニットセルやマクロセルや別のレイアウト階層から成り、論理的には必ず一つの論理階層か又はその下位階層全てから成るブロック）の配置位置や、トップレベルのマクロセルの配置位置や、トップレベルのユニットセル領域を決め、トップレベルとレイアウト階層ブロックとを別々にレイアウト設計処理するという方法である。
【０００４】
図２４はフラットレイアウト設計方法と階層レイアウト設計方法の設計手法の違いを示す図である。図２４（Ａ）はフラットレイアウト設計方法におけるトップレベルのフロアプラン例を示しており、１はチップ、２はトップレベル、３〜８はマクロセルの配置位置、９はユニットセル領域である。このように、フラットレイアウト設計方法は、トップレベル２においてマクロセルの配置位置３〜８やユニットセル領域９を決め、同一フラットでレイアウト設計処理を行うという方法である。
【０００５】
図２４（Ｂ）は階層レイアウト設計方法におけるトップレベルのフロアプラン例を示しており、１０はチップ、１１はトップレベル、１２〜１４はレイアウト階層ブロック、１５〜１７はマクロセルの配置位置、１８はユニットセル領域である。このように、階層レイアウト設計方法は、トップレベル１１においてレイアウト階層ブロック１２〜１４の配置位置やマクロセルの配置位置１５〜１７やユニットセル領域１８を決め、トップレベル１１とレイアウト階層ブロック１２〜１４とを別々にレイアウト設計処理するという方法である。
【０００６】
近年、プロセステクノロジの微細化に伴い、ＬＳＩ（チップ）に搭載可能なゲート数が増大しているが、ＬＳＩに搭載するゲート数が、レイアウトツールが扱えるゲート数の上限に達した場合、レイアウト処理時間は非常に長いものとなる。したがって、ＬＳＩに搭載する回路をトップレベルとレイアウト階層ブロックという形に分けてレイアウト設計を行う階層レイアウト設計方法が主流となっている。
【０００７】
図２５は階層レイアウト設計方法を示す流れ図である。図２５中、１９はトップレベルでのレイアウト設計処理の流れを示し、２０はレイアウト階層ブロックでのレイアウト設計処理の流れを示しており、階層レイアウト設計方法では、４つの工程（Ｐ１〜Ｐ４）が順に実行される。
【０００８】
第１工程（Ｐ１）はトップレベルのフロアプランを行う工程である。第２工程（Ｐ２）はレイアウト階層ブロックのレイアウト設計処理を行う工程である。第３工程（Ｐ３）は第２工程（Ｐ２）で得られるレイアウト階層ブロックのタイミングモデルおよびレイアウト階層ブロックセルをトップレベルにフィードバックする工程である。第４工程（Ｐ４）はトップレベルでの初期配置、クロック合成、タイミング最適化合成および配線を行う工程である。
【０００９】
即ち、階層レイアウト設計方法においては、まず、トップレベルのフロアプランが行われ、トップレベルにおいてレイアウト階層ブロックの配置位置やマクロセルの配置位置やユニットセル領域が決定される（Ｐ１）。
【００１０】
次に、レイアウト階層ブロックのレイアウト設計処理が行われる（Ｐ２）。具体的には、レイアウト階層ブロック毎にフロアプラン（Ｐ２−１）、初期配置（Ｐ２−２）、クロック合成（Ｐ２−３）、クロック遅延伝播を考慮したタイミング最適化合成（Ｐ２−４）および配線（Ｐ２−５）が順に行われる。なお、タイミング最適化合成（Ｐ２−４）時には、フリップフロップ間のタイミング制約が与えられて処理が行われる。
【００１１】
次に、トップレベルのレイアウト設計処理を行うために、第２工程（Ｐ２）で得られたレイアウト階層ブロックのタイミングモデル（レイアウト階層ブロックの入出力タイミング情報）およびレイアウト階層ブロックセル情報（サイズ、外部端子位置）がトップレベルにフィードバックされ、トップレベルのフロアプランの更新が行われる（Ｐ３）。
【００１２】
次に、トップレベルでのレイアウト処理が行われる（Ｐ４）。具体的には、トップレベルのタイミング制約を用いた初期配置（Ｐ４−１）、クロック合成（Ｐ４−２）、クロック遅延伝播を考慮したタイミング最適化合成（Ｐ４−３）および配線（Ｐ４−４）が順に行われる。
【００１３】
図２６〜図２９は階層レイアウト設計方法で実行される第１工程（Ｐ１）〜第４工程（Ｐ４）の結果例を示す図である。図２６は第１工程（Ｐ１）の結果例（トップレベルのフロアプラン例）を示しており、２１はチップ、２２はトップレベル、２３〜２５はレイアウト階層ブロック、２６〜２８はマクロセルの配置位置、２９はユニットセル領域である。
【００１４】
図２７は第２工程（Ｐ２）の結果例（レイアウト階層ブロックのレイアウト例）を示しており、３０〜３２はそれぞれレイアウト階層ブロック２３〜２５をレイアウト設計処理してなるレイアウト階層ブロックセルであり、３３〜３６はマクロセル、３７〜３９はユニットセルが配置された領域である。
【００１５】
図２８は第３工程（Ｐ３）の結果例（トップレベルのフロアプラン更新例）を示している。図２９は第４工程（Ｐ４）の結果例（トップレベルでのレイアウト例）を示しており、４０〜４２はトップレベルのマクロセル、４３はトップレベルのユニットセルを配置した領域、４４はクロックツリーである。
【特許文献１】特開２００４−２３４１９３号公報
【特許文献２】特開２０００−１５５７７０号公報
【特許文献３】特開２０００−１００９４９号公報
【特許文献４】特開２００３−２３０８２号公報
【特許文献５】特開２００３−２４２１９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
前述のように、階層レイアウト設計方法においては、トップレベルのフロアプラン決定後、トップレベルとは別にレイアウト階層ブロックでのレイアウト設計処理を行い、レイアウト階層ブロックのタイミングモデルをトップレベルに戻すことでトップレベルでのタイミング調整を行うとしているので、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路（トップレベルのマクロセル、ユニットセル）−レイアウト階層ブロック間のタイミング調整結果は、レイアウト階層ブロックのタイミングモデルの品質（レイアウト階層ブロックの完成度）に左右されることになる。
【００１７】
しかしながら、階層レイアウト設計方法においては、トップレベルとレイアウト階層ブロックとを別々にレイアウト設計処理することが、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延やクロック挿入遅延のバラツキによるクロックスキューを抑え難くしており、このため、トップレベルでのタイミング調整時に、トップレベルおよびレイアウト階層ブロックの双方で、タイミング調整（レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路のタイミング最適化再合成やセルの置換、クロックスキュー調整など）のイタレーションを必要としている。
【００１８】
本発明は、かかる点に鑑み、タイミング調整のイタレーションの回数を減らすことができる集積回路のレイアウト設計方法および集積回路のレイアウト設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明中、第１の発明は、コンピュータを用いる集積回路のレイアウト設計方法であり、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランを行う工程と、前記レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成をトップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を有するものである。
【００２０】
本発明中、第２の発明は、集積回路のレイアウト設計プログラムの発明であり、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランを行う工程と、前記レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程をコンピュータに実行させるものである。
【００２１】
本発明中、第３の発明は、コンピュータを用いる集積回路のレイアウト設計方法であり、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置を行う工程と、前記レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を有するものである。
【００２２】
本発明中、第４の発明は、集積回路のレイアウト設計プログラムの発明であり、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置を行う工程と、前記レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程をコンピュータに実行させるものである。
【発明の効果】
【００２３】
第１の発明によれば、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランが行われた後、レイアウト階層ブロックにおける初期配置と理想クロックによるタイミング最適化合成がトップレベルとは独立に行われ、レイアウト階層ブロックのタイミングモデルおよびレイアウト階層ブロックセルの代わりに、レイアウト階層ブロックの配置情報がトップレベルに戻されて同一フラットでレイアウト設計処理が行われる。
【００２４】
したがって、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延やクロック遅延のバラツキを抑えて、タイミング調整のイタレーションの回数を減らすことができる。また、第２の発明によれば、第１の発明をコンピュータに実行させることができる。
【００２５】
また、第３の発明によれば、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置が行われた後、レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成がトップレベルとは独立に行われ、レイアウト階層ブロックの配置情報がトップレベルに戻されて同一フラットでレイアウト設計処理が行われる。
【００２６】
したがって、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延やクロック遅延のバラツキを抑えて、タイミング調整のイタレーションの回数を減らすことができる。また、第４の発明によれば、第３の発明をコンピュータに実行させることができる。
【００２７】
なお、第１の発明〜第４の発明において、レイアウト階層ブロックの配置情報をトップレベルに戻す場合、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の配置属性を未配置とする場合には、複雑なレイアウト階層ブロック設計（境界設計、ピン配置など）を不要にし、レイアウト階層ブロックの領域内のトップレベルとの境界部の配線性を向上させ、タイミング調整のイタレーションの回数を更に減らすことができる。
【発明を実施するための最良の形態】
【００２８】
（本発明の集積回路のレイアウト設計方法の第１実施形態）
図１は本発明の集積回路のレイアウト設計方法の第１実施形態を示す流れ図である。図１中、４５はトップレベルでのレイアウト設計処理の流れを示し、４６はレイアウト階層ブロックでのレイアウト設計処理の流れを示している。本発明の集積回路のレイアウト設計方法の第１実施形態においても、４つの工程（Ｓ１〜Ｓ４）が順に実行される。
【００２９】
第１工程（Ｓ１）はトップレベルのフロアプランを行う工程である。第２工程（Ｓ２）はレイアウト階層ブロックにおいてフロアプラン、初期配置および理想クロックでのタイミング最適化合成を行う工程である。第３工程（Ｓ３）は第２工程（Ｓ２）で得られるレイアウト階層ブロックの配置情報をトップレベルにフィードバックする工程である。第４工程（Ｓ４）はトップレベルにおいて初期配置、クロック合成、クロック遅延伝播を考慮したタイミング最適化合成および配線を行う工程である。
【００３０】
即ち、本発明の集積回路のレイアウト設計方法の第１実施形態においては、まず、レイアウト設計対象のＬＳＩについて、トップレベルのフロアプランを行う（Ｓ１）。但し、本発明の集積回路のレイアウト設計方法の第１実施形態では、レイアウト階層ブロックの代わりに擬似レイアウト階層ブロックを決定する。擬似レイアウト階層ブロックとは、トップレベルのフロアプラン時のレイアウト階層ブロックの領域を示すものである。したがって、本発明の集積回路のレイアウト設計方法の第１実施形態におけるトップレベルのフロアプランでは、擬似レイアウト階層ブロックの配置位置、マクロセルの配置位置、ユニットセル領域を決定することになる。
【００３１】
擬似レイアウト階層ブロックとしてトップレベルとは異なるレイアウト階層とする論理階層の選択基準は、レイアウトを実施する上でＴＡＴ（工数）に大きな影響のある論理階層（タイミングクリティカル階層或いは規模によるＴＡＴクリティカルな階層）であるか否かである。
【００３２】
次に、レイアウト階層ブロックのレイアウト設計処理を行う（Ｓ２）。具体的には、レイアウト階層ブロックにおいてフロアプラン（Ｓ２−１）、初期配置（Ｓ２−２）、クロックスキューがないものと見なした理想クロックでのタイミング最適化合成（Ｓ２−３）を順に実行する。なお、タイミング最適化合成（Ｓ２−３）時には、フリップフロップ間のタイミング制約４７を与えて処理を行う。
【００３３】
次に、同一フラットで処理を行うため、レイアウト階層ブロックのレイアウト設計処理（Ｓ２）で得られたレイアウト階層ブロックの配置情報４８をトップレベルの擬似レイアウト階層ブロックにフィードバックする（Ｓ３）。但し、この場合、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の配置属性を未配置とする。
【００３４】
次に、トップレベルのレイアウト設計処理を行う（Ｓ４）。具体的には、トップレベル回路とレイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の初期配置（Ｓ４−１）、クロック合成（Ｓ４−２）、クロック遅延伝播を考慮したタイミング最適化合成（Ｓ４−３）および配線（Ｓ４−４）を順に行う。
【００３５】
なお、初期配置（Ｓ４−１）時には、トップレベルのタイミング制約４９を与えて処理を行う。また、タイミング最適化合成（Ｓ４−３）時には、タイミング最適化の対象・非対象を示すタイミング最適化対象・非対象制約５０を与えてレイアウト処理を行う。
【００３６】
図２はレイアウト階層ブロック内のトップレベルとの境界部の組合せ回路を説明するための図である。図２中、５１はチップ、５２はトップレベルであり、５３〜５５はフリップフロップ、５６〜５８は組合せ回路である。５９はレイアウト階層ブロックであり、６０〜６２は外部端子である入力端子、６３〜６６は外部端子である出力端子、６７〜７２はフリップフロップ、７３〜７８は組合せ回路である。
【００３７】
ここで、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路とは、（ａ）組合せ回路７４のように、入力端子と初段のフリップフロップとの間の組合せ回路、（ｂ）組合せ回路７５、７６のように、最終段のフリップフロップと出力端子との間の組合せ回路、（ｃ）組合せ回路７７のように、リエントラント（Re-entrant）パス上の組合せ回路、（ｄ）組合せ回路７８のように、レイアウト階層ブロック内のフリップフロップを通過しないパス上の組合せ回路である。
【００３８】
本発明の集積回路のレイアウト設計方法の第１実施形態においては、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路７３〜７７は、レイアウト階層ブロックの配置情報４８をトップレベルの擬似レイアウト階層ブロックにフィードバックする場合（Ｓ３）、その配置属性を未配置とする。これに対して、フリップフロップ６７、６８間のパス７９上の組合せ回路７３のように、レイアウト階層ブロック内部で閉じているパス上の組合せ回路は、トップレベルとの境界部の組合せ回路としない。
【００３９】
図３〜図６は本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第１工程（Ｓ１）〜第４工程（Ｓ４）の結果例を示す図である。図３は第１工程（Ｓ１）の結果例（トップレベルのフロアプラン例）を示しており、８０はチップ、８１はトップレベル、８２〜８４は擬似レイアウト階層ブロック、８５〜８７はマクロセルの配置位置、８８はユニットセル領域である。
【００４０】
図４は第２工程（Ｓ２）の結果例（レイアウト階層ブロックのレイアウト例）を示しており、８９〜９１はそれぞれ擬似レイアウト階層ブロック８２〜８４に配置情報を戻すレイアウト階層ブロックであり、９２〜９５はマクロセル、９６〜９８はユニットセルが配置された領域である。
【００４１】
図５は第３工程（Ｓ３）の結果例（レイアウト階層ブロックの配置情報をトップレベルに戻した状態）を示している。この場合、擬似レイアウト階層ブロック８２〜８４内のトップレベルとの境界部の組合せ回路の配置属性は未配置とされている。したがって、図５では、図４に示すレイアウト階層ブロック８９〜９１からトップレベルとの境界部の組合せ回路を除いた回路が置かれた状態を示している。
【００４２】
図６は第４工程（Ｓ４）の結果例（トップレベルのレイアウト例）を示しており、９９〜１０１はトップレベルのマクロセル、１０２はトップレベルのユニットセルを配置した領域、１０３はクロックツリーである。
【００４３】
ここで、トップレベル回路および擬似レイアウト階層ブロック８２〜８４内のトップレベル８１との境界部の組合せ回路の初期配置（Ｓ４−１）は、トップレベルにおけるレイアウト階層ブロック間又はトップレベル回路−擬似レイアウト階層ブロック間のパス遅延が小さくなるように、擬似レイアウト階層ブロック８２〜８４又はトップレベル８１のユニットセル領域８８に対して行われる。
【００４４】
したがって、本発明の集積回路のレイアウト設計方法の第１実施形態では、擬似レイアウト階層ブロック８２〜８４内のトップレベルとの境界部の組合せ回路とされたものがトップレベル８１のユニットセル領域８８に配置され、又は、トップレベル回路が擬似レイアウト階層ブロック８２〜８４に配置されることがある。図６は、この場合を含めて示している。
【００４５】
また、クロック遅延伝播を考慮したタイミング最適化合成（Ｓ４−３）時には、擬似レイアウト階層ブロック８２〜８４内部で閉じるパスをタイミング最適化の非対象とするタイミング制約を与えてタイミング最適化合成を実施する。したがって、以下の表に示すようにタイミング最適化対象・非対象となるタイミング制約を与えてタイミング最適化合成を行うことになる。
【００４６】
【表１】
2007080256.tif 000003
【００４７】
図７〜図１０は本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第１工程（Ｓ１）〜第４工程（Ｓ４）を更に詳しく説明するための図であり、各工程後の擬似レイアウト階層ブロックの内部回路とトップレベルの回路の配置状態の例を示している。
【００４８】
図７は第１工程（Ｓ１）を更に詳しく説明するための図である。１０４はチップ、１０５はトップレベル、１０６、１０７は擬似レイアウト階層ブロックである。第１工程（Ｓ１）ではフロアプランが決定されるが、図７はフロアプランを決定するために一旦配置・配線されたトップレベル１０５での擬似レイアウト階層ブロック１０６、１０７間の接続と、擬似レイアウトブロック１０６、１０７の外部端子１０８、１０９と、組合せ回路１１０、１１１と、フリップフロップ１１２、１１３を示している。
【００４９】
図８は第２工程（Ｓ２）を更に詳しく説明するための図である。第２工程（Ｓ２）では、擬似レイアウト階層ブロック１０６、１０７に対応するレイアウト階層ブロック１１４、１１５のレイアウト設計処理が行われるが、初期配置（Ｓ２−２）では、トップレベル１０５の境界部の組合せ回路１１０、１１１に接続されているフリップフロップ１１２、１１３をトップレベル１０５との境界部に引き付ける。そして、組合せ回路１１０、１１１は接続性のみで配置する。なお、１１６、１１７はフリップフロップ、１１８、１１９は組合せ回路である。
【００５０】
図９は第３工程（Ｓ３）を更に詳しく説明するための図である。第３工程（Ｓ３）では、同一フラットで処理を行うため、レイアウト階層ブロック１１４、１１５の配置情報をそれぞれトップレベル１０５の擬似レイアウト階層ブロック１０６、１０７にフィードバックするが、トップレベル１０５との境界部の組合せ回路１１０、１１１の配置属性を未配置とする。なお、１２０、１２１はトップレベル１０５の未配置の組合せ回路を示している。
【００５１】
図１０は第４工程（Ｓ４）を更に詳しく説明するための図である。第４工程（Ｓ４）では、初期配置（Ｓ４−１）、クロック合成（Ｓ４−２）、クロック遅延伝播を考慮したタイミング最適化合成（Ｓ４−３）および配線（Ｓ４−４）が行われるが、組合せ回路１１０、１１１、１２０、１２１は、トップレベル１０５におけるレイアウト階層ブロック間又はトップレベル回路−擬似レイアウト階層ブロック間のパス遅延が小さくなるように、擬似レイアウト階層ブロック１０６、１０７又はトップレベル１０５のユニットセル領域に配置される。
【００５２】
図１１は本発明の集積回路のレイアウト設計方法の第１実施形態を実行するためのコンピュータの概念図である。図１１に示すコンピュータは、ＣＰＵ１２２と、ＣＰＵ１２２が演算等に使用するメモリ１２３と、キーボードやマウス等の入力装置１２４と、表示装置１２５と、ハードディスク装置（ＨＤＤ）１２６を有している。
【００５３】
本例では、ハードディスク装置１２６には、本発明の集積回路のレイアウト設計方法の第１実施形態を実行するためのプログラム１２７〜１３５（本発明の集積回路のレイアウト設計プログラムの第１実施形態）等が格納される。
【００５４】
プログラム１２７は、トップレベルのフロアプランを行うためのものであり、具体的には、ステップＳ１を実行するためのものである。プログラム１２８は、レイアウト階層ブロックのフロアプランを行うためのものであり、具体的には、ステップＳ２−１を実行するためのものである。
【００５５】
プログラム１２９は、レイアウト階層ブロックの初期配置を行うためのものであり、具体的には、ステップＳ２−２を実行するためのものである。プログラム１３０は、レイアウト階層ブロックのタイミング最適化合成を行うためのものであり、具体的には、ステップＳ２−３を実行するためのものである。
【００５６】
プログラム１３１は、レイアウト階層ブロックの配置情報をトップレベルにフィードバックするためのものであり、具体的には、ステップＳ３を実行するためのものである。プログラム１３２は、トップレベルの初期配置を行うためのものであり、具体的には、ステップＳ４−１を実行するためのものである。
【００５７】
プログラム１３３は、トップレベルのクロック合成を行うためのものであり、具体的には、ステップＳ４−２を実行するためのものである。プログラム１３４は、トップレベルのタイミング最適化合成を行うためのものであり、具体的には、ステップＳ４−３を実行するためのものである。プログラム１３５は、トップレベルの配線を行うためのものであり、具体的には、ステップＳ４−４を実行するためのものである。
【００５８】
以上のように、本発明の集積回路のレイアウト設計方法の第１実施形態においては、ＬＳＩのトップレベルの一部を擬似レイアウト階層ブロックとし（Ｓ１）、レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成をトップレベルとは独立して行い（Ｓ２）、レイアウト階層ブロックの配置情報をトップレベルに戻し（Ｓ３）、同一フラットで初期配置、クロック合成、タイミング最適化合成、配線を行うとしている（Ｓ４）。したがって、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延とクロック遅延のバラツキを抑えることができる。
【００５９】
また、レイアウト階層ブロックの配置情報をトップレベルの擬似レイアウト階層ブロックにフィードバックする場合、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の配置属性を未配置としているので、複雑なレイアウト階層ブロック設計（境界設計、ピン配置など）を不要にし、擬似レイアウト階層ブロックのトップレベルとの境界部の配線性を向上させることができる。
【００６０】
即ち、本発明の集積回路のレイアウト設計方法の第１実施形態によれば、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延やクロック遅延のバラツキを抑え、かつ、擬似レイアウト階層ブロック内のトップレベルとの境界部の配線性を向上させることができるので、タイミング調整のイタレーションの回数を減らすことができる。
【００６１】
（本発明の集積回路のレイアウト設計方法の第２実施形態）
図１２は本発明の集積回路のレイアウト設計方法の第２実施形態を示す流れ図である。図１２中、１４０はトップレベルでのレイアウト設計処理の流れを示し、１４１はレイアウト階層ブロックでのレイアウト設計処理の流れを示している。本発明の集積回路のレイアウト設計方法の第２実施形態においても、４つの工程（Ｑ１〜Ｑ４）が順に実行される。
【００６２】
第１工程（Ｑ１）はトップレベルにおいてフロアプランおよび初期配置を行う工程である。第２工程（Ｑ２）はレイアウト階層ブロックにおいてクロック合成、実クロックでのタイミング最適化合成を行う工程である。第３工程（Ｑ３）は第２工程（Ｑ２）で得られる配置情報をトップレベルにフィードバックする工程である。第４工程（Ｑ４）はトップレベルにおいてクロック合成、タイミング最適化合成および配線を行う工程である。
【００６３】
即ち、本発明の集積回路のレイアウト設計方法の第２実施形態においては、まず、レイアウト設計対象のＬＳＩについて、トップレベルのフロアプランを行う（Ｑ１−１）。具体的には、擬似レイアウト階層ブロックの配置位置、マクロセルの配置位置、ユニットセル領域を決定する（Ｑ１−１）。その後、トップレベルで初期配置を行う（Ｑ１−２）。
【００６４】
次に、レイアウト階層ブロックのレイアウト設計処理を行う（Ｑ２）。具体的には、レイアウト階層ブロック内のクロックツリー合成を行う（Ｑ２−１）。即ち、レイアウト階層ブロック内のクロックソースとなるセルを起点としてクロックツリー合成を行う。その後、実クロックでタイミング最適化合成処理を行う（Ｑ２−２）。なお、タイミング最適化合成（Ｑ２−２）時には、フリップフロップ間のタイミング制約１４２を与えて処理を行う。
【００６５】
次に、同一フラットで処理を行うため、レイアウト階層ブロックのレイアウト設計処理（Ｑ２）で得られたレイアウト階層ブロックの配置情報１４３をクロックの配置情報を含めてトップレベルの擬似レイアウト階層ブロックにフィードバックする（Ｑ３）。
【００６６】
次に、トップレベルのレイアウト設計処理を行う（Ｑ４）。具体的には、トップレベルにおいて同一フラットでのクロック合成（Ｑ４−１）、クロック遅延伝播を考慮したタイミング最適化合成（Ｑ４−２）および配線（Ｑ４−３）を順に行う。
【００６７】
なお、クロック合成（Ｑ４−１）時には、トップレベルのタイミング制約１４４を与えて処理を行う。但し、この場合、レイアウト階層ブロック内のクロックツリーを保存したまま、トップレベルのみにクロックツリー合成を行う。
【００６８】
また、タイミング最適化合成（Ｑ４−２）時には、タイミング最適化の対象・非対象を示すタイミング最適化対象・非対象制約１４５を与えてレイアウト処理を行う。なお、表１に示すように、擬似レイアウト階層ブロック内部で閉じるパスはタイミング最適化の非対象とする。
【００６９】
図１３〜図１６は本発明の集積回路のレイアウト設計方法の第２実施形態で実行される第１工程（Ｑ１）〜第４工程（Ｑ４）の結果例を示す図である。図１３は第１工程（Ｑ１）の結果例（トップレベルのフロアプラン後の初期配置例）を示しており、１５０はチップ、１５１はトップレベル、１５２〜１５４はフロアプラン時に指定した擬似レイアウト階層ブロック、１５５〜１６１はマクロセル、１６２〜１６５はユニットセルが配置された領域である。なお、擬似レイアウト階層ブロック１５２〜１５４内のマクロセル１５５〜１５８およびユニットセルは、指定した場所に収まるように配置している。
【００７０】
図１４は第２工程（Ｑ２）の結果例（レイアウト階層ブロックのレイアウト例）を示しており、１６６〜１６８はそれぞれ擬似レイアウト階層ブロック１５２〜１５４に配置情報を戻すレイアウト階層ブロックであり、１６９〜１７１はクロックツリーである。
【００７１】
図１５は第３工程（Ｑ３）の結果例（レイアウト階層ブロックの配置情報をトップレベルに戻した状態）を示している。図１６は第４工程（Ｑ４）の結果例（トップレベルのレイアウト例）を示しており、１７２はクロックツリーである。
【００７２】
図１７は本発明の集積回路のレイアウト設計方法の第２実施形態を実行するためのコンピュータの概念図である。図１７に示すコンピュータは、図１１に示すコンピュータと同様に、ＣＰＵ１２２と、メモリ１２３と、入力装置１２４と、表示装置１２５と、ハードディスク装置（ＨＤＤ）１２６を有している。
【００７３】
本例では、ハードディスク装置１２６には、本発明の集積回路のレイアウト設計方法の第２実施形態を実行するためのプログラム１７５〜１８２（本発明の集積回路のレイアウト設計プログラムの第２実施形態）等が格納される。
【００７４】
プログラム１７５は、トップレベルのフロアプランを行うためのものであり、具体的には、ステップＱ１−１を実行するためのものである。プログラム１７６は、トップレベルの初期配置を行うためのものであり、具体的には、ステップＱ１−２を実行するためのものである。
【００７５】
プログラム１７７は、レイアウト階層ブロックのクロック合成を行うためのものであり、具体的には、ステップＱ２−１を実行するためのものである。プログラム１７８は、レイアウト階層ブロックのタイミング最適化合成を行うためのものであり、具体的には、ステップＱ２−２を実行するためのものである。
【００７６】
プログラム１７９は、レイアウト階層ブロックの配置情報をトップレベルにフィードバックするためのものであり、具体的には、ステップＱ３を行うためのものである。プログラム１８０は、トップレベルのクロック合成を行うためのものであり、具体的には、ステップＱ４−１を実行するためのプログラムである。
【００７７】
プログラム１８１は、トップレベルのタイミング最適化合成を行うためのものであり、具体的には、ステップＱ４−２を実行するためのプログラムである。プログラム１８２は、トップレベルの配線を行うためのものであり、具体的には、ステップＱ４−３を実行するためのものである。
【００７８】
以上のように、本発明の集積回路のレイアウト設計方法の第２実施形態においては、ＬＳＩのトップレベルの一部を擬似レイアウト階層ブロックとしてトップレベルにおいてフロアプランと初期配置を行い（Ｑ１）、レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成をトップレベルとは独立に行い（Ｑ２）、レイアウト階層ブロックの配置情報をトップレベルに戻し（Ｑ３）、同一フラットでクロック合成、タイミング最適化合成、配線を行うとしている（Ｑ４）。
【００７９】
したがって、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延とクロック遅延のバラツキを抑えることができ、タイミング調整のイタレーションの回数を減らすことができる。
【００８０】
（本発明の集積回路のレイアウト設計方法の第３実施形態）
図１８は本発明の集積回路のレイアウト設計方法の第３実施形態を示す流れ図である。図１８中、１８５はトップレベルでのレイアウト設計処理の流れを示し、１８６はレイアウト階層ブロックでのレイアウト設計処理の流れを示している。本発明の集積回路のレイアウト設計方法の第３実施形態においても、４つの工程（Ｗ１〜Ｗ４）が順に実行される。
【００８１】
第１工程（Ｗ１）はトップレベルのフロアプランを行う工程である。第２工程（Ｗ２）はレイアウト階層ブロックにおいてフロアプラン、初期配置および理想クロックでのタイミング最適化合成を行う工程である。第３工程（Ｗ３）は第２工程（Ｗ２）で得られるレイアウト階層ブロックの配置情報をトップレベルにフィードバックする工程である。第４工程（Ｗ４）はトップレベルにおいて初期配置、クロック合成、階層ブロック化、タイミング最適化合成、階層展開、セルオーバーラップ解除および配線を行う工程である。
【００８２】
即ち、本発明の集積回路のレイアウト設計方法の第３実施形態においては、まず、レイアウト設計対象のＬＳＩについて、トップレベルのフロアプランを行う（Ｗ１）。具体的には、擬似レイアウト階層ブロックの配置位置、マクロセルの配置位置、ユニットセル領域を決定する。
【００８３】
次に、レイアウト階層ブロックのレイアウト設計処理を行う（Ｗ２）。具体的には、レイアウト階層ブロックにおいてフロアプラン（Ｗ２−１）、初期配置（Ｗ２−２）、クロックスキューがないものと見なした理想クロックでのタイミング最適化合成（Ｗ２−３）を順に実行する。なお、タイミング最適化合成（Ｗ２−３）時には、フリップフロップ間のタイミング制約１８７を与えて処理を行う。
【００８４】
次に、同一フラットで処理を行うため、レイアウト階層ブロックのレイアウト設計処理（Ｗ２）で得られたレイアウト階層ブロックの配置情報１８８をトップレベルの擬似レイアウト階層ブロックにフィードバックする（Ｗ３）。但し、この場合、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の配置属性を未配置とする。
【００８５】
次に、トップレベルのレイアウト設計処理を行う（Ｗ４）。具体的には、トップレベル回路とレイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の初期配置（Ｗ４−１）、同一フラットでのクロック合成（Ｗ４−２）、階層ブロック化（Ｗ４−３）、クロック遅延伝播を考慮したタイミング最適化合成（Ｗ４−４）、階層展開（Ｗ４−５）、セルオーバーラップ解除（Ｗ４−６）および配線（Ｗ４−７）を順に行う。
【００８６】
なお、初期配置（Ｗ４−１）時には、トップレベルのタイミング制約１８９を与えて処理を行う。また、階層ブロック化（Ｗ４−３）は、レイアウト階層ブロックを面積０の階層ブロックにすることであり、この場合、周辺部には階層端子を作成し、中央部にはセル配置可能な領域を作成する。また、レイアウト階層ブロック内部の配置情報は削除し、レイアウト階層ブロックセルのタイミング制約を作成する。
【００８７】
また、タイミング最適化合成（Ｗ４−４）時には、従来の場合と同様に、レイアウト階層ブロックセルのタイミング制約を読み込んで、トップレベルのみでタイミング最適化を行う。但し、レイアウト階層ブロック内も配置可能とする。
【００８８】
階層展開（Ｗ４−５）では、ステップＷ３と同様に、同一フラットで処理を行うため、トップレベルのレイアウト階層ブロックの領域へ各レイアウト階層ブロック内の配置情報をフィードバックする。
【００８９】
セルオーバーラップ解除（Ｗ４−６）では、タイミング最適化（Ｗ４−４）で挿入したセルと階層展開（Ｗ４−５）で復元したレイアウト階層ブロック内のセルが重なって配置されている場合は、タイミング最適化合成（Ｗ４−４）で挿入したセルを近隣の配置可能な場所へ移動させることにより、セルの重なりを解除する。
【００９０】
図１９は本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中の初期配置（Ｗ４−１）およびクロック合成（Ｗ４−２）の結果例を示す図である。１９５はチップ、１９６はトップレベル、１９７、１９８はレイアウト階層ブロック、１９９、２００はマクロセル、２０１〜２０４はユニットセルが配置された領域である。
【００９１】
図２０は本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中の階層ブロック化（Ｗ４−３）の結果例を示す図である。本例では、レイアウト階層ブロック１９７、１９８の面積が０とされ、階層端子２０５、２０６が作成されている。なお、２０７、２０８はユニットセル領域である。
【００９２】
図２１は本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中のタイミング最適化合成（Ｗ４−４）の結果例を示す図である。図２１中、２０９はタイミング調整用バッファセルである。
【００９３】
図２２は本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中の階層展開（Ｗ４−５）およびセルオーバーラップ解除（Ｗ４−６）の結果例を示す図である。本例では、レイアウト階層ブロック１９７、１９８に配置情報がフィードバックされ、また、タイミング調整用バッファセル２０９と階層展開（Ｗ４−５）で復元したレイアウト階層ブロック１９７内のセルが重なって配置されていることから、タイミング調整用バッファセル２０９が近隣の配置可能な場所２１０に移動させられ、セルの重なりが解除されている。
【００９４】
図２３は本発明の集積回路のレイアウト設計方法の第３実施形態を実行するためのコンピュータの概念図である。図２３に示すコンピュータは、図１１に示すコンピュータと同様に、ＣＰＵ１２２と、メモリ１２３と、入力装置１２４と、表示装置１２５と、ハードディスク装置（ＨＤＤ）１２６を有している。
【００９５】
本例では、ハードディスク装置１２６には、本発明の集積回路のレイアウト設計方法の第３実施形態を実行するためのプログラム２１５〜２２６（本発明の集積回路のレイアウト設計プログラムの第３実施形態）等が格納される。
【００９６】
プログラム２１５は、トップレベルのフロアプランを行うためのものであり、具体的には、ステップＷ１を実行するためのものである。プログラム２１６は、レイアウト階層ブロックのフロアプランを行うためのものであり、具体的には、ステップＷ２−１を実行するためのものである。
【００９７】
プログラム２１７は、レイアウト階層ブロックの初期配置を行うためのものであり、具体的には、ステップＷ２−２を実行するためのものである。プログラム２１８は、レイアウト階層ブロックのタイミング最適化合成を行うためのものであり、具体的には、ステップＷ２−３を実行するためのものである。
【００９８】
プログラム２１９は、レイアウト階層ブロックの配置情報をトップレベルにフィードバックするためのものであり、具体的には、ステップＷ３を実行するためのものである。プログラム２２０は、トップレベルの初期配置を行うためのものであり、具体的には、ステップＷ４−１を実行するためのものである。
【００９９】
プログラム２２１は、トップレベルのクロック合成を行うためのものであり、具体的には、ステップＷ４−２を行うためのものである。プログラム２２２は、階層ブロック化を行うためのものであり、具体的には、ステップＷ４−３を実行するためのものである。プログラム２２３は、トップレベルのタイミング最適化合成を行うためのものであり、具体的には、ステップＷ４−４を実行するためのものである。
【０１００】
プログラム２２４は、階層展開を行うためのものであり、具体的には、ステップＷ４−５を実行するためのものである。プログラム２２５は、セルオーバーラップ解除を行うためのものであり、具体的には、ステップＷ４−６を実行するためのものである。プログラム２２６は、トップレベルの配線を行うためのものであり、具体的には、ステップＷ４−７を実行するためのものである。
【０１０１】
以上のように、本発明の集積回路のレイアウト設計方法の第３実施形態においては、ＬＳＩのトップレベルの一部を擬似レイアウト階層ブロックとし（Ｗ１）、レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成をトップレベルとは独立して行い（Ｗ２）、レイアウト階層ブロックの配置情報をトップレベルに戻し（Ｗ３）、同一フラットで初期配置、クロック合成、階層ブロック化、タイミング最適化合成、階層展開、セルオーバーラップ解除および配線を行うとしている（Ｗ４）。
【０１０２】
したがって、トップレベルにおけるレイアウト階層ブロック間やトップレベル回路−レイアウト階層ブロック間のパス遅延とクロック遅延のバラツキを抑え、タイミング調整のイタレーションの回数を減らすことができると共に、階層ブロック化（Ｗ４−３）により、タイミング最適化合成（Ｗ４−４）時のデータサイズを縮小させることができ、処理時間の短縮を図ることができる。
【０１０３】
また、レイアウト階層ブロックの配置情報をトップレベルの擬似レイアウト階層ブロックにフィードバックする場合、レイアウト階層ブロック内のトップレベルとの境界部の組合せ回路の配置属性を未配置としているので、複雑なレイアウト階層ブロック設計（境界設計、ピン配置など）を不要にし、擬似レイアウト階層ブロックのトップレベルとの境界部の配線性を向上させることができる。この点からも、タイミング調整のイタレーションの回数を減らすことができる。
【０１０４】
なお、本発明の集積回路のレイアウト設計方法の第１実施形態〜第３実施形態においては、トップレベルの一部分を擬似レイアウト階層ブロックとした場合について説明したが、擬似レイアウト階層ブロックを設定する論理階層はトップレベルに限定されるものではなく、必要に応じて、任意の論理階層を選択して擬似レイアウト階層ブロックを設定することができる。
【０１０５】
ここで、本発明を整理すると、本発明には、少なくとも、以下の集積回路のレイアウト設計方法および集積回路のレイアウト設計プログラムが含まれる。
【０１０６】
（付記１）コンピュータを用いる集積回路のレイアウト設計方法であって、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランを行う工程と、前記レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を有することを特徴とする集積回路のレイアウト設計方法。
【０１０７】
（付記２）前記レイアウト階層ブロックの配置情報を前記トップレベルに戻す場合、前記レイアウト階層ブロック内の前記トップレベルとの境界部の組合せ回路の配置属性を未配置とすることを特徴とする付記１記載の集積回路のレイアウト設計方法。
【０１０８】
（付記３）トップレベルでのタイミング最適化合成時に、前記レイアウト階層ブロックの領域内部で閉じるパスに対してタイミング最適化の非対象とするためのデザイン制約を与えて処理を行うことを特徴とする付記１又は２記載の集積回路のレイアウト設計方法。
【０１０９】
（付記４）前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程は、初期配置を行う工程と、クロック合成を行う工程と、前記レイアウト階層ブロックを面積がゼロの階層ブロックとする工程と、タイミング最適化を行う工程と、前記階層ブロックの領域に前記タイミング最適化後の前記レイアウト階層ブロック内の配置情報をフィードバックする工程を順に行う工程であることを特徴とする付記１又は２記載の集積回路のレイアウト設計方法。
【０１１０】
（付記５）前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程は、前記レイアウト階層ブロックの領域に前記タイミング最適化後の前記レイアウト階層ブロック内の配置情報をフィードバックした場合において、前記タイミング最適化で挿入したセルと前記レイアウト階層ブロック内のセルが重なって配置されている場合には、前記タイミング最適化で挿入したセルを配置可能な場所へ移動させることにより、セルの重なりを解除する工程を含むことを特徴とする付記４記載の集積回路のレイアウト設計方法。
【０１１１】
（付記６）集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルのフロアプランを行う工程と、前記レイアウト階層ブロックにおいて初期配置と理想クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程をコンピュータに実行させることを特徴とする集積回路のレイアウト設計プログラム。
【０１１２】
（付記７）前記レイアウト階層ブロックの配置情報を前記トップレベルに戻す場合、前記レイアウト階層ブロック内の前記トップレベルとの境界部の組合せ回路の配置属性を未配置とすることを特徴とする付記６記載の集積回路のレイアウト設計プログラム。
【０１１３】
（付記８）トップレベルでのタイミング最適化合成時に、前記レイアウト階層ブロックの領域内部で閉じるパスに対してタイミング最適化の非対象とするためのデザイン制約を与えて処理を行うことを特徴とする付記６又は７記載の集積回路のレイアウト設計プログラム。
【０１１４】
（付記９）前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程は、初期配置を行う工程と、クロック合成を行う工程と、前記レイアウト階層ブロックを面積がゼロの階層ブロックとする工程と、タイミング最適化を行う工程と、前記階層ブロックの領域に前記タイミング最適化後の前記レイアウト階層ブロック内の配置情報をフィードバックする工程を順に行う工程であることを特徴とする付記６又は７記載の集積回路のレイアウト設計プログラム。
【０１１５】
（付記１０）前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程は、前記レイアウト階層ブロックの領域に前記タイミング最適化後の前記レイアウト階層ブロック内の配置情報をフィードバックした場合において、前記タイミング最適化で挿入したセルと前記レイアウト階層ブロック内のセルが重なって配置されている場合には、前記タイミング最適化で挿入したセルを配置可能な場所へ移動させることにより、セルの重なりを解除する工程を含むことを特徴とする付記９記載の集積回路のレイアウト設計プログラム。
【０１１６】
（付記１１）コンピュータを用いる集積回路のレイアウト設計方法であって、集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置を行う工程と、前記レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程を有することを特徴とする集積回路のレイアウト設計方法。
【０１１７】
（付記１２）集積回路の論理階層の一部をレイアウト階層ブロックの領域としてトップレベルにおいてフロアプランと初期配置を行う工程と、前記レイアウト階層ブロックにおいてクロック合成と実クロックでのタイミング最適化合成を前記トップレベルとは独立に行う工程と、前記レイアウト階層ブロックの配置情報を前記トップレベルに戻して同一フラットでレイアウト設計処理を行う工程をコンピュータに実行させることを特徴とする集積回路のレイアウト設計プログラム。
【図面の簡単な説明】
【０１１８】
【図１】本発明の集積回路のレイアウト設計方法の第１実施形態を示す流れ図である。
【図２】本発明の集積回路のレイアウト設計方法の第１実施形態においてレイアウト階層ブロック内のトップレベルとの境界部の組合せ回路を説明するための図である。
【図３】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第１工程（Ｓ１）の結果例（トップレベルのフロアプラン例）を示す図である。
【図４】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第２工程（Ｓ２）の結果例（レイアウト階層ブロックのレイアウト例）を示す図である。
【図５】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第３工程（Ｓ３）の結果例（レイアウト階層ブロックの配置情報をトップレベルに戻した状態）を示す図である。
【図６】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第４工程（Ｓ４）の結果例（トップレベルのレイアウト例）を示す図である。
【図７】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第１工程（Ｓ１）を更に詳しく説明するための図である。
【図８】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第２工程（Ｓ２）を更に詳しく説明するための図である。
【図９】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第３工程（Ｓ３）を更に詳しく説明するための図である。
【図１０】本発明の集積回路のレイアウト設計方法の第１実施形態で実行される第４工程（Ｓ４）を更に詳しく説明するための図である。
【図１１】本発明の集積回路のレイアウト設計方法の第１実施形態を実行するためのコンピュータの概念図である。
【図１２】本発明の集積回路のレイアウト設計方法の第２実施形態を示す流れ図である。
【図１３】本発明の集積回路のレイアウト設計方法の第２実施形態で実行される第１工程（Ｑ１）の結果例（トップレベルのフロアプラン後の初期配置例）を示す図である。
【図１４】本発明の集積回路のレイアウト設計方法の第２実施形態で実行される第２工程（Ｑ２）の結果例（レイアウト階層ブロックのレイアウト例）を示す図である。
【図１５】本発明の集積回路のレイアウト設計方法の第２実施形態で実行される第３工程（Ｑ３）の結果例（レイアウト階層ブロックの配置情報をトップレベルに戻した状態）を示す図である。
【図１６】本発明の集積回路のレイアウト設計方法の第２実施形態で実行される第４工程（Ｑ４）の結果例（トップレベルのレイアウト例）を示す図である。
【図１７】本発明の集積回路のレイアウト設計方法の第２実施形態を実行するためのコンピュータの概念図である。
【図１８】本発明の集積回路のレイアウト設計方法の第３実施形態を示す流れ図である。
【図１９】本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中の初期配置（Ｗ４−１）およびクロック合成（Ｗ４−２）の結果例を示す図である。
【図２０】本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中の階層ブロック化（Ｗ４−３）の結果例を示す図である。
【図２１】本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中のタイミング最適化（Ｗ４−４）の結果例を示す図である。
【図２２】本発明の集積回路のレイアウト設計方法の第３実施形態で実行される第４工程（Ｗ４）中の階層展開（Ｗ４−５）およびセルオーバーラップ解除（Ｗ４−６）の結果例を示す図である。
【図２３】本発明の集積回路のレイアウト設計方法の第３実施形態を実行するためのコンピュータの概念図である。
【図２４】フラットレイアウト設計方法と階層レイアウト設計方法の設計手法の違いを示す図である。
【図２５】階層レイアウト設計方法を示す流れ図である。
【図２６】階層レイアウト設計方法で実行される第１工程（Ｐ１）の結果例（トップレベルのフロアプラン例）を示す図である。
【図２７】階層レイアウト設計方法で実行される第２工程（Ｐ２）の結果例（レイアウト階層ブロックのレイアウト例）を示す図である。
【図２８】階層レイアウト設計方法で実行される第３工程（Ｐ３）の結果例（トップレベルのフロアプラン更新例）を示す図である。
【図２９】階層レイアウト設計方法で実行される第４工程（Ｐ４）の結果例（トップレベルでのレイアウト例）を示す図である。
【符号の説明】
【０１１９】
（図１）
４５…トップレベルでのレイアウト設計処理の流れ、４６…レイアウト階層ブロックでのレイアウト設計処理の流れ、４７…フリップフロップ間のタイミング制約、４８…配置情報、４９…トップレベルのタイミング制約、５０…タイミング最適化対象・非対象制約
（図２）
５１…チップ、５２…トップレベル、５３〜５５…フリップフロップ、５６〜５８…組合せ回路、５９…レイアウト階層ブロック、６０〜６２…入力端子、６３〜６６…出力端子、６７〜７２…フリップフロップ、７３〜７８…組合せ回路、７９…パス
（図３〜図６）
８０…チップ、８１…トップレベル、８２〜８４…擬似レイアウト階層ブロック、８５〜８７…マクロセルの配置位置、８８…ユニットセル領域、８９〜９１…レイアウト階層ブロック、９２〜９５…マクロセル、９６〜９８…ユニットセルが配置された領域、９９〜１０１…トップレベルのマクロセル、１０２…トップレベルのユニットセルを配置した領域、１０３…クロックツリー
（図７〜図１０）
１０４…チップ、１０５…トップレベル、１０６、１０７…擬似レイアウト階層ブロック、１０８、１０９…外部端子、１１０、１１１…組合せ回路、１１２、１１３…フリップフロップ、１１４、１１５…レイアウト階層ブロック、１１６、１１７…フリップフロップ、１１８〜１２１…組合せ回路
（図１１）
１２２…ＣＰＵ、１２３…メモリ、１２４…入力装置、１２５…表示装置、１２６…ハードディスク装置（ＨＤＤ）、１２７〜１３５…プログラム
（図１２）
１４０…トップレベルでのレイアウト設計処理の流れ、１４１…レイアウト階層ブロックでのレイアウト設計処理の流れ、１４２…フリップフロップ間のタイミング制約、１４３…配置情報、１４４…トップレベルのタイミング制約、１４５…タイミング最適化対象・非対象制約
（図１３〜図１６）
１５０…チップ、１５１…トップレベル、１５２〜１５４…擬似レイアウト階層ブロック、１５５〜１６１…マクロセル、１６２〜１６５…ユニットセルが配置された領域、１６６〜１６８…レイアウト階層ブロック、１６９〜１７１…クロックツリー、１７２…クロックツリー
（図１７）
１２２…ＣＰＵ、１２３…メモリ、１２４…入力装置、１２５…表示装置、１２６…ハードディスク装置（ＨＤＤ）、１７５〜１８２…プログラム
（図１８）
１８５…トップレベルでのレイアウト設計処理の流れ、１８６…レイアウト階層ブロックでのレイアウト設計処理の流れ、１８７…フリップフロップ間のタイミング制約、１８８…配置情報、１８９…トップレベルのタイミング制約、１９０…階層ブロックセル情報、１９１…タイミングモデル
（図１９〜図２２）
１９５…チップ、１９６…トップレベル、１９７、１９８…レイアウト階層ブロック、１９９、２００…マクロセル、２０１〜２０４…ユニットセルが配置された領域、２０５、２０６…階層端子、２０７、２０８…ユニットセル領域、２０９…タイミング調整用バッファセル、２１０…セルを配置可能な場所
（図２３）
１２２…ＣＰＵ、１２３…メモリ、１２４…入力装置、１２５…表示装置、１２６…ハードディスク装置（ＨＤＤ）、２１５〜２２６…プログラム
（図２４）
１…チップ、２…トップレベル、３〜８…マクロセル、９…ユニットセル領域、１０…チップ、１１…トップレベル、１２〜１４…レイアウト階層ブロック、１５〜１７…マクロセル、１８…ユニットセル領域
（図２５）
１９…トップレベルでのレイアウト設計処理の流れ、２０…レイアウト階層ブロックでのレイアウト設計処理の流れ
（図２６〜図２９）
２１…チップ、２２…トップレベル、２３〜２５…レイアウト階層ブロック、２６〜２８…マクロセルの配置位置、２９…ユニットセル領域、３０〜３２…レイアウト階層ブロックセル、３３〜３６…マクロセル、３７〜３９…ユニットセルが配置された領域、４０〜４２…マクロセル、４３…ユニットセルを配置した領域、４４…クロックツリー
【図１】
2007080256.tif 000004
【図２】
2007080256.tif 000005
【図３】
2007080256.tif 000006
【図４】
2007080256.tif 000007
【図５】
2007080256.tif 000008
【図６】
2007080256.tif 000009
【図７】
2007080256.tif 000010
【図８】
2007080256.tif 000011
【図９】
2007080256.tif 000012
【図１０】
2007080256.tif 000013
【図１１】
2007080256.tif 000014
【図１２】
2007080256.tif 000015
【図１３】
2007080256.tif 000016
【図１４】
2007080256.tif 000017
【図１５】
2007080256.tif 000018
【図１６】
2007080256.tif 000019
【図１７】
2007080256.tif 000020
【図１８】
2007080256.tif 000021
【図１９】
2007080256.tif 000022
【図２０】
2007080256.tif 000023
【図２１】
2007080256.tif 000024
【図２２】
2007080256.tif 000025
【図２３】
2007080256.tif 000026
【図２４】
2007080256.tif 000027
【図２５】
2007080256.tif 000028
【図２６】
2007080256.tif 000029
【図２７】
2007080256.tif 000030
【図２８】
2007080256.tif 000031
【図２９】
2007080256.tif 000032