説明

回路設計装置、デカップリング容量効果最適化方法、及びプログラム

【課題】 本発明の課題は、デカップリング容量効果を最適化した回路設計を行うことを目的とする。
【解決手段】 上記課題は、回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを記憶する記憶部と、前記記憶部に記憶された前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化する最適化処理部と、を有する回路設計装置により達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デカップリング容量の効果を最適化した回路設計を行うことに関する。
【背景技術】
【0002】
集積回路の設計において、電源配線に生じる電圧降下を抑制するために、デカップリング容量を持つセル(以下、デカップリング容量セルと言う)を挿入することによって、Dynamic Voltage Drop(DvD)を低減することが行われている。
【0003】
セルの活性度を動的に考慮し、活性化率をパラメータとして非動作トランジスタの容量としての影響を考慮することによって、容量をより適切な位置に配置して、必要総容量の最適化を行う技術、実際の動作時に各ノードが有する論理値の出現確率を求め、オフ状態となる可能性が高い場合にはオフリーク電流を効果的に減らす素子を選定し、オン状態となる可能性が高い場合にはゲートリーク電流を効果的に減らす素子を選定するように、出現確率を求めたノードを入力とする論理セルの種類を決定する技術等が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−185323号公報
【特許文献2】特開2006−253219号公報
【特許文献3】特開2005−233840号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
出力負荷容量(loading capacitance)はセル出力が非動作時に、デカップリング容量セルと同様の効果、すなわち、デカップリング容量(Decap)効果を持つことが知られている。また、出力負荷容量は、チップ内の全電源容量に占める割合が高いため、DvDを低減させる効果がある。しかしながら、出力負荷容量のデカップリング容量効果はセルによって異なっている。
【0006】
上述した従来技術では、このような出力負荷容量の特性に基づいて、出力負荷容量を持つセルのデカップリング容量効果の大きさを考慮して、その効果を有効に得るための回路設計を行うことができていなかった。従って、更にDvDの低減を図るには、結果として、多くの場合、デカップリング容量セルを挿入しなければならず、挿入するデカップリング容量セルが多ければ、チップ面積の増大、リーク電流の増大等を招くと言った問題があった。
【0007】
よって、本発明の目的は、デカップリング容量効果を最適化した回路設計を行うことである。
【課題を解決するための手段】
【0008】
開示の回路設計装置は、回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを記憶する記憶部と、前記記憶部に記憶された前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化する最適化処理部と、を有する。
【0009】
また、上記課題を解決するための手段として、デカップリング容量効果最適化方法、コンピュータに上記回路設計装置として機能させるためのプログラム、及び、そのプログラムを記憶した記憶媒体とすることもできる。
【発明の効果】
【0010】
開示の技術では、デカップリング容量効果を最適化した回路設計を行うことができる。
【図面の簡単な説明】
【0011】
【図1】本実施例に係るデカップリング容量最適化処理の概要を説明するための図である。
【図2】入力側容量とデカップリング容量効果との関係を説明するための図である。
【図3】回路設計装置のハードウェア構成を示す図である。
【図4】回路設計装置による処理概要を説明するためのフローチャート図である。
【図5】図4のデカップリング容量最適化処理(ステップS7)を説明するためのフローチャート図である。
【図6】非動作パスの回路構成の一例を示す図である。
【図7】図4の信号配線処理(ステップS2)によって生成される配置配線結果データの例を示す図である。
【図8】図4のRC抽出処理(ステップS3)によって生成される寄生情報ファイルのデータ例を示す図である。
【図9】図5の配線容量抽出処理(ステップS70)によって生成される配線容量リストのデータ例を示す図である。
【図10】図5の入力ピン容量抽出処理(ステップS71)の例を説明するための図である。
【図11】図5の非動作パス検出処理(ステップS72)の例を説明するための図である。
【図12】図5の非動作パスのセル置換処理(ステップS74)の例を説明するための図である。
【図13】配置配線データの変更例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を図面に基づいて説明する。本実施例では、ブロック等の所定の機能単位で、セル毎に、高電位電源のVDD側及び低電位電源のVSS側の出力負荷容量のデカップリング容量効果の大小を判断し、VDD側又はVSS側のいずれかデカップリング容量効果の大きい側の容量へ電流が流れるようにセルを置換することによって、ブロック毎に最大のデカップリング容量効果を得られるように回路設計を行う。
【0013】
図1は、本実施例に係るデカップリング容量最適化処理の概要を説明するための図である。図1(A)及び図1(B)において、1のブロック10の回路構成例が示される。ブロック10へ信号線4からhigh(H)の信号が入力されると、ブロック10からhigh(H)の信号が出力される。
【0014】
図1(A)では、セル置換によるデカップリング容量最適化処理が未実施の回路構成例を示している。図1(B)では、デカップリング容量最適化処理の実施後のセルが置き換えられた回路構成例を示している。
【0015】
図1(A)に示すブロック10はバッファセル1a、2a、及び3aを有する。また、ブロック10において、バッファセル1aに対して、高電位電源であるVDD5a側に出力負荷容量のCload6a、及び、低電位電源であるVSS5b側に出力負荷容量のCload6bが与えられている。Cload6aとCload6bでは、VDD5a側であるCload6aの方がCload6bより出力負荷容量値が大きい。
【0016】
バッファセル2aに対して、VDD5a側に出力負荷容量のCload7a、及び、VSS5b側に出力負荷容量のCload7bが与えられている。Cload7aとCload7bでは、VDD5a側であるCload7aの方がCload7bより出力負荷容量値が大きい。
【0017】
バッファセル3aに対して、VDD5a側に出力負荷容量のCload8a、及び、VSS5b側に出力負荷容量のCload8bが与えられている。Cload8aとCload8bでは、VSS5b側であるCload8bの方がCload8aより出力負荷容量値が大きい。
【0018】
図1(A)では、各バッファセル1a(1段目)、2a(2段目)、及び3a(3段目)はhigh(H)で信号を入力して、high(H)で信号を出力する。よって、バッファセル1aへの電流i1は、VDD5aからバッファセル1aへ供給され、出力負荷容量値の小さいCload6bを介してVSS5bへと流れる。バッファセル2aへの電流i2は、VDD5aからバッファセル2aへ供給され、出力負荷容量値の小さいCload7bを介してVSS5bへと流れる。そして、バッファセル3aへの電流i3は、VDD5aからバッファセル3aへ供給され、出力負荷容量値の大きいCload8bを介してVSS5bへと流れる。
【0019】
従って、1段目及び2段目ではデカップリング容量効果は小さく、デカップリング容量効果が大きいのは3段目のみである。このブロック10に関して、デカップリング容量効果を最大限に得られていないことが示される。
【0020】
本実施例では、ブロック10への信号の状態を変えることなく、出力負荷容量によるデカップリング容量効果が大となるようにセルを置換する。図1(B)に示すブロック10は、本実施例に係るセル置換によって、図1(A)におけるバッファセル1aがインバータセル1a−2へ置き換えられ、また、バッファセル3aがインバータセル3a−2へ置き換えられる。
【0021】
このようなセルの置き換えによって、インバータセル1a−2へ入力されたhigh(H)の信号はlow(L)で出力される。よって、インバータセル1a−2への電流i1−2は、VDD5a側の出力負荷容量値の大きいCload6aからインバータセル1a−2へ供給され、VSS5bへと流れる。
【0022】
インバータセル1a−2によって反転されたlow(L)の信号がバッファセル2aに入力され、バッファセル2aはlow(L)で信号を出力する。よって、バッファセル2aへの電流i2−2は、VDD5a側の出力負荷容量値の大きいCload7aからバッファセル2aへ供給され、VSS5bへと流れる。
【0023】
バッファセル2aからlow(L)の信号を入力されたインバータセル3a−2は、high(H)の信号を出力する。インバータセル3a−2への電流i3に変化はなく、VDD5aからインバータセル3a−2へ供給され、出力負荷容量値の大きいCload8bを介してVSS5bへと流れる。
【0024】
1段目、2段目、3段目の全てにおいて、デカップリング容量効果が大となっている。また、ブロック10からの出力信号の状態に変化はない。また、パス上で同様の遅延となるようにインバータセルが選択される。
【0025】
更に、セル出力が非動作となる、バッファセル、インバータセル等の非スイッチングセルの場合、セルには図2に示すような容量とデカップリング容量効果との関係がある。図2は、入力側容量とデカップリング容量効果との関係を説明するための図である。図2に示すように、非スイッチングセル91には、VDD5a側の容量Cload9aとVSS5b側の容量Cload9bとがある。また、非スイッチングセル92には、VDD5a側の容量Cload10aとVSS5b側の容量Cload10bとがある。
【0026】
図2において、入力がlow固定の非スイッチングセル91では、電流i4はVDD5aから非スイッチングセル91へ供給され、VSS5b側のCload9bへと流れる。従って、非スイッチングセル91の入力側の容量はCload9bとなる。この場合、Cload9aではなく、Cload9bによるデカップリング容量効果を得る。
【0027】
入力がhigh固定の非スイッチングセル92では、電流i5はVDD5a側のCload10aから非スイッチングセル92へ供給され、VSS5bへと流れる。従って、非スイッチングセル92の入力側の容量はCload10aとなる。この場合、Cload10bではなく、Cload10aによるデカップリング容量効果を得る。
【0028】
本実施例では、非動作パスにおいて、セル間の配線容量に係るデカップリング容量効果のみならず、各セルの入力側の容量に係るデカップリング容量効果をも考慮することによって、非動作パス内の全出力負荷容量に係るデカップリング容量効果を適切に最大限に利用したデカップリング容量最適化処理を行う。上述した入力側の容量は、セルの入力ピンの容量として与えられる。
【0029】
本実施例に係るデカップリング容量最適化処理を行う回路設計装置は、図3に示すようなハードウェア構成を有する。図3は、回路設計装置のハードウェア構成を示す図である。図3において、回路設計装置100は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライブ18とを有し、システムバスBに接続される。
【0030】
CPU11は、メモリユニット12に格納されたプログラムに従って回路設計装置100を制御する。メモリユニット12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
【0031】
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、利用者が回路設計装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
【0032】
回路設計装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって回路設計装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライブ18にセットされると、ドライブ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0033】
また、回路設計装置100によって行われる処理を実現するプログラムが、通信ユニット16を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信ユニット16による通信は無線又は有線に限定されるものではない。
【0034】
記憶部50は、メモリユニット12及び/又は記憶装置17等を有し、更に、通信ユニット16又はドライブ18を介してアクセス可能な外部記憶装置を含んでもよい。
【0035】
図4は、回路設計装置による処理概要を説明するためのフローチャート図である。図4に示す処理は、回路設計装置100のCPU11が対応するプログラムを実行することによって成される処理によって実現する。
【0036】
図4中、処理Aの部分は、本実施例に係るセル置換によるデカップリング容量最適化処理が行われない処理フローを示している。図1(A)に相当する。処理Bの部分は、DvD解析処理の前に、本実施例に係るセル置換によるデカップリング容量最適化処理が行われる部分を示している。図1(B)に相当する。
【0037】
図4を参照し、先ず、処理Aについて説明する。処理Aに関して、回路設計装置100は、主に、初期配置処理S1と、信号配線処理S2と、RC抽出処理S3と、DvD解析処理S4と、DvD解析結果の判断処理S4−2と、ECO(Engineering Change Order)処理S5とを含む。各処理S1からS5は、対応するプログラムがCPU11によって実行されることにより実現される。
【0038】
処理Aにおいて、CPU11は、回路データ51及びセルライブラリ52を用いて、セル配置領域に初期配置処理を行うことによって、必要箇所にデカップリング容量セルを挿入する(ステップS1)。初期配置処理によって、レイアウトデータ53が記憶部50に格納される。そして、CPU11は、レイアウトデータ53に基づいて、配置したセルへ信号線を配線する信号配線処理を行うことによって、信号配線処理によって得られた配置配線結果を含む配置配線結果データ54を記憶部50に格納する(ステップS2)。
【0039】
次に、CPU11は、配置配線結果データ54を参照することによってRC抽出処理を行うことによって、抽出されたセル間の接続情報(ネット)毎の配線のRC(寄生抵抗及び寄生容量)を含む寄生情報ファイル55を記憶部50に格納する(ステップS3)。
【0040】
そして、CPU11は、DvD解析処理を行うことによって(ステップS4)、DvD解析処理によるDvD解析結果がIRドロップの発生を示すか(NG)否か(OK)を判断する(ステップS4−2)。DvD解析結果がNGの場合、CPU11は、デカップリング容量ECOファイル56を参照して、DvD解析によって発見されたIRドロップの発生等のエラーを修正するためのECO処理を行うことによって、デカップリング容量セルを挿入する(ステップS5)。一方、DvD解析結果がOKの場合、CPU11は、処理Aを終了する。
【0041】
次に、処理Bについて説明する。本実施例に係るセル置換によるデカップリング容量最適化処理に係る処理Bにおいて、CPU11は、寄生情報ファイル55と、タイミングライブラリ61と、非動作パスリスト62とを参照することによって、後で詳述されるデカップリング容量最適化処理を行うことによって、ブロック毎に、デカップリング容量効果を最大限に得られるように、また、そのブロック単位で、ブロックからの出力値、非動作パスに係る遅延及びタイミング等に変化が無いようにセルを選択して置換する(ステップS7)。配置配線結果データ54は、デカップリング容量最適化処理の実行によって更新される。
【0042】
ステップS7でのデカップリング容量最適化処理の後、更新された配置配線結果データ54は、信号配線処理(ステップS2)に与えられる。信号配線処理(ステップS2)が再度行われ、配置配線が検証される。以下、上述した同様の処理が行われることによって、RC抽出処理(ステップS3)及びDvD解析処理(ステップS4)では、デカップリング容量最適化処理(ステップS7)された配置配線結果データ54を用いて行われる。
【0043】
回路データ51は、ブロック毎に機能を記述したデータファイルである。セルライブラリ52は、セル毎にデバイス特性を含む情報を対応づけたライブラリである。レイアウトデータ53は、セルが配置された位置情報を含むデータファイルである。
【0044】
配置配線結果データ54は、セルの配置、セル間の信号線の配線、配線によって得られたセル間の接続情報(ネット)毎の寄生抵抗及び寄生容量等の信号線特性を含む情報を対応付けた、DEF(Design Exchange Format)等の形式によるデータファイルである。
【0045】
寄生情報ファイル55は、接続情報(ネット)毎に、配置配線後に抽出された寄生抵抗及び寄生容量を含む寄生情報を対応付けたデータファイルである。
【0046】
デカップリング容量ECOファイル56は、デカップリング容量セルの挿入位置、挿入するためのデカップリング容量セルの容量値等の条件などを含むデータファイルである。
【0047】
タイミングライブラリ61は、liberty形式等によるライブラリであり、各セルのタイミングは非線形遅延モデル(NLDM:Non-Linear Delay Model)で定義される。タイミングライブラリ61には、各セルの入力ピンの高電位電源側及び低電位電源側の容量を示す情報が含まれている。非動作パスリスト62は、ブロック毎に抽出された非動作パス毎の経路情報を含むデータファイルである。
【0048】
以下、図4のデカップリング容量最適化処理(ステップS7)について詳述する。図5は、図4のデカップリング容量最適化処理(ステップS7)を説明するためのフローチャート図である。図5に示すデカップリング容量最適化処理は、ネット毎の対VDD及び対VSSに係る配線容量抽出処理S70と、入力ピン容量抽出処理S71と、非動作パス検出処理S72と、非動作パスの総容量算出処理S73と、非動作パスのセル置換処理S74と、セル置換後パスの総容量算出処理S75と、最大容量のパス検出処理S76と、ECO処理S77と、を有する。
【0049】
デカップリング容量最適化処理において、CPU11は、寄生情報ファイル55を参照して、ネット毎の対VDD及び対VSSに係る配線容量抽出処理を行う(ステップS70)。この配線容量抽出処理によって、寄生情報ファイル55から抽出された各ネットの対VDD及び対VSSの配線容量をネット名と対応づけた情報を含む配線容量リスト55−2が、記憶部50に格納される。
【0050】
CPU11は、タイミングライブラリ61を参照して、各セルの入力ピンの容量を抽出する入力ピン容量抽出処理を行う(ステップS71)。この入力ピン容量抽出処理によって、タイミングライブラリ61から抽出された各セルの入力ピンの容量とセル名(後述されるインスタンスセル名)と対応付けた情報を含む入力ピン容量リスト61−2が、記憶部50に格納される。
【0051】
また、CPU11は、タイミング解析ツールを用いて、非動作パスを検出する非動作パス検出処理を行う(ステップS72)。この非動作パス検出処理によって検出された非動作パスが2以上の経路を有する場合、スタートポイントからエンドポイントまでの一の経路を単一パスとする。検出された非動作パスに関して、単一パス毎に経路情報と単一パス識別情報とを対応づけた非動作パスリスト62が、記憶部50に格納される。
【0052】
上述において、ステップS70からS72の処理順番を特定するものではない。ステップS70からS72の処理の終了後、CPU11は、非動作パスリスト62を参照し、配線容量リスト55−2及び入力ピン容量リスト61−2を用いて、非動作パスの総容量算出処理を行う(ステップS73)。この非動作パスの総容量算出処理によって、セル置換前の非動作パスの総容量が算出される。算出された非動作パスの総容量を示すセル置換前パスの総容量データ63が、記憶部50に格納される。非動作パスの総容量は、各単一パスの総容量を合計することによって得られる。
【0053】
また、CPU11は、非動作パスリスト62を参照して、非動作パスにおける各単一パスに対して、セル置換前とスタートポイントとエンドポイントの論理が変えることなく置換可能なセルの組み合せを取得する非動作パスのセル置換処理を行う(ステップS74)。この非動作パスのセル置換処理によって取得した置換可能なセルの各組み合せを示すセル置換パターンを一覧で示すセル置換パターンリスト64が、記憶部50に格納される。
【0054】
ステップS74での非動作パスのセル置換処理を行った後、CPU11は、セル置換パターンリスト64を参照して、セル置換パターンでの非動作パスの総容量を、配線容量リスト55−2を用いて算出するセル置換後パスの総容量算出処理を行う(ステップS75)。このセル置換後パスの総容量算出処理によって算出された各セル置換パターンの総容量がパターン識別情報と対応付けられたセル置換後パスの総容量データ65が、記憶部50に格納される。
【0055】
上述において、ステップS75の後に、ステップS73での非動作パスの総容量算出処理を行ってもよい。ステップS73からS75の処理の終了後、CPU11は、セル置換前パスの総容量データ63とセル置換後パスの総容量データ65とを用いて、セル置換前セルの組み合せによる非動作パスの総容量と、セル置換パターン毎のセルの組み合せによる非動作パスの総容量のうち、最大容量となるセルの組み合せによる非動作パスを検出する最大容量のパス検出処理を行う(ステップS76)。この最大容量のパス検出処理によって検出された最大容量となるセルの組み合せによる非動作パスのセル置換情報を含むECOファイル66が、記憶部50に格納される。セル置換情報は、少なくとも、置換するセルの位置を示す位置情報と、置換後のセルに係るセル情報とを含む。
【0056】
その後、CPU11は、配置配線(P&R)ツールを用いて、ECOファイル66に示されるセル置換情報に基づくECO処理を行う(ステップS77)。このECO処理によって、記憶部50に格納されているレイアウトデータ53が、最大容量となるセルの組み合せによって変更される。その後、図4の処理A内のステップS2における信号配線処理へと進む。
【0057】
以下に、図6に例示される非動作パスの回路構成を用いて、本実施例に係るデカップリング容量最適化処理を詳述する。図6は、非動作パスの回路構成の一例を示す図である。図6に例示される非動作パス30の回路構成において、IN_Aは入力ポートを示し、U1からU6はインスタンスセル名を示し、net1からnet5はネット名を示している。
【0058】
図6に例示される非動作パス30に関して、図4の信号配線処理(ステップS2)によって、図7に示されるような配置配線結果データ54aが生成される。図7は、図4の信号配線処理(ステップS2)によって生成される配置配線結果データの例を示す図である。図7に例示される配置配線結果データ54aは、DEF形式のデータファイルである。配置配線結果データ54aは、非動作パス30に係る、配置情報541、配線情報543等を含む。
【0059】
配置情報541では、各インスタンスセル名「U1」、「U2」、「U3」、「U4」、「U5」、及び「U6」に対応付けて、セル情報と配置情報とが示される。インスタンスセル「U1」は、バッファセル「BUFX1」とその配置情報とを示し、インスタンスセル「U2」は、インバータセル「INVX1」とその配置情報とを示し、インスタンスセル「U3」は、インバータセル「INVX1」とその配置情報とを示し、インスタンスセル「U4」は、DFFセル「DFFX1」とその配置情報とを示し、インスタンスセル「U5」は、バッファセル「BUFX1」とその配置情報とを示し、そして、インスタンスセル「U6」は、バッファセル「BUFX1」とその配置情報とを示す。
【0060】
配線情報543では、各ネット名「net1」、「net2」、「net3」、「net4」、及び「net5」に対応付けて、セル間の接続関係を示す接続関係情報と、配線情報とが示される。ネット「net1」は、入力ピン「PIN」の入力ポート「IN_A」とインスタンスセル「U1」のピン「A」との接続を示し、ネット「net2」は、インスタンスセル「U1」のピン「X」とインスタンスセル「U2」のピン「A」との接続及びインスタンスセル「U5」とピン「A」との接続を示し、ネット「net3」は、インスタンスセル「U2」のピン「X」とインスタンスセル「U3」のピン「A」との接続を示し、ネット「net4」は、インスタンスセル「U3」のピン「X」とインスタンスセル「U4」のピン「CLK」との接続を示し、そして、ネット「net5」は、インスタンスセル「U5」のピン「X」とインスタンスセル「U6」のピン「CLK」との接続を示している。
【0061】
図6に例示される非動作パス30に関して、図4のRC抽出処理(ステップS3)によって寄生情報ファイル55が生成される。図8は、図4のRC抽出処理(ステップS3)によって生成される寄生情報ファイルのデータ例を示す図である。寄生情報ファイル55aは、例えば、RC−Extractionツール等を用いることにより抽出された対VDD及び対VSS配線容量に係るデータファイルである。図8に示す寄生情報ファイル55aでは、図6のネット「net2」に対する容量情報の例を示す。
【0062】
寄生情報ファイル55aにおいて、記述55bはネット「net2」の総容量「1.1e−14」を示し、記述55cはネット「net2」に繋がるインスタンスセル名及びピン名を示し、そして、記述55dはネット「net2」の容量C1からC6で各インスタンスセルの対VDD及び対VSSの各々の配線容量について示している。
【0063】
記述55dにおいて、容量C1は、インスタンスセル「U2」のピン「A」に関する対VDD配線容量が「1.0e−15」であることを示し、容量C2は、インスタンスセル「U2」のピン「A」に関する対VSS配線容量が「2.0e−15」であることを示す。
【0064】
同様に、容量C3及びC4は、インスタンスセル「U5」のピン「A」に関して、対VDD配線容量が「1.0e−15」、及び、対VSS配線容量が「3.0e−15」であることを示す。
【0065】
また、容量C5及びC6は、インスタンスセル「U1」のピン「X」に関して、対VDD配線容量が「2.0e−15」、及び、対VSS配線容量が「2.0e−15」であることを示す。
【0066】
このように、図6に例示される非動作パス30に関して、寄生情報ファイル55aによって、ネット毎に各インスタンスセルの対VDD及び対VSS配線容量が示される。そして、ネット毎の寄生情報ファイル55aを用いることにより、図5のネット毎の対VDD及び対VSSに係る配線容量抽出処理(ステップS70)によって、図9に示されるような配線容量リスト55a−2が生成される。
【0067】
図9は、図5の配線容量抽出処理(ステップS70)によって生成される配線容量リストのデータ例を示す図である。配線容量リスト55a−2は、図6の非動作パス30における各ネット「net1」から「net5」の対VDD及び対VSS配線容量の各々の総和を示すデータファイルである。
【0068】
図9において、配線容量リスト55a−2は、ネット「net2」に関して、対VDD配線容量の総和は「4.0e−15」であり、対VSS配線容量の総和は「7.0e−15」であることを示している。また、ネット「net3」に関して、対VDD配線容量の総和は「5.0e−15」であり、対VSS配線容量の総和は「4.0e−15」であることを示している。
【0069】
このような対VDD及び対VSS配線容量の各々の総和は、以下のようにして算出される。ここでは、図8に示す寄生情報ファイル55aに基づいてネット「net2」に関して説明するが、他ネットについても同様に算出される。
【0070】
寄生情報ファイル55aを参照することによって、ネット「net2」の対VDD配線容量Cnet2(VDD)は、各容量C1、C3、及びC5の合計することによって得られる。
【0071】
Cnet2(VDD)=C1+C3+C5
=1.0e−15+1.0e−15+2.0e−15
=4.0e−15[F]
同様に、ネット「net2」の対VSS配線容量Cnet2(VSS)は、各容量C2、C4、及びC6の合計することによって得られる。
【0072】
Cnet2(VSS)=C2+C4+C6
=2.0e−15+3.0e−15+2.0e−15
=7.0e−15[F]
このようにして得られたネット「net2」の対VDD配線容量Cnet2(VDD)及び対VSS配線容量Cnet2(VSS)が、ネットに対応付けられて配線容量リスト55a−2に格納される。
【0073】
図5のタイミングライブラリ61を用いた入力ピン容量抽出処理(ステップS71)によって、セル毎の入力ピン容量を示す入力ピン容量リスト61−2が生成される。図10は、図5の入力ピン容量抽出処理(ステップS71)の例を説明するための図である。図10に例示されるタイミングライブラリ61aでは、バッファセル「BUFX1」の入力ピン「A」の容量が示されている。rise_capacitanceによって入力ピン「A」がhigh時のピン容量「1.0e−16」を示し、また、fall_capacitanceによって入力ピン「A」がlow時のピン容量「1.1e−16」を示している。
【0074】
このようなタイミングライブラリ61aを用いて生成された入力ピン容量リスト61a−2では、バッファセル「BUFX1」の入力ピン「A」に対応させて、対VDD配線容量に入力ピン「A」がhigh時のピン容量「1.0e−16」が示され、対VSS配線容量に入力ピン「A」がlow時のピン容量「1.1e−16」が示される。
【0075】
他セルについても同様の抽出が行われることにより、入力ピン容量リスト61a−2が生成される。
【0076】
次に、図6に例示される非動作パス30に関する、図5の非動作パス検出処理(ステップS72)について詳述する。図11は、図5の非動作パス検出処理(ステップS72)の例を説明するための図である。図11(A)では、図6に例示される非動作パス30にいて、入力ポート「IN_A」をlow固定とした場合の固定値伝搬による信号値の遷移状態を示している。
【0077】
経路は、タイミング解析ツール等を用いて、ツールコマンド又はツールスクリプトの組み合せにより、非動作パス毎のピン名、固定値情報等を抽出することにより特定できる。この例では、単一パスP1と単一パスP2とが特定される。
【0078】
図11(B)では、特定された単一パス毎に経路情報が対応付けられた非動作パスリスト62aの例が示される。図11(B)において、単一パスP1は、図11(A)で示されるように、「IN_A(L) -U1/A(L) -U1/X(L) -U2/A(L) -U2/X(H) -U3/A(H) -U3/X(L) -U4/CLK(L)」で伝搬する経路であることが示されている。また、単一パスP2は、「IN_A(L) -U1/A(L) -U1/X(L) -U5/A(L) -U5/X(L) -U6/CLK(L)」で伝搬する経路であることが示されている。( )内は、入力ポート「IN_A」をlow固定とした場合の各インスタンスセルの入力ピン及び出力ピンでの信号値を示している。
【0079】
この例に基づいて、図5の非動作パスの総容量算出処理(ステップS73)について説明する。図9の配線容量リスト55a−2と、図10の入力ピン容量リスト61a−2とを参照することにより、図6の非動作パス30の総容量値を算出する。総容量値は、非動作パスの信号値の遷移状態に応じた、対VDD及又は対VSS配線容量と、入力ピンの対VDD及又は対VSS容量の合計値である。
【0080】
先ず、各単一パスP1及びP2の容量値C1及びC2を算出する。ネット「net1」、「net2」、「net3」、「net4」、及び「net5」の配線容量をCnet1、Cnet2、Cnet3、Cnet4、及びCnet5で示す。また、入力がlowであるインスタンスセル「U1」、「U2」、「U4」、「U5」、及び「U6」の入力ピン容量をCpin_u1(vss)、Cpin_u2(vss)、Cpin_u4(vss)、Cpin_u5(vss)、及びCpin_u6(vss)で示す。入力がhighであるインスタンスセル「U3」の入力ピン容量をCpin_u3(vdd)で示す。
【0081】
単一パスP1の容量C1 = Cnet1 + Cnet2 + Cnet3 + Cnet4 + Cpin_u1(vss) +
Cpin_u2(vss) + Cpin_u3(vdd) + Cpin_u4(vss)
単一パスP2の容量C2 = Cnet1 + Cnet2 + Cnet5 + Cpin_u1(vss) +
Cpin_u5(vss) + Cpin_u6(vss)
【0082】
図6の非動作パス30の総容量は、下記数1式で表されるように、各単一パスの容量値を排他的に(重複する容量を除いて)加算することによって得られる。
【0083】
【数1】

