(57)【要約】【課題】半導体集積回路の適切な電源配線レイアウトを容易かつ短期間で実現すること。【解決手段】設計支援装置４００は、レイアウトデータの中から抽出部４０１により隣接しあうマクロの組み合わせを抽出し、レイアウトデータに含まれているＲＯＷ領域の中から、抽出された組み合わせを構成するマクロ間の領域を特定部４０２により特定する。特定されたＲＯＷ領域から上方の投影領域内において、最下層よりも上の特定の配線層の電源配線を検出部４０３により検出する。挿入した電源配線を伸張したときにマクロが重複するか否かを判断部４０５により判断する。重複しないと判断されると接続部４０６により挿入した電源配線と上位層電源配線を接続する。そして、特定の配線層の電源配線が検出されなかった領域と電源配線を挿入・接続したレイアウトデータを出力部４０７により出力する。【選択図】図４
2010152644.tif 000002
【特許請求の範囲】
【請求項１】
マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータを記憶する記憶装置にアクセス可能なコンピュータが、
前記レイアウトデータの中から隣接しあうマクロの組み合わせを抽出する抽出工程と、
前記レイアウトデータに含まれているＲＯＷ領域の中から、前記抽出工程によって抽出された組み合わせを構成するマクロ間の領域を特定する特定工程と、
前記特定工程によって特定された領域から上方の投影領域内において、前記レイアウトデータの最下層よりも上の特定の配線層の電源配線を検出する検出工程と、
前記検出工程によって前記特定の配線層の電源配線が検出されなかった領域を出力する出力工程と、
を実行することを特徴とする設計支援方法。
【請求項２】
前記コンピュータが、
前記特定の配線層の電源配線が検出されなかった領域に前記ＲＯＷ領域に接続可能な電源配線を挿入する挿入工程と、
前記挿入工程により挿入した電源配線を伸長することにより、前記特定の配線層の電源配線と接続する接続工程と、を実行し、
前記出力工程は、
前記接続工程によって前記ＲＯＷ領域に接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする請求項１に記載の設計支援方法。
【請求項３】
前記コンピュータが、
前記ＲＯＷ領域に接続可能な電源配線を伸長することにより、前記組み合わせを構成するマクロ以外の他のマクロと重複するか否かを判断する判断工程を実行し、
前記挿入工程は、
前記判断工程によって前記他のマクロと重複すると判断された場合、前記特定の配線層の電源配線が検出されなかった領域のうち前記ＲＯＷ領域に接続可能な電源配線（以下、「第１の接続可能な電源配線」という）から上方の領域内において、前記第１の接続可能な電源配線に接続可能な第２の電源配線を挿入し、
前記出力工程は、
前記接続工程によって前記ＲＯＷ領域に接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする請求項２に記載の設計支援方法。
【請求項４】
マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータにアクセス可能なコンピュータが、
前記レイアウトデータに含まれる各マクロに接続指定されている配線層を特定する特定工程と、
前記レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域に前記特定工程によって特定された各マクロに接続指定されている配線層の電源配線がないマクロを抽出する抽出工程と、
前記接続指定されている配線層の電源配線群の中から、前記抽出されたマクロを挟む電源配線の組み合わせを検出する検出工程と、
前記検出工程によって検出された検出結果を出力する出力工程と、
を実行することを特徴とする設計支援方法。
【請求項５】
前記コンピュータが
前記抽出されたマクロの上方の投影領域に、前記抽出されたマクロに接続可能な電源配線を挿入する挿入工程と、
前記挿入工程により挿入された電源配線を伸長することにより、前記特定の配線層の電源配線と接続する接続工程と、を実行し、
前記出力工程は、
前記接続工程によって前記抽出されたマクロに接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする請求項４に記載の設計支援方法。
【請求項６】
前記コンピュータが
前記抽出されたマクロに接続可能な電源配線を伸長することにより、他のマクロと重複するか否かを判断する判断工程を実行し、
前記挿入工程は、
前記判断工程によって前記他のマクロと重複すると判断された場合、前記特定の配線層の電源配線が検出されなかった領域のうち前記抽出されたマクロに接続可能な電源配線（以下、「第１の接続可能な電源配線」という）から上方の領域内において、前記第１の接続可能な電源配線に接続可能な第２の電源配線を挿入し、
前記出力工程は、
前記接続工程によってマクロに接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする請求項５に記載の設計支援方法。
【請求項７】
マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータの中から隣接しあうマクロの組み合わせを抽出する抽出手段と、
前記レイアウトデータに含まれているＲＯＷ領域の中から、前記抽出手段によって抽出された組み合わせを構成するマクロ間の領域を特定する特定手段と、
前記特定手段によって特定された領域から上方の投影領域内において、前記レイアウトデータの最下層よりも上の特定の配線層の電源配線を検出する検出手段と、
前記検出手段によって前記特定の配線層の電源配線が検出されなかった領域を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項８】
マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータに含まれる各マクロに接続指定されている配線層を特定する特定手段と、
前記レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域に前記特定手段によって特定された各マクロに接続指定されている配線層の電源配線がないマクロを抽出する抽出手段と、
前記接続指定されている配線層の電源配線群の中から、前記抽出されたマクロを挟む電源配線の組み合わせを検出する検出手段と、
前記検出手段によって検出された検出結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路の電源配線を実行するための設計支援方法および設計支援装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路のレイアウト設計において、マクロの配置位置を決定後、電源配線を配線層ごとに一定間隔で自動的に行っている。これにより、電源配線が未配線となるＲＯＷ領域やマクロが発生し、電源配線の挿入・接続処理を手動で行っていた。
【０００３】
そのため、手動による電源配線の挿入し忘れや、接続間違いを抑制するため、電源配線終了後に結線確認、さらには電流密度および電圧低下量をシミュレーションする電源網解析を実施し、電源配線の修正が必要な箇所を検索することで、配線を修正する技術が知られている（たとえば、下記特許文献１を参照。）。
【０００４】
【特許文献１】特開平１０−１９９９８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した電源配線の挿入・接続処理を手動で行う従来技術では、手動による電源配線をレイアウトする手間が生じるという問題点があった。
【０００６】
また、電源配線終了後に行う結線確認では、結線されていない箇所は検出しても、電圧低下する箇所は検出できない。電源低下を検出するための電源網解析では、電源配線の抵抗値、容量値の抽出、消費電力計算の処理に時間が掛かる。そのため電源修正の都度、レイアウト設計の手戻りが生じ、設計者の負担が増大するとともに、レイアウト設計期間の長期化を招くという問題点があった。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、半導体集積回路の適切な電源配線レイアウトを容易かつ短期間で実現することができる設計支援方法および設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、第１の設計支援方法および設計支援装置は、マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータにアクセスし、レイアウトデータの中から隣接しあうマクロの組み合わせを抽出し、レイアウトデータに含まれているＲＯＷ領域の中から、抽出された組み合わせを構成するマクロ間の領域を特定し、特定された領域から上方の投影領域内において、レイアウトデータの最下層よりも上の特定の配線層の電源配線を検出し、特定の配線層の電源配線が検出されなかった領域を出力することを要件とする。
【０００９】
第１の設計支援方法および設計支援装置によれば、一定間隔で電源配線を行うことにより電源配線が未配線となるＲＯＷ領域を自動検出することができる。また、検出したＲＯＷ領域に電源供給するために必要な電源配線を挿入・接続することができる。
【００１０】
また、第２の設計支援方法および設計支援装置は、マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータにアクセスし、レイアウトデータに含まれる各マクロに接続指定されている配線層を特定し、レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域に特定された各マクロに接続指定されている配線層の電源配線がないマクロを抽出し、接続指定されている配線層の電源配線群の中から、抽出されたマクロを挟む電源配線の組み合わせを検出し、検出された検出結果を出力することを要件とする。
【００１１】
第２の設計支援方法および設計支援装置によれば、一定間隔で電源配線を行うことにより電源配線が未配線となるマクロを自動検出することができる。また、検出したマクロに電源供給するために必要な電源配線を挿入・接続することができる。
【発明の効果】
【００１２】
第１および第２の設計支援方法および設計支援装置によれば、半導体集積回路の適切な電源配線レイアウトを容易かつ短期間で実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、第１および第２の設計支援方法および設計支援装置の好適な実施の形態を詳細に説明する。本実施の形態では半導体集積回路の適切な電源配線レイアウトを容易かつ短期間で実現する。その場合、マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータに対して、１つは、電源配線の未配線により電源供給がされていないＲＯＷ領域を検出し、当該ＲＯＷ領域に電源配線を行う。もう１つは、電源配線の未配線により電源供給がされていないマクロを検出し、当該マクロに電源配線を行う。以下、前者を実施の形態１で説明し、後者を実施の形態２で説明する。
【００１４】
（実施の形態１の概要）
まず、実施の形態１について説明する。実施の形態１では、レイアウトデータに存在するＲＯＷ領域の中から、電源配線の未配線により電源供給がされていないＲＯＷ領域を検出する。検出ＲＯＷ領域の上方に接続対象となる電源配線が存在しない場合、検出ＲＯＷ領域には電源供給されないこととなる。したがって、手作業で電源供給がされていないＲＯＷ領域を探す手間を省くことができる。さらに、電源供給がされていないＲＯＷ領域を早期に発見することができる。
【００１５】
また、このような電源配線が接続されていない検出ＲＯＷ領域に電源配線を自動挿入することで、必要とされていた箇所に電源配線を配線することができ、適切な電源供給を行うことができる。
【００１６】
（レイアウトデータ）
図１は、半導体集積回路の電源配線のレイアウトデータを示す説明図である。図１の電源配線レイアウトデータ１００では、層Ａの電源配線１０２、層Ｂの電源配線１０３、層Ｃの電源配線１０４が形成されている。この３つの層の電源配線は、それぞれの層ごとに一定の間隔により配置されている。電源配線は、下の階層から層Ａの電源配線１０２、層Ｂの電源配線１０３、層Ｃの電源配線１０４の順に配置されている。
【００１７】
また、ＲＯＷ領域１０１はスタンダードセルの配置領域である。ＲＯＷ領域１０１に配置されるスタンダードセルは、最下層の電源配線と接続される。この最下層の電源配線と接続される上位層の電源配線（特定の層の電源配線）が、層Ａの電源配線１０２である。
【００１８】
電源配線は、下の層から上の層まで交互に、Ｘ軸方向とＹ軸方向に平行となるよう配線される。たとえば、最下層の電源配線がＸ軸方向に平行であると、次の層Ａの電源配線１０２はＹ軸方向に平行である。そして、最下層の電源配線と層Ａの電源配線１０２は交差する。同電源となる２つの層の電源配線には、その交差する箇所にビア１１２が配置されている。同電源となる２つの層の電源配線は、ビア１１２を介して接続されている。層Ａの電源配線１０２と層Ｂの電源配線１０３、層Ｂの電源配線１０３と層Ｃの電源配線１０４も同様に配置・接続されている。
【００１９】
レイアウトデータ１００で使用されているマクロは、マクロ１１１とマクロ１１０である。マクロ１１０は、層Ｂより下位の層の配線により内部が構成されている。したがって、層Ａの電源配線１０２と層Ｂの電源配線１０３は、マクロ１１０の上を横切っていない。一方、マクロ１１１は、層Ａより下位の層の配線により内部が構成されている。したがって、層Ａの電源配線１０２は、マクロ１１１の上を横切っている。マクロ１０８とマクロ１０９（点線の□で囲われたマクロ）はマクロ１１１と同じ配線層までで構成されたマクロである。
【００２０】
また、マクロ１０８とマクロ１０９は、電源配線が未配線なマクロである。層Ａの電源配線１０２はマクロ１０８とマクロ１０９の上を通っていない。そのため、マクロの電源端子が上層の電源配線と接続されていない。したがって、マクロ１０８とマクロ１０９に電源供給がされていないため、マクロ１０８とマクロ１０９の動作に不具合が生じる。
【００２１】
後述する本実施の形態２では、レイアウトデータ１００に含まれるマクロの中からマクロ１０８とマクロ１０９（点線の□で囲われたマクロ）を抽出し、電源配線を行う。
【００２２】
また、ＲＯＷ領域１０１内の一部のＲＯＷ領域１０６と一部のＲＯＷ領域１０７（点線の□で囲われたＲＯＷ領域）は、電源配線が未接続な領域である。ＲＯＷ領域１０６とＲＯＷ領域１０７の領域はマクロに挟まれた領域、かつ層Ａの電源配線１０２が上を通っていない領域である。そのため、最下層の電源配線は上層の電源配線と接続されていない。したがって、この領域に電源供給がされていないため、スタンダードセルを配置してしまうと、当該スタンダードセルの動作に不具合が生じる。
【００２３】
そのため、実施の形態１では、レイアウトデータ１００に含まれるＲＯＷ領域１０１の中からＲＯＷ領域１０６とＲＯＷ領域１０７（点線で囲われたＲＯＷ領域）を検出し、電源配線を行う。
【００２４】
（物理情報）
図２は、レイアウトデータの物理情報の一例を示す説明図である。たとえば、物理情報２００には、電源配線接続情報２０１と、マクロ配置情報２０２と、各マクロの使用配線層範囲情報２０３が記述されている。電源配線接続情報２０１では、各配線のＭＥＴＡＬ層番号、配線幅、配線の始点座標（Ｘ，Ｙ）と終点座標（Ｘ，Ｙ）が記述されている。物理情報２００では、層Ａの電源配線１０２がＭＥＴＡＬ４、層Ｂの電源配線１０３がＭＥＴＡＬ５、層Ｃの電源配線１０４がＭＥＴＡＬ６となっている。
【００２５】
なお、物理情報２００は後述するＲＯＭ、ＲＡＭ、磁気ディスク、光ディスクなどの記憶装置に記憶されている。
【００２６】
ここで、層Ａの電源配線１０２と層Ｂの電源配線１０３の交差している情報を例に挙げると、ＭＥＴＡＬ４が幅を５［μｍ］で、始点座標（１００，７０）から終点座標（１００，１６５）まで配線されている。そして、ＭＥＴＡＬ５が幅を５［μｍ］で、始点座標（７０，１００）から終点座標（４５０，１００）まで配線されている。ＶＩＡ４５が、座標（１００，１００）の位置で２つの配線を接続している。
【００２７】
つぎに、たとえば、マクロ配置情報２０２には、マクロの配置位置が記述されている。ＲＡＭのマクロであるＲＡＭ＿ＭＡＣＲＯ１は、原点に近いマクロの端の座標を（８０，３２０）として配置されている。そして、各マクロの使用配線層範囲情報２０３には、使用配線層範囲とマクロのサイズが記述されている。ＲＡＭ＿ＭＡＣＲＯ１は、ＭＥＴＡＬの層１〜３の配線を使用している。したがって、ＲＡＭ＿ＭＡＣＲＯ１は、層４の電源配線と接続することにより電源供給を得られる。
【００２８】
また、ＭａｃｒｏＸはマクロのＸ方向のサイズである。ＭａｃｒｏＹはマクロのＹ方向のサイズである。よって、原点に近いマクロの端の座標とマクロのサイズからマクロの端のすべての座標を算出することができる。
【００２９】
なお、マクロ１１０の内部は、層Ｃより下の層の配線を用いて配線されている。よって、マクロ１１０は、層Ｃの電源配線１０４と接続することにより電源供給を得られることとする。また、マクロ１１１の内部は、層Ａより下の層の配線を用いて配線されている。よって、マクロ１１１は、層Ａの電源配線１０２と接続することにより電源供給を得られることとする。
【００３０】
（設計支援装置のハードウェア構成）
図３は、実施の形態１にかかる設計支援装置のハードウェア構成を示すブロック図である。図３において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００３１】
ここで、ＣＰＵ３０１は、設計支援装置の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００３２】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３３】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３４】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３５】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３６】
スキャナ３１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３７】
（設計支援装置の機能的構成）
図４は、実施の形態１にかかる設計支援装置の機能的構成を示すブロック図である。設計支援装置４００は、抽出部４０１と、特定部４０２と、検出部４０３と、挿入部４０４と、判断部４０５と、接続部４０６と、出力部４０７と、を含む構成である。
【００３８】
なお、抽出部４０１と、特定部４０２と、検出部４０３と、挿入部４０４と、判断部４０５と、接続部４０６と、出力部４０７は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、その機能を実現する。
【００３９】
抽出部４０１は、隣接しあうマクロの組み合わせを抽出する。具体的には、たとえば、ＣＰＵ３０１が、物理情報２００のマクロ配置情報２０２の中から各マクロの座標を検索する。そして、検索した座標により各マクロと隣接するマクロとをマクロの組み合わせとして抽出する。抽出されたマクロの組み合わせは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に保持される。
【００４０】
つぎに、特定部４０２は、抽出部４０１により抽出されたマクロの組み合わせを構成するマクロ間の領域を特定する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置に保持されている、抽出したマクロの組み合わせを読み出す。つぎに、隣接するマクロの側面の辺の端点を検出する。そして、２つのマクロに挟まれた４つの端点で構成される領域を特定する。特定された領域は、ＲＯＷ領域１０１内の領域である。なお、特定されたＲＯＷ領域はＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に保持される。図５−１を用いて、ＲＯＷ領域の特定方法を説明する。
【００４１】
図５−１は、特定部４０２により特定されたＲＯＷ領域１０６を示す説明図である。ここでは、理解の容易化のため、層Ｃの電源配線１０４やビアを省略している。隣接しあうマクロ１１１が、抽出部４０１により抽出されたマクロの組み合わせの１つである。この組み合わせのマクロ間に挟まれた領域がＲＯＷ領域１０６である。したがって、特定部４０２は、一方のマクロ１１１の辺の端点ａ，ｄの座標と、もう一方のマクロ１１１の辺の端点ｂ，ｃを求めることで、ＲＯＷ領域１０６を特定する。
【００４２】
図４に戻って、検出部４０３は、特定部４０２により特定された領域から上方の投影領域内において、最下層の電源配線よりも上の特定の配線層の電源配線を検出する。特定の配線層の電源配線とは、最下層の電源配線と接続される電源配線である。本例では、層Ａの電源配線１０２となる。具体的には、たとえば、ＣＰＵ３０１が、特定されたＲＯＷ領域内の座標である層Ａの電源配線１０２を物理情報２００の電源配線接続情報２０１の中から検出する。
【００４３】
層Ａの電源配線１０２が検出されなかったＲＯＷ領域は、電源配線が接続されていないために電源供給がされていないＲＯＷ領域である。実施の形態１では、検出部４０３により電源配線が検出されなかったＲＯＷ領域が電源配線の挿入・接続処理の対象となる領域である。なお、特定の配線層の電源配線が検出されなかったＲＯＷ領域の情報はＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に保持される。図５−２、図６−１および図６−２を用いて、特定の電源配線が検出されない領域を説明する。
【００４４】
図５−２は、ＲＯＷ領域１０６の上方の投影領域の３次元イメージ図である。ここでは、理解の容易化のため、層Ｃの電源配線１０４やビアを省略している。たとえば、ＲＯＷ領域１０６の上方の投影領域は、四角い点線の箱である。検出部４０３は、この四角い点線の箱の領域の中に、層Ａの電源配線１０２が存在するか否かを検出する。
【００４５】
四角い点線の箱には、層Ａの電源配線１０２が存在しない。つまり、ＲＯＷ領域１０６は、上方の投影領域に層Ａの電源配線１０２が検出されない領域である。したがって、ＲＯＷ領域１０６は電源配線の未配線により電源供給がされていない領域である。
【００４６】
図６−１は、ＲＯＷ領域１０７の上方の投影領域の３次元イメージ図である。たとえば、ＲＯＷ領域１０７は、隣接しあうマクロ１１１に挟まれた領域である。ＲＯＷ領域１０７の上方の投影領域は、四角い点線の箱である。検出部４０３は、この四角い点線の箱の領域の中に、層Ａの電源配線１０２が存在するか否かを検出する。つぎに、図６−２を用いて、層Ａの電源配線１０２が検出されない領域を示す。
【００４７】
図６−２は、検出部４０３により電源配線が検出されなかったＲＯＷ領域１０７を示す説明図である。ＲＯＷ領域１０７は、ｅ，ｈ，ｇ，ｆの４つの点に囲われた領域である。検出部４０３は、物理情報２００の電源配線接続情報２０１の中からＲＯＷ領域１０７内の座標である層Ａの電源配線１０２を検出する。ＲＯＷ領域１０７には、層Ａの電源配線１０２が重なっていない。よって、ＲＯＷ領域１０７は、上方の投影領域の中から層Ａの電源配線１０２が検出されなかった領域である。したがって、ＲＯＷ領域１０７は電源配線の未配線により電源供給がされていない領域である。つぎに、図７を用いて、特定の層の電源配線が検出される領域を説明する。
【００４８】
図７は、検出部４０３により電源配線が検出されたＲＯＷ領域１０５を示す説明図である。ＲＯＷ領域１０５は、隣接しあうマクロ１１０に挟まれた領域である。また、ｊ，ｋ，ｌ，ｍの４つの点に囲われた領域である。検出部４０３は、物理情報２００の電源配線接続情報２０１の中からＲＯＷ領域１０５内の座標である層Ａの電源配線１０２を検出する。ＲＯＷ領域１０５には、層Ａの電源配線１０２が重なっている。よって、ＲＯＷ領域１０５は、上方の投影領域の中から層Ａの電源配線１０２が検出される領域である。したがって、ＲＯＷ領域１０５は電源供給がされている領域である。
【００４９】
このように、レイアウトデータ１００に含まれているＲＯＷ領域１０１の中から、電源配線が存在する領域が自動検出される。これにより、手作業で電源供給がされていないＲＯＷ領域（たとえば、ＲＯＷ領域１０６およびＲＯＷ領域１０７）を探す手間を省くことができる。また、電源供給がされていないＲＯＷ領域を早期に発見することができる。したがって、半導体集積回路の適切な電源配線レイアウトを容易かつ短期間で実現することができる。
【００５０】
図４に戻って、挿入部４０４は、検出部４０３により電源配線が検出されなかったＲＯＷ領域に、接続可能な電源配線を挿入する。具体的には、たとえば、ＣＰＵ３０１が、物理情報２００の電源配線接続情報２０１の中から層Ａの電源配線１０２の配線幅を読み出す。そして、挿入する層Ａの電源配線１０２の幅を読み出した配線幅に設定する。つぎに、始点と終点のＸ座標をＲＯＷ領域の中心のＸ座標に設定する。
【００５１】
さらに、ＣＰＵ３０１は、始点のＹ座標をＲＯＷ領域の一番小さいＹ座標の値に設定する。そして、終点のＹ座標をＲＯＷ領域の一番大きいＹ座標の値に設定する。つぎに、設定した層Ａの電源配線１０２の情報を物理情報２００の電源配線接続情報２０１に記述する。図８−１に特定の層の電源配線が挿入された例を示す。
【００５２】
図８−１は、層Ａの電源配線１０２が挿入されたＲＯＷ領域１０６を示す説明図である。ここでは、理解の容易化のため、層Ｃの電源配線１０４を省略している。層Ａの電源配線１０２はＹ軸方向に挿入されている。
【００５３】
たとえば、挿入部４０４は、物理情報２００の電源配線接続情報２０１の中から他の層Ａの電源配線１０２の幅５［μｍ］を読み出す。つぎに、挿入する層Ａの電源配線１０２の幅を５［μｍ］に設定する。そして、始点と終点のＸ座標を（ｂのＸ座標−ａのＸ座標）／２とする。さらに、始点のＹ座標をａとｂの座標で大きい方の値とする。つぎに、終点のＹ座標をｃとｄの座標で小さい方の値とする。そして、層Ａの電源配線１０２を挿入する。
【００５４】
このように、挿入部４０４は、層Ａの電源配線１０２を挿入することにより、電源供給がされていないＲＯＷ領域にのみ電源配線を挿入することができる。したがって、足りない配線だけを挿入することができ、領域内に配線を効率よく行うことができる。
【００５５】
図４に戻って、判断部４０５は、挿入部４０４により挿入された電源配線を伸張することにより、マクロの組み合わせ以外の他のマクロと重複するか否かを判断する。他のマクロと重複する場合とは、挿入した電源配線の延長上に同層以上の配線を使用しているマクロが存在している場合である。たとえば、後述するＲＯＷ領域１０６に挿入される層Ａの電源配線１０２は、伸張されても他のマクロと重複しない。一方、たとえば、後述するＲＯＷ領域１０７に挿入される層Ａの電源配線１０２は、伸張されると他のマクロと重複する。
【００５６】
具体的には、たとえば、ＣＰＵ３０１が、挿入した層Ａの電源配線１０２の始点のＹ軸延長上に存在するマクロを物理情報２００のマクロ配置情報２０２の中から検出する。そして、マクロが検出されない場合、他のマクロと重複しないと判断する。
【００５７】
一方、マクロが検出された場合、検出したマクロの使用層範囲の最大層番号を物理情報２００の各マクロの使用配線層範囲情報２０３の中から読み出す。そして、読み出した最大層番号が層Ａの番号よりも小さい場合、他のマクロと重複しないと判断する。また、読み出した最大層番号が層Ａの番号以上の場合、以下の処理をする。
【００５８】
たとえば、ＣＰＵ３０１が、検出したマクロから挿入した層Ａの電源配線１０２の始点までの長さを算出する。その結果をＥ［μｍ］とする。つぎに、挿入した層Ａの電源配線１０２の始点のＹ軸延長上に存在する層Ｂの電源配線１０３を、物理情報２００の電源配線接続情報２０１の中から検出する。そして、一番短い距離に存在する層Ｂの電源配線１０３から挿入した層Ａの電源配線１０２の始点までの距離を算出する。その結果をＤ［μｍ］とする。
【００５９】
そして、ＣＰＵ３０１が、ＥがＤより大きい場合、他のマクロと重複しないと判断する。一方、ＥがＤ以下の場合、他のマクロと重複すると判断する。さらに、挿入した層Ａの電源配線１０２の終点の延長上において、他のマクロと重複するか否かを同様の処理を実行し判断する。
【００６０】
たとえば、ＣＰＵ３０１は、挿入した電源配線が上位層の電源配線と接続されるまで、挿入部４０４と判断部４０５の処理を繰り返し行う。これにより、マクロの配置位置を意識することなく、電源配線をＲＯＷ領域に接続することができる。
【００６１】
また、挿入された電源配線を伸張してマクロと重複するか判断する処理は、既存のレイアウト設計ツールにより実現することもできる。
【００６２】
つぎに、接続部４０６は、判断部４０５により他のマクロと重複しないと判断された場合、層Ａの電源配線１０２と層Ｂの電源配線１０３を接続する。具体的には、たとえば、ＣＰＵ３０１が、挿入した層Ａの電源配線１０２の始点と終点のそれぞれの延長上において、層Ｂの電源配線１０３と交差する箇所を物理情報２００の電源配線接続情報２０１の中から検出する。つぎに、挿入した層Ａの電源配線１０２の始点と終点の座標をそれぞれの交差する箇所の座標に設定する。そして、交差する箇所にビア１１２を配置する。図８−２に、判断部４０５により他のマクロと重複しないと判断された場合の配線の接続例を示す。
【００６３】
図８−２は、電源配線が接続されたＲＯＷ領域１０６を示す説明図である。ここでは、理解の容易化のため、層Ｃの電源配線１０４を省略している。挿入された層Ａの電源配線１０２の始点および終点の延長上にはマクロが存在しない。そのため、層Ａの電源配線１０２は他のマクロと重複しないと判断される。そして、挿入された層Ａの電源配線１０２は、一番近い距離に存在する層Ｂの電源配線１０３と交差する箇所まで伸張される。さらに、層Ａの電源配線１０２と層Ｂの電源配線１０３は、ビア１１２を介して接続される。つぎに、図９−１〜図９−３に他のマクロと重複すると判断された場合の配線の接続例を示す。
【００６４】
図９−１は、層Ａの電源配線１０２が挿入されたＲＯＷ領域１０７を示す説明図である。図９−１では、ＲＯＷ領域１０６に電源配線が挿入された処理と同様の処理により、層Ａの電源配線１０２がＲＯＷ領域１０７に挿入されている。
【００６５】
図９−２は、層Ｂの電源配線１０３が挿入されたＲＯＷ領域１０７を示す説明図である。挿入された層Ａの電源配線１０２の始点および終点の延長上にはマクロ１１０が存在する。マクロ１１０の内部は、層Ｃより下の層の配線を用いて配線されている。そのため、判断部４０５により、挿入された層Ａの電源配線１０２は伸張されると他のマクロと重複すると判断される。
【００６６】
よって、接続部４０６は、挿入された層Ａの電源配線１０２と層Ｂの電源配線１０３を接続できない。そのため、層Ａの電源配線１０２の挿入と同様の処理により層Ｂの電源配線１０３が挿入される。
【００６７】
図９−３は、電源配線が接続されたＲＯＷ領域１０７を示す説明図である。挿入された層Ｂの電源配線１０３の始点および終点の延長上には他のマクロが存在しない。図９−３では、挿入された層Ｂの電源配線１０３の延長上にはマクロ１１１が存在しているようにみえる。実際には、マクロ１１１の内部は、層Ａより下の層の配線を用いて配線されている。そのため、層Ｂの電源配線１０３の延長上にはマクロ１１１が存在しない。
【００６８】
そのため、判断部４０５は、挿入された層Ｂの電源配線１０３が伸張しても他のマクロと重複しないと判断する。そして、挿入された層Ｂの電源配線１０３が層Ｃの電源配線１０４と交差する箇所まで伸張される。さらに、挿入された層Ｂの電源配線１０３と層Ｃの電源配線１０４は、ビア１１２を介して接続される。そして、先に挿入された層Ａの電源配線１０２と挿入された層Ｂの電源配線１０３は、ビア１１２を介して接続される。
【００６９】
これにより、電源配線の未配線により電源供給がされていないＲＯＷ領域に電源配線が接続される。そして、手作業により電源配線を挿入する手間を省くことができる。
【００７０】
したがって、半導体集積回路の電源配線レイアウトを短期間で実現することができる。また、電源供給がされていないことにより起因する不具合をなくすことができる。
【００７１】
図４に戻って、出力部４０７は、検出部４０３により電源配線が検出されなかったＲＯＷ領域を出力する。さらに、挿入部４０４と接続部４０６によりそのＲＯＷ領域に電源配線を挿入・接続された結果を出力する。具体的には、たとえば、ＣＰＵ３０１が、ＲＯＷ領域の座標を出力する。また、そのＲＯＷ領域に電源配線の挿入と接続を行ったレイアウトデータを出力する。なお、出力されたＲＯＷ領域の座標とレイアウトデータは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。または、ディスプレイ３０８に表示される。
【００７２】
（設計支援装置の設計支援処理手順）
つぎに、実施の形態１にかかる設計支援装置４００の設計支援処理手順について説明する。図１０は、実施の形態１にかかる設計支援装置４００の設計支援処理手順を示すフローチャートである。図１０において、まず、マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータの中から、電源配線が未配線であるＲＯＷ領域検出処理（ステップＳ１００１）を行う。つぎに、抽出したＲＯＷ領域への電源配線挿入接続処理（ステップＳ１００２）を行い、一連の処理を終了する。
【００７３】
つぎに、上述したＲＯＷ領域検出処理（ステップＳ１００１）について説明する。図１１は、ＲＯＷ領域検出処理手順を示すフローチャートである。まず、抽出部４０１により、隣接しあうマクロの組み合わせを抽出し（ステップＳ１１０１）、特定部４０２により、ＲＯＷ領域の中からマクロ間の領域を特定する（ステップＳ１１０２）。特定したＲＯＷ領域の中で、電源配線の検出処理をしていない領域はあるか否かを判断する（ステップＳ１１０３）。
【００７４】
特定したＲＯＷ領域の中で、電源配線の検出処理をしていない領域はないと判断された場合（ステップＳ１１０３：Ｎｏ）、つぎに、ステップＳ１００２に移行する。特定したＲＯＷ領域の中で、電源配線の検出処理をしていない領域はあると判断された場合（ステップＳ１１０３：Ｙｅｓ）、検出部４０３により、特定したＲＯＷ領域の上方の投影領域内に、特定の配線層の電源配線を検出し（ステップＳ１１０４）、判断部４０５により特定の電源配線が検出されたか否かを判断する（ステップＳ１１０５）。
【００７５】
特定の電源配線が検出されたと判断された場合（ステップＳ１１０５：Ｙｅｓ）、ステップＳ１１０３に移行する。一方、特定の電源配線が検出されなかったと判断された場合（ステップＳ１１０５：Ｎｏ）、ＲＯＷ領域の情報を保存し（ステップＳ１１０６）、ステップＳ１１０３に移行する。
【００７６】
つぎに、上述した電源配線挿入接続処理の（ステップＳ１００２）について説明する。図１２は、電源配線挿入接続処理を示すフローチャートである。まず、ｔ＝最大の使用層番号（ステップＳ１２０１）とする。最大の使用層番号とは、電源配線として使用している層番号の中で一番階層の高い層の番号である。つぎに、ｉ＝特定の層番号とし（ステップＳ１２０２）とする。そして、検出したＲＯＷ領域の中で、電源配線の挿入未処理の領域はあるか否かを判断する（ステップＳ１２０３）。検出したＲＯＷ領域の中で、電源配線の挿入未処理の領域はあると判断された場合（ステップＳ１２０３：Ｙｅｓ）、つぎに挿入部４０４により、ＲＯＷ領域の上方の投影領域内にｉ層の電源配線を挿入する（ステップＳ１２０４）。
【００７７】
つぎに、判断部４０５により、挿入した電源配線の延長上にマクロが重複しているか否かを判断する（ステップＳ１２０５）。挿入した電源配線の延長上にマクロが重複していないと判断された場合（ステップＳ１２０５：Ｎｏ）、接続部４０６により、挿入した電源配線を延長し、上位層の電源配線と接続し（ステップＳ１２０６）、ステップＳ１２０２に戻る。
【００７８】
また、挿入した電源配線の延長上にマクロが重複していると判断された場合（ステップＳ１２０５：Ｙｅｓ）、ｉ＝ｉ＋１を行い（ステップＳ１２０７）、ｉ≦ｔを判断する（ステップＳ１２０８）。ｉ＞ｔの場合（ステップＳ１２０８：Ｎｏ）、電源配線を接続できないＲＯＷ領域として領域を保存し（ステップＳ１２０９）、ステップＳ１２０２に戻る。また、ｉ≦ｔの場合（ステップＳ１２０８：Ｙｅｓ）、ステップＳ１２０４へ戻る。
【００７９】
一方、検出したＲＯＷ領域の中で、電源配線の挿入未処理の領域はないと判断された場合（ステップＳ１２０３：Ｎｏ）、電源配線を挿入したレイアウトデータを保存し（ステップＳ１２１０）、一連の流れを終了する。
【００８０】
実施の形態１によれば、電源配線の未配線により電源供給がされていないＲＯＷ領域を自動検出することができる。また、検出したＲＯＷ領域に電源供給するために必要な電源配線を挿入・接続することができる。
【００８１】
（実施の形態２の概要）
つぎに、実施の形態２について説明する。実施の形態１では、レイアウトデータに存在するＲＯＷ領域の中から、電源配線の未配線により電源供給がされていないＲＯＷ領域を検出したが、実施の形態２では、レイアウトデータに存在するマクロの中から、電源配線の未配線により電源供給がされていないマクロを抽出する。抽出マクロの上方にマクロの電源と接続する電源配線が存在しない場合、抽出マクロには電源供給されないこととなる。したがって、手作業で電源供給がされていないマクロを探す手間を省くことができる。さらに、電源供給がされていないマクロを早期に発見することができる。
【００８２】
また、このような電源配線がない抽出マクロに電源配線を自動挿入することで、必要とされていた箇所に電源配線を配線することができ、適切な電源供給を行うことができる。また、実施の形態２では、実施の形態１で用いたレイアウトデータ１００と物理情報２００を用いて説明する。そのほか、実施の形態１で説明した構成と同一構成には同一符号を付し、その説明を省略する。
【００８３】
（設計支援装置の機能的構成）
図１３は、実施の形態２にかかる設計支援装置の機能的構成を示すブロック図である。設計支援装置１３００は、特定部１３０１と、抽出部１３０２と、検出部１３０３と、挿入部１３０４と、判断部１３０５と、接続部１３０６と、出力部１３０７と、を含む構成である。
【００８４】
なお、特定部１３０１と、抽出部１３０２と、検出部１３０３と、挿入部１３０４と、判断部１３０５と、接続部１３０６と、出力部１３０７は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、その機能を実現する。
【００８５】
特定部１３０１は、レイアウトデータに含まれている各マクロと接続可能な電源配線を特定する。具体的には、たとえば、ＣＰＵ３０１が、レイアウトデータ内のマクロの使用層情報を物理情報２００の各マクロの使用配線層範囲情報２０３の中から探索する。そして、マクロ内で使用している最大層よりも上位の層であり、かつ使用している層の中で一番層間が近い層をマクロと接続可能な電源配線の層番号とする。
【００８６】
実際には、使用している層の中で２番目に近い層であってもマクロの電源と接続可能である。しかし、本実施の形態では、理解の容易化のために一番層間が近い層のみをマクロの電源と接続可能な電源配線の層とする。なお、特定された層番号はマクロと関連づけられＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に保持される。
【００８７】
抽出部１３０２は、レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域の中に特定部１３０１により特定された層番号の電源配線がないマクロを抽出する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして、特定された層番号を読み出す。そして、物理情報２００のマクロ配置情報２０２の中から各マクロの座標を検索する。つぎに、各マクロの座標と重なる特定された層番号の電源配線を物理情報２００の電源配線接続情報２０１の中から検索する。そして、特定された層番号の電源配線のないマクロを抽出する。
【００８８】
この抽出されたマクロが電源供給されていないマクロである。したがって、本実施の形態２では、このマクロを自動抽出する。さらに、このマクロに電源配線を自動挿入・接続する。なお、抽出されたマクロは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に保持される。
【００８９】
つぎに、検出部１３０３は、特定部１３０１により特定された層番号の電源配線群の中から、抽出されたマクロを挟む電源配線の組み合わせを検出する。具体的には、たとえば、ＣＰＵ３０１が、物理情報２００のマクロ配置情報２０２の中から抽出したマクロの座標を検出する。そして、マクロの一番小さいＸ座標（または、Ｙ座標）からＸ軸方向（または、Ｙ軸方向）のプラス方向に、一番近い距離に存在する特定した層番号の電源配線を物理情報２００の電源配線接続情報２０１の中から検出する。
【００９０】
つぎに、マクロの端からＸ軸方向（または、Ｙ軸方向）のプラス方向に、一番近い距離に存在する特定した層の電源配線を物理情報２００の電源配線接続情報２０１の中から検出する。検出した電源配線を、マクロを挟む電源配線の組み合わせとする。なお、マクロを挟む電源配線の組み合わせは、当該マクロと関連づけられＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に保持される。図１４に特定の電源配線の組み合わせの検出方法を示す。
【００９１】
図１４は、マクロ１０８を挟む特定の電源配線の組み合わせを示す説明図である。マクロ１０８の特定の電源配線は、層Ａの電源配線１０２である。マクロ１０８は、上方の投影領域の中に特定した層の電源配線が存在しないマクロである。また、マクロ１０８は、ｏ，ｐ，ｑ，ｒの点で囲われた領域である。まず、検出部１３０３は、ｏ，ｐ，ｑ，ｒの座標を算出する。
【００９２】
そして、ｏ（またはｒ）のＸ座標からマイナス方向に向かって、特定した層の電源配線で一番近い距離にある電源配線を探索する。つぎに、ｐ（またはｑ）のＸ座標からプラス方向に向かって、特定した層の電源配線で一番近い距離にある電源配線を検出する。
【００９３】
図１３に戻って、挿入部１３０４は、抽出部１３０２により抽出されたマクロの上方の投影領域に、特定部１３０１により特定された層番号の電源配線を挿入する。具体的には、たとえば、ＣＰＵ３０１が、物理情報２００の電源配線接続情報２０１の中からその他の層Ａの電源配線１０２の配線幅を読み出す。そして、挿入する層Ａの電源配線１０２の幅を読み出した配線幅に設定する。つぎに、始点と終点のＸ座標をマクロの中心のＸ座標に設定する。
【００９４】
さらに、ＣＰＵ３０１は、始点のＹ座標をマクロの一番小さいＹ座標の値に設定する。そして、終点のＹ座標をマクロの一番大きいＹ座標の値に設定する。そして、設定した層Ａの電源配線１０２の情報を物理情報２００の電源配線接続情報２０１に記述する。図１５に特定の層の電源配線の挿入の説明を示す。
【００９５】
図１５は、層Ａの電源配線１０２が挿入されたマクロ１０８を示す説明図である。層Ａの電源配線１０２はＹ軸方向に挿入されている。
【００９６】
たとえば、挿入部１３０４は、物理情報２００の電源配線接続情報２０１の中から他の層Ａの電源配線１０２の幅５［μｍ］を読み出す。つぎに、挿入する層Ａの電源配線１０２の幅を５［μｍ］に設定する。そして、始点と終点のＸ座標を（ｐのＸ座標−ｏのＸ座標）／２とする。さらに、始点のＹ座標をｏとｐの座標で大きい方の値とする。つぎに、終点のＹ座標をｑとｒの座標で小さい方の値とする。そして、層Ａの電源配線１０２を挿入する。
【００９７】
このように、挿入部１３０４は、層Ａの電源配線１０２を挿入することにより、電源供給がされていないマクロにのみ電源配線を挿入することができる。したがって、足りない配線だけを挿入することができ、領域内に配線を効率よく行うことができる。
【００９８】
図１３に戻って、判断部１３０５は、挿入部１３０４により挿入された電源配線を伸張することにより、他のマクロと重複するか否かを判断する。他のマクロと重複する場合とは、挿入した電源配線の延長上に同層以上の配線を使用しているマクロが存在している場合である。たとえば、後述するマクロ１０８に挿入される層Ａの電源配線１０２は、伸張されても他のマクロと重複しない。一方、たとえば、後述するマクロ１０９に挿入される層Ａの電源配線１０２は、伸張されると他のマクロと重複する。
【００９９】
具体的には、たとえば、ＣＰＵ３０１が、挿入した層Ａの電源配線１０２の始点のＹ軸延長上に存在するマクロを物理情報２００のマクロ配置情報２０２の中から検出する。そして、マクロが検出されない場合、他のマクロと重複しないと判断される。
【０１００】
一方、マクロが検出された場合、検出したマクロの使用層範囲の最大層番号を物理情報２００の各マクロの使用配線層範囲情報２０３の中から読み出す。つぎに、読み出した最大層番号が層Ａの番号よりも小さい場合、他のマクロと重複しないと判断される。また、読み出した最大層番号が層Ａの番号以上の場合、以下の処理をする。
【０１０１】
たとえば、ＣＰＵ３０１が、検出したマクロと挿入した層Ａの電源配線１０２の始点までの長さを算出する。その結果をＦ［μｍ］とする。つぎに、挿入した層Ａの電源配線１０２の始点の延長上に存在する層Ｂの電源配線１０３を、物理情報２００の電源配線接続情報２０１の中から検出する。そして、一番短い距離に存在する層Ｂの電源配線１０３と挿入した層Ａの電源配線１０２の始点までの距離を算出する。その結果をＧ［μｍ］とする。
【０１０２】
そして、ＦがＧより大きい場合、挿入した層Ａの電源配線１０２を伸張することにより、他のマクロと重複しないと判断される。一方、ＦがＧ以下の場合、他のマクロと重複すると判断される。さらに、挿入した層Ａの電源配線１０２の終点の延長上において、他のマクロと重複するか否かを、同様の処理を実行し判断する。
【０１０３】
たとえば、ＣＰＵ３０１は、挿入した電源配線が上位層の電源配線と接続されるまで、挿入部１３０４と判断部１３０５の処理を繰り返し行う。これにより、マクロの配置位置を意識することなく、電源配線が未配線のマクロに、電源配線を接続することができる。
【０１０４】
また、挿入された電源配線を伸張して他のマクロと重複するか判断する処理は、既存のレイアウト設計ツールにより実現することもできる。
【０１０５】
つぎに、接続部１３０６は、判断部１３０５により他のマクロと重複しないと判断された場合、層Ａの電源配線１０２と層Ｂの電源配線１０３を接続する。具体的には、たとえば、ＣＰＵ３０１が、挿入した層Ａの電源配線１０２の始点と終点のそれぞれの延長上において、層Ｂの電源配線１０３と交差する箇所を物理情報２００の電源配線接続情報２０１の中から検出する。つぎに、層Ａの電源配線１０２の始点と終点の座標をそれぞれの交差する箇所の座標に設定する。そして、交差する箇所にビア１１２を配置する。図１６に、判断部１３０５により他のマクロと重複しないと判断された場合の配線の接続例を示す。
【０１０６】
図１６は、電源配線が接続されたマクロ１０８を示す説明図である。挿入された層Ａの電源配線１０２の始点および終点の延長上には他のマクロが存在しない。そのため、層Ａの電源配線１０２は、層Ｂの電源配線１０３と交差する箇所まで伸張される。さらに、層Ａの電源配線１０２と層Ｂの電源配線１０３は、ビア１１２を介して接続される。つぎに、図１７−１〜図１７−４に他のマクロと重複すると判断された場合の配線の接続例を示す。
【０１０７】
図１７−１は、層Ａの電源配線１０２が挿入されたマクロ１０９を示す説明図である。図１７−１では、マクロ１０８に電源配線が挿入された処理と同様の処理により、層Ａの電源配線１０２がマクロ１０９の上方に挿入されている。
【０１０８】
図１７−２は、層Ｂの電源配線１０３が挿入されたマクロ１０９を示す説明図である。挿入された層Ａの電源配線１０２の始点および終点の延長上には、マクロ１１０が存在する。マクロ１１０の内部は、層Ａより下の層の配線を用いて配線されている。そのため、判断部１３０５により、他のマクロと重複すると判断される。
【０１０９】
よって、接続部１３０６は、挿入した層Ａの電源配線１０２と層Ｂの電源配線１０３とを接続できない。そのため、挿入部１３０４により、層Ａの電源配線１０２の挿入と同様の処理を用いて層Ｂの電源配線１０３が挿入される。
【０１１０】
図１７−３は、層Ｃの電源配線１０４が挿入されたマクロ１０９を示す説明図である。挿入された層Ｂの電源配線１０３の始点および終点の延長上には、マクロ１１０が存在する。マクロ１１０の内部は、層Ｂより下の層の配線を用いて配線されている。そのため、判断部１３０５により、他のマクロと重複すると判断される。
【０１１１】
よって、接続部１３０６は、挿入した層Ｂの電源配線１０３と層Ｃの電源配線１０４とを接続できない。そのため、挿入部１３０４により、層Ｂの電源配線１０３の挿入と同様の処理を用いて層Ｃの電源配線１０４が挿入される。
【０１１２】
図１７−４は、電源配線が接続されたマクロ１０９を示す説明図である。挿入された層Ｃの電源配線１０４の始点および終点の延長上にはその他のマクロが存在しない。図１７−４では、挿入された層Ｃの電源配線１０４の延長上にはマクロ１１０が存在しているようにみえる。実際には、マクロ１１０は層Ｃより下の層により内部が配線されている。そのため、挿入された層Ｃの電源配線１０４の延長上にはマクロ１１０が存在しない。
【０１１３】
そのため、判断部１３０５は、層Ｃの電源配線１０４が他のマクロと重複しないと判断する。そして、挿入された層Ｃの電源配線１０４は、層Ｂの電源配線１０３と交差する箇所まで伸張されている。さらに、挿入された層Ｃの電源配線１０４と延長上の層Ｂの電源配線１０３は、ビア１１２を介して接続される。そして、先に挿入された層Ａの電源配線１０２と挿入された層Ｂの電源配線１０３は、ビア１１２を介して接続される。さらに、挿入された層Ｂの電源配線１０３と挿入された層Ｃの電源配線１０４は、ビア１１２を介して接続される。
【０１１４】
これにより、電源配線の未配線により電源供給がされていないマクロに電源配線が接続され、電源供給がされていないことに起因する不具合がなくなる。そして、手作業により電源配線を挿入する手間を省くことができる。したがって、半導体集積回路の電源配線レイアウトを短期間で実現することができる。
【０１１５】
図１３に戻って、出力部１３０７は、検出部１３０３により検出された電源配線が未配線のマクロと当該マクロを挟む電源配線の組み合わせを出力する。さらに、挿入部１３０４と接続部１３０６により、そのマクロに電源配線を挿入・接続した結果を出力する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして、抽出したマクロの座標と当該マクロを挟む電源配線の組み合わせを出力する。また、そのマクロに電源配線の挿入と接続を行ったレイアウトデータを出力する。なお、出力結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。または、ディスプレイ３０８に表示される。
【０１１６】
（設計支援装置の設計支援処理手順）
つぎに、実施の形態２にかかる設計支援装置１３００の設計支援処理手順について説明する。図１８は、実施の形態２にかかる設計支援装置１３００の設計支援処理手順を示すフローチャートである。図１８において、まず、マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータの中から、電源配線が未配線であるマクロを抽出するマクロ抽出処理（ステップＳ１８０１）を行う。つぎに、検出したマクロに電源配線挿入接続処理（ステップＳ１８０２）を行い、一連の処理を終了する。
【０１１７】
つぎに、上述したマクロ抽出処理（ステップＳ１８０１）について説明する。図１９は、マクロ抽出処理手順を示すフローチャートである。まず、抽出処理を行っていないマクロがあるか否かを判断する（ステップＳ１９０１）。抽出処理を行っていないマクロがあると判断された場合（ステップＳ１９０１：Ｙｅｓ）、特定部１３０１により、接続指定されている配線層を特定する（ステップＳ１９０２）。つぎに、抽出部１３０２により、マクロの上方の投影領域に特定された配線層の電源配線があるか否かを判断する（ステップＳ１９０３）。マクロの上方の投影領域に特定された配線層の電源配線があると判断された場合（ステップＳ１９０３：Ｙｅｓ）、ステップＳ１９０１に戻る。
【０１１８】
また、マクロの上方の投影領域に特定された配線層の電源配線がないと判断された場合（ステップＳ１９０３：Ｎｏ）、検出部１３０３により、特定された配線層の電源配線から抽出されたマクロを挟む組み合わせを検出し（ステップＳ１９０４）、検出した電源配線の組み合わせと、抽出したマクロの情報を保存し（ステップＳ１９０５）、ステップＳ１９０１に戻る。
【０１１９】
一方、抽出処理を行っていないマクロがないと判断された場合（ステップＳ１９０１：Ｎｏ）、ステップＳ１８０２に移行する。
【０１２０】
つぎに、上述した電源配線挿入接続処理（ステップＳ１８０２）について説明する。図２０は、電源配線挿入接続処理手順を示すフローチャートである。まず、ｕ＝最大の使用層番号（ステップＳ２００１）とする。最大の使用層番号とは、電源配線として使用している層番号の中で一番階層の高い層の番号である。つぎに、抽出したマクロの中で、電源配線の挿入未処理のマクロがあるか否かを判断する（ステップＳ２００２）。挿入未処理のマクロがあると判断された場合（ステップＳ２００２：Ｙｅｓ）、ｓ＝接続可能な電源配線の層番号（ステップＳ２００３）とし、挿入部１３０４により、マクロの上方の投影領域にｓ層の電源配線を挿入する（ステップＳ２００４）。
【０１２１】
つぎに、判断部１３０５により、挿入した電源配線の延長上にマクロが重複するか否かを判断する（ステップＳ２００５）。挿入した電源配線の延長上にマクロが重複しないと判断された場合（ステップＳ２００５：Ｎｏ）、接続部１３０６により、挿入した電源配線を延長し、上位層の電源配線と接続し（ステップＳ２００６）、ステップＳ２００２に戻る。
【０１２２】
また、挿入した電源配線の延長上にマクロが重複していると判断された場合（ステップＳ２００５：Ｙｅｓ）、ｓ＝ｓ＋１を行い（ステップＳ２００７）、ｓ≦ｕを判断する（ステップＳ２００８）。ｓ＞ｕの場合（ステップＳ２００８：Ｎｏ）、電源配線を接続不可マクロとして保存し（ステップＳ２００９）、ステップＳ２００２に戻る。ｓ≦ｕの場合（ステップＳ２００８：Ｙｅｓ）、ステップＳ２００４へ戻る。
【０１２３】
一方、検出したマクロの中で、電源配線の挿入未処理のマクロはないと判断された場合（ステップＳ２００２：Ｎｏ）、電源配線を挿入したレイアウトデータを保存し（ステップＳ２０１０）、一連の流れを終了する。
【０１２４】
実施の形態２では、マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータにアクセス可能なコンピュータを、レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域にマクロに接続する電源配線がないマクロを抽出し、検出された検出結果を出力することができる。また、検出したマクロから上方の投影領域に電源供給するために必要な電源配線を挿入・接続することができる。
【０１２５】
実施の形態１によれば、一定間隔で電源配線を行うことにより電源配線が未配線となるＲＯＷ領域を自動検出することができる。また、検出したＲＯＷ領域に電源供給するために必要な電源配線を挿入・接続することができる。
【０１２６】
実施の形態２によれば、一定間隔で電源配線を行うことにより電源配線が未配線となる電源供給がされていないマクロを自動検出することができる。また、検出したマクロに電源供給するために必要な電源配線を挿入・接続することができる。
【０１２７】
第１および第２の設計支援方法および設計支援装置によれば、半導体集積回路の適切な電源配線レイアウトを容易かつ短期間で実現することができるという効果を奏する。
【０１２８】
なお、本実施の形態１および２で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
【０１２９】
上述した実施の形態１および２に関し、さらに以下の付記を開示する。
【０１３０】
（付記１）マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータを記憶する記憶装置にアクセス可能なコンピュータが、
前記レイアウトデータの中から隣接しあうマクロの組み合わせを抽出する抽出工程と、
前記レイアウトデータに含まれているＲＯＷ領域の中から、前記抽出工程によって抽出された組み合わせを構成するマクロ間の領域を特定する特定工程と、
前記特定工程によって特定された領域から上方の投影領域内において、前記レイアウトデータの最下層よりも上の特定の配線層の電源配線を検出する検出工程と、
前記検出工程によって前記特定の配線層の電源配線が検出されなかった領域を出力する出力工程と、
を実行することを特徴とする設計支援方法。
【０１３１】
（付記２）前記コンピュータが、
前記特定の配線層の電源配線が検出されなかった領域に前記ＲＯＷ領域に接続可能な電源配線を挿入する挿入工程と、
前記挿入工程により挿入した電源配線を伸長することにより、前記特定の配線層の電源配線と接続する接続工程と、を実行し、
前記出力工程は、
前記接続工程によって前記ＲＯＷ領域に接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする付記１に記載の設計支援方法。
【０１３２】
（付記３）前記コンピュータが、
前記ＲＯＷ領域に接続可能な電源配線を伸長することにより、前記組み合わせを構成するマクロ以外の他のマクロと重複するか否かを判断する判断工程を実行し、
前記挿入工程は、
前記判断工程によって前記他のマクロと重複すると判断された場合、前記特定の配線層の電源配線が検出されなかった領域のうち前記ＲＯＷ領域に接続可能な電源配線（以下、「第１の接続可能な電源配線」という）から上方の領域内において、前記第１の接続可能な電源配線に接続可能な第２の電源配線を挿入し、
前記出力工程は、
前記接続工程によって前記ＲＯＷ領域に接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする付記２に記載の設計支援方法。
【０１３３】
（付記４）マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータにアクセス可能なコンピュータが、
前記レイアウトデータに含まれる各マクロに接続指定されている配線層を特定する特定工程と、
前記レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域に前記特定工程によって特定された各マクロに接続指定されている配線層の電源配線がないマクロを抽出する抽出工程と、
前記接続指定されている配線層の電源配線群の中から、前記抽出されたマクロを挟む電源配線の組み合わせを検出する検出工程と、
前記検出工程によって検出された検出結果を出力する出力工程と、
を実行することを特徴とする設計支援方法。
【０１３４】
（付記５）前記コンピュータが
前記抽出されたマクロの上方の投影領域に、前記抽出されたマクロに接続可能な電源配線を挿入する挿入工程と、
前記挿入工程により挿入された電源配線を伸長することにより、前記特定の配線層の電源配線と接続する接続工程と、を実行し、
前記出力工程は、
前記接続工程によって前記抽出されたマクロに接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする付記４に記載の設計支援方法。
【０１３５】
（付記６）前記コンピュータが
前記抽出されたマクロに接続可能な電源配線を伸長することにより、他のマクロと重複するか否かを判断する判断工程を実行し、
前記挿入工程は、
前記判断工程によって前記他のマクロと重複すると判断された場合、前記特定の配線層の電源配線が検出されなかった領域のうち前記抽出されたマクロに接続可能な電源配線（以下、「第１の接続可能な電源配線」という）から上方の領域内において、前記第１の接続可能な電源配線に接続可能な第２の電源配線を挿入し、
前記出力工程は、
前記接続工程によってマクロに接続可能な電源配線が接続されたレイアウトデータを出力することを特徴とする付記５に記載の設計支援方法。
【０１３６】
（付記７）マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータの中から隣接しあうマクロの組み合わせを抽出する抽出手段と、
前記レイアウトデータに含まれているＲＯＷ領域の中から、前記抽出手段によって抽出された組み合わせを構成するマクロ間の領域を特定する特定手段と、
前記特定手段によって特定された領域から上方の投影領域内において、前記レイアウトデータの最下層よりも上の特定の配線層の電源配線を検出する検出手段と、
前記検出手段によって前記特定の配線層の電源配線が検出されなかった領域を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【０１３７】
（付記８）マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータに含まれる各マクロに接続指定されている配線層を特定する特定手段と、
前記レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域に前記特定手段によって特定された各マクロに接続指定されている配線層の電源配線がないマクロを抽出する抽出手段と、
前記接続指定されている配線層の電源配線群の中から、前記抽出されたマクロを挟む電源配線の組み合わせを検出する検出手段と、
前記検出手段によって検出された検出結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【０１３８】
（付記９）マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータを記憶する記憶装置にアクセス可能なコンピュータを、
前記レイアウトデータの中から隣接しあうマクロの組み合わせを抽出する抽出手段、
前記レイアウトデータに含まれているＲＯＷ領域の中から、前記抽出手段によって抽出された組み合わせを構成するマクロ間の領域を特定する特定手段、
前記特定手段によって特定された領域から上方の投影領域内において、前記レイアウトデータの最下層よりも上の特定の配線層の電源配線を検出する検出手段、
前記検出手段によって前記特定の配線層の電源配線が検出されなかった領域を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【０１３９】
（付記１０）マクロが配置されかつ電源配線が配線層ごとに一定間隔でレイアウトされたレイアウトデータにアクセス可能なコンピュータを、
前記レイアウトデータに含まれる各マクロに接続指定されている配線層を特定する特定手段、
前記レイアウトデータに含まれるマクロ群の中から、当該各マクロから上方の投影領域に前記特定手段によって特定された各マクロに接続指定されている配線層の電源配線がないマクロを抽出する抽出手段、
前記接続指定されている配線層の電源配線群の中から、前記抽出されたマクロを挟む電源配線の組み合わせを検出する検出手段、
前記検出手段によって検出された検出結果を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【図面の簡単な説明】
【０１４０】
【図１】半導体集積回路の電源配線のレイアウトデータを示す説明図である。
【図２】レイアウトデータの物理情報の一例を示す説明図である。
【図３】実施の形態１にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図４】実施の形態１にかかる設計支援装置の機能的構成を示すブロック図である。
【図５−１】特定部４０２により特定されたＲＯＷ領域１０６を示す説明図である。
【図５−２】ＲＯＷ領域１０６の上方の投影領域の３次元イメージ図である。
【図６−１】ＲＯＷ領域１０７の上方の投影領域の３次元イメージ図である。
【図６−２】検出部４０３により電源配線が検出されなかったＲＯＷ領域１０７を示す説明図である。
【図７】検出部４０３により電源配線が検出されたＲＯＷ領域１０５を示す説明図である。
【図８−１】層Ａの電源配線１０２が挿入されたＲＯＷ領域１０６を示す説明図である。
【図８−２】電源配線が接続されたＲＯＷ領域１０６を示す説明図である。
【図９−１】層Ａの電源配線１０２が挿入されたＲＯＷ領域１０７を示す説明図である。
【図９−２】層Ｂの電源配線１０３が挿入されたＲＯＷ領域１０７を示す説明図である。
【図９−３】電源配線が接続されたＲＯＷ領域１０７を示す説明図である。
【図１０】実施の形態１にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図１１】ＲＯＷ領域検出処理手順を示すフローチャートである。
【図１２】電源配線挿入接続処理を示すフローチャートである。
【図１３】実施の形態２にかかる設計支援装置の機能的構成を示すブロック図である。
【図１４】マクロ１０８を挟む特定の電源配線の組み合わせを示す説明図である。
【図１５】層Ａの電源配線１０２が挿入されたマクロ１０８を示す説明図である。
【図１６】電源配線が接続されたマクロ１０８を示す説明図である。
【図１７−１】層Ａの電源配線１０２が挿入されたマクロ１０９を示す説明図である。
【図１７−２】層Ｂの電源配線１０３が挿入されたマクロ１０９を示す説明図である。
【図１７−３】層Ｃの電源配線１０４が挿入されたマクロ１０９を示す説明図である。
【図１７−４】電源配線が接続されたマクロ１０９を示す説明図である。
【図１８】実施の形態２にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図１９】マクロ抽出処理手順を示すフローチャートである。
【図２０】電源配線挿入接続処理手順を示すフローチャートである。
【符号の説明】
【０１４１】
１００  レイアウトデータ
１０１，１０６，１０７  ＲＯＷ領域
１０８，１０９，１１０，１１１  マクロ
４００，１３００  設計支援装置
４０１，１３０２  抽出部
４０２，１３０１  特定部
４０３，１３０３  検出部
４０４，１３０４  挿入部
４０５，１３０５  判断部
４０６，１３０６  接続部
４０７，１３０７  出力部
【図１】
2010152644.tif 000003
【図２】
2010152644.tif 000004
【図３】
2010152644.tif 000005
【図４】
2010152644.tif 000006
【図５−１】
2010152644.tif 000007
【図５−２】
2010152644.tif 000008
【図６−１】
2010152644.tif 000009
【図６−２】
2010152644.tif 000010
【図７】
2010152644.tif 000011
【図８−１】
2010152644.tif 000012
【図８−２】
2010152644.tif 000013
【図９−１】
2010152644.tif 000014
【図９−２】
2010152644.tif 000015
【図９−３】
2010152644.tif 000016
【図１０】
2010152644.tif 000017
【図１１】
2010152644.tif 000018
【図１２】
2010152644.tif 000019
【図１３】
2010152644.tif 000020
【図１４】
2010152644.tif 000021
【図１５】
2010152644.tif 000022
【図１６】
2010152644.tif 000023
【図１７−１】
2010152644.tif 000024
【図１７−２】
2010152644.tif 000025
【図１７−３】
2010152644.tif 000026
【図１７−４】
2010152644.tif 000027
【図１８】
2010152644.tif 000028
【図１９】
2010152644.tif 000029
【図２０】
2010152644.tif 000030