(57)【要約】【課題】設計期間を短縮する。【解決手段】プロセッサ２が、半導体装置の階層設計データ４に含まれる第１の階層の回路ブロック５，７，８のそれぞれに、ダミーパターン５ｂを配置し、回路ブロック５，７，８のそれぞれにおいて、回路ブロック境界とダミーパターン５ｂとの間のダミーパターン５ｂが配置されていない領域に、ダミーパターン９を配置する候補とする配置候補領域５ｃ，７ａ，８ａを設定し、回路ブロック５，７，８を、第１の階層よりも上位の第２の階層の上位階層領域６に配置し、上位階層領域６に配置された回路ブロック５，７，８のそれぞれの配置候補領域５ｃ，７ａ，８ａのうち、互いに接する回路ブロック７ａの配置候補領域７と回路ブロック８の配置候補領域８ａを合わせた部分に、ダミーパターン９を配置する。【選択図】図１
2016105446.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが、半導体装置の階層設計データに含まれる第１の階層の複数の回路ブロックのそれぞれに、第１のダミーパターンを配置し、
前記プロセッサが、前記複数の回路ブロックのそれぞれにおいて、回路ブロック境界と前記第１のダミーパターンとの間の前記第１のダミーパターンが配置されていない第１の領域に、第２のダミーパターンを配置する候補とする配置候補領域を設定し、
前記プロセッサが、前記複数の回路ブロックを、前記第１の階層よりも上位の第２の階層の第２の領域に配置し、
前記プロセッサが、前記第２の領域に配置された前記複数の回路ブロックのそれぞれの前記配置候補領域のうち、互いに接する第１の回路ブロックの第１の配置候補領域と第２の回路ブロックの第２の配置候補領域を合わせた部分に、前記第２のダミーパターンを配置する、
ことを特徴とする設計方法。
【請求項２】
前記プロセッサは、前記複数の回路ブロックのそれぞれに含まれる回路パターンまたは前記第１のダミーパターンが存在しない領域の、ルールで定められた許容できる最大幅に基づき、前記第１の領域に、前記配置候補領域を設定するか否か判定する、ことを特徴とする請求項１に記載の設計方法。
【請求項３】
前記プロセッサは、
前記回路パターン及び前記ダミーパターンを、前記最大幅の半分、拡大して合成することで第１の合成パターンを生成し、
前記第１の合成パターンが前記回路ブロック境界を超えないときに、前記第１の合成パターンを、前記最大幅の半分、縮小した第２の合成パターンを生成し、前記第２の合成パターンと前記回路ブロック境界との間に、前記配置候補領域を設定する、ことを特徴とする請求項２に記載の設計方法。
【請求項４】
前記プロセッサは、前記配置候補領域を１つずつ選択して、選択した第３の配置候補領域が他の配置候補領域と接しないときには、前記第３の配置候補領域を、前記第２のダミーパターンを配置する候補から除外する、ことを特徴とする、請求項１乃至３の何れか一項に記載の設計方法。
【請求項５】
プロセッサを有し、
前記プロセッサは、
半導体装置の階層設計データに含まれる第１の階層の複数の回路ブロックのそれぞれに、第１のダミーパターンを配置し、
前記複数の回路ブロックのそれぞれにおいて、回路ブロック境界と前記第１のダミーパターンとの間の前記第１のダミーパターンが配置されていない第１の領域に、第２のダミーパターンを配置する候補とする配置候補領域を設定し、
前記複数の回路ブロックを、前記第１の階層よりも上位の第２の階層の第２の領域に配置し、
前記第２の領域に配置された前記複数の回路ブロックのそれぞれの前記配置候補領域のうち、互いに接する第１の回路ブロックの第１の配置候補領域と第２の回路ブロックの第２の配置候補領域を合わせた部分に、前記第２のダミーパターンを配置する、
ことを特徴とする設計装置。
【請求項６】
半導体装置の階層設計データに含まれる第１の階層の複数の回路ブロックのそれぞれに、第１のダミーパターンを配置し、
前記複数の回路ブロックのそれぞれにおいて、回路ブロック境界と前記第１のダミーパターンとの間の前記第１のダミーパターンが配置されていない第１の領域に、第２のダミーパターンを配置する候補とする配置候補領域を設定し、
前記複数の回路ブロックを、前記第１の階層よりも上位の第２の階層の第２の領域に配置し、
前記第２の領域に配置された前記複数の回路ブロックのそれぞれの前記配置候補領域のうち、互いに接する第１の回路ブロックの第１の配置候補領域と第２の回路ブロックの第２の配置候補領域を合わせた部分に、前記第２のダミーパターンを配置する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計方法、設計装置及びプログラムに関する。
【背景技術】
【０００２】
半導体装置の設計の際、基板上や回路ブロック（セルなどとも呼ばれる）上での配線パターンなどの密度差が大きいと、ＤＲＣ（Design Rule Checking）検証で密度エラーが生じ、製造ができなくなる場合がある。また、密度エラーが生じない場合でも、たとえば、上記の密度差により半導体装置の表面に段差が生じる可能性がある。これにより、ＣＭＰ（Chemical Mechanical Polish）の際に配線の削り残りが生じてショートなどの不具合が発生し、歩留まりを悪化させてしまうことがある。
【０００３】
そこで、密度差を少なくするために、ダミーパターンを配置する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１―１６６４５２号公報
【特許文献２】特開２００８―３０５８１４号公報
【特許文献３】特開２０１１―２２８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、階層設計時において、回路ブロックの境界付近には、ダミーパターンを配置させる広さが十分ではないため、ダミーパターンが配置されない領域が生じる。複数の回路ブロック間で、その領域が接するように上位階層に配置された場合、ダミーパターンが配置されない領域が広がってしまい、ＤＲＣ検証で密度エラーが生じる可能性がある。密度エラーが生じると、レイアウトの修正など設計工程の手戻りが発生し、設計期間が長くなってしまうという問題がある。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、プロセッサが、半導体装置の階層設計データに含まれる第１の階層の複数の回路ブロックのそれぞれに、第１のダミーパターンを配置し、前記プロセッサが、前記複数の回路ブロックのそれぞれにおいて、回路ブロック境界と前記第１のダミーパターンとの間の前記第１のダミーパターンが配置されていない第１の領域に、第２のダミーパターンを配置する候補とする配置候補領域を設定し、前記プロセッサが、前記複数の回路ブロックを、前記第１の階層よりも上位の第２の階層の第２の領域に配置し、前記プロセッサが、前記第２の領域に配置された前記複数の回路ブロックのそれぞれの前記配置候補領域のうち、互いに接する第１の回路ブロックの第１の配置候補領域と第２の回路ブロックの第２の配置候補領域を合わせた部分に、前記第２のダミーパターンを配置する、設計方法が提供される。
【０００７】
また、発明の一観点によれば、プロセッサを有し、前記プロセッサは、半導体装置の階層設計データに含まれる第１の階層の複数の回路ブロックのそれぞれに、第１のダミーパターンを配置し、前記複数の回路ブロックのそれぞれにおいて、回路ブロック境界と前記第１のダミーパターンとの間の前記第１のダミーパターンが配置されていない第１の領域に、第２のダミーパターンを配置する候補とする配置候補領域を設定し、前記複数の回路ブロックを、前記第１の階層よりも上位の第２の階層の第２の領域に配置し、前記第２の領域に配置された前記複数の回路ブロックのそれぞれの前記配置候補領域のうち、互いに接する第１の回路ブロックの第１の配置候補領域と第２の回路ブロックの第２の配置候補領域を合わせた部分に、前記第２のダミーパターンを配置する、設計装置が提供される。
【０００８】
また、発明の一観点によれば、半導体装置の階層設計データに含まれる第１の階層の複数の回路ブロックのそれぞれに、第１のダミーパターンを配置し、前記複数の回路ブロックのそれぞれにおいて、回路ブロック境界と前記第１のダミーパターンとの間の前記第１のダミーパターンが配置されていない第１の領域に、第２のダミーパターンを配置する候補とする配置候補領域を設定し、前記複数の回路ブロックを、前記第１の階層よりも上位の第２の階層の第２の領域に配置し、前記第２の領域に配置された前記複数の回路ブロックのそれぞれの前記配置候補領域のうち、互いに接する第１の回路ブロックの第１の配置候補領域と第２の回路ブロックの第２の配置候補領域を合わせた部分に、前記第２のダミーパターンを配置する、処理をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【０００９】
開示の設計方法、設計装置及びプログラムによれば、設計期間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の設計方法の一例を示す図である。
【図２】配置候補領域が設けられていない回路ブロックの一例を示す図である。
【図３】配置候補領域が設けられていない回路ブロックの上位階層領域への配置例を示す図である。
【図４】第２の実施の形態の設計装置のハードウェア例を示す図である。
【図５】第２の実施の形態の設計方法の一例の流れを説明するフローチャートである。
【図６】配置候補領域の生成の一例の流れを説明するフローチャートである。
【図７】回路パターンが配置された回路ブロックの一例を示す図である。
【図８】拡大した回路パターンの一例を示す図である。
【図９】ダミーパターンの配置例を示す図である。
【図１０】ダミーパターン領域のダミーパターンのうち、回路ブロックに配置されるダミーパターンの一例を示す図である。
【図１１】合成パターンが回路ブロック境界を超える例を示す図である。
【図１２】拡大された合成パターンが回路ブロック境界を超えない例を示す図である。
【図１３】配置候補領域が生成された回路ブロックの一例を示す図である。
【図１４】上位階層領域にダミーパターンを配置させる一例の流れを説明するフローチャートである。
【図１５】配置候補領域を対象としたダミーパターン生成処理の一例の流れを説明するフローチャートである。
【図１６】上位階層領域の１つ目のレイアウト例を示す図である。
【図１７】図１６の一部拡大図である。
【図１８】上位階層領域の２つ目のレイアウト例を示す図である。
【図１９】図１８の一部拡大図である。
【図２０】モニタの画面への設計データの１つ目の表示例を示す図である。
【図２１】モニタの画面への設計データの２つ目の表示例を示す図である。
【発明を実施するための形態】
【００１１】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
本実施の形態の設計方法は、コンピュータによって、半導体装置の設計を行うものである。
【００１２】
図１は、第１の実施の形態の設計方法の一例を示す図である。
設計方法は、以下のような設計装置１によって実行される。
設計装置１は、たとえば、コンピュータであり、プロセッサ２と記憶部３を有している。プロセッサ２は、記憶部３に記憶されているデータ及びプログラムに基づき、以下のような処理を実行する。
【００１３】
記憶部３は、プロセッサ２が実行するプログラムや、各種データを記憶する。たとえば、記憶部３は、半導体装置の階層設計データ４を記憶する。
階層設計データ４は、回路ブロック（セル）のレイアウト設計データや回路ブロックを配置する上位階層の領域のレイアウト設計データを含む。階層設計データ４は、たとえば、ＧＤＳ（Graphic Data System）やＯＡＳＩＳ（Open Artwork System Interchange Standard）などのフォーマットで記述されている。
【００１４】
第１の実施の形態の設計方法において、まず、プロセッサ２は、記憶部３から、階層設計データ４を読み出し、階層設計データ４に含まれる第１の階層（以下、下位階層と呼ぶ）の複数の回路ブロックのそれぞれに、ダミーパターンを配置する（ステップＳ１）。プロセッサ２は、後述のように、所定サイズのダミーパターンを、たとえば、回路ブロックの左下の頂点を始点として、左下から右上に向かって一定の間隔で、回路ブロックの配線パターンなどが配置されていない箇所に配置する。
【００１５】
ダミーパターンは、たとえば、回路ブロックに含まれる回路パターン（配線パターン、拡散領域パターン、ポリシリコンゲートパターンなど）の密度を一定にするために配置されるパターンである。ダミーパターンは、たとえば、製造時には、回路パターンと同じ材料で形成される。
【００１６】
次に、プロセッサ２は、複数の回路ブロックのそれぞれにおいて、回路ブロック境界（セル枠）とダミーパターンとの間の、ダミーパターンが配置されていない領域に、上位階層でダミーパターンを配置する候補とする配置候補領域を設定する（ステップＳ２）。
【００１７】
図１には、回路ブロック５の一例が示されている。回路ブロック５は、配線パターン５ａと、ステップＳ１の処理により配置されたダミーパターン５ｂを有する。また、回路ブロック５の境界（図１の例では回路ブロック５の上辺）と、ダミーパターン５ｂとの間の領域に、配置候補領域５ｃが設定されている。
【００１８】
その後、プロセッサ２は、ＤＲＣなどの、回路ブロックの物理検証を行う（ステップＳ３）。プロセッサ２は、物理検証として、たとえば、密度エラーが生じていないかなどを判定する。回路ブロックにおいて、回路パターンやダミーパターンが存在しない領域（以下空白領域と呼ぶ）の幅が、所定値を超えている場合には、密度エラーが発生する。密度エラーが発生した場合には、回路ブロックのレイアウト修正が行われる。
【００１９】
次に、プロセッサ２は、回路ブロックを下位階層に対して上位の階層の領域（以下上位階層領域と呼ぶ）に配置する（ステップＳ４）。
その後、プロセッサ２は、上位階層領域に配置された回路ブロックのそれぞれの配置候補領域のうち、互いに接する２つの回路ブロックの配置候補領域を合わせた部分に、ダミーパターンを配置する（ステップＳ５）。また、この際、プロセッサ２は、上位階層領域の回路ブロックなどが配置されていない領域にも、ダミーパターンを配置する。
【００２０】
図１には、上位階層領域６の一例が示されている。上位階層領域６には、ステップＳ４の処理により、回路ブロック５，７，８が配置され、回路ブロック７，８は、それぞれの配置候補領域７ａ，８ａが接するようにして配置されている。そして、配置候補領域７ａ，８ａを合わせた部分に、ダミーパターン９が配置されている。プロセッサ２は、図１に示すように、ステップＳ５の処理において、たとえば、回路ブロック７，８に配置されているものと同じサイズのダミーパターンを、配置候補領域７ａ，８ａの左下の頂点を始点とし、一定の間隔で配置する。
【００２１】
以下、第１の実施の形態の設計方法の効果を説明する前に、上記のような配置候補領域が設けられていない回路ブロックを上位階層領域に配置させる例を説明する。
図２は、配置候補領域が設けられていない回路ブロックの一例を示す図である。
【００２２】
回路ブロック１０には、ダミーパターン群１１が配置されている。ダミーパターン群１１の、所定サイズの各ダミーパターン（たとえば、ダミーパターン１１ａ）は、回路ブロック１０の左下の頂点を始点として、一定の間隔で配置されていく。
【００２３】
このような配置処理によって、回路ブロック１０の境界付近には、ダミーパターンを配置させる広さが十分でないために、ダミーパターンが配置されない空白領域１２，１３が生じている。
【００２４】
このような回路ブロックを上位階層領域に配置させた場合の例を以下に説明する。
図３は、配置候補領域が設けられていない回路ブロックの上位階層領域への配置例を示す図である。
【００２５】
上位階層領域１４に、回路ブロック１０ａ，１０ｂが配置されている。回路ブロック１０ａ，１０ｂは、比較的幅の広い空白領域（たとえば図２の空白領域１２）同士が接するようにして、上位階層領域１４に配置されている。この場合、上位階層領域１４において、より広い幅の空白領域１５が生じ、密度エラーが発生する可能性がある。
【００２６】
ここで、上位階層領域１４において、プロセッサ２がダミーパターンを配置する際、所定サイズのダミーパターンが、たとえば、上位階層領域１４の左下の頂点を始点として、一定の間隔で配置される。そのため、配置されるダミーパターンの間隔と、空白領域１５の幅との関係によっては、ダミーパターンが配置されないことがある。この場合、密度エラーが発生し、それを解消するために、レイアウト修正を行うなど、設計工程の手戻りが生じてしまう。
【００２７】
なお、密度エラーの発生を抑えるため、より小さいダミーパターンを回路ブロックの境界付近に配置させることが考えられる。しかし、自動レイアウトでこのような異なる複数の種類のダミーパターンを扱う場合、ダミーパターンを発生させるアルゴリズムの複雑化につながるため、手作業でダミーパターンを配置させることになる。そのため、結局、設計期間が長くなってしまう。
【００２８】
これに対し、本実施の形態の設計方法では、各回路ブロックの境界部分にダミーパターンの配置候補領域を設定し、回路ブロック間で接する配置候補領域を合わせた部分にダミーパターンを配置することで、密度エラーの発生が抑制される。このため、設計工程の手戻りが減り、設計期間を短縮できる。また、異なる複数の種類のダミーパターンを扱わなくてすむため、アルゴリズムの複雑化を招くこともない。
【００２９】
なお、上記のステップＳ２の処理で、プロセッサ２は、配置候補領域を設定するか否かを、ＤＲＣのルールで定められた空白領域の許容できる最大幅（以下チェック値と呼ぶ）に基づき判定することで、より効率的に密度エラーを抑制できる。
【００３０】
たとえば、２つの回路ブロックの少なくとも一方において、境界部分の空白領域の幅がチェック値の半分を超えている場合、空白領域同士が接するように配置されると、２つの空白領域の合計幅がチェック値を満たさなくなり密度エラーが発生する可能性がある。そのため、回路ブロックを上位階層領域に配置したときに、密度エラーを発生させる可能性の高い、幅がチェック値の半分を超えている空白領域に配置候補領域を設定することで、効率的に密度エラーを抑制できる。
【００３１】
図１に示す回路ブロック５の例では、幅ｗ１がチェック値の半分（ｍａｘ／２と表記されている）を超える空白領域に配置候補領域５ｃが設定されている。
（第２の実施の形態）
以下、第２の実施の形態の設計方法及び設計装置の一例を示す。
【００３２】
図４は、第２の実施の形態の設計装置のハードウェア例を示す図である。
設計装置は、たとえば、コンピュータ２０であり、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３３】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００３４】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００３５】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３６】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３７】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３９】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００４０】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４１】
以上のようなハードウェア構成によって、第２の実施の形態の設計方法を実現することができる。なお、図１に示した第１の実施の形態の設計装置１も、図２に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００４２】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４３】
続いて、本実施の形態の設計方法の一例を説明する。
（設計方法）
図５は、第２の実施の形態の設計方法の一例の流れを説明するフローチャートである。
【００４４】
以下の処理は、図４に示したコンピュータ２０において、たとえば、予めＨＤＤ２３に格納されているダミーパターン生成ルール４ａ、設計データ４ｂ，４ｃに基づき、プロセッサ２１の制御のもと行われる。
【００４５】
設計データ４ｂは、下位階層の回路ブロックのレイアウト設計データを含むデータである。
設計データ４ｃは、上位階層領域のレイアウト設計データを含むデータである。上位階層領域は、回路ブロックを配置させたときの回路ブロック間の信号などのタイミング制約を考慮して設計される。
【００４６】
ダミーパターン生成ルール４ａは、ダミーパターンの配置ルールや、配置候補領域の生成の際のチェック値を含む。ダミーパターンの配置ルールには、たとえば、ダミーパターンのサイズ、配置間隔が含まれる。
【００４７】
まず、プロセッサ２１は、ＨＤＤ２３からダミーパターン生成ルール４ａと設計データ４ｂとを読み出す。そして、プロセッサ２１は、読み出したダミーパターン生成ルール４ａと設計データ４ｂとに基づき、回路ブロックにダミーパターンを配置するとともに回路ブロックに配置候補領域を生成する（ステップＳ１０）。
【００４８】
図６は、配置候補領域の生成の一例の流れを説明するフローチャートである。
まず、プロセッサ２１は、ダミーパターン生成ルール４ａと設計データ４ｂとに基づいて、回路ブロックに配置するダミーパターンを生成する（ステップＳ２０）。
【００４９】
以下、ダミーパターンの生成の一例を、図７〜図１０を用いて説明する。
図７は、回路パターンが配置された回路ブロックの一例を示す図である。
回路パターンは、配線パターンやポリシリコンパターンなど、ダミーパターンではないものである。
【００５０】
プロセッサ２１は、各回路パターン（パターン３１など）を、予めダミーパターン生成ルール４ａで決められている、回路パターンとダミーパターンの間隔の最小基準値と同じサイズ分拡大する。
【００５１】
図８は、拡大した回路パターンの一例を示す図である。
なお、図８に示す要素で、図７に示す要素と同一のものには、同一符号が付されている。
【００５２】
図８に示すパターン３２は、図７に示したパターン３１が拡大されたものである。
次に、プロセッサ２１は、回路ブロックと同一サイズの領域を設定し、その領域に所定サイズのダミーパターンを一定の間隔で配置する。
【００５３】
図９は、ダミーパターンの配置例を示す図である。
図９に示すダミーパターン領域３３は、図７〜図８に示す回路ブロック３０と同一サイズである。ダミーパターン領域３３には、ダミーパターン領域３３の左下の頂点を始点として、所定サイズのダミーパターン（たとえば、ダミーパターン３４，３５）が、一定の間隔で配置されている。
【００５４】
その後、プロセッサ２１は、図９に示すダミーパターン領域３３を、図８に示す回路ブロック３０に重ね合わせる。そして、プロセッサ２１は、ダミーパターン領域３３のダミーパターンのうち、拡大された回路パターンと接触するダミーパターンを削除する。これにより、回路ブロック３０に配置させるダミーパターンが確定する。
【００５５】
図１０は、ダミーパターン領域のダミーパターンのうち、回路ブロックに配置されるダミーパターンの一例を示す図である。
なお、図１０に示す要素で、図９に示す要素と同一のものには、同一符号を付し、その説明を省略する。
【００５６】
図１０では、図９に示したダミーパターン３４が、図８に示した回路ブロック３０の拡大された回路パターンと接触するため削除された例が示されている。
以上のようにして、回路ブロックに配置されるダミーパターンが得られる。
【００５７】
図６の説明に戻る。プロセッサ２１は、回路ブロックに、ステップＳ２０の処理により生成したダミーパターンを配置する（ステップＳ２１）。これにより、回路ブロックにダミーパターンが配置されたレイアウト設計データである設計データ４ｄが生成される。
【００５８】
次に、プロセッサ２１は、回路ブロックの境界部分にダミーパターンの配置候補領域を生成するか否かを決定するにあたって、たとえば、以下の処理を行う。
まず、プロセッサ２１は、回路ブロックに配置されている回路パターンとダミーパターン（以下単にパターンという）を、チェック値の半分、拡大する（ステップＳ２２）。チェック値は、前述したように空白領域の許容できる最大幅であり、たとえば、上位階層領域におけるパターン密度の許容範囲に基づいて設定される。なお、拡大するパターンは、回路ブロック内のすべてのパターンでなくてもよい。回路ブロック境界の近傍部分に位置するパターンを、プロセッサ２１が選択して拡大してもよい。
【００５９】
次に、プロセッサ２１は、拡大したパターンが、回路ブロック境界を超えるか否か判定する（ステップＳ２３）。ステップＳ２３の処理の際、プロセッサ２１は、たとえば、拡大したパターンを合成（マージ）して合成パターンを生成し、その合成パターンが、回路ブロック境界を超えるか否か判定する。
【００６０】
プロセッサ２１は、合成パターンが回路ブロック境界を超えるときには、配置候補領域を生成せずに処理を終了する。
図１１は、合成パターンが回路ブロック境界を超える例を示す図である。
【００６１】
図１１には、ある回路ブロック３６の４辺のうちの１つの辺３６ａの近傍部分が示されている。辺３６ａの近傍部分には、ダミーパターン３７、回路パターン３８が配置されている。合成パターン３９は、ダミーパターン３７や回路パターン３８を拡大したものをプロセッサ２１がマージすることで生成される。
【００６２】
図１１の例では、辺３６ａとパターン（ダミーパターン３７や回路パターン３８）との間の距離が比較的狭いため、合成パターン３９は、回路ブロック３６の辺３６ａ（つまり回路ブロック３６の境界）を超えている。
【００６３】
合成パターン３９が、辺３６ａを超えるということは、回路ブロック３６の上位階層領域への配置時に、辺３６ａが他の回路ブロックに接したとしても、チェック値を超えるような広い空白領域が生じる可能性が比較的低いことを意味する。そのため、プロセッサ２１は、配置候補領域を生成しない。
【００６４】
一方、プロセッサ２１は、合成パターンが回路ブロック境界を超えないときには、ステップＳ２４の処理を実行する。
図１２は、拡大された合成パターンが回路ブロック境界を超えない例を示す図である。なお、図１２に示す要素で、図１１に示す要素と同一のものには、同一符号を付し、その説明を省略する。
【００６５】
図１２の例では、辺３６ｂとパターン（ダミーパターン３７や回路パターン３８）との間の距離が比較的広いため、合成パターン３９は、回路ブロック３６の辺３６ｂを超えない。
【００６６】
合成パターン３９が、辺３６ｂを超えないということは、回路ブロック３６の上位階層領域への配置時に、辺３６ｂが他の回路ブロックに接したとき、チェック値を超えるような広い空白領域が生じる可能性が比較的高いことを意味する。
【００６７】
ステップＳ２４の処理では、プロセッサ２１は、合成パターンをチェック値の半分、縮小する。そして、プロセッサ２１は、回路ブロック境界とパターンとの間の、パターンが存在しない領域に、配置候補領域を生成する（ステップＳ２５）。また、プロセッサ２１は、配置候補領域を生成した後の回路ブロックのレイアウト設計データに基づき、設計データ４ｄを更新する。
【００６８】
図１３は、配置候補領域が生成された回路ブロックの一例を示す図である。なお、図１３に示す要素で、図１２に示す要素と同一のものには、同一符号を付し、その説明を省略する。
【００６９】
図１３に示す回路ブロック３６の辺３６ｂと縮小した合成パターン３９ａの間の部分には、ステップＳ２５の処理により、配置候補領域３６ｄが設定されている。プロセッサ２１は、回路ブロック３６から、合成パターン３９ａを除いた部分を、配置候補領域３６ｄとすることができる。
【００７０】
以上のような配置候補領域の生成処理が行われた後、図５のステップＳ１１の処理が行われる。
ステップＳ１１の処理では、プロセッサ２１は、回路ブロックの物理検証を行う。プロセッサ２１は、物理検証として、たとえば、密度エラーが生じていないかなどを判定する。回路ブロックにおいて、空白領域の幅がチェック値を超えている場合には、密度エラーが発生する。密度エラーが発生した場合には、回路ブロックのレイアウト修正が行われ、再度ステップＳ１０の処理が行われる。
【００７１】
物理検証後、プロセッサ２１は、ＨＤＤ２３から設計データ４ｃを読み出し、回路ブロックを、上位階層領域に配置する（ステップＳ１２）。これにより、上位階層領域に回路ブロックが配置されたレイアウト設計データである設計データ４ｅが生成される。
【００７２】
その後、プロセッサ２１は、上位階層領域にダミーパターンを配置する（ステップＳ１３）。
図１４は、上位階層領域にダミーパターンを配置させる一例の流れを説明するフローチャートである。
【００７３】
プロセッサ２１は、設計データ４ｅに基づき、配置候補領域を対象としたダミーパターンと、上位階層領域全体を対象としたダミーパターンを生成する（ステップＳ３０，Ｓ３１）。その後、プロセッサ２１は、ステップＳ３０，Ｓ３１で生成したダミーパターンをマージして、上位階層用のダミーパターンデータ４ｇを生成する（ステップＳ３２）。そして、プロセッサ２１は、設計データ４ｅと、ステップＳ３２の処理で生成した上位階層用のダミーパターンデータ４ｇとに基づき、上位階層領域にダミーパターンを配置し、ダミーパターン込の上位階層の設計データ４ｆを生成する（ステップＳ３３）。
【００７４】
なお、上記のステップＳ３０，Ｓ３１の処理は、いずれを先に実行してもよいし、並列に実行してもよい。
以下、図１４のステップＳ３０の処理の一例を説明する。
【００７５】
ステップＳ３０の処理は、たとえば、以下のように行われる。
図１５は、配置候補領域を対象としたダミーパターン生成処理の一例の流れを説明するフローチャートである。
【００７６】
まず、プロセッサ２１は、設計データ４ｅから上位階層領域に配置された回路ブロックの全配置候補領域を抽出し（ステップＳ４０）、抽出した全配置候補領域から１つの配置候補領域を選択する（ステップＳ４１）。
【００７７】
次に、プロセッサ２１は、選択した配置候補領域が、他の配置候補領域と接するか否か判定する（ステップＳ４２）。プロセッサ２１は、選択した配置候補領域が、他の配置候補領域と接するときは、ステップＳ４３の処理を行い、その配置候補領域を、ダミーパターンを配置する領域（以下ダミーパターン配置対象領域という）とする。
【００７８】
一方、プロセッサ２１は、選択した配置候補領域が、他の配置候補領域と接しないときは、ステップＳ４４の処理を行い、その配置候補領域を、ダミーパターンを配置しない配置候補領域（以下ダミーパターン非配置対象領域という）とする。つまり、プロセッサ２１は、他の配置候補領域と接しない配置候補領域を、ダミーパターンを配置する候補から除外する。
【００７９】
その後、プロセッサ２１は、すべての配置候補領域でステップＳ４２の判定処理を行ったか否か判定する（ステップＳ４５）。プロセッサ２１は、すべての配置候補領域で判定済みでないと判定したときは、ステップＳ４１からの処理を繰り返し行う。一方、プロセッサ２１は、すべての配置候補領域で判定済みと判定したときは、ステップＳ４６の処理を実行する。
【００８０】
ステップＳ４６の処理では、プロセッサ２１は、ダミーパターン配置対象領域を対象としてダミーパターンを生成する。プロセッサ２１は、たとえば、ダミーパターン配置対象領域の左下の頂点を始点として、一定の間隔で配置されるような所定サイズのダミーパターンを生成する。
【００８１】
以上のようにして、ステップＳ３０の処理が終了する。
ステップＳ３１の処理では、プロセッサ２１は、たとえば、前述したステップＳ２０の処理（図６参照）と同様にして、上位階層領域全体を対象としてダミーパターンを生成する。ステップＳ３２の処理では、ステップＳ３０，Ｓ３１の処理で生成されたダミーパターンがマージされる。マージ処理の際、上位階層全体を対象として生成されたダミーパターンが、回路ブロックのダミーパターンや、ダミーパターン配置対象領域を対象として生成されたダミーパターンと重なる場合は、上位階層全体を対象として生成されたダミーパターンは削除される。
【００８２】
このようなマージ処理によって、上位階層用のダミーパターンデータ４ｇが生成される。そして、ステップＳ３３の処理により、上位階層領域へのダミーパターンの配置が行われ、設計データ４ｆが生成される。
【００８３】
以下、本実施の形態の設計方法で生成された設計データ４ｆで示されるレイアウト例を２つ示す。
（レイアウト例１）
図１６は、上位階層領域の１つ目のレイアウト例を示す図、図１７は、図１６の一部拡大図である。なお、図１７は、図１６に示す領域４３の拡大図である。また、図１６に示す上位階層領域４０において、パターン（回路パターン及びダミーパターン）の図示は省略されている。
【００８４】
図１６に示すように、上位階層領域４０には、回路ブロック４１，４２が配置されている。また、回路ブロック４１，４２は、同一サイズの回路ブロックであり、それぞれ配置候補領域４１ａ，４２ａが生成されている。これらの配置候補領域４１ａ，４２ａは接しているため、図１５に示したステップＳ４３の処理で、ダミーパターン配置対象領域として設定される。そのため、図１７に示すように、配置候補領域４１ａ，４２ａを合わせた部分には、ダミーパターン４４が配置されている。
【００８５】
（レイアウト例２）
図１８は、上位階層領域の２つ目のレイアウト例を示す図、図１９は、図１８の一部拡大図である。なお、図１９は、図１８に示す領域５３の拡大図である。また、図１８に示す上位階層領域５０において、パターン（回路パターン及びダミーパターン）の図示は省略されている。
【００８６】
図１８に示すように、上位階層領域５０には、回路ブロック５１，５２が配置されている。また、回路ブロック５１，５２は、サイズの異なる回路ブロックであり、それぞれ配置候補領域５１ａ，５２ａが生成されている。これらの配置候補領域５１ａ，５２ａは、接しているため、レイアウト例１と同様に、図１５に示したステップＳ４３の処理で、ダミーパターン配置対象領域として設定される。そのため、図１９に示すように、配置候補領域５１ａ，５２ａを合わせた部分には、ダミーパターン５４が配置されている。
【００８７】
なお、ステップＳ３３の処理でダミーパターンの配置が終了したら、配置候補領域は、設計データ４ｆから削除するようにしてもよい。
ところで、上記のような設計処理の際、プロセッサ２１は、設計途中で生成される設計データをモニタ２４ａ（図４参照）の画面に表示するようにしてもよい。以下、モニタ２４ａの画面への表示例を２つ説明する。
【００８８】
（表示例１）
図２０は、モニタの画面への設計データの１つ目の表示例を示す図である。
図２０に示す画面６０には、設計データ４ｄ（図５参照）に含まれる、回路ブロック６１と、回路ブロック６１に配置されている配線パターン６２、ダミーパターン６３が表示されている。さらに、回路ブロック６１の境界部分に生成された配置候補領域６４が表示されている。
【００８９】
（表示例２）
図２１は、モニタの画面への設計データの２つ目の表示例を示す図である。
図２１に示す画面７０には、設計データ４ｆ（図５参照）に含まれる、上位階層領域７１と、上位階層領域７１に配置されている回路ブロック７２，７３と、ダミーパターン７４が表示されている。さらに、回路ブロック７２，７３の接している部分には、ダミーパターン７５が配置されている。
【００９０】
以上のような第２の実施の形態の設計方法でも、第１の実施の形態の設計方法と同様の効果が得られる。
また、第２の実施の形態の設計方法では、プロセッサ２１が、パターンをチェック値の半分、拡大して合成することで生成した合成パターンが、回路ブロック境界を超えないときに、その合成パターンをチェック値の半分縮小した合成パターンを生成する。そして、プロセッサ２１が、その合成パターンと回路ブロック境界との間に配置候補領域を設定することで、パターンの様々な配置や形状に対応した配置候補領域を生成することができる。
【００９１】
さらに、第２の実施の形態の設計方法では、プロセッサ２１が、配置候補領域を１つずつ選択して、選択した配置候補領域が他の配置候補領域と接しないときには、ダミーパターンを配置する候補から除外する。これにより、配置候補領域にダミーパターンを配置する際の処理時間を減らすことができ、設計期間をさらに短縮できる。
【００９２】
以上、実施の形態に基づき、本発明の設計方法、設計装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００９３】
１  設計装置（コンピュータ）
２  プロセッサ
３  記憶部
４  階層設計データ
５，７，８  回路ブロック（セル）
５ａ  配線パターン
５ｂ，９  ダミーパターン
５ｃ，７ａ，８ａ  配置候補領域
６  上位階層領域
【図１】
2016105446.tif 000003
【図２】
2016105446.tif 000004
【図３】
2016105446.tif 000005
【図４】
2016105446.tif 000006
【図５】
2016105446.tif 000007
【図６】
2016105446.tif 000008
【図７】
2016105446.tif 000009
【図８】
2016105446.tif 000010
【図９】
2016105446.tif 000011
【図１０】
2016105446.tif 000012
【図１１】
2016105446.tif 000013
【図１２】
2016105446.tif 000014
【図１３】
2016105446.tif 000015
【図１４】
2016105446.tif 000016
【図１５】
2016105446.tif 000017
【図１６】
2016105446.tif 000018
【図１７】
2016105446.tif 000019
【図１８】
2016105446.tif 000020
【図１９】
2016105446.tif 000021
【図２０】
2016105446.tif 000022
【図２１】
2016105446.tif 000023