(57)【要約】【課題】半導体集積回路を複数の階層に分けて下位階層から上位階層に向かって設計を行うボトムアップの階層設計手法におけるレイアウト設計の効率の向上を図ること。【解決手段】設計支援装置１００は、第１レイアウトデータ１１１において、対象回路１１３の回路パターンの密度が制約を満たさないエラー領域１１５内の部分回路Ａを特定する。密度エラーが「高密度エラー」の場合、設計支援装置１００は、記憶部１０１から、部分回路Ａの標準ダミーパターンの密度率よりも低い密度率ｍ３に対応付けられたパターンデータ１３３を抽出する。設計支援装置１００は、第１レイアウトデータ１１１に含まれる部分回路Ａのパターンデータ１３０を抽出されたパターンデータ１３３に置き換えた第２レイアウトデータ１１２において対象回路１１３の回路パターンの密度が制約を満たす場合、第２レイアウトデータ１１２を出力する。【選択図】図１
2018109884.tif 000002
【特許請求の範囲】
【請求項１】
所定の配置領域における設計対象回路に含まれる各部分回路の回路パターンおよび前記各部分回路のダミーパターンと前記各部分回路間を接続する配線パターンとを含む前記設計対象回路の回路パターンを示す第１レイアウトデータを記憶するとともに、前記各部分回路について、前記第１レイアウトデータにおける前記各部分回路のダミーパターンとは形状の異なる部分回路のダミーパターンを示すパターンデータを記憶する記憶部と、
前記記憶部に記憶された第１レイアウトデータにおいて、前記各部分回路のうち、前記配置領域の中で回路パターンの密度が制約を満たさない領域に含まれる部分回路を特定する特定部と、
前記記憶部から、特定された前記部分回路のダミーパターンを示すパターンデータを抽出する抽出部と、
前記第１レイアウトデータと抽出された前記パターンデータとに基づいて、特定された前記部分回路のダミーパターンが、抽出された前記パターンデータが示す部分回路のダミーパターンに置き換えられた回路パターンを示す第２レイアウトデータを生成する生成部と、
生成された前記第２レイアウトデータにおいて回路パターンの密度が前記制約を満たす場合、前記第２レイアウトデータを出力する出力部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記記憶部は、
前記各部分回路について、前記第１レイアウトデータにおける前記各部分回路のダミーパターンと密度の異なる前記各部分回路の複数のダミーパターンの各々のダミーパターンを示すパターンデータを記憶し、
前記抽出部は、
前記第１レイアウトデータにおける特定された前記部分回路のダミーパターンの密度に基づいて、前記記憶部から、特定された前記部分回路のダミーパターンを示すパターンデータを抽出することを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記制約は、前記設計対象回路の回路パターンの密度の上限に関する制約であり、
前記抽出部は、
前記記憶部から、前記配置領域における特定された前記部分回路のダミーパターンの密度よりも低い密度のダミーパターンを示すパターンデータを抽出する、
ことを特徴とする請求項２に記載の設計支援装置。
【請求項４】
前記制約は、前記設計対象回路の回路パターンの密度の下限に関する制約であり、
前記抽出部は、
前記記憶部から、前記配置領域における特定された前記部分回路のダミーパターンの密度よりも高い密度のダミーパターンを示すパターンデータを抽出する、
ことを特徴とする請求項２に記載の設計支援装置。
【請求項５】
前記制約は、前記設計対象回路の回路パターンの粗密度に関する制約であり、
前記抽出部は、
前記配置領域のうちの前記制約を満たさない領域に隣接する領域内の前記設計対象回路の回路パターンの密度と、前記制約を満たさない領域内の前記設計対象回路の回路パターンの密度と、の比較に基づいて、前記記憶部から特定された前記部分回路のダミーパターンを示すパターンデータを抽出する、
ことを特徴とする請求項２に記載の設計支援装置。
【請求項６】
所定の配置領域における設計対象回路に含まれる各部分回路の回路パターンおよび前記各部分回路のダミーパターンと前記各部分回路間を接続する配線パターンとを含む前記設計対象回路の回路パターンを示す第１レイアウトデータを記憶するとともに、前記各部分回路について、前記第１レイアウトデータにおける前記各部分回路のダミーパターンとは形状の異なる部分回路のダミーパターンを示すパターンデータを記憶する記憶部に接続するコンピュータが、
前記記憶部に記憶された第１レイアウトデータにおいて、前記各部分回路のうち、前記配置領域の中で回路パターンの密度が制約を満たさない領域に含まれる部分回路を特定し、
前記記憶部から、特定された前記部分回路のダミーパターンを示すパターンデータを抽出し、
前記第１レイアウトデータと抽出された前記パターンデータとに基づいて、特定された前記部分回路のダミーパターンが、抽出された前記パターンデータが示す部分回路のダミーパターンに置き換えられた回路パターンを示す第２レイアウトデータを生成し、
生成された前記第２レイアウトデータにおいて回路パターンの密度が前記制約を満たす場合、前記第２レイアウトデータを出力することを特徴とする設計支援方法。
【請求項７】
所定の配置領域における設計対象回路に含まれる各部分回路の回路パターンおよび前記各部分回路のダミーパターンと前記各部分回路間を接続する配線パターンとを含む前記設計対象回路の回路パターンを示す第１レイアウトデータを記憶するとともに、前記各部分回路について、前記第１レイアウトデータにおける前記各部分回路のダミーパターンとは形状の異なる部分回路のダミーパターンを示すパターンデータを記憶する記憶部に接続するコンピュータに、
前記記憶部に記憶された第１レイアウトデータにおいて、前記各部分回路のうち、前記配置領域の中で回路パターンの密度が制約を満たさない領域に含まれる部分回路を特定させ、
前記記憶部から、特定された前記部分回路のダミーパターンを示すパターンデータを抽出させ、
前記第１レイアウトデータと抽出された前記パターンデータとに基づいて、特定された前記部分回路のダミーパターンが、抽出された前記パターンデータが示す部分回路のダミーパターンに置き換えられた回路パターンを示す第２レイアウトデータ生成させ、
生成された前記第２レイアウトデータにおいて回路パターンの密度が前記制約を満たす場合、前記第２レイアウトデータを出力させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法、および設計支援プログラムに関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）のレイアウト設計では、例えば、トランジスタをその内部に含むスタンダードセルやマクロセルなどと呼ばれる部品回路を並べて配置する配置処理が行われる。そして、レイアウト設計では、配置された部品回路間を配線パターンで結ぶ配線処理が行われる。これにより、ＬＳＩの物理形状のパターンを示すレイアウトデータが得られる。
【０００３】
レイアウト設計では、レイアウトデータに対して、デザインルールと呼ばれる物理設計ルールを遵守しているか否かの処理が判定される。物理設計ルールを遵守しているか否かの処理はＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋ）ツールと呼ばれる検証用のアプリケーションによって行われる。ＤＲＣツールによってエラーが検出された場合、レイアウトデータに対して修正が行われる。
【０００４】
物理設計ルールの一つに密度ルールがある。密度ルールとは、レイアウト可能な領域内に配置された回路パターンの密度を規定するルールである。密度は、例えば、区画された所定領域内に回路パターンに対応する図形が占める面積率によって規定される。密度エラーは、例えば、ＬＳＩの製造時のＣＭＰ（Ｃｈｅｍｉｃａｌ  Ｍｅｃｈａｎｉｃａｌ  Ｐｌａｎａｒｉｚａｔｉｏｎ：化学機械平坦化）工程に影響を及ぼすため、各層においてレイアウトパターンの密度は均一であるとよい。密度に大きな差がある場合、ＣＭＰ工程でＬＳＩを均一に研磨することができず、製造不良や歩留まりの悪化が生じる虞がある。例えば、所定の配線層において、レイアウト密度が低すぎる領域はＣＭＰ工程により削られすぎてしまい、下層の配線層とショートしてしまう場合がある。また、例えば、所定の配線層において、レイアウト密度が高すぎる領域はＣＭＰ工程により削られないために同一配線層の配線間がショートしてしまう場合がある。
【０００５】
また、ＬＳＩの物理形状のパターンのみで密度ルールを遵守させることが困難な場合がある。そこで、従来、例えば、物理形状のパターンが配置されていない空き領域にダミーパターンを配置することにより、密度ルールを遵守させる技術がある。ダミーパターンを配置する処理は、例えば、配置処理および配線処理の終了後に、ダミー生成ツールなどの自動でダミーパターンを配置することが可能なアプリケーションによって行われる。
【０００６】
先行技術としては、下位階層において回路ブロック境界とダミーパターンとの間のダミーパターンが配置されていない配置候補領域のうち、上位階層において互いに接する回路ブロックの配置候補領域を合わせた部分に、ダミーパターンを配置する技術がある（例えば、以下特許文献１参照。）。また、先行技術としては、多層配線構造の半導体装置において、狭い配線空隙に広い配線空隙に形成されたダミーパターンと異なる向きのダミーパターンが形成される技術がある（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−１０５４４６号公報
【特許文献２】特開２０１２−２１２６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ダミーパターンの生成処理において、レイアウト設計の効率が悪化する場合が生じるという問題点がある。例えば、設計の対象回路全体に対して一括でダミーパターンを生成する場合、物理設計ルールには様々な規定があり、物理設計ルールをすべて満たすようにダミーパターンを生成するには処理に時間がかかる。また、例えば、半導体集積回路を複数の階層に分けて下位階層から上位階層に向かって設計を行うボトムアップの階層設計手法でレイアウト作業を行う場合、下位階層に密度エラーが発生していないにも関わらず、上位階層において密度エラーが発生する場合がある。このような場合、上位階層における密度エラーを解消するために、下位階層に戻って物理形状のパターンやダミーパターンの修正が行われるなど設計の手戻りが生じる場合がある。
【０００９】
１つの側面では、本発明は、レイアウト設計の効率の向上を図ることができる設計支援装置、設計支援方法、および設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、所定の配置領域における設計対象回路に含まれる各部分回路の回路パターンおよび前記各部分回路のダミーパターンと前記各部分回路間を接続する配線パターンとを含む前記設計対象回路の回路パターンを示す第１レイアウトデータを記憶するとともに、前記各部分回路について、前記第１レイアウトデータにおける前記各部分回路のダミーパターンとは形状の異なる部分回路のダミーパターンを示すパターンデータを記憶する記憶部と、前記記憶部に記憶された第１レイアウトデータにおいて、前記各部分回路のうち、前記配置領域の中で回路パターンの密度が制約を満たさない領域に含まれる部分回路を特定する特定部と、前記記憶部から、特定された前記部分回路のダミーパターンを示すパターンデータを抽出する抽出部と、前記第１レイアウトデータと抽出された前記パターンデータとに基づいて、特定された前記部分回路のダミーパターンが、抽出された前記パターンデータが示す部分回路のダミーパターンに置き換えられた回路パターンを示す第２レイアウトデータを生成する生成部と、生成された前記第２レイアウトデータにおいて回路パターンの密度が前記制約を満たす場合、前記第２レイアウトデータを出力する出力部と、を有する設計支援装置、設計支援方法、および設計支援プログラムが提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、レイアウト設計の効率の向上を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態にかかる設計支援装置による一動作例を示す説明図である。
【図２】図２は、ＬＳＩの階層構造例を示す説明図である。
【図３】図３は、従来技術における階層設計手法によるレイアウト設計処理手順例を示すフローチャートである。
【図４】図４は、本実施の形態における階層設計手法によるレイアウト設計処理手順例を示すフローチャートである。
【図５】図５は、ダミーパターンの発生処理およびマージ処理前の回路パターンの一例を示す説明図である。
【図６】図６は、ダミーパターンの発生処理およびマージ処理後の回路レイアウトパターンの一例を示す説明図（その１）である。
【図７】図７は、ダミーパターンの発生処理およびマージ処理後の回路レイアウトパターンの一例を示す説明図（その２）である。
【図８】図８は、チェックウィンドウの初期配置例を示す説明図である。
【図９】図９は、密度エラーとチェックウィンドウの一例を示す説明図である。
【図１０】図１０は、上位階層において密度エラーが検出される例を示す説明図である。
【図１１】図１１は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。
【図１２】図１２は、設定値ファイルおよび目標密度率リストの一記憶例を示す説明図（その１）である。
【図１３】図１３は、設定値ファイルおよび目標密度率リストの一記憶例を示す説明図（その２）である。
【図１４】図１４は、回路ライブラリの一記憶例を示す説明図である。
【図１５】図１５は、登録情報の一記憶例（その１）を示す説明図である。
【図１６】図１６は、登録情報の一記憶例（その２）を示す説明図である。
【図１７】図１７は、エラーリストの一記憶例を示す説明図である。
【図１８】図１８は、設計支援装置の機能的構成例を示すブロック図である。
【図１９】図１９は、設計支援装置による下位階層の設計処理手順例を示すフローチャート（その１）である。
【図２０】図２０は、設計支援装置による下位階層の設計処理手順例を示すフローチャート（その２）である。
【図２１】図２１は、設計支援装置による上位階層における密度エラーが発生した場合の設計処理手順例を示すフローチャート（その１）である。
【図２２】図２２は、設計支援装置による上位階層における密度エラーが発生した場合の設計処理手順例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明にかかる設計支援装置、設計支援方法、および設計支援プログラムの実施の形態を詳細に説明する。
【００１４】
図１は、実施の形態にかかる設計支援装置による一動作例を示す説明図である。設計支援装置１００は、ＬＳＩのレイアウト設計を支援するコンピュータである。
【００１５】
上述したように、従来、ＬＳＩのレイアウト設計において、レイアウトデータに対して、物理設計ルールを遵守しているか否かが判定される。物理設計ルールの一つに密度ルールがある。密度ルールとは、回路をレイアウト可能な領域に配置された回路パターンの澪都度が規定されたルールである。また、ＬＳＩの物理形状のパターンのみで密度ルールを遵守させることが困難な場合がある。このような場合、従来、例えば、物理形状のパターンが配置されていない空き領域にダミーパターンを配置することにより、密度ルールを遵守させる技術がある。なお、ダミーパターンを生成する例や密度ルールを遵守しているか否かを判定する例については、図５〜図８を用いて後述する。
【００１６】
しかしながら、従来技術では、ダミーパターンの生成処理においてレイアウト設計の効率が悪い場合があるという問題点がある。例えば、ダミーパターンの生成処理には、設計の対象回路１１３全体に対して一括でダミーパターンを生成する方法と、階層設計手法において階層別にダミーパターンを生成する方法と、がある。
【００１７】
例えば、設計の対象回路１１３全体に対して一括でダミーパターンを生成する場合、物理設計ルールには様々な規定があり、物理設計ルールをすべて満たすようにダミーパターンを生成するには処理に時間がかかる。
【００１８】
また、例えば、下位階層から上位階層に向かって設計を行うボトムアップの階層設計手法でレイアウト作業を行う場合、下位階層に密度エラーが発生していないにも関わらず、上位階層において密度エラーが発生する場合がある。このような場合、上位階層における密度エラーを解消するために、下位階層に戻って物理形状のパターンやダミーパターンの修正が行われるなど設計の手戻りが生じる場合がある。なお、下位階層に密度エラーが発生していないのに上位階層において密度エラーが発生する例については、図９および図１０を用いて説明する。また、ボトムアップの階層設計手法でレイアウト作業を行う場合において設計の手戻りが発生する例について図３を用いて簡単に説明する。
【００１９】
また、密度ルールには、粗密差ルールが存在する場合がある。粗密差ルールでは、チェックウィンドウ内の密度と、チェックウィンドウの隣接領域の密度と、の密度差がチェックされる。密度が高いパターンの回路と、密度が低いパターンの回路とが隣接していると、粗密差エラーが発生する可能性が高い。しかし、下位階層のレイアウト設計では、上位階層のレイアウト設計においてどのようなパターンの回路が隣接されるか確定していない。このため、上位階層の設計において粗密差エラーにより下位階層の回路のパターンの変更を行うという設計の手戻りが生じる場合がある。
【００２０】
例えば、上位階層における密度エラーを解消するために、下位階層の回路のパターンを修正する場合がある。このような場合に、下位階層のレイアウト作業では、密度エラーが発生した箇所の密度が増減することは確認できるが、上位階層における密度エラーが解消したか否かを確認することはできない。このため、下位階層のレイアウト作業の終了後に、上位階層のレイアウト作業では、再度ＤＲＣを行わなければならない。そして、上位階層において密度エラーが解消していない場合、再度下位階層の設計に戻り密度の調整が行われる。このように、ボトムアップの階層設計手法では、密度エラーの解消に繰り返し作業が発生する虞があり、設計工数が増加するという問題点がある。
【００２１】
そこで、本実施の形態では、設計支援装置１００は、対象回路内の密度エラー領域にある部分回路のダミーパターンを、対象回路内の部分回路別に用意しておいた形状の異なるダミーパターンに変更して、密度制約を満たすレイアウトデータを生成する。これにより、上位階層の設計において下位階層の部分回路のダミーパターンが調整でき、対象回路の密度調整を容易にできる。したがって、設計の手戻りを抑制することができる。
【００２２】
本実施の形態では、上位階層のレイアウト設計の対象となる回路を対象回路と称し、下位階層のレイアウト設計の対象となる回路を部分回路と称する。図１の例では、上位階層のレイアウト設計対象となる対象回路は、下位階層の部分回路Ａから部分回路Ｆを有する。なお、上位階層および下位階層などの階層例については、図２を用いて説明する。
【００２３】
また、本実施の形態では、物理形状のパターンを回路パターンとも称する。物理形状のパターンとは、例えば、配線を表す配線パターン、拡散領域を表す拡散領域パターン、ポリシリコンを表すポリシリコンパターンなどのパターンである。また、物理形状のパターンとダミーパターンとをマージさせたパターンを回路パターンとも称する。また、回路パターンとダミーパターンとをマージさせたパターンをレイアウトパターンとも称する。
【００２４】
本実施の形態では、上位階層の対象回路の設計において、下位階層の部分回路のレイアウトパターンを対象回路の回路パターンの一部として扱う。そして、上位階層の対象回路のダミーパターンは対象回路のレイアウト設計時に生成されたダミーパターンを示す。例えば、対象回路の回路パターンとは、部分回路のレイアウトパターンと部分回路間を接続する配線パターンとを含む。対象回路のレイアウトパターンは、対象回路の回路パターンと、対象回路のダミーパターンとを含む。
【００２５】
また、配置領域は、レイアウト設計時にパターンを配置可能な領域である。配置領域は、レイアウト領域とも称する。図１の例では、配置領域はレイアウト領域１１４である。レイアウト領域１１４には、Ｘ軸やＹ軸のように直交する座標系が定義されてある。
【００２６】
記憶部１０１は、例えば、設計支援装置１００が有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ディスク、不揮発性の半導体メモリなどによって実現される。記憶部１０１は、例えば、第１レイアウトデータ１１１と、パターンデータ１３１〜１３３などのパターンデータと、を記憶する。第１レイアウトデータ１１１と、パターンデータ１３１〜１３３などのパターンデータとは、例えば、ＧＤＳ（Ｇｒａｐｈｉｃ  Ｄａｔａ  Ｓｙｓｔｅｍ）形式によって各種パターンが表される。
【００２７】
第１レイアウトデータ１１１は、対象回路１１３をレイアウトすることにより得られる。第１レイアウトデータ１１１は、対象回路１１３のレイアウト領域１１４における複数の部分回路Ａ〜Ｆの各々の部分回路の回路パターンおよび各々の部分回路のダミーパターンと、各々の部分回路間を接続する配線パターンと、を含む対象回路１１３の回路パターンを示す。具体的には、第１レイアウトデータ１１１は、例えば、部分回路Ａから部分回路Ｆの各々についてのレイアウトパターンと、部分回路間を接続するための配線パターンと、対象回路１１３において発生させたダミーパターンと、を合わせたレイアウトパターンを示す。
【００２８】
部分回路Ａを示すレイアウトデータは、例えば、部分回路Ａの回路パターンを示すレイアウトデータ１２０と、ダミーパターンを示すパターンデータ１３０と、をマージすることによって生成される。
【００２９】
また、パターンデータは、第１レイアウトデータ１１１における部分回路のダミーパターンと異なる形状のダミーパターンを示す。記憶部１０１には、例えば、部分回路Ａから部分回路Ｆの各々について、標準ダミーパターンと形状の異なるダミーパターンを示すパターンデータを記憶する。ここで、標準ダミーパターンとは、各部分回路のレイアウトデータが示すレイアウトパターンに含まれるダミーパターンである。標準ダミーパターンとは、例えば、標準密度率となるように生成されたダミーパターンである。
【００３０】
形状の異なるダミーパターンとは、例えば、密度が異なることで形状の異なるダミーパターンであってもよいし、密度が同じで形状のみが異なるダミーパターンであってもよい。例えば、密度が異なるようにレイアウトが行われれば、ダミーパターンの形状は異なる。ダミー生成の処理のアルゴリズムが異なると、密度が同じで形状が異なるダミーパターンとなる場合がある。このため、密度が同じで形状が異なるダミーパターンは、例えば、処理アルゴリズムの異なる複数のダミー生成ツールによって生成させることができる。ダミー生成ツールでは、例えば、指定された密度率となるようにダミーパターンを生成させる。密度率は、密度を表す指標である。密度率は、例えば、回路のレイアウト領域に占めるパターンを表す図形の占める面積率である。処理アルゴリズムが異なっていれば、指定された密度率が同じであっても得られるダミーパターンの形状は異なる場合がある。なお、密度が同じとは、完全一致だけでなく、所定割合のみの差である場合も含む。
【００３１】
図１では、部分回路の各々について、標準ダミーパターンと密度率が異なり、かつ互いに密度率が異なるダミーパターンを示すパターンデータが複数用意された例を示す。
【００３２】
部分回路Ａを例に挙げると、記憶部１０１は、密度率ｍ１〜ｍ３の各々について、密度率を示す情報と、回路パターンとマージした場合に密度率となるダミーパターンを示すパターンデータ１３１〜１３３とを対応付けて記憶する。これにより、設計支援装置１００は、記憶部１０１を参照して、密度率に応じたダミーパターンを示すパターンデータを検索することができる。
【００３３】
設計支援装置１００は、例えば、第１レイアウトデータ１１１において、複数の部分回路Ａ〜Ｆのうち、レイアウト領域１１４の中で対象回路１１３の回路パターンの密度が制約を満たさない領域に含まれる部分回路を特定する。ここでの制約とは、上述したＤＲＣルールに含まれる密度ルールである。密度ルールには、例えば、密度率の上限値、密度率の下限値などが含まれる。また、密度ルールには、例えば、粗密差の上限値、粗密差の下限値を規定した粗密差ルールなどが含まれる。また、領域は、例えば、ＤＲＣツールにより密度ルールを満たしているか否かを判定するためのチェックウィンドウと重なる領域である。チェックウィンドウのサイズは任意に定められてある。ＤＲＣツールでは、例えば、対象回路１１３のレイアウト領域１１４内にチェックウィンドウを設ける。そして、ＤＲＣツールでは、チェックウィンドウ内の密度率が密度ルールを満たすか否かを判定する。ＤＲＣツールでは、チェックウィンドウをレイアウト領域１１４内の原点などから順に移動させてレイアウト領域１１４全体の密度率がチェックされる。このように、密度エラーが発生した領域はエラー領域とも称する。図１にはエラー領域１１５を示す。また、設計支援装置１００は、エラー領域１１５に少なくとも一部が含まれる部分回路を特定してもよいし、エラー領域１１５に完全に含まれる部分回路を特定してもよい。図１の例では、設計支援装置１００は、エラー領域１１５に少なくとも一部が含まれる部分回路Ａを特定する。
【００３４】
設計支援装置１００は、記憶部１０１を参照して、特定された部分回路の標準ダミーパターンと形状の異なる特定された部分回路のダミーパターンを示すパターンデータを抽出する。設計支援装置１００は、部分回路Ａの標準ダミーパターンと形状の異なるダミーパターンを示すパターンデータとして、パターンデータ１３１〜１３３を抽出する。
【００３５】
また、設計支援装置１００は、密度エラーの種類に応じて、抽出対象のパターンデータを変えてもよい。密度エラーの種類としては、例えば、３種類挙げられる。まず、１つ目に、密度率の上限値に関する制約を満たしていないことが検出される「高密度エラー」がある。２つ目に、密度率の下限値に関する制約を満たしていないことが検出される「低密度エラー」がある。３つ目に、密度率が隣接する領域との密度率の差に関する制約を満たしていないことが検出される「粗密差エラー」がある。密度エラーの種類に応じて抽出する処理の詳細については後述する。ここでは「高密度エラー」を例に挙げて説明する。
【００３６】
密度エラーが「高密度エラー」の場合、設計支援装置１００は、エラー領域１１５の密度が下がるように部分回路Ａのダミーパターンを変更する。例えば、「密度率ｍ１＞密度率ｍ２＞部分回路Ａの標準ダミーパターンの密度率＞密度率ｍ３」の関係にあるとする。そこで、設計支援装置１００は、密度エラーが「高密度エラー」の場合、記憶部１０１から、部分回路Ａの標準ダミーパターンの密度率よりも低い密度率ｍ３に対応付けられたパターンデータ１３３を抽出する。
【００３７】
設計支援装置１００は、第１レイアウトデータ１１１と抽出されたパターンデータとに基づいて、第２レイアウトデータ１１２を生成する。第２レイアウトデータ１１２は、レイアウト領域１１４における特定された部分回路のダミーパターンが、抽出されたパターンデータが示す部分回路のダミーパターンである対象回路１１３の回路パターンを示す。具体的には、設計支援装置１００は、例えば、第１レイアウトデータ１１１に含まれる特定された部分回路のダミーパターンを示すパターンデータを、抽出されたパターンデータに置き換えた第２レイアウトデータ１１２を生成してもよい。
【００３８】
そして、設計支援装置１００は、第２レイアウトデータ１１２において、対象回路１１３のレイアウトパターンの密度が制約を満たす場合、第２レイアウトデータ１１２を出力する。出力形式としては、設計支援装置１００は、例えば、第１レイアウトデータ１１１を削除して第２レイアウトデータ１１２を記憶部１０１などに記憶させる。
【００３９】
また、第２レイアウトデータ１１２において、対象回路１１３のレイアウトパターンの密度が制約を満たすか否かは、例えば、ＤＲＣツールなどによって判定することができる。ＤＲＣツールは、設計支援装置１００上で動作させてもよいし、設計支援装置１００がアクセス可能な他の装置上で動作させてもよい。このため、具体的には、設計支援装置１００は、例えば、ＤＲＣツールに対して、第２レイアウトデータ１１２を入力としたＤＲＣを実行させる指示を出力する。これにより、設計支援装置１００は、対象回路１１３のレイアウトパターンの密度が制約を満たすか否かの検証結果が得られる。
【００４０】
このように、予め形状の異なるダミーパターンを用意しておくことにより、設計支援装置１００は、下位階層の部分回路のレイアウトパターンの密度を容易に調整することができる。したがって、設計支援装置１００は、下位階層の部分回路のレイアウト設計作業などへの手戻りを抑制することができる。ひいては、設計支援装置１００は、手戻りによる設計時間の長期化を抑制することができる。
【００４１】
また、第２レイアウトデータ１１２において対象回路１１３のレイアウトパターンの密度が制約を満たさない領域があると判定され、抽出されたパターンデータが複数ある場合がある。このような場合、設計支援装置１００は、対象回路１１３のレイアウトパターンの密度が制約を満たすようになるまで順に特定された部分回路のパターンデータを置き換えてもよい。また、第２レイアウトデータ１１２において対象回路１１３のレイアウトパターンの密度が制約を満たさない領域があると判定され、特定された部分回路が複数ある場合がある。このような場合、設計支援装置１００は、対象回路１１３のレイアウトパターンの密度が制約を満たすようになるまで異なる部分回路のパターンデータを置き換えてもよい。
【００４２】
図２は、ＬＳＩの階層構造例を示す説明図である。設計対象となる回路がＬＳＩなどのように大きい場合、レイアウト設計作業は、複数の階層に分割して行われる。図２の例では、全体のＬＳＩ２００がサブチップ２０１に分割され、各サブチップ２０１がいくつかのブロック２１１に分割されてある。さらに、ブロック２１１はスタンダードセルやマクロセルなどのセル２２３が含まれる。
【００４３】
図２では、例えば、ＬＳＩ２００のレイアウト設計作業が、ＬＳＩ階層、サブチップ階層、ブロック階層、スタンダードセルおよびマクロセルなどのセル階層という４階層の構造別に行われる。本実施の形態では、レイアウト設計の手法として、スタンダードセルやマクロなどの最下位の階層から高階層に向かって順に作業が行われるボトムアップの設計手法が用いられる。
【００４４】
図２の例では、ＬＳＩ２００が４階層の構造によってレイアウトされる例を示すが、これに限らず、２階層や３階層、４階層よりも大きい階層の構造によってレイアウトされてもよい。例えば、階層設計手法を用いる場合、階層別に設計者などが異なる場合がある。このため、従来技術では、上位階層の設計で密度エラーが発生すると、上位階層の設計者が、下位階層の設計者に下位階層の部分回路のレイアウトパターンの再設計を依頼することになり、上位階層の設計者と下位階層の設計者との両方の設計者の手間がかかるという問題点がある。本実施の形態では、下位階層のレイアウト設計への手戻りを抑制することができるため、各設計者の手間を省くことができる。
【００４５】
図２の例では、上位階層がブロック階層であれば、下位階層はスタンダードセルやマクロ階層である。上位階層がサブチップ階層であれば、下位階層はブロック階層、スタンダードセルやマクロ階層である。上位階層がＬＳＩ階層であれば、下位階層はサブチップ階層、ブロック階層、スタンダードセルやマクロ階層である。
【００４６】
図３は、従来技術における階層設計手法によるレイアウト設計処理手順例を示すフローチャートである。まず、従来技術では、下位階層設計作業が行われる（ステップＳ３０１）。下位設計作業では、回路レイアウトと、回路ライブラリの作成と、標準ダミーパターン生成とのそれぞれの処理が行われる。標準ダミーパターン生成の処理では、例えば、指定された標準密度率を満たすようにダミーパターンが生成される。指定された標準密度率となるダミーパターンが、標準ダミーパターンであり、部分回路のレイアウトデータが示すレイアウトパターンに含まれる。
【００４７】
つぎに、従来技術では、上位階層設計作業が行われる（ステップＳ３０２）。ステップＳ３０２において、上位階層における回路レイアウトデータが生成された後に、下位階層内で密度エラーが発生したか否かが判定される（ステップＳ３１１）。下位階層内で密度エラーが発生したと判定された場合、再度、下位階層設計作業が行われる（ステップＳ３１１：Ｙｅｓ）。一方、下位階層内で密度エラーが発生していないと判定された場合（ステップＳ３１１：Ｎｏ）、再度、上位階層設計作業は終了する。
【００４８】
このように、従来技術では、例えば、上位階層設計作業によって得られた回路レイアウトデータにおいて、下位階層内で密度エラーが発生した場合、下位階層設計作業に戻って下位階層の部分回路についてのレイアウトが行われる。
【００４９】
図４は、本実施の形態における階層設計手法によるレイアウト設計処理手順例を示すフローチャートである。図４には、図３に示す従来技術におけるレイアウト設計処理手順と本実施の形態におけるレイアウト設計処理を実行させる手順とを比較するために、簡単化したフローを用いる。
【００５０】
まず、設計支援装置１００は、下位階層設計作業を行う（ステップＳ４０１）。ステップＳ４０１において、設計支援装置１００は、回路レイアウト生成と、回路ライブラリ作成と、標準ダミーパターン生成との処理をそれぞれ行う。さらに、ステップＳ４０１において、設計支援装置１００は、密度率の異なる複数のダミーパターンの生成処理を行う。回路レイアウト生成処理とは、例えば、回路パターンを示すレイアウトデータを生成する処理である。つぎに、標準ダミーパターン生成処理とは、標準密度率となるようにダミーパターンを示すパターンデータを生成する処理である。そして、回路ライブラリ作成処理とは、標準密度率と異なる密度率となる複数のダミーパターンを示すパターンデータを生成してパターンデータを回路ライブラリ４００にライブラリ化する処理である。ステップＳ３１１において、設計支援装置１００は、生成したダミーパターンを示すパターンデータと密度率を示す情報とを対応付けて回路ライブラリ４００に登録する。
【００５１】
つぎに、設計支援装置１００は、上位階層設計作業を行い（ステップＳ４０２）、一連の処理を終了する。ステップＳ４０２において、設計支援装置１００は、上位階層における回路レイアウトデータが生成された後に、下位階層内で密度エラーが発生したか否かを判定する（ステップＳ４１１）。下位階層内で密度エラーが発生していないと判定された場合（ステップＳ４１１：Ｎｏ）、設計支援装置１００は、一連の処理を終了する。
【００５２】
一方、下位階層内で密度エラーが発生したと判定された場合（ステップＳ４１１：Ｙｅｓ）、設計支援装置１００は、エラー種別、発生階層を特定する（ステップＳ４１２）。設計支援装置１００は、エラー発生階層ごとに、回路ライブラリから、つぎの差し替え候補となるダミーパターンを検索する（ステップＳ４１３）。設計支援装置１００は、ダミーパターンを差し替える（ステップＳ４１４）。そして、設計支援装置１００は、密度チェックを再実行する（ステップＳ４１５）。設計支援装置１００は、密度エラーが解消したか否かを判定する（ステップＳ４１６）。密度エラーが解消していないと判定された場合（ステップＳ４１６：Ｎｏ）、設計支援装置１００は、ステップＳ４１３へ戻る。密度エラーが解消したと判定された場合（ステップＳ４１６：Ｙｅｓ）、設計支援装置１００は、一連の処理を終了する。
【００５３】
このように、図４では、図３と比較して下位階層設計作業に戻る作業を低減させることができる。したがって、手戻り回数を低減させることができるため、設計時間の短縮化を図ることができる。
【００５４】
ここで、設計支援装置１００による詳細な処理の説明を行う前に、図５〜図１０を用いて、ダミーパターンの発生および密度エラーのチェック例について簡単に説明する。
【００５５】
図５は、ダミーパターンの発生処理およびマージ処理前の回路パターンの一例を示す説明図である。図５には、所定の配線層の回路パターンを示す。図５においてレイアウト領域の左下が原点である。
【００５６】
図６および図７は、ダミーパターンの発生処理およびマージ処理後の回路レイアウトパターンの一例を示す説明図である。図６および図７には、図５に示した回路パターンに対して、指定された密度率を満たすようにダミーパターンの発生処理によって生成されたダミーパターンをマージした後のレイアウトパターンを示す。ダミーパターンの生成処理の方法は、ダミーパターンの生成処理用のダミー生成ツールなどのアプリケーションを用いればよく、特に限定しない。図６には、指定された密度率が２５［％］の場合を例に示す。図７には、指定された密度率が５０［％］の場合を例に示す。
【００５７】
また、ＤＲＣには、生成されたダミーパターンに対しても設計ルールが存在する。図６および図７において、設計ルールでは、例えば、ダミーパターンの最小サイズが２×１（１［μ］ｍ）マス、最小間隔が１マス（１［μ］ｍ）である。この設計ルールを遵守するようにダミーパターンは生成されてある。
【００５８】
そして、生成されたダミーパターンと回路パターンとがマージされることにより、指定された密度率が満たされたレイアウトパターンを示すレイアウトデータが得られる。
【００５９】
つぎに、図８〜図１０を用いてＤＲＣツールによる密度エラーの検出および原点の変化例について説明する。ＤＲＣツールでは、回路パターンやレイアウトパターン上にチェックウィンドウを設ける。そして、ＤＲＣツールでは、チェックウィンドウを移動させながら、チェックウィンドウ内のパターンが密度制限値の範囲を満たすか否かを確認する。ここでは、密度制限値、ウィンドウサイズ、ウィンドウ移動量はそれぞれ以下の通りである。ウィンドウ移動量が小さいと、チェック回数が多くなる。ウィンドウ移動量が大きいと、チェック回数が少なくなる。
【００６０】
密度制限値：１５［％］〜８５［％］
ウィンドウサイズ：４［μｍ2］（４×４マスの１６マス）
ウィンドウ移動量：２［μｍ］（２マス）
【００６１】
図８は、チェックウィンドウの初期配置例を示す説明図である。ＤＲＣツールでは、例えば、初期配置として、原点を基準に４［μｍ2］のチェックウィンドウが配置される。チェックウィンドウは１６マスのため、１マスの面積率は６．２５（１００÷１６）［％］である。
【００６２】
図９の例では、初期配置におけるチェックウィンドウには、合計４マス分の配線パターンとダミーパターンとがある。配線パターンとダミーパターンとの合計の面積率は２５（６．２５［％］×４）［％］である。初期配置におけるチェックウィンドウ内の配線パターンとダミーパターンとの合計の面積率は密度制限値の範囲に含まれているため、初期配置において密度エラーがないと判定される。
【００６３】
つぎに、ＤＲＣツールでは、チェックウィンドウを原点からＸ軸方向に２［μｍ］移動させる。そして、移動後の配置においてチェックウィンドウ内のパターンの合計の面積率が密度制限値の範囲に含まれるか否かが判定される。
【００６４】
図９は、密度エラーとチェックウィンドウの一例を示す説明図である。図９に示すように、領域Ａは、チェックウィンドウと同じサイズである。領域Ａは、配線パターンとダミーパターンとの合計の面積率が０［％］である。しかし、チェックウィンドウは、原点から２［μｍ］ごとに移動され、チェックウィンドウと領域Ａとは重ならない。このため、領域Ａの密度エラーは検出されない。
【００６５】
図１０は、上位階層において密度エラーが検出される例を示す説明図である。図１０には、図９に示した部分回路のレイアウトパターンを用いて、上位階層においてレイアウトが行われた例を示す。
【００６６】
図１０の例では、上位階層において、図９に示した部分回路のレイアウトパターンの左側に別の部分回路のレイアウトパターンが配置される。また、上位階層における原点が、上位階層におけるレイアウト領域の原点になる。このため、上位階層における原点は、図９に示した部分回路のレイアウトパターンにおける原点とは異なる。上位階層において、上述したウィンドウサイズやウィンドウ移動量によって密度エラーの判定が行われると、下位階層において密度エラーと判定されなかった領域Ａにチェックウィンドウが重なるため、領域Ａは密度エラーと判定される。このように、原点が変更されたことにより上位階層によってあらたに密度エラーが検出される場合がある。
【００６７】
（設計支援装置１００のハードウェア構成例）
図１１は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。設計支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０１と、ＲＯＭ１１０２と、ＲＡＭ１１０３と、ディスクドライブ１１０４と、ディスク１１０５と、を有する。設計支援装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）１１０６と、キーボード１１０７と、マウス１１０８と、ディスプレイ１１０９と、を有する。また、ＣＰＵ１１０１と、ＲＯＭ１１０２と、ＲＡＭ１１０３と、ディスクドライブ１１０４と、Ｉ／Ｆ１１０６と、キーボード１１０７と、マウス１１０８と、ディスプレイ１１０９とは、バス１１００によってそれぞれ接続される。
【００６８】
ここで、ＣＰＵ１１０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ１１０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ１１０３は、ＣＰＵ１１０１のワークエリアとして使用される。ディスクドライブ１１０４は、ＣＰＵ１１０１の制御にしたがってディスク１１０５に対するデータのリード／ライトを制御する。ディスク１１０５は、ディスクドライブ１１０４の制御で書き込まれたデータを記憶する。ディスク１１０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００６９】
Ｉ／Ｆ１１０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１１１０に接続され、このネットワーク１１１０を介して他の装置に接続される。そして、Ｉ／Ｆ１１０６は、ネットワーク１１１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１１０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００７０】
キーボード１１０７やマウス１１０８は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ１１０９は、ＣＰＵ１１０１の指示により、データを出力するインターフェースである。
【００７１】
また、図示を省略するが、設計支援装置１００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、設計支援装置１００には、プリンタなどの出力装置が設けられていてもよい。
【００７２】
また、本実施の形態では、設計支援装置１００のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。設計支援装置１００がサーバである場合、設計支援装置１００と、利用者が操作可能な装置やディスプレイ１１０９などと、がネットワーク１１１０を介して接続されてもよい。
【００７３】
（各種ＤＢ等の記憶内容）
つぎに、設計支援装置１００が有する各種ＤＢ（Ｄａｔａｂａｓｅ）等の記憶内容について説明する。各種ＤＢ等は、例えば、図１１に示した設計支援装置１００が有するＲＡＭ１１０３、ＲＯＭ１１０２、ディスク１１０５、フラッシュメモリ等の不揮発性の半導体メモリ（図示省略）などの記憶部により実現される。
【００７４】
まず、図１２および図１３を用いて、部分回路ごとに密度率の異なる複数のダミーパターンを生成するための設定値ファイルと目標密度率リストの記憶例について説明する。そして、図１４には、回路ライブラリ４００の例について説明する。
【００７５】
図１２は、設定値ファイルおよび目標密度率リストの一記憶例を示す説明図（その１）である。設定値ファイル１２００−１は、部分回路ごとに密度率の異なる複数のダミーパターンを生成するための密度率を設定するためのファイルである。設定値ファイル１２００−１は、標準密度率を基準（０［％］）として、増減率が記述されてある。標準密度率は、ダミーパターンを生成する際の基準となる密度率である。標準密度率は、例えば、密度ルールに規定された制限範囲に基づいて決定される。そして、標準密度率を満たすように部分回路の回路パターンが生成される。図１２の設定値ファイル１２００−１の例では、標準密度率を「０：５０」（「増減率：密度率」）という形式で表している。
【００７６】
目標密度率リスト１２０１−１は、設定値ファイル１２００−１に基づいて生成される目標密度率が記述されたファイルである。具体的には、目標密度率リスト１２０１−１は、例えば、標準密度率から、設定値ファイル１２００−１に記述された各増減値を加算することによって得られる目標密度率をリスト化したファイルである。例えば、標準密度率５０［％］−５［％］によって目標密度率「４５［％］」が得られる。図１２の例では、目標密度率は５［％］の等間隔の値であるが、これに限らず、目標密度率は等間隔でなくてもよい。
【００７７】
図１３は、設定値ファイルおよび目標密度率リストの一記憶例を示す説明図（その２）である。図１３に示す設定値ファイル１２００−２は、標準密度率に近いダミーパターンの数を多くし、標準密度率から遠いダミーパターンの数が多くなるようにするため目標密度率を設定するめのファイルである。図１３に示す目標密度率リスト１２０１−２は、図１３に示す設定値ファイル１２００−２に基づいて生成された目標密度率をリスト化したファイルである。標準密度率に近い目標密度率の間隔は、４９．５［％］、４９．４［％］、４９・３［％］などのように０．１［％］刻みである。これに対して、標準密度率から遠い目標密度率の間隔は、４９．０［％］、４７．０［％］のように標準密度率に近い目標密度率の間隔よりも大きい。
【００７８】
また、本実施の形態では、すべての部分回路において同じ設定値ファイル１２００を用いるため、すべての部分回路において生成されるレイアウトパターンの密度率が同様であるが、これに限らない。例えば、部分回路ごとに設定値ファイル１２００が用意されていてもよいし、特に限定しない。
【００７９】
図１４は、回路ライブラリの一記憶例を示す説明図である。回路ライブラリ４００は、例えば、部分回路の種類別に、登録情報１４０１と、登録情報１４０１に関連付けられた複数のダミーパターンを示すパターンデータ１４１ｎ−ｍと、が登録されてある。
【００８０】
ここで、機能および性能が同一の部分回路同士は同一種類とし、機能または性能が異なる部分回路同士は異なる種類とする。なお、機能が同じであっても回路パターンが異なるような部分回路同士は、異なる種類である。例えば、２入力１出力で駆動能力が１のＯＲセルと、２入力１出力で駆動能力が２のＯＲセルとは異なる種類の部分回路である。
【００８１】
また、ｎは１以上の整数である。ｎは部分回路の種類の数に応じて決まる。ｍは１〜ｘや１〜ｙなどのように、登録されるダミーパターンの数によって定まる。
【００８２】
図１５は、登録情報の一記憶例を示す説明図（その１）である。登録情報１４０１−Ａは、例えば、密度率と、密度率を満たすようにレイアウトされたダミーパターンを示すパターンデータとを対応付ける情報である。図１５に示す登録情報１４０１−Ａは、例えば、図１２に示す設定値ファイル１２００−１に基づいてパターンデータが作成された場合における登録情報である。
【００８３】
登録情報１４０１−Ａは、密度率、データＩＤ、パターンデータ名のフィールドを有する。密度率のフィールドには、標準密度率に対する目標密度率の増減値が設定される。データＩＤのフィールドには、目標密度率を満たすようにレイアウトされたダミーパターンの識別情報が設定される。ダミーパターンの識別情報としては、レイアウト用のＣＡＤによって設計されたダミーパターンのトップの図面名が設定される。また、パターンデータ名のフィールドには、ダミーパターンを示すパターンデータのファイルの在り処が設定される。
【００８４】
図１６は、登録情報の一記憶例を示す説明図（その２）である。図１６に示す登録情報１４０１−Ｂは、例えば、図１３に示す設定値ファイル１２００−２に基づいてパターンデータが作成された場合における登録情報１４０１である。図１６に示す登録情報１４０１−Ｂが有するフィールドは、図１５に示した登録情報１４０１−Ａが有するフィールドと同じであり、詳細な説明を省略する。
【００８５】
図１５や図１６に示す登録情報１４０１には、パターンデータと密度率とが対応付けられてある。これにより、設計支援装置１００は、指定の密度率に応じたパターンデータを検索することができる。
【００８６】
図１７は、エラーリストの一記憶例を示す説明図である。エラーリスト１７００は、ＤＲＣツールによって発生したエラーに関する情報を集約したデータベースである。エラーリスト１７００は、例えば、密度ルール名、エラー種別、エラー数、密度制限値、エラー座標、エラー領域の密度率、制限値とエラー密度率の差のフィールドを有する。各フィールドに情報が設定されることによりレコードとしてエラー要素１７０１−１〜１７０１−６などが記憶される。
【００８７】
密度ルール名のフィールドには、ＤＲＣルールに定義されている密度ルールの名前が設定される。エラー種別のフィールドには、密度ルールの種別が設定される。密度ルールの種別としては、「高密度エラー」、「低密度エラー」、「粗密差エラー」のいずれかが設定される。
【００８８】
エラー数のフィールドには、密度ルールによって検出されたエラーの数が設定される。密度制限値のフィールドには、例えば、ＤＲＣルールに定義されている密度率の制限値が設定される。密度ルールの種別が「高密度エラー」の場合、密度制限値のフィールドには、密度率の上限値が設定される。密度ルールの種別が「低密度エラー」の場合、密度制限値のフィールドには、密度率の下限値が設定される。密度ルールの種別が「粗密差エラー」の場合、密度制限値のフィールドには、粗密差の上限値および下限値が設定される。例えば、密度ルール「ｄｅｎｓｉｔｙ＿０１」の場合、密度制限値である上限値は７０［％］である。
【００８９】
エラー座標のフィールドには、エラーが検出された領域のレイアウト座標の座標値が設定される。レイアウト領域には、直交するＸ軸とＹ軸が定義されてあり、原点が定義されてある。具体的には、エラー座標のフィールドには、レイアウト領域のうちのエラーが検出された領域を示すレイアウト座標として、例えば「｛矩形左下のＸ座標，矩形左下のＹ座標｝  ｛矩形右上のＸ座標，矩形右上のＹ座標｝」が設定される。例えば、密度ルール「ｄｅｎｓｉｔｙ＿０１」によって検出されたエラー領域は、「｛１０，１０｝  ｛６０，６０｝」によって表される領域である。
【００９０】
エラー領域の密度率のフィールドには、ＤＲＣツールによって検出されたエラー領域の密度率が設定される。制限値とエラー密度率の差のフィールドには、制限値とエラー密度率の差分値が設定される。例えば、密度ルール「ｄｅｎｓｉｔｙ＿０１」によって検出されたエラー領域の密度率は「８０」であり、制限値とエラー密度率の差は「１０」である。
【００９１】
（設計支援装置１００の機能的構成例）
図１８は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置１００は、第１生成部１８０１と、第２生成部１８０２と、検証実行部１８０３と、判定部１８０４と、登録部１８０５と、特定部１８０６と、抽出部１８０７と、第３生成部１８０８と、出力部１８０９と、記憶部１０１と、を有する。第１生成部１８０１から出力部１８０９までの制御部１８００の処理は、例えば、図１１に示すＣＰＵ１１０１がアクセス可能なＲＯＭ１１０２、ＲＡＭ１１０３、ディスク１１０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ１１０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部１８００の処理が実現される。
【００９２】
記憶部１０１は、ＲＡＭ１１０３、ＲＯＭ１１０２、ディスク１１０５、半導体メモリなどによって実現される。記憶部１０１は、例えば、各種レイアウトデータ、回路ライブラリ４００、設定値ファイル１２００、目標密度率リスト１２０１、エラーリスト１７００などが記憶される。また、制御部１８００の処理結果は、例えば、ＲＡＭ１１０３、ＲＯＭ１１０２、ディスク１１０５などの記憶装置に記憶される。
【００９３】
つぎに、制御部１８００に含まれる各機能ブロックについて、下位階層のレイアウト設計作業について説明した後に、上位階層のレイアウト設計作業について詳細に説明する。
【００９４】
まず、下位階層のレイアウト設計作業について説明する。
【００９５】
第１生成部１８０１は、設計の対象回路に含まれる複数の部分回路の各々の部分回路について、各々の部分回路の回路パターンを示すレイアウトデータを生成する。換言すると、第１生成部１８０１は、下位階層において、各々の部分回路の配置配線処理を行う。より具体的には、第１生成部１８０１は、例えば、自動配置配線ツールによって部分回路の配置配線処理を行ってもよい。または、第１生成部１８０１は、例えば、キーボード１１０７やマウス１１０８などに対する設計者からの操作入力に応じて部分回路の配置配線処理を行ってもよい。例えばスタンダードセルやマクロセル、ブロック、サブチップなどの部分回路は上位階層において複数回使用される。このため、部分回路は、従来技術と同様に、種類別にレイアウトデータが生成される。
【００９６】
第２生成部１８０２は、複数の部分回路の各々について、第１生成部１８０１によって生成されたレイアウトデータに基づいて、ダミーパターンを示すパターンデータを生成する。具体的には、第２生成部１８０２は、ダミー生成ツールに標準密度率を与えてダミーパターンを示すパターンデータを生成する。標準密度率は、例えば、任意に設定される。標準密度率は、例えば、密度ルールで規定された制限範囲の中間値が設定されてもよい。制限範囲の下限値が３０［％］であり、制限範囲の上限値が７０［％］であれば、目標密度率に５０［％］が設定される。上述したように、標準密度率となるダミーパターンは、標準ダミーパターンとも称する。そして、第２生成部１８０２は、第１生成部１８０１によって生成されたレイアウトデータと、標準ダミーパターンを示すパターンデータと、をマージする。マージする処理として、第２生成部１８０２は、例えば、第１生成部１８０１によって生成されたレイアウトデータにパターンデータを追加する。標準密度率を満たした部分回路のレイアウトデータが得られる。なお、従来技術と同様に、パターンデータは、配線パターンやポリシリコンパターンなどのようにレイアウト層別に生成される。
【００９７】
つぎに、検証実行部１８０３は、複数の部分回路の各々の部分回路について、第２生成部１８０２によって生成されたレイアウトデータに対して、ＤＲＣ、タイミング検証、電力解析、ノイズ解析などの検証を実行する。具体的には、検証実行部１８０３は、例えば、ＤＲＣ、タイミング検証、電力解析、ノイズ解析などの各検証ツールに、第２生成部１８０２によって生成されたレイアウトデータを与えることにより各検証を行う。各検証ツールは、設計支援装置１００上で動作してもよいし、設計支援装置１００と通信可能な他の装置上で動作してもよい。例えば、各検証ツールが、設計支援装置１００と通信可能な他の装置上で動作する場合、設計支援装置１００は、他の装置に、レイアウトデータを入力として検証ツールを実行させる指示を通知する。このようにして、検証実行部１８０３は、各検証を実行することができる。
【００９８】
判定部１８０４は、検証実行部１８０３によって検証された各検証結果が制約を満たしているか否かを判定する。具体的には、判定部１８０４は、例えば、各検証ツールによる検証においてエラーが発生したか否かを判定する。ＤＲＣを例に挙げると、ＤＲＣツールによって密度ルールが制約を満たしているか否かが検証されるため、判定部１８０４は、検証結果に密度エラーが発生したことを示す情報が含まれているか否を判定する。判定部１８０４によっていずれかの検証にエラーが発生したと判定された場合、ダミーパターンを含まない回路レイアウトパターンを修正するために第１生成部１８０１の処理が行われる。例えば、ＤＲＣにおける制約は上述した物理設計ルールに含まれる。複数の部分回路のすべての検証結果が制約を満たしていると判定された場合、密度の異なるダミーパターンが生成される。
【００９９】
つぎに、第２生成部１８０２は、複数の部分回路の各々について、第１生成部１８０１によって生成されたレイアウトデータに基づいて、標準ダミーパターンと形状の異なるダミーパターンを示すパターンデータを生成する。ここでは、形状の異なるダミーパターンを用意するために、目標密度率リスト１２０１に規定された目標密度率ごとにダミーパターンを生成する例を説明する。具体的には、第２生成部１８０２は、例えば、目標密度率リスト１２０１に規定された目標密度率ごとに、目標密度率に応じたパターンデータを生成する。そして、第２生成部１８０２は、例えば、部分回路の各々について、目標密度率ごとに、第１生成部１８０１によって生成されたレイアウトデータと、パターンデータと、をマージする。マージする処理は、上述した通り、例えば、第１生成部１８０１によって生成されたレイアウトデータに生成したパターンデータを追加する処理である。なお、目標密度率ごとのパターンデータは、配線層やポリシリコン層などのようにレイアウト層別に生成される。
【０１００】
検証実行部１８０３は、複数の部分回路の各々について、目標密度率ごとに、第２生成部１８０２によって生成されたレイアウトデータに対して、ＤＲＣ、タイミング検証、電力解析、ノイズ解析などの検証を実行する。検証実行部１８０３による検証の実行については上述した通りである。
【０１０１】
判定部１８０４は、複数の部分回路の各々について、目標密度率ごとに、各検証結果が制約を満たしているか否かを判定する。
【０１０２】
登録部１８０５は、複数の部分回路の各々について、レイアウトデータの各検証結果が制約を満たしていると判定された目標密度率と、目標密度率について生成されたパターンデータとを対応付けて、記憶部１０１に記憶された回路ライブラリ４００に登録する。具体的には、登録部１８０５は、パターンデータを記憶部１０１に記憶させるとともに、部分回路の種類別に、密度率と、データＩＤと、パターンデータ名と、を登録情報１４０１に登録する。登録情報１４０１の詳細例については、上述した図１５や図１６に示した通りである。
【０１０３】
つぎに、上位階層のレイアウト設計作業について説明する。
【０１０４】
第１生成部１８０１は、対象回路の回路パターンを示す第１レイアウトデータを生成する。対象回路の回路パターンは、対象回路のレイアウト領域における複数の部分回路の各々の部分回路の回路パターンおよび各々の部分回路のダミーパターンの位置と、各々の部分回路間を接続する配線パターンと、を含む。第１生成部１８０１は、例えば、部分回路の各々についてのレイアウトデータに基づいて、第１レイアウトデータを生成する。
【０１０５】
具体的には、第１生成部１８０１は、例えば、配置配線ツールを用いて第１レイアウトデータを生成してもよい。または、第１生成部１８０１は、例えば、マウス１１０８やキーボード１１０７などの入力装置に対する設計者の操作入力に応じて第１レイアウトデータを生成してもよい。そして、第２生成部１８０２は、第１レイアウトデータが示す対象回路の回路パターンに対して、標準密度率となるようにダミーパターンを示すパターンデータを生成してもよい。第２生成部１８０２は、第１レイアウトデータに、生成したパターンデータをマージさせる。
【０１０６】
つぎに、検証実行部１８０３は、第１レイアウトデータに対して、ＤＲＣ、タイミング検証、電力解析、ノイズ解析などの検証を実行する。
【０１０７】
そして、判定部１８０４は、第１レイアウトデータの各検証結果が制約を満たしているか否かを判定する。タイミング検証、電力解析、ノイズ解析などの検証結果が制約を満たしていない場合、配線パターンなどの修正を行う。また、判定部１８０４は、例えば、ＤＲＣツールの検証結果を解析してＤＲＣツールの検証結果に密度エラーが含まれている場合、エラーリスト１７００を生成する。エラーリスト１７００の一例は、上述した図１７に示す。
【０１０８】
特定部１８０６は、第１レイアウトデータにおいて、対象回路に含まれる複数の部分回路のうち、配置領域の中で対象回路の回路パターンの密度が制約を満たさない領域に含まれる部分回路を特定する。ここでの領域は、上述した通りチェックエラーと重複する領域であり、密度エラーが検出された領域である。密度エラーが検出された領域は、エラー領域とも称する。具体的には、特定部１８０６は、例えば、エラーリスト１７００から先頭のエラー要素を取得する。そして、特定部１８０６は、複数の部分回路から、取得したエラー要素に含まれるエラー座標に基づいてエラー領域に含まれる部分回路を特定する。
【０１０９】
特定される部分回路は、エラー領域に少なくとも一部が含まれる部分回路であってもよいし、エラー領域に全部が含まれる部分回路であってもよいし、エラー領域に所定率含まれる部分回路であってもよい。このように、特定される部分回路の条件は、設計者や設計支援装置１００の開発者が決定すればよく、特に限定しない。
【０１１０】
ここで、特定部１８０６によって特定された部分回路は、差し替え候補回路とも称する。特定部１８０６は、例えば、差し替え候補回路のインスタンス名などの名前を要素としてリスト化した階層名リストを作成する。
【０１１１】
抽出部１８０７は、記憶部１０１から、配置領域における特定部１８０６によって特定された部分回路のダミーパターンと密度の異なる特定された部分回路のダミーパターンを示すパターンデータを抽出する。具体的には、抽出部１８０７は、例えば、階層名リストの先頭から要素を取り出す。そして、抽出部１８０７は、例えば、回路ライブラリ４００から、第１レイアウトデータにおける、取り出した要素の差し替え候補回路のパターンデータと異なる密度率のパターンデータを抽出する。
【０１１２】
ここで、抽出対象となるパターンデータは、例えば、密度エラーの種類に応じて定まる。密度エラーのエラー種別は、上述したように、「高密度エラー」、「低密度エラー」、「粗密差エラー」の３つがある。
【０１１３】
まず、エラー種別が「高密度エラー」の場合について説明する。上述したように、エラー種別が「高密度エラー」の場合、エラー領域の密度率が密度ルールに規定された密度範囲よりも高い。このため、抽出部１８０７は、エラー領域の密度率が低くなるようにパターンデータを抽出する。具体的には、抽出部１８０７は、例えば、回路ライブラリ４００から、第１レイアウトデータに含まれる差し替え候補回路のダミーパターンの密度率よりも密度率が低いダミーパターンを示すパターンデータを抽出する。
【０１１４】
つぎに、エラー種別が「低密度エラー」の場合について説明する。上述したように、エラー種別が「低密度エラー」の場合、エラー領域の密度率が密度ルールに規定された密度範囲よりも低い。このため、抽出部１８０７は、エラー領域の密度率が高くなるようにパターンデータを抽出する。具体的には、抽出部１８０７は、例えば、回路ライブラリ４００から、第１レイアウトデータに含まれる部分回路のダミーパターンの密度率よりも密度率が高いダミーパターンを示すパターンデータを抽出する。
【０１１５】
そして、エラー種別が「粗密差エラー」である場合について説明する。粗密差ルールでは、密度差が規定されてある。粗密差ルールによるＤＲＣでは、ある領域の密度率が、規定の密度差よりも隣接する２つの領域の一方の密度率よりも大きく、ある領域の密度率が、規定の密度差よりも隣接する２つの領域の他方の密度率よりも小さい場合に、２つの領域をエラー領域として検出する。ここで、密度率が低い一方の領域は低密度エラー領域と称する。密度率が高い他方の領域は高密度エラー領域と称する。
【０１１６】
このように、エラー種別が「粗密差エラー」である場合、２つの領域がエラー領域として検出される。そこで、抽出部１８０７は、ある領域と、低密度エラー領域および高密度エラー領域との密度差が規定の密度差以下となるように、低密度エラー領域および高密度エラー領域との各々の差し替え候補回路についてパターンデータを抽出する。なお、粗密差エラーが解消されればよいため、抽出部１８０７は、低密度エラー領域および高密度エラー領域とのうちの一方のエラー領域の差し替え回路のパターンデータを抽出してもよい。低密度エラー領域の場合、抽出部１８０７は、第１レイアウトデータにおける差し替え候補回路のダミーパターンの密度率よりも密度率が高いダミーパターンを示すパターンデータを抽出する。また、高密度エラー領域の場合、抽出部１８０７は、第１レイアウトデータにおける差し替え候補回路のダミーパターンの密度率よりも密度率が低いダミーパターンを示すパターンデータを抽出する。
【０１１７】
ここで、抽出部１８０７によって抽出されたパターンデータを差し替え候補データとも称する。差し替え候補データが示すダミーパターンを、差し替え候補のダミーパターンとも称する。
【０１１８】
つぎに、第３生成部１８０８は、第１レイアウトデータと差し替え候補データとに基づいて、第２レイアウトデータを生成する。第２レイアウトデータは、配置領域における特定された部分回路のダミーパターンが、差し替え候補データのダミーパターンに置き換えられた対象回路の回路パターンを示す。具体的には、第３生成部１８０８は、第１レイアウトデータに含まれる差し替え候補回路のダミーパターンを示すパターンデータを、差し替え候補データに置き換える。置き換え後の第１レイアウトデータが第２レイアウトデータである。置き換える処理として、第３生成部１８０８は、第１レイアウトデータに含まれる差し替え候補回路のダミーパターンを示すパターンデータを削除する。そして、第３生成部１８０８は、第１レイアウトデータに含まれる差し替え候補回路のレイアウトデータに、差し替え候補データをマージする。これにより、既存のパターンデータから差し替え候補データに置き換えることができる。
【０１１９】
つぎに、検証実行部１８０３は、第２レイアウトデータに対して、ＤＲＣを実行する。そして、判定部１８０４は、検証実行部１８０３によって検証された第２レイアウトデータに対するＤＲＣの検証結果が制約を満たしているか否かを判定する。
【０１２０】
出力部１８０９は、検証実行部１８０３によって検証された第２レイアウトデータに対するＤＲＣの検証結果が制約を満たしていると判定された場合、第２レイアウトデータを出力する。具体的には、出力部１８０９は、例えば、第２レイアウトデータを記憶部１０１に格納する。また、出力部１８０９は、例えば、第２レイアウトデータが示す回路パターンをレイアウト用のＣＡＤによってディスプレイ１１０９などの表示装置に、対象回路の回路パターンとして表示させてもよい。
【０１２１】
ここで、検証実行部１８０３によって検証された第２レイアウトデータに対する各検証結果が制約を満たしていないと判定された場合について説明する。
【０１２２】
抽出部１８０７によって複数のパターンデータが抽出される場合がある。このような場合、第３生成部１８０８は、第１レイアウトデータに含まれる差し替え候補回路の差し替え候補データを、複数の差し替え候補データのうち処理の対象となっていない差し替え候補データに置き換えて新たに第２レイアウトデータを生成する。そして、上述したように検証実行部１８０３が、新たに生成した第２レイアウトデータに対して各検証を実行する。このように、複数の差し替え候補データがある場合、判定部１８０４によって各検証結果が制約を満たしていると判定されるまで、第３生成部１８０８と検証実行部１８０３との処理を繰り返してもよい。
【０１２３】
また、特定部１８０６によってエラー領域に含まれる複数の部分回路が抽出される場合がある。このような場合、抽出部１８０７は、差し替え候補回路から処理対象となっていない差し替え候補回路のパターンデータの密度率と異なる密度率のパターンデータを抽出する。そして、第３生成部１８０８と検証実行部１８０３との処理を再度行う。このように、複数の差し替え候補回路がある場合、判定部１８０４によって各検証結果が制約を満たしていると判定されるまで、抽出部１８０７と第３生成部１８０８と検証実行部１８０３との処理を繰り返してもよい。
【０１２４】
処理対象となる差し替え候補回路と、処理対象となる差し替え候補データと、のいずれを先に変更するかについては、設計支援装置１００の開発者や設計者などが任意に決定すればよく、特に限定しない。
【０１２５】
また、処理対象となる差し替え候補回路と、処理対象となる差し替え候補データと、の両方について順に変更しても判定部１８０４によって各検証結果が制約を満たしていると判定されない場合がある。このような場合、ダミーパターンの変更による密度率の増減だけでは、密度ルールを満たすことが難しい状況である。このため、出力部１８０９は、ダミーパターンの増減だけでは密度エラーを満たせない旨を含むメッセージを、ディスプレイ１１０９などの表示装置に表示する。これにより、設計支援装置１００は、対象回路の回路レイアウト自体を見直すように指示することができる。
【０１２６】
また、上述した処理では、下位階層と上位階層との説明において２階層で説明したがこれに限らない。例えば、上位階層がサブチップ階層であれば、下位階層が、ブロック階層、スタンダードセルおよびマクロセル階層などのように下位階層に複数の階層がある場合がある。このような場合、特定部１８０６は、階層別に、エラー領域に含まれる部分回路を特定する。そして、特定部１８０６は、上述した階層名リストを作成する際に、階層別に、差し替え候補回路のインスタンス名などの名称をリスト化してもよい。
【０１２７】
また、特定部１８０６による階層名リストを作成する際に並べる順番の決定キーが選択可能であってもよい。例えば、第１レイアウトデータにおける密度率からの変動を小さくしたい場合、特定部１８０６は、面積の小さな下位階層の差し替え候補回路のダミーパターンを優先して変更できるように階層名リストを作成してもよい。具体的には、特定部１８０６は、例えば、面積の小さな下位階層の差し替え候補回路の名称から順に並べて階層名リストを作成する。このように、優先して処理対象としたい下位階層があれば、特定部１８０６は、その下位階層の差し替え候補回路の名称から順に並べて階層名リストを作成する。
【０１２８】
また、抽出部１８０７および第３生成部１８０８の処理対象となる差し替え候補回路は、階層別に決定されてもよいし、異なる階層から決定されてもよく、特に限定しない。
【０１２９】
また、密度エラーの違反値が微小である場合、ダミーパターンの僅かな形状変化だけでエラーが解消する場合がある。そのため、密度率が同じであっても形状が異なるダミーパターンがあればエラーが修正できる可能性が高まる。そこで、例えば、異なる処理アルゴリズムの複数のダミー生成ツールを用意しておき、第２生成部１８０２は、複数のダミー生成ツールのいずれのダミー生成ツールによって標準密度率についてのダミーパターンを示すパターンデータを生成する。そして、第２生成部１８０２は、いずれかのダミー生成ツールと異なるダミー生成ツールについて、標準密度率についてのダミーパターンを示すパターンデータを生成する。そして、登録部１８０５は、異なるダミー生成ツールによって生成したパターンデータを形状の異なるダミーパターンのパターンデータとして、回路ライブラリ４００に登録してもよい。また、第２生成部１８０２は、複数のダミー生成ツールの各々について、目標密度率についてのダミーパターンを示すパターンデータを生成してもよい。そして、登録部１８０５は、ダミー生成ツールの識別情報と、目標密度率と、パターンデータと、を対応付けて回路ライブラリ４００に登録してもよい。
【０１３０】
（設計支援装置１００が行う処理手順例）
つぎに、設計支援装置１００が行う処理手順について説明する。図１９および図２０を用いて、下位階層の設計処理手順について説明する。図２１および図２２を用いて、上位階層の設計においてＤＲＣにより密度エラーが発生した場合における設計処理手順について説明する。
【０１３１】
図１９および図２０は、設計支援装置による下位階層の設計処理手順例を示すフローチャートである。まず、設計支援装置１００は、下位階層の部分回路の回路パターンを生成する（ステップＳ１９０１）。回路パターンを生成するとは、部分回路の回路パターンを示すレイアウトデータを生成することを示す。
【０１３２】
つぎに、設計支援装置１００は、標準密度率のダミーパターンを生成して回路パターンへマージする（ステップＳ１９０２）。ステップＳ１９０２によって、部分回路のレイアウトパターンを示すレイアウトデータが得られる。そして、設計支援装置１００は、マージ後のレイアウトパターンを示すレイアウトデータに対して、ＤＲＣ、タイミング検証、電力解析、ノイズ解析などの検証を実行する（ステップＳ１９０３）。
【０１３３】
設計支援装置１００は、各検証結果が制約を満たしているか否かを判断する（ステップＳ１９０４）。各検証結果が制約を満たしていないと判断された場合（ステップＳ１９０４：Ｎｏ）、設計支援装置１００は、回路レイアウトを修正する（ステップＳ１９０５）。回路レイアウトを修正するとは、部分回路のレイアウトパターンを示すレイアウトデータを修正することを示す。各検証結果が制約を満たしたと判断された場合（ステップＳ１９０４：Ｙｅｓ）、設計支援装置１００は、回路レイアウトを出力する（ステップＳ１９０６）。回路レイアウトを出力するとは、部分回路のレイアウトパターンを示すレイアウトデータを出力することを示す。ステップＳ１９０６において設計支援装置１００は、例えば、レイアウトデータを記憶部１０１などに記憶させる。ステップＳ１９０６の後に、設計支援装置１００は、図２０に示すステップＳ２００１へ移行する。
【０１３４】
設計支援装置１００は、設定値ファイル１２００を読み込む（ステップＳ２００１）。ステップＳ２００１において、設計支援装置１００は、読み込んだ設定値ファイル１２００と標準密度率とに基づいて目標密度率リスト１２０１を作成してもよい。
【０１３５】
つぎに、目標密度率リスト１２０１に含まれるすべての目標密度率により追加ダミーパターンの生成が終わったか否かを判断する（ステップＳ２００２）。すべての目標密度率により追加ダミーパターンの生成が終わっていないと判断された場合（ステップＳ２００２：Ｎｏ）、設計支援装置１００は、目標密度率リスト１２０１に含まれる目標密度率のうち処理対象となっていない目標密度率に基づいて追加ダミーパターンを生成して回路レイアウトへマージする（ステップＳ２００３）。ここでの回路レイアウトとは、図１９に示すステップＳ１９０１またはステップＳ１９０５において生成されたダミーパターンをマージ前の回路レイアウトである。
【０１３６】
そして、設計支援装置１００は、マージ後の回路レイアウトを示すレイアウトデータに対して、各種検証を実行する（ステップＳ２００４）。つぎに、設計支援装置１００は、各検証結果が制約を満たしているか否かを判断する（ステップＳ２００５）。各検証結果が制約を満たしていないと判断された場合（ステップＳ２００５：Ｎｏ）、設計支援装置１００は、作成したダミーパターンを破棄し（ステップＳ２００６）、ステップＳ２００２へ戻る。各検証結果が制約を満たしていると判断された場合（ステップＳ２００５：Ｙｅｓ）、設計支援装置１００は、ダミーパターンの情報を回路ライブラリ４００に登録し（ステップＳ２００７）、ステップＳ２００２へ戻る。ステップＳ２００７において、ダミーパターンの情報を回路ライブラリ４００に登録するとは、目標密度率と、生成されたダミーパターンを示すパターンデータと、を対応付けて回路ライブラリ４００に登録することである。
【０１３７】
ステップＳ２００２において、全ての目標密度率により追加ダミーパターンの生成が終わったと判断された場合（ステップＳ２００２：Ｙｅｓ）、設計支援装置１００は、一連の処理を終了する。
【０１３８】
図１９および図２０に示した処理は、下位階層における１部分回路に対する処理であり、部分回路の種類別に同様の処理が行われる。
【０１３９】
図２１および図２２は、設計支援装置による上位階層における密度エラーが発生した場合の設計処理手順例を示すフローチャートである。ここでは、上位階層の設計により得られた第１レイアウトデータに対するＤＲＣ検証において密度エラーが発生した後の処理について説明する。なお、密度エラー以外のエラーについては、特に発生していないとして説明を行う。
【０１４０】
まず、設計支援装置１００は、ＤＲＣ実行結果を解析する（ステップＳ２１０１）。ステップＳ２１０１において、設計支援装置１００は、ＤＲＣ実行結果から、密度エラーの種別、エラーの数、エラーしたルールの密度制限値、エラー領域の回路レイアウト座標、エラー領域の密度率、密度制限値とエラー領域の密度率との差などの情報を収集する。
【０１４１】
そして、設計支援装置１００は、解析結果に基づいて、エラーリスト１７００を作成する（ステップＳ２１０２）。つぎに、設計支援装置１００は、密度エラー修正処理を開始する（ステップＳ２１０３）。ステップＳ２１０３において、設計支援装置１００は、エラーリスト１７００の先頭から、処理対象となっていない要素を取り出す。ここでの要素はレコードなどである。
【０１４２】
設計支援装置１００は、取り出した要素に含まれるエラー領域に含まれる下位階層の部分回路を特定する（ステップＳ２１０４）。そして、設計支援装置１００は、階層名リストを作成し（ステップＳ２１０５）、ステップＳ２２０１へ移行する。
【０１４３】
つぎに、設計支援装置１００は、回路ライブラリ４００から、パターンデータを抽出する（ステップＳ２２０１）。そして、設計支援装置１００は、差し替え候補データのダミーパターンのリストを作成する（ステップＳ２２０２）。ステップＳ２２０２において、設計支援装置１００は、例えば、差し替え候補データの名称をリスト化してもよい。
【０１４４】
設計支援装置１００は、作成したリストから処理対象となっていない差し替え候補データがあるか否かを判断する（ステップＳ２２０３）。処理対象となっていない差し替え候補データがあると判断された場合（ステップＳ２２０３：Ｙｅｓ）、設計支援装置１００は、処理対象となっていない差し替え候補データのうちのいずれかの差し替え候補データに基づいて、ダミーパターンの差し替えを実行する（ステップＳ２２０４）。ステップＳ２２０４において、設計支援装置１００は、第１レイアウトデータに含まれる差し替え候補回路のダミーパターンを、差し替え候補データが示すダミーパターンに置き換えた第２レイアウトデータを生成する。
【０１４５】
設計支援装置１００は、ＤＲＣを実行する（ステップＳ２２０５）。設計支援装置１００は、該当のエラー領域の密度エラーが解消したか否かを判断する（ステップＳ２２０６）。該当のエラー領域の密度エラーが解消していないと判断された場合（ステップＳ２２０６：Ｎｏ）、設計支援装置１００は、ステップＳ２２０３へ戻る。該当のエラー領域の密度エラーが解消したと判断された場合（ステップＳ２２０６：Ｙｅｓ）、設計支援装置１００は、ステップＳ２２０９へ移行する。
【０１４６】
ステップＳ２２０３において、すべての差し替え候補データが処理対象となったと判断された場合（ステップＳ２２０３：Ｎｏ）、設計支援装置１００は、階層名リストにつぎの要素があるか否かを判断する（ステップＳ２２０７）。階層名リストにつぎの要素があると判断された場合（ステップＳ２２０７：Ｙｅｓ）、設計支援装置１００は、ステップＳ２２０１へ戻る。
【０１４７】
階層名リストにつぎの要素がないと判断された場合（ステップＳ２２０７：Ｎｏ）、設計支援装置１００は、メッセージを出力する（ステップＳ２２０８）。そして、設計支援装置１００は、エラーリスト１７００を更新する（ステップＳ２２０９）。ここでエラーリスト１７００を更新するとは、エラーリスト１７００から処理対象となった要素を削除することを示す。
【０１４８】
設計支援装置１００は、エラーリスト１７００につぎの要素があるか否かを判断する（ステップＳ２２１０）。エラーリスト１７００につぎの要素があると判断された場合（ステップＳ２２１０：Ｙｅｓ）、設計支援装置１００は、ステップＳ２１０３へ移行する。エラーリスト１７００につぎの要素がないと判断された場合（ステップＳ２２１０：Ｎｏ）、設計支援装置１００は、レイアウトデータを出力し（ステップＳ２２１１）、一連の処理を終了する。
【０１４９】
また、図２１および図２２に示した処理は、ＤＲＣにおいて密度エラーが検出された場合に自動的に実行が開始されてもよいし、設計者の指示に応じて実行が開始されてもよい。
【０１５０】
また、設計の対象となった対象回路は、対象回路を用いる上位階層においては部分回路となる。このため、本実施の形態では、上位階層における対象回路のダミーパターンの生成処理については、説明を省略したが、部分回路のダミーパターンの生成処理と同様に行われる。図２１および図２２に示した処理は、対象回路のダミーパターンの生成後に行ったＤＲＣにおいて密度エラーが発生した場合に行ってもよい。例えば、対象回路を部分回路として、さらに密度率の異なる複数のダミーパターンを生成してライブライ化してもよい。上位階層がブロック階層であり、下位階層がスタンダードセルおよびマクロ階層の場合に、ブロック階層におけるブロックのレイアウト設計が終了後に、ブロック階層は下位階層になる。そして、ブロックについて複数通りのダミーパターンを生成してライブラリ化し、上位階層であるサブチップ階層におけるサブチップのレイアウト設計が行われる。
【０１５１】
以上説明したように、設計支援装置１００は、対象回路内の密度エラー領域にある部分回路のダミーパターンを、部分回路別に予め用意した形状の異なるダミーパターンに変更して、密度制約を満たすレイアウトデータを生成する。これにより、設計支援装置１００は、上位階層のレイアウト設計において、下位階層の部分回路のレイアウトパターンの形状を調整することができる。したがって、設計支援装置１００は、レイアウトパターンの形状を変更させることにより、密度エラーの解消の容易化を図ることができる。設計支援装置１００は、容易に対象回路の密度調整をして、下位階層の部分回路のレイアウト設計作業などへの手戻りを抑制することができる。ひいては、設計支援装置１００は、手戻りによる設計時間の長期化を抑制することができる。
【０１５２】
また、設計支援装置１００は、密度率が異なるダミーパターンを複数用意しておき、対象回路内の密度エラー領域にある部分回路のダミーパターンを密度率が異なるダミーパターンに変更してエラーを解消する。これにより、設計支援装置１００は、上位階層のレイアウト設計において、下位階層の部分回路のレイアウトパターンの密度を調整することができる。したがって、設計支援装置１００は、密度エラーの解消の容易化を図ることができる。
【０１５３】
また、設計支援装置１００は、エラー領域の密度が高すぎる「高密度エラー」の場合、エラー領域の部分回路のダミーパターンの密度よりも低い密度の部分回路のダミーパターンを抽出する。これにより、設計支援装置１００は、エラー領域の密度が低くなるようにエラー領域内の部分回路のダミーパターンを置き換えることができる。したがって、設計支援装置１００は、「高密度エラー」の解消の容易化を図ることができる。
【０１５４】
また、設計支援装置１００は、エラー領域の密度が低すぎる「低密度エラー」の場合、エラー領域の部分回路のダミーパターンの密度よりも高い密度の部分回路のダミーパターンを抽出する。これにより、設計支援装置１００は、エラー領域の密度が高くなるようにエラー領域内の部分回路のダミーパターンを置き換えることができる。したがって、設計支援装置１００は、「低密度エラー」の解消の容易化を図ることができる。
【０１５５】
設計支援装置１００は、「粗密差エラー」の場合、エラー領域の密度と隣接領域の密度との比較に応じて、エラー領域内の部分回路のダミーパターンの密度と異なる密度の部分回路のダミーパターンを抽出する。これにより、エラー領域と隣接領域との密度差を小さくすることができる。
【０１５６】
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１５７】
また、本実施の形態で説明した設計支援装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した制御部１８００の機能をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、設計支援装置１００を製造することができる。
【符号の説明】
【０１５８】
１００  設計支援装置
１０１  記憶部
１１１  第１レイアウトデータ
１１２  第２レイアウトデータ
１１３  対象回路
１１４  レイアウト領域
１１５  エラー領域
１２０  レイアウトデータ
１３０，１３１，１３２，１３３  パターンデータ
４００  回路ライブラリ
１２００  設定値ファイル
１２０１  目標密度率リスト
１４０１  登録情報
１７００  エラーリスト
１８００  制御部
１８０１  第１生成部
１８０２  第２生成部
１８０３  検証実行部
１８０４  判定部
１８０５  登録部
１８０６  特定部
１８０７  抽出部
１８０８  第３生成部
１８０９  出力部
【図１】
2018109884.tif 000003
【図２】
2018109884.tif 000004
【図３】
2018109884.tif 000005
【図４】
2018109884.tif 000006
【図５】
2018109884.tif 000007
【図６】
2018109884.tif 000008
【図７】
2018109884.tif 000009
【図８】
2018109884.tif 000010
【図９】
2018109884.tif 000011
【図１０】
2018109884.tif 000012
【図１１】
2018109884.tif 000013
【図１２】
2018109884.tif 000014
【図１３】
2018109884.tif 000015
【図１４】
2018109884.tif 000016
【図１５】
2018109884.tif 000017
【図１６】
2018109884.tif 000018
【図１７】
2018109884.tif 000019
【図１８】
2018109884.tif 000020
【図１９】
2018109884.tif 000021
【図２０】
2018109884.tif 000022
【図２１】
2018109884.tif 000023
【図２２】
2018109884.tif 000024