【0084】
このようにして算出された非動作パス30の総容量は、セル置換前パスの総容量データ63に格納される。複数の非動作パスがある場合は、各非動作パスを特定する非動作パス名に総容量が対応付けられて総容量データ63に格納される。
【0085】
次に、図6に例示される非動作パス30における、図5の非動作パスのセル置換処理(ステップS74)について詳述する。図12は、図5の非動作パスのセル置換処理(ステップS74)の例を説明するための図である。
【0086】
入力ピン容量リスト61a−2と非動作パスリスト62とを参照し、非動作パス30に対して検出された、スタートポイントとエンドポイントの論理が変わらない、セル置換の組み合せが、図12(A)、図12(B)、及び図12(C)で示されている。置換するセルは、セルライブラリ52から選択される。
【0087】
図12(A)では、セル置換パターン1が示されている。インスタンスセル「U2」及び「U3」のインバータセルをバッファセルに置き換える例を示している。図12(B)では、セル置換パターン2が示されている。インスタンスセル「U1」及び「U5」のバッファセルをインバータセルに、そして、インスタンスセル「U2」のインバータセルをバッファセルに置き換える例を示している。図12(C)では、セル置換パターン3が示されている。インスタンスセル「U1」及び「U5」のバッファセルをインバータセルに、そして、インスタンスセル「U3」のインバータセルをバッファセルに置き換える例を示している。
【0088】
セル置換の制約は、
・置換するセル(置換後のセル)によって、スタートポイントとエンドポイントの理論が変わらないこと、
・置換するセル(置換後のセル)は、置換されるセル(置換前のセル)と同様のドライブ能力を持ち、スタートポイントからエンドポイントまでの到達時間に影響を与えないこと、消費電力が同様であること
である。このように検出されたセル置換パターン1、2、及び3が、セル置換後パスの総容量データ65に格納される。
【0089】
図9の配線容量リスト55a−2と、図12のセル置換パターン1、2、及び3に係るセル置換後パスの総容量データ65とを参照して行われる、セル置換後パスの総容量算出処理(ステップS75)について説明する。
【0090】
図5の非動作パスの総容量算出処理(ステップS73)と同様に、セル置換後の非動作パス30の総容量値は、対VDD及び対VSS配線容量と、入力ピン容量の合計値で求めることができる。
【0091】
先ず、図12のセル置換パターン1に関して、単一パス毎の容量値を算出し、各単一パスの容量値を排他的に(重複する容量を除いて)加算することによって、セル置換パターン1での非動作パス30の総容量値を求める。同様に、セル置換パターン2及び3についても、各々のパターンにおける非動作パス30の総容量値を求める。求めたパターン毎の総容量値がセル置換後パスの総容量データ65に格納される。
【0092】
そして、非動作パスの総容量算出処理(ステップS73)によって得られたセル置換前パスの総容量データ63と、セル置換後パスの総容量算出処理(ステップS75)によって得られたセル置換後パスの総容量データ65とを用いて、図5の最大容量のパス検出処理(ステップS76)が行われる。
【0093】
最大容量のパス検出処理(ステップS76)では、セル置換前パスの総容量データ63とセル置換後パスの総容量データ65とを参照することによって、非動作パス30の総容量が最大となるセルの組み合せを特定する。この最大容量のパス検出処理(ステップS76)によって、例えば、図12(C)に示すセル置換パターン3が特定された場合、セル置換パターン3のセルの組み合せとなるようにレイアウトデータ53が変更される。
【0094】
変更されたレイアウトデータ53を用いて、図4の信号配線処理(ステップS2)が行われることにより、図7の配置配線結果データ54aは、図13に示すように変更される。図13は、配置配線データの変更例を示す図である。図13に示す配置配線データ54bにおいて、図12(C)示すセル置換パターン3が選択されたことにより、変更セル54e、54f、及び54gで示されるように、配置情報541内のインスタンスセル「U1」のバッファセル「BUFX1」がインバータセル「INVX1」に置き換えられ、インスタンスセル「U3」のインバータセル「INVX1」がバッファセル「BUFX1」に置き換えられ、また、インスタンスセル「U5」のバッファセル「BUFX1」がインバータセル「INVX1」に置き換えられる。
【0095】
上述したように、本実施例では、ネットの配線容量及び入力ピンの容量をVDD側とVSS側とで夫々求めておくことで、非動作パス内の出力負荷容量(loading capacitance)が最大となる、即ち、デカップリング容量効果が最大となるセル置換パターンを選択することができる。
【0096】
従って、設計した集積回路が規定の機能及び性能を満たしているかを検証するサインオフ解析後の前工程への後戻りを防止することができる。また、非動作パスの出力負荷容量をデカップリング容量効果が最大となるように利用するため、挿入されるデカップリング容量セルの数を削減でき、集積回路の面積の増大及びリーク電流の増大を抑制することができる。
【0097】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0098】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを記憶する記憶部と、
前記記憶部に記憶された前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化する最適化処理部と、
を有することを特徴とする回路設計装置。
(付記2)
前記最適化処理部は、
セル置換前の前記非動作パスに対して、前記記憶部に格納された前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、該非動作パスの信号値の遷移状態に応じた各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を合計することによってセル置換前の総容量を算出する第1総容量算出処理部と、
前記セル置換の制約に基づいて、前記非動作パスのセルを置換するセル置換処理部と、
前記セル置換処理部による前記セルの組み合せ毎に、前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、前記非動作パスの信号値の遷移状態に応じた各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を合計することによってセル置換後の総容量を算出する第2総容量算出処理部と、
前記第1総容量算出処理部によって得られた前記セル置換前の総容量と、前記第2総容量算出処理部によって得られた前記セルの組み合せ毎の前記セル置換後の総容量のうち、該総容量が最大となるセルの組み合せによるパスを検出する最大容量パス検出部と、
を有することを特徴とする付記1記載の回路設計装置。
(付記3)
前記最大容量パス検出部によって検出されたパスの前記セルの組み合せを含めて信号配線を行う信号配線処理部と、
前記セルの組み合せを含めた前記信号配線処理部による配置配線結果データを用いて、寄生抵抗及び寄生容量を抽出した後、電圧降下を解析する解析処理部と、
前記解析処理部の結果が前記電圧降下を示す場合、デカップリング容量セルを挿入するセル挿入部と、
を有することを特徴とする付記2記載の回路設計装置。
(付記4)
前記各ネットの配線容量は、前記信号配線処理部によって得られたネット毎の配置配線後に抽出された寄生抵抗及び寄生容量を含む寄生情報を対応付けたデータファイルから抽出されることを特徴とする付記3記載の回路設計装置。
(付記5)
前記入力ピンの容量は、各セルのタイミングに係るタイミングライブラリに含まれる該入力ピンのhigh時のピン容量を示す情報とlow時のピン容量を示す情報を参照することによって抽出されることを特徴とする付記1乃至4のいずれか一記載の回路設計装置。
(付記6)
前記セルを置換する際の制約は、セル出力が非動作の非動作パスに対して、スタートポイントとエンドポイントの論理が変わらない、かつ、該スタートポイントから該エンドポイントまでの到達時間に影響を与えないことと、消費電力が同様であることを特徴とする付記1乃至5のいずれか一項記載の回路設計装置。
(付記7)
コンピュータによって実行されるデカップリング容量効果最適化方法であって、
記憶部に格納された、回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを参照し、
前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化するデカップリング容量効果最適化方法。
(付記8)
記憶部に格納された、回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを参照し、
前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化する
処理をコンピュータに実行させるプログラム。
【符号の説明】
【0099】
1a、2a、3a バッファセル
1a−2、3a−2 インバータセル
4 信号線
5a VDD
5b VSS
6a、6b Cload
7a、7b Cload
8a、8b Cload
9a、9b Cload
10a、10b Cload
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
30 非動作パス
50 記憶部
51 回路データ
52 セルライブラリ
53 レイアウトデータ
54 配置配線結果データ
54a 配置配線結果データ
55 寄生情報ファイル
55−2 配線容量リスト
56 デカップリング容量ECOファイル
61 タイミングライブラリ
61−2 入力ピン容量リスト
62 非動作パスリスト
63 セル置換前パスの総容量データ
64 セル置換パターンリスト
65 セル置換後パスの総容量データ
i1、i1−2、i2、i2−2、i3 電流

