(57)【要約】【課題】階層化レイアウト処理の簡略化を図ることにより、半導体集積回路装置のレイアウト設計にかかる期間を大幅に短縮する。【解決手段】トップＴＰに属する回路とブロックＢＫの信号端子Ｄ１との間に信号配線Ａの接続が必要となるが、ブロックＢＫ内のほかの配線、また、他のブロックに接続されるトップＴＰの配線の混雑具合により、既に決められているブロックの信号端子位置に信号配線Ａが接続できない、または大きく迂回が必要など最適とはいえない場合がある。そこで、ブロックＢＫの信号端子Ｄ１の位置情報に影響されることなく信号配線Ａを接続できるように、信号配線Ａの接続処理以前に信号端子の位置情報を削除する。また、トップＴＰの回路をブロックＢＫの境界より内側に配置し、信号配線Ａが最適に接続できる場合もあるので、信号端子の位置情報と同じくブロックＢＫ境界の位置情報も削除する。【選択図】図２
2010257164.tif 000002
【特許請求の範囲】
【請求項１】
電子システムを用いてチップ全体の設計データをトップの設計データと複数のブロックの設計データとに分割してレイアウト設計を行う半導体集積回路装置の設計方法であって、
タイミング最適化のためのタイミングパスを前記トップと前記ブロックとの境界のみに限定してレイアウト設計する境界同時最適化処理を有することを特徴とする半導体集積回路装置の設計方法。
【請求項２】
請求項１記載の半導体集積回路装置の設計方法において、
前記境界同時最適化処理は、
前記トップに属する回路、および配線が仮に配置、または配置されておらず、前記ブロック内部の配線、回路の動作タイミング、および配置が最適化されている状態で行われることを特徴とする半導体集積回路装置の設計方法。
【請求項３】
請求項２記載の半導体集積回路装置の設計方法において、
前記境界同時最適化処理は、
前記トップに属する回路と前記ブロックに属する信号端子との間を接続する第１の配線が接続可能なように、前記第１の配線における接続処理の以前に前記信号端子の位置情報を削除した状態で行われることを特徴とする半導体集積回路装置の設計方法。
【請求項４】
請求項３記載の半導体集積回路装置の設計方法において、
前記境界同時最適化処理は、
前記ブロックの境界の位置情報を削除した状態で行われることを特徴とする半導体集積回路装置の設計方法。
【請求項５】
請求項２〜４のいずれか１項に記載の半導体集積回路装置の設計方法において、
前記境界同時最適化処理は、
前記ブロックに属する信号端子と前記ブロックに属する回路とを接続する第２の配線が接続可能なように、前記第２の配線における接続処理の以前に前記信号端子の位置情報を削除した状態で行われることを特徴とする半導体集積回路装置の設計方法。
【請求項６】
チップ全体の設計データをトップの設計データと複数のブロックの設計データとに分割してレイアウト設計を電子システムに実行させるプログラムであって、
フルチップレベルのネットリスト、タイミング制約、およびセルの形状やタイミングを予め定義したライブラリなどのデータを用いて、セルの配置位置とそれらを接続する配線経路からなる物理情報を見積もり、前記物理情報から、前記ブロックの形状、ピン位置を決定するステップと、
前記物理情報から、ブロック内フロアプランを作成するステップと、
前記物理情報に基づいて、パス遅延を見積もり、必要なタイミング情報を前記ブロックの境界の内外にそれぞれ割り当て、ブロック内レイアウト用タイミング制約ファイルを見積もるステップと、
前記ブロック内フロアプラン、および前記ブロック内レイアウト用タイミング制約ファイルから、前記ブロック内の配置配線情報を生成するステップと、
前記配置配線情報に含まれるブロック内レイアウトデータをフルチップのレイアウトデータに含ませるステップと、
前記物理情報から、前記ブロックの境界とブロックピン位置を削除するステップと、
ブロックレイアウトでは存在していた信号端子から前記ブロック内にタイミングパスをたどり、フリップフロップに到達した際に前記タイミングパスを活性化し、到達した前記フリップフロップに接続する前記ブロック内のタイミングパスのうち、タイミングが厳しいものについて活性化し、それ以外のタイミングパスを不活性化するステップと、
前記トップと前記ブロックの境界との境界同時最適化処理を行うステップとを有することを特徴とするプログラム。
【請求項７】
請求項６記載のプログラムにおいて、
前記物理情報から、ブロック内フロアプランを作成するステップは、
前記トップの配線が前記ブロック上を通過する際に、その部分の配線用トラックを前記トップの配線が必要とする分だけ削除するステップを含むことを特徴とするプログラム。
【請求項８】
請求項６記載のプログラムにおいて、
前記物理情報から、ブロック内フロアプランを作成するステップは、
前記トップの配線が前記ブロック上を通過する際に、前記トップの配線数÷配線可能本数で計算された割合をもった配線禁止領域を設定する処理を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置の設計技術に関し、特に、半導体集積回路装置におけるレイアウト処理の最適化処理に有効な技術に関する。
【背景技術】
【０００２】
半導体集積回路装置のレイアウト設計技術として、たとえば、階層化設計やタイミングバジェットなどが広く知られている。階層化設計手法は、自動レイアウトツールで扱える程度の回路規模を備えた複数の下位階層（ブロック）と、これらのブロックを統合する上位階層（トップ）とに切り分けて設計を行う技術である。
【０００３】
階層化設計手法では、たとえば、図９に示すように、トップとブロックとのレイアウトの最適化を別々に処理しており、ステップ毎に全データを使った確認（タイミングや混雑度等）と、その確認の際に判明したトップとブロック間のタイミング見積もり誤差やその誤差に起因するフロアプランの修正を行っている。
【０００４】
なお、この種の半導体集積回路装置のレイアウト設計技術としては、チップ全体をトップと複数のブロックとに分割し、これら複数のブロックの配置配線を行う際に、自身のブロック以外に属するデータであってこの自身のブロックに対する信号入出力に関連するデータ（論理データ、物理データおよびＲＣデータ）を抽出したブロック用ＩＬＭを用いて半導体集積回路装置の設計を行うものが知られている（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３３８０９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、上記のような半導体集積回路装置の設計技術では、次のような問題点があることが本発明者により見い出された。
【０００７】
図１０は、トップＴＰとブロックＢＫとのレイアウト処理が分離している際の問題点を示す説明図である。
【０００８】
図１０において、クロック生成器１００，１０１は、トップＴＰにあるクロック生成器であり、クロックツリー用バッファ１０２〜１０７は、遅延と物理情報から見積もられたクロックツリー用バッファである。
【０００９】
また、’estimation’は、物理情報から見積もりされたパスのタイミングであり、’Y’、’Z’は、’estimation’とクロックツリー用バッファ１０２〜１０７により見積もられた遅延値である。
【００１０】
’set_input_delay Y -clock clk1’、および’set_input_delay Z -clock clk2’は、’estimation’により見積もられた入力遅延値設定（タイミング制約）である。’create_clock clk1’、ならびに’create_clock clk2’は、ブロックレイアウト用クロック定義（タイミング制約）である。ここで、(with clock propagated mode)は、クロック遅延を計算させる場合、という注釈である。
【００１１】
’X1’、’X2’は、クロックツリー用バッファによる見積もられた遅延値である。’set_clock_latency -clk clk1 -source X1’は、見積もられたクロック遅延（タイミング制約。クロック生成器１００からの遅延）であり、’set_clock_latency -clk clk2 -source X2’は、見積もられたクロック遅延（タイミング制約。クロック生成器１０１からの遅延）である。
【００１２】
また、’Fixed Pin locations’は、物理情報見積もりにより決定したピン位置であり、見積もりにより決定されたピン位置は、固定されたまま、変更されることはない。
【００１３】
このように、トップＴＰとブロックＢＫとのレイアウト処理が分離している場合、下記に示すような問題がある。
【００１４】
（１）ブロックのタイミング最適化（図９の「パーティション作成・バジェッティング」と「ブロックレベルP&R」における処理）は、タイミング見積もりによる境界条件（ピン位置、タイミング）に依存する。ピン位置は、図１０の’Fixed Pin Locations’に示す位置に固定される。
【００１５】
また、図１０の’estimation’のように、’set_input_delay Y -clock clk1’、’set_input_delay Z -clock clk2’の遅延値や、クロック遅延値X1、X2が’estimation’（見積もり）に基づくタイミングとなり、ブロックの最適化は見積もりによる境界条件にて決められることになる。
【００１６】
（２）トップのタイミング最適化時（図９の「トップレベルＰ＆Ｒ」の処理）において、ブロック形状、ブロックピン位置、ブロック内パスを変更できない。よって、図１０におけるブロック枠（形状）、およびブロックピン位置（Fixed Pin locations）、およびブロック内のestimationと書かれたパスは、トップのタイミング最適化時に変更できない。
【００１７】
（３）初期見積もり値の精度を高めるため、処理時間、メモリ使用量の大きい処理や手作業による最適化を必要とする（図９の「パーティション作成・バジェッティング」の処理）。
【００１８】
たとえば、図１０の’estimation’のパスのタイミングや位置の精度を高めるため、様々な手法が用いられているが、一般には、手作業による最適化が実施されている。
【００１９】
（４）最初のタイミングバジェット時に、最終検証に必要なすべてのデータを入力する必要があるため、メモリ使用量、タイミング解析のための処理時間が増大する（図９の「パーティション作成・バジェッティング」、および「再バジェッティング」の処理）。
【００２０】
本発明の目的は、階層化レイアウト処理の簡略化を図ることにより、半導体集積回路装置のレイアウト設計にかかる期間を大幅に短縮する技術を提供することにある。
【００２１】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００２３】
本発明は、電子システムを用いてチップ全体の設計データをトップの設計データと複数のブロックの設計データとに分割してレイアウト設計を行う半導体集積回路装置の設計方法であって、タイミング最適化のためのタイミングパスをトップとブロックとの境界のみに限定してレイアウト設計する境界同時最適化処理を有するものである。
【００２４】
また、本発明は、前記境界同時最適化処理が、トップに属する回路、および配線が仮に配置、または配置されておらず、ブロック内部の配線、回路の動作タイミング、および配置が最適化されている状態で行われるものである。
【００２５】
さらに、本発明は、前記境界同時最適化処理が、トップに属する回路とブロックに属する信号端子との間を接続する第１の配線が接続可能なように、該第１の配線における接続処理の以前に信号端子の位置情報を削除した状態で行われるものである。
【００２６】
また、本発明は、前記境界同時最適化処理が、ブロックの境界の位置情報を削除した状態で行われるものである。
【００２７】
さらに、本発明は、前記境界同時最適化処理が、ブロックに属する信号端子とブロックに属する回路とを接続する第２の配線が接続可能なように、該第２の配線における接続処理の以前に信号端子の位置情報を削除した状態で行われるものである。
【００２８】
さらに、本願のその他の発明の概要を簡単に示す。
【００２９】
本発明は、チップ全体の設計データをトップの設計データと複数のブロックの設計データとに分割してレイアウト設計を電子システムに実行させるプログラムであって、フルチップレベルのネットリスト、タイミング制約、およびセルの形状やタイミングを予め定義したライブラリなどのデータを用いて、セルの配置位置とそれらを接続する配線経路からなる物理情報を見積もり、該物理情報から、ブロックの形状、ピン位置を決定するステップと、物理情報から、ブロック内フロアプランを作成するステップと、物理情報に基づいて、パス遅延を見積もり、必要なタイミング情報をブロックの境界の内外にそれぞれ割り当て、ブロック内レイアウト用タイミング制約ファイルを見積もるステップと、ブロック内フロアプラン、およびブロック内レイアウト用タイミング制約ファイルから、ブロック内の配置配線情報を生成するステップと、該配置配線情報に含まれるブロック内レイアウトデータをフルチップのレイアウトデータに含ませるステップと、物理情報から、ブロックの境界とブロックピン位置を削除するステップと、ブロックレイアウトで存在していた信号端子からブロック内にタイミングパスをたどり、フリップフロップに到達した際にタイミングパスを活性化し、到達したフリップフロップに接続するブロック内のタイミングパスのうち、タイミングが厳しいものについて活性化し、それ以外のタイミングパスを不活性化するステップと、トップとブロック境界との同時最適化処理を行うステップとを有するものである。
【００３０】
また、本発明は、前記物理情報から、ブロック内フロアプランを作成するステップが、トップの配線がブロック上を通過する際に、その部分の配線用トラックをトップの配線が必要とする分だけ削除するステップを含むものである。
【００３１】
さらに、本発明は、前記物理情報から、ブロック内フロアプランを作成するステップが、トップの配線がブロック上を通過する際に、トップの配線数÷配線可能本数で計算された割合をもった配線禁止領域を設定する処理を含むものである。
【発明の効果】
【００３２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００３３】
（１）タイミング解析の処理時間を短縮することができるので、半導体集積回路装置におけるレイアウト設計を効率よく行うことができる。
【００３４】
（２）上記（１）により、半導体集積回路装置の設計期間を短縮することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態１による電子システムの一例を示すブロック図である。
【図２】本発明の実施の形態１によるトップとブロックとの境界の同時最適化の一例を説明する説明図である。
【図３】チップ全体のレイアウトの一例を示す概略図である。
【図４】本実施の形態１における階層化レイアウトの処理例を示すフローチャートである。
【図５】トップ用配線リソースを設定する際の一例を示す説明図である。
【図６】ブロック内の不要なタイミングパスのマスクする処理の一例を示す説明図である。
【図７】本発明の実施の形態２によるブロックのみクロックツリー生成後や配線後にトップ、ブロック境界を同時最適化する場合の一例を示す説明図である。
【図８】本発明の実施の形態３による不要な情報を不活性化する階層レイアウト処理におけるデータマネージメント例を示す説明図である。
【図９】本発明者が検討した半導体集積回路装置における階層化設計手法の一例を示すフローチャートである。
【図１０】図９の階層化設計手法におけるトップとブロックとのレイアウト処理が分離している際の問題点を示す説明図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３７】
（実施の形態１）
図１は、本発明の実施の形態１による電子システムの一例を示すブロック図、図２は、本発明の実施の形態１によるトップとブロックとの境界の同時最適化の一例を説明する説明図、図３は、チップ全体のレイアウトの一例を示す概略図、図４は、本実施の形態１における階層化レイアウトの処理例を示すフローチャート、図５は、トップ用配線リソースを設定する際の一例を示す説明図、図６は、ブロック内の不要なタイミングパスのマスクする処理の一例を示す説明図である。
【００３８】
本実施の形態において、半導体集積回路装置における階層化レイアウト方法は、パーソナルコンピュータやワークステーションなどに例示されるコンピュータシステムからなる電子システム１によって処理される。
【００３９】
電子システム１は、図１に示すように、入力部２、中央制御装置３、出力部４、ならびにデータベース５から構成されている。入力部２は、種々のデータを入力することができるキーボードなどであり、該入力部２には、中央制御装置３が接続されている。
【００４０】
出力部４は、たとえば、ディスプレイやプリンタなどからなり、入力部２から入力したデータや中央制御装置３が演算した結果などを表示したり、プリント出力などを行う。データベース５は、半導体集積回路装置における階層化レイアウト設計に用いられる各種のレイアウト情報などのデータが格納されている。
【００４１】
最初に、トップとブロックとの境界の同時最適化の基本的な考え方について、ブロック用ＩＬＭの論理データの一例を説明する回路図である図２を用いて説明する。
【００４２】
この図２では、トップ階層に属する回路、信号配線は仮に配置されているものとして考え、ブロック内部の信号配線、回路の動作タイミング、および配置（レイアウト）については、既に最適化されているものとして考える。
【００４３】
図２において、実線で示す信号経路は、最上位階層であるトップＴＰに属し、破線で示す境界、信号端子Ｄ１，Ｄ２、および信号経路は、下位階層であるブロックＢＫに属する。
【００４４】
トップＴＰには、クロック信号ｃｌｋ１を発生するクロック発生器６、クロック信号ｃｌｋ２を発生するクロック発生器７、ならびにフリップフロップ８が設けられており、ブロックＢＫには、フリップフロップ９，１０が設けられている。
【００４５】
フリップフロップ８，９は、クロック信号ｃｌｋ１、またはクロック信号ｃｌｋ２が入力される。また、フリップフロップ８の出力信号は、組み合わせ論理を介して信号端子Ｄ１に入力され、組み合わせ論理を介してフリップフロップ９に入力される。
【００４６】
トップＴＰとブロックＢＫとのレイアウト設計を完了させるには、トップＴＰに属する回路とブロックＢＫの信号端子Ｄ１との間に第１の配線となる信号配線Ａの接続が必要となるが、ブロックＢＫ内のほかの配線、また、他のブロックに接続されるべきトップＴＰの配線の混雑具合により、既に決められているブロックの信号端子位置に信号配線Ａを接続することができないか、あるいは大きく迂回が必要など、必ずしも最適とはいえない場合が有り得る。
【００４７】
そこで、本提案では、ブロックＢＫの信号端子Ｄ１の位置情報に影響されることなく信号配線Ａを接続できるように、信号配線Ａの接続処理の以前に信号端子の位置情報を削除する。
【００４８】
また、場合によってはトップＴＰに属する回路をブロックＢＫの境界より内側（すなわち、ブロックＢＫ内）に配置することにより、信号配線Ａが最適に接続できる場合もあり得るので、信号端子の位置情報と同じくブロックＢＫ境界の位置情報も削除する。
【００４９】
上記の何れの場合でも、ブロックＢＫの信号端子とブロックＢＫ内の回路とを結ぶ第２の配線となる信号配線Ｂについても信号配線Ａと同時に接続処理を行う。信号配線Ａと信号配線Ｂとを同時に接続処理することにより、トップＴＰとブロックＢＫの接続の最適化がなされる。
【００５０】
ここで、ブロックそのものはフロアプランにより別途決定されていることから移動させる必要はないのでブロックＢＫの位置情報は保持したままであり、また、信号配線Ａと信号配線Ｂの接続に関し、ブロックＢＫ内のタイミング情報は不要なので不活性化しておく。
【００５１】
上記によって、信号配線Ａと信号配線Ｂとの接続を行うトップＴＰとブロックＢＫとの境界部分の最適化処理は、不要なデータを不活性化することによりメモリ使用量削減と処理時間短縮が達成されることになる。
【００５２】
さらに、トップ階層に属する回路、信号配線が仮配置されていない（位置情報は決められていない）状態からトップＴＰとブロックＢＫの境界部分との最適化処理することも可能である。
【００５３】
図３は、上記した説明におけるチップ全体のレイアウトの一例を示す概略図である。
【００５４】
この場合、たとえば、図３の左側に示すように、チップ全体の物理データとして、トップＴＰ、ならびに２つのブロックＢＫ１，ＢＫ２の物理データ（フロアプランデータ、セル配置データ）が存在し、図３の右側に示す実線で示す経路を上記した信号配線Ａ，Ｂとし、破線で示す経路をブロックＢＫ内部の回路や信号配線とする。
【００５５】
ボンディングパット、Ｉ／Ｏ回路に加え、ブロックＢＫ１、ブロックＢＫ２、およびトップＴＰがフロアプランに従い予め配置され、ブロックＢＫ１、ブロックＢＫ２（およびトップＴＰ）の境界位置情報、端子位置情報が削除された後、トップＴＰとブロックＢＫ１，ＢＫ２の境界部分の最適化処理が行われる。
【００５６】
これにより、フロアプランで決められたブロックＢＫ１，ＢＫ２の境界位置情報、端子位置情報には影響されずにトップＴＰとブロックＢＫ１，ＢＫ２の間、ブロックＢＫ１とブロックＢＫ２との間の接続、およびトップＴＰに属する回路の配置を行うことが可能になる。
【００５７】
図４は、本実施の形態１における階層化レイアウトの処理例を示すフローチャートである。
【００５８】
まず、フルチップレベルフロアプランにおいて、データベース５などに格納されているフルチップレベルのネットリスト、タイミング制約、ならびにセルの形状やタイミングを予め定義したライブラリなどの入力データを用いて、セルの配置位置とそれらを接続する配線経路（セルの配置と配線経路を併せて以下「物理情報」と称する）を見積もり（ステップＳ１０１）、該物理情報から、ブロックの形状、ピン位置を決定する。このとき、ブロックの信号端子は、一般に、見積もった配線経路とブロックの境界との交点に置く。
【００５９】
続いて、ブロックレイアウト用データ作成の処理において、処理内容：ステップＳ１０１の処理で見積もった物理情報から、ブロック内のフロアプランを作成する（ステップＳ１０２）。
【００６０】
このとき、トップ用配線リソースを設定しておく。具体的には、トップ配線がブロック上を通過する場合には、その部分の配線用トラックをトップ配線が必要とする分だけ削除しておく、あるいは、トップ配線数÷配線可能本数で計算された割合をもった配線禁止領域を設定しておく。
【００６１】
図５は、トップ用配線リソースの設定する際の一例を示す説明図である。
【００６２】
トップとブロック境界同時最適化を実施すると、前のステップでは存在していた階層ブロック内までトップ用配線が通る。ブロックレイアウト時、トップ用配線リソースを無視すると、トップとブロック境界同時最適化に、配線混雑が発生する。
【００６３】
そこで、図５に示すように、ステップＳ１０１の処理で見積もられた配線経路において、トップレベル用配線（図５の配線Ｈ１）がブロックＢＫを通る際に、ブロックＰ＆Ｒ（ブロックレイアウト）データの作成時にトップ用配線リソースを設定する。
【００６４】
そして、タイミングバジェット処理において、ステップＳ１０１の処理における物理情報に基づいて、パス遅延見積もり（図１０の’estimation’）を実施し、必要なタイミング情報をブロックの境界の内外にそれぞれ割り当て（ステップＳ１０３）、その結果として、たとえば、ブロックＳＤＣ（Synopsys Design Constraint）などのブロック内レイアウト用タイミング制約ファイルを作成する。
【００６５】
続いて、ブロック内における配置配線の処理において、ステップＳ１０２の処理のブロック内のフロアプラン、ならびにステップＳ１０３の処理におけるブロック内レイアウト用タイミング制約ファイルから、素子の配置と配線の情報からなるブロック内のレイアウトデータ、ブロックのタイミングモデルで、トップと関連した部分の論理であり、ＲＣ（実負荷データ）のみをもつＩＬＭ（Interface Logic Model）、およびブロックのタイミングをモデル化したＴＭ（Timing Model）を生成する（ステップＳ１０４）。
【００６６】
その後、アッセンブルブロックデータの処理において、ステップＳ１０４の処理のブロック内のレイアウトデータをフルチップのレイアウトデータに含ませる（ステップＳ１０５）。
【００６７】
ブロックの境界と端子の削除の処理において、ステップＳ１０２の処理で作成した、ブロックの境界とブロックの信号端子位置（ブロックピン位置）を削除する（ステップＳ１０６）。続いて、トレースバウンダリパスの処理を行い（ステップＳ１０７）、その後、ブロック内パスの不活性化において、ブロック内の不要なタイミングパスをマスクする（ステップＳ１０８）。
【００６８】
このブロック内の不要なタイミングパスをマスクする処理を行う理由は、到達したフリップフロップＦＦに接続するブロックＢＫ内のタイミングパスをすべて活性化すると、殆ど全部のブロックパスが活性化されてしまい、メモリ、処理時間削減効果が期待できなくなってしまうためである。
【００６９】
ここで、ステップＳ１０７，Ｓ１０８で行われるブロック内の不要なタイミングパスをマスクする処理について、図６を用いて説明する。
【００７０】
まず、図示するように、ブロックレイアウトでは存在していた信号端子Ｄ１からブロックＢＫ内にタイミングパスをたどる。そして、フリップフロップＦＦに到達した場合、パスをたどるのを止め、たどったパスを活性化する、というフラグを立てる。
【００７１】
続いて、到達したフリップフロップＦＦに接続するブロックＢＫ内のパスのうち、タイミングが厳しいものについては、活性化する、というフラグをたて、活性化する、としたフラグ以外は不活性化する。
【００７２】
ブロックＢＫのレイアウトにおいて、どのパスのタイミングが厳しいかのフラグを設定することにより、タイミングパス不活性化ステップで、タイミング解析する必要はない。
【００７３】
その後、トップとブロックのバンウンダリレイアウトの処理において、トップＴＰとブロックＢＫ境界との同時最適化（不活性化されているブロックＢＫ内パスはタイミング解析および最適化しない）を行い（ステップＳ１０９）、フルチップレベルのレイアウト処理が終了となる。
【００７４】
ここで同時最適化とは、与えられたタイミング制約を満たすために、回路変更（バッファ挿入や駆動能力変更、セルのリマップ（論理は同じでも異なる構造のセルに置き換える））しながら、セルの配置位置や配線経路を決定することである。
【００７５】
それにより、本実施の形態１によれば、各階層ブロックＢＫ内のタイミング情報を不活性化することにより、タイミング解析のための処理時間とメモリ使用量を削減することができる。
【００７６】
また、トップＴＰのタイミング最適化中、回路を更新する度にブロックＢＫ内のタイミング解析結果を読み出す処理が不要となるため、タイミング最適化処理の処理時間を削減することができる。
【００７７】
さらに、階層ブロックＢＫを作成するための物理的な境界をはずすことにより、論理的にトップＴＰに有る回路、別ブロックＢＫにある回路を物理的に自由に配置、最適化することができる。
【００７８】
（実施の形態２）
図７は、本発明の実施の形態２によるブロックのみクロックツリー生成後や配線後にトップ、ブロック境界を同時最適化する場合の一例を示す説明図である。
【００７９】
前記実施の形態１で説明した図４のフローチャートでは、クロックツリーについて特に述べていなかったが、本実施の形態２では、このクロックツリーについて、ブロックＢＫ内で先にクロックツリーの生成や配線完了の後でも同様の手法を用いることが可能である。
【００８０】
具体的には、ブロックＢＫ１，ＢＫ２内のクロックツリーＣＴ１，ＣＴ２、および配線Ｈ１，Ｈ２は保持するが、最適化途中での変更を許可する。ブロックＢＫ１やブロックＢＫ２において既にクロックツリーＣＴ１，ＣＴ２を生成している場合には、トップＴＰ、ブロックＢＫ１，ＢＫ２境界同時レイアウトに既に生成したブロックＢＫ１，ＢＫ２内クロックツリーを利用して、クロックツリーを作成する。
【００８１】
このとき、最適化途中での変更を許可することにより、ブロックレイアウトで存在していた、初期の見積もりに基づくチップレベルフロアプランでブロック境界に設置されたクロックツリーの始点とは関係なく、クロックツリーを最適化することができる。
【００８２】
図７は、ブロックのみクロックツリー生成後や配線後にトップ、ブロック境界を同時最適化する場合の一例を示す説明図である。
【００８３】
トップＴＰでのセル配置、タイミング最適化は、図示すように、トップＴＰのクロックツリー生成時に、ブロックＢＫ１，ＢＫ２内のクロックツリーＣＴ１，ＣＴ２は（フラグの設定に従い）保持し、ブロックＢＫ１，ＢＫ２内のクロックツリーＣＴ１，ＣＴ２中のセルとブロックＢＫ１，ＢＫ２に設定された信号端子Ｄ１，Ｄ２までのクロック配線Ｈ１，Ｈ２を保持してもよいし、ブロックＢＫに設定された信号端子Ｄ１，Ｄ２までのクロック配線Ｈ１，Ｈ２は削除してもよい。
【００８４】
タイミング最適化は、前記実施の形態１と同様に、ブロックＢＫ内のタイミング情報を不活性化する。
【００８５】
それにより、本実施の形態２では、ブロックＢＫ１，ＢＫ２内のクロックツリーＣＴ１，ＣＴ２の生成やクロック配線Ｈ１，Ｈ２の配線完了後も、ブロックＢＫ１，ＢＫ２内のクロックツリーＣＴ１，ＣＴ２の保持を可能とすることで再バジェッティングステップが不要となり、処理時間を短縮することができる。
【００８６】
（実施の形態３）
図８は、本発明の実施の形態３による不要な情報を不活性化する階層レイアウト処理におけるデータマネージメント例を示す説明図である。
【００８７】
前記実施の形態１，２においては、階層レイアウト設計でトップの下位階層であるブロックの内部タイミング情報を不活性化することに触れたが、見方を変えると本発明は、必要な情報を残し、不要な情報を不活性化する階層レイアウト設計手法と見ることもできる。これを図８を用いて説明する。
【００８８】
図８の左下方に示すケース１では、たとえば、電源設計を行う場合を想定しており、この場合には、電源設計に必要なマクロのみを含むモデルを使用する。このケース１は、フルチップレベルフロアプランの処理（図４のステップＳ１０１の処理）に使用可能である。
【００８９】
また、ケース１の右側に示すケース２では、ブロックＢＫと関係のないPath1のタイミング解析や最適化する場合が想定され、この場合は信号端子とブロックＢＫの位置情報のみを利用する。
【００９０】
ケース２の右側に示すケース３では、トップＴＰとブロックＢＫとの境界部分を接続するPath2のタイミング解析をする場合が想定され、この場合はＩＬＭを使う。ケース３の右側に示すケース４では、トップＴＰとブロックＢＫとの境界部分におけるPath2のレイアウト最適化を行う際に、Timing Path Maskモデルを使う。また、ブロックＢＫを経由してトップＴＰのフリップフロップＦＦに接続するPath3のタイミング解析を行う場合も、Timing Path Maskモデルを使う。
【００９１】
いずれのケース１〜４も必要であれば、ケース４の右側に示すケース５に示すように、ブロックのFull Dataを使うことができる。また、Path1，Path2，Path3は、同時に最適化が可能であり、その場合は抽象度のすくないTiming Path Maskモデルを使うか、Path1のみ子プロセスにする（ブロックはＩＬＭかブラックボックスとする）。
【００９２】
たとえば、タイミングバジェットの処理（図４のステップＳ１０３）では、注目しているブロックに対し、Timing Path Maskモデルを使い、関係のないブロックについては、ＩＬＭかブラックボックスを使うことにより、メモリ使用量を削減することができる。
【００９３】
さらに、ブロックＢＫのレイアウト、タイミングに変更があれば、各モデルをアップデートする。
【００９４】
トップ、ブロック境界同時最適化の処理（図４のステップＳ１０５〜Ｓ１０９）では、初期タイミング解析にＩＬＭを使うことができ（ケース３）、タイミング最適化時、注目しているパスが、ブロック境界を通るか否かで、ケース２か、ケース４のように扱うことができる。
【００９５】
それにより、本実施の形態３においても、階層レイアウト設計における処理時間、ならびにメモリの使用量を低減することができる。
【００９６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９７】
本発明は、半導体集積回路装置の自動化レイアウト設計技術に適している。
【符号の説明】
【００９８】
１  電子システム
２  入力部
３  中央制御装置
４  出力部
５  データベース
６  クロック発生器
７  クロック発生器
８  フリップフロップ
９  フリップフロップ
ＴＰ  トップ
ＢＫ  ブロック
ＢＫ１，ＢＫ２  ブロック
Ｄ１  信号端子
Ｄ２  信号端子
Ａ，Ｂ  信号配線
Ｈ１，Ｈ２  配線
ＦＦ  フリップフロップ
ＣＴ１，ＣＴ２  クロックツリー
Ｈ１，Ｇ２  クロック配線
１００，１０１  クロック生成器
１０２〜１０７  クロックツリー用バッファ
【図１】
2010257164.tif 000003
【図２】
2010257164.tif 000004
【図３】
2010257164.tif 000005
【図４】
2010257164.tif 000006
【図５】
2010257164.tif 000007
【図６】
2010257164.tif 000008
【図７】
2010257164.tif 000009
【図８】
2010257164.tif 000010
【図９】
2010257164.tif 000011
【図１０】
2010257164.tif 000012