(58)【調査した分野】(Int.Cl.,DB名)
前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線は、前記集積回路の別の配線とは別の配線層として配置される請求項1に記載の集積回路。
容量の一方の端子と電源端子及び前記容量の他方の端子とグランド端子を配線で接続したデフォルトセル、前記容量、電源端子、グランド端子のみを備えるブランクセルを備え、
前記デフォルトセルを前記集積回路の空いている箇所に配置し、
前記配置されたデフォルトセルの配線と集積回路の別の配線がショートする場合、前記デフォルトセルに代えて前記ブランクセルを配置し、
配置した前記ブランクセルの、前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線を、前記集積回路の別の配線を回避して配置することを特徴とする集積回路の設計方法。
前記配置したデフォルトセルまたはブランクセルの容量が必要量に達しない場合は、達するまで前記デフォルトセルまたは前記ブランクセルを追加で配置する請求項6に記載の集積回路の設計方法。
前記配置したデフォルトセルまたはブランクセルの容量が必要量に達しない場合は、達するまで前記デフォルトセルまたは前記ブランクセルを追加で配置する請求項8に記載の集積回路設計装置。
容量の一方の端子と電源端子及び前記容量の他方の端子とグランド端子を配線で接続したデフォルトセル、前記容量、電源端子、グランド端子のみを備えるブランクセルを用意する処理と、
前記デフォルトセルを集積回路の空いている箇所に配置する処理と、
前記配置されたデフォルトセルの配線と前記集積回路の別の配線がショートする場合、前記デフォルトセルに代えて前記ブランクセルを配置する処理と、
配置した前記ブランクセルの、前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線を、前記集積回路の別の配線を回避して配置する処理を、
コンピュータに実行させることを特徴とする集積回路の設計プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1(特許公開2005−276970号公報)に示されるような、予め複数の配線パタンを有するデカップリングキャパシタを準備し、論理集積回路の配線と干渉しないパタンを持つキャパシタセルを選択して配置するなどの手法も存在する。しかし、全ての配線パタンの組み合わせを網羅するようなキャパシタセルを準備することは困難であり、結果として充分なキャパシタセルを配置することが困難な場合があった。
【0008】
また特許文献2(特開2011-035210号公報)は、配置済みのキャパシタセルをEMI(電磁ノイズ)対策のセルとして使用するために、N型MOSトランジスタのソース、ドレインを制御電圧用の端子に接続し、制御電圧を調整することで共振周波数を可変としている(同文献の実施形態1、
図3)。もしくは、キャパシタセルを構成するP型トランジスタのゲートをグランド端子に、バックゲートを電源端子に接続している(同文献の実施形態2、
図9)。
【0009】
この特許文献2には、キャパシタセル内の配線と、論理集積回路の配線が干渉することにより十分なキャパシタを配置できない問題についての記述も示唆もない。
【0010】
本発明の目的は、以上述べた問題点を解決し、より多くの容量を追加することが可能となり、電源ノイズ耐性の高い集積回路を設計することが可能となる集積回路、その設計方法、設計装置、設計プログラムを提供することである。
【課題を解決するための手段】
【0011】
本発明は、容量の一方の端子と電源端子及び前記容量の他方の端子とグランド端子を配線で接続したデフォルトセル、前記容量、前記電源端子、前記グランド端子のみを備えるブランクセルを備え、
前記デフォルトセルが前記集積回路の空いている箇所に配置され、
前記配置されたデフォルトセルの配線と前記集積回路の別の配線がショートする場合、前記ブランクセルが配置され、
配置した前記ブランクセルの、前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線が、前記集積回路の別の配線を回避して配置されることを特徴とする集積回路、である。
【0012】
また本発明は、容量の一方の端子と電源端子及び前記容量の他方の端子とグランド端子を配線で接続したデフォルトセル、前記容量、電源端子、グランド端子のみを備えるブランクセルを備え、
前記デフォルトセルを前記集積回路の空いている箇所に配置し、
前記配置されたデフォルトセルの配線と前記集積回路の別の配線がショートする場合、前記デフォルトセルに代えて前記ブランクセルを配置し、
配置した前記ブランクセルの、前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線を、前記集積回路の別の配線を回避して配置することを特徴とする集積回路の設計方法、である。
【0013】
また本発明は、集積回路の配置配線情報と物理ライブラリが入力される配置配線情報・各種ライブラリ入力手段、
設計規則情報が入力される設計規則入力手段、
前記配置配線情報・各種ライブラリ入力手段と設計規則入力手段から、各配線に必要なキャパシタセル量を算出するキャパシタセル量算出手段、
前記キャパシタセル量算出手段で算出したキャパシタセル量に基づき、前記各配線に前記必要なキャパシタセルを追加するキャパシタセル追加手段、
前記ャパシタセル追加手段で追加したキャパシタセルの配線と前記集積回路の前記キャパシタセルとは別の配線がショートするかどうかを検出し、ショートする場合には、容量、電源端子、グランド端子のみを備えるブランクセルを配置し、配置した前記ブランクセルの、前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線を、前記集積回路の別の配線を回避して配置するキャパシタセル形成手段、
追加された前記キャパシタセルと前記ブランクセルの容量が、前記各配線におけるキャパシタの必要量とを比較するキャパシタセル容量計算手段、
を備えることを特徴とする集積回路設計装置、である。
【0014】
また本発明は、容量の一方の端子と電源端子及び前記容量の他方の端子とグランド端子を配線で接続したデフォルトセル、前記容量、電源端子、グランド端子のみを備えるブランクセルを用意する処理と、
前記デフォルトセルを前記集積回路の空いている箇所に配置する処理と、
前記配置されたデフォルトセルの配線と前記集積回路の別の配線がショートする場合、前記デフォルトセルに代えて前記ブランクセルを配置する処理と、
配置した前記ブランクセルの、前記ショートする箇所における前記容量と前記電源端子または前記グランド端子との配線を、前記集積回路の別の配線を回避して配置する処理を、
コンピュータに実行させることを特徴とする集積回路の設計プログラム、である。
【発明の効果】
【0015】
本発明によれば、背景技術で述べた手法では一般信号配線とキャパシタセルのメタル成分が干渉し、キャパシタセルの配置ができなかった箇所においても、より多くの容量を追加することが可能となり、電源ノイズ耐性の高い集積回路を設計することが可能となる。
【発明を実施するための形態】
【0017】
(第1の実施形態)
(構成の説明)
以下図を用いて本発明の第1の実施形態を説明する。
図1は第1の実施形態のLSI設計装置10を示すブロック図である。本実施形態のLSIは、スタンダードセル方式で設計される論理集積回路である。LSI設計装置10は少なくとも、配置配線情報・各種ライブラリ情報入力手段101、設計規則入力手段102、キャパシタセル量算出手段103、キャパシタセル追加手段104、キャパシタセル形成手段105、キャパシタセル容量計算手段106、配置配線情報出力手段107及び制御手段108を備える。
【0018】
配置配線情報・各種ライブラリ情報入力手段101は、LSIの配置配線情報201と物理ライブラリ情報202などLSIレイアウトを行う際に必要な情報を取り込む。配置配線情報201は例えばALU(Arithmetic and Logic Unit算術論理演算ユニット)、加算回路、メモリ等のブロックの機能と配置の情報、配線情報等であり、LSI設計者が入力する。物理ライブラリ情報202はLSI設計装置10内のストレージやメモリに記憶しておくか、LSI設計装置10の外から取り込む。また配置配線情報・各種ライブラリ情報入力手段101は、LSIを機能ブロックなど適宜の単位の領域に分割する。以下、配置配線情報・各種ライブラリ情報入力手段101は配線・ライブラリ情報入力手段101と略称する。
【0019】
設計規則入力手段102はLSIレイアウト中に必要なキャパシタセル量を計算するための設計規則情報203を入力する。設計規則情報203はLSI設計装置10内のストレージやメモリに記憶しておくか、LSI設計者が入力する。
【0020】
キャパシタセル量算出手段103は、配線・ライブラリ情報入力手段101が分割した各領域について、配置配線情報と設計規則を参照して、LSIにノイズを発生させないあるいは発生したノイズを吸収するのに必要なキャパシタセル量を算出し、キャパシタセルを挿入すべき配線を決定する。
【0021】
キャパシタセル追加手段104は、キャパシタセル量算出手段103が各分割領域について算出した必要キャパシタセル量に基づき、分割領域内の空いている部分に対し、必要な量を満たすまで配線パタン付きのキャパシタセルを追加する。キャパシタの追加なので、配線領域の空いている部分つまり配線下にトランジスタ等の素子がない空いた部分に追加する。
【0022】
キャパシタセル形成手段105は、キャパシタセル追加手段104で追加したデフォルトセル内の配線と、配線・ライブラリ情報入力手段101で入力したLSIの一般の配線がショートしているかどうかを検出する。つまりそのままデフォルトセルを追加すると、デフォルトセル内の配線が、デフォルトセルと同じ領域を走る一般の配線と接触してショートしてしまうかどうかを検出する。もしショートするなら、VDD,GND端子のみを持つキャパシタセル(以降ブランクセルと称す)を配置する。配置したあと、一般信号配線とショートしないよう、ブランクセル内のトランジスタのゲートとVDD端子、ソース、ドレインとブランクセルのGND端子を接続する形でブランクセルに対しメタル配線を施したキャパシタセル(以降カスタマイズドセルと称す)を形成する。
【0023】
キャパシタセル容量計算手段106は、キャパシタセル追加手段104で追加されたデフォルトセル、キャパシタセル形成手段105で追加されたブランクセル、もしくは同手段105で形成されたカスタマイズドセルに応じた容量を加算し、キャパシタセル量算出手段103で計算された各配線内に対するキャパシタの必要量と比較する。
【0024】
配置配線情報出力手段107は、キャパシタセルが追加されたLSIの配置配線情報を出力する。
【0025】
制御手段108は上記一連の処理を制御する。
なお、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
(動作の説明)
第1の実施形態のLSI設計工程を示すフローチャート(
図2)を参照して、本実施形態のLSI設計装置10の動作について説明する。
【0026】
まず、配線・ライブラリ情報入力手段101が、LSIの配置配線情報201と物理ライブラリ情報202などLSIレイアウトを行う際に必要な情報をLSI設計装置10に取り込む(S101)。また配置配線情報・各種ライブラリ情報入力手段101は、LSIを機能ブロックなど適宜の単位の領域に分割する。
【0027】
次に、設計規則入力手段102は、LSIレイアウト中に必要なキャパシタセル量を計算するための設計規則情報203を入力する(S102)。
【0028】
次に、キャパシタセル量算出手段103は、配線・ライブラリ情報入力手段101で入力した配置配線情報と設計規則入力手段102で入力した設計規則を参照して、分割したLSIの各領域について必要なキャパシタセル量を算出する(S103)。必要なキャパシタセル量の算出には、例えば、特許文献3(特開2002-288253号公報)などに示される技術を用いることができる。このS103工程によりLSI内を縦横に通過する電源配線の間隔(パワー・グリッド)等によって決められた領域毎に必要なキャパシタセル量が計算される。このキャパシタセル量の計算は概略次のようになる。
【0029】
集積回路の平面図を作成する。平面図はハードウェア記述言語で定義される。この平面図上にパワー・グリッド(電源配線の間隔)を重ね合わせ、平面図およびパワー・グリッドを複数の領域に分割する。分割した各領域毎に、パワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定する。また各領域毎の固有キャパシタンス値を決定する。固有キャパシタンス値は各領域の大きさ等に応じた固有の容量値である。
【0030】
このサポート・デカップリング・キャパシタンス値および固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定する。各領域毎の必要なデカップリング・キャパシタンス値は、固有キャパシタンス値からサポート・デカップリング・キャパシタンス値を引くことによって決定される。
【0031】
次いで、必要なデカップリング・キャパシタンス値に対するデカップリング・キャパシタ・エリアを決定する。デカップリング・キャパシタ・エリアに基づいて、領域中の回路エリアを修正する。
【0032】
次に、キャパシタセル追加手段104は、キャパシタセル量算出手段103で算出したキャパシタセル量に基づき、同じく設計規則入力手段102によって決められた分割領域内の空いている部分に対し、必要な量を満たすまで配線パタン付きのキャパシタセルを追加する(S104)。キャパシタセルは、セル内に配置されるトランジスタのゲートとVDD(電源)端子、及びドレインとGND(接地)端子がメタル配線、及びコンタクトによって接続されることにより構成され、その配線の幅、長さにより決定される固定量の容量をもつ。以降、配線パタン付きのキャパシタセルをデフォルトセルと称する。
【0033】
デフォルトセル内における配線の例を
図3に示す。
図3(a)はソース、ゲート、ドレインを備えたMOSFETの模式的平面図であり、配線を表示していない。
図3(b)は
図3(a)のソースとドレインをGNDに接続し、ゲートを電源VDDに接続したデフォルトセルの模式的平面図である。必要な容量の大きさによってデフォルトセルの大きさを変えることが可能である。
図3(b)は最小単位のデフォルトセル100である。
図3(c)は
図3(b)の5〜6倍の容量を持つデフォルトセル100’の模式的平面図である。
図3(b)、(c)のデフォルトセルあるいはその間の面積、寸法、容量を持つデフォルトセルを物理ライブラリ情報202の一部として保持しておく。配置する配線の空き領域の面積、寸法、その領域に必要な追加容量に応じて、物理ライブラリ情報202の中から適切な面積、寸法、容量のデフォルトセルを選択するとよい。上述のS103におけるキャパシタセル量の算出とは、配置する空き領域の面積と必要な追加容量から、どの種類のデフォルトセルをいくつ選択して追加すればよいかを算出することである。
【0034】
配線はメタル第1層によって構成される。尚、簡単化のため、メタル層以外の構成要素については図による説明を割愛する。
【0035】
次に、キャパシタセル形成手段105は、キャパシタセル追加手段104で追加したデフォルトセル内の配線と、配線・ライブラリ情報入力手段101で入力したLSIの配線がショートしているかどうかを検出する。ショートしているならば、VDD,GND端子のみを持つキャパシタセル(ブランクセル)を配置する。そのあと、一般信号配線とショートしないよう、ブランクセル内のトランジスタのゲートとVDD端子、ソース、ドレインとブランクセルのGND端子を接続する形でブランクセルに対しメタル配線を施したキャパシタセル(以降カスタマイズドセルと称す)を形成する。なおブランクセルについてもデフォルトセルと同様に様々な面積、寸法、容量のものを物理ライブラリ情報202の一部として保持しておき、必要に応じて適したブランクセルを選択すると良い。
【0036】
具体的な説明として、まず、デフォルトセル内の配線と、LSIの配線(2本の信号配線)がショートしている例を
図4に示す。図中で「×」を付けた箇所がショートしている箇所である。GND端子501、ソースGND配線503、ドレインGND配線504、VDD端子502、ゲートVDD配線505と信号配線301,302は全て同層(メタル第1層)である。なお実際には例えばソースGND配線503とソース401の間には絶縁層(不図示)を設け、上方から見てソースGND配線503とソース401が重なった箇所の絶縁層に開孔し(不図示)、その開孔においてソースGND配線503とソース401を接続する。
図4では開孔は図示していない。ドレインGND配線504とドレイン402,ゲートVDD配線505とゲート403も同様に間に絶縁層を挟み、絶縁層に開孔して接続する。
【0037】
GND端子501からソースGND配線503を延ばしてソース401と電気的に接続するように配線するが、そのソースGND配線503が信号配線301とショートする。またGND端子501からドレインGND配線504を延ばしてドレイン402と電気的に接続するように配線するが、そのソースGND配線503も信号配線302とショートする。更にVDD端子502はゲートVDD配線505(幹線と支線がある、後述)を延ばしてゲート403と電気的に接続するが、信号配線302はゲートVDD配線505ともショートする。このような状況に対する本実施形態による回避手法の詳細を、
図5〜
図8を用いて以下に示す。
1. まず当該領域にブランクセル300と信号配線301,信号配線302を配置する(
図5)。
2. ブランクセル300のGND端子501とソース401、ドレイン402を、それぞれメタル第1層を使って接続しようとすると、
図4に示したように、GND端子501との接続配線が信号配線302とショートしてしまう。ショートを避けるため、
図6に示すように、メタル第1層である信号配線302を跨いでGND端子501とドレインGND配線504を電気的に接続するメタル第2層(メタル第2層ドレインGND配線540)を設ける。ヴィア12はメタル第2層ドレインGND配線540とGND端子501及びドレインGND配線504を電気的に接続する。ヴィア12はメタル第1層とメタル第2層を層厚方向に電気的に接続する配線である。
3. 同様に信号配線302との接触を避けるよう、ブランクセル300のVDD端子502とゲート403を接続する。具体的な接続方法としては、まず
図7の縦方向にVDD端子からゲートVDD配線の幹線505aを伸ばし、次に幹線505a同士を繋ぐよう
図8の横方向の支線505bを形成する。対象をメタル第2層まで増やすと配線時間が増大するのでこの場合はメタル第1層のみを使用して形成する。なお
図8では幹線505aと支線505bが交差するように見えるが設計データ上でのことであり、物理的には同層のメタルである。
4. 前記2.において、ブランクセルのGND端子とソース、ドレインが接続できない場合や3.においてブランクセルのVDD端子とゲート領域を接続する幹線が引き出せない(デカップリングキャパシタとして構成することができない場合)は処理を行わない。つまりブランクセル300が配置されたままとする。たとえば、
図9で示すように、VDD端子502近傍にメタル第1層の配線(ここでは信号配線303)が並走している場合、VDD端子502から
図9の縦方向の幹線が引き出せない。そのためこの場合はブランクセルのままとなる。
【0038】
次にキャパシタセル容量計算手段106は、キャパシタセル追加手段104で追加されたデフォルトセル、キャパシタセル形成手段105で追加されたブランクセル、もしくはキャパシタセル形成手段105で形成されたカスタマイズドセルに応じた容量を加算し、キャパシタセル量算出手段103で計算された各領域内に対するキャパシタの必要量と比較する。
【0039】
以上の工程で必要なキャパシタ量が得られていなければ、キャパシタセル量算出手段103によって決められた配線内の、別の空いている箇所に対し、キャパシタセル追加手段104による追加と、それに続いてキャパシタセル形成手段105によるキャパシタセル形成を再度行う。
【0040】
デフォルトセル、およびブランクセルにおいては、セルの大きさに応じた固有の容量値をもち、それらはセルの設計時点で既に決定した値として、配線・ライブラリ情報入力手段101で入力される。容量値の一例については、関連文献として、非特許文献1(”CMOS VLSI設計の原理 システムの観点から” 第2刷(丸善株式会社 ISBN4-621-03294-1)115頁 表4.5 典型的な4μmシリコンゲートCMOSプロセスの容量)で示されている。ここでは4μmゲートプロセスにおける、各構成要素の容量について面積に比例した値がおのおの定義されている(
図10)。構成要素の面積が決まるとそれぞれが持つ容量値も一意に決まるので、最終的にセル個別の容量値として定義される。
【0041】
カスタマイズセルの容量については先に説明したブランクセル300が持つ容量成分に加え、メタル第1層とポリシリコン(多結晶シリコン)の間に形成される寄生容量を持つ。寄生容量の大きさは、メタル第1層の配線とゲート面との重なりの面積に比例し、具体例としては
図10に”ポリ上の金属”が有する容量値として、最小0.4×10
-4pF/μm
2、最大0.6×10
-4pF/μm
2が示されている。この値とキャパシタセル形成手段105で配線されたメタル第1層の配線面積との積で寄生容量を求める。この値はLSIレイアウト行う際に必要な情報として、配線・ライブラリ情報入力手段101によって与えられる。なお
図10の「CMOS」は相補型(Complementary)MOSの略、「ポリ」はポリシリコンの略である。また「拡散」は拡散層の略で、シリコンに不純物をドーピングしてソース、ドレインなどの層を形成したものを意味する。
【0042】
LSIの全領域に対し、キャパシタセル量算出手段103によって決められた領域の空いている全ての箇所キャパシタセルが挿入され、必要な容量が満たされたら(S110のYES)、配置配線情報出力手段107によって、オンチップキャパシタセルが追加されたLSIの配置配線情報を出力する(S111)。しかし満たされなければ(S110のNO)、キャパシタセルの追加(キャパシタセル追加手段104)、キャパシタセルの形成(キャパシタセル形成手段105)、キャパシタセル容量の計算(キャパシタセル容量計算手段106)を、満たされるまで繰り返す。
(効果の説明)
背景技術で述べた手法では、一般信号配線とキャパシタセルのメタル成分が干渉し、キャパシタセルの配置ができない箇所があった。本実施形態によれば、より多くの容量を追加することが可能となり、電源ノイズ耐性の高いLSIを設計することが可能となる。
【0043】
なお本実施形態では
図6に示すように、GND端子501とドレイン402を接続する場合にヴィア12とメタル第2層を用いたが、信号配線301の位置によってはGND端子501とソース401を接続する場合にヴィアとメタル第2層を用いる場合もある。またドレインとソースの両方でヴィアとメタル第2層を用いる場合もある。これらも本発明に含まれることは明らかである。
【0044】
また本実施形態ではドレインGND配線信号とショートするのは信号配線であった。しかし信号配線以外の、例えば、前述のVDD端子502とGND端子501が含まれるのとは別の電源配線などとショートする場合でも、本発明を適用することは可能である。
(第2の実施形態)
第1の実施形態では信号配線302を回避するのに、第2層ドレインGND配線540を用いた。しかし、信号配線302と幹線505a、支線505bとの間に第1層メタル配線を行う隙間があれば、
図11に示すように、その隙間にメタル第1層ドレインGND配線590を通すこともできる。
(第3の実施形態)
図12を用いて本発明の第3の実施形態を説明する。デフォルトセル150は容量30の一方に接続する配線40と電源端子VDD及び容量30の他方に接続する配線50とグランド端子GNDを配線で接続したセルである。またブランクセル350は容量30、電源端子VDD、グランド端子GNDのみを備えるセルである。デフォルトセル150を集積回路20の空いている箇所に配置する。集積回路20にはデフォルトセル150を接続して容量30を追加する対象の配線以外の別の配線601,602が走っている場合がある。
図12では別の配線602とデフォルトセル150の他方の配線50がショートしてしまう。図中の×がショートを示している。
【0045】
ショートする場合にはデフォルトセル150に代えてブランクセル350を配置する。配置したブランクセル350の、ショートする箇所における容量と電源端子またはグランド端子との配線を、別の配線602を回避するように、別の配線602よりも上層の配線層として配線層55を配置して回避する。配線層55の一方の端を容量の他方に接続する配線50’にヴィア13で接続し、他方の端をGND端子に同じくヴィア13で接続する。
【0046】
このようにすれば、より多くの容量を追加することが可能となり、電源ノイズ耐性の高い集積回路を設計することが可能となる。
(他の実施形態)
第1、第2の実施形態ではMOSFETのソースとドレインをGNDに接続し、ゲートをVDDに接続して容量を構成している。しかしMOSFETから構成する以外でもLSI上に容量を形成することは可能である。例えばメタル/絶縁層/メタルの積層構造による容量でもよい。この容量とVDD端子、GND端子だけを備えたセルをブランクセルとし、VDD端子と容量の一方の電極を接続する配線及びGND端子と容量の他方の電極を接続する配線を行ったセルをデフォルトセルとしてもよい。
【0047】
また、計算の簡略化のため、配線幅が固定される場合においては面積あたりの容量値を配線の単位長さあたりの配線容量として、配線の長さと積算することで簡易的に求めても良い。
【0048】
また、第1〜第3の実施形態のLSI設計装置は、専用の装置によって実現してもよいが、コンピュータ(情報処理装置)によっても実現可能である。この場合、係るコンピュータは、メモリ(不図示)に格納された設計プログラムをCPU(Central Processing Unit、不図示)に読み出し、読み出したソフトウェア・プログラムをCPUにおいて実行する。更に、係るプログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。