【特許請求の範囲】
【請求項1】
回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを記憶する記憶部と、
前記記憶部に記憶された前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化する最適化処理部と、
を有することを特徴とする回路設計装置。
【請求項2】
前記最適化処理部は、
セル置換前の前記非動作パスに対して、前記記憶部に格納された前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、該非動作パスの信号値の遷移状態に応じた各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を合計することによってセル置換前の総容量を算出する第1総容量算出処理部と、
前記セル置換の制約に基づいて、前記非動作パスのセルを置換するセル置換処理部と、
前記セル置換処理部による前記セルの組み合せ毎に、前記各ネットの配線容量と、前記各入力ピンの容量とを参照して、前記非動作パスの信号値の遷移状態に応じた各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を合計することによってセル置換後の総容量を算出する第2総容量算出処理部と、
前記第1総容量算出処理部によって得られた前記セル置換前の総容量と、前記第2総容量算出処理部によって得られた前記セルの組み合せ毎の前記セル置換後の総容量のうち、該総容量が最大となるセルの組み合せによるパスを検出する最大容量パス検出部と、
を有することを特徴とする請求項1記載の回路設計装置。
【請求項3】
前記最大容量パス検出部によって検出されたパスの前記セルの組み合せを含めて信号配線を行う信号配線処理部と、
前記セルの組み合せを含めた前記信号配線処理部による配置配線結果データを用いて、寄生抵抗及び寄生容量を抽出した後、電圧降下を解析する解析処理部と、
前記解析処理部の結果が前記電圧降下を示す場合、デカップリング容量セルを挿入するセル挿入部と、
を有することを特徴とする請求項2記載の回路設計装置。
【請求項4】
前記各ネットの配線容量は、前記信号配線処理部によって得られたネット毎の配置配線後に抽出された寄生抵抗及び寄生容量を含む寄生情報を対応付けたデータファイルから抽出されることを特徴とする請求項3記載の回路設計装置。
【請求項5】
コンピュータによって実行されるデカップリング容量効果最適化方法であって、
記憶部に格納された、回路を構成する複数のセル間のネット毎の高電位電源側及び低電位電源側の配線容量と、各入力ピンの該高電位電源側及び該低電位電源側の容量とを参照し、
前記構成における非動作パスに対して、セルの置換前の該セルの組み合せと、セルを置換する際の制約に従った置換後のセルの組み合せのうち、該非動作パスの信号値の遷移状態に応じた、各ネット及び各入力ピンの前記高電位電源側又は前記低電位電源側の容量を加算した総容量に基づいて、該総容量が最大となるセルに置換することによって、デカップリング容量効果を最適化するデカップリング容量効果最適化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−69080(P2013−69080A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2011−206611(P2011−206611)
【出願日】平成23年9月21日(2011.9.21)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】