説明

半導体集積回路並びにその設計方法及び設計プログラム

【課題】IRDropやEMIの低減等が可能な半導体集積回路の設計方法等を提供する。
【解決手段】この半導体集積回路の設計方法は、複数のリーフセルを複数のグループにグループ分けするステップと、複数のグループの各々に対して、クロック信号の入り口としての代表セルを設けるステップと、複数のグループの各々に対して、代表セルとリーフセルの各々との間のクロック信号の遅延が略同等になるように、代表セル及びリーフセルをグループ配置領域内に配置するステップと、複数のグループをレイアウト領域内に配置するステップと、複数のグループにクロック信号を供給するためのクロックルートセルと複数のグループ内の代表セルとの間にクロックツリーシンセシスを行うステップと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路並びにその設計方法及び設計プログラムに関する。
【背景技術】
【0002】
半導体集積回路において、データ転送を保証するためには、クロックスキューを抑える必要がある。クロックスキューを抑えるため、一般に、クロックツリーシンセシス(CTS)ツール(プログラム)を利用してクロックツリー構築を行うことが行われている。
【0003】
CTSツールは、クロックルートセルから複数のリーフセル(クロックスキュー抑制の対象であるセルであり、例えばフリップフロップ(FF)やラッチ等である。)までのクロック信号の遅延値が略同等になるように、クロックバッファ(例えば、バッファ、インバータ、インバータペア等)をクロックルートセルと複数のリーフセルとの間に挿入するためのツールである。このようなクロックバッファの構成がクロックツリーと呼ばれており、クロックバッファをクロックルートセルと複数のリーフセルとの間に挿入することがクロックツリー構築と呼ばれている。
【0004】
上記のようなCTSツールを利用してクロックツリー構築を行うことにより、クロックスキューを抑え、データ転送を保証することができる。
【0005】
しかしながら、クロックツリーは多数のクロックバッファで構成されるため、クロックツリー構築を行うことにより半導体集積回路の消費電力が増加する。また、クロック信号が入力されクロック信号に同期して動作するセルは論理回路の中でも動作率と動作周波数が最も高いため、ダイナミックパワーが増加する。その中でも特にピークパワーの増加が問題となる。クロックツリーを構成する複数のクロックバッファはほぼ同時に変化(動作)するため、ピークパワーが増加し、IRDrop(電源電圧が一瞬下がること)やEMI(電磁波障害)の発生を招く要因となる。
【0006】
関連する技術として、下記の特許文献1、2には、クロックツリーに関して消費電力を低減する半導体集積回路等が掲載されている。
【0007】
【特許文献1】特開平10−308450号公報
【特許文献2】特開2001−22816号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、IRDropやEMIの低減等が可能な半導体集積回路並びにその設計方法及び設計プログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために本発明は、
半導体集積回路を設計するためにコンピュータが実行する方法であって、
複数のリーフセルを複数のグループにグループ分けするステップ(a)と、
前記複数のグループの各々に対して、クロック信号の入り口としての代表セルを設けるステップ(b)と、
前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間のクロック信号の遅延が略同等になるように、前記代表セル及び前記リーフセルをグループ配置領域内に配置するステップ(c)と、
前記複数のグループをレイアウト領域内に配置するステップ(d)と、
前記複数のグループにクロック信号を供給するためのクロックルートセルと前記複数のグループ内の前記代表セルとの間にクロックツリーシンセシス(CTS)を行うステップ(e)と、
を含む、半導体集積回路の設計方法に関係する。
【0010】
本発明によれば、クロックルートセルと複数のグループ内の代表セルとの間にCTSを行うことにより、クロックツリーを構成するクロックバッファの数を低減することができる。これにより、IRDrop及びEMIを低減することが可能である。
【0011】
また本発明に係る半導体集積回路の設計方法では、
ステップ(c)が、前記複数のグループの各々に対して、前記代表セルから前記リーフセルの各々にクロック信号を伝送する配線の長さが略等長になるように、前記代表セル及び前記リーフセルを前記グループ配置領域内に配置することができる。
【0012】
また本発明に係る半導体集積回路の設計方法では、
前記グループ配置領域が所定面積を有することとすることができる。
【0013】
また本発明に係る半導体集積回路の設計方法では、
前記グループ配置領域が、前記代表セルの面積及び前記リーフセルの面積の総和のK倍(Kは自然数)の面積を有することとすることができる。
【0014】
また本発明に係る半導体集積回路の設計方法では、
前記グループ配置領域が、前記代表セルの面積及び前記リーフセルの面積の総和のK倍(Kは自然数)の面積を有する正方形であることとすることができる。
【0015】
また本発明に係る半導体集積回路の設計方法では、
ステップ(a)が、前記複数のリーフセルを最大8、16、又は、32個のリーフセルをそれぞれ含む前記複数のグループにグループ分けすることができる。
【0016】
また本発明に係る半導体集積回路の設計方法では、
前記代表セルが、クロックゲーティングセル又はバッファであることとすることができる。
【0017】
また本発明に係る半導体集積回路の設計方法では、
ステップ(c)が、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行う処理を含むようにしても良い。
【0018】
また本発明に係る半導体集積回路の設計方法では、
ステップ(d)が、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行う処理を含むようにしても良い。
【0019】
また本発明に係る半導体集積回路の設計方法では、
ステップ(e)が、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行う処理を含むようにしても良い。
【0020】
また本発明に係る半導体集積回路の設計方法では、
ステップ(c)が実行された後且つステップ(d)が実行される前に実行されるステップであって、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行うステップを更に含むようにしても良い。
【0021】
また本発明に係る半導体集積回路の設計方法では、
ステップ(d)が実行された後且つステップ(e)が実行される前に実行されるステップであって、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行うステップを更に含むようにしても良い。
【0022】
また本発明に係る半導体集積回路の設計方法では、
ステップ(e)が実行された後において実行されるステップであって、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行うステップを更に含むようにしても良い。
【0023】
また本発明に係る半導体集積回路の設計方法では、
前記複数のグループの各々に対して、前記リーフセルの各々におけるクロックスキューを算出し、前記リーフセルにおけるクロックスキューが所定の値以上の場合に、前記リーフセルにおけるクロックスキューを微調整するための1つ又は複数のセルを前記代表セルと1つ又は複数の前記リーフセルとの間に配置するステップを更に含むようにしても良い。
【0024】
また本発明は、
本発明に係る半導体集積回路の設計方法によって設計された半導体集積回路であって、
前記複数のグループの各々において、前記代表セルと前記リーフセルとの間にクロックスキューを調整するためのセルが設けられていないこと
を特徴とする、半導体集積回路に関係する。
【0025】
本発明によれば、クロックツリーを構成するクロックバッファの数を低減することができる。これにより、IRDrop及びEMIを低減することが可能である。
【0026】
また本発明は、
本発明に係る半導体集積回路の設計方法によって設計された半導体集積回路であって、
前記複数のグループの各々において、前記代表セルと1つ又は複数の前記リーフセルとの間にクロックスキューを微調整するための1つ又は複数のセルが設けられていること
を特徴とする、半導体集積回路に関係する。
【0027】
また本発明は、
半導体集積回路を設計するためにコンピュータに実行させるためのプログラムであって、
複数のリーフセルを複数のグループにグループ分けする手順(a)と、
前記複数のグループの各々に対して、クロック信号の入り口としての代表セルを設ける手順(b)と、
前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間のクロック信号の遅延が略同等になるように、前記代表セル及び前記リーフセルをグループ配置領域内に配置する手順(c)と、
前記複数のグループをレイアウト領域内に配置する手順(d)と、
前記複数のグループにクロック信号を供給するためのクロックルートセルと前記複数のグループ内の前記代表セルとの間にクロックツリーシンセシス(CTS)を行う手順(e)と、
を前記コンピュータに実行させる、半導体集積回路の設計プログラムに関係する。
【0028】
本発明によれば、クロックルートセルと複数のグループ内の代表セルとの間にCTSを行うことにより、クロックツリーを構成するクロックバッファの数を低減することができる。これにより、IRDrop及びEMIを低減することが可能である。
【発明を実施するための最良の形態】
【0029】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。また同一の構成要素には同一の参照番号を付して説明を省略する。
【0030】
図1は、本実施形態に係る半導体集積回路の設計方法を示すフローチャートである。図1に示す処理は、コンピュータにプログラムを実行させることにより実現することができる。
【0031】
まず、複数のリーフセルを複数のグループにグループ分けする(ステップS11)。ここで、リーフセルとは、例えば、フリップフロップ(FF)やラッチ等であり、クロック信号に同期して信号を保持するセルである。
【0032】
グループ分けの仕方の一例として、各グループが含み得るリーフセルの最大数を4個、8個、16個、32個、64個等にすると好適である。これは、一般にデータの処理単位として4ビット(ニブルと呼ばれることがある。)、8ビット(バイトと呼ばれることがある。)、16ビット、32ビット、64ビット(ワードと呼ばれることがある。)が用いられることが多いためである。とりわけ、各グループが含み得るリーフセルの最大数を8、16、又は、32個にすると好適である。各グループが含み得るリーフセルの最大数があまり大きい(例えば、64個)と、或る1つのグループが64個のリーフセルを、他の1つのグループが8個のリーフセルをそれぞれ含むようにグループ分けされることが起こり得ると考えられ、グループ分けや後のレイアウトが難しくなることが起こり得ると考えられるためである。一方、各グループが含み得るリーフセルの最大数があまり小さい(例えば、4個)と、後に説明する代表セルが多くなってしまうためである。
【0033】
図2(A)は、48個のリーフセルA1〜A48がクロックルートセルB1に接続されている回路例を示す図である。ここで、例えば、各グループが含み得るリーフセルの最大数を16個とした場合に、図2(B)に示すように、48個のリーフセルA1〜A48を、16個のリーフセルA1〜A16を含む第1のグループC1と、16個のリーフセルA17〜A32を含む第2のグループC2と、16個のリーフセルA33〜A48を含む第3のグループC3と、の3つのグループにグループ分けすることができる。
【0034】
なお、上記においては専らリーフセルの数に基づいてグループ分けをする場合について説明したが、リーフセルの数及び論理(ここでは、クロックイネーブル信号にかかわらず動作することや、クロックイネーブル信号に応じて動作を停止することを言う。)に基づいてグループ分けをするようにしても良い。例えば、各グループが含み得るリーフセルの最大数を16個とし、48個のリーフセルの内の24個がクロックイネーブル信号にかかわらず動作し、他の24個がクロックイネーブル信号に応じて動作する場合には、クロックイネーブル信号にかかわらず動作する16個のリーフセルを含む第1のグループと、クロックイネーブル信号にかかわらず動作する8個のリーフセルを含む第2のグループと、クロックイネーブル信号に応じて動作する16個のリーフセルを含む第3のグループと、クロックイネーブル信号に応じて動作する8個のリーフセルを含む第4のグループと、の4つのグループにグループ分けするようにしても良い。
【0035】
再び図1を参照すると、複数のグループの各々に対して、クロック信号の入り口として、クロックルートセルからクロック信号の入力を受けてクロック信号をグループ内の複数のリーフセルに出力する代表セルを設ける(ステップS12)。
【0036】
ここで、代表セルは、クロックゲーティングセル等の論理セルであっても良いし、単なるバッファ等であっても良い。クロックゲーティングセルとは、クロック動作が不要な際にクロックイネーブル信号等に応じてクロック信号の供給を停止するために利用されるセル(論理)であり、消費電力低減の目的のために利用される。
【0037】
或るグループが論理的に元々クロックゲーティングセルを必要とする場合(クロックイネーブル信号に応じて動作を停止する場合)には、クロックゲーティングセルを代表セルとみなす(クロックゲーティングセルを代表セルに兼ねさせる)ことにより、無駄をなくすことができる。また、或るグループでは代表セルとしてクロックゲーティングセルが兼用され、他の或るグループでは代表セルとしてバッファが設けられる(挿入される)場合には、クロックゲーティングセルのクロック信号遅延量とバッファのクロック信号遅延量とが略同等であると好適である。
【0038】
図3は、図2(B)の第1〜第3のグループC1〜C3のグループの各々に対して、代表セルD1〜D3を設けた様子を示す図である。
【0039】
再び図1を参照すると、複数のグループの各々に対して、代表セルと複数のリーフセルの各々との間のクロック信号の遅延量が略同等になるように代表セル及び複数のリーフセルをグループ配置領域内に配置及び配線する(ステップS13)。
【0040】
図4(a)は、或るグループが代表セルE1と16個のリーフセルF1〜F16とを含む場合に、代表セルE1及びリーフセルF1〜F16をグループ配置領域G1内に配置した例を示す図である。図4(a)においては、リーフセルF1〜F16が、グループ配置領域G1の左辺のやや上側から左辺のやや下側まで左辺〜上辺〜右辺〜下辺〜左辺に沿って配置されている。また、代表セルE1が、グループ配置領域G1の中央付近に配置されている。代表セルE1及びリーフセルF1〜F16をこのように配置することで、代表セルE1とリーフセルF1〜F16の各々との間のクロック信号の遅延量が略同等になるようにすることができる。なお、グループ配置領域G1の左辺の中央付近のセルが配置されていない部分は、後に説明するように、クロック信号配線の配置に利用することができる。
【0041】
代表セルE1とリーフセルF1〜F16の各々との間のクロック信号の遅延量は、リーフセルF1〜F16の各々の入力容量と、代表セルE1とリーフセルF1〜F16の各々との間の配線の配線容量との和によって定まる。従って、リーフセルF1〜F16の各々の入力容量が略同等であるとすると、代表セルE1とリーフセルF1〜F16の各々との間のクロック信号の遅延量が略同等になるようにするためには、代表セルE1とリーフセルF1〜F16の各々との間の配線の配線容量を略同等にすれば良いことになる。すなわち、代表セルE1とリーフセルF1〜F16の各々との間の配線の長さを略等長にすれば良いことになる。図4(a)は、そのようなことを実現する配置の仕方の一例である。
【0042】
代表セルE1とリーフセルF1〜F16の各々との間の配線の長さを略等長にすることを容易に実現するための一つの手法として、グループ配置領域G1の面積を所定の面積にすることができる。その一例として、グループ配置領域G1の面積を、代表セルE1の面積とリーフセルF1〜F16の面積との和のk倍(kは自然数)とすることが考えられる。例えば、代表セルE1の面積を2(単位面積)、リーフセルF1〜F16の各々の面積を10(単位面積)とすると、グループ配置領域G1の面積を((2+10×16)×k)(単位面積)とすることが考えられる(kは自然数)。例えば、k=2とし、グループ配置領域G1の面積を(2+10×16)×2=324(単位面積)とすることが考えられる。kの値は、許容できるスキュー量に応じて変更することができる。これにより、代表セルE1とリーフセルF1〜F16の各々との間の配線の長さを略等長にすることを容易に実現することができるようになる。
【0043】
また、代表セルE1とリーフセルF1〜F16の各々との間の配線の長さを略等長にすることをより容易に実現するための一つの手法として、グループ配置領域G1を、代表セルE1の面積とリーフセルF1〜F16の面積との和のk倍の面積を有する正方形とすることが考えられる。例えば、代表セルE1の面積を2(単位面積)、リーフセルF1〜F16の各々の面積を10(単位面積)とすると、グループ配置領域G1を、一辺の長さが324(=(2+10×16)×2)の平方根である正方形とすることが考えられる。このようにグループ配置領域G1を正方形とすることで、グループ配置領域G1を長方形とした場合よりも、代表セルE1とリーフセルF1〜F16の各々との間の配線の長さを略等長にすることをより容易に実現することができるようになる。
【0044】
図4(b)は、図4(a)のレイアウトに配線を行った例を示す図である。代表セルE1の出力ピンからは、三方向(図中上下及び図中右方向)に向かって配線が延在している。代表セルE1の出力ピンから図中上方向に向かって延在する配線は、7個のリーフセルF1〜F7に接続されている。代表セルE1の出力ピンから図中右方向に向かって延在する配線は、2個のリーフセルF8、F9に接続されている。代表セルE1の出力ピンから図中下方向に向かって延在する配線は、7個のリーフセルF10〜F16に接続されている。
【0045】
なお、グループ内の配線は、ステップS13において行っても良いし、後のステップS14やステップS15で行うようにしても良いし、ステップS13とステップS14との間やステップS14とステップS15との間やステップS15の後で行うようにしても良い。
【0046】
再び図1を参照すると、複数のグループ及びその他のセルをレイアウト領域内に配置する(ステップS14)。
【0047】
図5は、レイアウト領域H1内に6個のグループJ1〜J6を配置した例を示す図である。グループJ1〜J3は、レイアウト領域H1の上辺左側〜右側に沿って配置されており、グループJ4〜J6は、レイアウト領域H1の下辺右側〜左側に沿って配置されている。グループJ1〜J6は、図4に示すグループと略同様のレイアウトをそれぞれ有しており、辺縁部に16個のリーフセルをそれぞれ有し、中央部に代表セルJ1a〜J6aをそれぞれ有している。さらに、レイアウト領域H1内にはクロックルートセルK1及びその他のセルL1〜L10も配置されている。
【0048】
再び図1を参照すると、クロックルートセルと複数のグループ内の代表セルとの間にクロックツリーシンセシス(CTS)を行う(ステップS15)。CTSとは、一般に、クロック信号を伝送する配線上にセルや素子を挿入することでクロック信号のディレイを合わせてクロックスキューを低減することを言う。ステップS15におけるCTSを行うために、一般に広く用いられている汎用のCTSツール(プログラム)を利用することができる。
【0049】
図6は、図5のクロックルートセルK1とグループJ1〜J6内の代表セルとの間にCTSを行った例を示す図である。クロックルートセルK1の入力ピン(図中左側)には、レイアウト領域H1の外部からクロック信号CLKを入力するための配線が配置されている。クロックルートセルK1の出力ピン(図中右側)には、配線を介してバッファM1が配置されており、さらに、バッファM1の後段(図中右側)には、配線を介してバッファM2が配置されている。
【0050】
バッファM2の後段の配線は二方向(図中上下方向)に延在しており、上方向に延在する配線はバッファM3に接続されている。バッファM3の後段の配線は三方向(図中左右及び図中上方向)に延在している。バッファM3から図中左側方向に延在する配線は、バッファM4に接続されている。
【0051】
バッファM4の後段の配線は図中上方向に延在しており、該配線はグループJ1の中央部に配置されている代表セルJ1aの入力ピンに接続されている。代表セルJ1aの出力ピンからは、三方向(図中左右及び図中上方向)に向かって配線が延在している。代表セルJ1aの出力ピンから図中左方向に向かって延在する配線は、グループJ1の図中左下〜図中左上に配置された7個のリーフセルに接続されている。代表セルJ1aの出力ピンから図中上方向に向かって延在する配線は、グループJ1の上辺の中央近傍に配置された2個のリーフセルに接続されている。代表セルJ1aの出力ピンから図中右方向に向かって延在する配線は、グループJ1の図中右上〜図中右下に配置された7個のリーフセルに接続されている。
【0052】
バッファM3から図中上側方向に延在する配線は、バッファM5に接続されている。バッファM5の後段の配線は図中上方向に延在しており、該配線はグループJ2の中央部に配置されている代表セルJ2aの入力ピンに接続されている。代表セルJ2aの出力ピンからは、三方向(図中左右及び図中上方向)に向かって配線が延在している。代表セルJ2aの出力ピンから図中左方向に向かって延在する配線は、グループJ2の図中左下〜図中左上に配置された7個のリーフセルに接続されている。代表セルJ2aの出力ピンから図中上方向に向かって延在する配線は、グループJ2の上辺の中央近傍に配置された2個のリーフセルに接続されている。代表セルJ2aの出力ピンから図中右方向に向かって延在する配線は、グループJ2の図中右上〜図中右下に配置された7個のリーフセルに接続されている。
【0053】
バッファM3から図中右側方向に延在する配線は、バッファM6に接続されている。バッファM6の後段の配線は図中上方向に延在しており、該配線はグループJ3の中央部に配置されている代表セルJ3aの入力ピンに接続されている。代表セルJ3aの出力ピンからは、三方向(図中左右及び図中上方向)に向かって配線が延在している。代表セルJ3aの出力ピンから図中左方向に向かって延在する配線は、グループJ3の図中左下〜図中左上に配置された7個のリーフセルに接続されている。代表セルJ3aの出力ピンから図中上方向に向かって延在する配線は、グループJ3の上辺の中央近傍に配置された2個のリーフセルに接続されている。代表セルJ3aの出力ピンから図中右方向に向かって延在する配線は、グループJ3の図中右上〜図中右下に配置された7個のリーフセルに接続されている。
【0054】
バッファM2の後段の図中下方向に延在する配線はバッファM7に接続されている。バッファM7の後段の配線は三方向(図中左右及び図中下方向)に延在している。バッファM7から図中右側方向に延在する配線は、バッファM8に接続されている。
【0055】
バッファM8の後段の配線は図中下方向に延在しており、該配線はグループJ4の中央部に配置されている代表セルJ4aの入力ピンに接続されている。代表セルJ4aの出力ピンからは、三方向(図中左右及び図中下方向)に向かって配線が延在している。代表セルJ4aの出力ピンから図中右方向に向かって延在する配線は、グループJ4の図中右上〜図中右下に配置された7個のリーフセルに接続されている。代表セルJ4aの出力ピンから図中下方向に向かって延在する配線は、グループJ4の下辺の中央近傍に配置された2個のリーフセルに接続されている。代表セルJ4aの出力ピンから図中左方向に向かって延在する配線は、グループJ4の図中左下〜図中左上に配置された7個のリーフセルに接続されている。
【0056】
バッファM7から図中下側方向に延在する配線は、バッファM9に接続されている。バッファM9の後段の配線は図中下方向に延在しており、該配線はグループJ5の中央部に配置されている代表セルJ5aの入力ピンに接続されている。代表セルJ5aの出力ピンからは、三方向(図中左右及び図中下方向)に向かって配線が延在している。代表セルJ5aの出力ピンから図中右方向に向かって延在する配線は、グループJ5の図中右上〜図中右下に配置された7個のリーフセルに接続されている。代表セルJ5aの出力ピンから図中下方向に向かって延在する配線は、グループJ5の下辺の中央近傍に配置された2個のリーフセルに接続されている。代表セルJ5aの出力ピンから図中左方向に向かって延在する配線は、グループJ5の図中左下〜図中左上に配置された7個のリーフセルに接続されている。
【0057】
バッファM7から図中左側方向に延在する配線は、バッファM10に接続されている。バッファM10の後段の配線は図中下方向に延在しており、該配線はグループJ6の中央部に配置されている代表セルJ6aの入力ピンに接続されている。代表セルJ6aの出力ピンからは、三方向(図中左右及び図中下方向)に向かって配線が延在している。代表セルJ6aの出力ピンから図中右方向に向かって延在する配線は、グループJ6の図中右上〜図中右下に配置された7個のリーフセルに接続されている。代表セルJ6aの出力ピンから図中下方向に向かって延在する配線は、グループJ6の下辺の中央近傍に配置された2個のリーフセルに接続されている。代表セルJ6aの出力ピンから図中左方向に向かって延在する配線は、グループJ6の図中左下〜図中左上に配置された7個のリーフセルに接続されている。
【0058】
なお、図6において、複数のグループの各々に対して、リーフセルの各々におけるクロックスキューを算出し、リーフセルにおけるクロックスキューが所定の値(許容できる限度の値)以上の場合に、リーフセルにおけるクロックスキューを微調整するための1つ又は複数のセルを代表セルと1つ又は複数のリーフセルとの間に適宜挿入(配置)するようにしても良い。
【0059】
このように本実施形態のステップS15では、クロックルートセルと複数のグループ内の代表セルとの間にCTSを行うこととしている。これは、換言すると、CTSツールに対して代表セルをリーフセルに見せかけ、CTSツールに対してリーフセル(ここでは、代表セルを見せかけたもの)の数を少なく見せかけていると言うこともできる。CTSツールでは、リーフセルが増えるほど挿入されるクロックバッファの数が増加するため、リーフセルの数を少なく見せかけることでクロックバッファの数を低減することができる。
【0060】
一方、従来の半導体集積回路の設計方法では、クロックルートセルと複数のリーフセルとの間にCTSを行っていた。
【0061】
図7は、図5のクロックルートセルK1とグループJ1〜J6内の複数のリーフセル(16×6の計96個)との間にCTSを行った例を示す図である。図7では、代表セルJ1a〜J6aから三方向にそれぞれ延在する配線上に(代表セルJ1a〜J6aと複数のリーフセルとの間に)クロックスキューを調整するためのバッファN1a〜N1c、N2a〜N2c、N3a〜N3c、N4a〜N4c、N5a〜N5c、N6a〜N6cがそれぞれ挿入されている。
【0062】
一方、本実施形態によれば、図6に示すように、代表セルJ1a〜J6aから三方向に延在する配線上に(代表セルJ1a〜J6aと複数のリーフセルとの間に)クロックスキューを調整するためのバッファが挿入されていない。これは、先に説明したように、ステップS15において、クロックルートセルと複数のグループ内の代表セル(計6個)との間にCTSを行うこととしているためである。
【0063】
このようにステップS15においてクロックルートセルと複数のグループ内の代表セルとの間にCTSを行うことが可能であるのは、ステップS13において、グループJ1〜J6の各々に対して、代表セルと複数のリーフセルの各々との間のクロック信号の遅延が略同等になるように、代表セル及び複数のリーフセルを配置しているためである。
【0064】
一方、従来は、代表セルと複数のリーフセルの各々との間のクロック信号の遅延が略同等になるように代表セル及び複数のリーフセルを配置するということは行われていなかった。そのため、クロックルートセルと複数のリーフセルとの間にCTSを行う必要があった。その結果として、図7に示すように、代表セルJ1a〜J6aから三方向にそれぞれ延在する配線上にバッファN1a〜N1c、N2a〜N2c、N3a〜N3c、N4a〜N4c、N5a〜N5c、N6a〜N6cがそれぞれ挿入されてしまうことが起こっていた。
【0065】
以上説明したように、本実施形態によれば、複数のグループの各々に対して、代表セルと複数のリーフセルの各々との間のクロック信号の遅延が略同等になるように、代表セル及び複数のリーフセルを配置し、クロックルートセルと複数のグループ内の代表セルとの間にCTSを行うことにより、クロックツリーを構成するクロックバッファの数を低減することができる。これにより、消費電力、IRDrop、EMIを低減することが可能である。また、クロックディレイを低減することも可能である。
【0066】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また各グループの構成や、代表セル及びリーフセルの配置等も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。
【0067】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【0068】
【図1】本発明の実施形態に係る半導体集積回路の設計方法を示すフローチャート。
【図2】クロックルートセル及び複数のリーフセルを含む回路例を示す図。
【図3】図2(B)の回路に代表セルを設けた回路例を示す図。
【図4】代表セル及び複数のリーフセルを含むグループの配置例を示す図。
【図5】複数のグループを含む回路の配置例を示す図。
【図6】図5の回路に本実施形態に係るステップを行った配置例を示す図。
【図7】図5の回路に従来のCTSを行った配置例を示す図。
【符号の説明】
【0069】
A1〜A48、F1〜F16 リーフセル、 B1、K1 クロックルートセル、 C1〜C3、J1〜J6 グループ、 D1〜D3、E1、J1a〜J6a 代表セル、 G1 グループ配置領域、 H1 レイアウト領域、 L1〜L10 セル、 M1〜M10、N1a〜N1c、N2a〜N2c、N3a〜N3c、N4a〜N4c、N5a〜N5c、N6a〜N6c クロックバッファ、 10、30、60 セル

