(57)【要約】【課題】チップ内におけるＩＲドロップの最大値とばらつきを低減できる半導体集積回路の設計方法を提供する。【解決手段】本発明の半導体集積回路の設計方法は、複数のセルの接続関係を示すネットリストに基づいて、セットアップタイミング条件を満たすように複数のセルをセル配置領域に仮配置するステップと、セル配置領域を複数に分ける複数のパワーリージョンを生成するステップと、各セルごとの消費電流を示したセルパワーファイルを用いて各パワーリージョンごとの消費電流を算出するステップと、セットアップタイミング条件の違反にはならない範囲で、各パワーリージョンの消費電流を参照して、仮配置されたセルの配置位置を調整するステップとを有する。【選択図】図１
2009265773.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルの接続関係を示すネットリストに基づいて、セットアップタイミング条件を満たすように、前記複数のセルをセル配置領域に仮配置するステップと、
前記セル配置領域を複数に分ける複数のパワーリージョンを生成するステップと、
前記各セルごとの消費電流を示したセルパワーファイルを用いて、前記各パワーリージョンごとの消費電流を算出するステップと、
前記セットアップタイミング条件の違反にはならない範囲で、前記各パワーリージョンの消費電流を参照して、前記仮配置されたセルの配置位置を調整するステップと、
前記セルの位置調整の後、前記セルのホールドタイミングを最適化するステップと、
を備えたことを特徴とする半導体集積回路の設計方法。
【請求項２】
複数のセルの接続関係を示すネットリストに基づいて、セットアップタイミング条件及びホールドタイミング条件を満たすように、前記複数のセルをセル配置領域に仮配置するステップと、
前記セル配置領域を複数に分ける複数のパワーリージョンを生成するステップと、
前記各セルごとの消費電流を示したセルパワーファイルを用いて、前記各パワーリージョンごとの消費電流を算出するステップと、
前記セットアップタイミング条件及び前記ホールドタイミング条件の違反にはならない範囲で、前記各パワーリージョンの消費電流を参照して、前記仮配置されたセルの配置位置を調整するステップと、
を備えたことを特徴とする半導体集積回路の設計方法。
【請求項３】
前記セルの中で同じ論理を示すものも個々に識別した各インスタンスの活性化率を示したファイルも用いて、前記各パワーリージョンごとの消費電流を算出することを特徴とする請求項１または２に記載の半導体集積回路の設計方法。
【請求項４】
前記セルの中で同じ論理を示すものも個々に識別した各インスタンスの活性化タイミングを示したファイルも用いて、前記各パワーリージョンごとの消費電流を算出することを特徴とする請求項１または２に記載の半導体集積回路の設計方法。
【請求項５】
前記各パワーリージョンごとの目標消費電流を示したファイルも参照して、前記セルの位置調整を行うことを特徴とする請求項１〜４のいずれか１つに記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法に関する。
【背景技術】
【０００２】
半導体集積回路の設計における、例えばＨＤＬ（Hardware Description Language）記述データを論理合成して生成したネットリストをレイアウトするレイアウトフェーズでは、タイミングの最適化が考慮される（例えば、特許文献１）。
【０００３】
半導体集積回路においては、近年、大規模化、微細化が進み、さらに電源電圧の低電圧化により、ＩＲドロップ（電圧降下）が大きくなっており、タイミングのみを考慮したセルレイアウトでは、チップ内の各領域間でＩＲドロップがばらついたり、また最大のＩＲドロップ値も大きくなることが懸念される。チップ内のＩＲドロップの最大値とばらつきが大きいと、設計難易度や設計期間が増大し、また回路動作が不安定になる。
【特許文献１】特開２００３−３３０９８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、チップ内におけるＩＲドロップの最大値とばらつきを低減できる半導体集積回路の設計方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、複数のセルの接続関係を示すネットリストに基づいて、セットアップタイミング条件を満たすように、前記複数のセルをセル配置領域に仮配置するステップと、前記セル配置領域を複数に分ける複数のパワーリージョンを生成するステップと、前記各セルごとの消費電流を示したセルパワーファイルを用いて、前記各パワーリージョンごとの消費電流を算出するステップと、前記セットアップタイミング条件の違反にはならない範囲で、前記各パワーリージョンの消費電流を参照して、前記仮配置されたセルの配置位置を調整するステップと、前記セルの位置調整の後、前記セルのホールドタイミングを最適化するステップと、を備えたことを特徴とする半導体集積回路の設計方法が提供される。
【０００６】
また、本発明の他の一態様によれば、複数のセルの接続関係を示すネットリストに基づいて、セットアップタイミング条件及びホールドタイミング条件を満たすように、前記複数のセルをセル配置領域に仮配置するステップと、前記セル配置領域を複数に分ける複数のパワーリージョンを生成するステップと、前記各セルごとの消費電流を示したセルパワーファイルを用いて、前記各パワーリージョンごとの消費電流を算出するステップと、前記セットアップタイミング条件及び前記ホールドタイミング条件の違反にはならない範囲で、前記各パワーリージョンの消費電流を参照して、前記仮配置されたセルの配置位置を調整するステップと、を備えたことを特徴とする半導体集積回路の設計方法が提供される。
【発明の効果】
【０００７】
本発明によれば、チップ内におけるＩＲドロップの最大値とばらつきを低減できる半導体集積回路の設計方法が提供される。
【発明を実施するための最良の形態】
【０００８】
本発明の実施形態に係る半導体集積回路の設計方法は、半導体集積回路を構成する回路要素である複数のセルをレイアウトするレイアウトフェーズに適用される。
【０００９】
セルは、ＮＭＯＳ、ＰＭＯＳで実現できるものであり、例えば、ＡＮＤ、ＯＲ、インバータ、バッファ、ＮＡＮＤ、フリップフロップ等の機能回路を構成する基本セル、あるいは基本セルを組み合わせた複合セルである。
【００１０】
以下、図面を参照し、本発明の各実施形態について説明する。なお、各図面において同じ要素には同じ符号を付している。
【００１１】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００１２】
まず、例えばＨＤＬ（Hardware Description Language）で動作定義した回路の機能設計データ１１を、論理合成ツールによって論理合成し（ステップ１２）、複数のセルの接続関係を示すネットリスト１３と呼ばれるファイルを生成する。
【００１３】
ネットリスト１３、ネットリスト１３における遅延時間等の情報を示すセルライブラリ１４、後述するセルパワーファイル２１が、入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００１４】
まず、セットアップタイミングの最適化を行う（ステップ１０１）。セットアップタイミングの最適化は、デジタル回路の信号のタイミングを規定するパラメータのひとつであるセットアップタイムを、各セルが満たすようにする処理である。
【００１５】
半導体集積回路に外部からデジタル信号を入力するに際しては、データの取り込みを指示するタイミングを知らせるクロック信号などのタイミング信号に合わせてデータを与えるが、これを確実に行うには、データ信号線はタイミング信号よりも先に内容（ＨかＬか）を確定させておき、さらにタイミング信号を与えた後もしばらくはその状態を保持しておく必要がある。
【００１６】
タイミング信号に先立ってあらかじめデータ信号を確定・保持しておかなければならない最小限の時間がセットアップタイムである。
【００１７】
また、デジタル回路の信号のタイミングを規定する他のパラメータとしてホールドタイムがあるが、これはタイミング信号を与えた後もデータ信号を保持しておかなければならない最小限の時間である。このホールドタイムを満たす条件が、後述するホールドタイミング条件である。
【００１８】
ステップ１０１では、セットアップタイミング条件を満たすように、複数のセルを配置する。図２に、一つの半導体チップにおけるセルの配置例を示す。
【００１９】
本実施形態でレイアウト設計の対象とする複数のセルは、チップ端部に設けられたＩ／Ｏ（Input／Output）セル群３及びコーナーセル４の内側に設けられたセル配置領域２に配置されるセル５であり、各セル５は、前述したネットリスト１３及びセルライブラリ１４に基づき、なおかつ、セットアップタイミング条件の違反にならないよう制約を受けて配置位置が決められる。
【００２０】
ステップ１０１におけるセル配置は仮配置であり、次に、ステップ１０２にてセル位置調整を行う。  
図３に、セル位置調整の具体的なフローを示す。
【００２１】
まず、セル配置領域２を複数に分けるパワーリージョンを生成する（ステップ１１１）。図２に示す例では、セル配置領域２を点線で区切って示すように、例えば９個のパワーリージョン３１〜３９を生成している。しかし、パワーリージョンの数は９個以外でもよく、また各パワーリージョンの大きさは同じにする必要はなく異なっていてもよい。さらに、各パワーリージョンは四角形である必要もなく、その形状も任意に設定できる。
【００２２】
次に、各セル５ごとの消費電流を示したセルパワーファイル２１（予め記憶装置に格納されている）を用いて、各パワーリージョン３１〜３９ごとの消費電流を算出する（ステップ１１２）。具体的には、各パワーリージョン３１〜３９につき、各々に配置された個々のセル５の消費電流の中で最大のもの（最大消費電流）と、各セル５の平均消費電流とを算出する。例えば、パワーリージョン３４については、このパワーリージョン３４に配置（仮配置）された６個のセル５の消費電流の中で最大のものをパワーリージョン３４の最大消費電流とし、それら６個のセル５の平均消費電流をパワーリージョン３４の平均消費電流とする。
【００２３】
次のステップ１１３として、ステップ１１２で得られた各パワーリージョン３１〜３９の消費電流を参照して、仮配置されたセル５の配置位置を調整する。具体的には、各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるように、セル５の位置を調整する。
【００２４】
例えば、図２に示す例では、パワーリージョン３４〜３６に、他のパワーリージョン３１〜３３、３７〜３９に比べて多くのセル５が集まっており、それらパワーリージョン３４〜３６における最大消費電流及び平均消費電流が他のパワーリージョン３１〜３３、３７〜３９に比べて大きいとする。そこで、本実施形態では、それらパワーリージョン３４〜３６に仮配置されたセル５のいくつかを他のパワーリージョンに移動させ、各パワーリージョン３１〜３９間の最大消費電流及び平均消費電流のばらつきを抑え均一化を図る。
【００２５】
ただし、セル５を移動させるにあたっては、セットアップタイミング条件の違反にならないようにという制約のもと行う。前述したステップ１０１の処理により、各セル５はセットアップタイミング条件を満たす位置に配置（仮配置）されており、その位置からずれるとセットアップタイミングも変動する。ステップ１１３で移動対象とするのは、位置を移動しても、セットアップタイミング条件違反にならない（セットアップタイミングがセットアップタイミング条件を満たす範囲内での変動に収まる）セル５とする。
【００２６】
セル５の位置調整の後、次のステップ１０３（図１）にて、セル５のホールドタイミングを最適化する。具体的には、各セル５が前述したホールドタイミング条件を満たすように、セル配置領域２に新たなセルを追加する。
【００２７】
以上説明した処理を経て、セル配置領域２における各セル５の位置が決まり、レイアウトデータ１５として出力される。このレイアウトデータ１５に基づいて、後工程にてマスクが製造され、さらにそのマスクを用いて半導体ウェーハ上への回路パターン転写が行われ、半導体装置の製造プロセスが進められていく。
【００２８】
本実施形態によれば、前述したように、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、セル配置領域２を複数に分ける各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるようにセル５の位置調整を行うことで、セル配置領域２全体における消費電流分布の均一化が図れる。これにより、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００２９】
［第２の実施形態］
次に、図４は、本発明の第２の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００３０】
前述した第１の実施形態では、各パワーリージョン３１〜３９の最大消費電流及び平均消費電流を算出するにあたっては、すべてのセル５が毎クロックサイクル動作するとして計算している。しかし、実際の製品を考えた場合、すべてのセル５が毎クロックサイクル動作するわけではない。そこで、本実施形態では、セルパワーファイル２１に加えて、各インスタンスの活性化率を示したファイル２２も用いて、各パワーリージョン３１〜３９の最大消費電流及び平均消費電流を算出するようにしている。
【００３１】
複数のセル５の中には同じ論理を示すものが含まれるが、これらをまとめて１セルとして扱うのではなく個々に識別したものをインスタンスとする。そして、各インスタンスの活性化率は、クロックサイクル何回に対して、各インスタンスが何回動作するかという割合（動作頻度）を表す。
【００３２】
本実施形態では、前述したネットリスト１３、セルライブラリ１４、セルパワーファイル２１に加えて、各インスタンスの活性化率を示したファイル２２も、入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００３３】
まず、前述した第１の実施形態と同様に、セットアップタイミングの最適化を行う（ステップ１０１）。これにより、各セル５は、ネットリスト１３及びセルライブラリ１４に基づき、なおかつセットアップタイミング条件を満たすように、セル配置領域２に仮配置される。
【００３４】
次に、ステップ１０２にてセル位置調整を行う。まず、第１の実施形態と同様に、パワーリージョン３１〜３９を生成する。この後、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出するが、ここでの計算に、本実施形態では各インスタンスの活性化率を示したファイル２２を使う。
【００３５】
具体的には、各インスタンスの活性化率を、対応するセルの消費電流（セルパワーファイル２１から得られる）に乗じて個々のインスタンスごとの消費電流を算出し、これに基づいて、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出する。この結果、実際の動作時により近いチップ内消費電流分布を得ることができる。
【００３６】
以降、第１の実施形態と同様に処理が進められる。すなわち、各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるように、セル５の位置を調整する。もちろん、このセル位置調整も、セットアップタイミング条件の違反にならないようにという制約のもと行う。セル５の位置調整の後、次のステップ１０３にて、セル５のホールドタイミングを最適化する。
【００３７】
本実施形態においても、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、セル配置領域２を複数に分ける各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるようにセル５の位置調整を行うことで、セル配置領域２全体における消費電流分布の均一化が図れる。これにより、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００３８】
さらに、本実施形態では、パワーリージョンの消費電流を算出するにあたって、各インスタンスの活性化率を使用することにより、実際の動作時により近いチップ内消費電流分布を得ることができ、これを認識した上でセル位置調整を行うことで、より適正にチップ内のＩＲドロップの最大値及びばらつきの低減を実現することができる。
【００３９】
［第３の実施形態］
次に、図５は、本発明の第３の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００４０】
ある領域に配置された複数のインスタンスが同時に動作する個数が多いほどその領域におけるＩＲドロップは大きくなる傾向があり、同時に動作する個数が少なければＩＲドロップは小さくなる傾向にある。
【００４１】
そこで、本実施形態では、各インスタンスの時間軸上の動作タイミングを示す活性化タイミングを示したファイル２３も用いて、各パワーリージョン３１〜３９の最大消費電流及び平均消費電流を算出するようにしている。各インスタンスの活性化タイミングを示したファイル２３から、各インスタンス相互の動作タイミングの関係を認識することができる。
【００４２】
本実施形態では、前述したネットリスト１３、セルライブラリ１４、セルパワーファイル２１に加えて、各インスタンスの活性化タイミングを示したファイル２３も、入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００４３】
まず、前述した実施形態と同様に、セットアップタイミングの最適化を行う（ステップ１０１）。これにより、各セル５は、ネットリスト１３及びセルライブラリ１４に基づき、なおかつセットアップタイミング条件を満たすように、セル配置領域２に仮配置される。
【００４４】
次に、ステップ１０２にてセル位置調整を行う。まず、上記実施形態と同様に、パワーリージョン３１〜３９を生成する。この後、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出するが、ここでの計算に、本実施形態では各インスタンスの活性化タイミングを示したファイル２３を使う。
【００４５】
具体的には、各パワーリージョンについて、各々に配置されたインスタンスの中で活性化タイミングが同じ（同時に動作する）インスタンスの消費電流だけを使って、そのパワーリージョンにおける最大消費電流と平均消費電流を算出する。一つのパワーリージョンに配置されたすべてのインスタンスの活性化タイミングが同じ（同時に動作する）場合には、それらすべてのインスタンスの消費電流を使って、そのパワーリージョンにおける最大消費電流及び平均消費電流が算出される。
【００４６】
以降、前述した実施形態と同様に処理が進められる。すなわち、各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるように、セル５の位置を調整する。このセル位置調整も、セットアップタイミング条件の違反にならないようにという制約のもと行う。セル５の位置調整の後、次のステップ１０３にて、セル５のホールドタイミングを最適化する。
【００４７】
本実施形態においても、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、セル配置領域２を複数に分ける各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるようにセル５の位置調整を行うことで、セル配置領域２全体における消費電流分布の均一化が図れる。これにより、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００４８】
さらに、本実施形態では、パワーリージョンの消費電流を算出するにあたって、各インスタンスの活性化タイミングを使用することにより、実際の動作時により近いチップ内消費電流分布を得ることができ、これを認識した上でセル位置調整を行うことで、より適正にチップ内のＩＲドロップの最大値及びばらつきの低減を実現することができる。
【００４９】
［第４の実施形態］
図６は、本発明の第４の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００５０】
本実施形態でも、第１の実施形態と同様、ネットリスト１３、セルライブラリ１４、セルパワーファイル２１が入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００５１】
まず、セットアップタイミングの最適化を行う（ステップ１０１）。すなわち、セットアップタイミング条件を満たすように、複数のセル５をセル配置領域２に配置する。
【００５２】
続いて、本実施形態では、ホールドタイミングの最適化が行われる（ステップ１０４）。具体的には、各セル５がホールドタイミング条件を満たすように、セル配置領域２に新たなセルを追加する。
【００５３】
以上の処理によって、各セル５は、ネットリスト１３及びセルライブラリ１４に基づき、なおかつ、セットアップタイミング条件及びホールドタイミング条件の違反にならないよう制約を受けてセル配置領域２に仮配置される。
【００５４】
次に、ステップ１０５にてセル位置調整を行う。図７に、そのセル位置調整の具体的なフローを示す。
【００５５】
まず、前述した実施形態と同様に、セル配置領域２を複数に分けるパワーリージョン３１〜３９を生成する（ステップ１２１）。
【００５６】
次に、各セル５ごとの消費電流を示したセルパワーファイル２１を用いて、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出する（ステップ１２２）。
【００５７】
次のステップ１２３として、各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるように、セル５の位置を調整する。
【００５８】
本実施形態では、セル５を移動させるにあたっては、セットアップタイミング条件及びホールドタイミング条件の違反にならないようにという制約のもと行う。前述したステップ１０１及びステップ１０４の処理により、各セル５はセットアップタイミング条件及びホールドタイミング条件を満たす位置に配置（仮配置）されており、その位置からずれるとセットアップタイミング及びホールドタイミングも変動する。ステップ１２３で移動対象とするのは、位置を移動しても、セットアップタイミング条件及びホールドタイミング条件の違反にならないセル５とする。
【００５９】
以上説明した処理を経て、セル配置領域２における各セル５の位置が決まり、レイアウトデータ１５として出力される。
【００６０】
本実施形態によれば、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、セル配置領域２を複数に分ける各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるようにセル５の位置調整を行うことで、セル配置領域２全体における消費電流分布の均一化が図れる。これにより、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００６１】
ホールドタイミング最適化処理によって、セル配置領域２に対して、新たなセル（Hold Timing Fix 用セル）の追加が行われる。前述した第１〜第３の実施形態のように、セル位置調整の後にホールドタイミング最適化が行われると、その追加セル分の消費電流によって、セル位置調整によって得られたチップ内消費電流分布に変動が生じ、チップ内ＩＲドロップの最大値やばらつきが大きくなることが懸念される。
【００６２】
これに対して本実施形態のように、ホールドタイミングの最適化処理を完了した後にセル位置調整を行うことで、セル位置調整後に追加や削除されるセルがほとんどなく、より確実にチップ内のＩＲドロップの最大値とばらつきの低減を実現することができる。
【００６３】
なお、ホールドタイミング最適化の後のセル位置調整では、ホールドタイミング最適化で追加されたセルも処理対象となるため、そのセル個数が増えた分、処理時間が増える傾向にある。したがって、ある程度のＩＲドロップ最大値とばらつき低減効果が得られればよく、処理時間を優先する場合には、第１〜第３の実施形態のように、ホールドタイミング最適化処理の前にセル位置調整を行うことが望ましい。
【００６４】
［第５の実施形態］
次に、図８は、本発明の第５の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００６５】
本実施形態では、第２の実施形態と同様、セルパワーファイル２１に加えて、各インスタンスの活性化率を示したファイル２２も用いて、各パワーリージョン３１〜３９の最大消費電流及び平均消費電流を算出する。
【００６６】
ネットリスト１３、セルライブラリ１４、セルパワーファイル２１、および各インスタンスの活性化率を示したファイル２２は、入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００６７】
まず、セットアップタイミングの最適化を行う（ステップ１０１）。さらに続いて、ホールドタイミングの最適化を行う（ステップ１０４）。これにより、各セル５は、ネットリスト１３及びセルライブラリ１４に基づき、なおかつセットアップタイミング条件及びホールドタイミング条件を満たすように、セル配置領域２に仮配置される。
【００６８】
次に、ステップ１０５にてセル位置調整を行う。まず、パワーリージョン３１〜３９を生成する。この後、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出するが、ここでの計算に、本実施形態では各インスタンスの活性化率を示したファイル２２を使う。
【００６９】
具体的には、各インスタンスの活性化率を、対応するセルの消費電流（セルパワーファイル２１から得られる）に乗じて個々のインスタンスごとの消費電流を算出し、これに基づいて、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出する。この結果、実際の動作時により近いチップ内消費電流分布を得ることができる。
【００７０】
次に、各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるように、セル５の位置を調整する。このセル位置調整は、セットアップタイミング条件及びホールドタイミング条件の違反にならないようにという制約のもと行う。
【００７１】
本実施形態においても、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、セル配置領域２を複数に分ける各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるようにセル５の位置調整を行うことで、セル配置領域２全体における消費電流分布の均一化が図れる。これにより、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００７２】
さらに、本実施形態では、パワーリージョンの消費電流を算出するにあたって、各インスタンスの活性化率を使用することにより、実際の動作時により近いチップ内消費電流分布を得ることができ、これを認識した上でセル位置調整を行うことで、より適正にチップ内のＩＲドロップの最大値及びばらつきの低減を実現することができる。
【００７３】
また、ホールドタイミングの最適化処理を完了した後にセル位置調整を行うことで、セル位置調整後に追加や削除されるセルがほとんどなく、より確実にチップ内のＩＲドロップの最大値とばらつきの低減を実現することができる。
【００７４】
［第６の実施形態］
次に、図９は、本発明の第６の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００７５】
本実施形態では、前述した第３の実施形態と同様、各インスタンスの活性化タイミングを示したファイル２３も用いて、各パワーリージョン３１〜３９の最大消費電流及び平均消費電流を算出する。
【００７６】
ネットリスト１３、セルライブラリ１４、セルパワーファイル２１、および各インスタンスの活性化タイミングを示したファイル２３は、入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００７７】
まず、セットアップタイミングの最適化を行う（ステップ１０１）。さらに続いて、ホールドタイミングの最適化を行う（ステップ１０４）これにより、各セル５は、ネットリスト１３及びセルライブラリ１４に基づき、なおかつセットアップタイミング条件及びホールドタイミング条件を満たすように、セル配置領域２に仮配置される。
【００７８】
次に、ステップ１０５にてセル位置調整を行う。まず、パワーリージョン３１〜３９を生成する。この後、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出するが、ここでの計算に、本実施形態では各インスタンスの活性化タイミングを示したファイル２３を使う。
【００７９】
具体的には、各パワーリージョンについて、各々に配置されたインスタンスの中で活性化タイミングが同じ（同時に動作する）インスタンスの消費電流だけを使って、そのパワーリージョンにおける最大消費電流と平均消費電流を算出する。
【００８０】
次に、各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるように、セル５の位置を調整する。このセル位置調整は、セットアップタイミング条件及びホールドタイミング条件の違反にならないようにという制約のもと行う。
【００８１】
本実施形態においても、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、セル配置領域２を複数に分ける各パワーリージョン３１〜３９間における最大消費電流及び平均消費電流のばらつきが小さくなるようにセル５の位置調整を行うことで、セル配置領域２全体における消費電流分布の均一化が図れる。これにより、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００８２】
さらに、本実施形態では、パワーリージョンの消費電流を算出するにあたって、各インスタンスの活性化タイミングを使用することにより、実際の動作時により近いチップ内消費電流分布を得ることができ、これを認識した上でセル位置調整を行うことで、より適正にチップ内のＩＲドロップの最大値及びばらつきの低減を実現することができる。
【００８３】
また、ホールドタイミングの最適化処理を完了した後にセル位置調整を行うことで、セル位置調整後に追加や削除されるセルがほとんどなく、より確実にチップ内のＩＲドロップの最大値とばらつきの低減を実現することができる。
【００８４】
［第７の実施形態］
図１０は、本発明の第７の実施形態に係る半導体集積回路の設計方法のフローを示す模式図である。
【００８５】
本実施形態では、ネットリスト１３、セルライブラリ１４、セルパワーファイル２１、および各パワーリージョンごとの目標消費電流を示したファイル２４が、入力装置を介して処理装置１０に入力される。処理装置１０は、本実施形態に係る半導体集積回路の設計プログラムを読み込みその命令のもと、以下に説明する処理を実行する。
【００８６】
まず、セットアップタイミングの最適化を行う（ステップ１０１）。これにより、各セル５は、ネットリスト１３及びセルライブラリ１４に基づき、なおかつ、セットアップタイミング条件の違反にならないよう制約を受けてセル配置領域２に仮配置される。
【００８７】
次に、ステップ１０２にてセル位置調整を行う。図１１に、そのセル位置調整の具体的なフローを示す。
【００８８】
まず、セル配置領域２を複数に分けるパワーリージョン３１〜３９を生成する（ステップ１３１）。次に、各セル５ごとの消費電流を示したセルパワーファイル２１を用いて、各パワーリージョン３１〜３９ごとの最大消費電流及び平均消費電流を算出する（ステップ１３２）。
【００８９】
次のステップ１３３として、上記ステップ１３２で得られた各パワーリージョン３１〜３９ごとの消費電流（最大消費電流及び平均消費電流）と、各パワーリージョンごとの目標消費電流（目標最大消費電流及び目標平均消費電流）を示したファイル２４とを参照して、仮配置されたセル５の配置位置を調整する。
【００９０】
実際の半導体チップ製品においては、同じ消費電流を有するパワーリージョンであっても、そのパワーリージョンのチップ内における位置によってＩＲドロップに違いがある。チップに形成された回路に対する電流供給の入口となる端子は、通常チップ端部に設けられることから、チップ端部に近いほどＩＲドロップは小さく、チップ端部から遠いチップ中心部に近いほどＩＲドロップが大きくなる。このため、チップ内におけるＩＲドロップばらつきを抑えるべく消費電流分布を考えた場合、チップ中心部に近いパワーリージョンほど消費電流は小さく、チップ端部に近いパワーリージョンほど消費電流を大きくすることが、実際の製品に即した設計となる。
【００９１】
そこで、本実施形態では、各パワーリージョン３１〜３９の最大消費電流と平均消費電流が、それぞれ、上記ファイル２４に定義された目標値になるように（もしくは目標値に近くなるように）、セル５の位置を調整する。
【００９２】
図２の例では、各パワーリージョンに設定された目標消費電流（目標最大消費電流及び目標平均消費電流）の中で、チップ中心部のパワーリージョン３５に設定された目標消費電流（目標最大消費電流及び目標平均消費電流）が最も小さい。
【００９３】
セル５を適宜他のパワーリージョンに移動させて、各パワーリージョンの消費電流が目標消費電流にできるだけ近くなるように調整することで、結果として、チップ内におけるＩＲドロップの最大値及びばらつきを低減することができる。
【００９４】
なお、本実施形態においても、セル５を移動させるにあたっては、セットアップタイミング条件の違反にならないようにという制約のもと行う。
【００９５】
セル５の位置調整の後、次のステップ１０３（図１０）にて、セル５のホールドタイミングを最適化する。具体的には、各セル５がホールドタイミング条件を満たすように、セル配置領域２に新たなセルを追加する。
【００９６】
以上説明した処理を経て、セル配置領域２における各セル５の位置が決まり、レイアウトデータ１５として出力される。
【００９７】
本実施形態によれば、タイミング条件（セットアップタイミング及びホールドタイミング条件）に加えて、セル配置領域２における消費電流の分布も考慮してセル配置が行われる。すなわち、各パワーリージョン３１〜３９における最大消費電流及び平均消費電流が、それぞれ目標値になるもしくは近づくようにセル５の位置調整を行うことで、結果として、チップ内におけるＩＲドロップの最大値及びばらつきの低減が図れ、回路動作の安定化および設計の容易化を実現できる。
【００９８】
すなわち、本実施形態では、各パワーリージョンごとに目標とする最大消費電流と平均消費電流を定義することにより、電源配線等の電源供給に関係する様々な要因に柔軟に対応させたチップ内消費電流分布にすることができ、より適正にチップ内のＩＲドロップの最大値とばらつきの低減を実現することが可能になる。
【００９９】
［第８の実施形態］
前述した図１０に示す第７の実施形態において、図１２に示すようなフィードバックループを追加することで、チップ内のＩＲドロップの最大値とばらつきの低減をより適正に行うことができる。
【０１００】
すなわち、第７の実施形態の処理にて得られたレイアウトデータ１５に基づいて、チップ内のＩＲドロップの解析を行い、各パワーリージョンごとのＩＲドロップレベルをＩＲドロップデータ１７として得る。
【０１０１】
そして、そのＩＲドロップデータ１７を参照して、各パワーリージョンごとの目標消費電流設定値を変更する。例えば、ＩＲドロップレベルが他のパワーリージョンよりも大きいパワーリージョンについては、目標消費電流の設定値を現在の値よりも小さく変更する。
【０１０２】
そして、ＩＲドロップレベルに基づいて適宜変更された目標値になるように（もしくは近づくように）、再び前述したセル位置調整を行うことで、結果として、その調整後におけるチップ内ＩＲドロップの最大値及びばらつきをより低減させることが可能となる。
【０１０３】
以上、具体例を参照しつつ本発明の実施形態について説明した。しかし、本発明は、それらに限定されるものではなく、本発明の技術的思想に基づいて種々の変形が可能である。
【０１０４】
第７の実施形態または第８の実施形態は、第２〜第６の各実施形態のそれぞれに組み合わせて適用可能である。すなわち、第２〜第６の各実施形態の「セルを移動させるステップ」において、各パワーリージョン間の消費電流を均一化させるようにではなく、各パワーリージョンの消費電流が目標値となるように、セルを移動させてもよい。
【図面の簡単な説明】
【０１０５】
【図１】本発明の第１の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図２】半導体チップにおけるセルの配置例を示す模式図。
【図３】同第１の実施形態におけるセル位置調整の具体的なフローを示す図。
【図４】本発明の第２の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図５】本発明の第３の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図６】本発明の第４の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図７】同第４の実施形態におけるセル位置調整の具体的なフローを示す図。
【図８】本発明の第５の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図９】本発明の第６の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図１０】本発明の第７の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【図１１】同第７の実施形態におけるセル位置調整の具体的なフローを示す図。
【図１２】本発明の第８の実施形態に係る半導体集積回路の設計方法のフローを示す模式図。
【符号の説明】
【０１０６】
２…セル配置領域、３…Ｉ／Ｏセル群、４…コーナーセル、５…セル、１０…処理装置、３１〜３９…パワーリージョン
【図１】
2009265773.tif 000003
【図２】
2009265773.tif 000004
【図３】
2009265773.tif 000005
【図４】
2009265773.tif 000006
【図５】
2009265773.tif 000007
【図６】
2009265773.tif 000008
【図７】
2009265773.tif 000009
【図８】
2009265773.tif 000010
【図９】
2009265773.tif 000011
【図１０】
2009265773.tif 000012
【図１１】
2009265773.tif 000013
【図１２】
2009265773.tif 000014