JP3549428B2 - 集積回路のためのクロック生成装置および生成方法 - Google Patents
集積回路のためのクロック生成装置および生成方法 Download PDFInfo
- Publication number
- JP3549428B2 JP3549428B2 JP07463899A JP7463899A JP3549428B2 JP 3549428 B2 JP3549428 B2 JP 3549428B2 JP 07463899 A JP07463899 A JP 07463899A JP 7463899 A JP7463899 A JP 7463899A JP 3549428 B2 JP3549428 B2 JP 3549428B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- cell
- clock skew
- delay
- skew
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、集積回路のためのクロック生成装置および生成方法に関する。
【0002】
【従来の技術】
半導体回路におけるツリー形式に基づくクロック分配回路では、特開平9−258840号公報に記されているように、誤動作を防ぎかつ高速動作を行わせるため、各フリップフロップのクロック信号が到達する時間をできるだけ等しくしている。すなわち、クロックスキューをできるだけ小さくするように、分配経路の調整や、クロックツリーを構成するトランジスタのサイズの調整を行っている。換言すると、近年のディジタル回路の進歩により、回路の高速化、高集積化がますます進んでいるが、回路の高速化は、クロックスキューを低減することによっても実現されている。
【0003】
図18に従来のブロックレイアウト設計装置の例を示す。ここで1801はクロックツリー生成装置、1802はセル配置装置、1803は配線装置、1804は遅延情報抽出装置、1805はクロックスキュー低減装置である。
以上のように構成された従来のブロックレイアウト設計装置によれば、クロックツリー生成装置1801で、ブロックの入力クロックに対してクロックツリーが構成され、セル配置装置1802と配線装置1803とで配置配線が行なわれる。そして、配置配線結果から遅延情報抽出装置1804で遅延情報を抽出し、クロックスキューが合っているかどうかの計算が行われる。最後に、この計算結果に基づいて、クロックスキュー低減装置1805で、クロックツリーの構成の変更や、クロックツリーを構成する各セルのドライブ能力の変更や、配線の変更等を行なうことによって、クロックスキューが低減されることになる。
【0004】
【発明が解決しようとする課題】
しかしながら、図18に示したような従来のブロックレイアウト設計装置では、クロックスキューが低減されているために、クロックが供給されるセルがクロックに対してほぼ同時に動作してしまう。このため、クロックの変化時の瞬間電流が大きくなってしまい、電源電圧降下が大きくなったり、発生ノイズが大きくなるという問題を有している。
【0005】
詳細には、従来より、半導体集積回路の回路規模の増大に伴い、回路に含まれるフリップフロップやラッチ等の、クロック信号に同期して動作する素子の数が増大し、合わせてクロックツリーを構成する素子の数が増大してきている。また、クロック周波数の向上に伴い、クロック信号をフルスイングさせるためクロックツリーを構成する各素子の波形を急峻にすることが必要となってきている。その結果、多数の素子がクロック信号に同期してほぼ同時に動作すると、クロック信号の変化時にクロックツリーに流れる瞬時電流が増加し、電圧降下や輻射ノイズの発生という問題を生じる。
【0006】
以上の従来の問題点を鑑み、本発明は、回路の動作に影響を与えずにクロック変化時の瞬間電流を小さくし、それによって電源電圧の降下やノイズの発生といった問題を抑えるようにすることを目的とする。
【0007】
【課題を解決するための手段】
この目的を達成するため本発明は、スキャンチェーンを含んだ回路に供給されるクロック信号に対してクロックツリーを形成するクロックツリー生成手段と、クロックツリーの中で各クロックセルが駆動するセルをそれぞれセルグループとして、これらのセルグループ間のチェーンの数が減少するようにスキャンチェーンの接続を変更するスキャンチェーン再構成手段と、スキャンチェーンを含んだ回路のネットリストを入力としてネットリスト中の各セルを配置するセル配置手段と、配置された各セル間を配線するセル間配線手段と、セルの配置配線結果より遅延情報を抽出する遅延情報抽出手段と、遅延情報の抽出結果にもとづいてクロックスキューを低減するクロックスキュー低減手段と、遅延情報抽出手段により抽出された遅延情報により、回路が誤動作を起こさないクロック信号の遅延範囲を計算するクロックスキュー拡大値算出手段と、このクロックスキュー拡大値算出手段により算出されたクロックスキュー拡大値の範囲内でクロックスキューを拡大するクロックスキュー拡大手段とを備えたものである。
これにより、回路の正常動作を保ちながらクロックスキューを拡大し、したがってクロック変化時の瞬間電流が小さくなり、電源電圧降下やノイズ発生を抑制することができる。また、クロックスキューを大きくした場合に誤動作しやすいスキャンチェーンによってこのクロックスキューの拡大範囲が小さく制限されることも防いでいる。
【0008】
【発明の実施の形態】
【0015】
(第1の実施の形態)
図1は、本発明の第1の実施の形態にもとづくブロックレイアウト設計装置を示す。この図1において、101はクロックツリー生成装置、102はセル配置装置、103は配線装置、104は遅延情報抽出装置、105はクロックスキュー低減装置で、ここまでの構成は上述の図18に示した従来のものと同じである。図1の装置では、さらに、クロックスキュー拡大値算出装置106と、クロックスキュー拡大装置107とを備える。
【0016】
図2は、図1のブロックレイアウト設計装置を用いて設計を行なう対象となる回路である。この図2において、201はクロック入力、202〜207はフリップフロップ、208〜213は組合せ論理回路である。フリップフロップ202〜207は同一のクロック入力201で駆動されている。
ここで、図2の回路全体は10nsec以内のサイクルで動作しなくてはならない。またフリップフロップ202〜207のセットアップ時間は1nsecである。
【0017】
以上のように構成された、本発明の第1の実施の形態にもとづくブロックレイアウト設計装置について、以下にその動作を示す。まず、図2に示す回路に対して、図1のクロックツリー生成装置101でクロックツリーを形成する。クロックツリーを生成した回路を図3に示す。図3において、301〜303はクロックツリーを構成するクロックバッファであり、クロックバッファ301はクロックバッファ302、303を駆動しており、クロックバッファ302はフリップフロップ202、204、206を駆動しており、クロックバッファ303はフリップフロップ203、205、207を駆動している。
【0018】
この図3のクロックツリーが挿入された回路に対して、次に、図1のセル配置装置102、配線装置103、遅延情報抽出装置104によって、図2に示す回路の配置配線と、配置配線後の遅延値の抽出とが行なわれる。そしてさらに、遅延情報の抽出結果にもとづいて、クロックスキュー低減装置105により各セルの駆動能力を変更することで、クロックスキューの低減が行なわれる。クロックスキュー低減まで完了した時点での回路の各素子の遅延を図4に示す。すなわち図4には、フリップフロップ202〜207の遅延値と、組合せ論理回路208〜213の遅延値と、クロックバッファ301〜303の遅延値とが示されている。
【0019】
次に、図1のクロックスキュー拡大値算出装置106によって、クロックスキューをどこまで拡大できるかを計算する。クロックバッファ302からフリップフロップ202、204、206にクロックが供給される時刻をTA、クロックバッファ303からフリップフロップ203、205、207にクロックが供給される時刻をTBとすると、上述のようにフリップフロップ202とフリップフロップ203の間が10nsec以内のサイクルで動作しなくてはならないので、
(フリップフロップ202の遅延時間)
+(組合せ論理回路208の遅延時間)
+(フリップフロップ203のセットアップ時間)
≦10nsec
+(フリップフロップ203のクロック到達時刻)
−(フリップフロップ202のクロック到達時刻)
が満たされている必要がある。したがって、
TA−TB≦2nsec
が満たされている必要がある。同様にして、フリップフロップ203、204間、フリップフロップ204、205間、フリップフロップ205、206間、フリップフロップ206、207間、フリップフロップ204、207間についても考えると、それぞれ
TB−TA≦1nsec
TA−TB≦3nsec
TB−TA≦2nsec
TA−TB≦6nsec
TA−TB≦3nsec
という関係式が満たされる必要がある。これらをまとめると、
−1nsec≦TA−TB≦2nsec
が満たされれば回路が誤動作を起こさないことが分かる。
【0020】
次に、図1のクロックスキュー拡大装置107によって、クロックバッファ302の駆動能力を調整し、このクロックバッファ302の遅延時間を3nsecとする。
【0021】
以上のように本発明の第1の実施の形態によれば、クロックスキューをどこまで拡大できるかをクロックスキュー拡大値算出装置106によって計算することで、回路の誤動作を起こさず、また回路の要求動作速度を満たしながら、クロック信号のスキューを拡大することができる。したがって、クロック変化時の瞬間電流を小さくすることができ、これによって電源電圧降下やノイズ発生を抑制することができる。
【0022】
(第2の実施の形態)
図5は、本発明の第2の実施の形態にもとづくブロックレイアウト設計装置を示す。図5において、501はクロックツリー生成装置、503はセル配置装置、504は配線装置、505は遅延情報抽出装置、506はクロックスキュー低減装置、507はクロックスキュー拡大値算出装置、508はクロックスキュー拡大装置であり、これらは図1に示したものと同じ構成である。これらに加えて、図5の装置では、クロックツリー生成装置501とセル配置装置503との間にスキャンチェーン再構成装置502が設けられ、またクロックスキュー拡大装置508に続いてスキャンチェーン動作保証装置509が設けられている。
【0023】
図6は、図5のブロックレイアウト設計装置を用いて設計を行なう対象となる回路である。この図6において、601はクロック入力、602〜607はフリップフロップ、608〜613は組合せ論理回路、614はスキャン入力、615はスキャン出力である。フリップフロップ602〜607は同一のクロック入力601で駆動されている。この図6の回路は、回路全体が10nsec以内のサイクルで動作しなくてはならない。フリップフロップ602〜607のセットアップ時間は1nsecであり、スキャン入力614のホールド時間は0nsecである。またスキャン入力614は第一段のフリップフロップ602のスキャン入力に接続され、フリップフロップ602の出力がフリップフロップ603のスキャン入力に接続され、以降フリップフロップ604、605、606、607の順番で前段のフリップフロップの出力が後段のスキャン入力に接続され、最終段のフリップフロップ607の出力がスキャン出力615に接続されることによりスキャンチェーンが構成されている。
【0024】
以上のように構成された本発明の第2の実施の形態にもとづくブロックレイアウト設計装置について、以下その動作を示す。まず、図6に示す回路に対して、クロックツリー生成装置501でクロックツリーを形成する。クロックツリーを生成した回路を図7に示す。図7において、701〜703はクロックツリーを構成するクロックバッファであり、クロックバッファ701はクロックバッファ702、703を駆動しており、クロックバッファ702はフリップフロップ602、604、606を駆動しており、クロックバッファ703はフリップフロップ603、605、607を駆動している。
【0025】
次に、このようにクロックツリーが挿入された回路に対して、図5のスキャンチェーン再構成装置502によって、スキャンチェーンの再構成を行なう。図7の回路に対してスキャンチェーンの再構成を行なった回路を図8に示す。この図8の回路では、クロックバッファ702により駆動されているフリップフロップ602、604、606と、クロックバッファ703により駆動されているフリップフロップ603、605、607とをそれぞれ一つのグループとしている。そして、各グループ内は1本のスキャンチェーンで接続し、グループ間のスキャンチェーンの配線数が少なくなるようにスキャンチェーンの再構成が行なわれている。
【0026】
次に、セル配置装置503、配線装置504、遅延情報抽出装置505によって、図8に示す回路の配置配線と、配置配線後の遅延値の抽出とが行なわれる。セル配置装置503によるセル配置時には、図9に示すように、回路のセルとは別に遅延セル901、902を配置しておく。そしてさらに、遅延情報の抽出結果にもとづき、クロックスキュー低減装置506によってクロックスキューの低減が行なわれる。図9には、クロックスキュー低減まで完了した時点での回路の各遅延値、すなわち、フリップフロップ602〜607の遅延値と、組合せ論理回路608〜613の遅延値と、クロックバッファ701〜703の遅延値とを示す。
【0027】
次にクロックスキュー拡大値算出装置507によってクロックスキューをどこまで拡大できるかを計算する。すなわち、スキャンチェーンを除く回路の誤動作が起こらないためには、上述の第1の実施の形態における場合と同様に計算を行なうと、クロックバッファ702からフリップフロップ602、604、606にクロックが供給される時刻をTA、クロックバッファ703からフリップフロップ603、605、607にクロックが供給される時刻をTBとして、
−1nsec≦TA−TB≦2nsec
を満たす必要がある。
【0028】
次にクロックスキュー拡大装置508によってクロックバッファ702の駆動能力を調整し、クロックバッファ702の遅延時間を3nsecとする。
【0029】
次に、スキャンチェーン動作保証装置509によって、スキャンチェーンにおいて誤動作が起こらないかどうかを確認する。図9においては、スキャンチェーンのうちフリップフロップ606からフリップフロップ603に接続される部分は、フリップフロップ603の必要なホールド時間0nsecに対して−1nsecしかホールド時間がないため、誤動作を起こす。そこで、遅延セル902を使用してスキャンチェーンを変更する。図10にスキャンチェーンを変更したあとの回路を示し、フリップフロップ606とフリップフロップ603との間に遅延セル902が接続されている。こうすることによりスキャンチェーンの誤動作もなくなり、回路は正常に動作することになる。
【0030】
以上のように本発明の第2の実施の形態によれば、上述の第1の実施の形態の場合と同様に、回路の誤動作を起こさず、また回路の要求動作速度を満たしながら、クロック信号のスキューを拡大することができ、クロック変化時の瞬間電流を小さくすることができ、、これによって電源電圧降下やノイズ発生を抑制することができる。また、クロックスキューを大きくした場合に誤動作しやすいスキャンチェーンの動作によって、このクロックスキューの拡大範囲が小さくされるような事態の発生をも防いでいる。
【0031】
なお、上述の第1の実施の形態では、クロックツリー生成装置101、セル配置装置102、配線装置103、遅延情報抽出装置104、クロックスキュー低減装置105、クロックスキュー拡大値算出装置106、クロックスキュー拡大装置107の順序で処理を行なうとしたが、クロックツリー生成をセル配置の後に行なうなど、これらの順番が入れ替わっても構わない。また同じ処理を複数回行なっても構わない。また、上述の本発明の第2の実施の形態でも、クロックツリー生成装置501、スキャンチェーン再構成装置502、セル配置装置503、配線装置504、遅延情報抽出装置505、クロックスキュー低減装置506、クロックスキュー拡大値算出装置507、クロックスキュー拡大装置508、スキャンチェーン動作保証装置509の順序で処理を行なうとしたが、クロックツリー生成をセル配置の後に行なうなど、これらの順番が入れ替わっても構わない。また同じ処理を複数回行なっても構わない。
【0032】
図5のクロックスキュー拡大値算出装置507では、スキャンチェーンを除く回路に誤動作が起こらない条件を計算したが、スキャンチェーン回路の一部もしくは全てを含んだ回路に対する条件を計算することによって、スキャンチェーン動作保証装置509の処理を一部もしくは全てを省略しても構わない。
また遅延セル902、903を配置しておくとしたが、このような遅延セル902、903を配置せずに、スキャンチェーンの再構成やスキャンチェーンの配線の変更等によって誤動作除去を行なってもよい。
【0033】
第1および第2の実施の形態では、いずれも2段のクロックバッファ301〜303、701〜703でツリーを構成していたが、いかなる論理のセル、いかなる段数のツリーを構成しても構わない。クロックツリー内の論理段数も一定である必要はない。
同一の大きさと同一のピン位置とを持った駆動能力の異なる複数のセルを、クロックツリーに含まれるセルとして使用することができる。
【0034】
またクロックスキュー低減装置105、506によってクロックスキューを低減するとしたが、たとえばクロックツリーを構成するセルの駆動能力をあらかじめ大きくしておくことによってクロックスキューを低減するなどの方法をとっても良い。
クロックスキュー拡大値算出装置106、507ではフリップフロップ間の遅延値のみを考慮したが、フリップフロップのホールド時間や、回路が誤動作しないためのその他の条件を計算に使用してもよい。
【0035】
クロックスキュー拡大装置107、508では、クロックバッファ301〜303、701〜703の駆動能力を調整することによりクロックスキューを拡大したが、クロック配線の変更や、クロックツリーの変更などの方法によってクロックスキューを拡大しても構わない。
【0036】
(第3の実施の形態)
図11は、本発明の第3の実施の形態にもとづくクロックツリー生成装置の構成図である。この第3の実施の形態においては、クロックを入力とする回路素子がグループ化され、各グループごとに、グループ内クロック供給回路が設けられる。またクロック供給源から前記グループ内クロック供給回路へクロックを供給するグループクロック供給回路が設けられる。
【0037】
図11において、1101はすべてのグループのクロック遅延をそろえるグループ間クロック遅延調整部であり、1102は複数のグループにまたがる信号のセットアップ時間余裕とホールドタイミング余裕を求めるグループ間タイミング評価部であり、1103は各クロックの遅延を決定するクロック遅延決定部であり、1104は、回路のレイアウト部である。また1111はクロック供給回路遅延情報、1112は1チップ実遅延情報、1113はグループ間クロック余裕分布情報である。
【0038】
図12はクロック供給回路の構成例を示す。この回路は、グループ1およびグループ2の内部でクロックを供給するグループ内クロック供給回路と、各グループへクロックを供給するグループクロック供給回路とを具備し、グループクロック供給回路は、各グループへ供給するクロックの遅延時間を調整するための遅延調整セル1201、1202を持っている。
【0039】
ここでは、まず、レイアウト結果を基にクロック供給回路の遅延時間を求め、グループ間クロック遅延調整部1101で、クロックバッファ1203から各グループのクロックツリーの終端点までの遅延が等しくなるように、グループクロック供給回路上で遅延値を調整する遅延調整セル1201、1202の遅延値を決定し、1チップの実遅延値を更新する。
【0040】
次に、グループ間タイミング評価部1102でグループ間にわたる信号のタイミングを評価し、各グループのクロック間のタイミング余裕を計算する。例えば、図12のグループ1のフリップフロップからグループ2のフリップフロップに論理パスが存在する場合、図13に示す各パスのセットアップ余裕時間およびホールド余裕時間を求め、セットアップ余裕時間の最小値を最小セットアップ余裕時間とし、ホールド余裕時間の最小値を最小ホールド余裕時間とする。図13では、同図(a)に示すように、図12のグループ1のクロックで動作するフリップフロップからグループ2のクロックで動作するフリップフロップに信号が伝搬するものとし、信号の伝搬遅延時間と受け側のフリップフロップのセットアップ時間の和からグループ2のクロックの立ち上がり時刻までをグループ1のグループ2に対するセットアップタイミング余裕とする。また同図(b)に示すように、グループ2のクロックの立ち上がりエッジの時刻にホールド時間を足した時刻から信号の遅延時間迄の時間をグループ1のグループ2に対するホールド余裕時間とする。
【0041】
さらに、二つのグループであるグループ1とグループ2において、グループ1のグループ2に対する最小セットアップ余裕時間とグループ2のグループ1に対する最小ホールド余裕時間とを比較し、小さい方をそれぞれの最小セットアップ余裕時間または最小ホールド余裕時間として置き換える。また、逆にグループ2のグループ1に対する最小セットアップ余裕時間とグループ1のグループ2に対する最小ホールド余裕時間とを比較し、小さい方をそれぞれの最小セットアップ余裕時間または最小ホールド余裕時間として置き換える。
【0042】
各グループ間の最小セットアップ余裕時間と最小ホールド余裕時間とを求めた後、図11のクロック遅延決定部1103で各グループの遅延値を決定する。遅延値の決定に際しては、消費電流が多いクロックツリーを持つグループ間での遅延差が大きくなるように、図14に示すフローチャートにしたがい、遅延値を決定する。この場合は、まず、瞬時電流の多いグループを選択してグループ1とするとともに(ステップ1402)、次に瞬時電流の多いグループを選択してグループ2とする(ステップ1403)。そして、例えばステップ1404に示すようにグループ2のグループ1に対する最小セットアップ余裕時間とホールド余裕時間とを比較し、最小セットアップ余裕時間が大きい場合は、ステップ1405に示すようにグループ2のクロックを最小セットアップ時間だけ遅らせる。また、最小ホールド余裕時間の方が大きい場合は、グループ1のクロックを最小ホールド余裕時間だけ遅らせる。
【0043】
次に、ステップ1407以降に示すように、その他のグループのクロックの遅延値を、瞬時電流の大きい順に既に遅延値の決定しているクロックの間に入るように決定する。すなわち、例えばi番目のグループのクロックの遅延値を決定する場合、既に遅延値が決定されているクロックのうち、i番目のクロックよりも遅延値の大きいクロックに対しては最小ホールド余裕時間を満たすように、また、遅延値が小さいクロックに対しては最小セットアップ余裕時間を満たすように、かつ、最大遅延のクロックと最小遅延のクロックとの距離ができるだけ遠くなるように、遅延値を決定する(ステップ1408)。ステップ1409において、両方の条件を満たすことのできる遅延値が存在しない場合は、既に遅延値の決定しているクロックの遅延値を、条件を満たす範囲まで小さくしたうえで、すなわち遅延値の幅を小さくしたうえで(ステップ1410)、当該クロックの遅延値を決定する(ステップ1411)。
【0044】
以上の処理の全体をフローチャートで表すと、図15のステップ1501〜1508のようになる。
【0045】
上記のようにクロックの遅延を決定することにより、瞬時電流を多く消費するクロックの遅延差が大きくなり、クロックツリー全体が消費する瞬時電流を下げることが可能となる。その結果、電源効果による性能劣化や輻射ノイズを軽減することが可能となる。
【0046】
なお、グループ内クロック供給回路は、ツリー方式やスーパバッファ方式等の方式によらず同じ効果を得ることが可能である。
また、クロックの遅延値の決定方法は、各グループのクロック供給回路で消費される瞬時電流の発生時刻をずらすことが可能であれば、上記以外の決定方法でも可能である。例えば、各グループの瞬時電流を頂点とし遅延時間を中心に一定幅を底辺とする三角波形で表し、各グループの波形を重ね合わせた波形の高さを評価関数とし、その評価関数の値を最小とするよう、セットアップ余裕時間、およびホールド余裕時間の範囲内で遅延時間を決定することにより同様の効果を得ることが可能である。
【0047】
(第4の実施の形態)
図16は、本発明の第4の実施の形態にもとづくクロックツリー生成装置の構成図である。ここでは、図11の第3の実施の形態の構成に加えて、ホールド余裕調整部1601が設けられている。その他の構成は、図11のものと同じである。
【0048】
ここでは、第3の実施の形態の場合と同様に各グループ間の最小セットアップ余裕時間と最小ホールド余裕時間とを求めた後、ホールド余裕時間がある一定値より小さいかどうかを調べ、小さい場合は、そのホールド余裕時間を決定しているパスを確認し、グループ間の信号に遅延素子を挿入する。
そして、再び各グループ間の最小セットアップ余裕時間と最小ホールド余裕時間とを求め、以後は第3の実施の形態の場合と同様に処理を行う。
【0049】
この第4の実施の形態にもとづくクロックツリー生成装置を用いることにより、第3の実施の形態と同様にグループごとの瞬時電流の発生時刻をずらし、全体としての瞬時電流を押えることが可能である。さらに、ホールド余裕時間が一定値以下である信号に遅延素子を加えることで、クロックの遅延幅を拡張することが可能となり、前述の効果をいっそう高めることが可能となる。
【0050】
(第5の実施の形態)
図17は本発明の第5の実施の形態を示す図である。ここで1701はマクロモジュール及び他の回路の遅延値を測定するマクロモジュールタイミング評価部であり、1702はクロックが供給された回路についての瞬時電流測定部であり、1703はマクロモジュールのタイミングをずらすためのクロック遅延決定部であり、1704はレイアウト部である。また1712は1チップ実遅延情報、1713はマクロモジュール回路情報、1714は瞬時電流情報である。
【0051】
以下に、このような構成にもとづく処理の詳細を説明する。
まず、レイアウト結果をもとに、マクロモジュールタイミング評価部1701でマクロモジュールとマクロモジュール以外の回路とにまたがる信号のセットアップ余裕時間およびホールド余裕時間を求める。セットアップ余裕時間およびホールド余裕時間は、先の実施の形態と同様に図13にもとづいて求めることができる。
【0052】
次に、瞬時電流測定部1702において、マクロモジュール回路情報1713をもとに、各時刻のマクロモジュールの瞬時電流およびこの瞬時電流が最大になる時刻を求める。
次に、クロック遅延決定部1703において、マクロモジュールの瞬時電流と、マクロモジュール以外の回路のクロックの遅延時間によるクロック供給回路の瞬時電流の傾向とを比較し、マクロモジュールの瞬時電流とマクロモジュール以外の回路のクロック供給回路による瞬時電流との和が小さくなるように、クロック供給回路の遅延時間を決定する。具体的には、瞬時電流測定部1702で測定したマクロモジュールの瞬時電流のピーク値と、マクロモジュール以外のグループの瞬時電流のピーク値とを比較し、マクロモジュールタイミング評価部1701で求めたマクロモジュールのセットアップ余裕時間およびホールド余裕時間の範囲内で同時刻の瞬時電流の和が最小になるように、マクロモジュール以外のクロック供給回路の遅延値を決定する。
【0053】
この時、遅延値が正の値であればマクロモジュール以外のクロックをクロック遅延決定部1703で決定された値だけ遅延させ、また、負の値であればマクロモジュールへ供給するクロックの遅延時間を長くする。
【0054】
【発明の効果】
以上説明したように本発明によれば、回路が誤動作を起こさないクロック信号の遅延範囲内でクロックスキューを拡大するようにしたため、クロックの遅延が分散されることになり、したがってクロック変化時の瞬間電流が小さくなって、電源電圧降下やノイズ発生を抑制することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にもとづくブロックレイアウト設計装置のブロック図である。
【図2】図1のブロックレイアウト設計装置によって設計される回路の一例を示す回路図である。
【図3】図2の回路にクロックツリーを挿入した回路の一例を示す回路図である。
【図4】図3の回路の配置配線後の遅延情報の抽出結果を示す図である。
【図5】本発明の第2の実施の形態にもとづくブロックレイアウト設計装置のブロック図である。
【図6】図5のブロックレイアウト設計装置によって設計される回路の一例を示す回路図である。
【図7】図6の回路にクロックツリーを挿入した回路の一例を示す回路図である。
【図8】図7の回路に対してスキャンチェーンを再構成した回路の回路図である。
【図9】図8の回路の配置配線後の遅延情報の抽出結果を示す図である。
【図10】図9の回路のスキャンチェーンの動作確認後の構成を示す回路図である。
【図11】本発明の第3の実施の形態にもとづくクロックツリー生成装置のブロック図である。
【図12】図11のクロックツリー生成装置の回路例を示す図である。
【図13】図11のクロックツリー生成装置における余裕時間を示す図である。
【図14】図11のクロックツリー生成装置における遅延値の決定のための処理のフローチャートを示す図である。
【図15】図11のクロックツリー生成装置の動作のフローチャートを示す図である。
【図16】本発明の第4の実施の形態にもとづくクロックツリー生成装置のブロック図である。
【図17】本発明の第5の実施の形態にもとづくクロックツリー生成装置のブロック図である。
【図18】従来の集積回路のためのクロック生成装置のブロック図である。
【符号の説明】
101 クロックツリー生成装置
102 セル配置装置
103 配線装置
104 遅延情報抽出装置
105 クロックスキュー低減装置
106 クロックスキュー拡大値算出装置
107 クロックスキュー拡大装置
301〜303 クロックバッファ
【発明の属する技術分野】
本発明は、集積回路のためのクロック生成装置および生成方法に関する。
【0002】
【従来の技術】
半導体回路におけるツリー形式に基づくクロック分配回路では、特開平9−258840号公報に記されているように、誤動作を防ぎかつ高速動作を行わせるため、各フリップフロップのクロック信号が到達する時間をできるだけ等しくしている。すなわち、クロックスキューをできるだけ小さくするように、分配経路の調整や、クロックツリーを構成するトランジスタのサイズの調整を行っている。換言すると、近年のディジタル回路の進歩により、回路の高速化、高集積化がますます進んでいるが、回路の高速化は、クロックスキューを低減することによっても実現されている。
【0003】
図18に従来のブロックレイアウト設計装置の例を示す。ここで1801はクロックツリー生成装置、1802はセル配置装置、1803は配線装置、1804は遅延情報抽出装置、1805はクロックスキュー低減装置である。
以上のように構成された従来のブロックレイアウト設計装置によれば、クロックツリー生成装置1801で、ブロックの入力クロックに対してクロックツリーが構成され、セル配置装置1802と配線装置1803とで配置配線が行なわれる。そして、配置配線結果から遅延情報抽出装置1804で遅延情報を抽出し、クロックスキューが合っているかどうかの計算が行われる。最後に、この計算結果に基づいて、クロックスキュー低減装置1805で、クロックツリーの構成の変更や、クロックツリーを構成する各セルのドライブ能力の変更や、配線の変更等を行なうことによって、クロックスキューが低減されることになる。
【0004】
【発明が解決しようとする課題】
しかしながら、図18に示したような従来のブロックレイアウト設計装置では、クロックスキューが低減されているために、クロックが供給されるセルがクロックに対してほぼ同時に動作してしまう。このため、クロックの変化時の瞬間電流が大きくなってしまい、電源電圧降下が大きくなったり、発生ノイズが大きくなるという問題を有している。
【0005】
詳細には、従来より、半導体集積回路の回路規模の増大に伴い、回路に含まれるフリップフロップやラッチ等の、クロック信号に同期して動作する素子の数が増大し、合わせてクロックツリーを構成する素子の数が増大してきている。また、クロック周波数の向上に伴い、クロック信号をフルスイングさせるためクロックツリーを構成する各素子の波形を急峻にすることが必要となってきている。その結果、多数の素子がクロック信号に同期してほぼ同時に動作すると、クロック信号の変化時にクロックツリーに流れる瞬時電流が増加し、電圧降下や輻射ノイズの発生という問題を生じる。
【0006】
以上の従来の問題点を鑑み、本発明は、回路の動作に影響を与えずにクロック変化時の瞬間電流を小さくし、それによって電源電圧の降下やノイズの発生といった問題を抑えるようにすることを目的とする。
【0007】
【課題を解決するための手段】
この目的を達成するため本発明は、スキャンチェーンを含んだ回路に供給されるクロック信号に対してクロックツリーを形成するクロックツリー生成手段と、クロックツリーの中で各クロックセルが駆動するセルをそれぞれセルグループとして、これらのセルグループ間のチェーンの数が減少するようにスキャンチェーンの接続を変更するスキャンチェーン再構成手段と、スキャンチェーンを含んだ回路のネットリストを入力としてネットリスト中の各セルを配置するセル配置手段と、配置された各セル間を配線するセル間配線手段と、セルの配置配線結果より遅延情報を抽出する遅延情報抽出手段と、遅延情報の抽出結果にもとづいてクロックスキューを低減するクロックスキュー低減手段と、遅延情報抽出手段により抽出された遅延情報により、回路が誤動作を起こさないクロック信号の遅延範囲を計算するクロックスキュー拡大値算出手段と、このクロックスキュー拡大値算出手段により算出されたクロックスキュー拡大値の範囲内でクロックスキューを拡大するクロックスキュー拡大手段とを備えたものである。
これにより、回路の正常動作を保ちながらクロックスキューを拡大し、したがってクロック変化時の瞬間電流が小さくなり、電源電圧降下やノイズ発生を抑制することができる。また、クロックスキューを大きくした場合に誤動作しやすいスキャンチェーンによってこのクロックスキューの拡大範囲が小さく制限されることも防いでいる。
【0008】
【発明の実施の形態】
【0015】
(第1の実施の形態)
図1は、本発明の第1の実施の形態にもとづくブロックレイアウト設計装置を示す。この図1において、101はクロックツリー生成装置、102はセル配置装置、103は配線装置、104は遅延情報抽出装置、105はクロックスキュー低減装置で、ここまでの構成は上述の図18に示した従来のものと同じである。図1の装置では、さらに、クロックスキュー拡大値算出装置106と、クロックスキュー拡大装置107とを備える。
【0016】
図2は、図1のブロックレイアウト設計装置を用いて設計を行なう対象となる回路である。この図2において、201はクロック入力、202〜207はフリップフロップ、208〜213は組合せ論理回路である。フリップフロップ202〜207は同一のクロック入力201で駆動されている。
ここで、図2の回路全体は10nsec以内のサイクルで動作しなくてはならない。またフリップフロップ202〜207のセットアップ時間は1nsecである。
【0017】
以上のように構成された、本発明の第1の実施の形態にもとづくブロックレイアウト設計装置について、以下にその動作を示す。まず、図2に示す回路に対して、図1のクロックツリー生成装置101でクロックツリーを形成する。クロックツリーを生成した回路を図3に示す。図3において、301〜303はクロックツリーを構成するクロックバッファであり、クロックバッファ301はクロックバッファ302、303を駆動しており、クロックバッファ302はフリップフロップ202、204、206を駆動しており、クロックバッファ303はフリップフロップ203、205、207を駆動している。
【0018】
この図3のクロックツリーが挿入された回路に対して、次に、図1のセル配置装置102、配線装置103、遅延情報抽出装置104によって、図2に示す回路の配置配線と、配置配線後の遅延値の抽出とが行なわれる。そしてさらに、遅延情報の抽出結果にもとづいて、クロックスキュー低減装置105により各セルの駆動能力を変更することで、クロックスキューの低減が行なわれる。クロックスキュー低減まで完了した時点での回路の各素子の遅延を図4に示す。すなわち図4には、フリップフロップ202〜207の遅延値と、組合せ論理回路208〜213の遅延値と、クロックバッファ301〜303の遅延値とが示されている。
【0019】
次に、図1のクロックスキュー拡大値算出装置106によって、クロックスキューをどこまで拡大できるかを計算する。クロックバッファ302からフリップフロップ202、204、206にクロックが供給される時刻をTA、クロックバッファ303からフリップフロップ203、205、207にクロックが供給される時刻をTBとすると、上述のようにフリップフロップ202とフリップフロップ203の間が10nsec以内のサイクルで動作しなくてはならないので、
(フリップフロップ202の遅延時間)
+(組合せ論理回路208の遅延時間)
+(フリップフロップ203のセットアップ時間)
≦10nsec
+(フリップフロップ203のクロック到達時刻)
−(フリップフロップ202のクロック到達時刻)
が満たされている必要がある。したがって、
TA−TB≦2nsec
が満たされている必要がある。同様にして、フリップフロップ203、204間、フリップフロップ204、205間、フリップフロップ205、206間、フリップフロップ206、207間、フリップフロップ204、207間についても考えると、それぞれ
TB−TA≦1nsec
TA−TB≦3nsec
TB−TA≦2nsec
TA−TB≦6nsec
TA−TB≦3nsec
という関係式が満たされる必要がある。これらをまとめると、
−1nsec≦TA−TB≦2nsec
が満たされれば回路が誤動作を起こさないことが分かる。
【0020】
次に、図1のクロックスキュー拡大装置107によって、クロックバッファ302の駆動能力を調整し、このクロックバッファ302の遅延時間を3nsecとする。
【0021】
以上のように本発明の第1の実施の形態によれば、クロックスキューをどこまで拡大できるかをクロックスキュー拡大値算出装置106によって計算することで、回路の誤動作を起こさず、また回路の要求動作速度を満たしながら、クロック信号のスキューを拡大することができる。したがって、クロック変化時の瞬間電流を小さくすることができ、これによって電源電圧降下やノイズ発生を抑制することができる。
【0022】
(第2の実施の形態)
図5は、本発明の第2の実施の形態にもとづくブロックレイアウト設計装置を示す。図5において、501はクロックツリー生成装置、503はセル配置装置、504は配線装置、505は遅延情報抽出装置、506はクロックスキュー低減装置、507はクロックスキュー拡大値算出装置、508はクロックスキュー拡大装置であり、これらは図1に示したものと同じ構成である。これらに加えて、図5の装置では、クロックツリー生成装置501とセル配置装置503との間にスキャンチェーン再構成装置502が設けられ、またクロックスキュー拡大装置508に続いてスキャンチェーン動作保証装置509が設けられている。
【0023】
図6は、図5のブロックレイアウト設計装置を用いて設計を行なう対象となる回路である。この図6において、601はクロック入力、602〜607はフリップフロップ、608〜613は組合せ論理回路、614はスキャン入力、615はスキャン出力である。フリップフロップ602〜607は同一のクロック入力601で駆動されている。この図6の回路は、回路全体が10nsec以内のサイクルで動作しなくてはならない。フリップフロップ602〜607のセットアップ時間は1nsecであり、スキャン入力614のホールド時間は0nsecである。またスキャン入力614は第一段のフリップフロップ602のスキャン入力に接続され、フリップフロップ602の出力がフリップフロップ603のスキャン入力に接続され、以降フリップフロップ604、605、606、607の順番で前段のフリップフロップの出力が後段のスキャン入力に接続され、最終段のフリップフロップ607の出力がスキャン出力615に接続されることによりスキャンチェーンが構成されている。
【0024】
以上のように構成された本発明の第2の実施の形態にもとづくブロックレイアウト設計装置について、以下その動作を示す。まず、図6に示す回路に対して、クロックツリー生成装置501でクロックツリーを形成する。クロックツリーを生成した回路を図7に示す。図7において、701〜703はクロックツリーを構成するクロックバッファであり、クロックバッファ701はクロックバッファ702、703を駆動しており、クロックバッファ702はフリップフロップ602、604、606を駆動しており、クロックバッファ703はフリップフロップ603、605、607を駆動している。
【0025】
次に、このようにクロックツリーが挿入された回路に対して、図5のスキャンチェーン再構成装置502によって、スキャンチェーンの再構成を行なう。図7の回路に対してスキャンチェーンの再構成を行なった回路を図8に示す。この図8の回路では、クロックバッファ702により駆動されているフリップフロップ602、604、606と、クロックバッファ703により駆動されているフリップフロップ603、605、607とをそれぞれ一つのグループとしている。そして、各グループ内は1本のスキャンチェーンで接続し、グループ間のスキャンチェーンの配線数が少なくなるようにスキャンチェーンの再構成が行なわれている。
【0026】
次に、セル配置装置503、配線装置504、遅延情報抽出装置505によって、図8に示す回路の配置配線と、配置配線後の遅延値の抽出とが行なわれる。セル配置装置503によるセル配置時には、図9に示すように、回路のセルとは別に遅延セル901、902を配置しておく。そしてさらに、遅延情報の抽出結果にもとづき、クロックスキュー低減装置506によってクロックスキューの低減が行なわれる。図9には、クロックスキュー低減まで完了した時点での回路の各遅延値、すなわち、フリップフロップ602〜607の遅延値と、組合せ論理回路608〜613の遅延値と、クロックバッファ701〜703の遅延値とを示す。
【0027】
次にクロックスキュー拡大値算出装置507によってクロックスキューをどこまで拡大できるかを計算する。すなわち、スキャンチェーンを除く回路の誤動作が起こらないためには、上述の第1の実施の形態における場合と同様に計算を行なうと、クロックバッファ702からフリップフロップ602、604、606にクロックが供給される時刻をTA、クロックバッファ703からフリップフロップ603、605、607にクロックが供給される時刻をTBとして、
−1nsec≦TA−TB≦2nsec
を満たす必要がある。
【0028】
次にクロックスキュー拡大装置508によってクロックバッファ702の駆動能力を調整し、クロックバッファ702の遅延時間を3nsecとする。
【0029】
次に、スキャンチェーン動作保証装置509によって、スキャンチェーンにおいて誤動作が起こらないかどうかを確認する。図9においては、スキャンチェーンのうちフリップフロップ606からフリップフロップ603に接続される部分は、フリップフロップ603の必要なホールド時間0nsecに対して−1nsecしかホールド時間がないため、誤動作を起こす。そこで、遅延セル902を使用してスキャンチェーンを変更する。図10にスキャンチェーンを変更したあとの回路を示し、フリップフロップ606とフリップフロップ603との間に遅延セル902が接続されている。こうすることによりスキャンチェーンの誤動作もなくなり、回路は正常に動作することになる。
【0030】
以上のように本発明の第2の実施の形態によれば、上述の第1の実施の形態の場合と同様に、回路の誤動作を起こさず、また回路の要求動作速度を満たしながら、クロック信号のスキューを拡大することができ、クロック変化時の瞬間電流を小さくすることができ、、これによって電源電圧降下やノイズ発生を抑制することができる。また、クロックスキューを大きくした場合に誤動作しやすいスキャンチェーンの動作によって、このクロックスキューの拡大範囲が小さくされるような事態の発生をも防いでいる。
【0031】
なお、上述の第1の実施の形態では、クロックツリー生成装置101、セル配置装置102、配線装置103、遅延情報抽出装置104、クロックスキュー低減装置105、クロックスキュー拡大値算出装置106、クロックスキュー拡大装置107の順序で処理を行なうとしたが、クロックツリー生成をセル配置の後に行なうなど、これらの順番が入れ替わっても構わない。また同じ処理を複数回行なっても構わない。また、上述の本発明の第2の実施の形態でも、クロックツリー生成装置501、スキャンチェーン再構成装置502、セル配置装置503、配線装置504、遅延情報抽出装置505、クロックスキュー低減装置506、クロックスキュー拡大値算出装置507、クロックスキュー拡大装置508、スキャンチェーン動作保証装置509の順序で処理を行なうとしたが、クロックツリー生成をセル配置の後に行なうなど、これらの順番が入れ替わっても構わない。また同じ処理を複数回行なっても構わない。
【0032】
図5のクロックスキュー拡大値算出装置507では、スキャンチェーンを除く回路に誤動作が起こらない条件を計算したが、スキャンチェーン回路の一部もしくは全てを含んだ回路に対する条件を計算することによって、スキャンチェーン動作保証装置509の処理を一部もしくは全てを省略しても構わない。
また遅延セル902、903を配置しておくとしたが、このような遅延セル902、903を配置せずに、スキャンチェーンの再構成やスキャンチェーンの配線の変更等によって誤動作除去を行なってもよい。
【0033】
第1および第2の実施の形態では、いずれも2段のクロックバッファ301〜303、701〜703でツリーを構成していたが、いかなる論理のセル、いかなる段数のツリーを構成しても構わない。クロックツリー内の論理段数も一定である必要はない。
同一の大きさと同一のピン位置とを持った駆動能力の異なる複数のセルを、クロックツリーに含まれるセルとして使用することができる。
【0034】
またクロックスキュー低減装置105、506によってクロックスキューを低減するとしたが、たとえばクロックツリーを構成するセルの駆動能力をあらかじめ大きくしておくことによってクロックスキューを低減するなどの方法をとっても良い。
クロックスキュー拡大値算出装置106、507ではフリップフロップ間の遅延値のみを考慮したが、フリップフロップのホールド時間や、回路が誤動作しないためのその他の条件を計算に使用してもよい。
【0035】
クロックスキュー拡大装置107、508では、クロックバッファ301〜303、701〜703の駆動能力を調整することによりクロックスキューを拡大したが、クロック配線の変更や、クロックツリーの変更などの方法によってクロックスキューを拡大しても構わない。
【0036】
(第3の実施の形態)
図11は、本発明の第3の実施の形態にもとづくクロックツリー生成装置の構成図である。この第3の実施の形態においては、クロックを入力とする回路素子がグループ化され、各グループごとに、グループ内クロック供給回路が設けられる。またクロック供給源から前記グループ内クロック供給回路へクロックを供給するグループクロック供給回路が設けられる。
【0037】
図11において、1101はすべてのグループのクロック遅延をそろえるグループ間クロック遅延調整部であり、1102は複数のグループにまたがる信号のセットアップ時間余裕とホールドタイミング余裕を求めるグループ間タイミング評価部であり、1103は各クロックの遅延を決定するクロック遅延決定部であり、1104は、回路のレイアウト部である。また1111はクロック供給回路遅延情報、1112は1チップ実遅延情報、1113はグループ間クロック余裕分布情報である。
【0038】
図12はクロック供給回路の構成例を示す。この回路は、グループ1およびグループ2の内部でクロックを供給するグループ内クロック供給回路と、各グループへクロックを供給するグループクロック供給回路とを具備し、グループクロック供給回路は、各グループへ供給するクロックの遅延時間を調整するための遅延調整セル1201、1202を持っている。
【0039】
ここでは、まず、レイアウト結果を基にクロック供給回路の遅延時間を求め、グループ間クロック遅延調整部1101で、クロックバッファ1203から各グループのクロックツリーの終端点までの遅延が等しくなるように、グループクロック供給回路上で遅延値を調整する遅延調整セル1201、1202の遅延値を決定し、1チップの実遅延値を更新する。
【0040】
次に、グループ間タイミング評価部1102でグループ間にわたる信号のタイミングを評価し、各グループのクロック間のタイミング余裕を計算する。例えば、図12のグループ1のフリップフロップからグループ2のフリップフロップに論理パスが存在する場合、図13に示す各パスのセットアップ余裕時間およびホールド余裕時間を求め、セットアップ余裕時間の最小値を最小セットアップ余裕時間とし、ホールド余裕時間の最小値を最小ホールド余裕時間とする。図13では、同図(a)に示すように、図12のグループ1のクロックで動作するフリップフロップからグループ2のクロックで動作するフリップフロップに信号が伝搬するものとし、信号の伝搬遅延時間と受け側のフリップフロップのセットアップ時間の和からグループ2のクロックの立ち上がり時刻までをグループ1のグループ2に対するセットアップタイミング余裕とする。また同図(b)に示すように、グループ2のクロックの立ち上がりエッジの時刻にホールド時間を足した時刻から信号の遅延時間迄の時間をグループ1のグループ2に対するホールド余裕時間とする。
【0041】
さらに、二つのグループであるグループ1とグループ2において、グループ1のグループ2に対する最小セットアップ余裕時間とグループ2のグループ1に対する最小ホールド余裕時間とを比較し、小さい方をそれぞれの最小セットアップ余裕時間または最小ホールド余裕時間として置き換える。また、逆にグループ2のグループ1に対する最小セットアップ余裕時間とグループ1のグループ2に対する最小ホールド余裕時間とを比較し、小さい方をそれぞれの最小セットアップ余裕時間または最小ホールド余裕時間として置き換える。
【0042】
各グループ間の最小セットアップ余裕時間と最小ホールド余裕時間とを求めた後、図11のクロック遅延決定部1103で各グループの遅延値を決定する。遅延値の決定に際しては、消費電流が多いクロックツリーを持つグループ間での遅延差が大きくなるように、図14に示すフローチャートにしたがい、遅延値を決定する。この場合は、まず、瞬時電流の多いグループを選択してグループ1とするとともに(ステップ1402)、次に瞬時電流の多いグループを選択してグループ2とする(ステップ1403)。そして、例えばステップ1404に示すようにグループ2のグループ1に対する最小セットアップ余裕時間とホールド余裕時間とを比較し、最小セットアップ余裕時間が大きい場合は、ステップ1405に示すようにグループ2のクロックを最小セットアップ時間だけ遅らせる。また、最小ホールド余裕時間の方が大きい場合は、グループ1のクロックを最小ホールド余裕時間だけ遅らせる。
【0043】
次に、ステップ1407以降に示すように、その他のグループのクロックの遅延値を、瞬時電流の大きい順に既に遅延値の決定しているクロックの間に入るように決定する。すなわち、例えばi番目のグループのクロックの遅延値を決定する場合、既に遅延値が決定されているクロックのうち、i番目のクロックよりも遅延値の大きいクロックに対しては最小ホールド余裕時間を満たすように、また、遅延値が小さいクロックに対しては最小セットアップ余裕時間を満たすように、かつ、最大遅延のクロックと最小遅延のクロックとの距離ができるだけ遠くなるように、遅延値を決定する(ステップ1408)。ステップ1409において、両方の条件を満たすことのできる遅延値が存在しない場合は、既に遅延値の決定しているクロックの遅延値を、条件を満たす範囲まで小さくしたうえで、すなわち遅延値の幅を小さくしたうえで(ステップ1410)、当該クロックの遅延値を決定する(ステップ1411)。
【0044】
以上の処理の全体をフローチャートで表すと、図15のステップ1501〜1508のようになる。
【0045】
上記のようにクロックの遅延を決定することにより、瞬時電流を多く消費するクロックの遅延差が大きくなり、クロックツリー全体が消費する瞬時電流を下げることが可能となる。その結果、電源効果による性能劣化や輻射ノイズを軽減することが可能となる。
【0046】
なお、グループ内クロック供給回路は、ツリー方式やスーパバッファ方式等の方式によらず同じ効果を得ることが可能である。
また、クロックの遅延値の決定方法は、各グループのクロック供給回路で消費される瞬時電流の発生時刻をずらすことが可能であれば、上記以外の決定方法でも可能である。例えば、各グループの瞬時電流を頂点とし遅延時間を中心に一定幅を底辺とする三角波形で表し、各グループの波形を重ね合わせた波形の高さを評価関数とし、その評価関数の値を最小とするよう、セットアップ余裕時間、およびホールド余裕時間の範囲内で遅延時間を決定することにより同様の効果を得ることが可能である。
【0047】
(第4の実施の形態)
図16は、本発明の第4の実施の形態にもとづくクロックツリー生成装置の構成図である。ここでは、図11の第3の実施の形態の構成に加えて、ホールド余裕調整部1601が設けられている。その他の構成は、図11のものと同じである。
【0048】
ここでは、第3の実施の形態の場合と同様に各グループ間の最小セットアップ余裕時間と最小ホールド余裕時間とを求めた後、ホールド余裕時間がある一定値より小さいかどうかを調べ、小さい場合は、そのホールド余裕時間を決定しているパスを確認し、グループ間の信号に遅延素子を挿入する。
そして、再び各グループ間の最小セットアップ余裕時間と最小ホールド余裕時間とを求め、以後は第3の実施の形態の場合と同様に処理を行う。
【0049】
この第4の実施の形態にもとづくクロックツリー生成装置を用いることにより、第3の実施の形態と同様にグループごとの瞬時電流の発生時刻をずらし、全体としての瞬時電流を押えることが可能である。さらに、ホールド余裕時間が一定値以下である信号に遅延素子を加えることで、クロックの遅延幅を拡張することが可能となり、前述の効果をいっそう高めることが可能となる。
【0050】
(第5の実施の形態)
図17は本発明の第5の実施の形態を示す図である。ここで1701はマクロモジュール及び他の回路の遅延値を測定するマクロモジュールタイミング評価部であり、1702はクロックが供給された回路についての瞬時電流測定部であり、1703はマクロモジュールのタイミングをずらすためのクロック遅延決定部であり、1704はレイアウト部である。また1712は1チップ実遅延情報、1713はマクロモジュール回路情報、1714は瞬時電流情報である。
【0051】
以下に、このような構成にもとづく処理の詳細を説明する。
まず、レイアウト結果をもとに、マクロモジュールタイミング評価部1701でマクロモジュールとマクロモジュール以外の回路とにまたがる信号のセットアップ余裕時間およびホールド余裕時間を求める。セットアップ余裕時間およびホールド余裕時間は、先の実施の形態と同様に図13にもとづいて求めることができる。
【0052】
次に、瞬時電流測定部1702において、マクロモジュール回路情報1713をもとに、各時刻のマクロモジュールの瞬時電流およびこの瞬時電流が最大になる時刻を求める。
次に、クロック遅延決定部1703において、マクロモジュールの瞬時電流と、マクロモジュール以外の回路のクロックの遅延時間によるクロック供給回路の瞬時電流の傾向とを比較し、マクロモジュールの瞬時電流とマクロモジュール以外の回路のクロック供給回路による瞬時電流との和が小さくなるように、クロック供給回路の遅延時間を決定する。具体的には、瞬時電流測定部1702で測定したマクロモジュールの瞬時電流のピーク値と、マクロモジュール以外のグループの瞬時電流のピーク値とを比較し、マクロモジュールタイミング評価部1701で求めたマクロモジュールのセットアップ余裕時間およびホールド余裕時間の範囲内で同時刻の瞬時電流の和が最小になるように、マクロモジュール以外のクロック供給回路の遅延値を決定する。
【0053】
この時、遅延値が正の値であればマクロモジュール以外のクロックをクロック遅延決定部1703で決定された値だけ遅延させ、また、負の値であればマクロモジュールへ供給するクロックの遅延時間を長くする。
【0054】
【発明の効果】
以上説明したように本発明によれば、回路が誤動作を起こさないクロック信号の遅延範囲内でクロックスキューを拡大するようにしたため、クロックの遅延が分散されることになり、したがってクロック変化時の瞬間電流が小さくなって、電源電圧降下やノイズ発生を抑制することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にもとづくブロックレイアウト設計装置のブロック図である。
【図2】図1のブロックレイアウト設計装置によって設計される回路の一例を示す回路図である。
【図3】図2の回路にクロックツリーを挿入した回路の一例を示す回路図である。
【図4】図3の回路の配置配線後の遅延情報の抽出結果を示す図である。
【図5】本発明の第2の実施の形態にもとづくブロックレイアウト設計装置のブロック図である。
【図6】図5のブロックレイアウト設計装置によって設計される回路の一例を示す回路図である。
【図7】図6の回路にクロックツリーを挿入した回路の一例を示す回路図である。
【図8】図7の回路に対してスキャンチェーンを再構成した回路の回路図である。
【図9】図8の回路の配置配線後の遅延情報の抽出結果を示す図である。
【図10】図9の回路のスキャンチェーンの動作確認後の構成を示す回路図である。
【図11】本発明の第3の実施の形態にもとづくクロックツリー生成装置のブロック図である。
【図12】図11のクロックツリー生成装置の回路例を示す図である。
【図13】図11のクロックツリー生成装置における余裕時間を示す図である。
【図14】図11のクロックツリー生成装置における遅延値の決定のための処理のフローチャートを示す図である。
【図15】図11のクロックツリー生成装置の動作のフローチャートを示す図である。
【図16】本発明の第4の実施の形態にもとづくクロックツリー生成装置のブロック図である。
【図17】本発明の第5の実施の形態にもとづくクロックツリー生成装置のブロック図である。
【図18】従来の集積回路のためのクロック生成装置のブロック図である。
【符号の説明】
101 クロックツリー生成装置
102 セル配置装置
103 配線装置
104 遅延情報抽出装置
105 クロックスキュー低減装置
106 クロックスキュー拡大値算出装置
107 クロックスキュー拡大装置
301〜303 クロックバッファ
Claims (15)
- スキャンチェーンを含んだ回路に供給されるクロック信号に対してクロックツリーを形成するクロックツリー生成手段と、クロックツリーの中で各クロックセルが駆動するセルをそれぞれセルグループとして、これらのセルグループ間のチェーンの数が減少するようにスキャンチェーンの接続を変更するスキャンチェーン再構成手段と、スキャンチェーンを含んだ回路のネットリストを入力としてネットリスト中の各セルを配置するセル配置手段と、配置された各セル間を配線するセル間配線手段と、セルの配置配線結果より遅延情報を抽出する遅延情報抽出手段と、遅延情報の抽出結果にもとづいてクロックスキューを低減するクロックスキュー低減手段と、遅延情報抽出手段により抽出された遅延情報により、回路が誤動作を起こさないクロック信号の遅延範囲を計算するクロックスキュー拡大値算出手段と、このクロックスキュー拡大値算出手段により算出されたクロックスキュー拡大値の範囲内でクロックスキューを拡大するクロックスキュー拡大手段とを備えたことを特徴とする集積回路のためのクロック生成装置。
- クロックスキュー拡大値算出手段は、スキャンチェーンの一部もしくは全部における誤動作をチェックしないように構成されていることを特徴とする請求項1記載の集積回路のためのクロック生成装置。
- クロックスキュー拡大手段によってクロックスキューを拡大した後に回路の遅延情報を抽出して、スキャンチェーンの誤動作が起こらないかどうかを確認し、誤動作が起こる場合にはその誤動作を除去するスキャンチェーン動作保証手段を備えたことを特徴とする請求項1または2記載の集積回路のためのクロック生成装置。
- スキャンチェーン動作保証手段は、スキャンチェーンの誤動作が起こる場合に、セルグループ間のチェーンの接続を変更するか、ネットリストに含まれるセルとは別に遅延を発生させるための遅延セルをセルグループ間のチェーンに挿入するか、誤動作を起こすチェーン部分の配線を変更することにより、スキャンチェーンの誤動作をなくすように構成されていることを特徴とする請求項3記載の集積回路のためのクロック生成装置。
- 遅延セルはセル配置手段によってあらかじめ配置されていることを特徴とする請求項4記載の集積回路のためのクロック生成装置。
- クロックスキュー低減手段は、クロックツリーに含まれる各セルの駆動能力を変更することによってクロックスキューを低減可能であることを特徴とする請求項1から5までのいずれか1項記載の集積回路のためのクロック生成装置。
- クロックスキュー低減手段は、クロックツリーに含まれる各セル間の配線を変更することによってクロックスキューを低減可能であることを特徴とする請求項1から5までのいずれか1項記載の集積回路のためのクロック生成装置。
- クロックスキュー低減手段は、クロックツリー構造を変更することによってクロックスキューを低減可能であることを特徴とする請求項1から5までのいずれか1項記載の集積回路のためのクロック生成装置。
- クロックスキュー拡大手段は、クロックツリーに含まれる各セルの駆動能力を変更することによってクロックスキューを拡大可能であることを特徴とする請求項1から8までのいずれか1項記載の集積回路のためのクロック生成装置。
- クロックスキュー拡大手段は、クロックツリーに含まれる各セル間の配線を変更することによってクロックスキューを拡大可能であることを特徴とする請求項1から8までのいずれか1項記載の集積回路のためのクロック生成装置。
- クロックスキュー拡大手段は、クロックツリー構造を変更することによってクロックスキューを拡大可能であることを特徴とする請求項1から8までのいずれか1項記載の集積回路のためのクロック生成装置。
- 同一の大きさと同一のピン位置とを持った駆動能力の異なる複数のセルが、クロックツリーに含まれるセルとして使用されていることを特徴とする請求項1から11までのいずれか1項記載の集積回路のためのクロック生成装置。
- スキャンチェーンを含んだ回路に供給されるクロック信号に対してクロックツリーを形成し、クロックツリーの中で各クロックセルが駆動するセルをそれぞれセルグループとして、これらのセルグループ間のチェーンの数が減少するようにスキャンチェーンの接続を変更し、スキャンチェーンを含んだ回路のネットリストを入力としてネットリスト中の各セルを配置し、配置された各セル間を配線し、セルの配置配線結果より遅延情報を抽出し、遅延情報の抽出結果にもとづいてクロックスキューを低減し、抽出された前記遅延情報により、回路が誤動作を起こさないクロック信号の遅延範囲に対応したクロックスキュー拡大値を計算し、算出されたクロックスキュー拡大値の範囲内でクロックスキューを拡大することを特徴とする集積回路のためのクロック生成方法。
- クロックスキュー拡大値を計算する際に、スキャンチェーンの一部もしくは全部における誤動作をチェックしないことを特徴とする請求項13記載の集積回路のためのクロック生成方法。
- クロックスキューを拡大した後に回路の遅延情報を抽出して、スキャンチェーンの誤動作が起こらないかどうかを確認し、誤動作が起こる場合にはその誤動作を除去することを特徴とする請求項13または14記載の集積回路のためのクロック生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07463899A JP3549428B2 (ja) | 1999-03-19 | 1999-03-19 | 集積回路のためのクロック生成装置および生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07463899A JP3549428B2 (ja) | 1999-03-19 | 1999-03-19 | 集積回路のためのクロック生成装置および生成方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004005814A Division JP2004199705A (ja) | 2004-01-13 | 2004-01-13 | 集積回路のためのクロック生成装置および生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000267752A JP2000267752A (ja) | 2000-09-29 |
JP3549428B2 true JP3549428B2 (ja) | 2004-08-04 |
Family
ID=13552965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07463899A Expired - Fee Related JP3549428B2 (ja) | 1999-03-19 | 1999-03-19 | 集積回路のためのクロック生成装置および生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3549428B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11262403B2 (en) | 2019-09-02 | 2022-03-01 | Kabushiki Kaisha Toshiba | Semiconductor device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6318777B2 (ja) * | 2014-03-31 | 2018-05-09 | 株式会社ソシオネクスト | 設計方法、設計装置およびプログラム |
-
1999
- 1999-03-19 JP JP07463899A patent/JP3549428B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11262403B2 (en) | 2019-09-02 | 2022-03-01 | Kabushiki Kaisha Toshiba | Semiconductor device |
Also Published As
Publication number | Publication date |
---|---|
JP2000267752A (ja) | 2000-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8887110B1 (en) | Methods for designing intergrated circuits with automatically synthesized clock distribution networks | |
US11971740B2 (en) | Timing error detection and correction circuit | |
US6711724B2 (en) | Semiconductor integrated circuit device having pipeline stage and designing method therefor | |
US20070001734A1 (en) | Semiconductor integrated circuit device | |
JPH08339236A (ja) | クロック信号分配回路 | |
WO2007038033A2 (en) | Method and apparatus for late timing transition detection | |
US20110010684A1 (en) | Semiconductor integrated circuit and method of designing the same | |
US6593792B2 (en) | Buffer circuit block and design method of semiconductor integrated circuit by using the same | |
US20100253409A1 (en) | Clock generation system and clock dividing module | |
JP3549428B2 (ja) | 集積回路のためのクロック生成装置および生成方法 | |
JP2002083000A (ja) | 論理回路設計方法及び論理回路 | |
US7302657B2 (en) | Optimization of the design of a synchronous digital circuit | |
JP4251692B2 (ja) | 集積回路設計方法 | |
JPH118314A (ja) | クロック信号配線のツリー深さ最適化方法および装置 | |
JP2004199705A (ja) | 集積回路のためのクロック生成装置および生成方法 | |
JP3869406B2 (ja) | クロック位相差検出回路、クロック分配回路、及び大規模集積回路 | |
JP3779073B2 (ja) | クロック制御装置 | |
JP2004280439A (ja) | クロストークノイズ検出方法、並びに半導体集積回路の設計方法及び設計検証方法 | |
JP2008166981A (ja) | 遅延調整回路及び遅延調整方法 | |
US8166438B2 (en) | Low RC local clock distribution | |
JP2011107769A (ja) | 半導体集積回路のレイアウト装置及びクロックゲーティング方法 | |
JP3116915B2 (ja) | クロックネットのレイアウト設計変更方式 | |
EP1308862B1 (en) | Optimization of the design of a synchronous digital circuit | |
CN112134557B (zh) | 基于脉冲锁存器时序监测的宽电压自适应调节系统及方法 | |
JP2004127012A (ja) | 同期式回路およびその設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040113 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040420 |
|
LAPS | Cancellation because of no payment of annual fees |