(57)【要約】    【課題】      実数値の範囲で与えられる寄生素子や素子間ばらつきに関して与えられる制約を反映した自動配置を実現すること。    【解決手段】  予め、ネットリスト１００を用意し、許容範囲決定工程１０３は、素子に関連する許容範囲を設定し、フロアプラン工程１０４は、前記ネットリストを用いて、設定された許容範囲を満たすフロアプランを作成し、自動配置工程１０５は、作成したフロアプランを用いて、素子を配置し、寄生素子に対する許容範囲を実現する配線制約を抽出し、配線工程１０６は、抽出した配線制約に従って配線する。  【選択図】      図１
2006093631.tif 000002
【特許請求の範囲】
【請求項１】
予め、ネットリストを用意し、
素子に関連する許容範囲を設定する許容範囲決定工程と、
前記ネットリストを用いて、設定された許容範囲を満たすフロアプランを作成するフロアプラン工程と、
作成したフロアプランを用いて、素子を配置し、寄生素子に対する許容範囲を実現する配線制約を抽出する配置工程と、
抽出した配線制約に従って配線する配線工程と、
を備えることを特徴とする半導体集積回路の製造方法。
【請求項２】
前記許容範囲決定工程は、許容範囲として、寄生素子に対する許容範囲と、素子間ばらつきに対する許容範囲との少なくともいずれか一方を設定することを特徴とする請求項１記載の半導体集積回路の製造方法。
【請求項３】
前記フロアプラン工程は、回路の接続関係と、前記許容範囲とを用いて素子の相対的な配置関係を決定する相対配置算出工程を有することを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項４】
前記フロアプラン工程は、全素子を矩形と多角形とのいずれかのレイアウト領域内に収まる形状で配置する初期配置工程を有することを特徴とする請求項２または請求項３記載の半導体集積回路の製造方法。
【請求項５】
前記フロアプラン工程は、設定した素子間ばらつきの許容範囲に応じて、素子のサイズや形状をプロセス情報から決定して配置する初期配置工程を有することを特徴とする請求項２から請求項４のいずれかに記載の半導体集積回路の製造方法。
【請求項６】
前記フロアプラン工程は、レイアウト領域内かつ素子の相対的な配置関係を維持する範囲を素子の移動範囲とする検索工程を有することを特徴とする請求項１から請求項５のいずれかに記載の半導体集積回路の製造方法。
【請求項７】
前記フロアプラン工程は、配置された素子間に想定される配線と、素子内の同一ノード間接続で想定される配線とを加算して仮想配線とし、前記仮想配線から仮想寄生値を算出する判定工程を有することを特徴とする請求項１から請求項６のいずれかに記載の半導体集積回路の製造方法。
【請求項８】
前記フロアプラン工程は、配置された素子重心間距離から仮想素子間ばらつき値を算出する判定工程を有することを特徴とする請求項１から請求項７のいずれかに記載の半導体集積回路の製造方法。
【請求項９】
予め、デザインルールを更に用意し、
前記フロアプラン工程は、素子の移動、分割、変形のいずれかによりデザインルールを満たし、かつ、空き領域を減少させる素子移動・変形工程を有することを特徴とする請求項１から請求項８のいずれかに記載の半導体集積回路の製造方法。
【請求項１０】
前記配置工程は、配線による寄生素子値が許容範囲内に収まるように、配線層毎での配線長、配線幅、折れ曲がり回数と、配線層間での乗換回数と、乗換時でのコンタクト形状やコンタクト数と、に関する配線制約を自動抽出することを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１１】
前記配置工程は、配線による素子間ばらつき値が許容範囲内に収まるように、配線層毎での配線長、配線幅、折れ曲がり回数と、配線層間での乗換回数と、乗換時でのコンタクト形状やコンタクト数と、を一致させるような配線制約を自動抽出することを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１２】
前記配置工程は、配線層間、同一配線層間、コンタクトに対するプロセスばらつきによる影響を含めた配線制約を自動抽出することを特徴とする請求項１０記載の半導体集積回路の製造方法。
【請求項１３】
前記許容範囲設定工程は、既存レイアウトデータから寄生素子値を抽出し、抽出した寄生素子値を寄生素子に対する許容範囲として与えることを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１４】
前記許容範囲設定工程は、回路の各々のノードに寄生素子を挿入し、寄生素子値を増減させた回路シミュレーション結果から特性を満足する寄生素子値の範囲を導出し、導出した寄生素子値の範囲を寄生素子に対する許容範囲として与えることを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１５】
前記許容範囲設定工程は、回路の接続情報から仮フロアプランを実施し、前記仮フロアプランから抽出される寄生素子のみを回路の該当するノードに挿入し、寄生素子値を増減させた回路シミュレーション結果から特性を満足する寄生素子値の範囲を導出し、導出した寄生素子値の範囲を寄生素子に対する許容範囲として与えることを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１６】
予め、プロセス情報を更に用意し、
前記許容範囲設定工程は、既存レイアウトデータから素子間の距離を抽出し、前記プロセス情報と前記素子間の距離とから計算されるばらつき値を素子間ばらつきに対する許容範囲として与えることを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１７】
前記許容範囲設定工程は、回路の各々の素子サイズと素子パラメータとの少なくともいずれか一方を増減させた回路シミュレーション結果から特性を満足する素子間ばらつき値の範囲を導出し、素子間ばらつき値の範囲を素子間ばらつきに対する許容範囲として与えることを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１８】
予め、プロセス情報を更に用意し、
前記許容範囲設定工程は、回路の接続情報から仮フロアプランを実施し、前記仮フロアプランから抽出される素子間の距離を抽出し、プロセス情報と距離とからばらつき値を計算する。そのばらつき値を増減させた回路シミュレーション結果から特性を満足する素子間ばらつき値の範囲を導出し、前記素子間ばらつき値の範囲を素子間ばらつきに対する許容範囲として与えることを特徴とする請求項１または請求項２記載の半導体集積回路の製造方法。
【請求項１９】
前記許容範囲設定工程は、前記許容範囲設定工程が設定した寄生素子に対する許容範囲をデータベースへ登録し、登録した許容範囲を統計処理して得られる値を寄生素子に対する許容範囲として与えることを特徴とする請求項１３から請求項１５のいずれかに記載の半導体集積回路の製造方法。
【請求項２０】
前記許容範囲設定工程は、設定した素子間ばらつきに対する許容範囲をデータベースへ登録し、登録した許容範囲を統計処理して得られる値を素子間ばらつきに対する許容範囲として与えることを特徴とする請求項１６から請求項１８のいずれかに記載の半導体集積回路の製造方法。
【請求項２１】
素子に関連する許容範囲を取得する許容範囲取得手段と、
取得した許容範囲を満たすフロアプランを作成するフロアプラン手段と、
作成したフロアプランを用いて、素子配置し、寄生素子に対する許容範囲を実現する配線制約を抽出する配置手段と、
抽出した配線制約に従って配線する配線手段と、
を備えることを特徴とする半導体集積回路の製造装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路（ＬＳＩ：Large Scale Integration、以下、「ＬＳＩ」と記す）の製造方法および製造装置に関し、特にアナログレイアウト設計における素子及び配線間に発生する寄生素子の抑制と、素子及び素子間に発生するばらつきの抑制と、素子配置面積の最適化と、に有効な技術に関する。
【背景技術】
【０００２】
近年、ＬＳＩの製造技術の進歩に伴い回路の高集積化、大規模化、高速化及び高精度化が進んでいる。それに伴い配線に関しては配線長、配線幅、配線間隔、層間コンタクト、対基板等による寄生素子やプロセスばらつき（膜厚、リソグラフィ・エッチング等）等の影響が顕著になっている。また、素子に関してもプロセスばらつき（膜厚、イオン注入濃度、リソグラフィ・エッチング、長さ、幅、面積等）等の影響が顕著になっている。これらがＬＳＩの性能や品質の劣化につながるため大きな問題となってきている。従来の技術では自動配置の際に対象となっている回路の接続関係から素子のペアリングやグルーピングなどの設計制約を自動的に予測抽出して、この抽出された制約に基づき配置配線を行っていた。（例えば、特許文献１参照。）
【０００３】
しかし、このようにして与えられた制約は経験に基づき設定されたものであり、全ての制約を守ったとしても特性を１回で満たすことはできなかった。他にも寄生素子を配置配線制約として与えるものがあるが（例えば、特許文献２参照。）、どちらの例も実際に抽出された制約を反映した自動配置は実現されていない。
【特許文献１】特開２００３−８５２２４号公報（第２４頁、第１図）
【特許文献２】特開２００２−９３９１２号公報（第５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では自動配置配線に必要となる配置配線制約を自動で抽出することについてはいくつかの手段によって実現可能となっているものの、実際に従来方法で得られた配置配線制約を反映する方法について、特に寄生素子や素子間ばらつきに関して実数値の範囲で与えられた制約を反映する手段は実現されていない。
【０００５】
本発明は、かかる点に鑑みてなされたものであり、実数値の範囲で与えられる寄生素子や素子間ばらつきに関して与えられる制約を反映した自動配置が実現できるアナログレイアウトの配置手法を実現する半導体集積回路の製造方法および製造装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の半導体集積回路の製造方法は、予め、ネットリストを用意し、素子に関連する許容範囲を設定する許容範囲決定工程と、前記ネットリストを用いて、設定された許容範囲を満たすフロアプランを作成するフロアプラン工程と、作成したフロアプランを用いて、素子を配置し、寄生素子に対する許容範囲を実現する配線制約を抽出する配置工程と、抽出した配線制約に従って配線する配線工程と、を備える構成を採る。
【発明の効果】
【０００７】
本発明によれば、実数値の範囲で与えられる寄生素子や素子間ばらつきに関して与えられる制約を反映した自動配置が実現できるアナログレイアウトの配置手法を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。尚、本発明はこの実施の形態に何ら限定されるものではなく、要旨を逸脱しない範囲においてはさまざまなる態様で実施し得る。
【０００９】
図１を用いて本発明の概要となる処理フローを説明する。図１は、本発明のレイアウト自動配置する半導体集積回路の製造装置および製造方法の処理フローの概要を示す図である。
【００１０】
まず、ネットリスト１００は、回路の接続情報を定義する。回路中に含まれる素子の種類、素子インスタンス名、素子のサイズ、素子間の接続情報等が記述されたものを、ネットリストと定義する。
【００１１】
プロセス情報１０１は、例えば、抵抗素子や配線のシート抵抗値、容量素子や各層間で発生するシート容量値（層毎でのフリンジ容量やカップリング容量を含む）、各素子間ばらつき（素子間の距離やサイズ・形状・材質等による絶対ばらつきや相対ばらつき等）等のパラメータ値を与えるものをプロセス情報と定義する。
【００１２】
デザインルール１０２は、素子の最小寸法や素子間の距離、配線幅や配線間の距離、など、レイアウト設計上での制約をデザインルールと定義している。
【００１３】
許容範囲設定工程１０３において、回路に対して許容される寄生素子（寄生抵抗や寄生容量等）の範囲と、加えて素子間ばらつき（絶対ばらつきや相対ばらつき等）に対しての範囲とを設定する。許容範囲は、実数値すなわち実際の数値として設定される。
【００１４】
フロアプラン工程１０４において、許容範囲設定工程１０３において設定された回路の寄生素子に対する許容範囲と素子間ばらつきに対する許容範囲とを満足するフロアプランを実施する。この結果から、自動配置工程１０５（配置工程）にて自動配置処理と寄生素子と素子間ばらつきに対する配線制約１０７を自動抽出する。配線工程１０６にて、自動抽出された配線制約１０７に従って配線処理を経ることよってマスクデータを作成する（マスクデータ完成１０８）。
【００１５】
図２は、本実施の形態に係るレイアウト自動配置を実現する半導体集積回路の製造装置のブロック図である。更に図２のような構成を用いて処理工程を実現することで容易に一部または全部の自動化が可能となる。図２中の装置は入力装置２０１、ＣＰＵ（Central Processing Unit）２０２、補助記憶装置２０３、記憶装置２０４、レイアウト装置２０５からなる。
【００１６】
図２に示すように、寄生素子や素子間ばらつきに対する許容範囲は、入力装置２０１から入力され、記憶装置２０４に記憶される。ネットリスト１００、プロセス情報１０１、デザインルール１０２は、予め用意され、補助記憶装置２０３に格納される。ネットリスト１００、プロセス情報１０１、デザインルール１０２を参照しながら、プログラムをＣＰＵ２０２が実行することによって、フロアプラン結果が算出され、記憶装置２０４に記憶される。フロアプラン結果を参照してＣＰＵ２０２からレイアウト装置２０５を操作してマスクデータを作成する。
【００１７】
以上が、半導体集積回路の製造装置および方法の概略である。
【００１８】
（実施の形態１）
実施の形態１では、許容範囲を用いて、フロアプランを作成する処理について説明する。図３は、実施の形態１で使用する回路例１を示す回路図である。図１の許容範囲設定工程１０３において、図３に示すようなＰＭＯＳ（Positive Metal Oxide Semiconductor）トランジスタＭ１、Ｍ２、Ｍ３からなる回路において、Ｍ１のゲート端子と外部への端子とを接続する経路をＩＮ１，Ｍ１のドレイン端子とＭ２のゲート端子とを接続する経路をＮ＿１２、Ｍ１のドレイン端子とＭ３のゲート端子とを接続する経路をＮ＿１３とする。
【００１９】
それぞれの端子間を接続する経路で回路が特性を満足するために寄生素子に対する許容範囲が表１のように、Ｎ＿１２は寄生抵抗が３．４２〜７．１２［Ω］、寄生容量が０．５７〜９．１５［ｆＦ］、Ｎ＿１３は寄生抵抗が３．４２〜５．２７［Ω］、寄生容量が０．５７〜４．５８［ｆＦ］、ＩＮ１は寄生抵抗が２．５９〜２１．１１［Ω］、寄生容量が０．５７〜１２．０１［ｆＦ］と与えられているとする。
【００２０】
【表１】
2006093631.tif 000003
【００２１】
図４は、実施の形態１で使用する回路例２を示す回路図である。同様に、素子間ばらつきに関しても図４に示すようなＮＭＯＳ（Negative Metal Oxide Semiconductor）トランジスタＭ４、Ｍ５、Ｍ６からなるカレントミラー回路において、回路が特性を満足するための素子間ばらつきに対する許容範囲が表２のようにＭ４とＭ５との間で−４．１〜＋４．７［％］、Ｍ４とＭ６との間で−１．９〜＋２．２［％］等と与えられているとする。
【００２２】
【表２】
2006093631.tif 000004
【００２３】
図１のフロアプラン工程１０４の詳細を図５に示すフローチャートにて説明する。相対配置算出工程４０１において、予め用意されているネットリスト１００の接続情報から回路例１の素子の相対的な配置関係を算出する。図６は、実施の形態１での回路例１（図３）の素子の相対配置関係を示す図であり、図６（Ａ）は、接続関係から得られる素子の相対配置関係であり、図６（Ｂ）は、寄生素子を考慮した素子の相対配置関係である。図３の回路は、図６（Ａ）の配置結果となるが、これに寄生素子に対する許容範囲を条件として付加すると、Ｍ２とＭ３に関しては、Ｎ＿１３の方がＮ＿１２よりも寄生素子に対する許容範囲が小さいので、Ｎ＿１３の配線距離を短くするためＭ２とＭ３の配置位置を交換する。よって図６（Ｂ）のように、Ｍ２よりもＭ３の方がＭ１により近い素子の相対的な配置結果を算出することができる。
【００２４】
また同様に、相対配置算出工程４０１において、予め用意されているネットリスト１００の接続情報から回路例２の素子の相対的な配置関係を算出する。図７は、実施の形態１での回路例２（図４）の素子の相対配置関係を示す図であり、図７（Ａ）は、接続関係から得られる素子の相対配置関係であり、図７（Ｂ）は、素子間ばらつきを考慮した素子の相対配置関係である。図４の回路は、図７（Ａ）のような配置結果になるが、これに素子間ばらつきに対する許容範囲を条件として付加してやると、Ｍ５とＭ６に関しては、Ｍ４−Ｍ６間の方がＭ４−Ｍ５間よりも素子間ばらつきに対する許容範囲が小さいので、Ｍ４−Ｍ６の素子間距離を短くするためＭ５とＭ６の配置位置を交換する。よって図７（Ｂ）のように、Ｍ５よりもＭ６の方がＭ４により近い素子の相対的な配置結果を算出することができる。
【００２５】
図８は、実施の形態１での回路例１の素子の初期配置の一例を示す図である。図５の初期配置工程４０２において、図８に示すように、図６（Ｂ）の相対的な配置結果を基に、素子毎での面積が最小になるような形状でそれぞれの素子を配置する。
【００２６】
ただし、ここで素子間ばらつき（絶対ばらつきと相対ばらつき）の許容範囲が与えられている場合、その素子間ばらつきの許容範囲に応じた素子配置パターンで配置する。
【００２７】
図９は、実施の形態１での絶対ばらつきによる素子配置形状の一例を示す図である。図９（Ａ）は、素子間ばらつきが許容範囲内である場合、図９（Ｂ）、（Ｃ）は、素子間ばらつきが許容範囲外である場合の素子間配置の形状の一例である。図９の抵抗素子Ｒ１を例に素子間ばらつき（素子が１つのみ指定されている場合はその素子の絶対ばらつきとする）について説明する。Ｒ１の絶対ばらつきが、図５のプロセス情報１０１に含まれる絶対ばらつき精度に関する情報から計算して、許容範囲内である場合はそのまま図９（Ａ）のように配置する。
【００２８】
逆に、Ｒ１の絶対ばらつきが許容範囲外である場合、Ｒ１を並列に分割した形状（図９（Ｂ））やＲ１の抵抗幅を大きくした形状（図９（Ｃ））などのように、素子の材質、分割数、形状等の配置パターンをプロセス情報１０１から計算して、絶対ばらつきの許容範囲を満足するように配置する。
【００２９】
図１０は、実施の形態１での相対ばらつきによる素子配置形状の一例を示す図である。図１０（Ａ）は、素子間ばらつきが許容範囲内である場合、図１０（Ｂ）、（Ｃ）は、素子間ばらつきが許容範囲外である場合の素子間配置の形状の一例である。図９と同様に、図１０に示すよう抵抗素子Ｒ２とＲ３からなる回路を例に素子間ばらつき（素子が２つ指定されている場合はそれらの素子間の相対ばらつきとする）について説明する。Ｒ２とＲ３との相対ばらつきが、図５のプロセス情報１０１に含まれる相対ばらつき精度に関する情報から計算して、許容範囲内である場合はそのまま図１０（Ａ）のように配置する。
【００３０】
逆に、Ｒ２とＲ３との相対ばらつきが許容範囲外である場合、Ｒ２とＲ３をそれぞれ並列に分割した形状（図１０（Ｂ））やＲ２とＲ３の抵抗幅をそれぞれ大きくした形状（図１０（Ｃ））などのように、素子の材質、分割数、形状等の配置パターンをプロセス情報１０１から計算して、相対ばらつきの許容範囲を満足するように配置する。
【００３１】
図５の素子選択工程４０３において、レイアウト領域から素子の配置された領域を除いた部分を空き領域とし、その空き領域に隣接する素子の中から１つを、寄生素子及び素子間ばらつきの許容範囲から適切に判定して移動・変形の対象として選択する。
【００３２】
図５の素子移動・変形範囲探索工程４０４において、素子選択工程４０３にて選択された素子に対して、レイアウト領域内で、かつ相対配置算出工程４０１から算出された他の素子との相対的な配置関係を維持できる範囲を探索し、選択された素子の移動・変形許可範囲として与える。
【００３３】
図５の素子移動・変形工程４０５において、素子移動・変形範囲探索工程４０４にて与えられた素子の移動・変形許可範囲内で、隣接している空き領域が減少するように、デザインルール１０２に従って素子の移動または変形（矩形または素子分割が可能な場合は多角形を含む）する。
【００３４】
図５の仮想寄生素子値判定工程４０６において、素子配置位置及び素子形状により生じる仮想寄生素子値の算出方法を図３の回路について図１１を用いて説明する。図１１は、実施の形態１での回路例１の仮想配線長の一例を示す図である。経路Ｎ＿１２において、Ｍ１とＭ２を結ぶ最短距離での配線Ｌ１２とＭ１領域内の配線Ｗ１及びＭ２領域内での配線Ｗ２を加算してＮ＿１２の仮想配線、同様に経路Ｎ＿１３において、Ｍ１とＭ３を結ぶ最短距離での配線Ｌ１３とＭ１領域内の配線Ｗ１及びＭ３領域内での配線Ｗ３を加算してＮ＿１３の仮想配線とする。
【００３５】
また、この仮想配線とプロセス情報１０１とから、各々の経路に対して素子配置位置及び素子配置形状に応じた仮想配線に対する仮想寄生素子値を求める。そして、算出した仮想寄生素子値が各々の経路の寄生素子に対する許容範囲を満足するか判定し、条件を満たさない場合は素子移動・変形工程４０５へ戻って処理を繰り返す。
【００３６】
図５の仮想素子間ばらつき値判定工程４０７において、素子配置位置及び素子形状により生じる仮想素子間ばらつき値の算出方法を図４の回路について図１２を用いて説明する。図１２は、実施の形態１での回路例２の仮想素子間距離の一例を示す図である。Ｍ４の重心Ｃ４とＭ５の重心Ｃ５とを結ぶ素子間距離Ｌ４５と、プロセス情報１０１とから、素子間距離Ｌ４５に対する素子間ばらつき値を、Ｍ４の重心Ｃ４とＭ６の重心Ｃ６とを結ぶ素子間距離Ｌ４６と、プロセス情報１０１とから、素子間距離Ｌ４６に対する素子間ばらつき値を、それぞれ算出する。このように各々の素子間に対して素子配置位置及び素子配置形状に応じた仮想素子間ばらつき値を求める。
【００３７】
そして、算出した仮想素子間ばらつき値が各々の素子間ばらつきに対する許容範囲を満足するかを判定し、条件を満たさない場合は素子移動・変形工程４０５へ戻って処理を繰り返す。
【００３８】
図５の面積判定工程４０８において、素子が配置されている領域（素子間の空き領域を含む）の面積を計算して、この面積が最小となるように４０３〜４０７までの処理を繰り返す。図１３は、実施の形態１での回路例１の素子配置完了の一例を示す図である。４０３〜４０７までの処理を繰り返すことによって、最終的に図１３のような素子の配置位置、配置形状が決定される。
【００３９】
図１の自動配置工程１０５において、フロアプラン工程１０４にて決定された素子の配置位置、配置形状に従い配置する。そして素子配置と同時に、次の配線工程１０６での配線による寄生素子や素子間ばらつきの許容範囲を超えないように、配線に対する制約を自動抽出する。
【００４０】
まず寄生素子においては、図１１の経路Ｎ＿１２について説明すると、素子配置が決定されると、素子Ｍ１領域内での配線Ｗ１と素子Ｍ２領域内での配線Ｗ２も決定されるので、Ｗ１及びＷ２に対する寄生素子値を算出できる。そしてＮ＿１２の寄生素子に対する許容範囲からＷ１及びＷ２での寄生素子値を減算した残りを素子間距離Ｌ１２での配線に対する寄生素子の許容範囲とし、このＬ１２に対する寄生素子値が許容範囲を超えないように、配線幅、配線長、配線層、コンタクト数、コンタクト形状、折れ曲がり回数等を配線制約１０７として設定し配線工程１０６へ与える。経路Ｎ＿１３についても同様である。また、配線やコンタクト等に関してのプロセスばらつきの情報が与えられる場合は、さらにばらつきによる変動分を計算した仮想寄生素子値が許容範囲を超えないように配線幅、配線長、配線層、コンタクト数、コンタクト形状、折れ曲がり回数等を配線制約１０７として設定し配線工程１０６へ与える。
【００４１】
次に素子間ばらつきにおいては、素子間ばらつき（相対ばらつき）に対する許容範囲から素子重心間距離分の仮想素子間ばらつき値を減算する。残りの仮想素子間ばらつき値からそれぞれの素子に接続するノードの各配線層毎での配線幅、配線長、折れ曲がり回数、配線層間の乗換え回数、乗換え時でのコンタクト形状、折れ曲がり回数等を一致させ、配線により素子間ばらつき（相対ばらつき）の許容範囲を超えないように配線制約１０７として設定し配線工程１０６へ与える。
【００４２】
図１の配線工程１０６において、寄生素子に対する許容範囲及び素子間ばらつきに対する許容範囲を超えないように、自動配置工程１０５から与えられた配線制約１０７に従って配線を行う。
【００４３】
以上の手段により、寄生素子または素子間ばらつきによる制約を満たしながら空き領域の少ない面積が最小な素子配置を実現する。
【００４４】
（実施の形態２）
実施の形態２では、既存レイアウトデータから抽出される寄生素子を用いて、寄生素子に対する許容範囲を設定（取得）する手段について図１４を用いて説明する。図１４は、実施の形態２での寄生素子に対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００４５】
同一の回路構成でレイアウト形状の異なるまたは類似の回路構成で予め設計済みの１つまたは複数の既存レイアウトデータ５１１から、寄生素子抽出工程５１２で寄生素子抽出を行い、寄生素子値（寄生抵抗値や寄生容量値等）を得る。次に、この寄生素子値を寄生素子に対する許容範囲として許容範囲設定工程１０３へ与える。
【００４６】
このようにして、許容範囲設定工程１０３は、既存レイアウトデータ５１１から抽出された寄生素子値を用いることが可能となる。
【００４７】
（実施の形態３）
実施の形態３では、各々のノードに寄生素子（寄生抵抗や寄生容量等）を挿入して回路シミュレーションを実施した結果から、寄生素子に対する許容範囲を与える手段について図１５を用いて説明する。図１５は、実施の形態３での寄生素子に対する許容範囲設定手段の動作の一例を示すフローチャートである。実施の形態３では、ネットリスト１００を用いる。
【００４８】
寄生素子付加工程５２１にて、予め用意されているネットリスト１００から、接続関係を抽出し、全てまたは一部のノードまたはノード間に対して、素子端子や外部端子等の異なる端子間に寄生素子（端子間に寄生する抵抗や基板−配線間に寄生する容量等）を、異なるノード間に寄生素子（配線間に寄生する容量等）を付加する。そして寄生素子値変動工程５２２にて、付加した各寄生素子値を増減させる。回路シミュレーション工程５２３にて、回路シミュレーションを実施する。特性判定工程５２４にて回路シミュレーションによる特性結果を判断する。寄生素子値変動工程５２２から特性判定工程５２４を繰り返し行って特性を満足する寄生素子値の範囲を特定し、これを寄生素子に対する許容範囲として許容範囲設定工程１０３へ与える。
【００４９】
このようにして、許容範囲設定工程１０３は、ネットリスト１００から抽出した接続関係を用いて回路シミュレーションすることによって特定した寄生素子値を取得することが可能となる。
【００５０】
（実施の形態４）
実施の形態４では、仮フロアプラン結果から寄生素子を抽出し、寄生素子を含む回路シミュレーションを経て、寄生素子に対する許容範囲を与える手段について図１６を用いて説明する。図１６は、実施の形態４での寄生素子に対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００５１】
仮フロアプラン工程５３１にて、予め用意されているネットリスト１００から、接続関係を抽出し、接続情報のみで仮フロアプランを実施しておおまかに素子を配置する。そして寄生素子抽出工程５３２にて、寄生素子抽出により寄生素子値を得る。寄生素子付加工程５３３にて、寄生素子を該当するノードへ付加する。寄生素子値変動工程５３４にて、寄生素子値を増減させる。回路シミュレーション工程５３５にて、回路シミュレーションを実施する。特性判定工程５３６にて、回路シミュレーションによる特性結果を判断する。寄生素子値変動工程５３４から特性判定工程５３６を繰り返し行って特性を満足する寄生素子値の範囲を特定し、これを寄生素子に対する許容範囲として許容範囲設定工程１０３へ与える。
【００５２】
このようにして、許容範囲設定工程１０３は、ネットリスト１００から抽出した接続関係を用いて回路シミュレーションすることによって特定した寄生素子値を取得することが可能となる。
【００５３】
（実施の形態５）
実施の形態５では、マスクデータを蓄積したデータベースから寄生素子に対する許容範囲を与える手段について図１７を用いて説明する。図１７は、実施の形態５での寄生素子に対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００５４】
マスクデータは、例えば、実施の形態１〜４によって作成されたものとする。作成したマスクデータから、寄生素子抽出工程５４１にて、寄生素子を抽出し、寄生素子値及びレイアウトデータ、回路情報、プロセス情報等と共にデータベース５４２に登録し蓄積していく。次に、プロセス、レイアウト形状、回路トポロジー等毎に分類して、同一回路構成のデータが複数存在する場合には統計処理工程５４３にて統計処理を行い、データベース５４２へ登録を行っていく。
【００５５】
許容範囲検索工程５４４において、設計する回路構成からデータベース５４２を検索し、回路構成が同一であるもの、あるいは回路の一部またはそれらの組み合わせが同一であるもの等の、最も近いデータを寄生素子値に対する許容範囲として許容範囲設定工程１０３へ与える。
【００５６】
このようにして、許容範囲設定工程１０３は、蓄積されたデータベース５４２から最適な寄生素子値を取得することが可能となる。
【００５７】
（実施の形態６）
実施の形態６では、既存レイアウトデータから抽出される素子間距離から、素子間ばらつきに対する許容範囲を与える手段について図１８を用いて説明する。図１８は、実施の形態６での素子ばらつきに対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００５８】
同一でレイアウト形状の異なる回路構成または類似の回路構成で予め設計済みの１つまたは複数の既存レイアウトデータ５５１から、素子間距離抽出工程５５２で素子間距離抽出を行い、プロセス情報１０１と素子間距離とからばらつき値を計算する。次に、このばらつき値を素子間ばらつきに対する許容範囲として許容範囲設定工程１０３へ与える。
【００５９】
このようにして、許容範囲設定工程１０３は、既存レイアウトデータ５５１から抽出された素子間距離を用いることが可能となる。
【００６０】
（実施の形態７）
実施の形態７では、各々の素子サイズまたは素子パラメータ（長さ、幅等）を増減させて回路シミュレーションを実施した結果から、素子間ばらつきに対する許容範囲を与える手段について図１９を用いて説明する。図１９は、実施の形態７での素子ばらつきに対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００６１】
ばらつき値変動工程５６１にて、予め用意されているネットリスト１００から、素子を抽出し、全てまたは一部の素子に対して、素子サイズや素子パラメータを増減させる。回路シミュレーション工程５６２にて、回路シミュレーションを実施する。特性判定工程５６３にて、回路シミュレーションによる特性結果を判断する。ばらつき値変動工程５６１から特性判定工程５６３を繰り返し行って特性を満足するばらつき値の範囲を特定し、これを素子間ばらつき値に対する許容範囲としての許容範囲設定工程１０３へ与える。
【００６２】
このようにして、許容範囲設定工程１０３は、ネットリスト１００から抽出した接続関係を用いて回路シミュレーションすることによって特定した素子間ばらつき値を取得することが可能となる。
【００６３】
（実施の形態８）
実施の形態８では、仮フロアプラン結果から素子間距離を抽出し、素子間ばらつきを含む回路シミュレーションを経て、素子間ばらつきに対する許容範囲を与える手段について図２０を用いて説明する。図２０は、実施の形態８での素子ばらつきに対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００６４】
仮フロアプラン工程５７１にて、予め用意されているネットリスト１００から、接続関係を抽出し、接続情報のみで仮フロアプランを実施しておおまかに素子を配置する。次に、素子間距離抽出工程５７２にて、素子間距離抽出を行い、プロセス情報１０１と素子間距離とからばらつき値を計算する。ばらつき値変動工程５７３にて、素子間ばらつき値を増減させる。回路シミュレーション工程５７４にて、回路シミュレーションを実施する。特性判定工程５７５にて、回路シミュレーションによる特性結果を判断する。ばらつき値変動工程５７３から特性判定工程５７５を繰り返し行って特性を満足する素子間ばらつき値の範囲を特定し、これを素子間ばらつきに対する許容範囲として許容範囲設定工程１０３へ与える。
【００６５】
このようにして、許容範囲設定工程１０３は、ネットリスト１００から抽出した接続関係を用いて回路シミュレーションすることによって特定した素子間ばらつき値を取得することが可能となる。
【００６６】
（実施の形態９）
実施の形態９では、マスクデータを蓄積したデータベースから素子間ばらつきに対する許容範囲を与える手段について図２１を用いて説明する。図２１は、実施の形態９での素子ばらつきに対する許容範囲設定手段の動作の一例を示すフローチャートである。
【００６７】
マスクデータは、例えば、実施の形態１，６〜８によって作成されたものとする。マスクデータから、素子間距離抽出工程５８１にて素子間距離を抽出し、プロセス情報１０１から算出される素子間ばらつき値及びレイアウトデータ、回路情報、プロセス情報等と共にデータベース５８２に登録し蓄積していく。次に、プロセス、レイアウト形状、回路トポロジー等毎にも分類して、同一回路構成のデータが複数存在する場合には統計処理工程５８３にて統計処理を行い、データベース５８２へ登録を行っていく。
【００６８】
次に、許容範囲検索工程５８４において設計する回路構成からデータベース５８２を検索し、回路構成が同一であるもの、あるいは回路の一部またはそれらの組み合わせが同一であるもの等の、最も近いデータを素子間ばらつきに対する許容範囲として許容範囲設定工程１０３へ与える。
【００６９】
このようにして、許容範囲設定工程１０３は、蓄積されたデータベース５８２から最適な素子間距離を取得することが可能となる。
【００７０】
（実施の形態１０）
上記各実施の形態で説明した各工程は、装置においては、それぞれの機能を実施する手段によって実現することが可能である。また、それぞれの機能は、プログラムによって実現することが可能である。各工程は、図２に示すＣＰＵ２０２によって制御されて実施される。プログラムの実行に当たっては、補助記憶装置２０３あるいは記憶装置２０４に記憶されるネットリスト１００、プロセス情報１０１、デザインルール１０２を用いて実行する。また、補助記憶装置２０３あるいは記憶装置２０４等の記憶領域を利用して、データの保存等を行う。
【００７１】
以上説明したように、この半導体集積回路の製造方法および製造装置は、レイアウト設計後で問題となる寄生素子や素子間ばらつきによる特性への影響を、予め回路特性を満たすような寄生素子または素子間ばらつきに対する許容範囲として与え、フロアプラン工程でこの許容範囲内に収まるように素子の相対配置関係や配置位置や配置形状を決定し、さらに配線工程へ配線制約を与える。そしてこの配線制約に従って配線することにより、レイアウト設計後の動作検証において特性を満足するレイアウトを実現することができる。更に、レイアウト領域内での空き領域がなくなるように素子の移動・変形を行うため、面積が最小となる配置を実現できる。
【００７２】
なお、実施の形態２から９において説明した、許容範囲を与える各工程（例えば、寄生素子抽出工程など）は、許容範囲設定工程の中の工程の一部分であっても良いし、図１４から図２１に示したように別の工程としてもよい。
【産業上の利用可能性】
【００７３】
本発明にかかる半導体集積回路の製造装置および製造方法は、寄生素子及び素子間ばらつきに対する制約を満足するフロアプラン工程を有し、特に、アナログレイアウトの自動設計手法またはアナログレイアウトの自動設計装置等として有用である。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施の形態に係るレイアウト自動配置する半導体集積回路の製造装置および製造方法のフローチャート
【図２】本実施の形態に係るレイアウト自動配置を実現する半導体集積回路の製造装置のブロック図
【図３】実施の形態１で使用する回路例１を示す回路図
【図４】実施の形態１で使用する回路例２を示す回路図
【図５】実施の形態１でのフロアプラン工程のフローチャート
【図６】実施の形態１での回路例１の素子の相対配置関係の図
【図７】実施の形態１での回路例２の素子の相対配置関係の図
【図８】実施の形態１での回路例１の素子の初期配置の図
【図９】実施の形態１での絶対ばらつきによる素子配置形状の図
【図１０】実施の形態１での相対ばらつきによる素子配置形状の図
【図１１】実施の形態１での回路例１の仮想配線長の図
【図１２】実施の形態１での回路例２の仮想素子間距離の図
【図１３】実施の形態１での回路例１の素子配置完了の図
【図１４】実施の形態２での寄生素子に対する許容範囲設定手段の動作の一例を示すフローチャート
【図１５】実施の形態３での寄生素子に対する許容範囲設定手段のフローチャート
【図１６】実施の形態４での寄生素子に対する許容範囲設定手段のフローチャート
【図１７】実施の形態５での寄生素子に対する許容範囲設定手段のフローチャート
【図１８】実施の形態６での素子ばらつきに対する許容範囲設定手段のフローチャート
【図１９】実施の形態７での素子ばらつきに対する許容範囲設定手段のフローチャート
【図２０】実施の形態８での素子ばらつきに対する許容範囲設定手段のフローチャート
【図２１】実施の形態９での素子ばらつきに対する許容範囲設定手段のフローチャート
【符号の説明】
【００７５】
１００  ネットリスト
１０１  プロセス情報
１０２  デザインルール
１０３  許容範囲設定工程
１０４  フロアプラン工程
１０５  自動配置工程
１０６  配置工程
１０７  配線制約
２０１  入力装置
２０２  ＣＰＵ
２０３  補助記憶装置
２０４  記憶装置
２０５  レイアウト装置
４０１  相対配置算出工程
４０２  初期配置工程
４０３  素子選択工程
４０４  素子移動・変形範囲探索工程
４０５  素子移動・変形工程
４０６  仮想寄生素子値判定工程
４０７  仮想素子間ばらつき値判定工程
４０８  面積判定工程
５１１、５５１  既存レイアウトデータ
５４２、５８２  データベース
【図１】
2006093631.tif 000005
【図２】
2006093631.tif 000006
【図３】
2006093631.tif 000007
【図４】
2006093631.tif 000008
【図５】
2006093631.tif 000009
【図６】
2006093631.tif 000010
【図７】
2006093631.tif 000011
【図８】
2006093631.tif 000012
【図９】
2006093631.tif 000013
【図１０】
2006093631.tif 000014
【図１１】
2006093631.tif 000015
【図１２】
2006093631.tif 000016
【図１３】
2006093631.tif 000017
【図１４】
2006093631.tif 000018
【図１５】
2006093631.tif 000019
【図１６】
2006093631.tif 000020
【図１７】
2006093631.tif 000021
【図１８】
2006093631.tif 000022
【図１９】
2006093631.tif 000023
【図２０】
2006093631.tif 000024
【図２１】
2006093631.tif 000025