JPH10144798A - グリッド化ポートのための自動レイアウトワイヤ最小化 - Google Patents

グリッド化ポートのための自動レイアウトワイヤ最小化

Info

Publication number
JPH10144798A
JPH10144798A JP9316400A JP31640097A JPH10144798A JP H10144798 A JPH10144798 A JP H10144798A JP 9316400 A JP9316400 A JP 9316400A JP 31640097 A JP31640097 A JP 31640097A JP H10144798 A JPH10144798 A JP H10144798A
Authority
JP
Japan
Prior art keywords
integrated circuit
layout
routing
shape
tie
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
JP9316400A
Other languages
English (en)
Inventor
Keeaaru Chiruburi Benkata
ベンカタ・ケーアール・チルブリ
Wesley Dalits Daniel
ダニエル・ウェスリー・ダリツ
Gullswamy Mohan
モーハン・グルスワミー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH10144798A publication Critical patent/JPH10144798A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 標準セルレイアウトを完全に自動化方式で作
製でき、設計ルールおよび必要なテンプレートに適合し
かつ良好な密度を有するレイアウトを実現する。 【解決手段】 回路レイアウト設計ルール2518に適
合して回路レイアウトのワイヤ長さを最小にする方法
は、特定のグリッド位置への配置が要求されるレイアウ
ト要素2518に接続された相互接続のワイヤ長さを最
小化することにより開始する。レイアウトは制約グラフ
に変換され2512、グラフ頂点のスラックを決定する
ために解かれる2516。ワイヤの寄生負荷を表わす頂
点に重みが割当てられる2522。頂点のツリー構造が
グラフから構築されワイヤ最小化のためにサブツリーが
選択される2524,2526。サブツリーの総合重み
およびローカルスラックが計算されいずれかの頂点がオ
ングリッド要求を有する場合にサブツリーがオングリッ
ドスラックによって移動される2528〜2540。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は一般的には集積回
路の設計および製造に関し、かつより特定的には最適化
されたセル構造を作製するための装置および方法に関す
る。
【0002】
【従来の技術】半導体設計において集積回路(IC)を
設計する普通の方法は集積回路設計者が始めにコンピュ
ータに記憶された回路セルのライブラリおよび該集積回
路の機能性を記述する作用動作的な回路モデルを提供す
ることである。前記回路セルは典型的にはOR,NAN
D,NOR,AND,XOR,インバータ,および論理
ゲートサイズのアレイを備えた同様の論理セルのような
基本的な論理ゲートを含む。これらのセルはまたメモリ
要求のためのラッチおよびフリップフロップのような順
次的な回路要素を含む。一般に、コンピュータに記憶さ
れた回路セルのライブラリはレイアウト設計者により手
作業で発生される。このプロセスは時間を浪費しかつ誤
りを生じ易いため、この手順を自動化するために従来技
術の方法および装置が開発された。
【0003】図1は、これらの従来技術のシステムにお
いて行われる方法体系および装置を示す。典型的な従来
技術の構成はカデンス(Cadence)からのバート
ゥオーソ・レイアウト・シンセサイザ(Virtuos
o Layout Synthesizer:LAS)
ツール、メンター・グラフィクス(Mentor Gr
aphics)からのオートレイアウト(Auto L
ayout)、MCCからのカスタム・セル・シンセサ
イザ(Custom Cell Synthesize
r:CCS)ツール、およびカダブラ(Cadabr
a)ツールを含む。従来技術の構成または装置によって
実施される方法につき図1を参照してより詳細に説明す
る。
【0004】従来技術の構成10はステップ12を含
み、該ステップ12により外部ユーザはネットリスト
(netlist)およびテンプレート(templa
te)を提供する。ネットリストはトランジスタおよび
ダイオード、それらの寸法、および相互接続のような1
組の回路の基本的事項(primitives)を備え
ている。テンプレートは標準的な回路セルの物理形式ま
たは形状を記述する。テンプレートはセルの高さ、電源
導体(supply rail)の寸法、その他を含む
ことができる。
【0005】次に、ステップ14において、ネットリス
トの構成要素が適切な位置に配置される。該構成要素の
各々は次にチャネルルーティングステップ16において
お互いに接続される。結果として得られたレイアウトは
その後ステップ18においてコンパクト化または縮小さ
れる。最後に、レイアウト設計者は結果として得られた
レイアウトが初期ステップ12において特定されたテン
プレートに適合するか否かを決定することを要求され
る。従って、ステップ19において、レイアウト設計者
はセルの高さが適合しているか否か、レイアウトの構成
要素の間で適切な密度があるか否か、およびウエル高さ
(隣接:アバットメント)制約が適合しているか否かを
決定しなければならない。さらに、もしレイアウト設計
者がこれらの制約が適合していないと判定した場合に
は、レイアウト設計者はステップ12において特定され
たテンプレートのどのパラメータが適合するレイアウト
を発生するために修正されなければならないかを決定し
なければならない。これはしばしばレイアウトがこれら
の制約に合致するよう手で編集されなければならないこ
とを要求する。従来技術の構成の各ステップにつきより
詳細に説明する。
【0006】
【発明が解決しようとする課題】第1のステップ12に
おいては、外部ユーザはネットリストおよびテンプレー
トを提供し、従来技術の構成は論理的ネットリストでは
なく物理的ネットリストが提供されることを必要とし
た。物理的ネットリストはネットリストにおいて特定さ
れたデバイスと最終的なレイアウトにおいて実施される
トランジスタとの間に1対1の対応があるものである。
物理的ネットリストは行われるべき機能を特定するのみ
でありかつテンプレートの要求に適合するため最適化さ
れていない論理的ネットリストとは異なる。言い換えれ
ば、物理的ネットリストは従来技術の構成要素の配置ス
テップ(ステップ14)において次のステップに提供さ
れる前にユーザの最適化を必要とする。
【0007】ユーザの最適化、または手書きの最適化が
必要とされるため、従来技術の構成は単に1つの物理的
レイアウトを発生するのにかなりの時間を必要とする。
前に述べた従来技術に対していくらかの改善のためいく
つかの従来技術の構成は論理的ネットリストを物理的ネ
ットリストに変換するために半自動手段を提供する。し
かしながら、これらの少しの改善でも最大トランジスタ
サイズを特定するためにユーザの指示を必要とする。こ
のユーザの指示の要求はレイアウト処理に余分の時間を
加えかつレイアウトエラーの大きな可能性を導入する。
また、これらの従来技術は物理的ネットリストがそのよ
うな技術で発生される様式のため同じ電位であることが
保証されるノードの間に不必要な相互接続を生じさせる
という望ましくない副作用を有する。
【0008】従来技術の構成のステップ14において、
ネットリストの構成要素があるコストメトリック(co
st metrics)を最小にするため2次元アレイ
に配置され、この場合、該コストメトリックは配置に対
する品質指示子(quality indicato
r)である。一般に、2次元アレイはN型トランジスタ
の1つの行およびP型トランジスタの1つの行からな
る。典型的なコストメトリックはワイヤの長さ並びにセ
ルの高さおよび幅の推定値または計算値(estima
tes)を含む。2次元アレイが一般に使用されるが、
2次元アレイは各形式のネットリストに対して常には最
適の結果を与えない。例えば、大部分の従来技術の構成
において実施されるリニアな流れのため、ステップ14
の実行の間に選択されるセルの配置はテンプレートの要
求を満足する上でのその有効性にかかわりなく決して自
動的には修正されない。また、従来技術はワイヤ長さを
最小にするために同じ導電型(PまたはN)のトランジ
スタの縦方向のアライメントは行わない。さらに、従来
技術の構成はセルを形成するトランジスタの間の相互接
続の長さを最小にすることを強調する傾向があるが、チ
ャネル密度(Channel Density)(後に
説明する)についてはそうではない。チャネル密度はセ
ルの高さを最小にするために最小にされるべきであるこ
とに注意を要する。相互接続の長さを最小にすることに
より、従来技術はセルの高さを最小にすることはない。
【0009】上で詳細に述べた不都合に加えて、従来技
術がステップ14、構成要素の配置、を行う方法はまた
いくつかの欠点を有する。これらの欠点には従来技術が
ラッチアップ(latch−up)ルールを満たすため
にレイアウトに連結部またはタイ(ties)を置く方
法が含まれる。トランジスタが配置された後、従来技術
の構成は該トランジスタのソースまたはドレインを電源
またはグランド電源に接続するために「併合されたタイ
(merged ties)」を配置しなければならな
い。従来技術の構成はタイをある特定の位置に置くこと
ができるのみでありかつ最適の位置にタイを構成するこ
とができない。さらに、タイがある位置に配置されかつ
トランジスタと電源との間にある接続を提供するという
要求でも最適化を提供しない特別のプロセスのみを使用
することに注目すべきである。
【0010】タイを配置することに加えて、従来技術の
構成はまたステップ14の間にポート(ports)を
配置する。ポート配置ステップの間に、あるセルの領域
が確保されて該セルがビアサイト(via site
s)または他の形式のインタフェースを提供することに
より他のセルと通信できるようにする。タイ配置動作の
ように、従来技術の構成は最大の面積の利用を提供する
ためにポートの配置を最適化するものではない。そのよ
うなポートの配置ステップは重大なまたはクリティカル
なものであり、それはもしポート配置ステップが効率の
悪い方法で行われれば、ブロック領域のルーティングが
悪影響を受けるためである。
【0011】さらに、近年、製造の目的でデバイスの拡
散層へ金属層からコンタクトを提供するために人手によ
るレイアウト挿入によりアンテナダイオード(ante
nna diodes)が実施されている。このコンタ
クトは製造の間に長い金属ラインにおいて発生された電
荷がトランジスタゲートまたは半導体基板上に構成され
た他の回路を損傷することなく放散されるようにする経
路を提供する。現在得られる従来技術はセルのレイアウ
トを作製するためのコンピュータソフトウエアのツール
を使用してアンテナダイオードを自動的に配置する方法
を提供しない。
【0012】次のステップ16においては、構成要素
(components)の間の相互接続が従来技術の
構成によって導かれる。大部分の従来技術はチャネルル
ーティング方法を使用しこれは詳細にわたり研究された
古典的なレイアウトの最適化問題に対する試みられた解
決を反映する。チャネルルーティングは従来技術のシス
テムにおいて行われた方法であり、その場合はチャネル
は1つの行(row)のN型トランジスタおよびP型ト
ランジスタの間の領域として定義される。2つのタイプ
のトランジスタの間のルーティングを行う上で、従来技
術の構成によって実施されたチャネルルーティングは2
つのトランジスタのチャネルの外側に横たわる領域を効
果的に利用しない。例えば、トランジスタの頭部上の領
域は金属ワイヤを導くために使用でき、かつ金属供給導
体または金属電源導体の下の領域はポリシリコン接続の
ために使用できる。これは従来技術では行われていな
い。さらに、従来技術の構成では、各々の層に対するル
ーティング方向はあらかじめ決定されかつチャネルルー
ティングのステップ16の間に変更することはできな
い。この固定されたルーティング方向はチャネルルータ
(channel router)の使用の主な不都合
の1つにつながり、その理由はそれがコンタクトおよび
ビアの数が増大する結果となり領域、電気的性能、およ
び歩留りに悪影響を有するためである。いくつかの従来
技術の構成は種々の特別の発見的または帰納的(heu
ristic)方法と共にチャネルのルーティングを増
大させることに注意を要する。しかしながら、これらは
上に述べた基本的な不都合を克服できない。
【0013】チャネルルーティングに加えて、いくつか
の従来技術の構成はエリアルーティング(area r
outing)技術を実施する。エリアルーティングは
構成要素(components)を接続するためにレ
イアウトの領域全体を使用することを含みかつそれをト
ランジスタのチャネルに限定しない。第2の従来技術は
より最適の結果を提供するが、従来技術の構成はルーテ
ィングが不首尾となり得る領域を選択的に増大すること
に対する良好な解決方法を提供していない。さらに、エ
リアルーティングの従来技術の構成では、ルーティング
方向は各層に対して固定されている。チャネルルーティ
ング構成と同様に、この固定された方向性(direc
tionality)はルーティング動作の最適な性質
に悪影響を与える。
【0014】構成要素が配置されかつ相互接続が導かれ
た後、レイアウトコンパクト化ステップ18が行われ
る。大部分の従来技術の構成はレイアウトコンパクト化
ステップを含むが、このステップはウエルの高さおよび
セルの高さの要求を最適化するよう提供されない。いく
つかの従来技術の構成は単にウエルの高さの要求の問題
を無視し、一方他の従来技術の構成はレイアウトのコン
パクト化ステップの間に固定された方形のウエル領域を
実施することによりウエルの高さのサポートを提供しよ
うと試みている。しかしながら、この第2の技術はそれ
がN型およびP型トランジスタの各々の高さを制限する
ため最適のものではない。もし高さの要求が越えられな
ければ、結果として得られる回路は最適のものではなく
かつ実施するのにより大きな領域を必要とすることにな
る。ウエルの高さの要求に対するサポートを適切に提供
しないことに加えて、従来技術の構成はまた標準的なセ
ル高さ内でより狭いセルを得るためにセルのレイアウト
を異なるようにコンパクト化する努力を行わない。
【0015】他の従来技術の構成では、2次元コンパク
ト化動作が実施される。このプロセスでは、セルの高さ
および幅の双方が同時にコンパクト化される。この方法
はより最適な結果を提供するが、それは計算機集約的で
ありかつ従って、より大きな標準セルを最適化すること
ができない。さらに、外部ユーザは計算機集約的な手順
から結果として生じるより長いランタイムのため、付加
的なオプションを探求できない。従って、ユーザはしば
しば最適であることが分かるかもしれない付加的な配置
およびルーティングのオプションを探求することができ
ない。レイアウトコンパント化ステップの第2の構成の
他の欠点はそれがコンパクト化ステップの前にレイアウ
トがコラムへと再分されることを要求することである。
この手順はトランジスタの現在の配置に対してはうまく
いくが、トランジスタ配置がある様式で変更される場合
に使用することは実行不可能である。例えば、配置がト
ランジスタの水平および垂直両方のアライメントからな
る場合、2次元コンパクト化プロセスは結果として誤っ
たコンパクト化動作を生じる。言い換えれば、第2の2
次元コンパクト化方法は汎用目的のコンパクト化手順で
はない。
【0016】最後に、構成要素を配置し、該構成要素の
間の接続をルーティングし、かつそのレイアウトをコン
パクト化するために従来技術の構成を使用した後、レイ
アウト設計者はそのレイアウトを調べかつ該レイアウト
がステップ12において特定されたテンプレートを満足
するか否かおよび該レイアウトが良好な品質のものであ
るか否かを特別の方法で判定することを要求される。例
えば、ステップ19において、レイアウト設計者はセル
およびウエルの高さの要件が適合しているか否か、ポー
トの配置が最適化されているか否か、構成要素の間の良
好な密度があるか否か、および隣接または当接(アバッ
トメント:abutment)要求が適合しているか否
かを判定しなければならない。さらに、レイアウト設計
者は結果として得られたレイアウトがすべての設計ルー
ルを満たしているか否かを判定しなければならない。も
しこれらの要求のいずれかが満たされていなければ、レ
イアウト設計者はある目標を達成するためにテンプレー
トへのどの入力が変更されなければならないかを決定し
なければならない。例えば、そのような目標はより小さ
なセルの高さまたは異なるポート配置を有するセルを含
むことができる。さらに、レイアウト設計者はレイアウ
トエディタを使用して彼らが人手によりそうすることを
選択しない限りルーティングの方向またはタイの様式
(Tie Style)を変更することはできない。最
後に、いくつかの従来技術の構成では、それぞれのステ
ップ14,16および18は自動的ではなくかつレイア
ウト設計者は各々のポイントで入り込みかつ各ツールを
制御するために変更を行わなければならない。この手作
業による編集ステップはレイアウトの熟練を必要としか
つレイアウト開発時間に関連する潜伏期間を増大する。
【0017】従って、結果として得られるレイアウトが
設計ルールおよび要求されるテンプレートに適合し、か
つ良好な密度を有する、完全に自動化された方法で標準
的なセルのレイアウトを作製できる方法をもつことが望
ましい。
【0018】
【課題を解決するための手段】本発明は標準的なセルの
様式(style)および技術パラメータ(設計ルー
ル)が与えられれば論理的回路ネットリストから標準的
なセルおよびマクロセルのためのマスク形状を合成する
装置および方法を提供する。論理的ネットリストからの
標準的なセルに対するレイアウトの自動的合成を使用す
ることにより、個々の設計プロジェクトの要件および特
定の標準セルブロックに対してあつらえられた専門化し
たライブラリの発生が迅速に実施できる。さらに、回路
のニーズに密接に整合するゲートサイズを備えたライブ
ラリの使用は結果としてより効率的な領域、電力および
速度の最適化を生じる。さらに、この自動的合成は新し
いプロセス技術を使用した設計の発生をより迅速に可能
にする。そのような迅速なターンアラウンド(turn
around)はマーケットの導入のタイミングがしば
しば重要である半導体産業においてますます重要にな
る。
【0019】
【発明の実施の形態】本発明の以下の説明では、本発明
が実施されるシステム環境につきまず説明する。この説
明に続き本発明のセルレイアウト発生器の概略的な説明
を行う。その後、前記セルレイアウト発生器の各部をさ
らに明瞭にする選択された題目につきさらに詳細に説明
する。説明の題目は次のように構成されている。 I.セルレイアウト発生システム環境 II.セルレイアウト発生器の概観 III.選択された題目 A.高密度トランジスタ配置 B.トランジスタのスタッキング C.入力/出力ポート配置 D.ダイオード配置 E.性能駆動ルーティングフロー F.ルーティングスペースおよび方向決定 G.グリッド化ポートのためのワイヤの最小化 H.ノッチ、タイおよびコンタクト充填フロー I.ノッチ充填 J.タイ充填 K.コンタクトおよびビア充填 L.自動タイ配置 M.基板およびウエルのタイ様式選択 IV.結論
【0020】I.セルレイアウト発生システム環境 図2は、本発明の1実施形態に係わるレイアウト発生シ
ステム100を示すブロック図である。図2に示される
ように、ディスクファイル102に格納された、プロセ
ス設計ルールはセルレイアウト発生器110に提供され
る。さらに、ディスクファイル104に記憶されたセル
のネットリスト、およびディスクファイル106に記憶
されたライブラリ様式または形式(library s
tyle)のテンプレートもまたセルレイアウト発生器
110に供給される。セルレイアウト発生器110は前
記パラメータおよび値の各々を処理してレイアウト11
2を発生する。本発明の基本的な背景を提供するため、
入力プロセス設計ルール、セルのネットリスト、および
ライブラリ形式のテンプレートの各々につきさらに詳細
に説明する。
【0021】ディスクファイル102におけるプロセス
設計ルールはセルのレイアウトにおいて使用される異な
る層の最小幅ならびにこれらの層に関連するスペーシン
グまたは間隔(spacing)の要件を含む。前記プ
ロセス設計ルールはまた各層に対する抵抗および容量の
ような電気的特性を特定する。データファイル104に
記憶されたセルのネットリストはトランジスタのリスト
およびこれらのトランジスタの各々に接続される信号を
含む。さらに、ディスクファイル104に記憶されたセ
ルのネットリストはレイアウトおよび入力/出力(I/
O)信号ポートにおいて実施されるトランジスタのサイ
ズを特定する。セルのネットリストにおいて特定される
トランジスタのリストは論理的な、かつ物理的ではな
い、ネットリストを表すことに注目すべきである。従っ
て、本発明は行われるべき接続が特定されることのみを
要求し、かつ実際の物理的ネットリストを要求しない。
ディスクファイル106に記憶されたライブラリ形式の
テンプレートは要求されるセルの高さ、要求されるウエ
ルの高さ、およびセルのレイアウトの電源、または導
体、の寸法および位置を含む。さらに、テンプレートに
おいて特定される他の形式またはスタイルがあるが、こ
れらは簡略化のためここでは詳細には説明せず、かつそ
れらはここでは詳細に説明されないが付加的なスタイル
が実施できることを理解しておくべきである。
【0022】セルレイアウト発生器110の機能につい
てより詳細に説明する前に、セルレイアウト発生器11
0が実施されるシステムにつき説明する。このシステム
は図3により詳細に示されている。ディスクファイル1
34に記憶された包括的(generic)セルライブ
ラリおよびディスクファイル132に記憶された、作用
動作的(behavioral)記述としても知られ
た、レジスタ転送レベル(RTL)記述の内容は論理合
成ツール114に提供される。包括的セルライブラリ1
34は設計の基本的基礎単位(building bl
ocks)の記述を提供する。論理合成ツール114は
前記RTL記述において示された回路のゲートレベル記
述を発生する。RTL記述と共に、論理合成ツール11
4はゲートレベルのブロックネットリスト115を発生
する。ブロックネットリスト115は設計されるべき回
路の作用動作またはふるまい(behavior)を実
施するためにディスクファイル134に記憶された前記
包括的セルライブラリによって提供されるセルを使用す
る。ブロックネットリスト115はライブラリ規定ツー
ル116に提供される。ライブラリ規定ツール116に
おいては、ブロックネットリスト115の各部が結合さ
れてセルの新しいハイブリッドセットを形成する。該新
しいセットのセルは最適化ブロックネットリスト117
として参照されるハイブリッドネットリストによって表
される。最適化ブロックネットリスト117は配置およ
びルーティング(place and routin
g)、寄生抽出、およびタイミング確認ツール118に
提供される。ライブラリ規定ツール116から、最適化
ブロックネットリスト117はグローバルサイズ最適化
ツール118へと提供される。グローバルサイズ最適化
ツール118においては、最適化ブロックネットリスト
における個々のトランジスタのサイズがディスクファイ
ル132によって提供されるRTL記述において特定さ
れた性能要求を満たすために変更される。グローバルサ
イズ最適化ツール118はその後サイズネットリスト1
19を電源導体(power rail)最適化ツール
118に提供する。電源導体最適化ツール120は最適
化ブロックネットリスト117に対する電流要求に基づ
き発生されるべきセルの各々に対する電源導体の寸法を
決定する。電源導体最適化ツール120によって計算さ
れた電力ならびにグローバルサイズ最適化ツール118
によって発生されたサイズ決定された(sized)ネ
ットリストは共にセルピッチ最適化ツール122へと提
供され最適のセル高さを決定する。いったん最適のセル
高さが前記サイズ決定されたネットリストと共に知られ
れば、セルのレイアウト発生を始めることができる。
【0023】セルのレイアウト発生ツール110はさら
に図4に示されておりかつ後により詳細に説明する。セ
ルレイアウト発生器110によってレイアウトが発生さ
れた後、そのレイアウト内のすべての電気的ノードの抵
抗および容量が抽出ツール(extraction t
ool)124によって抽出される。この抽出された情
報は特徴付けツール(characterizatio
n tool)126に与えられ、そこでブロックネッ
トリスト117における各回路の電力消費および性能が
決定されかつ最適化されたブロックライブラリ127と
して提供される。最適化されたブロックライブラリ12
7は配置およびルーティング、寄生抽出、およびタイミ
ング確認ツール(Place and Route,P
arasitic Extraction,and T
iming Verification tools)
128に与えられる。配置およびルーティング、寄生抽
出、およびタイミング確認ツール128は所望の回路の
物理的構成を発生する。物理的設計はディスクファイル
130に記憶される。ツール128から、ネット寄生
(net parasitics)が抽出されかつグロ
ーバルサイズ最適化ツール118に与えられる。グロー
バルサイズ最適化ツール118は前記ネット寄生を使用
してネットリストを再び寸法合わせし(resize)
物理的設計130の性能をさらに最適化する。
【0024】図5は、図4にさらに示されているセルレ
イアウト発生ツール110を使用する集積回路製造を示
すブロック図である。セルレイアウト発生器110はセ
ルのネットリスト104を使用して標準セルライブラリ
92を発生する。各々の標準セルライブラリ92の部材
は前記セルのネットリスト104の1つから発生されて
いる。高レベル設計ツール94が使用されてRTL回路
記述132を発生する。配置およびルーティング、寄生
抽出、およびタイミング確認ツール128と組み合わさ
れた論理合成ツール114は標準セルライブラリ92お
よびRTL記述132から物理設計130を発生する。
【0025】物理設計ファイル130は集積回路寸法、
素子またはエレメント(element)寸法、および
集積回路内の素子の位置を含む。物理設計ファイル13
0は集積回路ダイの2次元基板領域内の素子および接続
を位置決めする。好ましくは、物理設計ファイル130
はそこから物理設計ファイルが得られた集積回路設計の
機能を達成するための物理的構造を含む。前記物理設計
130は物理設計ファイル130における層に対応する
1組のマスク97へと変換される、96。マスク97は
集積回路99を製造する、98、ために使用される。論
理合成114ならびに配置およびルーティング他のツー
ル128の間のステップ116〜126を図3から除去
することは別の実施形態であり、これはラリー・ジー・
ジョーンズ(Larry G. Jones)他による
「集積回路を設計するための方法および装置(METH
OD AND APPARATUS FOR DESI
GNING AN INTEGRATED CIRCU
TT)」と出する同じ譲受人に譲渡された同時係属米国
特許出願第08/426,211号に開示された利点を
提供しないものである。
【0026】ここに教示された方法は集積回路およびゲ
ート、トランジスタその他を該集積回路において配置す
ることに関する情報を含むCAD(コンピュータエイデ
ッドデザイン)データファイルを発生するために使用さ
れる。これらのファイルは次にリソグラフマスクを形成
するために使用され、該リソグラフマスクは次に集積回
路製造設備を使用して複数のウエーハの上に複数の集積
回路を形成するために使用される。この設計フェーズは
1985年の、Addison−WesleyによるV
LSIシリーズにおけるN.H.E.Westeおよび
K.Eshragianによる、“Principle
s of CMOS VLSI Design:A S
ystems Perspective”に教示されて
いる。数多くの技術の数学的基礎はJohn Wile
y and Sonsによって発行された1990年
の、Thomas Lengauerによる“Comb
inatorial Algorithms for
Integrated Circuit Layou
t”に教示されている。製造技術はLattice P
ressによって発行された1986年の、Wolf
and Tauberによる、“Silicon Pr
ocessing for the VLSIEra,
Volume 1:Process Technolo
gy”に概略説明されている。プロセス集積はLatt
ice Pressにより発行された、1990年の、
Wolfによる、“Silicon Processi
ng for the VLSI Era,Volum
e 2:Process Integration”シ
リーズの第2巻に教示されている。
【0027】図6は、セルレイアウト発生器110を実
行するために使用される汎用目的のコンピュータ20を
示す。汎用目的のコンピュータ20はバス26によって
接続されたコンピュータプロセッサ22、およびメモリ
24を有する。メモリ24はDRAM,SRAM,RO
M,フラッシュ(FLASH),EEPROMおよびバ
ブルメモリのような比較的高速のマシン読取り可能な媒
体を含む。バスには2次記憶装置30、外部記憶装置3
2、モニタのような出力装置34、キーボード(マウス
を備えた)のような入力装置36、およびプリンタ38
が接続されている。2次記憶装置30はハードディスク
ドライブ、磁気ドラム、およびバブルメモリのようなマ
シン読取り可能な媒体を含む。外部記憶装置32はフロ
ッピディスク、リムーバブル・ハードドライブ、磁気テ
ープ、CD−ROM、および通常通信ラインを介して接
続される他のコンピュータのようなマシン読取り可能な
媒体を含む。2次記憶装置30と外部記憶装置32との
間のここで示された区別は主として発明を記述する上で
の便宜上のものである。従って、これらの要素の間に実
質的な機能の重複があることが理解されるべきである。
セルレイアウト発生器110のようなコンピュータソフ
トウエア33の実行可能なバージョンを外部記憶装置3
2に書き込み、かつ後に読み出し、かつ実行のために直
接メモリ24にロードし、あるいはメモリ24へのロー
ドおよび実行の前に2次記憶装置30に記憶することが
できる。また好ましくは、2次記憶装置30または外部
記憶装置32にプロセス設計ルール102、セルネット
リスト104、ライブラリ形式テンプレート106、最
適化されたブロックライブラリ127、物理設計ファイ
ル130、包括的ライブラリ134、RTL記述ファイ
ル132、および標準セルライブラリ92が格納され
る。
【0028】II.セルレイアウト発生器の概観 図4は、本発明のセルレイアウト発生器110をより詳
細に示す。最初のステップ136において、ネットリス
ト、レイアウトテンプレートおよびプロセス設計ルール
が外部メモリソース(ここでは図示されていない)から
提供される。ネットリスト、レイアウトテンプレートお
よびプロセス設計ルールは図2および図3において前に
説明したものと同じである。さらに、本発明のセルレイ
アウト発生器110は従来技術の構成によってサポート
されていない付加的なテンプレート制約(templa
te constraints)を含む。これらの新し
いテンプレート制約はポート位置指定(port lo
cation designation)、基板および
ウエルタイ様式(substrate and wel
l tie styles)およびダイオード様式(d
iode styles)を含む。
【0029】次に、ステップ138において、ネットリ
ストの物理的表現が列挙される(enumerate
d)。ステップ138においては、ステップ136にお
いて提供された論理入力ネットリストが機能的には同じ
であるが構造的に異なるいくつかの物理的ネットリスト
に変換される。例えば、物理的ネットリストは異なる数
のトランジスタまたは接続を含んでいてもよい。論理入
力ネットリストはトランジスタたたみ込み(trans
istor folding)として一般に知られたプ
ロセスによって、あるいは展開(unfolding)
によって、あるいは技術的に知られた他のプロセスによ
って物理的ネットリストに変換できる。これらのたたみ
込みネットリストの各々は異なるセルレイアウト構造を
生じる。これらのたたみ込みネットリストは次に増大す
る推定セル幅に基づき順序付けられかつセルレイアウト
発生器110において引き続く段階により処理される。
【0030】さらに、ネットリストの物理的表現が列挙
されるとき、本発明は同じタイプのトランジスタの縦方
向スタッキングを独自的に可能にする。例えば、2つの
N型トランジスタはお互いにスタッキングしまたは積み
重ねることができかつ次にP型トランジスタが続くこと
ができる。さらに、N型およびP型トランジスタの双方
は縦方向にスタッキングすることができる。従って、2
つのN型トランジスタは2つのP型トランジスタと共に
スタッキングできる。さらに、2つのN型トランジスタ
はP型トランジスタの間にスタッキングでき、逆もまた
同様である。同じタイプのトランジスタを縦方向にスタ
ッキングできるこの能力はセル構造のレイアウトを行う
場合に本発明の柔軟性を増大する。より大きな柔軟性は
セルのレイアウト設計においてしばしば探求されるより
大きな密度およびより狭いセルに変換される。
【0031】引き続くステップ140においては、物理
的構成(implementation)がセルレイレ
アウト発生器110によって選択される。いったん前記
たたみ込みネットリストの各々が順序付けられると、セ
ルレイアウト発生器110はステップ136においてテ
ンプレート入力によって決定される特定されたセルの高
さと最も適合する可能性のあるセル構造を選択する。セ
ルレイアウト発生器110はたたみ込みネットリストの
最初の1つから次のものへとステップ138で確立され
た順序で、最善の適合するレイアウトが決定されるま
で、移動する。
【0032】次のステップ142においては、データベ
ースオブジェクトが前記たたみ込みネットリストによっ
て特定されるトランジスタの実際の物理的レイアウトを
発生することにより生成される。生成できる数多くの異
なるタイプのオブジェクトがあることに注目すべきであ
る。例えば、トランジスタのような能動デバイスがあ
り、かつポート、ダイオードおよびタイまたは連結部
(ties)がある。さらに、ここで特に説明しない他
のオブジェクトもまたこの発明によって生成できる。
【0033】データベースオブジェクトが生成された
後、ステップ144においてトランジスタ配置が行われ
る。トランジスタは2次元アレイにおいて順序付けられ
てレイアウトによって必要とされる内部接続の長さおよ
びセル面積を最小にする。また、ステップ144におい
て、自動レイアウト合成ツールによって前には探求され
なかった、セルレイアウトのためのシミュレートされた
アニールをベースとした手法も使用できる。ステップ1
44において使用される方法は複数行のトランジスタ領
域および(前に述べたように)縦方向にスタッキングさ
れたデバイスを備えたトランジスタ領域のような種々の
レイアウト形式をサポートする。さらに、このトランジ
スタ配置ステップにおいて使用される相互接続の長さを
最小にすることに加えて、本発明はまたルーティングの
密度もまた低減されるようにチャネル密度を最小にす
る。
【0034】構成要素またはコンポーネント(Comp
onent)配置ステップ144につきより詳細に説明
する。基本的には、コンポーネント配置ステップ144
はトランジスタのような能動装置およびポート、ダイオ
ードおよびタイのような他の装置の配置のために必要な
ステップを含む。一般に、コンポーネント配置ステップ
144は上に述べた構成要素の各々の間の相互接続密度
および長さを最小にするよう実施される。コンポーネン
ト配置ステップ144は図7および図8の双方により詳
細に示されている。
【0035】図7は、コンポーネント配置ステップ14
4の第1の実施形態を示す。図7のステップ172にお
いて、アブストラクトまたは抽象的(abstrac
t)能動デバイス配置のためのステップが実行される。
抽象的能動デバイス配置の間に、トランジスタのような
能動デバイスが相互接続長さおよびセル面積を最小にす
るように2次元アレイに配置される。このステップの間
に考慮されるべき他の重要な要因はチャネル密度(Ch
annel Density)の最小化である。この抽
象的ステップ172の間には、トランジスタの順序が主
として決定されるが、これらのトランジスタの実際の物
理的座標(coordinates)は決定されない。
その後、ステップ174において、抽象的ポート配置ス
テップが実行される。このステップでは、入力および出
力信号の双方に対するポートがそれらのトランジスタの
ゲート、ソース、および/またはドレインへの相互接続
の長さを最小にする位置に配置される。ポートは能動デ
バイスに接続されなければならないため能動デバイスが
配置された後に配置され、かつ接続は能動デバイス自体
が配置されていることを知る前に知ることができないこ
とに注目すべきである。
【0036】抽象的ダイオード配置がステップ176に
おいて実施される。このステップの間は、ダイオードは
通常入力ポートの近くに配置されることに注目すべきで
ある。従って、入力ポートが配置された後に、ダイオー
ドが次に入力ポートにできるだけ近く配置することがで
きる。その後ステップ175および173において、能
動デバイスおよびポートが絶対的に配置される。この絶
対的配置ステップの間に、能動デバイスおよびポートの
双方は実際の幾何学的位置を与えられる。能動デバイス
に関しては、幾何学的位置はセルレイアウトにおけるコ
ンタクトの位置に基づき決定される。もしコンタクトが
2つの能動デバイスの間に位置しておれば、2つの能動
デバイスの間により大きな距離が必要とされる。同様
に、もしコンタクトが2つの能動デバイスの間に配置さ
れていなければ、より短い距離を使用することができ
る。前に述べたように、いったん能動デバイスの幾何学
的位置が決定されると、ポートの配置は計算することが
でき、その理由はポートはそれが接続される能動デバイ
スにできるだけ近くでなければならないためである。さ
らに、このステップにおいては、トランジスタのよう
な、能動デバイスの間の縦方向間隔はステップ172に
おける抽象的能動デバイス配置の間に実行されるステッ
プの間に決定されるチャネル密度に基づき決定される。
【0037】その後、絶対的ダイオード配置がステップ
177において実行される。このステップは入力ポート
の絶対的位置が決定されているためこの時点で実行され
る。次に、抽象的タイ配置がステップ178において行
われる。いったんトランジスタまたは能動素子が配置さ
れると、トランジスタのソースおよびドレインへの電源
およびグランド接続の位置が知られ、かつこれらの位置
は基板およびウエルタイの抽象的配置において助けとな
る。絶対的タイ配置ステップ179において、実際の幾
何学的座標がトランジスタの幾何学的位置およびそれら
のソース/ドレイン接続に基づきタイに割り当てられ
る。さらに、適切な位置におけるタイのための十分な場
所(room)を保証するため、タイ配置は総合的ルー
ティング段階の前に行われる。もし必要であれば、その
後のルータ(router)ステップを使用して電源ま
たはグランド供給導体へのウエルまたは基板タイの相互
接続の問題を解決することができる。
【0038】タイ配置ステップ178の主な目的はセル
レイアウト合成の終りに設計ルールに適合するレイアウ
トを生じる一組の基板およびウエルタイ位置を決定する
ことである。第2の目的はレイアウト領域におけるウエ
ルおよび基板タイへのルーティング、電源およびグラン
ド信号の影響を最小にすることである。
【0039】図8は、構成要素またはコンポーネント
(component)配置ステップ144の別の実施
形態を示す。セルレイアウト合成において使用される各
々のコンポーネントはそれらのそれぞれの配置位置を決
定する場合に異なる優先レベルを有することに注目すべ
きである。ここに説明される本発明の構成の1実施形態
では、トランジスタのような能動デバイスは最も高い優
先度を有する。従って、トランジスタのようなコンポー
ネントはいずれの他のコンポーネントよりも前に配置さ
れるべきである。2次的なコンポーネントはポートを含
み、かつ従って、ポートはトランジスタが配置された後
にしかしながらいずれの他のタイプのコンポーネントも
レイアウトに配置される前に配置されるべきである。最
後に、ダイオードおよびタイのようなコンポーネントが
配置される。これらの要素は能動素子およびポートがセ
ルのレイアウトに配置された後にのみ配置される。この
優先度機構は図8に示される方法において固有のもので
ある。例えば、ステップ180において始めにコンポー
ネント形式の抽象的配置が行われる。ステップ180内
で、能動素子は最初に配置され、ポートが2番目に配置
され、かつ各々ダイオードおよびタイのような他のコン
ポーネントが続く。コンポーネントは次にステップ18
2において絶対的に配置される。この時点で、コンポー
ネントの各々はセルレイアウト内でのその正確な幾何学
的位置を与えられる。再び、上で述べた優先度機構が実
施される。従って、能動素子が始めに配置され、ポート
が続き、かつ次にダイオードおよびタイが配置される。
その時点で、ステップ184において、図8に示された
方法はさらにコンポーネント形式(component
types)が配置されるべき否かを決定する。もしこ
れ以上コンポーネントが配置されるべきでない場合は、
配置ステップは完了する。もしより多くのコンポーネン
トが配置されるべきであれば、前記配置方法が反復さ
れ、配置を必要とする付加的なコンポーネントに対して
ステップ180〜184が行われる。
【0040】コンポーネントが配置された後、ステップ
152のようにプリルーティング(pre−routi
ng)が行われる。プリルーティングステップ152に
おては、同じ信号を受ける隣接するトランジスタのソー
スおよびドレインが拡散配線または拡散ワイヤリング
(diffusion wiring)によって接続さ
れる。もし非隣接ゲート、ソースまたはドレインへの他
の接続が必要であれば拡散コンタクトもまたソースおよ
びドレイン接続に加えられる。
【0041】その後、ステップ154においてエリアル
ーティング(area routing)が行われる。
エリアルーティングステップ154においては、能動デ
バイス、ポート、ダイオードおよびタイを接続するすべ
ての信号はステップ136において提供されたテンプレ
ートにおいて特定された層に従って導かれる。各ルーテ
ィング層はワイヤの長さおよびビアの数を制御するため
にワイヤリング方向およびコストパラメータにおける優
先度を与えられる。本発明によって実施されるエリアル
ーティング技術においては、ルーティングは迷路サーチ
(maze search)、層割当て(layer
assignment)、および破棄および再ルート発
見的方法(rip−up−and−reroute h
euristics)の組合せによって行われる。
【0042】トランジスタ、ポート、ダイオードおよび
タイの間の接続が完成した後、得られたレイアウトは可
能な最も効率的な領域利用を与えるためコンパクト化さ
れなければならない。コンパクト化または圧縮または縮
小(compaction)はステップ156において
行われる。図9はレイアウトコンパクト化ステップ15
6をより詳細に示す。図9において実施されるレイアウ
トコンパクト化は1次元制約−グラフまたは1次元拘束
−グラフ(one−dimensionalconst
raint−graph)をベースとしたアルゴリズム
である。それは始めにレイアウトを1次元(例えばX)
でコンパクト化し、かつ次に第2の次元(例えばY)で
コンパクト化する。図9で実施されるグラフをベースと
した手法の特徴の1つは第1のコンパクト化方向の結果
が通常第2の方向の結果より良好であることである。
【0043】テンプレート制約または拘束が次に図9の
ステップ190において加えられる。これらの拘束はセ
ルの高さ、ウエルの高さ、境界ボックス(boundi
ngbox)に対するXおよびYグリッド、入力および
出力ポートに対するXおよびYグリッド、およびセル境
界からの電源および/またはグランド導体の距離を含
む。テンプレート拘束がステップ190において加えら
れた後、ステップ191においてコンパクト化が行われ
る。
【0044】始めのコンパクト化ステップ191が行わ
れた後、結果として得られたレイアウトは要求されるセ
ルの高さが適合しているか否かを判定するため調べられ
る。もしセルの高さが適合していなければ、プログラム
フローはステップ140に戻る。もしセルの高さが適合
しておれば、第2のコンパクト化ステップがステップ1
93において行われる。このコンパクト化ステップ19
3はステップ191において実行された最初のコンパク
ト化方向と反対の方向で行われる。例えば、もしステッ
プ191において、コンパクト化がYXYシーケンスで
試みられれば、ステップ193ではコンパクト化はXY
Xシーケンスで実行される。始めにY方向でコンパクト
化するのが重要であり、それはもしY方向でのコンパク
ト化から得られたレイアウトが要求されるセルの高さを
満たさなければ、X方向での最初のコンパクト化から得
られるレイアウトは要求されるセルの高さの仕様に入ら
ないからである。セルの高さが両方のコンパクト化ステ
ップ191および193において適合したものと仮定す
ると、ステップ191および193において発生された
最も狭いセルがステップ194において選択される。最
も狭いセルがステップ194において選択された後、プ
ログラムフローは図4のステップ158に戻る。ステッ
プ158においては、重要なまたはクリティカルな相互
接続のレイアウト領域が性能について分析される。一般
に、拡散またはポリシリコンのような、あるレイアウト
要素の内のより大きな領域が、受け入れられないかもし
れないより低速の回路性能を示す。もしこれがステップ
194において選択されたレイアウトに当てはまれば、
前と同じコンポーネント配置と共に、レイアウトはステ
ップ152に逆戻りする。プリルーティングステップ1
52、エリアルーティングステップ154およびレイア
ウトコンパクト化ステップ156の変更されたステップ
がステップ160において満足なレイアウトが得られる
まで試みられる。
【0045】最も小さな幅を備えたセルが次にステップ
166において決定される。このセルはステップ144
〜ステップ160から発生されたすべての物理的構成か
ら決定される。最も小さな幅を備えたセルが決定された
後、タイ、コンタクトおよびノッチ充填(fillin
g)ステップが実行される。
【0046】タイ、コンタクトおよびノッチ充填は次に
ステップ168として行われる。タイ充填ステップ16
8はコンパクト化ステップ156がタイカバレージ設計
ルールを満足することを保証しないため実行される必要
があるであろう。ステップ168は設計ルールに違反す
ることなく可能な場合には基板およびウエルタイ拡散を
加えるよう設計される。このステップはタイカバレージ
および最終的なレイアウトの性能をセル面積を増大する
ことなく増強する。最後に、ノッチおよびコンタクト充
填が行われる。ノッチ充填は内部および外部ノッチエラ
ーを防止するために幾何学的形状(grometry)
を加える。コンタクト充填は抵抗を最小にしかつ回路性
能を増大するために金属コンタクトを収容できる拡散領
域を識別する。
【0047】136〜168のステップの各々を実行し
た結果として、ステップ170においてセルのレイアウ
トが発生される。ここで開示される方法は完全に自動化
されたプロセスでありかつ外部ユーザの介在またはレイ
アウト設計の人手による操作を必要としない。従って、
レイアウト開発に関連する潜伏期間およびオーバヘッド
コストもまた大幅に低減される。
【0048】III.選択された題目 A.高密度トランジスタ配置 トランジスタレベルのレイアウト合成のプロセスはトラ
ンジスタを配置するステップを含む。このステップは従
来技術の図1におけるコンポーネント配置ステップ14
に含まれる。トランジスタを配置するステップの間、各
トランジスタの水平および垂直位置、ならびに方向が決
定されなければならない。トランジスタはその後金属、
ポリシリコン、または他の導電性物質で構成できるワイ
ヤのルーティングによって相互接続される。セルレイア
ウトによって消費される領域の非常に実質的な部分はこ
れらの導電性ワイヤのみによって占有される領域からな
る。従って、ある与えられたトランジスタ配置を備えた
セルの寸法はセルの総合的なルーティング領域を正確に
推定または評価することによってのみルーティングの前
に正確に推定することができる。さらに、局部的なルー
ティングは測定することが重要でありその理由はそれが
レイアウトされるセルの寸法および性能に影響を与える
からである。局部的なルーティングエリアを推定するた
めに使用される測定は電気的に接続されたトランジスタ
端子の縦方向のアライメント、ならびに拡散当接または
隣接(diffusion abutment)によっ
て接続されるドレイン−ソース接続の数の測定を含む。
後者の測定は特に2端子接続において重要である。
【0049】数多くの従来技術が最小のセル領域を生じ
る結果となるトランジスタ配置をみつけることを試みて
きた。伝統的には、レイアウト幅の最善の推定子(es
timator)はトランジスタ配置における拡散ブレ
ーク(diffusionbreaks)の数であり、
同様に、レイアウト高さの最善の推定子は該配置のチャ
ネルルーティング密度を含む。従って、トランジスタ配
置の最小化問題は拡散ブレークの数およびチャネルルー
ティング密度を含むコスト関数(costfuncti
on)を最小にすることである。しかしながら、従来技
術の解決方法は、そのようなコスト関数を最小にするこ
のプロセスは、直列−並列回路に対しても、決定論的ア
ルゴリズムが使用される場合に計算機的に処置しにくい
ものであることを認識している。さらなる情報について
は、1991年7月にIEEE Transactio
ns on Computer−Aided Desi
gn、Vol.CAD−10、ページ943〜949、
において発行されたChakravarty他による
“Minimum Area Layout of S
eries−Paralle Transistor
Networksis NP/Hard”と題する論文
を参照されたい。従来技術の解決方法は基本的には最小
面積のセルを生じるトランジスタ配置を発生することに
関連する問題を解決するために2つの異なる手法を用い
る。第1の従来技術の解決方法では、前記問題の制約さ
れたバージョンが決定論的アルゴリズムと共に解かれ
る。そのようなアルゴリズムは最小幅のレイアウトをみ
つけることができる。さらに、そのようなアルゴリズム
は制約された場合において最小の高さをみつけることが
できる。例えば、出願人であるRobert L.Ma
ziaszおよびJohn P.Hayesによる“L
ayout Minimization ofCMOS
Cells”に記載されたトランジスタ配置アルゴリ
ズムは検出されるべき与えられた配置のゲートに対して
多ゲート直列−並列回路に対する最小の高さを可能にす
る。さらに、5個までのゲートに対して、Mazias
zおよびHayesによるこの方法はゲートのすべての
組合せまたは順列(permutations)を試み
ることによりそのセルに対して最適の高さを生じるゲー
ト配置をみつけるよう拡張することができる。しかしな
がら、この従来技術の構成はこのゲートの数を超えると
あまりにも計算機的に費用がかかりかつ発見的な(he
uristic)方法が使用されなければならない。
【0050】第2の従来技術の手法は多重スタート(m
ultiple starts)またはシミュレートさ
れたアニーリング(simulated anneal
ing)を備えた逐次改善法のような最適化技術を使用
する。これらの従来技術の方法は合法的なまたは実行可
能な配置のみを発生するトランジスタの移動(tran
sistor moves)を使用する。これらの最適
化方法は本質的に包括的に最適な解をみつける可能性を
有しているが、サーチスペースが非常に制限されている
場合、最終的な解は包括的に最適のものではなく、それ
はいくつかの配置は到達することができずあるいは与え
られた初期配置から大きな困難性をもってのみ到達可能
であるためである。サーチスペースを制約することはそ
のコストが評価される必要がある候補の配置の数を低減
し、従ってこの制約はそのような方法がチャネルルーテ
ィング密度を計算する伝統的に効率の悪い方法を使用で
きるようにし、左エッジアルゴリズム(left ed
ge algorithm:LEA)と称される。この
従来技術の配置手法はすべての解が到達可能なものでは
ないため包括的に最適の解をみつけることができない。
このような従来技術の方法の例はProceeding
s of the International Sy
mposium on Circuits and S
ystems)、ページ1697〜1700、1990
年、において発行されたG.LakhaniおよびS.
Raoによる“A multiple row−bas
edlayout generator for CM
OS cells”に報告されており、トランジスタの
複数の行に対する複数または多重スタートを備えた逐次
改善法を使用する。他の例はPhysical Des
ign Workshop、ページ150〜153、1
996年、において発行されたB.Basaranおよ
びR.Rutenbarによる“Efficient
area minimization for dyn
amic CMOS circuits”に記載されて
おり、これは単一行のトランジスタに対してシミュレー
トされたアニーリング法を使用する。第3の例はPro
ceedings of theMidwest Sy
mposium on Circuits and S
ystems、ページ1516〜1519、1992
年、において発行されたQ.WuおよびT.Sloan
eによる“CMOS leaf−cell desig
n using simulated anneali
ng”に記載されており、これはトランジスタではなく
複数行のセルに対してシミュレートされたアニーリング
法を使用する。
【0051】第3の従来技術の手法もまた多重スタート
またはシミュレートされたアニーリング法を備えた逐次
改善法を使用するが、合法的な配置のみが発生される制
約を緩和する。そのような緩和技術は典型的には高いコ
ストをそのような合法的な配置に割り当て、それによっ
て最終的な解に何も存在しないようにする。その結果は
すべての配置が与えられた初期配置からより容易に到達
可能になり、従って包括的に最適な解がみつけられる。
しかしながら、サーチスペースは大幅に増大し、従って
この従来技術の解決方法はチャネルルーティング密度を
使用することによりルーティング領域を推定または評価
するために計算機的に実行可能なものとはみなされず、
それは伝統的なLEA方法は計算機的に費用のかかるも
のであるためである。従って、劣っているが計算機的に
より効率のよいルーティングエスティメイタ(esti
mator)が使用され、すなわち合計ワイヤ長さであ
る。この従来技術の手法は不正確なコスト関数に対して
包括的に最適の解をみつける。この手法の例はProc
eedings of the Internatio
nal Conference On Compute
r−Aided Design、ページ364〜36
7、1988年11月、において発行されたA.Sta
ufferおよびR.Nairによる、“Optima
l CMOSCell Transistor Pla
cement:A Relaxation Appro
ach”と題する論文に与えられており、ここでは複数
行のトランジスタに対して多重スタート、またはシミュ
レートされたアニーリング法を備えた逐次改善法を使用
している。
【0052】要するに、従来技術の実施方法で開示した
方法のいずれも任意の寸法の一般的な回路に対して最小
幅および最小高さのレイアウトを効率的に見つけるもの
ではない。したがって、従来技術の方法で生成されるレ
イアウトは通常必要なものよりかなり大きくなる。
【0053】本発明は前にシュミレートされたアニーリ
ング法として述べた最適化方法の緩和されたバージョン
(relaxation version)を使用する
トランジスタを配置する方法を提供する。緩和技術を使
用するこのシュミレートされたアニーリング最適化方法
は決定されるべき比較的複雑な問題への非常に最適に近
い解を可能にする。そのような技術を使用する他の従来
技術の構成と異なり、本発明はトランジスタ配置問題に
対する最適なまたは非常に最適に近い幅および高さの解
を見出だすために正確なかつ計算機的に効率のよいルー
ティング推定方法を使用する。本発明のトランジスタ配
置技術につき次により詳細に説明する。
【0054】本発明は図7の抽象的能動デバイス配置ス
テップ172を実施するために使用することができる。
以下に説明する本発明は伝統的な2行レイアウト形式
(two−row layout style)におけ
るトランジスタ配置の方法を提供することに注目すべき
である。2行レイアウトはここに説明されるトランジス
タ配置の方法の実施のための主な状況であるが、他のレ
イアウト形式もまた使用できる。以下の説明の間は、用
語「2行レイアウト形式」は2つの拡散領域、1つはP
型および1つはN型、が該2つの拡散領域の各々の間に
ルーティングを備えて配置されトランジスタの間の相互
接続を形成するレイアウト形式を述べるために使用され
る。ルーティングはまた能動デバイス並びにそれらの上
および下の領域において行なうことができる。後により
詳細に説明する他のレイアウト形式は積層またはスタッ
キング(stacked)レイアウト形式を含む。積層
レイアウト形式では、複数行のN型拡散領域および/ま
たは複数行のP型拡散領域が提供される。該複数行のN
型拡散の間に局部的(local)相互接続がありかつ
複数行のP型拡散領域の間に局部的接続がある。さら
に、前記積層レイアウト000形式では、複数行のN型
拡散領域および複数行のP型拡散領域の間にグローバル
接続がある。上で与えられた、本発明を実施する環境と
共に、本発明の方法の説明を引き続き行なう。好ましい
実施形態は2つの行(rows)のP拡散領域および2
つの行のN拡散領域を使用する。
【0055】本発明の方法の実行の間に、フォールデッ
ドまたはたたみ込み(folded)トランジスタレベ
ルのネットリストがステップ172に与えられる。その
後、ステップ802において、本発明はランダムな初期
トランジスタ配置を行なう。ステップ802におけるこ
のランダムな初期トランジスタ配置の間には、トランジ
スタは最適の配置解にかかわりなく配置される。その
後、ステップ804において、本発明は1組の隣接する
トランジスタを移動することにより初期配置を増分的に
(incrementally)変更する。移動動作を
行なう前に、移動形式(move type)並びに移
動ウィンドウ(move window)のサイズが選
択される。ここに開示される本発明のこの実施形態にお
いて選択される移動形式はH1またはH2移動の内の1
つであり、もちろんこれらの移動形式に限定されるもの
ではない。H1移動は最も左の位置のトランジスタを最
も右の位置にあるトランジスタと交換する。同様に、H
1ムーブは最も左マイナス1(left−most m
inus 1)におけるトランジスタを最も右マイナス
1(right−most minus 1)の位置に
あるトランジスタと交換する。この交換処理(swap
ping process)はまたリフレクションまた
は折り返し(reflection)と称することがで
きる。本発明によって実施される第2の形式の移動動作
はH2移動と称される。H2移動の実行の間には、2つ
の行のトランジスタが移動ウィンドウの中間点に位置す
る縦または垂直軸の回りに反射または折り返される。実
行される移動動作の形式は任意に選択できる。さらに、
移動ウィンドウの幅は最大および最小移動ウィンドウ寸
法の間で任意に選択できる。最大および最小ウィンドウ
寸法は実験的に決定される。
【0056】合法的配置(legal placeme
nt)は水平方向に隣接するトランジスタの水平方向に
隣接するソース/ドレイン端子が回路において電気的に
接続されるものである。合法的移動は常に合法的配置を
発生する。非合法移動はこの制約を緩和しかつ、水平方
向に隣接するトランジスタの水平方向に隣接するソース
/ドレイン端子が回路において電気的に接続されない、
非合法配置を発生する。そのような対のトランジスタの
間にそれらの近隣の端子が電気的に一緒にショートする
のを防止するため明確な拡散ブレーク(explici
t diffusion break)が挿入される必
要がある。本発明は非合法移動が選択できるようにす
る。ある与えられたトランジスタ配置は典型的にはトラ
ンジスタおよび明確な拡散ブレークを含むから、これら
のブレークは、移動プロセスの結果として、トランジス
タ配置プロセスの間にそのような非合法配置の間に入
る。一旦そのような位置に移動すると、明確なブレーク
は典型的には非合法配置の間に留まり、それはそのよう
な非合法配置は非常に高いコストが割り当てられるから
である。
【0057】移動形式および移動ウィンドウ寸法が決定
された後、本発明はステップ806における移動のコス
トの評価のための機能を実行する。移動コスト評価(E
valuate Cost of Move)機能、ス
テップ806、は図11により詳細に示されている。移
動のコストは実際の移動を行なう前に決定できる。
【0058】ステップ806のより詳細な説明を始める
前に、コラム密度(ColumnDensity)およ
びチャネルルーティング密度(Channel Rou
ting Density)を計算するために使用され
る方法をより詳細に説明する。コラム密度およびチャネ
ルルーティング密度の概念を使用しかつ理解するために
図13を参照されたい。図13に示されるように、P型
拡散領域1100はP型トランジスタA,B,Cおよび
Dを構成する。また、N型拡散領域1102はN型トラ
ンジスタC,B,DおよびAを構成する。コラム密度を
計算するために、P型領域1100およびN型領域11
02の各々における対応するトランジスタが点線ライン
によって理論的に接続される。次に、もし列またはコラ
ム(columns)が観察されれば、各コラムと交差
する水平ラインの数はコラム密度を決定する。例えば、
P型トランジスタAおよびN型トランジスタCを含むコ
ラムは2つの水平ラインを含む。したがって、対応する
コラム密度は2である。同様に、P型トランジスタCお
よびN型トランジスタDを含むコラムは3つの水平ライ
ンを含む。したがって、対応するコラム密度は3に等し
い。図13に示された回路に対応するチャネルルーティ
ング密度はすべてのコラム密度の値の最大値である。用
語、コラム密度およびチャネルルーティング密度は本発
明の方法の説明の間に以後使用する。
【0059】再び図11を参照すると、ステップ900
において、新しいコラム密度がステップ804において
決定された移動ウィンドウに含まれるトランジスタに対
して決定される。移動ウィンドウに対するコラム密度カ
ウントはその後ステップ902において計算される。コ
ラム密度カウント値はあるコラム密度を有するコラムの
数を示す。例えば、もし移動ウィンドウが4つのコラム
を含んでおりかつこれらのコラムの内の2つが2のコラ
ム密度を有し、1つのコラムが3のコラム密度を有し、
かつ第4のコラムが1のコラム密度を有するものとすれ
ば、前記コラム密度カウント値は2のカウント密度を有
する2つのコラム、3のカウント密度を有する1つのコ
ラム、および1のコラム密度を有する1つのコラムがあ
ることを示す。さらに、ステップ902において、移動
動作が実行される前の最大コラム密度がステップ902
においてセーブされ、かつ移動動作が実行された後の最
大コラム密度がセーブされる。ステップ904におい
て、移動後の最大コラム密度値がレイアウト全体のチャ
ネルルーティング密度と比較され、かつ移動ウィンドウ
内のトランジスタのチャネルルーティング密度のみに対
してではない。もし移動後の最大コラム密度がチャネル
ルーティング密度より大きければ、新しいチャネルルー
ティング密度が移動後の最大コラム密度にセットされ
る、ステップ906。移動動作後の最大コラム密度およ
び移動動作前の最大コラム密度は移動ウィンドウ内に含
まれるコラムに対してのみ適用されることに注目すべき
である。
【0060】もし移動動作後の最大コラム密度がチャネ
ルルーティング密度より大きくなければ、ステップ90
8が実行される。ステップ908においては、移動動作
が実行される前の最大コラム密度がチャネルルーティン
グ密度に等しいか否かが判定される。もし移動前の最大
コラム密度がチャネルルーティング密度と等しければ、
新しいチャネルルーティング密度の値がステップ912
において最大の非ゼロコラム密度にセットされる。該最
大の非ゼロコラム密度値はレイアウト全体における最大
のコラム密度の内の最大のコラム密度の値に対応し、か
つ単に移動ウィンドウに対応するのではない。しかしな
がら、もし移動前の最大コラム密度がチャネルルーティ
ング密度に等しくなければ、新しいチャネルルーティン
グ密度がステップ910において古いチャネルルーティ
ング密度にセットされる。
【0061】新しいチャネルルーティング密度の値を決
定する場合に、本発明はレイアウトの全てのコラムのコ
ラム密度を排他的に考慮することなく最大のコラム密度
を効率的に計算する方法を含むことに注目すべきであ
る。移動ステップ806のコスト評価の実行の一例が図
14に示されている。図14のケース1を参照すると、
移動ウィンドウに対するコラム密度は移動動作の前およ
び後に計算される。ケース1においては、総合的なチャ
ネルルーティング密度は増大している。第1のコラムに
おいて、移動前のコラム密度は2に等しくかつ移動後の
コラム密度は1に等しかった。さらに、第2のコラムに
おいては、移動前のコラム密度は2に等しくかつ移動動
作が実行された後のコラム密度は3に等しい。さらに、
移動ウィンドウの外側の最大のコラム密度は2に等し
い。
【0062】図14に含まれるチャートは各々の場合に
対するコラム密度カウント値を示す。移動動作の前は、
2に等しいコラム密度を有する3つのコラムがレイアウ
ト全体に対して示されている。移動動作が実行された後
は、レイアウトにおける各コラムのコラム密度は再び計
算される。移動の後に、1のコラム密度を有する1つの
コラム、2のコラム密度を有する1つのコラム、および
3のコラム密度を有する1つのコラムがある。チャネル
ルーティング密度は全てのコラム密度の内の最大のもの
であると決定されるから、ケース1において移動動作が
実行された後のチャネルルーティング密度は3に増加す
る。チャネルルーティング密度は移動ウィンドウに含ま
れるコラムのコラム密度の変化のみを観察することによ
り計算されることが強調されるべきである。これは結果
として従来技術の構成で実施されたいずれのものよりも
効率がよいチャネルルーティング密度の計算を生じるこ
とになる。
【0063】図14のケース2は移動動作の前に第1の
コラムのコラム密度が2に等しく、かつ移動動作の後に
1に等しい場合を示している。さらに、ケース2におい
ては、移動動作が実行される前のコラムのコラム密度は
2に等しくかつ第2のコラムのコラム密度は移動動作の
後に3に等しくなる。さらに、ケース2において、移動
ウィンドウの外側の最も高いコラム密度は4に等しい。
ケース2においては、したがって、チャネルルーティン
グ密度は移動動作の前および後の双方において最も高い
コラム密度値に留まっている。したがって、移動動作は
チャネルルーティング密度に対して何の影響も与えな
い。ケース2に対するチャネル密度カウント値を示すチ
ャートを参照すると、レイアウトは移動動作の前に2の
コラム密度を有する2つのコラムおよび4のコラム密度
を有する1つのコラムを含むことに注目すべきである。
移動の後はレイアウトは1のコラム密度を有する1つの
コラム、3のコラム密度を有する1つのコラム、および
4のコラム密度を有する1つのコラムを含んでいる。
【0064】ケース3は第1のコラムが移動前に2のコ
ラム密度を有しかつ移動動作が実行された後に1のコラ
ム密度を有する例を示している。さらに、第2のコラム
は移動動作が実行される前に2のコラム密度を有しかつ
移動動作が実行された後に1のコラム密度を有する。移
動ウィンドウの外側の最も高いコラム密度はケース3に
おいて示されたレイアウトに対して2である。前のケー
ス2の場合と同様に、ケース3のチャネルルーティング
密度は移動動作によって影響を受けず、それはウィンド
ウの外側の最も高いコラム密度が移動ウィンドウ内の最
も高いコラム密度と同じであるかあるいはより高いから
である。
【0065】ケース4は第1のコラムのコラム密度が移
動動作が実行される前に2に等しくかつ移動動作が実行
された後に1に等しい状況を示している。ケース4はま
た第2のコラムが移動動作が実行される前に2のコラム
密度を有しかつ移動動作が実行された後に1のコラム密
度を有することを示している。移動ウィンドウの外側で
は、最も高いコラム密度は1に等しい。したがって、移
動動作の後に、チャネルルーティング密度は2から1に
変化する。
【0066】図14に示された例がどのように図11に
おいて実施される方法に対応するかを理解するため、ス
テップ900において計算される新しいコラム密度値が
移動動作が実行された後にケース1〜4に示されたコラ
ム密度値に対応することに注目すべきである。さらに、
ステップ902の移動動作の前の最大コラム密度値は移
動動作が実行される前の移動ウィンドウ内で構成される
全てのコラムの最大コラム密度に対応する。また、ステ
ップ902の移動動作の後の最大コラム密度の値は移動
動作が実行された後の移動ウィンドウ内で構成される全
てのコラムの最大コラム密度値に対応することに注目す
べきである。ステップ904および908のチャネルル
ーティング密度は図14に示されるように移動動作の前
のチャネルルーティング密度に対応する。図11のステ
ップ906,910および912の新しいチャネルルー
ティング密度の値は図14の移動動作の後のチャネルル
ーティング密度に対応する。
【0067】ステップ912を実行する場合に、新しい
チャネルルーティング密度の値は図14に示されるコラ
ム密度カウント値のチャートを使用して計算できる。新
しいチャネルルーティング密度値は非ゼロのコラム密度
を有する最大のインデクスまたは指数に等しい。非ゼロ
のコラム密度値を有する最大のインデクスを決定するた
めに、図14のコラム密度カウントのチャートのエント
リを参照することができる。始めに、チャネルルーティ
ング密度に対応するインデクスにおけるコラム密度カウ
ントのチャートのエントリが観察されなければならな
い。その後、インデクスは最初の非ゼロカウントが検出
されるまで減分される。一例として、図14のケース4
を参照する。この場合、移動動作が実行される前はチャ
ネルルーティング密度値は2に対応した。インデクス2
におけるコラム密度カウントのチャートを参照すると、
カウントは後にゼロに等しくなることが観察されるべき
である。したがって、インデクスは1に減分されかつチ
ャートはインデクス1が3の非ゼロカウント値を有する
最大のインデクスであることを決定するために評価され
る。したがって、新しいチャネルルーティング密度はイ
ンデクス1に等しい。さらに、図11および図14を一
緒に観察すると、図14のケース1は図11のステップ
906に対応することに注目すべきである。同様に、図
14のケース2は図11のステップ910に対応する。
また、図14のケース3および4は、図11のステップ
912に対応する。
【0068】再び図10を参照すると、図11は増大し
たチャネルルーティング密度に関連するコストを評価す
るための方法を与えるのみであることに注目すべきであ
る。また、移動動作に関連するコストはまた拡散領域、
水平ワイヤ長さ、セル幅、およびセル高さにおけるブレ
ークをも反映することに注目すべきである。これらの付
加的なコストメトリックのおのおのの計算はデータ処理
技術においてよく知られておりかつここではさらに詳細
には説明しない。
【0069】ステップ806が実行されかつ移動動作の
コストが評価された後、本発明は移動動作がステップ8
08において実施されるべきか否かを決定しなければな
らない。ステップ808は図12により詳細に示されて
いる。ステップ1000においては、コストの変化、ま
たはデルタコスト、が移動動作の後のレイアウトのコス
トより移動動作の前のレイアウトのコストだけ少ないも
のとして計算される。ステップ1002において、デル
タコストがゼロより小さいか否かが判定される。もしデ
ルタコスト(ΔC)がゼロより小さければ、移動動作が
受け入れられあるいは実施される。しかしながら、もし
デルタコスト(ΔC)値がゼロより小さくなければ、デ
ルタコスト(ΔC)の関数および熱度または温度(te
mperature:T)がステップ1004において
計算される。本発明のアルゴリズムでは、温度(T)は
最適のレイアウト解へのアルゴリズムの収束を制御する
ために使用されるパラメータである。温度(T)パラメ
ータは始めに非常に高い割合の移動動作が受け入れられ
るようにする値にセットされる。温度(T)はその後逐
次的に低下される。温度(T)パラメータは、典型的に
は、本発明のアルゴリズムが収束するまで1より小さい
数によってそれを乗算することにより低減される。再び
図12を参照すると、ステップ1004の関数F(Δ
C,T)は次の数式1で表わすことができる。
【数1】f=F(ΔC,T)=e−ΔC/T
【0070】F(ΔC,T)の出力(f)はゼロおよび
1の間の数である。その後ステップ1006において、
ランダム数発生値がゼロおよび1の間のランダム数
(r)を発生する。ステップ1008において、ステッ
プ1006において発生されたランダム数(r)がステ
ップ1004の関数(f)の値と比較される。もし発生
されたランダム数(r)が関数(f)の値より小さけれ
ば、ステップ1010において移動動作が受け入れられ
る。しかしながら、もしステップ1006において発生
されたランダム数(r)がステップ1004において発
生された関数(f)の値より大きいかまたは等しけれ
ば、移動動作は拒絶される。
【0071】この場合、好ましい実施形態では、「擬似
(pseudo)」ランダム数発生器が使用されること
に注意を要する。真にランダムな数の発生器に対してこ
れを用いる利点は再現性である。ここでの1つの重要な
要素はランダム数発生器の見かけのランダムさである。
したがって、真にランダムな数の発生器は、再現性を犠
牲にして、受け入れ可能な結果を発生する。これらの理
由から、上に述べたシミュレートされたアニーリング法
は、再現性あるランダム数発生器を使用するにもかかわ
らず、非決定論的(non−deterministi
c)アルゴリズムであると考えられる。もし移動動作が
拒絶されれば、プログラムフローはステップ804に戻
り、そこで新しい移動が選択される。しかしながら、も
し移動動作が受け入れられれば、移動動作はステップ8
10において行なわれかつ該移動動作に関連するコスト
がステップ812において更新される。
【0072】その後、本発明によって実施されるアルゴ
リズムが収束したかあるいは「凍結された(froze
n)」かがステップ814において判定されなればなら
ない。システムがグローバルミニマム(global
minimum)に到達したかを判定するために数多く
の異なる方法が存在する。例えば、好ましい実施形態で
は、もしある最小数の移動が受け入れられあるいはある
最大数の移動が超過すれば、前に述べた温度(T)パラ
メータが、ゼロおよび1の間の数である、値(A)(ア
ルファ)によって乗算される。もし予め選択された数の
引き続く温度、T、に対して最大数の動作が超過してお
れば、システムは凍結されたものと考えられかつプログ
ラムの動作は終了する。もしそうでなければ、プログラ
ム制御はステップ804に戻り、そこで新しい移動ウィ
ンドウが選択される。終了に応じて、出力は発生された
全ての配置の最も低いコストを備えたトランジスタ配置
である。
【0073】チャネルルーティング密度に関連するコス
トを計算することに加えて、本発明はまたコスト値を決
定する上で他のパラメータを使用する。チャネルルーテ
ィング密度を計算することに加えて、小さな拡散当接ま
たは隣接(diffusion abutments)
の数を低減するために水平ローカルルーティングメトリ
ック(horizontal local routi
ng metric)が使用される。そのような小さな
拡散当接または隣接はまさに2つの端子を、セルのトラ
ンジスタのドレインおよびソース端子を水平方向にお互
いに隣接して配置することによりかつ前記2つの端子を
拡散ワイヤを使用して接続することにより接続する。そ
のような当接または隣接を使用する結果はなんらの金属
または拡散コンタクトも必要とされないことである。し
たがって、2つのトランジスタの間の最小距離はコンタ
クトを必要とする拡散隣接と比較してほぼ半分に低減さ
れる。さらに、寄生容量が大幅に低減される。コスト決
定の間に、各行の小さな拡散隣接の数が計算されかつよ
り正確にセル幅を決定するために使用される。
【0074】本発明において含まれる垂直ローカルルー
ティングメトリックは垂直ゲート端子アライメントおよ
び垂直ドレインおよびソース端子アライメントを含む。
本発明の方法は数多くのそのようなアライメントを計算
しかつそれらを最大化するよう試みる。そのようなアラ
イメントはより密度の高いレイアウトを生じる結果とな
り、それは層の変更無しに真っ直ぐなワイヤを使用して
これらの整列した接続を行なうことができるからであ
る。
【0075】本発明の最適化方法はトランジスタがいず
れの従来技術の配置アルゴリズムよりも回路のための大
幅に小さなレイアウトでトランジスタが配置できるよう
にする。さらに、本発明はこれを時間効率の良い方法で
行なう。また、ここで説明される本発明の構成は実例に
すぎないことも注目すべきである。
【0076】B.トランジスタのスタッキング 前に述べた様に、トランジスタレベルのレイアウト合成
のプロセスはトランジスタを配置するステップを含む。
このステップは各トランジスタの水平および垂直位置、
ならびに方向を決定することを含む。トランジスタはそ
の後導電ワイヤのルーティングにより相互接続される。
【0077】伝統的には、セルのトランジスタは2つの
水平行、一方はPMOSトランジスタに対応しておよび
他方はNMOSトランジスタに対して、に配置される。
しかしながら、全てのセルが同じ標準のセル高さを有す
る標準のセル設計においては、いくつかのセルはセルの
アーキテクチャを変えることによりより狭くすることが
できる。複数の水平隣接行をPMOSおよびNMOSト
ランジスタの双方に対して使用できる。このセルのアー
キテクチャは与えられた形式のトランジスタが縦方向ま
たは垂直に整列され、あるいは「積層される(stac
ked)」ようにすることができる。
【0078】従来技術のトランジスタ配置方法は種々の
形式のそのような「積層された」セルアーキテクチャを
使用している。例えば、エクセラレータ(Excell
erator)と称されるプログラムは任意の数の垂直
方向のトランジスタのスタッキングを可能にするが、そ
れはスタッキングを共通のトランジスタゲート信号を共
有するトランジスタに限定する。エクセラレータ(Ex
cellerator)プログラムはチェインを形成す
るためにトランジスタが拡散ワイヤによって接続される
前にトランジスタのスタッキングを行なう。第2の従来
技術の方法においては、トポロジャイザ(TOPOLO
GIZER)と称されるシステムは任意の接続と共にト
ランジスタのスタッキングを可能にする。トポロジャイ
ザ(TOPOLOGIZER)によって実施される方法
はトランジスタ配置の間にスタッキングを行なうが、セ
ル高さ計算においてルーティングエリアの測定を含まな
い手法を使用する。したがって、トポロジャイザ(TO
POLOGIZER)の結果は通常最適なものからはか
け離れている。他のトランジスタ配置プログラム、PA
MS、はトランジスタ配置と同時にトランジスタのスタ
ッキングを可能にする。しかしながら、PAMSシステ
ムは水平拡散隣接を使用しない。その後、CETUSプ
ログラムが提供されこれはP−Nトランジスタ対がトラ
ンジスタ寸法および局部的ルーティング密度に基づき内
側行にスタッキングされるポスト配置ステップとして制
限されたスタッキングを行なう。
【0079】上で述べた従来技術の構成は、最も正確な
コストメトリック、チャネルルーティング密度、および
拡散隣接を使用しないか、あるいは制限された形式での
スタッキングのみを可能にし、したがってそれらは解決
しようと試みている問題に対する最適に近い解を見出す
ものではない。
【0080】これに対し、本発明は、チャネルルーティ
ング密度、水平拡散燐接、および局部的ルーティング密
度を含む、セル領域の最善のメトリックを最小にする制
限されないスタッキングが行なわれるトランジスタの配
置を実施する方法を提供する。
【0081】本発明のトランジスタ配置アルゴリズムは
シミュレート・アニーリングと称される最適化方法の緩
和されたバージョンを使用する。シミュレートされたア
ニーリング法(Simulated Annealin
g methodology)は組合わせ問題に対する
非常に最適に近い解を見出だすことができる一般的な最
適化技術である。本発明はシミュレートされたアニーリ
ング法を使用して縦方向のトランジスタ移動およびスタ
ッキングされたトランジスタの間の局部的ルーティング
メトリックを導入することによりトランジスタをスタッ
キングする。この方法を使用することにより、本発明は
高い品質のスタッキングされたトランジスタ配置を生成
する。
【0082】図15は、抽象的能動デバイス配置ステッ
プ172の第2の実施形態を示す。ステップ172を始
める前に、たたみ込みトランジスタレベルのネットリス
トがそこに提供される。ステップ1302において、セ
ルを構成するトランジスタが初期ステップにおいてラン
ダムに配置される。その後、ステップ1304におい
て、移動動作が選択される。しかしながら、移動動作を
行なう前に移動動作のコストがステップ1306におい
て評価される。ステップ1304および1306のおの
おのは図16により詳細に示されている。
【0083】図16において、移動動作(move o
peration)がステップ1304において選択さ
れる。選択できる移動動作はH2,H1,H4およびV
2移動動作を含む。さらに、システム設計者によって希
望される付加的な移動動作を実施することができること
に注目すべきである。移動動作の各々によって実行され
る動作を決定する上で、移動名における“H”は水平移
動が生じることを示し、かつ“V”は垂直移動が生じる
ことを示していることに注目すべきである。さらに、文
字“H”および“V”に関連する数字は移動動作に関連
する拡散領域、またはトランジスタ、の行の数を示して
いる。前に述べたように、移動動作を実行する場合に、
移動ウインドウの最も左の位置のトランジスタが移動ウ
インドウの最も右の位置のトランジスタに移される反映
または折り返し(reflection)動作が実行さ
れる。また、移動ウインドウの最も右の位置のトランジ
スタが移動ウインドウの最も左の位置に移される。同様
に、ウインドウサイズに応じて、最も右の位置マイナス
1のトランジスタが最も左の位置マイナス1のトランジ
スタと交換される。ステップ1304において実行され
る各々の移動動作は対応するトランジスタが最適の局部
的接続のために構成できるようにする。前に述べたよう
に、スタッキングされたトランジスタ配置における「局
部的接続(local connection)」は同
じ形式のトランジスタの2つの行の間の接続に言及して
いる。
【0084】ステップ1304において移動動作が選択
された後、移動動作から生じる配置の品質が、提案され
た移動を受け入れるかあるいは拒絶するかを決定するた
めに、評価される。この評価ステップはステップ130
6において実行される。ステップ1306の最初の部分
においては、ステップ1324に示されるように、総合
的なコストメトリックが評価または計算される。ここで
評価される総合的なコストメトリックはセクションA:
高密度トランジスタ配置において前に述べた総合的なコ
ストメトリックに対応することに注目すべきである。ス
テップ1306の第2の部分においては、ステップ13
26に示されるように、スタッキングトランジスタ配置
を評価することに関連するコストメトリックが評価され
る。スタッキングコストメトリックを評価する上で、ゲ
ート整合および不整合、ドレインおよびソース整合およ
び不整合、および縦方向または垂直ワイヤ長さパラメー
タが評価される。
【0085】ゲート整合および不整合ならびにドレイン
/ソース整合および不整合を評価するために、整合の数
および不整合の数が計算される。ゲート整合は電気的に
接続されたトランジスタのゲート端子が同じ形式のトラ
ンジスタの2つの行の間にまっすぐな垂直ラインに配置
される場合に生じることに注目すべきである。逆に、ゲ
ート不整合は電気的に接続されたゲートが同じ形式のト
ランジスタの行の間でまっすぐな垂直ラインに配置され
ない場合に生じる。同様に、ドレイン/ソース整合は2
つのトランジスタのドレインまたはソースがそのような
まっすぐなラインにおいて接続できる場合に生じる。逆
に、ドレイン/ソース不整合は隣接する同じ形式の拡散
領域における2つのトランジスタのドレインまたはソー
スがそのように接続できない場合に生じる。
【0086】上に述べたスタッキングのコストメトリッ
クを評価する上で、メトリックの各々はトランジスタ配
置アルゴリズムにおけるその相対的な重要性を示すため
に所定の係数で重み付けされる。スタッキングメトリッ
クを評価することに関連するコストは次のように書くこ
とができる。
【数2】 コスト= K*ゲート_整合 +K*ゲート_不整合 +K*ドレイン/ソース_整合 +K*ドレイン/ソース_不整合 +K*垂直_ワイヤ_長さ +… +K*総合_コスト_メトリック
【0087】本発明の1実施形態では、重み定数K
はそれぞれK=−1300,K=2100,K
=−1100,K=1200,K=10の値を有
する。本発明のこの実施形態では、ゲート整合および不
整合ならびにドレイン/ソース整合および不整合に関連
するスタッキングのコストメトリックは次のようにして
計算される。すなわち、1.局部的ルーティング構造の
すべての場合を識別し、2.有利な局部的ルーティング
構造の場合を識別し、3.相対的な有利性に従って前記
有利な局部的ルーティング構造の場合のみを見積もりま
たは評価し、そして4.これらの有利な局部的ルーティ
ング構造の場合の相対位置に基づきコストを割り当て
る。
【0088】図17は、有利な局部的ルーティング構成
の場合が識別され、評価され、かつコストが割り当てら
れる一例を示す。図17を参照すると、ケース1は1の
総合整合カウント、1の総合不整合カウント、および−
100のコストを有するトランジスタ構造を示す。整合
カウントはゲートの整合であり、かつ不整合カウントは
ドレイン/ソース不整合である。ケース2は2の整合、
1の不整合、および−100のコストがあるシステムを
示す。整合の内、両方がトランジスタのドレイン/ソー
ス領域の間の整合である。不整合はゲート不整合の結果
である。ケース3では、2の整合、1の不整合、および
−1200の関連コストがある。ケース2の整合および
不整合の数はケース3と同じであるが、整合の形式、特
にケース3のゲート整合はケース3をより魅力的な局部
的ルーティング解としている。ケース4においては、2
つのトランジスタは実際に接続されていないにもかかわ
らず、トランジスタの1つが基準電源導体に接続されて
いるため不整合はないことに注目すべきである。トラン
ジスタの1つが基準電源導体に接続されている場合、そ
れは不整合として含まれない。ケース5は−3500の
関連コストを有する最適の解を示し、その理由はそれが
不整合をもたず、2つのドレイン/ソース整合、および
1つのゲート整合を有するからである。
【0089】再び図15を参照すると、移動動作のコス
トがステップ1306において計算された後、ステップ
1308は提案された移動動作が受け入れられるべきか
否かを決定する。ステップ1308は図10のステップ
808と同様に行われる。もし移動動作が実行されるべ
きでない場合は、プログラム制御は移動選択(Sele
ct Move)ステップ1304に戻る。もし移動動
作が受け入れられれば、該移動動作はステップ1310
において行われる。その後、関連するコストがステップ
1312において該移動動作を反映するために更新され
る。コストが更新された後、ステップ1314において
スタッキングされた配置方法が終了すべきか否かを判定
しなければならない。このステップは図10のステップ
814に対応する。もし移動動作が終了すべきでなけれ
ば、プログラムフローは移動選択ステップ1304に戻
る。もし本発明のスタッキング配置アルゴリズムが終了
すべきであれば、トランジスタは最適の様式で配置され
ている。
【0090】図18は、本発明において実施されるスタ
ッキング配置方法の一例を示す。初期配置ステップ13
02に対応するもとの配置では、整合はなく、6つの不
整合および垂直ワイヤ長さ14がある。ステップ130
4においてV2移動がその後選択される。V2移動の
後、依然として整合はないが、不整合の数は4に低減さ
れておりかつ垂直ワイヤ長さは10に低減されている。
その後、本発明の方法はH1移動を実施する。H1移動
の結果として、今や3つの整合があり、1つのみの不整
合、および10の垂直ワイヤ長さがある。従って、本発
明はレイアウト動作を最適化するための効率的な方法を
提供することが分かる。
【0091】上に述べた移動動作およびメトリック計算
を使用することにより、本発明のスタッキングトランジ
スタ配置アルゴリズムは時間効率のよい方法で提供され
る回路のための大幅に小さいスタッキングされたトラン
ジスタのレイアウトを生じる結果となる。セクション
A:高密度トランジスタ配置アルゴリズムにおいて上で
述べた、総合的なスタッキング動作はスタッキングトラ
ンジスタ配置と同時に行われるため、両方の方法は実施
される任意の形式のレイアウトに対して最適の解を提供
するよう実施できる。
【0092】C.入力/出力ポート配置 図7のステップ174で示される抽象的ポート配置(A
bstract Port Placement)につ
き説明を行う。伝統的には抽象的ポート配置は人手によ
りあるいはソフトウエアにより行われている。人手によ
り行われた場合、抽象的ポート配置は非常に時間を消費
する、低速の方法で行われた。ポートの人手による配置
は設計者がすべての必要とされる設計ルールに適合でき
ることが要求されかつ中庸の大規模集積回路に対して莫
大な量の時間を必要とする。
【0093】抽象的ポート配置が過去においてソフトウ
エアを使用して行われたとき、それは典型的には標準的
なセルに関して行われかつ典型的には境界ポート配置の
みを含んでいた。境界ポートはセルのレイアウトにおい
て常にセルの境界に配置されるポートである。サポート
されるポートの形式が境界ポートのみであったため、境
界ポート配置を行うことができるソフトウエアルーチン
は比較的素直なものでありかつ実施するのが簡単であっ
た。知られた商業的に入手可能なレイアウトツールの1
つの欠点はポート割当てがセル境界においてのみ行わ
れ、かつ従ってセルの内側の位置に対するポート割当て
は不可能であるか、あるいは多くの量の人手による介在
を必要とすることであった。
【0094】技術が開発され、かつ2つより多くの金属
層が一般的になるに従って、複数の金属層をセルの上に
あるいはセルにわたり導くことが可能になっている。半
導体処理における3つまたはそれ以上の金属層の存在は
お互いに隣接して配置できる標準セルを生じる結果とな
りかつそれによって2つまたはそれより少ない金属層が
使用される場合に標準セルの間に存在することが要求さ
れた専用のルーティングチャネルを低減しまたは除去す
る。付加的な金属層を使用する結果として、当接または
隣接するセルへのアクセスは境界ポート能力よりはむし
ろ内部ポート能力によって達成されるのが好ましい。従
来、複雑な「配置およびルーティング(place a
nd route)」ツールは非常に限られた方法で内
部ポート割当てを配置することができた。しかしなが
ら、この能力をもつためには、プログラマはあらかじめ
「配置およびルーティング」ソフトウエアに対しレイア
ウトにおいて、かつ内部ポートのためのセルの内側部分
において受入れ可能なポート配置場所がどこであるかを
通知しなければならない。
【0095】最小のポート配置を行う1つの商業的に入
手可能な「配置およびルーティング」ツールはSilv
er Liscoからの“Gards”である。最小の
内部ポート割当てを行うことができる他の商業的に入手
可能な「配置およびルーティング」ツールはArcSy
sからの“ArcCell”である。ArcCellツ
ールは内部ポートに対するあらかじめ規定された位置を
みつけ、かついずれか他の利用可能なポートをみつける
ことができた。しかしながら、ArcCellツールに
関連する1つの不都合はそれがレイアウト設計者が配置
される内部ポートに対して脇にあらかじめセットされた
十分な場所をもつことを必要とし、かつ基本的に内部ポ
ートがセル内のどこに配置されようとしているかを計画
しなければならないことであった。その情報のすべてに
より、ArcCellソフトウエアはいくらかの最小内
部ポート配置を行うことができた。
【0096】より最近に、1996年の、Fifth
Physical DesignWorkshopにお
けるGuanおよびSechenによる“Effici
ent Standard Cell Generat
ion When Diffusion Strapp
ing Is Required”と題する論文におい
て、セルレイアウト合成ツールの説明が行われている。
GuanおよびSechenのツールは内部ポート配置
を行うことが可能であった。しかしながら、彼らの設計
はモジュール方式の設計でありかつ制限された標準セル
レイアウト形式を有していた。その結果、ほとんど柔軟
性がなくかつスペースの利用効率が悪かった。Guan
およびSechenによって教示されたセルレイアウト
合成ツールはレイアウトセルの一方の側から他方へと走
査した。この方法はトランジスを配置し、セルをルーテ
ィングし、セルの出力信号が適合するまでポートをゲー
ト信号の左に配置しかつ内部ポートをゲート信号の右側
の出力信号の右側に与えることであった。この一様な方
法の結果として、内部ポートへのアクセスはわずかに2
つの方向に限定された。
【0097】図19には図7のステップ174における
抽象的ポート配置方法のフローチャートが示されてい
る。図19は本発明に係わる内部ポート配置を示してい
る。ステップ2602でスタートした後、図19に示さ
れる方法はトランジスタレベルのレイアウト合成のため
のレイアウトソフトウエアツールにおいて実施可能であ
る。始めに、ステップ2604において、能動デバイス
(active devices)が配置される。好ま
しい実施形態では、能動デバイスは3つのコラムの倍数
を占有する、能動デバイスは典型的には能動デバイスの
コラムまたは列およびローまたは行としてレイアウトに
配置される。好ましい実施形態では、ステップ2606
において能動デバイスの2つの隣接する行の間にポート
の配置のために2つのルーティングトラックが与えられ
る。
【0098】ステップ2608において、最も低いコス
ト係数(cost factor)に基づき行および
「コアース」または「粗い」(coarse)コラムに
対するポートの割当てが行われる。コスト係数の数に基
づきポートの「コアース」コラムへの割当てにおいてコ
スト係数の決定が行われる。第1のコスト係数はコラム
ルーティング密度(Column Routing D
ensity)である。能動デバイスのコラムの各々の
中の密度が決定されかつ内部ポートがどこに割り当てら
れるかを決定する上で最小密度コラムが好ましいものと
される。第2のコスト係数の決定はまずネットスパン
(net spans)の概念の理解を必要とする。上
に述べたように、形成される能動デバイスの複数の行お
よび列がある。各行内には、ポートネットにより接続さ
れる2つまたはそれ以上の能動デバイスがあり得る。
【0099】図20には、PおよびNネットスパンの水
平オーバラップの決定のコスト係数を説明する例が示さ
れている。図20は列をも形成する能動デバイスの2つ
の行2650,2652を示している。第1の行265
0においては、第1の3つの能動デバイスがいっしょに
接続されてPネットスパン2654を形成している。好
ましい形式ではNチャネルのデバイスで形成される能動
デバイスの第2の行2652において、第2の264
2、第3の2644、および第4の2646のコラムの
Nチャネルのデバイスがいっしょに接続されてNネット
スパン2656を形成している。図20に示されるコラ
ムとして指定された2つのコラムによりハッチングによ
って指定されたコラムB 2642およびC 2644
が示されている。これらの2つのコラムは重複するネッ
トスパン2648内に入るコラムである。重複またはオ
ーバラップの結果として、これら2つのコラム264
2,2644は内部ポートが図示された接続ネットに対
して割当てられるべき2つのコラムとして4つの図示さ
れたコラム2640,2642,2644,2646の
内で好ましいものである。図20においては、頭部行2
650の最初の3つのPチャネルの間に特定のネットが
あり、かつ同じネットが第2、第3および第4のNチャ
ネル装置にわたっている。従って、内部ポートに対する
適切な配置はこの指定されたネットに接続されたポート
のみに対応する。4つのコラム2640,2642,2
644,2646の間の他の内部ポートの最適の配置は
他のネット割当てに基づき変わる。
【0100】決定されるべき他のコスト係数(cost
factor)はそれが接続される能動デバイスに対
する内部ポートの配置である。内部ポートを能動デバイ
スの端子が接続される能動デバイスに直接隣接して配置
することが望まれる。隣接する能動デバイスに直接接続
しない内部ポートは隣接する能動デバイスに直接接続す
るものに対してコスト係数分析においてより好ましくな
い。内部ポートの配置における第4および最終のコスト
係数はある与えられたコラムにおいてどれだけ多くのポ
ートが前に配置されているかを考慮することである。こ
の場合のコスト基準は特定のコラムに関連するポートの
数を最小にすることである。理論は内部ポートの数を種
々のコラムの間でできるだけ等しく広げまたは分散する
ことである。4つの示されたコスト係数に関連して等し
い優先度が与えられないことに注目すべきである。
【0101】図19に戻ると、行およびコアース列また
はコアースコラムへのポートの割当てがステップ260
8において行われた後に、内部ポートをスタガーされた
モードで配置するか否かの決定がステップ2609にお
いて行われる。スタガモード(Stagger Mod
e)は内部ポートの割当てを引き続くコラムに対して交
互の行の間で変える。ポートが「配置およびルーティン
グ」ツールによってアクセス可能な方向の数を最適化す
るために、スタガリングは非常に都合がよい。スタガモ
ードにあるとき、相互作用するまたは相互に影響しあう
ポート(interacting ports)の「ス
タガ」グループが始めにステップ2610において識別
される。相互に影響しあうポートのグループが識別され
た後、各々のスタガグループに対する2つまたはそれ以
上のスタガ形式の合計コストの評価がステップ2612
において行われかつファインコラムまたはファイン列
(fine columns)に基づいて行われる。フ
ァインコラムの数は能動デバイスが有するかつ能動デバ
イスの列および行におけるモジュール方式の列内に入る
ものとして規定できる端子の数に対応する。
【0102】レイアウトプロセスにおいて、ファインコ
ラムのアライメントはコアースコラムのアライメントと
異なり、それは後者は能動デバイスそれら自体の位置に
よって決定されるからである。ファインコラムは能動デ
バイスがMOSトランジスタとして実施される場合は能
動デバイスのソース、ゲートおよびドレインのような端
子の位置によって決定される。従って、トランジスタの
あるコラムは単一の「コアース」コラムに対応するが、
トランジスタの端子は3つの異なる「ファイン」コラム
に対応することになる。
【0103】ステップ2612において、前にステップ
2608に関して与えられた4つのコスト基準を使用し
て合計コストの評価が行われる。ステップ2612にお
いては2つの「スタガ形式(Stagger Type
s)」または「スタガ構造(Stagger Conf
igurations)」が述べられている。これは能
動デバイスの行の間に2つの対応するポートの行がある
という仮定に基づいている。もし2つより多くのポート
の行があれば、2つより多くの可能なスタガ構造または
スタガ構成があることになる。好ましい実施形態は2つ
の対応するスタガ行に対応する2つのスタガ構造を使用
する。しかしながら、この方法はより多くのスタガ構造
およびスタガ行によっても効果的に動作する。
【0104】図21には、図19のステップ2612お
よび2614に関連して「スタガリング」の概念を示す
セルレイアウト2620が示されている。図21には、
単一の行においてn番目のP型トランジスタへと伸ばす
ことができる複数のP型トランジスタ2622,262
4および2626が示されている。第2の行にはN型ト
ランジスタの第2の行の終りにおけるn番目のトランジ
スタへと伸ばすことができるトランジスタ2628,2
630および2632として示された複数のN型トラン
ジスタが配置されている。各トランジスタは3つのアク
ティブまたは能動(active)電極を有し、該3つ
の能動電極はP型トランジスタ2622およびN型トラ
ンジスタ2628と関連するコラムC,C,C
およびトランジスタ2624および2630と関連する
コラムC,CおよびCならびにトランジスタ26
26および2632と関連するコラムC,Cおよび
のような想像上の点線(「ファイン」)コラムで示
されている。能動デバイスの2つの行の間にはポートト
ラック1 2634およびポートトラック2 2636
が示されている。ポートトラック1 2634およびト
ラック2 2636はまた「ポート行(Port Ro
ws)」と称される。本発明によって行われる分析に基
づき内部ポートが配置できる2つの可能性ある領域があ
る。
【0105】図21には、例示的な目的でのみ示された
内部ポートA 2660、B 2662、C 266
4、D 2666およびE 2668がある。これらの
5つのポートは同じスタガグループにある。ポートA
2660、C 2664、およびE 2668はポート
トラック2 2636に配置され、一方ポートB 26
62およびD 2666はポートトラック1 2634
に配置されている。図21は「スタガモード」を示して
おり、該「スタガモード」においてはポートA2660
およびポートB 2662がポートトラック2 263
6およびトラック1 2634の間でスタガされあるい
は交替または交互にされている(alternate
d)。同様に、ポートB 2662に続くポートC 2
664は結局ポートトラック2 2636上に配置し戻
されかつポートC 2664に続くポートD 2666
は交替(スタガされた)様式でトラック1 2634上
に配置される。
【0106】図21から内部ポートに対する多様な異な
る配置構成が存在することが注目されるべきである。例
えば、トランジスタ2622およびトランジスタ262
8の間に、内部ポートA 2660およびB 2662
がトランジスタ2622およびトランジスタ2628の
ゲートによって生成される想像上のコラムである「ファ
イン」コラムによって分離されている。同様に、ポート
C 2664はトランジスタ2624およびトランジス
タ2630の間の空間に配置されかつこれら2つのトラ
ンジスタの間の唯一の内部ポートである。これに対し、
トランジスタ2626およびトランジスタ2632の間
に位置するポートD 2666およびE2668があ
る。ポートD 2666およびE 2668は「ファイ
ン」コラムによって分離されておらずかつ「スタガ」様
式でポートトラック1 2634およびポートトラック
2 2636の間に交替配置されている。
【0107】ポートA 2660がポートトラック1
2634またはトラック2 2636上に配置されたか
否かを決定することは始めにステップ2612に基づき
行われる。同じそれぞれのファインコラムに留っている
一方で、ポートA 2660がポートトラック1 26
34上に、ポートB 2662がポートトラック226
36上にかつ同様にC 2664、D 2666および
E 2668にわたり同様にされた反対のスタガ構造に
対して、ポートA 2660、B 2662,C 26
64、D 2666およびE 2668が図21に示さ
れる構成でスタガされた場合に種々のコスト係数の決定
が行われた。結果として最も低いコスト値を有する図2
1に示される構成を生じるコスト決定により、代わりの
スタガの可能性に対して該構成が選択された。図19の
ステップ2614は相互に影響しあうポートの各グルー
プに対するスタガ構成の実際の割当てである。ステップ
2616においては、図21において行われたようにフ
ァインコラムに対しポートの割当てが行われる。
【0108】図19におけるステップ2608に戻る
と、もし「配置およびルーティング」ルーチンが目標に
され何らの「スタガリング」も実施されるべきでない場
合は、ステップ2617におけるプログラムの完了前に
ステップ2618が実施される。ステップ2618にお
いては、前記コスト係数に基づき各々のポートに対して
どれが最善の「ファイン」コラムであるかが決定され
る。例えば、図21のモデルをとると、内部ポートA
2660がポートトラック2 2636に割り当てられ
るという仮定を行うことができる。次に、ステップ26
18により、最も低いコスト値が内部ポートA 266
0を存在するファインコラムC,CまたはCに割
り当てることから生じるか否かに関してコスト決定が行
われる。
【0109】以上から、内部ポート割当てが最も効率の
よい方法で自動的に行われるセルレイアウト合成または
統合ツールが提供されたことが理解されるべきである。
該ツールは内部ポートの配置を提供するよう自動的に機
能する。図19に示されたプログラムは4つのコスト係
数およびこれらの係数に関連する情報を能動デバイスの
配置を知ることから容易に決定することができる。従っ
て、能動デバイスの配置が与えられれば、本発明は内部
ポートを配置する最適の方法を決定することができる。
これは動的かつ自動的に行われる。また、図19の方法
のために必要とされる他の入力は内部ポートを「スタ
ガ」モードあるいは「非スタガ」モードで配置する機能
を行うべきか否かを選択することである。もし特定の用
途においていずれのモードが最適であるかに関して疑い
があれば、本発明のユーザは両方のモードで首尾よく動
作させかつどれが最もコンパクトな出力レイアウトを生
じるかを決定することができる。
【0110】本発明はユーザに従来セルレイアウト合成
ツールにおいて得られなかった大きな柔軟性を提供する
ことに注目すべきである。例えば、本発明は多様な異な
る形式の能動デバイスと共に使用できる。それはモジュ
ール方式のあるいは非モジュール方式の用途において使
用でき、かつ標準的なセルおよび非標準的なセルのライ
ブラリの用途において使用できる。本発明は能動デバイ
スがどこに配置されるべきかの特定を含む、関連する種
々のパラメータの「リアルタイム」の計算に基づき内部
ポートに対する配置決定を実際に行う点で動的である。
MOSトランジスタ以外の他のデバイスを図21に関連
して説明した他の意図するトランジスタに代えて使用で
きることに注目すべきである。
【0111】D.ダイオード配置 アンテナダイオード(Antenna Diodes)
は静電気放電(ESD)に対して保護するために集積回
路(IC)レイアウトに挿入されるダイオードである。
ESDはトランジスタのゲート端子に接続された長い金
属ライン上の電荷の集積によって引き起こされる。標準
的なセルの場合は、ゲート端子に接続された入力ポート
は最も危険な状態にあり、それはそれらがしばしば長い
金属ワイヤによって他のセルに接続されるからである。
製造の間に、長い金属ワイヤ上のRFはしばしば電荷を
ゲート端子に蓄積させる。該電荷は最終的に放電し、か
つもしこの放電が制御されなければ、集積回路(IC)
はESDがトランジスタにおいてバーンスルー(bur
n−through)ショートを引き起こすため破壊さ
れる可能性がある。アンテナダイオードはしたがって電
気的に長い金属ワイヤに接続されてESDのバーンスル
ーを防止する。それらはそれらの名前を長いICワイヤ
によるRFの相互作用によって引き起こされる「アンテ
ナ」効果から得ている。ICの特徴形状寸法(feat
ures)がサブミクロンの形状へと縮小するに応じ
て、ますます少ない蓄積電荷でバーンスルーおよびショ
ートを引き起こす。形状が縮小するに応じて、アンテナ
ダイオードを使用することはICの歩留まりを維持しか
つ改善する上でますます重要になってきている。
【0112】図22および図23は、メタル1(Met
al−1)ワイヤ2762によって接続されたポート2
760およびアンテナダイオード2764の異なる図で
ある。図22は上から見た図であり、かつ図23はポー
トおよびダイオードの斜視図である。ポート2760は
ポリ層(Poly layer)に配置されている。そ
れはコンタクト2766によりメタル1層2763に接
続されている。ポートコンタクト2766はメタル1ワ
イヤ2762を介してコンタクト2768に接続されか
つ次に拡散エリアに配置されたアンテナダイオード27
64に接続される。アンテナダイオードは基板またはウ
ェル領域に配置することができ、それぞれ基板ダイオー
ドまたはウェルダイオードにつながる。ここで説明され
る方法はまた任意の形式のダイオードを配置するのに適
用できる。
【0113】図24は、アンテナダイオードを配置する
動作を示すフローチャートである。始めに、セルへの全
ての入力ポートが識別される、ステップ2702。次
に、ステップ2703において、ある与えられた入力ポ
ートに対して、使用されるべきダイオードの形式(ウェ
ルまたは基板)が、ダイオードのウェル領域への近接
度、後の段階のコンパクト化に対するダイオードの影
響、およびレイアウトにおける他のデバイスとの相互作
用に基づき、決定される。次に、与えられた入力ポート
に対して、アンテナダイオードのための該ポートの回り
の全ての可能な位置が識別される、ステップ2704。
各々の可能な位置のコストが次に決定される、ステップ
2706。これらのコストは最小コスト関数値によって
位置を選択するために使用される、ステップ2708。
ダイオードが次にこの最小コスト関数値の位置に配置さ
れる、ステップ2710。次にいずれかさらに入力ポー
トがあるか否かに関してテストが行なわれる、ステップ
2712。もしステップ2712においてさらに処理す
べき入力ポートがあれば、ステップ2704,270
6,2708,2710および2712がいずれのポー
トもダイオードを必要としなくなるまで反復される。
【0114】図25は、サンプルレイアウトを示すブロ
ック図である。2つのトランジスタ2722,2724
がある。それらは最終的にワイヤ2728を介して接続
される。ポート2726が2つのトランジスタの間に配
置されている。3つの他のエレメントが示されており、
すなわち側部タイ(Side Tie)2746、2つ
の他のポート2740,2750である。元のポート2
726の回りに、アンテナダイオード2731,273
2,2733,2734,2735,2736,273
7および2738のための8つの可能な位置が配置され
ている。同様に、ポート2750はその回りに8つの可
能な位置2752,2753,2754を有し、かつポ
ート2740はその回りに8つの可能な位置を有し、そ
れらの内の3つは2742,2743,2744であ
る。好ましい実施形態では、可能な位置はポートを中心
とした3×3の正方形に配置されている。しかしなが
ら、他の構造も可能である。「ポート配置」と題する前
の主題において、ポート2740および2750の内の
一方または他方を同じコラムに、しかしながら両方では
なく、配置することが好ましいものであった。ここでは
それらのポート2726との相互作用を示すために両方
が示されている。
【0115】使用されるコスト関数は可能な位置273
1〜2738、および可能な位置およびポート2726
を囲む異なるエレメントの間の相互作用を考慮する。例
えば、可能な位置2737は側部タイ2746からのそ
の距離2747およびトランジスタ2722からのその
距離2748を考慮しなければならない。3つの上部の
可能な位置2737,2738および2731はウェル
からの距離を考慮する必要がある。したがって、もしダ
イオードがウェルダイオードであるものとして選択され
れば、位置2737および2731が好ましいが、ダイ
オードが基板ダイオードであるものとして選択されれば
そうではない。可能な位置2733は位置2742との
その距離2745、および可能な位置2754との距離
2757を考慮する。可能な位置2732は可能な位置
2753との距離2756を考慮する。可能な位置27
31はポート2750の回りの可能な位置2752への
距離、およびトランジスタ2722へのその距離274
9を考慮する。可能な位置2733,2734および2
735からトランジスタ2724への距離のような、他
の相互作用もまた考慮することができる。
【0116】トランジスタ2722および2724は最
終的にワイヤ2728によって接続されるから、配置さ
れるダイオードはいずれの可能な位置2734または2
738にも配置することができない。したがって、これ
ら2つの位置は非常に高いペナルティ値を受けることに
なる。この制約は計画された接続ワイヤ上に位置する可
能な位置に対して非常に大きな重みを割り当てることに
よりコスト関数において実施できる。
【0117】最後に、コンパクト化の検知から他の4つ
の位置よりも四半分またはクォータ位置(quarte
rs)2731,2733,2735および2737が
好ましいことに注意を要する。したがって、非コーナの
(non−corner)可能な位置2732,273
4,2736および2738はコーナでないため不利に
される。この優先はコスト関数において中央(非コー
ナ)位置2732,2734,2736および2738
に不利に重み付けすることにより達成できる。
【0118】種々の相互作用を考慮した、ダイオード配
置のこの自動化された方法は数多くの利点を与える。1
つの重要な利点はダイオードがコンパクト化にとって好
ましい位置に配置されることである。図26は他の装置
との相互作用について充分な考慮なしに悪いダイオード
配置が行なわれた場合に生じ得るものを示すコンパクト
化されたトランジスタレベルの回路レイアウトである。
この場合、ダイオード2800ははるかに右に配置され
なければならない。結果はセルの寸法がもしそのダイオ
ードがいずれか他の好ましい位置に配置された場合に生
じるよりもはるかに大きくなることである。他の重要な
利点はダイオードがコンパクト化の前に配置されること
である。もしダイオードがコンパクト化の後に配置され
れば、1つまたはそれ以上の要求されるダイオードを配
置するためにレイアウトに残された空間がなくなる可能
性がある。この問題に対する通常の解決方法は単にセル
の幅を増大して全ての必要とされるダイオードを収容す
ることである。しかしながら、セルのコンパクト化の後
にダイオードを含める必要性からかなりの量の未使用の
空間が生じる結果となることに注意を要する。
【0119】図26を図27と対照されたい。図27は
アンテナダイオードが図24に示されるダイオード配置
モジュールの動作によって加えられた標準セルのトラン
ジスタレベルの回路レイアウトである。9個のダイオー
ドがレイアウトに挿入されている。9個のダイオードの
位置はそれらが接続されるポートに関連して変動する。
この理由は2つの面を有する。第1に、ダイオードの初
期配置は対応するポートを囲む8つの位置の内の1つと
なる。前に述べたように、始めにそれらをコーナに配置
することが好ましい。第2に、ダイオードはコンパクト
化の前に配置される。図27はコンパクト化の後のセル
に対するレイアウトを示す。
【0120】これはアンテナダイオードを自動的に配置
する最初の知られた構成である。非常に重要なことに
は、ダイオードはコンパクト化の前に配置され、かつし
たがってそれらの配置は、特にそれぞれのトランジスタ
ゲートが保護される必要がある場合に、結果として得ら
れるセルの寸法に悪影響を与えることがない。また、上
記構成は標準セルライブラリを構築する観点から示され
ているが、本発明をそのような構成に限定する理由は何
もない。
【0121】E.性能駆動ルーティングフロー 後に説明するルーティング方法は図4のステップ152
および154に対応する。本発明の方法をより詳細に説
明する前に、ルーティングに関連する問題およびこれら
の問題を解決しようと試みた従来技術の構成について説
明する。
【0122】回路レイアウト合成の間において、ルーテ
ィングはレイアウトされる回路の電気的接続(elec
trical connectivity)にしたがっ
て電気的配線および適用可能な層を使用してNMOSお
よびPMOSトランジスタおよび信号入力/出力ポート
を接続することに関与する。相互接続のために適用可能
な層は通常ポリシリコン、拡散、および金属を含む。こ
の発明はまたメタル2およびメタル3のようなより高い
層に対して適用可能である。ルーティングは最終的なコ
ンパクト化されたセルレイアウトの品質に絶大な影響を
有する。悪いルーティングは増大したレイアウト面積、
貧弱な電気的性能、および低い歩留まりにつながる。例
えば、もしルーティングが結果としてワイヤの不必要な
交差(cross−over)を生じれば、該レイアウ
トに関連する領域が増大するであろう。さらに、もし回
路のルーティングが長いワイヤにつながれば、それはレ
イアウトの電気的性能に悪影響を与える可能性がある。
同様に、冗長なビアはレイアウトの歩留まりに悪影響を
与える。
【0123】従来技術のセルレイアウト合成動作は上に
述べた問題を解決する意図とともに異なるルーティング
方法を行なってきた。従来技術の方法は商業的に入手可
能なセル合成パッケージ、非商業的なもの、出版された
文献、または半導体会社によって使用される内部レイア
ウトツールとして分類できる。商業的に入手可能な従来
技術は通常ルーティングのために利用可能な領域を充分
に利用しないチャネルルーティング技術を使用する。
【0124】さらに、商業的に入手可能な従来技術の構
成はユーザ特定の(user−specified)性
能の制約を考慮しない。そのような性能の制約は重要な
電気的性能要求および歩留まり要求を含む。この考慮の
欠如は古い処理技術にとっては充分なものであるかもし
れないが、遠サブミクロン(deep sub−mic
ron)技術にとっては、これらの性能の制約は重大で
ありかつ必要なものとなる。さらに、商業的に入手可能
な従来技術の構成は特別の要求を備えた相互接続を取り
扱うための備えを提供しない。そのような特別の要求は
クリティカルな(critical)回路のための相互
接続および可変幅エレメントに対する相互接続を含む。
前述のように、これらの従来技術の構成はこれらの性能
の制約および特別の要求を有する回路の効率的なレイア
ウトを行なうための柔軟性ある方法を提供しないことが
分かる。最後に、商業的に入手可能な従来技術の構成は
スタッキングされたトランジスタに対する相互接続を導
くことができない。スタッキングされたトランジスタは
最適のセルレイアウトにとって必須のものとなるから、
商業的に入手可能な従来技術の構成はそのような構成を
セルレイアウトを最適化できないものとしている。
【0125】第2の形式の従来技術の構成では、エリア
ルーティングアルゴリズムの使用によって従来技術の商
業的に入手可能なアプリケーションによって実施される
チャネルルーティングに対して改善を与える文献が出版
されている。しかしながら、そのような出版された文献
においても、性能の制約および特別の要件は考慮されて
いない。これらの従来技術の構成はまたスタッキングさ
れたトランジスタ、内部ポートおよびタイによるレイア
ウトのルーティングを取り扱っていない。したがって、
第2の従来技術の改善されたルーティング方法でも現在
の技術水準のプロセス技術における事項を目指すもので
はない。
【0126】上に述べた従来技術の構成に対して、本発
明はタイミングの性能の制約を尊重しかつ歩留まりを増
大する一方で、セルレイアウトの領域を最適化するルー
ティング方法を提供する。本発明のルーティング方法は
適切なルーティング層における電気的接続または電気的
配線によりトランジスタおよび信号ポートを接続するこ
とを含む。ルータ(router)への入力はレイアウ
トされるべきセルの境界付けボックス(boundin
g box)内で幾何学的位置を有するトランジスタお
よび信号ポートの指定を含む。さらに、前記ルータはル
ーティングのために利用可能な層、各層におけるルーテ
ィングの好ましい方向、および各対のルーティング層に
対するビアのコストに関する情報を与えられる。さら
に、レイアウトされるべき回路のタイミング性能がクリ
ティカルである場合に、その回路に対するタイミング制
約は各回路の相互接続がどれ程クリティカルまたは重大
であるかを示す項目に変換できる。前記相互接続は次に
前記異なる相互接続の相対的な重大性を決定する数値重
みを割り当てられる。例えば、より高い数値重みを備え
たネットはより低い数値重みを備えたネットよりもより
クリティカルである(critical)と規定され、
かつしたがって、より低い抵抗のルーティング層におい
て導かれるべきでありかつより短いルーティング長さを
持つべきである。
【0127】本発明のルーティング方法は図4のステッ
プ152および154において実施される。図28はこ
れらのステップの各々をより詳細に示す。
【0128】図28は多層化した(multi−lay
ered)詳細なエリアルータ(Area Route
r)の動作を示すフローチャートである。そのようなル
ータは産業界において入手可能な広く行なわれているセ
ル合成ツールにおいて通常使用されるチャネルルータ
(Channel Routers)とはかなり異なっ
ている。ここで説明されるエリアルータは各ルーティン
グ層における水平および垂直両方向においてトランジス
タおよびワイヤリングに対してエリア効率のよいルーテ
ィングが行なわれるようにする。この柔軟性は各層のル
ーティングに対し一定不変に固定された方向を有するチ
ャネルルータにおいては提供されない。
【0129】本システムのルーティング方法の最初の部
分の間に、プリルーティング(pre−routin
g)ステップ152が実行される。ステップ152は図
29により詳細に示されている。ルーティングステップ
152の実行の前に、トランジスタおよびポートが図4
のステップ144に関して前に説明した方法を使用して
相対的位置に配置される。同様に、ステップ1502に
おいて、ルーティング層のコスト、およびビアのコスト
が評価のために提供される。ステップ1504において
は、プロセス技術情報も提供される。ステップ1502
のネット重大性またはネットクリティカリティ(net
criticalities)は回路性能に対して重
大であると考えられる電気的接続を含む。そのようなク
リティカルな相互接続は最も短い可能なルーティング長
さを有する接続を使用して電源またはグランド供給導体
に直接接続されるべき供給ノードを含む。さらに、他の
クリティカルな相互接続はステップ152に対して与え
られる情報において特定される速度基準に対して要求さ
れる接続を含む。
【0130】言い換えれば、ネットクリティカリティは
レイアウトされる回路の性能要求に合致するためにその
タイミング要件が必須の全ての回路相互接続を含む。さ
らに、ステップ1502においては、ルーティング層の
コストが本発明によって実施されるルーティングプロセ
スを導くために提供される。ルーティング層のコストは
ある層の上のルーティング方向を案内するために提供さ
れる。さらに、ビアコストもまた提供される。そのよう
なビアコストはルーティング手順の間に1つの層から他
の層へと切り換えるコストを示す。ステップ1502に
おいて提供されるパラメータに加えて、プロセス技術情
報がステップ1504において与えられる。該プロセス
技術情報はその製造技術によって許容される種々の層に
対する詳細を含む。プロセス技術情報の例はその層にお
ける相互接続の最小幅およびその層における2つの相互
接続の間の間隔の最小幅を含む。他のプロセス技術情報
もまた含めることができることに注目すべきである。
【0131】ステップ1504に続き、ステップ150
6はプリルーティングステップ152における最初のス
テップを表わしている。ステップ1506の間に、同じ
ソース/ドレイン信号を共用しかつ互いに隣接するトラ
ンジスタは拡散相互接続を使用してルーティングされ
る。さらに、ステップ1506において、コンタクトが
他のトランジスタへの接続のために拡散に配置される。
トランジスタが拡散相互接続を使用して接続された後、
電源またはグランド供給導体に接続されるトランジスタ
がステップ1508においてルーティングされる。トラ
ンジスタを電源およびグランド供給導体の1つに導く1
つの方法は提供される拡散ワイヤを使用することであ
る。この拡散接続を使用することは拡散のために低い抵
抗率を有するサリサイドまたはシリサイドのプロセスに
おいて特に有用である。さらに、この方法はトランジス
タを金属層における電源およびグランド供給導体に接続
するためにも同様に提供される。
【0132】電源およびグランド供給導体への接続が導
かれた後、ステップ1510において整列されたゲート
相互接続が導かれる。そのような整列ゲート相互接続を
ルーティングする場合、ポリシリコンまたは金属層を性
能要求に応じて使用することができる。例えば、もし高
性能の回路が構成されるべきであれば、ゲート相互接続
はポリシリコンよりはむしろ金属で構成できる。そのよ
うな高性能の回路はここで特定されていない数多くの中
で、インバータおよびバッファを含む。さらに、ステッ
プ1510において、垂直方向および水平方向に整列さ
れたゲートがルーティングできる。ゲートの相互接続の
垂直および水平両方向のアライメントを行なうことがで
きるここに開示された能力は後のステップにおけるより
長いルーティング長さを避ける上で特に有用である。整
列ゲートをルーティングすることに加えて、整列された
ソース/ドレインネットもまたこのステップにおいて、
典型的には金属層において、ルーティングされる。
【0133】整列されたゲートネットがステップ151
0においてルーティングされた後、特別の相互接続がス
テップ1512においてルーティングされる。特別の相
互接続はプロセス技術の最小よりも大きなワイヤリング
資源を必要とするかもしれない。これらはまたセル領域
内で確保されたスペースを要求するが実際にはセル内の
いずれのトランジスタまたは信号ポートへも接続しない
フィードスルー相互接続を含むことができる。
【0134】ステップ1512に続き、プログラムフロ
ーは図28のステップ1402に戻る。ルーティングさ
れたデバイス、ポートおよび相互接続はこのステップの
実行の間に使用するために提供される。ステップ140
2は拡散が存在しない専用のルーティングスペースのチ
ャネル、またはブロックを識別するための方法を提供す
る。さらに、チャネルはまたトランジスタおよび供給導
体の間のスペースを含む。
【0135】チャネルが識別された後、チャネルルーテ
ィング密度がステップ1404において計算される。チ
ャネルルーティング密度の計算は前に詳細に説明してお
りかつその計算手順はこのセクションでは説明しない。
チャネルルーティング密度の計算に関するこれ以上の情
報については「高密度トランジスタ配置」と題するセク
ション“A”および「トランジスタスタッキング」と題
するセクション“B”を参照されたい。基本的には、ス
テップ1404はいずれかのチャネルにおけるルーティ
ングトラックの最小の必要な数を計算しかつその情報を
ステップ1406の実行の間に使用するために提供す
る。
【0136】ステップ1406においてチャネルの初期
スペーシングが決定される。これは、各層に対する最小
幅および最小スペーシングのような、プリルーティング
ステップ152に提供されるプロセス技術情報に基づき
ルーティングトラックを絶対幾何学的スペースに変換す
ることを含む。割当てられるべき初期スペーシングはい
くつかの要因の関数である。2つの専用のルーティング
トラックの間のスペーシングを計算するため、考慮中の
各層に対する最小トラック幅およびスペーシングまたは
間隔ルールが使用される。
【0137】さらに、それらの内の1つはタイによって
占有され得る、2つのトラックの間の初期スペースはタ
イの行の数に垂直タイスペーシングを乗算したものに等
しくセットされる。さらに、タイスペースはタイ構造の
関数であり、タイ構造は該タイが“P”(ウェル)型ま
たは“N”(基板)型タイであるか否かを示すことに注
目すべきである。さらに、タイ構造はプロセス技術情報
によって確立されることに注目すべきである。
【0138】初期スペーシングがチャネルのために割当
てられた後、本発明のエリアルーティング方法がステッ
プ1408において実施される。プリルートされていな
い全ての残りのネットの詳細なルーティングが行なわれ
る。本発明の詳細ルータ(Detailed Rout
er)は方形の形状およびプリルーティングされたワイ
ヤのような障害を乗り越えるために設計された多層エリ
アルータ(AreaRouter)である。各ルーティ
ング層はユーザ特定の好ましいワイヤリング方向および
層においてビアを加えるコストを有する。ワイヤリング
方向およびコストはステップ1502において提供され
る。さらに、ルータはワイヤリングの長さおよびビアの
数の関数であるコストメトリックを最小にするため相互
接続をワイヤリングしようと試みる。各相互接続はタイ
ミング性能に対するその重大性またはクリティカリティ
(criticality)を反映する数値重みに関連
している。したがって、より高い重みを割当てられたネ
ットは比較的低い重みを備えたネットよりもよりクリテ
ィカルである。エリアルーティングステップ1408を
実行するのに必要なステップは図30により詳細に示さ
れている。
【0139】図30においては、提案された相互接続は
ステップ1602において時間重大性要因(time
criticality factor)に基づき順序
付けられる。この順序付けはレイアウトされる回路の電
気的性能の事項に対処するため提供される。本発明はタ
イミング情報を相互接続に対する数値重みに変換するこ
とにより相互接続を順序付ける。この数値重みはステッ
プ1502において提供されかつ本発明のセルレイアウ
ト合成プログラムを使用する外部ユーザによって入力す
ることができる。本発明の一実施形態では、相互接続の
数値重みがより高くなればなるほど、タイミング性能に
対するその重大性がより高くなる。相互接続はそれらの
相互接続重みの単調非増大(monotonicall
y non−increasing)順序でキューイン
グされる。ステップ1602においては、ネットが順次
ルーティングされ、一方より高い重みを備えた相互接続
は始めに処理されかつより低い重みを備えた相互接続は
最後に処理される。この手順を使用することにより、ク
リティカルな相互接続はより短いワイヤスパンとともに
かつ低い抵抗率の層で導かれるよりよい機会を持つこと
になる。クリティカルな相互接続は出力接続、長い相互
接続、整列されたゲート、ドレイン、およびソース相互
接続、および歩留まりに影響を与える相互接続を含む。
数値重みが外部ユーザによって提供されない場合には、
ネットの重大性は自動的に決定される。このため、ステ
ップ1602においては、相互接続はそれらのトポロジ
に基づき順序付けられる。例えば、PMOSおよびNM
OSトランジスタの出力ノードを接続するネット、PM
OSトランジスタのみまたはNMOSトランジスタのみ
を接続するソース/ドレインネット(これらは水平の広
がりを有するが垂直の広がりを持たない)、および垂直
方向に整列されたネット(これらは垂直の広がりを持つ
が水平の広がりを持たない)がより高い重大性を与えら
れる。
【0140】全ての相互接続が時間重大性に基づき順序
付けられた後に、ステップ1604において、ルータは
レイアウト問題をその目標が全てのルーティング層にお
いて使用できるルーティングトラックの数を最大にする
ことである非一様仮想ルーティンググリッドへとマッピ
ングする。前記ルーティンググリッドはルーティングさ
れるべき各層がプロセス技術情報によって決定される異
なるスペーシング要求を持ち得るという意味で非一様
(non−uniform)である。このルーティング
技術の実施はデータ処理技術において良く知られており
かつ“A General Routing Syst
em for VLSI CustomCell La
yout”と題する、1992年にアメリカ合衆国、オ
ースチンにおけるテキサス大学(University
of Texas)に所在する間に出願人すなわち発
明者であるMohan Guruswamyによって書
かれたPhD論文により詳細に説明されている。
【0141】ルータがレイアウト問題を非一様仮想ルー
ティンググリッドへとマッピングした後、ステップ16
06において初期コアースルーティング(Coarse
Routing)が実行される。全ての相互接続のコ
アースルーティングは単一層のルーティングを仮定して
行なわれ、相互接続がそれらの重大性の順序で導かれ
る。このステップにおいて使用される重大性パラメータ
は前に述べた重大性に対応する。初期コアースルーティ
ングステップ1606を実行する上で、メイズルーティ
ング(Maze Routing)アルゴリズムが使用
される。メイズルーティングアルゴリズムはコストメト
リックに基づき相互接続に対する最善のルートを決定す
る。コストメトリックは提案された相互接続ルートに対
する垂直および水平両方のワイヤ長さ、および提案され
たレイアウトから生じる曲がり(bends)、または
コーナの数を含む。前記コストメトリックはまたステッ
プ1602においてユーザによって前に提供された相互
接続の重大性情報を含む。
【0142】初期コアースルーティングがステップ16
06において行なわれた後、ステップ1608において
ワイヤグループがルーティング層に割当てられる。ワイ
ヤ、または電気的接続、の各グループは異なるネットに
属するワイヤが同じ層内で重複しないことを保証する上
で所定のコスト関数を最小にする目的をもって層に割当
てられる。この割当ては前記初期コアースルーティング
動作に基づいている。前のステップと同様に、より高い
重大性を有する相互接続は優先的な層割当てを与えられ
る。クリティカルな相互接続に対しては、できるだけ少
ない層遷移になるべきことが注目される必要がある。各
層遷移は容量を増大しかつタイミング性能を低下させ
る。さらに、クリティカルな相互接続に対しては、低い
抵抗率を有する層を使用することが望ましい。ステップ
1608を実施するため、シミュレーテッド・アニーリ
ング(Simulated Annealing)およ
びタブ・サーチ(Tabu Search)に基づくア
ルゴリズムが使用される。これらのアルゴリズムを使用
する間に、前に説明したように重大性またはクリティカ
リティがコストファクタまたはコスト係数として使用さ
れる。前記シミュレーテッド・アニーリングおよびタブ
・サーチアルゴリズムはデータ処理技術において良く知
られておりかつここではさらに詳細には説明しない。
【0143】ステップ1608においてワイヤグループ
がルーティング層に割り当てられた後、改善されたルー
ティングおよびビア最小化ステップ1610が実行され
る。これは割り当てられた層におけるワイヤ接続を含む
最終的なルーティングステップである。ここで実施され
るルーティング方法の順次的な性質により、いくつかの
相互接続はルーティングコストを最適化するためにより
良好な様式で導くことができる。この可能性を探査する
ため、相互接続がそれらの重大性の順序で、1度に1つ
除去されかつより良好なルートを得るために再ルーティ
ングされる。さらに、このステップの実行の間に、層の
間の遷移の数を最小にし、冗長ビアを最小にし、かつ可
能な場合に相互接続長さを短縮するための試みがなされ
る。ルーティングが改善されかつ適切なエレメントが最
小化された後、ステップ1612は結果として得られた
ルーティングが受入れ可能か否かを判定する。もし結果
として得られたルーティングが受入れ可能であれば、ル
ーティング解(Routing Solution)が
提供される。もしそうでなければ、プログラム制御はス
テップ1608に戻り最適のルーティング構造を発生す
る試みにおいてワイヤグループをルーティング層へと再
割当てし続ける。
【0144】ルーティング解が計算された後、それはス
テップ1410に提供され該ステップはすべての相互接
続がルーティングされたか否かを判定する。もしすべて
の相互接続が正しくルーティングされていなければ、本
発明がすべての相互接続をルーティングできるようにす
るためステップ1420および1422が実行される。
前記エリアルータ(Area Router)は、コン
ポーネント配置ステップ144において得られた評価ま
たは推定に基づき決定される、固定されたスペースでル
ーティング動作を行う。実際のルーティングスペース要
求の非予測可能性(non−predictabili
ty)のため、エリアルータは少しの相互接続を導くよ
うにすることが可能である。この場合、本発明の方法は
ルーティングトラックの数の関数として測定される所定
の量でルーティングが行われる領域の拡張を可能にす
る。ルーティング領域のシステム的な拡張を達成するた
め発見的方法が使用される。この拡張動作は、ステップ
1420および1422を含み、「ルーティングスペー
スおよび方向決定」と題する以下のセクション“F”に
おいてより詳細に説明する。
【0145】もしすべての相互接続がルーティングされ
なければ、所望の数のエリアルーティングのトライアル
が試みられたか否かを判定するためステップ1412が
実行される。ステップ1412においてルーティング解
がさらにトライアルを行うことによって一層改善できる
ことが判定されれば、ステップ1416が実行される。
そのステップにおいては、ルーティングコストおよびビ
アコストが変更または修正される。コスト変更の後に、
エリアルーティングステップ1408が新しいコストと
共に行われる。従って、エリアルーティングステップ1
408は新しいルーティング解を提供する。ステップ1
408,1410,1412および1416が特定され
た反復数に対して繰り返されてひと組のルーティング解
を提供する。ステップ1414はその後エリアルーティ
ングステップ1408によって提供された前記ひと組の
解から最善のルーティング解を選び取る。このため、各
々のルーティングされた解は、ルーティングされた解の
品質を測定する、それに関連するソリューションコスト
(solution cost)を有する。最小のルー
ティング解コストを備えた解につながるトライアルが最
終的なルーティングされた解であるとして選び取られ
る。該ルーティング解コストは、とりわけ、すべての層
のルーティングにおける相互接続ワイヤの合計長さ、ル
ーティングにおいて使用されるビアの合計数のようなパ
ラメータを含む。
【0146】このセクションにおいて説明されるシステ
ムの動作は高いルーティングエリア利用性を保証する上
で非常に有用である。このシステムのそれぞれの段階に
おいて、それらのタイミングが合成される回路の電気的
性能にとって重大である相互接続に対して注意が行われ
る。さらに、前記ルータは単に専用のチャネルにおいて
のみではなく、トランジスタ装置の上においてもルーテ
ィングすることにより可変領域のより良好な利用を可能
にする。この特徴は現在商業的に入手可能なアプリケー
ションでは得られないものである。さらに、このシステ
ムは可変幅の相互接続が実施できるようにする柔軟性あ
る解を提供する。他の強力な特徴は個々の相互接続レベ
ルにおけるタイミングの制御である。さらに、システム
はアンテナ、ダイオードおよびタイのような特別の構造
へのルーティングを可能にする。また、該システムはセ
ル境界の上にあるポートに対し、ならびにセル境界内の
ポートに対しルーティングを可能にする柔軟性ある方法
を提供する。
【0147】F.ルーティングスペースおよび方向決定 前に述べたように、MOS回路レイアウト合成における
3つの重要なステップはトランジスタの配置、相互接続
のルーティング、およびレイアウトにおける結果のコン
パクト化である。ルーティングステップは回路の電気的
接続性に従って適用可能な層におけるワイヤを使用して
NMOSおよびPMOSトランジスタおよび信号入力−
出力ポートを接続することを含む。前記適用可能な層は
ポリシリコン、拡散、および多層金属を含む。典型的に
は、ある層の上のルーティングは1つの方向に行われ
る、しかしながら、この問題の複雑な性質のためルーテ
ィングの前に種々の層へのルーティング方向の割当てを
決定するのは困難である。同様に、回路のルーティング
を完成させるために必要とされるスペースを予測するこ
とも困難である。ルーティングに必要なトラックの数の
下側境界はトランジスタおよびポートの配置から推定で
きるが、しばしばルーティングを完成させるために必要
とされるトラックの実際の数はこの下側境界よりも大き
くなる。従って、本発明は必要な場合にルーティングの
ために利用可能なスペースを動的に増大するシステムを
構成する。
【0148】商業的に入手可能な従来技術の構成は層に
対して固定されたルーティング方向を実施しかつ強制す
る。これらの方向は各層の接続が水平方向にのみまたは
垂直方向にのみ可能であり、かつ2つは同じ層で混合す
ることができない点で固定されている。例えば、金属層
は垂直方向のワイヤのみを含むことができる。このルー
ティング方向の厳格な強制は利用可能なルーティングス
ペースの効率的な使用を行わない。従来技術の商業的に
入手可能なアプリケーションの硬直性はさらに各層に対
するルーティング方向が回路レイアウトツールの製造者
によって決定されかつ外部ユーザによってそのユーザの
回路と共に使用するためにより大きな最適化を与えるた
めに変更することができないことによって示されてい
る。1つのセルのレイアウトは一組の方向でレイアウト
された層によってより良好にレイアウトすることができ
るが、一方他のセルのレイアウトは第1のセルのレイア
ウトにおけるものに対し直交する方向でレイアウトされ
た対応する層の上のワイヤによってより最適にレイアウ
トできるかもしれないことに注目すべきである。さら
に、商業的に入手可能な従来技術の構成はセルが与えら
れたスペースでルーティングできないことが判定された
場合にルーティングチャネルを自動的に拡張するもので
はない。それらはルーティングの不首尾の位置を決定し
かつその情報を拡張の領域をみつけるために使用する能
力をもっていない。
【0149】ルーティングは典型的にはマンハッタンス
タイル(Manhattan style)のルーティ
ングを達成するために各層に対して好ましいルーティン
グ方向、水平または垂直、を含んでいる。本発明におい
て実施される方法は所定のルーティングコストメトリッ
クによって測定される最善のルーティング解が発生され
るように各層に対する好ましいルーティング方向の自動
的な選択を可能にするルーティングシステムを構成す
る。
【0150】さらに、自動化されたルーティングアルゴ
リズムへの入力の1つは本発明のルータが回路の相互接
続を完成させるために使用する固定された数の水平ワイ
ヤリングトラックである。利用可能なトラックの数はル
ーティングのために利用可能なスペースを決定する。ワ
イヤリングトラックの数はステップ144においてトラ
ンジスタおよびポートの配置に基づきルーティングの前
に評価または推定される。しかしながら、非常にしばし
ば、必要とされるトラックの実際の数は推定される値よ
りも大きく、それは必要とされるトラックの正確な数の
推定はルーティング問題の複雑な性質のため決定するの
が困難であるからである。前に述べたように、開示され
たシステムはルーティングのために利用可能なスペース
が自動的に増大される方法を実施する。これは本発明の
ルータが与えられたルーティングスペースにおいて相互
接続を完成させることができない場合には常にシステム
的な方法でルーティングのために利用可能な領域を拡張
することによって達成される。
【0151】このシステムの動作の間において、ルーテ
ィング段階は適切なルーティング層におけるワイヤによ
ってトランジスタおよび信号ポートを接続することを含
む。これらの層はポリシリコン、拡散および金属層を含
む。典型的には、各々のルーティング層はマンハッタン
スタイルのルーティングに対して水平または垂直方向で
ある好ましいルーティング方向を割り当てられる。前記
システムにおいて使用されるルータは各層に対する好ま
しいルーティング方向を自動的に決定するエリアルータ
であり、従って合計のワイヤ長さおよびビアの合計数の
関数として測定される、総合のルーティングコストメト
リックが最小化される。本発明のエリアルーティングス
テップは図4のステップ154において実施される。
【0152】図28は、各層に対する好ましいルーティ
ング方向の選択を自動化しかつより多くのルーティング
スペースを提供することによりルーティングの完成を保
証するために使用されるシステムの概略を示すフローチ
ャートである。該エリアルータはある与えられた数のト
ラックを使用してルーティングコストメトリックの値を
最小にする目的で好ましいルーティング方向に基づき回
路をルーティングする。もし該システムが回路を完全に
ルーティングできなければ、ルータは後に説明する戦略
を使用してワイヤリングのために利用可能なスペースを
増大するループに入る。スペースが増大された後、ルー
タは再び回路をルーティングすることを試みる。上で言
及したループは図28のステップ1420および142
2に対応する。
【0153】ルーティング領域の拡張はステップ141
0において判定されるようにレイアウトされるべき回路
が首尾よくルーティングされるかあるいは可能な拡張の
限界に到達するまで反復して実行される。ルーティング
解に対応するルーティングコストメトリックの値、C、
が記憶される。次に、ステップ1416において、各層
に対するルーティング方向が転換またはひっくり返され
る(flipped)。言い換えれば、もしある層の好
ましいルーティング方向が水平であれば、それは垂直に
セットされかつ逆も同様である。ルーティングのプロセ
ス、ステップ1408、およびルーティング領域拡張、
ステップ1420、および1422、が新しい組の好ま
しい層の方向と共に次に反復される。転換された層方向
における最終的なルーティング解に対応するコストメト
リックのルーティングの値、Cf、が決定される。2つ
のルーティングコスト、CおよびCf、の最善のものが
本発明のルータによって提供される最終的な解のために
使用される好ましいルーティング方向を決定する。この
決定ステップは図28のステップ1414に対応する。
この場合、示されているように、2つの異なるルーティ
ングコスト構成またはルーティング方向が試みられるこ
とに注目すべきである。しかしながら、ここに説明され
た方法は2つのルーティングコスト構成に限定されるの
ではなく、複数のコスト構成によっても同様に動作す
る。複数のルーティングコスト構成の設定の場合は、ス
テップ1414はすべての異なるルーティング結果の内
で最善のルーティング解を選び取る。
【0154】図28に見られるように、すべての相互接
続がいずれかのルーティングコスト構成に対して導かれ
なければ、ステップ1420および1422が実行され
る。ステップ1420の間に、拡張されるべきチャネル
が識別される。ステップ1420は図31のステップ1
701,1704および1706においてより詳細に示
されている。識別されたチャネルの拡張の実行の最初の
ステップ1702においては、回路に対するレイアウト
領域全体は図33に示されるようにPMOSおよびNM
OSトランジスタの各々の行対に対して3つのルーティ
ングチャネルに分割される。これらの3つのチャネルは
(A)PMOSトランジスタおよび電源導体の間の領
域、(B)NMOSトランジスタおよびグランド導体の
間の領域、および(C)NMOSおよびPMOSトラン
ジスタの間の領域である。その後、各チャネルの垂直方
向の広がりまたは範囲(vertical exten
t)、A,BおよびC、が決定される。垂直方向の広が
りは選択されたチャネルの尺度である。
【0155】次に、拡張されるべきチャネルを識別する
ため、図31のステップ1704は本発明のルータが相
互接続しなかった相互接続端子を決定する。次に、ステ
ップ1706において、領域A,BまたはCから相互接
続端子に最も近い専用のルーティングチャネルが識別さ
れたチャネルとしてマーク付けられる。その後、ステッ
プ1420から、プログラムフローはステップ1422
に移される。
【0156】拡張ルーティングチャネルステップ142
2が図31および図32のステップ1708,1710
および1712においてより詳細に示されている。ステ
ップ1708においては、拡張のために識別されたチャ
ネルが考慮される。この考慮手順を実行するため、「カ
ットライン(cut−line)」がステップ1710
においてこのチャネルを通って引かれる。そのようなカ
ットラインは図32において3301,3302および
3303として表されている。次に、ステップ1712
において、この「カットライン」の上に横たわるレイア
ウトのすべての対象物またはオブジェクトが1つまたは
それ以上のルーティングトラックだけムーブアップまた
は移動される(moved up)。前記対象物または
オブジェクトが移動される量はプリルーティングステッ
プ152において提供されるプロセス技術情報に基づ
く。例えば、1つのルーティングトラックはそれがその
上に実施されている層の1つのトラックに対して必要と
される幾何学的スペースに変換される。
【0157】上で述べた3つのステップ、1420,1
422および1408、の各々は反復して行われる。ス
テップ1422の手順はもしすべてのネットが完全にル
ーティングされるか、あるいは拡張領域の限界に到達す
れば終了する。この終了条件はステップ1410でチェ
ックされる。
【0158】ここで説明されたルータはそれぞの必要な
エレメントに対するルーティングスペースをシステム的
な方法で加えてレイアウトされる回路のルーティングの
完了を保証する能力を有している。従って、本発明は絶
対的に必要とされるだけのトラックが隙間なく集積され
たルーティングシステム内で回路のルーティングを完了
できるようにする。この柔軟性は完全に自動化された方
法で最適のレイアウトを得るために効果的にルーティン
グ動作を完了できるルーティング動作を生じる。ここで
説明した実施形態は垂直寸法のルーティング領域の拡張
を取り扱っているが、本発明は水平方向の寸法において
も同様にルーティング領域の拡張を可能にする。そのよ
うな場合、前記「カットライン」は垂直でありかつ対象
物は水平方向に移動される。
【0159】さらに、本発明はルーティングコストメト
リックに基づきひと組の最善の方向を選び取るために種
々のルーティング層のルーティング方向を自動的に変更
することによりセルのレイアウトが最適化されるように
する。本発明はこの柔軟性をステップ1416の使用に
よって実施する。図33は、ステップ1416によって
実行される機能性をより詳細に示すフローチャートであ
る。ステップ1416によって実行される第1の機能に
おいては、回路レイアウトに関連するルーティングが探
査される。ステップ1806において図33に示された
方法でルーティングコストが規定される。各層の回路レ
イアウトは3つのコストに関連しており、すなわち、水
平コストH、垂直コストV、およびビアコストCであ
る。もし水平コストHが垂直コストVより小さければ、
この関係は評価または推定されている層に対するルーテ
ィングの好ましい方向は水平であることを示している。
ビアコストCは1つの層から他の層への切り換えに関連
するペナルティを示している。ビアコストは各対の層に
対して変わることに注目すべきである。さらに、水平コ
ストおよび垂直コストの値は外部ユーザにより入力され
あるいはシステムにより決定できることに注目すべきで
ある。
【0160】ルーティングコストが規定された後、これ
らのコストを修正するために採用される2つの方法があ
る。この方法は図33のステップ1808により詳細に
示されている。第1の方法では、水平および垂直ルーテ
ィングコストが転換されまたはひっくり返される(fl
ipped)。言い換えれば、もしある層に対する好ま
しい方向が垂直であれば、それは水平にセットされ、か
つ逆も同様である。ルーティングコストを修正するため
の第2の方法では、各層に対する水平および垂直方向に
対する相対的コストが前記反対方向の前の値に必ずしも
関連しない他の値に変更される。説明の目的で、垂直方
向は水平方向の反対(opposite)であり、かつ
水平方向は垂直方向の反対であることに注目すべきであ
る。さらに各層の対に対するビアコストもまた修正でき
ることに注目すべきである。その後、修正されたルーテ
ィングコストがステップ1408のエリアルータに提供
され、該ステップは前記新しい組のコストに基づきルー
ティングを行う。その後、ステップ1414が実行され
て最善の解を決定する。
【0161】本発明のこの部分は必要な場合にのみルー
ティングスペースを増大する方法を提供する。さらに、
本発明は領域または面積が最適化されるようにルーティ
ング方向のある層を自動的に選択する方法を提供する。
従って、本発明のルータは利用可能な領域のより良好な
利用を可能にする。同様に、本発明はトランジスタの上
をかつポートまたはタイへとルーティングできるように
し、かつ従来技術の構成のチャネルルータよりも大幅に
少ないコンタクトを生じる結果となる方法を実施でき
る。
【0162】G.グリッド化ポートのためのワイヤ最小
化 CMOS回路レイアウトにおける信号の入力および出力
(I/O)ポートは特定のグリッド位置上に配置される
ことが要求され、すなわち、ポートのXおよびY座標は
特定されたグリッドサイズの整数倍でなければならな
い。これはクリティカルな合成ステップとしてレイアウ
トコンパクト化およびワイヤ最小化を使用する、自動レ
イアウト合成において意味がある。
【0163】この発明はワイヤ長さ最小化(Wire
Length Minimization)の間にユー
ザが特定したグリッドの上に入力および出力信号ポート
を自動的に配置することを目指している。ワイヤ長さ最
小化はレイアウト合成のレイアウトコンパクト化プロセ
スにおける主たるステップである。(ここで開示されて
いるような)自動セル発生の間におけるユーザが規定す
るポートのグリッドは「配置およびルーティング(Pl
ace and Route)」ツールによる標準セル
のブロックレベルのルーティング可能性を容易に可能に
することを目指している。ワイヤ長さ最小化の間に、ポ
ートグリッド位置はレイアウトにおけるネットの対応す
る重み付けされたワイヤ長さが入力および出力(I/
O)ポートに対してユーザが特定したグリッド位置に違
反することなく最小化されるように選択される。この手
順はセルレイアウト合成プロセスを完全に自動化しかつ
デジタル集積回路(IC)を設計する上で使用されるべ
き最小の寸法の標準セルライブラリを作製するために必
須のものである。
【0164】コンパクタ(Compactor)は記号
的(symbolic)レイアウトからまたは(おおざ
っぱに設計された)物理的レイアウトから最小の領域を
占有する設計ルール的に正しい(design−rul
e−correct)物理的レイアウトを発生するため
に使用されるCADツールである。1次元の制約または
拘束グラフをベースとしたコンパクト化(Constr
aint−Graphbased Compactio
n)においては、コンパクト化問題は2つの独立のコン
パクト化に分離され、1つはX方向においてかつ1つは
Y方向におけるものである。各々のコンパクト化のため
に、物理的接続および分離の拘束または制約を表す拘束
グラフが発生される。次に、該グラフは最長(またはク
リティカル)パス方法を使用してレイアウト面積を最小
にするよう解かれる。
【0165】前記拘束グラフにおいては、各々のレイア
ウト要素は頂点(vertex)で表され、かついずれ
か2つの要素の間の物理的接続、サイズ、および分離の
拘束は対応するグラフの頂点の間のエッジによって表さ
れる。拘束グラフの例が図44に示されている。コンパ
クト化はY方向に底部から頭部へとまたは下部から上部
へと行われる。コンパクト化または圧縮の方向におけ
る、拘束グラフによって表される、レイアウトの最小の
達成可能な寸法は拘束グラフの最長の(またはクリティ
カルな)パス(単数または複数)によって決定される。
クリティカルパス(Critical Path)上の
頂点は「クリティカルな」頂点として知られておりかつ
セル寸法を限定しない頂点の残りは「ノンクリティカル
(Non−Critical)」頂点として知られてい
る。ノンクリティカルな頂点は固有のスラックまたはゆ
るみ(slack)を有する。ある頂点のスラックはソ
ース頂点(Source Vertex)からのその最
大および最小の距離の間の差として規定される。クリテ
ィカルな頂点に対しては、前記最小および最大距離は等
しく、かつ従ってスラックは定義によりゼロである。
【0166】ここに開示される1次元のコンパクタにお
いて使用される最長(またはクリティカル)パスアルゴ
リズムは(ノンクリティカルな頂点を含む)すべてのレ
イアウト要素をレイアウト境界の1つから最小の可能な
距離へと移動する。入力および出力(I/O)ポートは
前記境界から最も近い可能なグリッド位置上に配置され
る。従って、すべてのレイアウト構成要素はレイアウト
の上部または左エッジに向かって引かれ、結果としてコ
ンパクト化方向に走るワイヤの延長を生じる。ワイヤの
延長は寄生容量および抵抗の増大のため電気的性能の低
下につながる。また、これらの延長されたワイヤはその
後のコンパクト化の間におけるレイアウト要素の直交す
る方向での移動を阻止することにより総合的なレイアウ
ト領域を増大する可能性がある。
【0167】ここに開示される「ワイヤ長さ最小化」方
法の1つの重要な目標はノンクリティカルなグラフの頂
点に対するコンパクト化方向に応じて軸に沿った位置を
選択し、この場合セルの寸法を増大することなく、いず
れの設計ルールの拘束およびオングリッド要求に違反す
ることなく対応する総合的な重み付けされたワイヤ長さ
を最小にすることである。ワイヤ最小化はグラフにおけ
るすべての頂点に対して最小および最大位置を決定する
ためにグラフを解いた後に行われる。
【0168】コンパクト化の間にグリッド位置の上に配
置されるポートのようなレイアウト要素に接続される相
互接続のワイヤ長さを最小にすることが重要である。こ
れらのポートのいくつかは与えられた拘束または制約を
満たすことができる1つより多くのグリッド位置をもつ
かもしれない。これらのポートをワイヤ長さ最小化の間
に他のグリッド位置に移動するためのメカニズムを提供
することにより、より良好な結果が達成できる。他のレ
イアウト要素と異なり、ポートはしばしば特定のグリッ
ド位置上に、すなわち、スラック領域におけるグリッド
寸法の整数倍で配置される必要がある。
【0169】グリッド上に配置されなければならない要
素はコンパクト化の間に「オングリッド(On−Gri
d)」としてマーク付けられる。もし頂点グループにお
ける1つまたはそれ以上の頂点がオングリッド要素であ
れば、該頂点グループはグリッドサイズの整数倍によっ
てのみ移動されるべきである。図46、図47および図
48においては、もしポートC 2568がグリッド上
に配置されなければ、それはワイヤB 2564が絶対
的にまっすぐとなるよう移動することができ、それによ
って最小の長さを生じる結果となる。しかしながら、も
しそれがグリッド2560上に配置されていれば、それ
は(他の要素に沿って)2つのグリッドポイントだけ下
に移動することができる。図46のコンパクト化された
レイアウトでスタートすると、オングリッド要素の移動
を許容しないコンパクタおよびワイヤミニマイザ(Wi
re Minimizer)によって発生されたレイア
ウトが図47に示されており、かつオングリッド要素が
移動される場合は図48に示されている。図47に示さ
れるレイアウトにおいては、コンパクト化または圧縮の
間のポートの初期オングリッド配置はワイヤ最小化フェ
ーズの間に変更されない。達成されるワイヤ最小化はオ
ングリッドポートが図48に示されるように新しい位置
に移動される場合により高くなる。
【0170】発行された文献では、ワイヤ長さの最小化
は特定のグリッド上に横たわる必要のないレイアウト形
状に制約されている。CadenceのVirtuos
oLayout Synthesizer(LAS)お
よびSilicon Compiler System
sのExplorer AutoLayoutツールの
ような商業的に入手可能なツールでは、最終的にグリッ
ド上に配置されるレイアウトパターンに対してワイヤ最
小化が行われるという形跡はない。
【0171】図34、図35、図36および図37は、
コンパクト化における4つの異なるレベルのまたは段階
を示す標準セルレイアウトに対するものである。これら
はコンパクト化プロセスを説明するために使用される。
図34は非圧縮またはアンコンパクト化(un−com
pacted)レイアウトを示す。
【0172】図35は1つの方向または寸法でコンパク
ト化された図34に示されるレイアウトを示す。この場
合、コンパクト化はX方向において達成されており、す
べての要素を左に圧縮している。ワイヤ最小化はまだ行
われていない。
【0173】図36は、ワイヤ最小化が達成された後の
図35に示されるコンパクト化されたレイアウトを示
す。コンパクト化およびワイヤ最小化は数回反復するこ
とができ、始めに1つの方向で、かつ次に他の方向で、
そして第1の方向に戻って行うこともできる。図37に
示される結果はXおよびY両方向に少なくとも1度コン
パクト化およびワイヤ最小化を行った後のレイアウトで
ある。
【0174】図38は、図4のステップ156に示され
たコンパクト化または圧縮の動作を示すフローチャート
である。開始コンパクト化方向がステップ2502にお
いて決定される。レイアウトは始めに、外部パラメータ
によって決定されてXまたはY方向でコンパクト化され
る。これは図9のステップ191,192および193
において決定される。好ましい実施形態では、コンパク
ト化プロセス全体は通常少なくとも2回、1回はX方向
でスタートし、かつ1回はY方向でスタートして、行わ
れる。
【0175】ステップ2502において開始方向を決定
した後、レイアウトはステップ2504において選択さ
れた方向でコンパクト化される。ステップ2504にお
ける、選択された方向でのコンパクト化の後に、ステッ
プ2506においてコンパクト化が完了したか否かのテ
ストが行われる。もしステップ2506においてコンパ
クト化がまだ完了していなければ、コンパクト化方向が
変更される、ステップ2508。X方向のコンパクト化
はY方向のコンパクト化に変更され、かつ逆も同様であ
る。結果的にルーチンはX方向およびY方向でのコンパ
クト化の間であちこちに切り換える。
【0176】ステップ2506に戻ると、好ましい実施
形態では、ループは4回まで反復される。もしレイアウ
トが始めにX方向でコンパクト化されれば、ループは3
回反復され、X,YおよびX方向でコンパクト化され
る。しかしながら、もしレイアウトが始めにY方向でコ
ンパクト化されれば、それはY,X,YおよびXの順序
でコンパクト化される。常にXコンパクト化で終了する
理由はいったん標準セル高さが適合すると(これはYコ
ンパクト化の結果である)、最後のX方向のコンパクト
化はセル幅を最小にするため行われるからである。他の
実施形態は収穫逓減(diminishing ret
urns)のポイントに到達するまでXおよびY方向の
間で反復することである。例えば、X方向でコンパクト
化しかつ次にY方向で行い、かつ次に結果として得られ
たレイアウトの寸法をYおよびX方向において前のコン
パクト化から得られたレイアウトと比較し、何らかの改
善が最小しきい値より低い場合に停止する。あるいは、
各々のXコンパクト化を前のXコンパクト化に対して調
べ、かつもしコンパクト化が最小しきい値より上で行わ
れておれば、YおよびXコンパクト化が次に実行され
る。
【0177】図39はステップ2504における選択さ
れた方向でのコンパクト化の動作を示すフローチャート
である。始めに、ステップ2512において、レイアウ
トは頂点およびエッジからなるグラフへとマッピングさ
れる。各グラフの頂点はレイアウト要素(elemen
t)を表す。ステップ2514において設計ルールの制
約または拘束がグラフエッジとして加えられる。ステッ
プ2516においてコンパクト化の方向における最小領
域に対し制約グラフ(Constraint−Grap
h)が解かれる。図34および35に戻ると、このステ
ップは図34から図35への遷移を示している。図35
においては、すべての要素はそれらがいずれかの設計ル
ールに違反することなく可能な限り左にコンパクト化さ
れている。これはX方向のコンパクト化である。この形
式の1次元のコンパクト化の技術はよく知られている。
1つの実施形態はクリティカルパスまたは制約グラフを
通るパスを見つけ、次にノンクリティカルパス上にある
頂点に対するスラックを決定し、次にそれらの位置をそ
れらの最小値にセットすることにより動作する。前記ク
リティカルパスは制約グラフを通る最も長いパスであ
り、かつ定義によりスラックを含まないものであること
に注意を要する。また、図34および図35の間で左へ
コンパクト化することによって示されているように、領
域の最小化が達成されることに注意を要する。左へ、か
つレイアウトの頭部への代わりに、レイアウトを右へ、
かつ底部へコンパクト化することにより、比較できる領
域最小化技術が達成できる。
【0178】ステップ2516において、最小領域に対
するグラフを解いた後、ステップ2518においてワイ
ヤ長さが最小化される。ワイヤ長さ最小化ステップ25
18の結果は図35および36の間の遷移において見る
ことができる。図36におけるワイヤは総合的な重み付
けされたワイヤ長さを最小にするため、最小化されかつ
まっすぐにされている。もしワイヤ長さが図36に示さ
れるように最小化されなければ、その後のY軸のコンパ
クト化はずっと大きな最終レイアウトを生じる結果とな
るであろう。
【0179】図40は、ステップ2518からのワイヤ
長さ最小化機能の動作を示すフローチャートである。こ
の機能は、ステップ2522において、前記グラフの各
々のノンクリティカル頂点に対し重みを割り当てること
によって開始する。各々の重みの符号付きの大きさは対
応する頂点が移動される場合にワイヤ長さが増大される
かあるいは低減されるかを表す。該重みは頂点の間の対
応する相互接続に対する寄生負荷を表しかつ該寄生負荷
の関数である。
【0180】次に、ステップ2524においてグラフか
らツリー構造が構築される。該ツリーはノンクリティカ
ルなエッジによって頂点としてのレイアウト要素を接続
して構築される。1つの結果はクリティカルパス(単数
または複数)上の頂点を接続する1つまたはそれ以上の
サブツリーがあることになる。
【0181】ステップ2524においてグラフからツリ
ー構造が構築された後、サブツリーの1つが選択され
る、ステップ2526。それはクリティカルパス上に位
置する頂点において定着される(rooted)。特定
された頂点において定着されたサブツリーの総合的な重
みが計算される、ステップ2528。次に該総合的な重
みが負であるか否かが試験される、ステップ2530。
もしステップ2530において、該総合的な重みが負で
なければ、前の2つのステップ、2526,2528、
が反復される。そうでなければ、ステップ2532にお
いて該サブツリーに対するローカルスラック(loca
l slack)が検出され、該ローカルスラックの符
号が調べられる、ステップ2534。もし該ローカルス
ラックがステップ2534において正でなければ、前の
ループステップ2526,2528,2530および2
532が反復される。そうでなければ、ステップ253
6において、前記サブツリーにおいていずれかの頂点に
対する何らかのグリッド制約があるか否かが調べられ
る。もし制約があれば、ステップ2538において、オ
ングリッドスラックが計算される。いずれの場合も、サ
ブツリーがスラック距離だけ移動される、ステップ25
40。最後に、これが最後の頂点であるか否かが調べら
れる、ステップ2542。もしそれが最後の頂点でなけ
れば、ステップ2542、前の8つのステップ2526
〜2540が反復される。そうでない場合は、ワイヤ長
さ機能は完了し、かつステップ2518への戻りが行わ
れる。
【0182】図41は、ステップ2532におけるロー
カルスラック検出機能を示すフローチャートである。始
めに、S,S,…,Sがサブツリーにおけるすべ
ての頂点のローカルスラック(Local Slack
s)であるものとして規定される、ステップ2546。
あるサブツリーにおける頂点のローカルスラックは該サ
ブツリーの部分でない頂点を移動させることなくそれが
移動できる最大距離として定義される。該サブツリーの
ローカルスラックは次に該ローカルスラックの最小値に
セットされる(すなわち、ローカル_スラック=MIN
(S,S,…,S))、ステップ2548。
【0183】図42は、ステップ2538における「オ
ングリッドスラック計算」ルーチンの動作を示すフロー
チャートである。始めに、G,G,…,Gがステ
ップ2552においてサブツリーのすべての頂点のグリ
ッドであるものとして規定される。次に、Mがステップ
2554においてG,G,…,Gの最小公倍数
(LCM)にセットされる(すなわち、M=LCM(G
,G,…,G))。最後に、オングリッドスラッ
クがステップ2556において前記ローカル_スラック
から前記ローカル_モジュロMを減算したものにセット
される(すなわち、オン_グリッド_スラック=ローカ
ル_スラック−(ローカル_スラックMOD M))。
この場合、エレメントがオングリッドであるよう制約さ
れない連続的なケースはグリッドサイズが最小データベ
ース粒度(minimum database gra
nularity)に等しい場合として処理できること
に注目すべきである。
【0184】図43は、簡単なレイアウトの例を示す。
図44は図43におけるレイアウトの制約グラフ表現で
ある。ソース、V,V,V,V、およびシンク
の間の点線のエッジはクリティカルパスを識別させてい
る。該グラフの各頂点は図43におけるレイアウト要素
を表している。図45は図44の頂点に対応する頂点の
重みおよびグリッド要件を示すテーブルである。
【0185】図46,47および48はワイヤ最小化を
示す簡単なレイアウトである。これら3つのレイアウト
はそのフェーズの間にオングリッド要素が、これらの要
素に対するオングリッド要件を維持する一方で、移動で
きるようにするメカニズムを提供するいくつかの利点を
示すために使用される。
【0186】図46は、ステップ2516におけるコン
パクト化の後であるが、ステップ2518における、ワ
イヤ最小化の前のレイアウトを示す。該レイアウトは2
つのワイヤ、すなわちワイヤA 2562およびワイヤ
B 2564を有する。これらの図において移動されな
い、ポートのような、2つの要素2566がある。ま
た、グリッドライン2560上に位置するI/Oポート
2568がある。コンパクト化の方向は上、2558、
である。ワイヤBに対する、2565、およびポートC
に対する、2569、スラックもまた示されている。
【0187】図47はI/Oポート2568が移動する
のが許されない場合におけるワイヤ最小化を示す。せい
ぜい、ワイヤB 2564はI/OポートC 2568
の頭部エッジからI/OポートC 2568の下部エッ
ジへと移動できるのみである。
【0188】図48は、ワイヤ長さを最小にするために
I/Oポート2568が他のグリッド位置2560に移
動できるようにするメカニズムを提供する効果を示して
いる。ワイヤB 2564の垂直寸法2567に注目す
べきである。それは図47におけるものよりも図48に
おいてはるかに短くなっている。これはI/OポートC
2568を2グリッドライン2560下に移動した結
果生じる。ワイヤB2564は従ってI/OポートC
2568が図46においてその上に位置したグリッドラ
イン2560とそれが図48において位置したグリッド
ライン2560の間の間隔だけほぼ短くなっている。
【0189】図49および図50は合わせてオングリッ
ドポートを備えた標準セルにおけるワイヤ最小化の利点
を示す。双方の図面において、メタル1から作成され
た、VDDに対する頭部導体2570およびグランドに
対する底部導体2571がある。4つのI/Oポート2
572がある。該ポートはメタル1ワイヤ2574によ
って接続されている。このレイアウトはまたポリワイヤ
2576および拡散領域2578を含む。
【0190】図49はI/Oポート2572を移動しな
いワイヤ最小化を示す。図50はワイヤ最小化の間にポ
ートが移動されたワイヤ最小化を示す。この結果、メタ
ル1ワイヤ2574および3つのポリワイヤ2576が
図49に比較して図50においては大幅に短くなってい
る。これはポートを他のグリッド位置に移動できるよう
にしたことに起因する。より短いワイヤのため、回路の
性能は実質的に改善される。また、このワイヤの短縮は
VDD導体2570および上部拡散領域2578によっ
て形成されたトランジスタの間の2つのワイヤの長さを
犠牲にして達成されていることに注目すべきである。
【0191】ここに示したワイヤ長さ最小化の手法はよ
り包括的(comprehensive)でありかつ従
来技術において得られた入力および出力(I/O)ポー
トのオングリッド要件に違反することなくワイヤ長さの
最小化を達成する。このレイアウト合成手法において
は、より良好な電気的特性を備えた回路レイアウトが信
号に対する低減された寄生負荷により発生される。この
包括的なワイヤ最小化はいずれの商業的に入手可能なツ
ールによって発生されるレイアウトと比較してもより密
度の濃いレイアウトにつなげることができる。
【0192】H.ノッチ、タイ、およびコンタクト充填
フロー 半導体設計の完全性を確認するために設計ルールを使用
することは半導体技術において知られている。一般に、
設計ルールは半導体レイアウトの2つの構造の間の最小
間隔を特定する。これらの構造は同じまたは異なる「マ
スク」層の上にあるものとすることができる。歴史的に
は、設計ルールは2つの方法の内の1つで使用されてき
た。第1に、設計ルールはある構造が他の構造に対し設
計ルールが許容するよりも近く配置されあるいはルーテ
ィングされないことを保証するために自動レイアウトツ
ールによって使用されてきた。例えば、もし第1のネッ
トが前もってある与えられた層の上にルーティングされ
ており、かつ第2のネットが同じ層の上にルーティング
されているプロセスにあれば、設計ルールは第2のネッ
トが第1のネットに対して特定された設計ルールの距離
よりも近く配置されないようにルータによって固守され
る。
【0193】設計の構成要素の配置およびルーティング
に続き設計ルールのチェック(DRC)を動作させるこ
とは設計ルールを使用する第2の方法である。いくつか
のDRCチェックは共通の層の上の2つの構造が、スペ
ーシング設計ルールのような、設計ルールに違反するか
否かを判定するために層ごとに行われる。他のDRCチ
ェックは複数の層の上の2つまたはそれ以上の構造が、
オーバラップまたはスペーシング設計ルールのような、
設計ルールに違反するかを判定するために層の間で行わ
れる。DRCチェッカは各構造を個別に評価して第1の
ネットに対するいずれか他の構造が設計ルールに違反す
るか否かを判定する。DRCチェッカはレイアウト設計
者が訂正するエラーのリストを出力する。
【0194】従来技術の方法は、有効ではあるが、いく
つかの制限を有する。第1の制限はDRCチェッカはあ
るレイアウトが有効であるか否かを確認するためのメカ
ニズムを有するが存在し得るエラーを修正する方法を含
まないことである。第2の制限はDRCチェッカは一般
に同じ構造に対して共通の1組の設計ルールを適用する
ことである。ある層の上の、相互接続のような、種々の
構造がそれらが他の構造と同じ設計ルールを守る必要が
ない様式で他の構造と関連するという事実は考慮しな
い。これは結果としてスペース効率の悪い設計となる。
DRCチェッカはスペース効率のよい設計を生成するよ
う試みるものではなく、またそれらは識別されたエラー
を訂正しようと試みるものでもない。このタスクは一般
にレイアウト設計者による人手による変更を必要とし、
結果として増大したターンアラウンド時間およびスペー
ス効率のより悪いレイアウトを生じる。
【0195】従って、スペース効率のよいレイアウトを
自動的に生成しかつDRCの正しさを保証する方法をも
つことが望ましい。
【0196】図51は、形状充填(shape fil
ling)のための方法2010を示すフローチャート
である。形状充填2010はステップ2011で始ま
り、そこで隣接またはアバットメント(abutmen
ts)が加えられる。これらのアバットメントは処理さ
れているレイアウトと設計ルールの相互作用または相互
の影響をもち得る他の構造をエミュレートする。例え
ば、標準的なセルレイアウトにおいては、設計ルール
が、窒化物およびウエル層のような、特定の層の間に存
在する。これら2つの層の間の違背(violatio
n)は、各々がそれ自体設計ルール的に正しい、2つの
セルが大きな設計において並んで配置される場合に生じ
得る。このタイプの設計ルールの違背が生じるのを防止
するため、レイアウトの側部に人工的な形状が加えられ
て設計ルールの違背を防止する。これらの人工的な形状
は各セル内にプレースホルダ(placeholder
s)を導入し、それによってその後のステップ201
6,2012,2013,2014および2015が正
しく動作するようにする。この発明の好ましい実施形態
では、処理されているレイアウトの存在する境界の外側
にマスク層の上にアバットメントが加えられる。アバッ
トメントはまた処理されているレイアウトの存在する境
界の内側および外側の双方でウエル層の上に加えること
もできる。アバットメントの寸法は直接特定することが
でき、あるいはそれらは処理されているレイアウトに当
接または隣接し得る複数のレイアウトの内の各々の隣接
するレイアウトを考慮しかつさらに隣接するレイアウト
におけるレイアウト要素が処理されているレイアウトに
よって必要とされるスペースを侵食する場所をさらに考
慮することにより決定できる。
【0197】次に、ステップ2016において、レイア
ウトの自動コンパクト化が行われる。このコンパクト化
ステップの間に、同じネット上に所在する対象物または
オブジェクトに対するスペーシングのルール違反は許容
される。これは同じネットの対象物の間で設計ルールの
違背が発生するのを許容する。しかしながら、異なるネ
ットにおける対象物は技術によって特定されたルール要
求を厳格に維持することになる。与えられた構造形式に
対し同じネットの設計ルールを強制する、従来技術と異
なり、ネットのような、構造属性に基づく変化する設計
ルールを使用することは設計の改善されたコンパクト化
を可能にする。同じネットの設計ルールは無視されるか
ら、その違背の処理が後にフロー2010において必要
とされるであろう。
【0198】次に、ステップ2012において、前記コ
ンパクト化ステップ2016によって導入されたノッチ
を自動的に充填するためにノッチ充填方法が使用され
る。ステップ2012のノッチ充填技術は後にさらに詳
細に説明する。次に、ステップ2013において、タイ
充填技術が行われる。このステップにおいては、基板お
よびウエルのタイが利用可能なスペースへと配置され
る。これはさもなければ不十分なまたは最小のタイカバ
レージをもつことになるいくつのセルが適切に、かつ設
計ルールに従って、機能できるようにする。このステッ
プがノッチ充填ステップの後に行われることは重要であ
り、そうでなければタイは存在するノッチ内に配置さ
れ、それによって他の設計ルールの違背を生じることな
くノッチを充填することは不可能になる。ステップ20
13のこの特定の構成は後により詳細に説明する。
【0199】次に、ステップ2014において、コンタ
クト充填が行われる。このステップでは、冗長コンタク
トおよびビアが自動的に加えられ、かつコンタクトおよ
びビアのランディング(landings)およびカバ
リング(coverings)が拡張される。これは個
々のビアのショートまたはオープンによって導入される
単一ポイントの障害を低減することにより歩留り、また
はレイアウトのウエハ歩留りごとの良好なダイを増大さ
せる。このステップはタイ充填のステップ2013の後
に行われることは重要であり、それはステップ2013
において加えられるタイはステップ2014において処
理されるべき余分のコンタクトを導入することがあるか
らである。さらに、好ましい実施形態では、ステップ2
014および2013はステップ2012の前に行わ
れ、それは充填されたノッチは今やタイおよび/または
コンタクトのための十分大きなスペースを生成できるか
らである。コンタクト充填のステップ2014は後によ
り詳細に説明する。
【0200】次に、ステップ2015において、長いタ
イの除去が行われる。長いタイはタイ拡散層の一部が特
定の距離内にないか、あるいはそのそれぞれの電力層へ
のいずれかのコンタクトの設計ルール内にない場合に生
じる。ステップ2015は後により詳細に説明するよう
にタイ拡散層のこの部分を除去する。ステップ2015
はまたステップ2011において加えられた人工的な隣
接を除去することができる。
【0201】次に、ステップ2020において、前記充
填ステップ2012,2013および2014が付加的
な形状を加えたか否かの判断が行われる。これは一般に
初期レイアウトの形状を完成したレイアウトの形状と比
較することによって行われる。もし差が存在すれば、形
状が加えられたことが分かる。形状が加えられた場合に
は、ステップ2012のノッチ充填に戻りかつステップ
2012のノッチ充填、ステップ2013のタイ充填お
よびステップ2014のコンタクト充填を反復していず
れかの導入された違背が確実に考慮されることが必要で
ある。このループは何らの形状も加えられなくなるまで
反復され、その時点ですべての設計ルールの違背が訂正
されたことが保証される。
【0202】いったん何らの形状も加えられていないこ
とになると、方法2010のフローはステップ2021
で続けられる。ステップ2021においては、今修正さ
れたレイアウトにおいて何らかのエラーが残っているか
否かの判断が行われる。エラーが残っている場合には、
前のフローにおいてどこかで導入された妥協できない設
計ルールのエラーがあることを示す。この場合は、コン
パクト化ステップ2010に戻りかつフロー2010を
行う異なる構造形状を有する開始レイアウトを発生する
ために他のコンパクト化を行う必要がある。他のエラー
が存在しない場合は、フローはステップ2015におい
て続けられ、そこでステップ2011において加えられ
たアバットメントが、後に説明するように、除去され
る。
【0203】フロー2010は、与えられた標準セル、
または他の設計、に対して設計ルールが改善されたコン
パクト化を許容するため選択的に無視できる点で、従来
技術よりも改善を与える。このコンパクト化に続き、本
発明はそれらが始めに無視された結果として導入される
設計ルールの違背を自動的に訂正する。例えば、共通の
ネットに対するオブジェクトがお互いに何らの関係もも
たないネットと同じ厳格な設計ルールに適合する必要が
ないという事実により、より大きなコンパクト化が利用
できる。このより大きなコンパクト化は設計ルールの違
背を導入し、該違背はノッチ充填、タイ充填およびコン
タクト充填ステップを行い、かつ次に好ましい実施形態
に対してはこの順序でそれらを反復することによって訂
正される。このようにして、1つのステップで導入され
たエラーはその後のステップで検出されかつ訂正され
る。方法2010の総合的な効果は高い密度、高い歩留
りの設計を生じる結果となり、これはより少ない反復お
よび低減された製造コストと共に改善された期間で作製
できる。
【0204】図52は、図51のノッチ充填ステップ2
012を行うための方法2024を示すフローチャート
である。ノッチ充填2024はステップ2025で始ま
り、そこで設計レイアウトが一連の形状に変換される。
次に、ステップ2026において、レイアウトの各層に
対する封鎖またはブロッケージ(blockage)形
状が決定される。次に、ステップ2027において、す
べての単純なまたはシンプルノッチ(simple n
otches)が与えられた層に対して充填される。こ
れに続きステップ2028が行われ、そこでは与えられ
た層に対するすべてのストレート(straits)が
拡張される。次に、ステップ2029において、各々の
与えられた形状に対してすべてのイスマス(isthm
i)が拡張される。次にステップ2030において、各
々の与えられた形状に対するすべてのアイランド(is
lands)が拡張される。次に、ステップ2035に
おいて、各々の与えられた形状に何らかの領域が加えら
れたか否かの判断が行われる。ステップ2035が真で
あることが見いだされかつ領域が加えられている場合に
は、ステップ2035に続きステップ2026が行われ
かつ前に述べたように続けられるが、ステップ2030
が真でないことが見いだされかつ何らの形状も加えられ
ていない場合には、個々の形状はステップ2031にお
いてレイアウトに変換される。ステップ2025〜20
31は後により詳細に説明する。
【0205】図52のノッチ充填2024は図51のノ
ッチ充填ステップ2012の詳細な表現を示す。ステッ
プ2025において、設計レイアウトが一連の形状に変
換される。これは図53のレイアウト図を参照してより
詳細に説明する。図53は半導体セルの代表的なレイア
ウト2046を含む。該レイアウトは当業者に理解され
るようにいくつかの層を含んでいることに注意を要す
る。レイアウト2046を一連の形状に変換することに
より、各層はそれ自身の形状によって表される。サンプ
ルレイアウト2046はメタル1形状2047および拡
散形状2048へと変換される。説明の目的のみで2つ
だけの層およびそれらの対応する形状が示されているこ
とに注意を要する。付加的な層を有するレイアウト20
46は発生される対応する付加的な形状を有する。いっ
たん図53で表される各形状が発生されると、もとのレ
イアウトは各形状をもとのレイアウトのデータベースに
表現される個々の層に変換し戻すことにより再現でき
る。本発明により働きかけられるのはこれらの個々の形
状である。当業者には、個々の形状はある与えられた設
計ツールに特定的に関連するデータベースによって表現
されることが理解される。使用されるデータベース構造
は本発明の好ましい実施形態に特定のものではない。
【0206】図54は、図52におけるステップ202
6を詳細に示す方法2040をさらに詳細に説明するフ
ローチャートである。最初のステップ2041において
形状Scで始まり、Scに関連する空の(empty)
ブロッケージ形状Bcがステップ2042において生成
される。次に、ステップ2046においてさらに形状が
あるかにつきテストが行われる。もしここで処理される
べき形状がそれ以上存在しなければ、方法2040は完
了する。そうでなければ、ステップ2043において第
2の形状Snが選択される。形状Snは形状Scと同じ
レイアウトに関連しているがレイアウトの異なる層を表
していることに注意を要する。次に、ステップ2049
において、層CおよびNの間にスペーシングルールが存
在するか否かの判定が行われる。例えば、もしレイアウ
トの層Cとレイアウトの層Nとの間に、層Cの構造エッ
ジと層Nの構造エッジとの間に1ミクロンのスペーシン
グを要求するスペーシングルールが存在すれば、スペー
シングルールが存在するものとみなされる。スペーシン
グルールが存在しない場合には、ステップ2046にお
いてテストすべきさらに他の形状に関して判定が行わ
れ、かつもし他のものが存在すれば、ステップ2043
において異なる形状Snが選択され、すべての形状が試
験されるまで反復される。
【0207】ステップ2049においてレイアウトの層
CおよびNの間にスペーシングルールが存在することが
判定された場合には、形状Snはスペーシングルールの
値Tだけステップ2044において増大または成長され
て(grown)形状Stを生成し、この場合Tは設計
ルールのスペーシング値である。用語「成長される」に
ついては後に説明する。次に、ステップ2045におい
て、Bcと前記成長された形状Stの間で結合(uni
on)が行われる。この結合の結果は前の値Bcを置き
換える。例えば、始めに、Bcが以前として空のブロッ
ケージ形状を表している場合、BcおよびStの結合は
Stの値に等しくかつBcに格納されることになる。層
Cに関連するすべての設計ルールが処理されるまでステ
ップ2046,2043,2049,2044および2
045が反復される。本発明の好ましい実施形態では、
方法2040はレイアウトにおける各層Cに対して1度
ずつ、複数回行われる。方法2040の動作は図55を
参照して説明される。
【0208】図55は、6つの形状を含むブロック図で
ある。3つの入力形状はポリシリコン形状2050(p
oly)、メタル1形状2052(M1形状)、および
拡散形状2053である。ポリ形状2050はScに対
応し、かつメタル1形状はSnに対応するものと仮定す
る。さらに、形状2050に含まれるポリと形状205
2に含まれるメタル1との間で特定される設計ルールが
あるものと仮定する。メタル1形状2052は設計ルー
ル量Tだけ成長されかつポリブロッケージ形状2055
に格納される。メタル1形状2052は正領域2060
および2061を含む場合には、正領域2060および
2061が成長または拡大され、かつポリブロッケージ
形状2055にセーブされかつ正領域2060′および
2061′で表わされることが分かる。同様に、拡散形
状2053の正の領域もポリブロッケージ形状2055
内に導入されポリ形状2050および拡散形状2053
の間に設計ルールが存在することを示す。
【0209】同様にして、拡散ブロッケージ形状205
6、およびメタル1ブロッケージ形状2057が3つの
形状の各々の間に共通の設計ルールが存在することを想
定して形成される。ポリブロッケージ形状2055はポ
リシリコンのレイアウト要素が加えることができずある
いは拡張できない領域を示す。言い換えれば、ポリブロ
ッケージ形状2055は与えられた半導体設計に対して
ポリが存在することが許されない領域を示す。同様に、
拡散ブロッケージ形状2056およびメタル1ブロッケ
ージ形状2057は拡散およびメタル1が存在すること
が許されないことを示す。
【0210】I.ノッチ充填 図56〜図59は、種々の形状に対して、算術機能のよ
うな、種々の機能の影響を示すレイアウト図である。図
54のステップ2044において使用されているよう
な、増大または成長(grow)機能が図56に示され
ている。形状S2070は初期形状を示す。−5だけ成
長した場合、結果として得られる形状は(S グロー
−5)2071によって示される。−5の「成長」また
は「グロー」(grow)は実際上形状S 2070を
縮小させる。グロー機能の間に、各エッジはグロー値
(grow value)にしたがって移動される。あ
るグロー値が負である場合、各エッジは内部へ移動し、
この場合内部は形状の本体部を言及している。逆に、正
のグロー値は各エッジが特定された量だけ外方へ移動す
るようにさせる。したがって、形状2071は−5の成
長またはグローの後に形状2070よりも際立って小さ
くなっている。
【0211】形状2070において始めに見られた小さ
な付属物(appendage)が形状2071におい
ては消えていることに注目することが重要である。これ
は、付属物2073のような、付属物を形成するエッジ
が成長距離の2倍以内にある場合に生じる。例えば、付
属物2073の2つの対向する側部の間の距離が10ユ
ニット離れておりかつ各側部が5ユニットだけ内側に成
長すれば、10の幅の総合的な低減が生じかつ付属物が
消滅する。当業者にはそのような成長機能は形状Sを表
わすデータベースに働きかけることが理解されるであろ
う。
【0212】形状(S グロー −5)2071は次に
+5だけ成長されて形状((S グロー −5) グロ
ー 5)2072を形成する。この状況では、各エッジ
は5だけ外側方向に移動し、かつ総合的な効果は形状2
070の付属物2073が除去されたものとなることが
分かる。
【0213】結合(union)機能が図57に示され
ている。結合は2つまたはそれ以上の形状の間で生じ
る。この例では、結合は形状X 2075および形状Y
2076の間で行なわれ結果として形状2077を生
じる。説明の目的で、形状2077に示されたXおよび
Yの結合は独自のクロスハッチングを含んでいるが、こ
れは図面の明瞭化のために行なわれており、本発明の好
ましい実施形態では、新しい形状は始めの特定の形状の
間で区別を行なうものではない。本発明の別の実施形態
では、新しい形状は始めの特定の形状の間での区別を行
なうことができる。
【0214】図58は、インターセクションまたは交差
(intersection)機能を示す。インターセ
クションは形状X 2075および形状Y 2076の
間の交差のような2つまたはそれ以上の形状の間で生じ
る。インターセクションは形状2078に示されるよう
に両方の形状Xおよび形状Yに共通の領域を生じさせ
る。
【0215】図59は一方の形状を他方のものから減算
(subtraction)することを示す。特に、図
59はX−YおよびY−Xの結果を示している。Xは図
59の形状X 2075と同様のものであり、一方Yは
図59の形状Y 2076と同様のものである。形状Y
2076が形状X 2075から減算される場合は、
形状X 2075および形状Y 2076の間で共通な
部分が形状X 2075から除去され結果として形状
(X−Y)2079を生じる。同様に、X 2075が
Y 2076から減算される場合は、形状(Y−X)2
080が生成される。
【0216】図60は図52に示される方法2024に
対応するさらに他の用語を定義するために使用されるレ
イアウト図である。図60は2つの正の領域2035お
よび2036を有する形状2034を含んでいる。正の
領域は最大に隣接するまたは連続する形状の部分である
ことに注目すべきであり、かつ1つの形状は形状203
4に示されるように単一の正の領域または複数の正の領
域から構成できることに注意を要する。
【0217】形状2034はそれ自体において正の領域
であるアイランド(island)2036を含んでい
る。アイランドはある特定された必要な最小領域より下
の領域を有する正の領域であると定義される。形状20
34はイスマス(isthmus)2039を含む。イ
スマスは最小幅の値より低い正の領域の部分である。言
い換えれば、イスマス2039は要求される設計ルール
幅より小さいものである。形状2034はまたストレー
ト(strait)2038およびストレート2040
を形成している。ストレートは1つまたはそれ以上の正
の領域の2つのコーナの間に形成される。ストレート2
038は共通の正の領域の2つのコーナによって形成さ
れるストレートであり、一方ストレート2040は別個
の正の領域のコーナ部分によって形成される。最後に、
形状2034は単純なノッチまたはシンプルノッチ(s
imple notch)2037を含む。シンプルノ
ッチは最小の設計ルール仕様より低いある正の領域内の
くぼんだ領域である。シンプルノッチ、ストレート、ア
イランド、およびイスマスという用語は図51における
ステップ2012において包括的に「ノッチ」として言
及されかつ用語「ノッチ充填」によって包含されること
に注意を要する。ステップ2012における用語ノッチ
充填は形状2034に示される4つの設計ルール違反の
訂正に言及している。
【0218】図61は、図52におけるノッチ充填ステ
ップ2027をより詳細に示す「ノッチ充填」方法20
82のフローチャートである。ステップ2083におけ
る形状S1およびステップ2084における最小シンプ
ルノッチ値Dnでスタートして、形状S1は値Dn/2
だけ成長されてステップ2085において成長された形
状を形成する。次に、前記成長された形状はさらに値−
Dn/2だけ成長されてステップ2086における形状
S2を生成する。
【0219】図62は図61におけるノッチ充填208
2の効果を示す一連のレイアウト図である。図61にお
ける形状2090はステップ2083からの初期形状S
1を示す。形状2091はステップ2085の「成長さ
れた」形状を表わす。成長された形状2091において
は、形状2090の無効なノッチは消えていることに注
目すべきである。形状2092は値−Dnによって成長
された(すなわち、Dnによって縮小された)「成長さ
れた」形状2091を示している。形状2092は実際
上成長されかつその後共通の値によって縮小されてい
る。総合的な効果はサイズDnまたはそれより小さい無
効なノッチを除去し、一方それ以外は初期形状2090
の完全性を維持することである。したがって、ノッチ充
填方法2082は「同じネット」設計ルールが一時的に
無視される場合に生じるノッチを除去するために使用で
きる。本発明の好ましい実施形態では、ステップ208
6において生成される形状S2はほぼ形状S1に割当て
られ、形状S1の場合の内容を置き換えている。
【0220】図63は図52のステップ2028をより
詳細に示すフローチャートである。方法2100はステ
ップ2102における形状S3およびステップ2104
におけるブロッケージ形状と共にスタートする。ブロッ
ケージ形状は図52のステップ2026において発生さ
れる、Bcのような、ブロッケージ形状の1つとするこ
とができる。次に、ステップ2103において空の形状
(“accum”)が規定される。形状“accum”
は後に説明するように方法2100において発生された
種々の情報を蓄積するために使用される。次に、形状S
3からの正の領域がステップ2106において識別され
る。これに続きステップ2107において正の領域が成
長されて成長された正の領域を形成する。例えば、図6
4を参照すると、形状2020は正の領域2022およ
び正の領域2023を含むS3を表わし、この場合形状
2022はステップ2106において識別された正の領
域である。成長された正の領域は図64における形状2
021によって表わされる。
【0221】次に、形状“accum”および値「デル
タ」によって成長された正の領域の交差またはインター
セクションが行なわれ、ステップ2108において結果
Rを形成する。本発明の好ましい実施形態では、前記値
「デルタ」は形状S3に関連する層の上の最小スペーシ
ング距離の半分に基づいている。次に、インターセクシ
ョンの結果Rが空であるか否かがステップ2115にお
いて判定される。使用されている正の領域がある与えら
れた形状の第1の正の領域であれば、インターセクショ
ンは常に空でありかつステップ2109が次に実行され
る。ステップ2109においては、成長された正の領域
が形状“accum”と結合される。これに続き、さら
に他の正の領域が処理のために残っているか否かが判定
される、ステップ2110。ステップ2110において
さらに他の正の領域が処理される必要がある場合は、ス
テップ2106において次の正の領域が識別され、かつ
ステップ2106,2107,2108,2115,2
109および2110が形状S3における各々の正の領
域に対して反復される。
【0222】次の正の領域が図64のB 2023であ
るものと仮定すると、それは「デルタ(Delta)」
だけ成長されて成長された正の領域を形成する。次に、
ステップ2108において、形状“accum”および
前記成長された正の領域のインターセクションRが計算
される。このインターセクションの結果は正の領域20
29を有する形状2028である。正の領域2029は
インターセクションRに対応し、そこでは成長された形
状2023′が“accum”形状2024の値と交差
している。ステップ2115に進むと、前記インターセ
クションR(形状2028)が空でないという決定が行
われ、かつフローはステップ2112に進む。ステップ
2112においては、インターセクションRは「デル
タ」だけ成長されて形状2030に示されるように成長
された領域Rgを形成する。形状S3に対するブロッケ
ージ形状(図示せず)が成長されたストレートから減算
されて、形状2032の正の領域2033によって示さ
れる、差分R2をステップ2113において生成する。
ステップ2113において成長されたインターセクショ
ンからブロッケージを減算することは層S3のブロッケ
ージによって規定される禁止された領域にストレートが
成長しないことを保証する。
【0223】ステップ2113の後に、形状R2および
形状S3の間で結合またはユニオン(union)が行
われて新しいS3を形成する、ステップ2114。これ
は、事実上、インターセクションをもとの形状に加え、
それによってストレートを充填する。ストレートの充填
を正当化する理由はストレートはコンパクト化段階の間
に「同じネット(same net)」のスペーシング
ルールを緩和する結果として生成されることであること
に注目すべきである。従って、ストレートは共通のネッ
ト上の2つの位置の間でおいてのみ存在する。
【0224】ステップ2114に続き、ステップ211
6においてR2が空であるか否かが判定される。もしR
2が空であれば、それはステップ2112における前の
成長が形状S3の発生に対して何らの影響も与えずかつ
ストレートを充填するためにさらなる反復が必要である
ことを示している。従って、形状R2が空でない場合、
フローはステップ2117に進み、そこで形状R2がス
テップ2117において“accum”形状へと結合さ
れる。このステップは、今やストレートを充填する、新
しい部分がストレートを探す上でのさらなる計算におい
て使用できるようにする。
【0225】R2が空である場合、ステップ2114に
おいて行われる結合はストレートの充填に影響を与えて
いない。従って、「デルタ」が増大され、かつステップ
2116において形状R2が空でないことが判定される
までステップ2112,2113,2114,2116
および2118が反復される。ステップ2112および
2116の間のループの効果は何らかの他の設計ルール
に違背することなくストレートを充填するために十分大
きな部分R2を成長することである。R2部分はストレ
ートを含むもとの層に加えられ、それによって無効なス
トレートを消去する。これは本発明の1実施形態にすぎ
ずかつステップ2118へのフローをいつ終わらせるか
を決定するために他の基準を使用できることが理解され
るべきである。例えば、もしストレート充填部分R2が
あるサイズまたはある境界サイズに適合すればそれが十
分大きいことを判定してもよくかつフローはステップ2
117へと続けることができる。
【0226】今述べたステップに代わる1つの方法はも
し成長したサイズがあまりにも大きくなりすぎればエラ
ー終了するステップを加えることである。この場合、ス
トレートは充填されずかつエラー通知が発生される。
【0227】ステップ2117における形状“accu
m”への形状R2の結合に続き、ステップ2110にお
いてさらなる正の領域についてテストが行われ、すべて
の正の領域が処理されるまで内側および外側のループを
反復する。すべての正の領域が処理された時点で、方法
2100は完了する。
【0228】図65は、図52のステップ2030の詳
細なフローチャートによって方法2120を示す。フロ
ー2120は同じ図63の方法2100のステップと同
じ番号を使用している。方法2120および2100の
ステップ2102〜2106は同じである。方法212
0における先行するステップ2106はステップ212
2であり、そこで形状S4に対して縮小(shrin
k)が行われて新しい形状S5を形成する。縮小は負の
値によって成長することと同じであることに再び注目す
べきである。形状が縮小される量は存在するイスマスが
こわされるものである。従って、もし設計ルールが2の
イスマスが無効であることを規定すれば、正の領域はイ
スマスがブレークオフされるために1だけ縮小される。
次に、本方法はストレート充填フローについて上で説明
したのと同様にしてステップ2107および引き続くス
テップによって続けられる。イスマスは前と同様のフロ
ーを使用して訂正され、ブレークされたイスマスは、今
やストレートであるが、ストレートを訂正するためのフ
ローを使用して訂正される。
【0229】これは図66によって最もよく説明され、
その場合形状2140は図示のごとくイスマスを含んで
いる。形状2141は形状2140を負の値によって成
長した効果を示している。前記負の値はD/2に基づい
ており、この場合Dは設計ルール距離であることに注意
を要する。2つの形状は移動しているからDは2で除算
される。さらに、D/2に対し小さなエプシロン(ep
silon)が加えられてさもなければ生じ得る共通の
ポイントがないことを保証する。これは引き続くステッ
プにおける適切な充填を保証する。形状2142はもと
のイスマス領域を示す。次に形状2143,2144,
2145,2146,2147,2148および214
9はストレートのフローと同様のステップを使用してイ
スマスを充填することに対して残りのフローが与える効
果を示している。総合的な効果は成長できる正の領域を
識別して設計ルール仕様に適合するようにストレートを
成長することであることに注意を要する。
【0230】図67は、図52のステップ2030の詳
細な図である方法2159を示す。方法2159は与え
られた形状に対してアイランドを拡張するために使用さ
れる。
【0231】ステップ2160で始まり、形状S6が受
信される。次に、ステップ2161において、ブロッケ
ージ形状が受信される。受信されたブロッケージ形状は
形状S6と同じレイアウト層を表すブロッケージ形状で
あろう。例えば、もし形状S6がポリ層を表しておれ
ば、前記ブロッケージ形状はポリブロッケージ形状を表
す。次に、ステップ2162において、形状S6で表さ
れる層に対する最小スペーシングが受信される。この最
小スペーシングはアイランドが同じ層の上の他の構造に
どれだけ近く来ることができるかを示す。次に、ステッ
プ2163において、形状S6における正の領域が識別
される。
【0232】次に、ステップ2164において、識別さ
れた正の領域が最小領域より小さな面積または領域を有
するか否かの判定が行われる。最小領域はまた技術に依
存する提供されたパラメータとすることができる。正の
領域が最小領域より小さくない場合には、すなわち、指
定された設計ルールに適合すれば、フローはステップ2
175によって続けられる。ステップ2175において
は、次の正の領域があるか否かについてさらに判定が行
われ、もし次の正の領域があれば、フローはステップ2
174に続き、そこで次の正の領域が識別される。この
ループはすべての正の領域が最小領域に対して分析され
るまで反復される。ステップ2164において正の領域
が最小領域より小さいという判定になれば、フローはス
テップ2165に進む。ステップ2165においては、
正の領域が形状S6から減算されて新しい形状S7を形
成する。新しい形状S7は今識別された正の領域を除く
もとの受信された形状S6であることに注意を要する。
次に、ステップ2166において、形状S7は最小スペ
ーシング量だけ成長されてS8を形成しS7から削除さ
れた正の領域が最小領域の要件に合致するためにどこで
成長できるかを識別する。これは実際上、正の領域を除
き、受信された形状S6に関するすべての形状を最小ス
ペーシングだけ成長させることに注意を要する。次に、
ステップ2167において、S8とブロッケージ形状と
の間で結合またはユニオンが行われてブロッケージS9
を形成する。ブロッケージS9は識別された正の領域が
成長できない複合領域を示すことに注目すべきである。
次に、ステップ2168において、得られたブロッケー
ジが形状S9から生成されかつ後に図68を参照してよ
り詳細に説明する。次に、ステップ2169において、
正の領域がステップサイズだけ成長されて成長された正
の領域を形成する。次に、ステップ2170において、
得られたブロッケージが前記成長された正の領域から減
算されて有効な成長領域を形成する。該有効な成長領域
は前記成長された正の領域とは、もし前記成長された正
の領域が不当な領域に侵食しようとすれば、その不当な
領域は有効な成長領域から除去される点で異なってい
る。次に、ステップ2180において、前記有効な成長
領域の面積が最小面積より大きいか否かの判断が行われ
る。有効な成長領域が今や最小面積または最小領域を超
えていることが真であれば、フローはステップ2171
に進み、そこで有効な成長領域ともとの受信された形状
S6との間で結合が行われる。この結合またはユニオン
の効果はアイランドを有効なスペースへとそれが最小領
域に適合するように成長させることである。ステップ2
171からフローはステップ2174に進み次の正の領
域を識別しかつ各々の正の領域に対するフローを行う。
【0233】前記有効な成長領域の面積が最小面積を超
えない場合には、フローはステップ2181に進み、そ
こで有効な成長領域が正の領域より大きいか否かの判断
が行われる。有効な成長領域が正の領域より大きくない
場合は、それは正の領域を成長するステップ2169が
正の領域の面積を改善する何らの総合的な効果ももたな
いことを示している。これは現在のブロッケージ形状が
与えられればそれがどこにも成長しない点で、アイラン
ドが「ランドロックされた(land locke
d)」ことを示している。このことが生じかつ面積が正
の領域より大きくない場合には、フローはステップ21
72に進みそこでエラーの通知が発生されることにな
る。有効な成長領域の面積が正の領域より大きい場合に
は、2169における成長のステップは正の影響を有し
かつさらなる成長が必要なことが分かる。従って、フロ
ーは2173に進み、そこで正の領域が有効な成長領域
に等しいものと規定されかつフローはステップ2169
で続けられる。
【0234】図68は、導出ブロッケージ(deriv
ed blockage)を作製する方法2190を示
す。導出ブロッケージは図67のアイランド充填フロー
のステップ2168において作製された。導出ブロッケ
ージを計算しまたは決定する必要性は図69に示されて
いる。図69は図67のステップ2167のブロッケー
ジS9を表している。ブロッケージS9は、層S6に対
するブロッケージと結合された、現存のアイランドなし
のアイランドを含むもとの形状S6の組合せによって作
製される。従って、図69は形状層が成長された後の該
形状層と結合されたブロッケージ層を表している。その
結果、新たに導入されたまたは作製されたアイランド、
ストレートまたはシンプルノッチがあり得る。例えば、
図69において、正の領域2204は拡張される必要が
あるアイランドとして識別され、かつ従って図69の形
状2200で表されるように実際にブロッケージS9の
部分とならない。残りの正の領域2202,2206お
よび2208は、いっしょに1つの形状として考える
と、S6の層に対するブロッケージおよび成長形状S6
それ自身の間の結合を表すことになる。明らかに、シン
プルノッチ2210はレイアウト要素2202に存在
し、かつストレート2212も存在する。正の領域22
04が成長されたとき、それはシンプルノッチ2210
内に成長することが可能なことが分かる。これは従って
2204に対して設計違背を生じさせ、その理由はそれ
が最小の要求される寸法より小さな付加物を有するから
である。同様に、もし2206が識別されたアイランド
であれば、それはストレート2212内へと成長しかつ
イスマスを生成する。逆に、もし1つのイスマスの両側
に2つのアイランドが存在すれば、それらはそれらの間
にストレートを生成するように成長しこれは次に後の時
間に調整される必要がある。従って、アイランドの成長
が付加的な設計ルール違背を生じないことを保証するた
め導出ブロッケージを生成する必要がある。
【0235】図68を参照すると、導出ブロッケージが
層Lへのブロッケージを表す形状Bを受信しかつ該形状
Bに対して前に述べた方法でノッチ充填を行う方法21
90を行うことによって決定される。方法2190はス
テップ2191で始まり、そこでノッチが充填される。
次に、ステップ2192において、導出ブロッケージが
さらに前に述べた方法でBにおけるストレートを充填す
ることにより決定される。また、最後に、ステップ21
93において、導出ブロッケージがさらに前に述べた方
法でBにおけるイスマスを充填することにより決定され
る。Bは層Lへのブロッケージを表すから、ステップ2
190,2192および2193において使用される最
小スペーシング距離は層Lに対する最小幅距離に基づい
ており、かつステップ2190,2192および219
3において使用される最小幅距離は層Lに対する最小ス
ペーシング距離に基づいている。導出ブロッケージを計
算することにより、図69のシンプルノッチ2210は
アイランド2204が充填される有効な領域として識別
されず、ストレート2212はアイランド2206が充
填される有効な領域として識別されない。これによっ
て、導出ブロッケージはアイランド2204および22
06の有効な成長を可能にする。
【0236】J.タイ充填 半導体設計においてウエルタイおよび基板タイを使用す
ることは半導体技術においてよく知られている。一般
に、設計ルールはある与えられた半導体ウエルまたは基
板に対して必要とされるウエルまたは基板タイの数およ
び位置を特定する。ウエルまたは基板タイの目的はトラ
ンジスタがあらかじめ定められた方法で動作できるよう
にする電位バイアスをウエルまたは基板に生成すること
である。大きなウエルまたは基板領域においては1つよ
り多くのウエルタイまたは基板タイを使用することがで
きる。これはウエルまたは基板にわたり共通の電位を保
証する。
【0237】しばしば、ウエルおよび基板タイは半導体
レイアウトの展開の早期に配置される。特に、自動レイ
アウト合成システムはウエルおよび基板タイを開発プロ
セスの早期に配置する。これはあらかじめ規定された数
のタイの容易な配置を可能にする。しかしながら、タイ
を早期に配置することは高い密度でコンパクト化された
設計を作製するためにはよくなく、それは開発プロセス
の早期では、各素子の最終的な配置が知られておらず、
従ってタイは後に設計の寸法を増大することが分かるこ
とになるクリティカルな位置に加えられる可能性がある
ためである。さらに、各素子の最終的な位置は知られて
いないため、タイの正確な数および位置も同様に未知で
ありかつ推定されなければならない。推定は不正確にな
り得る。もし推定が高すぎれば、不必要なタイが加えら
れ、設計の寸法を増大する。もし推定が低すぎれば、設
計は設計ルールに対し正しいものではなくなりかつ性能
の低下を生じ得る。最後に、基板タイのベアミニマム
(bare minimum)は設計における総合的な
設計ルールに適合するかもしれないが、付加的なウエル
タイおよび基板タイはウエルおよび基板領域にわたり共
通の電位を保証することにより一部の信頼性を増大する
であろう。
【0238】ウエルおよび基板タイの配置は時間がかか
ることがある。典型的には、半導体層の開発におけるタ
イ配置がより遅れて行われれば、タイを配置するのによ
り多くの時間が必要となり、それは必要な数のタイを達
成するためにより多くのレイアウト要素が移動されなけ
ればならないからである。必要とされる時間および人手
による努力のため、信頼性を増大し得る、付加的なタイ
はスペースが得られる場合でも滅多にしか加えられな
い。
【0239】動作においては、本発明はレイアウトを該
レイアウトに対応する形状のグループに変換する。各形
状に対して、その形状に関連するブロッケージ形状が発
生される。形状およびブロッケージに基づき、レイアウ
トに関連するウエルタイが充填される。次のステップ
で、基板タイが形状および該形状に関連するブロッケー
ジに基づき充填される。次に長いタイを除去するステッ
プが実行される。最後に、複合形状に基づきレイアウト
が発生される。これらのステップは自動的に行われる。
ステップ2802の間に標準セルに対する受信されたレ
イアウトまたは半導体レイアウトの他の部分が種々の形
状に変換される。このレイアウトから形状への変換は図
52のステップ2025での特定に関連するレイアウト
から形状への変換と始めは同じであるが、それはこの変
換は各層の電源、グランドおよび信号部分を別個の形状
で格納する点で異なっている。レイアウト2820から
の導出形状の例が図71を参照して示される。図71に
おいては、レイアウト2820はステップ2802によ
ってメタル1形状2822、信号メタル1形状282
4、電源メタル1形状2826、グランドメタル1形状
2828、電源拡散形状2830、信号拡散形状283
2、グランド拡散形状2834、コンタクト形状283
6、およびウエル形状2828へと変換されている。も
し形状2822〜2838が、各々それ自身の層の上
で、組み合わされれば、もとのレイアウトが作製される
ことになる。
【0240】メタル1形状2822はレイアウト282
0に関連するすべてのメタル1に対応する。信号メタル
1形状2824は特にレイアウト2820のメタル1層
の上の信号に関連するメタル1レイアウト要素を表す。
電源メタル1形状2826はレイアウト2820の電源
に対応するメタル1レイアウト要素または素子を表す。
例えば、電源に直接接続されるべきものとして知られた
メタル1の部分は電源メタル1形状で表されることにな
る。同様に、グランドメタル1形状2828はレイアウ
ト2820に関連するグランドにコンタクトすることが
知られたメタル1部分を表す。電源拡散形状2830は
電源に接続される拡散のレイアウト2820の部分を含
む。信号拡散形状2832はレイアウト2820の信号
部分と特に関連する拡散を表す。グランド拡散形状28
34はレイアウト2820において直接グランドに結合
されるものとして知られた拡散レイアウト要素を含む。
コンタクト形状2836はちょうどレイアウト2820
に関連するコンタクト部分を含む。ウエル形状2838
はレイアウト2820に関連するウエル部分を表す。図
71の形状は網羅的なものを意味するのではなく、実際
に他の形状も存在し得ることに注目すべきである。
【0241】図72の方法は前に仕様書においてカバー
されなかった特定の形状を発生する「連続識別」または
「隣接識別」(identify contiguou
s)フローである。ステップ2840において、電源メ
タル1形状はメタル1層に対する最小スペーシング距離
だけ成長される。この値は成長電源メタル1形状(GP
SM1)と称される。GPSM1はメタル1形状(SM
1)と交差し、該メタル1形状は電源メタル1形状PS
M1を置き換える。ステップ2840および2842の
効果は図73を参照することにより見ることかできる。
【0242】図73においては、前記成長電源メタル1
形状2850が、点線で表される、もとの電源メタル1
形状から2850の実線へとどこに成長されたかを見る
ことができる。これは次に、すべてのメタル1レイアウ
ト要素を表す、メタル1形状と交差する。この交差の結
果は新しいPSM1形状2852として表されている。
GPSM1形状2850および新しいPSM1形状28
52の間の差はメタル1層の電源部分と直接接触してい
るSM1 2022の部分がPSM1に含まれているこ
とであることに注意を要する。図72のフローに戻る
と、ステップ2844において、新しいPSM1形状が
もとのPSM1形状より大きいか否かの判定が行われ
る。真である場合、図72のフローはPSM1において
表される電源導体に接続されたメタル1を首尾よく識別
している。従って、すべてのそのような接続されたメタ
ルが識別されるまでフローはステップ2840で続けら
れる。偽である場合、ステップ2844からのフローは
終了する。
【0243】図72の方法の総合的な効果は回路の電源
に隣接または連続しかつ従って接続されたメタル1領域
を識別することである。類似の方法をグランド形状に適
用して回路グランドに隣接しかつ接続されたメタル1領
域を識別することができる。
【0244】図74は、レイアウトに関連する各々の形
状に対する基本的ブロッケージを見つける方法を示す。
ステップ2860において、層Lcおよび層Ldの間の
設計スペーシングルールが識別される。次に、ステップ
2862において、層Ldに関連する形状Sdが設計ス
ペーシングルールに関連する値Rだけ成長されて成長形
状GSdを生成する。例えば、もし層Lcおよび層Ld
がそれらがお互いに1ミクロンより接近することを禁止
する設計ルールを有していれば、形状Sdは1ミクロン
成長されることになる。GSdは形状Scが中へ成長す
ることができない領域したがって層Lc上のレイアウト
要素が許容されない領域を表わすことに注目すべきであ
る。次に、ステップ2864において、層Lcに対する
ブロッケージBScが前記成長形状GSdと結合され
る。この値はブロッケージBScに対する元の値を置き
換える。前述のように、このブロッケージ形状はScが
中へ成長できない領域を表わす。次に、ステップ286
5において、全ての設計ルールが処理されたか否かの判
定が行なわれる。全ての設計ルールが処理されていない
場合は、フローはステップ2860に続き、そこでは次
の設計スペーシングルールが識別されることを意味す
る。フローは全ての設計スペーシングルールが処理され
るまでこのループで継続する。
【0245】ステップ2865においていったん全ての
設計スペーシングルールが識別されたものと判定される
と、フローはステップ2866に続く。ステップ286
6においては、層Lに関連する信号形状SSLがその層
に対する最小スペーシングだけ成長されGSSLを結果
として生じる。次に、ステップ2868において、ステ
ップ2866からの成長された信号形状GSSLが層L
に関連するブロッケージ形状BSLと結合される。次
に、ステップ2869において、全ての層が処理された
か否かの判定が行なわれる。全ての層が処理されていな
い場合は、フローはステップ2866に続き、そこでは
次の層が識別されることを意味する。フローは全ての層
が処理されるまでこのループで継続する。いったん全て
の層が処理されると、フローは本質的に完了する。
【0246】図75は、図74のフローの効果を実例形
式で示す。図75のポリブロッケージ2874はポリ層
に関連するステップ2864の形状BScを表わす。図
75の例では、ポリブロッケージ形状2874はこの例
ではメタル1層に関連する第2の形状Sdと共に処理さ
れる。実際に、メタル1層およびポリ層はそれらに関連
する最小設計スペーシングルールを有する。メタル1に
対する形状2870は成長メタル1形状2872を生成
するためにステップ2862の共通の設計スペーシング
ルールによって成長される。成長メタル1形状2872
は新しいポリブロッケージ形状2876を生成するため
に2874のポリブロッケージ形状と結合される。ステ
ップ2860およびステップ2865の間のループの効
果は共通の設計スペーシングルールを備えた各層に対し
て図75の共通ルールを備えた各層に対してラベル付け
られた信号により示されるように結合が生じることであ
る。次に、ポリ信号形状2878がステップ2866に
おいて最小ポリスペースによって成長されて図75に示
されるように成長ポリ信号形状2880を生成する。こ
れは次に形状2876の新しいポリブロッケージと結合
されて新しいポリブロッケージ2882を形成する。前
述のように、新しいポリブロッケージ2882はウェル
タイに関連するポリが所在し得ない領域を表わすことに
注目することが重要である。
【0247】図70のステップ2804のブロッケージ
が識別されると、フローは図70のステップ2806に
進む。ステップ2806はさらに図76の方法で示され
たステップを備えている。ステップ2890において
は、電源メタル1形状への複合ブロッケージが計算され
る。これはさらに図77および78を参照して説明す
る。次に、ステップ2891において、全てのコンタク
ト可能な拡散領域が識別され、これについては図79を
参照してさらに説明する。次に、ステップ2892にお
いて、コンタクトがメタル1からタイ拡散へと加えら
れ、これについては図79を参照してさらに説明する。
次に、ステップ2893において、全てのタイ拡散に対
してフラッド充填(flood fill)が行なわれ
る。
【0248】図77は図76の方法のステップ2890
の各ステップをさらに構成する方法を示す。特に、ステ
ップ2895において、ノンパワー(non powe
r)メタル1形状が規定される。これは図78において
形状2905によって表わされる。形状2905は電源
メタル1形状において導入された領域を除く全てのメタ
ル1領域を含む。次に、ステップ2896において、ノ
ンパワーメタル1形状がメタル1スペースとメタル1の
最小幅の1/2との合計によって成長される。この成長
された形状は成長ノンパワーメタル1形状(GNPM
1)と称され、かつあるウェルタイに関連するメタル1
が存在し得ない場所を示す。形状GNPM1は図78の
形状2907によって示される。次に、ステップ289
7において、ホールが充電されたGNPM1層である一
時的形状が作製される。図78を参照すると、形状29
07はそれに関連するホール2908を有し、かつこの
ホール2908は図78の形状2909において充填さ
れることに注目すべきである。
【0249】次に、ステップ2898において、元のホ
ール2908を表わす形状が発生される。これは前記一
時的な形状からGNPM1形状を減算することにより達
成される。図78の形状2911はホールを示してい
る。次に、ステップ2899において、前記ホール形状
とメタル1電源形状の間でインターセクションが行なわ
れて電源層と交差しないホールを識別する。形状291
3が電源形状を表わす場合は、それと2911との間の
インターセクションは2つの形状のインターセクション
を識別する形状2914を生成する。その結果、電源信
号が形状2907のホール内で得られることが知られ
る。したがって、タイがこのホール内でウェル位置へと
ドロップされる可能性がある。
【0250】しかしながら、もし形状2915が電源層
を表わしかつそれが形状2911と交差すれば、形状2
916が生成され、これは何らの領域も包含しないヌル
形状である。したがって、このホール内には何らのタイ
も存在できず、かつ次のステップ2900において電源
メタル1形状と交差しないものと判定されたホールは成
長されたノンパワーメタル1形状と結合されて充填され
たホールを備えた新しい成長されたノンパワーメタル1
形状を形成する。図78を参照すると、形状2911は
2915のメタル1電源形状と交差せず、2911と2
907との間で結合が行なわれて2917の形状を生成
する。新しい成長されたノンパワーメタル1形状291
7は充填されたホールを有し、それは電源がホール29
08内で得ることができずかつしたがってウェルタイを
ホール2908へと充填することができないためであ
る。
【0251】次に、ステップ2901において、新しい
成長されたノンパワーメタル1形状が最小メタル1幅の
負の1/2だけ成長される。この結果は図78の形状2
918に示されている。この値は次にメタル1に対する
複合ブロッケージ形状(CBM1)を形成するためにメ
タル1に対するブロッケージ形状2919と結合され
る。図78の形状2920で表わされるこの形状はウェ
ルタイに関連するメタル1が配置できない領域を表わ
す。
【0252】図79は、図76のフローに関して拡張し
た方法を示す。図76のステップ2891の第1のサブ
ステップである、ステップ2925において、導出(d
erived)ブロッケージがメタル1に対する複合ブ
ロッケージ形状(CBM1)から計算される。導出ブロ
ッケージフローは前に図68を参照して説明している。
次に、ステップ2926において、ウェル形状Snwが
受信される。この形状はレイアウト−形状ステップの間
に前に発生されていることに注目すべきである。次に、
ステップ2927において、ウェル形状からコンタクト
への基本的ブロッケージおよびタイ拡散への導出ブロッ
ケージを減算することによりタイ拡散可能形状が計算さ
れる。次に、ステップ2928において、タイ拡散可能
形状がコンタクトサイズの負の2分の1とコンタクトに
わたる拡散のオーバラップを加えたものだけ成長され
る。この成長動作の結果はコンタクト可能な拡散形状で
ある。次に、ステップ2929において、メタル1への
複合ブロッケージがコンタクト可能な拡散形状から減算
される。この減算の結果はコンタクト形状CAである。
コンタクト形状CA内で、コンタクトはコンタクト形状
CA内にコンタクトの中心を配置することにより首尾よ
く加えることができる。
【0253】次に、図76のステップ2892に対応す
る、ステップ2930において、コンタクトがコンタク
ト形状CA内で加えられる。このステップはさらに図8
0および81を参照して説明する。次に、図76のステ
ップ2893に対応する、ステップ2931において、
新しい拡散形状CA′が拡散への導出ブロッケージ内で
拡張された、またはフラッド充填された、元のコンタク
ト形状CAに等しいものとして規定される。CA′はし
たがって最大ウェルタイ拡散領域を表わす。第2の形状
内で第1の形状をフラッド充填することは全ての利用可
能なスペースを利用するために第2の形状内で第1の形
状を拡張することを必然的に伴う。これは成長された第
1の形状を形成するために第1の形状を小さな量だけ成
長することによって達成される。次に、前記第1の成長
された形状が第2の形状を減算することにより変更され
る。この変更された成長された第1の形状は第2の形状
の領域内で成長する。今変更した第1の形状を反復して
成長しかつ第2の形状を減算することにより、変更され
た第1の形状は第2の形状によって占有されていない
が、囲まれた、全ての利用可能なスペースを占有するよ
う拡張されることになる。反復のステップは前記変更さ
れた形状が反復の間で領域において変化しない場合に終
了する。
【0254】次に、ステップ2932において、新しい
拡散形状CA′がウェルタイ拡散形状Swtdと結合さ
れて新しいウェルタイ拡散形状を生成しこれはさらにS
wtdに割当てられる。この新しいウェルタイ拡散形状
は今や加えられかつ拡張されたコンタクトにより加えら
れた拡散および元のウェルタイ拡散から構成される。
【0255】図80は、図79のステップ2930の詳
細な方法を示す。ステップ2939において、増大され
たコンタクト形状CAが受信される。増大されたコンタ
クト形状CAは図79の方法において前に計算されたか
ら、このステップは明瞭化のためのみであることに注意
を要する。次に、ステップ2940において、CAの最
も左の最も下のエッジ(LLMP)が図81の形状29
46に示されるように識別される。次に、ステップ29
41において、コンタクトが加えられる。加えられたコ
ンタクトは図81の形状2948に示されるようにLL
MPポイント上の中心にある。次に、ステップ2942
において、増大されたコンタクト形状CAが、加えられ
たコンタクト形状をそれが成長された後に減算すること
により変更される。該コンタクト形状はコンタクトがあ
るスペーシング要件を満たすことを要求する設計ルール
があるため成長される。これは図81の形状2950お
よび2952によって示されている。次に、ステップ2
943において、ステップ2942において配置された
コンタクトをカバーするためにメタル1が加えられる。
次に、ステップ2944において、コンタクト形状が空
であるか否かの判定が行なわれる。もしそうでなけれ
ば、フローは全てのコンタクトスペースがコンタクトに
よって充填されるまでステップ2840に戻る。もしそ
うであれば、フローは完了する。
【0256】図82は長いタイを除去するための図70
のステップ2810に対する拡張されたフローである。
ステップ2960において、ウェルタイ拡散形状Swt
d、コンタクト形状CTS、およびメタル1電源形状が
受信される。前に述べたように、これらの形状はすでに
図70の方法において存在するから、このステップは明
瞭化のために行なわれる。次に、ステップ2962にお
いて、有効なタイ拡散形状OKTDSがタイ拡散形状S
wtd、コンタクト形状CTS、およびメタル1電源形
状PSM1のインターセクションと等しくなるよう規定
される。これは図83の形状2970で示されている。
OKTDS形状はタイ2972および2974が直接コ
ンタクト2971を介して電源メタル1レイアウト要素
に接続された領域を備えている。次に、ステップ296
4において、OKTDS形状が元のOKTDS形状を量
デルタだけ成長させかつ結果をタイ拡散形状Swtdと
交差させることにより変更される。ステップ2968に
おいて、該ステップをある最大の回数反復するか否かの
決定が行なわれる。この最大の回数は最大タイオーバハ
ングMをデルタで除算することにより規定される。これ
はいずれのタイも最大ウェルタイ長さMより長くならな
いことを保証する。次に、ステップ2966において、
OKTDS形状がタイ拡散形状Swtdを置き換える。
図83の形状2971はタイ拡散の正の領域2973′
内で成長された有効なタイ拡散形状OKTDS2976
を示している。形状2976は全ての設計ルールに適合
する。
【0257】上記方法は基板タイならびにウェルタイに
適用されることに注目すべきである。特に、図70のス
テップ2806においてウェルタイを充填するために前
に述べた方法は同様の様式で図70のステップ2808
を行なうために使用することができる。
【0258】図70の方法2013はステップ2812
で終了し、そこで形状が半導体レイアウトに変換され
る。さらに、本方法は特定の例、例えば電源層を含むメ
タル1、を使用しているが、他の層および形状も設計の
完全性を保証するために使用することができかつ使用さ
れるべきである。
【0259】K.コンタクトおよびビア充填 ビアを使用することは2つの金属層のような2つの導電
層を接続するために半導体技術において良く知られてい
る。図84はカット(cut)503、カット503に
オーバラップするカバリング(covering)50
2、およびカット503にオーバラップするランディン
グ(landing)504を有する覆われたまたはカ
バードビア(covered via)を示す。用語カ
バリングはランディング504およびカバリング502
の双方に言及するために包括的に使用できることに注意
を要する。カバリング502は半導体装置の1つの層を
表わし、一方ランディング504は半導体装置の第2の
層を表わす。カット503は半導体装置の第3の層を表
わす。カット503はカバリング502をランディング
504に電気的に接続する。そして、カバリングは、一
般的には、それぞれの層の上のノードに接続され、該層
は次に信号を半導体装置の各部に導通させる。
【0260】図85は、カバリングされずかつランディ
ングされていないビアを示し、これは「アンカバードビ
ア(uncovered via)」と称される。アン
カバードビアはカット寸法を超えるオーバラップを含ま
ないカバリングおよびランディングを有する。カバリン
グ上にオーバラップがないから、アンカバードビアはカ
バードビアよりも実施するためのスペースがより少なく
なる。
【0261】アンカバードビアの欠点はカバードビアと
比較してミスアライメントおよび他のプロセス変動の発
生度がより大きいことである。図86は半導体装置の処
理の間に生じる半導体装置の各層の間のミスアライメン
トの影響を示す。図示のごとく、カバリング506′、
カット508′およびランディング510′がお互いに
対してミスアライメントになっている。そのようなミス
アライメントに伴う問題は各層、カットエリア、の間の
電気的接続の導電率が図85に示されるようなアライメ
ントされたビアと比較して低下することである。ひどい
場合には、ミスアライメントまたはプロセス変動は電気
的接続を確立することができなくなる。接続性の低減ま
たは欠如は半導体装置を機能しないものとする可能性が
ある。単一のビアが別個の層の上の対象物を接続する場
合、この問題は特に深刻であり、それは代りの接続経路
がないからである。さらに、ミスアライメントのビアに
関連する問題は特にカバリングされかつランディングさ
れたビアが使用される場合に対してカバリングされずか
つランディングされないビアが使用される場合に深刻で
ある。これはカバリングされたかつランディングされた
ビアの大きすぎる(oversized)カバリングお
よびランディング領域が層の間のいくらかのミスアライ
メントを収容または適応できるからである。
【0262】アンカバードビアはカバードビアよりスペ
ース効率がよい。半導体装置のコストは直接その寸法に
関係する。しかしながら、カバリングはアンカバードビ
アよりも層の間の電気的コンタクトに関してより信頼性
がある。したがって、半導体装置の総合的な寸法を増大
することなくより大きなカバリングを備えたビアを加え
かつ使用する方法を実施するのが好都合であろう。さら
に、半導体装置の総合的な寸法を増大することなく冗長
ビアを加える方法を実施することも好都合である。
【0263】図87はビアを加えるための本発明に係わ
る方法を示す。ステップ520において、レイアウトが
ビアを処理するために必要とされる数多くの形状に変換
される。ステップ520は図52のノッチ充填方法のス
テップ2025と同様のものである。次に、ステップ5
21において、上のステップ520において発生された
各々の形状に対してブロッケージが決定される。ブロッ
ケージ検出ステップは図52のステップ2026および
図54の方法2040と同様のものであり、かつここで
はこれ以上説明しない。次に、ステップ522におい
て、コンタクトおよびビアがステップ521のブロッケ
ージ情報に基づき利用可能な領域へと充填される。次
に、ステップ523において、カバリングが、ステップ
522において加えられたコンタクトおよびビアを含
む、形状によって表わされる全てのコンタクトおよびビ
アに加えられる。ステップ522および523に含まれ
る特定のステップは後により詳細に説明する。最終ステ
ップ524の間に、コンタクトおよびビアを充填するプ
ロセスにおいて発生された形状がレイアウトフォーマッ
トに変換される。
【0264】図88は、流れ図形式で、図87の方法の
一部の拡張されたバージョンを示し、これは本発明にし
たがってコンタクトおよびビアがどこに配置できるかを
決定するものである。コンタクトおよびビアという用語
は相互交換可能に使用されることに注意を要する。しか
しながら、特に、「ビア」は金属層を他の金属層に接続
する半導体部分に言及し、一方「コンタクト」は金属層
をポリ層のようなノンメタル層に接続する半導体部分に
言及している。図88の方法はコンタクトが加えられあ
るいはビアが加えられる場合に相互交換可能に使用され
る。
【0265】図88のステップ530は形状を規定する
図87のステップ520内のサブステップに関連する。
ステップ530において、Cut形状、Top形状およ
びBot形状が規定される。図89を参照すると、Cu
t形状550はビアに対するカット層を表わす。Bot
形状552は複数のビアのランディング部分を含みかつ
また他の相互接続を含む。Top形状554は複数のビ
アのカバリング部分を含みかつまた他の相互接続を含
む。Top形状554、Cut形状550およびBot
形状552を組合わせたものはある半導体装置における
頭部、カットおよび底部層により囲まれる領域を表わす
ことに注意を要する。これらの形状はしたがって頭部層
および底部層を接続する現存するビアまたはコンタクト
を暗に表わしている。例えば、底部層はポリ層とするこ
とができ、カット層はポリコンタクト層とすることがで
き、かつ頭部層はメタル1層とすることができる。
【0266】次に、図87のステップ522のサブステ
ップである、ステップ531において、Bot形状55
2における正の領域Rが識別され、かつ図89の「イグ
ジスティング(Existing)」と名付けられた新
しい形状557に割当てられる。次に、ステップ532
において、イグジスティング形状がそれ自身(イグジス
ティング形状)がCut形状と交差したTop形状と交
差した結果として規定される。図89に示されるよう
に、Cut形状550およびTop形状554はイグジ
スティング形状557と交差して新しいイグジスティン
グ形状560を発生することが分かる。この場合、元の
イグジスティング形状557は新しいイグジスティング
形状560より大きいことに注意を要する。これは選択
された正の領域Rのいくらかの部分はCut形状550
およびTop形状554と交差しなかったことを示す。
【0267】次に、ステップ545において、イグジス
ティング形状560と隣接するTop形状554の全て
の部分が識別され、その結果がこれもイグジスティング
559と名付けられた新しい形状に割当てられる。これ
は図72の隣接識別フローを使用して達成され、これに
ついてはさらに図73において説明されている。次に、
ステップ533において、頭部無効形状が規定される。
図90に示されるように、頭部無効形状は始めに頭部形
状554からイグジスティング形状559を減算して形
状562を得ることによって決定される。形状562
は、次に、値TopSpaceによって成長されて成長
形状564を得る。値TopSpaceは技術に依存し
かつ頭部層の上の要素の間に必要とされるスペーシング
を示す。次に、成長形状564が頭部層に対する基本的
ブロッケージ形状と結合されて形状566を得る。頭部
層に対する基本的ブロッケージ形状は図90において形
状558として示されており、かつ図87のステップ5
21で導出される。
【0268】次に、ステップ534において、TopV
alid形状が規定される。TopValid形状は前
記頭部無効形状の導出ブロッケージ内でフラッド充填を
行なうことにより生成される。前記TopInvali
d形状の導出ブロッケージが前に図68によって説明し
た導出ブロッケージフローを使用して決定される。さら
に、前のフラッド充填の説明を参照。頭部無効形状のこ
の導出ブロッケージは形状568に関して図91に示さ
れている。頭部無効形状568の導出ブロッケージ内の
イグジスティング形状559のフラッド充填は図91の
TopValid形状570として示されている。この
TopValid形状は一般にTop形状に関してどこ
にカバリングまたはランディングが配置できるかを示
す。言い換えれば、もし頭部形状が金属層を表わしてい
れば、TopValidはカバリングまたはランディン
グが配置および成長できるその金属層の上の領域を示
す。
【0269】次に、ステップ535,536および53
8において、BotValid形状が識別される。ステ
ップ535においては、正の領域Rが「イグジスティン
グ」と名付けられた新しい形状に割当てられる。次にB
otValid形状がステップ533および534にお
いて識別されたTopValidのものと同様の方法で
発生される。結果として得られる「Bot無効(Bot
Invalid)」および「Bot有効(BotVal
id)」形状は図92および93を参照して説明する。
次に、ステップ542において、後に説明するように、
カットおよびカバリングが前記Top有効およびBot
有効形状内で加えられる。次に、ステップ544におい
て、Bot形状552において未処理の正の領域が存在
するか否かの判定が行なわれる。もしそうであれば、フ
ローはステップ531に進みループを構成する。そうで
なければ、図88のフローは終了し、かつ図87の方法
のステップ523に戻る。
【0270】図96および図97はカットおよびランデ
ィングを加える図88のステップ542に関して拡張を
行なうものである。特に、図96の方法は図87のステ
ップ521を実施するために図88のステップ542に
おいて使用され、一方図97の方法は図87のステップ
523を実施するために図88のステップ542におい
て使用される。
【0271】図96のステップ650において、カット
層にわたるまたはカット層の上の底部層の最小の規定さ
れたオーバラップがBotOLCutとして規定され
る。同様に、カット層にわたるまたはカット層の上の頭
部層の最小の規定されたオーバラップがTopOLCu
tとして規定される。次に、ステップ651において、
形状MightCutがTopOLCutの逆または反
転(inverse)によって成長されたBotVal
id形状と交差するTopOLCutの逆または反転に
より成長されたTopValidのインターセクション
として規定される。言い換えれば、図91の頭部有効形
状570は図94の形状586によって示されるTop
OLCutの値を負にしたものと等しい量だけ成長され
る。同様に、BotValidがBotOLCutの値
の負の値に等しい量だけ成長される。これは図94の形
状588で示されている。次に、これら2つの成長され
た形状が交差されてMightCut形状590を生成
する。
【0272】次に、ステップ652において、形状「カ
ット不能(CannotCut)」が反転されたMig
htCut形状から前記カット層に関連する基本的ブロ
ッケージ形状を減算したものの導出ブロッケージに等し
くなるよう規定される。言い換えれば、図95に示され
るように、形状594がMightCut590からC
ut592に対するブロッケージ形状を減算することに
より発生される。形状594は反転されて形状596を
生成する。この今反転された形状596に対して導出ブ
ロッケージが決定されて形状CannotCut598
を提供する。形状CannotCut598はカットが
配置できない領域を表わす。逆に、CannotCut
598の反転形状は「カット可能(CanCut)」6
00であり、かつカットが配置できる領域を表わす。
【0273】ステップ654において、前記形状Can
Cut600が空である否かの判定が行なわれる。もし
空であれば、カット、かつしたがってビア、を処理され
ている正の領域に対して加えることはできない。したが
って、この正の領域に対するフローは終了される。もし
空でなければ、ビアを加えることができかつフローはス
テップ658に進む。ステップ658においては、それ
が実行可能であってもカットを加えるべきかの判定が行
なわれる。新しいカットを加えるべきか否かを決定する
ために数多くの基準を使用することができる。そのよう
な基準の例は複数のカットがすでに前記「イグジスティ
ング」形状に存在するか否か、あるいは付加的なカット
の付加された容量があるノードに対してあまりにも多く
の容量を加えるか否かを含む。もしカットを加えるべき
でないと判定されれば、この正の領域に対するフローは
終了する。もしカットが加えられるべきであれば、フロ
ーはステップ655に進み、そこでカットおよびカバリ
ングがCut形状、Top形状、およびBot形状に加
えられる。
【0274】次に、図96のステップ656において、
加えられたカバリングが存在するまたはイグジスティン
グカバリングに接続され、かつ加えられたランディング
がイグジスティングまたは存在するランディングに接続
される。これはTop形状およびBot形状を変更また
は修正することにより達成される。図96の最終ステッ
プ657として、図51のステップ2012を参照して
前に説明したノッチ充填がその変更された形状に対して
行なわれる。
【0275】図97の方法は付加的なカットを加えるこ
となく図87のステップ523を行なうために図88の
ステップ542を行なう上で使用される。ステップ66
0において、ビアがCut形状、TopValid形
状、およびBotValid形状をいっしょに交差させ
ることにより識別される。結果として得られる形状(T
heseCuts)は全て標準セルにおけるカット、あ
るいは分析されている設計部分である。ステップ661
において、頭部カバリングが始めに形状TheseCu
tsをBestTopOLCutによって成長させ、か
つその結果をTopValidと交差させて交差した形
状を作製することにより成長される。前記交差した形状
は次に頭部形状と結合されかつ結果は新しい頭部形状と
して割当てられる。BestTopOLCuはこの方法
で加えられる最大の頭部オーバラップを規定する技術に
依存する値である。前記新しい頭部形状は可能な場合に
はカバードビアを含む。必要でないかも知れないが、少
なくとも1つのビアは始めに完全にカバーされたものよ
り小さいという仮定がある。そうでなければ、ステップ
661は何らの効果も持たない。ステップ662はステ
ップ661がカバリングを加えたのと同様の方法でラン
ディングを加える。ステップ663においては、導入さ
れたノッチ違背が修正される。
【0276】以上から、本発明は付加的なスペースを要
求することなく半導体装置の信頼性を増大することが可
能なことは明らかであろう。これは標準のセルレイアウ
ト、または他の設計部分において利用可能なスペースを
自動的に識別しかつ使用して二重のかつカバーされたビ
アを提供することによって達成される。
【0277】L.自動タイ配置 集積回路の構築において、設計者は集積回路の特定の構
造に対して生じる動作上の困難性を補償しなければなら
ない。典型的な動作上の困難性は過剰な電流消費、基板
のパワーアップ、限界を超えた局部的な熱発生、および
集積回路の設計において明らかではないが集積回路の動
作にとって重大な他の問題を含む。これらの動作上の困
難性は、もちろん、論理設計から作られる集積回路の物
理的設計、集積回路の寸法、集積回路を構築するために
使用されるプロセス、および集積回路が動作される様式
によって影響される。
【0278】特に図98を参照すると、典型的なCMO
Sトランジスタ3010はNチャネルトランジスタ30
12およびPチャネルトランジスタ3014を含む。ト
ランジスタ3012および3014はそれらが集積回路
内で特定の論理機能または論理機能の一部を実施するよ
うに接続される。各々のNチャネルトランジスタ301
2はソース3016、ゲート3018およびドレイン3
020を含み、一方各々のPチャネルトランジスタもま
たソース3022、ゲート3024およびドレイン30
26を含む。
【0279】Nチャネルトランジスタ3012はゲート
3018にしきい値電圧を超える電圧を印加することに
よりターンオンされる。いったんターンオンされると、
Nチャネルトランジスタ3012はそのソース3016
からそのドレイン3020へと導通する。あるいは、P
チャネルトランジスタ3014はそのゲート3024に
しきい値より低い電圧を印加することによりターンオン
される。いったん該トランジスタがターンオンされる
と、Pチャネルトランジスタもまたそのソース3022
からそのドレイン3026へと導通する。
【0280】図示のごとく、P型基板3030が集積回
路のためのベースとして使用される場合は、各Pチャネ
ルトランジスタ3014はP型基板3030内に形成さ
れたN型ウエル3028内に構成される。N型ウエル3
028を使用することはソース3022と基板との間に
おける直接のショートを防止するために必要とされる。
シリコン制御整流器(“SCR”)のラッチアップは基
板/ウエル接合に順方向バイアスが存在する場合に生じ
る。SCRラッチアップに応じて、集積回路は適切に機
能することを停止しかつ多量の電力を消費する。ドレイ
ン3026のP型材料、ウエル3028のN型材料、お
よび基板3030のP型材料の間でSCRラッチアップ
が生じるのを防止するため、Nウエル3028は第1の
電圧基準レベルまたはVDDに接続または連結される。
このようにして、SCRラッチアップはN型ウエル30
28の電位を第1の基準電圧VDDに固定することによ
り防止される。
【0281】ウエル3028を第1の基準電圧VDD
固定することはまたPチャネルトランジスタ3014を
ターンオンするためにゲート3024に印加されなけれ
ばならないしきい値ゲート電圧が集積回路の動作の間一
定に留まっていることを保証する。ゲート3024およ
びNウエル3028の間の相対電圧差はソース3022
とドレイン3026の間の反転層が反転するか否か、お
よびいかに急速に反転するか否か、を決定するから、前
記電圧差は制御可能でなければならない。ソース302
2またはドレイン3026への電圧の印加はNウエル3
028の電位に影響を与える。従って、N型ウエル30
28に沿ったウエルタイ(well ties)303
2はまたNウエル3028の電圧を固定しかつ前記ゲー
ト電圧しきい値が一定に留まることを保証するよう作用
する。図示のごとく、ウエルタイ3032は電源VDD
とNウエル3028の間に直接形成するか、あるいは電
源VDDとNウエル構造内のより高くドーピングされた
領域3036との間に形成することができる。
【0282】Nチャネルトランジスタ3012によって
も同様に、ソース3016またはドレイン3020に印
加される電圧は基板3030の電圧を変える可能性があ
る。そのような状況で、もし基板3030の電圧が固定
されなければ、ゲート3018へのその印加によってN
チャネルトランジスタ3012をターンオンさせるため
に必要とされるゲートしきい値電圧は変化するであろ
う。従って、基板タイ3034は通常基板3030の電
位をある基準電位VSSに固定するために使用される。
図示のごとく、基板タイは基板3030に対し直接形成
するか、あるいは基板のより高くドーピングされた部分
3035に形成することができる。
【0283】集積回路内にタイを配置することは典型的
には集積回路の物理的設計を発生する回路設計者に任せ
られている。従って、タイの付与が矛盾を生じかつマス
クセットの製造の間でそれらの配置における反復的な変
更がしばしば集積回路の正しい動作を可能にするために
必要とされる。タイの配置が後に修正されなければなら
ない動作上の困難性を引き起こさない場合にも、集積回
路内のタイの配置または付与はタイ配置に影響を与える
種々の設計ルールのため厄介なかつ困難なプロセスであ
る。集積回路はタイが正確に配置された場合にはより小
さな寸法を有するものとなり、それは適切に配置された
タイはより効率的なコンパクト化または圧縮を可能にす
るからである。従って、技術的に設計ルールに基づき集
積回路内にタイおよび接続要素の自動的な配置を行うた
めの方法および装置が必要である。
【0284】このセクションは集積回路内に自動的にタ
イを配置することに関連する。本方法は集積回路寸法、
素子の寸法、および集積回路内の素子の位置を受信する
ことによって開始される。このようにして、集積回路の
部分的な物理記述が受信される。次に、本方法は集積回
路内のタイの配置に対する配置ルールを受信する。本方
法は次に集積回路寸法、素子の位置、素子の寸法、およ
び集積回路内にタイまたは接続素子または要素を配置す
るための配置ルールを処理する。この処理に基づき、タ
イおよび接続要素は集積回路の特定の領域内の最適な位
置に配置される。タイおよび接続要素の配置は次に、そ
れらの集積回路寸法への影響を最小にしながら、集積回
路にわたる配置ルールに適合することになる。このよう
にして、このセクションで述べられる方法は集積回路設
計者が、高い効率のタイ配置を保証する一方で、集積回
路内に手作業でタイを配置する厄介なかつ単調な仕事か
ら解放する。
【0285】図99は、集積回路内のタイ配置のための
方法3100を示す。この方法は集積回路寸法を受信す
る最初のステップ3102で始まる。該集積回路寸法は
好ましくは集積回路の外側寸法ならびに集積回路内のウ
エル、電源導体、および他の主な要素または素子の特定
の配置に関連することが好ましい。これらの特定の集積
回路寸法は集積回路設計プロセスにおける設計段階の間
に得られるのが好ましい。従って、これらの寸法は集積
回路の最終的な寸法に関連するのではなく、集積回路の
物理的設計を構築する目的で確立された中間的なコンピ
ュータエイデッドデザイン(CAD)寸法である。
【0286】次に、方法3100は素子寸法および集積
回路内の素子の位置を受信するステップ3104を含
む。好ましくは、前記素子はトランジスタ、抵抗、容
量、ダイオード、素子間の接続、および集積回路を適切
に機能させるために必要な素子を含む。好ましくは、素
子寸法はそれぞれの素子の外側境界ならびに、ドレイン
境界、ゲート境界およびソース境界のような、素子に関
連する種々の素子間または素子内境界を確立する。好ま
しくは、前記素子寸法は少なくとも2つの寸法、高さお
よび幅を含むが、素子部分の好ましい深さを含むことも
できる。好ましくは、前記特定の素子寸法は設計段階の
間に得られかつ製造された集積回路内の素子の最終的な
寸法に関連しない。素子の位置および寸法に基づき、素
子の間の相対的位置も決定できる。ステップ3102に
おける集積回路寸法およびステップ3104における素
子の位置および素子の寸法の受信により、集積回路の基
本的な物理レイアウトが確立される。
【0287】次に、ステップ3106において、本方法
3100はタイ配置ルールを受信する。タイ配置ルール
は典型的には特定の素子、または素子の部分、および設
計ルールに基づく集積回路内のタイの間の最大距離に関
連している。タイは考慮中の集積回路の部分に応じて基
板タイまたはウエルタイを含むことができる。図98に
示されるように、ウエルタイは第1の基準電圧VDD
集積回路内のウエルとの間の接続を含み、一方基板タイ
は第2の基準電圧VSSと集積回路の基板との間の接続
を含む。タイ配置ルールは、忠実に守られたとき、ゲー
トしきい値電圧限界が違背せずかつ集積回路がSCRラ
ッチアップを生じないことを保証する。
【0288】本発明の好ましい形式においては、3つの
別個のタイ配置ルールが忠実に守られる。第1のタイ配
置ルールは「タイスペーシング(tie spacin
g)」と称され、これは集積回路内の隣接するタイの間
の最大距離である。PチャネルおよびNチャネルトラン
ジスタの双方を含む集積回路の場合は、2つの異なるタ
イスペーシングを考慮しなければならない。第1のタイ
スペーシングはウエルタイの間の最大距離であり、一方
第2のタイスペーシングは基板タイの間の最大距離であ
る。タイスペーシングは典型的には集積回路にわたる水
平距離に関連している。典型的な集積回路においては、
セルは基板表面にわたり行(rows)に配置され、各
々のセルは特定の論理機能を達成しかつ他のセルと相互
接続されている。電源およびグランド導体は前記セルの
行の上部および下部境界を規定しかつセルに対して電源
およびグランドを提供する。本発明の好ましい形式で
は、タイスペーシングはセルの行に平行な方向での最大
距離である。
【0289】第2の好ましいタイ配置ルールは「ウエル
エッジスペーシング(well edge spaci
ng)」と称され、これはウエルのエッジとウエルタイ
の間の最大スペーシング距離に関連する。好ましくは、
ウエルエッジスペーシングは集積回路内のセルの行と垂
直の方向で測定される。従って、本発明の好ましい形式
では、タイスペーシングおよびウエルエッジスペーシン
グはお互いに垂直に適用されるルールである。
【0290】第3の好ましいタイ配置ルールは「拡散ス
ペーシング」と称される。拡散スペーシングは集積回路
面にわたる任意の方向で見た能動的な(active)
拡散とタイとの間の最大距離である。従って、拡散スペ
ーシングルールは集積回路にわたり2つの方向で満たさ
れなければならない。
【0291】タイスペーシング、ウエルエッジスペーシ
ング、および拡散スペーシングは典型的には集積回路に
対して固定される。しかしながら、タイの間のスペーシ
ングはこれらのルールのどれが集積回路上の特定の位置
に対して最も厳しいかに依存して変化する。集積回路内
のある特定の位置に対してどのルールが最も厳しいかを
決定することは特定の位置に近接する素子に依存する。
例えば、タイの近くのトランジスタの寸法は、拡散スペ
ーシングルールに従って、タイと引き続くタイとの間の
最大距離を決定する。従って、タイの間のスペーシング
は集積回路内の各々の特定のタイの配置に対して決定さ
れタイ配置を最適化しかつタイ配置ルールを満たすため
に必要とされるタイの数を最小にしなければならない。
これら3つのタイ配置ルールに加えて、それぞれのタイ
は集積回路が製造できるように隣接する素子からある最
小距離にあるいはそれを越えて配置されなければならな
い。言い換えれば、集積回路に対する通常のCAD設計
ルールも満たされなければならない。
【0292】ステップ3106から、本方法はステップ
3108に進み、そこで集積回路寸法、素子の位置、素
子の寸法、およびタイ配置ルールを処理して集積回路内
にタイを配置する。好ましくは、このステップは最後の
タイが配置された集積回路内の現在の注目の位置を考慮
しかつ新しいタイ配置位置を選択することを含む。従っ
て、ステップ3106において受信されたタイ配置ルー
ルにより、ステップ3108は新しいタイ配置位置への
最大距離を決定するためにタイ配置ルールを処理するこ
とを含む。
【0293】ステップ3108から、本方法は判断ステ
ップ3110に進み、そこで集積回路内に最後のタイが
配置されたか否かを判定する。もしステップ3110に
おいて、最後のタイが配置されていなければ、本方法は
再びステップ3108に進み、そこで集積回路内の他の
タイが配置される。しかしながら、もしステップ311
0において、最後のタイが配置されたことが判定されれ
ば、本方法は終了する。好ましくは、集積回路の適切な
動作を保証するために集積回路内に数多くのタイが配置
される。従って、ステップ3108は集積回路内のすべ
てのタイを配置するために数多くの回数実行されること
になる。
【0294】このセクションにおいて説明された方法3
100は任意の集積回路内にあるいは集積回路の任意の
部分にタイを配置するために使用できる。1つの用途で
は、方法3100は標準セルライブラリのセル内にタイ
を配置するために使用でき、その場合標準セルライブラ
リのセルは総合的な集積回路設計を作製するために何度
も使用される。他の用途では、方法3100は完成した
集積回路あるいは標準セル設計手法を使用しない集積回
路のモジュールにわたりタイを確立するために使用でき
る。
【0295】従って、このセクションにおいて述べられ
た方法3100は集積回路内にタイを自動的に配置しそ
のような配置が複雑なタイ配置ルールに適合するように
する。このようにして、タイ配置ルールとの適合が確か
なものとなりかつ設計者により前に導入されたエラーお
よび効率の悪さは除去される。従って、方法3100は
集積回路設計内にタイを配置する上での時間およびコス
トを低減するのみならず、集積回路が製造され試験され
た後にのみ明らかになる設計上の問題を直すことに関連
するコストを低減する。
【0296】図100は図99の方法3100に従って
そのタイを配置した集積回路の一部3120を示す。該
集積回路3120は第1の基準電圧VSSに固定された
グランド導体3122および第2の基準電圧VDDに固
定された電源導体3124を含む。電源導体3124は
集積回路3120にわたり行に配置された複数のPチャ
ネルトランジスタ3125に近接して存在している。各
Pチャネルトランジスタ3125はソース3150、ド
レイン3152、およびゲート3154を含む。Pチャ
ネルトランジスタ3125はウエル境界3127によっ
て規定されるウエル3126内に形成されている。図9
8によって前に説明したように、ウエル3126はドー
ピングされたN型であり、一方集積回路3120を構成
する基板はP型基板である。従って、Pチャネルトラン
ジスタ3125の各々はウエル3126の一部に形成さ
れている。
【0297】集積回路3120はまた複数のNチャネル
トランジスタ3123を含み、該トランジスタ3123
の各々はドレイン3130、ソース3134、およびゲ
ート3132を含む。Nチャネルトランジスタ3123
は集積回路3120にわたり行に配置されかつ集積回路
のP型基板内に形成されている。もちろん、Nチャネル
トランジスタ3123は基板の異なるようにドーピング
された表面部分に形成することもできる。
【0298】図100に示された集積回路3120はよ
り大きな集積回路内の2つの行のトランジスタの一部で
ある。好ましくは、集積回路3120は数百の行を含
み、各行は図100に示される部分の数百倍の幅を有し
ている。図100に示された部分は集積回路3120の
目標を達成するために種々の他のセルと相互接続された
集積回路3120内の1つのセルを表すことができる。
タイ配置ルールは集積回路のすべての部分に適用されか
つ従って集積回路内の各々のセルに適用される。本発明
の1つの用途においては、タイは標準セルライブラリの
セルがいっしょに使用された場合に全体として集積回路
にわたりタイ配置ルールが満たされるように標準セルラ
イブラリの各々のセル内に配置される。従って、図10
0に示された集積回路3120の部分は単に本発明の教
示を示すために使用されており、該教示は種々の他の集
積回路にも同様に適用可能である。
【0299】集積回路部分3120は第1の垂直エッジ
3160および第2の垂直エッジ3161、ならびに電
源導体3124およびグランド導体3122によって規
定される。本発明によれば、図98に従ってタイを配置
する方法3100は集積回路の左エッジ3160で始ま
りかつ集積回路の右エッジ3161に向かって進行す
る。Pチャネルトランジスタ3125を含む行の左エッ
ジ3160はそこから引き続くウエルタイが配置されな
ければならない第1の基準位置である。もしエッジ31
60が完全な集積回路3120の外側エッジを表してお
れば、特定のウエルタイスペーシングが必要とされる。
しかしながら、もしエッジ3160が他のセルのエッジ
に当接または隣接するセルのエッジを表しておれば、ウ
エルタイはエッジ3160のある距離内に存在するもの
と仮定される。従って、タイ配置ルールは、適用された
とき、異なる場合に対してエッジ3160から異なるウ
エルタイスペーシング要件を生じることがある。
【0300】タイ配置ルールに基づき、エッジ3160
から次のウエルタイまでの距離は最大スペーシング距離
より小さくなければならない。この距離はエッジ316
0に近接した素子、集積回路に対する特定の設計ルー
ル、標準回路設計ルール、基板特性、ウエル特性、なら
びに種々の他の特性およびルールに基づいている。ウエ
ルタイ3146または3148は次にエッジ3160か
ら所定の距離内に配置される。
【0301】図示のごとく、タイ3146および314
8はそれらが物理的に第2の基準電圧3124をウエル
3126に接続する点でトランジスタ3142に対する
コンタクトと異なっている。導電性構造3147は第2
の基準電圧VDDを電源導体3124の下部のウエルタ
イ3146およびウエル3126のエッジ近くのウエル
タイ3148の双方に連結する。ウエル3126のエッ
ジに近いウエルタイ3148がタイ配置ルールを満たす
ために必要とされない場合は、ウエルタイ3146は単
に導電構造3147を延長することなく電源導体312
4の下からウエル3126へと形成されるのみでよい。
図示された導電構造3147はまたVDDにバイアスさ
れた電源導体3124を関連するPチャネルトランジス
タ3125のソース3172に結合する。従って、導電
性構造3147はPチャネルトランジスタ3125のソ
ース3172に給電しかつウエルタイ3148の接続を
提供するよう作用する。
【0302】ウエルエッジスペーシングルールは距離3
162によって示されている。ウエルエッジスペーシン
グはウエル3126のエッジとタイ3148の間のまた
はウエル3126のエッジとタイ3146の間の最大ス
ペーシング距離を表す。基板はVSSのグランド導体3
122に連結されるから、ウエルタイ3148はウエル
の電圧が基板の電圧に向かってドリフトしないようにウ
エルエッジからウエルエッジスペーシング3162より
大きくないように配置されなければならない。本発明の
好ましい実施形態では、ウエルエッジスペーシングは集
積回路3120内のトランジスタの行に垂直な距離で測
定される。従って、ウエルタイ3148はウエルエッジ
スペーシング3162を満足する。ウエルタイ3146
は単に導電性構造3147のような別個の導電性構造を
必要とすることなく必要に応じて電源導体3122の下
に配置することができる。ウエルタイ3146は単に集
積回路3120の電源導体3124およびウエル312
6の間の導電性コンタクトである。
【0303】集積回路3120の部分のトランジスタの
行に平行な方向でのウエルタイの間のスペーシングは距
離3164によって表される。タイスペーシングルール
はチャネル領域3137の近くに存在する図示された2
つのウエルタイ3148によって満たされる。チャネル
領域3137はゲーテッド(gated)トランジスタ
のチャネル領域と混同すべきでないことに注目すること
が重要である。ここで使用されているチャネル領域31
37はPチャネルトランジスタ領域とNチャネルトラン
ジスタ領域との間の分離領域(separation
region)でありかつトランジスタのゲーテッド領
域でない。前記ルールはまた導体3124の下のウエル
タイ3146の間の特定のスペーシングによって満たさ
れる。図示のごとく、ウエル3126のエッジ近くの第
2のウエルタイ3148を提供する導電性構造3149
は拡散ブレーク内に配置されておりかつ従来技術の導電
性構造3147が行ったようなPチャネルトランジスタ
3125のソース3150に電圧VDDを提供するもの
ではない。拡散ブレーク内にはトランジスタは存在しな
い。図示された導電性構造3147のような、いくつか
の場合には、Pチャネルトランジスタ3125に近くの
ウエルタイの配置はトランジスタ3125の位置に影響
を与えない。しかしながら、他の場合には、トランジス
タの近くのウエルタイ3148の配置はPチャネルトラ
ンジスタ3125の間の接続の配置に影響を与える。拡
散ギャップ内のウエルタイの配置はさらにこのセクショ
ンにおいて説明された方法の後に行われるのが好ましい
コンパクト化ステップの間により大きなコンパクト化密
度を可能にするという利点を提供する。
【0304】基板タイ3138および3144はタイ配
置ルールを満たすためにNチャネルトランジスタ312
3の行内に配置される。チャネル領域3137に近い基
板タイ3136は電源導体3124とグランド導体31
22の間の実質的に中間に配置され、一方基板タイ31
38はグランド導体3122の下に配置される。基板タ
イ3136および3138の双方は電圧VSSのグラン
ド導体3122に接続された導電構造3128に、かつ
接続3142においてNチャネルトランジスタ3123
のソース3134に接続される。このようにして、導電
構造3128は基板タイ3136および3138への接
続ならびにトランジスタソース3134への接続の二重
の目的を達成する。
【0305】基板タイは単に基板タイ3141のような
別個の導電構造を必要とすることなく必要に応じて電源
導体3122の下に配置することができる。電源導体3
122の下に配置されたとき、基板タイはもしそれがチ
ャネル領域3137にあれば生じるような、集積回路の
その後のコンパクト化を妨げることはない。基板タイ3
141は単にグランド導体3122と集積回路3120
の基板の間の導電性コンタクトである。コンタクト31
41は下に横たわる高くドーピングされたP領域にコン
タクトすることができかつタングステンプラグ、ポリシ
リコン、アルミニウム、窒化チタン、シリサイド、また
は他の知られたビア導電材料または導電性複合体によっ
て充填することができる。特定の基板タイスペーシング
距離3166はNチャネルトランジスタ3123の行に
平行な基板タイ3136および3144の間の最大距離
を示している。
【0306】拡散スペーシング3168はトランジスタ
内のアクティブな拡散および基板タイ3136の間の任
意の方向での最大距離として示されている。図示のごと
く、Nチャネルトランジスタ3123の拡散領域のいち
ばん端のエッジは最も近い基板タイ3136からの拡散
スペーシング距離3168内になければならない。図示
のごとく、拡散領域はNチャネルトランジスタ3123
のドレイン3130またはソース3134のいずれとも
することができる。あるいは、拡散はまたウエル312
6内に形成されたPチャネルトランジスタ3125のド
レイン3152またはソース3150である。従って、
拡散スペーシングルールはPチャネルトランジスタ31
25ならびにNチャネルトランジスタ3123に適用さ
れる。拡散スペーシング距離3168は集積回路312
0上の任意の拡散ポイントおよびそれぞれのウエルまた
は基板タイの間の距離を考慮するから、拡散スペーシン
グルールは単一のディメンションにおいてのみ適用され
るタイスペーシングルールおよびウエルエッジスペーシ
ングルールと異なり2次元で適用される。
【0307】従って、本発明の方法3100によって図
100の集積回路3120内にタイが配置された。該タ
イ3136,3138,3146および3148はタイ
配置ルールに従って配置されSCRラッチアップおよび
ゲートしきい値電圧の変動を防止する。
【0308】図101は、集積回路内にタイを自動的に
配置するための別の方法3200を示す。該方法320
0は集積回路の寸法を受信するステップ3202で始ま
る。図99の方法3100と同様に、方法ステップ32
02は好ましくは集積回路の外側境界を完全に表現する
集積回路寸法ならびに集積回路内の重要な寸法を受信す
るステップを含む。次に、ステップ3204において、
本方法は素子の位置、素子の寸法、および素子のスペー
シングルールを受信する段階を含む。このようにして、
ステップ3202および3204の組合せは集積回路の
部分的な物理的記述を提供する。このセクションにおい
て説明される方法3200の実行の前に、集積回路内に
各素子が配置される。好ましくは、方法3200は集積
回路内に接続をルーティングする前に行われる。しかし
ながら、方法3200はまたいくらかの信号のルーティ
ングが完了した後に行うこともできる。方法3200が
完了した後、コンパクト化ステップが行われて集積回路
内の素子の最終的な位置が確立される。そのようなコン
パクト化は集積回路設計ルールに従って集積回路寸法を
最小にするために行われる。
【0309】次に、ステップ3206において、本方法
3200は配置ルールを受信することを含む。前に述べ
たように、タイ配置ルールは好ましくはタイスペーシン
グ、ウエルエッジスペーシング、および拡散スペーシン
グを含む。これらのスペーシングは集積回路内のタイの
配置に対する境界条件を表す。さらに、前に述べたよう
に、タイ配置ルールは静的な(static)ものとす
ることができ、あるいはそれらは集積回路内の考慮中の
特定の素子および集積回路の考慮中の特定の位置に基づ
き動的なものとすることができる。従って、タイ配置ル
ールは集積回路および集積回路内の位置によって集積回
路設計、製造のために使用されるプロセス、集積回路の
動作電圧、および集積回路の動作に影響を与える他の要
因に基づき変動する。
【0310】次に、ステップ3208において、本方法
は基準位置として集積回路の左エッジを確立することを
含む。図100の集積回路3120に関して述べたよう
に、集積回路の左エッジ3160は集積回路全体のエッ
ジであってもよく、あるいは単に集積回路ライブラリ内
の1つのセルのエッジでもよい。
【0311】次に、ステップ3210において、本方法
はタイ配置ルール、素子の位置、および素子の寸法に基
づき配置されるべき新しいタイと基準位置との間の最大
距離を決定することを含む。前に述べたように、該最大
距離は特定の基準位置に対して計算されたタイスペーシ
ング、ウェルエッジスペーシング、および拡散スペーシ
ングに基づくことができる。例えば、他のセルに隣接し
て配置されるセルのエッジに位置する基準位置により、
タイが隣接セルに配置されたことが想定される。このよ
うにして、その中にタイを配置すべきセルエッジからの
最大距離は総合的な最大スペーシング距離のほぼ2分の
1となる。したがって、2つの隣接するセルの各々にお
ける2分の1のスペーシング距離により、隣接するセル
における最も近いタイの間の距離は前記最大距離を満た
すことになる。
【0312】次に、ステップ3212において、本方法
3200は新しいタイが配置できるインターバルを推定
することを含む。このインターバルは前記最大距離、素
子の位置、素子の寸法、素子のスペーシングルール、お
よび好ましくはその後のコンパクト化ステップにおいて
得られる推定されたコンパクト化密度に基づく。
【0313】素子のスペーシングルールは隣接素子の間
の最小要求スペーシングに関係する。図102はいくつ
かの可能なスペーシングルールの例を示す。トランジス
タ3240および3242のような、お互いに接続され
ていない隣接トランジスタの場合は、第1のトランジス
タ3240のソース3230と隣接トランジスタ324
2のドレイン3232との間に充分なスペースがありそ
れによってソース3230とドレイン3232との間で
導通が生じないようにしなければならない。そのような
スペーシングは素子を分離する材料の特性のみならず、
使用される製造プロセスの予期される変動をも考慮しな
ければならない。隣接するが接続されていないトランジ
スタ3240および3242の間のスペースは拡散ブレ
ークとして知られており、それはトランジスタを分離す
る材料が拡散によって変えられていないからである。
【0314】お互いに接続されているが回路の他のポイ
ントには接続されていない拡散部分を有する隣接トラン
ジスタの場合は、異なるスペーシングルールが適用され
る。この状況では、外部接続を有しない接続されたトラ
ンジスタ3242および3244はそれらのそれぞれの
ゲート3239および3238の間に充分なスペーシン
グを有しそれによってゲート3238からゲート323
9へと導通が生じないようにしなければならない。動作
においては、ゲート3238および3239は異なる電
圧にドライブされることができ、該トランジスタの1つ
がターンオンされかつ1つがターンオフされてもよい。
この状態にあるとき、好ましくない導通またはクロスト
ークを防止するためにゲート3238と3239との間
に充分なアイソレーションがなければならない。したが
って、製造プロセスの変動を考慮すると、拡散部分32
34および3236を通るゲート3238および323
9の間の充分なスペーシングが存在してゲート3238
および3239の間の導通を防止しなければならない。
隣接トランジスタがお互いに接続されているが回路の他
のポイントには接続されていない位置はコンタクト位置
のない拡散(diffusion with no c
ontact location)として知られてい
る。
【0315】最後に、お互いにかつ回路のいずれか他の
ポイントに介在する拡散コンタクト3238を介して接
続された拡散部分を有する隣接トランジスタ3244お
よび3246の場合には、他の素子スペーシングルール
が適用される。この場合、前記拡散部分が集積回路の金
属層にコンタクトするから、トランジスタ3244およ
び3246が接続プロセスの変動を考慮して適切に動作
することができるようにするためそれぞれのゲート32
38および3237の各々および拡散コンタクト324
8の間に充分なスペーシングがなければならない。隣接
トランジスタがお互いに、ならびに回路のいずれか他の
ポイントに介在する拡散コンタクトを通して接続される
位置はコンタクテッド拡散ポイント(contacte
d diffusion points)として知られ
ている。
【0316】本方法3200の好ましい実施形態におい
ては、コンパクト化はタイの配置の後に行なわれ、それ
によって集積回路内の素子が少なくとも水平距離におい
て互いにより近く移動するようにされる。コンパクト化
はまた集積回路が製造できるように集積回路内のタイお
よび接続の配置を考慮しなければならない。素子の全て
のコンパクト化は素子のスペーシングルールおよび接
続、素子およびタイの間のスペーシングに違反すること
なく実施されなければならない。最大タイスペーシング
はコンパクト化の後に適合されなければならないのみで
あるから、タイスペーシングのインターバルは計画され
たコンパクト化密度に基づき調整される。ステップ32
12内で、インターバルが素子の位置、素子の寸法、お
よび素子のスペーシングルールを処理することによって
決定される。始めに、最大タイスペーシング距離はある
係数、好ましくは120%、によってスケーリングされ
て最適でないコンパクト化を考慮する。素子の幅および
隣接する素子の間の最小スペーシング距離が引き続きス
ケーリングされた最大タイスペーシング距離に到達する
まで集積回路に沿って隣接素子に対し加算または合計さ
れる。これは前記インターバルの外側境界を決定する。
前記インターバルの内側境界は好ましくは前記基準位置
にセットされる。したがって、タイがその中に配置され
るべきインターバルはステップ3212を達成するため
に規定される。
【0317】次に、ステップ3214において、本方法
3200は前記インターバル内で最適の配置位置を決定
することを含む。該最適の配置位置は前記インターバル
内の素子の位置、前記インターバル内の素子のタイプ、
前記インターバル内の任意の拡散ブレーク、および前記
インターバルに沿った種々の位置で要求されるルーティ
ング接続の数に基づく。したがって、前記インターバル
内で最適の配置位置を決定するステップは少なくとも部
分的に前記基準位置に基づいている。前記インターバル
内の最適の位置は最大のコンパクト化が行なわれかつし
たがって素子の動作およびルーティングが最小限に乱さ
れるように決定される。好ましくは、タイは素子が乱さ
れることまたは妨害が最小になりかつルーティングの障
害が除去されるようにチャネル領域の代りに導体領域
(rail regions)に配置される。もちろ
ん、いくつかの状況では、ウェルエッジスペーシングお
よび拡散スペーシングルールに応じて、タイはチャネル
領域にも配置されなければならない。
【0318】ステップ3214は前記基準位置から前記
インターバル内の最も遠い拡散ブレークを考慮する。前
に述べたように、拡散ブレークは基板ドーピングレベル
を保持しておりあるいはウェルの形成の後にドーピング
されていないウェルの一部である素子の間の集積回路内
の位置(location)である。ステップ3214
はまた前記基準位置からインターバル内で基準電圧接続
への最も遠い拡散を考慮する。基準電圧接続への拡散は
典型的にはVDDからPチャネルトランジスタのソース
への接続、あるいはVSSからNチャネルのソースへの
接続からなる。さらに、ステップ3214は前記基準位
置から前記インターバル内のコンタクトのない最も遠い
拡散を考慮する。コンタクト位置のない拡散は典型的に
は直列接続ポイントにおいて他の接続なしに直列に接続
された隣接するトランジスタの間のドレインからソース
への接続である。
【0319】ステップ3214から本方法は最適の位置
にタイを配置するステップ3216に進む。これはチャ
ネル領域の近くにウェルタイを、電源導体の下にウェル
タイを、チャネル領域の近くに基板タイを、あるいはグ
ランド導体の下に基板タイを配置することを含むことが
できる。いずれの場合も、ステップ3214におけるタ
イの配置は、前記最大距離のスケーリングファクタに反
映された、コンパクト化の効率の想定が正しかったと仮
定して推定されたインターバル内の全ての素子に対しタ
イ配置ルールを満たす。
【0320】ステップ3216から、本方法は判断ステ
ップ3218に進み、そこで前記タイ配置位置が右エッ
ジに近いか否かが判定される。もしタイ配置位置が集積
回路セル、または集積回路、に配置されるべき最後のタ
イに対するタイ配置ルール内にあれば、本方法は完了す
る。しかしながら、もしステップ3218において、タ
イが右エッジ近くに配置されていなければ、本方法は前
記タイ配置位置を新しい基準位置として割当てるステッ
プ3220に進む。ステップ3220から本方法は再び
ステップ3210に進み他のタイが適切な位置に配置で
きるようにする。ステップ3210〜3220が集積回
路内の全てのタイが配置されるまで反復される。
【0321】したがって、図101に示される方法32
00は全てのタイをそれらがタイスペーシングルールに
適合しかつ最適に配置されるように集積回路内に配置す
る。そのような配置は集積回路内の素子の動作および位
置を最小限に混乱させかつ集積回路内に最も効率よくタ
イを配置するように行なわれる。図101の方法320
0の利点は集積回路設計者の入力に対する設計時間およ
びコストの低減のみならずタイスペーシングルールとの
適合を保証することに及ぶ。
【0322】M.基板およびウェルタイ形式選択 基板およびウェルタイはCMOS回路レイアウトにおい
てデバイスのラッチアップを防止するために必要とされ
る。(ラッチアップおよびタイについては「自動タイ配
置」と題するセクション“L”により詳細に説明されて
いる)。タイ形式(Tie Types)はウェルおよ
び基板タイがレイアウトにおいて水平方向に配置できる
位置の種類または類別(classes)を述べてお
り、例えば、「導体の下」または「チャネルの中」とさ
れる。タイ様式(Tie Styles)はゼロまたは
それ以上のタイ形式(Tie Types)を含むセッ
トである。選択されるタイ形式は所望の技術に基づき全
てのタイ関連設計ルールを満たさなければならない。タ
イ様式の選択は、コンパクト化、配置およびルーティン
グがクリティカルな合成ステップである、自動レイアウ
ト合成において非常に重要である。
【0323】このセクションはCMOSセミカスタム、
フルカスタム、および/または標準セルレイアウトの自
動合成に関してラッチアップ保護のために基板およびウ
ェルタイ様式を自動的に選択することに向けられてい
る。初期最小タイ様式が合成を始めるために選択され
る。もし設計ルールが正しいセルがタイ様式内で作製で
きなければ、異なるタイ様式が選択されかつ再び合成が
行なわれる。各タイ様式内でタイの配置に対して効率的
な推定または評価が行なわれ、それによってルーティン
グがレイアウトの領域に悪影響を与えることなくコンパ
クト化できかつ人間の介在が必要とされないようにな
る。この手順はセルレイアウト合成プロセスを完全に自
動化しかつ設計ルールの正しいレイアウトを生成するた
めに、セルレイアウトの密度に悪影響を与えることな
く、行なう上で必須のことである。
【0324】図103は、マスクレベルで示された標準
セルレイアウトを示す説明図である。該レイアウトは構
成要素(components)のみを配置し、ルーテ
ィングはまだ完成されていない標準セル2400を示
す。この回路はPチャネルトランジスタ2402、およ
びNチャネルトランジスタ2404からなる。2つの電
源導体、「電源(VDD)」2406、および「グラン
ド(GND)」2408、がある。Pチャネルトランジ
スタ2402とNチャネルトランジスタ2404の間に
はチャネル2410がある。また、3つのタイ形式(T
ie Types)が示されている。該タイ形式は2つ
の電源導体の上に配置され(レールタイ:Rail T
ies)2412、PチャネルおよびNチャネル領域の
間のチャネルに配置され(チャネルタイ:Channe
l Ties)2414、およびトランジスタと導体と
の間に配置され(アウェイ・チャネルタイ:Away
Channel Ties)2416で示されている。
典型的には、ウェルおよび基板タイは電源導体2412
の上に配置されている。より最近では、タイに対する設
計ルールはそれらがPチャネルおよびNチャネルトラン
ジスタの間に配置され、2414、およびトランジスタ
とそれらの対応する導体との間に、2416、配置され
ることを要求している。しかしながら、今日の大部分の
自動ツールは「レールタイ」2414についてのみ配置
できる。他の2つの形式のタイ2414,2416をも
可能なツールは1つのタイ様式(Tie Style)
が予め決定されかつ合成プロセスの間にわたり使用され
ることを要求する。いったん該タイ様式が決定されまた
は特定されると、「自動タイ配置」と題するセクション
“L”において上で開示したタイ配置方法を使用してタ
イを水平寸法に配置するために使用できる。
【0325】単一のタイ様式を明確に特定することはレ
イアウトの領域を不必要に増大する可能性がある。さら
に、最適のタイ様式についての推測が不充分となりかつ
設計ルールに適合しない設計を生じる結果となる。実際
に、実験によりいくつかのタイ様式は設計ルール的によ
り正しくないレイアウトを発生するという犠牲を払って
より小さなレイアウトを発生した(以下の表1を参
照)。また、「チャネルタイ」のタイ形式はその合計面
積が実質的に前記「自動」タイ様式を使用して作製され
たセルレイアウト領域よりもかなり大きなレイアウトを
発生した。
【0326】最適のタイスタイルまたはタイ様式が最も
小さい領域を備えたレイアウトを生じかつ設計ルール的
に正しい、標準セルライブラリにおいて各セルに対して
最適のタイ様式を決定することは重大かつクリティカル
である。典型的には、1つのタイ様式は標準セルライブ
ラリにおけるそれぞれのセルに対して最適のタイ様式で
はない。タイ様式を選択する方法はまたライブラリにお
いて発生される全てのセルが設計ルール的に正しいこと
を保証しなければならない。最後に、あるセルの最適の
タイ様式を、最も非侵入的な(non−intrusi
ve)タイ様式の選択を備えて、サーチを始めることが
重要である。最も非侵入的なタイ様式の選択はルーティ
ングおよびレイアウト合成のコンパクト化ステージに対
して最も少ない影響を与えるタイ様式である。
【0327】図104は、ある与えられたセルに対して
自動的にタイ様式を選択する方法の動作の流れを示すフ
ローチャートである。それは、ステップ2420におい
て、タイパラメータおよびトランジスタ配置の詳細を受
信することで始まる。図4に示されるシステムにおいて
は、これらは先行するフロー要素またはステップによっ
て提供される。次に、選択されるべきタイ様式の順序が
規定されかつ第1のタイ様式が選択される、ステップ2
422。
【0328】図105は好ましい実施形態において使用
されるタイ様式選択マトリクスを示す。このテーブルに
は8つの異なる組合わせが示されている。これらはタイ
が水平ディメンションに配置できる3つのサポートされ
た位置の8つの組合わせを規定している。タイ241
2,2414,2416に対する3つのサポートされた
位置は図103に示されている。前記8つの組合わせは
ルーティングに対して最も侵入的でなくかつより良好な
密度を有するタイ様式が優先度を与えられるように順序
付けられる。しかしながら、より高い優先度を備えたタ
イ様式はしばしば設計ルール的により正しくない傾向が
ある。ルーティングに対してより侵入的でありかつより
悪い密度を有するタイ様式は設計ルールを満たすよりよ
い機会を有するということになる。ステップ2422に
おいては、タイ様式選択がこのポイントでは何らのタイ
も配置されずに開始される。これは通常最善の密度を生
じる結果となりかつしたがって最も小さなレイアウト領
域を有する最も侵入的でない選択であるが、それはまた
設計ルール的に正しいレイアウトを生じることが最も少
ない選択でもある。
【0329】図104に戻ると、ステップ2424にお
いて、タイが前記タイ様式選択にしたがって配置され
る。このステップは前の「タイ配置」セクションにおい
てより詳細に説明されている。これに続き、ステップ2
426における「ルーティングおよびコンパクト化」が
行なわれる。これらのステップもまた本明細書の他の部
分に説明されている。
【0330】ルーティングおよびコンパクト化の後に、
ステップ2426の試験が行なわれてタイカバレージル
ールが満たされているか否かを判定する、ステップ24
28。もし、ステップ2428において、タイカバレー
ジルールが満たされており、かつセルがライブラリに対
する目標の高さに合致していれば、タイ様式選択処理が
行なわれる。そうでなければ、他のレイアウト要素に対
して設計ルールの違反を生じさせることなく、ステップ
2430において、可能な場合にはコンタクトおよびタ
イが加えられる。このステップは「タイカバレージ(T
ie Coverage)」を増強するよう設計され
る。このステップの動作は「タイ充填」と題するセクシ
ョン“J”に詳細に説明されている。次に試験が行なわ
れてタイカバレージルールが今や満たされているか否か
を判定する、ステップ2432。もしセルレイアウトが
今や「タイ配置」として設計ルール的に正しければ、タ
イ様式選択処理は今や完了する。そうでなければ、次の
タイ様式が選択され、ステップ2434、および動作は
ステップ2404において続けられる。次のタイ様式は
図105に示されたテーブルに規定されたリニアな順序
に基づき選択される。
【0331】ステップ2428、および2432におい
て、タイカバレージルールが満たされる前に全てのタイ
様式2440が使い尽くされた場合には、ステップ24
20からのタイパラメータまたはトランジスタ配置パラ
メータが修正または変更されなければならない。これは
常に過度に侵略的な(over−aggressiv
e)トランジスタおよびポート配置の結果である。
【0332】この方法の1つの利点はタイに割当てられ
る領域の量が最小化され、一方最大のタイカバレージを
保証することが可能なことである。これは部分的には最
善の密度を生じる結果となるタイ様式に優先度を与える
ことによって行なわれる。好ましい実施形態では、この
最善の密度は「レールタイ」2412、「チャネルタ
イ」2414、あるいはトランジスタおよび導体の間の
タイ(アウェイ・チャネルタイ)2416に対し何らの
スペースも割当てられない場合に達成される。このタイ
様式選択はタイカバレージルールに違反するレイアウト
を生じる結果となっても、設計ルール的に正しいレイア
ウトは依然としてセルレイアウト領域を増大しあるいは
設計ルールの違反を導入することなく、可能な場合に
は、レイアウトコンパクト化ステップ2426の後にコ
ンタクトおよびタイを加えることにより、ステップ24
30において発生することができる。もしステップ24
30の動作がステップ2432におけるタイカバレージ
ルールを満たしていれば、より侵入的なタイ様式は選択
される必要がない。
【0333】以下の表1は25のセルからなる標準セル
ライブラリに対して種々のタイ様式を使用したサンプル
結果を含んでいる。
【表1】 DRCチェック タイ様式 セル領域 失敗 合格 −−−−−−−−−−−−−−−−−−−−−−−−−− タイなし 398850 22 3 レールタイ 456622 19 6 チャネルタイ 486197 3 22 自動タイ 476579 0 25
【0334】始めに、最初の3つのタイ様式は設計ルー
ル的に正しくないセルを発生したことに注意を要する。
これはかなりの負の歩留まりの意味を有する。領域と設
計ルールの正しさとの間にトレードオフがある。第2
に、ステップ2430によりタイに対して初期スペース
を割当てることなく3つのセルの場合に設計ルール的に
正しいレイアウトを発生する可能性があった。タイ配置
ステップ2440の間にこれら3つのセルに割当てられ
たスペースは必要以上に大きいレイアウトを生じさせ
る。これは図105におけるテーブル2440の最初の
タイ様式選択「タイなし」に対応する。「自動」タイ様
式は設計ルールの違反を生じることなくライブラリにお
いて全てのセルを発生することができる唯一のタイ様式
の選択であった。
【0335】上に述べた好ましい実施形態は、技術によ
って説明される設計ルールを固守する一方で、最小の領
域に自動的にセルレイアウトを発生するために使用され
る。
【0336】
【発明の効果】
IV.結論 ここに開示された標準的なセルレイアウトの自動的合成
は寸法的に、極めて少ない時間で、手作業の標準セルラ
イブラリに匹敵する、かつ多くの場合それよりも優れた
標準セルライブラリを発生することができる。この方法
によって発生されたライブラリにおけるセルはしばしば
従来技術の自動化方法を使用して発生されたセルのサイ
ズの半分またはそれ以下である。標準セルレイアウトの
発生に関して示されたが、ここに開示された多くの技術
および方法は他の形式のレイアウトにも適用可能であ
る。
【0337】当業者は本発明の精神から離れることなく
修正および変更を行なうことが可能なことを認識するで
あろう。したがって、この発明は添付の特許請求の範囲
に含まれる全てのそのような変更および修正を含むもの
と考える。
【0338】ここに記載されたクレーム要素およびステ
ップは読取りおよび理解を助ける上での助けとしてのみ
番号付けられおよび/または記載されている。したがっ
て、番号付けおよび/または文字の配置それ自体は要素
および/またはクレームのステップの順序付けを示すこ
とを意図したものではなくかつそのように理解されるべ
きではない。
【図面の簡単な説明】
【図1】従来技術の構成に係わるセルレイアウト発生シ
ステムを示すブロック図である。
【図2】本発明の一実施形態に係わるセルレイアウト発
生システムを示すブロック図である。
【図3】本発明の一実施形態に係わる設計フローを示す
ブロック図である。
【図4】図2のセル発生システムにしたがって標準セル
を発生しかつレイアウトする方法を示すフローチャート
である。
【図5】本発明の一実施形態に係わる集積回路の製造を
説明するブロック図である。
【図6】汎用目的のコンピュータを示すブロック図であ
る。
【図7】本発明の好ましい実施形態に係わるコンポーネ
ント配置を示すフローチャートである。
【図8】本発明の第2の実施形態に係わるコンポーネン
ト配置を示すフローチャートである。
【図9】本発明の一実施形態に係わるレイアウトコンパ
クト化を示すブロック図である。
【図10】図7に示される本発明の一実施形態に係わる
抽象的能動デバイス配置172を示すフローチャートで
ある。
【図11】図7に示される本発明の一実施形態に係わる
抽象的能動デバイス配置172を示すフローチャートで
ある。
【図12】図7に示される本発明の一実施形態に係わる
抽象的能動デバイス配置172を示すフローチャートで
ある。
【図13】本発明の一実施形態に係わるチャネルルーテ
ィングおよびチャネルルーティング密度を示すブロック
図である。
【図14】本発明の一実施形態に係わるチャネルルーテ
ィングおよびチャネルルーティング密度を示すブロック
図である。
【図15】図7に示される本発明の別の実施形態に係わ
る抽象的能動デバイス配置172を示すフローチャート
である。
【図16】図7に示される本発明の別の実施形態に係わ
る抽象的能動デバイス配置172を示すフローチャート
である。
【図17】図10以下の方法に係わるコスト関数を示す
回路レイアウト図である。
【図18】図10以下の方法に係わるコスト関数を示す
回路レイアウト図である。
【図19】図7におけるステップ174で示される抽象
的ポート配置の動作を示すフローチャートである。
【図20】図19の方法に係わるPおよびNネットスパ
ンの水平方向のオーバラップを決定するコストファクタ
を示す例示的説明図である。
【図21】図19のステップ2612および2614に
関連して「スタガリング」の概念を示すセルレイアウト
2620の説明図である。
【図22】例示的なポートおよびメタル1ワイヤによっ
て接続されたアンテナダイオードを示す説明図である。
【図23】例示的なポートおよびメタル1ワイヤによっ
て接続されたアンテナダイオードを示す説明図である。
【図24】図7におけるステップ176で示された抽象
的ダイオード配置の動作を示すフローチャートである。
【図25】図24の方法の動作を示すために使用される
サンプルレイアウトを示すブロック図である。
【図26】ダイオード配置がコンパクト化の後に行なわ
れる場合に生じ得るものを示すトランジスタレベルの回
路レイアウト図である。
【図27】図24に示されたダイオード配置モジュール
の動作によってアンテナダイオードが加えられた標準セ
ルのトランジスタレベルの回路レイアウト図である。
【図28】図4に示される本発明の一実施形態のルーテ
ィングステップ152および154を示すフローチャー
トである。
【図29】図4に示される本発明の一実施形態のルーテ
ィングステップ152および154を示すフローチャー
トである。
【図30】図4に示される本発明の一実施形態のルーテ
ィングステップ152および154を示すフローチャー
トである。
【図31】図4に示される本発明の一実施形態のルーテ
ィングステップ152および154を示すフローチャー
トである。
【図32】図31に機能的に示された拡張ルーティング
チャネルの動作を示す回路レイアウト図である。
【図33】図4に示される本発明の一実施形態のルーテ
ィングステップ152および154を示すフローチャー
トである。
【図34】レイアウトコンパクト化プロセスを示す標準
セルレイアウト図である。
【図35】レイアウトコンパクト化プロセスを示す標準
セルレイアウト図である。
【図36】レイアウトコンパクト化プロセスを示す標準
セルレイアウト図である。
【図37】レイアウトコンパクト化プロセスを示す標準
セルレイアウト図である。
【図38】ステップ156のコンパクト化の動作を示す
フローチャートである。
【図39】ステップ2504の選択された方向における
コンパクト化の動作を示すフローチャートである。
【図40】ステップ2518におけるワイヤ長さ最小化
機能の動作を示すフローチャートである。
【図41】ステップ2532における「ローカルスラッ
ク検出」ルーチンを示すフローチャートである。
【図42】ステップ2538における「オングリッドス
ラック計算」ルーチンの動作を示すフローチャートであ
る。
【図43】ステップ2512におけるグラフ表現レイア
ウトのレイアウト例を示す説明図である。
【図44】図43の、ステップ2512および2514
に示されるレイアウトの制約グラフ表現を示す説明図で
ある。
【図45】図44に示される頂点重みおよび頂点に対応
するグリッド要件を示すテーブルを含む説明図である。
【図46】ステップ2518の間における「オングリッ
ド」要素を移動するいくらかの利点を示す簡略化したレ
イアウト図である。
【図47】ステップ2518の間における「オングリッ
ド」要素を移動するいくらかの利点を示す簡略化したレ
イアウト図である。
【図48】ステップ2518の間における「オングリッ
ド」要素を移動するいくらかの利点を示す簡略化したレ
イアウト図である。
【図49】オングリッドポートを備えたワイヤ最小化の
利点を示す標準セルのレイアウト図である。
【図50】オングリッドポートを備えたワイヤ最小化の
利点を示す標準セルのレイアウト図である。
【図51】本発明に係わるノッチ、タイおよびコンタク
ト充填を示すフローチャートである。
【図52】本発明に係わるノッチ充填を示すフローチャ
ートである。
【図53】本発明に係わるレイアウト−形状変換を示す
説明図である。
【図54】図52におけるブロッケージ検出ステップ2
026を示すフローチャートである。
【図55】図52におけるブロッケージ検出ステップ2
026を示す説明図である。
【図56】本発明に係わる一連の個々の形状から発生さ
れる一連の結果としての形状を示す説明図である。
【図57】本発明に係わる一連の個々の形状から発生さ
れる一連の結果としての形状を示す説明図である。
【図58】本発明に係わる一連の個々の形状から発生さ
れる一連の結果としての形状を示す説明図である。
【図59】本発明に係わる一連の個々の形状から発生さ
れる一連の結果としての形状を示す説明図である。
【図60】図52に示される方法2024と適合するさ
らに他の用語を規定するために使用されるレイアウト図
である。
【図61】本発明に係わるシンプルノッチ充填を示すフ
ローチャートである。
【図62】図6におけるシンプルノッチ充填方法208
2の効果を示すレイアウト図である。
【図63】本発明に係わるストレート充填を説明するフ
ローチャートである。
【図64】図63に示されたストレート充填の動作を示
す説明図である。
【図65】本発明に係わるイスマス充填を説明するフロ
ーチャートである。
【図66】図65に示されるイスマス充填の動作を示す
説明図である。
【図67】本発明に係わるアイランド充填を説明するフ
ローチャートである。
【図68】得られたブロッケージを計算する方法を示す
フローチャートである。
【図69】得られたブロッケージが有益である場合を示
す説明図である。
【図70】本発明に係わる方法2013を示すフローチ
ャートである。
【図71】特定の半導体レイアウトから得られた一連の
形状を示す説明図である。
【図72】レイアウトを電源形状に変換する動作を示す
フローチャートである。
【図73】2つの層の交差またはインターセクションを
示す説明図である。
【図74】本発明に係わる基本的ブロッケージ検出動作
を示すフローチャートである。
【図75】種々の形状に関係する図74の方法の実施を
示す説明図である。
【図76】図70の一部をより詳細に示すフローチャー
トである。
【図77】図70の一部をより詳細に示すフローチャー
トである。
【図78】種々の形状に関係する図77の方法の実施に
おいて使用される一連の形状を示す説明図である。
【図79】図76の一部をより詳細に示すフローチャー
トである。
【図80】図79のステップ2013の一部をより詳細
に示すフローチャートである。
【図81】図80の代表的な構成を示す説明図である。
【図82】長いタイを検出しかつ除去するための図70
の一部をより詳細に示すフローチャートである。
【図83】図82の方法の一部を実施する効果を示す説
明図である。
【図84】従来技術のカバードビアの断面図である。
【図85】従来技術のアンカバードビアの断面図であ
る。
【図86】従来技術において、ミスアライメントになっ
たアンカバードビアの断面図である。
【図87】本発明に係わるコンタクトおよびビア充填方
法を示すフローチャートである。
【図88】図87のフローチャートの拡張された部分を
示すフローチャートである。
【図89】図88の方法にしたがって「イグジスティン
グ形状」を発生する動作を示すフローチャートである。
【図90】図88の方法に係わる「頭部無効形状」の発
生を示す説明図である。
【図91】図88の方法に係わる「頭部有効形状」の発
生を示す説明図である。
【図92】図88の方法に係わる「底部無効形状」の発
生を示す説明図である。
【図93】図87のフローの一部を拡張された形式で示
すフローチャートである。
【図94】図88の方法に係わる「マイトカット」形状
の発生を示す説明図である。
【図95】図88の方法に係わる「キャンカット」形状
の発生を示す説明図である。
【図96】図88の方法に係わる「底部有効」形状の発
生を示す説明図である。
【図97】図87のフローの一部を拡張された形式で示
すフローチャートである。
【図98】CMOSトランジスタの断面図である。
【図99】本発明の一実施形態に係わる集積回路内のタ
イ配置を示すフローチャートである。
【図100】図99の方法にしたがってそのタイが配置
された集積回路の一部を示す説明図である。
【図101】集積回路内に自動的にタイを配置する別の
方法を示すフローチャートである。
【図102】図99の方法に係わるいくつかの可能なス
ペーシングルールの例を示す説明図である。
【図103】異なる基板およびウェルタイ様式を備えた
サンプルの標準セルレイアウトを示す説明図である。
【図104】図4の方法に係わる基板およびウェルタイ
様式選択を説明するフローチャートである。
【図105】好ましい実施形態におけるタイ様式選択マ
トリクスを示す説明図である。
【符号の説明】
92 標準セルライブラリ 94 高レベル設計ツール 96 物理的設計からマスクへの変換処理 97 マスク 98 マスクからの集積回路製造処理 99 集積回路 100 レイアウト発生システム 102 プロセス設計ルール用ディスクファイル 104 ネットリスト用ディスクファイル 106 ライブラリ様式テンプレート用ディスクファイ
ル 110 セルレイアウト発生器 112 集積回路レイアウト 114 論理的合成部 128 配置およびルーティング、寄生抽出、タイミン
グ確認処理 103 物理的設計 132 RTL記述
フロントページの続き (72)発明者 ダニエル・ウェスリー・ダリツ アメリカ合衆国テキサス州78704、オース チン、ブルー・クレスト・ドライブ 1906 エー (72)発明者 モーハン・グルスワミー アメリカ合衆国テキサス州78750、オース チン、ビッグ・キャット・コウブ 6306

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 回路の集積回路レイアウト(112)
    を、 論理的ネットリスト、および1組の制約、 から合成することを含む集積回路(99)の製造方法で
    あって、 A)前記論理的ネットリストから順序づけられたシーケ
    ンスの物理的ネットリスト(138)を列挙する段階、 B)前記順序づけられたシーケンスの物理的ネットリス
    トから第1のネットリスト(138)を選択された物理
    的ネットリストとして選択する段階、 C)前記選択された物理的ネットリストおよび前記1組
    の制約に従って前記集積回路レイアウト(112)に複
    数のレイアウト要素(144)を配置する段階、 D)前記論理的ネットリストによって特定される複数の
    相互接続を実施するために前記集積回路レイアウト(1
    12)において前記複数のレイアウト要素(154)を
    ルーティングする段階、 E)終了条件を調べる段階(160)、 F)もし前記段階(E)における終了条件が適合しなけ
    れば、前記順序づけられたシーケンスの物理的ネットリ
    ストから次のネットリストを前記選択された物理的ネッ
    トリストとして選択しかつ前記段階(C)〜(F)を反
    復する段階、そして G)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  2. 【請求項2】 集積回路レイアウト(112)のために
    自動タイ配置を使用する集積回路(99)の製造方法で
    あって、 A)1つまたはそれ以上のタイカバレージルールを受信
    する段階(2420)、 B)選択されたタイスタイルとしてあるタイスタイルを
    選択する段階(2422)であって、前記タイスタイル
    は配置されるべき1組のゼロまたはそれ以上のタイ形式
    を特定するもの、 C)集積回路レイアウト(112)において初期数のタ
    イを配置する段階(2424)であって、前記配置され
    る初期数のタイの各々は前記選択されたタイスタイルに
    おける前記1組のゼロまたはそれ以上のタイ形式の内の
    1つに対応するもの、 D)前記集積回路レイアウト(112)をコンパクト化
    された集積回路レイアウトへとコンパクト化する段階
    (2426)であって、該コンパクト化された集積回路
    レイアウトは集積回路レイアウトおよびルーティングネ
    ットを備えるもの、そして E)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して前記集積回路
    を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  3. 【請求項3】 シミュレートされたアニーリングアルゴ
    リズムを使用して集積回路レイアウト(112)におい
    て複数の行を合成するために複数の単一トランジスタの
    配置を使用する集積回路(99)の製造方法であって、 A)前記集積回路レイアウト(112)内でトランジス
    タの新しい移動(804)をトランジスタの選択された
    移動として選択する段階、 B)チャネルルーティング密度の尺度の関数であるメト
    リックを使用して集積回路レイアウト(112)内でト
    ランジスタの前記選択された移動を評価する段階(80
    6)、 C)前記集積回路レイアウト内で前記トランジスタの選
    択された移動を行う段階(808)、 D)前記回路のシミュレートされたモデルのシミュレー
    トされた温度を調整すべきか否かを決定する段階、 E)前記シミュレートされたモデルのシミュレートされ
    た温度を調整する段階、 F)前記シミュレートされたモデルが凍結されているか
    否かを判定する段階(814)、 G)前記トランジスタの選択された移動としてトランジ
    スタの異なる移動を使用して順次段階(A),(B),
    (C),(D),(E)および(F)をループとして反
    復する段階、そして H)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して前記集積回路
    (99)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  4. 【請求項4】 セルのセルレイアウトの領域を最適化す
    るためにトランジスタおよび他の装置を相互接続するこ
    とを使用する集積回路(99)の製造方法であって、 A)ルーティングコストパラメータを設定する段階、 B)コストパラメータを使用して集積回路レイアウト
    (112)内でルーティング(1408)を行い結果と
    してルーティング解を得る段階、 C)前記ルーティング解の品質を測定する段階、 D)前記ルーティングコストパラメータとして異なる組
    のルーティングコストパラメータを設定して(141
    6)前記段階(B)〜(C)を反復する段階、 E)第1のルーティング解の品質を第2のルーティング
    解の品質と比較する段階(1414)、 F)前記第1のルーティング解および前記第2のルーテ
    ィング解から最も高い品質のルーティング解を選択する
    段階(1414)、そして G)前記最も高い品質のルーティング解を含む集積回路
    レイアウト(112)から発生された(96)1組のマ
    スク(97)を使用して前記集積回路(99)を製造す
    る段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  5. 【請求項5】 ワイヤ長さを最小化しかつ集積回路レイ
    アウトの領域を低減することを含む集積回路(99)の
    製造方法であって、 A)前記集積回路レイアウト(112)を1つまたはそ
    れ以上のグラフ頂点に変換する段階(2512)であっ
    て、前記1つまたはそれ以上のグラフ頂点の内の少なく
    とも1つは関連するグリッドサイズを有するもの、 B)回路レイアウト制約をグラフエッジとして加える段
    階(2514)、 C)前記1つまたはそれ以上のグラフ頂点および前記グ
    ラフエッジを処理して1組のクリティカルなグラフ頂点
    および1組のノンクリティカルなグラフ頂点に対して最
    小および最大位置を決定する段階(2548)、 D)前記1組のノンクリティカルなグラフ頂点からノン
    クラティカルなグラフ頂点の部分集合を選択する段階
    (2526)、 E)関連するグリッドサイズに基づき前記ノンクリティ
    カルなグラフ頂点の部分集合に対してオングリッドスラ
    ックを計算する段階(2538)、 F)前記集積回路レイアウト(112)内で前記オング
    リッドスラックにより前記ノンクリティカルなグラフ頂
    点の部分集合を移動する段階(2540)、そして G)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  6. 【請求項6】 ワイヤ長さを最小にしかつ集積回路レイ
    アウト(112)の領域を最小化することを含む集積回
    路(99)の製造方法であって、 A)スタート方向を決定する段階(2502)、 B)前記集積回路レイアウト(112)を1組の1つま
    たはそれ以上のグラフ頂点に変換する段階(251
    2)、 C)第1の方向で前記集積回路レイアウト(112)の
    領域を低減するため前記1組の1つまたはそれ以上のグ
    ラフ頂点を解く段階(2504)、 D)第2の方向で前記集積回路レイアウト(112)の
    領域を低減するため前記1組の1つまたはそれ以上のグ
    ラフ頂点を解く段階(2504)、 E)前記段階(C)および(D)を前記段階(C)およ
    び(D)の前の反復の間にある位置に関して前記1組の
    またはそれ以上のグラフ頂点のいずれも移動しなくなる
    まで反復する段階(2506)、 F)前記段階(E)が前記1組のまたはそれ以上のグラ
    フ頂点のいずれも移動しないことを判定した後に前記集
    積回路レイアウト(112)から発生された(96)1
    組のマスク(97)を使用して集積回路(99)製造す
    る段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  7. 【請求項7】 回路の集積回路レイアウト(112)に
    おける形状充填を使用する集積回路(99)の製造方法
    であって、 A)前記集積回路レイアウト(112)に1組のアバッ
    トメントを加える段階(2011)、 B)前記集積回路レイアウト(112)をノッチ充填す
    る段階(2012)、 C)前記集積回路レイアウト(112)をタイ充填する
    段階(2013)、 D)前記集積回路レイアウト(112)をコンタクト充
    填する段階(2014)、 E)前記段階(B)〜(D)において前記集積回路レイ
    アウト(112)に対しいずれかの形状が加えられたか
    否かを判定する段階(2020)、 F)前記段階(E)において何らの形状も加えられてい
    ないことが判定されるまで前記段階(B)〜(E)をル
    ープとして反復する段階(2020)、 G)前記段階(E)において何らの形状も加えられてい
    ないことが判定された後に前記集積回路レイアウト(1
    12)から前記1組のアバットメントを除去する段階
    (2015)、そして H)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  8. 【請求項8】 非決定論理的アルゴリズムを使用して集
    積回路レイアウト(112)を合成するために複数の行
    を使用し同じ形式のトランジスタのスタッキングを含む
    集積回路(99)の製造方法であって、 A)前記集積回路レイアウト(112)においてトラン
    ジスタの初期配置を発生する段階(802)、 B)前記集積回路レイアウト(112)内で1組のトラ
    ンジスタの移動を選択された移動として選択する段階
    (804)、 C)前記選択された移動のコストを評価する段階(80
    6)、 D)前記段階(C)において評価されたコストに基づき
    前記選択された移動(808)を受け入れるか否かを判
    定する段階、 E)前記段階(D)において選択された移動を受け入れ
    ることが判定された場合に前記集積回路レイアウト(1
    12)内で前記1組のトランジスタの移動を行う段階
    (810)、 F)前記段階(E)において移動を行った後にコストを
    更新する段階(812)、 G)前記段階(F)においてコストを更新した後に終了
    すべきか否かを判定する段階(814)、 H)前記段階(G)において終了することが決定されな
    い場合に前記段階(B)〜(G)を反復する段階、そし
    て I)前記段階(G)において終了することが決定された
    後に前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  9. 【請求項9】 性能の制約を守りかつ歩留りを増大する
    一方でセルのセルレイアウトの領域を最適化するために
    トランジスタおよび他の装置を相互接続することを含む
    集積回路(99)の製造方法であって、 A)拡散ワイヤリングを使用して前記セルレイアウトに
    おいてすべての隣接トランジスタをルーティングする段
    階(1506)、 B)前記段階(A)の後に前記セルレイアウトにおいて
    すべての残りの電源およびグランドネットをルーティン
    グする段階(1508)、 C)前記段階(B)の後に前記セルレイアウトにおいて
    すべての残りの整列されたゲートをルーティングする段
    階(1510)、 D)前記段階(B)の後に前記セルレイアウトにおける
    金属層においてすべての残りの整列されたソース/ドレ
    インネットをルーティングする段階(1510)、 E)前記段階(B)の後に前記セルレイアウトにおいて
    すべての残りの特別のネット(1512)をルーティン
    グする段階、 F)前記段階(C)〜(E)の後にエリアをベースとし
    たルーティングを使用して前記セルレイアウトにおいて
    すべての残りのネットをルーティングする段階、 G)前記セルレイアウトを使用して集積回路レイアウト
    (112)を作成する段階、そして H)前記集積回路レイアウト(112)から発生された
    1組のマスク(97)を使用して集積回路(99)を製
    造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  10. 【請求項10】 集積回路の第1のレイアウトにおいて
    タイを配置することを含む集積回路(99)の製造方法
    であって、 A)前記第1のレイアウトを1つまたはそれ以上の形状
    に変換する段階(2802)、 B)ブロッケージ形状を検出する段階であって(280
    4)、該ブロッケージ形状はタイが配置できない領域に
    対応する形状であるもの、 C)タイを形成するために前記ブロッケージ形状に含ま
    れない領域において前記1つまたはそれ以上の形状を増
    大する段階(2806)、 D)前記1つまたはそれ以上の形状を前記集積回路の第
    2のレイアウトに変換する段階(2812)、そして E)前記第2のレイアウトから発生された(96)1組
    のマスク(97)から集積回路(99)を製造する段階
    (98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  11. 【請求項11】 行および列の能動デバイスを形成する
    能動デバイスを含む集積回路レイアウト(112)にお
    いてポートを配置することを含む集積回路(99)の製
    造方法であって、 A)前記集積回路レイアウト(112)における前記能
    動デバイスの2つの隣接する行の間に複数のポート行を
    提供する段階(2606)であって、該複数のポート行
    はレイアウトの内部のポテンシャルサイトを決定するも
    の、 B)前記集積回路レイアウト(112)における前記複
    数のポート行の内の1つの中の所定の列に1つまたはそ
    れ以上のポートを割り当てる段階(2608)であっ
    て、該割り当ては1つまたはそれ以上の所定のレイアウ
    ト要因によって決定されるコスト関数値に基づいている
    もの、 C)前記集積回路レイアウト(112)においてスタガ
    グループのポートを作成するために水平および垂直ポー
    トアクセスに対しお互いの間で相互作用するポートのグ
    ループを識別する段階(2610)、 D)前記段階(C)において識別された各スタガグルー
    ブのポートに対し複数のスタガ構造の総合コスト関数値
    を評価する段階(2612)、 E)前記段階(D)において評価された総合コスト関数
    値に基づき前記段階(C)において識別された各々のス
    タガグループに対しスタガ構造を割り当てる段階(26
    14)、 F)前記集積回路レイアウト(112)においてファイ
    ングリッドに割り当てられたポートを割り当てる段階
    (2616)であって、 前記割り当てられたポートは1つまたはそれ以上のポー
    トの内の1つであり、 前記ファイングリッドは前記能動デバイスによって決定
    されるある数のファインコラムを有し、前記ポートの割
    り当てはポート割り当て関数に基づくもの、そして G)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  12. 【請求項12】 トランジスタレベルの集積回路レイア
    ウトにおいて自動的にダイオードを配置することを含む
    集積回路(99)の製造方法であって、 A)前記集積回路レイアウト(112)において入力ポ
    ートを識別されたポートとして識別する段階(270
    2)、 B)前記識別されたポートの回りに配置されるべきダイ
    オードの形式を決定する段階(2703)、 C)前記識別されたポートの周囲の回りで前記集積回路
    レイアウト(112)における複数の可能なダイオード
    位置を識別する段階(2704)、 D)前記複数の可能なダイオード位置の各々に対してコ
    スト関数からコストを決定する段階(2706)、 E)前記複数の可能なダイオード位置の各々に対して前
    記段階(D)において決定されたコストに基づき前記複
    数の可能なダイオード位置から前記集積回路レイアウト
    (112)における最小コストダイオード位置を選択す
    る段階(2708)、 F)前記集積回路レイアウト(112)において前記最
    小コストダイオード位置にダイオードを配置する段階
    (2710)、そして G)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  13. 【請求項13】 半導体集積回路におけるトランジスタ
    の制御電極を自動的に保護することを含む集積回路(9
    9)の製造方法であって、 A)前記トランジスタレベルのレイアウトのコンパクト
    化の前にトランジスタレベルのレイアウトにおいてダイ
    オードを配置する段階(177)、 B)前記ダイオードを前記トランジスタレベルのレイア
    ウトにおける入力ポートに接続する段階(154)、 C)前記ダイオードを含むトランジスタレベルのレイア
    ウトをコンパクト化されたレイアウトへとコンパクト化
    する段階(156)、そして D)前記コンパクト化されたレイアウトから発生された
    (96)1組のマスク(97)を使用して前記ダイオー
    ドを含む集積回路(99)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
  14. 【請求項14】 集積回路(99)の製造方法であっ
    て、 a)集積回路レイアウト(112)において1次レイア
    ウトオブジェクトの抽象的表現を自動的に配置して(1
    72,175)、2次抽象的レイアウトオブジェクトま
    たは3次抽象的レイアウトオブジェクトの推定された位
    置に従ってこれらのレイアウトオブジェクトの位置を最
    適化する段階、 b)集積回路レイアウト(112)において2次レイア
    ウトオブジェクトの抽象的表現を自動的に配置して(1
    74,173)、1次抽象的レイアウトオブジェクトの
    実際の位置および3次抽象的レイアウトオブジェクトの
    推定された位置に従ってこれらのレイアウトオブジェク
    トの配置を最適化する段階、 c)前記集積回路レイアウト(112)において3次レ
    イアウトオブジェクトの抽象的表現を自動的に配置して
    (176,177)、1次抽象的レイアウトオブジェク
    トおよび2次抽象的レイアウトオブジェクトの実際の位
    置に従ってこれらのレイアウトオブジェクトの配置を最
    適化する段階、そして d)前記集積回路レイアウト(112)から発生された
    (96)1組のマスク(97)を使用して集積回路(9
    9)を製造する段階(98)、 を具備することを特徴とする集積回路(99)の製造方
    法。
