JPH11509038A - 集積回路のポイントランドマーク設計方法及び装置 - Google Patents

集積回路のポイントランドマーク設計方法及び装置

Info

Publication number
JPH11509038A
JPH11509038A JP9503325A JP50332597A JPH11509038A JP H11509038 A JPH11509038 A JP H11509038A JP 9503325 A JP9503325 A JP 9503325A JP 50332597 A JP50332597 A JP 50332597A JP H11509038 A JPH11509038 A JP H11509038A
Authority
JP
Japan
Prior art keywords
constraint
point
list
routine
constraints
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
Application number
JP9503325A
Other languages
English (en)
Inventor
ブカナン,マーク,イー.
リッピンコット,ジョージ,ピー.
Original Assignee
カスケード デザイン オートメーション コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by カスケード デザイン オートメーション コーポレイション filed Critical カスケード デザイン オートメーション コーポレイション
Publication of JPH11509038A publication Critical patent/JPH11509038A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit 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

(57)【要約】 集積回路のポイントランドマーク設計のための方法及び装置が記載される。コンピュータは、グラフィカルインターフェースを示し、グラフィカルインターフェースに応じてユーザから命令を受け取るようにプログラムされる。また、コンピュータは、集積回路設計の形態及び所定のプロセス技術に関連する設計ルールの記述、並びに他の設計制約を受け取る。それから、コンピュータは、集積回路設計中の各形態に少なくとも一つの形態ポイントを関連付け、且つ集積回路設計中に使用される形態の各タイプに属性リストを関連付ける。また、コンピュータは、各形態ポイントに少なくとも2つの制約(ref1,p1)を関連付け、且つ各制約に制約属性のリストを関連付ける。それから、コンピュータは各ポイントランドマークに関連する属性リスト上の処理を実行し、形態ポイントの相対的幾何配置を決定する。

Description

