(57)【要約】【課題】チップ上のマクロ間の間隔を適正化する。【解決手段】チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１のステップと、前記第１のステップの実行後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２のステップと、を有する。【選択図】図１
2012146192.tif 000002
【特許請求の範囲】
【請求項１】
チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１のステップと、
前記第１のステップの実行後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２のステップと、を有することを特徴とするレイアウト設計方法。
【請求項２】
前記第１のステップにおいて、配線リソース占有率が低い領域から順に、マクロの移動を実施する請求項１のレイアウト設計方法。
【請求項３】
前記第１、２のステップにおいて、配線リソース占有率が前記目標占有率となるようにマクロの移動を行なう請求項１または２のレイアウト設計方法。
【請求項４】
マクロのレイアウト情報を格納したテーブルを参照して、辺が相対するマクロの組を抽出し、前記抽出したマクロの組の相対する辺同士によって囲まれる矩形領域を抽出することにより、前記チップ上の配置が隣り合う２つのマクロに挟まれた領域を抽出する請求項１から３いずれか一のレイアウト設計方法。
【請求項５】
前記配線リソース占有率の所定の目標占有率として、１００％を用いる請求項１から４いずれか一のレイアウト設計方法。
【請求項６】
チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１の配線リソース占有率調整手段と、
前記第１の配線リソース占有率調整手段によるマクロの移動の後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２の配線リソース占有率調整手段と、
を備えることを特徴とするレイアウト設計システム。
【請求項７】
前記第１の配線リソース占有率調整手段は、配線リソース占有率が低い領域から順に、マクロの移動を実施する請求項６のレイアウト設計システム。
【請求項８】
前記第１、２の配線リソース占有率調整手段は、配線リソース占有率が前記目標占有率となるようにマクロの移動を行なう請求項６または７のレイアウト設計システム。
【請求項９】
さらに、マクロのレイアウト情報を格納したテーブルを参照して、辺が相対するマクロの組を抽出し、前記抽出したマクロの組の相対する辺同士によって囲まれる矩形領域を抽出することにより、前記チップ上の配置が隣り合う２つのマクロに挟まれた領域を抽出するマクロ間領域抽出手段を備える請求項６から８いずれか一のレイアウト設計システム。
【請求項１０】
前記配線リソース占有率の所定の目標占有率として、１００％が設定されている請求項６から９いずれか一のレイアウト設計システム。
【請求項１１】
チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１の処理と、
前記第１の処理の実施後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２の処理とを、
レイアウト設計システムを構成するコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト設計方法、レイアウト設計システムおよびプログラムに関し、特に、半導体集積回路の自動レイアウト（自動配置配線）を行うレイアウト設計方法、レイアウト設計システムおよびプログラムに関する。
【背景技術】
【０００２】
特許文献１に、ブロックの配置情報を入力する第１のステップと、前記配置情報からブロックの隣接関係を示す隣接グラフを作成する第２のステップと、隣接関係にある２ブロック間を通過する配線に必要な間隔を示す配線領域情報を入力する第３のステップと、前記隣接グラフを用いて前記配線領域の間隔を保ちつつ各ブロックの配置位置を適正化する第４のステップと、決定したブロック配置情報を出力する第５のステップとを含むことを特徴とするフロアプラン方法が開示されている。同公報によると、このフロアプラン方法によれば、矩形以外の直角多角形ブロックが存在する場合に、チップ面積を拡大することなく効率良くレイアウト処理を行うことができるとされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１３９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下の分析は、本発明によって与えられたものである。
【０００５】
半導体集積回路のレイアウト設計において、マクロ間の領域はデッドスペースとなりやすい。特にマクロの数が多い場合には、チップサイズへの影響が無視できなくなる。このため、マクロ間の領域の配置リソースの消費量と配線リソース消費量を考慮することにより、デッドスペースとなるマクロ間の領域を最小化する技術が求められている。
【０００６】
しかしながら、特許文献１のフロアプラン方法では、ブロック間隔の適正化（特許文献１の図８のステップ６〜ステップ１０）や、ブロック配置の適正化（ステップ４）を実施する前に、予めブロック間配線領域情報を入力（ステップ３）する必要がある。このブロック間配線領域情報は、ブロック間にどのくらい配線されるのかを見積もって配線領域として最適な間隔を与える必要があるが、ブロックを配置して適正化していく過程において変化する配線経路に対応することができないという問題点がある。
【０００７】
また、特許文献１のフロアプラン方法では、チップ上に多数（大規模ＬＳＩでは数百個以上）存在するすべてのブロック間について、予めブロック間配線領域情報を準備する必要があり、非常に多くの時間を要するという問題点もある。
【課題を解決するための手段】
【０００８】
本発明の第１の視点によれば、チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１のステップと、前記第１のステップの実行後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２のステップと、を有するレイアウト設計方法が提供される。本方法は、半導体集積回路の自動レイアウト（自動配置配線）を行うコンピュータという、特定の機械に結びつけられている。
【０００９】
本発明の第２の視点によれば、チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１の配線リソース占有率調整手段と、前記第１の配線リソース占有率調整手段によるマクロの移動の後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２の配線リソース占有率調整手段と、を備えるレイアウト設計システムが提供される。
【００１０】
本発明の第３の視点によれば、チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１の処理と、前記第１の処理の実施後、前記チップ上の隣接する２つのマクロに挟まれた領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２の処理とを、レイアウト設計システムを構成するコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１１】
本発明によれば、チップ上のマクロ間の間隔が適正化された半導体集積回路のレイアウトを得ることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の概要を説明するための図である。
【図２】本発明の概要を説明するための別の図である。
【図３】本発明の第１の実施形態のレイアウト設計システムの構成を表わしたブロック図である。
【図４】本発明の第１の実施形態のレイアウト設計システムの動作を表わしたフローチャートである。
【図５】図４のステップＳ１０６、Ｓ１１０の詳細を表わしたフローチャートである。
【図６】図５のステップＳ２０３の処理を説明するための図である。
【発明を実施するための形態】
【００１３】
はじめに、本発明の概要について図面を参照して詳細に説明する。本発明は、図１に示すように、適正化前のレイアウトデータ４０から、チップ上の隣接するマクロ４０１〜４０４に挟まれた領域４０５〜４０７のうち、配線リソース占有率が、所定の目標占有率未満の領域（例えば、図１の４０６）を挟むマクロの少なくとも一方の位置を調整し、配線リソース占有率を上げる第１のステップと、前記第１のステップの実行後、前記抽出された領域４０５〜４０７のうち、配線リソース占有率が前記所定の目標占有率を超えている領域（例えば、図１の４０５）を挟むマクロの少なくとも一方の位置を調整し、配線リソース占有率を下げる第２のステップと、により実施できる。
【００１４】
上記のように、事前に抽出されたマクロ間領域４０５〜４０７のうち、マクロ間領域４０５の配線リソース占有率は所定の目標占有率を超えており、マクロ間領域４０６の配線リソース占有率は所定の目標占有率未満であり、マクロ間領域４０７の配線リソース占有率が所定の目標占有率と略一致しているようなケースを考える。このとき、配線リソース占有率が所定の目標占有率未満、即ち、配線リソースに余力のある領域についてマクロ間隔を適正化する第１のステップを先に実施することで、図１の符号４１に示すように、配線リソース占有率が所定の目標占有率を超えている領域４０５のマクロ間隔の適正化（マクロ間隔を拡げる）を行う前に、領域４０７の間隔を拡げておくことができる。
【００１５】
これにより、チップ全体の面積を増大させることなく、次の第３のステップにおいて、配線リソース占有率が所定の目標占有率を超えている領域４０５のマクロ間隔を適正化する（マクロ間隔を拡げる）際の余地を確保することが可能となる。
【００１６】
また、上記したレイアウト設計方法は、図２に示すように、適正化前のレイアウトデータ２０から、チップ上の隣接する２つのマクロに挟まれた領域を抽出するマクロ間領域抽出手段１０と、前記抽出された領域のうち、配線リソース占有率が、所定の目標占有率未満の領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を上げる第１の配線リソース占有率調整手段と、前記第１の配線リソース占有率調整手段によるマクロの移動の後、前記抽出された領域のうち、配線リソース占有率が所定の目標占有率を超えている領域を挟むマクロの少なくとも一方を移動し、配線リソース占有率を下げる第２の配線リソース占有率調整手段とを備え、適正化済みレイアウトデータ２１を生成するレイアウト設計システムにより実施することができる。
【００１７】
また、図２に示したレイアウト設計システムの各部（処理手段）は、レイアウト設計システムを構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００１８】
なお、上記した概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１９】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図３は、本発明の第１の実施形態に係るレイアウト設計システムの構成を表した図である。図３を参照すると、サーバ５０１と、コンピュータ装置５０６とがネットワーク５０５を介して接続された構成が示されている。
【００２０】
ネットワーク５０５は、コンピュータ装置５０６とサーバ５０１との間の通信を接続する。このようなネットワーク５０５としては、移動体通信網や、専用線網や、ＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【００２１】
サーバ５０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で構成される処理部５０２、記憶部５０３、入出力インターフェースである入出力部５０４を備えている。記憶部５０３には、後記するレイアウト設計手法に従った各ステップを実施するための実行プログラムを含む各種実行プログラムや、レイアウトデータ、レイアウトライブラリといったデータが記憶される。このような記憶部５０３は、ハードディスクやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）といった記憶装置により実現できる。
【００２２】
処理部５０２は、記憶部５０３に記憶されたサーバ５０１の機能を実現するための実行プログラムを読み込んで実行することで、サーバ５０１の機能を実現する。
【００２３】
なお、各実行プログラムやデータは、サーバ５０１の管理者により、キーボードやマウスや、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）といった入出力部５０４を用いて記憶部５０３へ記憶される。上述の構成により、サーバ５０１は、実行プログラムやデータを、ネットワーク５０５を介してコンピュータ装置５０６へ提供することが可能となっている。
【００２４】
コンピュータ装置５０６は、通信部５０７、記憶部５０８、処理部５０９、入出力部５１０を備えたパーソナルコンピュータに代表されるコンピュータであり、本発明に係るレイアウト設計方法を実施するためのレイアウト設計システムを構成する。
【００２５】
より具体的には、コンピュータ装置５０６は、通信部５０７によりネットワーク５０５を介してサーバ５０１へ接続し、後記するレイアウト設計手法に従った各ステップを実施するための実行プログラムやデータを取得し、記憶部５０８へ記憶する。
【００２６】
コンピュータ装置５０６の処理部５０９は、記憶部５０８に記憶された上記実行プログラムを読み込んで実行することによりコンピュータ装置５０６の機能を実現する。
【００２７】
コンピュータ装置５０６の入出力部５１０は、キーボードやマウスや、ＬＣＤなどにより構成される。
【００２８】
なお、図３の例では、後記するレイアウト設計手法に従った各ステップを実施するための実行プログラムをサーバ５０１から取得することとしているが、サーバ５０１無しで本発明を実現することも可能である。例えば、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）やフラッシュメモリを搭載したＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリといった持ち運び可能な記憶媒体から上記した実行プログラムやデータを取得することとしてもよい。この場合、実行プログラムやデータは、これらの持ち運び可能な記憶媒体から、コンピュータ装置５０６の備えるＣＤドライブや、ＵＳＢポート等を介して導入される。
【００２９】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態のレイアウト設計システムの動作を表わしたフローチャートである。また、以下の説明では、配線リソース占有率の目標占有率として１００％が設定されているものとする。
【００３０】
図４を参照すると、まず、プリミティブセルの配置処理が行われる（ステップＳ１０１）。
【００３１】
次に、プリミティブセル、マクロセル、ＩＯセル間の接続情報に従い配線処理が行われる（ステップＳ１０２）。
【００３２】
次に、上記ステップＳ１０２の配線結果の確認が行われる（ステップＳ１０３）。ここで、すべての配線が問題なく完了していれば処理を終了する（ステップＳ１０３の「はい」）。一方、配線しきれない箇所（エラー）が存在する場合（ステップＳ１０３の「いいえ」）、エラーとなった配線経路を削除し、再配線が行われる（ステップＳ１０４）。
【００３３】
次に、上記ステップＳ１０４の再配線結果の確認が行われる（ステップＳ１０５）。ここで、すべての配線が問題なく完了していれば処理を終了する（ステップＳ１０５の「はい」）。一方、配線しきれない箇所（エラー）が存在する場合は（ステップＳ１０５の「いいえ」）、ステップＳ１０６以降のマクロ間隔の適正化処理が開始される。
【００３４】
まず、コンピュータ装置５０６の処理部５０９は、ネットリストなどから抽出したマクロの配置情報や配線リソース情報を参照して、マクロ間の領域の配線リソースの占有率が１００％未満のマクロの組（以下、「マクロペア」と称する。）を検索する（ステップＳ１０６）。
【００３５】
次に、コンピュータ装置５０６の処理部５０９は、上記ステップＳ１０６の検索結果を確認する（ステップＳ１０７）。ここで、マクロ間の領域の配線リソースの占有率が１００％未満のマクロペアが無ければ（ステップＳ１０７の「ない」）、ステップＳ１１０へ進む。一方、マクロ間の領域の配線リソースの占有率が１００％未満のマクロペアがある場合（ステップＳ１０７の「ある」）、配線可能な最低間隔にマクロ間隔を調整する（ステップＳ１０８）。この時点で、図１に示したように、配線リソースの占有率が１００％未満のマクロペア間の適正化が行われる（図１の領域４０６参照）。
【００３６】
なお、上記ステップＳ１０７において、マクロ間の領域の配線リソースの占有率が１００％未満のマクロペアが複数ある場合には、配線リソース占有率が低いものから順番にマクロ間隔の調整を行うようにすることが望ましい。
【００３７】
次に、コンピュータ装置５０６の処理部５０９は、前記調整したマクロ間の再配線を行う（ステップＳ１０９）。
【００３８】
前記再配線の完了後、コンピュータ装置５０６の処理部５０９は、ステップＳ１０６に戻り、マクロ間の領域の配線リソースの占有率が１００％未満のマクロペアが存在しなくなるまで、上記したステップＳ１０６〜Ｓ１０９の処理を繰り返す。
【００３９】
以上のように、ステップＳ１０６からステップＳ１０９までの一連の処理を繰り返すことで、マクロ間の領域の配線リソース占有率が１００％未満のマクロペアに対してマクロ間隔の適正化（配線可能な最低間隔への調整）を行い、配線リソースの占有率を上げるとともに、他方の当該マクロペア周辺の配線リソースの占有率を下げることが可能となる（図１の領域４０６の配線リソースの占有率が上がり、領域４０７の配線リソースの占有率が下がる）。
【００４０】
次に、コンピュータ装置５０６の処理部５０９は、マクロ間の領域の配線リソース占有率が１００％を超えているマクロペアを検索する（ステップＳ１１０）。
【００４１】
次に、コンピュータ装置５０６の処理部５０９は、上記ステップＳ１１０の検索結果を確認する（ステップＳ１１１）。ここで、マクロ間の領域の配線リソースの占有率が１００％を超えているマクロペアが無ければ（ステップＳ１１１の「ない」）、処理を終了する。一方、マクロ間の領域の配線リソースの占有率が１００％を超えているマクロペアがある場合（ステップＳ１１１の「ある」）、配線可能な最低間隔にマクロ間隔を調整する（ステップＳ１１２）。この時点で、図１の領域４０６を適正化することにより拡げられた領域４０７を利用して領域４０５のマクロ間隔の調整が行われる。
【００４２】
なお、上記ステップＳ１１１において、マクロ間の領域の配線リソースの占有率が１００％を超えているマクロペアが複数ある場合には、配線リソース占有率が高いものから順番にマクロ間隔の調整を行うようにすることが望ましい。
【００４３】
次に、コンピュータ装置５０６の処理部５０９は、前記調整したマクロ間の再配線を行う（ステップＳ１１３）。
【００４４】
前記再配線の完了後、コンピュータ装置５０６の処理部５０９は、ステップＳ１１０に戻り、マクロ間の領域の配線リソースの占有率が１００％を超えているマクロペアが存在しなくなるまで、上記したステップＳ１１０〜Ｓ１１３の処理を繰り返す。
【００４５】
以上のように、ステップＳ１１０からステップＳ１１３までの一連の処理を繰り返すことで、マクロ間の領域の配線リソース占有率が１００％を超えているマクロペアについての配線混雑を緩和しエラーを除去することが可能となる。
【００４６】
続いて、上記図４のステップＳ１０６およびステップＳ１１０における処理対象とするマクロペアの検索について具体例を用いて詳細に説明する。
【００４７】
図５は、図４のステップＳ１０６、Ｓ１１０における処理の一例を表わしたフローチャートである。図５のステップＳ２０１〜ステップＳ２０３がチップ上の隣り合うマクロを特定する処理であり、ステップＳ２０４〜ステップＳ２０８が前記隣り合うマクロの中から検索結果となるマクロペアを決める処理である。
【００４８】
まず、コンピュータ装置５０６の処理部５０９は、チップ内のセルやマクロやＩＯ間の接続を記載したネットリスト中から全てのマクロを抽出し、マクロ名とマクロの配置座標、マクロの幅と高さからなる形状情報を登録したテーブルを作成する。このテーブルをＭｔｂとする（ステップＳ２０１）。
【００４９】
次に、コンピュータ装置５０６の処理部５０９は、テーブルＭｔｂに登録されたマクロを、配置座標のＸ座標の順でソートする（ステップＳ２０２）。
【００５０】
次に、コンピュータ装置５０６の処理部５０９は、テーブルＭｔｂの先頭から順に登録されているマクロを処理対象マクロＭ１とし、処理対象マクロと処理対象マクロの次に登録しているマクロから順にマクロを抽出しＭ２とする。対象マクロＭ１と対象マクロＭ２とがＸまたはＹ方向でオーバーラップがあり、かつ、対象マクロＭ１、対象マクロＭ２間に他のマクロが挟まっていない場合、コンピュータ装置５０６の処理部５０９は、対象マクロＭ１と対象マクロＭ２との間の矩形領域を求め、テーブルＢｔｂに登録する（ステップＳ２０３）。
【００５１】
図６は、上記ステップＳ２０３の処理を説明するためのレイアウトイメージ図であり、３つのマクロ３０１、３０２、３０３が配置されている状態を示している。マクロ３０１を対象マクロＭ１とした場合、マクロ３０２はＸ方向でオーバーラップ（相対する辺を持つ）しており対象マクロＭ２となる。このとき、コンピュータ装置５０６の処理部５０９は、マクロＭ１とマクロＭ２の間の矩形領域として、マクロ３０１とマクロ３０２の間の矩形領域３１１をテーブＢｔｂに登録する。
【００５２】
テーブルＢｔｂに矩形領域３１１を登録後、コンピュータ装置５０６の処理部５０９は、対象マクロＭ１と対象マクロＭ２とがオーバーラップしていない部分、図６の矩形領域３２１部分に関して、対象マクロＭ１についてＸ方向でオーバーラップしているマクロを検索する処理を繰り返す。
【００５３】
対象マクロＭ１と対象マクロＭ２とがＹ方向でオーバーラップ（相対する辺を持つ）があり、かつ、対象マクロＭ１と対象マクロＭ２との間に他のマクロが挟まっていない場合についても同様に、コンピュータ装置５０６の処理部５０９は、対象マクロＭ１と対象マクロＭ２の間の矩形領域を求める。図６のマクロ３０１を対象マクロＭ１とした場合、マクロ３０３はＹ方向でオーバーラップしており対象マクロＭ２となる。このとき、コンピュータ装置５０６の処理部５０９は、マクロＭ１とマクロＭ２の間の矩形領域として、マクロ３０１とマクロ３０３の間の矩形領域３１２をテーブルＢｔｂに登録する。
【００５４】
テーブルＢｔｂに矩形領域３１２を登録後、コンピュータ装置５０６の処理部５０９は、対象マクロＭ１と対象マクロＭ２とがオーバーラップしていない部分、図６ではマクロ３０１をマクロＭ１とし、マクロ３０３をマクロＭ２とした場合のマクロ間の矩形領域３２２部分に関して、対象マクロＭ１についてＹ方向でオーバーラップしているマクロを検索する処理を継続する。
【００５５】
以上のようにして、テーブルＢｔｂへのマクロ間の領域の登録が完了すると、コンピュータ装置５０６の処理部５０９は、テーブルＢｔｂに登録された矩形領域の配線リソースの占有率を計算する（ステップＳ２０４）。
【００５６】
次に、コンピュータ装置５０６の処理部５０９は、図４のステップＳ１０６で配線リソース占有率が１００％未満のマクロペアの領域が求められているのか、図４のステップＳ１１０で配線リソース占有率が１００％を超えているマクロペアの領域が求められているのかにより、ステップＳ２０６、ステップＳ２０７のいずれかに分岐する。
【００５７】
配線リソース占有率が１００％未満のマクロペアの領域が求められており、ステップＳ２０６に分岐した場合、コンピュータ装置５０６の処理部５０９は、テーブルＢｔｂに登録された領域のうち配線リソースの占有率が１００％未満の中で配線リソースの占有率が一番低い矩形領域を選択する。この矩形領域をＢｏｘとする。
【００５８】
配線リソース占有率が１００％を超えているマクロペアの領域が求められており、ステップＳ２０７に分岐した場合、コンピュータ装置５０６の処理部５０９は、テーブルＢｔｂに登録された領域のうち配線リソースの占有率が１００％を超えている中で配線リソースの占有率が一番高い矩形領域を選択する。この矩形領域をＢｏｘとする。
【００５９】
最後に、コンピュータ装置５０６の処理部５０９は、Ｂｏｘとして選択された矩形領域の両端にあるマクロペアを調べ、これを処理するマクロペアとする（ステップ２０８）。
【００６０】
以上のように、マクロ間の配線リソース占有率１００％未満のマクロペアの間隔調整を先に実施することで、マクロ間の配線リソース占有率が１００％を超えているマクロペアの調整可能範囲を広くとることができる。そして最終的に、マクロ間の配線リソース占有率１００％を超えているマクロペアの間隔調整を行うことで、チップ全体のマクロ間隔適正化が可能になる。
【００６１】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。
【００６２】
例えば、上記した実施形態では、上記ステップＳ１０６およびステップＳ１１１において、配線リソース占有率が低いものから順番にマクロ間隔の調整を行うようにするものとして説明したが、その順序は適宜変更することが可能である。例えば、配線リソース占有率が低いものが複数ある場合、チップ面積の削減効果が高いものから順番にマクロ間隔の調整を行なうことでもよい。また、配線リソース占有率が高いものが複数ある場合も同様に、マクロ間隔の調整を行う順序を適宜変更することが可能である。
【００６３】
例えば、上記した実施形態では、配線リソース占有率の目標占有率として１００％を設定したものとして説明したが、必要に応じて、配線リソース占有率の目標占有率として１００％以外の数値を設定することも可能である。
【００６４】
また、配線リソース占有率の上側の目標占有率と、配線リソース占有率の下側の目標占有率と、をそれぞれ設定して、配線リソース占有率が両者の中間にあるマクロペアについては適正化処理の対象外として一連の処理を高速化する方法も採用可能である。
【符号の説明】
【００６５】
１  レイアウト設計システム
１０  マクロ間領域抽出手段
１１  第１適正化手段
１２  第２適正化手段
２０  適正化前レイアウトデータ
２１  適正化済みレイアウトデータ
４０  適正化前のレイアウト
４１  配線リソース占有率が低い領域のマクロ間隔の適正化後のレイアウト
４０１〜４０４  マクロ
４０５〜４０７  マクロ間の領域
５０１  サーバ
５０２  処理部
５０３  記憶部
５０４  入出力部
５０５  ネットワーク
５０６  コンピュータ装置  
５０７  通信部
５０８  記憶部
５０９  処理部
５１０  入出力部
【図１】
2012146192.tif 000003
【図２】
2012146192.tif 000004
【図３】
2012146192.tif 000005
【図４】
2012146192.tif 000006
【図５】
2012146192.tif 000007
【図６】
2012146192.tif 000008