(57)【要約】【課題】  従来よりも電気的ノイズを低減することが可能な半導体集積回路のレイアウト設計方法を提供する。【解決手段】  各機能のファンクションブロックについて、付加されたオンチップキャパシタの容量が相互に異なる複数種類のキャパシタ付きファンクションブロックのライブラリをそれぞれ用意する。先ず、各機能のファンクションブロックについて、それぞれ前記ライブラリのうち最大サイズの容量を有するキャパシタ付きファンクションブロックのライブラリを選択した状態で、配置の検討を行う。配置結果が所定の制約を満足できないと判定される場合に限り、順次、付加されたオンチップキャパシタの容量を小さくして、キャパシタ付きファンクションブロックの配置を検討する。【選択図】    図２
2006261365.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路におけるファンクションブロック及びオンチップキャパシタのレイアウトを設計する方法において、
それぞれ所定の容量のオンチップキャパシタがファンクションブロックに隣設した状態に付加されてなるキャパシタ付きファンクションブロックの配置を検討する第１の過程と、
前記第１の過程での配置結果が所定の制約を満足するものであるか否かを判定する第２の過程と、
を少なくとも備え、
前記所定の制約を満足できないと判定される場合に限り、順次、付加されたオンチップキャパシタの容量を小さくして、前記キャパシタ付きファンクションブロックの配置を検討する第３の過程と、該第３の過程での配置結果が前記所定の制約を満足するものであるか否かを判定する第４の過程と、を繰り返し実行することを特徴とする半導体集積回路のレイアウト設計方法。
【請求項２】
前記所定の制約には、収容性及び遅延のうちの少なくとも何れか一方の制約が含まれていることを特徴とする請求項１に記載の半導体集積回路のレイアウト設計方法。
【請求項３】
前記所定の制約を満足できないと判定される場合に、満足できない原因が、前記ファンクションブロックに付加されたオンチップキャパシタのサイズが大きいことであるか否かを判定する第５の過程を行い、
前記ファンクションブロックに付加されたオンチップキャパシタのサイズが大きいことが原因で前記所定の制約を満足できないと判定された場合に、前記第３の過程以降の過程を実行することを特徴とする請求項１又は２に記載の半導体集積回路のレイアウト設計方法。
【請求項４】
予め、各機能のファンクションブロックについて、付加されたオンチップキャパシタの容量が相互に異なる複数種類のキャパシタ付きファンクションブロックのライブラリをそれぞれ用意しておく第６の過程を備え、
前記第１の過程では、各機能のファンクションブロックについて、それぞれ前記ライブラリのうち最大サイズの容量を有するキャパシタ付きファンクションブロックのライブラリを選択した状態で、配置の検討を行い、
前記第３の過程では、各機能のファンクションブロックのうち所要のファンクションブロックのライブラリを、小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えた状態で、配置の検討を行うことを特徴とする請求項１乃至３の何れか一項に記載の半導体集積回路のレイアウト設計方法。
【請求項５】
前記第３の過程は、
小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えるべきファンクションブロックの数ないしはその割合の目標値を設定する第７の過程と、
前記目標値に相当するファンクションブロックが小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えられるまで、該置き換えを繰り返す第８の過程と、
を備えて構成されていることを特徴とする請求項４に記載の半導体集積回路のレイアウト設計方法。
【請求項６】
前記第３の過程が実行されるたびに、前記第７の過程では、前記目標値を所定値ずつ増加させることを特徴とする請求項５に記載の半導体集積回路のレイアウト設計方法。
【請求項７】
予め、各機能のファンクションブロックについて、優先順位を設定する第９の過程を更に備え、
前記第８の過程では、各機能のファンクションブロックのうち、前記優先順位の低いファンクションブロックから順に、１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換え、該置き換えを、前記優先順位が最も高いファンクションブロックのライブラリまで繰り返しても未だ前記目標値に相当するファンクションブロックが置き換えられない場合には、前記優先順位の低いファンクションブロックから順に、もう１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えることを、前記目標値に相当するファンクションブロックが置き換えられるまで繰り返すことを特徴とする請求項５又は６に記載の半導体集積回路のレイアウト設計方法。
【請求項８】
予め、各機能のファンクションブロックについて、優先順位を設定する第９の過程を更に備え、
前記第８の過程では、各機能のファンクションブロックのうち、前記優先順位の低いファンクションブロックを、１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換え、当該優先順位の低いファンクションブロックを最小サイズの容量を有するキャパシタ付きファンクションブロックのライブラリに置き換えても未だ前記目標値に相当するファンクションブロックが置き換えられない場合には、順次、前記優先順位が１つ高いファンクションブロックについて同様の置き換え処理を実行することを特徴とする請求項５又は６に記載の半導体集積回路のレイアウト設計方法。
【請求項９】
前記第８の過程では、前記目標値に相当するファンクションブロックが小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えられるまで該置き換えを繰り返すことを、各機能のファンクションブロックについてランダムに実行することを特徴とする請求項５又は６に記載の半導体集積回路のレイアウト設計方法。
【請求項１０】
請求項１乃至９のいずれか一項に記載の半導体集積回路のレイアウト設計方法をコンピュータに実行させるためのプログラム。
【請求項１１】
基板又は絶縁層上に形成されたファンクションブロック及びオンチップキャパシタを備える半導体集積回路を製造する方法において、
請求項１乃至９のいずれか一項に記載の半導体集積回路のレイアウト設計方法により決定されたレイアウトでファンクションブロック及びオンチップキャパシタを基板又は絶縁層上に形成する過程を備えることを特徴とする半導体集積回路の製造方法。
【請求項１２】
半導体集積回路におけるファンクションブロック及びオンチップキャパシタのレイアウトを設計する装置において、
オンチップキャパシタがファンクションブロックに隣設した状態に付加されてなるキャパシタ付きファンクションブロックの配置を検討する配置手段と、
前記配置手段による配置結果が所定の制約を満足するものであるか否かを判定する判定手段と、
前記所定の制約を満足できないと判定される場合に、付加されたオンチップキャパシタの容量を小さくする容量縮小手段と、
を備え、
前記配置手段は、先ず、それぞれ所定の容量のオンチップキャパシタがファンクションブロックに隣設した状態に付加されるキャパシタ付きファンクションブロックの配置を検討し、前記所定の制約を満足できないと判定される場合に限り、順次、前記容量縮小手段により容量が小さくされたキャパシタ付きファンクションブロックの配置を検討することを特徴とする半導体集積回路のレイアウト設計装置。
【請求項１３】
前記判定手段には、
前記配置手段による配置結果が収容性を満足するか否かを判定する収容性判定手段と、
前記配置手段による配置結果が遅延を満足するか否かを判定する遅延判定手段と、
のうちの少なくとも何れか一方が含まれていることを特徴とする請求項１２に記載の半導体集積回路のレイアウト設計装置。
【請求項１４】
前記判定手段により前記所定の制約を満足できないと判定される場合に、満足できない原因が、前記ファンクションブロックに付加されたオンチップキャパシタのサイズが大きいことであるか否かを判定する原因判定手段を備え、
前記容量縮小手段は、前記原因判定手段により、前記ファンクションブロックに付加されたオンチップキャパシタのサイズが大きいことが原因で前記所定の制約を満足できないと判定された場合に、付加されたオンチップキャパシタの容量を小さくすることを特徴とする請求項１２又は１３に記載の半導体集積回路のレイアウト設計装置。
【請求項１５】
各機能のファンクションブロックについて、付加されたオンチップキャパシタの容量が相互に異なる複数種類のキャパシタ付きファンクションブロックのライブラリをそれぞれ記憶保持したファンクションブロックライブラリデータベースを備え、
前記配置手段は、先ず、各機能のファンクションブロックについて、それぞれ前記ライブラリのうち最大サイズの容量を有するキャパシタ付きファンクションブロックのライブラリを選択した状態で、配置の検討を行い、
前記容量縮小手段は、前記所定の制約を満足できないと判定される場合に、各機能のファンクションブロックのうち所要のファンクションブロックのライブラリを、小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えることを特徴とする請求項１２乃至１４の何れか一項に記載の半導体集積回路のレイアウト設計装置。
【請求項１６】
小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えるべきファンクションブロックの数ないしはその割合の目標値を設定する目標値設定手段を更に備え、
前記容量縮小手段は、前記目標値に相当するファンクションブロックが小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えられるまで、該置き換えを繰り返すことを特徴とする請求項１５に記載の半導体集積回路のレイアウト設計装置。
【請求項１７】
各機能のファンクションブロックについての優先順位を記憶保持した優先順位データベースを更に備え、
前記容量縮小手段は、各機能のファンクションブロックのうち、前記優先順位の低いファンクションブロックから順に、１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換え、該置き換えを、前記優先順位が最も高いファンクションブロックのライブラリまで繰り返しても未だ前記目標値に相当するファンクションブロックが置き換えられない場合には、前記優先順位の低いファンクションブロックから順に、もう１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えることを、前記目標値に相当するファンクションブロックが置き換えられるまで繰り返すことを特徴とする請求項１６に記載の半導体集積回路のレイアウト設計装置。
【請求項１８】
各機能のファンクションブロックについての優先順位を記憶保持した優先順位データベースを更に備え、
前記容量縮小手段は、各機能のファンクションブロックのうち、前記優先順位の低いファンクションブロックを、１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換え、当該優先順位の低いファンクションブロックを最小サイズの容量を有するキャパシタ付きファンクションブロックのライブラリに置き換えても未だ前記目標値に相当するファンクションブロックが置き換えられない場合には、順次、前記優先順位が１つ高いファンクションブロックについて同様の置き換え処理を実行することを特徴とする請求項１６に記載の半導体集積回路のレイアウト設計装置。
【請求項１９】
前記容量縮小手段は、前記目標値に相当するファンクションブロックが小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えられるまで該置き換えを繰り返すことを、各機能のファンクションブロックについてランダムに実行することを特徴とする請求項１６に記載の半導体集積回路のレイアウト設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト設計方法、そのプログラム、半導体集積回路の製造方法及び半導体集積回路のレイアウト設計装置に関する。
【背景技術】
【０００２】
近年、例えばＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などの半導体集積回路の内部回路が動作することによって発生する電気的ノイズによる遅延の変動や誤動作が問題になっている。
【０００３】
電気的ノイズとしては、例えば、トランジスタのオン・オフ動作によって電源線に電位の“ゆれ”に起因するものが挙げられる。
【０００４】
そのような電気的ノイズを低減する手法としては、ＬＳＩ内部にオンチップキャパシタを配置する手法がある。
【０００５】
従来のＬＳＩ設計におけるファンクションブロック及びオンチップキャパシタの配置方法が、例えば特許文献１に記載されている。
【０００６】
図９は特許文献１の配置方法を示すフローチャートである。
【０００７】
図９に示すように、特許文献１の技術では、先ず、ファンクションブロックの配置場所を、ネットリスト上の接続関係や、与えられた遅延制約や、ブロックの密度などの制約を満足するように決定する（ステップＳ２０１）。
【０００８】
そして、ファンクションブロックが配置されなかった空き地（隙間）の寸法に合わせた寸法のオンチップキャパシタをそれぞれ生成し、該生成したオンチップキャパシタを各空き地に配置する（ステップＳ２０２）。
【０００９】
その後、ファンクションブロック間の配線を行う（ステップＳ２０３）。
【００１０】
従って、特許文献１の技術では、オンチップキャパシタの配置を考慮する（ステップＳ２０２）以前に、ファンクションブロックの配置が決定される（ステップＳ２０１）。
【００１１】
なお、特許文献１に記載されているように、オンチップキャパシタは、ファンクションブロックの近傍に配置することが、電気的ノイズを低減するために好ましい。
【特許文献１】特開１１−１６８１７７号公報（図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１の技術では、ファンクションブロックが配置されなかった空き地にオンチップキャパシタを配置するため、オンチップキャパシタは、必ずしもファンクションブロックの近傍に配置されるわけではなく、電気的ノイズの低減効果が十分ではなかった。
【００１３】
更に、特許文献１の技術によるファンクションブロックの配置結果は、上記の制約を満足するものであるが、制約を最低限満足するのに留まらず、過剰に満足してしまう結果として、ファンクションブロックの集積度が過剰に高くなる場合があった。そして、そのように過剰な集積度でのファンクションブロックの配置を決定した後で、オンチップキャパシタの配置を考慮する場合には、本来は、遅延に余裕があり、もう少しファンクションブロック間の隙間を空けることによりオンチップキャパシタを配置できた場合でも、オンチップキャパシタを配置することができず、電気的ノイズの低減効果が十分に得られないという問題があった。
【００１４】
本発明は、上記のような問題点を解決するためになされたもので、従来よりも電気的ノイズを低減することが可能な半導体集積回路のレイアウト設計方法、そのプログラム、半導体集積回路の製造方法及び半導体集積回路のレイアウト設計装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明の半導体集積回路のレイアウト設計方法は、半導体集積回路におけるファンクションブロック及びオンチップキャパシタのレイアウトを設計する方法において、それぞれ所定の容量のオンチップキャパシタがファンクションブロックに隣設した状態に付加されてなるキャパシタ付きファンクションブロックの配置を検討する第１の過程と、前記第１の過程での配置結果が所定の制約を満足するものであるか否かを判定する第２の過程と、を少なくとも備え、前記所定の制約を満足できないと判定される場合に限り、順次、付加されたオンチップキャパシタの容量を小さくして、前記キャパシタ付きファンクションブロックの配置を検討する第３の過程と、該第３の過程での配置結果が前記所定の制約を満足するものであるか否かを判定する第４の過程と、を繰り返し実行することを特徴としている。
【００１６】
また、本発明のプログラムは、本発明の半導体集積回路のレイアウト設計方法をコンピュータに実行させるためのプログラムであることを特徴としている。
【００１７】
また、本発明の半導体集積回路の製造方法は、基板又は絶縁層上に形成されたファンクションブロック及びオンチップキャパシタを備える半導体集積回路を製造する方法において、本発明の半導体集積回路のレイアウト設計方法により決定されたレイアウトでファンクションブロック及びオンチップキャパシタを基板又は絶縁層上に形成する過程を備えることを特徴としている。
【００１８】
また、本発明の半導体集積回路のレイアウト設計装置は、半導体集積回路におけるファンクションブロック及びオンチップキャパシタのレイアウトを設計する装置において、オンチップキャパシタがファンクションブロックに隣設した状態に付加されてなるキャパシタ付きファンクションブロックの配置を検討する配置手段と、前記配置手段による配置結果が所定の制約を満足するものであるか否かを判定する判定手段と、前記所定の制約を満足できないと判定される場合に、付加されたオンチップキャパシタの容量を小さくする容量縮小手段と、を備え、前記配置手段は、先ず、それぞれ所定の容量のオンチップキャパシタがファンクションブロックに隣設した状態に付加されるキャパシタ付きファンクションブロックの配置を検討し、前記所定の制約を満足できないと判定される場合に限り、順次、前記容量縮小手段により容量が小さくされたキャパシタ付きファンクションブロックの配置を検討することを特徴としている。
【発明の効果】
【００１９】
本発明によれば、それぞれ所定の容量のオンチップキャパシタがファンクションブロックに隣設した状態に付加されてなるキャパシタ付きファンクションブロックの配置を検討する第１の過程と、第１の過程での配置結果が所定の制約を満足するものであるか否かを判定する第２の過程と、を少なくとも備え、所定の制約を満足できないと判定される場合に限り、順次、付加されたオンチップキャパシタの容量を小さくして、キャパシタ付きファンクションブロックの配置を検討する第３の過程と、該第３の過程での配置結果が所定の制約を満足するものであるか否かを判定する第４の過程と、を繰り返し実行するので、所定の制約を満足する範囲内で、最大サイズの容量が付加されたキャパシタ付きファンクションブロックを配置することができる。
【００２０】
より具体的には、収容性や遅延が制約を満足しない場合に限り、付加されたオンチップキャパシタの容量が小さいキャパシタ付きファンクションブロックに置き換えるので、収容性や遅延に余裕がある限りにおいては、最大サイズのオンチップキャパシタが、ファンクションブロックに隣設して配置されることとなる。
【００２１】
よって、オンチップキャパシタの効果が最大限発揮されるので、電気的ノイズによる遅延悪化や誤動作といった諸問題を、従来よりも好適に抑制することができる。
【００２２】
なお、収容性や遅延が満足できない場合には、キャパシタ付きファンクションブロックを、付加されたオンチップキャパシタの容量が小さいものに置き換えるため、遅延制約や収容性は従来と同程度である。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して、本発明に係る実施形態について説明する。
【００２４】
〔第１の実施形態〕
本実施形態では、予め、ファンクションブロックにオンチップキャパシタを隣設して配置し、ファンクションブロックとオンチップキャパシタとを一体化させた“キャパシタ付きファンクションブロック”のライブラリを生成しておく。
【００２５】
しかも、同一の機能のファンクションブロックについて、複数種類のサイズのオンチップキャパシタがそれぞれ付加されたキャパシタ付きファンクションブロックを生成しておく。つまり、各機能のファンクションブロックについて、付加されたオンチップキャパシタのサイズが相互に異なる複数種類のキャパシタ付きファンクションブロックのライブラリを、それぞれ生成しておく。
【００２６】
そして、これらキャパシタ付きファンクションブロックのライブラリを用いて配置検討を行い、配置や遅延などの制約を満足できない場合は、順次、付加されたオンチップキャパシタのサイズが小さいファンクションブロックへと変更していく。
【００２７】
これにより、配置や遅延制約などに余裕がある場合には、極力、ファンクションブロックにオンチップキャパシタが隣設して配置されるようにすることができる。
【００２８】
図１は第１の実施形態に係るファンクションブロック配置装置１を示すブロック図である。
【００２９】
図１に示すように、第１の実施形態に係るファンクションブロック配置装置１は、半導体集積回路（例えば、ＬＳＩ）の基板上又は絶縁層上におけるファンクションブロックの配置検討を行う装置であり、データを記憶する記憶装置１００と、記憶装置１００に記憶されたデータを用いて配置検討の処理を行う制御装置１１０と、を備えて構成されている。
【００３０】
なお、ファンクションブロック配置装置１は、例えば、一般的なＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）装置からなり、記憶装置１００及び制御装置１１０の他に、例えば、制御装置１１０の制御下で各種の表示動作を行う表示部（図示略）や、オペレータが操作を行うための操作部（図示略）を備えている。
【００３１】
このうち記憶装置１００は、制御装置１１０に対するデータの供給などを行うものであり、ネットリストデータベース１０１と、ファンクションブロックライブラリデータベース１０２と、その他のライブラリデータベース１０３と、優先順位ライブラリデータベース（優先順位データベース）１０４と、配置配線完了データベース１０５と、を格納（記憶保持）している。
【００３２】
このうち、ネットリストデータベース１０１は、ファンクションブロック間の結合情報（接続関係の情報）であるネットリストを記憶保持する。
【００３３】
ファンクションブロックライブラリデータベース１０２は、各機能のファンクションブロックについて、付加されたオンチップキャパシタのサイズが相互に異なる複数種類のキャパシタ付きファンクションブロックのライブラリを記憶保持している。
【００３４】
すなわち、ファンクションブロックライブラリデータベース１０２は、例えば、図５に示すように、各機能のファンクションブロックについて、比較的大容量のキャパシタ（オンチップキャパシタ）が隣設された大容量キャパシタ付きファンクションブロック８０３のライブラリと、比較的小容量のキャパシタが隣設された小容量キャパシタ付きファンクションブロック８０２のライブラリと、をそれぞれ記憶保持している。
【００３５】
なお、キャパシタは、容量が大きいほど、寸法も大きいため、付加されたキャパシタの容量が大きいファンクションブロックほど、寸法も大きい。
【００３６】
更に、本実施形態の場合、ファンクションブロックライブラリデータベース１０２は、例えば、キャパシタが付加されていないキャパシタ無しファンクションブロック８０１も、各機能のファンクションブロックについて、それぞれ記憶保持している。
【００３７】
つまり、例えば、簡単のために、ファンクションブロックを機能別に分類した種類が１０種類であるとすると、その１０種類の機能のファンクションブロックについて、それぞれ、キャパシタ無しファンクションブロック８０１、小容量キャパシタ付きファンクションブロック８０２及び大容量キャパシタ付きファンクションブロック８０３の３種類のライブラリが（すなわち、例えば合計３０個のライブラリが）、ファンクションブロックライブラリデータベース１０２に記憶されている。
【００３８】
なお、本実施形態では、簡単のため、キャパシタ付きファンクションブロックに付加されているオンチップキャパシタのサイズが２種類である例を説明するが、実際には、オンチップキャパシタのサイズが多数（例えば、十種類、百種類、千種類、一万種類など）であることを、本発明では想定している。
【００３９】
また、本実施形態では、各機能のファンクションブロックについて、それぞれキャパシタ無しファンクションブロック８０１を用意している例を説明するが、キャパシタ無しファンクションブロック８０１が用意されていない種類のファンクションブロックが含まれていても良い。
【００４０】
また、その他のライブラリデータベース１０３は、一般的なＬＳＩ設計で使用されるライブラリ（但し、キャパシタ付きファンクションブロックライブラリデータベース１０２に記憶されているライブラリは除く）を記憶保持したデータベースである。
【００４１】
優先順位ライブラリデータベース１０４は、図６に示すように、ファンクションブロックの種類に応じた優先順位を示す情報を記憶保持する。
【００４２】
ここで、ファンクションブロックの優先順位は、より大容量のキャパシタを隣設配置する（付加する）ことが好ましいファンクションブロックであるほど、優先順位が高くなるように定めた順位である。
【００４３】
更に、優先順位ライブラリデータベース１０４には、優先順位の情報の他に、置き換え比率（後述）の増加単位を示す情報を記憶保持する。
【００４４】
配置配線完了データベース１０５は、ＬＳＩ設計において“マスクデータ”と呼ばれるものと同一のデータを記憶保持する。
【００４５】
制御装置１１０は、例えば、各種の制御動作を行うＣＰＵと、このＣＰＵの制御用プログラムを記憶保持したＲＯＭと、ＣＰＵの作業領域などとして機能するＲＡＭと、を備えて構成されている。
【００４６】
制御装置１１０は、そのＲＯＭに記憶されたプログラムに従って動作し、ネットリスト取得手段１１１、配置手段１１２、配置検証手段（判定手段、収容性判定手段、原因判定手段）１１３、オンチップキャパシタ生成手段１１４、配線手段１１５、遅延検証手段（判定手段、遅延判定手段、原因判定手段）１１６、ファンクションブロック置き換え手段（容量縮小手段）１１７、置き換え比率管理手段（目標値設定手段）１１８、ファンクションブロック並び替え手段１１９及び回路変更手段１２０として機能する。
【００４７】
このうちネットリスト取得手段１１１は、記憶装置１００のネットリストデータベース１０１からネットリストを取得する。
【００４８】
配置手段１１２は、ネットリスト取得手段１１１により取得したネットリスト中の各ファンクションブロック間の結合情報に従って、ファンクションブロック間の遅延や配線の混雑度が最適になるように、各ファンクションブロックを配置する。
【００４９】
配置検証手段１１３は、ネットリスト中の全てのファンクションブロックが指定されたエリア内に収まるように配置できたか否かの判定と、ネットリスト中の全てのファンクションブロックが指定されたエリア内に収まるように配置できなかった場合（配置がオーバーフローした場合）における原因の判定と、を行う。
【００５０】
オンチップキャパシタ生成手段１１４は、ファンクションブロック間の空き地サイズにそれぞれ合うオンチップキャパシタを生成し、該生成したオンチップキャパシタを各空き地に配置する。
【００５１】
配線手段１１５は、配置手段１１２によって配置されたファンクションブロック間をネットリストに記述された通りに配線する。
【００５２】
遅延検証手段１１６は、ファンクションブロックの配置及び配線の結果（配置配線結果）に基づく回路の遅延の計算、遅延が目標の範囲内に収まっているか否かの判定と、遅延が目標の範囲内に収まらなかった場合における原因の判定と、を行う。
【００５３】
ファンクションブロック置き換え手段１１７は、ファンクションブロックライブラリデータベース１０２を参照して、現在選択されているキャパシタ付きファンクションブロックを段階的にキャパシタの容量が小さなものへと置き換える。
【００５４】
置き換え比率管理手段１１８は、現在の置き換え比率（置き換え比率については後述）の管理や、条件が成立するたびに置き換え比率を所定の増加単位（図６の優先順位ライブラリ参照）分だけ増加させる処理を行う。
【００５５】
本実施形態において、「置き換え比率」とは、最もキャパシタの容量が大きいキャパシタ付きファンクションブロックから、それよりも容量が小さい（又は容量が付加されていない）ファンクションブロックへと置き換えるべきファンクションブロックの数の比率である。
【００５６】
具体的には、例えば、ネットリスト中のファンクションブロックの数が全部で１万個で、置き換え比率が１０％の場合、千個のファンクションブロックを、付加された容量が小さい（又は容量が付加されていない）ファンクションブロックへと置き換える必要がある。
【００５７】
ここで、あるファンクションブロックを、（１）大容量キャパシタ付きファンクションブロック８０３から小容量キャパシタ付きファンクションブロック８０２に置き換えただけの場合には、１個の置き換えとしてカウントする。
【００５８】
他方、あるファンクションブロックを、（２）大容量キャパシタ付きファンクションブロック８０３から小容量キャパシタ付きファンクションブロック８０２に置き換えた後で、更に、小容量キャパシタ付きファンクションブロック８０２からキャパシタ無しファンクションブロック８０１に置き換えた場合には、大容量キャパシタ付きファンクションブロック８０３から小容量キャパシタ付きファンクションブロック８０２に置き換える際に、１個の置き換えを行った旨のカウントを行い、更に、その後で同一のファンクションブロックを（小容量キャパシタ付きファンクションブロック８０２から）キャパシタ無しファンクションブロック８０１に置き換える際にも、１個の置き換えを行った旨のカウントを行う。つまり、大容量キャパシタ付きファンクションブロック８０３から、小容量キャパシタ付きファンクションブロック８０２→キャパシタ無しファンクションブロック８０１へと順次に置き換えた場合には、便宜的に、合計２個の置き換えを行ったものとしてカウントする。
【００５９】
すなわち、置き換え比率に応じて必要となるファンクションブロックの置き換え数は、置き換えの“のべ回数”に相当する。
【００６０】
ファンクションブロック並び替え手段１１９は、優先順位ライブラリデータベース１０４を参照して、ネットリスト中の各ファンクションブロックを優先順位に基づき、降順にソート（並び替え）する。
【００６１】
回路変更手段１２０は、ネットリストデータベース１０１のデータを書き換える。
【００６２】
なお、制御装置１１０の各手段１１２、１１４、１１５、１１７、１２０は、何れも、実際のものについての配置、生成、配線、置き換え、回路変更を行うのではなく、あくまで設計に際してのシミュレーションを行う。
【００６３】
次に、動作を説明する。
【００６４】
図２はファンクションブロック配置装置１によるファンクションブロックの配置検討処理を示すフローチャートである。
【００６５】
先ず、制御装置１１０は、ネットリスト取得手段１１１として機能し、ネットリストデータベース１０１からネットリストを取得する（ステップＳ３００）。
【００６６】
ここで、初期状態においては、ネットリスト１０１中の各ファンクションブロックは、最もキャパシタの容量が大きいキャパシタ付きファンクションブロック（例えば、図５に示す大容量キャパシタ付きファンクションブロック８０３）となっている。
【００６７】
次に、制御装置１１０は、置き換え比率管理手段１１８として機能し、初期設定として、ネットリストに記述されているファンクションブロックの置き換え比率を０％に設定する（ステップＳ３０１）。このように当初の置き換え比率を０％に設定するのは、ファンクションブロックの当初の配置検討を、最大の容量が付加されたキャパシタ付きファンクションブロックで試みるためである。
【００６８】
次に、制御装置１１０は、配置手段１１１として機能し、ネットリスト中の各ファンクションブロックを、ネットリスト中の結合情報に従って、各ファンクションブロック間の遅延や配線の混雑度が最適になるように、半導体集積回路内に配置する（ステップＳ３０２）。
【００６９】
次に、制御装置１１０は、配置検証手段１１３として機能し、全てのファンクションブロックが指定されたエリア内に収まるように配置できたか否かを判定する（ステップＳ３０３）。
【００７０】
配置がオーバーフローしたと判定した場合（ステップＳ３０３のＮ）、ファンクションブロックのサイズが大きいのが原因でオーバーフローしたのか否かを判定する（ステップＳ３０４）。
【００７１】
ファンクションブロックのサイズが原因でオーバーフローしたと判定した場合（ステップＳ３０４のＹ）、制御装置１１０は、ファンクションブロック置き換え手段１１７などとして機能し、ファンクションブロックを置き換える処理（詳細後述）を行い（ステップＳ３０５）、再びステップＳ３０２の配置処理からやり直す。
【００７２】
つまり、ステップＳ３０５のファンクションブロック置き換え処理は、ファンクションブロックのサイズが大きいことが原因で配置の制約を満足できないと判定されるたびに、繰り返し実行される。
【００７３】
他方、オーバーフローした原因が、ファンクションブロックのサイズが大きいためではないと判定した場合（ステップＳ３０４のＮ）、制御装置１１０は、回路変更手段１２０として機能し、回路図の変更や論理合成のやり直しといった一般的なＬＳＩ設計で使用されている手法によってネットリストを更新し（ステップＳ３０６）、再びステップＳ３０２の配置処理からやり直す。
【００７４】
全てのファンクションブロックを指定されたエリア内に収まるように配置できたと判定した場合（ステップＳ３０３のＹ）、制御装置１１０は、オンチップキャパシタ生成手段１１４として機能し、オンチップキャパシタを生成及び配置する（ステップＳ３０７）。ここで生成及び配置するオンチップキャパシタは、ファンクションブロックに付加されたキャパシタとは別のオンチップキャパシタであり、従来と同様に空き地に配置されるため、必ずしもファンクションブロックに隣設されない。
【００７５】
こうして、本実施形態の場合、収容性や遅延に余裕がある限り、最大サイズのオンチップキャパシタが、ファンクションブロックに隣設して、もしくは、空き地に配置されることとなる。
【００７６】
続いて、制御装置１１０は、配線手段１１５として機能し、全てのファンクションブロックをネットリストに記述されたとおりに配線する（ステップＳ３０８）。
【００７７】
次に、制御装置１１０は、遅延検証手段１１６として機能し、遅延検証を行う。すなわち、ファンクションブロックの配置配線結果に基づき回路の遅延を算出し（ステップＳ３０９）、該算出した遅延が目標の範囲内であるか否かを判定する（ステップＳ３１０）。
【００７８】
なお、この遅延検証（ステップＳ３０９〜Ｓ３１０）は、一般的なＬＳＩ設計で使用されている普通の手法で行う。
【００７９】
遅延検証の結果、遅延が目標の範囲内に収まらなかった場合（ステップＳ３１０のＮ）、その原因が、ファンクションブロックのサイズが大きいことにより配線長が長くなってしまったことである否かを判定する（ステップＳ３１１）。
【００８０】
ファンクションブロックのサイズが大きいことにより配線長が長くなってしまったことが原因で、遅延が目標範囲内に収まらなかったと判定した場合（ステップＳ３１１のＹ）、制御装置１１０は、ファンクションブロック置き換え手段１１７などとして機能してファンクションブロックを置き換える処理（詳細後述）を行い（ステップＳ３１２）、ステップＳ３０２の配置処理からやり直す。
【００８１】
つまり、ステップＳ３１２のファンクションブロック置き換え処理は、ファンクションブロックのサイズが大きいことが原因で遅延の制約を満足できないと判定されるたびに繰り返し実行される。
【００８２】
更に、ステップＳ３０５のファンクションブロック置き換え処理は、ファンクションブロックのサイズが大きいことが原因で配置の制約を満足できないと判定されるたびに繰り返し実行されるだけでなく、ファンクションブロックのサイズが大きいことが原因で遅延の制約を満足できないと判定されるたびに繰り返し実行される。
【００８３】
遅延が目標範囲内に収まらなかった原因が、ファンクションブロックのサイズ以外のことであると判定した場合（ステップＳ３１１のＮ）、制御装置１１０は、回路変更手段１２０として機能して回路図の変更や論理合成のやり直しといった一般的なＬＳＩ設計で使用されている手法によってネットリストを更新し（ステップＳ３１３）、再びステップＳ３０２の配置処理からやり直す。
【００８４】
なお、配置がオーバーフローした場合（ステップＳ３０３のＮ）と、遅延が目標範囲内に収まらなかった場合（ステップＳ３１０のＮ）の何れの場合にも、２度目以降の配置処理（ステップＳ３０２）は、回路の変更規模に応じて最初から（全体を）やり直しても良いし、或いは、ＬＳＩのレイアウト設計で一般的に行われるＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）処理により、変更箇所近傍のみやり直しても良い。
【００８５】
また、遅延が目標範囲内に収まったら（ステップＳ３１０のＹ）、図１の処理、すなわち、ファンクションブロックの配置検討処理を終了する。
【００８６】
次に、ファンクションブロック置き換え処理（図２のステップＳ３０５、ステップＳ３１２）について、図３及び図４を参照して詳細に説明する。
【００８７】
図３はファンクションブロック置き換え処理（図２のステップＳ３０５、ステップＳ３１２）の詳細なフローチャートであり、図４は図３の処理を更に詳細に示すフローチャートである。
【００８８】
図３に示すように、ファンクションブロック置き換え処理では、制御装置１１０は、先ず、置き換え比率管理手段１１８として機能し、管理している置き換え比率を優先順位ライブラリに記憶された所定の増加単位の分だけ増加させる（ステップＳ４０１）。
【００８９】
すなわち、本実施形態の場合、例えば、図６に示すように、優先順位ライブラリに記憶された置き換え比率の増加単位は０．１％であるので、１回目のファンクションブロック置き換え処理では、置き換え比率を当初の０％から０．１％に増加させる。
【００９０】
なお、置き換え比率は、ファンクションブロック置き換え処理が実行されるたびに、増加単位分（例えば、０．１％）ずつ増加される。
【００９１】
ステップＳ４０１に続いては、制御装置１１０は、ファンクションブロックを、付加されたキャパシタの容量が小さいものへと置き換える処理を、置き換え比率管理手段１１８により管理された置き換え比率に相当する数のファンクションブロックが置き換えられるまで、優先順位の低いファンクションブロックから順に実行する（ステップＳ４０２）。
【００９２】
次に、図４を参照して、ファンクションブロック置き換え処理をより詳細に説明する。
【００９３】
図４に示すように、ファンクションブロック置き換え処理では、制御装置１１０は、先ず、置き換え比率管理手段１１８として機能し、管理している置き換え比率を優先順位ライブラリに記憶された所定の増加単位の分だけ増加させる（管理している置き換え比率を更新する）（ステップＳ４０１：図３のステップＳ４０１と同じ）。
【００９４】
次に、制御装置１１０は、ファンクションブロック並び替え手段１１９として機能し、ネットリスト中の全てのファンクションブロックを、優先順位ライブラリに記憶された優先順位に従って、降順に並び替える（優先順位が下位のものから順に並ぶように並び替える）（ステップＳ６０１）。
【００９５】
すなわち、例えば、図６に示すように、優先順位が１番目のファンクションブロックとして、第１のインバータ回路、第１及び第２のＮａｎｄ回路があり、優先順位が２番目のファンクションブロックとして、第２のインバータ回路があり、優先順位が３番目のファンクションブロックとして、第３のインバータ回路があり、優先順位が４番目のファンクションブロックとして、第１及び第２のフリップフロップ（ＦＦ）があるような場合、これらファンクションブロックを、第１のＦＦ→第２のＦＦ→第２のインバータ回路→第３のインバータ回路→第１のインバータ回路→第１のＮａｎｄ回路→第２のＮａｎｄ回路の順に並び替える。
【００９６】
なお、第１のインバータ回路、第１のＮａｎｄ回路及び第２のＮａｎｄ回路のように、同一の優先順位のファンクションブロックが複数種類存在する場合、それら同一の優先順位のファンクションブロックの並び順は、例えば、ネットリストにおいてリストアップされている順序に従うようにしても良いし、或いは、ランダムに順序を設定しても良い。
【００９７】
なお、ステップＳ６０１の並び替え処理は、初回のファンクションブロック置き換え処理（ステップＳ３０５又はＳ３１２）でのみ実行すればよい。
【００９８】
また、ステップＳ６０１の並び替え処理は、配置上の並び替えを行うのではなく、その後の処理順序を決定するための並び替えを行う処理である。
【００９９】
更に、制御装置１１０は、このような並び替えがなされた後、ファンクションブロック置き換え手段１１７として機能し、その並び順における１番目のファンクションブロックを、置き換え対象のファンクションブロックに設定する。
【０１００】
次に、ファンクションブロック置き換え手段１１７は、現在までに置き換えられたファンクションブロックの比率が、置き換え比率管理手段１１８により管理されている置き換え比率に達したか否かを判定する（ステップＳ６０２）。
【０１０１】
なお、当然ながら、ステップＳ６０２の処理の初回実行時には、未だファンクションブロックの置き換えがなされていないので、置き換え比率（例えば、０．１％）に相当する数のファンクションブロックは置き換えられていないと判定され（ステップＳ６０２のＮ）、ステップＳ６０３に移行する。
【０１０２】
ステップＳ６０３では、置き換え対象のファンクションブロックを、キャパシタのサイズが１つ小さいファンクションブロックへと置き換える。
【０１０３】
ここで、置き換え対象となっているファンクションブロックが複数個の場合、例えば、これら複数個のファンクションブロックに対して、一括して置き換え処理を行う。
【０１０４】
また、ここで、置き換え対象のファンクションブロックが、既にキャパシタ無しファンクションブロック８０１に置き換えられている場合や、キャパシタ無しファンクションブロック８０１が用意されていない種類のファンクションブロックが既に最小サイズのキャパシタ付きファンクションブロック（例えば、小容量キャパシタ付きファンクションブロック８０２）に置き換えられている場合のように、キャパシタのサイズを現在よりも小さくすることができない場合には、ステップＳ６０３での置き換え処理を実行しない。
【０１０５】
次に、現在までに置き換えられたファンクションブロックの総数（上記の“のべ数”）を算出し、その総数に基づいて、現在までに置き換えられた比率を算出する（ステップＳ６０４）。
【０１０６】
次に、置き換え対象のファンクションブロックを、先のステップＳ６０１での並び替え後の順序に従って、変更する。すなわち、置き換え対象のファンクションブロックを、並び替え後の順序において１つ進める（ステップＳ６０５）。
【０１０７】
つまり、それまで置き換え対象として設定されていたファンクションブロックが、例えば、第２のフリップフロップであった場合、第１のフリップフロップを新たな置き換え対象として設定する。
【０１０８】
次に、ステップＳ６０２に戻り、先のステップＳ６０４にて算出された、現在までに置き換えられた比率が、管理されている置き換え比率に達したか否かを判定する。
【０１０９】
ステップＳ６０２にて管理されている置き換え比率（目標値）に達したと判定された場合（ステップＳ６０２のＹ）、図２のフローチャートにおける続きの処理を実行する。
【０１１０】
他方、ステップＳ６０２にて管理されている置き換え比率に達したと判定されるまでは（ステップＳ６０２にてＮと判定される限りは）、以後同様に、ステップＳ６０３→ステップＳ６０４→ステップＳ６０５→ステップＳ６０２の処理を繰り返し行う。
【０１１１】
ステップＳ６０３→ステップＳ６０４→ステップＳ６０５→ステップＳ６０２の処理を繰り返す過程では、先ず、ステップＳ６０１での並び順が１番目のファンクションブロックが１段階小さいサイズのブロックへと置き換えられる（ただし、キャパシタのサイズを現在よりも小さくすることができる場合）。
【０１１２】
この置き換えによっても置き換え比率が目標値に達しない場合には、ステップＳ６０１での並び順が２番目のファンクションブロックが１段階小さいサイズのブロックへと置き換えられる（ただし、キャパシタのサイズを現在よりも小さくすることができる場合）。
【０１１３】
以後、同様に、ステップＳ６０１での並び順が最後のファンクションブロックまでが１段階小さいサイズのブロックへと置き換えられても、置き換え比率が目標値に達しない場合には、ステップＳ６０１での並び順が１番目のファンクションブロックが更にもう１段階（当初からは２段階）小さいサイズのブロックへと置き換えられる。
【０１１４】
以後、同様に、ステップＳ６０１での並び順が最後のファンクションブロックまでが更にもう１段階（当初からは２段階）小さいサイズのブロックへと置き換えられても、置き換え比率が目標値に達しない場合には、ステップＳ６０１での並び順が１番目のファンクションブロックが更にもう１段階（当初からは３段階）小さいサイズのブロックへと置き換え、以後、同様に、置き換え比率が目標値に達しない限りは、ステップＳ６０１での並び順が下位のファンクションブロックについての置き換え処理が実行される。
【０１１５】
以上のような第１の実施形態によれば、収容性や遅延に余裕がある限りにおいては、最大サイズのオンチップキャパシタが、ファンクションブロックに隣設して配置されることとなる。
【０１１６】
すなわち、具体的には、例えば、予め、ファンクションブロックにオンチップキャパシタを隣設して配置し、ファンクションブロックとオンチップキャパシタとを一体化させた“キャパシタ付きファンクションブロック”のライブラリを生成しておく。
【０１１７】
しかも、同一の機能のファンクションブロックについて、付加されたオンチップキャパシタのサイズが相互に異なる複数種類のキャパシタ付きファンクションブロックのライブラリを、それぞれ生成しておく。
【０１１８】
そして、これらキャパシタ付きファンクションブロックのライブラリを用いて配置検討を行い、配置や遅延などの制約を満足できない場合は、順次、付加されたオンチップキャパシタのサイズが小さいファンクションブロックへと変更していく。
【０１１９】
つまり、オンチップキャパシタとして、ファンクションブロックに付加された状態のものが、遅延制約などに余裕がある限りにおいて、優先的に配置されるので、オンチップキャパシタをファンクションブロックに可能な限り隣設して配置することができる。
【０１２０】
よって、オンチップキャパシタの効果が最大限発揮され、電気的ノイズによる遅延悪化や誤動作といった諸問題を好適に抑制することができる。
【０１２１】
なお、収容性や遅延が満足できない場合には、キャパシタ付きファンクションブロックを、付加されたオンチップキャパシタの容量が小さいものに置き換えるため、遅延制約や収容性は従来と同程度である。
【０１２２】
また、本実施形態の場合、より具体的には、各機能のファンクションブロックのうち、優先順位の低いファンクションブロックから順に、１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換え、該置き換えを、前記優先順位が最も高いファンクションブロックのライブラリまで繰り返しても未だ目標値に相当するファンクションブロックが置き換えられない場合には、優先順位の低いファンクションブロックから順に、もう１段階ずつ小さいサイズの容量を有するキャパシタ付きファンクションブロックのライブラリへと置き換えることを、目標値に相当するファンクションブロックが置き換えられるまで繰り返すので、各優先順位のファンクションブロックについて、ほぼ均等に容量を隣設して付加することができる。
【０１２３】
〔第２の実施形態〕
第２の実施形態の場合、ファンクションブロック配置装置１の構成は、上記の第１の実施形態と同様である。
【０１２４】
また、第２の実施形態の場合の動作は、上記の第１の実施形態と同様に、図２のフローチャートに従って行われるが、そのファンクションブロック置き換え処理（ステップＳ３０５、Ｓ３１２）のみが上記の第１の実施形態（図４）と異なり、図７に示すフローチャートに従って行われる。
【０１２５】
以下、図７を参照して、第２の実施形態の場合の具体的な動作を説明する。
【０１２６】
図７に示すように、ステップＳ４０１から初回のステップＳ６０２までは、上記の第１の実施形態と同様である。
【０１２７】
第２の実施形態の場合、ステップＳ６０２に続いては、置き換え対象のファンクションブロックを、キャパシタのサイズが１つ小さいファンクションブロックへと置き換えることが可能であるか否かを判定する（ステップＳ７０１）。
【０１２８】
すなわち、置き換え対象のファンクションブロックが、既にキャパシタ無しファンクションブロック８０１に置き換えられている場合や、キャパシタ無しファンクションブロック８０１が用意されていない種類のファンクションブロックが既に最小サイズのキャパシタ付きファンクションブロック（例えば、小容量キャパシタ付きファンクションブロック８０２）に置き換えられている場合には、ステップＳ７０１にて「可能でない」と判定される一方で、それ以外の場合には「可能である」と判定される。
【０１２９】
ステップＳ７０１にて、「可能である」と判定された場合（ステップＳ７０１のＹ）、ステップＳ６０３に移行し、置き換え対象のファンクションブロックを、キャパシタのサイズが１つ小さいファンクションブロックへと置き換える。
【０１３０】
ここで、置き換え対象となっているファンクションブロックが複数個の場合、例えば、これら複数個のファンクションブロックに対して、一括して置き換え処理を行う。
【０１３１】
次に、現在までに置き換えられたファンクションブロックの総数（上記の“のべ数”）を算出し、その総数に基づいて、現在までに置き換えられた比率を算出する（ステップＳ６０４）。
【０１３２】
次に、ステップＳ６０２に戻り、先のステップＳ６０４にて算出された、現在までに置き換えられた比率が、管理されている置き換え比率に達したか否かを判定する。
【０１３３】
ステップＳ６０２にて管理されている置き換え比率（目標値）に達したと判定された場合（ステップＳ６０２のＹ）、図２のフローチャートにおける続きの処理を実行する。
【０１３４】
他方、ステップＳ６０２にて管理されている置き換え比率に達していないと判定された場合（ステップＳ６０２のＮ）、再びステップＳ７０１以降の処理を実行する。
【０１３５】
また、ステップＳ７０１にて、「可能でない」と判定された場合（ステップＳ７０１のＮ）、置き換え対象のファンクションブロックを、先のステップＳ６０１での並び替え後の順序に従って変更する。すなわち、置き換え対象のファンクションブロックを、並び替え後の順序において１つ進める（ステップＳ６０５）。
【０１３６】
ステップＳ６０５の後は、ステップＳ６０２以降の処理を実行する。
【０１３７】
従って、第２の実施形態の場合、優先順位が低いファンクションブロックから順に、キャパシタなしのファンクションブロックまで置き換えられ、それでも置き換え比率が目標値に達しなければ、優先順位の高いファンクションブロックを置き換えていく。
【０１３８】
すなわち、上記の第１の実施形態では、例えば、全てのファンクションブロックに対して均等に容量が付加された結果になるのに対し、第２の実施形態の場合は、例えば、優先順位の低いファンクションブロックには全く容量が付加されておらず、優先順位の高いファンクションブロックには一番大きな容量が付加されたままになる。
【０１３９】
以上のような第２の実施形態によれば、上記の第１の実施形態と同様の効果が得られる他に、優先順位の低いファンクションブロックから順に、付加されたオンチップキャパシタの容量を最小サイズまで置き換えるので、優先順位の高いファンクションブロックに対して、優先的にオンチップキャパシタを隣設して配置することが可能となるという効果が得られる。
【０１４０】
〔第３の実施形態〕
第３の実施形態の場合の動作は、上記の第１の実施形態と同様に、図２のフローチャートに従って行われるが、そのファンクションブロック置き換え処理（ステップＳ３０５、Ｓ３１２）のみが上記の第１の実施形態（図３、図４）と異なり、図８に示すフローチャートに従って行われる。
【０１４１】
以下、図８を参照して、第３の実施形態の場合の具体的な動作を説明する。
【０１４２】
第３の実施形態の場合、図８に示すように、上記の第１の実施形態と同様に、管理している置き換え比率を優先順位ライブラリに記憶された所定の増加単位の分だけ増加させる処理を行う（ステップＳ４０１）。
【０１４３】
次に、ステップＳ４０１に続いては、制御装置１１０は、ファンクションブロックを、付加されたキャパシタの容量が小さいものへと置き換える処理を、置き換え比率管理手段１１８により管理された置き換え比率に相当する数のファンクションブロックが置き換えられるまで、優先順位に関係なくランダムに実行する（ステップＳ５０２）。
【０１４４】
なお、第３の実施形態の場合のファンクションブロック配置装置１の構成は、優先順位ライブラリデータベース１０４及びファンクションブロック並び替え手段１１９を備える必要がない点で、上記の第１の実施形態と異なり、その他の点では、上記の第１の実施形態と同様である。
【０１４５】
ただし、第３の実施形態の場合、優先順位ライブラリデータベース１０４に含まれる情報のうち、置き換え比率の増加単位を示す情報だけは、記憶装置１００に記憶保持しておく必要がある。
【０１４６】
上記の第３の実施形態によれば、「各優先順位のファンクションブロックについて、ほぼ均等に容量を隣設して付加することができる」という点を除いて、上記の第１の実施形態と同様の効果が得られる。
【図面の簡単な説明】
【０１４７】
【図１】本発明の実施形態に係るファンクションブロック配置装置の構成を示すブロック図である。
【図２】図１のファンクションブロック配置装置の動作を示すフローチャートである。
【図３】第１の実施形態の場合のファンクションブロック置き換え処理の概略を示すフローチャートである。
【図４】第１の実施形態の場合のファンクションブロック置き換え処理の詳細を示すフローチャートである。
【図５】ファンクションブロックライブラリデータベースの記憶内容の例を示す図である。
【図６】優先順位ライブラリデータベースの記憶内容の例を示す図である。
【図７】第２の実施形態の場合のファンクションブロック置き換え処理を示すフローチャートである。
【図８】第３の実施形態の場合のファンクションブロック置き換え処理を示すフローチャートである。
【図９】従来のファンクションブロック配置方法を示すフローチャートである。
【符号の説明】
【０１４８】
１      ファンクションブロック配置装置（半導体集積回路のレイアウト設計装置）
１０２  ファンクションブロックライブラリデータベース
１０４  優先順位ライブラリデータベース（優先順位データベース）
１１２  配置手段
１１３  配置検証手段（判定手段、収容性判定手段、原因判定手段）
１１６  遅延検証手段（判定手段、遅延判定手段、原因判定手段）
１１７  ファンクションブロック置き換え手段（容量縮小手段）
１１８  置き換え比率管理手段（目標値設定手段）
【図１】
2006261365.tif 000003
【図２】
2006261365.tif 000004
【図３】
2006261365.tif 000005
【図４】
2006261365.tif 000006
【図５】
2006261365.tif 000007
【図６】
2006261365.tif 000008
【図７】
2006261365.tif 000009
【図８】
2006261365.tif 000010
【図９】
2006261365.tif 000011