JP3710710B2 - Icレイアウトにおけるポリゴン表現 - Google Patents
Icレイアウトにおけるポリゴン表現 Download PDFInfo
- Publication number
- JP3710710B2 JP3710710B2 JP2000519466A JP2000519466A JP3710710B2 JP 3710710 B2 JP3710710 B2 JP 3710710B2 JP 2000519466 A JP2000519466 A JP 2000519466A JP 2000519466 A JP2000519466 A JP 2000519466A JP 3710710 B2 JP3710710 B2 JP 3710710B2
- Authority
- JP
- Japan
- Prior art keywords
- wire
- polygon
- data
- segment
- generating
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L21/00—Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
- H01L21/70—Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
- H01L21/77—Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
- H01L21/78—Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
- H01L21/82—Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
-
- 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
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/80—Methods for connecting semiconductor or other solid state bodies using means for bonding being attached to, or being formed on, the surface to be connected
- H01L24/85—Methods for connecting semiconductor or other solid state bodies using means for bonding being attached to, or being formed on, the surface to be connected using a wire connector
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/0001—Technical content checked by a classifier
- H01L2924/00014—Technical content checked by a classifier the subject-matter covered by the group, the symbol of which is combined with the symbol of this group, being disclosed without further technical details
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
Description
【発明の属する分野】
本発明は、集積回路(IC)の設計に関し、特に、集積回路レイアウト内でポリゴンを表現するための方法及び装置に関する。
【0002】
【発明の背景】
集積回路設計の世界では、”レイアウト”は、一般にポリゴンの形で表現される幾何学的パターンであり、これによってICの製造において半導体デバイスや該デバイス間の電気接続を作るために用いられる、異なる種類の部材の大きさや配置が記述される。例えば、IC上の拡散開口は、製造設備において”拡散層構造”と解釈される1以上のポリゴンによって、レイアウト内に表現し得る。部材の他の層や、接点やビアなどの形状は、同様にICレイアウト内に表現し得る。ICレイアウト内のポリゴンは、特定の種類の部材の最小サイズや、異なる種類の部材間の最小間隔要求を規定する設計ルールを満足しなければならない。この設計ルールはまた、接点のような他の層の形状のためのサイズ及び間隔の要求を記述する。
【0003】
時として、ICレイアウトはコンピュータ支援設計(CAD)システムを用いて手書きされる。このアプローチは、比較的少数のデバイスを持つICレイアウトを設計するのに適当である。しかしながら、近年の製造技術は、単一のシリコン基板上に数百万のトランジスタを配置することを可能にする。数百万のトランジスタを含むICレイアウトを手書きすることは、例え、描く必要のある個々のトランジスタの数を減らすために標準的なセルを用いるにしても、膨大な時間を必要とするので現実的でない。このため、さまざまなコンピュータをベースとしたICレイアウト設計ツールが開発され、ICレイアウトの生成を自動化している。2種類のレイアウト設計ツールは、リーフセル小型化ツール(leaf cell compaction tools)及びリーフセル合成ツール(leaf cell synthesis tools)を含む。ICレイアウトの世界では、用語”リーフセル”は、NAND論理演算やビット情報の記憶などの特定の機能を協働して実行する、通常、2つから数百のトランジスタのグループを参照する。
【0004】
リーフセル小型化ツールは、既存のICレイアウトのサイズを削るために用いられる。殆どのリーフセル小型化ツールは、ポリゴンの余分な間隔をなくすことによって垂直又は水平方向の何れかにおいて、レイアウトを小型化する。”完全な”小型化は、ときとして水平方向におけるレイアウトの最初の圧縮の後、垂直方向におけるレイアウトの圧縮を与える。しかしながら、殆どのリーフセル小型化ツールは、またICレイアウト内のポリゴン点の統一を、それが特定の製造プロセスの設計ルールに適合するまで、調整する機能があり、これは現在の設計ルールから新しい設計ルールへ既存のレイアウトを移植するために役立つ。リーフセル小型化ツールのこのような利益にも拘らず、小型化が一般に一次元処理であるため、小型化されたレイアウトでさえ、比較される手書きセルよりも大きい。また、小型化ツールは、設計ルールにおける非線形の変化(例えば、接点の周りを覆う比例して増加する金属)が、しばしばそれらの新しい設計ルールでレイアウトを描くときに、レイアウト設計者に異なる判断をさせるにも拘らず、既存のレイアウト構造を持続する。
【0005】
リーフセル小型化ツールとは対照的に、リーフセル合成ツールは、トランジスタのサイズ及びトランジスタ間の電気接続を記述するトランジスタレベルのネットリストに基づいて、新しいリーフセルレイアウトを生成する能力を持っている。レイアウト合成システムは、既存のレイアウト構造を維持する必要がないので、トランジスタの並び替え、他の列へのトランジスタの配置、資源を有効にするルートの再配置などによって、設計ルールや回路要求の完全な利益を享受できる。多くのレイアウト合成システムは、レイアウトの生成における最後のステップとして、小型化を使用するが、これは既存のレイアウトを小型化するだけのものよりも更に小型のレイアウトを生成することができる。
【0006】
殆どのICレイアウト設計ツールは、レイアウトに含まれるポリゴンの内部表現を生成する。ICレイアウト内にポリゴンを表現するための2つのアプローチは、一般ポリゴンアプローチ、及び線又はパスアプローチを含む。
【0007】
一般ポリゴンアプローチは、ICレイアウト内に含まれるポリゴンを構成するために用いられる矩形又は台形を表現する点の単一リストを用いる。各矩形又は台形は、同じ向きの並行の側面を備え、これは4つの点で規定される。複雑なポリゴンは、互いに隣接した複数の台形を配置することにより表現される。一般ポリゴンアプローチは、融通性があり、あらゆるレイアウト構成を表現するための自由度がある。台形には、好適な方向や”巻き方向”はない。従って、台形が特定の角について参照されず、台形の側面が、例えば電流に関して順序付けられていない。しかしながら、その融通性という性質は、一般ポリゴンアプローチをソフトウェアに実装することを困難にする。殆どの合成ソフトウェアは、単一のポリゴン内に含むことができる点の数を制限しているため、極めて多くの台形を含んでいる複雑なポリゴンは、より小さいポリゴンに細分化されなければならない。ポリゴンを多数の台形や矩形に細分化する必要性は、その目的を曖昧にし、抵抗やトランジスタデバイスのサイズなどの有用な属性を決定することを困難にする。また、ポリゴン内の比較的単純な変更は、台形表現の大規模な再構築に終わる可能性がある。多くのツールは、台形から作られる直交しない構造を操作するのに必要とされるアルゴリズムが複雑なので、矩形のみを用いる。最も単純と言えども全てのポリゴンを表現するためには、極めて多数の台形又は矩形が必要とされる。結局、一般ポリゴンアプローチの実装は、ポリゴン間の使用されない間隔を含む、総設計間隔を表現し、これは、ポリゴンの総数を増やし、レイアウトを表現するためのより多くのデータを必要とする。
【0008】
線又はパスアプローチは、中央線及びこの中央線に沿う各点毎のポリゴンの幅を用いてポリゴンを表現する。このアプローチの単純構造は、合成ツールへ容易に実装でき、拡散アイランド間のルーティングを単純にする。また、この幅及び抵抗のパスは、簡単に計算できる。殆どのレイアウト構造は、線の連鎖や線の相互の配置をすることなく表現でき、このアプローチは、多くのルーティングツールで用いられている。しかしながら、パスアプローチは、ポリゴンが並行な側面を持つことを必要とし、それが、八角形状の接点、不規則な形状の拡散アイランド、幅が変化する線などの、より複雑な形状にとって不適当なものとなる。
【0009】
ICレイアウト合成ツールにおけるポリゴンを表現する必要性、及び既存のアプローチにおける制限の観点から、ICレイアウトにおけるポリゴンを表現する他のアプローチが求められている。
【0010】
【本発明の概要】
本発明の一側面によれば、ICレイアウトのデータ表現を生成するためのアプローチが提供される。このコンピュータシステムは、メモリ及び該メモリに接続された1以上のプロセッサを備える。前記メモリは、1組の命令を含み、これが前記1以上のプロセッサで実行されたときに、該1以上のプロセッサに複数のステップを実行させる。第1に、ICレイアウトにより表現される1組のICデバイスを表現するポリゴンに関連づけられたポリゴンデータが生成され、この中で前記ポリゴンが1以上のワイヤによって表現される。次に、1以上のワイヤを表現し、前記ポリゴンデータへの少なくとも1つの参照を含むワイヤデータを生成し、この中で各ワイヤが1以上のワイヤセグメントによって表現される。そして、各ワイヤ毎の1以上のワイヤセグメントを表現すると共に、前記ワイヤデータへの少なくとも1つの参照を含むワイヤセグメントデータが生成される。前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照が生成される。最後に、前記ワイヤデータ内に、前記ワイヤセグメントデータを参照する少なくとも1つの参照が生成される。
【0011】
本発明の他の側面によれば、ポリゴンデータの有効性検査を実行するためのアプローチが提供される。最初に、1以上のポリゴンから、検査のために第1のポリゴン及び第2のポリゴンが選択される。次に、前記第1のポリゴンから前記第2のポリゴンへの標準方向が決定される。最後に、前記第1のポリゴンから前記第2のポリゴンへの標準方向に基づいて、前記第1のポリゴンと前記第2のポリゴンの間の間隔が、所定の間隔規則を満たしているかどうかの判断がなされる。前記第1のポリゴンと前記第2のポリゴンの間の前記間隔が、所定の間隔規則を満たしていないときには、前記第2のポリゴンを、前記第1のポリゴンに対し、前記第2のポリゴンに近接する前記第1のポリゴンの2側面の方向と反対方向に行くよう移動する。
【0012】
【好適な実施例の詳細な説明】
ICレイアウトにおいてポリゴンを表現するための新規な方法について説明する。以下の説明では、本発明の完全な理解が得られるよう、解説のために特定の詳細について述べる。しかし、本発明がそうした特定の詳細によらなくても実施できることは理解されるであろう。他の例では、本発明を不必要に曖昧にすることを避けるため公知の構造および装置はブロック図の形式で示している。
【0013】
[機能概要]
概略、本発明によれば、ICレイアウトのポリゴンは、各々が1個以上のワイヤセグメントによって表現される1個以上のワイヤによって表現される。各ワイヤセグメントは一対の有向ワイヤより形成される。ワイヤ、ワイヤセグメントおよび有向ワイヤを表現するデータを維持するために新規なデータ構造階層が付与される。このデータ構造階層は、ICレイアウトの妥当性検査を実行するためにICレイアウト合成において使用される。
【0014】
[詳細な説明]
1)標準配向
図1に示すように、標準配向は、所定の配向キー100に関するICレイアウトジオメトリの方向を一般に示す。本発明の1変更例によれば、ICレイアウトジオメトリは、8個の標準配向のいずれかで方向づけられ、各標準配向は45°の倍数を表現する。標準配向は、配向キー100の上方に始まり、時計回りに進み、(上)、(右上)、(右)、(右下)、(下)、(左下)、(左)および(左上)を含む。
【0015】
標準配向は方向づけられるICレイアウトジオメトリに加え、ICレイアウト特徴間の関係も標準配向によって記述される。例えば、図2に示すように、ワイヤ200は端点202および204によって規定される。本発明の実施例によれば、ワイヤ200の標準配向は端点202に対する端点204の位置にもとづく。従って、ワイヤ200は、方向矢205によって指示される通り、(右上)方向で配向または方向づけられる。ワイヤが指向し得る方向にいかなる制限もない。例えば、端点204が端点202の左下にある場合、ワイヤ200の標準配向は(左下)になるであろう。さらに、点206がワイヤ200の左側(左)に位置し、点208がワイヤ200の上方右側(右上)に位置する。この手法は、ワイヤ200と点206との間の間隔が、後述する通り1組の所定の間隔判定規則を満たすかどうかを判断するために有効である。
【0016】
前述のように、ICレイアウトポリゴンは1個以上のワイヤによって表現され、各ワイヤは1個以上のワイヤセグメントによって表現される。本発明の実施例によれば、各ワイヤセグメントは4個の辺、2個の側面(左および右)および2個の端面(第1および第2)を有する。側面は、ほぼ同じ方向に向いているが、平行であるまたは一致した端点を有する必要はない一対の有向縁によって表現される。本発明の一実施例によれば、左右の側面はそれぞれ、相互に対して角度45°の倍数でなければならないが、端面は相互に対して任意の角度であってよい。一般に、端面はワイヤの露出端では45°の倍数であるが、「内部の」端面は任意の角度であってよい。ワイヤに関しては、ワイヤセグメントは、図1に関して前述したように任意の方向で指向することができる。本発明の一実施例によれば、ワイヤセグメントの全部の点は、各面が非ゼロの長さおよび所定の方向を有するために一致しなくてもよい。
【0017】
図3は、ワイヤセグメント302および、本発明の実施例に従ってワイヤセグメント302と45°の角度で結合されたワイヤセグメント304から構成されたワイヤ300を示している。ワイヤセグメント302は、ワイヤセグメント302の右側面を構成する第1の有向縁306およびワイヤセグメント302の左側面を構成する第2の有向縁308より構成される。ワイヤセグメント302は第1の端面310および第2の端面312も備える。両方の有向縁306および308は(下)方向を指向している。従って、ワイヤセグメント302も(下)方向を指向する。
【0018】
ワイヤセグメント304は、第1の有向縁314および第2の有向縁316より構成される。両方の有向縁314および316は、(右下)方向に向いており、従って、ワイヤセグメント304を(右下)方向に向けている。ワイヤセグメント304は、ワイヤセグメント302の第2の端面と一致する第1の端面312および、第2の端面318を含む。
【0019】
2)データ構造
本発明の実施例によれば、図4A〜Gに例示するようにICレイアウトにおいてポリゴンを表現するための新規のデータ構造アーキテクチャが提供される。本発明の一実施例によれば、ICレイアウトの各ポリゴンは、1個以上のワイヤによって表現される。各ワイヤは、各々が一対の有向ワイヤによって表現される1個以上のワイヤセグメントによって表現される。各ワイヤセグメントはそれが含まれるワイヤを参照し、各ワイヤはそれが含まれるポリゴンを参照する。従って、単一のワイヤセグメントの参照が与えられると、全体のポリゴンが位置づけられ、操作することができる。
【0020】
図4Aは、本発明の実施例に従った点データ構造400の場合を例示する。点データ構造400は、ICレイアウトにおけるある点に関するX座標およびY座標(X座標、Y座標)を指定することによって、ICレイアウトにおける点の位置を指定する。
【0021】
図4Bは、有向ワイヤデータ構造410の内容を例示する。有向ワイヤデータ構造410は、対応する有向ワイヤの第1の端点(END1)および第2の端点(END2)を指定する。有向ワイヤデータ構造410はまた、有向ワイヤの方向(方向)も指定する。前述の通り、有向ワイヤは、図1に図示の通り、8つの所定の方向のうちのいずれか1つに方向づけることができる。
【0022】
有向ワイヤデータ構造410は、直交フラグ(直交)および八分角フラグ(八分角)も指定する。直交フラグは、有向ワイヤが90°の倍数である角度で方向づけられているか否かを指示するブールフラグであり、八分角フラグは、有向ワイヤが45°の倍数である角度で方向づけられているか否かを指定するブールフラグである。本発明の一実施例によれば、直交フラグまたは八分角フラグのいずれも設定されていない場合、その有向ワイヤは、「半端な」角度、すなわち45°または90°以外の角度で方向づけられており、それは場合によっては、有向ワイヤの座標を計算するために浮動小数点算術を要する。
【0023】
図4Cは、ワイヤセグメントの左縁(左縁)および右縁(右縁)を指定するワイヤセグメントデータ構造420の内容を例示する。左縁および右縁はそれぞれ、有向ワイヤデータ構造410を参照する。ワイヤセグメントデータ構造420はまた、そのワイヤにおける次のワイヤセグメント(次のワイヤセグメント)および前のワイヤセグメント(前のワイヤセグメント)に対する参照も含み、二重にリンクされたリストを形成する。ワイヤにおける第1のワイヤセグメントのワイヤセグメントデータ構造は、そのワイヤセグメントが前のワイヤセグメントを参照しないことを指示するために所定の値を指定する。本発明の一実施例によれば、NULL値が所定の値として使用される。同様に、ワイヤの最後のワイヤセグメントのワイヤセグメントデータ構造は、そのワイヤセグメントが次のワイヤセグメントを参照しないことを指示するために所定の値を指定する。ワイヤデータ構造420の実施例を二重リンクリストの文脈において説明したが、二重リンクリストは必要ではない。
【0024】
ワイヤセグメントデータ構造420は、そのワイヤを含む親ワイヤ(親ワイヤ)に対する参照および、現在のワイヤセグメントの露出端面が別のワイヤの側面と接触し分岐を形成する場合に関係する分岐データ構造に対する参照(分岐)も含んでいる。分岐データ構造の内容は後述する。分岐データ構造は、記憶域を節約するために、分岐を持たないワイヤセグメントには割り当てられない。
【0025】
図4Dは、ワイヤデータ構造430の内容を例示する。ワイヤデータ構造430は、親ポリゴン(親ポリゴン)および、そのワイヤを識別する分岐番号(分岐番号)に対する参照を指定する。ワイヤデータ構造430はまた、そのワイヤのワイヤセグメントの全部を包囲する境界ボックス(BBX)も指定する。境界ボックスは、ワイヤが領域クエリーによって返されたとしても、そのワイヤセグメントのいずれもクエリー点に十分に近くなければ、そのワイヤのいずれのセグメントも検査を要さないように、迅速な領域クエリー検査を可能にする。本発明の一実施例によれば、境界ボックス(BBX)は、境界ボックスの左、下、右および上の座標に対応する4個の整数として実装される。
【0026】
ワイヤデータ構造430はまた、ワイヤにおける最初のワイヤセグメント(最初のワイヤセグメント)および最後のワイヤセグメント(最後のワイヤセグメント)に対する参照とともに、第1の端に接続されたワイヤ(第1の端に接続されたワイヤ)および第2の端に接続されたワイヤ(第2の端に接続されたワイヤ)に対する参照も含む。
【0027】
図4Eは、ワイヤデータ構造430に関する前述と同様、境界ボックス(BBX)および、ポリゴンのメンバーワイヤの全部を分岐番号によって指定する分岐番号の配列(分岐番号の配列)を指定するポリゴンデータ構造440の内容を例示している。本発明の一実施例によれば、ポリゴンデータ構造440はまた、そのポリゴンの対応するプロセスレイヤ(レイヤ)および、ポリゴンを一意に識別するために使用されるポリゴン番号(ポリゴン番号)に対する参照も含む。例えば、この情報は、特定のプロセスレイヤについてポリゴンの全部を指定するリストとともに使用することができる。
【0028】
図4Fは、本発明の実施例に従ってポリゴンにおいて分岐が形成される際に使用される分岐データ構造450の内容を例示する。分岐は、ワイヤセグメントの露出端面が別のワイヤの側面と接触する時に形成される。分岐データ構造450は、親ワイヤセグメント(親ワイヤセグメント)に対する参照とともに、そのワイヤセグメントの第1の端(END1分岐)および第2の端(END2分岐)とそれぞれ接続する他のワイヤセグメントに対する参照を指定する。分岐構造450はまた、あるワイヤセグメントからの最初および最後の左方分岐(最初の左方分岐、最後の左方分岐)および最初および最後の右方分岐(最初の右方分岐、最後の右方分岐)も含む。すなわち、これらのデータ構造要素は、特定のワイヤセグメントが、その側方のいずれかで当該ワイヤセグメントと交差する他のワイヤセグメントを有する場合に側方分岐構造を参照する。本発明の実施例によれば、任意の数の分岐がワイヤセグメントの側面に接続することができるが、ワイヤの端面は1個の他のワイヤセグメントのみと接続することができる。
【0029】
図4Gは、親ワイヤセグメントに接続する分岐の一部であるワイヤセグメント(他のワイヤセグメント)および、他のワイヤセグメントが接続する親ワイヤセグメントにおける線セグメント(親線セグメント)に対する参照を指定する側方分岐構造460の内容を例示している。側方分岐構造460はまた、他方のワイヤセグメントが親ワイヤセグメントの左側に付属するか否かをブールフラグ(左縁上)にもとづいて指定する。側方分岐構造460はまた、次の側方分岐および(次の側方分岐)および前の側方分岐(前の側方分岐)データ構造とともに、他方のワイヤセグメントが付属する親ワイヤセグメントの位置を指定する第1の側点(第1の側点)および第2の側点(第2の側点)に対する参照を含む。側点は側方分岐リストをソートする際に役立ち、第1の側点は親ワイヤのEND1のほうにより近い。
【0030】
次に、上述のデータ構造を、図5および、本発明の実施例に従って3個のワイヤ、ワイヤA、ワイヤBおよびワイヤCより構成されるポリゴン500に関して説明する。各ワイヤ、ワイヤA、ワイヤBおよびワイヤCは、ワイヤセグメントA、ワイヤセグメントBおよびワイヤセグメントCとして識別されるワイヤセグメントより構成される。
【0031】
ワイヤセグメントAは、両者とも方向矢によって指示される通り(上)方向に向いている2つの有向ワイヤa1およびa2より構成されている。ワイヤセグメントBは、両者とも(左)方向に向いている有向ワイヤb1およびb2より構成されている。ワイヤBは、点d1およびd2により定義された位置において有向ワイヤa1でワイヤAと結合される。ワイヤセグメントCは、両者とも(右)方向に向いている有向ワイヤc1およびc2より構成されている。ワイヤCは、点e1およびe2によって定義された位置で有向ワイヤa1でワイヤAと結合する。境界ボックスBBXA、BBXBおよびBBXCは、それぞれ、ワイヤA、ワイヤBおよびワイヤCの内容を定義し、境界ボックスBBXPはポリゴン500の内容を定義する。
【0032】
本発明の一実施例によれば、ポリゴンにおけるワイヤの全部は論理的関係を共有する。例えば、あるポリゴンの場合、ワイヤの全部が物理的に隣接し、電気的特性を共有することができる。別のポリゴンの場合、ワイヤは物理的関係は共有できないが、1群の接点の場合のように電気的に接続され得る。他方、1組のワイヤを、それらのワイヤに単一のポリゴンを共有させるという便宜のために、1個のポリゴンに論理的に分類することもできる。例えば、物理的または電気的に関係しないとはいえ、拡散アイランドのポリシリコンゲートの全部を、その拡散アイランドのポリシリコンゲートの全部を一緒に操作するという便益のために、単一のポリゴンに包含させることができよう。
【0033】
本発明の実施例に従ってポリゴン500を表現するために生成されたデータ構造のセットを、図6A〜6Eに例示する。図6Aはポリゴン500のポリゴンデータ構造600を示す。ポリゴンデータ構造600は、ポリゴン500が3個のワイヤ、すなわちワイヤA、ワイヤBおよびワイヤCを含むことを指定する。ポリゴンデータ構造600はまた、ポリゴン500が拡散層ジオメトリを表現し、ポリゴン番号1を有することも指定している。
【0034】
ワイヤデータ構造610はワイヤAについて生成される。同様に、ワイヤデータ構造620および630がワイヤBおよびワイヤCについてそれぞれ生成される。ワイヤセグメントデータ構造640はワイヤセグメントAについて生成される。ワイヤセグメントデータ構造650はワイヤセグメントBについて生成される。最後に、ワイヤセグメントCについてセグメントデータ構造660が生成される。同様に、分岐データ構造660、670および680が各ワイヤセグメントについて生成される。さらに、ワイヤBおよびワイヤCがワイヤAの有向縁a1に沿ってワイヤAと接続するので、ワイヤセグメントAについて2つの側方分岐データ構造690および695が生成される。
【0035】
図7は、本発明の実施例に従って2個のワイヤ702および704より構成されたポリゴン700を例示する。ワイヤ702および704は、各々が1対の有向ワイヤより構成された1組の有向ワイヤより構成されている。有向ワイヤの方向は矢706により示される。
【0036】
ポリゴン700は、ワイヤセグメントによって構成された数種の異なる形式のICレイアウトジオメトリを含んでおり、本発明の一実施例によれば、ポリシリコンまたは金属層ジオメトリのいずれかを表現する。接点エンクロージャ708は、屈曲経路710を介してワイヤ704と接続される。ワイヤ704は、3個のワイヤセグメント714、715および716より構成される八角形の接点エンクロージャ712を含む。本発明の実施例によれば、またワイヤセグメント714および716により図示された通り、ワイヤセグメントを構成するために使用された有向ワイヤは、必ずしも平行でなくてもまたは、隣接セグメントと一致する端点を有していなくてもよい。本発明のこの態様は、ワイヤセグメントによって広範なICレイアウトジオメトリを構成可能にする。
【0037】
図8は、本発明の実施例に従ってワイヤセグメントより構成されたICレイアウト拡散アイランド800を例示している。拡散アイランド800は、拡散ジオメトリを表現する拡散領域802を含む。拡散アイランド800は、ポリシリコンジオメトリを表現するポリシリコン領域804も含む。さらに拡散アイランド800は一連の接点806も含む。最後に、拡散アイランド800は、接点810を有するウエルタイ808を含む。
【0038】
拡散アイランド800は3個のポリゴンによって表現されている。拡散アイランド800の不規則な形状にもかかわらず、1個のポリゴンは、拡散領域802の全部を含み、ワイヤセグメント812、ワイヤセグメント814およびワイヤセグメント816より構成される。別のポリゴンは、ポリシリコン領域804の全部を含み、各ポリシリコンゲートについて1個ずつ、4個のワイヤより構成される。さらに別のポリゴンは、ウエルタイ808に含まれた接点810だけでなく全部の接点806を含んでいる。接点806は、それらの共通の電気的特性により単一のポリゴンにおいて定義することができ、あるいはまた別個のポリゴンとして定義してもよい。例えば、ポリシリコンゲートが側面に複数の接点を有する場合、その側面の接点は、1個の接点領域につき1個のワイヤ(長方形/八角形など)により1個のポリゴンとして示すことができる。
【0039】
3)ICレイアウト合成におけるデータ構造の使用
本発明の実施例によれば、上述のデータ構造は、ポリゴン幅、間隔および接点エンクロージャといったレイアウトの一定の特性が所定の設計規則を満たしていることを確認するために、ICレイアウト合成において使用される。前述の標準配向の概念は、そのレイアウトにおいて要求される完全な検査の数を最少限にするために役立つので、この種の検証の重要な面である。ICレイアウトの検証の文脈において、完全な検査とは、例えば、別の物体の最も近いポリゴンの側面だけを検査するのと異なり、そのICレイアウトに含まれる別の物体に対するポリゴンの全部の側面を検査するプロセスをいう。
【0040】
a.ワイヤから点への標準配向を決定する
本発明の実施例によれば、有向ワイヤから任意の点への標準配向を決定するために、最高3回の半平面検査が使用される。第1の半平面検査は、任意の点が有向ワイヤの左側、右側または上方にあるかどうかを判定する。第2の半平面検査は任意の点が有向ワイヤの第1の端点の上方または下方にあるかどうかを判定する。第3の半平面検査は任意の点が有向ワイヤの第2の端点の上方または下方にあるかどうかを判定する。3回の半平面検査の結果を評価することによって、有向ワイヤに対する任意の点の位置に起因するあらゆる曖昧さも解決される。
【0041】
各半平面検査は、有向ワイヤに対する任意の点の点乗積を計算することを伴う。半平面の境界を表現するワイヤは、反時計回りに90°回転され、任意の点は新しいワイヤに射影される。その時、点乗積の符号は、任意の点が半平面境界の左側(+1)、境界上(0)または境界の右側(−1)にあるかを決定する。3つの半平面境界はそれぞれ、元のワイヤ、第1の端点を通り90°回転されたワイヤおよび第2の端点を通り90°回転されたワイヤである。
【0042】
図9Aは、例えば、第1の端点902および第2の端点904によって定義される有向ワイヤ900を示す。有向ワイヤ900の周囲の領域は、図1の配向キー100に対応する。詳細には、領域906は、有向ワイヤ900に関して上(上)である領域を定義する。領域908は、有向ワイヤ900の右上(右上)である領域を定義する。領域910は、有向ワイヤ900に関して右(右)である領域を定義する。領域912は、有向ワイヤ900の右下(右下)である領域を定義する。領域914は、有向ワイヤ900に関して下(下)である領域を定義する。領域916は、有向ワイヤ900の左下(左下)である領域を定義する。領域918は、有向ワイヤ900の左側である領域を定義する。最後に、領域920は、有向ワイヤ900の左上(左上)である領域を定義する。
【0043】
任意の点925と有向ワイヤ900との標準配向を決定するために、3回の半平面検査が使用される。第1の半平面検査は、点925が有向ワイヤ900の左側、右側または上方にあるかどうかを判定する。図9Aに示す通り、点925は有向ワイヤ900の左側にある。これは、第1の半平面検査の完了時点で、点925が領域916、918または920に位置づけられることになる。
【0044】
第2の半平面検査は、点925が有向ワイヤ900の端点902の上方または下方にあるかどうかを判定する。第2の半平面検査の結果は、点925が第1の端点902の上方にあることを指示し、点925が領域916に位置づけられず、領域918または領域920のいずれか一方に位置づけられなければならないことを意味する。第3の半平面検査は、点925が第2の端点904の上方または下方にあるかどうかを判定した。図示の通り、第2の半平面検査は、点925が第2の端点904の下方にあることを指示し、点925が領域918または有向ワイヤ900の左側に位置づけられなければならないことを意味する。
【0045】
b.ワイヤセグメントから点への標準配向を決定する
ICレイアウト検証において間隔検査を実行するために、ポリゴン間の距離を決定し、適用される設計規則により要求される最小距離と比較しなければならない。一般に、間隔検査はポリゴンと別のポリゴンの選択された点との間で実行される。
【0046】
本発明の実施例によれば、たかだかポリゴンの2面だけが点に関して検査されればよいように、ワイヤセグメントから点への標準配向を決定する方法が提供される。セグメントの面から任意の点への標準配向の最高4回の検査が実行され、ワイヤセグメントから点への標準配向を決定し、点がワイヤセグメントの内側または外側に位置づけられるかに起因するあらゆる曖昧さを解決する。
【0047】
図9Bは、左側面956、右側面958、第1の端面960および第2の端面962によって定義されているワイヤセグメント952を例示する。ワイヤセグメント952の周囲の領域は、図1の配向キー100に対応している。詳細には、領域964は、ワイヤセグメント952に関して上(上)である領域を定義する。領域966は、ワイヤセグメント952に関して右上(右上)である領域を定義する。領域968は、ワイヤセグメント902に関して右(右)である領域を定義する。領域920は、ワイヤセグメント952に関して右下(右下)である領域を定義する。領域972は、ワイヤセグメント952に関して下(下)である領域を定義する。領域974は、ワイヤセグメント952に関して左下(左下)である領域を定義する。最後に、領域976は、ワイヤセグメント952に関して左(左)である領域を定義する。領域978は、ワイヤセグメント952に関して左上(左上)である領域を定義する。
【0048】
例えば、ワイヤセグメント952から点980への標準配向を決定しなければならないと仮定する。左側面956に関する点980の第1の標準配向検査は、点980が左側面956の左側、右側または上方にあるかを決定するために実行される。この場合、第1の標準配向検査は点980が左側面956の右側にあることを指示する。従って、第1の標準配向検査の結果にもとづき、点980は、領域964、966、968、970および972またはワイヤセグメント952の内部に位置づけられるはずである。
【0049】
右側面958に関する点980の第2の標準配向検査は、点980が右側面958の左側、右側または上方にあるかを決定するために実行される。この場合、第2の標準配向検査は、点980が右側面958の左側にあることを指示する。従って、実行された第1および第2の標準配向検査の結果にもとづき、点980は、領域964および972またはワイヤセグメント952の内部に位置づけられるはずである。
【0050】
第1の端面960に関する点980の第3の標準配向検査は、点980が第1の端面960の左側、右側または上方にあるかを決定するために実行される。この場合、第3の標準配向検査は、点980が第1の端面960の左側にあることを指示する。従って、これら3回の標準配向検査の結果にもとづき、点980は領域972に、つまりワイヤセグメント952に関して(下)に位置づけられるはずである。
【0051】
上記の特定のシナリオの場合、ワイヤセグメントから点への標準配向を疑わしくなく決定するためにわずか3回の標準配向検査を要した。しかし、場合によっては、ワイヤセグメントと点との間の標準配向を明確に決定するために第4の標準配向検査が要求されることもある。例えば、第1の端面960に関する点980の第3の標準配向検査により点980が第1の端面960の右側にあると指示された場合、点970が領域964に位置づけられるか、または、ワイヤセグメント952の内部または上方に位置づけられるかを決定するために、第2の端面962に関する点980の第4の標準配向検査が要求される。
【0052】
ワイヤセグメントの面から任意の点980への標準配向は、領域964、966、968、970、972、974、976および978が、任意の点980からワイヤセグメント952までの距離が増加した時に狭くならないように保証するために使用される。これは、2つの隣接する面の間の角度が90°より大きい場合には常に生じ得る。
【0053】
c.間隔検査
本発明の実施例によれば、ワイヤセグメントおよび標準配向によって構成されたポリゴン間の間隔検査を実行するための手法が提供される。図10は、拡散アイランド1002および拡散アイランド1004を含むICレイアウト1000を例示している。拡散アイランド1002は、拡散ジオメトリを表現し、単一のワイヤセグメントより構成されるポリゴン1005を含む。同様に、拡散アイランド1004は、拡散ジオメトリを表現し、単一のワイヤセグメントより構成されるポリゴン1009を含む。
【0054】
本発明の実施例によれば、ワイヤセグメントの平行で重なり合う縁の間の間隔検査の実行は、ワイヤ間の直交距離を、適用設計規則により要求される最小間隔と比較することによって実現される。例えば、ポリゴン1005とポリゴン1009との間の間隔検査の実行は、有向ワイヤa上の点a1およびa2と有向ワイヤb上の点b1およびb2との間の直交距離を計算し、計算された距離を設計規則によって指定された最小間隔と比較することを含む。計算された距離が設計規則により指定の最小間隔を満たしていない場合、1005または1009のいずれか一方を移動しなければならない。例えば、ポリゴン1005とポリゴン1009との間の間隔が設計規則により指定の最小間隔を満たしていない場合、ポリゴン1005とポリゴン1009との間の間隔を増大させるためにポリゴン1005を下方へ移動させることができる。あるいはまた、ポリゴン1009を上方へ移動させてもよい。
【0055】
重なり合っていないワイヤ間の間隔を計算するために、2ワイヤ間の直近の角が使用され、直交距離の代わりに、非直交距離またはマンハッタン距離が使用される。用語「マンハッタン距離」は、各単位がX方向について1単位かつY方向について1単位である距離をいう。その場合、結果として得られる方向ベクトルは、(左上)、(右上)、(右下)または(左下)のいずれかである。間隔が、設計規則によって指定された最小間隔を満たしていない場合、ポリゴンのうちの一方は、角の1個の2つの対向する面と反対の方向に移動される。
【0056】
例えば、図10において拡散−ポリシリコン間隔検査がポリゴン1009の点b1とポリゴン1010の点c1との間で実行されると仮定する。点b1と点c1との間の距離が設計規則により指定の最小間隔を満たしていない場合、ポリゴン1010は、ポリゴン1010の一方の直近の面1014が上に向いており、他方の直近の面1014が右を向いているので、(左下)方向に移動される。同様に、ポリゴン1009は、(右上)方向に移動され得る。
【0057】
間隔の違反が識別され、設計規則を満たすためにポリゴンの一方が移動されるべき方向が決定されると、最小間隔要求条件を満たすためにポリゴンが移動されるべき距離が決定される。本発明の実施例によれば、間隔要求条件を満たすようにレイアウトジオメトリを再配置するための距離を決定する新規の手法が提供される。この手法は概略、設計規則により要求される最小間隔を満たすためにそのレイアウトジオメトリと他のレイアウトジオメトリとの間に維持されなければならない最小分離を定義するためにレイアウトジオメトリの周囲に「排他ゾーン」を構成することを含む。この手法はいかなる特定のデータ構造アーキテクチャにも依存しない。他のジオメトリの一部である点が排他ゾーン内にある場合、間隔違反が存在する。
【0058】
図11に示す通り、ワイヤセグメント1100は、点1105で会合する2個の有向ワイヤ1102および1104より少なくとも部分的に構成される。排他ゾーンを構成するために、2本の線1106および1108は、有向ワイヤ1102および1104から離間されて有向ワイヤ1102および1104の方向ベクトルに沿って構成され、設計規則を満たしている。線1106および1108は、有向ワイヤ1102および1104の方向に直角な方向で点1105から外方へ移動することによって形成される。有向ワイヤ1102および1104が互いに直角であれば、線1106および1108を接続する第3の線1110が構成される。線1106、1108および1110はワイヤセグメント1100の周囲の排他ゾーン1112を形成する。有向ワイヤ1102および1104が直角であれば、有向ワイヤ1102および1104に関する線1106および1108の配置は、デカルト幅、間隔またはエンクロージャ値にもとづく。第3の線1110の配置は、設計規則による指定に従ったマンハッタン幅、間隔またはエンクロージャにもとづく。マンハッタン幅、間隔またはエンクロージャ規則がデカルト規則に対して増加すると、線1110はワイヤセグメント1100から外方へ移動するのに対して、線1106および1108は適所にとどまる。限界として、線1110は線1106および1108の交差まで移動することができる。
【0059】
他方、有向ワイヤ1102および1104が非直交であれば、有向ワイヤ1102および1104に関する線1106および1108の配置は、必要なデカルト距離を得るのに必要なマンハッタン距離を得るために、2の平方根で割りその次の整数値に丸められたデカルト幅、間隔またはエンクロージャ値にもとづく。
【0060】
本発明の実施例に従った間隔要求条件を満たすためにワイヤセグメントを再配置する手法は、図12の流れ図によって以下に説明する。工程1200の開始後、工程1202において、2本の線1106および1108が、ワイヤセグメントを構成する2つの方向ベクトルに沿って構成される。工程1204で、有向ワイヤ1102および1104が直角であるか否かに関する判断がなされる。肯定であれば、工程1206において、有向ワイヤ1102および1104が直交であるか否かに関する判断がなされる。有向ワイヤ1102および1104の両方が直角かつ直交である場合、工程1208で、マンハッタン距離が使用され、2本の構成された線に関して第3の線1110を配置する。
【0061】
他方、工程1204において、有向ワイヤ1102および1104が直角ではないと判断された場合、排他ゾーンは有向ワイヤ1106および1108より成り、プロセスは工程1214で完了する。しかし、工程1206で、有向ワイヤ1102および1104が直交ではないと判断された場合、工程1210において、第1の2本の構成された線に関する第3の線1110の位置は、設計規則により指定の(2の平方根とマンハッタン距離との積を丸めた)最小デカルト距離にもとづく。
【0062】
その後、工程1212において、有向ワイヤ1102と1104との間に第3の線1110が構成され配置される。プロセスは工程1214で完了する。この手法は、ポリゴン幅および接点エンクロージャを検査および訂正するためにも使用することができる。
【0063】
d.ポリゴン出力を生成する
本発明の実施例によれば、上述のデータ構造階層にもとづくポリゴン出力を生成する機能が提供される。この手法は、各ワイヤセグメントについて1個のポリゴンを生成する代替的手法よりも少数のポリゴンを生じる。少ないポリゴンを生成することによって、設計規則検査、回路抽出およびマスク製作といった分析プログラムを実行させるために要する時間を短縮する。CADパッケージの文脈では、少ないポリゴンは、画面上にポリゴンが少なくなるのでレイアウトを見やすくすることにもなる。概略、この手法は、ポリゴンの数を低減するために後に結合される点の共線集合を識別するために、各ワイヤのワイヤセグメントデータ構造を評価することを伴う。本発明の一実施例によれば、隣接するワイヤセグメントの左側面が評価された後、同じ隣接するワイヤセグメントの右側面が評価される。
【0064】
例えば、図13Aは、本発明の実施例に従って、3個の隣接するワイヤセグメント1302、1304および1306より構成されるワイヤ1300を例示している。ワイヤセグメント1302の左側面は、端点a1およびa2により定義される有向ワイヤaにより定義されている。ワイヤセグメント1304の左側面は、端点b1およびb2により定義される有向ワイヤbにより定義されている。ワイヤセグメント1306の左側面は、端点c1およびc2により定義される有向ワイヤcにより定義されている。本発明の実施例に従ってワイヤ1300のポリゴン表現を生成するために、ワイヤセグメント1302、1304および1306の左右の側面に沿った点の共線集合が結合される。有向ワイヤaは有向ワイヤbと共線的であるので、点a2およびb1は削除でき、それにより有向ワイヤ1302および1304に沿って単一の左側面を効果的に生成する。同様に、点b2およびc1は一致するので、それらは単一の点で置換できる。図13Bは、点の共線集合が本発明の実施例に従って結合された後の図13Aのワイヤ1300のポリゴン表現1308を例示する。
【0065】
いくつかのポリゴン操作プロセスは、ポリゴンあたりのポリゴン点の最大数を規定している。この場合、この手法に従ってトレースできるセグメントの数は、許容ポリゴンの最大数を4で割った数に制限される。あるワイヤについて、ワイヤセグメントの数がこの数を超えた場合、そのワイヤを表現するために付加的なポリゴンが使用される。
【0066】
[ハードウェア概要]
図14は、本発明の実施例を実施できるコンピュータシステム1400を例示するブロック図である。コンピュータシステム1400は、バス1402または、情報を通信するための他の通信機構および、情報を処理するためのバス1402と結合されたプロセッサ1404を含む。コンピュータシステム1400はまた、情報およびプロセッサ1404により実行される命令を記憶するためのバス1402に結合された、ランダムアクセスメモリ(RAM)または他の動的記憶装置といったメインメモリ1406も含む。メインメモリ1406は、プロセッサ1404により実行される命令の実行において一時変数または他の中間的情報を記憶するためにも使用され得る。コンピュータシステム1400はさらに、プロセッサ1404のための静的情報および命令を記憶するためのバス1402に結合されたリードオンリメモリ(ROM)1408または他の静的記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置1410が備わっており、情報および命令を記憶するためにバス1402に結合されている。
【0067】
コンピュータシステム1400は、バス1402を介して、コンピュータユーザーに情報を表示するための陰極線管(CRT)といったディスプレイ1412と結合することができる。英数字キーおよび他のキーを備える入力装置1414は、情報およびコマンド選択をプロセッサ1404に通信するためにバス1402に結合されている。別の形式のユーザー入力装置は、指示情報およびコマンド選択をプロセッサ1404に通信し、ディスプレイ1412でのカーソル移動を制御するための、マウス、トラックボールまたはカーソル指示キーといったカーソル制御装置1416である。この入力装置は一般に、第1の軸(例えばx)および第2の軸(例えばy)の2軸における2自由度を有し、装置が平面における位置を指定できるようにする。
【0068】
本発明は、ICレイアウトにおけるポリゴンを表現するためのコンピュータシステム1400の使用に関連する。本発明の一実施例によれば、ICレイアウトにおけるポリゴンの表現は、メインメモリ1406に含まれた命令シーケンスを実行するプロセッサ1404に応答してコンピュータシステム1400によって提供される。そうした命令は、記憶装置1410といった別のコンピュータ可読媒体からメインメモリ1406に読み込むことができる。しかし、このコンピュータ可読媒体は記憶装置1410といった装置に限定されるものではない。例えば、コンピュータ可読媒体には、フロッピィディスク、フレキシブルディスク、ハードディスク、磁気テープまたは他のあらゆる磁気媒体、CD−ROM、他のあらゆる光学媒体、穿孔カード、紙テープ、穴のパターンを備える他のあらゆる物理的媒体、RAM、PROM、FPROM、FLASH−EPROM、他のあらゆるメモリチップまたはカートリッジ、後述する搬送波、または、コンピュータが読み取ることができる他のあらゆる媒体が含まれる。
【0069】
メインメモリ1406に含まれた命令シーケンスの実行は、プロセッサ1404に前述のプロセス工程を実行させる。代替実施例では、本発明を実施するためにソフトウエア命令の代わりにまたはそれらとの組合せにおいて、ハードワイヤード回路を使用することができる。従って、本発明の実施例は、ハードウェア回路およびソフトウェアのいずれかの特定の組合せに限定されるものではない。
【0070】
また、コンピュータシステム1400は、バス1401に結合された通信インタフェース1418も含む。通信インタフェース1418は、ローカルネットワーク1422に接続されているネットワークリンク1420と双方向データ通信結合を可能にする。例えば、通信インタフェース1418は、対応する形式の電話回線とのデータ通信接続を行う統合サービスディジタルネットワーク(ISDN)カードまたはモデムとしてよい。別の例として、通信インタフェース1418は、互換性のあるLANとのデータ通信接続を行うローカルエリアネットワーク(LAN)カードとすることができる。ワイアレスリンクも実施できよう。そうしたいずれの実施においても、通信インタフェース1418は、各種情報を表現するディジタルデータストリームを搬送する電気的、電磁気的または光学的信号を送信および受信する。
【0071】
ネットワークリンク1420は一般に、1個以上のネットワークを介して他のデータ装置とのデータ通信を可能にする。例えば、ネットワークリンク1420は、ローカルネットワーク1422を介して、ホストコンピュータ1424またはインターネットサービスプロバイダー(ISP)1426により操作されるデータ装置との接続を行うことができる。ISP 1426はさらに、現在「インターネット」1428と普通に称される世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク1422およびインターネット1428は両方とも、ディジタルデータストリームを搬送する電気的、電磁気的または光学的信号を使用する。各種ネットワークを通る信号、ネットワークリンク1420上および通信インタフェース1418を通る信号は、コンピュータシステム1400との間で情報を搬送しており、情報を転送する搬送波の例示的な形態である。
【0072】
コンピュータシステム1400は、単数または複数のネットワーク、ネットワークリンク1420および通信インタフェース141によって、プログラムコードを含む、メッセージを送信し、データを受信できる。インターネットの例では、サーバー1430は、インターネット1428、ISP 1426、ローカルネットワーク1422および通信インタフェース1418を介して、アプリケーションプログラムの要求されたコードを送信することができよう。本発明によれば、そのようなダウンロードされた1つのアプリケーションが本書に説明したICレイアウトにおけるポリゴンの表現を可能にする。
【0073】
受信されたコードは、受信された時点でプロセッサ1404によって実行されるか、かつ/または、後の実行のために記憶装置1410または他の不揮発性記憶装置に記憶することができる。このようにして、コンピュータシステム1400は、搬送波の形態でアプリケーションコードを取得することができる。
【0074】
本発明の実施例を例示のためにトランジスタを含むICレイアウトの文脈において説明したが、本発明は、抵抗、コンデンサ、論理ゲートまたは他のあらゆる種類のICデバイスといった、あらゆる種類の集積回路構成要素またはデバイスを含むICレイアウトに適用可能である。
【0075】
本発明は、ICレイアウトにおけるポリゴンを表現するための従来の手法にまさるいくつかの利益を提供する。第一に、最も複雑なジオメトリでさえ、八角形接点エンクロージャおよび不規則形拡散アイランドを含むワイヤセグメントによって表現可能である。また、ワイヤセグメントによるポリゴンの表現は、間隔およびエンクロージャ検査といったジオメトリ分析を容易にする。ワイヤセグメントは、露出したポリゴンの縁のほとんどが既知であり、幅、間隔およびエンクロージャ検査は露出したポリゴンの縁に適用される場合にのみ妥当であるので、ジオメトリ分析にとって都合がよい。台形のデータベースにおける水平縁の多くは実際上ポリゴンにとって内部的であり、分析ソフトウェアは、外部の縁を見つけるために相当な努力を費やさなければならない。ワイヤセグメントはまた、多くの普通のレイアウト形状を直接表現することができ、(排他ゾーンといった)より複雑な規則を容易に実施可能にする。例えば、ポリシリコンゲートは、ゲートポリゴンがある角度でトラバースしている際に、その幅が大きくならなければならないという要求条件を有するかもしれない。ゲートポリゴンがワイヤセグメントにより直接構成されるので、ワイヤ方向を検査し、それらの角度が非直交である時にそれらの分離が大きくなるようにすることによって、この規則をセグメント単位で強制することは容易である。ワイヤセグメント手法はまた、ワイヤセグメントの使用によりワイヤの抵抗が迅速に計算できるので、抵抗検査といった比較的容易な電気分析を助成する。ワイヤセグメント手法は、ワイヤセグメントがデータ構造において容易に表現されるので、コンピュータソフトウェアにおける実装にも好適である。ワイヤセグメントの利点は、それらが普通に使用されるレイアウト構造に形式上より近似であることであり、従って、それらの構造を表現するために少数しか必要とせず、わずか1個または2個のデータ構造を検査すればオブジェクトの形状が明らかにならないことはほとんどない。台形および長方形の場合、ポリゴン形状に対するわずかな変更が、台形データ構造をポリゴンの他の側面に関して全体にわたる修正を生じさせ、ポリゴンを単位として作業することを困難にすることもあり得る。
【0076】
上述の明細書において、本発明をその特定の実施例に関して説明した。しかし、本発明の広範な精神および範囲を逸脱することなく、多様な修正および変形が行い得ることは明白であろう。従って、その明細書および図面は、限定的な意味ではなく、例示的な意味において考慮されなければならない。
【図面の簡単な説明】
発明の実施形態が、添付の図の中で、制限されることなく一例として描かれ、その中の参照符号は、同種の部材を参照する。
【図1】図1は、本発明の一実施形態による標準方向を描いている。
【図2】図2は、本発明の一実施形態による有向線セグメント及び隣接する点を描いている。
【図3】図3は、本発明の一実施形態によるワイヤを描いている。
【図4A】図4Aは、本発明の一実施形態による点データ構造を描いている。
【図4B】図4Bは、本発明の一実施形態による有向線セグメントデータ構造を描いている。
【図4C】図4Cは、本発明の一実施形態によるワイヤセグメントデータ構造を描いている。
【図4D】図4Dは、本発明の一実施形態による線データ構造を描いている。
【図4E】図4Eは、本発明の一実施形態によるポリゴンデータ構造を描いている。
【図4F】図4Fは、本発明の一実施形態による分岐データ構造を描いている。
【図4G】図4Gは、本発明の一実施形態による側面分岐データ構造を描いている。
【図5】図5は、本発明の一実施形態によるワイヤセグメントから構築されるポリゴンを描いている。
【図6A】図6Aは、本発明の一実施形態による図5のポリゴンに関連した1組のデータ構造を描いている。
【図6B】図6Bは、本発明の一実施形態による図5のポリゴンに関連した1組のデータ構造を描いている。
【図6C】図6Cは、本発明の一実施形態による図5のポリゴンに関連した1組のデータ構造を描いている。
【図6D】図6Dは、本発明の一実施形態による図5のポリゴンに関連した1組のデータ構造を描いている。
【図6E】図6Eは、本発明の一実施形態による図5のポリゴンに関連した1組のデータ構造を描いている。
【図7】図7は、本発明の一実施形態によるワイヤセグメントから構築される第2のポリゴンを描いている。
【図8】図8は、本発明の一実施形態によるワイヤセグメントから構築される拡散領域を描いている。
【図9A】図9Aは、本発明の一実施形態による有向線及び指向キーを描いている。
【図9B】図9Bは、本発明の一実施形態によるワイヤセグメント及び指向キーを描いている。
【図10】図10は、本発明の一実施形態によるワイヤセグメントを用いて構築されたICレイアウトの一部を描いている。
【図11】図11は、本発明の一実施形態によるポリゴンの間隔を決定するための排他ゾーンの使用を描いている。
【図12】図12は、本発明の一実施形態によるポリゴン間の間隔検査を実行するための方法を描いたフローチャートを示しており、
【図13A】図13Aは、本発明の一実施形態によるワイヤセグメントを用いて構築されたワイヤを描いている。
【図13B】図13Bは、本発明の一実施形態による図13Aのワイヤのポリゴン表現を描いている。
【図14】図14は、本発明の一実施形態が実装されるコンピュータシステムのブロック図を描いている。
Claims (21)
- ICレイアウトのデータ表現を生成するためのコンピュータシステムであって、
a)メモリと、
b)前記メモリに結合された1以上のプロセッサとを備え、
前記メモリが、命令セットを含み、該命令セットが、前記1以上のプロセッサによって実行されたときに、該プロセッサに下記のステップを実行させるコンピュータシステム。
i)ICレイアウトによって表現される1組のICデバイスを表現するポリゴンに関連付けられたポリゴンデータであって、前記ポリゴンが1以上のワイヤによって表現され、1以上の前記各ワイヤが1以上のワイヤセグメントで表現され、前記各ワイヤセグメントが2つの有向線セグメントによって表現されるものを生成するステップと、
ii)1以上のワイヤを表現すると共に、前記ポリゴンデータへの少なくとも1つの参照を含むワイヤデータであって、前記各ワイヤが1以上のワイヤセグメントで表現されるものを生成するステップと、
iii)各ワイヤセグメント毎の前記2つの有向線セグメントを表現する有向線セグメントデータを生成するステップ。 - 請求項1に記載のコンピュータシステムであって、前記命令セットが、下記を実行するための命令を含むコンピュータシステム。
a)各ワイヤ毎の1以上のワイヤセグメントを表現すると共に、前記ワイヤデータへの少なくとも1つの参照を含むワイヤセグメントデータを生成するステップと、
b)前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照を生成するステップと、
c)前記ワイヤデータ内に、前記ワイヤセグメントを参照する少なくとも1つの参照を生成するステップ。 - 請求項2に記載のコンピュータシステムであって、
前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照を生成する前記ステップが、前記ワイヤセグメントデータ内で表現される各ワイヤ毎に、前記ポリゴンデータ内に、そのワイヤを表現する前記ワイヤデータ内のデータへの参照を生成するステップを含み、
前記ワイヤデータ内に、前記ワイヤセグメントを参照する少なくとも1つの参照を生成する前記ステップが、前記1以上のワイヤ毎に、前記ワイヤデータ内に、前記ワイヤ内に含まれる最初及び最後のワイヤセグメントの双方への参照を生成するステップを含むコンピュータシステム。 - 請求項1に記載のコンピュータシステムであって、更に、接続されたワイヤに関連したワイヤセグメントを記述する分岐データを生成するステップを含むコンピュータシステム。
- ICレイアウトのデータ表現を生成するための命令列を備えたコンピュータ読み取り可能な媒体であって、該命令列が、前記1以上のプロセッサによって実行されたときに、該プロセッサに下記のステップを実行させるコンピュータ読み取り可能な媒体。
a)ICレイアウトによって表現される1組のICデバイスを表現するポリゴンに関連付けられたポリゴンデータであって、前記ポリゴンが1以上のワイヤによって表現され、1以上の前記各ワイヤが1以上のワイヤセグメントで表現され、前記各ワイヤセグメントが2つの有向線セグメントによって表現されるものを生成するステップと、
b)1以上のワイヤを表現すると共に、前記ポリゴンデータへの少なくとも1つの参照を含むワイヤデータであって、前記各ワイヤが1以上のワイヤセグメントで表現されるものを生成するステップと、
c)各ワイヤセグメント毎の前記2つの有向線セグメントを表現する有向線セグメントデータを生成するステップ。 - 請求項5に記載のコンピュータ読み取り可能な媒体であって、前記命令列が、下記を実行するための命令を含むコンピュータ読み取り可能な媒体。
a)各ワイヤ毎の1以上のワイヤセグメントを表現すると共に、前記ワイヤデータへの少なくとも1つの参照を含むワイヤセグメントデータを生成するステップと、
b)前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照を生成するステップと、
c)前記ワイヤデータ内に、前記ワイヤセグメントを参照する少なくとも1つの参照を生成するステップ。 - 請求項6に記載のコンピュータ読み取り可能な媒体であって、
前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照を生成する前記ステップが、前記ワイヤセグメントデータ内で表現される各ワイヤ毎に、前記ポリゴンデータ内に、そのワイヤを表現する前記ワイヤデータ内のデータへの参照を生成するステップを含み、
前記ワイヤデータ内に、前記ワイヤセグメントを参照する少なくとも1つの参照を生成する前記ステップが、前記1以上のワイヤ毎に、前記ワイヤデータ内に、前記ワイヤ内に含まれる最初及び最後のワイヤセグメントの双方への参照を生成するステップを含むコンピュータ読み取り可能な媒体。 - 請求項5に記載のコンピュータ読み取り可能な媒体であって、前記命令列が、接続されたワイヤに関連したワイヤセグメントを記述する分岐データを生成するステップを実行する命令を含むコンピュータ読み取り可能な媒体。
- コンピュータによりICレイアウトのデータ表現を生成するための方法であって、下記のステップを備えた方法。
a)コンピュータが、ICレイアウトによって表現される1組のICデバイスを表現するポリゴンに関連付けられたポリゴンデータであって、前記ポリゴンが1以上のワイヤによって表現され、1以上の前記各ワイヤが1以上のワイヤセグメントで表現され、前記各ワイヤセグメントが2つの有向線セグメントによって表現されるものを生成するステップと、
b)コンピュータが、1以上のワイヤを表現すると共に、前記ポリゴンデータへの少なくとも1つの参照を含むワイヤデータであって、前記各ワイヤが1以上のワイヤセグメントで表現されるものを生成するステップと、
c)コンピュータが、各ワイヤセグメント毎の前記2つの有向線セグメントを表現する有向線セグメントデータを生成するステップ。 - 請求項9に記載の方法であって、更に、下記のステップを備えた方法。
a)コンピュータが、各ワイヤ毎の1以上のワイヤセグメントを表現すると共に、前記ワイヤデータへの少なくとも1つの参照を含むワイヤセグメントデータを生成するステップと、
b)コンピュータが、前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照を生成するステップと、
c)コンピュータが、前記ワイヤデータ内に、前記ワイヤセグメントを参照する少なくとも1つの参照を生成するステップ。 - 請求項10に記載の方法であって、
コンピュータが前記ポリゴンデータ内に、前記ワイヤデータを参照する少なくとも1つの参照を生成する前記ステップが、前記ワイヤセグメントデータ内で表現される各ワイヤ毎に、前記ポリゴンデータ内に、そのワイヤを表現する前記ワイヤデータ内のデータへの参照を生成するステップを含み、
コンピュータが前記ワイヤデータ内に、前記ワイヤセグメントを参照する少なくとも1つの参照を生成する前記ステップが、前記1以上のワイヤ毎に、前記ワイヤデータ内に、前記ワイヤ内に含まれる最初及び最後のワイヤセグメントの双方への参照を生成するステップを含む方法。 - 請求項9に記載の方法であって、更に、コンピュータが、接続されたワイヤに関連したワイヤセグメントを記述する分岐データを生成するステップを含む方法。
- 請求項9に記載の方法であって、
コンピュータが前記ICレイアウトによって表現される1組のICデバイスを表現するポリゴンに関連付けられたポリゴンデータを生成する前記ステップが、ICレイアウトによって表現される1組のICデバイスを表現する複数のポリゴンに関連付けられたポリゴンデータであって、該複数のポリゴンにおける各ポリゴンが1以上のワイヤによって表現されるものを生成するステップを備え、
前記方法が、更に、コンピュータが下記のステップを実行することにより前記ポリゴンデータの妥当性検査を実行するステップを含む方法。
a)コンピュータが、前記複数のポリゴンから検査される第1及び第2のポリゴンを選択するステップと、
b)コンピュータが、前記第1のポリゴンから前記第2のポリゴンへの標準方向を決定するステップと、
c)コンピュータが、前記第1のポリゴンから前記第2のポリゴンへの前記標準方向に基づいて、前記第1のポリゴンと前記第2のポリゴンとの間の間隔が、所定の間隔規則を満たしているか否かを判断するステップ。 - 請求項13に記載の方法であって、コンピュータが前記第1のポリゴンから前記第2のポリゴンへの標準方向を決定する前記ステップが、下記のステップを含む方法。
a)コンピュータが、前記第1のポリゴンの第1の側面から前記第2のポリゴンへの標準方向を決定するステップと、
b)コンピュータが、前記第1のポリゴンの第2の側面から前記第2のポリゴンへの標準方向を決定するステップと、
c)コンピュータが、前記第1のポリゴンの第3の側面から前記第2のポリゴンへの標準方向を決定するステップと、
d)コンピュータが、前記第1のポリゴンから前記第2のポリゴンへの標準方向が決定できないときに、前記第1のポリゴンの第4の側面から前記第2のポリゴンへの標準方向を決定するステップ。 - 請求項13に記載の方法であって、更に、コンピュータが、前記第1のポリゴンと前記第2のポリゴンとの間の間隔が所定の間隔規則を満足しないとき、前記第2のポリゴンを前記第1のポリゴンに対して、前記第2のポリゴンに近接する前記第1のポリゴンの2つの側面の方向と反対方向に向けて移動し、これによって前記所定の間隔規則を満足するよう前記第1のポリゴンと前記第2のポリゴンとの間に距離を生じさせるステップを実行するステップを含む方法。
- 請求項15に記載の方法であって、前記方法が、更に、コンピュータが、前記第1のポリゴンの回りに、前記所定の間隔規則を満足する前記第2のポリゴンからの距離を記述する排他ゾーンを規定するステップを含み、
コンピュータが前記第2のポリゴンを前記第1のポリゴンに対して、前記第2のポリゴンに近接する前記第1のポリゴンの2つの側面の方向と反対方向に向けて移動する前記ステップが、更に、前記第2のポリゴンを前記第1のポリゴンに対して、前記第2のポリゴンに近接する前記第1のポリゴンの2つの側面の方向と反対方向に向けて移動し、これによって前記第2のポリゴンを前記排他ゾーンの外へ位置させるステップを含む方法。 - 請求項13に記載の方法であって、更に、コンピュータが、前記第1のポリゴンと前記第2のポリゴンとの間の間隔が所定の間隔規則を満足しないとき、前記所定の間隔規則が満足されるよう前記第2のポリゴンの大きさを変えるステップを含む方法。
- 請求項13に記載の方法であって、更に、
コンピュータが、前記第1のポリゴンの第1の側面から前記第1のポリゴンの第2の側面への標準方向に基づいて、前記第1のポリゴンの大きさを決定するステップと、
コンピュータが、前記第1のポリゴンの大きさが、サイズ規則を満足しないとき、該サイズ規則が満足されるよう前記第1のポリゴンの前記第2の側を、前記第1のポリゴンの前記第1の側面に対し移動するステップと、を含む方法。 - 請求項13に記載の方法であって、
各ワイヤが1以上のワイヤセグメントで表現され、
コンピュータが、前記複数のポリゴンから検査される第1及び第2のポリゴンを選択する前記ステップが、前記複数のワイヤセグメントから検査される第1のワイヤセグメントと第2のワイヤセグメントを選択するステップを含み、
コンピュータが、前記第1のポリゴンから前記第2のポリゴンへの標準方向を決定する前記ステップが、前記第1のワイヤセグメントから前記第2のワイヤセグメントへの前記標準方向を決定するステップを含み、
コンピュータが、前記第1のポリゴンと前記第2のポリゴンとの間の間隔が、所定の間隔規則を満たしているか否かを判断する前記ステップが、前記第1のワイヤセグメントから前記第2のワイヤセグメントへの前記標準方向に基づいて、前記第1のワイヤセグメントと前記第2のワイヤセグメントとの間の間隔が、前記所定の間隔規則を満たしているか否かを判断するステップを含む方法。 - 請求項9に記載の方法であって、更に、コンピュータが、第1及び第2の端点により規定される左面を有する第1のワイヤセグメントと、第1及び第2の端点により規定される左面を有する第2のワイヤセグメントとに基づいて、ポリゴン出力データを生成するステップであって、前記第1のワイヤセグメントの前記左面の前記第1の端点が、前記第2のワイヤセグメントの前記左面の第1及び第2の端点の双方と同一線上にあり、かつ前記第1のワイヤセグメントの前記左面の前記第2の端点が、前記第2のワイヤセグメントの前記左面の第1の端点と同一線上にあるときに、コンピュータが、前記第1のワイヤセグメントの前記左面の前記第1の端点により規定される第1の端点と、前記第2のワイヤセグメントの前記左面の前記第2の端点により規定される第2の端点とを有する第1の左ポリゴン面を確立するステップを実行することにより、前記ポリゴン出力データを生成するものを備えた方法。
- 請求項9に記載の方法であって、更に、コンピュータが、第1及び第2の端点により規定される左面を有する第1のワイヤセグメントと、第1及び第2の端点により規定される左面を有する第2のワイヤセグメントとに基づいて、ポリゴン出力データを生成するステップであって、前記第1のワイヤセグメントの前記左面の前記第2の端点が、前記第2のワイヤセグメントの前記左面の第1の端点と一致しているときに、コンピュータが、前記第1のワイヤセグメントの前記左面の前記第1の端点により規定される第1の端点と、前記第1のワイヤセグメントの前記左面の前記第2の端点により規定される第2の端点とを有する第1の左ポリゴン面、並びに前記第1のワイヤセグメントの前記左面の前記第2の端点により規定される第1の端点と、前記第2のワイヤセグメントの前記左面の前記第2の端点により規定される第2の端点とを有する第2の左ポリゴン面を確立するステップを実行することにより、前記ポリゴン出力データを生成するものを備えた方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/960,715 | 1997-10-30 | ||
US08/960,715 US6128767A (en) | 1997-10-30 | 1997-10-30 | Polygon representation in an integrated circuit layout |
PCT/US1998/022819 WO1999023699A2 (en) | 1997-10-30 | 1998-10-28 | Polygon representation in an integrated circuit layout |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001522111A JP2001522111A (ja) | 2001-11-13 |
JP3710710B2 true JP3710710B2 (ja) | 2005-10-26 |
Family
ID=25503526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000519466A Expired - Fee Related JP3710710B2 (ja) | 1997-10-30 | 1998-10-28 | Icレイアウトにおけるポリゴン表現 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6128767A (ja) |
EP (2) | EP1044471B1 (ja) |
JP (1) | JP3710710B2 (ja) |
KR (1) | KR100399645B1 (ja) |
CA (1) | CA2308707C (ja) |
DE (2) | DE69813892T2 (ja) |
IL (1) | IL135870A (ja) |
TW (1) | TW515066B (ja) |
WO (1) | WO1999023699A2 (ja) |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000048052A (ja) * | 1998-07-27 | 2000-02-18 | Mitsubishi Electric Corp | レイアウト検証方法とレイアウト検証装置 |
US6693719B1 (en) * | 1998-09-16 | 2004-02-17 | Texas Instruments Incorporated | Path to trapezoid decomposition of polygons for printing files in a page description language |
US6288724B1 (en) * | 1998-09-16 | 2001-09-11 | Texas Instruments Incorporated | Clipping and trapezoid decomposition of polygons for printing files in a page description language |
US6341366B1 (en) * | 1999-01-15 | 2002-01-22 | Spring Soft Inc. | Rule-driven method and system for editing physical integrated circuit layouts |
US6285805B1 (en) * | 1999-01-25 | 2001-09-04 | International Business Machines Corp. | System and method for finding the distance from a moving query point to the closest point on one or more convex or non-convex shapes |
JP3822009B2 (ja) * | 1999-11-17 | 2006-09-13 | 株式会社東芝 | 自動設計方法、露光用マスクセット、半導体集積回路装置、半導体集積回路装置の製造方法、および自動設計プログラムを記録した記録媒体 |
US6889372B1 (en) | 2000-07-15 | 2005-05-03 | Cadence Design Systems Inc. | Method and apparatus for routing |
US6898773B1 (en) | 2002-01-22 | 2005-05-24 | Cadence Design Systems, Inc. | Method and apparatus for producing multi-layer topological routes |
US6826737B2 (en) * | 2000-12-06 | 2004-11-30 | Cadence Design Systems, Inc. | Recursive partitioning placement method and apparatus |
US7003754B2 (en) * | 2000-12-07 | 2006-02-21 | Cadence Design Systems, Inc. | Routing method and apparatus that use of diagonal routes |
US7055120B2 (en) * | 2000-12-06 | 2006-05-30 | Cadence Design Systems, Inc. | Method and apparatus for placing circuit modules |
US6516455B1 (en) * | 2000-12-06 | 2003-02-04 | Cadence Design Systems, Inc. | Partitioning placement method using diagonal cutlines |
US6957410B2 (en) | 2000-12-07 | 2005-10-18 | Cadence Design Systems, Inc. | Method and apparatus for adaptively selecting the wiring model for a design region |
US7024650B2 (en) * | 2000-12-06 | 2006-04-04 | Cadence Design Systems, Inc. | Method and apparatus for considering diagonal wiring in placement |
EP1362373A2 (en) * | 2000-12-06 | 2003-11-19 | Simplex Solutions, Inc. | Method and apparatus for considering diagonal wiring in placement |
US7080336B2 (en) * | 2000-12-06 | 2006-07-18 | Cadence Design Systems, Inc. | Method and apparatus for computing placement costs |
US7073150B2 (en) | 2000-12-07 | 2006-07-04 | Cadence Design Systems, Inc. | Hierarchical routing method and apparatus that use diagonal routes |
US7096448B2 (en) * | 2001-01-19 | 2006-08-22 | Cadence Design Systems, Inc. | Method and apparatus for diagonal routing by using several sets of lines |
US6915501B2 (en) | 2001-01-19 | 2005-07-05 | Cadence Design Systems, Inc. | LP method and apparatus for identifying routes |
US6957408B1 (en) | 2002-01-22 | 2005-10-18 | Cadence Design Systems, Inc. | Method and apparatus for routing nets in an integrated circuit layout |
US6882055B1 (en) | 2001-06-03 | 2005-04-19 | Cadence Design Systems, Inc. | Non-rectilinear polygonal vias |
US6957411B1 (en) | 2001-06-03 | 2005-10-18 | Cadence Design Systems, Inc. | Gridless IC layout and method and apparatus for generating such a layout |
US6829757B1 (en) | 2001-06-03 | 2004-12-07 | Cadence Design Systems, Inc. | Method and apparatus for generating multi-layer routes |
US6976238B1 (en) | 2001-06-03 | 2005-12-13 | Cadence Design Systems, Inc. | Circular vias and interconnect-line ends |
US7069530B1 (en) | 2001-06-03 | 2006-06-27 | Cadence Design Systems, Inc. | Method and apparatus for routing groups of paths |
US6859916B1 (en) | 2001-06-03 | 2005-02-22 | Cadence Design Systems, Inc. | Polygonal vias |
US7107564B1 (en) | 2001-06-03 | 2006-09-12 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US6951005B1 (en) | 2001-06-03 | 2005-09-27 | Cadence Design Systems, Inc. | Method and apparatus for selecting a route for a net based on the impact on other nets |
US6877146B1 (en) | 2001-06-03 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US6895569B1 (en) | 2001-06-03 | 2005-05-17 | Candence Design Systems, Inc. | IC layout with non-quadrilateral Steiner points |
US7310793B1 (en) | 2001-06-03 | 2007-12-18 | Cadence Design Systems, Inc. | Interconnect lines with non-rectilinear terminations |
US6795958B2 (en) | 2001-08-23 | 2004-09-21 | Cadence Design Systems, Inc. | Method and apparatus for generating routes for groups of related node configurations |
US6931616B2 (en) * | 2001-08-23 | 2005-08-16 | Cadence Design Systems, Inc. | Routing method and apparatus |
US6877149B2 (en) | 2001-08-23 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for pre-computing routes |
US7143382B2 (en) | 2001-08-23 | 2006-11-28 | Cadence Design Systems, Inc. | Method and apparatus for storing routes |
US7058913B1 (en) | 2001-09-06 | 2006-06-06 | Cadence Design Systems, Inc. | Analytical placement method and apparatus |
US6629304B1 (en) * | 2001-09-19 | 2003-09-30 | Lsi Logic Corporation | Cell placement in integrated circuit chips to remove cell overlap, row overflow and optimal placement of dual height cells |
US7159197B2 (en) * | 2001-12-31 | 2007-01-02 | Synopsys, Inc. | Shape-based geometry engine to perform smoothing and other layout beautification operations |
US6938234B1 (en) | 2002-01-22 | 2005-08-30 | Cadence Design Systems, Inc. | Method and apparatus for defining vias |
US6944841B1 (en) | 2002-01-22 | 2005-09-13 | Cadence Design Systems, Inc. | Method and apparatus for proportionate costing of vias |
US7089524B1 (en) | 2002-01-22 | 2006-08-08 | Cadence Design Systems, Inc. | Topological vias route wherein the topological via does not have a coordinate within the region |
US7117468B1 (en) | 2002-01-22 | 2006-10-03 | Cadence Design Systems, Inc. | Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts |
US6973634B1 (en) | 2002-01-22 | 2005-12-06 | Cadence Design Systems, Inc. | IC layouts with at least one layer that has more than one preferred interconnect direction, and method and apparatus for generating such a layout |
US7080329B1 (en) | 2002-01-22 | 2006-07-18 | Cadence Design Systems, Inc. | Method and apparatus for identifying optimized via locations |
US7096449B1 (en) | 2002-01-22 | 2006-08-22 | Cadence Design Systems, Inc. | Layouts with routes with different widths in different directions on the same layer, and method and apparatus for generating such layouts |
US6892371B1 (en) | 2002-01-22 | 2005-05-10 | Cadence Design Systems, Inc. | Method and apparatus for performing geometric routing |
US6684380B2 (en) * | 2002-04-01 | 2004-01-27 | International Business Machines Corporation | Intelligent structure simplification to facilitate package analysis of complex packages |
US6931615B1 (en) | 2002-06-04 | 2005-08-16 | Cadence Design Systems, Inc. | Method and apparatus for identifying a path between source and target states |
US7069531B1 (en) | 2002-07-15 | 2006-06-27 | Cadence Design Systems, Inc. | Method and apparatus for identifying a path between source and target states in a space with more than two dimensions |
US7047512B1 (en) | 2002-06-04 | 2006-05-16 | Cadence Design Systems, Inc. | Method and apparatus for specifying a cost function that represents the estimated distance between an external state and a set of states in a space |
US7058917B1 (en) | 2002-06-04 | 2006-06-06 | Cadence Design Systems, Inc. | Method and apparatus for specifying a cost function that represents the estimated distance between an external state and a set of states in a space |
US6892369B2 (en) * | 2002-11-18 | 2005-05-10 | Cadence Design Systems, Inc. | Method and apparatus for costing routes of nets |
US6988257B2 (en) * | 2002-11-18 | 2006-01-17 | Cadence Design Systems, Inc. | Method and apparatus for routing |
US7171635B2 (en) * | 2002-11-18 | 2007-01-30 | Cadence Design Systems, Inc. | Method and apparatus for routing |
US7093221B2 (en) * | 2002-11-18 | 2006-08-15 | Cadence Design Systems, Inc. | Method and apparatus for identifying a group of routes for a set of nets |
US7480885B2 (en) * | 2002-11-18 | 2009-01-20 | Cadence Design Systems, Inc. | Method and apparatus for routing with independent goals on different layers |
US6996789B2 (en) * | 2002-11-18 | 2006-02-07 | Cadence Design Systems, Inc. | Method and apparatus for performing an exponential path search |
US7624367B2 (en) | 2002-11-18 | 2009-11-24 | Cadence Design Systems, Inc. | Method and system for routing |
US7047513B2 (en) * | 2002-11-18 | 2006-05-16 | Cadence Design Systems, Inc. | Method and apparatus for searching for a three-dimensional global path |
US7216308B2 (en) * | 2002-11-18 | 2007-05-08 | Cadence Design Systems, Inc. | Method and apparatus for solving an optimization problem in an integrated circuit layout |
US7003752B2 (en) * | 2002-11-18 | 2006-02-21 | Cadence Design Systems, Inc. | Method and apparatus for routing |
US7010771B2 (en) * | 2002-11-18 | 2006-03-07 | Cadence Design Systems, Inc. | Method and apparatus for searching for a global path |
US7506295B1 (en) * | 2002-12-31 | 2009-03-17 | Cadence Design Systems, Inc. | Non manhattan floor plan architecture for integrated circuits |
US7089519B1 (en) | 2002-12-31 | 2006-08-08 | Cadence Design System, Inc. | Method and system for performing placement on non Manhattan semiconductor integrated circuits |
US7013445B1 (en) | 2002-12-31 | 2006-03-14 | Cadence Design Systems, Inc. | Post processor for optimizing manhattan integrated circuits placements into non manhattan placements |
US7096445B1 (en) | 2003-01-14 | 2006-08-22 | Cadence Design Systems, Inc. | Non-orthogonal structures and space tiles for layout, placement, and routing of an integrated circuit |
US7243328B2 (en) * | 2003-05-07 | 2007-07-10 | Cadence Design Systems, Inc. | Method and apparatus for representing items in a design layout |
US7100135B2 (en) * | 2004-06-18 | 2006-08-29 | Intel Corporation | Method and system to evaluate signal line spacing |
US7191425B1 (en) * | 2004-11-18 | 2007-03-13 | Sun Microsystems, Inc. | Method and apparatus for inserting extra tracks during library architecture migration |
JP4817746B2 (ja) * | 2005-07-27 | 2011-11-16 | 株式会社東芝 | 半導体装置の設計データ処理方法、そのプログラム、及び半導体装置の製造方法 |
US20070220472A1 (en) * | 2006-02-28 | 2007-09-20 | Inventec Corporation | Computer aided wave-shaped circuit line drawing method and system |
JP4637043B2 (ja) * | 2006-03-23 | 2011-02-23 | 新光電気工業株式会社 | 自動配線整形方法および自動配線整形装置 |
US8161426B2 (en) * | 2009-01-30 | 2012-04-17 | Synopsys, Inc. | Method and system for sizing polygons in an integrated circuit (IC) layout |
US8146025B2 (en) * | 2009-07-30 | 2012-03-27 | United Microelectronics Corp. | Method for correcting layout pattern using rule checking rectangle |
JP7119688B2 (ja) * | 2018-07-18 | 2022-08-17 | 株式会社ニューフレアテクノロジー | 描画データ生成方法、プログラム、及びマルチ荷電粒子ビーム描画装置 |
US11106850B2 (en) * | 2019-09-04 | 2021-08-31 | International Business Machines Corporation | Flexible constraint-based logic cell placement |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5097422A (en) * | 1986-10-10 | 1992-03-17 | Cascade Design Automation Corporation | Method and apparatus for designing integrated circuits |
DE3935418A1 (de) * | 1988-10-24 | 1990-04-26 | Hitachi Ltd | Verfahren und vorrichtung zur bestimmung von verdrahtungsmustern |
US5113451A (en) * | 1989-10-16 | 1992-05-12 | Vlsi Technology, Inc. | Method for labelling polygons |
US5416722A (en) * | 1992-11-19 | 1995-05-16 | Vlsi Technology, Inc. | System and method for compacting integrated circuit layouts |
US5581475A (en) * | 1993-08-13 | 1996-12-03 | Harris Corporation | Method for interactively tailoring topography of integrated circuit layout in accordance with electromigration model-based minimum width metal and contact/via rules |
US5613102A (en) * | 1993-11-30 | 1997-03-18 | Lucent Technologies Inc. | Method of compressing data for use in performing VLSI mask layout verification |
US5515293A (en) * | 1993-12-22 | 1996-05-07 | Vlsi Technology, Inc. | Method and apparatus for generating a linked data structure for integrated circuit layout |
US5625568A (en) * | 1993-12-22 | 1997-04-29 | Vlsi Technology, Inc. | Method and apparatus for compacting integrated circuits with standard cell architectures |
US5524182A (en) * | 1994-12-21 | 1996-06-04 | Hewlett-Packard Company | System and method for compressing and decompressing fonts based upon font stroke regularities |
US5640497A (en) * | 1995-01-23 | 1997-06-17 | Woolbright; Phillip Alexander | Layout redesign using polygon manipulation |
-
1997
- 1997-10-30 US US08/960,715 patent/US6128767A/en not_active Expired - Lifetime
-
1998
- 1998-10-28 DE DE69813892T patent/DE69813892T2/de not_active Expired - Lifetime
- 1998-10-28 TW TW087117916A patent/TW515066B/zh not_active IP Right Cessation
- 1998-10-28 KR KR10-2000-7004667A patent/KR100399645B1/ko not_active IP Right Cessation
- 1998-10-28 JP JP2000519466A patent/JP3710710B2/ja not_active Expired - Fee Related
- 1998-10-28 EP EP98956266A patent/EP1044471B1/en not_active Expired - Lifetime
- 1998-10-28 WO PCT/US1998/022819 patent/WO1999023699A2/en active IP Right Grant
- 1998-10-28 CA CA002308707A patent/CA2308707C/en not_active Expired - Fee Related
- 1998-10-28 EP EP03075900A patent/EP1324234B1/en not_active Expired - Lifetime
- 1998-10-28 DE DE69824765T patent/DE69824765T2/de not_active Expired - Lifetime
- 1998-10-28 IL IL13587098A patent/IL135870A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
IL135870A0 (en) | 2001-05-20 |
CA2308707A1 (en) | 1999-05-14 |
EP1324234A1 (en) | 2003-07-02 |
TW515066B (en) | 2002-12-21 |
KR100399645B1 (ko) | 2003-09-29 |
DE69813892D1 (de) | 2003-05-28 |
DE69813892T2 (de) | 2004-02-26 |
EP1324234B1 (en) | 2004-06-23 |
WO1999023699A2 (en) | 1999-05-14 |
DE69824765T2 (de) | 2005-07-21 |
IL135870A (en) | 2005-03-20 |
JP2001522111A (ja) | 2001-11-13 |
EP1044471B1 (en) | 2003-04-23 |
CA2308707C (en) | 2005-01-11 |
US6128767A (en) | 2000-10-03 |
DE69824765D1 (de) | 2004-07-29 |
WO1999023699A3 (en) | 1999-07-22 |
KR20010031616A (ko) | 2001-04-16 |
EP1044471A2 (en) | 2000-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3710710B2 (ja) | Icレイアウトにおけるポリゴン表現 | |
US10248751B2 (en) | Alternative hierarchical views of a circuit design | |
JP3077757B2 (ja) | レイアウトコンパクション方法及びレイアウトコンパクション装置 | |
US5625568A (en) | Method and apparatus for compacting integrated circuits with standard cell architectures | |
US6829757B1 (en) | Method and apparatus for generating multi-layer routes | |
US6877146B1 (en) | Method and apparatus for routing a set of nets | |
JP2004531840A (ja) | 二次元圧縮システム及び方法 | |
US7107564B1 (en) | Method and apparatus for routing a set of nets | |
US6859916B1 (en) | Polygonal vias | |
Seiler | A hardware assisted design rule check architecture | |
US11176306B2 (en) | Methods and systems to perform automated Integrated Fan-Out wafer level package routing | |
US7310793B1 (en) | Interconnect lines with non-rectilinear terminations | |
US6895569B1 (en) | IC layout with non-quadrilateral Steiner points | |
US7069530B1 (en) | Method and apparatus for routing groups of paths | |
JP2874711B2 (ja) | 離散化格子の生成装置 | |
US6842887B2 (en) | Data processing system for designing a layout of an integrated electronic circuit having a multiplicity of electronic components and method of designing a layout | |
US6976238B1 (en) | Circular vias and interconnect-line ends | |
US6951005B1 (en) | Method and apparatus for selecting a route for a net based on the impact on other nets | |
EP0644496A2 (en) | Method and system for dividing analyzing region in device simulator | |
US6882055B1 (en) | Non-rectilinear polygonal vias | |
Sato et al. | Applications of computational geometry to VLSI layout pattern design | |
Pelz et al. | Efficient fracturing of all angle shaped VLSI mask pattern data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041130 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050228 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050810 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080819 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090819 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090819 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100819 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |