JP2008130710A - 半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラム - Google Patents
半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラム Download PDFInfo
- Publication number
- JP2008130710A JP2008130710A JP2006312438A JP2006312438A JP2008130710A JP 2008130710 A JP2008130710 A JP 2008130710A JP 2006312438 A JP2006312438 A JP 2006312438A JP 2006312438 A JP2006312438 A JP 2006312438A JP 2008130710 A JP2008130710 A JP 2008130710A
- Authority
- JP
- Japan
- Prior art keywords
- area
- unit area
- power supply
- integrated circuit
- semiconductor integrated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】電源網解析でIRドロップ違反や許容電流値超過違反が発生しないようにし、電源網解析でのイタレーションの発生を無くし、TAT短縮を図ることができる半導体集積回路のレイアウト方法を提供する。
【解決手段】コアエリア部分の消費電流算出(S1)、マクロ毎、階層ブロック毎の消費電流算出(S3)、単位エリアの定義(S4)、単位エリアの最大供給電流算出(S5)、最低限必要な単位エリア数算出(S6)、最低限必要な単位エリア数拡大(S8)、コアエリア面積の算出(S9)、コアエリアサイズの設定(S10)、フロアプラン(S11)、マクロ、階層ブロックの配置(S12)、電源配線(S13)、セル配置(S14)、電源網解析(S15)の各工程を順に行う。
【選択図】図1
【解決手段】コアエリア部分の消費電流算出(S1)、マクロ毎、階層ブロック毎の消費電流算出(S3)、単位エリアの定義(S4)、単位エリアの最大供給電流算出(S5)、最低限必要な単位エリア数算出(S6)、最低限必要な単位エリア数拡大(S8)、コアエリア面積の算出(S9)、コアエリアサイズの設定(S10)、フロアプラン(S11)、マクロ、階層ブロックの配置(S12)、電源配線(S13)、セル配置(S14)、電源網解析(S15)の各工程を順に行う。
【選択図】図1
Description
本発明は、コンピュータを用いる半導体集積回路のレイアウト方法およびコンピュータを半導体集積回路のレイアウト装置として用いるためのプログラムに関する。
図5は従来の半導体集積回路のレイアウト方法の一例を示すフローチャートである。このレイアウト方法では、まず、レイアウト対象の半導体集積回路のネットリストと、動作周波数と、単位面積あたりのセル、マクロおよび階層ブロックの配置割合(以下、「使用率」と言う。)を元に、経験から、または統計的データを用いて、チップ面(ダイ)上のセル、マクロおよび階層ブロックの配置領域であるコアエリアのサイズを算出する(ステップP1)。
ここで、セルとは、インバータ、NANDゲート、NORゲート、フリップフロップ等のゲートレベルの基本的なセル(ユニットセル)をいう。マクロとは、複数のセルや、容量、抵抗等を組み合わせて高機能化したものをいう。階層ブロックとは、マクロの一種であり、チップ全体のレイアウト時にもブロックとしての階層を失わないものをいう。
次に、コアエリアのどこにセル、マクロおよび階層ブロックを配置するかを計画するフロアプランを実行し(ステップP2)、フロアプラン情報を元に、コアエリアにマクロおよび階層ブロックを配置する(ステップP3)。
次に、環境{プロセス(P)、温度(T)、電圧(V)}条件およびコアエリア内の動作変移確率、すなわち、クロックやデータなどの信号のレベル変移確率(以下、「動作率」と言う。)を元に電源配線を行い(ステップP4)、更に、セル配置を実行し(ステップP5)、電源網解析を実行する(ステップP6)。
電源網解析には、電源配線抵抗による電源電圧降下現象を解析するIRドロップ解析と、電源配線中の許容電流値超過箇所を調査する許容電流値超過箇所解析の2種類があるが、IRドロップは、その制限値を越えてはならないし、電源配線に流れる電流は、許容電流値を超えてはならない。
そこで、電源網解析工程(ステップP6)で、IRドロップ違反箇所や許容電流値超過違反箇所が明らかになった場合は、一つ前の工程であるセル配置工程(ステップP5)に戻ってセルの位置の修正を行い、再度、電源網解析(ステップP6)を実施する必要がある。
それでも違反箇所を修正できない場合は、電源配線工程(ステップP4)に戻り、それでも違反箇所を修正できない場合は、マクロ・階層ブロック配置工程(ステップP3)に戻り、それでも違反箇所を修正できない場合は、フロアプラン工程(ステップP2)に戻り、最悪の場合には、コアエリアサイズ算出工程(ステップP1)にまで戻って修正を行う必要がある。
そして、電源網解析(ステップP6)の結果、IRドロップ違反および許容電流値超過違反が無いと判断されると、図5では図示を省略しているが、その後、信号配線やタイミング解析等が実行される。
なお、電源配線構造を決めるにあたり、IRドロップや許容電流値を考慮した技術として、たとえば、特許文献1、2に記載の技術がある。特許文献1には、所定の分割単位毎にIRドロップまたは過剰の電流密度を緩和するように電源配線幅を最適化する電源配線方法が記載されている。特許文献2には、機能ブロックの消費電流から、そのブロックでの許容電流値を満たす電源配線幅を求める自動配置配線方法が記載されている。
WO2004/077556号パンプレット
特開2000−58653号公報
図5に示す従来の半導体集積回路のレイアウト方法においては、電源網解析工程でIRドロップ違反箇所や許容電流値超過違反箇所が明らかになった場合、セル移動や電源配線の修正を行う必要があるが、これにより電源配線抵抗や電源配線に流れる電流量が変化するために、別の箇所で新たにIRドロップ違反や許容電流値超過違反が発生してしまう場合があるという問題点があった。
また、特に、動作周波数が高い場合や、セル配置密度が高い領域では、セル移動や電源配線の修正では、IRドロップ違反や許容電流値超過違反に対処できない場合があり、最悪の場合には、コアエリアサイズを算出する工程まで戻る必要があり、その結果、TAT(turn-around time)が非常に長くなってしまうという問題点があった。
また、特許文献1に記載の電源配線方法は、所定の分割単位毎に電源配線幅を最適化するという従来手法の延長上にある技術のため、本質的に電源網解析と電源配線幅修正のイタレーションが何回か発生することは避けられず、TAT短縮にはそれほど寄与しないと考えられる。
また、特許文献2に記載の自動配置配線方法は、電源配線の許容電流値を考慮しているが、IRドロップを考慮していないため、電源網解析でIRドロップ違反が発生する可能性が高く、電源網解析でのイタレーションの発生が避けられず、TAT短縮にはそれほど寄与しないと考えられる。
更に、特許文献1に記載の電源配線方法および特許文献2に記載の自動配置配線方法のいずれにも言えるが、動作周波数が高い場合やセル配置密度が高い場合等、条件が厳しい場合には、結果が収束しない可能性もあり、最悪の場合には、コアエリアサイズを算出する工程まで戻る必要があり、この結果、TATが非常に長くなってしまうという問題点があった。
本発明は、かかる点に鑑み、電源網解析でIRドロップ違反や許容電流値超過違反が発生しないようにし、電源網解析でのイタレーションの発生を無くし、TAT短縮を図ることができるようにした半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラムを提供することを目的とする。
本発明の半導体集積回路のレイアウト方法は、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、CPUにより、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を有するものである。
本発明の半導体集積回路のレイアウトプログラムは、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程をコンピュータに実行させるプログラムを含むものである。
本発明の半導体集積回路のレイアウト方法によれば、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、CPUにより、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線が配線されるので、電源網解析でIRドロップ違反や許容電流値超過違反が発生しないようにすることができる。したがって、電源網解析でのイタレーションの発生を無くし、TAT短縮を図ることができる。
本発明の半導体集積回路のレイアウトプログラムによれば、レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線が配線されるので、電源網解析でIRドロップ違反や許容電流値超過違反が発生しないようにすることができる。したがって、電源網解析でのイタレーションの発生を無くし、TAT短縮を図ることができる。
図1は本発明の半導体集積回路のレイアウト方法の一実施形態を示すフローチャートである。本発明の半導体集積回路のレイアウト方法の一実施形態では、まず、レイアウト対象の半導体集積回路のネットリスト、環境{プロセス(P)、温度(T)、電圧(V)}条件のワースト値、動作周波数および動作率を元に、コアエリア部分の消費電流を算出する(ステップS1)。
次に、ネットリスト内にマクロまたは/および階層ブロックがあるか否かを判断し(ステップS2)、マクロまたは/および階層ブロックがある場合(ステップS2でYESの場合)には、マクロ毎または/および階層ブロック毎に消費電流を算出する(ステップS3)。
これに対して、ネットリスト内にマクロおよび階層ブロックがない場合(ステップS2でNOの場合)、または、ステップS3でマクロ毎または/および階層ブロック毎に消費電流を算出した場合には、次に、単位エリアを定義する(ステップS4)。
図2は単位エリアの説明図である。単位エリアは、コアエリアサイズを決める上で設定する仮想上のエリアであり、単位エリア内には、セル用の電源配線が配線されていると仮定する。図2(A)中、1は単位エリアの一例を示しており、2〜7はセル用の電源配線(2〜4はVDD用の電源配線、5〜7はVSS用の電源配線)、8〜14はセル配置領域である。
ここで、セル用の電源配線の幅および間隔は、予め決定(登録)しておくものとする。そして、単位エリア定義工程(ステップS4)では、単位エリアのサイズを設定する。このようにすると、単位エリアのサイズに応じた本数のセル用の電源配線が単位エリア内に配線される。なお、単位エリアは、正方形であっても、長方形であっても良いが、セル用の電源配線は、横方向または縦方向にのみ配線されるものとし、かつ、同一構造とする。
図2(B)は単位エリア1を横方向に複数個並べた場合におけるセル用の電源配線2〜7の長さと横方向に並べた複数個の単位エリア1内に配置することができるセル数との関係を示している。すなわち、セル用の電源配線2〜7の許容電流値は、その幅に依存するため、複数個の単位エリア1を横方向に並べてセル用の電源配線2〜7の長さを伸ばしても、横方向に並べた複数個の単位エリア1内に配置することができるセル数は、セル用の電源配線2〜7の長さが或る長さLA以上になると一定になってしまう。セル用の電源配線を縦方向に配線する場合も同様のことが言える。
そこで、セル用の電源配線を横方向に設定する場合には、単位エリアの幅は、複数個の単位エリアを横方向に並べた場合に、横方向に並べた複数個の単位エリア内に配置することができるセル数がセル用の電源配線の長さによらず一定になる前の幅に設定する必要がある。
また、セル用の電源配線を縦方向に設定する場合には、単位エリアの高さは、複数個の単位エリアを縦方向に並べた場合に、縦方向に並べた複数個の単位エリア内に配置することができるセル数がセル用の電源配線の長さによらず一定になる前の高さに設定する必要がある。
ステップS4で単位エリアを定義した場合には、次に、単位エリア内のセル用の電源配線の1本あたりの許容電流値を算出し、この許容電流値に単位エリア内の同電位の電源配線の本数をかけ、単位エリアの最大供給電流を算出する(ステップS5)。
たとえば、図2に示す単位エリア1の場合には、電源配線2〜7は同一構造とされているので、電源配線2〜7の1本あたりの許容電流値をI(unit)とすると、VDD用の電源配線が3本、VSS用の電源配線が3本であるから、単位エリア1の最大供給電流は、3×I(unit)となる。
ステップS5で単位エリアの最大供給電流を算出した場合において、コアエリアにマクロおよび階層ブロックがある場合には、次に、ステップS1で算出したコアエリア部分の消費電流と、ステップS3で算出したマクロ毎の消費電流および階層ブロック毎の消費電流と、ステップS5で算出した単位エリア最大供給電流を元に、最低限必要な単位エリア数を算出する(ステップS6)。
ここで、たとえば、コアエリア部分の消費電流をI(Chip)、各マクロの消費電流の和をΣI(macro)、各階層ブロックの消費電流の和をΣI(blk)、単位エリアの最大供給電流をΣI(unit)、単位エリアの最大供給電流を越えないようにすることができる最低限必要な単位エリア数をnとすると、数1に示す関係式が得られる。
ステップS6で最低限必要な単位エリア数を算出した場合には、次に、ネットリスト内の全マクロと階層ブロックを除いたセルの面積をS(cell)、セルの使用率をR(cell)、単位エリアの面積をS(unit)とした場合に、数2に示す関係式が成立するか否かを確認する(ステップS7)。
すなわち、実際に使用するセル配置領域の面積≦n×S(unit)であるか否か、換言すれば、ステップS6で算出した最低限必要単位エリア数が実際に使用するセル配置領域の面積との関係で足りているか否かを判断する。ここで、
の場合(ステップS7でNOの場合)には、数2に示す式を満足するように、最低限必要な単位エリア数nを大きくする(ステップS8)。
これに対して、数2に示す式を満足する場合(ステップS7でYESの場合)、または、ステップS8で最低限必要な単位エリア数nを大きくした場合には、次に、全単位エリアの面積に、全マクロを配置するために実際に使用する面積と、全階層ブロックを配置するために実際に使用する面積を加え、チップ面上、実際に必要とするコアエリア面積を算出する(ステップS9)。
ここで、ネットリスト内の各マクロの面積S(macro)をその使用率R(macro)で割ったものの和(実際に使用するマクロ配置領域の面積)をΣ{S(macro)/R(macro)}、各階層ブロックの面積S(blk)をその使用率R(blk)で割ったものの和(実際に使用する階層ブロックの面積)をΣ{S(blk)/R(blk)}とすると、チップ面上、実際に必要とするコアエリア面積Sは数4に示すようになる。
なお、マクロが無い場合には、S(macro)を0としてコアエリア面積Sを求める。また、階層ブロックが無い場合には、S(blk)を0としてコアエリア面積Sを求める。また、マクロおよび階層ブロックが無い場合には、S(macro)およびS(blk)を0としてコアエリア面積Sを求める。
次に、コアエリアサイズ、すなわち、コアエリアの幅(横幅)および高さ(縦幅)を設定する(ステップS10)。図3はコアエリアサイズの決め方の一例を説明するための図であり、マクロおよび階層ブロックが無い場合を示している。図3中、15はコアエリア、16は単位エリアである。すなわち、マクロおよび階層ブロックが無い場合には、図3に示すように、単位エリア16を並べた結果から、コアエリア15の幅と高さを算出することができる。
また、ステップS9で算出したコアエリア面積Sに等しくなるように、幅=高さ=√Sとなるように、幅および高さを決めても良いし、または、S=a×bとなるように、幅=a(またはb)、高さ=b(またはa)となるように、幅および高さを決めても良い。その際、端数が出る場合は、都合の良い長さに切り上げを行っても良い。ここに挙げたのは一例であり、コアエリア面積Sを満たすのであれば、他の方法を用いても良い。
次に、コアエリアに対するマクロおよび階層ブロックのフロアプランを行い(ステップS11)、フロアプラン情報を元に、マクロおよび階層ブロックの配置を行う(ステップS12)。なお、マクロはあるが、階層ブロックが無い場合には、マクロのみの配置を行い、階層ブロックはあるが、マクロが無い場合には、階層ブロックのみの配置を行い、マクロおよび階層ブロックが無い場合には、ステップS11、S12は実行しない。
次に、コアエリアに対して電源配線を実行する(ステップS13)。但し、電源配線は以下の規則(1)〜(6)に従うものとする。(1)マクロおよび階層ブロックの電源メッシュ構造は、マクロおよび階層ブロックの電源仕様に準拠する。
(2)電源配線メッシュ間隔は単位エリアの幅および高さに合わせる。ただし、電源配線メッシュ上にマクロ用または階層ブロック用の電源配線がある場合は、マクロ用または階層ブロック用の電源配線を優先させる。(3)マクロおよび階層ブロックの消費電流は、ステップS3で算出したものを使用する。
(4)単位エリアで消費する電流は単位エリアの最大供給電流とする。ただし、コアエリアの幅および高さと、マクロおよび階層ブロック配置の都合上、単位エリアより小さい部分が発生した場合には、この部分の最大供給電流は、単位エリアとの面積比に応じて決定する。
(5)単位エリア、マクロ、階層ブロックで消費する電流、目標IRドロップ制限値、電源配線構造情報、外部から入力された各電源配線使用層を元に電源配線の幅を設定する。(6)設定された電源幅で電源配線を実施する。
ステップS13で電源配線を配線した場合には、次に、各単位エリアの最大供給電流を超えないようにセル配置を行う(ステップS14)。ここで、各単位エリアの最大供給電流を越えないようにセル配置を行うと、既に、電源配線の幅は、単位エリア、マクロ、階層ブロックで消費する電流および目標IRドロップ制限値を考慮した幅とされているので、IRドロップ制限値および許容電流値の両方を満たすレイアウトになる。
そこで、セル配置(ステップS14)後に、確認のための電源網解析を行い(ステップS15)、更に、その後、図1では図示を省略しているが、信号配線やタイミング解析等を実行する。
なお、本発明の半導体集積回路のレイアウト方法の一実施形態においては、一種類の単位エリアを定義するようにした場合について説明したが、単位エリアに配置するセルタイプ、たとえば、低速タイプ、中速タイプ、高速タイプのそれぞれのセル毎に電源配線の幅および間隔を異にする単位エリア、すなわち、低速タイプのセル用の単位エリア、中速タイプのセル用の単位エリア、高速タイプのセル用の単位エリアを定義するようにしても良い。
たとえば、低速タイプのセル用の電源配線は、幅=1.0μm、間隔=5.0μm、中速タイプのセル用の電源配線は、幅=1.5μm、間隔=7.5μm、高速タイプのセル用の電源配線は、幅=2.0μm、間隔=10.0μmと予め決定(登録)しておき、単位エリアに配置するセルタイプと単位エリアの幅および高さを設定することにより、単位エリアを定義するようにしても良い。
この場合、低速タイプのセル用の単位エリア、中速タイプのセル用の単位エリアおよび高速タイプのセル用の単位エリア中の1種類もしくは2種類または全部を定義して使用するようにしても良い。
図4は本発明の半導体集積回路のレイアウト方法の一実施形態を実施するためのCAD(computer aided design)システムの構成図である。図4中、20はCPU、21はバス、22はRAM、23はROM、24はCRTインタフェース、25はCRT、26はI/Oポート、27はキーボード・インタフェース、28はキーボード、29は外部記憶インタフェース、30は磁気ディスク装置である。
また、磁気ディスク装置30において、31は本発明の半導体集積回路のレイアウト方法の一実施形態の実施に必要な情報を格納する情報格納領域であり、レイアウト対象の半導体集積回路のネットリスト、IRドロップ制限値、単位エリア内のセル用の電源配線の幅および間隔、セル用電源配線長制限値(図2に示すLA)、電源配線使用層などの情報が格納される。
また、32は本発明の半導体集積回路のレイアウト方法の一実施形態の実施に必要なプログラムを格納するプログラム格納領域であり、コアエリア部分消費電流算出プログラム33、マクロ・階層ブロック消費電流算出プログラム34、単位エリアサイズ確認プログラム35、単位エリア最大供給電流算出プログラム36、最低限必要単位エリア数算出プログラム37、面積比較プログラム38、最低限必要単位エリア数拡大プログラム39、コアエリア面積算出プログラム40および電源配線プログラ41などが格納される。
コアエリア部分消費電流算出プログラム33は、ステップS1を実行するためにCPU20をコアエリア部分消費電流算出手段として機能させるものであり、CPU20により算出されたコアエリア部分消費電流の値はRAM22に記憶される。
マクロ・階層ブロック消費電流算出プログラム34は、ステップS3を実行するためにCPU20をマクロ・階層ブロック消費電流算出手段として機能させるものであり、CPU20により算出されたマクロ毎または/および階層ブロック毎の消費電流の値はRAM22に記憶される。
単位エリアサイズ確認プログラム35は、定義された単位エリアのサイズ(幅、高さ)がセル用電源配線長制限値内かどうかを確認し、かつ、問題がない場合には、定義された単位エリアのサイズをRAM22に記憶するために、CPU20を単位エリアサイズ確認手段として機能させるものである。
単位エリア最大供給電流算出プログラム36は、ステップS5を実行するためにCPU20を単位エリア最大供給電流算出手段として機能させるものであり、CPU20により算出した単位エリア最大供給電流の値はRAM22に記憶される。
最低限必要単位エリア数算出プログラム37は、ステップS6を実行するためにCPU20を最低限必要単位エリア数算出手段として機能させるものであり、CPU20により算出された最低限必要単位エリア数はRAM22に記憶される。
面積比較プログラム38は、ステップS7を実行するためにCPU20を面積比較手段として機能させるものであり、判定結果はRAM22に記憶される。
最低限必要単位エリア数拡大プログラム39は、ステップS8を実行するためにCPU20を最低限必要単位エリア数拡大手段として機能させるものであり、CPU20により拡大された最低限必要単位エリア数はRAM22に記憶される。
コアエリア面積算出プログラム40は、ステップS9を実行するためにCPU20をコアエリア面積算出手段として機能させるものであり、CPU20により算出されたコアエリア面積はRAM22に記憶される。
電源配線プログラム41は、ステップS13を実行するためにCPU20を電源配線手段として機能させるものであり、電源配線構築プログラム42、電源幅算出プログラム43、電源配線プログラム44を含んでいる。
電源配線構築プログラム42は、フロアプラン情報、単位エリアの幅/高さ情報、外部から入力された電源配線使用層情報を元に、電源配線位置、構造を設定して記憶するためのものである。
電源幅算出プログラム43は、電源配線構築プログラムで取得した電源配線構築情報、単位エリアの最大消費電流情報、マクロまたは/および階層ブロックの消費電流情報、電源配線層の抵抗情報、IRドロップ制限値情報を元に、電源配線幅を設定して記憶するためのものである。電源配線プログラム44は、電源配線構築プログラムで設定した電源配線構築情報、電源幅算出プログラムで算出した電源幅情報を元に、電源配線を行うためのものである。
以上のように、本発明の半導体集積回路のレイアウト方法の一実施形態においては、電源配線を行う(ステップS13)前に、単位エリアを定義し(ステップS4)、単位エリアの最大供給電流を算出し(ステップS5)、最低限必要単位エリア数を算出し(ステップS7)、セル使用率との関係で最低限必要単位エリア数が足りない場合には、最低限必要単位エリア数を大きくする(ステップS8)としている。
そして、その後、コアエリア面積を算出し(ステップS9)、コアエリアサイズを設定し(ステップS10)、フロアプランを行い(ステップS11)、マクロ、階層ブロックを配置し(ステップS12)、電源配線を行い(ステップS13)、セルを配置し(ステップS14)、電源網解析を行う(ステップS15)としている。
この結果、セル配置工程(ステップS14)で、各単位エリアの最大供給電流を超えないようにセル配置を行う場合には、IRドロップ制限値および許容電流値の両方を満たすレイアウトになる。
したがって、本発明の半導体集積回路のレイアウト方法の一実施形態によれば、電源網解析でIRドロップ違反や許容電流値超過違反が発生しないようにすることができ、電源網解析でのイタレーションの発生を無くし、TAT短縮を図ることができる。
また、本発明の半導体集積回路のレイアウト方法の一実施形態においては、トップレイアウトを行う場合を例にして説明したが、本発明の半導体集積回路のレイアウト方法は、階層ブロックをレイアウトする場合にも適用することができる。
ここで、本発明を整理すると、本発明には、少なくとも、以下の半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラムが含まれる。
(付記1)レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、CPUにより、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を有することを特徴とする半導体集積回路のレイアウト方法。
(付記2)前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義される単位エリアを定義して記憶手段に記憶する単位エリア定義工程を有することを特徴とする付記1に記載の半導体集積回路のレイアウト方法。
(付記3)前記単位エリア定義工程後、前記電源配線工程より前に、前記CPUにより、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、前記CPUにより、前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程を有することを特徴とする付記2に記載の半導体集積回路のレイアウト方法。
(付記4)前記最低限必要単位エリア数算出工程後、前記電源配線工程より前に、前記CPUにより、前記半導体集積回路のネットリスト内のセルの面積を単位面積あたりにセルを配置する割合で割った値をセル配置領域の面積として算出し、前記単位エリアの面積と前記最低限必要な単位エリア数との積と、前記セル配置領域の面積を比較する工程と、前記セル配置領域の面積よりも、前記単位エリアの面積と前記最低限必要な単位エリア数との積の方が小さい場合には、前記単位エリアの面積と前記最低限必要な単位エリア数との積が前記セル配置領域の面積以上となるように、前記CPUにより、前記最低限必要な単位エリア数を多くする最低限必要単位エリア数拡大工程を有することを特徴とする付記3に記載の半導体集積回路のレイアウト方法。
(付記5)前記最低限必要単位エリア数拡大工程後、前記電源配線工程より前に、前記CPUにより、前記半導体集積回路のネットリスト内のマクロの面積を単位面積あたりにマクロを配置する割合で割った値をマクロ配置領域の面積、前記半導体集積回路のネットリスト内の階層ブロックの面積を単位面積あたりに階層ブロックを配置する割合で割った値を階層ブロック配置領域の面積とし、前記マクロ配置領域の面積と前記階層ブロックの面積と前記セル配置領域の面積との和を前記コアエリアの面積として算出するコアエリア面積算出工程を有することを特徴とする付記4に記載の半導体集積回路のレイアウト方法。
(付記6)レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程をコンピュータに実行させるプログラムを含むことを特徴とする半導体集積回路のレイアウトプログラム。
(付記7)前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義された単位エリアを記憶手段に記憶する単位エリア定義工程をコンピュータに実行させるプログラムを含むことを特徴とする付記6に記載の半導体集積回路のレイアウトプログラム。
(付記8)前記単位エリア定義工程後、前記電源配線工程より前に、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程をコンピュータに実行させるプログラムを含むことを特徴とする付記7に記載の半導体集積回路のレイアウトプログラム。
(付記9)前記最低限必要単位エリア数算出工程後、前記電源配線工程より前に、前記半導体集積回路のネットリスト内のセルの面積を単位面積あたりにセルを配置する割合で割った値をセル配置領域の面積として算出し、前記単位エリアの面積と前記最低限必要な単位エリア数との積と、前記セル配置領域の面積を比較する工程と、前記セル配置領域の面積よりも、前記単位エリアの面積と前記最低限必要な単位エリア数との積の方が小さい場合には、前記単位エリアの面積と前記最低限必要な単位エリア数との積が前記セル配置領域の面積以上となるように、前記最低限必要な単位エリア数を多くする最低限必要単位エリア数拡大工程をコンピュータに実行させるプログラムを含むことを特徴とする付記8に記載の半導体集積回路のレイアウトプログラム。
(付記10)前記最低限必要単位エリア数拡大工程後、前記電源配線工程より前に、前記半導体集積回路のネットリスト内のマクロの面積を単位面積あたりにマクロを配置する割合で割った値をマクロ配置領域の面積、前記半導体集積回路のネットリスト内の階層ブロックの面積を単位面積あたりに階層ブロックを配置する割合で割った値を階層ブロック配置領域の面積とし、前記マクロ配置領域の面積と前記階層ブロックの面積と前記セル配置領域の面積との和を前記コアエリアの面積として算出するコアエリア面積算出工程をコンピュータに実行させるプログラムを含むことを特徴とする付記9に記載の半導体集積回路のレイアウトプログラム。
1…単位エリア
2〜7…電源配線
8〜14…セル配置領域
15…コアエリア
16…単位エリア
20…CPU
21…バス
22…RAM
23…ROM
24…CRTインタフェース
25…CRT
26…I/Oポート
27…キーボード・インタフェース
28…キーボード
29…外部記憶インタフェース
30…磁気ディスク装置
31…情報格納領域
32…プログラム格納領域
33…コアエリア部分消費電流算出プログラム
34…マクロ・階層ブロック消費電流算出プログラム
35…単位エリアサイズ確認プログラム
36…単位エリア最大供給電流算出プログラム
37…最低限必要単位エリア数算出プログラム
38…面積比較プログラム
39…最低限必要単位エリア数拡大プログラム
40…コアエリア面積算出プログラム
41…電源配線プログラム
42…電源配線構築プログラム
43…電源幅算出プログラム
44…電源配線プログラム
2〜7…電源配線
8〜14…セル配置領域
15…コアエリア
16…単位エリア
20…CPU
21…バス
22…RAM
23…ROM
24…CRTインタフェース
25…CRT
26…I/Oポート
27…キーボード・インタフェース
28…キーボード
29…外部記憶インタフェース
30…磁気ディスク装置
31…情報格納領域
32…プログラム格納領域
33…コアエリア部分消費電流算出プログラム
34…マクロ・階層ブロック消費電流算出プログラム
35…単位エリアサイズ確認プログラム
36…単位エリア最大供給電流算出プログラム
37…最低限必要単位エリア数算出プログラム
38…面積比較プログラム
39…最低限必要単位エリア数拡大プログラム
40…コアエリア面積算出プログラム
41…電源配線プログラム
42…電源配線構築プログラム
43…電源幅算出プログラム
44…電源配線プログラム
Claims (6)
- レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、CPUにより、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を有する
ことを特徴とする半導体集積回路のレイアウト方法。 - 前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義される単位エリアを定義して記憶手段に記憶する単位エリア定義工程を有する
ことを特徴とする請求項1に記載の半導体集積回路のレイアウト方法。 - 前記単位エリア定義工程後、前記電源配線工程より前に、前記CPUにより、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、
前記CPUにより、前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程を有する
ことを特徴とする請求項2に記載の半導体集積回路のレイアウト方法。 - レイアウト対象の半導体集積回路のコアエリアのセル配置領域、マクロ配置領域または/および階層ブロックのそれぞれに想定される最大電流および前記半導体集積回路のIRドロップ制限値を元に、IRドロップ違反箇所および許容電流値超過違反箇所が発生しない幅を持つ電源配線を配線する電源配線工程を
コンピュータに実行させるプログラムを含むことを特徴とする半導体集積回路のレイアウトプログラム。 - 前記電源配線工程より前に、セル配置領域と、幅および間隔が予め決定されているセル用の電源配線が存在し、サイズを設定することにより定義された単位エリアを記憶手段に記憶する単位エリア定義工程を
コンピュータに実行させるプログラムを含むことを特徴とする請求項4に記載の半導体集積回路のレイアウトプログラム。 - 前記単位エリア定義工程後、前記電源配線工程より前に、前記単位エリア内の前記セル用の電源配線の許容電流値と本数を元に、前記単位エリアの最大供給電流を算出する単位エリア最大供給電流算出工程と、
前記コアエリアの消費電流と前記単位エリアの最大供給電流を元に、最低限必要な単位エリア数を算出する最低限必要単位エリア数算出工程を
コンピュータに実行させるプログラムを含むことを特徴とする請求項5に記載の半導体集積回路のレイアウトプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006312438A JP2008130710A (ja) | 2006-11-20 | 2006-11-20 | 半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006312438A JP2008130710A (ja) | 2006-11-20 | 2006-11-20 | 半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008130710A true JP2008130710A (ja) | 2008-06-05 |
Family
ID=39556263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006312438A Withdrawn JP2008130710A (ja) | 2006-11-20 | 2006-11-20 | 半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008130710A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045211A (ja) * | 2011-08-23 | 2013-03-04 | Hitachi Ltd | プリント基板設計支援装置およびプリント基板設計支援プログラム |
-
2006
- 2006-11-20 JP JP2006312438A patent/JP2008130710A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045211A (ja) * | 2011-08-23 | 2013-03-04 | Hitachi Ltd | プリント基板設計支援装置およびプリント基板設計支援プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7681165B2 (en) | Apparatus and methods for congestion estimation and optimization for computer-aided design software | |
Roy et al. | High-performance routing at the nanometer scale | |
US7992122B1 (en) | Method of placing and routing for power optimization and timing closure | |
Ding et al. | Pin accessibility-driven detailed placement refinement | |
US8151228B2 (en) | Method and apparatus for automated circuit design | |
US7971174B1 (en) | Congestion aware pin optimizer | |
US9659138B1 (en) | Methods, systems, and computer program product for a bottom-up electronic design implementation flow and track pattern definition for multiple-patterning lithographic techniques | |
EP2278506A1 (en) | Method and apparatus for automated circuit design | |
US20090172628A1 (en) | Method and System for Utilizing Hard and Preferred Rules for C-Routing of Electronic Designs | |
US8984465B1 (en) | Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design | |
US8239797B1 (en) | Congestion aware block placement | |
US8707230B1 (en) | Method and system for semiconductor simulation | |
US11030383B2 (en) | Integrated device and method of forming the same | |
US9213793B1 (en) | Methods, systems, and articles of manufacture for implementing electronic designs using flexible routing tracks | |
JP2010040661A (ja) | 半導体装置の設計方法、プログラム及び半導体装置 | |
US10089433B2 (en) | Method for triple-patterning friendly placement | |
US10424518B2 (en) | Integrated circuit designing system and a method of manufacturing an integrated circuit | |
KR20170073513A (ko) | 회로 구성요소를 규정하는 표준 셀의 레이아웃을 수정하기 위한 컴퓨터 구현 시스템 및 방법 | |
JP2010066871A (ja) | 半導体集積回路のレイアウト設計方法及びレイアウト設計装置 | |
US7810051B2 (en) | Layout method, CAD apparatus, computer-readable program and computer-readable storage medium | |
US9639647B2 (en) | Method of making semiconductor device and system for performing the same | |
US12032890B2 (en) | Mechanism to place repeaters on existing structured routing based on geometric consideration and to place lattice multi-layer metal structures over cells | |
JP2007258215A (ja) | セル配置プログラム、セル配置装置、及びセル配置方法 | |
JP2008130710A (ja) | 半導体集積回路のレイアウト方法および半導体集積回路のレイアウトプログラム | |
US8716869B2 (en) | Cell array and density features with decoupling capacitors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090727 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20101201 |