説明

クロック供給回路及びその設計方法

【課題】配線混雑を抑制しつつ、各配線層の配線の出来具合に起因するクロックスキューを抑制できるクロック供給回路を提供する。
【解決手段】本発明に係るクロック供給回路は、クロックツリー構造を有し、クロック信号を複数の動作素子216〜223に供給するクロック供給回路200であって、前記クロックツリー構造を構成する複数の駆動素子201〜215と、前段の駆動素子の出力と次段の複数の駆動素子又は動作素子とをそれぞれ接続する複数の接続配線224〜238とを備え、複数の接続配線224〜238は、基準配線層で形成される複数の第1配線224〜237と、前記基準配線層を使用する回路ブロック239上に存在する第2配線238とを含み、第2配線238の回路ブロック239上の配線は、前記基準配線層より上層の所定の配線層で形成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クロック供給回路及びその設計方法に関し、特に、クロックを複数の動作素子に供給するクロックツリー構造のクロック供給回路及びその設計方法に関する。
【背景技術】
【0002】
近年、製造プロセスの微細化に伴い、配線及びトランジスタの製造ばらつきがクロック供給回路の性能に大きな影響を及ぼすようになっている。一例を挙げると、配線及びトランジスタの製造ばらつきにより、クロック信号の遅延時間にばらつきが生じることが問題となっている。一般に、セル1段あたりの遅延時間tdは、負荷に依存しない遅延時間t0と、単位負荷容量あたりの遅延時間を定める係数Δtと、負荷となる次段セルのゲート容量Cgと、負荷となる配線の容量(以下、配線容量と呼ぶ)Cwとを用いて、次式(1)で表される。
【0003】
td=t0+Δt(Cg+Cw) ・・・ (1)
【0004】
上式(1)において、遅延時間t0、係数Δt及びゲート容量Cgはトランジスタの製造ばらつきによって変動する。配線容量Cwは配線の製造ばらつきによって変動する。このため、配線及びトランジスタに製造ばらつきが生じた場合、クロック信号の遅延時間が変動する。これにより、クロックスキューが予想以上に大きくなることがある。
【0005】
クロックスキューを抑制する従来のクロック供給回路として、クロックバッファツリー構造(以下、「クロックツリー構造」と呼ぶ)を用いたクロック供給回路が知られている(例えば、非特許文献1参照)。
【0006】
クロックツリー構造は、バッファ等の駆動素子がツリー状となる構造である。ツリー状の最上段に位置する駆動素子の入力に、クロック発生回路からのクロック信号が印加される。ツリー状の末端にフリップフロップ又はメモリマクロ等の動作素子が接続される。このような構成により、クロックツリー構造は、クロックスキューを低減できる。
【0007】
通常のクロックツリー構造よりもクロックスキューを低減するクロックツリー構造として、Hツリー構造が知られている(例えば、非特許文献1参照)。Hツリー構造とは、駆動素子間の配線として、H形状の配線を有する構造である。Hツリー構造は、中央部のH形状の配線を中心として次第に小さくなるH形状の配線が組み合わせられたツリー構造である。具体的には、Hツリー構造では、中央部のH形状の配線の中心にクロック発生回路からのクロック信号が印加される。中央部のH形状の4つ末端には、それぞれ駆動素子が接続される。当該駆動素子のそれぞれの出力は、次段のH形状の配線の中心に接続される。さらに、当該H形状の配線の4つの末端には、それぞれ駆動素子が接続される。すなわち、Hツリー構造は、1つの直線回路の末端を次段の直線回路の中央に位置させて回路を分岐することで、クロックスキューが発生しないようにしている。
【0008】
しかしながら、Hツリー構造には、実際には不要な位置に駆動素子を配置する必要があるという課題がある。これに対して、クロック供給回路の一部のみにHツリー構造を使用する方法が知られている(例えば、特許文献1参照)。
【0009】
図7は特許文献1記載の従来のクロック供給回路の構成を示す図である。図7に示すクロック供給回路100は、クロックツリー構造を構成する複数の駆動素子101〜104を備える。駆動素子101はクロックツリー構造の1段目の駆動素子であり、クロック信号が印加される。駆動素子102〜104は、それぞれクロックツリー構造の2段目〜4段目の駆動素子である。
【0010】
図7に示すクロック供給回路100は、クロックツリー構造の1段目及び2段目をHツリー構造で構成し、3段目及び4段目を通常のクロックツリーで構成している。これにより、クロック供給回路100は、Hツリー構造が上位の段のみであるため、少なくとも下位の段ではHツリー構造を実現するために必要となる、不要な位置への駆動素子の配置を行う必要がない。また、クロック供給回路100は、上位段にHツリー構造を使用しているので、通常のクロックツリー構造を使用する場合よりもクロックスキューを抑制できる。
【非特許文献1】Kerry Bernstein、他6名著、“HIGH SPEES CMOS DESIGN STYLES”
【特許文献1】特開2003−78014号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
しかしながら、多層配線を有するクロック供給回路を製造する場合には、各配線層の配線は、配線層ごとに異なる条件(例えば、配線層の厚さ、配線の幅及び間隔など)で製造される。このため、配線の出来具合(例えば、ばらつきの大きさや傾向など)は配線層ごとに異なる。よって、配線容量Cwのばらつきの大きさ及び傾向も配線層ごとに異なる。ところが、従来のクロックツリー構造では、クロック配線にどの配線層を用いるかを考慮することなく、複数の配線層を用いて配線を行うことになる。これにより、Hツリー構造を用いることで配線長が等しくなっても、上式(1)に含まれる項Δt×Cwが配線間で異なることがある。このため、クロック経路間でクロック信号の遅延時間に差が生じ、クロックスキューが発生することがある。すなわち、従来のクロック供給回路は、各配線層の配線の出来具合に起因するクロックスキューが発生するという問題がある。
【0012】
各配線層の配線の出来具合に起因するクロックスキューを抑制するためには、クロック配線に使用する配線層の種類を少なくし、クロック経路間の配線容量の差を削減することが有効である。しかしながら、クロック配線に使用する配線層を下位配線層のみに限定すると、マクロ上にクロック配線を通すことができないために迂回配線が発生する。これにより、配線混雑が発生する。
【0013】
また、クロック配線に上位配線層のみを使用することで、マクロ上にクロック配線を通すことができる。よって、クロック配線層の種類を削減できる。しかしながら、クロック配線に上位配線層のみを用いる場合、通常下位層に存在する駆動素子及び動作素子の端子から、上位配線層までを接続する必要があるため、クロック配線に下位配線層のみを使用する場合に比べて、クロックの配線リソースが増え、配線混雑が発生することがある。
【0014】
そこで本発明は、配線混雑を抑制しつつ、各配線層の配線の出来具合に起因するクロックスキューを抑制できるクロック供給回路及びその設計方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上記目的を達成するために、本発明に係るクロック供給回路は、クロックツリー構造を有し、クロック信号を複数の動作素子に供給するクロック供給回路であって、前記クロックツリー構造を構成する複数の駆動素子と、前段の駆動素子の出力と次段の複数の駆動素子又は動作素子とをそれぞれ接続する複数の接続配線とを備え、前記複数の接続配線は、基準配線層で形成される複数の第1配線と、前記基準配線層を使用する回路ブロック上に存在する1つ以上の第2配線とを含み、前記回路ブロック上に存在する1つ以上の第2配線は、前記基準配線層より上層の所定の配線層で形成される。
【0016】
この構成によれば、基準配線層を用いる回路ブロック上に配置される第2配線のみに基準配線層以外の配線層が用いられ、他の配線は基準配線層で形成される。これにより、多くのクロック配線は、基準配線層で形成されるので、製造ばらつきにより配線層ごとの配線の出来具合が異なることにより発生するクロックスキューを抑制できる。また、駆動素子と次段の駆動素子又は動作素子との間に基準配線層を使用する回路ブロックが配置される場合には、配線の迂回を行わず当該回路ブロック上に第2配線を配置する。よって、本発明に係るクロック供給回路は、配線の迂回を行う必要がないので、配線混雑を抑制できる。
【0017】
また、前記クロックツリー構造において前記第2配線が存在する段と同じ段の全ての前記接続配線は、少なくとも一部分が前記所定の配線層で形成されてもよい。
【0018】
この構成によれば、基準配線層を使用する回路ブロック上にクロック配線が存在する段と、同じ段の全ての配線に対して基準配線層より上層の配線層を使用する。これにより、クロックツリー構造のうち、全動作素子に対して、所定の配線層によって発生する製造ばらつきが等しく影響するため、クロックツリー構造の各段における配線の出来具合による配線遅延のばらつきを低減できる。よって、本発明に係るクロック供給回路は、各配線層の配線の出来具合に起因するクロックスキューを抑制できる。
【0019】
また、前記第2配線は、前記クロックツリー構造の真ん中の段より後段の接続配線であってもよい。
【0020】
この構成によれば、クロックツリー構造の末端の配線ほど配線長が短くなる傾向にあるので、基準配線層以外の配線層で形成される配線の配線長を短くできる。これにより、本発明に係るクロック供給回路は、配線の出来具合による配線遅延のばらつきを低減できる。よって、各配線層の配線の出来具合に起因するクロックスキューを抑制できる。
【0021】
また、前記所定の配線層の膜厚は、前記基準配線層の膜厚よりも厚くてもよい。
この構成によれば、膜厚の厚い配線層は配線の抵抗値が低いので、第2配線及び第2配線が含まれる段の接続配線の配線遅延は小さくなる。これにより、第2配線を含めたクロック系統の伝達時間を削減できる。また、一般的に膜厚の厚い配線層は電源等にのみ使用されるため、通常の信号配線の量が少ない。よって、第2配線を膜厚の厚い配線で形成することで、配線混雑を低減できる。
【0022】
また、前記クロックツリー構造の初段の駆動素子から前記複数の動作素子に至る前記駆動素子の段数はそれぞれ等しく、前記クロックツリー構造における同じ段の前段の駆動素子から次段の駆動素子又は動作素子に至る経路の接続配線の配線長は略等しく、前記クロックツリー構造における同じ段の駆動素子の駆動能力は略等しくてもよい。
【0023】
この構成によれば、クロックスキューが抑制されたクロックツリー構造において、配線混雑を抑制しつつ、各配線層の配線の出来具合に起因するクロックスキューを抑制できる。
【0024】
また、入力されたクロック信号を複数の動作素子に供給するクロックツリー構造のクロック供給回路の設計方法であって、前記クロックツリー構造を構成する複数の駆動素子を接続する接続配線が、基準配線層を使用する回路ブロック上に配置される場合に、該接続配線を前記基準配線層より上層の配線層で形成し、前記接続配線が前記基準配線層を使用する回路ブロック上に配置されない場合に、該接続配線を前記基準配線層で形成してもよい。
【0025】
これによれば、基準配線層を用いる回路ブロック上に配置される接続配線のみに基準配線層以外の配線層が用いられ、他の配線は基準配線層で形成される。これにより、多くのクロック配線は、基準配線層で形成されるので、製造ばらつきにより配線層ごとの配線の出来具合が異なることにより発生するクロックスキューを抑制できる。また、駆動素子と次段の駆動素子又は動作素子との間に基準配線層を使用する回路ブロックが配置される場合には、配線の迂回を行わず当該回路ブロック上に基準配線層より上層の配線層で形成される接続配線を配置する。よって、配線の迂回を行う必要がないので、配線混雑を抑制できる。
【0026】
なお、本発明は、このようなクロック供給回路及びクロック供給回路の設計方法として実現できるだけでなく、クロック供給回路の設計方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【0027】
本発明は、配線混雑を抑制しつつ、各配線層の配線の出来具合に起因するクロックスキューを抑制できるクロック供給回路及びその設計方法を提供できる。
【発明を実施するための最良の形態】
【0028】
以下、本発明に係るクロック供給回路の実施の形態について、図面を参照しながら詳細に説明する。
【0029】
(第1の実施形態)
本発明の第1の実施形態に係るクロック供給回路では、クロックツリーを構成する複数のクロック配線のうち、基準配線層を使用するマクロ上に配置されるクロック配線は基準配線層より上層の配線層で形成され、それ以外のクロック配線層は基準配線層で形成される。これにより、迂回配線の発生を防止するとともに、各層の配線の各配線層の出来具合に起因するクロックスキューを低減できる。
【0030】
図1は、本発明の第1の実施形態に係るクロック供給回路の構成を模式的に示す図である。
【0031】
図1に示すクロック供給回路200は、クロックツリー構造を有し、入力されたクロック信号を複数の動作素子216〜223に供給する。クロック供給回路200は、半導体集積回路に含まれる回路である。クロック供給回路200は、複数の駆動素子201〜215と、複数の配線224〜238とを備える。
【0032】
複数の駆動素子201〜215は、クロックツリー構造を構成する。駆動素子201は、クロックツリーの1段目の駆動素子であり、外部のクロック発生回路等から供給されるクロック信号を駆動する。
【0033】
駆動素子202及び203はクロックツリーの2段目の駆動素子であり、駆動素子201により駆動されたクロック信号を駆動する。
【0034】
駆動素子204〜207はクロックツリーの3段目の駆動素子である。駆動素子204及び205は、駆動素子202により駆動されたクロック信号を駆動する。駆動素子206及び207は、駆動素子203により駆動されたクロック信号を駆動する。
【0035】
駆動素子208〜215は、クロックツリーの4段目の駆動素子である。駆動素子208及び209は、駆動素子204により駆動されたクロック信号を駆動する。駆動素子210及び211は、駆動素子205により駆動されたクロック信号を駆動する。駆動素子212及び213は、駆動素子206により駆動されたクロック信号を駆動する。駆動素子214及び215は、駆動素子207により駆動されたクロック信号を駆動する。
【0036】
また、クロックツリー構造における同じ段の駆動素子の駆動能力は等しい。すなわち、駆動素子202及び203の駆動能力は等しく、駆動素子204〜207の駆動能力は等しく、駆動素子208〜215の駆動能力は等しい。
【0037】
動作素子216〜223には、駆動素子208〜215によりそれぞれ駆動されたクロック信号が供給される。動作素子216〜223は、FF(フリップフロップ)又はメモリマクロ等である。
【0038】
複数の配線224〜238は、クロックツリー構造の前段の駆動素子の出力と、次段の複数の駆動素子の入力又は動作素子のクロック入力とをそれぞれ接続する配線である。
【0039】
配線224は、駆動素子201の出力と、駆動素子202及び203の入力とを接続する。配線225は、駆動素子202の出力と、駆動素子204及び205の出力とを接続する。配線226は、駆動素子203の出力と、駆動素子206及び207の入力とを接続する。配線227は、駆動素子204の出力と、駆動素子208及び209の入力とを接続する。配線228は、駆動素子205の出力と、駆動素子210及び211の入力とを接続する。配線229は、駆動素子206の出力と、駆動素子212及び213の入力とを接続する。配線230は、駆動素子207の出力と、駆動素子214及び215の入力とを接続する。配線231〜238は、駆動素子208〜215の出力と、動作素子216〜223のクロック入力とをそれぞれ接続する。
【0040】
配線224〜237は、基準配線層で形成される。本実施の形態では、基準配線層を第3配線層とする。基準配線層とは、特別な条件が無い限り、クロック配線に用いられる配線層である。なお、基準配線層は、第3配線層以外の配線層であってもよい。また、基準配線層をレイアウトのX方向及びY方向それぞれに対して定めてもよい。例えば、X方向の配線には、基準配線層として第3配線層を用い、Y方向の配線には、基準配線層として第4配線層を用いてもよい。ここでは説明を簡単にするために、基準配線層は第3配線層のみにしている。例えば、配線224〜237の全ての配線領域は、基準配線層で形成される。
【0041】
配線238は、基準配線層より上層の配線層で形成される。例えば、配線238は、第4配線層で形成される。また、配線238は、マクロ239上に存在する。なお、配線238は、全ての領域において第4配線層で形成されてもよいし、マクロ239の近傍上のみ第4配線層で形成し、他の部分は基準配線層で形成してよい。すなわち、配線238は、マクロ239上の配線が基準配線層より上層の配線層で形成されればよい。なお、マクロ239の近傍上のみ第4配線層で形成することで、基準配線層以外の配線層で形成される配線領域が減少するので、各配線層の出来具合に起因する配線遅延のばらつきをより低減することができる。
【0042】
また、クロックツリー構造における同じ段の、前段の駆動素子から次段の駆動素子又は動作素子に至る経路の配線の配線長は等しい。すなわち、駆動素子201の出力から駆動素子202及び203の入力までの経路の配線224の配線長は等しい。駆動素子202の出力から駆動素子204及び205の入力までの経路の配線225の配線長と、駆動素子203の出力から駆動素子206及び207の入力までの経路の配線226の配線長とはそれぞれ等しい。駆動素子204の出力から駆動素子208及び209の入力までの経路の配線227の配線長と、駆動素子205の出力から駆動素子210及び211の入力までの経路の配線228の配線長と、駆動素子206の出力から駆動素子212及び213の入力までの経路の配線229の配線長と、駆動素子207の出力から駆動素子214及び215の入力までの経路の配線230の配線長とはそれぞれ等しい。配線231〜238の配線長はそれぞれ等しい。
【0043】
また、クロックツリー構造の初段の駆動素子201から複数の動作素子216〜223に至る駆動素子の段数はそれぞれ4段であり、等しい。
【0044】
マクロ239は、所定の機能を有する回路ブロックであり、第3配線層を使用するマクロである。マクロ239は、駆動素子215と動作素子223との間に配置される。
【0045】
なお、駆動素子201〜215の入力端子及び出力端子と、動作素子216〜223のクロック入力端子は、基準配線層を用いて形成されているとする。すなわち、配線224〜238は、駆動素子201〜215及び動作素子216〜223に用いられる下層の配線層と基準配線層と接続するビアコンタクト等を含まない。
【0046】
以上のように、本発明の第1の実施形態に係るクロック供給回路200では、クロックツリーの各段の間、及び最終段の駆動素子208〜215と動作素子216〜223とを接続する配線224〜238のうち、基準配線層である第3配線層を使用するマクロが配線下に配置されない配線224〜237は、基準配線層で形成される。また、基準配線層である第3配線層を使用するマクロ239が配線下に配置される配線238は、基準配線層より上層の第4配線層で形成される。
【0047】
これにより、接続配線224〜238のうち多く(例えば、半分以上、好ましくは90%以上)の接続配線が基準配線層で形成されるので、駆動素子201の入力から動作素子216〜223への各経路における配線の各配線層の配線の出来具合に起因する遅延量の差を低減できる。よって、本発明に係るクロック供給回路200は、クロックスキューを低減できる。
【0048】
また、本発明の第1の実施形態に係るクロック供給回路200においては、間に基準配線層を使用するマクロ239が配置される駆動素子215と動作素子223とを接続する配線238に基準配線層より上層の配線層が使用される。これにより、マクロ239上に配線238を配置することができるので、迂回配線の発生を防止できる。
【0049】
次に、第4配線層を使用することで発生する各配線層の出来具合に起因する遅延量のばらつきの具体例を説明する。
【0050】
配線238に第4配線層を使用することで発生する、各配線層の出来具合に起因する遅延量のばらつきは、駆動素子201から動作素子223までの経路(以下、パスAと呼ぶ)の遅延量(以下、パスA遅延量と呼ぶ)に対する、駆動素子215の遅延量と配線238の遅延量との和(以下、パスB遅延量と呼ぶ)の割合から求めることができる。
【0051】
例えば、パスA遅延量=1nsとし、パスB遅延量=0.2nsとした場合、パスB遅延量が占めるパスAの全体の遅延量に対する割合は20%となる。よって、パスA遅延量に対する第4配線層のばらつきの影響は、全体のクロック遅延量の20%の部分に対して効くということになる。この場合、この20%に対して、配線構造の出来具合の違いによる影響度を加味すれば、考慮すべきタイミングマージンの値が明確になる。
【0052】
仮に、一層あたり5%の出来具合のばらつきがあるとすれば、考慮すべきタイミングマージンの値は、
パスA遅延量×20(%)×5(%)=パスA遅延値×1(%)=10ps
となる。すなわち、動作素子223との間でデータの受け渡しを行う動作素子へのタイミング制約に、0.01nsのマージンを与えれば、クロック配線の出来具合によるクロックスキューに対して、十分なタイミングマージンを確保できる。
【0053】
厳密には、上記の場合の一層当たりの出来具合のばらつきの値は、使用する第4配線層の長さなどによっても変化するので一意には決められないが、ここでは説明を簡単にするために、基準配線層と異なる配線層を一層使用するごとに、5%のばらつきが発生すると仮定している。
【0054】
次に、本発明の第1の実施形態に係るクロック供給回路200の設計方法を説明する。
図2は、クロック供給回路200のレイアウト設計の流れを示すフローチャートである。
【0055】
まず、論理合成等により生成されたネットリストに基づき、動作素子216〜223、及び、動作素子216〜223で用いられるクロックを生成するクロック発生回路を含む複数のマクロの配置を行う(S101)。次に、当該ネットリストに基づき、クロックツリーを生成する(S102)。すなわち、クロック発生回路と、動作素子216〜223との配置関係から、クロック発生回路から各動作素子216〜223への段数及び配線長が等しくなるように駆動素子201〜215及び配線224〜238が形成される。
【0056】
次に、各配線224〜238が、基準配線層を使用するマクロ上に形成されているか否かが判定される(S103)。基準配線層を使用するマクロ上に配線が形成されている場合(S103でYes)、当該配線を基準配線層より上層の配線層に決定する(S104)。また、基準配線層を使用するマクロ上に配線が形成されていない場合(S103でNo)。当該配線を基準配線層に決定する(S105)。
【0057】
以上により、図1に示すようなクロック供給回路200のレイアウトが作成される。
なお、上述したクロック供給回路200の設計方法は、汎用のコンピュータシステムを用いてCAD(Computer Aided Design)による設計を行う際に用いられる。例えば、図2に示す処理は、プロセッサ及びメモリを備える汎用のコンピュータシステムにインストールされたプログラムにより実現される。なお、当該プログラムは、磁気ディスク及びCD−ROM等の記録媒体に格納されてもよい。また、図2に示す処理の一部又は全部を専用のハードウェア回路により実現してもよい。また、図2に示す処理の一部又は全部を設計者が行ってもよい。
【0058】
以上より、本発明の第1の実施形態に係るクロック供給回路200は、一部の駆動素子の出力配線のみに限定して、基準配線層よりも上層の配線層を用いる。よって、大部分のクロック配線は、基準配線層で形成されるので、各配線層の出来具合に起因する配線遅延のばらつきを低減することができる。よって、本発明の第1の実施形態に係るクロック供給回路200は、各配線層の出来具合に起因するクロックスキューを抑制できる。
【0059】
また、本発明の第1の実施形態に係るクロック供給回路200は、基準配線層を使用するマクロ上に配置する必要があるクロック配線に対しては基準配線層より上層の配線層を使用する。これにより、本発明の第1の実施形態に係るクロック供給回路200は、クロック配線の迂回を行う必要がないので、配線混雑を抑制できる。
【0060】
以上、本発明の実施の形態に係るクロック供給回路200について説明したが、本発明は、この実施の形態に限定されるものではない。
【0061】
例えば、図1において、マクロ239が第3配線層までを使用しているマクロとしたが、基準配線層よりも上層の配線層を使用しているマクロであればどの配線層を使用してもよい。例えば、マクロ239が第4配線層を使用している場合には、配線238は第5配線層で形成される。
【0062】
また、図1において、クロックツリー構成の最終段の配線238下にマクロ239が配置され、配線238のみが基準配線層より上層の配線層で形成されているが、配線224〜238のうちいずれかの配線の下にマクロ239が配置される場合に、当該配線を基準配線層より上層の配線層で形成すればよい。さらに、複数の配線の下にそれぞれ基準配線層を使用するマクロが配置される場合には、当該複数の配線層を基準配線層より上層の配線層で形成すればよい。
【0063】
また、図1に示すクロックツリーは等長、等段構成であるが、本発明の効果を得るためには、等長、等段構成でなくてもよい。また、各段の駆動素子の駆動能力は異なってもよい。
【0064】
また、Hツリー構造のクロック供給回路に本発明を適用してもよい。
また、上記説明において、配線224〜237の配線全てが基準配線層で形成されるとしたが、配線224〜237の一部に他の配線層が用いられてもよい。例えば、駆動素子の入力端子及び出力端子、又は動作素子のクロック入力端子が基準配線層よりも下層の配線層で形成される場合、駆動素子の入力端子及び出力端子、又は動作素子のクロック入力端子とクロック配線に用いられる基準配線層とを接続する配線層が必要となる。よって、配線224〜237の配線領域のうち実質的に配線に用いられる配線領域が基準配線層で形成されればよい。例えば、配線224〜237の配線領域のうち、90%以上の領域が基準配線層で形成されることが望ましい。なお、駆動素子の入力端子及び出力端子、又は動作素子のクロック入力端子が基準配線層よりも下層の配線層で形成される場合においては、全ての端子ともほぼ同じ条件なので、各配線層の出来具合に起因する遅延量のばらつきの影響は無視できる。
【0065】
また、基準配線層を配線のX方向、Y方向で別々に定める場合も同様である。X方向の基準配線層と、Y方向の基準配線層を足し合わせた配線を基準配線層として、上記説明と同様に扱えばよい。またX方向の基準配線層と、Y方向の基準配線層とを接続するビアコンタクトが必要であるが、クロックツリー構造のほぼ全系統にこのビアコンタクトが形成され、また全てのクロック配線ともほぼ同じ条件なので、基準配線層同士のビアコンタクトの出来具合に起因する遅延量のばらつきの影響は無視できる。
【0066】
(第2の実施形態)
本発明の第2の実施形態に係るクロック供給回路は、基準配線層より上層の配線層が使用される段と同じ段の全てのクロック配線に基準配線層より上層の配線層を使用する。これにより、各配線層の出来具合に起因するクロックスキューの発生を低減できる。
【0067】
図3は、本発明の第2の実施形態に係るクロック供給回路の構成を模式的に示す図である。
【0068】
図3に示すクロック供給回路300は、クロックツリー構造を有し、入力されたクロック信号を複数の動作素子318〜325に供給する。クロック供給回路300は、半導体集積回路に含まれる回路である。クロック供給回路300は、複数の駆動素子301〜317と、配線326〜342とを備える。
【0069】
複数の駆動素子301〜317は、クロックツリー構造を構成する。駆動素子301は、クロックツリーの1段目の駆動素子であり、外部のクロック発生回路等から供給されるクロック信号を駆動する。駆動素子302及び303はクロックツリーの2段目の駆動素子であり、駆動素子301により駆動されたクロック信号を駆動する。
【0070】
駆動素子304〜307はクロックツリーの3段目の駆動素子である。駆動素子304及び305は、駆動素子302により駆動されたクロック信号を駆動する。駆動素子306及び307は、駆動素子303により駆動されたクロック信号を駆動する。
【0071】
駆動素子308〜315は、クロックツリーの4段目の駆動素子である。駆動素子308及び309は、駆動素子304により駆動されたクロック信号を駆動する。駆動素子310及び311は、駆動素子305により駆動されたクロック信号を駆動する。駆動素子312及び313は、駆動素子306により駆動されたクロック信号を駆動する。駆動素子314及び315は、駆動素子307により駆動されたクロック信号を駆動する。駆動素子316は、駆動素子308により駆動されたクロック信号を駆動する。駆動素子317は、駆動素子314により駆動されたクロック信号を駆動する。
【0072】
動作素子318〜325には、駆動素子316、309〜313、317及び315により駆動されたクロック信号が供給される。動作素子318〜325は、FF又はメモリマクロ等である。
【0073】
複数の配線326〜342は、クロックツリー構造の前段の駆動素子の出力と、次段の複数の駆動素子の入力又は動作素子のクロック入力とをそれぞれ接続する配線である。
【0074】
配線326は、駆動素子301の出力と、駆動素子302及び303の入力とを接続する。配線327は、駆動素子302の出力と、駆動素子304及び305の入力とを接続する。配線328は、駆動素子303の出力と、駆動素子306及び307の入力とを接続する。配線329は、駆動素子304の出力と、駆動素子308及び309の入力とを接続する。配線330は、駆動素子305の出力と、駆動素子310及び311の入力とを接続する。配線331は、駆動素子306の出力と、駆動素子312及び313の入力とを接続する。配線332は、駆動素子307の出力と、駆動素子314及び315の入力とを接続する。配線334〜338及び340は、駆動素子309〜313及び315の出力と、動作素子319〜323及び325のクロック入力とをそれぞれ接続する。配線333及び339は、駆動素子308及び314の出力と、駆動素子316及び317の入力とをそれぞれ接続する。配線341及び342は、駆動素子316及び317の出力と、動作素子318及び324のクロック入力とをそれぞれ接続する。
【0075】
配線326及び329〜342は、基準配線層で形成される。本実施の形態では、基準配線層を第3配線層とする。なお、基準配線層は、第3層以外の配線層であってもよい。また、X方向及びY方向それぞれに対して基準配線層を定めてもよい。ここでは説明を簡単にするために、基準配線層は第3配線層のみにしている。例えば、配線326及び329〜342の全ての配線領域は、基準配線層で形成される。
【0076】
配線327及び328は、基準配線層よりも上層の配線層で形成される。例えば、配線327及び328は、第4配線層で形成される。また、配線327は、マクロ343上に配置される。なお、配線327は、全ての領域において第4配線層で形成されてもよいし、マクロ343の近傍上のみ第4配線層で形成し、他の部分は基準配線層で形成してよい。また、配線328は、配線327の第4配線層で形成される配線長と略等しい配線長が第4配線層で形成される。言い換えると、配線328は、配線327の基準配線層で形成される領域の配線長と略等しい配線長の領域が基準配線層で形成される。
【0077】
また、配線327の駆動素子302から駆動素子304に至る経路と、駆動素子302から駆動素子305に至る経路とで第4配線層で形成される領域の配線長を等しくすることで、より配線遅延のばらつきを低減することができる。同様に、配線328の駆動素子303から駆動素子306に至る経路と、駆動素子303から駆動素子307に至る経路とで第4配線層で形成される領域の配線長を等しくすることで、より配線遅延のばらつきを低減することができる。
【0078】
マクロ343は、所定の機能を有する回路ブロックであり、第3配線層を使用するマクロである。マクロ343は、駆動素子302と、駆動素子304及び305との間に配置される。
【0079】
以上のように、マクロ343上に配置される配線327と、配線327と同じ段の配線328は基準配線層より上層の配線層で形成される。また、同じ段に基準配線層を使用するマクロ上に配置される配線が存在しない場合には、当該段に含まれる全ての配線は、基準配線層で形成される。すなわち、本発明の第2の実施形態に係るクロック供給回路300では、クロックツリー構造における同じ段のクロック配線は、全て、基準配線層で形成される配線、又は全て、基準配線層より上層の配線層で形成される配線である。
【0080】
なお、駆動素子301〜317の入力端子及び出力端子、及び動作素子318〜325のクロック入力端子は、基準配線層を用いて形成されているとする。すなわち、配線326〜342は、駆動素子301〜317及び動作素子318〜325に用いられる下層の配線層と基準配線層と接続するビアコンタクト等を含まない。
【0081】
以上の構成により、本発明の第2の実施形態に係るクロック供給回路300は、基準配線層を使用するマクロ343上に配置される配線327と、配線327とクロックツリーの同じ段に配置される配線328とを基準配線層より上層の配線層で形成する。これにより、クロックツリーの同段の配線に使用される配線層が等しくなる。よって、配線の出来具合によって発生するクロックスキューの影響を小さくできる。
【0082】
次に、本発明の第2の実施形態に係るクロック供給回路300の設計方法を説明する。なお、上述した図2のステップS101〜S103及びS105の処理は同様であり、説明は省略する。
【0083】
クロック供給回路300の設計方法では、基準配線層を使用するマクロ上に配線が配置されている場合(S103でYes)、当該配線及び当該配線とクロックツリーの同段の配線を基準配線層より上層の配線層に決定する。以上により、図3に示すようなクロック供給回路300のレイアウトが作成される。
【0084】
以上、本発明の第2の実施形態に係るクロック供給回路300は、上述した第1の実施形態に係るクロック供給回路200と同様に、配線混雑を抑制しつつ、各配線層の出来具合によって発生するクロックスキューを抑制できる。
【0085】
さらに、本発明の第2の実施形態に係るクロック供給回路300は、基準配線層を使用するマクロ上に配置する必要があるクロック配線と同じ段の全てのクロック配線に対して基準配線層より上層の配線層を使用する。これにより、クロックツリー構造の各段における配線の出来具合によるばらつきがなくなる。よって、本発明の第2の実施形態に係るクロック供給回路300は、各配線層の配線の出来具合に起因するクロックスキューをさらに抑制できる。
【0086】
なお、図3において、マクロ343が第3配線層までを使用しているマクロとしたが、基準配線層よりも上層の配線層を使用しているマクロであればどの配線層を使用してもよい。
【0087】
また、図3において、クロックツリーの2段目の配線327下にマクロ343が配置され、2段目の配線327及び328が基準配線層より上層の配線層で形成されているが、配線326〜342のうちいずれかの配線の下にマクロ343が配置される場合に、当該配線と同じ段の全ての配線を基準配線層より上層の配線層で形成すればよい。
【0088】
また、図3において、クロックツリーは等長及び等段構成ではないが、等長及び等段構成であってもよい。
【0089】
また、Hツリー構造のクロック供給回路に本発明を適用してもよい。
また、上記説明において、配線326及び329〜342の配線領域の全てが基準配線層で形成されるとしたが、第1の実施形態で述べた理由と同様の理由により、配線326及び329〜342の配線領域の一部に他の配線層が用いられてもよい。また、基準配線層を配線のX方向、及びY方向それぞれに対して別々に定めてもよい。
【0090】
(第3の実施形態)
本発明の第3の実施形態に係るクロック供給回路は、クロックツリーの後段のクロック配線に基準配線層より上層の配線層を用いる。これにより、基準配線層より上層の配線層が用いられる配線長を短くできるので、各配線層の出来具合に起因するクロックスキューを低減できる。
【0091】
図4は、本発明の第3の実施形態に係るクロック供給回路の構成を模式的に示す図である。
【0092】
図4に示すクロック供給回路400は、Hツリー構造のクロック供給回路である。クロック供給回路400は、複数の駆動素子401〜404と、配線405〜407とを備える。
【0093】
駆動素子401は、クロックツリーの1段目の駆動素子であり、外部からクロック信号を駆動する。複数の駆動素子402はクロックツリーの2段目の駆動素子であり、駆動素子401により駆動されたクロック信号を駆動する。複数の駆動素子403はクロックツリーの3段目の駆動素子であり、複数の駆動素子402により駆動されたクロック信号を駆動する。複数の駆動素子404はクロックツリーの4段目の駆動素子であり、複数の駆動素子403により駆動されたクロック信号を駆動する。複数の駆動素子404により駆動されたクロック信号は、それぞれ複数の動作素子(図示せず)に供給される。
【0094】
配線405は、クロックツリーの1段目の駆動素子401の出力と、2段目の複数の駆動素子402の入力とを接続する。配線406は、クロックツリーの2段目の複数の駆動素子402の出力と、3段目の複数の駆動素子403の入力とを接続する。配線407は、クロックツリーの3段目の複数の駆動素子403の出力と、4段目の複数の駆動素子404の入力とを接続する。なお、図4に示す配線407aは、4段目の複数の配線407に含まれる配線である。
【0095】
配線405及び406は、基準配線層で形成される。また、配線407a以外の複数の配線407は、基準配線装置で形成される。本実施の形態では、基準配線層を第3配線層とする。なお、基準配線層は、第3層以外の配線層であってもよい。また、基準配線層を配線のX方向及びY方向それぞれに対して別々に定めてもよい。
【0096】
配線407aは、基準配線層よりも上層の配線層で形成される。例えば、配線407aは、第4配線層で形成される。なお、配線407aは、全ての領域において第4配線層で形成されてもよいし、マクロ408の近傍上のみ第4配線層で形成し、他の部分は基準配線層で形成してよい。
【0097】
マクロ408は、所定の機能を有する回路ブロックであり、第3配線層を使用するマクロである。マクロ408は、配線407a下に配置される。
【0098】
ここで、図4に示すように、Hツリー構造において、クロックツリーの何段目かにより配線長が異なる。具体的には、クロックツリー構造が少数の駆動素子を起点にし、多数の動作素子までをツリー状に構成するために、後段の配線ほど配線長が短くなる。すなわち、配線407の配線長は配線406の配線長より短く、配線405の配線長は配線406の配線長より短い。
【0099】
配線長が短ければ、配線容量も少ないため、上式(1)より、Δt×Cwも小さい。すなわち、配線長の短いクロックツリー末端の段の配線に基準配線層よりも上層の配線層を使用することで、クロック系統全体に対するばらつきによる影響を小さくできる。これにより、配線の出来具合によって発生するクロックスキューを低減できる。
【0100】
以上、本発明の第3の実施形態に係るクロック供給回路400は、上述した第1の実施形態に係るクロック供給回路200と同様の効果を得ることができる。さらに、クロック供給回路400は、基準配線層よりも上層を使用する配線を、クロックツリー構造の末端の配線にすることで配線の出来具合によって発生するクロックスキューをさらに低減できる。
【0101】
なお、上記説明において、マクロ408が配置は3段目の配線下に配置されているが、4段目の配線(駆動素子404と動作素子とを接続する配線)下に配置されてもよい。
【0102】
また、クロックツリーの段数は、4段に限定されるものではない。また、クロックツリーの真ん中の段より後段の配線に基準配線層より上層の配線層を用いることで、上述したクロックスキューの発生量を削減する効果を得ることができる。例えば、クロックツリーが6段で構成される場合には4段目以降の段に基準配線層より上層の配線層を用いればよい。なお、より端末に近い側の段の配線に基準配線層より上層の配線層を用いることで、より高い効果を得ることができる。
【0103】
また、図4ではHツリー構造のクロック供給回路を一例として示したが、Hツリー構造以外のクロックツリー構造であってもよい。Hツリー構造以外のクロックツリー構造においても、クロックツリーの末端の配線ほど配線長が短くなる傾向にある。よって、上述したクロックスキューを低減する効果を得ることができる。
【0104】
(第4の実施形態)
本発明の第4の実施形態に係るクロック供給回路は、基準配線層を使用するマクロ上に配置されるクロック配線を、基準配線層より上層であり、かつ基準配線層よりも膜厚が厚い配線層で形成する。これにより、各配線層の出来具合に起因するクロックスキューを低減できる。
【0105】
図5は、本発明の第4の実施形態に係るクロック供給回路の基準配線層より上層の配線層を用いる配線の構成を示す図である。なお、本発明の第4の実施形態に係るクロック供給回路の概略構成は、例えば、図1と同様である。
【0106】
図5に示すように、配線502は、クロックツリーの最終段の駆動素子501の出力と、動作素子503のクロック入力とを接続する。マクロ504は、基準配線層を使用するマクロであり、配線502の下に配置される。
【0107】
図6は、図5のa−b面におけるクロック供給回路の構造を示す断面図である。
図6に示すように、クロック供給回路は、第1配線層601と、第1層間膜602と、第2配線層603と、第2層間膜604と、第3配線層605と、第3層間膜606と、第4配線層607と、第4層間膜608と、第5配線層609と、第5層間膜610と、第6配線層611と、第6層間膜612と、第7配線層613とを備える。
【0108】
第4の実施形態において、基準配線層は第3配線層である。また、第6配線層611及び第7配線層613は、第3配線層605、第4配線層607及び第5配線層609、よりも膜厚が厚い。
【0109】
また、マクロ504は、第4配線層までの配線層を使用するマクロである。
図6に示すように、配線502は、マクロ504上及びマクロ504の近傍以外において、基準配線層である第3配線層605で形成される。配線502は、マクロ504上及びマクロ504の近傍において第6配線層611で形成される。また、マクロ504の近傍において、配線502の基準配線層の配線と第6配線層の配線とが、第4配線層607、第5配線層609、及び各配線層の層間を接続するビアコンタクトを介して接続される。
【0110】
以上より、本発明の第4の実施形態に係るクロック供給回路は、上述した第1の実施形態に係るクロック供給回路200と同様の効果を得ることができる。
【0111】
さらに、第4の実施形態に係るクロック供給回路は、基準配線層を用いるマクロ504上に配置される配線502に、基準配線層よりも膜厚が厚い第6配線層611を使用する。ここで、膜厚の厚い配線層は配線の抵抗値が低いため、クロックの伝播時間を削減しやすい。これにより、配線502の遅延量を低減できるので、異なる配線層を使用することで発生する遅延量のばらつきを相対的に低減できる。よって、第4の実施形態に係るクロック供給回路は、各配線層の出来具合に起因するクロックスキューをさらに減少できる。
【0112】
また、一般的に膜厚の厚い配線層は電源等にのみ使用されるため、通常の信号配線の量が少ない。よって、膜厚の厚い配線層を用いることで、配線混雑を低減できる。また、下層の配線層の配線混雑を緩和できる。
【0113】
なお、配線502に第6配線層611を使用する場合、基準配線層である第3配線層605以外に、第4配線層607及び第5配線層609を使用することになるが、この部分は、ほぼ垂直方向に接続しているだけなので、製造ばらつきの影響はほとんど受けない。
【0114】
また、図6において、配線502に第6配線層611を使用しているが、第7配線層613を使用してもよい。
【0115】
また、図6において、クロックツリーの最終段の駆動素子501と動作素子503との間にマクロ504が配置される例を説明したが、クロックツリーのいずれかの段の駆動素子間にマクロ504が配置される場合も同様である。
【産業上の利用可能性】
【0116】
本発明は、クロック供給回路に適用でき、特に、クロックツリー構造を有するクロック供給回路に適用できる。
【図面の簡単な説明】
【0117】
【図1】本発明の第1の実施形態に係るクロック供給回路の構成を示す図である。
【図2】本発明の第1の実施形態に係るクロック供給回路のレイアウト設計の流れを示すフローチャートである。
【図3】本発明の第2の実施形態に係るクロック供給回路の構成を示す図である。
【図4】本発明の第3の実施形態に係るクロック供給回路の構成を示す図である。
【図5】本発明の第4の実施形態に係るクロック供給回路の構成を示す図である。
【図6】本発明の第4の実施形態に係るクロック供給回路の構成を示す断面図である。
【図7】従来のクロック供給回路の構成を示す図である。
【符号の説明】
【0118】
100、200、300、400 クロック供給回路
101、102、103、104、201、202、203、204、205、206、207、208、209、210、211、212、213、214、215、301、302、303、304、305、306、307、308、309、310、311、312、313、314、315、316、317、401、402、403、404、501 駆動素子
216、217、218、219、220、221、222、223、318、319、320、321、322、323、324、325、503 動作素子
224、225、226、227、228,229、230、231、232、233、234、235、236、237、238、326、327、328、329、330、331、332、333、334、335、336、337、338、339、340、341、342、405、406、407、407a、502 配線
239、343、408、504 マクロ
601 第1配線層
602 第1層間膜
603 第2配線層
604 第2層間膜
605 第3配線層
606 第3層間膜
607 第4配線層
608 第4層間膜
609 第5配線層
610 第5層間膜
611 第6配線層
612 第6層間膜
613 第7配線層

