(57)【特許請求の範囲】
【請求項１】
チップ内に複数のセルを配置する集積回路のレイアウト方法において、
レイアウト対象の複数のセルをその遅延時間の順にソートする工程と、
最も遅延時間が大きいセルを前記チップの周辺領域側に配置し、セルの遅延時間が小さくなるにつれて、前記チップのより中央領域側に当該セルを配置する工程とを有することを特徴とする集積回路のレイアウト方法。
【請求項２】
請求項１において、
前記ソート工程で、第１の遅延時間を有する第１のセル群と、前記第１の遅延時間より小さい第２の遅延時間を有する第２のセル群とを検出し、
前記配置工程で、前記第１のセル群の複数のセルを、前記チップのより周辺領域側に配置し、前記第２のセル群の複数のセルを、前記チップのより中心領域側に配置することを特徴とする集積回路のレイアウト方法。
【請求項３】
チップ内に複数のセルを配置する集積回路のレイアウトプログラムにおいて、
レイアウト対象の複数のセルをその遅延時間の順にソートする手順と、
最も遅延時間が大きいセルを前記チップの周辺領域側に配置し、セルの遅延時間が小さくなるにつれて、前記チップのより中央領域側に当該セルを配置する手順とをコンピュータに実行させる集積回路のレイアウトプログラム。
【請求項４】
チップ内に複数の機能マクロを配置する集積回路のレイアウト方法において、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする工程と、
最も動作速度マージンが小さい機能マクロを前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロを配置する工程とを有することを特徴とする集積回路のレイアウト方法。
【請求項５】
チップ内に複数の機能マクロを配置する集積回路のレイアウトプログラムにおいて、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする手順と、
最も動作速度マージンが小さい機能マクロを前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロを配置する手順とをコンピュータに実行させる集積回路のレイアウトプログラム。
【請求項６】
チップ内に複数の機能マクロを配置する集積回路のレイアウト方法において、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする工程と、
最も動作速度マージンが小さい機能マクロをリング形状にして前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロをより小さいリング形状にして配置する工程とを有することを特徴とする集積回路のレイアウト方法。
【請求項７】
チップ内に複数の機能マクロを配置する集積回路のレイアウトプログラムにおいて、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする手順と、
最も動作速度マージンが小さい機能マクロをリング形状にして前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロをより小さいリング形状にして配置する手順とをコンピュータに実行させる集積回路のレイアウトプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路のレイアウト方法とそのプログラムに関し、特に、電源配線の電圧降下による影響を緩和した集積回路のレイアウト方法とそのプログラムに関する。
【０００２】
【従来の技術】
従来のＡＳＩＣデザインでは、電源配線の幅や膜厚を十分大きくすることで電源配線による電圧降下をなくし、チップ全体にわたり均一な電源電圧を供給できるようにしている。従って、チップ内のレイアウトプロセスにおいて、主に、接続配線領域の最小化やクリティカルパスの最短化などを可能にするセル間や機能マクロ間の接続を優先して、セルまたは機能マクロのチップ内レイアウト（フロアプラン）を行っている。
【０００３】
図１は、チップ内の電源配線の一例を示す平面図である。チップ１０の周辺に設けられた多数の電源端子１２に接続され、電源端子１２に沿って一周する電源リング１４が設けられ、更に、その電源リング１４に接続する複数の内部電源配線１５が格子状に設けられる。このような電源配線構成にすることで、外部から電源端子１２に供給される電源電圧が、電源リング１４と内部電源配線１５を介して、チップ内に均一に供給される。グランド側の電源配線も、上記と同様の構成になり、チップ内には均一の電源電圧とグランド電圧とが供給される。
【０００４】
【発明が解決しようとする課題】
一方、近年、集積回路は、高集積化、高速化のために、トランジスタや配線の微細化が進められている。それに伴い、チップ内の電源配線も微細化される傾向にある。将来、電源配線の断面積が狭くなるにしたがい、電源配線の抵抗による電圧降下が無視できなくなることが予想される。
【０００５】
図２は、将来予想される電源電圧の分布を示す図である。図２には、外部電源リング１４は示されているが、内部電源配線１５は省略されている。電源リング１４の内側が、集積回路のレイアウト領域２０である。チップ周辺に設けられた電源端子１２に供給された電源電圧は、電源リング１４と内部電源配線１５を経由して、レイアウト領域２０内に分配される。しかし、将来の微細化に伴って、内部電源配線１５などの抵抗が無視できないほど大きくなり、電源電圧の低下が大きくなる。
【０００６】
図２に示されるとおり、レイアウト領域２０の４つの隅の電源電圧Ｖｃｃ１と、４つの辺の中央部の電源電圧Ｖｃｃ２と、電源リング１４から離れたレイアウト領域の中央部の電源電圧Ｖｃｃ３とは、例えば、Ｖｃｃ１＞Ｖｃｃ２＞Ｖｃｃ３の関係になる。つまり、電源リング１４からの距離が大きくなるにつれて、電源配線の抵抗成分による電圧降下で、そこに供給される電源電圧Ｖｃｃが低くなる。
【０００７】
図示しないが、グランド電圧についても同様のことがいえる。つまり、グランド電源が微細化されることにともない、チップの周辺からの距離が大きくなるにつれて、そこに供給されるグランド電圧は逆に高くなる。
【０００８】
上記のように、電源電圧Ｖｃｃが低下すると、その領域に配置されたセルやマクロの動作速度が低下し、集積回路として動作不能になることが予想される。つまり、セルや機能マクロは、あらかじめ設計されている動作速度を前提にして、集積回路の構成要素として利用される。従って、レイアウトに伴う電源電圧降下により、その前提となる動作速度が低下してしまうと、所定の動作を予定していた集積回路の動作が不能になる可能性がある。グランド電圧が上昇する場合も、同様の現象が予想される。
【０００９】
そこで、本発明の目的は、電源配線が微細化されてチップ内の位置によって電源電圧が異なる場合でも、集積回路として動作不能になるのをできるだけ防止することができるレイアウト方法及びそのプログラムを提供することにある。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために、本発明の一つの側面は、チップ内に複数のセルを配置する集積回路のレイアウト方法において、レイアウト対象の複数のセルをその遅延時間の順にソートし、最も遅延時間が大きいセルをチップの周辺領域側に配置し、セルの遅延時間が小さくなるにつれて、チップのより中央領域側に当該セルを配置する工程を有することを特徴とする。
【００１１】
また、本発明の別の側面では、チップ内に複数の機能マクロを配置する集積回路のレイアウト方法において、レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートし、最も動作速度マージンが小さい機能マクロをチップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、チップのより中央領域側に当該機能マクロを配置する工程を有することを特徴とする。
【００１２】
更に、本発明の別の側面では、チップ内に複数の機能マクロを配置する集積回路のレイアウト方法において、レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートし、最も動作速度マージンが小さい機能マクロをリング形状にしてチップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、チップのより中央領域側に当該機能マクロをより小さいリング形状にして配置する工程を有することを特徴とする。
【００１３】
上記の発明によれば、遅延時間が大きいセルをチップ周辺領域側に、遅延時間が小さいセルをチップ中央領域側にそれぞれ配置することで、その中央領域側での電源電圧の低下またはグランド電圧の上昇が発生しても、それに伴いセルの動作速度が低下して遅延時間が極端に大きくなり、集積回路が動作不能になることを防止することができる。
【００１４】
また、上記の発明によれば、動作速度マージンが小さい機能マクロをチップ周辺領域側に、動作速度マージンが大きい機能マクロをチップ中央領域側にそれぞれ配置することで、その中央領域側での電源電圧の低下またはグランド電圧の上昇により、機能マクロの動作速度が遅くなっても、動作速度マージンが極端に狭くなって、集積回路が動作不能になることを防止することができる。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、本発明の保護範囲は、以下の実施の形態例に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１６】
図３は、本実施の形態におけるレイアウトツールシステムの構成図である。このレイアウトツールは、ＣＰＵ３０と入出力装置３２とを有する汎用コンピュータシステムに、セルライブラリ３６と、マクロライブラリ３８と、自動レイアウトプログラム４０と、タイミング検証プログラム４２とを有するファイル装置が設けられた構成である。これらのファイル内のプログラムやデータベースは、内部バス３４を介して、ＣＰＵ３０や入出力装置３２に接続される。
【００１７】
そして、レイアウト工程に先立って論理設計された集積回路のネットリスト４４が与えられると、自動レイアウトプログラム４０が、そのネットリスト内のセルや機能マクロをチップ上にレイアウトし、更に、電源配線や接続配線をレイアウトして、そのレイアウトデータ４６を生成する。また、レイアウトされた後に、タイミング検証プログラム４２が、接続配線の遅延時間などを計算し、その遅延時間特性にしたがって集積回路内の信号のタイミングが適切に実現されるか否かのタイミング検証を行う。
【００１８】
ネットリスト４４は、論理設計により生成されるデータであり、集積回路を構成するセルや機能マクロと、それらの接続関係のデータを有する。また、セルライブラリ３６やマクロライブラリ３８は、あらかじめ生成されているデータであり、集積回路に利用可能な複数のセルと機能マクロのデータを有する。
【００１９】
図４は、セルライブラリの構成例を示す図である。セルは、少数のトランジスタなどの回路素子により構成され、論理設計で使用される最低単位の機能要素である。セルには、例えば、ＮＡＮＤゲート、ＮＯＲゲート、フリップフロップ、インバータなどが含まれる。セルライブラリには、これらのセルが複数登録されている。図４の例では、セルライブラリ内に、ＮＡＮＤゲートとしてＮＡＮＤ１，２、ＮＯＲゲートとしてＮＯＲ１，２などが設けられ、それぞれ同じ機能であっても、駆動能力や動作速度が異なる複数のセルが登録されている。図４のセルライブラリには、各セルに対して、その遅延時間データｔｄ１〜ｔｄ８と、物理的なレイアウトデータＬＤ１〜ＬＤ８とが関連付けられている。レイアウトデータは、チップ上に形成されるトランジスタや抵抗、配線の具体的なパターンデータを含む。
【００２０】
従って、セルライブラリ３６を参照することにより、各セルの動作速度、つまり遅延時間特性を知ることができる。
【００２１】
図５は、マクロライブラリの構成例を示す図である。機能マクロは、セルよりも規模が大きく、所定の機能を有する回路ブロックである。従って、機能マクロには、例えば、ＣＰＵやＤＳＰなどのプロセッサ、ＤＲＡＭやＳＲＡＭなどのメモリなどがある。図５には、８種類のマクロMACRO1〜８が登録され、それぞれに対して、内部動作が保証される最大クロック周波数Ｆ１〜Ｆ８と、物理的なレイアウトデータＭＬＤ１〜ＭＬＤ８とが関連付けられている。
【００２２】
従って、マクロライブラリを参照することにより、各機能マクロの動作可能な最大クロック周波数を知ることができる。
【００２３】
この最大クロック周波数は、機能マクロの動作速度マージンと密接な関係を有する。即ち、動作可能な最大クロック周波数とは、機能マクロ内の内部回路の動作速度の速さを示すパラメータである。機能マクロを構成する内部回路の動作速度が速い場合は、より高いクロック周波数でも動作可能である。一方、機能マクロを構成する内部回路の動作速度が遅い場合は、あまり高いクロック周波数では動作できない。従って、動作可能なクロック周波数のレンジがより高い機能マクロは、その動作速度マージンが大きいことを意味し、逆に、動作可能なクロック周波数のレンジがあまり高くない機能マクロは、その動作速度マージンが小さいことを意味する。つまり、動作速度マージンとは、基準となる動作周波数と最大クロック周波数との差に関連する値である。
【００２４】
例えば、動作可能なクロック周波数が高く、動作速度マージンが大きな機能マクロの場合は、供給電源電圧が多少低くなって、内部回路の動作速度が低下しても、動作可能なクロック周波数は、ライブラリで設定されているほど高くはないが、比較的高い周波数になる。一方、動作可能なクロック周波数が低く、動作速度マージンが小さな機能マクロの場合は、供給電源電圧が低くなって、内部回路の動作速度が低下すると、その状態での動作可能なクロック周波数はかなり低くなる。
【００２５】
このようなことから、動作速度マージンが大きな機能マクロは、チップ中央領域側に配置されても、ある程度高いクロック周波数でも動作可能になることが理解される。逆に、動作速度マージンが小さな機能マクロは、チップ中央領域側に配置されると、電源電圧の低下によって動作速度が低下し、ある程度高いクロック周波数ではもはや動作不能になることが予想される。
【００２６】
図６は、第１の実施の形態におけるセルのレイアウト方法を示す図である。また、図７は、第１の実施の形態におけるセルのレイアウト方法のフローチャート図である。図１，２と同様に、チップ１０の周辺には、複数の電源端子１２が設けられ、それらに接続しチップ周辺を一周する電源リング１４が設けられている。この電源リング１４の内側がレイアウト領域２０である。したがって、図２と同様に、内部の電源配線は省略されている。
【００２７】
第１の実施の形態では、レイアウト領域に配置されるセルＡを遅延時間が大きい順に並べたときの、ｎ番目の遅延時間を有するセルをＡｎ（ｎは１〜ｍ）と称する。そして、図６に示されるとおり、遅延時間が最も大きいセルＡ１が、レイアウト領域２０のチップ周辺領域側に沿って、矢印のように配置され、最も大きな遅延時間を有する複数のセルＡ１が全て配置されると、次に大きな遅延時間を有するセルＡ２がその内側に更に配置される。図６の例では、セルＡ２は、チップ周辺領域から２列目に配置される。このような配置を、最も遅延時間が小さいセルＡｍまで行う。最も遅延時間が小さいセルＡｍは、レイアウト領域２０内の中央領域に配置される。つまり、低速セルはよりチップの周辺側に高速セルはより中央側に配置される。
【００２８】
電源の電圧降下は、チップの中央領域に近づくほど大きくなり、それに伴ってセルに印加される電源電圧が低下し、そこに配置されたセルの動作速度が低下する。しかし、上記のようにセルを配置することにより、セルの遅延時間が小さくなるほど、そのレイアウトされる位置がチップ中央領域側に近づいていくので、電源配線の電圧降下により中央領域のセルの動作速度が低下しても、それほどの遅延時間が大きくならず、全体の集積回路の動作に与える影響を最小限に止めることができる。
【００２９】
このような複数のセルのレイアウト方法は、レイアウトすべき要素が、複数のセルだけの場合により効果的である。一般に機能マクロは、その形状が大規模であり、レイアウト領域内に機能マクロが形成されると、遅延時間順の複数のセルをチップ周辺から中央に順に配置することが困難になる場合があるからである。但し、後述するとおり、機能マクロの領域によっては、上記のセルのレイアウト方法を実施することができる場合もある。
【００３０】
図７のフローチャートにしたがって、具体的なレイアウト工程を説明する。この例では、ネットリスト４４には、複数のセルとその接続データが含まれている。ネットリストを指定して自動レイアウトプログラム４０を実行すると、最初に、チップ内に電源配線のレイアウトが行われる（Ｓ１０）。それにより、電源リング１４と内部電源配線１５とがレイアウトされる。次に、レイアウトプログラムは、ネットリスト内の複数のセルを、遅延時間順にソートする（Ｓ１２）。セルの遅延時間は、セルライブラリ３６を参照することにより、各セルの標準的な遅延時間を知ることができる。
【００３１】
次に、レイアウトプログラムは、チップのセルレイアウト領域２０内に、その周辺領域側から中央領域側に向かう方向に、遅延時間が大きいセルの順で配置する（Ｓ１４）。配置の順番は、遅延時間が大きい順に周辺から中央に向かって行っても良いし、遅延時間が小さい順に中央から周辺に向かって行っても良い。また、図６に示したとおり、螺旋状に並べても良いし、ドーナツ状に並べても良い。この工程Ｓ１４では、接続配線領域を考慮して、セル間の距離がある距離に保たれる。
【００３２】
その後、レイアウトプログラムは、ネットリストの接続データにしたがって、セル間の接続配線のレイアウトを行う（Ｓ１６）。この結果、レイアウトデータファイル４６が生成される。
【００３３】
接続配線のレイアウトが終了すると、タイミング検証プログラムが、レイアウトデータを参照して、接続配線の遅延時間を計算し（Ｓ１８）、その計算した遅延時間を利用して、集積回路のタイミング検証を行う（Ｓ２０）。遅延時間の計算工程と、タイミング検証工程は、従来のタイミング検証プログラムにより実現される。通常、タイミング検証をパスできない場合は、再度セルのレイアウト工程Ｓ１２から各工程が繰り返される。
【００３４】
図８は、第２の実施の形態における機能マクロのレイアウト方法を示す図である。また、図９は、第２の実施の形態における機能マクロのレイアウト方法のフローチャート図である。この場合も、チップ１０の周辺に複数の電源端子１２が設けられ、それらに接続しチップ周辺を一周する電源リング１４が設けられている。この電源リング１４の内側がレイアウト領域２０である。
【００３５】
第２の実施の形態では、レイアウト領域に配置される機能マクロＣを動作速度マージンの小さい順に並べたときの、ｎ番目の動作速度マージンを有する機能マクロをＣｎ（ｎは１〜ｍ）と称する。そして、図８に示されるとおり、最も動作速度マージンが小さい機能マクロＣ１から４番目に動作速度マージンが小さい機能マクロＣ４までを、レイアウト領域２０の４つの隅の領域に配置する。そして、５番目に動作速度マージンが小さい機能マクロＣ５から１２番目に小さい機能マクロＣ１２までを、レイアウト領域２０の４隅に近い周辺領域に配置する。以下同様に、動作速度マージンの順番にグループ化した機能マクロを、レイアウト領域２０の周辺から中央に向かって配置する。そして、最も動作速度マージンが大きい機能マクロＣｍが、レイアウト領域２０の中央部に配置される。
【００３６】
このように配置することで、電源電圧降下が小さい周辺領域に動作速度マージンが小さい機能マクロが配置され、電源電圧降下が大きい中央領域に向かって動作速度マージンがより大きい機能マクロが配置される。したがって、中央領域側の機能マクロの動作速度が、電源電圧の低下により遅くなっても、集積回路全体の動作可能なクロック周波数をより高く保つことができ、電源電圧の低下に伴う動作不能を防止することができる。
【００３７】
上記第２の実施の形態のレイアウト方法は、レイアウト領域に配置される機能マクロのサイズが、比較的小さい場合に有効な方法である。また、この方法は、複数の機能マクロに加えて、複数のセルがネットリストに含まれる場合も適用可能である。つまり、図６と図８の方法を併用することは可能である。
【００３８】
図９のフローチャートにしたがって、レイアウト方法を説明する。第１の実施の形態と同様に、ネットリストを指定すると、自動レイアウトプログラム４０が、チップ上に電源配線をレイアウトする（Ｓ３０）。それにより、電源リングや内部電源配線などが形成される。そして、ネットリスト内の複数の機能マクロを、その動作速度マージンが小さい順にソートする（Ｓ３２）。このソートは、マクロライブラリ３８を参照することで、それぞれの機能マクロの動作速度マージンを参照して行われる。
【００３９】
そして、自動レイアウトプログラムは、チップ内のマクロが配置されるレイアウト領域２０内に、周辺部から中央部に向かう方向に、動作速度マージンが小さい機能マクロの順に配置する（Ｓ３４）。この配置の具体例は、図８で説明した通りである。また、配置の順番は、動作速度マージンが大きい機能マクロを中央部に先に配置し、その後マージンが小さい機能マクロを周辺部に配置してもよく、その逆の順番で配置してもよい。
【００４０】
そして、全ての機能マクロのレイアウトが終わると、自動レイアウトプログラムは、ネットリストに基づいて、機能マクロ間の接続配線のレイアウトを行う（Ｓ３６）。その結果、レイアウトデータファイル４６が生成される。
【００４１】
次に、タイミング検証プログラム４２が、接続配線の遅延時間を計算し（Ｓ３８）、集積回路のタイミング検証を行う（Ｓ４０）。
【００４２】
図１０は、第３の実施の形態における機能マクロのレイアウト方法を示す図である。また、図１１は、第３の実施の形態における機能マクロのレイアウト方法のフローチャート図である。この場合も、チップ１０の周辺に複数の電源端子１２が設けられ、それらに接続しチップ周辺を一周する電源リング１４が設けられている。この電源リング１４の内側がレイアウト領域２０である。
【００４３】
第３の実施の形態では、比較的大規模な機能マクロのレイアウトに適用される。特徴的な点は、機能マクロの形状をドーナツ状、つまり、一定の幅ｒを有する帯状で外周辺と内周辺とを有する形状、またはリング形状にすることである。第２の実施の形態と同様に、レイアウト対象の複数の機能マクロを、動作速度マージンが小さい順に並べ、ｎ番目の機能マクロをＢｎとして示している。そして、最も動作速度マージンが小さい機能マクロＢ１を、レイアウト領域２０内の最も外側に、幅ｒ１のリング形状またはドーナツ形状でレイアウトする。その際、配線領域α１をその外側に確保しておく。そして、動作速度マージンが次に小さい機能マクロＢ２は、その内側に、幅ｒ２のリング形状またはドーナツ形状で、機能マクロＢ１と配線領域α２を介して配置する。同様に、動作速度マージンが小さい順にリング形状またはドーナツ形状の機能マクロを、レイアウト領域の中央に向かって配置する。
【００４４】
上記の機能マクロの幅ｒは、４辺で一定になるようにすることが好ましい。同様に、機能マクロ間の配線領域αも、４辺で一定になるようにすることが好ましい。こうすることにより、各機能マクロは、その領域内ではチップ周辺から一定の距離に保たれる。それにより、動作速度マージンが小さい機能マクロは、チップの周辺側に、動作速度マージンが大きい機能マクロは、チップの中央側に配置するというルールが実現される。
【００４５】
上記第３の実施の形態例では、機能マクロの物理的なレイアウトパターンが、リング形状またはドーナツ形状になる。しかも、集積回路に含まれる複数の機能マクロの組合せしだいで、配置される位置が異なり、大きなドーナツ形状（但し幅は狭い）になったり、小さなドーナツ形状（但し幅は広い）になったりする必要がある。したがって、マクロライブラリ３８には、各機能マクロに対して、複数種類のレイアウトデータが登録されていることが好ましい。
【００４６】
図１１のフローチャートにしたがってレイアウト工程を説明する。この場合も、最初に、自動レイアウトプログラムが、電源配線をレイアウトする（Ｓ５０）。そして、ネットリスト内の複数の機能マクロを、動作速度マージンの順にソートする（Ｓ５２）。そして、チップ内のレイアウト領域２０内に、周辺側から中央側に向かう方向に、スピードマージンが小さい順に、リング形状またはドーナツ形状の機能マクロを配置する（Ｓ５４）。そして、レイアウトプログラムは、ネットリストにしたがって、マクロ間の接続配線をレイアウトする（Ｓ５６）。その結果、レイアウトデータファイルが生成される。
【００４７】
その後は、前述と同様に、タイミング検証プログラムが、接続配線の遅延時間を計算し（Ｓ５８）、その遅延時間を利用して、集積回路のタイミング検証を行う（Ｓ６０）。タイミング検証がパスしない場合は、機能マクロのレイアウト工程から再度繰り返される。
【００４８】
図１２は、第１及び第３の実施の形態例を組み合わせたレイアウト例を示す図である。電源リング１４の内側のレイアウト領域において、周辺部に、第３の実施の形態例にしたがう２つのドーナツ形状の機能マクロＢ１，Ｂ２が配置され、その内側の領域に、第１の実施の形態にしたがう複数のセルＡ１〜Ａｎが配置される。この例は、ネットリストに比較的大規模な機能マクロと複数のセルが含まれる例である。
【００４９】
図１３も、第１及び第３の実施の形態例を組み合わせたレイアウト例を示す図である。但し、図１３では、レイアウト領域の周辺部に、第１の実施の形態にしたがう複数のセルＡ１，Ａ２が矢印に沿って配置され、その内側の領域に、第３の実施の形態例にしたがう複数のドーナツ形状の機能マクロＢ１，Ｂ２，Ｂ３が配置される。この例は、ネットリストに比較的多くのセルと、比較的大規模な機能マクロが含まれる例である。
【００５０】
図１４は、第２及び第３の実施の形態例を組み合わせたレイアウト例を示す図である。この例では、レイアウト領域の周辺部に、第３の実施の形態例にしたがう２つのドーナツ形状の機能マクロＢ１，Ｂ２が配置され、その内側の領域に、第２の実施の形態にしたがう複数の機能マクロＣ１〜Ｃ９が配置される。この例は、ネットリストに比較的大規模な機能マクロと小規模な機能マクロとが含まれる例である。
【００５１】
更に、第１及び第２の実施の形態例を組み合わせたレイアウトにすることもできる。例えば、レイアウト領域の周辺部に第１の実施の形態にしたがう複数のセルが配置され、中央部に第２の実施の形態にしたがう複数の機能マクロが配置される。或いは、その逆の組合せでも良い。
【００５２】
更に、上記第１〜３の実施の形態例において、レイアウト領域に配置される全てのセルや機能マクロに対して、各々ルールに従って配置してもよいし、少数の例外的なセルや機能マクロを除いた残りの多数のセルや機能マクロに対して、各々ルールに従って配置するようにしてもよい。
【００５３】
以上、実施の形態例をまとめると以下の付記の通りである。
【００５４】
（付記１）チップ内に複数のセルを配置する集積回路のレイアウト方法において、
レイアウト対象の複数のセルをその遅延時間の順にソートする工程と、
最も遅延時間が大きいセルを前記チップの周辺領域側に配置し、セルの遅延時間が小さくなるにつれて、前記チップのより中央領域側に当該セルを配置する工程とを有することを特徴とする集積回路のレイアウト方法。
【００５５】
（付記２）付記１において、
前記ソート工程で、第１の遅延時間を有する第１のセル群と、前記第１の遅延時間より小さい第２の遅延時間を有する第２のセル群とを検出し、
前記配置工程で、前記第１のセル群の複数のセルを、前記チップのより周辺領域側に配置し、前記第２のセル群の複数のセルを、前記チップのより中心領域側に配置することを特徴とする集積回路のレイアウト方法。
【００５６】
（付記３）チップ内に複数のセルを配置する集積回路のレイアウトプログラムにおいて、
レイアウト対象の複数のセルをその遅延時間の順にソートする手順と、
最も遅延時間が大きいセルを前記チップの周辺領域側に配置し、セルの遅延時間が小さくなるにつれて、前記チップのより中央領域側に当該セルを配置する手順とをコンピュータに実行させる集積回路のレイアウトプログラム。
【００５７】
（付記４）チップ内に複数の機能マクロを配置する集積回路のレイアウト方法において、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする工程と、
最も動作速度マージンが小さい機能マクロを前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロを配置する工程とを有することを特徴とする集積回路のレイアウト方法。
【００５８】
（付記５）付記４において、
前記配置工程において、最も動作速度マージンが小さい機能マクロを、前記チップの周辺の隅に配置することを特徴とする集積回路のレイアウト方法。
【００５９】
（付記６）付記４において、
前記機能マクロの動作速度マージンは、当該機能マクロが動作可能な最大クロック周波数が高いほど、大きいことを特徴とする集積回路のレイアウト方法。
【００６０】
（付記７）チップ内に複数の機能マクロを配置する集積回路のレイアウトプログラムにおいて、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする手順と、
最も動作速度マージンが小さい機能マクロを前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロを配置する手順とをコンピュータに実行させる集積回路のレイアウトプログラム。
【００６１】
（付記８）チップ内に複数の機能マクロを配置する集積回路のレイアウト方法において、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする工程と、
最も動作速度マージンが小さい機能マクロをリング形状にして前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロをより小さいリング形状にして配置する工程とを有することを特徴とする集積回路のレイアウト方法。
【００６２】
（付記９）付記８において、
前記リング形状は、一定の幅を有し、外周辺と内周辺とを有し、更に、隣接するリング形状の機能マクロの間に、一定の幅の配線領域を有することを特徴とする集積回路のレイアウト方法。
【００６３】
（付記１０）付記８において、
前記機能マクロの動作速度マージンは、当該機能マクロが動作可能な最大クロック周波数が高いほど、大きいことを特徴とする集積回路のレイアウト方法。
【００６４】
（付記１１）チップ内に複数の機能マクロを配置する集積回路のレイアウトプログラムにおいて、
レイアウト対象の複数の機能マクロをその動作速度マージンの順にソートする手順と、
最も動作速度マージンが小さい機能マクロをリング形状にして前記チップの周辺領域側に配置し、機能マクロの動作速度マージンが大きくなるにつれて、前記チップのより中央領域側に当該機能マクロをより小さいリング形状にして配置する手順とをコンピュータに実行させる集積回路のレイアウトプログラム。
【００６５】
【発明の効果】
以上、本発明によれば、電源配線の微細化に伴う抵抗成分の増大により、チップ内の中央部で電源電圧が低下し、そこに配置されるセルや機能マクロの動作速度が低下して集積回路の動作不能になることを防止することができる。
【図面の簡単な説明】
【図１】チップ内の電源配線の一例を示す平面図である。
【図２】将来予想される電源電圧の分布を示す図である。
【図３】本実施の形態におけるレイアウトツールシステムの構成図である。
【図４】セルライブラリの構成例を示す図である。
【図５】マクロライブラリの構成例を示す図である。
【図６】第１の実施の形態におけるセルのレイアウト方法を示す図である。
【図７】第１の実施の形態におけるセルのレイアウト方法のフローチャート図である。
【図８】第２の実施の形態における機能マクロのレイアウト方法を示す図である。
【図９】第２の実施の形態における機能マクロのレイアウト方法のフローチャート図である。
【図１０】第３の実施の形態における機能マクロのレイアウト方法を示す図である。
【図１１】第３の実施の形態における機能マクロのレイアウト方法のフローチャート図である。
【図１２】第１及び第３の実施の形態例を組み合わせたレイアウト例を示す図である。
【図１３】第１及び第３の実施の形態例を組み合わせたレイアウト例を示す図である。
【図１４】第２及び第３の実施の形態例を組み合わせたレイアウト例を示す図である。
【符号の説明】
Ａ１〜Ａｍ    セル
Ｂ１〜Ｂｍ    ドーナツ形状の機能マクロ
Ｃ１〜Ｃｍ    機能マクロ
１０          チップ
１２          電源端子
１４          電源リング
１５          内部電源配線
２０          レイアウト領域
【図１】
0004104354.tif 000002
【図２】
0004104354.tif 000003
【図３】
0004104354.tif 000004
【図４】
0004104354.tif 000005
【図５】
0004104354.tif 000006
【図６】
0004104354.tif 000007
【図７】
0004104354.tif 000008
【図８】
0004104354.tif 000009
【図９】
0004104354.tif 000010
【図１０】
0004104354.tif 000011
【図１１】
0004104354.tif 000012
【図１２】
0004104354.tif 000013
【図１３】
0004104354.tif 000014
【図１４】
0004104354.tif 000015