【発明の詳細な説明】 集積回路のポイントランドマーク設計方法及び装置仮出願の参照 本出願は、1995年6月12日出願の米国仮出願No.60/000,159の利益を主 張する。技術分野 本発明は、集積回路設計においてポイントランドマークを使用する方法及び装 置に関する。発明の概要 第1の実施形態によれば、本発明は、基板面上の複数層上に定義される複数の 形態を有する集積回路の設計方法である。形態は、可能な形態タイプのセットか ら選ばれ、且つプロセス技術に関連する設計ルールのセットの対象となる。設計 ルールは、前記可能な形態タイプのセットの構成要素中から物理的要求事項を特 定する。その方法は、a)少なくとも一つの形態ポイントに、複数の形態中の各 形態を関連付ける工程と、b)各形態ポイントに付加的情報を関連付ける工程で あって、前記付加的情報は形態のタイプに関連する属性のリストを含み、属性リ スト中の各属性は一つの値を有する工程と、c)複数の形態中の各形態に関連す る形態ポイントに関連する各属性のリストを用意する工程であって、前記リスト は属性の値を含む工程と、を備える。その方法はさらに、d)各形態ポイントに 少なくとも2つの制約を関連付ける工程と、e)各制約に付加的な制約情報を関 連付ける工程であって、前記制約情報は、制約のタイ プに関連する制約属性のリストを含み、制約属性リスト中の各属性は一つの値を 有する工程と、f)複数の形態中の各形態に関連する制約に関連する各制約属性 のリストを用意する工程であって、前記リストは制約属性の値を含む工程と、を 備える。さらに、その方法は、g)各リストの処理を実行する工程であって、前 記処理は設計ルール中の制約に対応し、前記処理の結果は形態ポイントの相対的 幾何的配置である工程を備える。 他の観点によれは、本発明は、基板面上の複数層上に定義される複数の形態を 有する集積回路の設計装置である。形態は、可能な形態タイプのセットから選ば れ、且つプロセス技術に関連する設計ルールのセットの対象となる。設計ルール は、前記可能な形態タイプのセットの構成要素中から物理的要求事項を特定する 。その装置は、第1、第2、第3、第4、第5、第6、及び第7の回路手段を備 える。第1の回路手段は、少なくとも一つの形態ポイントに、複数の形態中の各 形態を関連付ける。第2の回路手段は、各形態ポイントに付加的情報を関連付け る。その情報は形態のタイプに関連する属性のリストを含み、属性リスト中の各 属性は一つの値を有する。第3の回路手段は、複数の形態中の各形態に関連する 形態ポイントに関連する各属性のリストを用意する。リストは属性の値を含む。 第4の回路手段は、各形態ポイントに少なくとも2つの制約を関連付ける。第5 の回路手段は、各制約に付加的な制約情報を関連付ける。制約情報は、制約のタ イプに関連する制約属性のリストを含む。制約属性リスト中の各属性は一つの値 を有する。第6の回路手段は、複数の形態中の各形態に関連する制約に関連する 各制約属性のリストを用意し、リストは制約属性の値を含む。第7の回路手段は 、各リストの処理を実行する。処理は設計ルール中の制約に対応し、前記処理の 結果は形態ポイントの相対的幾何的配置である。図面の簡単な説明 図1は、本発明の方法の一部を示す概略図である。 図2は、本発明の方法の一部を示す概略図である。 図3A−Bは、本発明の方法の一部を示す概略図である。 図4は、本発明の方法の一部を示す概略図である。 図5は、本発明の方法の一部を示す概略図である。 図6A−Bは、本発明の方法の一部を示す概略図である。 図7A−Cは、本発明の方法の一部を示す概略図である。 図8A−Bは、本発明の方法の一部を示す概略図である。 図9A−Bは、本発明の方法の一部を示す概略図である。 図10A−Bは、本発明の方法の一部を示す概略図である。 図11は、本発明の方法の一部を示す概略図である。 図12は、本発明の方法の一部を示す概略図である。 図13は、本発明の方法の一部を示す概略図である。 図14A−Bは、本発明の方法の一部を示す概略図である。 図15は、本発明の方法の一部を示す概略図である。 図16A−Bは、本発明の方法の一部を示す概略図である。 図17A−Bは、本発明の方法の一部を示す概略図である。 図18A−Bは、本発明の方法の一部を示す概略図である。 図19A−Dは、本発明の方法の一部を示す概略図である。 図20は、本発明の方法の一部を示す概略図である。 図21は、本発明の方法の一部を示す概略図である。本発明の好適な実施形態の詳細な説明 A1.0 導入 かつてのランドマークによる方法論では、過多及び過少なランド マークを有することの間で行われるべきトレードオフが存在した。ランドマーク が多過ぎる場合、アイビュー(Iview)でセルをデバッグすることが困難となる 。少な過ぎる場合、ランドマーク方程式が複雑となり、それらが不正確となり易 い。 ポイントランドマークアプローチは、正確な方程式を見つけ出す方法を自動化 する試みである。このアプローチでは、新規な構造(“ポイント”ランドマーク) を使用してボックスのコーナー及びワイヤポイントを識別する。これらのポイン トランドマークは、X及びYの位置両方を有し、それはディスプレーをクラッタ させること無くそれらのより多くを得ることを可能とする。 ランドマーク方程式の代わりに、ポイント−ランドマーク間で制約(constrai nt)が使用される。制約は2つのポイント間の関係に関する情報を特定するが、 制約の値は通常は自動的に計算される。 A2.0 ポイント ポイントは、幾何形状要素(ワイヤ、ボックス、及びポリゴン)を示すために 使用される。表1に示すように、ポイントはタイプ、層、拡張及びノードに関す る情報を含まなければならない。この情報は、制約についての距離を計算するた めに使用される(設計者に明示的な方程式を特定させる代わりに)。 ボックスは(対向するコーナーに)2つのポイントを必要とし、ポリゴンは各 コーナーに一つのポイントを必要とし、ワイヤは開始ポイント及び各セグメント について一つのポイントを必要とする。 単純な幾何形状に加え、ポイントは、CDSで作られる種々のタイプの接点及 び通路を示すために使用される。これらの接点及び通路は、3つの層上に幾何形 状を有すると考えられる−接点又は通路の層に加え、コネクトされる2つの層。 A3.0 制約 制約は、基準ポイント、目標ポイント、方向、タイプ及びリンクを有する。こ れらを以下に説明する。 A3.1 基準及び目標 目標は、制約が適用されるポイントである。基準は、そこから遠隔に目標が配 置されるポイントである。 A3.2 方向 方向は、基準に対する目標の方位を特定する。例えば、制約は、目標ポイント が基準ポイントの北にあることを特定する。 A3.3 タイプ ポイント間の関係を特定するために幾つかの制約のタイプが使用できる。タイ プは、どのように距離が計算されるかに影響を与える。制約が“サイド”制約で ある場合、距離は設計ルールにより要求される基本的なマンハッタン距離である 。制約がX方向の“コーナー” 制約である場合、2つの点をオフセットするためのピタゴラス距離を見い出すた めに各ポイントのY座標を考慮に入れる。 デフォルト制約はサイド制約と同様に動作しようとするが、多くのデフォルト 制約を使用する場合には、循環(cycle)が生じ、その場合、そのポイントのY 座標もXに依存するにも拘わらず、そのポイントのY座標が計算される前にその ポイントのX座標を知る必要が生じる。これが生じた場合、解決者はデフォルト 制約の一つを取り上げ、それをサイド制約として扱う。 デルタ制約は、設計ルールにより指示される最小空間の代わりに、ユーザが指 定した値を使用することを許容する。 アライン制約は、2つのポイントがX又はY方向に整列すべきであることを示 す。 コネクト制約は、狭ワイヤと、広いワイヤ又は接点との間の接続を示すのに使 用される。それは、接続が完全に維持されている限り、接点ストリップの片側か ら他方へとワイヤがスライドすることを可能とする。 A3.4 リンク 制約リンクは、目標の使用後に基準ポイントに何が起きるかを示すために使用 される。しばしば、一つのポイントは制約が要求するよりも遠くへ移動する。( これは一般的に他の制約の存在による)。しばしば、2つのポイントを接近して 維持することが望まれ、例えば、トランジスタのゲートは、可能であれば常にド レインに近接すべきである。これは、“アタッチ”制約を作ることにより実行で きる。一つのポイントが移動した後、可能な限り全ての付属する基準を引き寄せ る試みが為される。 アタッチリンクの少し弱いバージョンも使用可能であり、それは“アトラクト ”と呼ばれる。基準が引き付けられれば、それはアトラクトの方向に引き寄せら れるが、それは、他のものを押しやらす、又は制約を破らずに進める限りにおい てである。アタッチは、必要であれば、実際にそれに沿うものを押しやることが ある。 最も一般的なリンクは“フリー”である。このリンクを有する制約は、基準ポ イントに何らの効果を及ぼさない。 A4.0 解決制約 A4.1 制約を構成する方法 制約は、それらの方向、目標ポイント、及びそれらがアライン制約であるか否 かに応じて全てグループ分けされる。各ポイントについて、X、Y、X−アライ ン、及びY−アライン、の4個の制約のリストがある。これらの各リストを含む マスターリストも作られる。 A4.2 制約リストの評価 制約はグループ内で評価される。リスト中の全ての制約が評価の準備がされて いる場合、評価がなされ、最大値が選択される。制約が評価の準備がされている か否かについての必要条件は、それがコーナー又はサイド制約として扱われてい るか否かに依存する。X方向のコーナー制約は、基準ポイントのX及びY座標、 並びに目標ポイントのY座標が既知であることを必要とする。X方向のサイド制 約は、基準のX座標が既知であることのみを必要とする。 アライン制約は、目標を有さず、基準のみを有する。リスト中の全ての基準が 既知の値を有する場合、アラインが実行可能である。 A4.3 評価の順序 制約を評価する順序は任意である。制約のリストは、それら自身がマスターリ ストの一部である。このマスターリストは、評価可能な制約を見つけるために考 察される。評価される最初の制約は、それに伴う基準が無いので、オリジン制約 である。次に、そのポイントのみに依存するあらゆるポイントが評価可能となり 、次にそれらにのみ依存するポイントが評価可能となり、以下同様である。リス トが終了すると、他の通過が行われる。 各通過において、アルゴリズムはいずれかの制約が評価されたか どうかの追跡を維持する。評価されたものが無ければ、循環が存在し、デフォル ト制約を取り上げてサイド制約として評価する必要がある。これは任意の方法に よっても行うことができ、また将来においてはこの選択にある知能を与える方法 を研究することが良いであろう。アルゴリズムが停止する度に、一つのデフォル ト制約が交換される。結局、継続が可能となる。 A4.4 アタッチ ポイントの位置が計算された後、アタッチリンクを有するあらゆる制約を解決 するための試みが為される。アタッチの処理をかなり複雑化させる付加的な考慮 がある。時折、アタッチは図1に示すように相互に矛盾する。 図1では、太い線はアタッチ制約を示し、数字は制約についての間隔値を示す 。ポイントP3がポイントP2に引き寄せられると、P1からP4への距離は、 5−2+5又は8ユニットとなる。P1からP4へのアタッチは、この距離を6 に維持しようとする。これを行うためには、P3とP2の間隔は4とすべきであ る。この矛盾は、P1からP2を通り、アタッチによりP3を通りP4へ至る通 路が見つけられるので、P1からP4へのアタッチに優先度を与えることにより 解決される。P2とP3との間のアタッチは、P4の位置が分かるまで処理でき ない。 A4.5 アトラクト 全ての制約が処理された後、最後のステップは引き付けられたポイントを移動 することである。アトラクト制約を有する各ポイントについて、このポイントを 基準として使用する全ての制約を分析し、それらがどの程度の量のゆとりを有す るかを調べる。これは、他の 次元に含まれるコーナー制約を含む。あらゆる制約を破ることなくどの程度遠く までポイントが移動できるかを決定した後、ポイントを移動する。 整列され、且つ引き付けられたポイントの場合、アライン中の各ポイントを分 析し、それをその方向にどの程度遠くまで移動できるかを調べる。 もしいずれかのポイントがアタッチ制約の目標であるとすれば、それは移動す ることは許されない。対応する基準をも移動するのであればそのような目標を移 動しても構わないのであるから、これは過度に制限的であるかもしれない。将来 的には、アルゴリズムはこの点を考慮に入れるように高度化されるべきである。 アタッチとアトラクトとの相違を図2に示す。左側において、3つのポイント が示されている。P2及びP4の位置は、図示しない制約により設定される(図 示の制約は重大な制約ではない)。もしP3がP4にアトラクトされるならば、 それは、P3からP2への制約が重大となるまで移動する(中央の図に示すよう に)。それはP2を移動させない。もしP3がP4にアタッチされるならば、そ れは右の図に示すようにP2を上方へ押し上げる。 A4.6 制約値の計算 制約値は、ポイントのタイプに基づいて実行時に計算される。拡張方向及びオ ーバーラップについての情報を考慮して、ポイントがどの程度遠くにある必要が あるかを決定する。この例外は、その値がユーザにより指定されるデルタ(ユー ザ)制約である。 A5.0 将来的な高度化 A5.1 グリッドスナッピング 現在では、ポート又は他の幾何形状をユーザ定義のグリッドにスナップする方 法が無い。 A5.2 45度の幾何形状 A5.3 ハレーションチェック A5.4 パフォーマンスの改善 製品化のための試みの一部として、評価をより効率的に行う方法を研究すべき である。 B.CDSポイントランドマーク設計方法論への導入 概観 この文献は、ポイントランドマーク方法論の幾つかの形態、及び、ランドマー クを定義し、使用する従来の方法に対するその長所を記述する。読者は、現在の 幾何形状の生成及びランドマーク定義を知っていると想定する。 導入 従来のランドマークは、x及びyの位置を示す整数値からなる。ランドマーク 名を示す可能な記号列を除いて、ランドマークに関連する他の情報は無い。ラン ドマークが、それがどのタイプの幾何形状を示すかを示すことができれば、それ から、所定の2つのランドマークを与えられることにより、その2つのランドマ ーク間の最小必要間隔が何であるかを決定することができる。 一次元ランドマークは1以上の幾何形状アイテムの位置を部分的に示すが、位 置の表現は2次元の値を必要とするので、幾何形状の位置を完全に示すことはで きない。このため、2次元ランドマークポイントは、それが付属する幾何形状を より良く示すことができる。これが、ランドマーク設計方法論の主要な前提であ る。 あらゆる方向に他のランドマークポイントが丁度どの程度近接しているかを決 定でき、第1のポイントの幾何形状アイテムタイプ及びノード、東、を有する幾 何形状のランドマークの位置を与えられると、ルーチンは各ポイントの幾何形状 アイテムタイプを容易にチェックすることができ、第2のポイントについての要 求されるx位置を返すことができる。第2のポイントのy位置が既知であるなら ば、ルーチンは2つのポイントのy値を比較することができ、またそれらが十分 に離れているならば、第2のポイントのx位置について“制約無し”を示す値を 返すことができる。y値が、ポイントランドマークが斜めの構成にあることを示 すならば、ピタゴラスの定理を適用して第2のポイントについての可能な最も接 近したx値を決定する。 独立なx及びyのランドマークの代わりに幾何形状位置を示すポイントランド マークにより、幾つかの幾何形状生成命令を単純化することができる。例えば、 ボックスルーチンは、4つの代わりに2つのみの引数を必要とするルーチンに置 換することができる。それは、引数リスト中のその2つのポイントによりどのタ イプの幾何形状が示されているかをさえチェックし、現在の描画層をチェックし 、ポイントランドマーク上の描画材料の必要なオーバーラップを決定することが できる。 この設計方法論は、新たなCDSユーザの習得曲線を短縮すべきである。ユー ザのモジュールコードにはミクロ又はマクロが要求されないので、ユーザはそれ らを知る必要はない。その代わりに、ユーザは幾何形状アイテムタイプのリスト を知る必要がある。ミクロ及びマクロの現在のリストは合計で290余りであり 、幾何形状アイテムタイプのリストは30余りと推測される。典型的には、例え ばポリメタル接点などの幾何形状アイテムを識別することは、2つ の幾何形状アイテム間の間隔を識別することよりも容易である(ac2pyc、又はそ れはac2pycm、又はac2pyscmd...)。新しいユーザが学ぶべき題材がより少なく 、それはより直接的であるので、新しいCDSユーザは、この方法の利用により 、現在のランドマーク発生方法よりも作業コードをより短い時間で取得可能とす べきである。 DRCエラーは、しばしば、モジュールコンパイラコードのランドマーク計算 中のミクロ又はマクロの紛失により生じる。典型的にこれらのエラーは、現在の ルールセットに依存するので、初期には検出されない。注意深く記述されたルー チンが必要間隔を計算しているならば、全てのルールセットについての全ての間 隔要求事項が考慮されるであろう。もし一つの事項が見逃された場合でさえも、 全体のモジュールライブラリの一つのタイプの間隔ルーチンDRCの変化である 。 ポイント構造 ポイントの定義は、その名称と、そのポイントのx及びy値と、そのアイテム タイプ(即ち、PYC)と、その拡張方向(ポリメタル接点は金属の方向に拡張 を有する)と、その幅(ワイヤを示すならば)と、その電気的ノード名と、から なる。この情報は、以下のような構造内に維持できる: typedef struct xpointstruct { char name[16]; INT32 a,y; INT32 item; INT32 width; char ext_dir[5]; char node[16]; } POINTRECORD; 構造定義の一部と考えることができる付加的な情報は、リンクされたリストの 創造のための次のポイント構造へのポインタを含み、line_of_codeファイル名と ライン数情報のプレースホルダーは以下のようなものである: PointA = DEF_POINT("PointA",PYC,"NE",nodel"); まず、マクロは、その構造へのポインタであるPointAを有するポイント構造の ための空間に割当て、"PointA"を名前の要素にstrcpyし、構造のx及びy値をUN DEFINEDに初期化し、アイテム要素をPYC(アイテムは列挙されたリスト中にある )を示す数にセットし、"NE"をext_dir要素へstrcpyし、"nodel"をノード要素へ strcpyする。PointAは構造へのポインタとして以前に定義されている。ポイント が任意の幅のワイヤを示すならば、以下に示すようなマクロを使用してワイヤの 幅を特定することができる: Pwidth(PointA、railSize); 方向性関数 方向性関数は、設計方法論のための基本的な基礎単位である。新規なポイント の位置は他のポイントからの相対的方向により決定される。例えば、PointAはPo intB(図3A参照)の東にある。あるポイントが1以上のポイントにより制約さ れるならば、PointAの位置 はPointB及びPointCの北(図3B参照)として定義することができる。1以上の 制約が指定されるならば、最悪の場合の制約が使用される。 ルーチンへのCソースコードの呼び出しは以下のようである: east(PointA、1、PointB); north2(PointA、1、PointB、PointC); 第1の引数は、変更されるべきポイント構造へのポインタである(x値はルー チンeast及びwestで変更され、y値はルーチンnorth及びsouthで変更される)。 次の引数は、制約の優先度であり(小さい数は高い優先度を有する−記号的制約 のセクションを参照)、基準ポイント構造への各ポインタがこれに続く。ルーチ ンはINT32値(x又はyの計算値)を返し、それによりそれらは既存のランドマ ーク設計方法と互換性を有する。返された値がどのように使用されるかを示す例 をここに示す: x2 = east(PonintA、1、PointB); 一つのポイントを他のポイントへの制約として使用することの、他により制約 される1次元ランドマークに対する長所は、示された幾何形状間の絶対距離を計 算できることである。1次元ランドマークに付属された例えばx方向への幾何形 状により、それは、絶対距離ではなく、その制約幾何形状のx位置によってのみ 制約される。幾何形状のy値は、非常に遠隔にあり、if-thenタイプのチェック 無しでは幾何形状間で不要な空間が浪費されることがある。north、south、east 及びwestのルーチンでは、設定されたポイントはその 各制約ポイントと比較されるので、制約ポイントx及びyの両方の値がチェック され、ポイントはできる限り接近して配置される。もし逆の値の距離(east又は westルーチンについてのy距離)があらゆる可能な空間的問題を回避するのに十 分な程度に大きいならば、戻される値はNOCONSTRAINTにセットされる。全ての制 約ポイントのチェック後にルーチンがNOCONSTRAINTを返すならば、返される値は 最小又は最大制約ポイントの値に等しく設定される。 標準的な空間チェックの実行を除いて、方向性ルーチンはまた、特殊なケース を処理することができる。例えば、メタルアクティブ接点(MAC)の位置が他 のMACに対して計算されているとすると、そのMACが同一のトランジスタの 一部としてポリゲートの逆側にあるかを決定することができる。2つのMAC内 のアクティブの拡張方向が夫々の方向であり、電気的ノード名が相違すれば、そ のMACはほぼ同一トランジスタのものであり、ポリゲートに隣接する2つのM ACについての全てのルールを適用することができる(図4参照)。 幾つかのランドマークは物理的制約ではなく電気的制約により決定され、よっ て上述のものと類似するルーチンを記述することができるが、トランジスタサイ ズの引数により: tEast(PointA、PointB、Wn); 上記の例では、ルーチンtEastは、PointAにより示される構造のx要素をPoint Bからの正しい空間にセットし、幅Wnである水平nチャンネルトランジスタを作 る。PointA及びPointBのアイテムタイプがメタルアクティブ接点であったとすれ ば、ルーチンは制約計算中にアクティブオーバー接点距離の適当なオーバーラッ プを減ず ることができたであろう(図5参照)。ルーチンtNorth、tSouth、及びtwestも 使用可能である。 任意の間隔値は、例えば他のセルへのピッチが一致するメタルルート、又はス タンダードセルの高さのセッティングなどのある環境において要求される。ポイ ント間の距離又はデルタをユーザに指定可能とするルーチンは;ポイント間の距 離又はデルタは以下のようである: dWest(PointA、PointB、v2v); 上述の例において、ルーチンtWestは、PointAにより示される構造のx要素を 、PointBの左へ距離v2v(通路から通路の距離)になるように設定する。このル ーチンは、斜めにではなく、直角方向にのみ距離を適用する。ルーチンdNorth、 dSouth、及びdEastも使用可能である。 スタンダードセルは、セルの左右エッジに近接するあらゆる幾何形状がエッジ から遠隔になければならないという特徴的な空間制約を有し、それにより、他の スタンダードセルをそのそばに配置でき、セルの幾何形状間の全ての空間要求事 項が満たされる。典型的に、これはモジュールコード中に多くのミクロ及びマク ロを含む多くの計算を使用してランドマークを計算することにより実行される。 ランドマークがスタンダードセルのエッジに関連するならば、セル内部の幾何形 状を示すあらゆるランドマークはそのランドマークを制約として使用可能であり 、それらの位置はeast又はwestルーチンにより適切に計算することができる。 記号的制約 east、又はdWest、tNorth等の制約方程式又はルーチンを定義(特定)することが でき、それによりそ−れらは、それらが実行される時に(実行時)評価し、若し くはそれらは記号的に定義することができ、そこでは実行中にテーブル内へエン トリーが行われ、その後に評価される。各アプローチはその長所及び短所を有す る。 制約方程式が、それらが実行される時に評価されるならば、各ポイントの位置 は実行の直後に使用可能となる。しかし、これはモジュールソース中の制約方程 式の順序が、それらが評価される順序により決定されることを必要とし、それは ランドマークを定義する現在の我々の方法と等価である。これは、設計フローが 制約フローと相違する場合には有益ではないであろう。制約方程式がソースコー ド中で順序どおりでなく配置されたならば、制約関数が未定義座標を有するポイ ントを参照しようとする時に、エラーが生じる。 制約が記号的であり、評価が後に行われるとすれば、ソースコード中の方程式 の順序付けは重大ではない。制約は、優先度タグ又は番号(方程式に対する一つ の引数)に基づく順序で評価することができる。評価中に優先度番号が使用され ず、又は無効な順序である場合でさえ、制約が未定義座標を有するポイントを参 照している場合、制約を、その基準ポイント全てが定義されるまで“待機状態に する”ことができ、それからその後に評価することができる。ユーザは、まず、 望ましいように制約方程式の順序付けを行い、次にタグ又は番号により制約に優 先度を付けることにより、評価順序について最終的な制御を有し、それは順序付 けを無視することになる。記号的方法の欠点は、条件ステートメントのようなも のでの使用においてポイントの位置が直ちに使用可能でないことである。しばし ば、一連の制約は先に定義された制約の比較の結果に依存するが、 制約はその後に評価されるので、この情報は使用可能ではない。この問題に対す る解決は、ユーザに、それまでに定義された制約を評価する機能を与えることで ある。この方法は、所望のポイントを決定するために十分な制約が定義されるこ とを必要とする。xEval及びyEvalと呼ばれるルーチンを定義し、それまでに定義 された全ての制約を評価し、所望のポイントが定義されたかを調べ、もしそうで あれば、そのx及びy位置を返す、−そうでなければ、エラーを返す。xEvalル ーチンがどのように使用されるかを示す例をここに挙げる: if (xEval(PointA) < xEval(PointB)){... この例では、xEvalルーチンは先に特定された全ての制約方程式を評価し、Poi ntA構造のx要素が定義されたことを確認し、それからその値を条件付き評価の ために返す。xEvalルーチンが再度呼ばれると、フラグは、制約評価を繰り返す 必要が無いことを示し、Points構造のx要素がチェックされ、それからその値が 条件付き評価のために返される。 ソースコード中で残りのステートメントが特定された後、全ての制約方程式の 最終的な評価を行い、あらゆる未定義の位置をチェックし、破られた制約をチェ ックするためにルーチンが使用される。デバッグフラグがセットされると、制約 のリストがそれらが評価される順序でプリントされる。このルーチンの呼び出し は、以下のようである: evalConstraints(); このルーチンは、ランドマーク定義の終了を示し、幾何形状定義セクションが 開始する。 ポイントランドマークの初期化及びユーティリティ 初期化ルーチンは、ポイントランドマーク設計方法論を支える上で恐らく必要 であろう。このルーチンの呼び出しは以下のようである: PointLandInit(); ランドマークの生成を単純化するために、幾つかのユーティリティが記述され る。しばしば、レイアウトプロセスを単純化するために、幾つかの幾何形状をセ ル内で整列させる必要がある。各ポイントは一つの幾何形状を示すので、整列さ れた全ての幾何形状を示す1次元ランドマークの代りに、所望のポイントを整列 するルーチンが存在する: xAlignMAX3(1、PointA、PointB、PointC); この例は、各ポイント構造の最大x要素を決定し、全てのポイント構造をその 値に設定する。いずれかのx要素がUNDEFINED又はNOCONSTRAINTにセットされれ ば、最大値の計算時にはそれらは考慮されないが、依然として残りのポイントの 最大x要素値にセットされる。引数名(xAlignMAX3)は、基準ポイントの数、こ の場合3を示す。ルーチンへの最初の引数は優先度番号である。同様に動作する ルーチンは、xAlignMIN、yAlignMAX、及びyAlingMINである。そのルーチンは、 計算された値INT32を返す。 開始点、原点又はセルを特定するために、以下のルーチンを使用することがで きる: Progom(PointA); このルーチンは、ポイントのx及びy要素を0、0に明示的に割り当てる必要無 しに、ポイントを開始点(恐らく0、0)に関連付けることを可能とする。制約の セットを、他の制約のセットに対して配置すべきであるならば、このルーチンは 必要なオフセットの計算に責任を有する。 幾何形状の発生 関連する幾何形状を見ている間に定義されたポイントランドマークを見ること ができれば非常に有益である。ランドマークを幾何形状データベースの一部とし て含めるルーチンは以下のようである: tpoint("name"、Point); ここで、"name"はポイントに付けられた記号列であり、Pointは構造へのポイン タである。ポイント構造がリンクされたリストとして作り上げられたならば、全 てのランドマークポイントをデータベースの一部とするためには、あるいは唯一 の呼出しが必要となるであろう。line_of_code情報がポイント構造の一部である ならば、このルーチンは情報をデータベース中に配置するであろう。 このポイントランドマーク設計方法論を利用して、多くのルーチン及びマクロ を記述することができる。以下は幾つかの例である: Pwire(width、Point); このマクロは、ポイントPointの現在の描画層上の幅広ワイヤを開始する。 Px(Point); Py(Point); これらのマクロは、夫々、Point−>x、又はPoint−>yまで現在のワイヤ又 はポリゴンを描画し続ける。 Pxy(Point); Pyx(Point); Pxyマクロは、まず、Point−>x、次に、Point−>yまで現在のワイヤ又は ポリゴンを描画し続ける。同様に、Pyxマクロは、まず、Point−>y、次に、Po int−>xへ描画する。これらのマクロは知的ルーチンに変更することができ、 そこでは原点及び目的ポイントのアイテムタイプ及び位置がチェックされ、あら ゆる適切なdmc、dpyc、その他のオフセットが適用されてDRCエラーを防止し 、又はコーディングを単純化する(図6A−B参照)。 Pbox(PointA、PointB); PboxルーチンはPointA及びPointBのアイテムタイプをチェックすることができ 、また、現在の描画層をチェックし、それからポイントの周りに適当なオーバー ラップを有するようにボックスを描画 する。 Pcontacts(PointA、PointB); Pcontactsルーチンは、PointAとPointBのアイテムタイプが同様であることを 確認し、それから適当な接点のアレイ、又はポイントの周りの通路を描画する。 初期定義 以下は、ポイントランドマークルーチンについてのプロトタイプコードに使用 されるアイテムタイプ及び他の定義のリストである:スタンダードセルインバー タモジュール発生器の動作プロトタイプは、全ての支持コードと共にディレクト リ/home/marc/base3/lib/src/newcdsに見ることができる。 アイテムタイプ: 層アイテム ACT アクティブ PY ポリ M1 メタル1 M2 メタル2 M3 メタル3 NPLUS nプラス PPLUS pプラス PWELL pウェル NWELL nウェル1 CUT カット v 通路 v2 通路2 EDGE スタンダードセルのエッジ ワイヤアイテム NBA nタイプビッグアクティブ PBA pタイプビッグアクティブ AWW 特定幅のアクティブワイヤ PYW ポリワイヤ NGT nゲート PGT pゲート PYWW 特定幅のポリワイヤ MW メタルワイヤ BM ビッグメタルワイヤ MWW 特定幅のメタルワイヤ M2W メタル2ワイヤ BM2 ビッグメタル2ワイヤ M2WW 特定幅のメタル2ワイヤ M3W メタル3ワイヤ BM3 ビッグメタル3ワイヤ M3WW 特定幅のメタル3ワイヤ 複合アイテム PYC ポリメタル接点 NMAC nタイプメタルアクティブ接点 PMAC pタイプメタルアクティブ接点 MMV メタルからメタル2への通路 MMVZ メタル2からメタル3への通路 SCON 基板接点 PCON pウェル接点 他の定義: C.制約生成の概観 C1.0 Grafデータ構造 C1.1 要素 Grafは、ポイントランドマークデータ構造の頂点に造られる。graf(ボックス 、ワイヤ、その他)内の基本的幾何形状要素は、位置を特定するために、x−y座 標よりむしろポイントを使用する。要素のタイプは: ボックス−−2つのポイントからなるボックス。 ワイヤ−−ポイントのリスト及び幅。 ストリップ−−2つのポイント及び幅。これは2つのポイントを有するワ イヤと同一。 スクエア−−単一のポイント。 ポリゴン−−ポイントのリスト。 C1.2 層 上述の情報に加え、要素はそれらに関連する層を有する。層は物理的層、又は 特別の接触層とすることができる。プロトタイプにおいて使用される層のリスト が表1に示される。 接点は単一の要素として示されるが、異なる3層上の幾何形状を含むものと考 えられる−一接点又は通路層、及び接点(又は通路)が接続する2層。接点−メ タル1/メタル2通路、メタル/n−アクティブ接点、メタル/p−アクティブ 接点、及びメタル/ポリ接点の4つのタイプがある。これら各々は別個の層上に 記憶される。 セルの境界を示すために追加の層が作られる。この層は、ポイント"llBorder" 及び"urBorder"を接続する矩形を含む。制約が、境界と、セルのエッジに近いポ イントとの間に発生する。 C1.3 エッジ 制約を生成する目的で、エッジデータ構造が作られる。エッジは、それらが開 始及び終了(連続的なラインではなく)を有することを除いては、CDS中のラ ンドマークと同様である。これらのデータ構造は、ボックス又はポリゴンの各エ ッジ、及びワイヤ、ストリップ、及びスクエアの中心について生成される。一般 的に、各ポイントはX及びYエッジにより示される。2つのポイントが同一のエ ッジにより示されることが一般的である。 エッジは、それらがどのポイントを示すかに関する情報を含む。また、それら は、そのエッジが示すボックス(又は他の要素)の逆側のエッジへのポインタを 含む。これは、制約の生成中に、オーバーラップ条件を決定するために使用され る。特定の要素についてのエッジは、要素と共に記憶される。さらに、各層は、 その層上の全てのエッジを列挙するソートされたアレイを有する。 C2.0 制約の生成 C2.1 ポート 生成される最初の制約はポートについてのものである。ポートに接触する要素 のリストが生成され、ポートがコネクトされるべき要素の一つからポイントを選 ぶ試みがなされる。接点又は通路は最良の選択と考えられ、ワイヤは第2の選択 である。可能であれば、ポートはポイントと整列されるが、必要であればコネク ト−アタッチ制約が使用される。 ポートがボックス又はポリゴンの内部に配置される場合、適切な制約は他のル ーチンによって生成される。 C2.2 要素内制約 このステップでは、要素内のポイントに関連する制約を生成する。これは、ワ イヤ及びポリゴンのエッジをマンハッタングリッド(将来的には45度の整列も 同様に許容される)上に維持する整列を伴う。これに加え、ポイントの相対的位 置を保存するために制約を生成する。これらの制約は、“サイド−アトラクト” 制約である。“アトラクト”リンクは、要素を可能な限り小さく保つことを補助 するために使用される。図7A−Cに幾つかの例を示す。 2.3 前処理 接点及びコネクト制約を生成する前に、少量の前処理が行われる。これは、通 常、接点、又はそれに接続されたワイヤ内にワイヤをさらに拡張することを含む 。一つの例が図8A−Bに示され、そこで、ポイントP3はポイントP2を通っ て拡張されている。これは、接続性を維持するために必要な制約を単純化する。 2.4 接点制約 制約は、接点と、それに接続された要素との間に生成される。このステップは 、次のステップがより一般的であり、同様の制約を生成可能とすべきであるので 、恐らく徐々に除去される。 2.5 コネクト制約 相互に接触する要素は制約され、それにより、それらは接触したまま維持され る。これは一般的に、図9A−Bに示すコネクト制約の使用により実行される。 これらの制約を生成する時、各次元において3つのケースが考慮される。 ・一つのエッジに接触する一つのエッジ ・2つのエッジ間の一つのエッジ ・2つのエッジに接続された2つのエッジ ・2つのエッジの接続 第1のケースがワイヤ及び接点のX−接続内の一つに示される。ワイヤは一つ のX−エッジを有し、接点は一つを有する。それらが一体に留まることを確実と するためにアタッチが使用される。 他の制約は第2のケースを示し、そこでは一つのエッジが2つの他のエッジ間 にある。 第3のケースは、2つの垂直ワイヤが接続し、又は垂直ワイヤが垂直接点スト リップに接続する時に生じる。 一般的に、コネクト制約はこのステップで使用される。幾つかの例外は: ・ワイヤに接続しているボックス。ボックスがワイヤの最も近接するエッ ジを通って最も遠いエッジで終わる場合、サイド制約が使用される。 ・オーバーラップ無しでワイヤに接触する接点。この場合、“タッチ”制 約が使用される。 コネクト及びタッチ制約の相違が図10A−Bに示される。図10Aの2つの 構造は、コネクト制約を使用して接点に接続されたワイヤ内で許容される作用を 示す。図10Bの2つの構造は、タッチ制約により、ワイヤが依然として接触し ている限り、ワイヤは接点外へさらに移動可能であることを示す。2つの位置間 のあらゆる場所が示される(例えば、ワイヤは接点上の中央に配置することがで きる)。サイド制約を使用して、右側に示す2つの構造のうちの一つに位相幾何 学を組み合わせることができる。 2.6 層内制約 間隔制約は、導体層について生成される。これらの制約は、インプラント及び ウェル層については省かれる。これらの制約を生成するために、エッジについて のデータ構造が使用される。エッジのアレイ(各次元において)は座標により構 成され、整理される。このアレイは、層自身についてのエッジ、及び層を共有す るあらゆる接点についてのエッジを含む。例えば、メタルエッジは、metal、nac tivecut、pactivecut、polycut、及びviaの層上のエッジを含む。アルゴリズム はアレイをスキャンし、2つのエッジ間で制約が生成されるべきであるかを決定 する。考えられる基準は: エッジがオーバーラップを示すか? エッジが相互に影を落とすか? エッジは隣接しているか? 図11では、エッジE3とE4との間にオーバーラップが存在する。これは、 E3がエッジE5まで延びる幾何形状を示すからである。これらのエッジはステ ップ2.5で処理されるので、制約を必要としない。 E2とE3は、相互に隣接し(それらは逆方向に拡張する)、且 つ相互に影を落とすので(それらは他の次元でオーバーラップする)ので、生成 される制約を有する。 E2とE4を比較すると、E3がその途中にあり制約が必要でないので、制約 は生成されない。同様に、E6についての制約は生成されない。 E2とE8との間には、それが側部までどの程度遠いかに依存して制約が生成 される。直接的には相互に影を落とさないアイテム間では、斜めの制約は重要で ある。サイドに対して2つのエッジがどの程度遠くにあるかを決定するために、 それらが重要ではないと考えられる以前にファッジファクターを使用する。 また、不要な制約を取り除く目的で、直交次元のエッジが考慮される。例えば 、E2とE8との間に長い垂直ワイヤがあるとすれば、明らかに生成される制約 は存在しない。 2.7 層間制約 制約は、層間で生成される。これは、activeと、各インプラント及びウェル層 ;polyとactive;nplusとpplus;並びに、nwellとpwellとの間で行われる。接点層を 含む制約は、先のステップにおいて生成される。 層間制約を生成する方法は、エッジの2つのアレイが使用されることを除き、 基本的には単層についてと同様である。また、オーバーラップを無視する代わり に、サイド制約が生成される。 2.8 他の制約 コネクト制約により接点がワイヤの片側から逆側へ移動することが可能となる ので、制約が見落とされる可能性がある。これが起き得る一例を図12に示す。 接点エッジE3はE2上にある。制約生 成アルゴリズムは、E1とE2の間に制約を生成するが、E1とE3の間には生 成しない。接点は、制約の評価中に少し下へ移動し、制約が無い場合にはDRC エラーを生成する。アルゴリズムは、これらの状況を検出し、修正するために走 る。 2.9 ゆるみによる微動の制約 制約が生成され、多少清掃され後に、設計を分析して、大きく移動する可能性 のあるワイヤの微動があるかを調べる。もしあれば、制約を微動の2つの側部間 に(適切に)没入させる。 3.0 制約の清掃 3.1 フィルタリング 幾つかの制約は、様々のフィルタリングルールにより直接的に無効とされる。 2つの例は: ・制約が同一層の2つのエッジ間に提案されているが、他のエッジがそれ と遠くに離隔している場合、制約は不要である。 ・2つのXエッジは、Y次元内でオーバーラップしなければならず、若し くは、少なくともオーバーラップの幾つかのファッジファクター内になければな らない。(同様のことが、X次元におけるYエッジのオーバーラッピングにも当 てはまる。) 2つのポイントが同一の接点内に閉鎖される場合、制約は不要である。接点自 身への接続で十分である。 3.2 清掃 制約が生成された後、それらを改善するために様々の方法で分析される。 3.2.1 コーナー制約の識別 最初の処理は、2つのデフォルト制約が同一の2つのエッジ−つはX、一つは Y、の間に存在するケースを見つけることである。一方の制約は除去され、他方 はコーナー制約に変更される。もし、両方の制約が残るならば、循環が作られ、 それら2つのうちの一つがサイド制約として扱われる。一方を満足することが自 動的に他方を満足することになるので、両方の制約を有する必要はない。 3.2.2 コネクト−アタッチをアラインに変更 このアルゴリズムは、コネクト−アタッチ制約を使用して接続されたポイント をチェックする。2つのポイントが同一の幅を有する要素を示す場合、例えばビ ッグメタルワイヤと接点の場合、その制約をアラインに変更する。それらは機能 的に同一であるべきであるが、アラインはアタッチに比べてより容易に処理され る。 3.2.3 オーバーラップをアタッチに変更 制約を分析して、それらがオーバーラップ状態を示す(例えば、activeにオー バーラップするpplus)かを決定する。制約が正確に満足されれば、これが重要 であることが推測され、その制約はアタッチ制約に変更される。これは任意的な ステップであり、自動的に生成されるアトラクト制約により同一の結果を達成す ることができる。 3.2.4 アタッチポリ接点 我々のセルの多くは、頂部に多くのポリ接点を有し、メタルストリップの底部 を有する(一つはPトランジスタに近接し、一つはNトランジスタに近接する) 。このアルゴリズムは、ポリ接点から acitve接点への制約を探す。元の設計においてその制約が正確に満足されるなら ば、それはアタッチに変更される。これは、接点を底部へ下降させるのではなく 、頂部に維持する傾向を有する。 3.2.5 ウェル制約の清掃 このアルゴリズムは、ウェルと、異なるウェル内にあるオブジェクトとの間の 制約を除去する。例えば、図13に2つのウェルが示され、各々はactiveボック スを含む。左のactiveから右のウェルへの図示の制約は不要であり、消去される 。 3.2.6 デフォルトをサイド制約に変更 一つのエッジから他のエッジへのデフォルト制約が存在する時、エッジの開始 からポイントまで、及びエッジの終了からポイントまでの他の次元における制約 通路があるかを調べるためのチェックが行われる。経路が存在する場合、制約の 目標が常に基準ポイントの影の内部にあることが推測され、その制約をサイド制 約に変更することができる。これは、制約解決者の効率を改善し、時にはより良 い結果を生む。 3.2.7 幾何形状ポート制約の清掃 制約の生成中に幾何形状ポートを示すエッジが使用され、それによりポートへ の制約が生成される。これらのポートは他のポイントの制約のために使用すべき でないが、そのようなあらゆる制約は消去される。 3.3 制約のサークルの検出及び除去 制約の参照が、パスの開始する元のポイントへ戻るように繋がる 場合、制約のサークルが生じる。一つの例は、ポイントBを参照するポイントA 及びポイントkを参照するポイントBである。ポイントAの位置は、ポイントB の位置を知らずに計算することはできない(及びその逆も)。コーナー制約は、 これより複雑(及び識別が困難)である制約のサークルを作る可能性がある。こ れらのサークルでは、ポイントBのY位置を知らずにポイントAのX位置を計算 することができず、その逆も成り立つ。 ルーチンが走り、それは存在し得るあらゆる制約のサークルを識別する。制約 のサークルがコーナー制約により生じている場合、そのサークル内のコーナー制 約のうちの一つをデフォルト制約に変換して、サークルを破る。他のタイプの制 約のサークルは自動的に破ることができない。 4.0 スタンダードセル及びバッファのサイジング スタンダードセル及びバッファサイジング制約は、我々の方法論を使用して実 行される。バッファサイジングを行う時、実行サイズを決定するために、トラン ジスタ幅が、getn()又はgetp()により返される幅と比較される。これらの関数を 呼び出すユーザ制約が生成される。より一般的目的の方法を識別することが必要 である。 スタンダードセル制約は、以下からなる: 4.1 パワーポートにピッチ合わせする。 ユーザ制約に方程式“sthpitch”が加えられる。これは大域変数であり、各ル ールセットについて設定される。 4.2 パワーポートをeast及びwestのセル境界にアラインする。 4.3 信号ポートを、それらが元の位相幾何学中で整列されていれば、 整列する。 これは、個々の部分を抜け落ちから維持する傾向がある。また、それはポート をセルの中心にさらに向けて維持する傾向がある。将来的には、我々は、密度に 問題が無ければ、ポートをさらに中心へ向けて移動させる制約で実験するつもり である。 4.4 元のセルが高さの要求事項に適合する場合、nwellをピッチ合わせする。 我々のセルの殆どはこのルールを無視していた。これは、グランドポートと、 各nwellボックスのボトムとの間のユーザ制約に、方程式“stdnwellheight”を 加えることにより行われる。これは、各ルールセットについて設定される大域変 数である。 新規なスタンダードセルは、異なる要求事項のセットを有する。それらについ ては、多くのY座標が予め決定され、ユーザ制約を通じて特定することができる 。 ポイントランドマークコードは、幾何形状をセルのエッジに制約するためのあ るルールを有する。これらのデフォルトルールは、全てのタイプのリーフセルに ついて適当ではなく、将来は代替物を探す必要がある。 我々は、グリッド制約を特定する方法も必要である。 5.0 他の技術 このプロトタイプ技術を独立にするための幾つかの試みがなされてきた。cmos 特有のコードが幾つか存在するが、その技術特有の情報の殆どは、実行時に解剖 されるスタートアップファイルに含まれる。これが頂部に作られるポイントラン ドマークコードは他の技術への変換において、より関連を有する。 フィルタリング及び清掃ルーチンの異なるセットを、他の技術のために提供さ れる必要がある。 6.0 ユーザ関数及び変数 ユーザは、ファイルをエディットし、再コンパイルすることにより、grafに使 用可能な独自の関数及び変数を作ることができる。これは、Verilog-XZと類似の 方法であり、C言語インターフェースを有する、ある他の製品が動作する。ルー ルのファイル中の変数は、デフォルトにより使用可能である。 D.CDSポイントランドマーク設計方法論についてのソフトウェア要求事項仕 様書 D1.0 導入 D1.1 目的 この文献の目的は、CDS言語の高度化について記述することである。これは CDSユーザよる使用を意図しており、カスケードデザインオートメーションモ ジュール設計者を含む。 D1.2 視野 このソフトウェア仕様書の視野は、ランドマークを幾何形状に関連付け、それ によりランドマーク間の制約を、別個の方程式ではなく特定のルーチンにより計 算すること、また、1次元のランドマーク記述ではなく2次元のポイント記述を 使用する現在のCDS幾何形状生成ルーチンと互換性を有する幾何形状生成ルー チンを定義することにある。これらのルーチンの定義は、集積回路(CMOS及びGaA s)を処理するためのカスケードデザインオートメーションにより使用される現在 の技術に集中する。 このソフトウェア仕様書中に概説される定義関数に関連する多くの関数が存在 するが、それらはその視野内に含められることを意図していない。これらの幾つ かの関数をここに挙げる: 幾何形状コンパクター 技術依存性の制約ルーチン/方程式 自動制約生成 グラフィカルCDS幾何形状エディタ D1.3 定義、頭字語、及び省略形 CDS=コンパイラ開発システム CMOS=相補型金属酸化膜半導体 GaAs=ガリウムヒ素 SC=記号的制約 DRC=デザインルールチェック LVS=レイアウト対概略図 D1.4 参考文献 CDSポイントランドマーク設計方法論への導入、Marc Buchanan、カスケード デザインオートメーション ベースセルについてのCDS高度化のためのソフトウェア要求事項仕様書、Br ad Roetcisoender、カスケードデザインオートメーション Xbased レイアウトビューア要求事項仕様書、Doug Sebastian、カスケード デザインオートメーション D1.5 概観 このソフトウェア要求事項仕様書は、CDSポイントランドマー クの詳細、それをどう使用すべきか、及びその構造が何を含むか、を記載する。 また、このポイントランドマークを使用する制約ルーチンが記載される。制約ル ーチンの機能は、他のポイントランドマークに対する一つのポイントランドマー クの位置を計算することである。各ポイントに付属する情報を使用して、そのル ーチンはポイントのx及びy位置を計算し、それにより、DRC及びLVSエラ ー無しで、表示された幾何形状間の可能な最小距離が達成される。これらのルー チンの幾つかはこの距離をレイアウトの物理的制約に基づいて計算し、他のルー チンは、トランジスタサイズなどの電気的パラメータを使用して正しいポイント 位置を決定する。幾つかの幾何形状生成ルーチンも記載される。これらのルーチ ンは、ポイントランドマークに関連する情報を利用して、コードの記述を単純化 し、複数のルールセットに適用した時にモジュールコードがエラーに影響されに くいようにする。 A2.0 一般的記述 2.1 製品の背景 この文献中に記載される全てのルーチン及び定義は、幾何形状生成、又はCD Sモジュールのセクションであるgeo中で使用される。幾何形状生成ルーチンと して記載されるルーチンは、文献、ベースセルについてのCDS高度化のための ソフトウェア要求事項仕様書中に記載されたCellDefine()及びCellEnddef()ルー チン内になければならない。ポイント定義及び制約ルーチンは、CellDefine()ル ーチンの前後で使用することができるが、ポイントランドマークを参照するあら ゆる幾何形状生成ルーチンが使用される前に使用されなければならない。 セルが、そこに含まれるline_of_codeデバッグ情報によりコンパ イルされるならば、Lview幾何形状ビューアへのインターフェースが一般的に使 用される。セルのデータベース中に記憶されるデバッグ情報は、Lviewプログラ ムにより検索し、見ることができる。この情報は、ポイントランドマークの位置 、拡張方向、及び他のランドマークへの相対的制約を含む。Lviewプログラム中 でこの情報がいかに表示されるかについては、文献、Xbasedレイアウトビューア 要求事項仕様書を参照のこと。 2.2 製品の機能 2.2.1 ポイントランドマーク及びランドマークルーチン ポイントランドマークは、幾何形状アイテム(即ち、ポリメタル接点、メタル ワイヤの端部、など)の位置を記し、また、ランドマーク名、幾何形状アイテム 、ポイントからの幾何形状の拡張方向、表示される幾何形状の電気的ノード名、 及び任意的に幾何形状の幅(ポイントが任意幅のワイヤを示す場合)を記述する 情報、並びにline_of_code情報(ファイル名、ライン番号、及び制約基準ポイン ト)を構造内に記憶するために使用される。 ランドマークルーチンは、ランドマークのグループ、及び関連する記号的制約 を指名し、分割するために使用される。 2.2.2 制約ルーチン 制約ルーチンの大半は、評価時に、北、南、東、又は西のいずれかの方向の1 以上の基準ポイントに対する、あるポイントのx又はy位置のいずれかを決定す る制約を定義するために使用される。他のルーチンは、先に定義されたルーチン を消去し、評価し又はチェックするために使用される。 2.2.3 幾何形状生成ルーチン 幾何形状生成ルーチンは、geo セル(geocell)データベース内に幾何形状を 生成するために使用される。その機能は、ボックス、ワイヤなどを作る現在のC DS幾何形状生成ルーチンと類似するが、引数がそれより少ない。作られる幾何 形状を記述するために要求される幾つかの情報は、ルーチンの引数リスト中に参 照されるポイントランドマークから得られる。 2.3 ユーザ特性 この文献に記載されるルーチンはCDSモジュール開発者による使用を意図し ている。 2.4 利益 記述されるルーチンは、既存のCDSルーチンに代えて、又はそれとの関連に おいて使用し、コードをより容易に発生でき、且つ強固なものとすることができ る。新たなCDSユーザに対しては、これらのルーチンは、それらを有しない場 合より短い時間内で操作コードを持つことを可能とする。ユーザがCDSに含ま れる約300のミクロ及びマクロを知る必要はもはや存在せず、その代わりにル ーチンで使用される30から40の幾何形状アイテムタイプを使用する。これら の幾何形状アイテムタイプは、それらが様々の幅、間隔値、及びミクロ及びマク ロにより示されるオーバーラップの代わりに共通のレイアウト幾何形状を示すの で、より直観的に使用することができる。これらのルーチンは、モジュールコー ド中に使用される現在の方程式及び幾何形状ルーチンを置換することを意図する が、それらと同時にも動作することができるであろう。ユーザは、コードの大部 分を変更せずに、モジュールコードを変更し、エラー となりがちな、又はデバッグが困難な方程式をこれらの新規なルーチンに置き代 えることにより、ある機能を単純化することができる。 2.5 一般的な制約 先のセクションで記載した制約の他に、プログラマーが持つ唯一の懸念は、コ ード中でルーチンが特定される順序が物理的なレイアウトの結果に影響を与える ことである。ある例では、プログラマーは制約ルーチンを再度順序付けし、最適 な解答を発見する。 3.0 特有の要求事項 3.1 機能的要求事項:ポイントランドマークの定義及びランドマークルーチン 3.1.1 ポイント構造 3.1.1.1 導入 ポイント構造は、以下の情報を含むように定義される:ポイントランドマーク の名称、x及びy位置、幾何形状アイテムタイプ、示されるワイヤの幅(ポイン トが任意の幅のワイヤを示す場合)、そのポイントからの幾何形状の拡張方向、 及び電気的ノード名。line_of_codeデバッグフラグがセットされると、制約の基 準ポイント、line_of_codeのファイル名、及びline_of_codeのライン番号情報も ポイント構造に含められる。 3.1.1.2 処理 構造の要素は、def_point及びpoint_widthルーチン、並びに様々の制約ルーチ ンにより設定され、変更される。 3.1.2 newPointGroupルーチン 3.1.2.1 導入 NewPointGroupルーチンは、ポイント及び記号的制約のセットを含む新規なグ ループを定義するために使用される。構文を以下に示す: newPointGroup(group_name); 3.1.2.2 入力 group_name−charは、ランドマーク及び制約のグループについての名称を示 す。 3.1.2.3 処理 newPointGroupルーチンは、まず、そのグループが同時に存在しないことを確 認し、次に新規なポイントリスト及び新規な記号的制約(SC)テーブルへの静的 ポインタを作るために必要なルーチンである。次に、このグループが同時にアク ティブなグループとなり、newPointGroupの呼び出し後で、他のnewPointGroup又 はsetPointGroupの呼び出し前に定義されるあらゆるポイント又は制約が、指定 されたグループに属する。 異なるグループ内のポイント及び制約は相互に独立である。 group_nameが先に定義されており、後続のfreePointGroupの呼び出しにより解 放されていなければ、エラーが報告される。 newPointGroupの呼び出しは、あらゆるポイント又は記号的制約の定義以前に なされなければならない。 3.1.2.4 出力 ルーチンは、そのステータスを示すINT32を戻す。 3.1.3 setPointGroupルーチン 3.1.3.1 導入 setPointGroupは、newPointGroupの呼び出しにより定義された現在のアクティ ブグループを変更するために使用される。命令の構文は: setPointGroup(group_name); 3.1.3.2 入力 group_name−charは、point/SCグループについての名称を示す。 3.1.3.3 処理 setPointGroupルーチンは、そのグループが存在することを確認し、このグル ープを現在アクティブなグループとして記す。(他のsetPointGroup又はnewPoin tGroupの呼び出しに遭遇するまで)呼び出しの後に定義されるあらゆるポイント 又は制約は、このグループに属する。 group_nameが存在しなければ、エラーが報告される。 3.1.3.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.1.4 freePointGroupルーチン 3.1.4.1 導入 freePointGroupルーチンは、指定されたグループ内で様々なポイント及び制約 の定義により使用されるメモリの割り当てを解除し、グループポインタを除去す るために使用される。命令の構文は: freePointGroup(group_name); 3.1.4.2 入力 group_name−charは、point/SCグループについての名称を示す。 3.1.4.3 処理 freePointGroupルーチンは、グループが存在することを確認し、次に、指定さ れたグループに関連するポイントリスト及びSCテーブルにより使用されるメモ リを解放する。 freePointGroupルーチンが現在のグループを示すgroup_nameと共に実行された 場合、あらゆるポイントが定義又は参照され、若しくはあらゆる制約が定義又は 評価される前にnewPointGroup又はsetPointGroupルーチンを実行しなければなら ない。 group_nameが存在しなければ、エラーが報告される。 3.1.4.4 出力 ルーチンは、そのステータスを示すINT32を戻す。 3.1.5 Pointの定義 3.1.5.1 導入 ポイントを定義するための命令の構文は以下のようである: point=def_point(name,item,ext_dir,node_name); 5.1.5.2 入力 defpointルーチンへの入力は以下のものからなる: name−charは、ポイントランドマークの名称を示す記号列を含む。 item−INT32は、ポイントランドマークにより示される幾何形状のアイテム番 号を含む。列挙されたリストからのマクロ名はこの引数のために使用される。本 文献の最後の幾何形状アイテムタイプを参照のこと。 ext_dir−charは、いずれか又は全ての”NSEW”を含み、それはランドマー クにより示される幾何形状の拡張方向を示す。 node_name−charは、指定される幾何形状の電気的ノード名を示す記号列を 含む。 3.1.5.3 処理 このルーチンが実行される時、それはまず、構造を含むために要求される空間 の量を割り当て、次に、構造の適切な要素に引数をコピーする。また、x、y、 及び幅の要素をUNDEFINEDを示す整数により初期化する。 様々の制約が評価される時、x及びy要素を、ポイントランドマークを含むよ うに変更する。2つの整数値が保存され、未定義の、又は他のいずれかのポイン トにより制約されていないことが分かった位置を示す。これらの値は、それぞれ UNDEFINED及びNOCONSTRAINTとして定義される。 3.1.5.4 出力 ルーチンは、ポイント名を含むcharを返す。 3.1.6 point_widthルーチン 3.1.6.1 導入 point_widthルーチンは、任意幅のワイヤの幅を示すために使用される。命令 の構文は: point_width(point,width); 3.1.6.2 入力 point−charは、その幅が変更されるポイント名を示す。 width−INT32は、幾何形状の幅を示す。 3.1.6.3 処理 このルーチンは、ポイント構造の幅の要素をwidth値に設定する。 widthが2gridsizeの倍数でない場合、エラーが報告される。 ポイントのアイテムタイプが任意幅のワイヤタイプでない場合、エラーが報告 される。 3.1.6.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.2 機能的要求事項:制約ルーチン セルの原点の設定 3.2.1.1 導入 制約方程式の原点又は開始ポイントを設定するために、以下の命令を使用する : origin(point); 3.2.1.2 入力 point−char+はポイント名を示す。 3.2.1.3 処理 このルーチンは、evalconstraintなどのルーチンにより後に評価されるSCテ ーブルにエントリーを配置する。評価中には、ポイント構造のx及びy要素が0 に設定される。それは常に、評価される最初の制約である。 オリジンルーチン及びポイントグループ参照ルーチンの各々は、ポイントの位 置を現在のグループ環境内の他のポイントと独立な絶対値に設定するので、原点 ルーチンが使用されている場合、いずれのポイントグループ参照ルーチンの呼び 出しも許されない。デルタグループ参照ルーチンへの呼び出しは、それらが絶対 位置ではなく相対距離を返すので、許される。 3.2.1.4 出力 ルーチンは、現在のステータスを示すINT32を戻す。 3.2.2 ポイントの絶対位置の設定 3.2.2.1 導入 ユーザは、他のいずれのポイントランドマークにも依存しないが、例えば配置 されたセルのようないくつかの他のオブジェクトに依存するポイントの位置を設 定する必要がある。このような状況を可能とするため、ユーザがポイントの絶対 位置を設定できるようにする ルーチンが必要とされる。ユーザにポイントのx、y、又はx及びyの位置を設 定可能とするルーチンをここに示す。 pxSetLoc(point,x); pySetLoc(point,y); pSetLoc(point,x,y); 3.2.2.2 入力 point−charはそのポイント名を示す。 x−INT32は、ポイントのx要素についての絶対位置を示す。 y−INT32は、ポイントのy要素についての絶対位置を示す。 3.2.2.3 処理 pxSetLocルーチンは、エントリーを、後に評価されるべき現在のSCテーブル 内に配置する。SCテーブル内のエントリーが評価される時、ポイントのx要素 は、xにより指定される値に設定される。 同様に、pySetLocルーチンは、エントリーを現在のSCテーブル内に配置し、評 価時には、ポイントのy要素をyで指定される値に設定する。 pSetLocルーチンは、現在のSCテーブル内に2つのエントリーを配置し、一 つはポイントの水平方向の制約を示し、一つはポイントの垂直方向の制約を示す 。これらのエントリーはpxSetLoc及びpySetLocルーチンにより配置されるものと 同一であり、同様に評価される。 これらのルーチンの使用時には注意を要する。ポイントの位置はユーザにより 指定された引数のみに基づくので、システムは、そのポイントが他のポイントと して同一の原点を参照していることを確 認することができない。 いずれかの制約が、pxSetLocルーチンによって水平方向上に配置され、又はpy SetLocルーチンによって垂直方向上に配置され、若しくはpSetLocルーチンによ っていずれかの方向に配置される場合、エラーが報告される。 3.2.2.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.3 ポイントグループ参照ルーチン 3.2.3.1 導入 ポイントグループ参照ルーチンは、異なるグループ内で定義されたポイントの 位置に基づいて、あるポイントの位置を決定するために使用される。各ポイント グループ参照ルーチンの構文をここに示す: pRefGroup(p1,ref_pt,group_name) pxRefGroup(p1,ref_pt,group_name) pyRefGroup(p1,ref_pt,group_name) 3.2.3.2 入力 p1−charは、そのポイント名を示す。 ref_pt−charは、グループ内のポイント名を示す。 group_name−charは、参照するグループ名を示す。 3.2.3.3 処理 各ポイントグループ参照ルーチンは、現在のSCテーブル内にエ ントリーを配置し、ref_pt及びp1が適合するアイテムタイプ、拡張方向及びポイ ント幅(適用可能であれば)を確認する。制約が評価される時、それらはまず、 そのグループが存在し、そのグループ内にポイントが存在することを確認し、gr oup_nameSCテーブルが評価される。次に、ref_ptの位置(pxRefGroupについて xのみ、pyRefGroupについてy)がp1へコピーされる。 group_nameにより指定されるグループが存在しない場合、又はポイントref_pt がそのグループ内に存在しない場合、エラーが報告される。 group_nameにより指定されるグループ内のSCテーブルが評価されていない場 合、エラーが報告される。 いずれかのポイントグループ参照ルーチンが使用されると、オリジンルーチン への呼び出しは許されない。 3.2.3.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.4 デルタグループ参照ルーチン 3.2.4.1 導入 デルタグループ参照ルーチンは、現在のグループ以外のあるグループ内の2つ のポイント間の相対距離を決定するために使用される。ルーチンの構文は以下の ようである: dxRefGroup(ref_pt1,ref_pt2,group_name); dyRefGroup(ref_pt1,ref_pt2,group_name); 3.2.4.2 入力 ref_p1、ref_p2−charは、基準ポイント名を示す。 3.2.4.3 処理 各デルタグループ参照ルーチンは、まず、group_name、ref_p1、ref_p2、によ り指定されるグループ及びポイントが存在するか否かを確認し、グループSCテ ーブルが評価されたかを確認する。次に、それらはref_p1及びref_p2の位置を使 用してx又はyの差を決定する。 結果は直ちに計算され、よって現在のSCテーブルにエントリーを行う必要は ない。 3.2.4.4 出力 デルタグループ参照ルーチンは、2つのポイント間の水平方向及び垂直方向距 離を示すINT32を返す。 3.2.5 方向性物理的制約の機能 3.2.5.1 導入 方向性物理的制約ルーチンは1以上の基準ポイントランドマークに対する、あ るポイントランドマークの位置を示す共通のコンパス名を使用する。各方向性物 理的制約ルーチンの構文をここに示す: north(p1,ref1); north2(p1,ref1,ref2); north3(p1,ref1,ref2,ref3); north4(p1,ref1,ref2,ref3,ref4); north5(p1,ref1,ref2,ref3,ref4,ref5); south(p1,ref1); south2(p1,ref1,ref2); . . . south5(p1,ref1,ref2,ref3,ref4,ref5); east(p1,ref1); east2(p1,ref1,ref2); . . . east5(p1,ref1,ref2,ref3,ref4,ref5); west(p1,ref1); west2(p1,ref1,ref2); . . . west5(p1,ref1,ref2,ref3,ref4,ref5); 各関数について列挙された名称を有する複数のルーチンが、可変数の引数を有 する一つのルーチンの代りに選択され、それにより、CDSモジュールの開発中 にデバッグ段階をより完全とすることができる。 3.2.5.2 入力 p1−charは、そのx又はy要素を変更するポイント名を示す(east及びwest 命令はx要素を変更し、north及びsouth要素はy要素を変更する)。 ref1,...ref5 −charは、基準ポイント名を示す。 3.2.3.5 処理 各物理的制約ルーチンの機能は、エントリーを、ポイントp1と基準ポイントre f1,...ref5との間の制約を示すSCテーブルに配置する。 evalConstraints、xEval、又はyEvalルーチンを呼び出すことによりこの制約 を評価する時、既知の全ての物理的レイアウトルールをポイントp1及び基準ポイ ントref1(,ref2,...ref5)により示される幾何形状に適用することによりp1の 位置が決定される。制約の評価中に、p1の幾何形状アイテムをref1のそれと比較 してそれらの間の必要な距離を決定し、次にref2を使用し、そうして、次に最悪 の場合の距離を使用してp1の位置を決定する。 ポイントは、複合幾何形状アイテム、ワイヤ、幾何形状のエッジ、又はスタン ダードセルのエッジを示すことができる。複合アイテムは、ポリメタル接点など の複数の幾何形状を示し、それは3つの異なる層−メタル、ポリ、及びカットを 含む。ワイヤアイテムは、単層ワイヤの中央を示し、層アイテムは単層幾何形状 のエッジ又はコーナーを示す。セルエッジアイテムはスタンダードセルの左又は 右エッジを示す。2つのポイントを比較する時、各ポイントのアイテム幾何形状 タイプをチェックし、各ポイントの各層をチェックして正しい間隔を決定する。 図14A−Bは、ref1を参照することにより、p1の水平方向位置が設定される様 子を示す。 斜め間隔チェックは、レイアウトの最適な密度を得るために要求される。基準 ポイントのx及びy位置が既知であり、設定すべきポイントのx又はy位置のい ずれかが既知であれば、未知の要素位置はピタゴラスの定理を使用することによ り最適な解答に設定することができる(図14B参照)。 ルーチンは、いつポイントp1及び基準ポイントがトランジスタの両側のメタル アクティブ接点を示すかを決定可能とすべきである。 p1及び基準ポイントの拡張方向が相互に向かっているならば、それらは両方とも メタルアクティブ接点を示し、且つ異なる電気的ノード上にあり、よってトラン ジスタ間隔についてのルールが適用される(図15参照)。 各制約方程式が実行される時、制約を評価するための命令が実行されるまで、 エントリーはSCテーブル内に置かれる。 評価中に、もしp1のx位置が設定され、いずれかの基準ポイントのx位置、又 はいずれかの基準ポイントのy位置又は設定されたポイントがUNDEFINEDに設定 されれば、制約はスキップされる。よって、SCテーブルの第2の通過が必要で ある。SCテーブルの1以上の通過後に、評価ルーチンがそれ以上の制約を評価 できない場所に到達したが、p1のx位置は依然として設定される必要があり、い ずれかのポイントのy位置が依然としてUNDEFINEDであるならば、基準ポイント からの最悪の場合の間隔が計算され(コーナー間チェックは行わない)、SCテ ーブル内の他の制約の評価は継続する。 もし、p1のx位置が設定され、全ての基準ポイントのx位置がNOCONSTRAINTに 設定され、又はいずれかの基準ポイント又は設定されたポイントがNOCONSTRAINT に設定されたならば、制約はスキップされる。よって、SCテーブルの第2の通 過が必要となる。SCテーブルの幾つかの通過の後、評価ルーチンが、それ以上 の制約を評価できない場所に到達し、p1のx位置が未だ設定されておらず、いず れかの基準ポイントのy位置が依然としてNOCONSTRAINTに設定されているならば 、そのポイントからの最悪の場合の間隔が計算される(コーナー間チェックは行 われない)。 もし、p1と基準ポイントが同一のノード名を有し、アイテムが同一層であり、 若しくは一つのポイントが単純で他方が複合的であって同一層の幾何形状を有す るならば、オフセット間隔が適用される。 即ち、もしp1がポリメタル接点を示し、ref1がメタルワイヤを示し、それらが同 一のノード上にあるならば、それらの間に適用される距離はdmc(メタルワイヤ へのデルタメタル接点)である。 もし同一方向(north、south、east、west)の1以上の制約が同一のポイント について指定されるならば、制約は加法的であり、それは定義された最悪の場合 の制約が使用されることを示す(第1の制約定義後で第2の制約定義前にデリー ト制約機能が実行されない限り)。もし先に定義された制約と逆の方向のポイント (east対west)について制約が定義されたならば、警告メッセージが与えられる。 3.2.5.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.2.6 コーナーチェック物理的制約の機能 3.2.6.1 導入 コーナーチェック物理的制約ルーチンは、一つの例外を除いて上述の物理的制 約ルーチンと等価である。もし設定されているポイントといずれかの基準ポイン トとの間の絶対距離が計算できないならば(UNKNOWN又はNOCONSTRAINT値のため )、他の制約が評価できない場合でさえも制約は評価されない。構文は以下のよ うである: cNorth(p1,ref1); cNorth2(p1,ref1,ref2); cNorth3(p1,ref1,ref2,ref3); cNorth4(p1,ref1,ref2,ref3,ref4); cNorth5(p1,ref1,ref2,ref3,ref4,ref5); cSouth(p1,ref1); cSouth2(p1,ref1,ref2); . . . cSouth5(p1,ref1,ref2,ref3,ref4,ref5); cEast(p1,ref1); cEast2(p1,ref1,ref2); . . . cEast5(p1,ref1,ref2,ref3,ref4,ref5); cWest(p1,ref1); cWest2(p1,ref1,ref2); . . . cWest5(p1,ref1,ref2,ref3,ref4,ref5); 3.2.6.2 入力 p1−charは、そのx又はy要素を変更するポイント名を示す。 ref1,...ref5 −charは、p1の位置を決定するための基準ポイント名を 示す。 3.2.6.3 処理 コーナーチェック物理的制約ルーチンは、一つの例外を除いて上述の方向性物 理的制約ルーチンと等価である。制約が評価される以前に、x及びy要素につい て、設定されたポイントの逆方向要素に沿っての各基準ポイントの座標が既知で なければならない。情報が使用可能な場合のみコーナー間チェックを行う方向性 物理的制約ルーチンと異なり、これらのルーチンは、それらが評価される前に情 報が使用可能であることを必要とする。 3.2.6.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.7 一次元物理的制約の機能 3.2.7.1 導入 一次元物理的制約ルーチンは、コーナー間チェックが無いことを除いて、上述 の方向性物理的制約ルーチンと類似する。構文は以下のようである: sNorth(p1,ref1,width); sSouth(p1,ref1,width); sEast(p1,ref1,width); sWest(p1,ref1,width); 3.2.7.2 入力 p1−charは、そのx又はy要素を変更するポイント名を示す。 ref1,...ref5 −charは、p1の位置を決定するための基準ポイント名を 示す。 3.2.7.3 処理 3.2.7.4 一次元物理的制約ルーチンの機能は、コーナー間チェックが一切行わ れない点を除いて、上述の方向性物理的制約ルーチンと等価である。これは、sE ast及びsWestルーチンが(評価時に)、設定されたポイント及び基準ポイントの y要素値と独立な設定ポイントのx要素を計算することを意味する。逆に、sNor th及びsSouth ルーチンは、x要素値と独立な設定ポイントのy要素を計算する。 一次元物理的制約ルーチンは、方向性及びコーナーチェック物理的制約ルーチ ンとの関連において使用することができる。これは、一つのポイント上の幾つか の制約を指定することにより行われる。 例えば、 north(p1,ref1); sNorth(p1,ref2); cNorth(p1,ref3); 上記の例において、ポイントp1はポイントref1、ref2、及びref.により制約 される。p1とref1との間で制約が評価される時、p1とref1のx要素が既知ならば (それはSCテーブルの幾つかの通過をとる)、コーナー間チェックが行われ、 そうでなければ、コーナー間チェックは行われない。p1とref2との間で制約が評 価される時、コーナー間チェックは行われず、p1とref.間の制約は、コーナー間 チェックが行われることを要求する。制約のグループが評価される前に、ポイン トref1、ren、及びref.のy要素が既知でなければならず、p1とref.のx要素が 既知でなければならない(cNorthルーチンにより要求される)。これらの条件の いずれかが満たされなければ、条件が満たされるまで制約のグループは評価され ない。条件が満たされなければ、エラーが報告される。 3.2.7.5 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.8 デルタ制約の機能 3.2.8.1 導入 デルタ制約ルーチンは、2つのポイント間の所望の距離を設定するために使用 される。構文は以下のようである: dNorth(p1,ref1,delta); dSouth(p1,ref1,delta); dEast(p1,ref1,delta); dWest(p1,ref1,delta); 3.2.8.2 入力 p1−charは、そのx又はy要素を変更するポイント名を示す。 ref1−charは、基準ポイント名を示す。 ref1−c delta−INT32は、p1がref1から離れて配置されるべき直交方向の所望 距離を示す。 3.2.8.2 処理 ルーチンdNorthは、評価時に、p1のy要素が、ref1->y+deltaと等しくなる ように変更する。 ルーチンdSouthは、p1のy要素が、ref1->y−deltaと等しくなるように変更 する。 ルーチンdEastは、p1のx要素が、ref1->x+deltaと等しくなるように変更す る。 ルーチンdWestは、p1のx要素が、ref1->y−deltaと等しくなるように変更す る。 p1とref1の示された幾何形状間にDRCエラーが生じそうである場合には、警 告が報告される。 指定されたdeltaがgridsizeの倍数でない場合、エラーが報告さ れる。 3.2.8.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.9 アタッチ制約の機能 3.2.9.1 導入 アタッチ制約ルーチンは、方向性、一次元、及びコーナーチェック物理的制約 ルーチンの夫々と同一の機能を有するが、設定されたポイントを基準ポイントに 付属させるという付加的な機能を有する。 各アタッチ制約機能の構文をここに示す: northAttach(p1,ref1); southAttach(p1,ref1); eastAttach(p1,ref1); westAttach(p1,ref1); cNorthAttach(p1,ref1); cSouthAttach(p1,ref1); cEastAttach(p1,ref1); cWestAttach(p1,ref1); sNorthAttach(p1,ref1); sSouthAttach(p1,ref1); sEastAttach(p1,ref1); sWestAttach(p1,ref1); dNorthAttach(p1,ref1,delta); dSouthAttach(p1,ref1,delta); dEastAttach(p1,ref1,delta); dWestAttach(p1,ref1,delta); 3.2.9.2 入力 p1−charは、そのx又はy要素を変更するポイント名を示す。 ref1−charは、p1の位置を決定するための基準ポイント名を示す。 delta−INT32は、p1がref1から離れて配置されるべき直交方向の所望距離を示 す。 3.2.9.3 処理 アタッチ制約が評価される時、設定ポイントは基準ポイントに付属され、付加 的な制約により設定ポイントが移動すれば、基準ポイントもそれと共に移動する 。アタッチ制約ルーチンの他の全ての機能性は、方向性、一次元、及びコーナー チェック制約ルーチンの夫々と等価である。 もし設定ポイントが一つ以上の基準ポイントにより制約され、重大でない(最 悪の場合ではない)基準ポイントが設定されたポイントに付属されたならば、付 属された基準ポイントは、定義された制約のいずれをも破ることなく、設定ポイ ントに可能な限り接近して移動させられる。図16Aは一例を示し、p1がref1及 びref2により制約され、ref2は重大な基準ポイントである。図16Bは、p1とre f1との間の制約がeast制約からeastAttach制約に変更された時にポイントref1が どのように移動するかを示す。 設定ポイントは、第2のアタッチ制約が指定されない限り、垂直 又は水平方向の両方ではなく、一方においてのみ基準ポイントに付属する。 アタッチ制約においては一つの基準ポイントのみが許容されることに注意すべ きであり、これは解決不能な潜在的循環的参照を防止するものである。 3.2.9.4 出力 ルーチンはそれらのステータスを示すINT32を返す。 3.2.10 トランジスタ 3.2.10.1 導入 トランジスタ制約ルーチンは、2つのポイント間の正しい距離を設定し、指定 された幅のトランジスタを製作するために使用される。 構文は以下のようである: tNorth(p1,ref1,width); tSouth(p1,ref1,width); tEast(p1,ref1,width); tWest(p1,ref1,width); 3.2.10.2 入力 p1−charは、その位置が設定されるポイントを示す。 ref1−charは、基準ポイント名を示す。 width−INT32は、トランジスタの所望の幅を示す。 3.2.10.3 処理 トランジスタ制約ルーチンは、引数widthを使用して基準ポイン トからの距離を決定し、ポイントp1を配置する。p1とref1の幾何形状タイプに基 づいてポイント位置p1にオフセットを適用する。 n又はpチャネルトランジスタ(NMAC又はPMAC)、若しくはn又はpチャネル ビッグアクティブワイヤ(PBA又はNBA)のメタルアクティブ接点を示す各ポイン トについて、オフセット[hac]が適用される。 アクティブ幅ワイヤ(AW)を示す各ポイントについて、オフセット[aw/2]が 適用される。 任意幅アクティブワイヤ(AWW)を示す各ポイントについて、オフセット[wid th/2]が適用され、ここでwidthはアクティブワイヤの幅である。 ゲート方向と平行な方向のみの拡張を有するnチャネルポリゲート(NGL)を 示す各ポイントについて、オフセット[ngtx−ngl+hac]が適用される。 ゲート方向と平行な方向のみの拡張を有するpチャネルポリゲート(PGL)を 示す各ポイントについて、オフセット[pgtx−pgl+hac]が適用される。 ゲート方向と垂直な方向の拡張を有するNGLを示す各ポイントについて、オフ セット[ac2ngtx-ngl−hac]が適用される。 ゲート方向と垂直な方向の拡張を有するPGLを示す各ポイントについて、オフ セット[ac2pgtx−pgl−hac]が適用される。 アクティブ(ACT)を示すポイントについてはオフセットは適用されない。 CMOS技術について、ポイントのいずれかの幾何形状アイテムタイプがNMAC 、PMAC、NBA、PBA、AW、AWW、NGL、又はPGL以外であるならば、エラーが報告さ れる。 p1及びref1のアイテムタイプがNMAC、PMAC、NBA、又はPBAであ り、トランジスタの幅がビッグアクティブ接点の幅より小さいならば、p1の拡張 方向は変更される。 ゲート方向に垂直な拡張方向は取り除かれる(図17A−B参照)。 トランジスタの幅がnew(nチャネルトランジスタについて)又はpg.(pチ ャネルトランジスタについて)より小さいならば、エラーが報告される。 ポイント幾何形状アイテムタイプが異なるトランジスタタイプ、即ち、一つが NAMC、一つがPMACを示すならば、エラーが報告される。 トランジスタ制約ルーチンは、常に、設定されたポイントを基準ポイントに付 属させる(上述のアタッチ制約機能を参照)。 3.2.10.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.11 アラインルーチン 3.2.11.1 導入 アラインルーチンは、2以上のポイントランドマークを垂直又は水平方向に整 列させるために使用される。様々のアラインルーチンの構文をここに示す: xAlign(p1,p2); xAlign3(p1,p2,p3); xAlign4(p1,p2,p3,p4); xAlign5(p1,p2,p3,p4,p5); yAlign(p1,p2); yAlign3(p1,p2,p3); yAlign4(p1,p2,p3,p4); yAlign5(p1,p2,p3,p4,p5); 3.2.11 入力 p1..p5−charは、変更されたx及びy要素を有するポイント名を示す。 3.2.11.3 処理 xAlignルーチンは2以上のポイントランドマークを水平に整列させるために使 用され、yAlignルーチンは2以上のポイントランドマークを垂直に整列させるた めに使用される。xAlignルーチンは、まず引数により指定されるポイント上の制 約の方向をチェックし、次に、引数により示された4hx要素の各々を、セット 内の最小値(west制約について)又は最大値(east制約について)に設定する( 最小/最大値を見つける時には、UNDEFINED又はNONCONSTRAINT値は考慮されない )。yAlignルーチンは、引数により示される構造のy要素について同様に動作す る。 もしいずれかのポイントが引数のリスト中のポイントの一つに付属しているな らば、引数リスト中のポイントから付属するポイントへの相対距離は同一に維持 される。 これらのルーチンは、評価中に他のポイントを制約するポイントを潜在的に変 更することができるので、SCテーブルは、いずれかの引数を基準ポイントとし て使用する制約を探し、それらを再評価が必要として記す(それらが先に評価さ れているならば)。もしいずれかの引数が付属するポイントのグループに属する ならば、グループ中のあらゆるポイントを参照するあらゆる制約は再評価されな ければならない。 3.2.11.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.12 デリート制約ルーチン 3.2.12.1 導入 デリート制約命令は、先に定義された制約を消去するために使用される。構文 をここに示す: xDeleteConstraint(p1); yDeleteConstraint(p1); 3.2.12.2 入力 p1−charは、変更されるx及びy要素を有するポイント名を示す。 3.2.12.3 処理 xDeleteConstraintルーチンは、east又はwestルーチンのいずれかのバージョ ンによりSCテーブル内に入力されたあらゆるエントリーを消去する。それはま た、x方向アライン命令を調べ、p1が引数として存在するならば、それを引数リ ストから取り除き、若しくは、アライン制約に2つのみの引数が存在するならば 、アライン制約全体を取り除く。 同様に、yDeleteConstraintルーチンは、north又はsouthルーチン、又はy方 向アラインルーチンから生じたSCテーブルのエントリーを消去する。 p1に以前から制約が存在しないならば、警告メッセージが表示される。 3.2.12.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.2.13.1 導入 制約チェックルーチンは、可能なDRCエラー、又はある他の望ましくない状 態が存在するかを決定するために使用される。各ルーチンの構文をここに示す: cNorthCheck(p1,ref1); cSouthCheck(p1,ref1); cEastCheck(p1,ref1); cWestCheck(p1,ref1); sNorthCheck(p1,ref1); sSouthCheck(p1,ref1); sEastCheck(p1,ref1); sWestCheck(p1,ref1); dNorthCheck(p1,ref1,delta); dSouthCheck(p1,ref1,delta); dEastCheck(p1,ref1,delta); dWestCheck(p1,ref1,delta); 3.2.13.2 入力 p1−charは、ポイント名を示す。 ref1−charは、基準ポイント名を示す。 delta−INT32は、p1とref1との許容された距離を示す。 3.2.13.3 処理 制約チェックルーチンの機能は、それらがポイントp1とref1との間の距離を計 算するために使用される点で、コーナー間、一次元、及びデルタ物理的制約ルー チンと同様であるが、p1の位置を設定する代りに、p1の計算された位置とp1の実 際の位置との差を報告する。 返される値は、制約チェック名によって指定される方向における、p1の実際の 位置とp1の計算された位置との差に等しい。もしp1の実際の位置が、ref1からの 指定方向において計算された位置を超えるならば、正の整数が返される。もしp1 の実際の位置と計算された位置が、指定された方向においてref1から等距離であ れば、値0が返され、もし実際の位置がref1から指定された方向においてp1の計 算された位置程遠くに無いならば、負の整数が返される。負の値は可能なDRC エラーを示すので、この情報を使用してエラー状態を決定することができる。 ルーチンsNorthCheck、sSouthCheck、sEastCheck、及びsWestCheckは、一次元に おいて(水平又は垂直のいずれか)p1とref1の間の最小必要距離を計算する。そ れからルーチンはこの距離を実際の一次元距離と比較する。 ルーチンcNorthCheck、cSouthCheck、cEastCheck、及びcWestCheckは、p1とref1 の間の絶対最小必要距離を計算し、次に、計算された座標のx要素(cEastCheck 又はcWestCheckについて)又はy要素(cNorthCheck又はcSouthCheckについて) を比較し、それをp1 の実際のx又はy位置と比較する。 ルーチンdNorthCheck、dSouthCheck、dEastCheck、及びdWestCheckは、p1とref1 との間の必要空間(一次元)としてデルタ値を使用し、それを実際の距離と比較 する。 物理的制約ルーチンとは異なり、これらのルーチンは後の評価のためにエント リーをSCテーブル内に配置することを行わないが、それらが遭遇した時に評価 を行う。評価されていない先の制約定義が存在するならば、エラーが報告される 。 ルーチンsEastCheck、sWestCheckd、dEastCheck、及びdWestCheckについては、p1 又はref1のx要素がUNDEFINED又はUNCONTRAINTに設定されるならば、エラーが報 告される。 ルーチンsNorthCheck、sSouthCheck、dNorthCheck、及びdSouthCheckについて は、p1又はref1のy要素がUNDEFINED又はUNCONTRAINTに設定されるならば、エラ ーが報告される。 ルーチンcNorthCheck、cSouthCheck、cEastCheck、及びcWestCheckについては、p 1又はref1のx又はy要素いずれかがUNDEFINED又はUNCONTRAINTに設定されるな らば、エラーが報告される。 3.2.13.4 出力 ルーチンは、実際の距離から減算された、計算された距離に等しいINT32を返 す。 3.2.14 xEval及びyEvalルーチン 3.2.14.1 導入 xEval及びyEvalルーチンは、コード中のこのポイント以前に実行されたあらゆ る制約ルーチンにより定義された制約を部分的又は完全に評価する。これらのル ーチンの構文をここに示す: xEval(point); yEval(point); これらのルーチンの意図的な使用は、全ての制約が定義される以前にポイント 構造のx及びy要素値を決定することである。ユーザは、ランドマークの定義又 はランドマークのグループが、先に定義された2つのランドマークの相対位置に 依存することを要求する。ランドマークの実際の位置は、その制約方程式が評価 されるまで使用できないので、先に定義されたこれらのランドマークは、それら の位置が比較できる以前に評価されなければならない。xEvalルーチンが使用さ れる一例をここに示す: if(xEval(p1)>xEval(p2))east(p4,p1); else west(p4,p3); 上記の例で、p4の制約定義はp1とp2の関係により決定される。xEvalルーチン は先に定義されたあらゆる制約を評価し、それによりp1及びp2のx位置が使用可 能となる。 3.2.14.2 入力 p1−charは、x又はy要素を評価し、返すポイント構造名を示す。 3.2.14.3 処理 xEval及びyEvalルーチンは、その呼び出し以前に定義された全ての制約方程式 を評価することを試みる。もし、x又はy要素を有 する基準ポイントがUNDEFINED又はUNCONSTRAINTに設定されているために制約方 程式を評価できないならば、それはスキップされ、SCテーブルの他の通過が要 求される。全ての制約が評価され、又は一つの完全な通過の後に付加的な制約が 評価されない場合、ポイント構造のx要素(xEvalルーチンについて)又はy要 素(yEvalルーチンについて)が返される。その値がUNDEFINED又はUNCONSTRAINT に設定されたならば、エラーが報告される。 実行中に、それ以前にxEval又はyEvalルーチンが実行され、他の制約が定義さ れていないならば、制約は再評価はされない。 3.2.14.4 出力 xEvalルーチンの出力は、評価後のポイント構造のx要素に等しいINT32値であ る。 yEvalルーチンの出力は、評価後のポイント構造のy要素に等しいINT32値であ る。 3.2.15 evalConstraintルーチン 3.2.15.1 導入 evalConstraintsルーチンは、SCテーブルに入力された全ての制約を評価す る。その構文をここに示す: evalConstraints(); このルーチンの呼び出しは、幾何形状生成ルーチンからのあらゆるポイントラ ンドマークへの参照以前に要求される。 3.2.15.2 入力 evalConstraintsルーチンへは直接的な入力は無い。直接的な入力はSCテー ブル内のエントリーである。 3.2.15.3 処理 evalConstraintsルーチンは、定義された制約を、それらがSCテーブル内に 配置された順序で評価しようとする。もしSCテーブルのいずれかのエントリー が、UNDEFINEDに設定されたx要素を有するポイントを参照するeast又はwest制 約を示すか、若しくはUNDEFINEDに設定されたy要素を有するポイントを参照す るnorth又はsouth制約を示すならば、次がテーブルを通過するまで、その制約は スキップされる。同様に、もしeast又はwest制約がその全ての基準ポイントでNO CONSTRAINTに設定されたx要素を有し、若しくはnorth又はsouth制約がその全て の基準ポイントでNOCONSTRAINTに設定されたy要素を有するならば、その制約は スキップされる。 各制約が首尾よく評価されると、その制約の評価フラグがSCテーブル通過カ ウンタの現在の値に設定される。これは、制約評価の順序を決定する爾後の分析 を可能とする。全ての制約が評価されると同時に、若しくはいずれの制約をも評 価することなくSCテーブルを完全に通過した後に、評価プロセスは停止する。 評価できなかった制約があるならば、評価できなかった制約のリストと共にエラ ーが報告される。 評価プロセスの終了後、ポイントランドマークの位置を、SCテーブルをさら に1度以上通過することにより確認することができる。いずれかの制約が破られ ているならば、その制約名と共に警告が報告される。 ポイント構造のいずれかのx又はy要素が以前としてUNDEFINED に設定されているならば、それらは制約の定義が無いとしてリストされるべきで あり、エラーが報告される。 もし、xEval又はyEvalルーチンがそれ以前に実行され、追加の制約が定義され ていないならば、制約の評価は不要であり、よって評価は行われない。しかし、 評価されていない制約、破られた制約、及び未定義のポイントのチェックは依然 として行われる。 3.2.15.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.2.16 制限 3.2.16.1 制約定義の制限 制約を一つのポイント上に逆方向に配置することは許されない。例えば、east 制約があるポイントに配置された場合、同一のポイントにwest制約が配置される とエラーが報告される。周期的な参照パスは許されない。全てのポイントの全て の参照は、オリジンルーチン、ポイントグループ参照ルーチン、又は絶対位置ル ーチンにより配置されたポイントを直接的又は間接的に参照しなければならない 。 3.2.16.2 アラインステートメントの制限 xAlignルーチンについての引数リスト中の少なくとも一つのポイントは、アラ イン制約以外の水平方向への少なくとも一つの制約を有しなければならない。あ らゆるポイント上のあらゆる追加の制約は、全て同一方向でなければならない。 yAlignルーチンについての引数リスト中の少なくとも一つのポイントは、アラ イン制約以外の垂直方向への少なくとも一つの制約を有しなければならない。あ らゆるポイント上のあらゆる追加の制 約は、全て同一方向でなければならない。 xAlign制約についての引数リスト中のあらゆるポイントは、異なる水平方向の 制約の引数リスト中のいずれの他のポイントも参照してはならない。 yAlign制約についての引数リスト中のあらゆるポイントは、異なる垂直方向の 制約の引数リスト中のいずれの他のポイントも参照してはならない。 3.2.16.3 アタッチステートメントの制限 オリジンルーチン、ポイントグループ参照ルーチン、又は絶対位置ルーチンに より配置されたポイントへの付属は効果を有しない。 基準ポイントは、1以上の設定されたポイントに付属させるべきではない(設 定されたポイントは1以上の基準ポイントに付属させることができる)。 3.3 機能的要求事項:幾何形状生成ルーチン 3.3.1 tPointルーチン 3.3.1.1 導入 tPointルーチンは幾何形状生成ルーチンであり、ランドマーク情報をデータベ ース内に配置するために使用される。指定されたグループ内の各定義されたラン ドマークの名称及び座標が保存される。line_of_codeフラグが設定されると、li ne_of_codeファイル名、line_of_codeライン番号、及び基準ポイントリストが各 ポイントランドマークについて含められる。 構文をここに示す: tPoint(group_name); 3.3.1.2 入力 group_name_charは、ランドマークグループについての名称を示す。 3.3.1.3 処理 tPointルーチンは、指定されたグループ名を含む最初の(最後の)ポイントラ ンドマークへのポインタを参照し、そのランドマーク名及び座標を現在のデータ ベース内に配置する。次の(その前の)ポイントランドマークは、構造中の次の 要素を使用して参照され、それがまた指定されたグループ名を含むならば、その 次のポイントの名称及び座標もデータベース中に配置される。このパターンは、 ランドマークのリンクされたリストの最後が発見されるまで継続される。line_o f_codeフラグが設定されると、ファイル名、ファイルライン番号、及び各ポイン トのポインタ参照ストリングもデータベース中に配置される。 geoデータベースは、tPoint命令の実行前、又はエラーが報告される前にオー プンされなければならない。 3.3.1.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.2 pBoxルーチン 3.3.2.1 導入 pBoxルーチンは幾何形状生成ルーチンであり、矩形の幾何形状を作る。ルーチ ンは、各ポイントの幾何形状アイテムタイプに基づいて、ポイント位置上に、幾 何形状の必要なオーバーラップを自動的 に計算する。構文をここに示す: pBox(p1,p2); 3.3.2.2 入力 p1、p2−charは、作成されるべきボックスの対向するコーナーを示す。 3.3.2.3 処理 pBoxルーチンは、現在の描画層と各ポイントのアイテムタイプをチェックし、 その情報に基づいて各ポイントの正確なオーバーラップを計算する。それから、 それは正確なオーバーラップを有する2つのポイントを包囲するボックス幾何形 状を製作する。 現在の描画層といずれかのポイントのアイテムタイプが矛盾する場合、エラー が報告される。 いずれかのポイントが任意幅のワイヤを示す場合、ポイントのオーバーラップ はワイヤ幅の1/2である。ワイヤ幅がグリッドユニットの2倍でなければ、エ ラーが報告される。 3.3.2.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.3 pWireルーチン 3.3.3.1 導入 pWireルーチンは幾何形状生成ルーチンであり、新しいワイヤの開始ポイント を定義する。ワイヤは、px、py、pxy、及び/又はpyx命令により継続される。構 文を以下に示す: pWire(width,p1); 3.3.3.2 入力 width−INT32は、新しいワイヤの所望の幅を示す。 p1−charは、ワイヤの開始位置を示す。 3.3.3.3 処理 pWireルーチンの機能は、wireルーチンのそれと非常に類似している。ワイヤ 幅は、引数widthにより設定され、開始位置はp1により示す構造のx及びy要素 により決定される。 p1のアイテムタイプが、同一層上の幾何形状を現在の描画層として示さない場 合、エラーが報告される。 引数widthが2gridsizeの倍数でない場合、エラーが報告される。 3.3.3.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.4 px及びpyルーチン 3.3.4.1 導入 px及びpyルーチンは幾何形状生成ルーチンであり、pWire又はwireにより開始 したワイヤを描画し続ける。構文を以下に示す: px(p1); py(p1); 3.3.4.2 入力 p1−charは、現在のワイヤを描画するためのx及びy位置を示す。 3.3.4.3 処理 pxルーチンは、現在のワイヤを、p1により示される構造のx要素により指定さ れる値まで水平方向に描画する。 pyルーチンは、現在のワイヤを、p1により示される構造のy要素により指定さ れる値まで垂直方向に描画する。 ワイヤの描画後、ワイヤの終了ポイントが正確にp1の位置に配置されている場 合、使用されるべき次のワイヤルーチンpxy又はpyxルーチンであれば、知的ワイ ヤ動作が行われる。pxy及びpyxルーチンの動作を記述したセクション中の知的ワ イヤ動作の説明を参照。 ワイヤ開始ポイントと終了ポイントの電気的ノード名が一致せず、現在の描画 層がポリ、メタル1、メタル2、又はメタル3である場合、警告が報告される。 3.3.4.4. 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.3.5 pxy及びpyxルーチン 3.3.5.1 導入 pxy及びpyxルーチンは幾何形状生成ルーチンであり、pWireルーチンにより開 始されるワイヤの描画を継続する。これらのルーチンは、ワイヤの描画がDRC エラーの防止を補助するある状況にどのようにできるかについての知的な決定を 行う。例えば、メタル幅ワイヤがポリメタル接点から他のポリメタル接点へ描画 されている場 合、ワイヤはdmcの値だけ自動的にシフトして可能なメタル“ノッチ”を防止す る。2つのポリメタル接点が偶然近接していてメタル間隔エラーを生じる場合、 ワイヤ幅を増加させてギャップを埋める。 構文を以下に示す: pxy(p1); pyx(p1); 3.3.5.2 入力 p1−char4は、現在のワイヤを描画するための新しい位置を示す。 3.3.5.3 処理 pxyルーチンは、最後のpWire又はwireルーチンの引数widthにより指定される 幅のワイヤを、まず水平方向位置でp1->xまで描画し、次に垂直方向位置でp1->y まで描画する。 pyxルーチンは、最後のpWire又はwireルーチンの引数widthにより指定される 幅のワイヤを、まず垂直方向位置でp1->yまで描画し、次に水平方向位置でp1->x まで描画する。 描画中のワイヤセグメントの開始ポイントが、現在のワイヤ幅より広い現在の 描画層上の幾何形状を示し、且つp1の位置が開始ポイントから直交方向にない場 合、ワイヤ開始ポイントを開始ポイントにより示される幾何形状の最も近いエッ ジにシフトする(図18A−B参照)。同様に、p1により示される幾何形状のア イテムタイプが現在のワイヤ幅より広い場合、ワイヤの終了ポイントはp1により 示される幾何形状の最も近いエッジにシフトされる。 ワイヤセグメントの描画後、報告されたワイヤの終了ポイントをp1の位置へシ フトさせて戻す。 関連するアイテムタイプを考慮する時に、pxy又はpyx命令が、DRCエラーを 生じるほどに近接する2つのポイント間のワイヤセグメントを製作する場合、ワ イヤの幅を増加させるか、又はワイヤの隣にボックス幾何形状を付加してDRC エラーを防止する(図19A−D参照)。図19Aは、開始ポイントまで描画さ れたワイヤを示す。図19Bは、p1まで継続したワイヤを示す。図19Cは、現 在の幅で生じるDRCエラーを示す。図19Dは、増加させたワイヤ幅を示す。 ワイヤの開始ポイントと終了ポイントの電気的ノード名が適合せず、現在の描 画層がポリ、メタル、メタル2、又はメタル3である場合、警告が報告される。 3.3.5.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.3.6 pContactルーチン 3.3.6.1 導入 pContactルーチンは幾何形状生成ルーチンであり、接点又は通路のアレイを製 作する。接点又は通路のタイプは、ポイントランドマークのアイテムタイプによ り自動的に決定される。構文を以下に示す: pContacts(p1,p2); 3.3.6.2 入力 p1、p2−char4は、接点アレイの終了又はコーナーポイントを示す。 3.3.6.3 処理 pContactルーチンの機能は、メタルアクティブ接点、ポリメタル接点、基板接 点、pwell接点、vias、及びvia2sのアレイを描画することである。描画される接 点のタイプはポイントランドマークのアイテムタイプに依存する。可能な接点の 最大のdep数は、適当なオーバーラップを有する2つのポイントランドマークp1 及びp2により定義されるボックス中のfiay構成内に配置される。このルーチンは 、接点ルーチンと同様に動作する。 許容されるアイテムタイプは、NMAC、PMAC、PYC、SCON、PCON、VIA、及びVIA2 である(以下の幾何形状アイテムタイプの記述を参照)。ポイントランドマーク のいずれかのアイテムタイプがこれらと異なる場合、エラーが報告される。 2つのポイントランドマークのアイテムタイプが適合しない場合、エラーが報 告される。 3.3.6.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.7 pxContact及びpyContactルーチン 3.3.7.1 導入 pxContact及びpyContactルーチンは、完全なアレイの代わりに唯一の接点列が 生成されることを除いて、pContactルーチンと同様に動作する。第1の引数は接 点列についての“アンカー”ポイントを示し、第2の引数は列の長さを決定する 。典型的に、これらのルーチンは、2つのみのポイントがボックスの対向するコ ーナーに適宜されるアクティブボックス上のメタルアクティブ接点列を製作す るために使用される。図20は、pxContactルーチンによってメタルアクティブ 接点の列が生成される様子を示す。ルーチンの構文をここに示す: pxContacts(p1,p2); pyContacts(p1,p2); 3.3.7.2 入力 p1−charは、接点列についてのアンカーポイントを示す。 p2−charは、その構造中のx及びy要素による接点アレイの対向する終了ポ イントを示す。 3.3.7.3 処理 pxContactルーチンは、p1により示す位置から座標p2->x、p1->yへの水平方向 の接点列を製作する。 pyContactルーチンは、p1により示す位置から座標p1->x、p2->yへの垂直方向 の接点列を製作する。 p1のアイテムタイプに適当であるオーバーラップ値が、列の両端部に適用され る。 p1のアイテムタイプは、以下のいずれかでなければならない:NMAC、PMAC、SCO N、PCON、VIA、及びVIA2−それ以外は、エラーが報告される。 3.3.7.4 出力 ルーチンは、それらのステータスを示すINT32を返す。 3.3.8 単一接点ルーチン 3.3.8.1 導入 単一接点ルーチンは、ポイントランドマークの中央に集められた指定タイプの 接点マクロ(幾何形状のグループ)を配置する。各ルーチンの構文をここに示す : pPYM(p1); pMA(P1); pM2M(p1); pM3M2(p1); pVIA(p1); pVIA2(p1); 3.3.8.2 入力 p1−charは、接点を配置すべき中央ポイントを示す。 3.3.8.3 処理 pPYMルーチンは、位置p1にポリメタル接点を配置する。メタルの方向へのポリ のあらゆる拡張は、ポイント構造により指定される拡張方向により決定される。 pMAルーチンは、ポイントp1で中心に置かれたメタルアクティブ接点を配置す る。 pM2Mルーチンは、ポイントp1で中心に置かれたmetal‐to‐metal2通路を配置 する。 pM3M2ルーチンは、ポイントp1で中心に置かれたmetal2‐to‐metal3通路を配 置する。 pVIAルーチンは、ポイントp1で中心に置かれた通路(metal‐to‐metal2)を 配置する。 VIA2ルーチンは、ポイントp1で中心に置かれた通路(metal2‐to‐metal3)を 配置する。metal2又はmetal3の幾何形状は含まれない。 p1のアイテムタイプがp1に位置する接点のタイプと適合しない場合、エラー が報告される。 3.3.8.4 ルーチンは、それらのステータスを示すINT32を返す。 3.3.9 pPolygonルーチン 3.3.9.1 導入 pPolygonルーチンは、幾何形状生成ルーチンであり、引数として要求されるポ イントランドマークのリストのみでポリゴンを作る。各ポイントに対するポリゴ ン幾何形状の最小のオーバーラップは、自動的に計算される。ポリゴン形状は直 線で囲まれるものに限定され、よってポリゴンの全てのコーナーを特定する必要 はない。最初の2つのポイントを除いて、ポイントのリストはポリゴン形状を定 義するために全ての各コーナーを記述することのみが必要である(図21参照) 。pPolygonルーチンの構文をここに示す: pPolygon(p1,p2,p3); pPolygon3(p1,p2,p3); pPolygon4(p1,p2,p3,p4); pPolygon5(p1,p2,p3,p4,p5); pPolygon6(p1,p2,p3,p4,p5,p6); pPolygon7(p1,p2,p3,p4,p5,p6,p7); pPolygon8(p1,p2,p3,p4,p5,p6,p7,p8); pPolygon9(p1,p2,p3,p4,p5,p6,p7,p8、p9); 3.3.9.2 入力 p1−p9 −charは、ポリゴンのコーナーポイントを示す。 3.3.9.3 処理 pPolygonルーチンの機能は、引数リスト中に指定された各ポイント上への現在 の描画層の正確なオーバーラップを決定し、そのポイント全てを包囲する直線に よるポリゴンを作ることにある。引数リスト中の第2のポイントは第1のポイン トから直交方向にあることが必要であり、それにより、開始方向が確立される。 残りの引数は、以前のポイントに対して直交し、又は直交しないポイントを指定 することができる。 あるポイントが以前のポイントと直交しない場合、ポリゴンは2つのセグメン トで描かれる。先のエッジがy方向に描かれる場合、第1のセグメントはx方向 であり、第2のセグメントはy方向である。先のエッジがx方向に描かれる場合 、第1のセグメントはy方向であり、第2のセグメントはx方向である。全ての ポイントは現在の描画層に関連するアイテムタイプを有しなければならず、そう でない場合にはエラーが報告される。 3.3.9.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.10 pPortルーチン 3.3.10.1 導入 pPortルーチンは、信号又は幾何形状ポートラベルを指定された位置に配置す るために使用される。構文は: pPort(p1,port_name,attrib); 3.3.10.2 入力 p1−charは、ポートの位置を示す。 port_name_charは、ポートに割り当てるべきテキストストリングを示す。 attrib−charは、ポートに配置すべき属性を示す。 3.3.10.3 処理 pPortルーチンは、以下の例外を除いてCDS tport_nlルーチンと同様に動 作する。ポートの位置は、引数x及びy位置の代わりに、引数p1により指定され 、ポートの層及びサイズ情報は、ルーチンへの引数を使用する代わりにポイント 構造から抽出される。ポートにつけられるテキストストリングはport_nameによ り指定され、ポートに割り当てられる電気的ノード名はポイント構造のノード名 要素中に記憶される値である。属性ストリング中のエントリーは、tport又はtpo rt_nlルーチンに使用されるものと等価である。 3.3.10.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.11 pNodeLabelルーチン 3.3.11.1 導入 pNodeLabelルーチンは、特定の位置の幾何形状にノードラベルを付けるために 使用される。構文は: pNodeLabel(p1); 3.3.11.2 入力 p1−charは、ポートの位置を示す。 3.3.11.3 処理 pNodeLabelルーチンは、以下の例外を除いてCDS nodelabelルーチンと同 様に動作する。ノードラベルの位置は、x及びy位置を示す2つの引数の代わり にポイントp1により特定され、ポート層情報は、ルーチンへの引数を使用する代 わりにポイント構造から抽出される。ポートに割り当てられる名称は、ポイント 構造のノード名要素中に記憶される値である。 3.3.11.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.3.12 ポイント構造 3.3.12.1 導入 ポイントを記述する情報にアクセスするためには、そのポイントに関連する構 造の要素を解読可能なルーチンが要求される。ユーザがアクセスしたい構造中に 含まれるこの情報は、ポイントの位置、ポイントの幅、拡張方向、アイテムタイ プ、及び電気的ノード名である。この情報をアクセスする6個の異なるルーチン をここに示す: x1 = pGetX(p1); pGetY(p1); w1 = pGetWidth(p1); str = pExrDir(p1); item = pItem(p1); str = pNodeName(p1); 3.3.12.2 入力 p1−charは、ポイント名を示す。 3.3.12.3 処理 ポイント構造アクセスルーチンは、指名されたポイントを含む構造を見つけ、 要求された情報を構造から返す。p1により指定されるポイントが存在しない場合 、エラーが報告される。 3.3.12.4 出力 pGetX及びpGetYルーチンは、夫々そのポイントのx及びy値を示すINT32を返 す。dGetWidthルーチンは、ポイント構造のwidth値を示すINT32を返す。pExtDir ルーチンは、ポイントの拡張方向を含むcharを返す。pItemルーチンは、ポイ ントのアイテム名/番号を示すcdsITEMを返す。pNodeNameルーチンは、ポイント に割り当てられた電気的ノード名を含むcharを返す。 3.4 機能的要求事項:CMOS特有の内部 3.4.1 幾何形状アイテムタイプ 3.4.1.1 導入 幾何形状アイテムタイプは、典型的なレイアウトで遭遇する異なる幾何形状を 示すために使用される。一つのアイテムが幾何形状のグループを示す場合、例え ばポリメタル接点(PYC)、又は基板接点 (SCON)などの場合、いくつかは複合的であると考えられる。あるアイテムが複 合的でない場合、それは単純なアイテムであり、幾何形状は単一層上にあること を意味する。単純なアイテムタイプは2つのグループ内に存在することができる :ワイヤアイテム、又はエッジアイテム。ワイヤアイテムは、ポイントランドマ ークがワイヤの中心ポイントを示すことを示し、エッジアイテムは、幾何形状の エッジ又はコーナーを示す。 3.4.1.2 処理 幾何形状アイテムタイプは、列挙されたリスト中で定義することができる。こ れは、記号ストリングで記憶される場合より迅速な処理を可能とし、また、グル ープの要素についてのチェックを容易にする。 以下は、アイテムタイプの初期リストである。必要が生じたときに、より多く のアイテムタイプを定義することができる。 エッジアイテム ACT アクティブ PY ポリ M1 メタル1 M2 メタル2 M3 メタル3 NPLUS nplus PPLUS pplus PWELL pwell NWELL nwell CUT カット V 通路 V2 通路2 EDGE スタンダードセルのエッジ NDLBL ノードラベル ワイヤアイテム NBA nタイプビッグアクティブ PBA pタイプビッグアクティブ AWW 特定幅のアクティブワイヤ PYW ポリゴンワイヤ NGT nゲート PGT pゲート PYWW 特定幅のポリワイヤ MW メタルワイヤ BM ビッグメタルワイヤ MWW 特定幅のメタルワイヤ M2W メタル2ワイヤ BM2 ビッグメタル2ワイヤ M2WW 特定幅のメタル2ワイヤ M3W メタル3ワイヤ BM3 ビッグメタルワイヤ M3WW 特定幅のメタル3ワイヤ 複合アイテム PYC ポリメタル接点 NMAC nタイプメタルアクティブ接点 PMAC pタイプメタルアクティブ接点 MMV メタル−メタル2通路 MMV2 メタル2−メタル3通路 SCON 基板接点 PCON pwell接点 雑アイテム EDGE スタンダードセルのエッジ NDLBL ノードラベル GEN ジェネリック 3.5 機能的要求事項:デバッグルーチン 様々のポイントランドマークルーチン、幾つかのデバッグルーチンを使用する モジュール開発プロセスが使用可能である。 3.5.1 dump_sc_table 3.5.1.1 導入 dump_sc_tableは、現在のグループの内部SCテーブルを見るために使用され る。リストは異なる方法で記憶することができ、部分的な表が生成される。構文 をここに示す: dump_sc_table(sort,start,stop); 3.5.1.2 入力 sort−INT32は、ソートのタイプを示す。 start−INT32は、プリントすべき最初のエントリーを示す。 stop−INT32は、プリントすべき最後のエントリーを示す。 3.5.1.3 処理 dump_sc_tableルーチンは、現在のSCテーブルに含まれる制約のフォーマッ トされた部分的又は完全なリストをプリントする。各制約についてプリントされ る情報は、ポイント名、制約の方法、evalフラグの値、ポイントの位置(x及び y)、及び基準ポイントのリストを含む。各々は、基準ポイント制約タイプ及び アタッチ情報、そのデルタオフセット(デルタ制約について)、及びその位置( x及びy)を含む。 表は、引数sofrtのgvalueにより多くの方法でソートすることができる: 0−ソート無し、定義順に制約をプリント 1−評価順にソート 2−ポイント名順にソート 3−制約の方向によりソート 4−制約のタイプによりソート SCテーブルの部分的な表のプリントを可能とするために、引数start及びsto pを使用して範囲を特定する。指定されたソートが行われると、ルーチンはstart により指定されたエントリーをプリントし、stopにより指定されるエントリーに 至るまで全ての後続のエントリーをプリントする。stopの値が0である場合、S Cテーブルの終了に達するまでエントリーが継続的にプリントされる。 出力はメッセージプログラム処理者に送られる。 3.5.1.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.5.2.1 導入 dump_pt_listルーチンは、現在のグループ中の定義されたポイン トのリストを見るために使用される。リストは、異なる方法でソートされ、部分 的な表が作成できる。構文をここに示す: dump_pt_list(sort,start,stop); 3.5.2.2 入力 sort−INT32は、ソートのタイプを示す。 start−INT32は、プリントすべき最初のエントリーを示す。 stop−INT32は、プリントすべき最後のエントリーを示す。 3.5.2.3 処理 dump_pt_listルーチンは、現在のグループ中に定義されたポイントのフォーマ ットされた部分的又は完全なリストをプリントする。各ポイントについてリスト された情報は、ポイント名、ポイントの位置(x及びy)、アイテム名、ポイン トの幅、拡張の方向、及び電気的ノード名を含む。 表は、引数sortにより示されたポイント名、ノード名、又はアイテムタイプに よりソートすることができる: 0−ソート無し、定義順にポイントをプリント 1−ポイント名順にソート 2−ノード名順にソート 3−アイテムタイプ順にソート 引数start及びstopを使用して部分的な表を作成することができ、startはリス トされる最初のポイントを示し、stopは最後のポイントを示す。stopの値0はリ ストの終了を示す。 出力は、メッセージプログラム処理者に送られる。 3.5.2.4 出力 ルーチンは、そのステータスを示すINT32を返す。 3.5.3.1 導入 dump_ptは、特定のポイントについて構造中に記憶された情報を見るために使 用される。構文をここに示す: dump_pt(point); 3.5.3.2 入力 point−charは、ポイント名を示す。 3.5.3.3 処理 dump_ptルーチンは、ポイント名、ポイントの位置(x及びy)、ポイントの 幅(任意幅ワイヤのとき)、アイテムタイプ、拡張方向、及び電気的ノード名を 表示する。 出力は、メッセージプログラム処理者に送られる。 3.6 パフォーマンス要求事項 制約方程式の実行速度は、その潜在的な高周波使用のため重大である。これは 、これらのルーチンの設計に取りかかる時に考慮されるべきである。 3.7 属性 3.7.1 保守性 制約ルーチンの特定のサブルーチンはプロセスに特有である−CMOS又はG aAs。これらのサブルーチンは、保守を単純化する ために他のルーチンから分離すべきである。 3.8 他の要求事項 3.8.1 データベース line_of_code情報が含められる時には、幾何形状データベースに追加のデータ が記憶されるので、この情報を記憶するために新しいデータベースを定義する必 要がある。

Claims (1)

  1. 【特許請求の範囲】 1.基板面上の複数層上に定義される複数の形態を有する集積回路の設計方法に おいて、前記形態は、可能な形態タイプのセットから選ばれ、且つプロセス技術 に関連する設計ルールのセットの対象となり、前記設計ルールは、前記可能な形 態タイプのセットの構成要素中から物理的要求事項を特定し、前記方法は、 少なくとも一つの形態ポイントに、複数の形態中の各形態を関連付ける第1の 工程と、 各形態ポイントに付加的情報を関連付ける工程であって、前記付加的情報は形 態のタイプに関連する属性のリストを含み、属性リスト中の各属性は一つの値を 有する第2の工程と、 複数の形態中の各形態に関連する形態ポイントに関連する各属性のリストを用 意する工程であって、前記リストは属性の値を含む第3の工程と、 各形態ポイントに少なくとも2つの制約を関連付ける第4の工程と、 各制約に付加的な制約情報を関連付ける工程であって、前記制約情報は、制約 のタイプに関連する制約属性のリストを含み、制約属性リスト中の各属性は一つ の値を有する第5の工程と、 複数の形態中の各形態に関連する制約に関連する各制約属性のリストを用意す る工程であって、前記リストは制約属性の値を含む第6の工程と、 各リストの処理を実行する工程であって、前記処理は設計ルール中の制約に対 応し、前記処理の結果は形態ポイントの相対的幾何的配置である第7の工程と、 を備える方法。 2.前記形態のタイプは形態の幾何形状を含み、形態の前記幾何形状は対応する 属性の値により示され、前記第3の工程は、属性の各値についてリストを用意す る請求項1に言己載の方法。 3.前記第7の工程は、形態の幾何形状に対応する処理を行う工程と、形態ポイ ントに対応する形態の相対的幾何的配置を生成する工程と、を備える請求項2に 記載の方法。 4.前記第7の工程は、同一のタイプの相対的配置を測定し、同一タイプの形態 間の距離を決定する処理を含む請求項2に記載の方法。 5.前記第1の工程は、グラフィカルインターフェースを通じて、少なくとも一 つの形態ポイントを関連付ける請求項1に記載の方法。 6.前記第2の工程は、グラフィカルインターフェースを通じて、付加的情報を 関連付ける請求項1に記載の方法。 7.前記第3の工程は、グラフィカルインターフェースを通じて、各属性のリス トを用意する請求項1に記載の方法。 8.前記第4の工程は、グラフィカルインターフェースを通じて、少なくとも2 つの制約を関連付ける請求項1に記載の方法。 9.前記第5の工程は、グラフィカルインターフェースを通じて、付加的な制約 情報を関連付ける請求項1に記載の方法。 10.前記第6の工程は、グラフィカルインターフェースを通じて、 各制約属性のリストを用意する請求項1に記載の方法。 11.前記第7の工程は、グラフィカルインターフェースを通じて、各リスト上 の処理を実行する請求項1に記載の方法。 12.基板面上の複数層上に定義される複数の形態を有する集積回路の設計装置 において、前記形態は、可能な形態タイプのセットから選ばれ、且つプロセス技 術に関連する設計ルールのセットの対象となり、前記設計ルールは、前記可能な 形態タイプのセットの構成要素中から物理的要求事項を特定し、前記装置は、 少なくとも一つの形態ポイントに、複数の形態中の各形態を関連付ける第1の 回路手段と、 各形態ポイントに付加的情報を関連付ける手段であって、前記付加的情報は形 態のタイプに関連する属性のリストを含み、属性リスト中の各属性は一つの値を 有する第2の回路手段と、 複数の形態中の各形態に関連する形態ポイントに関連する各属性のリストを用 意する手段であって、前記リストは属性の値を含む第3の回路手段と、 各形態ポイントに少なくとも2つの制約を関連付ける第4の回路手段と、 各制約に付加的な制約情報を関連付ける手段であって、前記制約情報は、制約 のタイプに関連する制約属性のリストを含み、制約属性リスト中の各属性は一つ の値を有する第5の回路手段と、 複数の形態中の各形態に関連する制約に関連する各制約属性のリストを用意す る手段であって、前記リストは制約属性の値を含む第6の回路手段と、 各リストの処理を実行する手段であって、前記処理は設計ルール 中の制約に対応し、前記処理の結果は形態ポイントの相対的幾何的配置である第 7の回路手段と、を備える装置。 13.前記形態のタイプは形態の幾何形状を含み、形態の前記幾何形状は対応す る属性の値により示され、前記第3の回路手段は、属性の各値についてリストを 用意する請求項12に記載の装置。 14.前記第4の手段は、形態の幾何形状に対応する処理を行う第1の処理手段 と、形態ポイントに対応する形態の相対的幾何的配置を生成する第2の処理手段 と、を備える請求項3に記載の装置。 15.前記第2の処理手段は、同一のタイプの相対的配置を測定し、同一タイプ の形態間の距離を決定する処理を実行する形態配置手段を有する請求項13に記 載の装置。 16.基板面上の複数層上に定義される複数の形態を有する集積回路の設計装置 において、前記形態は、可能な形態タイプのセットから選ばれ、且つプロセス技 術に関連する設計ルールのセットの対象となり、前記設計ルールは、前記可能な 形態タイプのセットの構成要素中から物理的要求事項を特定し、前記装置は、 少なくとも一つの形態ポイントに、複数の形態中の各形態を関連付けるように プログラムされた第1のコンピュータと、 各形態ポイントに付加的情報を関連付けるようにプログラムされたコンピュー タであって、前記付加的情報は形態のタイプに関連する属性のリストを含み、属 性リスト中の各属性は一つの値を有する第2のコンピュータと、 複数の形態中の各形態に関連する形態ポイントに関連する各属性 のリストを用意するようにプログラムされたコンピュータであって、前記リスト は属性の値を含む第3のコンピュータと、 各形態ポイントに少なくとも2つの制約を関連付けるようにプログラムされた 第4のコンピュータと、 各制約に付加的な制約情報を関連付けるようにプログラムされたコンピュータ であって、前記制約情報は、制約のタイプに関連する制約属性のリストを含み、 制約属性リスト中の各属性は一つの値を有する第5のコンピュータと、 複数の形態中の各形態に関連する制約に関連する各制約属性のリストを用意す るようにプログラムされたコンピュータであって、前記リストは制約属性の値を 含む第6のコンピュータと、 各リストの処理を実行するようにプログラムされたコンピュータであって、前 記処理は設計ルール中の制約に対応し、前記処理の結果は形態ポイントの相対的 幾何的配置である第7のコンピュータと、を備える装置。 17.前記形態のタイプは形態の幾何形状を含み、形態の前記幾何形状は対応す る属性の値により示され、前記第3のコンピュータは、属性の各値についてリス トを用意する請求項16に記載の装置。 18.前記第4のコンピュータは、形態の幾何形状に対応する処理を行うように プログラムされたコンピュータと、形態ポイントに対応する形態の相対的幾何的 配置を生成するようにプログラムされたコンピュータと、を備える請求項17に 記載の装置。 19.前記第2のコンピュータは、同一のタイプの相対的配置を測定するように プログラムされたコンピュータと、同一タイプの形態 間の距離を決定する処理を実行するようにプログラムされたコンピュータと、を 有する請求項17に記載の装置。
JP9503325A 1995-06-12 1996-06-12 集積回路のポイントランドマーク設計方法及び装置 Pending JPH11509038A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15995P 1995-06-12 1995-06-12
US60/000,159 1995-06-12
PCT/US1996/010275 WO1996042060A1 (en) 1995-06-12 1996-06-12 Method and apparatus for point landmark design of integrated circuits

Publications (1)

Publication Number Publication Date
JPH11509038A true JPH11509038A (ja) 1999-08-03

Family

ID=21690196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9503325A Pending JPH11509038A (ja) 1995-06-12 1996-06-12 集積回路のポイントランドマーク設計方法及び装置

Country Status (4)

Country Link
EP (1) EP0870254A1 (ja)
JP (1) JPH11509038A (ja)
CA (1) CA2224588A1 (ja)
WO (1) WO1996042060A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106850B2 (en) 2019-09-04 2021-08-31 International Business Machines Corporation Flexible constraint-based logic cell placement

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175696A (en) * 1986-09-12 1992-12-29 Digital Equipment Corporation Rule structure in a procedure for synthesis of logic circuits
US5097422A (en) * 1986-10-10 1992-03-17 Cascade Design Automation Corporation Method and apparatus for designing integrated circuits
US5210701A (en) * 1989-05-15 1993-05-11 Cascade Design Automation Corporation Apparatus and method for designing integrated circuit modules
US5231590A (en) * 1989-10-13 1993-07-27 Zilog, Inc. Technique for modifying an integrated circuit layout
US5450331A (en) * 1992-01-24 1995-09-12 Vlsi Technology, Inc. Method for verifying circuit layout design
US5513119A (en) * 1993-08-10 1996-04-30 Mitsubishi Semiconductor America, Inc. Hierarchical floorplanner for gate array design layout

Also Published As

Publication number Publication date
WO1996042060A1 (en) 1996-12-27
EP0870254A1 (en) 1998-10-14
CA2224588A1 (en) 1996-12-27

Similar Documents

Publication Publication Date Title
Kuh et al. Recent advances in VLSI layout
Williams STICKS-A graphical compiler for high level LSl design
US8843867B2 (en) Low-overhead multi-patterning design rule check
US5568396A (en) Identifying overconstraints using port abstraction graphs
US7610565B2 (en) Technology migration for integrated circuits with radical design restrictions
US5416722A (en) System and method for compacting integrated circuit layouts
Malavasi et al. Automation of IC layout with analog constraints
US5225991A (en) Optimized automated macro embedding for standard cell blocks
US7089511B2 (en) Framework for hierarchical VLSI design
JP2886481B2 (ja) 物体の配置方法
Taylor et al. Magic's incremental design-rule checker
JP2001522111A (ja) Icレイアウトにおけるポリゴン表現
WO2011076908A2 (en) An improved computer-implemented method of geometric feature detection
KR20180088595A (ko) 전력망 복구 기술
US8386967B2 (en) Semiconductor layout scanning method and system
Croes et al. CAMELEON: a process-tolerant symbolic layout system
JPH11509038A (ja) 集積回路のポイントランドマーク設計方法及び装置
Hsu et al. ALSO: A system for chip floorplan design
Lepercq et al. Workflow for an electronic configurable prototyping system
Curatelli Region definition and ordering for macrocells with unconstrained placement
Scott et al. Magic Maintainer’s Manual# 2: The Technology File
Taneja et al. SGRED-a symbolic graphics editor for VLSI layout
WO2014078191A1 (en) Low-overhead multi-patterning design rule check
Wang et al. On DRC Cleanness of Cell Porting for Design Migrations in Foundries and Technologies
CN118332995A (zh) 标准单元的版图自动化移植方法、装置、终端及存储介质