説明

配線設計方法、設計装置及びプログラム

【課題】設計時間の短縮を図ること。
【解決手段】設計装置の記憶装置には、半導体装置を検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの面積がそれぞれ格納されるセル面積テーブルと、移動される検証エリアの位置に対応し、各検証エリアには所定数の領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納されるセル占有率テーブルを含む面積DB33が記憶される。図形DB32にはインスタンスの面積テーブルが含まれる。CPUは、配置されたインスタンスの面積テーブルに従って編集対象のセル面積テーブルを変更し、そのセル面積テーブルに従ってセル占有率テーブルを更新し、セル占有率テーブルの値によりレイアウトパターンの占有面積をチェックする。

【発明の詳細な説明】
【技術分野】
【0001】
半導体装置の配線設計方法、設計装置及びプログラムに関するものである。
【背景技術】
【0002】
近年の半導体装置は素子数の増大や高集積化が進められ、それに伴って配線層の多層配線化が進んでいる。一方、各配線層において、レイアウトパターンの密度に偏り、即ち粗密が生じる。レイアウトパターンの粗密は、上方の配線層に段差を生じさせる。
【0003】
この結果、表面に近い配線層では、下層の累積的な段差により、上層配線と下層配線を接続するビアの接続不良などの問題が発生する。この問題に対し、化学的機械的研磨(CMP:Chemical Mechanical Polishing)に代表される研磨技術によるウェハ表面の平坦化や、ダミーパターンの追加による配線密度差の低減が行われている。
【0004】
しかし、レイアウトパターンの密度が高い部分では、研磨により必用以上にレイアウトパターンが削れてしまう場合がある。このため、レイアウトパターンの最大密度(占有率)を設定し、半導体装置の設計処理では、図20に示すように、レイアウトデータにおけるレイアウトパターンの密度を検証している。
【0005】
まず、ステップ121において、レイアウトパターン(図形)を入力する。即ち設計装置は、ユーザが操作するマウスなどの入力手段の情報に従って、レイアウトパターンや素子等のレイアウトパターンのデータを生成し、そのデータをファイル126に格納する。ステップ122において、設計装置は、全レイアウトパターンの入力が終了したか否かを判断し、終了していない場合にはステップ121に移行する。全レイアウトパターンの入力が終了した場合、ステップ123に移行し、ファイル126のレイアウトデータに対して配線密度の検証を実施する。ステップ123において、設計装置は、ファイル126に格納したレイアウトデータを読み出し、このレイアウトデータの配線密度を算出する。
【0006】
この時、設計装置は、図21に実線で示すように、レイアウトパターンL1〜L7のうち、所定サイズの占有率計算エリア131内に含まれるレイアウトパターンの占有面積と、占有率計算エリア131から配線密度を算出する。次に、占有率計算エリア131を一定のステップ(以下、検証ステップ)で移動させる。移動させた占有率計算エリアを破線で示している。そして、この位置において、配線密度を算出する。同様に、占有率計算エリア131を一点鎖線,二点鎖線で示す位置に移動させ、それぞれの位置における配線密度を算出する。図21では、各占有率計算エリア131の位置が判りやすいように図面における上下方向にずらしている。
【0007】
次に、図20に示すステップ124において、設計装置は、ステップ123で算出した配線密度と配線密度のプロセス製造基準とを比較し、密度エラーが発生しているか否かを判断する。密度エラーが発生していない場合には処理を終了し、密度エラーが発生している場合にはステップ125に移行する。ステップ125において、設計装置は、ファイル126から読み出したレイアウトデータを表示装置に表示し、ユーザにより編集されたレイアウトデータをファイル126に格納した後、再度密度を検証するべくステップ123に移行する。
【0008】
上記記載の検証フローでは、ステップ123における配線密度の検証に半導体装置全体のレイアウトデータが必用である。このため、配線密度の検証の結果、レイアウトデータの一部を修正した場合であっても、半導体装置全体のレイアウトデータに対して検証を行うため、レイアウトデータの検証に多くの時間を費やし、開発期間が増大する。また、レイアウトデータの修正後に行う検証で密度エラーが発生した場合には、レイアウトパターン修正を行った後、再度配線密度の検証を行わなければならない。このため、工程の手戻りが発生し、更に修正ミスなどによって手戻り工数が増加する。図13に示すように、配線密度の算出において、占有率計算エリア131の検証ステップを小さく設定した場合には検証時間が増大し、検証ステップを大きく設定した場合には検証漏れが発生し、後工程からの手戻りが発生する場合がある。
【0009】
上記記載の問題に対して、例えば、特許文献1は、検証を行おうとするマクロブロックもしくはチップのレイアウト内部に所定のレイアウトデータ率を持つ仮想(ダミー)データを、一時的に前記レイアウトに加え(ステップS2)、もしくは前記レイアウトから差し引くことにより、仮想的なレイアウトである仮想レイアウトを形成し、このように作成された仮想レイアウトに対して配線密度の検証を行い(ステップS3)、レイアウト完成前に配線密度の分布を求めている。これにより、レイアウトデータの完成前に配線密度の検証をすることができ、マクロブロック単位でも配線密度検証ができるため、開発期間の増大を抑えることができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2003−67441号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記特許文献1のレイアウト密度検証方法では、仮想データをレイアウトに加え、もしくは差し引き、仮想レイアウトを生成する必用があり、手間がかかるという問題がある。また、仮想データをレイアウトに加え、もしくは差し引くため、仮想データと実際のレイアウトパターンとが相違し、実際のレイアウトパターンの密度検証を行っていない。この結果、密度誤差が生じるおそれがあり、手戻りが発生する場合があり、設計時間を短縮する妨げとなる場合があった。
【0012】
開示された配線設計方法は、設計時間の短縮を図ることを目的とする。
【課題を解決するための手段】
【0013】
配線設計方法の一観点によれば、記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、中央処理装置が実行する処理は、インスタンスが配置されたセルのセル面積テーブルを、インスタンス面積テーブルに従って更新するステップと、更新されたセル面積テーブルに基づいてインスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、を含む。
【発明の効果】
【0014】
開示された方法によれば、設計時間の短縮を図ることができる。
【図面の簡単な説明】
【0015】
【図1】配線設計装置の概略構成図である。
【図2】配線設計処理の概略フロー図である。
【図3】配線設計処理のフロー図である。
【図4】配線設計処理のフロー図である。
【図5】保証占有率の説明図である。
【図6】(a)〜(c)は配線設計処理の説明図である。
【図7】(a)〜(c)は配線設計処理の説明図である。
【図8】(a)〜(c)は配線設計処理の説明図である。
【図9】(a)〜(c)は配線設計処理の説明図である。
【図10】(a),(b)は配線設計処理の説明図である。
【図11】(a)〜(d)は配線設計処理の説明図である。
【図12】(a)〜(c)は配線設計処理の説明図である。
【図13】(a)〜(d)は配線設計処理の説明図である。
【図14】(a)〜(c)は配線設計処理の説明図である。
【図15】(a)〜(c)は配線設計処理の説明図である。
【図16】(a)〜(c)は配線設計処理の説明図である。
【図17】(a)〜(c)は配線設計処理の説明図である。
【図18】(a),(b)は配線設計処理の説明図である。
【図19】(a),(b)は配線設計処理の説明図である。
【図20】従来の配線設計処理のフロー図である。
【図21】従来の配線設計処理の説明図である。
【発明を実施するための形態】
【0016】
以下、一実施形態を図1〜図11に従って説明する。
図1に示すように、半導体装置のレイアウトデータを生成するための設計装置(コンピュータ)11は一般的なCAD(Computer Aided Design )装置からなり、中央処理装置(以下、CPUという)12、メモリ13、記憶装置14、表示装置15、入力装置16、及び、ドライブ装置17により構成され、それらはバス18を介して相互に接続されている。
【0017】
CPU12は、メモリ13を利用してプログラムを実行し、半導体装置のレイアウト設計等の必要な処理を実現する。プログラムは、CPU12を半導体装置のレイアウトデータを生成する設計装置としての各種手段として機能させるためのものである。メモリ13には、各種処理を提供するために必要なプログラムとデータが格納され、メモリ13としては、通常、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含む。
【0018】
表示装置15は、レイアウト表示、パラメータ入力画面等の表示に用いられ、これにはCRT,LCD,PDP等が用いられる。入力装置16は、ユーザからの要求や指示,パターン,パラメータの入力に用いられ、これにはキーボードおよびマウス装置(図示せず)等が用いられる。
【0019】
コンピュータ11は、レイアウトデータに基づき半導体装置に形成するレイアウトパターン(図形)を表示装置15に表示させる。そして、コンピュータ11は、ユーザが操作する入力装置16からの信号に従って、表示装置15上のレイアウトパターンの追加,削除を行うとともに、レイアウトデータに対してパターンデータの追加,削除を行う。
【0020】
記憶装置14は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置を含む。この記憶装置14には、図2〜図4に示す各ステップからなる半導体装置(半導体集積回路装置)のレイアウトデータを生成するためのプログラムデータと、プログラムの実行に必要なデータ、プログラムの実行により生成されるデータが格納される。CPU12は、入力装置16による指示に応答しているプログラムデータをメモリ13へ転送し、それを実行する。
【0021】
CPU12が実行するプログラムデータは、記録媒体19にて提供される。ドライブ装置17は、記録媒体19を駆動し、その記憶内容にアクセスする。CPU12は、ドライブ装置17を介して記録媒体19からプログラムデータを読み出し、それを記憶装置14にインストールする。
【0022】
記録媒体19としては、磁気テープ(MT)、メモリカード、フレキシブルディスク、光ディスク(CD-ROM,DVD-ROM,… )、光磁気ディスク(MO,MD,…)等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体19に、上述のプログラム,データを格納しておき、必要に応じて、メモリ13にロードして使用することもできる。
【0023】
尚、記録媒体19には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体、ディスク装置を含む。更に、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、いったん他の記録媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含む。
【0024】
次に、配線密度を考慮したレイアウト検証方法の概要を、図2のフローチャートに従って説明する。
図1のCPU12は、図2に示すステップ21〜22の処理を実行することで、半導体装置を形成するためのレイアウトデータ31を生成する手段と、レイアウトデータ31に含まれるレイアウトパターンの密度を検証する手段として機能する。このレイアウトデータ31は図1に示す記憶装置14に記憶される。なお、レイアウトデータ31は、他の配線設計装置等により作成されたものであってもよい。
【0025】
まず、ステップ21において、CPU12は、図形生成処理を実行する。図形生成処理は、所定形状のレイアウトパターンを入力する入力処理と、入力済のレイアウトパターンの形状を変更する編集処理を含む。CPU12は、図形生成処理において生成したレイアウトパターンの形状やレイアウトパターンを形成する層などの情報を含むレイアウトデータ31を生成する。レイアウトパターンの入力のために必用な処理と、レイアウトデータ31に含まれるレイアウトパターンの編集に必用な処理はほぼ同じである。
【0026】
CPU12は、表示装置15に、レイアウトデータに基づくレイアウトパターンを表示するとともに、ユーザが操作する入力装置16からの信号に基づいて、入力中のレイアウトパターンもしくは編集中のレイアウトパターンを表示する。そして、ユーザがレイアウトパターンの入力確定を指示すると、CPU12は、確定されたレイアウトパターンをレイアウトデータ31に格納する。
【0027】
この図形生成処理において、CPU12は、図形データベース(図形DB)32を参照する。図形DB32は、図1に示す記憶装置14に格納されている。図形DB32は、例えばライブラリデータであって、配線等を形成するためのポリゴンデータ、素子の形状を示すデータ、インスタンスの情報(大きさ、含まれるレイアウトパターン、面積テーブル等)、を含む。
【0028】
例えば、CPU12は、ユーザの指定に従ってポリゴンデータを図形DB32から読出し、そのポリゴンデータの頂点を変更することにより所望の配線層のレイアウトパターンを形成する。配線層は、半導体装置を形成するパターンを形成する層である。レイアウトパターンは、所定の配線層に形成するための情報を有している。また、CPU12は、ユーザの指定に従ってインスタンスを図形DB32から読み出し、そのインスタンスを配置することにより、インスタンスに含まれるレイアウトパターンを形成する。インスタンスに含まれるレイアウトパターンは、直接的に入力されるレイアウトパターンと同様に、所定の配線層に形成するための情報を有している。なお、パターンを形成する配線層を指定する情報(層情報)は、インスタンスの情報を記憶したライブラリに含まれる場合もある。
【0029】
更に、CPU12は、この図形入力・編集処理において、処理中(入力中もしくは編集中)のレイアウトパターンに基づいて、面積データベース(面積DB)33を更新する。面積DB33は、図1に示す記憶装置14(又はメモリ13)に格納される。CPU12は、面積DB33に基づいて、処理中のレイアウトパターンに係る層について配線密度の検証を実行し、処理中のレイアウトパターンが含まれる検証領域において密度エラー発生しているか否かを判断する。そして、CPU12は、密度エラーが発生している場合にその旨を表示装置15に表示するとともに、処理中のレイアウトパターンに対する編集制御を行う。つまり、CPU12が図形入力・編集処理を行うステップ21は、配線密度の検証を行うサブステップ21aと、エラー表示・編集制御を行うサブステップ21bとを含む。
【0030】
密度エラーが発生することなくレイアウトパターンを確定すると、CPU12はステップ21からステップ22に移行し、そのステップ22において、全レイアウトパターンの入力が終了したか否かを判断する。全レイアウトパターンの入力が終了していない場合、CPU12は、ステップ21に移行し、図形生成処理を実行する。全レイアウトパターンの入力が終了した場合、CPU12は、配線密度を考慮したレイアウト検証を終了する。
【0031】
次に、上記のステップ21における図形生成処理の一例を説明する。
まず、図3に示すステップ41において、CPU12は、図2の面積DB33に含まれるセル面積テーブル35とセル占有率テーブル36を初期化する。例えば、新たなレイアウトデータを生成する場合、CPU12は、セル面積テーブル35とセル占有率テーブル36をそれぞれクリア、つまり各テーブル35,36を構成する要素の値を「0」にする。各テーブル35,36は、検証ステップに応じたサブテーブルを有している。従って、ステップ41において、CPU12は、各テーブル35,36のサブテーブルを初期化する。
【0032】
上記したように、レイアウトパターンは、半導体装置の配線層に形成されるため、セル面積テーブル35及びセル占有率テーブル36は、配線層に応じた複数のテーブルを含む。更に、所定の領域(検証エリア)におけるレイアウトパターンの密度を検証するために複数の検証ステップが設定されている。従って、セル面積テーブル35及びセル占有率テーブル36は、配線層毎に、検証ステップに応じた複数のテーブルを有している。
【0033】
設計装置11にはレイアウトデータの配線密度を検証する検証エリアを移動させる複数の検証ステップが設定されている。本実施形態において、設計装置11には、検証ステップとして、所定値の第1検証ステップと、その第1検証ステップよりも小さな値の第2検証ステップが設定されている。本実施形態において、設定する各検証ステップX軸方向及びY軸方向の大きさは、本設計装置11により生成するレイアウトパターンの最小サイズ、即ち入力ステップのX軸方向及びY軸方向の値に対応している。第1検証ステップはX軸方向及びY軸方向ともに入力ステップの整数倍(例えば2倍)に設定され、第2検証ステップは入力ステップの等倍(1倍)に設定されている。
【0034】
CPU12は、大きな値から小さな値へと検証ステップを変更し、レイアウトパターンに対する密度チェック処理等を実行する。即ち、CPU12は、先ず第1検証ステップにて密度チェックを行い、次に、第2検証ステップに変更して密度チェックを行う。この第2検証ステップによる密度チェックにおいて、CPU12は、第1検証ステップにて行った密度チェックの結果に基づいて、密度違反の可能性が高い部分を対象領域とし、この対象領域について第2検証ステップによる密度チェックを行う。即ち、第2検証ステップによる密度チェックを行う領域を予め絞り込むことで、密度チェックに要する処理時間(演算時間)が少なくなり、チェックに要する時間を短縮することができる。
【0035】
セル面積テーブル35は、2つの検証ステップに応じたサブテーブル35a,35bを含む(図6,7参照)。即ち、セル面積テーブル35は、第1検証ステップに対応する第1セル面積テーブル35a(図6(b)参照)と、第2検証ステップに対応する第2セル面積テーブル35b(図7(b)参照)とを含む。
【0036】
セル面積テーブル35(35a、35b)に格納された値は、各テーブル35a,35bに対応する検証ステップの格子、及びその格子内に生成されたレイアウトパターンの占有面積に対応する。例えば、X軸及びY軸のサイズが入力ステップと等しい格子の面積を「1」とした場合、第1検証ステップはX軸方向及びY軸方向において入力ステップの2倍に設定されているため、第1検証ステップの格子内に生成されるレイアウトパターンの占有面積は「1」〜「4」うちの何れかとなり、第2検証ステップは入力ステップと等倍に設定されているため、第2検証ステップの格子内に生成されるレイアウトパターンの占有面積は「1」となる。従って、第1検証ステップに対応する第1セル面積テーブル35aの各要素は、レイアウトパターンが形成されていない場合の値「0」と、格子内に形成されるレイアウトパターンの占有面積「1」〜「4」の何れかの値となる。第2検証ステップに対応する第2セル面積テーブル35bの各要素は、レイアウトパターンが形成されていない場合の値「0」と、レイアウトパターンが形成されている場合の値「1」の何れかとなる。
【0037】
同様に、セル占有率テーブル36は、2つの検証ステップに応じたサブテーブル36a,36bを含む(図6,7参照)。即ち、セル占有率テーブル36は、第1検証ステップに対応する第1セル占有率テーブル36a(図6(c)参照)と、第2検証ステップに対応する第2セル占有率テーブル36b(図7(c)参照)とを含む。
【0038】
セル占有率テーブル36(36a,36b)の値は、各値に対応する位置の検証エリアにおいて、その検証エリアの面積と、その検証エリア内に生成されたレイアウトパターンの占有面積との比を示す。例えば、検証エリアの縦横、つまりX軸方向及びY軸方向のサイズをそれぞれ入力ステップ(第2検証ステップ)の10倍(第1検証ステップの5倍)に設定する。従って、100個の格子からなる検証エリアが設定される。そして、検証エリアの総項指数と、検証エリア内においてレイアウトパターンが形成された格子の数との比が、検証エリアの位置に対応する要素の値としてセル占有率テーブル36(36a,36b)に格納される。一例として、検証エリアに含まれる100個の格子のうちの1個にレイアウトパターンを形成した場合、対応するセル占有率テーブル36a,36bの値はそれぞれ「1(%)」となる。別の例として、検証エリアを構成する100個の格子のうちの50個にレイアウトパターンを形成した場合、対応するセル占有率テーブル36a,36bの値はそれぞれ「50(%)」となる。
【0039】
レイアウトデータのレイアウトパターンと、セル面積テーブル35(35a,35b)及びセル占有率テーブル36(36a,36b)の関係を図8に従って説明する。
図8(a)に示すように、表示装置15の画面にはレイアウトパターンP2(ハッチングを付した部分)が表示されている。このレイアウトパターンP2は、設計装置11には所定の入力ステップに応じた入力格子(図において一点鎖線で示す格子)が設定されている。そして、レイアウトパターンP2は、設定された入力格子のうち、図8(a)に示す格子61a,61bに形成されている。上記したように、第1検証ステップは入力ステップの2倍に設定されている場合、その第1検証ステップに対応する第1セル面積テーブル35aの1つの要素の値は、隣接する4つの格子(図8(a)において格子61a,61b,61c,61d)に形成されたレイアウトパターンの占有面積となる。1つの格子に形成されたレイアウトパターンの占有面積を「1」とすると、図8(a)に示すレイアウトパターンP2の場合、図8(b)に示すように、要素62の値が「2」となる。
【0040】
レイアウトデータの密度チェックのために、検証エリアVAを設定する。CPU12は、検証エリアVAにおいてレイアウトパターンP2が占める占有面積の割合(占有率)を算出し、その占有率を検証エリアVAの位置に対応して第1セル占有率テーブル36aに格納する。例えば、図8(a)に示すように、100個の入力格子(=横10×縦10)に検証エリアVAが設定され、この検証エリアVAを第1検証ステップにて移動させ、各位置における占有率を算出し、その算出した占有率にて第1セル占有率テーブル36aを更新する。例えば、図8(b)に示す検証エリアVAに対応して、図8(c)に示す第1セル占有率テーブル36aの要素63の占有率を「2」とする。図8(a)に示すレイアウトパターンP2の占有面積が影響する部分は、図8(c)の枠64で囲まれた部分となる。従って、CPU12は、この枠64内の要素の値を「2」とする。
【0041】
尚、形成したレイアウトパターンと、第2セル面積テーブル35b及び第2セル占有率テーブル36bの関係は、上記したように、レイアウトパターンP2と第1セル面積テーブル35a及び第1セル占有率テーブル36aとの関係と同じであり、CPU12が行う処理も、検証ステップの大きさが異なるだけであるため、説明を省略する。
【0042】
次に、ステップ42において、CPU12は、入力装置16の操作に従ってひとつのレイアウトパターンの入力処理またはレイアウトパターンの編集処理を開始する。また、このステップ42において、CPU12は、インスタンスの配置・編集処理を行う。例えば、ポリゴンを作成する始点が決定されることによりレイアウトパターンの入力処理を開始し、ポリゴンの頂点が指示されることにより編集処理を開始する。これ以降の処理において、レイアウトパターンを入力することと既存のレイアウトパターンを編集(変形)することに状態に差が生じているが、入力中のレイアウトパターンに対する検証処理(チェック)と、編集中のレイアウトパターンに対する検証処理(チェック)とは同じ内容であるため、以下の説明において、レイアウトパターンの入力に対する処理について説明する。
【0043】
ステップ43(トリガ判定工程)において、CPU12は、ステップ42において、入力中のレイアウトパターンが第1所定の検証ステップ(例えば第1検証ステップ)の判定格子を通過したか否か、又はレイアウトパターンの入力を終了したか否かを判断する。また、CPU12は、このステップ43において、インスタンスの配置を終了したか否かを判断する。CPU12は、入力レイアウトパターンが格子を通過せず、且つレイアウトパターンの入力が終了されていない場合にステップ42に移行し、入力レイアウトパターンが判定格子を通過したか又はレイアウトパターンの入力が終了された場合にステップ44に移行する。また、CPU12は、追加するインスタンスの配置が決定された場合(例えばマウスのボタンが操作されて配置位置がクリックされた場合)にステップ44に移行する。つまり、CPU12は、入力レイアウトパターンが判定格子を通過すること、又はレイアウトパターンの入力が終了、又はインスタンスの配置することをトリガとして次のステップに移行する。
【0044】
ステップ44において、CPU12は、入力中のレイアウトパターンの占有面積を算出する。この時、CPU12は、レイアウトパターンの占有面積を、検証ステップ毎に算出する。
【0045】
そして、ステップ45において、CPU12は、ステップ44において算出したレイアウトパターンの占有面積に基づいて、その時の検証ステップに対応する面積テーブルを更新する。つまり、CPU12は、入力したレイアウトパターンに基づいて、第1セル面積テーブル35a及び第2セル面積テーブル35bを更新する。なお、レイアウトパターンは、形成する配線層を指定して入力される。従って、CPU12は、レイアウトパターンを形成する配線層に対応する第1セル面積テーブル35a及び第2セル面積テーブル35bを更新する。
【0046】
また、ステップ45において、CPU12は、配置が決定されたインスタンスの面積テーブル34を図2の図形DB32から読み出し、その面積テーブル34に応じて編集対象のセルのセル面積テーブル35を更新する。インスタンスはレイアウトパターンを含み、レイアウトパターンは、パターンを形成する層に応じて設定されている。面積テーブル34は、配線密度を考慮する必要のある層に対応する面積テーブルを含む。面積テーブル34には、セル面積テーブルと同様に、各格子に含まれるレイアウトパターンの面積が格納されている。CPU12は、インスタンスの面積テーブル34の値とセル面積テーブル35の値とを対応する層毎に合成してセル面積テーブル35の値を更新する。
【0047】
ステップ46において、CPU12は、ステップ45において更新したセル面積テーブル35(35a,35b)の値に基づいて、対象部分の占有率を算出する。次に、ステップ47において、CPU12は、ステップ46にて計算した占有率により、検証ステップに対応するセル占有率テーブル36(36a,36b)の対象部分の値を更新する。この時、CPU12は、設定された検証ステップに対応するテーブルを対象テーブルとしてその対象テーブルを更新する。即ち、CPU12は、第1検証ステップがその時の検証ステップとして設定されている場合、第1検証ステップに対応する第1セル占有率テーブル36aを対象テーブルとし、その対象テーブルを更新する。同様に、CPU12は、第2検証ステップがその時の検証ステップとして設定されている場合、第2検証ステップに対応する第2セル占有率テーブル36bを対象テーブルとし、その対象テーブルを更新する。
【0048】
ステップ46における対象部分は、レイアウトパターンの入力によって占有率の値が変化する要素からなる部分、又は処理によって抽出された部分である。例えば、X軸方向とY軸方向のそれぞれにおいて、第1検証ステップを検証エリアのサイズの1/5に設定した場合、1つの格子におけるレイアウトパターンの占有面積の変更が、セル占有率テーブル36の25個の要素に影響する。従って、CPU12は、25個の要素についてそれぞれ占有率を算出する。同様に、第2検証ステップを検証エリアの1/10に設定した場合、CPU12は、100個の要素についてそれぞれ占有率を算出する。これらの占有率を算出する領域の大きさは、半導体装置のチップ面積に比べて極めて小さい。従って、半導体装置の全体について占有率を算出する時間に比べて、極めて短い時間で対応する領域の占有率を算出することができる。
【0049】
第2セル占有率テーブル36bの要素のうち、必ず第1セル占有率テーブル36aの要素と同じ値となるものが存在する。これは、要素の値、つまり占有率を算出する検証エリアの位置が同じであることに因る。上記したように、第1セル占有率テーブル36aの各要素の値は、第1検証ステップにて検証エリアを移動させ各位置において算出した値であり、第2セル占有率テーブル36bの各要素の値は第2検証ステップにて検証エリアを移動させ各位置において算出した値である。従って、上記のように、第1検証ステップを第2検証ステップの2倍に設定した場合、第2セル占有率テーブル36bを構成する各要素のうち、X軸方向及びY軸方向のそれぞれにおいて、1つ置きに検証エリアの位置が第1セル占有率テーブル36aの要素に対応する検証エリアの位置と一致する。そして、検証エリアの位置が一致する要素は、第1セル占有率テーブル36aと第2セル占有率テーブル36bの設定により決定される、即ち検証処理を行う時点では判っている。従って、第1セル占有率テーブル36aの要素の値を算出することにより、第2セル占有率テーブル36bの一部の要素の値を確定することができ、その分の演算を省略することができる。
【0050】
図4に示すステップ48において、CPU12は、ステップ47において、セル占有率テーブル36のうち更新された部分の占有率が、占有率の上限値を超えているか否かを判断し、占有率が上限値以下の場合(NO)はステップ49に移行し、占有率が上限値を超えている場合(YES)はステップ53に移行する。占有率の上限値は、製造プロセスの基準値(許容されるレイアウトパターンの密度の最大値)である。
【0051】
ステップ49において、CPU12は、更新部分の占有率が、保証占有率を超えているか否かを判断する。そして、CPU12は、占有率が保証占有率以下の場合(NO)はステップ50に移行し、占有率が保証占有率を超えている場合(YES)はステップ54(図3参照)に移行する。
【0052】
保証占有率は、検証エリアの移動によってレイアウトパターンの占有面積が増減し、この占有面積の増減により変化する占有率が、占有率の上限値を超えないことを保証できる占有率を言う。占有面積の増減は、検証ステップに対応する。従って、保証占有率は、検証ステップに応じて設定されている。本実施形態では、検証ステップとして第1検証ステップ及び第2検証ステップが設定されているため、保証占有率は、第1検証ステップに対応する第1保証占有率と、第2検証ステップに対応する第2保証占有率とが設定されている。
【0053】
保証占有率を図5に従って説明する。一例として、レイアウトパターンP1が形成されている。CPU12は、このレイアウトパターンP1に対して、検証エリアVAを検証ステップVSずつ移動させて各位置における占有率を算出する。この場合において、実線で示す検証エリアVAを、破線で示す位置まで移動させる。この時、実線で示す検証エリアVAに含まれるレイアウトパターンP1の占有面積に対して、破線で示す検証エリアVAに含まれるレイアウトパターンの占有面積は、検証エリアVAの縦(図5において上下方向)の長さと、検証ステップVSとの積の値となる。つまり、検証エリアVAにおける占有率は、検証エリアVAの横(図5において左右方向であって、検証エリアVAを移動させる方向)の長さと、検証ステップVSとの比だけ増加することになる。
【0054】
上記例のように、検証エリアが100個の格子から構成され、第1検証ステップがその1つの格子のサイズの2倍に設定されている場合、移動によって検証エリアの占有率は、最大20(%)増加する。このため、占有率の上限値を50(%)とすると、その最大値を超えないように保証する値、即ち第1保証占有率は30(%)となる。また、検証エリアが100個の格子から構成され、第2検証ステップがその1つの格子のサイズと等しく設定されている場合、移動によって検証エリアの占有率は、最大10(%)増加する。このため、第2保証占有率は40(%)となる。
【0055】
従って、所定位置における検証エリアの占有率が保証占有率を超えていない場合、その検証エリアを検証ステップに応じて移動させた位置に於いても、占有率が最大値を超えることはない。つまり、所定の検証エリアにおける占有率を算出することにより、その位置における占有率と検証ステップだけずれた位置における検証エリアの占有率が、占有率の最大値が越えているか否かを判断することができる。
【0056】
また、第1保証占有率は、第2検証ステップにおいて算出する占有率が上記の上限値を超えないことを保証する。例えば、上記したように第1検証ステップは第2検証ステップの2倍に設定されている。この場合、第2検証ステップに対応する第2セル占有率テーブル36bには、第1検証ステップと第2検証ステップとにおいて検証エリアが一致する位置における占有率と、その位置からX軸方向、Y軸方向に第2検証ステップだけ検証エリアを移動させた位置における占有率を含む。これらの位置における占有率の増加は、第2検証ステップにて検証エリアを移動させた時の占有面積の増加分となる。つまり、X軸方向にのみ検証エリアを移動させた場合、検証エリアの占有率は、最大10(%)増加する。同様に、Y軸方向にのみ検証エリアを移動させた場合、検証エリアの占有率は、最大10(%)増加する。そして、X軸方向とY軸方向にそれぞれ検証エリアを移動させた場合、検証エリアの占有率は、最大19(%)増加する。従って、第1セル占有率テーブル36aにおいて、占有率が第1保証占有率(=30)を越えていない場合、その占有率を算出した検証エリアの位置からそれぞれ第2検証ステップだけ検証エリアを移動させた位置における占有率は、占有率の上限値を超えないことになる。つまり、占有率が上限値を超えないことを保証することができる。
【0057】
ステップ50(エラー判断工程)において、CPU12は、対象領域の占有率が占有率の上限値と等しいか否かを判断し、対象領域の占有率が上限値と等しい場合(YES)にはステップ51に移行し、等しくない場合(NO)にはステップ52に移行する。
【0058】
ステップ51(エラー解消工程)において、CPU12は、図形入力禁止エリアを生成する。図形入力禁止エリアは、作業者の操作によるレイアウトパターンの追加を禁止するエリアである。CPU12は、対象領域の占有率に影響を与える範囲に対応して図形入力禁止エリアを生成する。この図形入力禁止エリアにより、所定位置の検証エリアにおける占有密度が、占有率の上限値を超えるのを防ぐ。
【0059】
ステップ52において、CPU12は、全図形入力・編集終了か否かを判断する。操作者は、全てのレイアウトパターンを入力し終わるか、又はレイアウトパターンの編集を終了すると、図1に示す入力装置16により入力又は編集処理の終了を指示する。CPU12は、入力装置16からの信号に基づいて、終了指示の有無を判断し、終了が指示されている場合(YES)は図形入力・編集処理を終了し、終了が指示されていない場合(NO)は図3のステップ42移行し次のレイアウトパターンの入力又はレイアウトパターンの編集を可能とする。
【0060】
上記のステップ48において、更新された部分の占有率が上限値を超えている場合(YES)、CPU12はステップ53に移行する。ステップ53において、CPU12は、エラー発生箇所までレイアウトパターンの入力を強制的に戻す、又は各データをインスタンスの配置前の状態に戻し、セル面積テーブル35とセル占有率テーブル36を更新し、ステップ50に移行する。エラー発生箇所は、エラーとなるレイアウトパターンを生成した入力確定又は操作の直前において検証処理を終了した箇所を示す。つまり、エラーが発生した場合に、その検証処理の直前の入力や処理による変更をセル面積テーブル35及びセル占有率テーブル36から削除することで、エラー発生までに確定したレイアウトパターンの状態を示す。このエラー発生箇所まで入力を戻すことにより、エラー発生を自動的に解消するとともに、エラーの発生を操作者に示すことが可能となる。
【0061】
上記のステップ49において、更新部分の占有率が保証占有率を超えている場合(YES)、CPU12は図3に示すステップ54に移行する。図3に示すステップ54において、CPU12は、セル占有率テーブル36の更新箇所内で保証占有率を超えている検証エリア、即ち第1セル占有率テーブル36aの要素を抽出する。次に、ステップ55において、CPU12は、保証占有率・検証ステップを更新する。詳しくは、CPU12は、検証ステップを第1検証ステップから第2検証ステップに変更するとともに、保証占有率を第1保証占有率から第2保証占有率に変更する。そして、CPU12は、ステップ46に移行する。
【0062】
ステップ46において、CPU12は、ステップ55において抽出した第1セル占有率テーブル36aの要素を対象領域とする。そして、CPU12は、ステップ56において設定した第2検証ステップに対応する第2セル占有率テーブル36bの対象領域に含まれる要素の値を更新する。
【0063】
次に、入力レイアウトパターンの一例を示して上記の処理を説明する。
図9(a)に示すように、レイアウトパターン71,72が形成されたレイアウトデータに対して、新たなレイアウトパターンを入力する。尚、図9(a)は表示装置15に表示されたレイアウトデータであり、同図9(a)において、レイアウトパターン73は入力中のレイアウトパターンである。更に、図9(a)において、破線は第1検証ステップの格子を示す。
【0064】
図1のCPU12は、入力中のレイアウトパターン73が格子を通過したと判断し(ステップ43)、入力中のレイアウトパターン73の占有面積を算出する(ステップ44)。このとき、格子74内のレイアウトパターン73aについては、このレイアウトパターン73が入力格子枠75を越えた時点で処理されている。従って、CPU12は、格子76内のレイアウトパターン73bの占有面積を算出する。そして、CPU12は、図9(b)に示すように、第1セル面積テーブル35aの要素77を更新する(ステップ45)。更に、CPU12は、図10(a)に示すように、第2セル面積テーブル35bの要素(実線で囲まれた要素)を更新する(ステップ45)。
【0065】
次に、CPU12は、対象部分の占有率を算出し(ステップ46)、第1セル占有率テーブル36aの対象部分の値を更新する。この場合、図9(b)に示す要素77の値の更新は、図9(c)に示す枠78内の要素に影響する。このため、CPU12は、枠78内の要素を対象部分とし、この対象部分の要素の値を更新する(ステップ47)。
【0066】
次に、CPU12は、第1セル占有率テーブル36aにおいて、更新部分の占有率が上限値を超えているか否かを判断する(ステップ48)。図9(c)において、枠78内の要素が更新されているが、何れの要素の値も上限値(=50)を超えていない。従って、CPU12は、更新部分の占有率が第1保証占有率(=30)を越えているか否かを判断する(ステップ49)。図9(c)において、枠78内の要素が更新されており、枠79内の要素の値が第1保証占有率を超えている。従って、CPU12は、第1保証占有率を超えている要素が含まれるエリア、つまり図9(c)に示す枠79を抽出する(ステップ54)。
【0067】
次に、CPU12は、保証占有率及び検証ステップを、第1保証占有率と第1検証ステップから第2保証占有率と第2検証ステップに更新する(ステップ55)。
次に、CPU12は、抽出した枠79内を対象部分とし、対象部分の占有率を算出する(ステップ46)。この時、CPU12は、検証ステップを第2検証ステップに設定しているため、ステップ54において抽出した枠79に対応する第2セル占有率テーブル36bの部分について、占有率を算出する。図9(c)に示す枠79に対応する部分は、第2セル占有率テーブル36bにおいて、図10(b)に示す枠80に囲まれた部分である。従って、CPU12は、この枠80内の要素について、占有率を算出する。
【0068】
即ち、CPU12は、第1保証占有率によって第1セル占有率テーブル36aの更新部分から密度エラーが発生する可能性が高い部分を抽出し、抽出した部分についてのみ第2セル占有率テーブル36bの値を更新するようにした。従って、更新部分の全ての占有率が第1保証占有率を超えていない場合、抽出は行われず、第2セル占有率テーブル36bの更新も行われない。このため、更新部分の全ての要素について占有率を算出する場合に比べ、演算に要する時間が短くなる。
【0069】
この占有率算出において、上記したように、第2セル占有率テーブル36bにおいて、検証エリアの位置が第1セル占有率テーブル36aの要素と同じ要素については、第1セル占有率テーブル36aの要素の値を複写し、他の要素について第2セル面積テーブル35bに従って占有率を算出する。これによって、抽出した部分の要素の全てについて占有率を算出する場合に比べ、演算に要する時間が短くなる。
【0070】
上記のように演算に要する時間を短くすることは、レイアウトパターンの入力の応答性を良くする。つまり、CPU12は、レイアウトパターンの入力中に占有率を算出するため、占有率の演算量が多くなる(演算時間が長くなる)と、操作者による入力装置16の操作から、表示装置15に対するレイアウトパターンの表示までの時間が長くなる、つまり入力に対する表示の応答性が悪くなる。しかし、本実施形態のように、占有率の演算に要する時間を短くすることで、入力に対する表示の応答性の劣化を抑えることができる。
【0071】
次に、CPU12は、第2セル占有率テーブル36bにおいて、更新部分の占有率が上限値を超えているか否かを判断する(ステップ48)。
図10(b)において、枠80内の要素のうちの1つの値が「51」であり、上限値(=50)を超えている。つまり、この占有率(=51)の要素に対応する検証エリアにおいて、密度エラーが発生している。このため、CPU12は、エラー発生箇所までレイアウトパターンの入力を強制的に戻して各テーブル35,36を更新する(ステップ53)。
【0072】
図11(a)に示すように、CPU12は、入力中のレイアウトパターンの座標値(表示装置15に表示するためのレイアウトパターンの終点の座標値)を、入力格子に従って密度エラーが発生している占有率と上限値との差に応じて始点側の座標値に変更したレイアウトパターン73cを生成し、図11(b),(c)に示す第2セル面積テーブル35b及び第2セル占有率テーブル36bを更新する。これにより、密度エラーが発生した要素の占有率は、占有率の上限値と等しくなる。このため、CPU12は、密度エラーを解消した要素に対応して図形入力禁止エリアを生成する(ステップ51)。
【0073】
図11(c)に示すように、密度エラーを解消した要素81の値は、図11(d)に示す検証エリア82により算出した占有率である。従って、この検証エリア82内にレイアウトパターンを追加すると、要素81の値が大きくなり、密度エラーを発生させる。このため、CPU12は、この検証エリア82と同じ大きさの図形入力禁止エリアを生成する。この図形入力禁止エリアの生成により、上限値と等しい占有率の要素について、その占有率が上限値を超えることがなくなる、つまり、密度エラーの発生を防止する。
【0074】
次に、インスタンスの一例を示して上記の処理を説明する。
第1の例として、図12(a)に示すインスタンス91を、図12(b)に示すセル92に配置し(セルを編集)、図12(c)に示すセル93を生成する場合について説明する。
【0075】
インスタンス91は、ハッチングを付したレイアウトパターン91aを含む。同様に、セル92は、ハッチングを付したレイアウトパターン92a〜92dを含む。なお、インスタンス91,92内の実線は格子を示す。
【0076】
インスタンス91は、基準点(例えば、インスタンス91の枠の左下頂点)に従って配置される。図12(c)に示すように、基準点をセル92の格子上に配置した場合、セル93は、インスタンス91のパターン91aと、セル92のパターン92a〜92dを含む。なお、図12(c)に示す黒丸は、インスタンス91の基準点を示す。
【0077】
インスタンス91とセル92は、それぞれ格子に1つのパターンを含む。従って、図13(a)に示すように、インスタンス91の面積テーブル34は、レイアウトパターン91aに対応する格子に「1」が記憶され、レイアウトパターンを含まない格子に「0」が記憶されている。同様に、図13(b)に示すように、セル92の面積テーブル35aは、レイアウトパターン92a〜92dに対応する格子に「1」が記憶され、レイアウトパターンを含まない格子に「0」が記憶されている。
【0078】
図12(c)に示すように、セル91をセル92に配置した場合、CPU12は、図13(c)に示すように、対応する面積テーブル34をセル面積テーブル35bに配置する。それぞれの面積テーブルの配置は、それぞれに含まれる面積値を、インスタンス91とセル92の重なりに対応させるものである。例えば、インスタンス91の基準点を、面積テーブル34の基準点とする。なお、図では、インスタンス91の面積テーブル34が重ねられた部分の面積値を示していない。
【0079】
そして、CPU12は、各格子の面積を合成する。この場合、CPU12は、インスタンス面積テーブル34の値と、セル面積テーブル35aの値とを論理和演算して対応する格子の面積値としてセル面積テーブル35aを更新する。重なりのない部分の面積値は更新前の面積テーブル35aの値となる。なお、図13では、更新後のセル面積テーブルに、更新前のセル面積テーブルと同じ符号を付している。
【0080】
インスタンス91は、基準点対して、回転、反転が指定され、配置される。
図14(a)は、反転(図において左右方向であって、例えばY軸を中心とした反転)したインスタンス91を配置した例を示す。この場合、上記と同様に、図14(b)に示すように、反転されたインスタンス面積テーブル34がセル面積テーブル35aに配置し、各面積値を論理和演算し、図14(c)に示すように、セル面積テーブル35aを更新する。
【0081】
図15(a)は、反転(図において左右方向であって、例えばY軸を中心とした反転)したインスタンス91を、更に基準点周りに回転して配置した例を示す。この場合、上記と同様に、図15(b)に示すように、反転されたインスタンス面積テーブル34がセル面積テーブル35aに配置し、各面積値を論理和演算し、図15(c)に示すように、セル面積テーブル35aを更新する。
【0082】
インスタンス91を配置すると、CPU12は、そのインスタンス91が配置されたセル92の面積テーブル35aを、インスタンス91の面積テーブル34を参照して更新する。そして、CPU12は、更新したセル面積テーブル35aに基づいて占有面積を算出してセル占有率テーブル36aを更新する。配置したインスタンス91に対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのインスタンスを配置した後に占有率を算出する方法に比べて設計時間を短縮することができる。
【0083】
第2の例として、図16(a)に示すインスタンス101を、図16(b)に示すセル102に配置し(セルを編集)、図16(c)に示すセル103を生成する場合について説明する。
【0084】
インスタンス101は、ハッチングを付したレイアウトパターン101a,101bを含む。同様に、インスタンス102は、ハッチングを付したレイアウトパターン102a〜102dを含む。なお、インスタンス101,102内の実線は格子を示す。
【0085】
インスタンス101は、基準点(例えば、インスタンス101の枠の左下頂点)に従って配置される。図16(c)に示すように、基準点をセル102の格子内に配置した場合、セル103は、インスタンス101のパターン101a,101bと、セル102のパターン102a〜102dを含む。なお、図16(c)に示す黒丸は、インスタンス101の基準点を示す。
【0086】
図17(a)に示す面積テーブル34は図16(a)に示すインスタンス101に対応する面積テーブルである。面積テーブル34の値は、対応する格子内にレイアウトパターンが含まれるか否かである。面積テーブル34には、レイアウトパターンを含む格子に対応して「1」が記憶され、レイアウトパターンを含まない格子に対応して「0」が記憶される。
【0087】
図1のCPU12は、面積テーブル34の基準点を設定する。CPU12は、例えば、面積テーブル34の基準点を、対応するインスタンス101の基準点とする。そして、CPU12は、レイアウトパターンを含む格子の頂点の座標値を算出する。図17(b)には、算出した座標値の頂点を黒丸にて示されている。例えば、格子を各軸(X軸及びY軸)の1単位とし、基準点を(0,0)とすると、頂点の座標値は、(1,1),(2,1),(1,2),(2,2),(1,3),(2,3)となる。
【0088】
図17(c)に示す面積テーブル35aは図16(b)に示すインスタンス102に対応する面積テーブルである。面積テーブル35aの値は、対応する格子内にレイアウトパターンが含まれるか否かである。面積テーブル35aには、レイアウトパターンを含む格子に対応して「1」が記憶され、レイアウトパターンを含まない格子に対応して「0」が記憶される。
【0089】
次に、CPU12は、図16(c)に示すインスタンス101とセル102の配置と同様に、図18(a)に示すように、セル面積テーブル35aにインスタンス面積テーブル34を配置する。そして、CPU12は、セル面積テーブル35aの格子に対して、インスタンス面積テーブル34のレイアウトパターンを含む格子の頂点が含まれるか否かを判断し、頂点が含まれる格子についてはレイアウトパターンを含むとして面積値を「1」としてセル面積テーブル35aを更新し、頂点が含まれない格子については更新前の面積値を維持する。その結果、CPU12は、図18(b)に示すように、面積テーブル35aを更新する。
【0090】
上記のように、セル102の格子位置と、そのセル102に配置したインスタンス101の格子位置が異なる場合、CPU12は、インスタンス101に対応する面積テーブル34のレイアウトパターンを含む格子の頂点を算出し、その頂点を含むセル102のセル面積テーブル35aについて、面積値を算出してセル面積テーブル35aを更新する。このように、セル面積テーブル35aを更新することにより、セル102に対するインスタンス101の配置位置の自由度が高まる、即ち、任意の位置にインスタンス101を配置することができ、配線設計を容易に行うことができる。
【0091】
インスタンス101を配置すると、CPU12は、そのインスタンス101が配置されたセル102の面積テーブル35aを、インスタンス101の面積テーブル34を参照して更新する。そして、CPU12は、更新したセル面積テーブル35aに基づいて占有面積を算出してセル占有率テーブル36aを更新する。配置したインスタンス101に対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのインスタンスを配置した後に占有率を算出する方法に比べて設計時間を短縮することができる。
【0092】
次に、図16(c)に示すようにインスタンス101をセル102に配置した場合において面積テーブル35aを更新する別の例を説明する。
インスタンス101が配置されると、図1のCPU12は、配置されたインスタンス101の配置状態に応じて、対応する面積テーブル34の値を変更した面積テーブル34aを生成する。CPU12は、インスタンス101に対応する面積テーブル35をずらす方向に応じて各格子の面積値を変更する。
【0093】
インスタンス101の基準点と一致する基準点の面積テーブルを第1の面積テーブルとし、基準点をずらした面積テーブルを第2の面積テーブルとする。CPU12は、第1の面積テーブルに対して、レイアウトパターンを含む格子の頂点の座標値を算出する。次に、CPU12は、第2の面積テーブルの格子のうち、算出した頂点の座標値を含む格子を抽出する。そして、CPU12は、その抽出した格子の面積値を、レイアウトパターンを含む値、即ち「1」に変更する。
【0094】
例えば、図17(a)に示す面積テーブル34に対して、CPU12は、図17(b)に示すように、レイアウトパターンを含む格子の頂点(黒丸で示す頂点)の座標値を算出する。そして、面積テーブル34を左下方向にずらした場合、各頂点は、それぞれ頂点を左下の頂点とする格子に含まれることになる。従って、CPU12は、それらの頂点を含む6つの格子の面積値を、レイアウトパターンを含むことを示す値「1」に変更した面積テーブル34a(図19(a)参照)する。
【0095】
上記の処理は、格子を構成する2つの軸(X軸及びY軸)について、面積テーブルをずらした方向と逆の方向に、レイアウトパターンを含むことを示す面積値を拡張することといえる。
【0096】
次に、CPU12は、図19(b)に示すように、生成した面積テーブル34a(第2の面積テーブル)を、セル102の面積テーブル35aに配置し、両面積テーブル34a,35aの面積値を合成(論理和演算)して面積テーブル35aを更新する。
【0097】
上記のように、セル102の格子位置と、そのセル102に配置したインスタンス101の格子位置が異なる場合、CPU12は、インスタンス101に対応する面積テーブル34のレイアウトパターンを含む格子の面積値を、セル面積テーブル35aの格子に対応して基準点をずらした面積テーブル34aを生成し、その面積テーブル34aの面積値を参照してセル面積テーブル35aを更新する。このように、セル面積テーブル35aを更新することにより、セル102に対するインスタンス101の配置位置の自由度が高まる、即ち、任意の位置にインスタンス101を配置することができ、配線設計を容易に行うことができる。
【0098】
CPU12は、上記のようにしてインスタンスをセルに配置し、セル面積テーブル35a及びセル占有率テーブル36aを更新する。そして、CPU12は、更新したセル占有率テーブルの値が上限値を超えているか否かを判断し(図4のステップ48)、上限値を超えている、つまりエラーの場合にはセル面積テーブル35a及びセル占有率テーブル36aをインスタンスの配置前の状態に戻す(図4のステップ53)。エラーが発生した場合に、その検証処理の直前の入力や処理による変更をセル面積テーブル35a及びセル占有率テーブル36aから削除する。このエラー発生箇所まで入力を戻すことにより、エラー発生を自動的に解消するとともに、エラーの発生を操作者に示すことが可能となる。
【0099】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
(1)設計装置11の記憶装置14には、半導体装置を検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの面積がそれぞれ格納されるセル面積テーブル35と、移動される検証エリアの位置に対応し、各検証エリアには所定数の領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納されるセル占有率テーブル36を含む面積DB33が記憶される。図形DB32にはインスタンスの面積テーブル34が含まれる。CPU12は、配置されたインスタンスの面積テーブル34に従って編集対象のセル面積テーブル35を変更し、そのセル面積テーブルに従ってセル占有率テーブル36を更新する。従って、配置したインスタンスに対応して占有率を算出するため、その領域は、半導体装置全体に比べて少なく、短時間で占有率を算出することができ、半導体装置に形成するすべてのレイアウトパターンを入力した後に占有率を算出する方法に比べて設計時間を短縮することができる。
【0100】
(2)CPU12は、インスタンスの配置位置に応じて、セル面積テーブル35aに含まれる格子のうち、面積値を更新する格子を変更するようにした。その結果、セル92,102に対するインスタンス91,101の配置位置の自由度が高まる、即ち、任意の位置にインスタンス91,101を配置することができ、配線設計を容易に行うことができる。
【0101】
(3)セル面積テーブル35及びセル占有率テーブル36は、それぞれ半導体装置の配線層のうち、密度基準が設定された配線層に対応するテーブルを含む。CPU12は、配置されたインスタンスの面積テーブル34に対応するテーブルを更新するようにした。その結果、全ての配線層をチェックする場合と比べてチェックに要する時間が短くなり、設計時間を短縮することができる。
【0102】
(4)設計装置11の記憶装置14には、半導体装置を検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの占有面積がそれぞれ格納されるセル面積テーブル35と、移動される検証エリアの位置に対応し、各検証エリアには所定数の領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納されるセル占有率テーブル36とが記憶される。CPU12は、レイアウトパターンの入力中において、セル面積テーブル35及びセル占有率テーブル36を更新する。従って、入力中のレイアウトパターンに対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのレイアウトパターンを入力した後に占有率を算出する方法に比べて設計時間を短縮することができる。
【0103】
(5)設計装置11には検証ステップとして互いに異なる第1及び第2検証ステップが設定され、セル面積テーブル35及びセル占有率テーブル36は、第1及び第2検証ステップに対応してそれぞれ第1及び第2セル面積テーブル35a,35b,第1及び第2セル占有率テーブル36a,36bから構成される。CPU12は、値が大きな第1検証ステップから値の小さな第2検証ステップへと変更し、ステップ45では各検証ステップのセル面積テーブル35a,35bを更新し、ステップ47ではその時の検証ステップに対応するセル占有率テーブル36a,36bを更新する。従って、値の大きな第1検証ステップに対応する第1セル占有率テーブル36aを更新した後、値の小さな検証ステップに対応する第2セル占有率テーブル36bを更新することで、第2セル占有率テーブル36bにおいて、占有率が上限値を超えないと判定される部分については占有率の算出を省略することが可能となる、占有率の算出に要する時間を短縮することができる。更に、値が小さな検証ステップに対応する第2セル占有率テーブル36bを更新ことで、小さな領域に対応する占有率が算出され、必用な精度にて占有率を算出することができ、従来に比べて精度の低下を抑えることができる。
【0104】
(6)設計装置11には上限値に応じた保証占有率が設定される。CPU12は、第1検証ステップに対応する第1セル占有率テーブル36aを対象テーブルとし、その対象テーブルの占有率を保証占有率と比較し、占有率が保証占有率を超えているエリアを抽出する。そして、CPU12は、検証ステップを第2検証ステップに更新し、第2占有率テーブルを対象テーブルとしてその対象テーブルにおいて先に抽出したエリア内の対象部分について占有率を算出して第2占有率テーブルを更新するようにした。上限値に応じた保証占有率を超える部分は、占有率が上限値を超える確率が高い、即ち密度エラーが発生する候補の部分である。従って、第1セル占有率テーブル36a、第2セル占有率テーブル36bと、順次切り換え、エラー候補の箇所を段階的に絞り込むことで、第2セル占有率テーブル36bにおいて、入力するレイアウトパターンの占有面積が影響する部分の全ての占有率を算出する場合に比べ、第2セル占有率テーブル36bの更新に要する時間が短くなり、設計時間を短縮することができる。
【0105】
(7)CPU12は、更新されたセル占有率テーブル36(36a,36b)の更新部分の占有率が上限値を超えていると判断した場合にレイアウトパターンの入力を強制的に戻してセル面積テーブル35及びセル占有率テーブル36を更新するようにした。そのため、占有率が上限値を超えた密度エラーを自動的に解消することができる。
【0106】
(8)CPU12は、入力装置16からの信号に基づいて、入力中のレイアウトパターンが検証ステップの格子を越えているか否か、及びレイアウトパターンの入力が終了したか否か、を判断し、入力中のレイアウトパターンが前記検証ステップの格子を越えた場合、又はレイアウトパターンの入力が終了した場合にそのレイアウトパターンに占有面積計算、占有率計算を行うようにした。従って、検証ステップの格子に従ってレイアウトパターンの入力中にトリガが発生するため、占有率を算出する対象となるレイアウトパターンの占有面積が検証ステップに応じており、その時の占有率を算出する演算量が少なくなり、レイアウトパターンの入力に対する影響を少なくすることができる、つまり、操作者においてレイアウトパターンを入力するための操作性の劣化を抑えることができる。
【0107】
(9)CPU12は、セル占有率テーブル36の占有率が上限値と等しい場合に、その上限値と等しい占有率に対応するエリアに対して図形入力禁止エリアを生成するようにした。その結果、上限値と等しい占有率の要素について、その占有率が上限値を超えることがなくなる、つまり、密度エラーの発生を防止することができる。
【0108】
尚、前記実施形態は、以下の態様に変更してもよい。
・上記実施形態では、セル面積テーブル35を、レイアウトパターンを形成する領域に対して、1つの領域に形成されたレイアウトパターンの占有面積を格納する第1セル面積テーブル35aと、複数の領域に形成されたレイアウトパターンの占有面積を格納する第2セル面積テーブル35bとから構成したが、互いに格納する領域数が異なるn個(3つ以上)の面積テーブルにより構成し、配線密度の検証をn段階にて実施するようにしてもよい。また、セル占有率テーブル36を、n個(3つ以上)の占有率テーブルにより構成し、配線密度の検証をn段階にて実施するようにしてもよい。
【0109】
・上記実施形態では、完成した1Chip全体のレイアウトデータやマクロレベルのレイアウトデータに対して、配線密度のプロセス製造基準の高い側だけでなく、低い側も配線密度の検証をしてもよい。
【0110】
・上記実施形態では、新たなレイアウトデータを生成する場合について説明したが、追加又は修正が必用なレイアウトデータを編集する場合に適用しても良い。この場合、図3のステップ41における初期化処理において、CPU12は、記憶装置14に格納されたレイアウトデータを読み込み、そのレイアウトデータのレイアウトパターンに基づいて、セル面積テーブル35及びセル占有率テーブル36の値を設定する。このようにしても、追加又は修正するレイアウトパターンに係る密度チェックを容易に行うことができる。
【0111】
・上記実施形態では、占有率が上限値を越えたか否かを判断するようにしたが、下限値を設定し、占有率が下限値を下回ったか否かを判定するようにしてもよい。下限値は、製造プロセスの基準値(必要とするレイアウトパターンの密度の最小値)である。判定結果に基づき、レイアウトパターンが必要な領域にレイアウトパターンを追加することができるようになり、設計後に下限値をチェックする手順と比べて設計時間を短縮することができるようになる。
【0112】
上記各実施形態に関し、以下の付記を開示する。
(付記1)
半導体装置のレイアウトデータを生成する設計装置の中央処理装置にて実行される配線設計方法であって、
記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、
前記中央処理装置が実行する処理は、
インスタンスが配置されたセルのセル面積テーブルを、前記インスタンス面積テーブルに従って更新するステップと、
更新されたセル面積テーブルに基づいて前記インスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、
を含む、
ことを特徴とする配線設計方法。
(付記2)
前記中央処理装置は、
前記インスタンス面積テーブルの値と、前記セル面積テーブルの値とを論理和演算してセル面積テーブルを更新する、
ことを特徴とする付記1に記載の配線設計方法。
(付記3)
前記中央処理装置は、
前記インスタンスの配置位置に応じて、前記セル面積テーブルに含まれる格子のうち、面積値を更新する格子を変更する、
ことを特徴とする付記2に記載の配線設計方法。
(付記4)
前記中央処理装置は、
前記インスタンス面積テーブルの格子のうち、レイアウトパターンを含む格子の頂点の座標値を算出し、その算出した頂点の座標値を含むセル面積テーブルの格子の面積値を更新する、
ことを特徴とする付記3に記載の配線設計方法。
(付記5)
前記中央処理装置は、
前記インスタンス面積テーブルを、前記インスタンスの配置位置に応じてずらし、そのずらした方向に応じてインスタンス面積テーブルに含まれる格子を拡張した第2の面積テーブルを生成し、その第2の面積テーブルの面積値とセル面積テーブルの面積値とを論理和演算してセル面積テーブルを更新する、
ことを特徴とする付記3に記載の配線設計方法。
(付記6)
前記半導体装置の設計規則に応じて移動させた検証エリアの占有率が設計規則を満足するか否かを検証するステップを含む、
ことを特徴とする付記1〜5のうちの何れか1項に記載の配線設計方法。
(付記7)
前記設計装置には検証ステップとして互いに異なる複数の検証ステップが設定され、
前記面積テーブル及び前記占有率テーブルは、各検証ステップに対応してそれぞれ複数のテーブルを含み、
前記中央処理装置は、
対象とする検証ステップを、大きな検証ステップから小さな検証ステップへと順次変更し、
各検証ステップのセル面積テーブルを更新し、
対象する検証ステップに対応するセル占有率テーブルを更新する、
ことを特徴とする付記1〜6のうちの何れか1項に記載の配線設計方法。
(付記8)
前記セル面積テーブル及び前記セル占有率テーブルは、それぞれ半導体装置の配線層のうち、密度基準が設定された配線層に対応するテーブルを含み、
入力されたインスタンスの面積テーブルに対応するテーブルを更新する、
ことを特徴とする付記1〜7のうちの何れか1項に記載の配線設計方法。
(付記9)
前記中央処理装置が実行する処理は、
更新された前記占有率テーブルの更新部分の占有率が上限値を超えているか否かを判断するステップと、
占有率が上限値を超えていると判断した場合に前記面積テーブル及び前記占有率テーブルをインスタンス配置前の状態に戻すステップと、
を含むこと、を特徴とする付記1〜8のうちの何れか1つに記載の配線設計方法。
(付記10)
半導体装置のレイアウトデータを生成する設計装置であって、
記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、
前記設計装置の中央処理装置が実行する処理は、
インスタンスが配置されたセルのセル面積テーブルを、前記インスタンス面積テーブルに従って更新するステップと、
更新されたセル面積テーブルに基づいて前記インスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、
を含む、
ことを特徴とする設計装置。
(付記11)
半導体装置のレイアウトデータを生成するために設計装置の中央処理装置が実行するプログラムであって、
記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、
前記中央処理装置が実行する処理は、
インスタンスが配置されたセルのセル面積テーブルを、前記インスタンス面積テーブルに従って更新するステップと、
更新されたセル面積テーブルに基づいて前記インスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、
を含む、
ことを特徴とするプログラム。
【符号の説明】
【0113】
11 設計装置
12 中央処理装置(CPU)
34(34a,34b) インスタンス面積テーブル
35(35a,35b) セル面積テーブル
36(36a,36b) セル占有率テーブル