JP9316400A 1996-11-01 1997-10-30 グリッド化ポートのための自動レイアウトワイヤ最小化 Pending JPH10144798A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US74072296A 1996-11-01 1996-11-01
US08/740,722 1996-11-01

Publications (1)

Publication Number Publication Date
JPH10144798A true JPH10144798A (ja) 1998-05-29

Family

ID=24977785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9316400A Pending JPH10144798A (ja) 1996-11-01 1997-10-30 グリッド化ポートのための自動レイアウトワイヤ最小化

Country Status (1)

Country Link
JP (1) JPH10144798A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170136831A (ko) * 2016-06-02 2017-12-12 삼성전자주식회사 집적 회로 및 표준 셀 라이브러리
CN113113322A (zh) * 2021-03-31 2021-07-13 上海华虹宏力半导体制造有限公司 Cup通孔重叠修正方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170136831A (ko) * 2016-06-02 2017-12-12 삼성전자주식회사 집적 회로 및 표준 셀 라이브러리
CN113113322A (zh) * 2021-03-31 2021-07-13 上海华虹宏力半导体制造有限公司 Cup通孔重叠修正方法
CN113113322B (zh) * 2021-03-31 2024-03-15 上海华虹宏力半导体制造有限公司 Cup通孔重叠修正方法

