図1〜図3を参照して、半導体集積回路のレイアウトフェーズにおける一般的な処理工程を説明する。一般的に図1〜図3に示す半導体集積回路のレイアウト方法は、コンピュータによる設計支援システムにて実現される。
図1は、一般的な半導体における設計工程のフロー図である。図1を参照して、レイアウトフェーズにおいて、設計支援システムは、回路情報が記載されたネットリストf11と、制約条件を記した制約ファイルf12とを用いてフロアプランを行う(ステップS13)。設計支援システムは、ネットリストファイルf11とフロアプランの結果を入力とし、配置配線工程(ステップS101)を実施する。続いて、設計支援システムは、タイミング最適化工程(ステップS102)を行い、サインオフチェック(ステップS103)にて問題の有無を確認する。サインチェックで問題のない場合はサインオフ(ステップ104)にて終了となる。又、サインオフチェックで問題が発生した場合には再度タイミング最適化(ステップS102)を実施しタイミング収束(以降、METと称す)させる。
図1を参照して、半導体集積回路の設計工程の詳細を説明する。
ステップS13におけるフロアプランでは、制約ファイルf12に記載されたタイミング条件を元にネットリストf11に記載されているハードマクロや外部端子などの配置が行われる。
続くステップS101における配置配線工程では、電源配線(ステップS14)、セルの配置(ステップS15)、タイミング調整(CTS;clock tree synthesis、ステップS16)、セル間配線(ステップS17)が行われる。
ステップS14における電源配線では、ステップS13で配置されたハードマクロや外部端子を考慮して電源配線が行われる。続いて、ステップS15におけるセルの配置では、制約ファイルf12に記載されたタイミング情報を元に、ネットリストf11に記載されているセルブロックが、タイミングドリブン配置される。配置されたセルブロックに対し、クロックのタイミング調整のためにCTSが実施される(ステップS16)。全てのセルブロックの配置及びCTSが終了すると、セルブロック間の配線が行われる(ステップS17)。
セルブロック間の配線が終了すると、ステップS102のタイミング最適化工程に移行する。ステップS102では、低電力化(ステップS18)、タイミング遅延修正(ステップS19)、負荷分散のためのCTS(ステップS20)、ドライブ能力向上(ゲートサイジング、ステップS21)、リピータ挿入(ステップS22)、HOLD遅延素子挿入(ステップS23)が行われる。
ステップS17における配線後の半導体集積装置には、タイミング的に余裕がある箇所に高速駆動セルが使用されていたり、過剰な高駆動能力をもった大きなセルブロックが配置されている場合がある。このため、ステップS18において、これらのセルブロックは低消費電力のセルブロックに置き換えられる。
図2は、低電力化処理(ステップS18)の動作の詳細を示すフローチャートである。
ステップS18では、先ず、設計支援システムは、ステップS17において生成された配線後レイアウトデータを用いて、チップ上に配置されたセルブロックの駆動能力をチェックする(ステップS25)。ここで、適正な駆動能力のセルブロックであればステップS27に進む。
過剰な駆動能力のセルブロックが配置されている場合は、当該セルブロックのサイズダウンが行われる(ステップS26)。ここでは、適正な駆動能力のセルブロックに変更される。
次にタイミング検証が実施され、タイミングに問題がある場合はサイズダウンしたセルブロックがサイズアップされる(ステップS27No、S28)し、再度ステップS27に戻り、タイミング検証が行われる。一方、タイミング検証においてタイミングに問題がない(MET)場合は、低電力化レイアウトフローを終了し、次工程へ進む(ステップS27MET、S19)。
ステップS18によって低電力化されたレイアウトにおいて、HOLDタイミングエラー等となった箇所に対して、タイミング遅延修正による低駆動セルへの置き換えを実施する(ステップS19)。
図3は、タイミング遅延修正処理(ステップS19)の動作の詳細を示すフローチャートである。
ステップS19では、先ず、設計支援システムは、ステップS18において生成された低電力化後レイアウトデータを利用して、セルブロックのサイズダウンを実施、サイズダウン後のセルブロックに対してタイミング検証を実施する(ステップS29、S30)。ここで、METしている箇所はタイミングおよびレイアウト面積に余裕のある箇所であると判断され、ステップS29に戻り、更なるセルブロックのサイズダウンが実施される(ステップS30MET、S29)。このように、セルブロックのサイズダウン及びタイミング検証を、METしなくなるまで繰り返す。
一方、ステップS30のタイミング検証にてMETしなくなった箇所は、セルブロックのサイズアップが実施されることで、タイミングがMETする状態に戻される(ステップS30No、S31)。そして、タイミング遅延処理を終了し、次工程へ移行する(ステップS20)。
ステップS19による遅延修正後のレイアウトにおいて、電気的特性が悪い箇所の改善の為、負荷分散のためのCTSが行われるとともに、追加セルブロックの挿入が行われる(ステップS20)。
次に、ドライブ能力が不足している箇所のドライブ能力向上のため既存セルブロックを駆動能力の高いセルブロックに置き換えられる(ステップS21)。
次に、セルブロック間の配置距離が遠く、配線が長くなってしまい電気的特性の悪い箇所の改善の為、リピータ挿入が行われるとともに、追加セルブロックが挿入される(ステップS22)。
次に、HOLDタイミングが不足している箇所にタイミングを遅延させるために遅延素子挿入が行われるとともに、追加セルブロックが挿入される(ステップS23)。
ステップS102における一連の処理の後、ステップS103のサインオフチェックにおいてMETしてない場合は、更にタイミング調整をするためステップS102の処理(ステップS18〜ステップS23)を繰り返す。一方、サインオフチェックにおいてMETしている場合は、レイアウトがサインオフ(ステップS104)され、レイアウト設計を終了する。
ここで、負荷分散のためのCTS(ステップS20)、長配線箇所へのリピータ挿入(ステップS22)、及びタイミング調整のためのHOLD遅延素子挿入(ステップS23)では、セルブロックの追加が必要となる。又、ドライブ能力が不足している箇所に対してドライブ能力を向上する工程(ステップS21)では、既存セルのサイズアップが必要となる。このように、セルブロックの追加やサイズアップを行うためには、所定の面積及び形状の空き領域が必要となる。
更に、負荷分散のためのCTS(ステップS20)からHOLD遅延素子挿入(ステップS23)までの工程において、既にセルブロックが配置された領域(既存配置領域)に収まりきらなかったセルブロックを再配置するための空き領域が必要となる。
従って、ステップS102のタイミング最適化工程において、セルブロックの追加やサイズアップ、あるいはセルブロックの再配置に要する空き領域を確保することが求められる。
セルブロックの追加やサイズアップ等のために空き領域を確保する技術が、例えば、特開2009−20575に記載されている(特許文献1参照)。特許文献1には、セルブロックの移動や削除を行うことで、所定の大きさ及び形状の空き領域を確保する技術が記載されている。
図4Aは、ステップS102のタイミング最適化工程における空き領域確保前の半導体集積回路のレイアウトの一部を示す平面図である。一方、図4Bは、特許文献1に記載の方法によって空き領域Aが確保された半導体集積回路のレイアウトの一部を示す平面図である。
図4Aに示す領域Arではセルブロックが混雑しているため、負荷分散のためのCTS(ステップS20)、ドライブ能力向上(ステップS21)、リピータ挿入(ステップS22)、HOLD遅延素子挿入(ステップS23)において、セルブロックの追加やサイズアップ等ができない。このような場合、特許文献1では、領域Ar内に配置されたセルブロックを移動又は削除することで、図4Bに示すように空き領域Aを確保することができる。
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。本実施の形態では、セルベースICのレイアウト設計を行う方法及び設計支援装置について説明する。
(概要)
本発明は、図2に示す低電力化処理(ステップS18)や図3に示すタイミング遅延修正処理(ステップS19)において実行されるセルブロックのサイズダウン方法である。本発明では、セルブロック(以下、セルと称す)のサイズを縮小する際、セル周辺の空き領域の面積を算出し、当該面積に応じて縮小したセルのチップ上における位置を決定する。縮小したセルの位置を適切に設定することで、空き領域の数を変更することなく空き領域の面積を増大することができる。これにより、図1に示す負荷分散のためのCTS(ステップS20)、ドライブ能力向上(ステップS21)、リピータ挿入(ステップS22)、HOLD遅延素子挿入(ステップS23)における、セルの追加やサイズアップ等が可能な形状及び大きさの空き領域が生成され得る。以下、本発明による半導体集積回路の設計方法(セルサイズダウン方法)について詳細に説明する。
(回路設計支援装置の構成)
図5及び図6を参照して、本発明による半導体集積回路の設計支援装置(以下、回路設計支援装置10と称す)の実施の形態における構成を説明する。図5は、本発明による回路設計支援装置10の構成を示す図である。本発明による回路設計支援装置10は、バス16を介して相互に接続されるCPU11、RAM12、入力装置13、出力装置14、記憶装置15を備えるコンピュータ装置である。入力装置13は、キーボードやマウスに例示され、ユーザによって操作されることで、各種データをCPU11や記憶装置15に出力する。出力装置13は、モニタやプリンタに例示され、CPU11から出力される回路設計結果をユーザに対し視認可能に出力する。記憶装置15はハードディスクやメモリ等に例示される記憶装置である。
記憶装置15には、半導体集積回路設計支援プログラム100(以下、設計支援プログラム100と称す)、レイアウト情報201及びセルライブラリ202が格納される。又、記憶装置15は、レイアウト設計後のレイアウトパタンデータを記録する領域を有する。
レイアウト情報201は、図1におけるフロアプラン(ステップS13)及び配置配線工程(ステップS101)によって、タイミングドリブンレイアウトされた半導体集積回路のレイアウトに関する情報である。詳細には、レイアウト情報201は、半導体集積回路(チップ)上におけるセルブロックの配置位置(座標情報)が記載されているDEF(Design Exchange Format)ファイル211を含む。
セルライブラリ202は、内部が既にレイアウト設計されたマクロセルに関するデータ(以下ライブラリデータと称す)の集合である。セルライブラリ200には、NANDやフリップフロップなどの基本的回路を含むマクロセルから、RAMやROM、CPUコア等の大規模回路を含むマクロセルが登録される。ライブラリデータは、セル内の配線や端子の位置等、セルの外形や外部配線との接続位置、配線禁止領域を指定するデータを含む。詳細には、ライブラリデータは、セル内のピン配置に関するセル内及びセル枠(セル外形)の位置情報やセルサイズ情報を含むLEF(Library Exchange Format)ファイル212である。
又、記憶装置には、セルをチップ上に配置する際のセル間隔や配線長等を決定するための条件である制約情報(図示なし)が記録されていてもよい。
CPU11は、入力装置14からの入力に応答して、記憶装置15内の設計支援プログラム100を実行し、タイミングドリブンレイアウト済みのチップ上におけるセルの縮小処理を行う。この際、記憶装置15からの各種データやプログラムはRAM12に一時格納され、CPU11は、RAM12内のデータを用いて各種処理を実行する。
CPU11は、設計支援プログラム100を実行することで、図6に示す空き領域算出部101、空き領域比較部102、セル位置設定部103、セルサイズ縮小部104の各機能を実現する。
空き領域算出部101は、縮小対象セルを指定し、当該縮小対象セルに接する空き領域の検索及びその面積(サイズ)の算出を行う。詳細には、空き領域算出部101は、図1に示すステップS17において生成された配線後レイアウトデータや、ステップS18において生成された低電力化後のレイアウトデータを用いてサイズダウン(縮小化)の対象となるセル(以下、縮小化対象セル)を指定する。ここで、図1に示す低電力化処理(ステップS18)においては、過剰な駆動力のセルが縮小対象セルとして指定され、図1に示すタイミング遅延修正処理(ステップS19)では、遅延修正の対象とするセルが縮小対象セルとして指定される。
空き領域算出部101は、DEFファイル211から各セルのチップ上における配置位置(位置座標)を読み出すとともに、LEFファイル212から各セルのセルサイズを読み出す。空き領域算出部101は、セルの位置座標とセルサイズを用いて縮小対象セルの周辺の空き領域を検索するとともに、検出された空き領域の面積(サイズ)を算出する。
本実施の形態では、チップ上におけるセルの配置位置を表す原点が、セル枠上の所定の位置に設定されることが好ましい。又、セルのチップ上における配置位置を示す原点(以下、基準点と称す)のセル内における位置は、全てのセルで統一して設定されることが好ましい。例えば、セル枠において、行方向に向かいあう2辺の一方を左辺、他方を右辺とし、列方向に向かいあう2辺の一方を上辺、他方を下辺とした場合、左辺と下辺の交差する角がセルの原点として設定される。
尚、セルに対して行方向に隣接する空き領域のサイズを算出する場合、基準点として、セルの左辺又は右辺の一方において下辺から一定の距離(距離0を含む)の点が設定されることが好ましい。又、セルに対して列方向に隣接する空き領域のサイズを算出する場合、基準点として、セルの下辺又は上辺の一方において左辺から一定の距離(距離0を含む)の点が設定されることが好ましい。更に、セルに対して行方向に隣接する空き領域、及び列方向に隣接する空き領域のサイズを算出する場合、基準点として、セルの左辺又は右辺の一方と下辺又は上辺の一方の交差する角が設定されることが好ましい。
以下の説明では、一例として、セルの基準点が、左辺と下辺とが交差する角の一点に設定されているものとし、縮小対象セルを行方向に縮小する方法について説明する。
行方向のセル間に存在する空き領域の面積は、行の高さと、セル間の距離との積で表される。同一行において、行の高さは一定であるため、行方向のセル間に存在する空き領域の面積は、セル間の距離に比例にする。このため、空き領域算出部101は、行方向に対して縮小対象セルと隣あう他のセルとの距離を、当該他のセルとの間に存在する空き領域のサイズ(面積)として算出する。
ここで、縮小対象セルの左辺に隣接する空き領域を左側空き領域とし、左側空き領域に隣接する他のセルを左側セルとすると、左側空き領域のサイズは、(1)式のように表される。尚、セルの行方向のセル幅を当該セルのセルサイズとする。
左側空き領域のサイズ=(縮小対象セルの位置座標)−((左側セルの位置座標)+(左側セルのセルサイズ))・・・(1)
ただし、左側セルが存在しない場合、(1)式における(左側セルの位置座標)+(左側セルのセルサイズ)を、縮小対象セルの左辺側のチップの端部座標に置き換えて、左側空き領域のサイズが算出される。
又、縮小対象セルの右辺に隣接する空き領域を右側空き領域とし、右側空き領域に隣接する他のセルを右側セルとすると、右側空き領域のサイズは、(2)式のように表される。尚、セルの行方向のセル幅を当該セルのセルサイズとする。
右側空き領域のサイズ=(右側セルの位置座標)−((縮小対象セルの座標)+(縮小対象セルのセルサイズ))・・・(2)
ただし、右側セルが存在しない場合、(2)式における(右側セルの位置座標)を、縮小対象セルの右辺側のチップの端部座標に置き換えて、左側空き領域のサイズが算出される。
空き領域比較部102は、縮小対象セルにおいて対向する2辺のそれぞれに隣接する空き領域のサイズを比較する。例えば、縮小対象セルに対して行方向に隣接する右側空き領域のサイズと左側空き領域のサイズを比較する。
セル位置設定部103は、空き領域比較部102による比較結果に応じて、縮小したセル(以下、縮小セルと称す)の再配置位置を設定する。この際、セル位置設定部103は、セルの縮小方向、及び基準点のセル内における位置を考慮して縮小セルの配置位置を決定する。本発明による設計方法では、縮小対象セルを挟むように存在する2つの空き領域のうち、広いサイズ(面積)の空き領域を拡大するように、縮小対象セルを縮小する。このため、縮小セルの配置位置は、縮小対象セルに隣接する空き領域の面積に応じて設定される。
縮小対象セルにおいて、セルの縮小方向に対向する2つの辺のうち、基準点を含む辺を基準辺、基準辺に対向する辺を対向辺として、縮小後のセルの再配置位置を説明する。セル位置設定部103は、基準辺に接する空き領域のサイズが対向辺に接する空き領域サイズよりも大きい場合、基準辺及び対向辺のそれぞれに接する空き領域の大きさに差が無い場合、基準辺及び対向辺のそれぞれに接する空き領域が存在しない場合のいずれかに該当するとき、縮小セルの配置位置(基準点)を、元の位置(縮小対象セルの配置位置(基準点)と同じ位置に設定する。一方、縮小対象セルの基準辺に接する空き領域のサイズが、対向辺に接する空き領域のサイズよりも大きい場合、縮小セルの対向辺を、縮小対象セルの対向辺と同じ位置に設定する。この場合、縮小セルの基準点、すなわち縮小セルの配置位置は、縮小対象セルの配置位置から縮小分だけ移動することとなる。
セルサイズ縮小部104は、セルライブラリ202内のライブラリデータを修正することで、縮小対象セルの論理を変更せず、駆動力を低下させるようにセルサイズを縮小する。例えば、セルサイズ縮小部104は、縮小対象セルのセルハイトを固定し、行方向のセル幅を縮小して縮小セルを生成する。
以上のような構成により、本発明による設計支援装置10は、タイミングドリブンレイアウト済みの半導体集積回路に対して、低電力化又はタイミング遅延修正のためのレイアウト修正(セルの縮小化)を自動で行う。
(設計方法)
以下、図7〜図19Bを参照して、本発明による半導体集積回路の設計方法の詳細を説明する。本実施の形態では、セルの左下角を基準点とし、行方向にセルを縮小する方法を一例に説明する。
図7は、本発明による半導体集積回路の設計方法の一部(セル縮小方法)を示すフロー図である。設計支援装置10は、DEFファイル211、セルブロックサイズ情報が記載されているLEFファイル212から縮小対象セルの位置座標とセルサイズを読み出す(ステップS3)。ここでは、縮小対象セルの基準点の座標(一座標)と行方向のセル幅(セルサイズ)が読み取られる。
続いて、ステップS3で読み出された座標を元に、縮小対象セルに対して行方向に隣あう他のセルの位置座標及びセルサイズが、DEFファイル211及びLEFファイル212から読み出される(ステップS4、S5)。ここでは、左側セルと右側セルのそれぞれの基準点の座標(位置座標)及び行方向のセル幅(セルサイズ)が読み出される。
設計支援装置10は、読み出された縮小対象セル及び左側セルの位置座標及びセルサイズを用いて、両者の間に存在する左側空き領域のサイズ(ここでは行方向のセル間の距離)を算出する(ステップS6)。同様に、設計支援装置10は、読み出された縮小対象セル及び右側セルの位置座標及びセルサイズを用いて、両者の間に存在する右側空き領域のサイズ(ここでは行方向のセル間の距離)を算出する(ステップS7)。
次に、設計支援装置10は、左側空き領域のサイズと右側空き領域のサイズを比較する(ステップS8)。この際、右側空き領域サイズが左側空き領域サイズよりも大きい場合(右>左)、左右の空き領域の大きさに差が無い場合(左=右)、左右の空き領域が存在しない場合(左=右=0)のいずれかに該当するときは、配置位置を固定したままセルサイズの縮小を行う(ステップS10)。ステップS10におけるセルサイズの縮小処理では、縮小セルの基準点が縮小対象セルの基準点と同じ位置となるように、縮小対象セルを縮小セルに置き換えられる。
一方、ステップS8において、左側空き領域サイズが右側空き領域サイズより大きい場合(左>右)、縮小対象セルの位置座標を右側に移動させて、縮小対象セルが縮小される(ステップS9、S10)。ステップS9では、縮小セルの対向辺が、縮小対象セルの対抗辺の位置と一致するように、縮小セルの配置位置が設定され、ステップS10において、設定された配置位置に縮小セルが配置される。
上述の例では、行方向にセルを縮小する場合について説明したが、列方向に縮小する場合も同様に空き領域サイズの比較結果に応じて縮小セルの配置位置が設定される。又、上述の例では、左右の空き領域の大きさに差が無い場合(左=右)、又は、左右の空き領域が存在しない場合(左=右=0)に、配置位置を固定してセルを縮小しているが、これに限らず対向辺を固定してセルを縮小してもよい。
本発明によれば、縮小対象セルの空き領域の広い側を拡張するようにセルの縮小を行うため、効率的に広い空き領域を確保することができる。又、拡張された空き領域は、縮小対象セルのセルハイトに対応する幅を有しているため、セルを追加又は拡張することが可能な形状となる。更に、縮小されたセルは、元のセルが配置されていた領域内に配置されるため、既に配置されている他のセルは配線を移動することなく、空き領域を確保することができる。
図8A〜図19Bを参照して、本発明による縮小化処理によって修正前後のレイアウトの具体例と、その効果について説明する。以下では、図面上のX軸方向正側を右側、負側を左側とし、Y軸方向正側を上側、負側を下側と称して説明する。又、チップ上に配置されるセルや配線を矩形とし、それぞれが占めるチップ上の範囲や空き領域を、その左下角及び右上角の座標(X、Y)で表す。例えば、セルが配置される領域が左上(00、02)、左下(00、01)、右上(03、02)、右下(03、01)の範囲である場合、セル自身又はセルの配置される領域を、その左下座標と右上座標を用いて(00、01)〜(03、02)と表す。又、縮小対象セルの配置位置を示す基準点を左下角の点とし、当該基準点を通過しY軸方向に伸びる辺とする。更に、領域(00、00)〜(01、01)の面積を1ブロックとし、セルの配置される領域や空き領域のサイズ(面積)をブロック数によって示す。
先ず、図8A〜図8Cを参照して、本発明におけるセルの縮小方法による配線への影響を説明する。図8Aは、本発明による設計方法における配線への影響を示す概念図(縮小前)である。
図8Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図8Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルL01、L02、L05、及び配線L03、L04が配置されている。ここでは、セルL05が縮小対象セルとして指定されるものとする。縮小対象セルL05は、領域(05、01)〜(14、02)に配置される。縮小対象セルL05の左側の領域(00、01)〜(03、02)にセルL01が配置され、右側の領域(16、01)〜(19、02)にセルL02が配置される。左側セルL01と縮小対象セルL05の間の領域(04、00)〜座標(04、03)に配線L03が配置され、右側セルL02と縮小対象セルL05との間の領域(15、00)〜座標(15、03)に配線L04が配置される。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(14、01)〜(14、02)である。
図8Aに示す一例では、縮小対象セルL05と、左側セルL01及び右側セルL02との間の空き領域のサイズは、ともに2ブロックである。このため、セルを縮小する方法として、縮小対象セルL05の配置位置(基準辺)を変更せずに対向辺側を変更して縮小する方法と、対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法がある。
図8Bは、縮小対象セルL05の配置位置(基準辺)を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックL05の基準点(基準辺)の座標を変更せずに、セルサイズの小さい縮小セルL06に置き換えられる。詳細には、縮小対象セルL05がチップ上から削除され、縮小対象セルL05を縮小したセルL06が、領域(05、01)〜(12、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックL05が配置されていた領域(05、01)〜(14、02)から、縮小セルL06が配置される領域(05、01)〜(12、02)に縮小され、縮小セルL06と右側セルL02との間に新たな空き領域(12、01)〜(14、02)が追加されることとなる。すなわち、縮小対象セルL05を縮小セルL06に置換することによって、縮小対象セルL05と右側セルL02との間の空き領域が2ブロック分拡張される。
この場合、縮小対象となるセルブロックの配置範囲の中で、縮小セルの再配置を行っているため、周りの配線L03、L04の位置を変更する必要がない。従って、セルの縮小工程において、他の配線やセルを移動することなく、セルの追加や拡大に利用できる空き領域を確保することができる。
図8Cは、縮小対象セルL05の対向辺を変更せずに基準辺側(配置位置)を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックL05の対向辺の座標を変更せずに、セルサイズの小さい縮小セルL07に置き換えられる。すなわち、縮小対象セルL05がチップ上から削除され、縮小対象セルL05を縮小したセルL07が、領域(07、01)〜座標(14、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックL05が配置されていた領域(05、01)〜(14、02)から、縮小セルL06が配置される領域(07、01)〜座標(14、02)に縮小され、縮小セルL07と左側セルL01との間に新たな空き領域(05、01)〜(07、02)が追加されることとなる。すなわち、縮小対象セルL05を縮小セルL07に置換することによって、縮小対象セルL05と左側セルL01との間の空き領域が2ブロック分拡張される。
この場合も、縮小対象となるセルブロックの配置範囲の中で、縮小セルの再配置を行っているため、周りの配線L03、L04の位置を変更する必要がない。従って、セルの縮小工程において、他の配線やセルを移動することなく、セルの追加や拡大に利用できる空き領域を確保することができる。
本発明によれば、セルの縮小を、縮小対象セルの配置された領域内で行うため、他の配線やセルを移動することなく空き領域を拡張することができる。例えば、縮小対象セルの左右に空き領域の一方(例えば左側空き領域)をなくして、右側の空き領域を拡張するようにセルの移動及び縮小を行うと、空き領域が1つにまとまるため、セルの追加や拡張に有効に利用できる。しかし、この場合、図8Aのようなレイアウトでは、セル間の空き領域を削除することで、当該空き領域上の配線を移動又は迂回する必要が生じる。本発明では、上述のように、既存の配置領域以外へは縮小セルの再配置を行わないことため、既存配線への影響を避けることができる。
次に、図9A及び図9Bを参照して、縮小対象セルの両側に空き領域がない場合(右=左=0)のセルの縮小方法を説明する。図9Aは、縮小対象セルの両側に空き領域がない場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図9Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図9Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルA01、A02、A03が配置されている。ここでは、セルA03が縮小対象セルとして指定されるものとする。縮小対象セルA03は、領域(04、01)〜座標(15、02)に配置される。縮小対象セルA03の左側の領域(00、01)〜(04、02)にセルA01が配置され、右側の領域(15、01)〜(19、02)にセルB02が配置される。又、縮小前における縮小対象セルの基準点は、(04、01)であり、基準辺は(04、01)〜(04、02)、対向辺は(15、01)〜(15、02)である。各セル間の空き領域は存在しない。
縮小対象セルA03の左右には、空き領域が無く、左右のどちらに領域が広がっても領域の大きさに違いはない。このため、セルを縮小する方法として、縮小対象セルA03の配置位置(基準辺)を変更せずに対向辺側を変更して縮小する方法と、対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法のどちらか一方を選択できる。ここでは、セルの配置位置(基準辺)を変更せずに縮小する方法について説明する。
図9Bは、縮小対象セルA03の配置位置(基準辺)を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックA03の基準点(基準辺)の座標を変更せずに、セルサイズの小さい縮小セルA04に置き換えられる。詳細には、縮小対象セルA03がチップ上から削除され、縮小対象セルA03を縮小したセルA04が、領域(04、01)〜(11、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックA03が配置されていた領域(04、01)〜(15、02)から、縮小セルA04が配置される領域(04、01)〜(11、02)に縮小され、縮小セルA04と右側セルA02との間に新たな空き領域(11、01)〜(15、02)が追加されることとなる。すなわち、縮小対象セルA03を縮小セルA04に置換することによって、4ブロック分の新たな空き領域が確保される。
次に、図10A及び図10Bを参照して、縮小対象セルの基準辺側に空き領域が存在し、対向辺側に空き領域がない場合の(左>右=0)のセルの縮小方法を説明する。図10Aは、縮小対象セルの基準辺側に空き領域が存在し、対向辺側に空き領域がない場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図10Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図10Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルB01、B02、B03が配置されている。ここでは、セルB03が縮小対象セルとして指定されるものとする。縮小対象セルB03は、領域(06、01)〜座標(15、02)に配置される。縮小対象セルB03の左側の領域(00、01)〜(04、02)にセルB01が配置され、右側の領域(15、01)〜(19、02)にセルB02が配置される。これにより、左側セルB01と縮小対象セルB03との間に空き領域(04、01)〜(06、02)が形成される。又、縮小前における縮小対象セルの基準点は、(06、01)であり、基準辺は(06、01)〜(06、02)、対向辺は(15、01)〜(15、02)である。
本発明による方法では、既存の空き領域を効率的に利用するため、基準辺側の空き領域を拡張するようにセルB03を縮小する。図10Aに示す一例では、縮小対象セルC03の左側のみに空き領域が存在するため、縮小対象セルB03の対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法が採用される。
図10Bは、縮小対象セルB03の対向辺を変更せずに基準辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックB03の対向辺の座標を変更せずに、セルサイズの小さい縮小セルB04に置き換えられる。詳細には、縮小対象セルB03がチップ上から削除され、縮小対象セルB03を縮小したセルB04が、領域(09、01)〜(15、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックB03が配置されていた領域(06、01)〜(15、02)から、縮小セルB04が配置される領域(09、01)〜(15、02)に縮小され、縮小セルB04と左側セルB02との間の空き領域が(04、01)〜(09、02)となる。すなわち、縮小対象セルB03を縮小セルB04に置換することによって、既存の空き領域が、セルの縮小量に応じた3ブロック分拡張される。
次に、図11A及び図11Bを参照して、縮小対象セルの対向辺側に空き領域が存在し、基準辺側に空き領域がない場合の(右>左=0)のセルの縮小方法を説明する。図11Aは、縮小対象セルの対向辺側に空き領域が存在し、基準辺側に空き領域がない場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図11Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図11Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルC01、C02、C03が配置されている。ここでは、セルC03が縮小対象セルとして指定されるものとする。縮小対象セルC03は、領域(04、01)〜座標(13、02)に配置される。縮小対象セルC03の左側の領域(00、01)〜(04、02)にセルC01が配置され、右側の領域(15、01)〜(19、02)にセルC02が配置される。これにより、右側セルC02と縮小対象セルC03との間に空き領域(13、01)〜(15、02)が形成される。又、縮小前における縮小対象セルの基準点は、(04、01)であり、基準辺は(04、01)〜(04、02)、対向辺は(13、01)〜(13、02)である。
本発明による方法では、既存の空き領域を効率的に利用するため、対向辺側の空き領域を拡張するようにセルC03を縮小する。図11Aに示す一例では、縮小対象セルC03の右側のみに空き領域が存在するため、縮小対象セルC03の配置位置(基準辺)を変更せずに対向辺を変更して縮小する方法が採用される。
図11Bは、縮小対象セルC03の基準辺を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックC03の基準辺の座標を変更せずに、セルサイズの小さい縮小セルC04に置き換えられる。詳細には、縮小対象セルC03がチップ上から削除され、縮小対象セルC03を縮小したセルC04が、領域(04、01)〜(10、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックC03が配置されていた領域(04、01)〜(13、02)から、縮小セルC04が配置される領域(04、01)〜(10、02)に縮小され、縮小セルC04と右側セルC02との間の空き領域が(10、01)〜(15、02)となる。すなわち、縮小対象セルC03を縮小セルC04に置換することによって、既存の空き領域が、セルの縮小量に応じた3ブロック分拡張される。
次に、図12A及び図12Bを参照して、縮小対象セルの両側の空き領域が等しい場合(右=左>0)のセルの縮小方法を説明する。図12Aは、縮小対象セルの両側に空き領域が等しい場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図12Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図12Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルD01、D02、D03が配置されている。ここでは、セルD03が縮小対象セルとして指定されるものとする。縮小対象セルD03は、領域(05、01)〜座標(13、02)に配置される。縮小対象セルD03の左側の領域(00、01)〜(04、02)にセルD01が配置され、右側の領域(15、01)〜(19、02)にセルB02が配置される。これにより、左側セルC01と縮小対象セルC03との間に空き領域(04、01)〜(05、02)が形成され、右側セルC02と縮小対象セルC03との間に空き領域(13、01)〜(15、02)が形成される。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(13、01)〜(14、02)である。
図12Aに示す一例では、縮小対象セルD03の左右には、同じ大きさ(1ブロック)の空き領域が存在するため、左右のどちらに領域が拡がっても領域の大きさに違いはない。このため、セルを縮小する方法として、縮小対象セルD03の配置位置(基準辺)を変更せずに対向辺側を変更して縮小する方法と、対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法のどちらか一方を選択できる。ここでは、セルの配置位置(基準辺)を変更せずに縮小する方法について説明する。
図12Bは、縮小対象セルD03の配置位置(基準辺)を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックD03の基準点(基準辺)の座標を変更せずに、セルサイズの小さい縮小セルD04に置き換えられる。詳細には、縮小対象セルD03がチップ上から削除され、縮小対象セルD03を縮小したセルD04が、領域(05、01)〜(10、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックD03が配置されていた領域(05、01)〜(13、02)から、縮小セルD04が配置される領域(05、01)〜(10、02)に縮小され、縮小セルD04と右側セルD02との間の空き領域が(10、01)〜(15、02)となる。すなわち、縮小対象セルD03を縮小セルD04に置換することによって、既存の空き領域がセルの縮小量に応じた3ブロック分拡張される。
次に、図13A及び図13Bを参照して、縮小対象セルの対向辺側の空き領域よりも基準辺側の空き領域が大きい場合(左>右>0)の、本発明によるセルの縮小方法を説明する。図13Aは、縮小対象セルの対向辺側の空き領域よりも基準辺側の空き領域が大きい場合を示す模式図(縮小前)である。
図13Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図13Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルE01、E02、E03が配置されている。ここでは、セルE03が縮小対象セルとして指定されるものとする。縮小対象セルE03は、領域(05、01)〜座標(14、02)に配置される。縮小対象セルE03の左側の領域(00、01)〜(02、02)にセルE01が配置され、右側の領域(15、01)〜(19、02)にセルE02が配置される。これにより、左側セルE01と縮小対象セルE03との間に空き領域(02、01)〜(05、02)が形成され、右側セルE02と縮小対象セルE03との間に空き領域(14、01)〜(15、02)が形成される。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(14、01)〜(14、02)である。
本発明による方法では、縮小対象セルの両側に空き領域が存在する場合、両者のうち、より大きい空き領域を更に拡張するようにセルE03を縮小する。図13Aに示す一例では、縮小対象セルE03の左側の空き領域のサイズが右側の空き領域のサイズよりも2ブロック分大きい。このため、縮小対象セルE03の対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法が採用される。
図13Bは、縮小対象セルE03の対向辺を変更せずに基準辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックE03の対向辺の座標を変更せずに、セルサイズの小さい縮小セルE04に置き換えられる。詳細には、縮小対象セルE03がチップ上から削除され、縮小対象セルE03を縮小したセルE04が、領域(08、01)〜(14、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックE03が配置されていた領域(05、01)〜(14、02)から、縮小セルE04が配置される領域(08、01)〜(14、02)に縮小され、縮小セルE04と左側セルE01との間の空き領域が(02、01)〜(08、02)となる。すなわち、縮小対象セルE03を縮小セルE04に置換することによって、既存の空き領域が、セルの縮小量に応じた3ブロック分拡張される。
次に、図14A及び図14Bを参照して、縮小対象セルの基準辺側の空き領域よりも対向辺側の空き領域が大きい場合(右>左>0)の、本発明によるセルの縮小方法を説明する。図14Aは、縮小対象セルの基準辺側の空き領域よりも対向辺側の空き領域が大きい場合を示す模式図(縮小前)である。
図14Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図14Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルF01、F02、F03が配置されている。ここでは、セルF03が縮小対象セルとして指定されるものとする。縮小対象セルF03は、領域(05、01)〜座標(14、02)に配置される。縮小対象セルF03の左側の領域(00、01)〜(04、02)にセルF01が配置され、右側の領域(17、01)〜(19、02)にセルF02が配置される。これにより、左側セルF01と縮小対象セルF03との間に空き領域(04、01)〜(05、02)が形成され、右側セルF02と縮小対象セルF03との間に空き領域(14、01)〜(17、02)が形成される。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(14、01)〜(14、02)である。
本発明による方法では、縮小対象セルの両側に空き領域が存在する場合、両者のうち、より大きい空き領域を更に拡張するようにセルF03を縮小する。図14Aに示す一例では、縮小対象セルF03の右側の空き領域のサイズが左側の空き領域のサイズよりも2ブロック分大きい。このため、縮小対象セルF03の配置位置(基準辺)を変更せずに対向辺を変更して縮小する方法が採用される。
図14Bは、縮小対象セルF03の基準辺を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックF03の基準辺の座標を変更せずに、セルサイズの小さい縮小セルF04に置き換えられる。詳細には、縮小対象セルF03がチップ上から削除され、縮小対象セルF03を縮小したセルF04が、領域(05、01)〜(11、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックF03が配置されていた領域(05、01)〜(14、02)から、縮小セルF04が配置される領域(05、01)〜(11、02)に縮小され、縮小セルF04と右側セルF01との間の空き領域が(11、01)〜(17、02)となる。すなわち、縮小対象セルF03を縮小セルF04に置換することによって、既存の空き領域が、セルの縮小量に応じた3ブロック分拡張される。
次に、図15A及び図15Bを参照して、縮小対象セルの基準辺側に空き領域がなく、対向辺側に他のセルブロックがない場合(右>左=0)のセルの縮小方法を説明する。図15Aは、縮小対象セルの基準辺側に空き領域がなく、対向辺側に他のセルブロックがない場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図15Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図15Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルG01、G02が配置されている。ここでは、セルG02が縮小対象セルとして指定されるものとする。縮小対象セルG02は、領域(04、01)〜座標(14、02)に配置される。縮小対象セルG02の左側の領域(00、01)〜(04、02)にセルG01が配置され、右側の領域にセルは存在しない。これにより、左側セルG01と縮小対象セルG02との間に空き領域は存在せず、縮小対象セルG02と同一行内において、縮小対象セルG02の右側の領域は全て空き領域となる。又、縮小前における縮小対象セルの基準点は、(04、01)であり、基準辺は(04、01)〜(04、02)、対向辺は(14、01)〜(14、02)である。
本発明による方法では、既存の空き領域を効率的に利用するため、対向辺側の空き領域を拡張するようにセルG02を縮小する。図15Aに示す一例では、縮小対象セルG02の右側のみに空き領域が存在するため、縮小対象セルG02の配置位置(基準辺)を変更せずに対向辺を変更して縮小する方法が採用される。
図15Bは、縮小対象セルG02の基準辺を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックG02の基準辺の座標を変更せずに、セルサイズの小さい縮小セルG03に置き換えられる。詳細には、縮小対象セルG02がチップ上から削除され、縮小対象セルG02を縮小したセルG03が、領域(04、01)〜(10、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックG02が配置されていた領域(04、01)〜(14、02)から、縮小セルG03が配置される領域(04、01)〜(10、02)に縮小され、縮小セルG03の対向辺(10、01)〜(10、02)の右側の領域が全て空き領域となる。これにより、空き領域がセルの縮小量に応じた4ブロック分拡張される。
次に、図16A及び図16Bを参照して、縮小対象セルの対向辺側に空き領域がなく、基準辺側に他のセルブロックがない場合(左>右=0)のセルの縮小方法を説明する。図16Aは、縮小対象セルの対向辺側に空き領域がなく、基準辺側に他のセルブロックがない場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図16Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図16Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルH01、H02が配置されている。ここでは、セルH02が縮小対象セルとして指定されるものとする。縮小対象セルH02は、領域(05、01)〜座標(15、02)に配置される。縮小対象セルH02の右側の領域(15、01)〜(19、02)にセルH01が配置され、左側の領域にセルは存在しない。これにより、右側セルH01と縮小対象セルH02との間に空き領域は存在せず、縮小対象セルH02と同一行内において、縮小対象セルH02の右側の領域は全て空き領域となる。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(15、01)〜(15、02)である。
本発明による方法では、既存の空き領域を効率的に利用するため、基準辺側の空き領域を拡張するようにセルH02を縮小する。図16Aに示す一例では、縮小対象セルH02の左側のみに空き領域が存在するため、縮小対象セルH02の対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法が採用される。
図16Bは、縮小対象セルH02の対向辺を変更せずに基準辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックH02の基準辺の座標を変更せずに、セルサイズの小さい縮小セルH03に置き換えられる。詳細には、縮小対象セルH02がチップ上から削除され、縮小対象セルH02を縮小したセルH03が、領域(09、01)〜(15、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックH02が配置されていた領域(05、01)〜(15、02)から、縮小セルH03が配置される領域(09、01)〜(15、02)に縮小され、縮小セルH03の基準辺(09、01)〜(09、02)の左側の領域が全て空き領域となる。これにより、空き領域がセルの縮小量に応じた4ブロック分拡張される。
次に、図17A及び図17Bを参照して、縮小対象セルの対向辺側に他のセルブロックがなく、対向辺側の空き領域が基準辺側の空き領域より大きい場合(右>左>0)のセルの縮小方法を説明する。図17Aは、縮小対象セルの対向辺側に他のセルブロックがなく、対向辺側の空き領域が基準辺側の空き領域より大きい場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図17Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図17Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルI01、I02が配置されている。ここでは、セルI02が縮小対象セルとして指定されるものとする。縮小対象セルI02は、領域(05、01)〜座標(14、02)に配置される。縮小対象セルI02の左側の領域(00、01)〜(04、02)にセルI01が配置され、右側の領域にセルは存在しない。これにより、左側セルI01と縮小対象セルI02との間に空き領域(04、01)〜(05、02)が形成され、縮小対象セルI02と同一行内において、縮小対象セルI02の右側の領域は全て空き領域となる。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(14、01)〜(14、02)である。
本発明による方法では、既存の空き領域を効率的に利用するため、対向辺側の空き領域を拡張するようにセルI02を縮小する。図17Aに示す一例では、縮小対象セルI02の右側の空き領域が左側の空き領域よりも大きいため、縮小対象セルI02の配置位置(基準辺)を変更せずに対向辺を変更して縮小する方法が採用される。
図17Bは、縮小対象セルI02の基準辺を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックI02の基準辺の座標を変更せずに、セルサイズの小さい縮小セルI03に置き換えられる。詳細には、縮小対象セルI02がチップ上から削除され、縮小対象セルI02を縮小したセルI03が、領域(05、01)〜(10、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックI02が配置されていた領域(05、01)〜(14、02)から、縮小セルI03が配置される領域(05、01)〜(10、02)に縮小され、縮小セルI03の対向辺(10、01)〜(10、02)の右側の領域が全て空き領域となる。これにより、空き領域がセルの縮小量に応じた4ブロック分拡張される。
次に、図18A及び図18Bを参照して、縮小対象セルの基準辺側に他のセルブロックがなく、基準辺側の空き領域が対向辺側の空き領域より大きい場合(左>右>0)のセルの縮小方法を説明する。図18Aは、縮小対象セルの基準辺側に他のセルブロックがなく、基準辺側の空き領域が対向辺側の空き領域より大きい場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図18Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図18Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルJ01、J02が配置されている。ここでは、セルJ02が縮小対象セルとして指定されるものとする。縮小対象セルJ02は、領域(05、01)〜座標(14、02)に配置される。縮小対象セルJ02の右側の領域(15、01)〜(19、02)にセルJ01が配置され、左側の領域にセルは存在しない。これにより、右側セルJ01と縮小対象セルJ02との間に空き領域(14、01)〜(15、02)が形成され、縮小対象セルJ02と同一行内において、縮小対象セルJ02の左側の領域は全て空き領域となる。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(14、01)〜(14、02)である。
本発明による方法では、既存の空き領域を効率的に利用するため、対向辺側の空き領域を拡張するようにセルJ02を縮小する。図18Aに示す一例では、縮小対象セルJ02の左側の空き領域が右側の空き領域よりも大きいため、縮小対象セルJ02の対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法が採用される。
図18Bは、縮小対象セルJ02の対向辺を変更せずに基準辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックJ02の対向辺の座標を変更せずに、セルサイズの小さい縮小セルJ03に置き換えられる。詳細には、縮小対象セルJ02がチップ上から削除され、縮小対象セルJ02を縮小したセルJ03が、領域(09、01)〜(14、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックJ02が配置されていた領域(05、01)〜(14、02)から、縮小セルJ03が配置される領域(09、01)〜(15、02)に縮小され、縮小セルJ03の基準辺(09、01)〜(09、02)の右側の領域が全て空き領域となる。これにより、空き領域がセルの縮小量に応じた4ブロック分拡張される。
次に、図19A及び図19Bを参照して、縮小対象セルの両側に他のセルがない場合のセルの縮小方法を説明する。図19Aは、縮小対象セルの両側に他のセルがない場合の、本発明によるセルの縮小方法を示す模式図(縮小前)である。
図19Aには、縮小前の半導体集積回路のレイアウトの一部(00、00)〜(19、03)が示される。図19Aに示す領域には、図1に示すタイミングドリブンレイアウト(ステップS101)によって、セルK01が配置されている。ここでは、セルK01が縮小対象セルとして指定される。縮小対象セルK01は、領域(05、01)〜座標(14、02)に配置される。縮小対象セルK01の左側及び右側には他のセルは配置されていない。これにより、同一行において縮小対象セルK01の左右の領域は全て空き領域となる。又、縮小前における縮小対象セルの基準点は、(05、01)であり、基準辺は(05、01)〜(05、02)、対向辺は(14、01)〜(14、02)である。
図19Aに示す一例では、縮小対象セルK01の左右には、広い空き領域が存在するため、左右のどちらに領域が拡がっても領域の大きさに違いはない。このため、セルを縮小する方法として、縮小対象セルK01の配置位置(基準辺)を変更せずに対向辺側を変更して縮小する方法と、対向辺を変更せずに配置位置(基準辺)を変更して縮小する方法のどちらか一方を選択できる。ここでは、セルの配置位置(基準辺)を変更せずに縮小する方法について説明する。
図19Bは、縮小対象セルK01の配置位置(基準辺)を変更せずに対向辺側を変更する縮小方法によって得られたレイアウトの一部(00、00)〜(19、03)を示す。
ここでは、縮小対象セルブロックK01の基準点(基準辺)の座標を変更せずに、セルサイズの小さい縮小セルK02に置き換えられる。詳細には、縮小対象セルK01がチップ上から削除され、縮小対象セルK01を縮小したセルK02が、領域(05、01)〜(10、02)に配置される。これにより、セルが占める領域は、縮小対象セルブロックK01が配置されていた領域(05、01)〜(14、02)から、縮小セルK02が配置される領域(05、01)〜(10、02)に縮小され、既存の右側の空き領域がセルの縮小量に応じた3ブロック分拡張される。
図8A〜図19Bに示す一例は、チップ上における1行に着目して説明したが、他の行も同様に行うことで、セル縮小による空き領域を拡張することができる。
以上のように、本発明によれば、縮小対象セルを挟む2つの空き領域のうち、広い側の空き領域を拡張するように、セルの縮小処理が行われる。これにより、セルの配置や拡大に対して効率よく利用可能な空き領域を確保することができる。又、縮小セルの再配置位置は、元のセルが配置された領域内に設定されるため、他の配線やセルを移動する必要がないため、セルや配線の移動するための領域の確保や、移動に伴う検証作業等を省略することができる。すなわち、本発明によれば、チップサイズの増大を抑制し、タイミング収束性を損なわずに、低電力化処理(ステップS18)やタイミング遅延修正処理(ステップS19)以降に行われるセルの追加や既存セルのサイズアップに利用可能な空き領域を、セル縮小処理の段階で確保することができる。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。本実施の形態では、行方向(X軸方向)にセルを縮小する方法について説明したが、列方向(Y軸方向)に縮小する方法にも適用できる。この際、上述と同様に、縮小対象セルの上下の空き領域の比較結果に応じて、配置位置(基準点のチップ上における位置)が決定する。又、行方向及び列方向を同時に縮小する方法にも適用できる。
又、縮小セルは、セルの縮小処理の都度、生成されてもよいし、予め、記憶装置15に記録されているライブラリデータを利用してもよい。
更に、本実施の形態では、レイアウト情報201から取得した位置座標に基づいて、空き領域のサイズ比較等の処理を行ったが、領域のサイズ(面積又は面積に対応する寸法)を比較できればこれに限らない。例えば、マスタスライス型の半導体集積回路を設計する場合、ブロック単位でセルの位置やサイズを取得し、これを用いて空き領域のサイズを比較することができる。