(57)【要約】  【課題】  階層構造を有するレイアウトパターンデータに対して、フラットなレイアウトパターンデータの最適化の結果、新たに挿入されたセルに、階層構造を示すインスタンスを一義的に付与できるセルインスタンス生成方法を提供する。  【解決手段】  ステップＳ１においてる階層構造展開処理により、階層構造を持つレイアウトパターンデータ１００が、フラットなレイアウトパターンデータ１０１に展開される。ステップＳ２における最適化処理により、フラットなレイアウトパターンデータ（最適化済）１０２が生成される。この処理によって、新規セルが挿入される。ステップＳ３における階層構造インスタンス付与処理により、新規挿入セルに対して、階層構造を持つインスタンスが付与され階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）１０３が生成される。【選択図】  図１
2006209432.tif 000002
【特許請求の範囲】
【請求項１】
階層構造を有するレイアウトパターンデータをセルに展開して、フラットなレイアウトパターンデータを得る展開工程と、
前記展開工程において得られたフラットなレイアウトパターンデータに対して最適化処理を施す最適化工程と、
前記最適化工程において最適化されたフラットなレイアウトパターンデータに新たに含まれる第１のセルに対して、階層構造を示すインスタンスを付与する付与工程とを含み、
前記付与工程では、前記第１のセルが接続される入力側の第２のセルと出力側の第３のセルのいずれか一方のセルの階層構造を示すインスタンスを引用して、前記第１のセルのインスタンスを生成するセルインスタンス生成方法。
【請求項２】
前記付与工程では、前記第２のセルと前記第３のセルが複数個存在する場合、前記複数個のセルのインスタンスの内、アルファベット順、数字順、及び、文字コード順の内の少なくとも１つの順序に従って選択されたインスタンスを引用して、前記第１のセルのインスタンスを生成する、請求項１記載のセルインスタンス生成方法。
【請求項３】
前記付与工程では、前記第２のセルと前記第３のセルが複数個存在する場合、前記複数個のセルの内、セルの個数の大小に基づいて選択されたセルのインスタンスを引用して、前記第１のセルのインスタンスを生成する、請求項１記載のセルインスタンス生成方法。
【請求項４】
前記付与工程では、前記第２のセルと前記第３のセルが複数個存在する場合、前記複数個のセルの内、前記第１のセルと前記複数個のセルとの間の配線長と接続容量の内の少なくとも１つに基づいて選択されたセルのインスタンスを引用して、前記第１のセルのインスタンスを生成する、請求項１記載のセルインスタンス生成方法。
【請求項５】
前記付与工程では、前記第１のセルが数珠繋ぎに複数個存在する場合、予め定められた割合で上流側セルと下流側セルに前記複数個のセルを分割し、前記上流側セルに対しては、前記第２のセルのインスタンスを引用し、前記下流側セルに対しては、前記第３のセルのインスタンスを引用して、前記第１のセルのインスタンスを生成する、請求項１記載のセルインスタンス生成方法。
【請求項６】
前記付与工程では、前記第２のセルが階層構造を示すインスタンスを有していない場合、さらに上流側のセルを前記第２のセルとする、請求項１記載のセルインスタンス生成方法。
【請求項７】
前記付与工程では、前記第３のセルが階層構造を示すインスタンスを有していない場合、さらに下流側のセルを前記第３のセルとする、請求項１記載のセルインスタンス生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウトパターンデータに対してセルの最適化を自動的に行なうＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムに係わり、セル単位での階層構造を抽出するために、最適化されたセルに階層構造を示すインスタンスを付与するセルインスタンス生成方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の大規模化に対応するため、階層構造を有するレイアウトパターンデータから、回路接続データを階層的に抽出する方法が広く用いられている。  従来技術として、特許文献１は、セル単位での階層構造を抽出する方法を開示している。特許文献１によれば、セル単位での階層構造を抽出する際には、階層的構造を有するレイアウトパターンデータをセルに全展開してフラットなレイアウトパターンとし、フラットなレイアウトパターンからフラットな回路接続データを抽出する。そして、フラットな回路接続データから、レイアウトパターンデータの階層構造に対応させて、部分回路を有する初期の階層構造を生成する。
【０００３】
さらに、回路接続データ中の各素子に対応付けられている図形と、レイアウトパターンデータの基準層の図形とを比較して、各素子を回路接続データの部分回路に割付ける。
【０００４】
また、各部分回路に対して外部接続ネットを特定するとともに、各部分回路相互の同一性を判定し、同一性がある場合には、一つを代表部分回路とし他をこの代表部分回路で置換えることで、セル単位での階層構造を抽出する。
【０００５】
図１１は、従来の階層構造を有する回路接続データ抽出方法のフローチャートであり、前記特許文献１に開示されたものである。
【０００６】
図１１を参照して、従来技術を説明する。
【０００７】
図１１に示す処理１において、階層構造を有する半導体集積回路のレイアウトパターンデータを、セルに全展開して、フラットなレイアウトパターンデータを得る。
【０００８】
処理２において、全展開されたレイアウトパターンデータから、素子及び素子間の接続情報を抽出して、レイアウトパターンデータが表現しているフラットな回路接続データを得る。ここで抽出された回路接続データとレイアウトパターンデータとは、相互に対応付けられて回路接続ファイルに格納される。
【０００９】
処理３において、部分回路を有する回路接続データの初期の階層構造（部分回路相互の参照関係を示す構造）を生成する。この場合、生成される回路接続データの階層構造は、元のレイアウトパターンデータの階層構造において、セル識別名をインスタンス識別名で置換した時に得られるような階層構造であり、ここでは便宜上、元の階層構造におけるインスタンスを部分回路として用いる。また、各部分回路には、元の階層構造におけるセル識別名を付加情報として持たせておく。
【００１０】
処理４において、階層構造を有するレイアウトパターンデータの基準層をセルに全展開し、基準層の図形データを作成する。（ここで作成した基準層の図形データは、次の処理５で回路接続データの素子を各部分回路に割り付ける時に利用する。）ここで、基準層の個々の図形データ（レイアウトパターンデータと同義）に、元のレイアウトパターンデータの階層構造に於いて、その図形が所属していたインスタンス識別名を付加情報として与える。
【００１１】
処理５において、処理２で得られたフラットな回路接続データ中の各素子を、処理３で生成した初期の階層構造を成す各部分回路に割り付ける。
【００１２】
処理６において、各部分回路の外部接続ネットを特定する。
【００１３】
処理７において、処理６までの工程で得られた回路接続データ中に存在する部分回路相互の冗長部分を除去する。
【００１４】
これらの処理を行なうことで、階層的に回路接続データを抽出し、階層構造を示すネットリストを抽出することができる。
【００１５】
以上説明したように、従来の方法においては、階層構造を抽出するために、（ａ）初期の階層構造を生成する必要がある、（ｂ）フラットな回路接続データ中の各素子に対応付けられている図形と、全展開された基準層の図形とを比較する必要がある。その結果、階層構造を抽出するための処理量が増加する。また、フラットなレイアウトパターンデータに対して最適化処理を施した場合に、最適化されたセルや追加されたセルに対して、インスタンスを付加することができない。このため、フラットなレイアウトデータから生成されたネットリストを用いて、階層構造単位の面積の算定や、階層構造単位の消費電力の解析を行うことが困難である。
【特許文献１】特開平７−１２１５９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
そこで本発明は、階層構造を有するレイアウトパターンデータに対して、フラットなレイアウトパターンデータの最適化の結果、新たに挿入されたセルに、階層構造を示すインスタンスを的確に、かつ、一義的に付与できるセルインスタンス生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
請求項１記載のセルインスタンス生成方法は、階層構造を有するレイアウトパターンデータをセルに展開して、フラットなレイアウトパターンデータを得る展開工程と、展開工程において得られたフラットなレイアウトパターンデータに対して最適化処理を施す最適化工程と、最適化工程において最適化されたフラットなレイアウトパターンデータに新たに含まれる第１のセルに対して、階層構造を示すインスタンスを付与する付与工程とを含み、付与工程では、第１のセルが接続される入力側の第２のセルと出力側の第３のセルのいずれか一方のセルの階層構造を示すインスタンスを引用して、第１のセルのインスタンスを生成する。
【００１８】
この方法によれば、フラットなレイアウトパターンデータに最適化処理を行ない、新たに生成されたセルに対して、セルが接続される入力側または出力側のセルのインスタンスを引用して、階層構造を示すインスタンスを付与することが可能となる。その結果、フラットなレイアウトパターンデータから生成されたネットリストのインスタンスを指定することで、階層構造の単位で、すべてのセルを抽出可能になる。
【００１９】
請求項２記載のセルインスタンス生成方法では、付与工程において、第２のセルと第３のセルが複数個存在する場合、複数個のセルのインスタンスの内、アルファベット順、数字順、及び、文字コード順の内の少なくとも１つの順序に従って選択されたインスタンスを引用して、第１のセルのインスタンスを生成する。
【００２０】
この方法によれば、フラットなレイアウトパターンデータの最適化処理に伴い新たに生成されたセルに対して、引用すべき入力側または出力側のセルを、アルファベット順、数字順、及び、文字コード順など、簡単なルールに従って選択し、階層構造を示すインスタンスを新たに生成されたセルに付与することが可能となる。
【００２１】
請求項３記載のセルインスタンス生成方法では、付与工程において、第２のセルと第３のセルが複数個存在する場合、複数個のセルの内、セルの個数の大小に基づいて選択されたセルのインスタンスを引用して、第１のセルのインスタンスを生成する。
【００２２】
この方法によれば、新たに生成されたセルに対して、引用すべき入力側または出力側のセルのうち、個数の多い（または少ない）セルを引用して、インスタンスを生成することが出来る。
【００２３】
請求項４記載のセルインスタンス生成方法では、付与工程において、第２のセルと第３のセルが複数個存在する場合、複数個のセルの内、第１のセルと複数個のセルとの間の配線長と接続容量の内の少なくとも１つに基づいて選択されたセルのインスタンスを引用して、第１のセルのインスタンスを生成する。
【００２４】
この方法によれば、新たに生成されたセルに対して、引用すべき入力側または出力側のセルのうち、当該セルとの間の配線が短い（または長い）セル、あるいは、当該セルとの間の接続容量が小さい（または大きい）セルを引用して、インスタンスを生成することが出来る。
【００２５】
請求項５記載のセルインスタンス生成方法では、付与工程において、第１のセルが数珠繋ぎに複数個存在する場合、予め定められた割合で上流側セルと下流側セルに複数個のセルを分割し、上流側セルに対しては、第２のセルのインスタンスを引用し、下流側セルに対しては、第３のセルのインスタンスを引用して、第１のセルのインスタンスを生成する。
【００２６】
この方法によれば、新たに生成された数珠繋ぎのセルを予め定められた割合で分割し、一方は入力側（上流側）のセルを引用し、他方は出力側（下流側）のセルを引用して、新たに生成された数珠繋ぎのすべてのセルのインスタンスを一義的に付与することが出来る。
【発明の効果】
【００２７】
本発明によれば、階層構造を有するレイアウトパターンデータに対して、フラットなレイアウトパターンデータの最適化の結果、新たに挿入されたセルに、階層構造を示すインスタンスを的確に、かつ、一義的に付与できる。
【発明を実施するための最良の形態】
【００２８】
以下図面を参照しながら、本発明の実施の形態を説明する。
【００２９】
（実施の形態１）
図１は、本発明の実施の形態１におけるセルインスタンス生成のフローチャートである。同図に従って、本形態のセルインスタンス生成方法を以下に説明する。
【００３０】
図１では、図の左側に処理のフローを示し、図の右側にそれぞれの処理段階でのレイアウトパターンデータのデータ形式を示している。図１に従って、本形態のセルインスタンス生成方法の概略を先ず説明する。
【００３１】
ステップＳ０において処理が開始されると、ステップＳ１において階層構造展開処理が行われ、階層構造を持つレイアウトパターンデータ１００が、フラットなレイアウトパターンデータ１０１に展開される。
【００３２】
ステップＳ２において、フラットなレイアウトパターンデータ１０１に対して、最適化処理が行われ、フラットなレイアウトパターンデータ（最適化済）１０２が生成される。この処理によって、新たなセルが挿入される。挿入される新たなセルは１個の時もあるし、複数個の時もある。
【００３３】
ステップＳ３において、フラットなレイアウトパターンデータ（最適化済）１０２に対して、階層構造インスタンス付与処理が行われる。この時、ステップＳ２において新たに挿入されたすべてのセルに対して、階層構造を持つインスタンスが付与される。その結果、階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）１０３が生成される。
【００３４】
以上で一連の処理が終了する（ステップＳ４）。
【００３５】
なお、本形態のセルインスタンス生成方法では、レイアウトフローチャート上でのセルインスタンス生成方法を説明しているが、本発明のセルインスタンス生成方法は、レイアウトフロー上と限定しているわけではなく、レイアウトフロー終了後のネットリストに対して、図１に示すステップＳ３の階層構造インスタンス付与処理を行なっても、同様の処理を行うことが出来る。
【００３６】
次に、本形態のセルインスタンス生成方法を、より具体的な例について説明する。
【００３７】
図２は、本発明の実施の形態１における階層構造をもつレイアウトパターンデータ１００の例示図である。
【００３８】
図２に示す階層構造をもつレイアウトパターンデータ１００の例示図では、トップ階層のセルＣｈｉｐの下に、セルＡ１１０、セルＢ１２０、セルＣ１３０、及び、セルＤ１４０がある。さらに、セルＡ１１０の下には、フリップフロップ１１１、１１２、１１３があり、セルＢ１２０の下には、フリップフロップ１２１、１２２、１２３があり、セルＣ１３０の下には、フリップフロップ１３１、１３２、１３３があり、セルＤ１４０の下には、フリップフロップ１４１、１４２、１４３がある。すなわち、このレイアウトパターンデータは、３層構造を有している。
【００３９】
図２に示す３層構造のレイアウトパターンデータ１００のそれぞれの構成要素には、階層的なセルインスタンスが付与されている。
【００４０】
すなわち、
セルＣｈｉｐのインスタンスは、「インスタンスＣｈｉｐ」であり、
セルＡ１１０のインスタンスは、「インスタンスＡ」、
セルＢ１２０のインスタンスは、「インスタンスＢ」、
セルＣ１３０のインスタンスは、「インスタンスＣ」、
セルＤ１４０のインスタンスは、「インスタンスＤ」である。
【００４１】
第２階層のセルＡ１１０に含まれる各要素に対しては、
フリップフロップ１１１のインスタンスは、「インスタンスＡ／ｒｅｇ１」、
フリップフロップ１１２のインスタンスは、「インスタンスＡ／ｒｅｇ２」、
フリップフロップ１１３のインスタンスは、「インスタンスＡ／ｒｅｇ３」である。
【００４２】
第２階層のセルＢ１２０に含まれる各要素に対しては、
フリップフロップ１２１のインスタンスは、「インスタンスＢ／ｒｅｇ１」、
フリップフロップ１２２のインスタンスは、「インスタンスＢ／ｒｅｇ２」、
フリップフロップ１２３のインスタンスは、「インスタンスＢ／ｒｅｇ３」である。
【００４３】
第２階層のセルＣ１３０に含まれる各要素に対しては、
フリップフロップ１３１のインスタンスは、「インスタンスＣ／ｒｅｇ１」、
フリップフロップ１３２のインスタンスは、「インスタンスＣ／ｒｅｇ２」、
フリップフロップ１３３のインスタンスは、「インスタンスＣ／ｒｅｇ３」である。
【００４４】
第２階層のセルＤ１４０に含まれる各要素に対しては、
フリップフロップ１４１のインスタンスは、「インスタンスＤ／ｒｅｇ１」、
フリップフロップ１４２のインスタンスは、「インスタンスＤ／ｒｅｇ２」、
フリップフロップ１４３のインスタンスは、「インスタンスＤ／ｒｅｇ３」である。
【００４５】
図２には、上述したような各セルのセルインスタンスが表示されている。
【００４６】
図２に示す階層構造を持つレイアウトパターンデータ１００に対して、図１に示したステップＳ１の階層構造展開処理とステップＳ２の最適化処理を施す。さらに、図１に示したステップＳ３の階層構造インスタンス付与処理を、新たに生成された要素を除く既存の要素に対して施すと、途中段階のレイアウトパターンデータとして、図３に示す階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）２００が得られる。
【００４７】
すなわち、図３は、本発明の実施の形態１における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）２００の例示図である。図３において、 図２と同様な構成要素については、同一の符号を付している。
【００４８】
図３に示す、最適化されたフラットなレイアウトパターンデータ２００には、図２で示していた、セルＡ１１０、セルＢ１２０、セルＣ１３０、及び、セルＤ１４０は、存在しない。（図３では、それらを構成していた各要素を、点線枠２１０、２２０、２３０、２４０で囲んで示している。）しかし、既存の各セルには、階層構造インスタンス付与処理により、トップ階層のインスタンスを示す「Ｃｈｉｐ」を付加したインスタンスが、階層構造を示すインスタンスとして、以下のように付与されている。
【００４９】
すなわち、
第２階層のセルＡ１１０に含まれていた各セルに対しては、
フリップフロップ１１１には、「インスタンスＣｈｉｐ／Ａ／ｒｅｇ１」、
フリップフロップ１１２には、「インスタンスＣｈｉｐ／Ａ／ｒｅｇ２」、
フリップフロップ１１３には、「インスタンスＣｈｉｐ／Ａ／ｒｅｇ３」がそれぞれ付与されている。
【００５０】
第２階層のセルＢ１２０に含まれていた各セルに対しては、
フリップフロップ１２１には、「インスタンスＣｈｉｐ／Ｂ／ｒｅｇ１」、
フリップフロップ１２２には、「インスタンスＣｈｉｐ／Ｂ／ｒｅｇ２」、
フリップフロップ１２３には、「インスタンスＣｈｉｐ／Ｂ／ｒｅｇ３」がそれぞれ付与されている。
【００５１】
第２階層のセルＣ１３０に含まれていた各セルに対しては、
フリップフロップ１３１には、「インスタンスＣｈｉｐ／Ｃ／ｒｅｇ１」、
フリップフロップ１３２には、「インスタンスＣｈｉｐ／Ｃ／ｒｅｇ２」、
フリップフロップ１３３には、「インスタンスＣｈｉｐ／Ｃ／ｒｅｇ３」がそれぞれ付与されている。
【００５２】
第２階層のセルＤ１４０に含まれていた各セルに対しては、
フリップフロップ１４１には、「インスタンスＣｈｉｐ／Ｄ／ｒｅｇ１」、
フリップフロップ１４２には、「インスタンスＣｈｉｐ／Ｄ／ｒｅｇ２」、
フリップフロップ１４３には、「インスタンスＣｈｉｐ／Ｄ／ｒｅｇ３」がそれぞれ付与されている。
【００５３】
図１に示したステップＳ２の最適化処理により、上述したように、新たなセルが生成される。図３に示す最適化されたフラットなレイアウトパターンデータ２００では、タイミング調整やドライブ性能向上のための新しいセルとして、バッファ２１１、２１２、２２１、２２２、２３１、２３２、２４１、２４２が挿入され、クロックスキュー調整のための新しいセルとして、バッファ２１３、２２３、２３３、２４３が挿入されている。
【００５４】
従来、これらの新たに挿入されたバッファは、図１のステップＳ３に示すような階層構造インスタンス付与処理は実施されずに、独立したインスタンスが付加されていた。例えば、タイミング調整やドライブ性能向上のための新しいセルとして挿入された、バッファ２１１、２１２、２２１、２２２、２３１、２３２、２４１、２４２には、それぞれ、インスタンスｄｂｕｆ１、ｄｂｕｆ２、ｄｂｕｆ３、ｄｂｕｆ４、ｄｂｕｆ５、ｄｂｕｆ６、ｄｂｕｆ７、ｄｂｕｆ８が付与され、クロックスキュー調整のための新しいセルとして挿入された、バッファ２１３、２２３、２３３、２４３には、それぞれ、インスタンスｃｂｕｆ１、ｃｂｕｆ２、ｃｂｕｆ３、ｃｂｕｆ４が付与されていた。その結果、これらの新しいセルのインスタンスからは、それぞれのセルがどの上位のセルに属しているのかを示す、階層構造を知ることが出来ない。
【００５５】
しかし、本発明のセルインスタンス生成方法では、図１に示したステップＳ２の最適化処理により生成された、新たなセルすべてに対して、階層構造を示すセルインスタンスが付与される。
【００５６】
図４は、本発明の実施の形態１における新規挿入セルのインスタンス生成のフローチャートである。本形態のセルインスタンス生成方法では、新規に挿入されたセルが接続される出力側のセルのインスタンスを参照して、インスタンスが生成され、当該セルに付与される。
【００５７】
すなわち、図４に示すステップＳ１０において、階層構造インスタンス付与処理が始まると、ステップＳ１１において、新規に挿入されたセルを検索する。
【００５８】
ステップＳ１２において、新規に挿入されたセルの出力が接続されているセルを検索し、そのセルのインスタンスを抽出する。
【００５９】
ステップＳ１３において、抽出したインスタンスを、新規に挿入されたセルのインスタンスに付加して、階層構造を示す新しいインスタンスを生成し、ステップＳ１４において、処理を終了する。
【００６０】
図４に示した新規挿入セルのインスタンス生成のフローチャートにおいて、新規挿入セルの出力側に接続されているセルが、階層構造を示すインスタンスを有していない場合が有りうる。この場合には、図５に示すフローチャートに従って、さらに下流側のセルを調べる。
【００６１】
図５は、本発明の実施の形態２におけるセルインスタンス生成のフローチャートである。
【００６２】
図５に示すステップＳ２０において、階層構造インスタンス付与処理が始まると、ステップＳ２１において、新規に挿入されたセルを検索する。
【００６３】
ステップＳ２２において、新規に挿入されたセルの出力側セルのインスタンスを抽出する。
【００６４】
ステップＳ２３において、抽出したインスタンスに、階層構造を示すインスタンスが付加されているかどうかを判定する。判定結果が「Ｙｅｓ」（付加されている）の場合は、制御をステップＳ２５に進め、判定結果が「Ｎｏ」（付加されていない）の場合は、制御をステップＳ２４に進める。
【００６５】
ステップＳ２４において、インスタンスを抽出したセルの出力側セル（すなわち、さらに下流側のセル）を検索し、そのセルのインスタンスを抽出し、制御をステップＳ２３に戻す。
【００６６】
ステップＳ２３とステップＳ２４を繰り返すことにより、最終的に階層構造を示すインスタンスが付加されているセルに辿り着く。
【００６７】
ステップＳ２５では、ステップＳ２４において抽出された階層構造を示すインスタンスを引用して、階層構造を示すインスタンスが未付加のセルに対するインスタンスを生成する。
【００６８】
ステップＳ２６において、新規挿入セルのインスタンスを生成し、ステップＳ２７において、処理を終了する。
【００６９】
以上の処理により、新規挿入セルの出力側に接続されているセルに、階層構造を示すインスタンスが付加されていない場合でも、新規挿入セルに階層構造を示すインスタンスを付加することが出来る。
【００７０】
図４と図５のフローチャートに従って、本形態のセルインスタンス生成方法を実行すると、図３に示す最適化されたフラットなレイアウトパターンデータ２００の内、新たに挿入されたすべてのセルに対して、階層構造を示すインスタンスが付与される。
【００７１】
具体的に示すと、以下のようになる。すなわち、
バッファ２１１には、「インスタンスＣｈｉｐ／Ａ／ｒｅｇ１／ｄｂｕｆ１」、
バッファ２１２には、「インスタンスＣｈｉｐ／Ａ／ｒｅｇ２／ｄｂｕｆ２」、
バッファ２２１には、「インスタンスＣｈｉｐ／Ｂ／ｒｅｇ１／ｄｂｕｆ３」、
バッファ２２２には、「インスタンスＣｈｉｐ／Ｂ／ｒｅｇ２／ｄｂｕｆ４」、バッファ２３１には、「インスタンスＣｈｉｐ／Ｃ／ｒｅｇ１／ｄｂｕｆ５」、
バッファ２３２には、「インスタンスＣｈｉｐ／Ｃ／ｒｅｇ２／ｄｂｕｆ６」、
バッファ２４１には、「インスタンスＣｈｉｐ／Ｄ／ｒｅｇ１／ｄｂｕｆ７」、
バッファ２４２には、「インスタンスＣｈｉｐ／Ｄ／ｒｅｇ２／ｄｂｕｆ８」が、それぞれ、階層構造を示すセルインスタンスとして付与される。
【００７２】
クロックスキュー調整のために新しく挿入された、バッファ２１３、２２３、２３３、２４３は、それぞれの出力が、複数のセルに接続されている。本形態のセルインスタンス生成方法では、この場合、それぞれのセルのインスタンスを、アルファベット順および数字の小さい順に選択して、引用するセルを決定している。
【００７３】
具体的に示すと、以下のようになる。すなわち、
バッファ２１３には、「インスタンスＣｈｉｐ／Ａ／ｒｅｇ１／ｃｂｕｆ１」、バッファ２２３には、「インスタンスＣｈｉｐ／Ｂ／ｒｅｇ１／ｃｂｕｆ２」、バッファ２３３には、「インスタンスＣｈｉｐ／Ｃ／ｒｅｇ１／ｃｂｕｆ３」、バッファ２４３には、「インスタンスＣｈｉｐ／Ｄ／ｒｅｇ１／ｃｂｕｆ４」が、それぞれ、階層構造を示すセルインスタンスとして付与される。
【００７４】
以上の階層構造インスタンス付与処理により、図３に示す最適化されたフラットなレイアウトパターンデータ２００のすべてのセルに、階層構造を示すセルインスタンスが付与されることになる。図６は、本発明の実施の形態１における階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）の例示図である。図６は、階層構造インスタンス付与処理が完了した状態を表している。
【００７５】
なお、以上説明した本形態の実施例では、最適化処理によって新たに挿入されるセルは、バッファに限定して記載しているが、最適化処理では、いくつかの論理セルが複合化されたセルなども含まれる。
【００７６】
（実施の形態２）
図７は、本発明の実施の形態２における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図である。
【００７７】
図７に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理と階層構造インスタンス付与処理により、
フリップフロップ３０１には、「インスタンスＣｈｉｐ／Ｅ／ｒｅｇ１」、
フリップフロップ３０２には、「インスタンスＣｈｉｐ／Ｆ／ｒｅｇ１」、
フリップフロップ３０３には、「インスタンスＣｈｉｐ／Ｆ／ｒｅｇ２」、
フリップフロップ３０５には、「インスタンスＣｈｉｐ／Ｇ／ｒｅｇ１」、
論理積回路３０４には、「インスタンスＣｈｉｐ／Ｆ／ａｎｄ１」が、それぞれ付与されている。
【００７８】
また、図７に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理により、バッファ３０６が新たに挿入されている。バッファ３０６の出力は、配線３０７を介して、フリップフロップ３０２に接続され、配線３０８を介して、論理積回路３０４に接続され、配線３０９を介して、フリップフロップ３０５に接続されている。
【００７９】
以下に、新しく挿入されたバッファ３０６に対する、本形態のセルインスタンス生成方法について説明する。
【００８０】
図８は、本発明の実施の形態２におけるセルインスタンス生成のフローチャートである。
【００８１】
図８に示すステップＳ３０において、インスタンス生成処理が開始されると、ステップＳ３１において、新規に挿入されたセルを検索する。
【００８２】
ステップＳ３２において、検索した新規挿入セルの出力側セルのインスタンスを抽出する。
【００８３】
ステップＳ３３において、新規挿入セルの出力側は、複数のセルに接続しているかどうかを判定する。判定結果が「Ｙｅｓ」（複数のセルに接続している）の場合は、制御をステップＳ３４に進める。判定結果が「Ｎｏ」（複数のセルに接続していない）の場合は、制御をステップＳ３５に進める。
【００８４】
ステップＳ３４において、新規挿入セルの出力側に接続している数のセルの内、新規挿入セルとの配線長が一番長いセルを検索して、そのセルのインスタンスを抽出して、ステップＳ３５に進む。
【００８５】
ステップＳ３５では、新規挿入セルの出力側に複数のセルが接続している場合は、ステップＳ３４で抽出したインスタンスを選択し、新規挿入セルの出力側に複数のセルが接続していない場合は、ステップＳ３２で抽出したインスタンスを選択して、そのインスタンスに階層構造を示すインスタンスが付加されているかどうかを判定する。判定結果が「Ｙｅｓ」（付加されている）の場合は、制御をステップＳ３７に進める。判定結果が「Ｎｏ」（付加されていない）の場合は、制御をステップＳ３６に進める。
【００８６】
ステップＳ３６において、インスタンスを抽出したセルの出力側セル（すなわち、さらに下流側のセル）を検索し、そのセルのインスタンスを抽出し、制御をステップＳ３３に戻す。
【００８７】
ステップＳ３３からステップＳ３６までを繰り返すことにより、最終的に階層構造を示すインスタンスが付加されているセルに辿り着く。
【００８８】
ステップＳ３７では、ステップＳ３６において抽出された階層構造を示すインスタンスを引用して、階層構造を示すインスタンスが未だ付加されていないセルに対するインスタンスを生成する。
【００８９】
ステップＳ３８において、新規挿入セルのインスタンスを生成し、ステップＳ３９において、処理を終了する。
【００９０】
図８のフローチャートに従って、本形態のセルインスタンス生成方法を、図７のバッファ３０６に対して適用することにより、バッファ３０６のインスタンスは以下のようにして決定される。ここでは、図７において、配線長が、配線３０７＞配線３０８＞配線３０９の順に長いと仮定する。
【００９１】
図８のステップＳ３１において、新規挿入セルとして、図７のバッファ３０６が検索される。
【００９２】
ステップＳ３３において、バッファ３０６が複数のセルに接続されていることを判定して、ステップＳ３４に進む。
【００９３】
ステップＳ３４において、配線長が一番長い配線３０７に接続されたセルとして、フリップフロップ３０２を選択し、そのセルのインスタンス「Ｃｈｉｐ／Ｆ／ｒｅｇ１」を抽出する。
【００９４】
ステップＳ３５において、抽出したインスタンス「Ｃｈｉｐ／Ｆ／ｒｅｇ１」には、階層構造インスタンスが付与されているので、判定結果は「Ｙｅｓ」となり、ステップＳ３７に進む。
【００９５】
ステップＳ３７では、実質処理はなく、ステップＳ３８において、新規挿入セルバッファ３０６のセルインスタンスとして、「Ｃｈｉｐ／Ｆ／ｒｅｇ１／ｄｂｕｆ」が生成される。
【００９６】
以上のように、本形態のセルインスタンス生成方法では、新規挿入されたセルの出力側に複数のセルがある場合、当該セルと複数のセルの間の配線長の大小を判定基準にして、出力側にある複数のセルのいずれかを選択する。
【００９７】
上述の判定基準を、「配線容量が大きい順」とすることも出来る。この場合には、図８のステップＳ３４の、「配線長の一番長いセルのインスタンス抽出」を「配線容量の一番大きいセルのインスタンス抽出」に変更すればよい。そして、配線容量が、配線３０９＞配線３０８＞配線３０７の順に大きいと仮定すると、バッファ３０６には、セルインスタンスとして、「Ｃｈｉｐ／Ｇ／ｒｅｇ１／ｄｂｕｆ」が生成される。
【００９８】
（実施の形態３）
図９は、本発明の実施の形態３における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図である。
【００９９】
図９に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理と階層構造インスタンス付与処理により、
フリップフロップ４０１には、「インスタンスＣｈｉｐ／Ｈ／ｒｅｇ１」が、
フリップフロップ４０２には、「インスタンスＣｈｉｐ／Ｊ／ｒｅｇ１」が、それぞれ付与されている。
【０１００】
また、図９に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理により、タイミング調整用として、バッファ４０３、４０４、４０５、４０６が、数珠繋ぎに新たに挿入されている。
【０１０１】
以下に、新しく挿入されたバッファ４０３、４０４、４０５、４０６に対する、セルインスタンスの付与方法について説明する。
【０１０２】
図１０は、本発明の実施の形態３におけるセルインスタンス生成のフローチャートである。
【０１０３】
図１０に従って、本形態のセルインスタンス生成方法を説明すると、ステップＳ４０で処理が開始され、ステップＳ４１において、新たに挿入されたセルが検索される。
【０１０４】
ステップＳ４２において、新たに挿入されたセルの入力側セルと出力側セルのそれぞれのインスタンスが抽出される。
【０１０５】
ステップＳ４３において、ステップＳ４２において抽出した入力側セルと出力側セルのいずれのインスタンスにも、階層構造インスタンスが付加されているかどうかを判定する。判定結果が、「Ｙｅｓ」（いずれも付加されている）の場合は、制御をステップＳ４７に進め、「Ｎｏ」（少なくともいずれか一方が付加されていない）の場合は、制御をステップＳ４４に進める。
【０１０６】
ステップＳ４４において、抽出したインスタンスを入力側のセルと出力側のセルとに分ける。
【０１０７】
ステップＳ４５では、入力側について、インスタンスを抽出したセルの入力側セル（すなわち、さらに上流側のセル）を検索し、そのセルのインスタンスを抽出し、制御をステップＳ４３に戻す。
【０１０８】
ステップＳ４６では、出力側について、インスタンスを抽出したセルの出力側セル（すなわち、さらに下流側のセル）を検索し、そのセルのインスタンスを抽出し、制御をステップＳ４３に戻す。
【０１０９】
ステップＳ４３からステップＳ４６を繰り返すことにより、新規挿入セルに対して、その入力側と出力側において、いずれも階層構造インスタンスを有するセルに最終的に到達することが出来る。
【０１１０】
ステップＳ４７において、新規挿入セルの個数と、階層構造インスタンスが付加されていないセルの個数とを算出する。
【０１１１】
ステップＳ４８において、新規挿入セルと階層構造インスタンスが付加されていないセルとを、予め定められた割合で、上流側セルと下流側セルとに分割する。  ステップＳ４９において、新規挿入セルが、ステップＳ４８で分割された上流側セルに属するか、下流側セルに属するかを判定する。判定結果が、「Ｙｅｓ」（上流側セルに属する）の時は、制御をステップＳ５０に進め、判定結果が、「Ｎｏ」（下流側セルに属する）の時は、制御をステップＳ５１に進める。
【０１１２】
ステップＳ５０において、ステップＳ４５で抽出した上流側セルの階層構造インスタンスを付加して、新規挿入セルのインスタンスを生成し、ステップＳ５２で、処理を終了する。
【０１１３】
ステップＳ５１において、ステップＳ４６で抽出した下流側セルの階層構造インスタンスを付加して、新規挿入セルのインスタンスを生成し、ステップＳ５２で、処理を終了する。
【０１１４】
図１０のフローチャートに従って、本形態のセルインスタンス生成方法を、図９のバッファ４０４に対して適用すると、バッファ４０４のインスタンスは以下のようにして決定される。ここでは、新規挿入されたセルは、バッファ４０３〜４０６の４個である。新規挿入されたセルを除けば、階層構造インスタンスが付与されていないセルはないと仮定する。また、数珠繋ぎのセルの上流側、下流側の分割割合は、５０％−５０％と設定する。
【０１１５】
なお、以下の説明では、バッファ４０３については、すでにセルインスタンス付与処理が終わっており、そのセルインスタンスとして、「Ｃｈｉｐ／Ｈ／ｒｅｇ１／ｄｂｕｆ１」が生成されているものとする。
【０１１６】
図１０のステップＳ４１において、処理対象の新規挿入セルとして、図９のバッファ４０４が検索される。
【０１１７】
ステップＳ４２において、バッファ４０４の入力側セル（バッファ４０３）のインスタンス「Ｃｈｉｐ／Ｈ／ｒｅｇ１／ｄｂｕｆ１」が抽出され、下流側セル（バッファ４０５）のインスタンス「ｄｂｕｆ３」が抽出される。
【０１１８】
ステップＳ４３において、抽出したインスタンスに階層構造インスタンスが付加されているかどうかを判定する。本形態の例では、入力側セルのインスタンスには階層構造インスタンスが付加されているが、出力側セルのインスタンスには階層構造インスタンスが付加されていない。従って、判定結果は、「Ｎｏ」となる。
【０１１９】
ステップＳ４４において、階層構造インスタンスが付加されていないインスタンスのセルは、出力側セルであると判定して、制御をステップＳ４６に進める。
【０１２０】
ステップＳ４６では、バッファ４０５の出力側セル、すなわち、バッファ４０６のインスタンス「ｄｂｕｆ４」が抽出される。そして、制御は、ステップＳ４３に戻る。
【０１２１】
ステップＳ４３〜ステップＳ４６の処理が再度行われ、最終的に、ステップＳ４６において、出力側セルに階層構造インスタンス「Ｃｈｉｐ／Ｊ／ｒｅｇ１」が抽出される。その結果、ステップＳ４３の判定結果は、「Ｙｅｓ」となり、制御は、ステップＳ４７に進む。
【０１２２】
ステップＳ４７において、新規挿入セルの個数「４」と階層構造インスタンス未付加セルの個数「０」とが算出される。
【０１２３】
ステップＳ４８において、４個の新規挿入セルが、予め設定された分割割合（５０％−５０％）で上流側セル（バッファ４０３とバッファ４０４）と下流側セル（バッファ４０５とバッファ４０６）とに分割される。
【０１２４】
ステップＳ４９において、処理対象の新規挿入セルであるバッファ４０４は、上流側セルに属すると判定して、制御をステップＳ５０に進める。
【０１２５】
ステップＳ５０において、処理対象の新規挿入セルであるバッファ４０４のセルインスタンスとして、上流側階層構造インスタンスを付加した「Ｃｈｉｐ／Ｈ／ｒｅｇ１／ｄｂｕｆ１／ｄｂｕｆ２」が生成される。
【０１２６】
その他の新規挿入セルに対しても、同様のセルインスタンス生成を行う。その結果、最終的に、図９の新たに挿入された４個のセルには、以下のセルインスタンスが生成される。
バッファ４０３には、「Ｃｈｉｐ／Ｈ／ｒｅｇ１／ｄｂｕｆ１」、
バッファ４０４には、「Ｃｈｉｐ／Ｈ／ｒｅｇ１／ｄｂｕｆ１／ｄｂｕｆ２」、
バッファ４０５には、「Ｃｈｉｐ／Ｊ／ｒｅｇ１／ｄｂｕｆ４／ｄｂｕｆ３」、
バッファ４０６には、「Ｃｈｉｐ／Ｊ／ｒｅｇ１／ｄｂｕｆ４」
が、それぞれの、階層構造を示すセルインスタンスとして生成される。
【０１２７】
以上説明したように、本形態のセルインスタンス生成方法によれば、数珠繋ぎに複数個挿入されたセルに対して、一義的に階層構造を示すセルインスタンスを生成することが出来る。
【０１２８】
本発明のセルインスタンス生成方法によれば、フラットなレイアウトパターンデータのみで最適化処理を行なう際に、階層構造を示すインスタンスを付与することが可能である。すなわち、他のデータの作成や比較処理などを必要とせずに、フラットなレイアウトパターンデータから生成されたネットリストのインスタンスを指定することで、階層構造の単位でセルを抽出可能になる。従って、大規模集積回路に本発明のセルインスタンス生成方法を適用すれば、ネットリストを用いた階層構造単位の面積算定や、階層構造単位での消費電力解析が可能となる。
【０１２９】
以上説明したように、本発明の趣旨は、フラットなレイアウトパターンデータに対して、セルインスタンスを一義的に生成可能なセルインスタンス生成方法を提供することにあるのであって、本発明の趣旨を逸脱しない限り、種々の変更が可能である。
【産業上の利用可能性】
【０１３０】
本発明に係わるセルインスタンス生成方法は、例えば、ＥＤＡツール（電子回路自動設計ツール）等、半導体集積回路用ＣＡＤシステムとその応用分野において利用できる。
【図面の簡単な説明】
【０１３１】
【図１】本発明の実施の形態１におけるセルインスタンス生成のフローチャート
【図２】本発明の実施の形態１における階層構造をもつレイアウトパターンデータの例示図
【図３】本発明の実施の形態１における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）の例示図
【図４】本発明の実施の形態１における新規挿入セルのインスタンス生成のフローチャート
【図５】本発明の実施の形態１におけるセルインスタンス生成のフローチャート
【図６】本発明の実施の形態１における階層構造インスタンス付与後のフラットなレイアウトパターンデータ（最適化済）の例示図
【図７】本発明の実施の形態２における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図
【図８】本発明の実施の形態２におけるセルインスタンス生成のフローチャート
【図９】本発明の実施の形態３における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図
【図１０】本発明の実施の形態３におけるセルインスタンス生成のフローチャート
【図１１】従来の階層構造を有する回路接続データ抽出方法のフローチャート
【符号の説明】
【０１３２】
１００  Ｃｈｉｐ
１１０  セルＡ
１２０  セルＢ
１３０  セルＣ
１４０  セルＤ
１１１、１１２、１１３、１２１、１２２、１２３、１３１、１３２、１３３、１４１、１４２、１４３、３０１、３０２、３０３、３０５、４０１、４０２  フリップフロップ
２１１、２１２、２１３、２２１、２２２、２２３、２３１、２３２、２３３、２４１、２４２、２４３、３０６、４０３、４０４、４０５、４０６  バッファ
３０４  論理積回路
【図１】
2006209432.tif 000003
【図２】
2006209432.tif 000004
【図３】
2006209432.tif 000005
【図４】
2006209432.tif 000006
【図５】
2006209432.tif 000007
【図６】
2006209432.tif 000008
【図７】
2006209432.tif 000009
【図８】
2006209432.tif 000010
【図９】
2006209432.tif 000011
【図１０】
2006209432.tif 000012
【図１１】
2006209432.tif 000013