(57)【特許請求の範囲】
【請求項１】
複数の機能セルを配置する集積回路のレイアウト方法において、
入力された動作条件にて各機能セルを動作させた場合の消費電力に基づいて、該機能セルに必要なデカップリング容量の第１容量値を算出する第１算出ステップと、
該第１算出ステップで算出された第１容量値のデカップリング容量の配置に必要な所定の大きさの配置領域が付加された機能セルを含むセルライブラリを作成するステップと、
前記集積回路の回路データをシミュレートして得られる各機能セルの消費電力に基づいて、各機能セルに必要なデカップリング容量の第２容量値を算出する第２算出ステップと、
該第２算出ステップで算出された第２容量値のデカップリング容量の配置に必要な配置領域及び前記機能セルを有する仮想セルを作成するステップと、
前記仮想セルを配置するステップと、
前記仮想セルの配置領域にデカップリング容量を配置するステップと
を備え、
前記仮想セルを作成するステップは、前記セルライブラリに含まれる前記機能セルに付加された前記所定の大きさの配置領域から、前記第２算出ステップで算出された必要なデカップリング容量の第２容量値に応じて、一定容量値のデカップリング容量の配置に必要な単位領域を削減し、前記仮想セルを作成すること
を特徴とする集積回路のレイアウト方法。
【請求項２】
複数の機能セルを配置する集積回路のレイアウトをコンピュータに実行させるコンピュータプログラムにおいて、
コンピュータに、入力された動作条件にて各機能セルを動作させた場合の消費電力に基づいて、該機能セルに必要なデカップリング容量の第１容量値を算出させる第１算出ステップと、
コンピュータに、前記第１算出ステップで算出された第１容量値のデカップリング容量の配置に必要な所定の大きさの配置領域が付加された機能セルを含むセルライブラリを作成させるステップと、
コンピュータに、前記集積回路の回路データをシミュレートして得られる各機能セルの消費電力に基づいて、各機能セルに必要なデカップリング容量の第２容量値を算出させる第２算出ステップと、
コンピュータに、前記第２算出ステップで算出された第２容量値のデカップリング容量の配置に必要な配置領域及び前記機能セルを有する仮想セルを作成させるステップと、
コンピュータに、前記仮想セルを配置させるステップと、
コンピュータに、前記仮想セルの配置領域にデカップリング容量を配置させるステップと
を備え、
前記仮想セルを作成させるステップは、前記セルライブラリに含まれる前記機能セルに付加された前記所定の大きさの配置領域から、前記第２算出ステップで算出された必要なデカップリング容量の第２容量値に応じて、一定容量値のデカップリング容量の配置に必要な単位領域を削減し、前記仮想セルを作成させるようにしてあること
を特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源のノイズによる誤動作を防止するためのデカップリング容量を備える半導体集積回路のレイアウト方法及びコンピュータに該レイアウト方法を実行させるコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路は微細化及び高集積化が進んでおり、これに伴って動作電圧の低電圧化及び動作周波数の高速化等が進んでいる。例えば、半導体集積回路を製造するプロセスのルールは０．１μｍ以下となり、これに伴って動作電圧は１．２Ｖ以下になり、また動作周波数は数百ＭＨｚ以上となっている。高速化により半導体集積回路ではノイズが増加し、また、低電圧化によりノイズに対する耐性は悪化するため、ノイズによる回路の誤動作が発生しやすくなるという問題がある。
【０００３】
ノイズによる回路の誤動作を防止するために、回路の電源間にデカップリング容量を設ける方法がある。従来、ＣＡＤ段階におけるデカップリング容量の配置は、まずフリップフロップ、論理ゲート素子、クロックバッファ及びＩ／Ｏセル等の機能セルを適宜の規則に従ってチップ内に配置し、その後に機能セルが配置されない空き領域に対して行われていた。この場合、機能セル及びデカップリング容量の配置後に、十分な量のデカップリング容量が配置されているか否かを検証し、デカップリング容量が十分に配置されていない場合には、デカップリング容量を配置する空き領域を広げるように、機能セルの配置を再度行う必要があった。
【０００４】
特許文献１においては、予めノイズの低減に必要なデカップリング容量を見積もり、必要なデカップリング容量をチップのデッドスペースとなるコーナーエリア及びＩ／Ｏセルの周囲へ優先的に配置する半導体集積回路のレイアウト方法及びこの方法でレイアウトされた半導体集積回路が提案されている。
【０００５】
また、特許文献２においては、チップ内に機能セルの配置を行った後、チップを複数の領域に分割して領域毎に必要なデカップリング容量の量を決定し、必要量に応じて各領域を増大又は縮小させて、デカップリング容量を各領域に配置する方法が提案されている。
【特許文献１】特開２００４−０５５９５４号公報
【特許文献２】特開２００２−２８８２５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のデカップリング容量を配置する方法においては、機能セル配置後の空き領域にデカップリング容量を配置しており、また、特許文献１に記載の半導体集積回路のレイアウト方法においては、チップのコーナーエリア及びＩ／Ｏセルの周囲へデカップリング容量を配置しているため、特にデカップリング容量を必要とする機能セル、例えばフリップフロップ及びクロックバッファ等の電源ノイズの発生源となる機能セルの近傍に、デカップリング容量が配置されず、デカップリング容量が効率的に機能しない虞がある。
【０００７】
また、従来及び特許文献２に記載のデカップリング容量を配置する方法においては、チップ内にまず機能セルを配置した後で、デカップリング容量を配置しているため、デカップリング容量を配置する空き領域が不足した場合には、空き領域を確保するためにレイアウトを修正しなければならず、レイアウトの作業に時間を要するという問題がある。
【０００８】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、予め各機能セル毎に必要なデカップリング容量の値を算出しておき、算出した値のデカップリング容量の配置に必要な配置領域及び機能セルを有する仮想セルを作成し、仮想セルをチップ内に配置した後で、仮想セルの配置領域にデカップリング容量を配置することにより、必要な量のデカップリング容量を最適な位置に確実に配置することができ、デカップリング容量の不足に起因する配置の再実行を減少でき、また、チップ内に仮想セルを配置する場合に、仮想セルの配置が行いやすい集積回路のレイアウト方法、及びこのレイアウト方法をコンピュータに実行させるコンピュータプログラムを提供することにある。
【０００９】
また本発明の他の目的とするところは、予め各機能セル毎に必要なデカップリング容量の値を算出しておき、算出した値のデカップリング容量及び機能セルを有する仮想セルを作成して、仮想セルをチップ内に配置することにより、必要な量のデカップリング容量を最適な位置に確実に配置することができ、デカップリング容量の不足に起因する配置の再実行を減少できる集積回路のレイアウト方法及びコンピュータプログラムを提供することにある。
【００１０】
また本発明の他の目的とするところは、機能セルに所定の値のデカップリング容量又は所定の値のデカップリング容量の配置に必要な配置領域を付加したものを予めセルライブラリとして用意しておき、デカップリング容量の必要量に応じて、デカップリング容量又は配置領域を削減して仮想セルを作成することにより、簡単に仮想セルを作成することができる集積回路のレイアウト方法及びコンピュータプログラムを提供することにある。
【００１１】
また本発明の他の目的とするところは、機能セルに必要なデカップリング容量の値に応じて、機能セルにデカップリング容量又は配置領域を付加して仮想セルを作成することにより、仮想セルが必要量のデカップリング容量を確実に備えることができる集積回路のレイアウト方法及びコンピュータプログラムを提供することにある。
【００１２】
また本発明の他の目的とするところは、一定の値のデカップリング容量を有する単位容量セル又は一定の大きさの単位領域を用意しておき、単位容量セル又は単位領域を付加又は削減して仮想セルを作成することにより、仮想セルの作成が簡単に行える集積回路のレイアウト方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
第１発明に係る集積回路のレイアウト方法は、複数の機能セルを配置する集積回路のレイアウト方法において、入力された動作条件にて各機能セルを動作させた場合の消費電力に基づいて、該機能セルに必要なデカップリング容量の第１容量値を算出する第１算出ステップと、該第１算出ステップで算出された第１容量値のデカップリング容量の配置に必要な所定の大きさの配置領域が付加された機能セルを含むセルライブラリを作成するステップと、前記集積回路の回路データをシミュレートして得られる各機能セルの消費電力に基づいて、各機能セルに必要なデカップリング容量の第２容量値を算出する第２算出ステップと、該第２算出ステップで算出された第２容量値のデカップリング容量の配置に必要な配置領域及び前記機能セルを有する仮想セルを作成するステップと、前記仮想セルを配置するステップと、前記仮想セルの配置領域にデカップリング容量を配置するステップとを備え、前記仮想セルを作成するステップは、前記セルライブラリに含まれる前記機能セルに付加された前記所定の大きさの配置領域から、前記第２算出ステップで算出された必要なデカップリング容量の第２容量値に応じて、一定容量値のデカップリング容量の配置に必要な単位領域を削減し、前記仮想セルを作成することを特徴とし、第２発明に係るコンピュータプログラムは、複数の機能セルを配置する集積回路のレイアウトをコンピュータに実行させるコンピュータプログラムにおいて、コンピュータに、入力された動作条件にて各機能セルを動作させた場合の消費電力に基づいて、該機能セルに必要なデカップリング容量の第１容量値を算出させる第１算出ステップと、コンピュータに、前記第１算出ステップで算出された第１容量値のデカップリング容量の配置に必要な所定の大きさの配置領域が付加された機能セルを含むセルライブラリを作成させるステップと、コンピュータに、前記集積回路の回路データをシミュレートして得られる各機能セルの消費電力に基づいて、各機能セルに必要なデカップリング容量の第２容量値を算出させる第２算出ステップと、コンピュータに、前記第２算出ステップで算出された第２容量値のデカップリング容量の配置に必要な配置領域及び前記機能セルを有する仮想セルを作成させるステップと、コンピュータに、前記仮想セルを配置させるステップと、コンピュータに、前記仮想セルの配置領域にデカップリング容量を配置させるステップとを備え、前記仮想セルを作成させるステップは、前記セルライブラリに含まれる前記機能セルに付加された前記所定の大きさの配置領域から、前記第２算出ステップで算出された必要なデカップリング容量の第２容量値に応じて、一定容量値のデカップリング容量の配置に必要な単位領域を削減し、前記仮想セルを作成させるようにしてあることを特徴とする。
【００１４】
本発明においては、予め各機能セル毎に必要なデカップリング容量の値を算出し、算出した値のデカップリング容量の配置に必要な配置領域及び機能セルを有する仮想セルを作成し、仮想セルをチップ内に配置した後に、仮想セルの配置領域にデカップリング容量を配置する。予め仮想セル内に必要なデカップリング容量を配置するための領域が含まれているため、仮想セルを配置することによりで確実にデカップリング容量が配置される。また、機能セル及び配置領域で仮想セルを作成するため、仮想セルのデータ量が少なくなり、仮想セルの配置が行いやすくなる。
【００１８】
本発明においては、機能セルに所定の値のデカップリング容量の配置に必要な所定の大きさの配置領域を付加したものを予めライブラリとして用意し、デカップリング容量の必要量に応じて所定の大きさの配置領域を削減して仮想セルを作成する。デカップリング容量を削減するのみの処理であるため、簡単に仮想セルが作成できる。
【００２０】
本発明においては、機能セルに必要なデカップリング容量の値に応じて、機能セルに配置領域を付加して仮想セルを作成する。予め別のライブラリを作成しておくことなく、確実に必要量のデカップリング容量を備える仮想セルが作成できる。
【００２２】
本発明においては、一定の大きさの単位領域を削減して仮想セルを作成する。単位領域の削減のみで仮想セルを作成するため、仮想セルの作成が簡単に行える。
【発明の効果】
【００２３】
本発明による場合は、予め各機能セル毎に必要なデカップリング容量の値を算出しておき、算出した値のデカップリング容量の配置に必要な配置領域及び機能セルを有する仮想セルを作成し、仮想セルをチップ内に配置した後で、仮想セルの配置領域にデカップリング容量を配置することにより、予め仮想セル内に必要なデカップリング容量を配置する領域が含まれているため、仮想セルを配置することで最適な位置に確実にデカップリング容量が配置でき、デカップリング容量が不足してレイアウトの修正を行うことがないため、集積回路のレイアウト期間を短縮することができる。また、仮想セルのデータ量が少なくなるため、仮想セルの配置が行いやすく、集積回路のレイアウト期間を短縮することができる。
【００２５】
また本発明による場合は、機能セルに所定の値のデカップリング容量の配置に必要な配置領域を付加したものを予めライブラリとして用意しておき、デカップリング容量の必要量に応じて配置領域を削減して仮想セルを作成することにより、仮想セルの作成は配置領域を削減するのみの処理であるため、簡単に仮想セルが作成でき、集積回路のレイアウト期間を短縮することができる。
【００２７】
また本発明による場合は、一定の大きさの単位領域を用意しておき、単位領域を削減して仮想セルを作成することにより、単位領域の削減のみで仮想セルを作成できるため、仮想セルの作成を簡単に行うことができ、集積回路のレイアウト期間を短縮することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。
（実施の形態１）
図１は、本発明に係る半導体集積回路のレイアウトを示す模式的平面図であり、ロジックセルが複数レイアウトされている部分を一部拡大して図示してある。図において２０は半導体集積回路であり、半導体集積回路２０には、フリップフロップ及びクロックバッファ等の常にクロックと共に動作し、ノイズの発生源になりやすいロジックセル１と、フリップフロップ間に配され、フリップフロップ間に伝達される信号の論理演算を行うＮＡＮＤ及びＮＯＲ等のノイズの発生源になりにくいロジックセル２とが半導体チップ上に多数配されている。
【００２９】
また、半導体集積回路２０には、電源配線又は接地配線に接続される複数のグローバル配線３が並設してあり、２つのグローバル配線３の間にロジックセル１及び２が配され、両側のグローバル配線３に接続されている。また、ノイズの発生源になりやすいロジックセル１の周辺には、ノイズを削減するためのデカップリング容量セル４が複数配されている。デカップリング容量セル４は、例えばｐ型半導体基板上に形成されたｐ型ウェルと、ｐ型ウェルに絶縁膜を挟んで対向するシリコンのゲート電極とで構成されるコンデンサを用いる。
【００３０】
図２は、本発明に係るレイアウトプログラムを実行するコンピュータの構成を示すブロック図である。図２において５０はコンピュータの主演算処理を行うＣＰＵであり、ＣＰＵ５０には表示装置５１、入力装置５２、メモリ５３及び記憶装置５４が接続されている。表示装置５１はＣＲＴディスプレイ又は液晶ディスプレイ等であり、ＣＰＵ５０から与えられるデータに基づいてレイアウト画像を表示する。入力装置５２はキーボード及びマウス等であり、設計者からの入力をＣＰＵ５０に与えるものである。メモリ５３は、ＳＲＡＭ又はＤＲＡＭ等で構成され、ＣＰＵ５０にて実行されるプログラム及びこのプログラムが処理を行うデータ等を一時的に記憶するものである。
【００３１】
記憶装置５４は、ハードディスク、フラッシュメモリ又は光ディスク等により構成される不揮発性の記憶装置であり、プログラム５５、回路データ５６及びセルライブラリ５７等が記憶されている。プログラム５５は回路データ５６を基にして半導体集積回路２０のレイアウトを自動で行うものであり、プログラム５５が行う処理の詳細は後述する。回路データ５６は、動作検証及びタイミング検証等が終了したレイアウト対象の回路の構成が記録されたデータであり、所謂ネットリストの形式で記憶装置５４に記憶されている。セルライブラリ５７は、半導体集積回路２０に配置されるフリップフロップ、ＮＡＮＤ素子及びＮＯＲ素子等の各セルの平面形状を有しており、プログラム５５はセルライブラリ５７から各セルの平面形状を読み出してレイアウトを行う。
【００３２】
図３は、本発明の実施の形態１に係るセルライブラリ５７の作成工程を示すフローチャートであり、既存のセルライブラリを修正し、本発明に係るレイアウト方法によりプログラム５５がレイアウトを行うためのセルライブラリ５７を作成する工程を示している。
【００３３】
また、図４は、本発明の実施の形態１に係るセルライブラリ５７に含まれるセルの平面形状の作成過程を示す模式図であり、１つのセルを図示している。なお、セルライブラリ５７の作成は、プログラム５５に含まれるライブラリ作成機能により自動的に行われるものである。
【００３４】
セルライブラリ５７の作成は、まず既存のセルライブラリの読み込みから行う（ステップＳ１）。既存のセルライブラリには、図４（ａ）に示すように、２本のグローバル配線３、３を含む複数のロジックセル１及び２（図４にはロジックセル１のみ図示してある）の平面形状が登録されており、従来のレイアウトプログラムはこのセルライブラリに登録されている平面形状に基づいてレイアウトを行うものである。
【００３５】
次いで、セルライブラリ５７を用いて作成される半導体集積回路２０の動作条件の読み込みを行う（ステップＳ２）。動作条件は、セルライブラリ５７を用いて作成される半導体集積回路２０の動作周波数、電源電圧及びノイズの許容量等であり、設計者によって予め定められるものである。動作条件の読み込みは、設計者が予め動作条件を記述したファイルを用意しておき、このファイルを読み込むことにより行うか、又は設計者が入力装置５２から入力した値を直接読み込むことにより行う。このとき読み込む動作条件は、セルライブラリ５７により作成される半導体集積回路２０を動作させると想定される動作条件の中で最も厳しい動作条件とする。
【００３６】
次いで、既存のセルライブラリに含まれる複数のロジックセル１及び２から、１つのロジックセル１を選択し（ステップＳ３）、選択したロジックセル１に関して処理を開始する。まず、ステップＳ２で読み込んだ動作条件に基づいて、選択したロジックセル１に必要なデカップリング容量の容量値Ｃｄを算出する（ステップＳ４）。必要なデカップリング容量の容量値Ｃｄは、以下の式により算出する。
【００３７】
【数１】
0005224642.tif 000002
【００３８】
なお、（１）式において、ｆは動作周波数であり、ｖｄｄは電源電圧であり、Δｖはノイズの許容値である。これらはステップＳ２にて読み込んだ動作条件であり、最も厳しい値が与えられる。また、Ｐは読み込んだ動作条件で選択したロジックセル１を動作させた場合に消費される消費電力であり、自動的に算出される。Ｓｃｅｌｌは選択したロジックセル１の面積であり、βは選択したロジックセル１の単位面積当たりの寄生電源容量であり、これらの情報はステップＳ１にて読み込んだ既存のセルライブラリ中に含まれている。
【００３９】
次いで、算出したデカップリング容量の容量値Ｃｄに基づいて、必要なデカップリング容量セル４の数Ｎｄを算出する（ステップＳ５）。デカップリング容量セル４は、一定の領域として例えば最小のＮＡＮＤ素子を１つ配置することが可能な面積を有する領域に、容量値の等しいコンデンサをそれぞれ配したものであり、一定の領域毎にデカップリング容量を配することで、半導体集積回路２０のレイアウトを効率よく行うことができる。デカップリング容量セル４の数Ｎｄは以下の（２）式により算出する。
【００４０】
【数２】
0005224642.tif 000003
【００４１】
なお、（２）式において、Ｃｎは１つのデカップリング容量セル４の容量値である。また、デカップリング容量セル４の数Ｎｄは整数であるので、算出結果が小数となる場合には、切り上げて整数にする。
【００４２】
次いで、必要なデカップリング容量セル４の数Ｎｄに応じて、デカップリング容量セル４を配置するための配置領域５を選択したロジックセル１の周囲に付加する（ステップＳ６）。このとき、配置領域５をロジックセル１に付加する位置は、予め定められた優先順位又はステップＳ６時に設計者が指定する優先順位等に従って決定される。例えば、略矩形をなすロジックセル１の各辺に対して設計者が優先順位を決定し、優先順位の高い辺に対して配置領域５を付加する。更に、配置領域５を付加した後のセル全体の形状が矩形に近い形状となるように付加することが好ましいが、略Ｌ字型又は略十字型等の他の形状であってもよい。図４（ｂ）は配置領域５が付加されたロジックセル１であり、この場合、ロジックセル１を囲んで２２個の配置領域５が設けられている。また、このときに、デカップリング容量セル４のためのグローバル配線３を付加しておく。
【００４３】
次いで、配置領域５が付加されたロジックセル１を、１つの仮想セル１０としてセルライブラリ５７に登録する（ステップＳ７）。これにより、１つのロジックセル１に対する処理は終了するため、既存のセルライブラリに含まれるロジックセル１全てについて処理が終了したか否かを調べ（ステップＳ８）、未処理のロジックセル１が存在する場合には（Ｓ８：ＮＯ）、ステップＳ３へ戻り、他のロジックセル１を選択して配置領域５の付加処理を行う。全てのロジックセル１の処理が終了した場合は（Ｓ８：ＹＥＳ）、セルライブラリ５７の作成処理を終了する。なお、デカップリング容量が必要ないロジックセル２は、これらの処理は行わず、既存のセルライブラリから新しいセルライブラリ５７にコピーするのみでよい。
【００４４】
図５は、本発明の実施の形態１に係るセルライブラリ５７を用いて行うレイアウト工程を示すフローチャートである。レイアウト工程は、まず記憶装置５４からセルライブラリ５７を読み込むことから行う（ステップＳ２１）。次いで、同様に記憶装置５４からレイアウトを行う半導体集積回路２０の回路データ５６を読み込み（ステップＳ２２）、更に動作条件の読み込みを行う（ステップＳ２３）。動作条件の読み込みは、設計者が予め動作条件を記述したファイルを用意しておき、このファイルを読み込むことにより行うか、又は設計者が入力装置５２から入力した値を直接読み込むことにより行う。このとき読み込む動作条件は、回路データ５６の半導体集積回路２０を実際に動作させる条件のうちの最も厳しい条件である。
【００４５】
次いで、読み込んだセルライブラリ５７、回路データ５６及び動作条件に基づいて、セルライブラリ５７に含まれる各セルが消費する消費電力の算出を行う（ステップＳ２４）。このとき、回路データ５６を用いて半導体集積回路２０の動作をシミュレートしながら消費電力の算出を行って、より正確な消費電力を得ることができる。
【００４６】
次いで、セルライブラリ５７に含まれる複数の仮想セル１０から１つの仮想セルを選択し（ステップＳ２５）、選択した仮想セル１０に関しての処理を開始する。まず、ステップＳ２３で読み込んだ動作条件及びステップＳ２４で算出した消費電力に基づいて、選択した仮想セル１０に必要なデカップリング容量の容量値Ｃｄを算出する（ステップＳ２６）。デカップリング容量の容量値Ｃｄの算出は、上述の（１）式を用いて行う。次いで、算出したデカップリング容量の容量値Ｃｄに基づいて、必要なデカップリング容量セル４の数Ｎｄを、上述の（２）式により算出し（ステップＳ２７）、デカップリング容量セル４の数Ｎｄの算出後、算出結果に基づいて仮想セル１０のシュリンクを行う（ステップＳ２８）。
【００４７】
図６は、本発明の実施の形態１に係る仮想セル１０のシュリンク例を示す模式図である。図６において（ａ）がシュリンク前の仮想セル１０であり、（ｂ）がシュリンク後の仮想セル１０である。シュリンク前の仮想セル１０、即ちセルライブラリ５７に登録されている仮想セル１０が、デカップリング容量セル４を配置するための配置領域５をロジックセル１の周囲に２２個配した構造であり、ステップＳ２７にて必要なデカップリング容量セル４の数Ｎｄが１０個と算出された場合、不必要な１２個の配置領域５を削除してシュリンクを行っている。このとき、配置領域５の削除は、予め定められたアルゴリズム又は予め定められた優先順位に従って行われる。アルゴリズム又は優先順位を、例えば、シュリンク後の仮想セル１０の形状が配置の行いやすい形状となるように定めておくことにより、限られたチップ面積により多くの仮想セル１０を配置することができる。
【００４８】
仮想セル１０のシュリンクを行った後、全ての仮想セル１０についてシュリンク処理を終了したか否かを調べ（ステップＳ２９）、未処理の仮想セル１０が存在する場合（Ｓ２９：ＮＯ）、ステップＳ２５へ戻って別の仮想セル１０を選択し、選択した仮想セル１０のシュリンク処理を行う。全ての仮想セル１０のシュリンク処理が終了した場合（Ｓ２９：ＹＥＳ）、シュリンク後の仮想セル１０の配置を行って（ステップＳ３０）、半導体集積回路２０のレイアウトを行う。このとき、デカップリング容量セル４が必要ないロジックセル２も仮想セル１０と共に配置する。
【００４９】
図７は、本発明に係る半導体集積回路２０の仮想セル１０の配置例を示す模式的平面図である。仮想セル１０は、ロジックセル１の種類に応じて必要なデカップリング容量の容量値が異なるため、大きさ及び形状がそれぞれ異なっており、半導体集積回路２０では、複数の種類の仮想セル１０及びロジックセル２が、セル間の配線（図示せず）を通すスペースは確保しつつ、可能な限り近接するように配されている。
【００５０】
次いで、仮想セル１０の配置領域５にデカップリング容量セル４を配置し（ステップＳ３１）、レイアウト工程を終了する。
【００５１】
図８は、本発明に係る半導体集積回路２０のデカップリング容量セル４配置後の構成を示す模式的平面図である。デカップリング容量セル４は仮想セル１０内に予め設けられていた配置領域５にそれぞれ配置する。これにより、ノイズの発生源となりやすいロジックセル１の近傍にデカップリング容量セル４が確実に配され、ノイズを削減することができる。
【００５２】
以上のように、ロジックセル１のノイズを抑制するために必要なデカップリング容量の容量値を予め算出し、デカップリング容量セル４を配置するための配置領域５をロジックセル１に予め付加して仮想セル１０を作成し、仮想セル１０を配置してレイアウトを行うことにより、必要なデカップリング容量を確実に配置することができるため、レイアウト終了後にデカップリング容量の不足が発生し、再レイアウトを行う必要が生じることがない。
【００５３】
なお、本実施の形態においては、フリップフロップ及びクロックバッファ等のロジックセル１にのみデカップリング容量セル４を付加する方法を示したが、これに限るものではなく、ＮＡＮＤ及びＮＯＲ等のロジックセル２にもデカップリング容量セル４を付加してもよい。また、レイアウトを行うプログラム５５が図３のフローチャートに示すセルライブラリ５７を作成する機能を有している構成を示したが、これに限るものではなく、セルライブラリ５７を作成する専用のプログラムを別途用意する構成であってもよい。また、プログラム５５が図５に示すフローチャートのステップＳ２４の消費電力の算出を行う構成としたが、これに限るものではなく、消費電力の算出を別のプログラムにて行い、算出結果のみをステップＳ２４にて読み込む構成であってもよい。
【００５４】
また、図３に示すフローチャートのステップＳ２にて読み込む動作条件を、半導体集積回路を動作させると想定される動作条件の中で最も厳しい条件としたが、これに限るものではなく、半導体集積回路を動作させると想定される動作条件に対してある程度の幅を持たせた条件であってもよく、また、半導体集積回路を動作させると想定される動作条件そのものであってもよい。また、図５に示すフローチャートにおいては、ステップＳ２４〜Ｓ２９の仮想セルのシュリンク処理を必ず行う構成を示したが、これに限るものではなく、ステップＳ２３にて読み込んだ動作条件が、ステップＳ２１にて読み込んだセルライブラリの動作条件と一致する場合には、ステップＳ２４〜Ｓ２９の処理を省略して、セルライブラリ中の仮想セルのシュリンク処理を行うことなく、ステップＳ３０の配置処理を行う構成としてもよい。
【００５５】
（変形例）  図９は、本発明の実施の形態１の変形例に係るセルライブラリ５７に含まれるセルの平面形状を示す模式図であり、実施の形態１の図４（ｂ）に対応するものである。図４（ｂ）ではロジックセル１の周囲にデカップリング容量を配置するための配置領域５を付加してあるが、図９ではロジックセル１の周囲にデカップリング容量セル４を付加してある。
【００５６】
ロジックセル１の周囲にデカップリング容量セル４を付加したセルライブラリ５７を作成するために、図３に示すセルライブラリ作成工程のフローチャートのステップＳ６において、ロジックセル１に配置領域５の付加を行う処理に代えて、ロジックセル１にデカップリング容量セル４の付加を行う。
【００５７】
また、ロジックセル１の周囲にデカップリング容量セル４が付加されたセルライブラリ５７を用いてレイアウトを行う場合、図５に示すレイアウト工程のフローチャートにおいて、ステップＳ３１の仮想セル１０の配置領域５にデカップリング容量セル４を配置する処理を行う必要がないため、ステップＳ３０にて仮想セル１０の配置を行ってレイアウト工程を終了する。
【００５８】
以上のように、ロジックセル１にデカップリング容量セル４を付加してセルライブラリ５７を作成しておき、レイアウトを行う場合であっても、必要なデカップリング容量を確実に配置することができるため、レイアウト終了後にデカップリング容量の不足が発生し、再レイアウトを行う必要が生じることがない。
【００５９】
（実施の形態２）
実施の形態１においては、予め仮想セル１０を含んだセルライブラリ５７を作成し、レイアウト工程において仮想セル１０のシュリンクを行ったが、実施の形態２においては、予めセルライブラリ５７を作成せず、レイアウト工程においてロジックセル１に配置領域５を付加して仮想セル１０の作成を行う。図１０は、本発明の実施の形態２に係るレイアウト工程を示すフローチャートである。
【００６０】
レイアウト工程は、まず記憶装置５４からセルライブラリを読み込むことから行う（ステップＳ４１）。このとき読み込むセルライブラリは、仮想セル１０を含んだセルライブラリ５７ではなく、ロジックセル１及び２のみの平面形状が登録された既存のセルライブラリである。次いで、記憶装置５４からレイアウトを行う半導体集積回路２０の回路データ５６を読み込み（ステップＳ４２）、更に動作条件の読み込みを行う（ステップＳ４３）。このとき読み込む動作条件は、回路データ５６の半導体集積回路２０を実際に動作させる条件のうちの最も厳しい条件である。これらの読み込み後、読み込んだセルライブラリ、回路データ５６及び動作条件に基づいて、半導体集積回路２０の動作をシミュレートしながら、各ロジックセル１及び２が消費する消費電力の算出を行う（ステップＳ４４）。
【００６１】
次いで、セルライブラリに含まれる複数のロジックセル１から１つのロジックセルを選択し（ステップＳ４５）、選択したロジックセル１に関しての処理を開始する。まず、動作条件及び消費電力に基づいて、選択したロジックセル１に必要なデカップリング容量の容量値Ｃｄを（１）式により算出し（ステップＳ４６）、算出したデカップリング容量の容量値Ｃｄに基づいて、必要なデカップリング容量セル４の数Ｎｄを（２）式により算出する（ステップＳ４７）。デカップリング容量セル４の数Ｎｄの算出後、算出結果に基づいてロジックセル１にデカップリング容量セル４を配置するための配置領域５を付加して（ステップＳ４８）、仮想セル１０を作成する。
【００６２】
図１１は、本発明の実施の形態２に係る仮想セル１０の作成例を示す模式図である。図１１において（ａ）がロジックセル１の単体であり、（ｂ）がロジックセル１に配置領域５が付加された仮想セル１０である。ステップＳ４７にて必要なデカップリング容量セル４の数Ｎｄが９個と算出された場合に、９個の配置領域５をロジックセル１の周囲に付加している。このとき、配置領域５の付加は、予め定められたアルゴリズム又は優先順位に従って行われる。アルゴリズム又は優先順位を、例えば、配置領域５の付加後の仮想セル１０の形状が正方形又は長方形等の配置を行いやすい形状となるように定めておくことにより、限られたチップ面積により多くの仮想セル１０を配置することができる。
【００６３】
ロジックセル１に配置領域５の付加を行った後、全てのロジックセル１について配置領域５の付加処理を終了したか否かを調べ（ステップＳ４９）、未処理のロジックセル１が存在する場合（Ｓ４９：ＮＯ）、ステップＳ４５へ戻って別のロジックセル１を選択し、選択したロジックセル１に対する配置領域５の付加処理を行う。
【００６４】
全てのロジックセル１の配置領域５の付加処理が終了した場合（Ｓ４９：ＹＥＳ）、ロジックセル１に配置領域５を付加して作成された仮想セル１０の配置を行って（ステップＳ５０）、半導体集積回路２０のレイアウトを行う。このとき、デカップリング容量セル４が必要ないロジックセル２も仮想セル１０と共に配置する。次いで、仮想セル１０の配置領域５にデカップリング容量セル４を配置し（ステップＳ５１）、レイアウト工程を終了する。
【００６５】
以上のように、レイアウト工程においてロジックセル１にデカップリング容量セル４を配置するための配置領域５を付加して仮想セル１０を作成する場合であっても、実施の形態１と同様に、必要なデカップリング容量を確実に配置することができるため、レイアウト終了後にデカップリング容量の不足が発生し、再レイアウトを行う必要が生じることがない。
【００６６】
なお、実施の形態１の変形例と同様に、仮想セル１０を作成する場合に、配置領域５をロジックセル１に付加するのではなく、デカップリング容量セル４をロジックセル１に付加してもよい。
【００６７】
実施の形態２に係るレイアウト方法のその他の構成は、実施の形態１に係るレイアウト方法の構成と同様であるため、対応する箇所には同じ符号を付して詳細な説明を省略する。
【図面の簡単な説明】
【００６８】
【図１】本発明に係る半導体集積回路のレイアウトを示す模式的平面図である。
【図２】本発明に係るレイアウトプログラムを実行するコンピュータの構成を示すブロック図である。
【図３】本発明の実施の形態１に係るセルライブラリの作成工程を示すフローチャートである。
【図４】本発明の実施の形態１に係るセルライブラリに含まれるセルの平面形状の作成過程を示す模式図である。
【図５】本発明の実施の形態１に係るセルライブラリを用いて行うレイアウト工程を示すフローチャートである。
【図６】本発明の実施の形態１に係る仮想セルのシュリンク例を示す模式図である。
【図７】本発明に係る半導体集積回路の仮想セルの配置例を示す模式的平面図である。
【図８】本発明に係る半導体集積回路のデカップリング容量セル配置後の構成を示す模式的平面図である。
【図９】本発明の実施の形態１の変形例に係るセルライブラリに含まれるセルの平面形状を示す模式図である。
【図１０】本発明の実施の形態２に係るレイアウト工程を示すフローチャートである。
【図１１】本発明の実施の形態２に係る仮想セルの作成例を示す模式図である。
【符号の説明】
【００６９】
１、２  ロジックセル
３  グローバル配線
４  デカップリング容量セル
５  配置領域
１０  仮想セル
２０  半導体集積回路
５０  ＣＰＵ
５４  記憶装置
５５  プログラム
５６  回路データ
５７  セルライブラリ
【図１】
0005224642.tif 000004
【図２】
0005224642.tif 000005
【図３】
0005224642.tif 000006
【図４】
0005224642.tif 000007
【図５】
0005224642.tif 000008
【図６】
0005224642.tif 000009
【図７】
0005224642.tif 000010
【図８】
0005224642.tif 000011
【図９】
0005224642.tif 000012
【図１０】
0005224642.tif 000013
【図１１】
0005224642.tif 000014