JP2006209432A - セルインスタンス生成方法 - Google Patents
セルインスタンス生成方法 Download PDFInfo
- Publication number
- JP2006209432A JP2006209432A JP2005020098A JP2005020098A JP2006209432A JP 2006209432 A JP2006209432 A JP 2006209432A JP 2005020098 A JP2005020098 A JP 2005020098A JP 2005020098 A JP2005020098 A JP 2005020098A JP 2006209432 A JP2006209432 A JP 2006209432A
- Authority
- JP
- Japan
- Prior art keywords
- cell
- instance
- cells
- hierarchical structure
- layout pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】 階層構造を有するレイアウトパターンデータに対して、フラットなレイアウトパターンデータの最適化の結果、新たに挿入されたセルに、階層構造を示すインスタンスを一義的に付与できるセルインスタンス生成方法を提供する。
【解決手段】 ステップS1においてる階層構造展開処理により、階層構造を持つレイアウトパターンデータ100が、フラットなレイアウトパターンデータ101に展開される。ステップS2における最適化処理により、フラットなレイアウトパターンデータ(最適化済)102が生成される。この処理によって、新規セルが挿入される。ステップS3における階層構造インスタンス付与処理により、新規挿入セルに対して、階層構造を持つインスタンスが付与され階層構造インスタンス付与後のフラットなレイアウトパターンデータ(最適化済)103が生成される。
【選択図】 図1
【解決手段】 ステップS1においてる階層構造展開処理により、階層構造を持つレイアウトパターンデータ100が、フラットなレイアウトパターンデータ101に展開される。ステップS2における最適化処理により、フラットなレイアウトパターンデータ(最適化済)102が生成される。この処理によって、新規セルが挿入される。ステップS3における階層構造インスタンス付与処理により、新規挿入セルに対して、階層構造を持つインスタンスが付与され階層構造インスタンス付与後のフラットなレイアウトパターンデータ(最適化済)103が生成される。
【選択図】 図1
Description
本発明は、半導体集積回路のレイアウトパターンデータに対してセルの最適化を自動的に行なうCAD(Computer Aided Design)システムに係わり、セル単位での階層構造を抽出するために、最適化されたセルに階層構造を示すインスタンスを付与するセルインスタンス生成方法に関するものである。
半導体集積回路の大規模化に対応するため、階層構造を有するレイアウトパターンデータから、回路接続データを階層的に抽出する方法が広く用いられている。 従来技術として、特許文献1は、セル単位での階層構造を抽出する方法を開示している。特許文献1によれば、セル単位での階層構造を抽出する際には、階層的構造を有するレイアウトパターンデータをセルに全展開してフラットなレイアウトパターンとし、フラットなレイアウトパターンからフラットな回路接続データを抽出する。そして、フラットな回路接続データから、レイアウトパターンデータの階層構造に対応させて、部分回路を有する初期の階層構造を生成する。
さらに、回路接続データ中の各素子に対応付けられている図形と、レイアウトパターンデータの基準層の図形とを比較して、各素子を回路接続データの部分回路に割付ける。
また、各部分回路に対して外部接続ネットを特定するとともに、各部分回路相互の同一性を判定し、同一性がある場合には、一つを代表部分回路とし他をこの代表部分回路で置換えることで、セル単位での階層構造を抽出する。
図11は、従来の階層構造を有する回路接続データ抽出方法のフローチャートであり、前記特許文献1に開示されたものである。
図11を参照して、従来技術を説明する。
図11に示す処理1において、階層構造を有する半導体集積回路のレイアウトパターンデータを、セルに全展開して、フラットなレイアウトパターンデータを得る。
処理2において、全展開されたレイアウトパターンデータから、素子及び素子間の接続情報を抽出して、レイアウトパターンデータが表現しているフラットな回路接続データを得る。ここで抽出された回路接続データとレイアウトパターンデータとは、相互に対応付けられて回路接続ファイルに格納される。
処理3において、部分回路を有する回路接続データの初期の階層構造(部分回路相互の参照関係を示す構造)を生成する。この場合、生成される回路接続データの階層構造は、元のレイアウトパターンデータの階層構造において、セル識別名をインスタンス識別名で置換した時に得られるような階層構造であり、ここでは便宜上、元の階層構造におけるインスタンスを部分回路として用いる。また、各部分回路には、元の階層構造におけるセル識別名を付加情報として持たせておく。
処理4において、階層構造を有するレイアウトパターンデータの基準層をセルに全展開し、基準層の図形データを作成する。(ここで作成した基準層の図形データは、次の処理5で回路接続データの素子を各部分回路に割り付ける時に利用する。)ここで、基準層の個々の図形データ(レイアウトパターンデータと同義)に、元のレイアウトパターンデータの階層構造に於いて、その図形が所属していたインスタンス識別名を付加情報として与える。
処理5において、処理2で得られたフラットな回路接続データ中の各素子を、処理3で生成した初期の階層構造を成す各部分回路に割り付ける。
処理6において、各部分回路の外部接続ネットを特定する。
処理7において、処理6までの工程で得られた回路接続データ中に存在する部分回路相互の冗長部分を除去する。
これらの処理を行なうことで、階層的に回路接続データを抽出し、階層構造を示すネットリストを抽出することができる。
以上説明したように、従来の方法においては、階層構造を抽出するために、(a)初期の階層構造を生成する必要がある、(b)フラットな回路接続データ中の各素子に対応付けられている図形と、全展開された基準層の図形とを比較する必要がある。その結果、階層構造を抽出するための処理量が増加する。また、フラットなレイアウトパターンデータに対して最適化処理を施した場合に、最適化されたセルや追加されたセルに対して、インスタンスを付加することができない。このため、フラットなレイアウトデータから生成されたネットリストを用いて、階層構造単位の面積の算定や、階層構造単位の消費電力の解析を行うことが困難である。
特開平7−121594号公報
そこで本発明は、階層構造を有するレイアウトパターンデータに対して、フラットなレイアウトパターンデータの最適化の結果、新たに挿入されたセルに、階層構造を示すインスタンスを的確に、かつ、一義的に付与できるセルインスタンス生成方法を提供することを目的とする。
請求項1記載のセルインスタンス生成方法は、階層構造を有するレイアウトパターンデータをセルに展開して、フラットなレイアウトパターンデータを得る展開工程と、展開工程において得られたフラットなレイアウトパターンデータに対して最適化処理を施す最適化工程と、最適化工程において最適化されたフラットなレイアウトパターンデータに新たに含まれる第1のセルに対して、階層構造を示すインスタンスを付与する付与工程とを含み、付与工程では、第1のセルが接続される入力側の第2のセルと出力側の第3のセルのいずれか一方のセルの階層構造を示すインスタンスを引用して、第1のセルのインスタンスを生成する。
この方法によれば、フラットなレイアウトパターンデータに最適化処理を行ない、新たに生成されたセルに対して、セルが接続される入力側または出力側のセルのインスタンスを引用して、階層構造を示すインスタンスを付与することが可能となる。その結果、フラットなレイアウトパターンデータから生成されたネットリストのインスタンスを指定することで、階層構造の単位で、すべてのセルを抽出可能になる。
請求項2記載のセルインスタンス生成方法では、付与工程において、第2のセルと第3のセルが複数個存在する場合、複数個のセルのインスタンスの内、アルファベット順、数字順、及び、文字コード順の内の少なくとも1つの順序に従って選択されたインスタンスを引用して、第1のセルのインスタンスを生成する。
この方法によれば、フラットなレイアウトパターンデータの最適化処理に伴い新たに生成されたセルに対して、引用すべき入力側または出力側のセルを、アルファベット順、数字順、及び、文字コード順など、簡単なルールに従って選択し、階層構造を示すインスタンスを新たに生成されたセルに付与することが可能となる。
請求項3記載のセルインスタンス生成方法では、付与工程において、第2のセルと第3のセルが複数個存在する場合、複数個のセルの内、セルの個数の大小に基づいて選択されたセルのインスタンスを引用して、第1のセルのインスタンスを生成する。
この方法によれば、新たに生成されたセルに対して、引用すべき入力側または出力側のセルのうち、個数の多い(または少ない)セルを引用して、インスタンスを生成することが出来る。
請求項4記載のセルインスタンス生成方法では、付与工程において、第2のセルと第3のセルが複数個存在する場合、複数個のセルの内、第1のセルと複数個のセルとの間の配線長と接続容量の内の少なくとも1つに基づいて選択されたセルのインスタンスを引用して、第1のセルのインスタンスを生成する。
この方法によれば、新たに生成されたセルに対して、引用すべき入力側または出力側のセルのうち、当該セルとの間の配線が短い(または長い)セル、あるいは、当該セルとの間の接続容量が小さい(または大きい)セルを引用して、インスタンスを生成することが出来る。
請求項5記載のセルインスタンス生成方法では、付与工程において、第1のセルが数珠繋ぎに複数個存在する場合、予め定められた割合で上流側セルと下流側セルに複数個のセルを分割し、上流側セルに対しては、第2のセルのインスタンスを引用し、下流側セルに対しては、第3のセルのインスタンスを引用して、第1のセルのインスタンスを生成する。
この方法によれば、新たに生成された数珠繋ぎのセルを予め定められた割合で分割し、一方は入力側(上流側)のセルを引用し、他方は出力側(下流側)のセルを引用して、新たに生成された数珠繋ぎのすべてのセルのインスタンスを一義的に付与することが出来る。
本発明によれば、階層構造を有するレイアウトパターンデータに対して、フラットなレイアウトパターンデータの最適化の結果、新たに挿入されたセルに、階層構造を示すインスタンスを的確に、かつ、一義的に付与できる。
以下図面を参照しながら、本発明の実施の形態を説明する。
(実施の形態1)
図1は、本発明の実施の形態1におけるセルインスタンス生成のフローチャートである。同図に従って、本形態のセルインスタンス生成方法を以下に説明する。
図1は、本発明の実施の形態1におけるセルインスタンス生成のフローチャートである。同図に従って、本形態のセルインスタンス生成方法を以下に説明する。
図1では、図の左側に処理のフローを示し、図の右側にそれぞれの処理段階でのレイアウトパターンデータのデータ形式を示している。図1に従って、本形態のセルインスタンス生成方法の概略を先ず説明する。
ステップS0において処理が開始されると、ステップS1において階層構造展開処理が行われ、階層構造を持つレイアウトパターンデータ100が、フラットなレイアウトパターンデータ101に展開される。
ステップS2において、フラットなレイアウトパターンデータ101に対して、最適化処理が行われ、フラットなレイアウトパターンデータ(最適化済)102が生成される。この処理によって、新たなセルが挿入される。挿入される新たなセルは1個の時もあるし、複数個の時もある。
ステップS3において、フラットなレイアウトパターンデータ(最適化済)102に対して、階層構造インスタンス付与処理が行われる。この時、ステップS2において新たに挿入されたすべてのセルに対して、階層構造を持つインスタンスが付与される。その結果、階層構造インスタンス付与後のフラットなレイアウトパターンデータ(最適化済)103が生成される。
以上で一連の処理が終了する(ステップS4)。
なお、本形態のセルインスタンス生成方法では、レイアウトフローチャート上でのセルインスタンス生成方法を説明しているが、本発明のセルインスタンス生成方法は、レイアウトフロー上と限定しているわけではなく、レイアウトフロー終了後のネットリストに対して、図1に示すステップS3の階層構造インスタンス付与処理を行なっても、同様の処理を行うことが出来る。
次に、本形態のセルインスタンス生成方法を、より具体的な例について説明する。
図2は、本発明の実施の形態1における階層構造をもつレイアウトパターンデータ100の例示図である。
図2に示す階層構造をもつレイアウトパターンデータ100の例示図では、トップ階層のセルChipの下に、セルA110、セルB120、セルC130、及び、セルD140がある。さらに、セルA110の下には、フリップフロップ111、112、113があり、セルB120の下には、フリップフロップ121、122、123があり、セルC130の下には、フリップフロップ131、132、133があり、セルD140の下には、フリップフロップ141、142、143がある。すなわち、このレイアウトパターンデータは、3層構造を有している。
図2に示す3層構造のレイアウトパターンデータ100のそれぞれの構成要素には、階層的なセルインスタンスが付与されている。
すなわち、
セルChipのインスタンスは、「インスタンスChip」であり、
セルA110のインスタンスは、「インスタンスA」、
セルB120のインスタンスは、「インスタンスB」、
セルC130のインスタンスは、「インスタンスC」、
セルD140のインスタンスは、「インスタンスD」である。
セルChipのインスタンスは、「インスタンスChip」であり、
セルA110のインスタンスは、「インスタンスA」、
セルB120のインスタンスは、「インスタンスB」、
セルC130のインスタンスは、「インスタンスC」、
セルD140のインスタンスは、「インスタンスD」である。
第2階層のセルA110に含まれる各要素に対しては、
フリップフロップ111のインスタンスは、「インスタンスA/reg1」、
フリップフロップ112のインスタンスは、「インスタンスA/reg2」、
フリップフロップ113のインスタンスは、「インスタンスA/reg3」である。
フリップフロップ111のインスタンスは、「インスタンスA/reg1」、
フリップフロップ112のインスタンスは、「インスタンスA/reg2」、
フリップフロップ113のインスタンスは、「インスタンスA/reg3」である。
第2階層のセルB120に含まれる各要素に対しては、
フリップフロップ121のインスタンスは、「インスタンスB/reg1」、
フリップフロップ122のインスタンスは、「インスタンスB/reg2」、
フリップフロップ123のインスタンスは、「インスタンスB/reg3」である。
フリップフロップ121のインスタンスは、「インスタンスB/reg1」、
フリップフロップ122のインスタンスは、「インスタンスB/reg2」、
フリップフロップ123のインスタンスは、「インスタンスB/reg3」である。
第2階層のセルC130に含まれる各要素に対しては、
フリップフロップ131のインスタンスは、「インスタンスC/reg1」、
フリップフロップ132のインスタンスは、「インスタンスC/reg2」、
フリップフロップ133のインスタンスは、「インスタンスC/reg3」である。
フリップフロップ131のインスタンスは、「インスタンスC/reg1」、
フリップフロップ132のインスタンスは、「インスタンスC/reg2」、
フリップフロップ133のインスタンスは、「インスタンスC/reg3」である。
第2階層のセルD140に含まれる各要素に対しては、
フリップフロップ141のインスタンスは、「インスタンスD/reg1」、
フリップフロップ142のインスタンスは、「インスタンスD/reg2」、
フリップフロップ143のインスタンスは、「インスタンスD/reg3」である。
フリップフロップ141のインスタンスは、「インスタンスD/reg1」、
フリップフロップ142のインスタンスは、「インスタンスD/reg2」、
フリップフロップ143のインスタンスは、「インスタンスD/reg3」である。
図2には、上述したような各セルのセルインスタンスが表示されている。
図2に示す階層構造を持つレイアウトパターンデータ100に対して、図1に示したステップS1の階層構造展開処理とステップS2の最適化処理を施す。さらに、図1に示したステップS3の階層構造インスタンス付与処理を、新たに生成された要素を除く既存の要素に対して施すと、途中段階のレイアウトパターンデータとして、図3に示す階層構造インスタンス付与後のフラットなレイアウトパターンデータ(最適化済)200が得られる。
すなわち、図3は、本発明の実施の形態1における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータ(最適化済)200の例示図である。図3において、 図2と同様な構成要素については、同一の符号を付している。
図3に示す、最適化されたフラットなレイアウトパターンデータ200には、図2で示していた、セルA110、セルB120、セルC130、及び、セルD140は、存在しない。(図3では、それらを構成していた各要素を、点線枠210、220、230、240で囲んで示している。)しかし、既存の各セルには、階層構造インスタンス付与処理により、トップ階層のインスタンスを示す「Chip」を付加したインスタンスが、階層構造を示すインスタンスとして、以下のように付与されている。
すなわち、
第2階層のセルA110に含まれていた各セルに対しては、
フリップフロップ111には、「インスタンスChip/A/reg1」、
フリップフロップ112には、「インスタンスChip/A/reg2」、
フリップフロップ113には、「インスタンスChip/A/reg3」がそれぞれ付与されている。
第2階層のセルA110に含まれていた各セルに対しては、
フリップフロップ111には、「インスタンスChip/A/reg1」、
フリップフロップ112には、「インスタンスChip/A/reg2」、
フリップフロップ113には、「インスタンスChip/A/reg3」がそれぞれ付与されている。
第2階層のセルB120に含まれていた各セルに対しては、
フリップフロップ121には、「インスタンスChip/B/reg1」、
フリップフロップ122には、「インスタンスChip/B/reg2」、
フリップフロップ123には、「インスタンスChip/B/reg3」がそれぞれ付与されている。
フリップフロップ121には、「インスタンスChip/B/reg1」、
フリップフロップ122には、「インスタンスChip/B/reg2」、
フリップフロップ123には、「インスタンスChip/B/reg3」がそれぞれ付与されている。
第2階層のセルC130に含まれていた各セルに対しては、
フリップフロップ131には、「インスタンスChip/C/reg1」、
フリップフロップ132には、「インスタンスChip/C/reg2」、
フリップフロップ133には、「インスタンスChip/C/reg3」がそれぞれ付与されている。
フリップフロップ131には、「インスタンスChip/C/reg1」、
フリップフロップ132には、「インスタンスChip/C/reg2」、
フリップフロップ133には、「インスタンスChip/C/reg3」がそれぞれ付与されている。
第2階層のセルD140に含まれていた各セルに対しては、
フリップフロップ141には、「インスタンスChip/D/reg1」、
フリップフロップ142には、「インスタンスChip/D/reg2」、
フリップフロップ143には、「インスタンスChip/D/reg3」がそれぞれ付与されている。
フリップフロップ141には、「インスタンスChip/D/reg1」、
フリップフロップ142には、「インスタンスChip/D/reg2」、
フリップフロップ143には、「インスタンスChip/D/reg3」がそれぞれ付与されている。
図1に示したステップS2の最適化処理により、上述したように、新たなセルが生成される。図3に示す最適化されたフラットなレイアウトパターンデータ200では、タイミング調整やドライブ性能向上のための新しいセルとして、バッファ211、212、221、222、231、232、241、242が挿入され、クロックスキュー調整のための新しいセルとして、バッファ213、223、233、243が挿入されている。
従来、これらの新たに挿入されたバッファは、図1のステップS3に示すような階層構造インスタンス付与処理は実施されずに、独立したインスタンスが付加されていた。例えば、タイミング調整やドライブ性能向上のための新しいセルとして挿入された、バッファ211、212、221、222、231、232、241、242には、それぞれ、インスタンスdbuf1、dbuf2、dbuf3、dbuf4、dbuf5、dbuf6、dbuf7、dbuf8が付与され、クロックスキュー調整のための新しいセルとして挿入された、バッファ213、223、233、243には、それぞれ、インスタンスcbuf1、cbuf2、cbuf3、cbuf4が付与されていた。その結果、これらの新しいセルのインスタンスからは、それぞれのセルがどの上位のセルに属しているのかを示す、階層構造を知ることが出来ない。
しかし、本発明のセルインスタンス生成方法では、図1に示したステップS2の最適化処理により生成された、新たなセルすべてに対して、階層構造を示すセルインスタンスが付与される。
図4は、本発明の実施の形態1における新規挿入セルのインスタンス生成のフローチャートである。本形態のセルインスタンス生成方法では、新規に挿入されたセルが接続される出力側のセルのインスタンスを参照して、インスタンスが生成され、当該セルに付与される。
すなわち、図4に示すステップS10において、階層構造インスタンス付与処理が始まると、ステップS11において、新規に挿入されたセルを検索する。
ステップS12において、新規に挿入されたセルの出力が接続されているセルを検索し、そのセルのインスタンスを抽出する。
ステップS13において、抽出したインスタンスを、新規に挿入されたセルのインスタンスに付加して、階層構造を示す新しいインスタンスを生成し、ステップS14において、処理を終了する。
図4に示した新規挿入セルのインスタンス生成のフローチャートにおいて、新規挿入セルの出力側に接続されているセルが、階層構造を示すインスタンスを有していない場合が有りうる。この場合には、図5に示すフローチャートに従って、さらに下流側のセルを調べる。
図5は、本発明の実施の形態2におけるセルインスタンス生成のフローチャートである。
図5に示すステップS20において、階層構造インスタンス付与処理が始まると、ステップS21において、新規に挿入されたセルを検索する。
ステップS22において、新規に挿入されたセルの出力側セルのインスタンスを抽出する。
ステップS23において、抽出したインスタンスに、階層構造を示すインスタンスが付加されているかどうかを判定する。判定結果が「Yes」(付加されている)の場合は、制御をステップS25に進め、判定結果が「No」(付加されていない)の場合は、制御をステップS24に進める。
ステップS24において、インスタンスを抽出したセルの出力側セル(すなわち、さらに下流側のセル)を検索し、そのセルのインスタンスを抽出し、制御をステップS23に戻す。
ステップS23とステップS24を繰り返すことにより、最終的に階層構造を示すインスタンスが付加されているセルに辿り着く。
ステップS25では、ステップS24において抽出された階層構造を示すインスタンスを引用して、階層構造を示すインスタンスが未付加のセルに対するインスタンスを生成する。
ステップS26において、新規挿入セルのインスタンスを生成し、ステップS27において、処理を終了する。
以上の処理により、新規挿入セルの出力側に接続されているセルに、階層構造を示すインスタンスが付加されていない場合でも、新規挿入セルに階層構造を示すインスタンスを付加することが出来る。
図4と図5のフローチャートに従って、本形態のセルインスタンス生成方法を実行すると、図3に示す最適化されたフラットなレイアウトパターンデータ200の内、新たに挿入されたすべてのセルに対して、階層構造を示すインスタンスが付与される。
具体的に示すと、以下のようになる。すなわち、
バッファ211には、「インスタンスChip/A/reg1/dbuf1」、
バッファ212には、「インスタンスChip/A/reg2/dbuf2」、
バッファ221には、「インスタンスChip/B/reg1/dbuf3」、
バッファ222には、「インスタンスChip/B/reg2/dbuf4」、バッファ231には、「インスタンスChip/C/reg1/dbuf5」、
バッファ232には、「インスタンスChip/C/reg2/dbuf6」、
バッファ241には、「インスタンスChip/D/reg1/dbuf7」、
バッファ242には、「インスタンスChip/D/reg2/dbuf8」が、それぞれ、階層構造を示すセルインスタンスとして付与される。
バッファ211には、「インスタンスChip/A/reg1/dbuf1」、
バッファ212には、「インスタンスChip/A/reg2/dbuf2」、
バッファ221には、「インスタンスChip/B/reg1/dbuf3」、
バッファ222には、「インスタンスChip/B/reg2/dbuf4」、バッファ231には、「インスタンスChip/C/reg1/dbuf5」、
バッファ232には、「インスタンスChip/C/reg2/dbuf6」、
バッファ241には、「インスタンスChip/D/reg1/dbuf7」、
バッファ242には、「インスタンスChip/D/reg2/dbuf8」が、それぞれ、階層構造を示すセルインスタンスとして付与される。
クロックスキュー調整のために新しく挿入された、バッファ213、223、233、243は、それぞれの出力が、複数のセルに接続されている。本形態のセルインスタンス生成方法では、この場合、それぞれのセルのインスタンスを、アルファベット順および数字の小さい順に選択して、引用するセルを決定している。
具体的に示すと、以下のようになる。すなわち、
バッファ213には、「インスタンスChip/A/reg1/cbuf1」、バッファ223には、「インスタンスChip/B/reg1/cbuf2」、バッファ233には、「インスタンスChip/C/reg1/cbuf3」、バッファ243には、「インスタンスChip/D/reg1/cbuf4」が、それぞれ、階層構造を示すセルインスタンスとして付与される。
バッファ213には、「インスタンスChip/A/reg1/cbuf1」、バッファ223には、「インスタンスChip/B/reg1/cbuf2」、バッファ233には、「インスタンスChip/C/reg1/cbuf3」、バッファ243には、「インスタンスChip/D/reg1/cbuf4」が、それぞれ、階層構造を示すセルインスタンスとして付与される。
以上の階層構造インスタンス付与処理により、図3に示す最適化されたフラットなレイアウトパターンデータ200のすべてのセルに、階層構造を示すセルインスタンスが付与されることになる。図6は、本発明の実施の形態1における階層構造インスタンス付与後のフラットなレイアウトパターンデータ(最適化済)の例示図である。図6は、階層構造インスタンス付与処理が完了した状態を表している。
なお、以上説明した本形態の実施例では、最適化処理によって新たに挿入されるセルは、バッファに限定して記載しているが、最適化処理では、いくつかの論理セルが複合化されたセルなども含まれる。
(実施の形態2)
図7は、本発明の実施の形態2における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図である。
図7は、本発明の実施の形態2における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図である。
図7に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理と階層構造インスタンス付与処理により、
フリップフロップ301には、「インスタンスChip/E/reg1」、
フリップフロップ302には、「インスタンスChip/F/reg1」、
フリップフロップ303には、「インスタンスChip/F/reg2」、
フリップフロップ305には、「インスタンスChip/G/reg1」、
論理積回路304には、「インスタンスChip/F/and1」が、それぞれ付与されている。
フリップフロップ301には、「インスタンスChip/E/reg1」、
フリップフロップ302には、「インスタンスChip/F/reg1」、
フリップフロップ303には、「インスタンスChip/F/reg2」、
フリップフロップ305には、「インスタンスChip/G/reg1」、
論理積回路304には、「インスタンスChip/F/and1」が、それぞれ付与されている。
また、図7に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理により、バッファ306が新たに挿入されている。バッファ306の出力は、配線307を介して、フリップフロップ302に接続され、配線308を介して、論理積回路304に接続され、配線309を介して、フリップフロップ305に接続されている。
以下に、新しく挿入されたバッファ306に対する、本形態のセルインスタンス生成方法について説明する。
図8は、本発明の実施の形態2におけるセルインスタンス生成のフローチャートである。
図8に示すステップS30において、インスタンス生成処理が開始されると、ステップS31において、新規に挿入されたセルを検索する。
ステップS32において、検索した新規挿入セルの出力側セルのインスタンスを抽出する。
ステップS33において、新規挿入セルの出力側は、複数のセルに接続しているかどうかを判定する。判定結果が「Yes」(複数のセルに接続している)の場合は、制御をステップS34に進める。判定結果が「No」(複数のセルに接続していない)の場合は、制御をステップS35に進める。
ステップS34において、新規挿入セルの出力側に接続している数のセルの内、新規挿入セルとの配線長が一番長いセルを検索して、そのセルのインスタンスを抽出して、ステップS35に進む。
ステップS35では、新規挿入セルの出力側に複数のセルが接続している場合は、ステップS34で抽出したインスタンスを選択し、新規挿入セルの出力側に複数のセルが接続していない場合は、ステップS32で抽出したインスタンスを選択して、そのインスタンスに階層構造を示すインスタンスが付加されているかどうかを判定する。判定結果が「Yes」(付加されている)の場合は、制御をステップS37に進める。判定結果が「No」(付加されていない)の場合は、制御をステップS36に進める。
ステップS36において、インスタンスを抽出したセルの出力側セル(すなわち、さらに下流側のセル)を検索し、そのセルのインスタンスを抽出し、制御をステップS33に戻す。
ステップS33からステップS36までを繰り返すことにより、最終的に階層構造を示すインスタンスが付加されているセルに辿り着く。
ステップS37では、ステップS36において抽出された階層構造を示すインスタンスを引用して、階層構造を示すインスタンスが未だ付加されていないセルに対するインスタンスを生成する。
ステップS38において、新規挿入セルのインスタンスを生成し、ステップS39において、処理を終了する。
図8のフローチャートに従って、本形態のセルインスタンス生成方法を、図7のバッファ306に対して適用することにより、バッファ306のインスタンスは以下のようにして決定される。ここでは、図7において、配線長が、配線307>配線308>配線309の順に長いと仮定する。
図8のステップS31において、新規挿入セルとして、図7のバッファ306が検索される。
ステップS33において、バッファ306が複数のセルに接続されていることを判定して、ステップS34に進む。
ステップS34において、配線長が一番長い配線307に接続されたセルとして、フリップフロップ302を選択し、そのセルのインスタンス「Chip/F/reg1」を抽出する。
ステップS35において、抽出したインスタンス「Chip/F/reg1」には、階層構造インスタンスが付与されているので、判定結果は「Yes」となり、ステップS37に進む。
ステップS37では、実質処理はなく、ステップS38において、新規挿入セルバッファ306のセルインスタンスとして、「Chip/F/reg1/dbuf」が生成される。
以上のように、本形態のセルインスタンス生成方法では、新規挿入されたセルの出力側に複数のセルがある場合、当該セルと複数のセルの間の配線長の大小を判定基準にして、出力側にある複数のセルのいずれかを選択する。
上述の判定基準を、「配線容量が大きい順」とすることも出来る。この場合には、図8のステップS34の、「配線長の一番長いセルのインスタンス抽出」を「配線容量の一番大きいセルのインスタンス抽出」に変更すればよい。そして、配線容量が、配線309>配線308>配線307の順に大きいと仮定すると、バッファ306には、セルインスタンスとして、「Chip/G/reg1/dbuf」が生成される。
(実施の形態3)
図9は、本発明の実施の形態3における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図である。
図9は、本発明の実施の形態3における途中段階の階層構造インスタンス付与後のフラットなレイアウトパターンデータの部分例示図である。
図9に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理と階層構造インスタンス付与処理により、
フリップフロップ401には、「インスタンスChip/H/reg1」が、
フリップフロップ402には、「インスタンスChip/J/reg1」が、それぞれ付与されている。
フリップフロップ401には、「インスタンスChip/H/reg1」が、
フリップフロップ402には、「インスタンスChip/J/reg1」が、それぞれ付与されている。
また、図9に示すフラットなレイアウトパターンデータの部分例示図では、最適化処理により、タイミング調整用として、バッファ403、404、405、406が、数珠繋ぎに新たに挿入されている。
以下に、新しく挿入されたバッファ403、404、405、406に対する、セルインスタンスの付与方法について説明する。
図10は、本発明の実施の形態3におけるセルインスタンス生成のフローチャートである。
図10に従って、本形態のセルインスタンス生成方法を説明すると、ステップS40で処理が開始され、ステップS41において、新たに挿入されたセルが検索される。
ステップS42において、新たに挿入されたセルの入力側セルと出力側セルのそれぞれのインスタンスが抽出される。
ステップS43において、ステップS42において抽出した入力側セルと出力側セルのいずれのインスタンスにも、階層構造インスタンスが付加されているかどうかを判定する。判定結果が、「Yes」(いずれも付加されている)の場合は、制御をステップS47に進め、「No」(少なくともいずれか一方が付加されていない)の場合は、制御をステップS44に進める。
ステップS44において、抽出したインスタンスを入力側のセルと出力側のセルとに分ける。
ステップS45では、入力側について、インスタンスを抽出したセルの入力側セル(すなわち、さらに上流側のセル)を検索し、そのセルのインスタンスを抽出し、制御をステップS43に戻す。
ステップS46では、出力側について、インスタンスを抽出したセルの出力側セル(すなわち、さらに下流側のセル)を検索し、そのセルのインスタンスを抽出し、制御をステップS43に戻す。
ステップS43からステップS46を繰り返すことにより、新規挿入セルに対して、その入力側と出力側において、いずれも階層構造インスタンスを有するセルに最終的に到達することが出来る。
ステップS47において、新規挿入セルの個数と、階層構造インスタンスが付加されていないセルの個数とを算出する。
ステップS48において、新規挿入セルと階層構造インスタンスが付加されていないセルとを、予め定められた割合で、上流側セルと下流側セルとに分割する。 ステップS49において、新規挿入セルが、ステップS48で分割された上流側セルに属するか、下流側セルに属するかを判定する。判定結果が、「Yes」(上流側セルに属する)の時は、制御をステップS50に進め、判定結果が、「No」(下流側セルに属する)の時は、制御をステップS51に進める。
ステップS50において、ステップS45で抽出した上流側セルの階層構造インスタンスを付加して、新規挿入セルのインスタンスを生成し、ステップS52で、処理を終了する。
ステップS51において、ステップS46で抽出した下流側セルの階層構造インスタンスを付加して、新規挿入セルのインスタンスを生成し、ステップS52で、処理を終了する。
図10のフローチャートに従って、本形態のセルインスタンス生成方法を、図9のバッファ404に対して適用すると、バッファ404のインスタンスは以下のようにして決定される。ここでは、新規挿入されたセルは、バッファ403〜406の4個である。新規挿入されたセルを除けば、階層構造インスタンスが付与されていないセルはないと仮定する。また、数珠繋ぎのセルの上流側、下流側の分割割合は、50%−50%と設定する。
なお、以下の説明では、バッファ403については、すでにセルインスタンス付与処理が終わっており、そのセルインスタンスとして、「Chip/H/reg1/dbuf1」が生成されているものとする。
図10のステップS41において、処理対象の新規挿入セルとして、図9のバッファ404が検索される。
ステップS42において、バッファ404の入力側セル(バッファ403)のインスタンス「Chip/H/reg1/dbuf1」が抽出され、下流側セル(バッファ405)のインスタンス「dbuf3」が抽出される。
ステップS43において、抽出したインスタンスに階層構造インスタンスが付加されているかどうかを判定する。本形態の例では、入力側セルのインスタンスには階層構造インスタンスが付加されているが、出力側セルのインスタンスには階層構造インスタンスが付加されていない。従って、判定結果は、「No」となる。
ステップS44において、階層構造インスタンスが付加されていないインスタンスのセルは、出力側セルであると判定して、制御をステップS46に進める。
ステップS46では、バッファ405の出力側セル、すなわち、バッファ406のインスタンス「dbuf4」が抽出される。そして、制御は、ステップS43に戻る。
ステップS43〜ステップS46の処理が再度行われ、最終的に、ステップS46において、出力側セルに階層構造インスタンス「Chip/J/reg1」が抽出される。その結果、ステップS43の判定結果は、「Yes」となり、制御は、ステップS47に進む。
ステップS47において、新規挿入セルの個数「4」と階層構造インスタンス未付加セルの個数「0」とが算出される。
ステップS48において、4個の新規挿入セルが、予め設定された分割割合(50%−50%)で上流側セル(バッファ403とバッファ404)と下流側セル(バッファ405とバッファ406)とに分割される。
ステップS49において、処理対象の新規挿入セルであるバッファ404は、上流側セルに属すると判定して、制御をステップS50に進める。
ステップS50において、処理対象の新規挿入セルであるバッファ404のセルインスタンスとして、上流側階層構造インスタンスを付加した「Chip/H/reg1/dbuf1/dbuf2」が生成される。
その他の新規挿入セルに対しても、同様のセルインスタンス生成を行う。その結果、最終的に、図9の新たに挿入された4個のセルには、以下のセルインスタンスが生成される。
バッファ403には、「Chip/H/reg1/dbuf1」、
バッファ404には、「Chip/H/reg1/dbuf1/dbuf2」、
バッファ405には、「Chip/J/reg1/dbuf4/dbuf3」、
バッファ406には、「Chip/J/reg1/dbuf4」
が、それぞれの、階層構造を示すセルインスタンスとして生成される。
バッファ403には、「Chip/H/reg1/dbuf1」、
バッファ404には、「Chip/H/reg1/dbuf1/dbuf2」、
バッファ405には、「Chip/J/reg1/dbuf4/dbuf3」、
バッファ406には、「Chip/J/reg1/dbuf4」
が、それぞれの、階層構造を示すセルインスタンスとして生成される。
以上説明したように、本形態のセルインスタンス生成方法によれば、数珠繋ぎに複数個挿入されたセルに対して、一義的に階層構造を示すセルインスタンスを生成することが出来る。
本発明のセルインスタンス生成方法によれば、フラットなレイアウトパターンデータのみで最適化処理を行なう際に、階層構造を示すインスタンスを付与することが可能である。すなわち、他のデータの作成や比較処理などを必要とせずに、フラットなレイアウトパターンデータから生成されたネットリストのインスタンスを指定することで、階層構造の単位でセルを抽出可能になる。従って、大規模集積回路に本発明のセルインスタンス生成方法を適用すれば、ネットリストを用いた階層構造単位の面積算定や、階層構造単位での消費電力解析が可能となる。
以上説明したように、本発明の趣旨は、フラットなレイアウトパターンデータに対して、セルインスタンスを一義的に生成可能なセルインスタンス生成方法を提供することにあるのであって、本発明の趣旨を逸脱しない限り、種々の変更が可能である。
本発明に係わるセルインスタンス生成方法は、例えば、EDAツール(電子回路自動設計ツール)等、半導体集積回路用CADシステムとその応用分野において利用できる。
100 Chip
110 セルA
120 セルB
130 セルC
140 セルD
111、112、113、121、122、123、131、132、133、141、142、143、301、302、303、305、401、402 フリップフロップ
211、212、213、221、222、223、231、232、233、241、242、243、306、403、404、405、406 バッファ
304 論理積回路
110 セルA
120 セルB
130 セルC
140 セルD
111、112、113、121、122、123、131、132、133、141、142、143、301、302、303、305、401、402 フリップフロップ
211、212、213、221、222、223、231、232、233、241、242、243、306、403、404、405、406 バッファ
304 論理積回路
Claims (7)
- 階層構造を有するレイアウトパターンデータをセルに展開して、フラットなレイアウトパターンデータを得る展開工程と、
前記展開工程において得られたフラットなレイアウトパターンデータに対して最適化処理を施す最適化工程と、
前記最適化工程において最適化されたフラットなレイアウトパターンデータに新たに含まれる第1のセルに対して、階層構造を示すインスタンスを付与する付与工程とを含み、
前記付与工程では、前記第1のセルが接続される入力側の第2のセルと出力側の第3のセルのいずれか一方のセルの階層構造を示すインスタンスを引用して、前記第1のセルのインスタンスを生成するセルインスタンス生成方法。 - 前記付与工程では、前記第2のセルと前記第3のセルが複数個存在する場合、前記複数個のセルのインスタンスの内、アルファベット順、数字順、及び、文字コード順の内の少なくとも1つの順序に従って選択されたインスタンスを引用して、前記第1のセルのインスタンスを生成する、請求項1記載のセルインスタンス生成方法。
- 前記付与工程では、前記第2のセルと前記第3のセルが複数個存在する場合、前記複数個のセルの内、セルの個数の大小に基づいて選択されたセルのインスタンスを引用して、前記第1のセルのインスタンスを生成する、請求項1記載のセルインスタンス生成方法。
- 前記付与工程では、前記第2のセルと前記第3のセルが複数個存在する場合、前記複数個のセルの内、前記第1のセルと前記複数個のセルとの間の配線長と接続容量の内の少なくとも1つに基づいて選択されたセルのインスタンスを引用して、前記第1のセルのインスタンスを生成する、請求項1記載のセルインスタンス生成方法。
- 前記付与工程では、前記第1のセルが数珠繋ぎに複数個存在する場合、予め定められた割合で上流側セルと下流側セルに前記複数個のセルを分割し、前記上流側セルに対しては、前記第2のセルのインスタンスを引用し、前記下流側セルに対しては、前記第3のセルのインスタンスを引用して、前記第1のセルのインスタンスを生成する、請求項1記載のセルインスタンス生成方法。
- 前記付与工程では、前記第2のセルが階層構造を示すインスタンスを有していない場合、さらに上流側のセルを前記第2のセルとする、請求項1記載のセルインスタンス生成方法。
- 前記付与工程では、前記第3のセルが階層構造を示すインスタンスを有していない場合、さらに下流側のセルを前記第3のセルとする、請求項1記載のセルインスタンス生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005020098A JP2006209432A (ja) | 2005-01-27 | 2005-01-27 | セルインスタンス生成方法 |
US11/339,736 US20060190890A1 (en) | 2005-01-27 | 2006-01-26 | Cell instance generating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005020098A JP2006209432A (ja) | 2005-01-27 | 2005-01-27 | セルインスタンス生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006209432A true JP2006209432A (ja) | 2006-08-10 |
Family
ID=36914328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005020098A Pending JP2006209432A (ja) | 2005-01-27 | 2005-01-27 | セルインスタンス生成方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060190890A1 (ja) |
JP (1) | JP2006209432A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4843583B2 (ja) * | 2007-09-10 | 2011-12-21 | 株式会社東芝 | 情報処理装置、電源系統ツリー作成方法およびプログラム |
US8255845B2 (en) * | 2007-11-30 | 2012-08-28 | Cadence Design Systems, Inc. | System and method for generating flat layout |
WO2009070177A1 (en) * | 2007-11-30 | 2009-06-04 | Cadence Design Systems, Inc. | System and method for generating flat layout |
CN109753697B (zh) * | 2018-12-14 | 2023-03-03 | 中国汽车技术研究中心有限公司 | 一种用于可外接充电式混合动力燃料电池汽车的能耗计算方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001188817A (ja) * | 1999-12-28 | 2001-07-10 | Toshiba Corp | 論理合成装置、論理合成方法、論理合成プログラムを格納したコンピュータ読取り可能な記録媒体および回路製造方法 |
US7111269B2 (en) * | 2003-10-23 | 2006-09-19 | Lsi Logic Corporation | Comparison of two hierarchical netlist to generate change orders for updating an integrated circuit layout |
US7401319B2 (en) * | 2004-12-23 | 2008-07-15 | Invarium, Inc. | Method and system for reticle-wide hierarchy management for representational and computational reuse in integrated circuit layout design |
-
2005
- 2005-01-27 JP JP2005020098A patent/JP2006209432A/ja active Pending
-
2006
- 2006-01-26 US US11/339,736 patent/US20060190890A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20060190890A1 (en) | 2006-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4719265B2 (ja) | 確率的相互接続構造設計のためのシステムおよび方法 | |
US6449761B1 (en) | Method and apparatus for providing multiple electronic design solutions | |
US6446239B1 (en) | Method and apparatus for optimizing electronic design | |
CN101187957B (zh) | 设计集成电路的公共时钟域中的多个锁存器的布图的系统和方法 | |
KR100249251B1 (ko) | 논리회로 최적화 장치 및 그 방법 | |
US20090228848A1 (en) | Circuit verification apparatus, a method of circuit verification and circuit verification program | |
US6990651B2 (en) | Advanced design format library for integrated circuit design synthesis and floorplanning tools | |
Zhang et al. | RegularRoute: An efficient detailed router applying regular routing patterns | |
US20110023000A1 (en) | Generating integrated circuit floorplan layouts | |
US8312405B1 (en) | Method of placing input/output blocks on an integrated circuit device | |
JP2006209432A (ja) | セルインスタンス生成方法 | |
US10325050B2 (en) | User-defined partitions for logical and physical circuit syntheses | |
US7006962B1 (en) | Distributed delay prediction of multi-million gate deep sub-micron ASIC designs | |
JP2003316843A (ja) | 半導体集積回路設計方法及び半導体集積回路設計プログラム | |
US6868535B1 (en) | Method and apparatus for optimizing the timing of integrated circuits | |
JP3476688B2 (ja) | ネットリスト生成方法及びネットリスト生成装置 | |
US6877140B1 (en) | Method and system for generating a schematic representing bus structures | |
JP4587754B2 (ja) | クロック合成方法、半導体装置及びプログラム | |
CN113688587B (zh) | 一种电路布图的生成方法、装置、计算机设备及存储介质 | |
Yu et al. | Voltage-island driven floorplanning considering level-shifter positions | |
JP2008123458A (ja) | 半導体集積回路の設計方法 | |
JP4568599B2 (ja) | 論理回路分割方法及び装置 | |
JP6398729B2 (ja) | 設計支援装置、および設計支援方法 | |
JP2835082B2 (ja) | 論理回路合成装置 | |
JP6405970B2 (ja) | 半導体装置の設計方法、設計装置、及び半導体装置 |