Similar Documents

Publication Publication Date Title
US6006024A (en) Method of routing an integrated circuit
US5984510A (en) Automatic synthesis of standard cell layouts
US5987086A (en) Automatic layout standard cell routing
US6209123B1 (en) Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors
US20200401753A1 (en) High-Speed Shape-Based Router
US7908571B2 (en) Systems and media to improve manufacturability of semiconductor devices
KR102593720B1 (ko) 집적회로 설계 및/또는 제조
US7114140B2 (en) Semiconductor device, semiconductor device design method, semiconductor device design method recording medium, and semiconductor device design support system
US6415422B1 (en) Method and system for performing capacitance estimations on an integrated circuit design routed by a global routing tool
US8701068B2 (en) Interconnection device in a multi-layer shielding mesh
KR101460448B1 (ko) 이중 패터닝 기술들을 위한 물리 결정 경계 상호접속 피처들을 생성하기 위한 시스템 및 방법
US20110289467A1 (en) Layout method and layout apparatus for semiconductor integrated circuit
US6385761B1 (en) Flexible width cell layout architecture
Cong et al. An enhanced multilevel routing system
JPH05109890A (ja) 回路配列組込み方法
KR20050048594A (ko) 집적회로 장치 및 집적회로 장치를 설계하기 위한 방법 및장치
Lefebvre et al. The future of custom cell generation in physical synthesis
US8276110B2 (en) Reducing voltage drops in power networks using unused spaces in integrated circuits
US6075934A (en) Method for optimizing contact pin placement in an integrated circuit
Taghavi et al. Dragon2006: Blockage-aware congestion-controlling mixed-size placer
Igusa et al. ORCA A sea-of-gates place and route system
Hougardy et al. BonnCell: Automatic layout of leaf cells
US6880143B1 (en) Method for eliminating via blocking in an IC design
JPH10144798A (ja) グリッド化ポートのための自動レイアウトワイヤ最小化
Lee et al. A global router for sea-of-gates circuits