JP3891599B2 - 集積回路レイアウト内への標準セルの自動挿入装置 - Google Patents

集積回路レイアウト内への標準セルの自動挿入装置 Download PDF

Info

Publication number
JP3891599B2
JP3891599B2 JP32119395A JP32119395A JP3891599B2 JP 3891599 B2 JP3891599 B2 JP 3891599B2 JP 32119395 A JP32119395 A JP 32119395A JP 32119395 A JP32119395 A JP 32119395A JP 3891599 B2 JP3891599 B2 JP 3891599B2
Authority
JP
Japan
Prior art keywords
insert
cell
spare
cells
standard
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP32119395A
Other languages
English (en)
Other versions
JPH08212250A (ja
Inventor
クレイトン・エル・イー
サンディープ・アジ
ステファン・ルス
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH08212250A publication Critical patent/JPH08212250A/ja
Application granted granted Critical
Publication of JP3891599B2 publication Critical patent/JP3891599B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般に集積回路を設計するための電子的な設計自動化ツールに関する。より詳細には、本発明は、集積回路レイアウトの既存の標準セル領域内にスペアセルを分散配置することを可能とする方法及び電子的設計自動化ツールに関する。
【0002】
【従来の技術】
超大規模集積回路(VLSI)は、電子的設計自動化ツール(EDA)を用いて設計される。このツールは、キャド(CAD)とも呼ばれている。通常、回路の設計は、ベリログ(Verilog)やVHDLのようなハードウェア記述言語(HDL)で回路を記述することから始められる。HDLによる記述は、コンピュータ言語形式で表されたステートメント(statements)のセットであり、回路によって実行されるべき機能を規定する。
【0003】
HDLによって記述された回路のシミュレーションを行うのに、HDL回路シミュレータが用いられる。このHDL回路シミュレーションの結果に基づいて、HDLによる記述の修正がなされる。
【0004】
HDL回路シミュレータは、HDLにより記述された回路のシミュレーションを行うだけでなく、ネットリスト(netlist)を生成するのにも用いられる。ネットリストは、HDLによって記述された回路機能を実現するのに必要な構成要素と構成要素間の接続を規定する。
【0005】
ネットリストが生成された後、ネットリストを半導体回路レイアウトに変換するのに用いられる商業的に入手可能な“シリコンコンパイラ”(“配置及びラウティングツール(place and route tool)”とも呼ばれる)は数多くある。半導体回路レイアウトは、シリコンや他の半導体材料中の回路の物理的な実現について規定する。
【0006】
半導体回路レイアウトは様々な機能領域に分けることができる。通常、大規模で特殊な関数は一つの機能領域に割り当てられる。このような大規模で特殊な関数と関連しないより小さなタスクは、通常、ランダムロジック領域と呼ばれる領域に於いて実現される。ランダムロジック領域では、標準セル(standard cell)論理ゲートの選択を利用している。標準セルには、例えば、NANDゲート、フリップフロップ、マルチプレクサなどがある。これらのセルは、シリコン中に実現されたとき標準高さ(standard height)となるため、標準セルと呼ばれている。これによって、これらのセルを互いに揃えて配置し、標準セルトラック(standard cell tracks)を形成することができる。これらの標準セルトラックの間に信号ラウティングトラック(signal routing tracks)を配置し、これらのラウティングトラックと標準セルとの間を金属で接続することによって、標準セルトラックの標準セルに特定のロジックを実行させることができる。
【0007】
回路の配置及びラウティングが終了すると、様々な公知の技法を用いて半導体回路機能の検証がなされる。回路の検証によって半導体回路の機能上の問題点を知ることができる。標準セル領域(典型的には半導体回路のランダムロジック領域)に問題がある場合、問題点は標準セルトラックの端に標準セルを付け加えることによって解決される。追加された標準セルは、問題点を修正するように他の標準セルに接続することができる。
【0008】
この方法の問題点は、追加された標準セルが標準セルトラックの端にあるため、追加された標準セルと元の標準セルとの間の信号線が長くなることである。信号線が長いと静電容量の問題が生じる。この方法の別の問題点は、配置及びラウティングツールによる追加標準セルと元の標準セルとの間の適切な信号経路の確立が非常に困難であるということである。
【0009】
【発明が解決しようとする課題】
本発明の主な目的は、上述したような問題点を解決するため、集積回路レイアウト内に標準セルを自動的に挿入するための改善された装置を提供することである。
【0010】
【課題を解決するための手段】
本発明は、集積回路の標準セル領域内にスペアセル(spare cells)を分散配置するための装置である。最初に、標準セルの初期レイアウトが、配置及びラウティングツールを汎用コンピュータで実行することによって生成される。その後、この初期レイアウトを処理するように、スペアセル分散配置メカニズム(a spare cell distribution mechanism)が汎用コンピュータ上で実行されると同時に、命令ファイル(a directive file)を処理する。スペアセル分散配置メカニズムは、予め定められた基準(criteria)に従って、標準セルの初期レイアウト内に、スペアセルの予め選択されたグループを分散配置する。
【0011】
本発明の方法は、集積回路に於ける標準セルの初期レイアウトを生成する過程と、予め定められた基準に従って予め選択されたスペアセルのグループを標準セルの初期レイアウト内に分散配置する過程とを含む。
【0012】
本発明の方法及び装置で用いられる上述した予め定められた基準には、スペアセルトラックの数、スペアセルを付け加える前のブロック内のセルの数、付け加えられるスペアセルに対して使用可能な面積、挿入されるスペアセルの消費電力、及び挿入されるスペアセルの論理機能などが含まれる。
【0013】
本発明によって、スペア標準セルは、集積回路の標準セル領域内に概ね最適に分散配置される。更に、縦方向のラウティングを容易にし信号経路がより短くなるように、スペアセル分散配置メカニズムによって、縦方向ワイヤターミネータ(vertical wire terminators)が標準セル領域内に組み込まれる。更に、スペアセル分散配置メカニズムは、グランドライン及び電源ラインを追加するべく、グランド及び電源コネクタを標準セル領域内に組み込む。挿入されたスペアセルの入力は、グランドラインまたは電源ラインに接続されるが、後に標準セル領域内のロジックの欠陥を修正するときには、再度ラウティングされる。即ち、スペアセルの入力は、スペアセル領域内の様々な信号トラック(signal tracks)に接続することができる。ラウティングし直すときに、配置及びラウティングツールによって、グランド及び電源ラインを信号トラックに変換してもよい。
【0014】
セルを標準セル領域全体に渡って分散することによって、本発明では、挿入されるスペアセルが標準セルトラックの端に固まって配置されることにより生じていた従来技術の問題点を避けることができる。即ち、本発明では、ラウティングトラック上の静電容量が過大になることから生じる問題を回避することが出来る。また、本発明では、配置及びラウティングツールのラウティング選択範囲が広がっており、集積回路の標準セル領域内の回路要素のラウティングがより容易になっている。
【0015】
本発明の特徴及び目的がよりよく理解されるように、添付の図面を参照しつつ、本発明を実施例に基づいて説明する。尚、図面全体を通して、対応する部分には同じ参照符号を付した。
【0016】
【発明の実施の形態】
図1の左側に本発明の一実施例に基づいた処理過程を示す。最初の処理過程では、標準セルの初期レイアウトが生成される(ブロック20)。次に、そのレイアウト内にスペア標準セルが分散配置される(ブロック22)。従来技術に於ける対応する過程では、スペア標準セルは標準セルトラックの端に挿入されていた。上述したように、従来技術の方法では数々の問題が生じる。後述するように、これらの問題は、本発明ではスペア標準セルを標準セルの初期レイアウト内に分散配置することによって避けることができる。注意すべきことは、初期レイアウトが決まる前にスペアセルを集積回路の標準セル領域に分散配置させることはできないということである。なぜなら、使用可能なスペアセルの数は、標準セルトラックの数、様々な標準セルトラックの長さなどの初期レイアウトパラメータから導出されるからである。
【0017】
次の過程では、標準セルの最終的なレイアウトが生成される(ブロック24)。その後に、回路のラウティングがなされる(ブロック26)。即ち、標準セル領域の様々なセルの間の電気的な接続がなされる。
【0018】
次の過程では、回路機能の検証がなされる(ブロック28)。回路の論理機能に問題がある場合は、問題点が修正されるようにスペアセルが接続される(ブロック30)。
【0019】
図1の左側に示されている処理過程は、それを実行するための対応する装置を参照することによってよりよく理解されよう。その装置を図1の右側に示す。標準セルの初期レイアウトを含む回路レイアウト46を生成するため、商業的に入手可能な配置及びラウティングツール40が用いられている。従来技術に従って、配置及びラウティングツール40は、ネットリスト42とパラメータファイル44とを受け取る。ネットリスト42は回路を規定し、パラメータファイル44は、例えば、使用可能な標準セルトラック数、ラウティングパラメータ(routing parameters)、入力/出力ポート情報、ブロックの基板に占める面積(フットプリント)などの標準セル領域の許容可能な属性を規定する。
【0020】
回路レイアウト46は、集積回路の様々な位置とそれらの位置に於ける論理要素(logical elements)を規定する。より詳細に述べると、論理要素を実現するための拡散領域、ポリシリコン領域、金属領域などの物理要素を規定する。
【0021】
回路レイアウト46は、本発明のスペアセル分散配置メカニズム48へ渡される。スペアセル分散配置メカニズム48は、第2入力として命令ファイル52を受け取る。命令ファイル52は、マニュアルで生成しても、命令ファイルジェネレータ50によって生成してもよい。後述するように、スペアセル分散配置メカニズム48は、命令ファイルに示された指示に従って、配置及びラウティングツール40から受け取った物理的なレイアウト(より詳細には標準セルレイアウト)を変更する。この処理の結果、スペア標準セルが半導体回路の標準セル領域内に最適に配置される。更に、分散配置メカニズム48は、縦方向のラウティングを容易にし、標準セル領域内の経路がより短くなるように、縦方向ワイヤターミネータを生成する。更に、分散配置メカニズム48は、信号トラックを追加してラウティングの選択範囲を広げるため、標準セル領域内にグランド及び電源コネクタを挿入する。
【0022】
スペアセル分散配置メカニズム48による処理が終わると、残りの処理は従来と同様に行うことができる。詳述すると、スペアセルが分散配置された改訂された回路レイアウト54は、配置及びラウティングツール40へ送られ、そこで最適化処理がなされ最終的なレイアウトが生成される。この最終レイアウトは更に配置及びラウティングツール40によって処理され、回路内の経路の接続がなされる。その後、レイアウト/設計比較ツール(layout versus schematic tool)56とロジック検証器(a logic verifier)58とを用いることによって、回路機能の検証が行われる。このレイアウト/設計比較ツール56は商業的に入手可能な装置であり、回路レイアウトとネットリストという2つの回路表現形態が厳密に対応していることを保証するべくこれらの比較を行うものである。厳密な対応が得られると、ネットリストは商業的に入手可能なロジック検証器58に渡され、回路ロジックのテストが行われる。スペア標準セル、縦方向ワイヤターミネータ、グランドコネクタなどがラウティングされた回路内に挿入されるとき、同じ要素がネットリスト内に挿入されるように、スペアセル分散配置メカニズム48に、ネットリストを改訂するための命令セットを含ませてもよい。ネットリストの改訂は、所望に応じてマニュアルで行うこともできる。
【0023】
ロジック検証器58を用いて回路機能の検証をした後、ロジックの問題点を修正するべく、必要に応じてスペアセルの接続を行う。この処理がなされるように、配置及びラウティングツール40に一連のプレースメント命令(placement instructions)60を与えてもよい。別の方法として、本分野では公知であるマニュアル操作によってスペアセルを接続してもよい。
【0024】
図2は、本発明の方法を実行するのに必要とされる要素を組み込んだ汎用コンピュータを例示している。この図に示されている中央演算装置(CPU)92は、システムバス94を介して入力/出力デバイス96と情報のやり取りをする。入力/出力デバイス96には、キーボード、モニタ、マウス、プリンタ、及び他の本分野で公知の周辺装置が含まれる。メモリ90は、システムバス94を介してCPU92と情報交換する。CPU92によって処理されるプログラム及びデータ40乃至60は、このメモリに格納される。図2に示されているプログラム及びデータ40乃至60は、図1に示されているプログラム及びデータに対応している。汎用コンピュータに於けるプログラム及びデータの一般的な処理は従来に於いても知られている。従って、本発明に従って処理される特有のプログラム及びデータに重点を於いて以下に説明する。
【0025】
図1を参照しつつ行った上記の説明に於いても述べたように、本発明は、スペア標準セルが分散配置された改訂された回路レイアウト54を得ることを主な目的としている。改訂された回路レイアウト54には、後に説明するように、縦方向ワイヤターミネータ及びグランドコネクタも含まれる。
【0026】
改訂された回路レイアウト54は、本発明のスペアセル分散配置メカニズム48によって得られる。スペアセル分散配置メカニズム48は、回路レイアウト46と命令ファイル52を処理する。
【0027】
図3は、回路レイアウト46の一部を示したものである。より詳細には、この図は回路レイアウト46の標準セル領域を簡略化して図示したものである。回路レイアウトに対応したグリッドという概念を示すため、図3にはX軸62とY軸64が示されている。このグリッドは、回路レイアウト内の個々のセル65の物理的な位置を規定するのに用いることができる。個々のセル65は、標準セルトラック66A、66B、66C、及び66Dを形成するように整合配置されている。また、ラウティングトラック68A、68B、68Cが標準セルトラック66の間に設けられている。
【0028】
図4は、図3の一部、即ち、標準セルトラック66Bの一部と対応するラウティングトラック68A及び68Bの一部をより詳細に表したものである。標準セルトラック66Bは、ANDゲート70、インバータ72、NORゲート74、NANDゲート76、及び加算器78を含む論理要素のグループを含んでいる。標準セルトラック66Bの論理要素は、それらの一般的なシンボルで示されているが、実際のレイアウトでは、通常これらの要素は、互いにすぐ隣りに配置され、標準高さを有し、種々の半導体領域とインターコネクト(interconnects)のセットとして実現されることを理解されたい。
【0029】
各ラウティングトラック68は、電源バス80、信号トラック84A、84B、...、84N及びグランドバス82を含む。理解されるように、これらの要素は同じ金属面上にある必要はない。即ち、異なる金属層上のトラックにアクセスするようにバイアスを用いることもできる。
【0030】
図4には、信号トラック84Aからインバータ72へ信号を伝える信号トラックコネクタ86も示されている。インバータ72の出力は信号トラックコネクタ88に加えられ、この信号トラックコネクタ88は信号トラック84Cに接続され終端されている。このような接続を用いて、信号をある論理要素から別の論理要素へ伝えることができる。
【0031】
図5は、本発明に従って用いることのできる命令ファイル52の一実施例に関連した処理を表している。命令ファイル52に関連する処理の最初の過程では、既存の標準セルレイアウト46内に組み込むことのできる使用可能なスペアセルを決定する(ブロック100)。後述するように、これらの使用可能なスペアセルは、グループ単位で配置される。次の過程では、セルの接続のセットを宣言する(ブロック102)。即ち、新たなスペアセルと既存の標準セルとの間を接続するのに、配置及びラウティングツール40(図1)が使用することのできる接続点またはポートのセットを宣言する。最後の過程では、これらのセル及び接続を既存のレイアウト内に分散配置する(ブロック104)。
【0032】
命令ファイル52はマニュアルで生成することも、命令ファイルジェネレータ50(図1)によって生成することもできる。命令ファイルジェネレータ50は、命令ファイル52を確立するのに使用される予め定められた基準が組み込まれたコンピュータプログラムである。命令ファイル52を確立するための予め定められた基準には、様々な事項が含まれ得る。例えば、予め定められた基準に、スペアセルに対して使用可能なスペースを含ませてもよい。即ち、配置及びラウティングツール40が回路レイアウト46を生成した後、追加されるセルに対し使用可能なスペースがどれだけあるか判定するようにするようにしてもよい。例えば、図3では、標準セルトラック66B及び66Cは、追加セルをいくつか受け入れることができるが、標準セルトラック66A及び66Dは、既にX軸62の右端いっぱいまで伸びているため追加セルを受け入れることはできない。
【0033】
予め定められた基準の一部として用いることのできる別の事項に、半導体の標準セル領域内の標準セルトラック66の数がある。後述するように、標準セルトラック66の数を、追加スペアセルの配置技法を得るのに用いることができる。関連する考慮すべき事項として、標準セル領域内の標準セルの数がある。
【0034】
上述したように、命令ファイル50は使用可能なスペアセルを規定する。予め定められた基準を用いて、これらの使用可能なスペアセルを決定することができる。使用可能なスペアセルの決定に於ける予め定められた基準として、例えば、論理要素(例えばNANDゲートなど)の使用頻度を用いてもよい。命令ファイルジェネレータ50は、予め定められた基準として、標準セルの電力消費に基づいて動作することもできる。例えば、標準セル領域内に分散配置するのに、低消費電力セルを選択することができる。
【0035】
上述したように、命令ファイル52は、セルを既存のレイアウト内に“分散配置(distribute)”する。この“分散配置”という用語は、標準セルが単に既存の標準セルトラックの端に配置されるわけではないということを意味している。挿入されるスペア標準セルは、標準セルトラック66内の様々な分散された位置に配置される。
【0036】
命令ファイル52に分散配置手順を確立するため命令ファイルジェネレータ50が使用し得る別の予め定められた基準として、スペア標準セルの挿入に対して使用することのできる標準セルトラック66内の予め定められた位置を確立することがある。このような予め定められた位置は、例えば、トラック66の左側(座標値X=0)、トラック66の長さの4分の1の位置、トラック66の長さの2分の1の位置、及びトラック66の長さの4分の3の位置などである。
【0037】
命令ファイルジェネレータ50によって特定され、命令ファイル52内に組み込まれる分散配置の基準は、縦方向のラウティングに対する考慮を含んでもよい。即ち、配置及びラウティングツールによって縦方向の接続がなされ、それによって信号経路が短くなるように、終端デバイス(terminating devices)を標準セル領域内に分散配置することができる。
【0038】
スペアセルを分散配置するのに使用することのできる別の予め定められた基準に、クラスタリング(clustering)がある。即ち、標準セルのグループのクラスタ(集まり)を選択し、そのクラスタを標準セル領域内に挿入するようにしてもよい。より詳細に述べると、クラスタは、セル挿入処理に於いて、標準セルトラックの様々なセットに繰り返し挿入され得る。このような処理及び他の予め定められた基準は、命令ファイル52の具体的な例を含む以下の説明によってより良く理解されるだろう。
【0039】
図6は、本発明のスペアセル分散配置メカニズム48による命令ファイル52の処理を表すものである。第1過程では、グループ情報の処理がなされる(ブロック110)。後述するように、グループ情報は、回路レイアウトの標準セル領域内に挿入される様々な標準セルグループの特性を表す。グループ情報は、挿入される標準セルに限定される必要はなく、以下に示すように、縦方向ワイヤターミネータ、グランドコネクタ、及び電源コネクタを含んでいてもよい。
【0040】
次の過程では、セル情報の処理がなされる(ブロック112)。セル情報の処理は、スペアセルに対する入力及び出力ポートの特定を含む。セル情報の処理は、縦方向ワイヤターミネータ、グランドコネクタ、及び電源コネクタに対するポートの特定も含む。
【0041】
スペアセル分散配置メカニズム48に関連する最後の過程では、挿入情報(insertion information)の処理がなされる(ブロック114)。挿入情報は、既存の回路レイアウト内へのスペア標準セルの実際の挿入につながる一連の命令(directives)を生成する。この処理には、トラックのセットに挿入するためのクラスタを選択する過程が含まれる(ブロック115)。次の過程では、クラスタ内の各セルグループに対し、グリッド位置の同定がなされる(ブロック116)。図3からもわかるように、X軸位置とY軸位置を用いて、特定のセルの位置を特定することができる。
【0042】
その次の過程では、同定されたグリッド位置に新たなセルグループが挿入される(ブロック118)。挿入情報処理の最後の過程では、残りのセルに対する位置の繰り上げがなされる(ブロック120)。例えば、図4に於いて、新たなセルがインバータ72とNORゲート74との間に挿入されるとすると、NORゲート74、NANDゲート76及び加算器78に対するX軸位置が、それに従って増加される。別の方法として、新たなセルを既存のセルの上に重ねて置き、その後、配置及びラウティングツールによって全てのセルの位置決めを再度行うようにすることもできる。
【0043】
本発明の概念をより明確に示するため、本発明に従って用いられる命令ファイル52について説明する。命令ファイルは、図7を参照することによってよりよく理解できる。図7には、標準セルトラック66A、66B、及び66Cが示されている。標準セルトラック66には、挿入されたスペア標準セル122が含まれている。標準セルトラック66Bは、1または複数の縦方向ワイヤターミネータ124も含んでいる。縦方向ワイヤターミネータ124は、標準セルトラック66B内に、電気的に浮いた状態の接続ポートを確立している。ラウティング時、配置及びラウティングツールは、縦方向ワイヤターミネータ124Aとセル122Bとの間に縦方向接続126を生成する。その後、縦方向接続126と選択された信号トラック(図7では図を見やすくするため図示されていないが、図4に於いて符号84によって示されている)との間に電気的な接続がなされる。即ち、縦方向ワイヤ126を使って、セル122Bを、他のセルにつながった他の任意のトラックと接続することができる。この特徴によって、配置及びラウティングツールに広い選択範囲が与えられ、それによって信号経路をより短くすることができる。
【0044】
図7には、本発明の別の特徴、即ち電源及びグランドコネクタも示されている。この図では、2つのグランドコネクタ130A及び130Bが、標準セルトラック66Cに挿入されている。これらのデバイスをこれらの位置に配置することによって、配置及びラウティングツールによって挿入されたラウティングトラック132が生成される。ラウティングトラック132は、図7に示されているように、挿入されたスペアセル122の入力の結線をするのに用いることができる。後に、スペアセル122が他の標準セルとの接続を必要とする場合、配置及びラウティングツールは、従来技術の技法に従ってそのような接続を確立する。
【0045】
図7には、スペアターミネータの使用についても示されている。スペアターミネータ140A及び140Bは、ラウティングトラック66Aの両端に配置されている。後述するように、これにより、配置及びラウティングツールによって信号トラック142が追加生成される。この追加された信号トラックを使用して、回路のラウティングをより容易にすることができる。
【0046】
上述したことは、以下に示す命令ファイル52の一例を参照することによってよりよく理解される。この命令ファイル52の最初の部分は、図6のブロック110に従って、スペアセル分散配置メカニズム48によって処理されるグループ情報に関する。
【0047】
(BLOCK-INFO
(GROUP-INFO
(*Block A*)
(group-cell-info sc a 1 snd03c)
(group-cell-info sc b 1 snr03c)
(group-cell-info sc c 1 san03c)
(group-cell-info sc d 1 sor03c)
(group-cell-info sc e 1 xincmosf)
(group-cell-info sc f 1 sin00c)
(group-cell-info sc g 1 saoi21c)
(group-cell-info sc h 1 soai21c)
(group-cell-info sc i 1 sin00c)
(*Block B*)
(group-cell-info st ivss1 1 spar vss con)
(group-cell-info st ivss2 1 spar vss con)
(group-cell-info st ivss3 1 spar vss con)
(group-cell-info st ivcc1 1 spar vss con)
(group-cell-info st ivcc2 1 spar vss con)
(group-cell-info st ivcc3 1 spar vss con)
(*Block C*)
(group-cell-info st oa 1 spar terminator)
(group-cell-info st ob 1 spar terminator)
(group-cell-info st oc 1 spar terminator)
(group-cell-info st od 1 spar terminator)
(group-cell-info st oe 1 spar terminator)
(group-cell-info st of 1 spar terminator)
(group-cell-info st og 1 spar terminator)
(group-cell-info st oh 1 spar terminator)
(group-cell-info st oi 1 spar terminator)
(*Block D*)
(group-cell-info st row1 1 spar terminator)
(group-cell-info st row2 1 spar terminator)
(group-cell-info st row3 1 spar terminator)
(group-cell-info st row4 1 spar terminator)
(group-cell-info st row5 1 spar terminator)
(group-cell-info st row6 1 spar terminator)
(group-cell-info st row7 1 spar terminator))
【0048】
この命令ファイルのブロックA(Block A)は、標準セルグループのセットsc a乃至sc iを規定している。説明を簡略化するため、各グループは要素を一つしか含んでいない。このことは、各ラインに於いて“1”として示されている。要素を一つだけではなく、3個含むように規定されたグループは、例えば“(group-cell-info sc_a 3 sndo3c sinoob snd03d)”のようになる。
【0049】
各ラインの最後の項は、集積回路の標準セル領域に挿入される標準セル要素である。例えば、ブロックAの最初のラインでは、標準セル要素は“snd03c”であり、これは3入力NANDゲートを示す。本発明を説明するという目的に於いては、セルの各タイプの同定は必要ではない。本発明に関連して用いられる配置及びラウティングツール、ロジックシンセサイザまたは他の電子的設計自動化ツールは、規定するセルのタイプを同定するのに、セルのライブラリ(library)を使用することができる。
【0050】
ブロックBは、グランド及び電源コネクタst_ivss1乃至st_ivcc3を規定している。各グループはコネクタを一つ含む。例えば、st_ivss1は、コネクタspar_vss_conを含んでいる。図7を参照して上述したように、追加トラック132のラウティングが行われるように、グランド及び電源コネクタを用いることができる。その後、挿入されたスペアセルの出力を追加トラック132に接続することができる。
【0051】
ブロックCは、縦方向ワイヤターミネータのセットst_oa乃至st_oiを規定している。各グループはターミネータを一つ含んでいる。ターミネータは、spar_terminatorとして同定される。図7に関連して説明したように、縦方向ワイヤターミネータは、集積回路の標準セル領域に於いて縦方向ラウティング経路126が形成されるようにするのに用いられる。
【0052】
ブロックDは、配置及びラウティングツールが標準セル領域内に横方向の信号トラックを追加生成するようにするのに用いられるステートメント(statements)のセットである。追加トラックが挿入されたスペアセルの入力を接地するのに用いられるブロックBの場合と異なり、ここで追加されるトラックは、概ね信号のラウティングに用いられる。この処理については後に説明する。
【0053】
理解されるように、本発明によると、縦方向及び横方向ラウティングトラックを追加生成するための技術が提供される。縦方向トラックはブロックCで規定されるスペアターミネータに関連して提供され、一方横方向トラックはブロックDで規定されるスペアターミネータに関連して提供される。このような特徴によって、その後配置及びラウティングツールによって行われるラウティング処理がより簡単になっている。
【0054】
次に続くブロック、即ちブロックE乃至Hのコードは、図6のブロック112に於いてスペアセル分散配置メカニズム48によって処理されるセル情報に対応している。一般に、セル情報は、特定の入力または出力ポート名を標準セル領域内に挿入されるアイテムに割り当てるのに用いられる。配置及びラウティングツールは、その後、特定されたポート名を用いて適切な接続を行うことができる。
【0055】
(CELL-INFO
(*Block E*)
(cell-info snd03c sc a 140 4 i1 sn i1 i2 sn i1 i3 sn i1 out sn oa)
(cell-info snr03c sc b 196 4 i1 sn i1 i2 sn i1 i3 sn i1 out sn ob)
(cell-info san03c sc c 168 4 i1 sn i1 i2 sn i1 i3 sn i1 out sn oc)
(cell-info sor03c sc d 168 4 i1 sn i1 i2 sn i1 i3 sn i1 out sn od)
(cell-info xincmosf sc e 168 2 i1 sn i4 out sn oe)
(cell-info sin00c sc f 56 2 i1 sn i4 out sn of)
(cell-info saoi21c sc g 168 4 ina1 sn i1 ina2 sn i1 inb1 sn i1 out sn og)
(cell-info soai21c sc h 140 4 ina1 sn i1 ina2 sn i1 inb1 sn i1 out sn oh)
(cell-info sin00c sc i 56 2 i1 sn i4 out sn oi)
(*Block F*)
(cell-info spar vss con st ivss1 28 1 out sn i1)
(cell-info spar vss con st ivss2 28 1 out sn i2)
(cell-info spar vss con st ivss3 28 1 out sn i3)
(cell-info spar vcc con st ivcc1 28 1 out sn i4)
(cell-info spar vcc con st ivcc2 28 1 out sn i5)
(cell-info spar vcc con st ivcc3 28 1 out sn i6)
(*Block G*)
(cell-info spar terminator st oa 28 1 in sn oa)
(cell-info spar terminator st ob 28 1 in sn ob)
(cell-info spar terminator st oc 28 1 in sn oc)
(cell-info spar terminator st od 28 1 in sn od)
(cell-info spar terminator st oe 28 1 in sn oe)
(cell-info spar terminator st of 28 1 in sn of)
(cell-info spar terminator st og 28 1 in sn og)
(cell-info spar terminator st oh 28 1 in sn oh)
(cell-info spar terminator st oi 28 1 in sn oi)
(*Block H*)
(cell-info spar terminator st row1 28 1 in sn r1)
(cell-info spar terminator st row2 28 1 in sn r2)
(cell-info spar terminator st row3 28 1 in sn r3)
(cell-info spar terminator st row4 28 1 in sn r4)
(cell-info spar terminator st row5 28 1 in sn r5)
(cell-info spar terminator st row6 28 1 in sn r6)
(cell-info spar terminator st row7 28 1 in sn r7))
【0056】
ブロックEの最初のラインには、挿入されるべき標準セル(“snd03c”)とそのグループ(“sc_a”)が示されている。また、数値(140)は、10で除算されることによってセルの幅をミクロン単位で表す。更に“4”という数字は、このセルに関連して4つのポートがあることを示している。3つの入力ポートi1、i2、及びi3は、共通の電気接続またはネットsn_i1を有する。この共通電気接続のため、それらは、配置及びラウティングツールにより共通の信号トラックに接続される。出力ポートは、sn_oaとして同定される。ブロックEの残りのラインも同じフォーマットである。
【0057】
ブロックFのコードは、電源及びグランドコネクタのポートを記述している。このコードはブロックEと同じ形式である。同様に、ブロックGでは縦方向ワイヤターミネータに対するポートが記述され、ブロックHではブロックDのターミネータに対し割り当てられたポートが記述されている。
【0058】
残りのコードブロックは、集積回路の標準セル領域内への実際のセルの挿入処理に関する。上述したコードブロックは使用可能なセルを効果的に規定し宣言している。以下のコードを用いて、使用可能なセルの実際の配置がなされる。
【0059】
(INSERT-INFO
(*Block I*)
(insert A 1 sc a 1 0.250)
(insert A 1 sc b 1 0.250)
(insert A 1 sc e 1 0.500)
(insert A 1 st ivcc1 1 0.500)
(insert A 1 sc f 1 0.500)
(insert A 1 sc c 1 0.750)
(insert A 1 sc d 1 0.750)
(insert A 1 st ivss1 1 L)
(insert A 1 st ivss1 1 0.750)
(insert A 1 st row1 1 L)
(insert A 1 st row1 1 R)
(*Block J*)
(insert A 2 sc a 1 0.250)
(insert A 2 st oa 2 0.250)
(insert A 2 sc c 2 0.250)
(insert A 2 sc e 1 0.500)
(insert A 2 st ivcc1 1 0.500)
(insert A 2 sc f 2 0.500)
(insert A 2 sc b 1 0.750)
(insert A 2 st ob 2 0.750)
(insert A 2 sc d 2 0.750)
(insert A 2 st ivss1 1 L)
(insert A 2 st ivss1 1 0.750)
(*Block K*)
(insert A 3 sc a 1 0.250)
(insert A 3 st oa 3 0.250)
(insert A 3 sc c 3 0.250)
(insert A 3 sc e 1 0.500)
(insert A 3 st ivcc1 1 0.500)
(insert A 3 sc f 3 0.500)
(insert A 3 sc b 1 0.750)
(insert A 3 st ob 3 0.750)
(insert A 3 sc d 3 0.750)
(insert A 3 st ivss1 1 L)
(insert A 3 st ivss1 1 0.750)
(*Block L*)
(insert A 4 sc a 2 0.250)
(insert A 4 st oa 4 0.250)
(insert A 4 sc c 3 0.250)
(insert A 4 sc e 2 0.500)
(insert A 4 st ivcc1 2 0.500)
(insert A 4 sc f 3 0.500)
(insert A 4 sc b 2 0.750)
(insert A 4 st ob 4 0.750)
(insert A 4 sc d 3 0.750)
(insert A 4 st ivss1 1 L)
(insert A 4 st ivss1 1 0.750)
(*Block M*)
(insert A 5 sc a 2 0.250)
(insert A 5 st oa 5 0.250)
(insert A 5 sc b 2 0.750)
(insert A 5 st ob 5 0.750)
(insert A 5 sc e 3 0.250)
(insert A 5 st ivcc1 3 0.250)
(insert A 5 sc f 3 0.750)
(insert A 5 sc c 4 0.250)
(insert A 5 sc d 4 0.750)
(insert A 5 st ivss1 1 L)
(insert A 5 st ivss1 1 0.750)
(*Block N*)
(insert A 6 sc a 2 0.250)
(insert A 6 st oa 6 0.250)
(insert A 6 sc b 2 0.750)
(insert A 6 st ob 6 0.750)
(insert A 6 sc e 3 0.500)
(insert A 6 st ivcc1 3 0.500)
(insert A 6 sc f 4 0.500)
(insert A 6 sc c 5 0.250)
(insert A 6 sc d 5 0.750)
(insert A 6 st ivss1 1 L)
(insert A 6 st ivss1 1 0.750)
(*Block O*)
(insert A 7 sc a 2 0.250)
(insert A 7 st oa 7 0.250)
(insert A 7 sc b 2 0.750)
(insert A 7 st ob 7 0.750)
(insert A 7 sc e 4 0.250)
(insert A 7 st ivcc1 4 0.250)
(insert A 7 sc f 4 0.750)
(insert A 7 sc c 6 0.250)
(insert A 7 sc d 6 0.750)
(insert A 7 st ivss1 1 L)
(insert A 7 st ivss1 1 0.750)
(*Block P*)
(insert B 1 sc a 1 0.250)
(insert B 1 sc b 1 0.250)
(insert B 1 sc f 1 0.500)
(insert B 1 st ivcc1 1 0.500)
(insert B 1 sc g 1 0.750)
(insert B 1 sc h 1 0.750)
(insert B 1 st ivss1 1 L)
(insert B 1 st ivss1 1 0.750)
(*Block Q*)
(insert B 2 sc a 1 0.250)
(insert B 2 st oa 2 0.250)
(insert B 2 sc b 2 0.250)
(insert B 2 sc f 2 0.500)
(insert B 2 st ivcc1 2 0.500)
(insert B 2 sc g 1 0.750)
(insert B 2 st og 2 0.750)
(insert B 2 sc h 2 0.750)
(insert B 2 st ivss1 1 L)
(insert B 2 st ivss1 1 0.750)
(*Block R*)
(insert B 3 sc a 1 0.250)
(insert B 3 st oa 3 0.250)
(insert B 3 sc b 3 0.250)
(insert B 3 sc f 3 0.500)
(insert B 3 st ivcc1 3 0.500)
(insert B 3 sc g 1 0.750)
(insert B 3 st og 3 0.750)
(insert B 3 sc h 3 0.750)
(insert B 3 st ivss1 1 L)
(insert B 3 st ivss1 1 0.750)
(*Block S*)
(insert B 4 sc a 2 0.250)
(insert B 4 st oa 4 0.250)
(insert B 4 sc b 3 0.250)
(insert B 4 sc f 3 0.500)
(insert B 4 st ivcc1 3 0.500)
(insert B 4 sc g 2 0.750)
(insert B 4 st og 4 0.750)
(insert B 4 sc h 3 0.750)
(insert B 4 st ivss1 1 L)
(insert B 4 st ivss1 1 0.750)
(*Block T*)
(insert B 5 sc a 2 0.250)
(insert B 5 st oa 5 0.250)
(insert B 5 sc b 4 0.250)
(insert B 5 sc f 3 0.500)
(insert B 5 st ivcc1 3 0.500)
(insert B 5 sc g 4 0.750)
(insert B 5 st og 1 0.750)
(insert B 5 sc h 2 0.750)
(insert B 5 st ivss1 1 L)
(insert B 5 st ivss1 1 0.750)
(*Block U*)
(insert B 6 sc a 2 0.250)
(insert B 6 st oa 6 0.250)
(insert B 6 sc b 5 0.250)
(insert B 6 sc f 4 0.500)
(insert B 6 st ivcc1 4 0.500)
(insert B 6 sc g 2 0.750)
(insert B 6 st og 6 0.750)
(insert B 6 sc h 5 0.750)
(insert B 6 st ivss1 1 L)
(insert B 6 st ivss1 1 0.750)
(*Block V*)
(insert B 7 sc a 2 0.250)
(insert B 7 st oa 7 0.250)
(insert B 7 sc b 6 0.250)
(insert B 7 sc f 4 0.500)
(insert B 7 st ivcc1 4 0.500)
(insert B 7 sc g 2 0.750)
(insert B 7 st og 7 0.750)
(insert B 7 sc h 6 0.750)
(insert B 7 st ivss1 1 L)
(insert B 7 st ivss1 1 0.750)
(*Block W*)
(insert C 1 sc a 1 0.250)
(insert C 1 sc b 1 0.750)
(insert C 1 sc f 1 0.500)
(insert C 1 st ivcc1 1 0.500)
(insert C 1 sc i 1 0.500)
(insert C 1 st ivss1 1 L)
(insert C 1 st ivss1 1 0.750)
(*Block X*)
(insert C 2 sc a 1 0.250)
(insert C 2 st oa 2 0.250)
(insert C 2 st ob 1 0.750)
(insert C 2 sc b 2 0.750)
(insert C 2 sc f 1 0.750)
(insert C 2 st ivcc1 1 0.750)
(insert C 2 sc i 2 0.250)
(insert C 2 st ivss1 1 L)
(insert C 2 st ivss1 1 0.750)
(*Block Y*)
(insert C 3 sc a 2 0.250)
(insert C 3 st oa 3 0.250)
(insert C 3 st ob 1 0.750)
(insert C 3 sc b 2 0.750)
(insert C 3 sc f 1 0.500)
(insert C 3 st ivcc1 1 0.500)
(insert C 3 sc i 3 0.500)
(insert C 3 st ivss1 1 L)
(insert C 3 st ivss1 1 0.750)
(*Block Z*)
(insert C 4 sc a 2 0.250)
(insert C 4 st oa 4 0.250)
(insert C 4 st ob 1 0.750)
(insert C 4 sc b 3 0.750)
(insert C 4 sc f 2 0.750)
(insert C 4 st ivcc1 2 0.750)
(insert C 4 sc i 3 0.250)
(insert C 4 st ivss1 1 L)
(insert C 4 st ivss1 1 0.750)
(*Block Z 1*)
(insert C 5 sc a 3 0.250)
(insert C 5 st oa 5 0.250)
(insert C 5 st ob 1 0.750)
(insert C 5 sc b 3 0.750)
(insert C 5 sc f 1 0.500)
(insert C 5 st ivcc1 1 0.500)
(insert C 5 sc i 4 0.500)
(insert C 5 st ivss1 1 L)
(insert C 5 st ivss1 1 0.750)
(*Block Z 2*)
(insert C 6 sc a 3 0.250)
(insert C 6 st oa 6 0.250)
(insert C 6 st ob 1 0.750)
(insert C 6 sc b 4 0.750)
(insert C 6 sc f 2 0.750)
(insert C 6 st ivcc1 2 0.750)
(insert C 6 sc i 5 0.250)
(insert C 6 st ivss1 1 L)
(insert C 6 st ivss1 1 0.750)
(*Block Z 3*)
(insert C 7 sc a 4 0.250)
(insert C 7 st oa 7 0.250)
(insert C 7 st ob 1 0.750)
(insert C 7 sc b 4 0.750)
(insert C 7 sc f 2 0.500)
(insert C 7 st ivcc1 2 0.500)
(insert C 7 sc i 6 0.500)
(insert C 7 st ivss1 1 L)
(insert C 7 st ivss1 1 0.750))
)
【0060】
ブロックJの最初のラインは、“挿入(insert)”コマンドで始まっている。その後に、クラスタを特定する“A”が続いている。クラスタ“A”は、スペアセル領域に繰り返し挿入されるグループの集まり(クラスタ)である。上述したように、この例では、各グループはセルを一つしか含まない。ブロックJの最初のラインの次の項は、数字“2”である。これは、ブロックJのクラスタが2つの標準セルトラックまたは行に挿入されることを意味している。次の項は、グループ“sc a”が挿入されることを示している。更に次の項は、そのグループが、2つの標準セルトラックの内、標準セルトラック1に挿入されるということを意味している。このラインの最後の項には、挿入されるグループが位置すべき標準セルトラックに於けるX軸位置が、標準セルトラックの全長の何倍かを示す値(0.250)として示されている。
【0061】
ブロックJの残りのラインも同じフォーマットである。ブロックJの第2ラインでは、標準セルトラック2に、縦方向ワイヤターミネータを含むグループst oaが挿入されることに注意されたい。ブロックGの最初のラインは、st oaに対する入力ポートがsn oaであることを示している。ブロックEの最初のラインは、sn oaがグループsc aに対する出力であることを示している。前の段落で述べたように、グループsc aは、標準セルトラック1に挿入される。これらの要素の間に共通の接続性(connectivity)を仮定すると、配置及びラウティング時、配置及びラウティングツールは、図7を参照して述べたような縦方向ラウティングトラック126を生成する。
【0062】
ブロックJの第3ラインでは、グループsc cが規定された位置(標準セルトラック2の長さ×0.250)に挿入される。この位置は、一つ前のラインで挿入されるターミネータの位置と同じであることに注意されたい。2以上のグループが同じ位置に割り当てられた場合、最初のグループがその位置に配置され、2つ目の要素は元の位置に近接した位置に配置される。このとき、複数セルを有するグループも単一の位置に挿入され得ることに注意されたい。本例では、一つのセルだけを含むグループに対してのみ位置の割り当てを行っている。しかし、後に続く命令で、同じ位置に別のグループを割り当てることもできる。
【0063】
ブロックJの第5ラインでは、電源コネクタst ivcc1が標準セルトラック1内に挿入される。ブロックFの第4ラインは、このコネクタが出力sn i4を有していることを示している。ブロックEでは、この出力がセルxincmosf、sin00c及びsin00cの入力に接続されていることに注意されたい。従って、これらのセルの入力ゲートには電源信号が供給され、効果的にその機能がディスエーブルされることになる。この状態は、初期レイアウトの論理エラーを修正する必要がある場合に、配置及びラウティングツールによってそれらのセルの入力が信号トラックに接続されるまで続く。
【0064】
ブロックJの最後の2つのラインは、グランドコネクタst ivss1をトラック1の位置L(X軸上の左端;X=0)と、トラック1の全長の0.750倍の位置に配置することを示している。これらのグランドコネクタには、同じ出力sn i1が規定されている。従って、配置及びラウティング時、配置及びラウティングツールはこれらのセルの間に、例えば図7に示したトラック132のようなトラックを生成する。生成されたトラックは、他の挿入されたセル、例えばセル122F及び122Gの入力を接地するのに用いることができる。
【0065】
ブロックK乃至Oでは、ブロックJと同じクラスタに属するグループが挿入されていることに注意されたい。しかしながら、各ブロックで、同じグループが異なる標準セルトラックのセットに挿入されている。例えば、ブロックKでは、そのようなセットは3つの標準セルトラック(1乃至3)に渡っているが、グループはトラック1とトラック3にしか挿入されていない。ブロックLでは、グループはトラック1乃至トラック4に挿入されている。ブロックMでは、グループはトラック1乃至トラック5に挿入されている。ブロックNでは、グループはトラック1乃至トラック6に挿入されている。ブロックOでは、グループは7つのトラックに渡っているが、実際はトラック1、2、4、6、及び7にしか挿入されていない。
【0066】
このように、本発明では、単一のクラスタを用いて、そのクラスタを繰り返し異なる標準セルトラックセットに挿入する。この方法により、十分満足のいくようにスペアセルを分散配置し得る確立された技術が得られている。
【0067】
グループAの最初のブロック(ブロックI)のクラスタは、グループAの残りのブロック(ブロックJ乃至Q)のクラスタと同じでない。この理由は、ブロックIでは、セルが単一のトラックにのみ挿入され、他のブロックのように複数のトラックに挿入されないためである。従って、この場合は特別に扱われる。
【0068】
ブロックIの最後の2つのラインでは、スペアターミネータが挿入される。ブロックIの下から2つ目のラインでは、スペアターミネータst_row1が、図7に示されたターミネータ140Aのように、トラック1の左端(X=0)に挿入される。ブロックIの最後のラインでは、スペアターミネータst_row1が、図7に示されたターミネータ140Bのように、トラック1の右端(Xが最大となる位置)に挿入される。ブロックHの第1ラインは、ターミネータst_row1の入力は、sn_r1と規定されることを示している。スペアトラックの両端部で同じ入力(sn_r1)が規定されるため、配置及びラウティングツールは、これらのスペアターミネータの間にトラック142を生成する。
【0069】
ブロックQから、グループBとして識別されるクラスタが始まっている。ブロックQ乃至Vのシンタックス(syntax)及び技法は、上述したブロックと同じである。ブロックPが、グループBの最初のブロックであることに注意されたい。ブロックIの場合と同様に、ブロックPは単一のトラックにのみセルを挿入する。従って、ブロックPで使用されるセルは、ブロックQ乃至Vで使用されるセルと一致しない。
【0070】
ブロックW乃至Z_3は、グループCとして識別されるクラスタを規定する。これらのブロックのシンタックス及び技法は、既に述べたブロックと同じである。
【0071】
本発明の挿入ブロックは、次のように用いられる。初期配置された集積回路の標準セル領域が、8ブロックに含まれるグループの数に相当するグループ数を受け入れることが出来ると過程すると、この場合、クラスタ“A”、“B”、“C”に順にアクセスすることによってセルを標準セル領域内に挿入することが出来る。詳述すると、その順番は、A、B、C、A、B、C、A、Bとなる。例えば、スペアセル分散配置メカニズム48が、半導体回路の標準セル領域内の第1トラックから挿入を始めるとすると、ブロックIを最初に使用することができるだろう。なぜなら、ブロックIはクラスタAに属し、かつ単一のトラックについて規定しているからである。挿入処理が第2トラックに移ると、今度は、クラスタBに属し2つのトラックについて規定しているブロックQを使用することができるだろう。挿入をトラックの順に行う必要はない。使用されるトラックは、通常、標準セル領域内のトラック数及びこれらのトラックの適切なグループ分けを含む予め定められた基準に基づいて選択される。例えば、10個のトラックからなるグループを(1,5,7)、(2,3,4,10)、及び(6,7,8,9)のようにグループ分けしてもよい。このような場合、分散配置メカニズム48は、最初ブロックKを、次にブロックSを、続いてブロックZをコールする。
【0072】
トラック数がクラスタ内のグループ数よりも多い場合、2以上のクラスタを用いて多数のトラックにグループを挿入することができる。例えば、上述した例に於いてトラック数が10の場合、クラスタAのブロックOと、クラスタBのブロックRを10個のトラックを満たすように用いることができる。上述したことから理解されるように、本発明の全般的な目的はスペアセルの良好な分散配置を得ることである。当然ながら、この目的を達成するため、いくつかの関連する技法を用いてもよい。
【0073】
本発明の特定の実施例に対する上記の説明は、例示及び説明を目的とたものである。上記の実施例は、本発明を余すところなく述べ、本発明を記載された形態そのものに限定することを意図したものではなく、上述したことから様々な変形変更が可能であることは明らかであろう。上記実施例は、本発明の原理とその実際的な応用について最もよく説明し、それによって当業者が本発明及び特定の用途に合うように様々な変形を施した実施形態を最適に使用することができるように選択し記載したものである。本発明の範囲は、特許請求の範囲によって画定される。
【図面の簡単な説明】
【図1】図1の左側部分は、本発明の一実施例による方法を例示し、右側部分はその方法を実行するための対応する装置を例示するものである。
【図2】図2は、本発明に従って用いることのできる汎用コンピュータを例示したものである。
【図3】図3は、集積回路の標準セル領域の一部を簡略化して図示したものである。
【図4】図4は、図3の標準セル領域をより詳細に表している。
【図5】図5は、本発明に従って使用される命令ファイルの一実施例に関連する処理命令を表している。
【図6】図6は、本発明のスペアセル分散配置メカニズムの一実施例に関連したプロセスを示している。
【図7】図7は、本発明に従って、元の標準セルトラック内に挿入され分散配置された標準セルを表している。
【符号の説明】
20 標準セルの初期レイアウト生成過程
22 レイアウト内へのスペアセルの分散配置過程
24 標準セルの最終レイアウト生成過程
26 回路のラウティング過程
28 回路機能の検証過程
30 スペアセルの接続過程
40 配置及びラウティングツール
42 ネットリスト
44 パラメータファイル
46 回路レイアウト(標準セルレイアウト)
48 スペアセル分散配置メカニズム
50 命令ファイルジェネレータ
52 命令ファイル
54 改訂された回路レイアウト
56 レイアウト/設計比較ツール
58 ロジック検証器
60 プレースメント命令
62 X軸
64 Y軸
65 セル
66A〜66D 標準セルトラック
68A〜68C ラウティングトラック
70 ANDゲート
72 インバータ
74 NORゲート
76 NANDゲート
78 加算器
80 電源バス
82 グランドバス
84A〜84C 信号トラック
86、88 信号トラックコネクタ
90 メモリ
92 CPU
94 システムバス
96 入力/出力デバイス
100 使用可能なスペアセルを確定する過程
102 セルの接続のセットを宣言する過程
104 既存レイアウト内へのセル及び接続の分散配置過程
110 グループ情報の処理過程
112 セル情報の処理過程
114 挿入情報の処理過程
115 挿入のためのクラスタの選択過程
116 グリッド位置の同定過程
118 新たなセルグループの挿入過程
120 残りのセルの位置の繰り上げ過程
122A〜122G スペア標準セル
124A、124B 縦方向ワイヤターミネータ
126 縦方向接続
130A、130B グランドコネクタ
132 ラウティングトラック
140A、140B スペアターミネータ
142 信号トラック

Claims (7)

  1. 集積回路レイアウト内への標準セルの自動挿入装置であって、
    集積回路内に標準セルをレイアウトして初期レイアウトを生成する配置及びラウティングツールと、
    前記初期レイアウト内に標準セルの問題点を修正するのに用いられるスペアセルの予め選択されたクラスタを分散配置するスペアセル分散配置手段とを含むことを特徴とする装置。
  2. 前記初期レイアウトが複数の標準セルトラックを含み、前記スペアセル分散配置手段が、少なくとも1つの前記標準セルトラック内に、他の標準セルトラックに含まれるスペアセルへの接続を提供するための電気的に浮いた接続ポートを確立する縦方向ワイヤターミネータの予め選択されたグループを分散配置することを特徴とする請求項1に記載の装置。
  3. 前記スペアセル分散配置手段が、第1グランドコネクタを前記標準セルの第1サイドに、第2グランドコネクタを前記標準セルの第2サイドへ配置し、前記配置及びラウティングツールによって行われるラウティングトラックのラウティングが、前記第1グランドコネクタと前記第2グランドコネクタとの間になされるようにするためのものであることを特徴とする請求項1に記載の装置。
  4. 前記スペアセルのクラスタがスペアセルの複数のグループを含み、前記スペアセル分散配置手段が前記スペアセルのグループを標準セルの前記初期レイアウト内の予め定められた物理的な位置に分散配置するためのものであることを特徴とする請求項1に記載の装置。
  5. 前記スペアセル分散配置手段が、スペアセルの前記予め選択されたクラスタを、前記集積回路上のスペアセルに対して使用可能なスペースに基づいて分散配置するためのものであることを特徴とする請求項1に記載の装置。
  6. 前記スペアセル分散配置手段が、スペアセルの前記予め選択されたクラスタを、前記集積回路上の標準セルトラックの数に基づいて分散配置するためのものであることを特徴とする請求項1に記載の装置。
  7. 前記スペアセル分散配置手段が、スペアセルの前記予め選択されたクラスタを、標準セルの前記初期レイアウト内の標準セルの数に基づいて選択するためのものであることを特徴とする請求項1に記載の装置。
JP32119395A 1994-11-16 1995-11-15 集積回路レイアウト内への標準セルの自動挿入装置 Expired - Lifetime JP3891599B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/340,706 1994-11-16
US08/340,706 US5623420A (en) 1994-11-16 1994-11-16 Method and apparatus to distribute spare cells within a standard cell region of an integrated circuit

Publications (2)

Publication Number Publication Date
JPH08212250A JPH08212250A (ja) 1996-08-20
JP3891599B2 true JP3891599B2 (ja) 2007-03-14

Family

ID=23334590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32119395A Expired - Lifetime JP3891599B2 (ja) 1994-11-16 1995-11-15 集積回路レイアウト内への標準セルの自動挿入装置

Country Status (3)

Country Link
US (1) US5623420A (ja)
JP (1) JP3891599B2 (ja)
KR (1) KR100413861B1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712794A (en) * 1995-11-03 1998-01-27 Motorola, Inc. Automated method for adding attributes indentified on a schematic diagram to an integrated circuit layout
US5793069A (en) * 1996-06-28 1998-08-11 Intel Corporation Apparatus for protecting gate electrodes of target transistors in a gate array from gate charging by employing free transistors in the gate array
JP3024593B2 (ja) * 1997-06-05 2000-03-21 日本電気株式会社 レイアウト設計方法およびレイアウト設計装置
US6093214A (en) * 1998-02-26 2000-07-25 Lsi Logic Corporation Standard cell integrated circuit layout definition having functionally uncommitted base cells
US6282692B1 (en) * 1998-12-03 2001-08-28 International Business Machines Corporation Structure for improved capacitance and inductance calculation
JP4491113B2 (ja) * 1999-06-14 2010-06-30 セイコーエプソン株式会社 半導体集積回路の設計方法
JP3372918B2 (ja) * 1999-12-21 2003-02-04 日本電気株式会社 設計支援システム及びセル配置方法
US6446245B1 (en) * 2000-01-05 2002-09-03 Sun Microsystems, Inc. Method and apparatus for performing power routing in ASIC design
US6543040B1 (en) * 2000-03-15 2003-04-01 International Business Machines Corporation Macro design techniques to accommodate chip level wiring and circuit placement across the macro
JP2001291771A (ja) * 2000-04-04 2001-10-19 Mitsubishi Electric Corp 自動配置配線装置及び自動配置配線方法
US6480996B1 (en) 2000-07-06 2002-11-12 Sun Microsystems, Inc. System and method for transposing wires in a circuit design
US6993738B2 (en) * 2002-06-18 2006-01-31 Ip-First, Llc Method for allocating spare cells in auto-place-route blocks
JP2004102772A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp 設計検証装置
US7076759B2 (en) * 2003-08-26 2006-07-11 Lsi Logic Corporation Methodology for generating a modified view of a circuit layout
JP2005217321A (ja) * 2004-01-30 2005-08-11 Nec Electronics Corp 自動配置配線装置、半導体装置の配置配線方法、半導体装置の製造方法及び半導体装置
US7634743B1 (en) * 2006-07-21 2009-12-15 Cadence Design Systems, Inc. Method for updating a placed and routed netlist
US7784006B1 (en) 2006-07-27 2010-08-24 Xilinx, Inc. Method and apparatus for directed physical implementation of a circuit design for an integrated circuit
US7761276B1 (en) * 2006-09-27 2010-07-20 Xilinx, Inc. Apparatus and method for port reduction in simulation files
US7793247B1 (en) * 2007-06-13 2010-09-07 Xilinx, Inc. Method and apparatus for directed physical implementation of a circuit design for an integrated circuit
US7949988B2 (en) * 2008-04-01 2011-05-24 Mediatek Inc. Layout circuit having a combined tie cell
US8051400B2 (en) * 2008-10-21 2011-11-01 Arm Limited Modifying integrated circuit layout
US8234612B2 (en) 2010-08-25 2012-07-31 International Business Machines Corporation Cone-aware spare cell placement using hypergraph connectivity analysis
US8266566B2 (en) 2010-09-10 2012-09-11 International Business Machines Corporation Stability-dependent spare cell insertion
US8572536B2 (en) 2011-09-27 2013-10-29 International Business Machines Corporation Spare latch distribution
US8490039B2 (en) * 2011-12-09 2013-07-16 International Business Machines Corporation Distributing spare latch circuits in integrated circuit designs
US8661391B1 (en) 2013-01-02 2014-02-25 International Business Machines Corporation Spare cell insertion based on reachable state analysis
US9454632B1 (en) * 2015-01-16 2016-09-27 Apple Inc. Context specific spare cell determination during physical design
US10409945B1 (en) 2015-06-29 2019-09-10 Cadence Design Systems, Inc. Methods, systems, and computer program product for connectivity verification of electronic designs
US9734278B1 (en) * 2015-06-29 2017-08-15 Cadence Design System, Inc. Methods, systems, and articles of manufacture for automatic extraction of connectivity information for implementation of electronic designs
US10127340B2 (en) 2016-09-30 2018-11-13 Taiwan Semiconductor Manufacturing Company, Ltd. Standard cell layout, semiconductor device having engineering change order (ECO) cells and method
US9892966B1 (en) 2016-12-14 2018-02-13 Nxp B.V. Metal only post-mask ECO for integrated circuit
US10719651B2 (en) * 2017-12-30 2020-07-21 Arteris, Inc. Synthesizing topology for an interconnect network of a system-on-chip with intellectual property blocks
CN109460611A (zh) * 2018-11-12 2019-03-12 北京华大九天软件有限公司 一种根据线网名自动创建端口的方法
US11657203B2 (en) 2019-12-27 2023-05-23 Arteris, Inc. Multi-phase topology synthesis of a network-on-chip (NoC)
US10990724B1 (en) 2019-12-27 2021-04-27 Arteris, Inc. System and method for incremental topology synthesis of a network-on-chip
US11665776B2 (en) 2019-12-27 2023-05-30 Arteris, Inc. System and method for synthesis of a network-on-chip for deadlock-free transformation
US11558259B2 (en) 2019-12-27 2023-01-17 Arteris, Inc. System and method for generating and using physical roadmaps in network synthesis
US11418448B2 (en) 2020-04-09 2022-08-16 Arteris, Inc. System and method for synthesis of a network-on-chip to determine optimal path with load balancing
US11601357B2 (en) 2020-12-22 2023-03-07 Arteris, Inc. System and method for generation of quality metrics for optimization tasks in topology synthesis of a network
US11281827B1 (en) 2020-12-26 2022-03-22 Arteris, Inc. Optimization of parameters for synthesis of a topology using a discriminant function module
US11449655B2 (en) 2020-12-30 2022-09-20 Arteris, Inc. Synthesis of a network-on-chip (NoC) using performance constraints and objectives
US11956127B2 (en) 2021-03-10 2024-04-09 Arteris, Inc. Incremental topology modification of a network-on-chip

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228528B2 (en) * 1979-02-09 1992-10-06 Memory with redundant rows and columns
US4422161A (en) * 1981-10-08 1983-12-20 Rca Corporation Memory array with redundant elements
US4494220A (en) * 1982-11-24 1985-01-15 At&T Bell Laboratories Folded bit line memory with one decoder per pair of spare rows
US4783749A (en) * 1985-05-21 1988-11-08 Siemens Aktiengesellschaft Basic cell realized in the CMOS technique and a method for the automatic generation of such a basic cell
JPH0666393B2 (ja) * 1986-05-23 1994-08-24 日本電気株式会社 レイアウト設計における配置改良方法
JP2771165B2 (ja) * 1987-09-24 1998-07-02 日本電気アイシーマイコンシステム 株式会社 半導体集積回路装置のレイアウト設計方法
JPH0395957A (ja) * 1989-09-08 1991-04-22 Toshiba Corp 半導体論理集積回路
JP3032224B2 (ja) * 1990-02-21 2000-04-10 株式会社東芝 半導体集積回路の論理セル配置方法
US5497334A (en) * 1993-02-19 1996-03-05 International Business Machines Corporation Application generator for use in verifying a hierarchical circuit design
US5495419A (en) * 1994-04-19 1996-02-27 Lsi Logic Corporation Integrated circuit physical design automation system utilizing optimization process decomposition and parallel processing

Also Published As

Publication number Publication date
KR960018995A (ko) 1996-06-17
KR100413861B1 (ko) 2004-03-10
JPH08212250A (ja) 1996-08-20
US5623420A (en) 1997-04-22

Similar Documents

Publication Publication Date Title
JP3891599B2 (ja) 集積回路レイアウト内への標準セルの自動挿入装置
US7039881B2 (en) Modification of integrated circuits
US5666288A (en) Method and apparatus for designing an integrated circuit
US5225991A (en) Optimized automated macro embedding for standard cell blocks
US6209123B1 (en) Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors
JP4679029B2 (ja) 集積回路をパーティション化して、配置及び配線をするシステム
US5936868A (en) Method for converting an integrated circuit design for an upgraded process
US5719783A (en) Method and apparatus for performing timing analysis on a circuit design
US7017132B2 (en) Methodology to optimize hierarchical clock skew by clock delay compensation
US6966045B2 (en) Method and computer program product for estimating wire loads
US5402357A (en) System and method for synthesizing logic circuits with timing constraints
US7865855B2 (en) Method and system for generating a layout for an integrated electronic circuit
US20180225402A9 (en) Computer implemented system and method for generating a layout of a cell defining a circuit component
US7096447B1 (en) Method and apparatus for efficiently locating and automatically correcting certain violations in a complex existing circuit layout
US6360350B1 (en) Method and system for performing circuit analysis on an integrated-circuit design having design data available in different forms
US6539528B2 (en) Methods, systems, and computer program products for designing an integrated circuit that use an information repository having circuit block layout information
Chang et al. Postlayout logic restructuring using alternative wires
US6480996B1 (en) System and method for transposing wires in a circuit design
US20050183053A1 (en) Software product for and method of laying-out semiconductor device
US6931610B1 (en) Method for rapid estimation of wire delays and capacitances based on placement of cells
US6615401B1 (en) Blocked net buffer insertion
US5825659A (en) Method for local rip-up and reroute of signal paths in an IC design
US9177090B1 (en) In-hierarchy circuit analysis and modification for circuit instances
JP2872216B1 (ja) マクロの設計方法
Reinhardt Automatic layout modification: including design reuse of the alpha cpu in 0.13 micron soi technology

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060913

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131215

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term