【特許請求の範囲】
【請求項1】
半導体装置のレイアウトデータを生成する設計装置の中央処理装置にて実行される配線設計方法であって、
記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、
前記中央処理装置が実行する処理は、
インスタンスが配置されたセルのセル面積テーブルを、前記インスタンス面積テーブルに従って更新するステップと、
更新されたセル面積テーブルに基づいて前記インスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、
を含む、
ことを特徴とする配線設計方法。
【請求項2】
前記中央処理装置は、
前記インスタンス面積テーブルの値と、前記セル面積テーブルの値とを論理和演算してセル面積テーブルを更新する、
ことを特徴とする請求項1に記載の配線設計方法。
【請求項3】
前記中央処理装置は、
前記インスタンスの配置位置に応じて、前記セル面積テーブルに含まれる格子のうち、面積値を更新する格子を変更する、
ことを特徴とする請求項2に記載の配線設計方法。
【請求項4】
半導体装置のレイアウトデータを生成する設計装置であって、
記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、
前記設計装置の中央処理装置が実行する処理は、
インスタンスが配置されたセルのセル面積テーブルを、前記インスタンス面積テーブルに従って更新するステップと、
更新されたセル面積テーブルに基づいて前記インスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、
を含む、
ことを特徴とする設計装置。
【請求項5】
半導体装置のレイアウトデータを生成するために設計装置の中央処理装置が実行するプログラムであって、
記憶装置には、インスタンスに含まれるレイアウトパターンに対応する面積値が格納されたインスタンス面積テーブルが記憶され、
前記中央処理装置が実行する処理は、
インスタンスが配置されたセルのセル面積テーブルを、前記インスタンス面積テーブルに従って更新するステップと、
更新されたセル面積テーブルに基づいて前記インスタンスが配置されたセルに対応するセル占有率テーブルを更新するステップと、
を含む、
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−18105(P2011−18105A)
【公開日】平成23年1月27日(2011.1.27)
【国際特許分類】
【出願番号】特願2009−160601(P2009−160601)
【出願日】平成21年7月7日(2009.7.7)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】