【特許請求の範囲】
【請求項1】
半導体集積回路を設計するためにコンピュータが実行する方法であって、
複数のリーフセルを複数のグループにグループ分けするステップ(a)と、
前記複数のグループの各々に対して、クロック信号の入り口としての代表セルを設けるステップ(b)と、
前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間のクロック信号の遅延が略同等になるように、前記代表セル及び前記リーフセルをグループ配置領域内に配置するステップ(c)と、
前記複数のグループをレイアウト領域内に配置するステップ(d)と、
前記複数のグループにクロック信号を供給するためのクロックルートセルと前記複数のグループ内の前記代表セルとの間にクロックツリーシンセシス(CTS)を行うステップ(e)と、
を含む、半導体集積回路の設計方法。
【請求項2】
請求項1において、
ステップ(c)が、前記複数のグループの各々に対して、前記代表セルから前記リーフセルの各々にクロック信号を伝送する配線の長さが略等長になるように、前記代表セル及び前記リーフセルを前記グループ配置領域内に配置する、半導体集積回路の設計方法。
【請求項3】
請求項2において、
前記グループ配置領域が所定面積を有する、半導体集積回路の設計方法。
【請求項4】
請求項2又は3において、
前記グループ配置領域が、前記代表セルの面積及び前記リーフセルの面積の総和のK倍(Kは自然数)の面積を有する、半導体集積回路の設計方法。
【請求項5】
請求項2乃至4のいずれかにおいて、
前記グループ配置領域が、前記代表セルの面積及び前記リーフセルの面積の総和のK倍(Kは自然数)の面積を有する正方形である、半導体集積回路の設計方法。
【請求項6】
請求項1乃至5のいずれかにおいて、
ステップ(a)が、前記複数のリーフセルを最大8、16、又は、32個のリーフセルをそれぞれ含む前記複数のグループにグループ分けする、半導体集積回路の設計方法。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記代表セルが、クロックゲーティングセル又はバッファである、半導体集積回路の設計方法。
【請求項8】
請求項1乃至7のいずれかにおいて、
ステップ(c)が、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行う処理を含む、半導体集積回路の設計方法。
【請求項9】
請求項1乃至7のいずれかにおいて、
ステップ(d)が、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行う処理を含む、半導体集積回路の設計方法。
【請求項10】
請求項1乃至7のいずれかにおいて、
ステップ(e)が、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行う処理を含む、半導体集積回路の設計方法。
【請求項11】
請求項1乃至7のいずれかにおいて、
ステップ(c)が実行された後且つステップ(d)が実行される前に実行されるステップであって、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行うステップを更に含む、半導体集積回路の設計方法。
【請求項12】
請求項1乃至7のいずれかにおいて、
ステップ(d)が実行された後且つステップ(e)が実行される前に実行されるステップであって、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行うステップを更に含む、半導体集積回路の設計方法。
【請求項13】
請求項1乃至7のいずれかにおいて、
ステップ(e)が実行された後において実行されるステップであって、前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間を接続する配線を行うステップを更に含む、半導体集積回路の設計方法。
【請求項14】
請求項1乃至13のいずれかにおいて、
前記複数のグループの各々に対して、前記リーフセルの各々におけるクロックスキューを算出し、前記リーフセルにおけるクロックスキューが所定の値以上の場合に、前記リーフセルにおけるクロックスキューを微調整するための1つ又は複数のセルを前記代表セルと1つ又は複数の前記リーフセルとの間に配置するステップを更に含む、半導体集積回路。
【請求項15】
請求項1乃至13のいずれかに記載の半導体集積回路の設計方法によって設計された半導体集積回路であって、
前記複数のグループの各々において、前記代表セルと前記リーフセルとの間にクロックスキューを調整するためのセルが設けられていないこと
を特徴とする、半導体集積回路。
【請求項16】
請求項14に記載の半導体集積回路の設計方法によって設計された半導体集積回路であって、
前記複数のグループの各々において、前記代表セルと1つ又は複数の前記リーフセルとの間にクロックスキューを微調整するための1つ又は複数のセルが設けられていること
を特徴とする、半導体集積回路。
【請求項17】
半導体集積回路を設計するためにコンピュータに実行させるためのプログラムであって、
複数のリーフセルを複数のグループにグループ分けする手順(a)と、
前記複数のグループの各々に対して、クロック信号の入り口としての代表セルを設ける手順(b)と、
前記複数のグループの各々に対して、前記代表セルと前記リーフセルの各々との間のクロック信号の遅延が略同等になるように、前記代表セル及び前記リーフセルをグループ配置領域内に配置する手順(c)と、
前記複数のグループをレイアウト領域内に配置する手順(d)と、
前記複数のグループにクロック信号を供給するためのクロックルートセルと前記複数のグループ内の前記代表セルとの間にクロックツリーシンセシス(CTS)を行う手順(e)と、
を前記コンピュータに実行させる、半導体集積回路の設計プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−271699(P2009−271699A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−121127(P2008−121127)
【出願日】平成20年5月7日(2008.5.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】