【特許請求の範囲】
【請求項1】
クロックツリー構造を有し、クロック信号を複数の動作素子に供給するクロック供給回路であって、
前記クロックツリー構造を構成する複数の駆動素子と、
前段の駆動素子の出力と次段の複数の駆動素子又は動作素子とをそれぞれ接続する複数の接続配線とを備え、
前記複数の接続配線は、
基準配線層で形成される複数の第1配線と、
前記基準配線層を使用する回路ブロック上に存在する1つ以上の第2配線とを含み、
前記回路ブロック上に存在する1つ以上の第2配線は、前記基準配線層より上層の所定の配線層で形成される
ことを特徴とするクロック供給回路。
【請求項2】
前記クロックツリー構造において前記第2配線が存在する段と同じ段の全ての前記接続配線は、少なくとも一部分が前記所定の配線層で形成される
ことを特徴とする請求項1記載のクロック供給回路。
【請求項3】
前記第2配線は、前記クロックツリー構造の真ん中の段より後段の接続配線である
ことを特徴とする請求項1記載のクロック供給回路。
【請求項4】
前記所定の配線層の膜厚は、前記基準配線層の膜厚よりも厚い
ことを特徴とする請求項1記載のクロック供給回路。
【請求項5】
前記クロックツリー構造の初段の駆動素子から前記複数の動作素子に至る前記駆動素子の段数はそれぞれ等しく、
前記クロックツリー構造における同じ段の前段の駆動素子から次段の駆動素子又は動作素子に至る経路の接続配線の配線長は略等しく、
前記クロックツリー構造における同じ段の駆動素子の駆動能力は略等しい
ことを特徴とする請求項1〜4のいずれか1項に記載のクロック供給回路。
【請求項6】
入力されたクロック信号を複数の動作素子に供給するクロックツリー構造のクロック供給回路の設計方法であって、
前記クロックツリー構造を構成する複数の駆動素子を接続する接続配線が、基準配線層を使用する回路ブロック上に配置される場合に、該接続配線を前記基準配線層より上層の配線層で形成し、
前記接続配線が前記基準配線層を使用する回路ブロック上に配置されない場合に、該接続配線を前記基準配線層で形成する
ことを特徴とするクロック供給回路の設計方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−21306(P2009−21306A)
【公開日】平成21年1月29日(2009.1.29)
【国際特許分類】
【出願番号】特願2007−181420(P2007−181420)
【出願日】平成19年7月10日(2007.7.10)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】