(57)【要約】【課題】電源網解析でＩＲドロップ違反や許容電流値超過違反が発生しないようにし、電源網解析でのイタレーションの発生を無くし、ＴＡＴ短縮を図ることができる半導体集積回路のレイアウト方法を提供する。【解決手段】コアエリア部分の消費電流算出（Ｓ１）、マクロ毎、階層ブロック毎の消費電流算出（Ｓ３）、単位エリアの定義（Ｓ４）、単位エリアの最大供給電流算出（Ｓ５）、最低限必要な単位エリア数算出（Ｓ６）、最低限必要な単位エリア数拡大（Ｓ８）、コアエリア面積の算出（Ｓ９）、コアエリアサイズの設定（Ｓ１０）、フロアプラン（Ｓ１１）、マクロ、階層ブロックの配置（Ｓ１２）、電源配線（Ｓ１３）、セル配置（Ｓ１４）、電源網解析（Ｓ１５）の各工程を順に行う。【選択図】図１
2008130710.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＣＰＵにより、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を有する
ことを特徴とする半導体集積回路のレイアウト方法。
【請求項２】
前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義される単位エリアを定義して記憶手段に記憶する単位エリア定義工程を有する
ことを特徴とする請求項１に記載の半導体集積回路のレイアウト方法。
【請求項３】
前記単位エリア定義工程後、前記電源配線工程より前に、前記ＣＰＵにより、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、
前記ＣＰＵにより、前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程を有する
ことを特徴とする請求項２に記載の半導体集積回路のレイアウト方法。
【請求項４】
レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を
コンピュータに実行させるプログラムを含むことを特徴とする半導体集積回路のレイアウトプログラム。
【請求項５】
前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義された単位エリアを記憶手段に記憶する単位エリア定義工程を
コンピュータに実行させるプログラムを含むことを特徴とする請求項４に記載の半導体集積回路のレイアウトプログラム。
【請求項６】
前記単位エリア定義工程後、前記電源配線工程より前に、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、
前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程を
コンピュータに実行させるプログラムを含むことを特徴とする請求項５に記載の半導体集積回路のレイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いる半導体集積回路のレイアウト方法およびコンピュータを半導体集積回路のレイアウト装置として用いるためのプログラムに関する。
【背景技術】
【０００２】
図５は従来の半導体集積回路のレイアウト方法の一例を示すフローチャートである。このレイアウト方法では、まず、レイアウト対象の半導体集積回路のネットリストと、動作周波数と、単位面積あたりのセル、マクロおよび階層ブロックの配置割合（以下、「使用率」と言う。）を元に、経験から、または統計的データを用いて、チップ面（ダイ）上のセル、マクロおよび階層ブロックの配置領域であるコアエリアのサイズを算出する（ステップＰ１）。
【０００３】
ここで、セルとは、インバータ、ＮＡＮＤゲート、ＮＯＲゲート、フリップフロップ等のゲートレベルの基本的なセル（ユニットセル）をいう。マクロとは、複数のセルや、容量、抵抗等を組み合わせて高機能化したものをいう。階層ブロックとは、マクロの一種であり、チップ全体のレイアウト時にもブロックとしての階層を失わないものをいう。
【０００４】
次に、コアエリアのどこにセル、マクロおよび階層ブロックを配置するかを計画するフロアプランを実行し（ステップＰ２）、フロアプラン情報を元に、コアエリアにマクロおよび階層ブロックを配置する（ステップＰ３）。
【０００５】
次に、環境｛プロセス（Ｐ）、温度（Ｔ）、電圧（Ｖ）｝条件およびコアエリア内の動作変移確率、すなわち、クロックやデータなどの信号のレベル変移確率（以下、「動作率」と言う。）を元に電源配線を行い（ステップＰ４）、更に、セル配置を実行し（ステップＰ５）、電源網解析を実行する（ステップＰ６）。
【０００６】
電源網解析には、電源配線抵抗による電源電圧降下現象を解析するＩＲドロップ解析と、電源配線中の許容電流値超過箇所を調査する許容電流値超過箇所解析の２種類があるが、ＩＲドロップは、その制限値を越えてはならないし、電源配線に流れる電流は、許容電流値を超えてはならない。
【０００７】
そこで、電源網解析工程（ステップＰ６）で、ＩＲドロップ違反箇所や許容電流値超過違反箇所が明らかになった場合は、一つ前の工程であるセル配置工程（ステップＰ５）に戻ってセルの位置の修正を行い、再度、電源網解析（ステップＰ６）を実施する必要がある。
【０００８】
それでも違反箇所を修正できない場合は、電源配線工程（ステップＰ４）に戻り、それでも違反箇所を修正できない場合は、マクロ・階層ブロック配置工程（ステップＰ３）に戻り、それでも違反箇所を修正できない場合は、フロアプラン工程（ステップＰ２）に戻り、最悪の場合には、コアエリアサイズ算出工程（ステップＰ１）にまで戻って修正を行う必要がある。
【０００９】
そして、電源網解析（ステップＰ６）の結果、ＩＲドロップ違反および許容電流値超過違反が無いと判断されると、図５では図示を省略しているが、その後、信号配線やタイミング解析等が実行される。
【００１０】
なお、電源配線構造を決めるにあたり、ＩＲドロップや許容電流値を考慮した技術として、たとえば、特許文献１、２に記載の技術がある。特許文献１には、所定の分割単位毎にＩＲドロップまたは過剰の電流密度を緩和するように電源配線幅を最適化する電源配線方法が記載されている。特許文献２には、機能ブロックの消費電流から、そのブロックでの許容電流値を満たす電源配線幅を求める自動配置配線方法が記載されている。
【特許文献１】ＷＯ２００４／０７７５５６号パンプレット
【特許文献２】特開２０００−５８６５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
図５に示す従来の半導体集積回路のレイアウト方法においては、電源網解析工程でＩＲドロップ違反箇所や許容電流値超過違反箇所が明らかになった場合、セル移動や電源配線の修正を行う必要があるが、これにより電源配線抵抗や電源配線に流れる電流量が変化するために、別の箇所で新たにＩＲドロップ違反や許容電流値超過違反が発生してしまう場合があるという問題点があった。
【００１２】
また、特に、動作周波数が高い場合や、セル配置密度が高い領域では、セル移動や電源配線の修正では、ＩＲドロップ違反や許容電流値超過違反に対処できない場合があり、最悪の場合には、コアエリアサイズを算出する工程まで戻る必要があり、その結果、ＴＡＴ（turn-around time）が非常に長くなってしまうという問題点があった。
【００１３】
また、特許文献１に記載の電源配線方法は、所定の分割単位毎に電源配線幅を最適化するという従来手法の延長上にある技術のため、本質的に電源網解析と電源配線幅修正のイタレーションが何回か発生することは避けられず、ＴＡＴ短縮にはそれほど寄与しないと考えられる。
【００１４】
また、特許文献２に記載の自動配置配線方法は、電源配線の許容電流値を考慮しているが、ＩＲドロップを考慮していないため、電源網解析でＩＲドロップ違反が発生する可能性が高く、電源網解析でのイタレーションの発生が避けられず、ＴＡＴ短縮にはそれほど寄与しないと考えられる。
【００１５】
更に、特許文献１に記載の電源配線方法および特許文献２に記載の自動配置配線方法のいずれにも言えるが、動作周波数が高い場合やセル配置密度が高い場合等、条件が厳しい場合には、結果が収束しない可能性もあり、最悪の場合には、コアエリアサイズを算出する工程まで戻る必要があり、この結果、ＴＡＴが非常に長くなってしまうという問題点があった。
【００１６】
本発明は、かかる点に鑑み、電源網解析でＩＲドロップ違反や許容電流値超過違反が発生しないようにし、電源網解析でのイタレーションの発生を無くし、ＴＡＴ短縮を図ることができるようにした半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の半導体集積回路のレイアウト方法は、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＣＰＵにより、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を有するものである。
【００１８】
本発明の半導体集積回路のレイアウトプログラムは、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程をコンピュータに実行させるプログラムを含むものである。
【発明の効果】
【００１９】
本発明の半導体集積回路のレイアウト方法によれば、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＣＰＵにより、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線が配線されるので、電源網解析でＩＲドロップ違反や許容電流値超過違反が発生しないようにすることができる。したがって、電源網解析でのイタレーションの発生を無くし、ＴＡＴ短縮を図ることができる。
【００２０】
本発明の半導体集積回路のレイアウトプログラムによれば、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線が配線されるので、電源網解析でＩＲドロップ違反や許容電流値超過違反が発生しないようにすることができる。したがって、電源網解析でのイタレーションの発生を無くし、ＴＡＴ短縮を図ることができる。
【発明を実施するための最良の形態】
【００２１】
図１は本発明の半導体集積回路のレイアウト方法の一実施形態を示すフローチャートである。本発明の半導体集積回路のレイアウト方法の一実施形態では、まず、レイアウト対象の半導体集積回路のネットリスト、環境｛プロセス（Ｐ）、温度（Ｔ）、電圧（Ｖ）｝条件のワースト値、動作周波数および動作率を元に、コアエリア部分の消費電流を算出する（ステップＳ１）。
【００２２】
次に、ネットリスト内にマクロまたは／および階層ブロックがあるか否かを判断し（ステップＳ２）、マクロまたは／および階層ブロックがある場合（ステップＳ２でＹＥＳの場合）には、マクロ毎または／および階層ブロック毎に消費電流を算出する（ステップＳ３）。
【００２３】
これに対して、ネットリスト内にマクロおよび階層ブロックがない場合（ステップＳ２でＮＯの場合）、または、ステップＳ３でマクロ毎または／および階層ブロック毎に消費電流を算出した場合には、次に、単位エリアを定義する（ステップＳ４）。
【００２４】
図２は単位エリアの説明図である。単位エリアは、コアエリアサイズを決める上で設定する仮想上のエリアであり、単位エリア内には、セル用の電源配線が配線されていると仮定する。図２（Ａ）中、１は単位エリアの一例を示しており、２〜７はセル用の電源配線（２〜４はＶＤＤ用の電源配線、５〜７はＶＳＳ用の電源配線）、８〜１４はセル配置領域である。
【００２５】
ここで、セル用の電源配線の幅および間隔は、予め決定（登録）しておくものとする。そして、単位エリア定義工程（ステップＳ４）では、単位エリアのサイズを設定する。このようにすると、単位エリアのサイズに応じた本数のセル用の電源配線が単位エリア内に配線される。なお、単位エリアは、正方形であっても、長方形であっても良いが、セル用の電源配線は、横方向または縦方向にのみ配線されるものとし、かつ、同一構造とする。
【００２６】
図２（Ｂ）は単位エリア１を横方向に複数個並べた場合におけるセル用の電源配線２〜７の長さと横方向に並べた複数個の単位エリア１内に配置することができるセル数との関係を示している。すなわち、セル用の電源配線２〜７の許容電流値は、その幅に依存するため、複数個の単位エリア１を横方向に並べてセル用の電源配線２〜７の長さを伸ばしても、横方向に並べた複数個の単位エリア１内に配置することができるセル数は、セル用の電源配線２〜７の長さが或る長さＬＡ以上になると一定になってしまう。セル用の電源配線を縦方向に配線する場合も同様のことが言える。
【００２７】
そこで、セル用の電源配線を横方向に設定する場合には、単位エリアの幅は、複数個の単位エリアを横方向に並べた場合に、横方向に並べた複数個の単位エリア内に配置することができるセル数がセル用の電源配線の長さによらず一定になる前の幅に設定する必要がある。
【００２８】
また、セル用の電源配線を縦方向に設定する場合には、単位エリアの高さは、複数個の単位エリアを縦方向に並べた場合に、縦方向に並べた複数個の単位エリア内に配置することができるセル数がセル用の電源配線の長さによらず一定になる前の高さに設定する必要がある。
【００２９】
ステップＳ４で単位エリアを定義した場合には、次に、単位エリア内のセル用の電源配線の1本あたりの許容電流値を算出し、この許容電流値に単位エリア内の同電位の電源配線の本数をかけ、単位エリアの最大供給電流を算出する（ステップＳ５）。
【００３０】
たとえば、図２に示す単位エリア１の場合には、電源配線２〜７は同一構造とされているので、電源配線２〜７の１本あたりの許容電流値をＩ（unit）とすると、ＶＤＤ用の電源配線が３本、ＶＳＳ用の電源配線が３本であるから、単位エリア１の最大供給電流は、３×Ｉ（unit）となる。
【００３１】
ステップＳ５で単位エリアの最大供給電流を算出した場合において、コアエリアにマクロおよび階層ブロックがある場合には、次に、ステップＳ１で算出したコアエリア部分の消費電流と、ステップＳ３で算出したマクロ毎の消費電流および階層ブロック毎の消費電流と、ステップＳ５で算出した単位エリア最大供給電流を元に、最低限必要な単位エリア数を算出する（ステップＳ６）。
【００３２】
ここで、たとえば、コアエリア部分の消費電流をＩ（Chip）、各マクロの消費電流の和をΣＩ（macro）、各階層ブロックの消費電流の和をΣＩ（blk）、単位エリアの最大供給電流をΣＩ（unit）、単位エリアの最大供給電流を越えないようにすることができる最低限必要な単位エリア数をｎとすると、数１に示す関係式が得られる。
【００３３】
【数１】
2008130710.tif 000003
【００３４】
ステップＳ６で最低限必要な単位エリア数を算出した場合には、次に、ネットリスト内の全マクロと階層ブロックを除いたセルの面積をＳ（cell）、セルの使用率をＲ（cell）、単位エリアの面積をＳ（unit）とした場合に、数２に示す関係式が成立するか否かを確認する（ステップＳ７）。
【００３５】
【数２】
2008130710.tif 000004
【００３６】
すなわち、実際に使用するセル配置領域の面積≦ｎ×Ｓ（unit）であるか否か、換言すれば、ステップＳ６で算出した最低限必要単位エリア数が実際に使用するセル配置領域の面積との関係で足りているか否かを判断する。ここで、
【００３７】
【数３】
2008130710.tif 000005
【００３８】
の場合（ステップＳ７でＮＯの場合）には、数２に示す式を満足するように、最低限必要な単位エリア数ｎを大きくする（ステップＳ８）。
【００３９】
これに対して、数２に示す式を満足する場合（ステップＳ７でＹＥＳの場合）、または、ステップＳ８で最低限必要な単位エリア数ｎを大きくした場合には、次に、全単位エリアの面積に、全マクロを配置するために実際に使用する面積と、全階層ブロックを配置するために実際に使用する面積を加え、チップ面上、実際に必要とするコアエリア面積を算出する（ステップＳ９）。
【００４０】
ここで、ネットリスト内の各マクロの面積Ｓ（macro）をその使用率Ｒ（macro）で割ったものの和（実際に使用するマクロ配置領域の面積）をΣ｛Ｓ（macro）／Ｒ（macro）｝、各階層ブロックの面積Ｓ（blk）をその使用率Ｒ（blk）で割ったものの和（実際に使用する階層ブロックの面積）をΣ｛Ｓ（blk）／Ｒ（blk）｝とすると、チップ面上、実際に必要とするコアエリア面積Ｓは数４に示すようになる。
【００４１】
【数４】
2008130710.tif 000006
【００４２】
なお、マクロが無い場合には、Ｓ（macro）を０としてコアエリア面積Ｓを求める。また、階層ブロックが無い場合には、Ｓ（blk）を０としてコアエリア面積Ｓを求める。また、マクロおよび階層ブロックが無い場合には、Ｓ（macro）およびＳ（blk）を０としてコアエリア面積Ｓを求める。
【００４３】
次に、コアエリアサイズ、すなわち、コアエリアの幅（横幅）および高さ（縦幅）を設定する（ステップＳ１０）。図３はコアエリアサイズの決め方の一例を説明するための図であり、マクロおよび階層ブロックが無い場合を示している。図３中、１５はコアエリア、１６は単位エリアである。すなわち、マクロおよび階層ブロックが無い場合には、図３に示すように、単位エリア１６を並べた結果から、コアエリア１５の幅と高さを算出することができる。
【００４４】
また、ステップＳ９で算出したコアエリア面積Ｓに等しくなるように、幅＝高さ＝√Ｓとなるように、幅および高さを決めても良いし、または、Ｓ＝ａ×ｂとなるように、幅＝ａ（またはｂ）、高さ＝ｂ（またはａ）となるように、幅および高さを決めても良い。その際、端数が出る場合は、都合の良い長さに切り上げを行っても良い。ここに挙げたのは一例であり、コアエリア面積Ｓを満たすのであれば、他の方法を用いても良い。
【００４５】
次に、コアエリアに対するマクロおよび階層ブロックのフロアプランを行い（ステップＳ１１）、フロアプラン情報を元に、マクロおよび階層ブロックの配置を行う（ステップＳ１２）。なお、マクロはあるが、階層ブロックが無い場合には、マクロのみの配置を行い、階層ブロックはあるが、マクロが無い場合には、階層ブロックのみの配置を行い、マクロおよび階層ブロックが無い場合には、ステップＳ１１、Ｓ１２は実行しない。
【００４６】
次に、コアエリアに対して電源配線を実行する（ステップＳ１３）。但し、電源配線は以下の規則（１）〜（６）に従うものとする。（１）マクロおよび階層ブロックの電源メッシュ構造は、マクロおよび階層ブロックの電源仕様に準拠する。
【００４７】
（２）電源配線メッシュ間隔は単位エリアの幅および高さに合わせる。ただし、電源配線メッシュ上にマクロ用または階層ブロック用の電源配線がある場合は、マクロ用または階層ブロック用の電源配線を優先させる。（３）マクロおよび階層ブロックの消費電流は、ステップＳ３で算出したものを使用する。
【００４８】
（４）単位エリアで消費する電流は単位エリアの最大供給電流とする。ただし、コアエリアの幅および高さと、マクロおよび階層ブロック配置の都合上、単位エリアより小さい部分が発生した場合には、この部分の最大供給電流は、単位エリアとの面積比に応じて決定する。
【００４９】
（５）単位エリア、マクロ、階層ブロックで消費する電流、目標ＩＲドロップ制限値、電源配線構造情報、外部から入力された各電源配線使用層を元に電源配線の幅を設定する。（６）設定された電源幅で電源配線を実施する。
【００５０】
ステップＳ１３で電源配線を配線した場合には、次に、各単位エリアの最大供給電流を超えないようにセル配置を行う（ステップＳ１４）。ここで、各単位エリアの最大供給電流を越えないようにセル配置を行うと、既に、電源配線の幅は、単位エリア、マクロ、階層ブロックで消費する電流および目標ＩＲドロップ制限値を考慮した幅とされているので、ＩＲドロップ制限値および許容電流値の両方を満たすレイアウトになる。
【００５１】
そこで、セル配置（ステップＳ１４）後に、確認のための電源網解析を行い（ステップＳ１５）、更に、その後、図１では図示を省略しているが、信号配線やタイミング解析等を実行する。
【００５２】
なお、本発明の半導体集積回路のレイアウト方法の一実施形態においては、一種類の単位エリアを定義するようにした場合について説明したが、単位エリアに配置するセルタイプ、たとえば、低速タイプ、中速タイプ、高速タイプのそれぞれのセル毎に電源配線の幅および間隔を異にする単位エリア、すなわち、低速タイプのセル用の単位エリア、中速タイプのセル用の単位エリア、高速タイプのセル用の単位エリアを定義するようにしても良い。
【００５３】
たとえば、低速タイプのセル用の電源配線は、幅＝１.０μｍ、間隔＝５.０μｍ、中速タイプのセル用の電源配線は、幅＝１.５μｍ、間隔＝７.５μｍ、高速タイプのセル用の電源配線は、幅＝２.０μｍ、間隔＝１０.０μｍと予め決定（登録）しておき、単位エリアに配置するセルタイプと単位エリアの幅および高さを設定することにより、単位エリアを定義するようにしても良い。
【００５４】
この場合、低速タイプのセル用の単位エリア、中速タイプのセル用の単位エリアおよび高速タイプのセル用の単位エリア中の１種類もしくは２種類または全部を定義して使用するようにしても良い。
【００５５】
図４は本発明の半導体集積回路のレイアウト方法の一実施形態を実施するためのＣＡＤ（computer aided design）システムの構成図である。図４中、２０はＣＰＵ、２１はバス、２２はＲＡＭ、２３はＲＯＭ、２４はＣＲＴインタフェース、２５はＣＲＴ、２６はＩ／Ｏポート、２７はキーボード・インタフェース、２８はキーボード、２９は外部記憶インタフェース、３０は磁気ディスク装置である。
【００５６】
また、磁気ディスク装置３０において、３１は本発明の半導体集積回路のレイアウト方法の一実施形態の実施に必要な情報を格納する情報格納領域であり、レイアウト対象の半導体集積回路のネットリスト、ＩＲドロップ制限値、単位エリア内のセル用の電源配線の幅および間隔、セル用電源配線長制限値（図２に示すＬＡ）、電源配線使用層などの情報が格納される。
【００５７】
また、３２は本発明の半導体集積回路のレイアウト方法の一実施形態の実施に必要なプログラムを格納するプログラム格納領域であり、コアエリア部分消費電流算出プログラム３３、マクロ・階層ブロック消費電流算出プログラム３４、単位エリアサイズ確認プログラム３５、単位エリア最大供給電流算出プログラム３６、最低限必要単位エリア数算出プログラム３７、面積比較プログラム３８、最低限必要単位エリア数拡大プログラム３９、コアエリア面積算出プログラム４０および電源配線プログラ４１などが格納される。
【００５８】
コアエリア部分消費電流算出プログラム３３は、ステップＳ１を実行するためにＣＰＵ２０をコアエリア部分消費電流算出手段として機能させるものであり、ＣＰＵ２０により算出されたコアエリア部分消費電流の値はＲＡＭ２２に記憶される。
【００５９】
マクロ・階層ブロック消費電流算出プログラム３４は、ステップＳ３を実行するためにＣＰＵ２０をマクロ・階層ブロック消費電流算出手段として機能させるものであり、ＣＰＵ２０により算出されたマクロ毎または／および階層ブロック毎の消費電流の値はＲＡＭ２２に記憶される。
【００６０】
単位エリアサイズ確認プログラム３５は、定義された単位エリアのサイズ（幅、高さ）がセル用電源配線長制限値内かどうかを確認し、かつ、問題がない場合には、定義された単位エリアのサイズをＲＡＭ２２に記憶するために、ＣＰＵ２０を単位エリアサイズ確認手段として機能させるものである。
【００６１】
単位エリア最大供給電流算出プログラム３６は、ステップＳ５を実行するためにＣＰＵ２０を単位エリア最大供給電流算出手段として機能させるものであり、ＣＰＵ２０により算出した単位エリア最大供給電流の値はＲＡＭ２２に記憶される。
【００６２】
最低限必要単位エリア数算出プログラム３７は、ステップＳ６を実行するためにＣＰＵ２０を最低限必要単位エリア数算出手段として機能させるものであり、ＣＰＵ２０により算出された最低限必要単位エリア数はＲＡＭ２２に記憶される。
【００６３】
面積比較プログラム３８は、ステップＳ７を実行するためにＣＰＵ２０を面積比較手段として機能させるものであり、判定結果はＲＡＭ２２に記憶される。
【００６４】
最低限必要単位エリア数拡大プログラム３９は、ステップＳ８を実行するためにＣＰＵ２０を最低限必要単位エリア数拡大手段として機能させるものであり、ＣＰＵ２０により拡大された最低限必要単位エリア数はＲＡＭ２２に記憶される。
【００６５】
コアエリア面積算出プログラム４０は、ステップＳ９を実行するためにＣＰＵ２０をコアエリア面積算出手段として機能させるものであり、ＣＰＵ２０により算出されたコアエリア面積はＲＡＭ２２に記憶される。
【００６６】
電源配線プログラム４１は、ステップＳ１３を実行するためにＣＰＵ２０を電源配線手段として機能させるものであり、電源配線構築プログラム４２、電源幅算出プログラム４３、電源配線プログラム４４を含んでいる。
【００６７】
電源配線構築プログラム４２は、フロアプラン情報、単位エリアの幅／高さ情報、外部から入力された電源配線使用層情報を元に、電源配線位置、構造を設定して記憶するためのものである。
【００６８】
電源幅算出プログラム４３は、電源配線構築プログラムで取得した電源配線構築情報、単位エリアの最大消費電流情報、マクロまたは／および階層ブロックの消費電流情報、電源配線層の抵抗情報、ＩＲドロップ制限値情報を元に、電源配線幅を設定して記憶するためのものである。電源配線プログラム４４は、電源配線構築プログラムで設定した電源配線構築情報、電源幅算出プログラムで算出した電源幅情報を元に、電源配線を行うためのものである。
【００６９】
以上のように、本発明の半導体集積回路のレイアウト方法の一実施形態においては、電源配線を行う（ステップＳ１３）前に、単位エリアを定義し（ステップＳ４）、単位エリアの最大供給電流を算出し（ステップＳ５）、最低限必要単位エリア数を算出し（ステップＳ７）、セル使用率との関係で最低限必要単位エリア数が足りない場合には、最低限必要単位エリア数を大きくする（ステップＳ８）としている。
【００７０】
そして、その後、コアエリア面積を算出し（ステップＳ９）、コアエリアサイズを設定し（ステップＳ１０）、フロアプランを行い（ステップＳ１１）、マクロ、階層ブロックを配置し（ステップＳ１２）、電源配線を行い（ステップＳ１３）、セルを配置し（ステップＳ１４）、電源網解析を行う（ステップＳ１５）としている。
【００７１】
この結果、セル配置工程（ステップＳ１４）で、各単位エリアの最大供給電流を超えないようにセル配置を行う場合には、ＩＲドロップ制限値および許容電流値の両方を満たすレイアウトになる。
【００７２】
したがって、本発明の半導体集積回路のレイアウト方法の一実施形態によれば、電源網解析でＩＲドロップ違反や許容電流値超過違反が発生しないようにすることができ、電源網解析でのイタレーションの発生を無くし、ＴＡＴ短縮を図ることができる。
【００７３】
また、本発明の半導体集積回路のレイアウト方法の一実施形態においては、トップレイアウトを行う場合を例にして説明したが、本発明の半導体集積回路のレイアウト方法は、階層ブロックをレイアウトする場合にも適用することができる。
【００７４】
ここで、本発明を整理すると、本発明には、少なくとも、以下の半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラムが含まれる。
【００７５】
（付記１）レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＣＰＵにより、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を有することを特徴とする半導体集積回路のレイアウト方法。
【００７６】
（付記２）前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義される単位エリアを定義して記憶手段に記憶する単位エリア定義工程を有することを特徴とする付記１に記載の半導体集積回路のレイアウト方法。
【００７７】
（付記３）前記単位エリア定義工程後、前記電源配線工程より前に、前記ＣＰＵにより、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、前記ＣＰＵにより、前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程を有することを特徴とする付記２に記載の半導体集積回路のレイアウト方法。
【００７８】
（付記４）前記最低限必要単位エリア数算出工程後、前記電源配線工程より前に、前記ＣＰＵにより、前記半導体集積回路のネットリスト内のセルの面積を単位面積あたりにセルを配置する割合で割った値をセル配置領域の面積として算出し、前記単位エリアの面積と前記最低限必要な単位エリア数との積と、前記セル配置領域の面積を比較する工程と、前記セル配置領域の面積よりも、前記単位エリアの面積と前記最低限必要な単位エリア数との積の方が小さい場合には、前記単位エリアの面積と前記最低限必要な単位エリア数との積が前記セル配置領域の面積以上となるように、前記ＣＰＵにより、前記最低限必要な単位エリア数を多くする最低限必要単位エリア数拡大工程を有することを特徴とする付記３に記載の半導体集積回路のレイアウト方法。
【００７９】
（付記５）前記最低限必要単位エリア数拡大工程後、前記電源配線工程より前に、前記ＣＰＵにより、前記半導体集積回路のネットリスト内のマクロの面積を単位面積あたりにマクロを配置する割合で割った値をマクロ配置領域の面積、前記半導体集積回路のネットリスト内の階層ブロックの面積を単位面積あたりに階層ブロックを配置する割合で割った値を階層ブロック配置領域の面積とし、前記マクロ配置領域の面積と前記階層ブロックの面積と前記セル配置領域の面積との和を前記コアエリアの面積として算出するコアエリア面積算出工程を有することを特徴とする付記４に記載の半導体集積回路のレイアウト方法。
【００８０】
（付記６）レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または／および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のＩＲドロップ制限値を元に、ＩＲドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程をコンピュータに実行させるプログラムを含むことを特徴とする半導体集積回路のレイアウトプログラム。
【００８１】
（付記７）前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義された単位エリアを記憶手段に記憶する単位エリア定義工程をコンピュータに実行させるプログラムを含むことを特徴とする付記６に記載の半導体集積回路のレイアウトプログラム。
【００８２】
（付記８）前記単位エリア定義工程後、前記電源配線工程より前に、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程をコンピュータに実行させるプログラムを含むことを特徴とする付記７に記載の半導体集積回路のレイアウトプログラム。
【００８３】
（付記９）前記最低限必要単位エリア数算出工程後、前記電源配線工程より前に、前記半導体集積回路のネットリスト内のセルの面積を単位面積あたりにセルを配置する割合で割った値をセル配置領域の面積として算出し、前記単位エリアの面積と前記最低限必要な単位エリア数との積と、前記セル配置領域の面積を比較する工程と、前記セル配置領域の面積よりも、前記単位エリアの面積と前記最低限必要な単位エリア数との積の方が小さい場合には、前記単位エリアの面積と前記最低限必要な単位エリア数との積が前記セル配置領域の面積以上となるように、前記最低限必要な単位エリア数を多くする最低限必要単位エリア数拡大工程をコンピュータに実行させるプログラムを含むことを特徴とする付記８に記載の半導体集積回路のレイアウトプログラム。
【００８４】
（付記１０）前記最低限必要単位エリア数拡大工程後、前記電源配線工程より前に、前記半導体集積回路のネットリスト内のマクロの面積を単位面積あたりにマクロを配置する割合で割った値をマクロ配置領域の面積、前記半導体集積回路のネットリスト内の階層ブロックの面積を単位面積あたりに階層ブロックを配置する割合で割った値を階層ブロック配置領域の面積とし、前記マクロ配置領域の面積と前記階層ブロックの面積と前記セル配置領域の面積との和を前記コアエリアの面積として算出するコアエリア面積算出工程をコンピュータに実行させるプログラムを含むことを特徴とする付記９に記載の半導体集積回路のレイアウトプログラム。
【図面の簡単な説明】
【００８５】
【図１】本発明の半導体集積回路のレイアウト方法の一実施形態を示すフローチャートである。
【図２】本発明の半導体集積回路のレイアウト方法の一実施形態で使用する単位エリアの説明図である。
【図３】本発明の半導体集積回路のレイアウト方法の一実施形態で実行するコアエリアサイズの決め方の一例を説明するための図である。
【図４】本発明の半導体集積回路のレイアウト方法の一実施形態を実施するためのＣＡＤシステムの構成図である。
【図５】従来の半導体集積回路のレイアウト方法の一例を示すフローチャートである。
【符号の説明】
【００８６】
１…単位エリア
２〜７…電源配線
８〜１４…セル配置領域
１５…コアエリア
１６…単位エリア
２０…ＣＰＵ
２１…バス
２２…ＲＡＭ
２３…ＲＯＭ
２４…ＣＲＴインタフェース
２５…ＣＲＴ
２６…Ｉ／Ｏポート
２７…キーボード・インタフェース
２８…キーボード
２９…外部記憶インタフェース
３０…磁気ディスク装置
３１…情報格納領域
３２…プログラム格納領域
３３…コアエリア部分消費電流算出プログラム
３４…マクロ・階層ブロック消費電流算出プログラム
３５…単位エリアサイズ確認プログラム
３６…単位エリア最大供給電流算出プログラム
３７…最低限必要単位エリア数算出プログラム
３８…面積比較プログラム
３９…最低限必要単位エリア数拡大プログラム
４０…コアエリア面積算出プログラム
４１…電源配線プログラム
４２…電源配線構築プログラム
４３…電源幅算出プログラム
４４…電源配線プログラム
【図１】
2008130710.tif 000007
【図２】
2008130710.tif 000008
【図３】
2008130710.tif 000009
【図４】
2008130710.tif 000010
【図５】
2008130710.tif 000011