(57)【要約】【課題】半導体集積回路の開発期間を短縮できる。【解決手段】本発明の例に関わる半導体集積回路の設計レイアウト作成方法は、回路パターンを構成するための複数のセルのうち、隣接して配置されることでＯＰＣ危険箇所が発生する組み合わせを抽出し、セルの配置に対する配置制約を生成するステップ（ＳＴ１）と、複数のセルの配置を行い（ＳＴ２）、配置制約に基づいて、隣接して配置された複数のセルの組み合せ内のＯＰＣ危険箇所を抽出するステップ（ＳＴ３）と、ＯＰＣ危険箇所を含むセルの組み合わせ内の少なくとも１つのセルに対して、同一の座標上でフリッピング処理を施して、レイアウトを変更するステップ（ＳＴ４）と、フリッピング処理によって除去されなかったＯＰＣ危険箇所を含むセルの組み合わせに対して、セルの分解処理又は合成処理を施して、レイアウトを変更するステップ（ＳＴ６）とを備える。【選択図】図１
2009086756.tif 000002
【特許請求の範囲】
【請求項１】
回路パターンを構成するための複数のセルのうち、隣接して配置されることでＯＰＣ危険箇所が発生する組み合わせを抽出し、セルの配置に対する配置制約を生成するステップと、
複数のセルの配置を行い、前記配置制約に基づいて、隣接して配置された複数のセルの組み合せ内のＯＰＣ危険箇所を抽出するステップと、
前記ＯＰＣ危険箇所を含むセルの組み合わせ内の少なくとも１つのセルに対し、同一の座標上でフリッピング処理を施して、レイアウトを変更するステップと、
前記フリッピング処理によって除去されなかったＯＰＣ危険箇所を含むセルの組み合わせに対し、セルの分解処理又は合成処理を施して、レイアウトを変更するステップとを具備することを特徴とする半導体集積回路の設計レイアウト作成方法。
【請求項２】
前記配置制約は、複数のセルの組み合わせを生成するステップと、
簡易的なエラーチェックを行ってＯＰＣ危険箇所が発生する可能性のあるセルの組み合わせを抽出するステップと、
前記抽出されたセルの組み合わせに対して、リソグラフィルールに基づいてエラーチェックを行うステップと、
前記リソグラフィルールに基づくエラーチェックによって、ＯＰＣ危険箇所が発生すると判定された組み合わせを制約として設定するステップからなることを特徴とする請求項１に記載の半導体集積回路の設計レイアウト作成方法
【請求項３】
前記フリッピング処理は、ベースとなる図形パターンを示すセルに対して、同一座標上で１８０°回転させる処理、セルの上下を反転させる処理及びセルの左右を反転させる処理を施すことを特徴とする請求項１に記載の半導体集積回路の設計レイアウト作成方法。
【請求項４】
前記セルの分解処理は、前記ＯＰＣ危険箇所を含むセルの論理と同一の論理を、複数のセルで構成するように置き換えることを特徴とする請求項１に記載の半導体集積回路の設計レイアウト作成方法。
【請求項５】
前記セルの合成処理は、前記ＯＰＣ危険箇所を含む複数のセルの論理と同一の論理を１つのセルで構成するように置き換えることを特徴とする請求項１に記載の半導体集積回路の設計レイアウト作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計レイアウト作成方法に係り、特に、メタル配線パターンを示すセルの配置方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の高集積化が要求されているため、半導体集積回路を構成する各素子の微細化が推し進められている。半導体集積回路の微細化に伴い、半導体集積回路を製造するためのマスクパターンと半導体基板上に露光転写されるパターンとの間に発生する光近接効果に起因するずれが顕著となっている。このずれを補正するために、半導体集積回路の設計パターンをマスクパターンに変換する際に、光近接効果補正（ＯＰＣ：Ｏｐｔｉｃａｌ  Ｐｒｏｘｉｍｉｔｙ  Ｃｏｒｒｅｃｔｉｏｎ）が実行される。
【０００３】
しかし、ＯＰＣ処理は素子の図形パターンが必要以上に密集していると補正処理が困難となり、設計パターンと製造される半導体集積回路のパターンとを一致させることができなくなる。その結果、設計パターンからずれたパターンの半導体集積回路が製造され、配線パターンのオープン（断線）やショート（短絡）が発生し、半導体集積回路が動作しないという問題が発生する。
【０００４】
このような問題を防ぐために、配線パターンに対応する複数のセルを配置する設計段階で、あらかじめＯＰＣ処理が困難なパターンを見つけ、それらを削減することが求められている。以下では、ＯＰＣ処理が困難又は不可能なパターンが発生している箇所をＯＰＣ危険箇所と呼ぶ。
【０００５】
ＯＰＣ危険箇所を削減する一例として、ＯＰＣ危険箇所が発生する隣接するセルを移動することで、配線パターン同士の干渉によるＯＰＣ危険箇所の発生を削減するため方法がある。この方法では、設計レイアウト内のセルの配置状況が大きく変化するため、製造される半導体集積回路の動作タイミングが当初設計されたものとは大きく異なってしまう。この発生したタイミングエラーを改善するために、タイミング検証を再度行って、セル配置を修正する必要があり、設計期間が増大する問題が生じる。
【０００６】
また、いかなるセル同士が隣接することになってもＯＰＣ危険箇所が発生しないように、セルのサイズを大きくして、隣接するセル間に十分なマージンを確保することで、パターンを設計する方法もある。しかし、この方法では、マージンのためにセルサイズが大きくなり、半導体集積回路の集積率が低下してしまう。
【０００７】
尚、特許文献１には、レイアウト設計時にセルの図形パターンに対してＯＰＣ処理を行って、ＯＰＣ処理が困難な図形パターンが発生しないようなデザインルールを求める技術が開示されている。
【０００８】
また、特許文献２には、レイアウト設計時に、パターンが変化しないセル内の図形パターンに対してあらかじめＯＰＣ処理を施し、製品毎にパターンが変化する配線パターンに対しては別途ＯＰＣ処理を施して、マスクの開発期間を短縮する技術が開示されている。
【特許文献１】特開２０００−３１４９５４号公報
【特許文献２】特開２００２−５５４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の例は、半導体集積回路の開発期間を短縮できる技術を提案する。
【課題を解決するための手段】
【００１０】
本発明の例に関わる半導体集積回路の設計レイアウト作成方法は、回路パターンを構成するための複数のセルのうち、隣接して配置されることでＯＰＣ危険箇所が発生する組み合わせを抽出し、セルの配置に対する配置制約を生成するステップと、複数のセルの配置を行い、前記配置制約に基づいて、隣接して配置された複数のセルの組み合せ内のＯＰＣ危険箇所を抽出するステップと、前記ＯＰＣ危険箇所を含むセルの組み合わせ内の少なくとも１つのセルに対し、同一の座標上でフリッピング処理を施して、レイアウトを変更するステップと、前記フリッピング処理によって除去されなかったＯＰＣ危険箇所を含むセルの組み合わせに対し、セルの分解処理又は合成処理を施して、レイアウトを変更するステップとを備える。
【発明の効果】
【００１１】
本発明の例によれば、半導体集積回路の開発期間を短縮できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明の例を実施するための形態について詳細に説明する。
【００１３】
１．  概要  
本発明の実施形態は、半導体集積回路のマスクパターンを作成するため設計レイアウト作成方法に係り、特に、メタル配線パターンを示すセルの配置方法に関する。
【００１４】
本発明の実施形態においては、１つのマスクパターンを構成するための複数のセルの配置を行う前に、隣接して配置されることでＯＰＣ危険箇所が発生してしまう組み合わせが抽出され、この組み合わせに基づくセルの配置の制約を生成する。以下では、隣接して配置される複数のセルの組み合わせのことを、隣接配置グループと呼び、また、生成された制約を配置制約と呼ぶ。
【００１５】
そして、複数のセルをデータ平面内に配置した際に、配置制約に違反する隣接配置グループがあった場合には、そのグループを構成しているセルにフリッピング処理（セルの回転又は反転）を施して、隣接配置グループのレイアウトを変更し、ＯＰＣ危険箇所を除去する。
【００１６】
これによって、セルを他の場所に移動させずに配置座標を変更しないで、セルを同一座標上で回転又は反転させるのみにより、セルが隣接することによって発生するＯＰＣ危険箇所を減少させることができる。
【００１７】
また、上記のフリッピング処理によっても、ＯＰＣ危険箇所が除去されない場合には、ＯＰＣ危険箇所を含むグループを構成しているセルに対して、そのセルが示す論理と同一な論理を実現できる他のセルに変換するセルの分解又は合成処理が実行される。これによって、隣接配置グループのレイアウトが変更され、ＯＰＣ危険箇所の除去及び減少を図ることができる。
【００１８】
以上のように、本発明の実施形態によれば、上記のセルのフリッピング処理及び分解・合成処理を行うことによって、隣接するセル間で発生するＯＰＣ危険箇所を除去できる。
【００１９】
このように、半導体集積回路の設計レイアウト作成段階において、ＯＰＣ危険箇所をあらかじめ除去しておくことで、ＯＰＣ処理や動作タイミング検証に割かれる時間を削減でき、マスク及びマスクに基づいて形成される半導体集積回路の開発期間を短縮することができる。
【００２０】
２．  実施形態  
（１）  全体フロー  
図１及び図２を用いて、本発明の実施形態における半導体集積回路の設計レイアウト作成方法の全体フローについて、説明する。
【００２１】
図１は、本発明の実施形態の設計レイアウト作成方法の処理フローを示している。また、図２は、図１に示す処理フローを実施するための設計レイアウト作成装置を示している。設計レイアウト作成装置は、例えば、コンピュータ１、記憶装置２及びシミュレータ３から構成される。コンピュータ1は、制御部１Ａと演算部１Ｂを備え、制御部１Ａは図１に示す処理を行うためのソフトウェアを有し、演算部１Ｂにその処理を実行させる。
【００２２】
以下、図１に示す処理フローについて、説明する。  
はじめに、半導体集積回路を製造するための設計レイアウトデータを構成するための複数のセルに対し、隣接して配置される複数のセルの組み合わせ（隣接配置グループ）が生成される。そして、その複数の隣接配置グループの中から、隣接して配置されることによってＯＰＣ危険箇所が発生するグループが、図２に示すコンピュータ１によって抽出され、それがセルの配置の制約（配置制約）として、記憶装置２に記憶される（ＳＴ１）。以下、このステップＳＴ１を制約生成処理と呼び、この詳細については後述する。  
次に、複数のセルを配置して、所望の半導体集積回路を製造するための設計レイアウトデータが作成される（ＳＴ２）。
【００２３】
続いて、制約生成処理によって生成された配置制約に基づいて、設計レイアウトデータ内に配置されたセルがコンピュータ１によって解析され、隣接して配置されたセル間のＯＰＣ危険箇所を抽出するエラーチェックが実行される（ＳＴ３）。  
そして、配置制約に違反するとして抽出された隣接配置グループ内のセルを回転又は反転させるフリッピング処理が実行され、この隣接配置グループのレイアウトが変更される（ＳＴ４）。これによって、エラーチェック処理によって抽出されたＯＰＣ危険箇所の除去が試みられる。  
フリッピング処理の後、フリッピング処理されたセルを含む隣接配置グループに対して、ＯＰＣ危険箇所のエラーチェック処理が再度実行される（ＳＴ５）。このエラーチャック処理によって、フリッピング処理されたセルにＯＰＣ危険箇所が残っていると判定された隣接配置グループには、セルの分解処理又は合成処理が実行され、この隣接配置グループのレイアウトが変更される（ＳＴ６）。
【００２４】
この分解・合成処理では、ＯＰＣ危険箇所が発生している隣接配置グループ内のセルを、それに対応する論理と同一の論理を実現できるセルへ置き換る処理がなされる。つまり、１つの論理を構成するための１つのセル（論理回路）を、その論理と同一の論理を複数のセル（論理回路）で構成するために、複数のセルに置き換える処理（分解処理）や、複数のセルで構成されていた論理を、それと同一の論理を構成する１つのセルに置き換える処理（合成処理）が実行される。
【００２５】
これによって、フリッピング処理によって除去できなかったＯＰＣ危険箇所が除去される。以下では、このステップＳＴ６を、セル分解・合成処理と呼ぶ。
【００２６】
この後、再度エラーチェック処理が実行され（ＳＴ３）、設計レイアウトデータ内のＯＰＣ危険箇所の数が減少しなくなるまで、上記の処理（ＳＴ３〜ＳＴ６）が繰り返し実行され、最終的な設計レイアウトデータが作成される。
【００２７】
以上のように、本発明の実施形態においては、セルの配置制約に基づいて、エラーチェックがなされ、ＯＰＣ危険箇所の除去が実行される。  
ＯＰＣ危険箇所の除去は、配置制約に違反してＯＰＣ危険箇所が発生する隣接配置グループ内のセルに対し、それが配置された場所を変更せずに同一座標平面内で回転又は反転させるフリッピング処理によって行われる。このように、本実施形態によれば、はじめに配置された座標上で回転・反転させるのみで、セルを移動させることが無いため、設計段階で決定された動作タイミングに大きな悪影響を及ぼすことはない。また、ＯＰＣ危険箇所を除去するために、配線パターンに対応するセル内の図形パターンに対して、ＯＰＣ危険箇所とならないように直接修正するのとは異なり、簡便に行うことができる。  
それゆえ、ＯＰＣ処理によるＯＰＣ危険箇所の除去やセルを配置変更による動作タイミングの再検証などの時間を削減することができ、半導体集積回路を形成するためのマスク及び半導体集積回路の開発期間を短縮することができる。
【００２８】
さらに、本発明の実施形態においては、ＯＰＣ危険箇所が発生する隣接配置グループ内のセルに対して、そのセルの論理と同一の論理を構成する他のセルに分解又は合成処理を行うことでも、ＯＰＣ危険箇所が除去される。これによって、マスクパターンデータを作成するためのパターンの設計段階で、あらかじめＯＰＣ危険箇所を除去することができ、上記のフリッピング処理と同様に、後のＯＰＣ処理やタイミング検証処理によって割かれる時間を削減することができ、マスク及び半導体集積回路の開発期間を短縮することができる。
【００２９】
以上のように、本発明の実施形態によれば、マスクパターンデータ、マスク及び半導体集積回路の開発期間を短縮できる。
【００３０】
以下、図３乃至図８を用いて、上記の図１に示す各ステップについて、より詳細な説明を行う。
【００３１】
（２）  制約生成処理  
以下、図３及び図４を参照して、図１に示す制約生成処理（ＳＴ１）について、より具体的に説明する。
【００３２】
上述のように、ＯＰＣ危険箇所は、隣接して配置されたセル内の図形パターン同士が干渉することによって発生する。制約生成処理においては、ＯＰＣ危険箇所が発生するセルの組み合わせを調べ、その組み合わせを抽出する。
【００３３】
はじめに、図３を用いて、本発明の実施形態で用いられるセルの種類について、説明する。尚、以下では、図３に示されるセル３０を、基本となるセル（以下、ベースセルと呼ぶ）として説明する。
【００３４】
セルは、半導体集積回路に用いられる基本的な論理回路を構成するためのパターンデータであり、１つのセルは、例えば、ＡＮＤ素子、ＮＡＮＤ素子或いはＮＯＴ素子といった、１つの論理回路に対応している。そして、セル内の図形パターンは、上記の論理回路を構成するために、セルが示す図形パターンよりも下層に配置されるＭＯＳトランジスタなどの素子を接続するためのメタル配線パターンを示している。  
本実施形態においては、ベースセル３０に加え、ベースセル３０を反転又は回転させたパターンが用いられる。即ち、図３のセル３１は、ベースセル３０をｘ−ｙ平面内で１８０°回転させたセル（以下、１８０°回転セルと呼ぶ）を示している。又、図３のセル３２は、ベースセル３０を左右反転させたセル（以下、左右反転セルと呼ぶ）を示し、図３のセル３３は、ベースセル３０を上下反転させたセル（以下、上下反転セルと呼ぶ）を示している。このように、本実施形態では、１つのセルは同一座標上に４種類のパターンのいずれかで配置される。そして、これらの４種類のパターンを考慮して、隣接して配置されるセルの組み合わせ（隣接配置グループ）が複数個生成され、生成された隣接配置グループのそれぞれに対して、ＯＰＣ危険箇所の有無がチェックされる。尚、セルの総数がＮ個で、上記のように１つのセルで４種類のパターンを有する場合、ｘ方向に隣接する組み合わせのみを考慮すると、生成される組み合わせの数は、１６×Ｎ×Ｎ個となる。また、ｘ方向及びｙ方向の両方を考慮する場合には、組み合わせの数は、（１６×Ｎ×Ｎ）２個となる。
【００３５】
図４は、コンピュータ１内に備えられる上記の処理を実行するための配置制約生成システムの基本構成を示している。
【００３６】
記憶装置２内のセルライブラリ４０内には、設計レイアウトを作成するために用いられる複数のセルのデータが格納される。コンピュータ１内のセル配置処理手段４１は、セルライブラリ４０に格納されたセル及びその反転・回転セルのすべてに対し、隣接して配置される組み合わせ、つまり、隣接配置グループを生成する。
【００３７】
コンピュータ１内の簡易チェック処理手段４２は、すべての隣接配置グループに対して、ＯＰＣ危険箇所の簡易チェックを行う。簡易チェック処理手段４２は、例えば、セル内の図形パターンのうち、パターンの頂点や他のパターンと隣接する辺などの近接効果の影響を受けやすい箇所にマークを配置し、このマーク数に基づいて、ＯＰＣ危険箇所として抽出すべきか否か判定する。
【００３８】
一例としては、１つの図形パターンに対して、全マーク数が７個以上あれば、そのパターンはＯＰＣ危険箇所が発生すると判定され、ＯＰＣ危険箇所として抽出される。その一方で、１つのパターンに対するマーク数が７個より少なければ、ＯＰＣ危険箇所が発生しないと判定され、この場合は抽出されない。また、２つの隣接する図形パターンに対して、その隣接する部分を中心とした所定の領域内において、全マーク数が５個以上あればＯＰＣ危険箇所として抽出され、全マーク数が５個より少なければＯＰＣ危険箇所として抽出されない。このような処理によって、簡易チェック処理が実行される。尚、簡易チェック処置はこれに限定されず、他の処理方法でもよい。
【００３９】
簡易チェック処理手段４２によってのみ、ＯＰＣ危険箇所のチェックを行ってもよいが、上記の簡易チェック方法では、ＯＰＣ危険箇所のチェックを高速で実行できる反面、精度が低く、実際にはＯＰＣ危険箇所とならない箇所も抽出してしまう。そのため、簡易チェック処理手段４２によりＯＰＣ危険箇所が抽出された隣接配置グループに対して、さらに、実際にＯＰＣ危険箇所となるか否か検証することが好ましい。  
この検証処理は、例えば、リソグラフィルールチェック処理手段４３によって実行される。コンピュータ１内のリソグラフィルールチェック処理手段４３は、簡易チェック処理によりＯＰＣ危険箇所と判定された図形パターンに対して、例えば、図２に示すシミュレータ３によって、所定のリソグラフィルールのもとで予測される図形データ（例えば、ＧＤＳ  Ｓｔｒｅａｍ  Ｆｏｒｍａｔ）を作成し、記憶装置２内のセルライブラリ４４に格納されたＧＤＳデータに基づいて、セル内の図形パターンが実際にＯＰＣ危険箇所となるか否か検証する。  
尚、このリソグラフィルールチェック処理手段４３による検証処理は、精度が高いが処理速度が遅い。しかし、上記の簡易チェック処理手段４２によって、検証すべき箇所があらかじめ抽出されているため、本実施形態においては、すべての隣接配置グループに対して、検証処理のためのシミュレーションを実行する必要がない。それゆえ、本実施形態のように、高速処理できる簡易チェック処理と高精度で処理できる検証処理とを組み合わせて処理することが好ましく、これによって、より効率的にＯＰＣ危険箇所の抽出処理を実行できる。
【００４０】
リソグラフィルールチェック手段４３による検証結果は、コンピュータ１内の配置制約生成手段４５に入力される。配置制約生成手段４５は、上記の検証結果に基づいて、ＯＰＣ危険箇所が発生する隣接配置グループを抽出し、その抽出結果が配置制約情報として、セルライブラリ４０に格納される。
【００４１】
以上のように、制約生成処理によって、隣接して配置することでＯＰＣ危険箇所が発生するパターンが抽出され、配置制約情報が生成される。尚、図３に示すシステムは、ソフトウェアとして、図２に示すコンピュータ１の制御部１Ａ又は記憶装置２に格納されて、上記の処理が、演算部１Ｂ及びシミュレータ３によって行われてもよい。
【００４２】
（３）  セル配置処理・エラーチェック処理  
セル配置処理（ＳＴ２）において、所望の半導体集積回路の配線パターンが得られるように、複数のセルが、ｘ−ｙ平面座標上に配置され、設計レイアウトデータが作成される。そして、配置された複数のセルに対して、エラーチェック処理（ＳＴ３）が行われる。
【００４３】
エラーチェック処理（ＳＴ３）においては、制約生成処理（ＳＴ１）によって得られた配置制約情報を反映させて、図２に示すコンピュータ１が、ＯＰＣ危険箇所が発生する隣接配置グループを抽出する。そして、ＯＰＣ危険箇所が抽出された隣接配置グループ或いはこのグループ内の１つのセルがマークされ、例えば、これに対応するｘ−ｙ座標が、コンピュータ２に認識される。
【００４４】
本実施形態においては、制約生成処理（ＳＴ１）でリソグラフィルールチェック処理が実行されているので、このステップ（ＳＴ３）では、例えば、シミュレータ３を用いるような詳細なルールチェックを行う必要がない。それゆえ、このエラーチェック処理（ＳＴ３）では、配置制約情報に基づいて、セルの配置パターンをチェックするだけでよく、本実施形態によれば、ＯＰＣ危険箇所のマーク（抽出）を高速で行うことができる。
【００４５】
（４）  フリッピング処理  
図５及び図６を用いて、フリッピング処理について、説明する。  
フリッピング処理（ＳＴ４）においては、上記のエラーチェック処理（ＳＴ３）によりマークされた隣接配置グループを構成するセルの一方或いは２つ以上を、図３に示すようなパターンにフリッピング（回転・反転）させる。これによって、セルを移動させずに、はじめに配置された座標上で、そのセルを含む隣接配置グループのレイアウトが変更され、隣接配置グループ内のＯＰＣ危険箇所が除去される。
【００４６】
フリッピング処理（ＳＴ４）は、例えば、逐次改善法や焼きなまし法、タブーサーチといった最適化アルゴリズムを用いて、実行される。最適化アルゴリズムを用いて、フリッピング処理を行うことで、ＯＰＣ危険箇所が少なく、ＯＰＣ危険箇所が発生する隣接配置パターンのセルのすべてのフリッピングパターンをチェックすることも可能であるし、ＯＰＣ危険箇所が多く、すべてのフリッピングパターンをチェックすることが困難となる場合においても対処が可能である。
【００４７】
以下、逐次改善法を用いたフリッピング処理の処理フローについて、図５を用いて説明する。  
図５に示すように、はじめに、ＯＰＣ危険箇所が発生するすべての隣接配置グループ内から、ＯＰＣ危険箇所が発生する隣接配置グループの１つが、コンピュータ２によってランダムに選択される（ＳＴ４１）。次に、ステップＳＴ４１で選択された隣接配置グループ中で、１つのセルが採用しうるフリッピングパターンの１つが、コンピュータ２によってランダムに選択され、隣接配置グループのレイアウトが変更される（ＳＴ４２）。
【００４８】
続いて、フリッピング処理後のセルに対して、エラーチェックが実行され、ＯＰＣ危険箇所の数が減少するか否か判定される（ＳＴ４３）。尚、このステップでの、エラーチェックは、例えば、エラーチェック処理ＳＴ３と同様に、セルライブラリ４０に格納された配置制約情報を対応させて、フリッピングパターンを用いた組み合わせの適否を判定してもよいし、上述した簡易チェックにより行ってもよい。
【００４９】
その後、上記のようなフリッピング処理により、ＯＰＣ危険箇所が減少すると判定された場合には、配置時のパターンのセルからフリッピングされたセルに変更される。一方、ＯＰＣ危険箇所が減少しないと判定された場合には、ステップＳＴ４１〜ＳＴ４３の処理が、ＯＰＣ危険箇所の数が減少しなくなるまで、繰り返し実行される。このような処理が、設計レイアウトデータ内のすべての隣接配置グループに対して行われる。
【００５０】
ここで、特にステップＳＴ４１〜ＳＴ４３に係る処理について、図６を参照して、より具体的に説明する。尚、説明の簡単化のため、ここでは、ｘ方向の隣接配置グループ内の１つのセルをフリッピング処理する場合について説明する。  
図６（ａ）に示すように、セル６０，６４，６５がｘ方向に隣接して配置されている。そして、セル６０とセル６４において、配線パターンを示す図形パターン６６と図形パターン６８との間に、ＯＰＣ危険箇所Ｚが発生している。同様に、セル６０とセル６５おいて、図形パターン６７と図形パターン６９との間にＯＰＣ危険箇所Ｚが発生している。そして、このＯＰＣ危険箇所を除去するために、例えば、セル６０に対して、フリッピング処理が施される。
【００５１】
図６（ｂ）のセル６１は、図６（ａ）のセル６０がフリッピング処理されて左右反転された左右反転パターンを示している。この処理では、図形パターン６７と図形パターン６８との間、また、図形パターン６６と図形パターン６９との間に、ＯＰＣ危険箇所Ｚが発生している。つまり、セル６０に対してフリッピング処理を施しても、この隣接配置グループでは、図６（ａ）に示すパターンと同様にＯＰＣ危険箇所が２箇所発生しており、ＯＰＣ危険箇所の数が減少していない。それゆえ、図６に示す例では、図６（ｂ）の左右反転パターンによる修正は却下される。
【００５２】
図６（ｃ）のセル６２は、図６（ａ）のセル６０が１８０回転された１８０回転パターンを示している。このフリッピング処理では、図形パターン６６と図形パターン６９との間にＯＰＣ危険箇所Ｚが発生し、セル６２とセル６４の間には、ＯＰＣ危険箇所が発生していない。よって、このフリッピング処理された隣接配置グループによれば、ＯＰＣ危険箇所Ｚは１箇所であるため、その数が減少する。それゆえ、図６に示す例では、図６（ｃ）の１８０°回転パターンによる修正が採用される。
【００５３】
また、図６（ｄ）のセル６３は、図６（ａ）のセル６０が上下反転されたパターンを示している。このようなセルのパターンにおいても、図６（ｃ）と同様に、グループ内のＯＰＣ危険箇所が１箇所のみで、このフリッピング処理によれば、ＯＰＣ危険箇所の数が減少する。それゆえ、図６（ｄ）に示すパターンも採用可能であるが、上述のように、図５に示す逐次改善法では、ランダムで隣接配置グループやフリッピングパターンが選択されるため、図６（ｃ）または図６（ｄ）のうち、コンピュータ２により先に選択されたいずれかのフリッピングパターンが採用されることとなる。  
但し、本発明の実施形態においては、説明の簡単化のため、ｘ方向に隣接するパターン及びそれらのＯＰＣ危険箇所の除去について説明したが、上述のようにセルがｘ−ｙ平面に配置される場合、ｙ方向にもセルが隣接して配置され、ｙ方向に隣接するセル間でもＯＰＣ危険箇所は発生する。それゆえ、ｘ方向の隣接配置グループのＯＰＣ危険箇所の数だけでなく、セル６２，６３のｙ方向に隣接して配置されるセル（図示せず）とのＯＰＣ危険箇所の数もさらに考慮に加えて、図６（ｃ）又は図６（ｄ）のうちどちらを採用するか判定することが、より好ましい。尚、本実施形態では、ｘ方向に隣接配置されたパターンのＯＰＣ危険箇所の除去を行った後、ｙ方向に隣接配置されたパターンのＯＰＣ危険箇所の検証・除去を行う例について述べたが、それに限定されず、ｙ方向の隣接配置パターンのＯＰＣ危険箇所を除去した後に、ｘ方向の隣接配置パターンのＯＰＣ危険箇所の除去を行ってもよい。
【００５４】
以上のようなステップＳＴ４１〜ＳＴ４４が、ＯＰＣ危険箇所が発生する複数の隣接配置グループに対してそれぞれ実行され、設計レイアウトデータ内のＯＰＣ危険箇所の数が減少しなくなるまで、繰り返し実行される。
【００５５】
したがって、本発明の実施形態によれば、セルを回転・反転させるフリッピング処理によって、セルの配置された座標を変更することなく、隣接配置グループのレイアウトが変更される。これによって、隣接するセル間で発生するＯＰＣ危険箇所を除去し、設計レイアウトデータ内のＯＰＣ危険箇所を減少させることができる。
【００５６】
（５）  セル分解・合成処理  
エラーチェック処理（ＳＴ５）を行った後、上記のフリッピング処理（ＳＴ４）を実行してもＯＰＣ危険箇所が残存した隣接配置グループに対し、例えば、セルの分解処理又は合成処理を行うことで、隣接配置グループ内のレイアウトを変更し、ＯＰＣ危険箇所が除去される。  
ここで、本発明の実施形態で述べるセルの分解処理とは、１つの論理回路（基本回路）を実現する１つのセルを、その論理と同一の論理を実現する複数のセル（論理回路）の組み合わせに置き換えることである。  
また、本発明の実施形態で述べるセルの合成処理とは、１つの論理を実現する複数のセル（論理回路）を、その論理と同一の論理を実現する１つのセル（論理回路）に置き換えることである。
【００５７】
このセルの分解・合成処理について、図７を参照して、より具体的に説明する。
【００５８】
図７に示す例では、セル７０とセル７１が隣接して配置され、はじめに、セル７０，７１内の図形パターン間にＯＰＣ危険箇所が発生する場合を例に考える。このＯＰＣ危険箇所をセルの分解処理によって除去する場合、隣接配置グループのうちいずれか一方のセルが、それが示す論理と同一の論理を実現する複数のセルへ分解される。  
以下では、セル７１が、３入力ＡＮＤ素子７３を構成するセルである場合を例に、説明する。３入力ＡＮＤ素子は、２つの２入力ＡＮＤ素子から構成することもでき、一方の２入力ＡＮＤ素子の出力と他方の２入力ＡＮＤ素子の入力の１つとを接続した回路で同一の論理を実現できる。それゆえ、３入力ＡＮＤ素子７３を構成するセル７１が、２入力ＡＮＤ素子７５Ａ，７５Ｂをそれぞれ構成するセル７４Ａ，７４Ｂに分解されることで、同一の論理が実現され、これによって、セル７０とセル７１との間に発生するＯＰＣ危険箇所が除去される。
【００５９】
また、３入力ＡＮＤ素子７３の論理は、１つの３入力ＮＡＮＤ素子とその出力にインバータ素子（ＮＯＴ素子）を接続した回路と同一の論理である。それゆえ、３入力ＡＮＤ素子７３を構成するセル７１は、３入力ＮＡＮＤ素子７８を構成するセル７６とインバータ素子７９を構成するセル７７とに分解することができる。これによって、セル７０とセル７１との間に発生するＯＰＣ危険箇所は除去される。
【００６０】
セルの合成処理によって、ＯＰＣ危険箇所を除去する場合は、以下のようになる。例えば、３入力ＮＡＮＤ素子を構成するセル７６とインバータ素子を構成するセル７７によって構成された３入力ＡＮＤ素子において、セル７０とセル７４Ａとの間でＯＰＣ危険処理が発生する場合を考える。この場合、２つのセル７４Ａ，７４Ｂを、３入力ＡＮＤ素子７３を構成する１つのセル７１に合成することで、そのＯＰＣ危険箇所が除去される。同様に、２つの２入力ＡＮＤ素子をそれぞれ構成するセル７４Ａ，７４Ｂを組み合わせて１つの３入力ＡＮＤ素子を構成する場合においては、それと同一の論理を実現する３入力ＡＮＤ素子７３を構成する１つのセル７１に合成することによって、ＯＰＣ危険箇所が除去される。
【００６１】
このようなセルの分解・合成処理によって、フリッピング処理によって除去されなかったＯＰＣ危険箇所が除去される。
【００６２】
以下、図８を用いて、セルの分解・合成処理の処理フローについて説明する。尚、本実施形態において、図８に示す合成・分解処理の処理フローは、フリッピング処理と同様に、逐次改善法を用いた例を述べるが、これに限定されず、他の手法を用いてもよい。
【００６３】
図８に示すように、はじめに、ＯＰＣ危険箇所が発生する隣接配置グループの１つが、全てのＯＰＣ危険箇所が発生する隣接配置グループ内から、図２に示すコンピュータ２によってランダムに選択される（ＳＴ６１）。次に、選択されたグループ内の１つセルに対して複数の同一の論理を構成する分解パターンの中から、１つの分解パターンが、コンピュータ２によってランダムに選択され、隣接配置グループのレイアウトが変更される（ＳＴ６２）。尚、合成処理の場合には、ＯＰＣ危険箇所の除去のために合成される複数のセルと同一の論理を構成する合成パターンの中から、１つの合成パターンがランダムに選択される。そして、分解・合成処理後のセルに対して、エラーチェックが実行され、ＯＰＣ危険箇所の数が減少するか否か判定される（ＳＴ６３）。尚、このステップでの、エラーチェックは、例えば、上述した簡易チェックにより行ってもよいし、配置制約情報を対応させて、分解・合成パターンを用いた際の隣接配置グループの適否を判定してもよい。その後、上記のようなセルの分解・合成処理により、ＯＰＣ危険箇所が減少すると判定された場合には、配置されていたセルから分解パターンもしくは合成パターンのセルに変更される。一方、ＯＰＣ危険箇所が減少しないと判定された場合には、ステップＳＴ６１〜ＳＴ６３の処理が繰り返し実行される。
【００６４】
以上のような処理ＳＴ６１〜ＳＴ６４が、ＯＰＣ危険箇所が発生する複数の隣接配置グループに対してそれぞれ実行され、設計レイアウトデータ内のＯＰＣ危険箇所の数が減少しなくなるまで、繰り返し実行される。
【００６５】
したがって、セルの分解又は合成処理によって、１つ又は複数のセルにより構成される論理を変更せずに、隣接したセル間で発生するＯＰＣ危険箇所を除去でき、設計レイアウトデータ内のＯＰＣ危険箇所を減少させることができる。
【００６６】
（６）  まとめ  
以上のように、本発明の実施形態では、隣接して配置されるセルの組み合わせ（隣接配置グループ）において、隣接して配置されることによってＯＰＣ危険箇所が発生する組み合わせを、セルの配置制約として生成し、これに基づいて、ＯＰＣ危険箇所の抽出及び除去が実行される。  
ＯＰＣ危険箇所の除去は、ＯＰＣ危険箇所を含むセルを、配置された座標を移動させずに、同一座標上で回転又は反転させるフリッピング処理によって行われる。
【００６７】
一般に、半導体集積回路の動作タイミングを決定するクリティカルパスは、その長さや形状が変化することに伴い電気的特性も変化し、これは設計された動作タイミングの変化にもつながる。そのため、従来のように、セルを他の座標に移動させてＯＰＣ危険箇所を除外する方法では、その移動によって、セルが示すメタル配線に接続されるクリティカルパスの配線長の増大等が発生し、回路の動作タイミングに与える悪影響が大きかった。
【００６８】
しかし、本発明の実施形態のようなフリッピング処理によれば、セルを移動させることは無く、はじめに配置された座標上で回転・反転させるのみであるため、回路の設計段階で決定された動作タイミングに大きな悪影響を及ぼすことはない。また、このフリッピング処理では、ＯＰＣ期間箇所の除去のため隣接配置グループ内のレイアウトを変更するのみであり、セルの移動のよるＯＰＣ危険箇所の除去のように、設計レイアウトデータの全体のレイアウトに対して大きな影響を及ぼすものではない。
【００６９】
さらには、セルを同一座標上で回転・反転させるのみでよく、セル内の配線パターンに対応する図形パターンを直接修正してＯＰＣ危険箇所を除去する場合と比較すると簡便に行うことができる。  
それゆえ、本発明の実施形態のフリッピング処理によれば、設計レイアウトデータ内のＯＰＣ危険箇所を除去・減少させることができ、半導体集積回路を形成するためのマスク及び半導体集積回路の開発期間を短縮することができる。
【００７０】
さらに、上記のフリッピング処理よってもＯＰＣ危険箇所が除去されない場合には、本実施形態では、ＯＰＣ危険箇所が発生する隣接配置グループに対して、そのグループ内のセルが構成する論理と同一の論理を構成する他のセルに置き換える分解処理又は合成処理を行うことで、ＯＰＣ危険箇所が除去される。
【００７１】
これによって、設計レイアウトデータの作成時に、ＯＰＣ危険箇所を簡便に除去・減少することができ、上記のフリッピング処理と同様に、後のＯＰＣ処理やタイミング検証処理によって割かれる時間を削減でき、マスク及び半導体集積回路の開発期間を短縮することができる。
【００７２】
また、フリッピング処理及び分解・合成処理によれば、セルを移動させて、隣接するセル間のＯＰＣ危険箇所が解消されるのに十分な間隔を確保する方法や、セルのサイズを大きくすることで、セル間でＯＰＣ危険箇所が発生しない十分なマージンを確保する方法とは異なり、セルの占有面積が大きくならず、半導体集積回路の集積率が低下するのを抑制できる。
【００７３】
以上のように、本発明の実施形態によれば、マスクパターンの設計段階においてＯＰＣ危険箇所の発生が少ない設計レイアウトを作成することで、マスクパターンデータ、そのデータによって作製されるマスク及び半導体集積回路の開発期間を短縮できる。
【００７４】
３．  変形例  
上述の本発明の実施形態においては、フリッピング処理と分解・合成処理の両方を具備する設計レイアウト作成方法に関する処理フローについて説明した。しかし、それに限定されず、どちらか一方の処理を具備することで、隣接して配置されたセル間のＯＰＣ危険箇所を除去する処理フローでもよい。
【００７５】
即ち、セルの配置処理を行った後、例えば、ＯＰＣ危険箇所が発生した隣接配置パターンに対し、フリッピング処理を実行して、そのフリッピング処理によってのみ、ＯＰＣ危険箇所を除去する処理フローでもよい。
【００７６】
同様に、セルの配置処理を行った後に、フリッピング処理を行わず、セルの分解・合成処理によってのみＯＰＣ危険箇所を除去する処理フローでもよい。
【００７７】
以上のような本発明の変形例によっても、本発明の実施形態と同様の効果が得られる。
【００７８】
４．  その他  
本発明の実施形態は、例えば、マスク製造方法、さらに、半導体集積回路の製造方法に適用される。即ち、本発明の実施形態により作成される設計レイアウトデータに基づき、半導体集積回路のマスクパターンデータが作成される。そして、そのマスクパターンデータに基づいて、ブランクス基板上にマスクパターン描画し、マスクが作製される。また、そのマスクを用いて、半導体ウェハに対して、拡散層の形成、ポリシリコン層、絶縁層及びメタル層の形成及びエッチングを行って、半導体集積回路が製造される。
【００７９】
本発明の実施形態によれば、半導体集積回路の開発期間を短縮できる。
【００８０】
本発明の例は、上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施形態の設計レイアウト作成方法を示すステップ図。
【図２】設計レイアウトを作成するための装置の構成例を示すブロック図。
【図３】本発明の実施形態に用いられるセルの例を示す平面図。
【図４】制約生成処理を実施するためのシステムの構成例を示すブロック図。
【図５】セルのフリッピング処理の処理フローを説明するための模式図。
【図６】セルのフリッピング処理の一例を説明するためのステップ図。
【図７】セルの分解・合成処理の一例を説明するための模式図。
【図８】セルの分解・合成処理の処理フローの一例を示すステップ図。
【符号の説明】
【００８２】
１：コンピュータ、１Ａ：制御部、１Ｂ：演算部、２：記憶装置、３：シミュレータ、３０〜３３，６０〜６６，７０，７１，７４Ａ，７４Ｂ、７６，７７：セル、４０：セルライブラリ、４１：セル配置手段、４２：簡易チェック処理手段、４３：リソグラフィルールチェック処理手段、４４：ＧＤＳライブラリ、４５：配置制約生成手段、６７〜６９：図形パターン、７３：３入力ＡＮＤ素子、７５Ａ，７５Ｂ：２入力ＡＮＤ素子，７８：３入力ＮＡＮＤ素子、７９：インバータ素子（ＮＯＴ素子）。
【図１】
2009086756.tif 000003
【図２】
2009086756.tif 000004
【図３】
2009086756.tif 000005
【図４】
2009086756.tif 000006
【図５】
2009086756.tif 000007
【図６】
2009086756.tif 000008
【図７】
2009086756.tif 000009
【図８】
2009086756.tif 000010