JP2005044854A - Clock tree circuit, semiconductor integrated circuit device, method of designing the same, and medium recording design program for semiconductor integrated circuit - Google Patents

Clock tree circuit, semiconductor integrated circuit device, method of designing the same, and medium recording design program for semiconductor integrated circuit Download PDF

Info

Publication number
JP2005044854A
JP2005044854A JP2003200500A JP2003200500A JP2005044854A JP 2005044854 A JP2005044854 A JP 2005044854A JP 2003200500 A JP2003200500 A JP 2003200500A JP 2003200500 A JP2003200500 A JP 2003200500A JP 2005044854 A JP2005044854 A JP 2005044854A
Authority
JP
Japan
Prior art keywords
clock
tree
semiconductor integrated
partial
integrated circuit
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.)
Granted
Application number
JP2003200500A
Other languages
Japanese (ja)
Other versions
JP4020836B2 (en
Inventor
Tetsuya Fujimoto
徹哉 藤本
Takahiro Yamashita
高廣 山下
Yukio Arima
幸生 有馬
Koichiro Ishibashi
孝一郎 石橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Semiconductor Technology Academic Research Center
Original Assignee
Semiconductor Technology Academic Research Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Semiconductor Technology Academic Research Center filed Critical Semiconductor Technology Academic Research Center
Priority to JP2003200500A priority Critical patent/JP4020836B2/en
Publication of JP2005044854A publication Critical patent/JP2005044854A/en
Application granted granted Critical
Publication of JP4020836B2 publication Critical patent/JP4020836B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a clock distributing technique for providing a clock tree circuit which operates in a small power, is easily designed, and has a small skew. <P>SOLUTION: The clock tree circuit is equipped with a first partial clock tree 110a distributing clock through a first clock driver 103a, a second partial clock tree 110b distributing clock through a second clock driver 103b, a phase comparison circuit 105 which compares the phase of a first clock from the first partial clock tree 110a with that of a second clock from the second partial clock tress 110b, and a low-pass filter 106 which receives the output of the phase comparison circuit and turns it to a direct current. At least either the first clock driver 103a or the second clock driver 103b can be made variable in delay time, and at least the delay time of the first or the second clock driver that can be set variable is controlled by the output of the low-pass filter. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、クロックの分配技術に関し、特に、低電力で動作し、設計が容易であり、且つ、スキューの小さいクロックツリー回路、半導体集積回路装置、半導体集積回路装置の設計方法、および、半導体集積回路の設計プログラムを記録した媒体に関する。
【0002】
従来、ASIC/SoC(Application Specific Integrated Circuit/System on Chip)設計において、クロックスキュー(Clock Skew)の小さいクロック分配は、CTS(Clock Tree Synthesis)と呼ばれる方式、すなわち、まず、LSI(Large Scale Integration Circuit)のセルを配置し、その後、クロック供給源から全ての供給先(例えば、フリップフロップのクロック入力端子)への伝播遅延時間がなるべく等しくなるように、インバータまたはバッファツリーを合成して配置および優先配線を行うセルライブラリのタイミング情報と配線遅延等の寄生素子の情報に基づく静的な方式が用いられていた。
【0003】
さらに、従来、クロックの分配精度を高める(各クロック供給先への伝播遅延時間の差を小さくする)ために、遅延のバラエティの高いセルセットを用意するといった高精度化を目的とした多数の提案がなされ、また、実用に供されている。そして、それでも吸収できないパラメータの見積り誤差、製造ばらつき、並びに、動作時の電源電圧や温度による変動に対応するために、動的に遅延を調整する方式もいくつか提案されている。
【0004】
ところで、上述した静的方式は、近年の半導体集積回路装置の微細化およびその動作電圧の低電圧化によって、クロック供給源から各供給先へのクロックの伝播遅延時間に対する要求を満たすことが極めて難しくなっているのが実情である。すなわち、クロックの伝播遅延時間を無理に目標に近づけると、クロックツリーが深く(階層の段数が多く)なって、回路規模および消費電力が破綻することになってしまう。さらに、従来、知られている動的方式は、消費電力が大きく、また、回路規模が大きく、或いは、通常のSoCの設計フローとの整合性がなくシステム(ハードまたはソフト)の負荷が増大するといった問題がある。
【0005】
そこで、低電力で動作すると共に、設計が容易であり、且つ、スキューの小さいクロック分配技術の提供が強く要望されている。
【0006】
【従来の技術】
まず、添付図面の図1〜図5を参照して、半導体集積回路装置におけるクロックツリー設計の技術背景を説明する。
【0007】
図1および図2は半導体集積回路装置のクロックツリー設計の技術背景を説明するための図であり、LSIのセルを配置した後、クロック供給源から全ての供給先への伝播遅延時間がなるべく等しくなるように、インバータまたはバッファツリーを合成して配置・配線を行うCTS方式を説明するものである。図1において、参照符号1はクロック供給源(クロックジェネレータ)、2はクロック供給先(フリップフロップ)、3,31〜33,321〜323はクロックドライバ(バッファまたはインバータ)、そして、4a,4b;41a〜43a,41b〜43b;421a〜423a,421b〜423b,4220はクロック配線を示している。
【0008】
図1に示されるように、半導体集積回路装置におけるクロックツリーは、クロックジェネレータ1からのクロックを、階層化されたクロックドライバ(例えば、クロックドライバ3,32,322)およびクロック配線(例えば、クロック配線4a,4b,42a,42b,422a,422b,4220)を介してフリップフロップ1のクロック端子CKに供給する。なお、図1では、1つのフリップフロップのみが描かれているが、実際には、階層化された最終段の複数のクロックドライバ(322)から対応する各フリップフロップ(2)に対してそれぞれクロックが供給される。
【0009】
ここで、クロックを受け取る複数のフリップフロップ(2)において、最も速いタイミングでクロックを受け取るフリップフロップと最も遅いタイミングでクロックを受け取るフリップフロップとの間の時間差(伝播遅延時間の差:クロックスキュー)をTsとすると、このクロックスキューTsはできるだけ小さい方が好ましい。すなわち、半導体集積回路装置における各回路(各フリップフロップ)を同じクロックのエッジで制御する必要がある。
【0010】
ところで、半導体集積回路装置において、クロックを受け取るフリップフロップは、チップ上の様々な位置に散らばっており、クロックジェネレータ1(または、半導体集積回路装置のクロック入力端子)から各フリップフロップ(2)までのクロック配線(4a,4b,42a,42b,422a,422b,4220)の長さはそれぞれ異なっており、また、これらのクロック配線の寄生容量も一定ではない。そのため、クロックを受け取る全てのフリップフロップ(2)を同じタイミングで制御するためには、クロックドライバ(3,32,322)の階層化を多く(クロックツリーを深く)して、これら各クロックドライバで短いクロック配線(小さい寄生容量)を駆動するようになっている。
【0011】
さらに、近年、半導体集積回路装置は、その性能を一層向上させるべく、より高速のクロックにより駆動されるようになって来ている。このように、クロック周波数が高速化すると、クロックスキューに対する要求は、より一層厳しいものとなる。
【0012】
具体的に、例えば、図2に示されるように、クロック周波数が100MHzで10%のタイミングマージン(すなわち、1ns)が許される場合、同じ10%のタイミングマージンでも、例えば、クロック周波数が200MHzになると、半分(0.5ns)の時間しか許されないことになる。換言すると、同じ1nsのクロックスキューが存在する場合、クロック周波数が200MHzになると、20%のタイミングマージンがないと誤動作の恐れが生じることになる。
【0013】
そのため、クロック周波数が高くなると、より多くのクロックドライバを使用することになり、結果として、消費電力も増加してしまう。
【0014】
図3は半導体集積回路装置におけるクロックツリーの具体例を概念的に示す図であり、図4はCTS方式におけるクロックスキューと消費電力との関係を示す図である。ここで、図3(a)は、B(Boundingのパラメータ)=1ps、すなわち、クロックスキューが1psの場合を示し、このとき、COST=1229755、すなわち、回路規模(配線長)が1229755になる。また、図3(b)は、B=10psの場合(クロックスキューを10psとした場合)を示し、このとき、COST=1112512(回路規模:1112512)になる。さらに、図3(c)は、B=∞の場合(クロックスキューを考えない場合)を示し、このとき、COST=780100(回路規模:780100)になる。なお、クロックツリーの各ブランチの先端には、例えば、それぞれフリップフロップ(図示しない)が設けられている。
【0015】
図3(a)〜図3(c)から明らかなように、クロックスキューを小さくすればするほど、クロックツリーは複雑になって回路規模も大きくなることが分かる。
【0016】
すなわち、クロックスキューと消費電力との関係を示す図4からも明らかなように、CTS方式を適用したクロックツリーは、クロックスキューの値を減らそうとすると、ツリーの段数が増えるため消費電力も増大する。さらに、厳しいスキューを充足するためには、クロックツリーの規模が爆発的に増大して非現実的なものになったり、また、レイアウトとして物理的な実現可能性が難しくなってしまう。さらに、仮に、そのような深い(クロックドライバの段数の多い)クロックツリーができたとしても、実際に製造した半導体集積回路装置におけるタイミング精度には疑問がある。なお、経験的には、浅いクロックツリーが正確でよいという考え方もある。
【0017】
図5は低電圧で動作する半導体集積回路装置のクロックツリー設計を説明するための図であり、図5(a)は、低電圧で動作する半導体集積回路装置の一例における制御系、データパス系およびクロックブロック系に対するコア電力消費の百分率を示し、また、図5(b)は、低電圧で動作する半導体集積回路装置の各具体例における電力消費の百分率を示している。
【0018】
図5(a)に示されるように、低電圧で動作する半導体集積回路装置の一例におけるコア電力消費は、例えば、制御系において約53%が消費され、その内、約38%が論理回路により消費され、また、約15%がクロックドライバにより消費され、さらに、例えば、データパス系において約43%が消費され、その内、約28%が論理回路により消費され、また、約15%がクロックドライバにより消費されることが分かる。なお、クロックブロック系においては、約4%がクロックドライバにより消費されている。合計すると、クロック系全体で全電力の約34%が消費されているといえる。
【0019】
このように、半導体集積回路装置において、クロックドライバにより消費される電力は、クロックブロック系だけではなく、制御系やデータパス系においてもおおきなウェイトを占めていることが分かる。
【0020】
図5(b)は、半導体集積回路装置の各具体例における電力消費の百分率を示すもので、埋め込みコントローラLSI(最内周の同心円部分)、ハイエンドCPU(埋め込みコントローラLSIの外側の同心円部分)、MPEG2デコーダ(ハイエンドCPUの外側の同心円部分)、および、ATMスイッチLSI(MPEG2デコーダの外側の同心円部分:最外周の同心円部分)の具体的な4種類のLSI(チップ)における電力消費の百分率を示すものである。
【0021】
すなわち、例えば、埋め込みコントローラLSIにおいては、約45%がクロック系による電力消費であり、約40%がデータパス系の電力消費であり、10%がメモリによる電力消費であり、そして、5%がI/O(Input/Output:パッド)による電力消費であり、また、例えば、ハイエンドCPUにおいては、約28%がクロック系による電力消費であり、約28%がデータパス系の電力消費であり、38%がメモリによる電力消費であり、そして、6%がI/Oによる電力消費であり、さらに、例えば、MPEG2デコーダにおいては、約23%がクロック系による電力消費であり、約34%がデータパス系の電力消費であり、21%がメモリによる電力消費であり、そして、22%がI/O(Input/Output:パッド)による電力消費である。なお、ATMスイッチにおいては、約20%がクロック系による電力消費であり、約10%がデータパス系の電力消費であり、3%がメモリによる電力消費であり、そして、67%がI/Oによる電力消費である。
【0022】
このように、様々な半導体集積回路装置においても、クロック系の消費電力が大きなウェイトを持つことが分かる。
【0023】
特に、低電圧でのタイミング設計においては、動作電圧の低下によりスリューレート(Slew Rate)が大きくなり、それに伴ってクロックスキューも増大する。このため、標準電圧で設計されたクロックツリーを用いると動作マージンの劣化が起こる。また、クロックスキューを標準電圧と同じに保とうとすると、クロックツリーの強化が必要となり、消費電力および面積の増加を招く。このことは、より強力なCTS技術に加え、性能と消費電力のトレードオフ問題を取り扱うことを意味し、設計問題が複雑化するため好ましいことではない。
【0024】
ここで、低電圧におけるクロックスキューの低減は、標準電圧時よりも一層直接に最大動作周波数に寄与する。さらに、クロックツリーを強化せずにスキューを削減できれば、高速動作、低電圧動作および低電力動作の並立に有効である。
【0025】
なお、従来、低消費電力で低スキューのクロックツリー回路が提案されている(例えば、特許文献1参照)。
【0026】
さらに、従来、基準クロックとの位相比較を行う位相比較器、ループフィルタおよびVCO(Voltage Controlled Oscillator:電圧制御発信器)を使用して高速のクロックを分配する技術も提案されている(例えば、非特許文献1参照)。また、従来、ディジタル方式のDLL(Delay Locked Loop)回路を使用して低スキューのクロックを分配するものも提案されている(例えば、非特許文献2参照)。
【0027】
【特許文献1】
特開2000−035831
【非特許文献1】
バディム・ガトニックおよびアナンサ・ピー・チャンドラカサン、「分配PLLを使用したアクティブ・ギガヘルツ・クロックネトワーク」、ソリッド・ステート・サーキットのIEEEジャーナル、第35巻、第11号、第1553〜第1560頁、2000年11月(Vadi m Gutnik & Anantha P. Chandrakasan, ”Active GHz Clock Network Using Distributed PLLs”, IEEE Journal of Solid−State Circuits, Vol. 35, No. 11, p.1553−1560, November 2000)
【非特許文献2】
チャールズ・イー・ダイク他、「ディジタル、ダイナミック・クロック・デスキュー設計」、技術論文のVLSI回路ダイジェストの2003年シンポジウム、第21〜第24頁、2003年6月(Charles E. Dike et al., ”A Design for Digital, Dynamic Clock Deskew”, 2003 Symposium on VLSI Circuits Digest of Technical Paoers, p. 21−24, June 2003)
【0028】
【発明が解決しようとする課題】
上述したように、従来、クロック分配技術としては、高精度な見積もりによるトップダウン方式、すなわち、静的手法として、通常、CTS(Clock Tree Synthesis)方式が利用されている。このCTS方式は、インバータまたはバッファ(クロックドライバ)から構成されるクロックツリーを、経路遅延がなるべく等しくなるように、チップ上に配置・配線するP&R(Place−and−Route)技術を適用し、さらに、クロックツリーの経路遅延を正確に見積もるタイミング評価を行い、そして、一旦作成されたクロックツリーの経路遅延をより均一にするために、遅延値(遅延時間)の異なるセルへの差し替えや負荷の微調整等を行う後処理によりさらに精度を向上するものである。
【0029】
しかしながら、このCTS方式には、以下のような問題点がある。
【0030】
すなわち、CTS方式は、遅延の見積もり値に基づくものであるが、実デバイスにおいては、見積もり誤差、製造ばらつきおよび温度変化等の影響を受けることになる。さらに、より小さなスキューを達成するためには、クロックツリーの段数、総クロックドライバ数および総配線長が増加することになりその結果、消費電力も増加する。
【0031】
また、クロックツリーが深く(階層の段数が多く)なると、見積もり誤差、製造ばらつき、および、温度変化等の影響が増大するといった悪循環に入ってしまうことがある。さらに、CTS方式は、配置結果や配置領域の形状などに間接的影響を受けるため、スキューに対する要求が厳しいときは、収束しなかったり、或いは、レイアウトより寄生素子を抽出しその寄生素子を考慮したシミュレーションを行うバックアノテーション後にタイミングエラーとなって実装設計が収束しないこともにもなる。
【0032】
しかしながら、前述したように、通常電圧(例えば、電源電圧Vcc=1.2V、トランジスタの閾値電圧Vth=400mV)のとき、静的手法で妥当なスキュー(10psのオーダ)が達成できるとしても、低電圧(例えば、電源電圧Vcc=0.5V、トランジスタの閾値電圧Vth=200mV)では2倍以上のスキューとなってしまう。また、ばらつきの影響や温度変化を考慮すると、前記のような静的な手法では十分とはいえず、LSI内部での実際のスキューの観測値に基づくより一層正確な方法が求められている。そこで、クロックツリーの中に、遅延可変なクロックドライバまたは選択可能なクロックドライバの組を設け、例えば、電源投入時等のタイミングで経路遅延をある種の参照時間(外部クロック等)に合わせて変更するといった遅延の半動的調整が考えられる。
【0033】
しかしながら、上記の手法では、チップ外部にリファレンス(外部クロック)が必要であったり、或いは、内部にリファレンスを設ける場合には、LSIが複雑化し、さらに、ボードやシステムの負荷が増大することにもなる。
【0034】
さらに、他の手法として、経路遅延差のあるクロックを短絡して遅延差が無くなるように出力の短絡を行うこと(例えば、FPGA(File Programmable Gate Array)におけるグローバルライン)も考えられるが、この場合、周波数の高い部分を短絡すると動作電流が増加することになり、また、位相差のある信号を出力短絡すると、貫通電流が増加して消費電力が大きくなるといった問題がある。
【0035】
さらに、従来、回路の動作中に、経路遅延差を測定し、遅延可変なクロックドライバにフィードバックする遅延の動的調整も提案されている(例えば、前記特許文献1参照)。
【0036】
図6は従来のクロックツリー回路の一例を示すブロック回路図であり、特許文献1の図4に相当するものである。図6において、参照符号21〜24はクロックドライバ(クロック素子)、25はクロック供給元クロックドライバ、31〜33は位相比較回路、そして、41〜43はチャージポンプ回路を示している。
【0037】
図6に示す従来のクロックツリー回路は、クロックドライバ21〜24に閾値電圧可変のウェル構造を有するトランジスタを適用し、位相比較回路31〜33により、クロックドライバ24を基準とした他のクロックドライバ21〜23との間の位相を比較(位相差(スキュー)を検出)すると共に、差電圧を出力する。さらに、チャージポンプ回路41〜43により、上記差電圧を入力としてクロックドライバ21〜23にフィードバック(クロックドライバ21〜23のn−チャネル型MOSトランジスタのpウェル端子にウェル電位として印加)し、クロックドライバ21〜23のスイッチング速度を制御してクロックスキューを低減させるようになっている。
【0038】
このように、特許文献1に記載されたクロックツリー回路は、クロックツリーの先端部で位相差を測定し、ツリーに帰還するアーキテクチャであり、位相比較回路の出力を用いてチャージポンプ回路を駆動し、基板に逆バイアスを印加することによりクロックドライバを低速化してクロックスキューを低減させるものである。
【0039】
しかしながら、特許文献1には、チャージポンプ回路および位相比較回路の実現方法や配置位置等に関する記載がないだけでなく、チャージポンプ回路を別に設けたり、基板の独立化等により回路のオーバヘッドの増加(回路面積の増加)および消費電力の増大が生じ、さらに、高周波信号(リファレンスや位相差信号)の大域的分配による消費電力の増加も生じる。また、図6の回路では、リファレンスクロックがスキューレスで分配でき、且つ、リファレンスクロックが一番遅いことが前提となっているが、それらは現実的ではない。
【0040】
また、前述した非特許文献1および非特許文献2に示すクロック分配技術では、回路規模が大きくなると共に、消費電力が増大するといった課題がある。さらに、例えば、非特許文献2では、遅延線(DLL回路)を制御する信号はディジタル信号でありノイズの影響を受け易いといった課題もある。
【0041】
本発明は、上述した従来のクロック分配技術が有する課題に鑑み、低電圧動作で高速および高信頼性を有し、クロック系の消費電力を低減することのできるクロックツリー回路および半導体集積回路装置の提供を目的とする。さらに、本発明は、増大するクロック系電力の割合を抑えると共に、回路オーバヘッドが少なく、また、テクノロジ依存性が小さく、さらに、一般的なSoC設計フローと親和性高く、合理的な設計フローを構築することができ、そして、新たに問題を導入しない(ゼロスキュー配線を要する信号を増やしたりしない)クロックツリー回路、半導体集積回路装置、半導体集積回路装置の設計方法、および、半導体集積回路の設計プログラムを記録した媒体の提供を目的とする。
【0042】
【課題を解決するための手段】
本発明の第1の形態によれば、クロックを分配するクロックツリー回路であって、第1のクロックドライバを介して前記クロックを分配する第1の部分クロックツリー、第2のクロックドライバを介して前記クロックを分配する第2の部分クロックツリー、前記第1の部分クロックツリーからの第1のクロックと前記第2の部分クロックツリーからの第2のクロックとの位相を比較する位相比較回路、および、前記位相比較回路の出力を受け取って直流化するローパスフィルタを備え、前記第1および第2のクロックドライバの少なくとも一方は遅延時間が可変であり、前記ローパスフィルタの出力により該遅延時間が可変な該第1および第2のクロックドライバの少なくとも一方の遅延時間を制御することを特徴とするクロックツリー回路が提供される。
【0043】
本発明の第2の形態によれば、クロックを分配するクロックツリー回路、該クロックツリー回路を介して第1のクロックが供給される第1のフリップフロップ群を有する第1の内部回路、および、該クロックツリー回路を介して第2のクロックが供給される第2のフリップフロップ群を有する第2の内部回路を備える半導体集積回路装置であって、前記クロックツリー回路は、第1のクロックドライバを介して前記クロックを分配する第1の部分クロックツリー、第2のクロックドライバを介して前記クロックを分配する第2の部分クロックツリー、前記第1の部分クロックツリーからの第1のクロックと前記第2の部分クロックツリーからの第2のクロックとの位相を比較する位相比較回路、および、前記位相比較回路の出力を受け取って直流化するローパスフィルタを備え、前記第1および第2のクロックドライバの少なくとも一方は遅延時間が可変であり、前記ローパスフィルタの出力により該遅延時間が可変な該第1および第2のクロックドライバの少なくとも一方の遅延時間を制御することを特徴とする半導体集積回路装置が提供される。
【0044】
本発明の第3の形態によれば、フロアプランニング、配置配線およびCTSを行うステップ、寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入するステップ、および、ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行うステップを備え、前記エラー個所にスキュー低減回路を挿入するステップは、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、前記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求めるステップ、および、該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更するステップを備えることを特徴とする半導体集積回路装置の設計方法が提供される。
【0045】
本発明の第4の形態によれば、フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入するステップを備える半導体集積回路装置の設計方法であって、前記スキュー低減回路を挿入するステップは、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定するステップ、前記第1および第2のクロックの位相を比較する位相比較回路を配置するステップ、該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックするステップを備えることを特徴とする半導体集積回路装置の設計方法が提供される。
【0046】
本発明の第5の形態によれば、コンピュータによって実行させるプログラムを記録した媒体であって、フロアプランニング、配置配線およびCTSを行うステップ、寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入するステップ、および、ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行うステップを備え、前記エラー個所にスキュー低減回路を挿入するステップは、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、
前記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求めるステップ、および、該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更するステップを備える半導体集積回路の設計プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体が提供される。
【0047】
本発明の第6の形態によれば、フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入するステップを備えるコンピュータによって実行させるプログラムを記録した媒体であって、前記スキュー低減回路を挿入するステップは、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定するステップ、前記第1および第2のクロックの位相を比較する位相比較回路を配置するステップ、該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックするステップを備える半導体集積回路の設計プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体が提供される。
【0048】
このように、本発明は、例えば、物理的に近接(例えば、隣接)した2つの部分クロックツリーのスキューを小さくする方式をCTS方式と併用するものである。本発明では、クロック周波数で動作する回路を物理的に極めて小さい領域に囲い込み、遠距離の信号伝送を必要とする位相差信号を直流化(DC化)することで、消費電力の削減と実装設計の容易性を実現する。若干の消費電力増加と面積増加を伴うが、CTS方式に対する要求が緩和されるためクロックツリー側の消費電力と面積コストが低減され、全体としては低電力化、低コスト化になる。PVT(Process/Voltage/Temperature)変動に対して耐性を与えることができるので、低電圧で高速動作するLSIのマージン確保を有効に行うことが可能になる。
【0049】
【発明の実施の形態】
以下、本発明に係るクロックツリー回路、半導体集積回路装置、半導体集積回路装置の設計方法、および、半導体集積回路の設計プログラムを記録した媒体の実施例を、添付図面を参照して詳述する。
【0050】
図7は本発明に係るクロックツリー回路の一実施例を概略的に示すブロック回路図である。図7において、参照符号100はクロックツリー回路、103a,103bは遅延時が可変なクロックドライバ、102a,102bはフリップフロップ、104a,104bはフィードバック配線、105は位相比較回路、106はローパスフィルタ(LPF)、そして、110a,110bは部分クロックツリーを示している。
【0051】
本発明に係るクロックツリー回路100は、クロックを半導体集積回路装置内の各回路(フリップフロップ)に分配するものであり、基本的には、一般的なCTS方式を適用して構成されるが、図7に示されるように、遅延時間が可変な第1の遅延時間可変クロックドライバ103aを有する第1の部分クロックツリー110aおよび遅延時間が可変な第2の遅延時間可変クロックドライバ103bを有する第2の部分クロックツリー110bと、第1の部分クロックツリー110aの先端(クロックドライバ130aの出力)からの第1のクロックCLK1と第2の部分クロックツリー110bの先端(クロックドライバ130bの出力)からの第2のクロックCLK2との位相を比較する位相比較回路105とを備える。そして、位相比較回路105の出力により第1および第2の遅延時間可変クロックドライバ103a,103bの遅延時間が制御されて、第1および第2の部分クロックツリー110a,110b間のスキューを低減し、クロックツリー回路100全体としてのスキューを所定の値(規格値)内に収めるようになっている。ここで、第1および第2の部分クロックツリー110a,110bの先端からは、対称な帰還経路を持つようになっており、相互に相手をリファレンスクロックとみなすことができるような構成となっている。
【0052】
なお、各部分クロックツリー110a,110bにおいても、通常のクロックツリー(クロックツリーの一部)と同様に、複数のクロックドライバを介して複数のフリップフロップに対してクロックを分配するようになっている。第1および第2の部分クロックツリー110a,110bは、それぞれクロックツリー回路100の単なるクロックツリーの一部である。また、位相比較回路105に入力する第1および第2の部分クロックツリー110a,110bの先端からのクロックは、例えば、クロックツリー全体(クロックツリー回路)の最終段のクロックドライバの出力クロックであるが、これに限定されるものではない。
【0053】
すなわち、第1および第2の部分クロックツリー110a,110bの先端からのクロックは、例えば、クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであってもよい。この場合、第1および第2の部分クロックツリー110a,110bの先端からのクロックは、さらに下流の第1および第2の末端クロックドライバツリーを介して分配されることになる。なお、各部分クロックツリー110a,110bからの出力クロックを受け取る各末端クロックドライバツリーは、例えば、CTS方式が適用されるクロックドライバ回路全体と一緒に形成することができる。これらの末端クロックドライバツリーは、例えば、クロックドライバの段数が少なく、また、カバーする領域も狭いために大きなスキューは生じないものと考えられる。
【0054】
位相比較回路105と第1および第2の遅延時間可変クロックドライバ103a,103bとの間に設けられるLPF106は、位相比較回路105からの信号(遅延時間制御信号)をフィードバック配線104a,104b(配線距離が長くなると考えられる)を介して第1および第2の遅延時間可変クロックドライバ103a,103bに供給する場合、その長いフィードバック配線104a,104b上の遅延時間制御信号を直流化して低電力化するためのものである。なお、このLPF106は、例えば、回路構成によってはフィードバック配線104a,104b自体が有する容量負荷(配線容量、寄生容量等)により実現され得るものであり、その場合には、改めてLPF106を設ける必要はない。
【0055】
また、上記説明では、2つの部分クロックツリー(第1および第2の部分クロックツリー110a,110b)における各根元部分のクロックドライバを、それぞれ遅延時間の制御が可能なドライバ(第1および第2の遅延時間可変クロックドライバ103a,103b)として構成したが、予め一方の部分クロックツリー(例えば、第1の部分クロックツリー110a)の出力クロック(CLK1)が他方の部分クロックツリー(例えば、第2の部分クロックツリー110b)の出力クロック(CLK2)よりも必ず速いタイミングの信号であることが分かっていれば、その速いタイミングのクロック(CLK1)を出力する方の部分クロックツリー(例えば、第1の部分クロックツリー110a)の根元部分のクロックドライバ103aだけを遅延時間可変クロックドライバとし、他方の部分クロックツリー(例えば、第2の部分クロックツリー110b)の根元部分のクロックドライバ(103b)を通常のクロックドライバ(遅延時間を制御する機能を持たないクロックドライバ)として構成することもできる。さらに、第1の部分クロックツリー110aの先端のクロックドライバおよび第2の部分クロックツリー110bの先端のクロックドライバは必ずしも同じ階層のクロックドライバである必要はなく、また、第1および第2の遅延時間可変クロックドライバ103a,103bも同じ階層である必要はない。
【0056】
次に、本発明のクロックツリー回路に適用される位相比較回路およびLPF後のフィードバック回路について説明する。
【0057】
図8は図7のクロックツリー回路に適用されるクロックドライバの一例を示す回路図である。
【0058】
図8に示されるように、クロックドライバ(遅延時間可変クロックドライバ)103a(103b)は、位相比較回路105からの立ち上がりエッジ用帰還信号によって制御されるものであり、pMOSトランジスタ31a〜33aおよびnMOSトランジスタ34a〜36aを備え、pMOSトランジスタ32a,33aおよびnMOSトランジスタ35a,36aは電源線間に直列に接続され、また、pMOSトランジスタ31aおよびnMOSトランジスタ34aも直列に接続されている。
【0059】
位相比較回路105(LPF106)からの遅延時間制御信号(立ち上がりエッジ用帰還信号:ブレーキ信号BRK0)は、pMOSトランジスタ31aおよび32aのゲートに供給され、また、クロックは、pMOSトランジスタ33aおよびnMOSトランジスタ35aのゲートに供給されている。ここで、nMOSトランジスタ34aのゲートおよびソースは共通接続され、nMOSトランジスタ31aとpMOSトランジスタ34aとの接続ノードはnMOSトランジスタ36aのゲートに接続されている。そして、pMOSトランジスタ33aのドレインおよびnMOSトランジスタ35aのドレインの接続ノードから出力(遅延時間が制御されたクロック)が取り出されるようになっている。なお、図8に示す遅延時間可変クロックドライバは、単なる一例であり、様々な回路構成を適用することができるのはいうまでもない。
【0060】
図9は本発明に係るクロックツリー回路に適用される位相比較回路の一例を示すブロック回路図であり、図10は図9の位相比較回路におけるブレーキ信号発生回路、および、遅延時間可変クロックドライバにおける電圧リミッタ兼終端部の一例を示す回路図である。
【0061】
また、図11および図12は本発明に係るクロックツリー回路によるスキュー低減の様子を示す図である。図11は、600psの初期スキューの立ち上がりエッジを調整する様子を示すものであり、立ち上がりの600psのスキューは、図12に示す制御信号により120psのスキューTs1になった様子を示している。なお、120psのスキューTs1は、さらなる位相比較回路105による複数回の位相比較結果による制御信号で零になる。また、この例では、立ち下がりの600psのスキューTs2はそのままとなっているが、図13を参照して後述する相補的な信号を帰還することにより、立ち下がりのスキュー低減も行うことができる。
【0062】
まず、位相比較回路105は、記憶素子を駆動し、異なるクロックツリー(部分クロックツリー)に属し、物理的に近くにある2つのクロックを入力とし、それら2つのクロックの位相差に見合った長さのパルスを発生する。ここで、位相比較回路105は、単純なセルベースのディジタル回路で構成可能であり、低電力および低コストで実現することができる。なお、位相比較回路は、ミキサ回路により構成することもできる。なお、位相比較回路も様々な回路構成のものを適用することができるのはもちろんである。
【0063】
図9に示されるように、位相比較回路105は、クロックレシーバ151,152、ダイナミック型Dフリップフロップ153,154、アンプ155、ブレーキ信号発生回路156、インバータ1501〜1504、および、NANDゲート1505〜1508を備えている。ここで、参照符号1050は到着順判定回路を示し、また、1051は位相差判定回路を示す。なお、図9の位相比較回路105は、例えば、68個のトランジスタで構成することができる。
【0064】
第1のクロックレシーバ151は、第1の部分クロックツリー110aからのクロックCLKIN0(図7のCLK1に相当)を受け取って相補のクロック信号CLK0P,CLK0M(図11参照)を出力し、また、第2のクロックレシーバ152は、第2の部分クロックツリー110bからのクロックCLKIN1(図7のCLK2に相当)を受け取って相補の信号CLK1P,CLK11Mを出力する。これら相補のクロックのうち、各負論理の信号CLK0M,CLK1Mはインバータ1501,1502を介してフリップフロップ153,154に供給されると共に、他方の各正論理のクロック信号CLK1P,CLK0Pが一端に入力されたNANDゲート1506,1505に供給される。フリップフロップ153,154の出力はアンプ155に供給され、該アンプ155の出力(制御信号)CLK0V,CLK1V(図12参照)は、NANDゲート1505,1506の出力がインバータ1503,1504を介して一端に入力されたNANDゲート1507,1508の他端に供給される。なお、アンプ155は、クロスカップル(交差接続)されたカレントミラー回路により構成することができるが、他の様々な回路構成を適用することもできる。
【0065】
そして、NANDゲート1507,1508の出力(キックパルス:制御信号)KICK0,KICK1(図12参照)はブレーキ信号発生回路156に供給され、該ブレーキ信号発生回路156から第1および第2の部分クロックツリー110a,110b(第1および第2の部分クロックツリー110a,110bにおける第1および第2の遅延時間可変クロックドライバ103a,103b)に対してブレーキ信号(制御信号)BRK0,BRK1(図12参照)が出力される。なお、このブレーキ信号BRK0,BRK1は、直接に、或いは、LPF106を介して第1および第2の部分クロックツリー110a,110bに供給されるのは、前述した通りである。
【0066】
このように、位相比較回路105は、第1および第2の部分クロックツリー110a,110bからのクロックCLKIN0,CLKIN1(CLK1,CLK2)の到着時間を判定する回路を備え、エッジがあるときだけ動作する低消費電力の回路構成とされ、また、早い方のクロックを遅らせる対称な動作を行うようになっている。なお、後述するように、本発明において、位相比較回路は、CTS方式を適用した直後に挿入位置を決定するため、既存のSoC設計フローと高い整合性を有することになる。
【0067】
図10に示されるように、ブレーキ信号発生回路156は、NANDゲート1507,1508の出力であるキックパルスKICK0,KICK1をゲートで受け取るpチャネル型MOSトランジスタ(pMOSトランジスタ)612,611、および、該のpMOSトランジスタ612;611と直列に接続されたnチャネル型MOSトランジスタ(nMOSトランジスタ)615,616;613,614を備える。ここで、ブレーキ信号発生回路156は、ブレーキ信号発生回路156(位相比較回路105)から第1および第2の遅延時間可変クロックドライバ103a,103bまでの配線負荷容量と共にローパスフィルタを構成している。また、nMOSトランジスタ613〜616のゲートにはイネーブル信号ENBが供給されている。
【0068】
このように、ブレーキ信号発生回路156(LPF106)は、パルス入力(キックパルスKICK0,KICK1)を直流レベルへ変換することで低消費電力化を図るようになっている。また、上記パルス入力で充電系を駆動し、放電系はトランジスタのリーク電流により行うようになっており、低速動作が可能である。さらに、位相比較回路105(ブレーキ信号発生回路156)からクロックツリー(第1および第2の部分クロックツリー110a,110bの各遅延時間可変クロックドライバ103a,103b)のルートへ向けた配線の容量がローパスフィルタを構成するようになっており、足りない場合はMOSキャパシタで補うことができる。
【0069】
電圧リミッタ兼終端部1031は、第1および第2の部分クロックツリー110a,110bの各遅延時間可変クロックドライバ103a,103b内に配置されるもので、ブレーキ信号BRK0;BRK1と電源線(V[0])との間にそれぞれ直列に設けられたnMOSトランジスタ624,625,626;621,622,623を備えている。ここで、電圧リミッタ兼終端部1031は、フィードバック信号(ブレーキ信号BRK0,BRK1)を一定レベル以下に保つためのものであり、この電圧リミッタ兼終端部1031をクロックドライバ103a,103bに設けることにより、ノイズ耐性を向上することができる。なお、電圧リミッタ兼終端部1031は、本発明に必須なものではない。
【0070】
図13は本発明に係るクロックツリー回路の他の実施例を概略的に示すブロック回路図である。
【0071】
上述した図7に示すクロックツリー回路は、例えば、クロックの立ち上がりエッジのみを修正するものであり、そのため、デューティを維持するようにはなっていない。図13に示すクロックツリー回路の実施例において、位相比較回路105は、クロックCLK1,CLK2の立ち上がりおよび立ち下がりの両方のエッジを測定する機能を有し、フィードバック線104a,104bで相補的な信号を帰還する(立ち下がり用帰還信号用のフィードバック線を追加する)ことで、クロックの立ち上がりおよび立ち下がりの両方のエッジを修正してデューティを維持するようになっている。
【0072】
図14は図13のクロックツリー回路に適用されるクロックドライバの一例を示す回路図であり、クロックの立ち上がりエッジおよび立ちさがりエッジの両方の遅延を制御可能な遅延時間可変クロックドライバの一例を示すものである。
【0073】
図14に示されるように、遅延時間可変クロックドライバ103a(103b)は、電源線間に直列に接続されたpMOSトランジスタ37a,38aおよびnMOSトランジスタ39a,40aを備えている。位相比較回路105(LPF106)からの立ち上がりエッジ用帰還信号CNTLP(遅延時間制御信号:ブレーキ信号BRK0)は、pMOSトランジスタ37aのゲートに供給され、pMOSトランジスタ38aおよびnMOSトランジスタ39aの共通接続されたゲートに入力されたクロックCLKINの立ち上がりエッジを制御する。また、立ち下がりエッジ用帰還信号CNTLNは、nMOSトランジスタ40aのゲートに供給され、入力クロックCLKINの立ち下がりエッジを制御する。そして、立ち上がりエッジ用帰還信号CNTLPおよび立ち下がりエッジ用帰還信号CNTLNにより立ち上がりおよび立ち下がりエッジが制御された入力クロックCLKINは、pMOSトランジスタ38aのドレインとnMOSトランジスタ39aのドレインとの接続ノードから出力(遅延時間が制御されたクロック)CLKOUTが取り出されるようになっている。
【0074】
図13に示すクロックツリー回路および図14に示す遅延時間可変クロックドライバは、特に、高速なクロックの場合、クロックの立ち上がりおよび立ち下がりの両方のエッジを使用する場合、および、デューティ依存の回路等において有効なものである。
【0075】
図15は図13のクロックドライバの変形例を示す回路図であり、図15(a)に示すクロックドライバ(遅延時間可変クロックドライバ)は、図14に示すクロックドライバからnMOSトランジスタ40aを除いたものに相当し、また、図15(b)に示すクロックドライバは、図14に示すクロックドライバからpMOSトランジスタ37aを除いたものに相当する。
【0076】
すなわち、図15(a)に示すクロックドライバは、制御信号(立ち上がりエッジ用帰還信号)CNTLPにより入力クロックCLKINの立ち上がりエッジを制御してクロックCLKOUTの遅延時間を制御するようになっており、また、図15(b)に示すクロックドライバは、制御信号(立ち下がりエッジ用帰還信号)CNTLNにより入力クロックCLKINの立ち下がりエッジを制御してクロックCLKOUTの遅延時間を制御するようになっている。
【0077】
ここで、本発明を低電圧(テクノロジーノードの標準電圧(例えば、130nmプロセスの場合、1.0〜1.2V)よりも十分に小さい値(例えば、130nmプロセスでVdd=0.7V以下))で動作する回路に適用する場合、制御信号(帰還信号)として、pMOSトランジスタ37aのゲートに対して0〜Vth(V)程度、nMOSトランジスタ40aのゲートに対してVdd−Vth〜Vdd(V)程度の振幅の小さい信号を用い、遅延時間可変クロックドライバとして上述した図14、図15(a)および図15(b)に示す回路を適用することができ、面積および電力オーバヘッドを小さくすることができる。
【0078】
なお、遅延時間可変クロックドライバとしては、上述したものに限定されず、様々な構成のものを適用することができる。また、図14、図15(a)および図15(b)に示すクロックドライバは、インバータとして構成されているが、例えば、入力クロックCLKINの前段にインバータを1段設けて入力クロックと出力クロックの論理を一致させたバッファとして構成することができるのはいうまでもない。
【0079】
図16は本発明に係るクロックツリー回路のさらなる実施例を概略的に示すブロック回路図である。
【0080】
図16と図7との比較から明らかなように、本実施例のクロックツリー回路では、位相比較回路105からLPF106およびフィードバック配線104aを介して遅延時間可変クロックドライバにフィードバックする制御信号を、1つの遅延時間可変クロックドライバ103aだけでなく複数の遅延時間可変クロックドライバ103a,1032aおよび10322aに供給して遅延時間の制御を行うようになっている。このとき、遅延時間の制御を行う最上流の遅延時間可変クロックドライバ103aよりも下流の遅延時間可変クロックドライバ1032aおよび10322aに対応する遅延時間可変クロックドライバ1031aおよび10321a等に対しても制御信号を供給して遅延時間の制御を行うように構成する。
【0081】
このように、遅延時間の制御を行う遅延時間可変クロックドライバは1段に限定されず、制御信号を複数段の遅延時間可変クロックドライバに供給して遅延時間の制御を行うように構成することもできる。これにより、遅延調節量を大きくすることができ、或いは、一段当たりの遅延調節量を小さくすることで遅延時間の制御特性を向上させることができる。なお、本実施例では、制御信号(帰還信号)は直流レベルで帰還されるため、たとえ制御信号により制御される遅延時間可変クロックドライバの数が増えて寄生容量が増加しても問題とはならない。
【0082】
図17は本発明に係る半導体集積回路装置の設計方法を概念的に説明するための図である。
【0083】
本発明に係る半導体集積回路装置の設計方法の前提として、クロックツリーは単純な分岐構造を有して再収斂しない(再び合流しない)ようになっており、さらに、分岐後の部分クロックツリーは、領域をほぼ排他的で、且つ、凸領域的(異なる部分クロックツリーが複雑に入り込んだりすることなく)にカバーする。
【0084】
図17に示されるように、本発明の半導体集積回路装置の設計方法は、まず、目的とする半導体集積回路装置(チップ或いはモジュール)のクロックツリー100を、CTS方式を適用して構成し(S1)、その後、部分クロックツリーのペア(第1の部分クロックツリー110aおよび第2の部分クロックツリー110b)を選択し(S2)、さらに、位相差観測回路(位相比較回路)105およびローパスフィルタ(LPF)106を配置する(S3)。なお、前述したように、例えば、フィードバック配線104(104a,104b)自体が有する容量負荷によりローパスフィルタの機能が代用可能な場合には、LPF106を設けなくてもよい。
【0085】
すなわち、本発明の半導体集積回路装置の設計方法では、第1の部分クロックツリー110aにおける先端領域120a内の1つのクロックドライバ(図7におけるクロックドライバ130aに相当)と、第2の部分クロックツリー110bにおける先端領域120b内の1つのクロックドライバ(図7におけるクロックドライバ130bに相当)を選び、位相比較回路105によりこれら2つのクロックドライバからの出力クロックを位相比較する。ここで、位相比較回路105は、上記選択された2つのドライバの中央部付近に配置するのが好ましい。なお、第1の部分クロックツリー110aにおける先端領域120aおよび第2の部分クロックツリー110bにおける先端領域120bから選択される各クロックドライバは、それぞれ任意のものを選択することができるが、各先端領域120aおよび先端領域120bにおいて代表的な(平均的な)クロックの到着時間を有し、且つ、第1の部分クロックツリー110aと第2の部分クロックツリー110bとの隣接部に近い(物理的に近い距離にある)2つのクロックドライバを選択するのが好ましい。この選択される各クロックドライバとしては、例えば、最終段のクロックドライバ、或いは、最終段よりも所定段数だけ上流のクロックドライバであるが、必ずしも同じ段数のものである必要はない。
【0086】
さらに、位相比較回路105(LPF106)から第1および第2の遅延時間可変クロックドライバ103a,103bまでフィードバック配線104(104a,104b)を敷設する(S4)。そして、位相比較回路105の出力により第1および第2の遅延時間可変クロックドライバ103a,103bにおける遅延時間を制御する(S5)。なお、2つの遅延時間可変クロックドライバ103a,103bは、予め第1および第2の部分クロックツリー110a,110bの出力クロックにおけるタイミングの前後関係が分かっていれば、速いタイミングのクロックを出力する一方の部分クロックツリーに対してのみ遅延時間可変クロックドライバを設け、他方の部分クロックツリーに対しては通常のクロックドライバを設けるように構成することもできる。
【0087】
同様に、上述した第1の部分クロックツリー110aとして、上記の第1および第2の部分クロックツリー110a,110bを含む部分クロックツリー110a’を設定し、この新たな第1の部分クロックツリー110a’に対する新たな第2の部分クロックツリーとして部分クロックツリー110b’を設定して、上述した第1および第2の部分クロックツリー110a,110bに対する処理と同様の処理を再帰的に適用することができる(S6)。すなわち、クロックツリー100の分岐構造に対応して第1および第2の部分クロックツリー110a,110b;110a’,110b’;…を抽出し、上述した処理を再帰的に適用することで、半導体集積回路装置全体に対して本発明を適用することができる。
【0088】
本発明に係る半導体集積回路装置の設計方法は、まず、CTS方式を軽く(本来の要求より緩いタイミング制約で)実施し、さらに、クロックツリーを部分クロックツリーにクラスタ化(抽出)する。このとき、各クラスタ内のクロックスキュー見積り値が一定以下になるようにする。また、隣接(近接)する部分クロックツリーの代表的到着時間が近いものを組み合わせてスキュー低減回路を入れる。この組み合わせた回路(ツリー)は再び部分クロックツリーとなる。
【0089】
なお、本発明に係る半導体集積回路装置の設計方法において、例えば、ゲーティドクロックでは、イネーブル回路以降を部分クロックツリーと捉えるとよい。もちろん、イネーブルより上流へも適用することは可能である。また、データ転送のないサブツリー間には、スキュー低減回路を入れなくてもよい。さらに、CTS方式を適用した後、スキュー低減回路の挿入位置を決定し、クロックツリーの先端部から位相比較器までをクロックと同様の優先配線とする。この配線は、なるべく等長、等遅延になるように引かなければならないが物理的に近接する配線のため問題少ない。また、フィードバック線のレイアウトは、普通の信号と同じ扱いでよく、また、必要に応じて遠回りさせてもよい。そして、クロックツリーの広がりに応じて再帰的、階層的に適用する。
【0090】
図18は本発明に係るクロックツリー回路のさらに他の実施例を概略的に示すブロック回路図であり、ゲーティドクロック方式の回路に対して適用したものである。
【0091】
図18に示されるように、NANDゲート107A〜107Zにはそれぞれイネーブル信号ENA〜ENZが入力され、出力されるクロックの活性化の制御を行うようになっている。ここで、NANDゲート107Aの出力クロックが供給される下流側(フリップフロップFF側)を第1の部分クロックツリー110aとし、NANDゲート107Zの出力クロックが供給される下流側を第2の部分クロックツリー110bとする。すなわち、イネーブル回路(NANDゲート107A,107Z)よりも下流側を部分クロックツリーと捉え、位相比較回路105、LPF106a,106bおよび遅延時間可変クロックドライバ103a,103b等によるスキュー低減回路を設ける。
【0092】
なお、イネーブル回路(NANDゲート107A,107Z)よりも上流側(ルート側)に対しては、別途部分クロックツリー110a’および110b’を抽出して、第1および第2の部分クロックツリー110a,110bに対する処理と同様の処理を行ってスキュー低減回路を設ける。このとき、CTSは全てのクロックツリー(例えば、部分クロックツリー110a,110bおよび110a’,110b’)に対して一括して行ってもよいが、ゲーティドされる点を境界にして分割して行う、すなわち、例えば、部分クロックツリー110a,110bと部分クロックツリー110a’,110b’に対してCTSを分割して行うようにすることもできる。
【0093】
以下、本発明に係る半導体集積回路装置の設計方法を従来技術と比較しつつ、詳述する。
【0094】
図19は一般的な半導体集積回路装置の設計フローの一例を示す図であり、通常のSoCの論理・回路設計フローを示すものである。
【0095】
図19に示されるように、論理・回路設計は、まず、ステップS10において、アーキテクチァ設計、RT(Register Transfer)設計・検証および論理合成・検証を行い、さらに、ステップS11に進んで、フロアプランニング、配置配線およびCTSを行う。ここで、クロックスキューに対する制約は、ステップS11における配置配線後のCTS(Clock Tree Synthesis)工程で行われる。
【0096】
さらに、ステップS12に進んで、寄生素子を抽出し、ステップS13に進んで、抽出された寄生素子を考慮したタイミング検証を行う。すなわち、レイアウトより寄生素子を抽出しその寄生素子を含めたシミュレーション(バックアノテーション:レイアウトから抽出した寄生容量および抵抗成分等を考慮したタイミング検証)を行う。そして、ステップS14において、タイミングが正しいかどうかの判定を行う。
【0097】
ステップS14において、タイミングが正しい(YES)と判定されると、ステップS15に進んでマスクの作成を行う(設計工程が終了する)。ここで、ステップS14におけるタイミングが正しいとの判定は、精度の高いタイミング検証の結果、目的とする半導体集積回路装置(例えば、SoC)が設計者の意図通り動作することが確認された場合であり、そのときには、設計工程が終了し、次のマスクの作成工程に進むことになる。
【0098】
一方、ステップS14において、タイミングが正しくない(NO)と判定されると、ステップS16に進んで、実装設計からのデータを取り込んで、必要に応じてステップS10およびステップS11の処理を行った後、ステップS12の寄生素子の抽出処理およびステップS13のタイミング検証処理を再度実行し、上述したステップS14において、タイミングが正しいと判定されるまでこれらの処理を繰り返す。
【0099】
すなわち、タイミングエラーやマージン不足等があった場合には、フローの上流に戻るがどこに戻るか(ステップS10或いはS11)は、ケースバイケースである。ここで、クロックスキューはセットアップおよびホールドの両マージンを支配し、最上流のアーキテクチァから見直す場合からレイアウト結果の小修正で済む場合まで様々である。このように、SoCの設計フローは、例えば、SoCの微細化等に伴って上記のループを収束させることが困難になっているのが現状である。
【0100】
なお、上述したステップS14におけるタイミングが正しくないとの判定は、スキューがどうなっているかは別として、目的とする回路が誤動作したことを意味する。ここで、レイアウトの後、タイミングが原因でバックアノテーションの結果、誤動作が生じる原因は、(1) 最長パスに当初の見積もり以上の遅延が付いてセットアップマージンを満たさなくなった場合、(2) 最短パスに当初の見積もり程の遅延が付かずホールドマージンを満たさなくなった場合、(3) 出発側クロックが見積もり値よりも遅くなってセットアップマージンを満たさなくなった場合、(4) 到着側クロックが見積もり値よりも早くなってセットアップマージンを満たさなくなった場合、(5) 出発側クロックが見積もり値よりも早くなってホールドマージンを満たさなくなった場合、および、(6) 到着側クロックが見積もり値よりも遅くなってホールドマージンを満たさなくなった場合等のいずれか1つが、或いは、それらの複数が同時に起こったことにある。なお、以下に詳述する本発明に係る半導体集積回路装置の設計方法は、特に、上記(3)〜(6)に起因してタイミングが正しくないと判定された場合に有効なものである。
【0101】
図20は本発明に係る半導体集積回路装置の設計フローの一例を示す図であり、通常のSoCの実装設計フローを示すものである。
【0102】
図20に示されるように、本実施例において、実装設計は、まず、ステップS20において、フロアプランニング、配置配線およびCTSを行い、ステップS21に進んで、寄生素子を抽出し、さらに、ステップS22に進んで、抽出された寄生素子を考慮したタイミング検証(バックアノテーション)を行う。そして、ステップS23において、タイミングが正しいかどうかの判定を行う。
【0103】
ステップS23において、タイミングが正しい(YES)と判定されると、ステップS24に進んでマスクの作成を行う(設計工程が終了する)。一方、ステップS23において、タイミングが正しくない(NO)と判定されると、ステップS26に進んで、エラー個所にスキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)し、さらに、ステップS25に進んで、ECO(Engineering Change Order)処理を行う。そして、ステップS25でECO処理を行った後、ステップS21の寄生素子の抽出処理およびステップS22のタイミング検証処理を再度実行し、上述したステップS23において、タイミングが正しいと判定されるまでこれらの処理を繰り返す。
【0104】
このように、本実施例では、図19に示すステップS14(図20のステップS23)において、タイミングが正しくないと判定されると、ステップS26におけるエラー個所に対するスキュー低減回路の挿入処理を行うようになっている。なお、回路を挿入するための配置配線の変更は、技術的に十分確立されたECO処理(ステップS27)を適用することができる。この図20に示すような設計フローをサポートする機能は、自動レイアウトツールの機能の一部とすることが可能である。ここで、上記設計フローで得られる回路は、見積もり値でのクロックツリー設計であり、動作時のスキューを最小化する効果は十分ではないこともあるが、物理設計ループを収束させることは可能である。
【0105】
図21は図20の設計フローにおけるスキュー低減回路の挿入処理(図20のステップS26)の一例を示す図であり、図22は図21のスキュー低減回路の挿入処理を説明するための図である。なお、図22は、各クロックTaおよびTbを受け取る2つのフリップフロップ(FF)間で組み合わせ回路を介したエラーパスが存在している様子を示している。
【0106】
図21に示すスキュー低減回路の挿入処理は、図20の実施例において、ステップS23でタイミングが所定のスキュー値を満たしていない(NO)と判定され、ステップS26で行うエラー個所にスキュー低減回路を挿入する処理を示している。
【0107】
図21に示されるように、スキュー低減回路の挿入処理(ステップS26)は、まず、ステップS261において、パスの終端と始端のクロックスキューをTsとし、セットアップ(ホールド)エラーをTeとしてステップS262に進む。ステップS262では、スキューTb−Ta(=Ts)がエラーTeよりも大きいか否かを判定する。ここで、クロックTaおよびTbは、クロックドライバ(バッファまたはインバータ)130aおよび130bの出力であり、例えば、図7における第1および第2の部分クロックツリー110aおよび110bの出力クロックCLK1およびCLK2に相当する。
【0108】
ステップS262において、スキューTb−TaがエラーTe以下である(NO)と判定されると、ステップS260に進んで、通常の対策(例えば、図19におけるステップS11,S16およびS10等の処理)を行う。一方、ステップS262において、スキューTb−TaがエラーTeよりも大きい(YES)と判定されると、ステップS263に進んで、図22に示されるように、クロックツリーを遡り、Tb’−Ta’>Teを満たすなるべく上流のクロックドライバの組103a,103bを規定(検出)する。さらに、ステップS264に進んで、クロックスキューの観測点の近傍(クロックドライバ130a,130bの近く)に2つのクロックTa,Tbの位相差を検出(位相を比較)する位相差検出回路(位相比較回路105)を配置すると共に、ステップS263で規定されたクロックドライバの組103a,103bを遅延時間可変クロックドライバ(可変遅延バッファ)で置き換えて、ステップS25に進む。なお、ステップS264では、位相差検出回路により検出された位相差に応じて遅延時間可変クロックドライバ103a,103bにおける遅延時間の制御を行う配線も行う。
【0109】
これにより、クロックスキューが原因で些少なセットアップ不足やホールド不足が少数の場合には、上述した本発明の半導体集積回路装置の設計方法(スキュー低減回路)を適用して局所的にスキューを小さくして設計を行うことができる。また、本発明を適用することにより、データパス系のレイアウトが原因となるセットアップ不足に対しても、より高精度にスキューを抑え込むことでセットアップ不足を回避することが可能な場合もある。
【0110】
図23は本発明に係る半導体集積回路装置の設計フローの他の例を示す図である。
【0111】
図23において、各ステップS30,S31およびS33〜S37は、それぞれ図19におけるステップS10,S11およびS12〜S16に相当し、本実施例では、図19のステップS11(図23のステップS31)の後に、スキュー低減回路を挿入するステップS32をさらに設けるようにしたものである。
【0112】
すなわち、図23に示されるように、本実施例では、ステップS30でアーキテクチァ設計、RT設計・検証および論理合成・検証を行い、さらに、ステップS31でフロアプランニング、配置配線およびCTSを行った後、ステップS32に進んで、スキュー低減回路の挿入処理を行う。さらに、ステップS33に進んで寄生素子を抽出し、そして、ステップS34で抽出された寄生素子を考慮したタイミング検証を行う。すなわち、図19と同様の処理を行い、さらに、ステップS35において、タイミングが正しいかどうかの判定を行う。なお、本実施例におけるステップS35〜S37の処理は、図19を参照して説明したステップS14〜S16と同様であり、その説明は省略する。
【0113】
図24は本発明に係る半導体集積回路装置の設計フローのさらに他の例を示す図であり、通常のSoCの実装設計フローを示すものである。
【0114】
図24に示されるように、実装設計は、まず、ステップS40において、フロアプランニング、配置配線およびCTSを行い、さらに、ステップS41に進んで、スキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)する。その後、ステップS42において、寄生素子を抽出し、さらに、ステップS43に進んで、抽出された寄生素子を考慮したタイミング検証(バックアノテーション)を行う。そして、ステップS44において、タイミングが正しいかどうかの判定を行う。
【0115】
ステップS44において、タイミングが正しい(YES)と判定されると、ステップS45に進んでマスクの作成を行う(設計工程が終了する)。一方、ステップS44において、タイミングが正しくない(NO)と判定されると、ステップS47に進んで(経路P2)、エラー個所にスキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)し、さらに、ステップS46に進んで、ECO処理を行う。そして、ステップS46でECO処理を行った後、ステップS42の寄生素子の抽出処理およびステップS43のタイミング検証処理を再度実行し、上述したステップS44において、タイミングが正しいと判定されるまでこれらの処理を繰り返す。ここで、ステップS41のスキュー低減回路の挿入処理は、図23におけるステップS32と同様のものであり、また、ステップS47のエラー個所に対するスキュー低減回路の挿入処理は、図20におけるステップS26と同様のものであり、これらステップS41およびS47の処理は、前述した図21および図22を参照して説明した通りである。
【0116】
なお、ステップS44において、タイミングが正しくない(NO)と判定されたとき、ステップS47に進んで上述した処理を行う代わりに、図19を参照して説明した一般的な半導体集積回路装置の設計フローと同様に、実装設計からのデータを取り込み(図19のステップS16)、必要に応じて、アーキテクチァ設計、RT設計・検証および論理合成・検証(図19のステップS10)、並びに、フロアプランニング、配置配線およびCTS(図19のステップS11)を行ってもよい(経路P1)。
【0117】
すなわち、クロックスキューの「見積もり値」は自動レイアウト後、或いは、自動レイアウト内部で判定することができ、例えば、スキューが目標値よりも大きいときは、スキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)してタイミングエラーが生じる可能性を小さくすることができる。さらに、全クロックツリーに対してスキュー低減回路を挿入すれば、動的にクロックスキューを最小化することが可能になる。また、上述したように、ステップS44のバックアノテーション後、タイミングが正しくない(NO)と判定された場合には、ステップS47に進んでエラー個所に対してさらにスキュー低減回路を挿入(経路P2)することもできるが、経路P1のように、通常のフロー(図19に示すようなフロー)で進むこともできる。これは、ステップS44において、タイミングが正しくないと判定された場合(タイミングによる誤動作があった場合)、スキューの増大が原因のときには経路P2を流れる処理を行い、また、データパスの遅延が原因の場合には経路P1を流れる処理を行うことになる。
【0118】
図25は通常のCTS方式を適用したクロックツリーの一例を概略的に示す図であり、また、図26は本発明を適用したクロックツリーの一例を概略的に示す図である。図25および図26において、参照符号400はクロックが分配される逆L字形のセルの配置配線領域を示し、また、410は通常のCTS方式を適用してセルの配置配線領域400までクロックを分配するクロックツリー(クロックツリー回路)の一部を示し、そして、420は本発明による2つの部分クロックツリーを抽出してセルの配置配線領域400までクロックを分配するクロックツリーの一部を示す。ここで、図25および図26において、各三角形印はそれぞれクロックドライバ(バッファまたはインバータ)を示している。なお、図25および図26において、逆L字形のセルの配置配線領域400の左下の矩形領域に、例えば、メモリマクロ等が既に置かれていて配線領域として使用できない場合、セルの配置配線領域400までのクロックツリーの一部410および420は、セルの配置配線領域400内に配線されることになる。
【0119】
図25に示されるように、通常のCTS方式を適用したクロックツリーは、全ての領域において、それぞれの配線の長さを対称的に延ばしてクロックツリーを構成するため、全体としての配線長(総配線長)も長くなり、また、クロックツリーの階層も深くなり、そして、クロックドライバの数も多くなる。
【0120】
これに対して、本発明を適用すると、図26から明らかなように、総配線長を短くすることができ、また、クロックツリーの階層も浅くすることができ、さらに、クロックドライバの数も少なくしてクロックツリーを構成することが可能になる。図26において、各クロックドライバの組AおよびB、CおよびD、並びに、EおよびFは、それぞれ抽出された2つの部分クロックツリーの遅延時間可変クロックドライバ(図7の103a,103b)に相当するものであり、例えば、それぞれ最終段のクロックドライバの組からの2つのクロックを位相比較回路(図7の105)で比較して、各遅延時間可変クロックドライバの遅延時間を制御する。ここで、各遅延時間可変クロックドライバの組A,B;C,D;E,Fは階層化されており、例えば、第1の組の遅延時間可変クロックドライバAおよびBに対して本発明を適用(処理X)し、さらに、第2の組の遅延時間可変クロックドライバCおよびDに対して本発明を適用(処理Y)し、そして、第3の組の遅延時間可変クロックドライバEおよびFに対して本発明を適用(処理Z)することができる。
【0121】
遅延時間可変クロックドライバAおよびBは、最終段のクロックドライバ401および402から出力されるクロックの位相を比較し、その2つのクロックの位相差(2つのクロックの到着時間差)に応じて遅延時間可変クロックドライバAおよびBの遅延時間の制御を行うようになっている。なお、前述したように、1組のクロックドライバ401,402から出力される2つのクロックの内、予め遅れる方のクロックがどちらかが分かっていれば、その反対(進む方)のクロックを伝えるクロックドライバのみを遅延時間可変クロックドライバとし、他方(遅れる方のクロックを伝えるクロックドライバ)は遅延時間可変機能を持たない通常のクロックドライバとして構成することができる。
【0122】
また、例えば、遅延時間可変クロックドライバCおよびDに関して、最終段のクロックドライバ403および404から出力されるクロックの位相を比較してもよいが、最終段よりも上流のクロックドライバBおよび405から出力されるクロックの位相を比較し、その位相比較結果により遅延時間可変クロックドライバC,Dの遅延時間を制御するように構成することもできる。なお、クロックドライバBおよび405の出力クロックを受け取る後段のクロックドライバは、例えば、CTS方式によりクロックツリー回路全体を構成するのと同時にクロックツリーの一部として構成されるが、クロックドライバBおよび405までの(上流の)クロックツリーと、クロックドライバBおよび405の出力クロックを受け取るそれ以降の(下流の)クロックツリーとを独立に構成することもできる。ここで、クロックドライバBおよび405の出力クロックを受け取る下流のクロックツリーは、例えば、クロックドライバの段数が少なく、また、カバーする領域も狭いために大きなスキューは生じないものと考えることができる。
【0123】
さらに、例えば、遅延時間可変クロックドライバEおよびFに関して、最終段のクロックドライバ406および407から出力されるクロックの位相を比較してもよいが、最終段よりも上流のクロックドライバDおよび408からのクロックの位相を比較し、その位相比較結果により遅延時間可変クロックドライバE,Fの遅延時間を制御してもよい。なお、遅延時間可変クロックドライバの遅延時間としては、予め所定の遅延時間を持つように構成しておき、一方の遅延時間可変クロックドライバによりその遅延時間可変クロックドライバを介して伝えられるクロックのタイミングを早くも遅くも制御することもできる。
【0124】
このように、本発明は、大域的分配は厳密に等遅延なツリーを組む必要がなく、不均等な領域に対してもそのまま適用することができ、リピータ(クロックドライバ)の数や配線長を低減することができる。
【0125】
図27は本発明に係る半導体集積回路の設計プログラムを記録した媒体の例を説明するための図である。図27において、参照符号310は処理装置、320はプログラム(データ)提供者、そして、330は可搬型記録媒体を示している。
【0126】
上述した各実施例に係る半導体集積回路の設計方法は、例えば、図27に示すような処理装置310に対するプログラム(データ)として与えられ、処理装置310により実行される。処理装置310は、プロセッサを含む演算処理装置本体311、および、演算処理装置本体311に対してプログラム(データ)を与えたり或いは処理された結果を格納する処理装置側メモリ(例えば、RAM(Random Access Memory)やハードディスク)312等を備える。処理装置310に提供されたプログラム(データ)は、ローディングされて処理装置310のメインメモリ上で実行される。
【0127】
プログラム(データ)提供者320は、プログラム(データ)を格納する手段(回線先メモリ:例えば、DASD(Direct Access Storage Device))321を有し、例えば、インターネット等の回線を介してプログラム(データ)を処理装置310に提供したり、或いは、CD−ROMやDVD等の光ディスクまたはフロッピィディスク等の磁気ディスクといった可搬型記録媒体330を介して処理装置310に提供する。本発明に係る半導体集積回路の設計プログラムを記録した媒体は、上記の処理装置側メモリ312、回線先メモリ321、および、可搬型記録媒体330等の様々なものを含むのはいうまでもない。
【0128】
このように、本発明に係るクロックツリー回路、或いは、半導体集積回路装置の設計方法によれば、クロックツリーの先端部(120a,120b:クロックツリーの先端:フリップフロップの入力)のクロックを常時観測するため、見積もり誤差、製造ばらつき、電源電圧変動および温度変化等に起因したスキューに対しても動的にスキュー低減の効果を発揮することができる。また、観測点として物理的に近接した点を選択するため、観測用信号(各部分クロックツリー110a,110bの先端から位相比較器105までの間)の配線長を無視することができ、さらに、クロックによる高周波数で動作するノードが位相比較回路内およびその近傍に限られるため、交流電流のオーバヘッドを微小にすることができる。
【0129】
また、本発明によれば、従来技術のように、リファレンスクロックが事実上存在しないため、低電力であり、且つ、リファレンスクロックをゼロスキューで分配するといった問題を回避することができる。そして、CTS方式に対する要求を緩和できるため、クロックツリーの段数と配線長が小さくなり、動作電力の削減も期待できる。なお、位相比較回路(位相差検出回路)および遅延時間可変クロックドライバ(可変遅延回路)は共に小規模回路として構成することができ、CTS方式を適用した後のクロックツリーに対して、上記小規模回路を付加するだけでよいため、現状の設計フローに対する整合性が高いといった利点もある。
【0130】
さらに、本発明によれば、ローパスフィルタ(LPF106)の後の信号を帰還する場合、フィードバック信号が直流電位のため、配線長を考慮する必要がなくなり、また、動作電流も少なくすることができる。そして、LPFの後の信号を帰還する場合、ディジタル信号の帰還に比べるとリピータが不要になるため、低コスト化および低電力化を図ることができる。
【0131】
【発明の効果】
以上、詳述したように、本発明によれば、低消費電力および低コストで実装設計の容易なクロックツリー回路(半導体集積回路装置)を提供することができ、また、PVT変動に対して耐性を与えることができるので、低電圧で高速動作するLSIのマージン確保を有効に行うことが可能になる。
【図面の簡単な説明】
【図1】半導体集積回路装置のクロックツリー設計の技術背景を説明するための図(その1)である。
【図2】半導体集積回路装置のクロックツリー設計の技術背景を説明するための図(その2)である。
【図3】半導体集積回路装置におけるクロックツリーの具体例を概念的に示す図である。
【図4】CTS方式におけるクロックスキューと消費電力との関係を示す図である。
【図5】低電圧で動作する半導体集積回路装置のクロックツリー設計を説明するための図である。
【図6】従来のクロックツリー回路の一例を示すブロック回路図である。
【図7】本発明に係るクロックツリー回路の一実施例を概略的に示すブロック回路図である。
【図8】図7のクロックツリー回路に適用されるクロックドライバの一例を示す回路図である。
【図9】本発明に係るクロックツリー回路に適用される位相比較回路の一例を示すブロック回路図である。
【図10】図9の位相比較回路におけるブレーキ信号発生回路、および、遅延時間可変クロックドライバにおける電圧リミッタ兼終端部の一例を示す回路図である。
【図11】本発明に係るクロックツリー回路によるスキュー低減の様子を示す図(その1)である。
【図12】本発明に係るクロックツリー回路によるスキュー低減の様子を示す図(その2)である。
【図13】本発明に係るクロックツリー回路の他の実施例を概略的に示すブロック回路図である。
【図14】図13のクロックツリー回路に適用されるクロックドライバの一例を示す回路図である。
【図15】図13のクロックドライバの変形例を示す回路図である。
【図16】本発明に係るクロックツリー回路のさらなる実施例を概略的に示すブロック回路図である。
【図17】本発明に係る半導体集積回路装置の設計方法を概念的に説明するための図である。
【図18】本発明に係るクロックツリー回路のさらに他の実施例を概略的に示すブロック回路図である。
【図19】一般的な半導体集積回路装置の設計フローの一例を示す図である。
【図20】本発明に係る半導体集積回路装置の設計フローの一例を示す図である。
【図21】図20の設計フローにおけるスキュー低減回路の挿入処理の一例を示す図である。
【図22】図21のスキュー低減回路の挿入処理を説明するための図である。
【図23】本発明に係る半導体集積回路装置の設計フローの他の例を示す図である。
【図24】本発明に係る半導体集積回路装置の設計フローのさらに他の例を示す図である。
【図25】通常のCTS方式を適用したクロックツリーの一例を概略的に示す図である。
【図26】本発明を適用したクロックツリーの一例を概略的に示す図である。
【図27】本発明に係る半導体集積回路の設計プログラムを記録した媒体の例を説明するための図である。
【符号の説明】
1…クロック供給源(クロックジェネレータ)
2…クロック供給先(フリップフロップ)
3,21〜24,31〜33,321〜323…クロックドライバ
4a,4b;41a〜43a,41b〜43b;421a〜423a,421b〜423b,4220…クロック配線
41〜43…チャージポンプ回路
100…クロックツリー回路
103a…第1の遅延時可変クロックドライバ
103b…第2の遅延時可変クロックドライバ
102a,102b…フリップフロップ
104a,104b…フィードバック配線
105,105’…位相比較回路
106…ローパスフィルタ(LPF)
107A〜197Z…イネーブル回路(NANDゲート)
110a…第1の部分クロックツリー
110b…第2の部分クロックツリー
151,152…クロックレシーバ151,152
153,154…ダイナミック型Dフリップフロップ
155…アンプ
156…ブレーキ信号発生回路
310…処理装置
320…プログラム(データ)提供者
330…可搬型記録媒体
400…セルの配置配線領域
410,420…クロックツリーの一部
1501〜1504…インバータ
1505〜1508…NANDゲート
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a clock distribution technique, and more particularly to a clock tree circuit, a semiconductor integrated circuit device, a design method for a semiconductor integrated circuit device, and a semiconductor integrated circuit that operate with low power, are easy to design, and have low skew. The present invention relates to a medium on which a circuit design program is recorded.
[0002]
Conventionally, in an ASIC / SoC (Application Specific Integrated Circuit / System on Chip) design, a clock distribution with a small clock skew is called CTS (Clock Tree Synthesis). ), And then synthesize and arrange and prioritize the inverter or buffer tree so that the propagation delay time from the clock supply source to all the supply destinations (for example, the clock input terminals of the flip-flops) is as equal as possible. A static method based on timing information of a cell library for wiring and information on parasitic elements such as wiring delay has been used.
[0003]
In addition, a number of proposals aimed at improving accuracy, such as preparing a cell set with a high variety of delays, in order to improve clock distribution accuracy (to reduce the difference in propagation delay time to each clock supply destination). In addition, it has been put to practical use. In order to cope with estimation errors of parameters that cannot be absorbed yet, manufacturing variations, and fluctuations due to power supply voltage and temperature during operation, several methods for dynamically adjusting the delay have been proposed.
[0004]
By the way, the above-described static method is extremely difficult to satisfy the demand for the delay time of clock propagation from the clock supply source to each supply destination due to the recent miniaturization of semiconductor integrated circuit devices and the reduction of the operating voltage thereof. It is the actual situation. In other words, when the clock propagation delay time is forcibly brought close to the target, the clock tree becomes deep (the number of stages in the hierarchy is large), and the circuit scale and power consumption are broken. Furthermore, the conventionally known dynamic method consumes a large amount of power, has a large circuit scale, or is inconsistent with the normal SoC design flow and increases the load on the system (hardware or software). There is a problem.
[0005]
Therefore, there is a strong demand for a clock distribution technique that operates with low power, is easy to design, and has low skew.
[0006]
[Prior art]
First, a technical background of clock tree design in a semiconductor integrated circuit device will be described with reference to FIGS.
[0007]
FIG. 1 and FIG. 2 are diagrams for explaining the technical background of the clock tree design of a semiconductor integrated circuit device. After arranging LSI cells, the propagation delay times from the clock supply source to all the supply destinations are as equal as possible. As described above, the CTS method is described in which an inverter or a buffer tree is synthesized and placed and wired. In FIG. 1, reference numeral 1 is a clock supply source (clock generator), 2 is a clock supply destination (flip-flop), 3, 31-33, 321-323 are clock drivers (buffers or inverters), and 4a, 4b; Reference numerals 41a to 43a, 41b to 43b; 421a to 423a, 421b to 423b, and 4220 denote clock wirings.
[0008]
As shown in FIG. 1, the clock tree in the semiconductor integrated circuit device is configured such that the clock from the clock generator 1 is divided into a hierarchical clock driver (for example, clock drivers 3, 32, 322) and clock wiring (for example, clock wiring). 4a, 4b, 42a, 42b, 422a, 422b, 4220) and supplied to the clock terminal CK of the flip-flop 1. In FIG. 1, only one flip-flop is illustrated, but actually, a clock is supplied to each corresponding flip-flop (2) from a plurality of clock drivers (322) at the final stage. Is supplied.
[0009]
Here, in the plurality of flip-flops (2) that receive the clock, the time difference (difference in propagation delay time: clock skew) between the flip-flop that receives the clock at the fastest timing and the flip-flop that receives the clock at the slowest timing is calculated. Assuming Ts, the clock skew Ts is preferably as small as possible. That is, it is necessary to control each circuit (each flip-flop) in the semiconductor integrated circuit device with the same clock edge.
[0010]
By the way, in the semiconductor integrated circuit device, flip-flops that receive a clock are scattered at various positions on the chip, and from the clock generator 1 (or the clock input terminal of the semiconductor integrated circuit device) to each flip-flop (2). The lengths of the clock wirings (4a, 4b, 42a, 42b, 422a, 422b, 4220) are different from each other, and the parasitic capacitances of these clock wirings are not constant. Therefore, in order to control all the flip-flops (2) receiving the clock at the same timing, the clock drivers (3, 32, 322) are increased in hierarchy (deeply in the clock tree), and each of these clock drivers A short clock wiring (small parasitic capacitance) is driven.
[0011]
Furthermore, in recent years, semiconductor integrated circuit devices have been driven by higher-speed clocks in order to further improve their performance. As described above, when the clock frequency is increased, the requirement for the clock skew becomes more severe.
[0012]
Specifically, for example, as shown in FIG. 2, when a 10% timing margin (ie, 1 ns) is allowed at a clock frequency of 100 MHz, for example, when the clock frequency becomes 200 MHz even with the same 10% timing margin. Only half the time (0.5 ns) is allowed. In other words, in the case where the same 1 ns clock skew exists, if the clock frequency is 200 MHz, a malfunction may occur if there is no timing margin of 20%.
[0013]
Therefore, when the clock frequency is increased, more clock drivers are used, resulting in an increase in power consumption.
[0014]
FIG. 3 is a diagram conceptually illustrating a specific example of a clock tree in the semiconductor integrated circuit device, and FIG. 4 is a diagram illustrating a relationship between clock skew and power consumption in the CTS method. Here, FIG. 3A shows a case where B (Bounding parameter) = 1 ps, that is, the clock skew is 1 ps. At this time, COST = 1229755, that is, the circuit scale (wiring length) is 1229755. FIG. 3B shows a case where B = 10 ps (when the clock skew is 10 ps), and at this time, COST = 1112512 (circuit scale: 1112512). Further, FIG. 3C shows a case where B = ∞ (when clock skew is not considered), and at this time, COST = 780100 (circuit scale: 780100). For example, flip-flops (not shown) are provided at the tips of the branches of the clock tree.
[0015]
As is clear from FIGS. 3A to 3C, it can be seen that the smaller the clock skew, the more complicated the clock tree and the larger the circuit scale.
[0016]
That is, as apparent from FIG. 4 showing the relationship between the clock skew and the power consumption, the clock tree to which the CTS method is applied increases the power consumption because the number of tree stages increases when the clock skew value is reduced. To do. Furthermore, in order to satisfy a severe skew, the scale of the clock tree increases explosively and becomes unrealistic, and physical feasibility as a layout becomes difficult. Further, even if such a deep (a large number of clock driver stages) clock tree is formed, there is a question about the timing accuracy in the actually manufactured semiconductor integrated circuit device. From experience, there is also an idea that a shallow clock tree may be accurate.
[0017]
FIG. 5 is a diagram for explaining a clock tree design of a semiconductor integrated circuit device operating at a low voltage. FIG. 5A shows a control system and a data path system in an example of a semiconductor integrated circuit device operating at a low voltage. FIG. 5B shows a percentage of power consumption in each specific example of a semiconductor integrated circuit device operating at a low voltage.
[0018]
As shown in FIG. 5A, the core power consumption in an example of a semiconductor integrated circuit device operating at a low voltage is, for example, about 53% is consumed in the control system, and about 38% is consumed by the logic circuit. And about 15% is consumed by the clock driver. Further, for example, about 43% is consumed in the data path system, of which about 28% is consumed by the logic circuit and about 15% is consumed by the clock. It can be seen that it is consumed by the driver. In the clock block system, about 4% is consumed by the clock driver. In total, it can be said that about 34% of the total power is consumed in the entire clock system.
[0019]
Thus, in the semiconductor integrated circuit device, it can be seen that the power consumed by the clock driver occupies a large weight not only in the clock block system but also in the control system and data path system.
[0020]
FIG. 5B shows the percentage of power consumption in each specific example of the semiconductor integrated circuit device. The embedded controller LSI (concentric circle portion on the innermost circumference), high-end CPU (concentric circle portion outside the embedded controller LSI), Shows the percentage of power consumption in four specific LSIs (chips) of the MPEG2 decoder (concentric part outside the high-end CPU) and ATM switch LSI (concentric part outside the MPEG2 decoder: concentric part at the outermost periphery). Is.
[0021]
That is, for example, in the embedded controller LSI, about 45% is power consumption by the clock system, about 40% is power consumption by the data path system, 10% is power consumption by the memory, and 5% is power consumption. For example, in a high-end CPU, about 28% is the power consumption by the clock system, and about 28% is the power consumption of the data path system in the high-end CPU, 38% is the power consumption by the memory, and 6% is the power consumption by the I / O. Further, for example, in the MPEG2 decoder, about 23% is the power consumption by the clock system, and about 34% is the data consumption. The power consumption of the path system, 21% is the power consumption by the memory, and 22% is the I / O (Input / Output) Is the power consumption by the pad). In the ATM switch, about 20% is power consumption by the clock system, about 10% is power consumption by the data path system, 3% is power consumption by the memory, and 67% is I / O. Power consumption.
[0022]
Thus, it can be seen that various semiconductor integrated circuit devices have a large weight in the power consumption of the clock system.
[0023]
In particular, in timing design at a low voltage, the slew rate increases due to a decrease in the operating voltage, and the clock skew increases accordingly. For this reason, when a clock tree designed with a standard voltage is used, the operation margin deteriorates. Further, if the clock skew is kept the same as the standard voltage, the clock tree needs to be strengthened, resulting in an increase in power consumption and area. This means that, in addition to the more powerful CTS technology, it deals with the trade-off problem between performance and power consumption, which is not preferable because the design problem becomes complicated.
[0024]
Here, the reduction of the clock skew at the low voltage contributes more directly to the maximum operating frequency than at the standard voltage. Furthermore, if the skew can be reduced without strengthening the clock tree, it is effective in paralleling high-speed operation, low-voltage operation, and low-power operation.
[0025]
Conventionally, a clock tree circuit with low power consumption and low skew has been proposed (see, for example, Patent Document 1).
[0026]
Further, conventionally, a technique for distributing a high-speed clock using a phase comparator that performs phase comparison with a reference clock, a loop filter, and a VCO (Voltage Controlled Oscillator) has been proposed (for example, non-control). Patent Document 1). Conventionally, a system that distributes a low skew clock using a digital DLL (Delay Locked Loop) circuit has also been proposed (see Non-Patent Document 2, for example).
[0027]
[Patent Document 1]
JP 2000-035831 A
[Non-Patent Document 1]
Badim Gatonic and Anansa P. Chandrakasan, “Active Gigahertz Clock Network Using Distributed PLL”, IEEE Journal of Solid State Circuit, Vol. 35, No. 11, pp. 1553-1560, 2000 November (Vadi m Gutnik & Ananta P. Chandrakasan, “Active GHz Clock Network, 2000-No. 15, No. 15 Circ. State Ci.
[Non-Patent Document 2]
Charles E. Dyke et al., “Digital, Dynamic Clock Deskew Design”, VLSI Circuit Digest 2003 Symposium, Technical Papers, 21-24, June 2003 (Charles E. Dike et al., “ A Design for Digital, Dynamic Clock Desk ", 2003 Symposium on VLSI Circuits of Digest of Technical Paers, p. 21-24, June 2003).
[0028]
[Problems to be solved by the invention]
As described above, conventionally, as a clock distribution technique, a top-down method based on highly accurate estimation, that is, a CTS (Clock Tree Synthesis) method is usually used as a static method. This CTS method applies a P & R (Place-and-Route) technique in which a clock tree composed of inverters or buffers (clock drivers) is arranged and wired on a chip so that path delays are as equal as possible. In order to accurately estimate the path delay of the clock tree, and to make the path delay of the once created clock tree more uniform, it can be replaced with a cell with a different delay value (delay time) or the load can be reduced. The accuracy is further improved by post-processing such as adjustment.
[0029]
However, this CTS method has the following problems.
[0030]
In other words, the CTS method is based on an estimated delay value, but an actual device is affected by an estimation error, manufacturing variation, temperature change, and the like. Furthermore, in order to achieve a smaller skew, the number of clock tree stages, the total number of clock drivers, and the total wiring length increase, resulting in an increase in power consumption.
[0031]
Further, when the clock tree is deep (the number of stages in the hierarchy is large), there may be a vicious circle in which the influence of estimation error, manufacturing variation, temperature change, and the like increases. Furthermore, since the CTS method is indirectly influenced by the arrangement result and the shape of the arrangement area, when the demand for skew is severe, it does not converge or the parasitic element is extracted from the layout and considered. It may also cause a timing error after back-annotation for simulation and the implementation design may not converge.
[0032]
However, as described above, when a normal voltage (for example, power supply voltage Vcc = 1.2V, transistor threshold voltage Vth = 400 mV) can be achieved even if a reasonable skew (on the order of 10 ps) can be achieved by a static method, it is low. The voltage (for example, power supply voltage Vcc = 0.5V, transistor threshold voltage Vth = 200 mV) causes a skew of twice or more. Further, in consideration of the influence of variation and temperature change, the static method as described above is not sufficient, and a more accurate method based on an actual skew observation value inside the LSI is required. Therefore, a clock driver with variable delay or a selectable clock driver is provided in the clock tree, and the path delay is changed according to a certain reference time (external clock, etc.) at the time of power-on, for example. A semi-dynamic adjustment of the delay is possible.
[0033]
However, in the above method, if a reference (external clock) is required outside the chip, or if a reference is provided inside the LSI, the LSI becomes complicated and the load on the board and system also increases. Become.
[0034]
Furthermore, as another method, it is possible to short-circuit a clock having a path delay difference and short-circuit the output so as to eliminate the delay difference (for example, a global line in FPGA (File Programmable Gate Array)). When the high frequency part is short-circuited, the operating current increases, and when a signal having a phase difference is short-circuited, the through current increases and the power consumption increases.
[0035]
In addition, conventionally, dynamic adjustment of delay has been proposed in which a path delay difference is measured during circuit operation and fed back to a variable delay clock driver (see, for example, Patent Document 1).
[0036]
FIG. 6 is a block circuit diagram showing an example of a conventional clock tree circuit, which corresponds to FIG. In FIG. 6, reference numerals 21 to 24 are clock drivers (clock elements), 25 is a clock supply source clock driver, 31 to 33 are phase comparison circuits, and 41 to 43 are charge pump circuits.
[0037]
In the conventional clock tree circuit shown in FIG. 6, a transistor having a well structure with variable threshold voltage is applied to the clock drivers 21 to 24, and another clock driver 21 based on the clock driver 24 is used by the phase comparison circuits 31 to 33. The phase is compared (detects the phase difference (skew)) and the difference voltage is output. Further, the charge pump circuits 41 to 43 receive the above difference voltage as an input and feed it back to the clock drivers 21 to 23 (apply as a well potential to the p-well terminals of the n-channel MOS transistors of the clock drivers 21 to 23). The clock speed is reduced by controlling the switching speed of 21 to 23.
[0038]
As described above, the clock tree circuit described in Patent Document 1 is an architecture that measures the phase difference at the tip of the clock tree and feeds back to the tree, and drives the charge pump circuit using the output of the phase comparison circuit. By applying a reverse bias to the substrate, the clock driver is slowed down and the clock skew is reduced.
[0039]
However, Patent Document 1 does not include a description regarding the implementation method and arrangement position of the charge pump circuit and the phase comparison circuit, and increases the overhead of the circuit by providing a separate charge pump circuit, making the substrate independent, etc. Increase in circuit area) and power consumption, and also power consumption due to global distribution of high-frequency signals (reference and phase difference signals). In the circuit of FIG. 6, it is assumed that the reference clock can be distributed without skew and the reference clock is the slowest, but these are not realistic.
[0040]
Further, the clock distribution techniques shown in Non-Patent Document 1 and Non-Patent Document 2 described above have problems that the circuit scale increases and the power consumption increases. Further, for example, Non-Patent Document 2 has a problem that the signal for controlling the delay line (DLL circuit) is a digital signal and is easily affected by noise.
[0041]
In view of the problems of the above-described conventional clock distribution technology, the present invention provides a clock tree circuit and a semiconductor integrated circuit device that have low voltage operation, high speed and high reliability, and can reduce power consumption of a clock system. For the purpose of provision. Furthermore, the present invention suppresses the rate of increasing clock system power, has low circuit overhead, is less dependent on technology, and has a high affinity with the general SoC design flow, thus creating a rational design flow. A clock tree circuit, a semiconductor integrated circuit device, a semiconductor integrated circuit device design method, and a semiconductor integrated circuit design program that do not introduce a new problem (do not increase signals that require zero skew wiring) The purpose is to provide a medium on which is recorded.
[0042]
[Means for Solving the Problems]
According to a first aspect of the present invention, there is provided a clock tree circuit that distributes a clock, and a first partial clock tree that distributes the clock via a first clock driver, and a second clock driver. A second partial clock tree that distributes the clock, a phase comparison circuit that compares the phases of a first clock from the first partial clock tree and a second clock from the second partial clock tree; and A low-pass filter that receives the output of the phase comparison circuit and converts it into a direct current, wherein at least one of the first and second clock drivers has a variable delay time, and the delay time is variable by the output of the low-pass filter A clock tree circuit for controlling a delay time of at least one of the first and second clock drivers It is provided.
[0043]
According to a second aspect of the present invention, a clock tree circuit for distributing a clock, a first internal circuit having a first flip-flop group to which a first clock is supplied via the clock tree circuit, and A semiconductor integrated circuit device comprising a second internal circuit having a second flip-flop group to which a second clock is supplied via the clock tree circuit, wherein the clock tree circuit includes a first clock driver. A first partial clock tree for distributing the clock via a second partial clock tree for distributing the clock via a second clock driver, a first clock from the first partial clock tree and the first A phase comparison circuit for comparing the phase with the second clock from the second partial clock tree, and receiving the output of the phase comparison circuit; The first and second clock drivers are variable in delay time, and the delay time is variable by the output of the low-pass filter. A semiconductor integrated circuit device is provided that controls at least one of the delay times.
[0044]
According to the third aspect of the present invention, a step of performing floor planning, placement and routing, and CTS, a step of extracting a parasitic element and performing timing verification in consideration of the extracted parasitic element, the extracted parasitic element When it is determined that the timing considering the error is not correct, a step of inserting a skew reduction circuit at the error location and an ECO process are performed to extract the parasitic element again and perform timing verification considering the extracted parasitic element. The step of inserting a skew reduction circuit at the error location includes a first partial clock tree for distributing a clock through a first delay time variable clock driver having a variable delay time, and a second clock. Extracting a second partial clock tree for distributing clocks via a driver, said first part Obtaining an arrival time difference between the first clock output from the lock tree and the second clock output from the second partial clock tree; and an arrival time difference between the first clock and the second clock is a predetermined value. When the skew value is not satisfied, there is provided a method for designing a semiconductor integrated circuit device, comprising a step of changing a delay time of the first delay time variable clock driver.
[0045]
According to a fourth aspect of the present invention, there is provided a method for designing a semiconductor integrated circuit device comprising a step of inserting a skew reduction circuit after performing floor planning, placement and routing, and CTS, wherein the skew reduction circuit is inserted. The step includes: a first partial clock tree that distributes a clock through a first delay time variable clock driver having a variable delay time; and a proximity to the first partial clock tree and a second clock driver. Extracting a second partial clock tree for distributing clocks; a first observation point from which a first clock from the first partial clock tree is output; and a second from the second partial clock tree. Defining a second observation point from which the first clock is output, and arranging a phase comparison circuit for comparing the phases of the first and second clocks That step, a method of designing a semiconductor integrated circuit device characterized by comprising the step of feeding back a control signal from the phase comparator circuit to said first variable delay clock driver is provided.
[0046]
According to the fifth aspect of the present invention, there is provided a medium recording a program to be executed by a computer, the step of performing floor planning, placement and routing, and CTS, extracting parasitic elements, and considering the extracted parasitic elements A timing verification step, when it is determined that the timing in consideration of the extracted parasitic element is not correct, a step of inserting a skew reduction circuit at the error location, and an ECO process are performed to extract the parasitic element again. And a step of performing timing verification in consideration of the extracted parasitic elements, and the step of inserting a skew reduction circuit at the error location distributes the clock via the first delay time variable clock driver having a variable delay time. Distribute the clock through the first partial clock tree and the second clock driver Extracting a second portion clock tree that,
Determining an arrival time difference between a first clock output from the first partial clock tree and a second clock output from the second partial clock tree; and When the arrival time difference does not satisfy a predetermined skew value, a computer readable program recording a design program of a semiconductor integrated circuit comprising a step of changing a delay time of the first delay time variable clock driver Recording medium is provided.
[0047]
According to a sixth aspect of the present invention, there is provided a medium on which a program to be executed by a computer having a step of inserting a skew reduction circuit after performing floor planning, placement and routing, and CTS is recorded. The inserting step includes: a first partial clock tree that distributes a clock through a first delay time variable clock driver having a variable delay time; a second clock driver that is adjacent to the first partial clock tree; Extracting a second partial clock tree that distributes the clock via a first observation point from which the first clock from the first partial clock tree is output and from the second partial clock tree Defining a second observation point from which a second clock is output; and a phase of the first and second clocks. A computer readable program comprising: a step of arranging a phase comparison circuit to be compared; and a step of feeding back a control signal from the phase comparison circuit to the first delay time variable clock driver. Recording medium is provided.
[0048]
As described above, the present invention uses, for example, a method of reducing the skew of two partial clock trees that are physically close (for example, adjacent) in combination with the CTS method. In the present invention, a circuit that operates at a clock frequency is physically enclosed in a very small area, and a phase difference signal that requires signal transmission over a long distance is converted into a direct current (DC), thereby reducing power consumption and mounting design. Realization of ease. Although there is a slight increase in power consumption and area, the demand for the CTS method is eased, so that the power consumption and area cost on the clock tree side are reduced, and the overall power consumption and cost are reduced. Since resistance to PVT (Process / Voltage / Temperature) fluctuation can be provided, it is possible to effectively secure a margin for an LSI operating at high speed with a low voltage.
[0049]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of a clock tree circuit, a semiconductor integrated circuit device, a method for designing a semiconductor integrated circuit device, and a medium recording a design program for a semiconductor integrated circuit according to the present invention will be described below in detail with reference to the accompanying drawings.
[0050]
FIG. 7 is a block circuit diagram schematically showing one embodiment of a clock tree circuit according to the present invention. In FIG. 7, reference numeral 100 is a clock tree circuit, 103a and 103b are variable clock drivers, 102a and 102b are flip-flops, 104a and 104b are feedback wirings, 105 is a phase comparison circuit, and 106 is a low-pass filter (LPF). ) And 110a, 110b indicate partial clock trees.
[0051]
The clock tree circuit 100 according to the present invention distributes a clock to each circuit (flip-flop) in the semiconductor integrated circuit device, and is basically configured by applying a general CTS method. As shown in FIG. 7, a second partial clock tree 110a having a first delay time variable clock driver 103a having a variable delay time and a second delay time variable clock driver 103b having a variable delay time are provided. Of the first partial clock tree 110b, the first clock CLK1 from the front end of the first partial clock tree 110a (output of the clock driver 130a), and the first clock from the front end of the second partial clock tree 110b (output of the clock driver 130b). And a phase comparison circuit 105 that compares the phase of the second clock CLK2. Then, the delay times of the first and second delay time variable clock drivers 103a and 103b are controlled by the output of the phase comparison circuit 105, and the skew between the first and second partial clock trees 110a and 110b is reduced. The skew of the clock tree circuit 100 as a whole is set within a predetermined value (standard value). Here, the leading ends of the first and second partial clock trees 110a and 110b have symmetrical feedback paths, and are configured such that the other party can be regarded as a reference clock. .
[0052]
In each of the partial clock trees 110a and 110b, similarly to an ordinary clock tree (a part of the clock tree), a clock is distributed to a plurality of flip-flops via a plurality of clock drivers. . Each of the first and second partial clock trees 110 a and 110 b is merely a part of the clock tree of the clock tree circuit 100. Further, the clocks from the tips of the first and second partial clock trees 110a and 110b that are input to the phase comparison circuit 105 are, for example, output clocks of the clock driver at the final stage of the entire clock tree (clock tree circuit). However, the present invention is not limited to this.
[0053]
That is, the clocks from the tips of the first and second partial clock trees 110a and 110b may be, for example, output clocks of clock drivers at any stage except the final stage of the clock tree circuit. In this case, the clocks from the tips of the first and second partial clock trees 110a and 110b are distributed via the first and second terminal clock driver trees further downstream. Each terminal clock driver tree that receives the output clock from each of the partial clock trees 110a and 110b can be formed together with the entire clock driver circuit to which the CTS method is applied, for example. These terminal clock driver trees are, for example, considered to have no large skew because the number of clock driver stages is small and the area to be covered is narrow.
[0054]
The LPF 106 provided between the phase comparison circuit 105 and the first and second delay time variable clock drivers 103a and 103b receives signals (delay time control signals) from the phase comparison circuit 105 as feedback wirings 104a and 104b (wiring distances). When the first and second delay time variable clock drivers 103a and 103b are supplied to the first and second delay time variable clock drivers 103a and 103b, the delay time control signals on the long feedback wirings 104a and 104b are converted to direct current to reduce power. belongs to. The LPF 106 can be realized by, for example, a capacitive load (wiring capacitance, parasitic capacitance, etc.) included in the feedback wirings 104a and 104b depending on the circuit configuration. In this case, it is not necessary to provide the LPF 106 again. .
[0055]
Further, in the above description, the clock drivers at the root portions of the two partial clock trees (first and second partial clock trees 110a and 110b) are drivers (first and second) that can control the delay time. The delay time variable clock drivers 103a and 103b) are configured so that the output clock (CLK1) of one partial clock tree (for example, the first partial clock tree 110a) is previously set to the other partial clock tree (for example, the second portion). If it is known that the signal always has a faster timing than the output clock (CLK2) of the clock tree 110b), the partial clock tree (for example, the first partial clock) that outputs the clock (CLK1) having the faster timing is known. Clock driver 103a at the root of tree 110a) The clock driver (103b) at the base of the other partial clock tree (for example, the second partial clock tree 110b) is a normal clock driver (a clock having no function for controlling the delay time). Driver). Further, the clock driver at the tip of the first partial clock tree 110a and the clock driver at the tip of the second partial clock tree 110b do not necessarily need to be clock drivers in the same hierarchy, and the first and second delay times are the same. The variable clock drivers 103a and 103b need not be in the same hierarchy.
[0056]
Next, a phase comparison circuit and a feedback circuit after LPF applied to the clock tree circuit of the present invention will be described.
[0057]
FIG. 8 is a circuit diagram showing an example of a clock driver applied to the clock tree circuit of FIG.
[0058]
As shown in FIG. 8, the clock driver (delay time variable clock driver) 103a (103b) is controlled by the rising edge feedback signal from the phase comparison circuit 105, and includes pMOS transistors 31a to 33a and nMOS transistors. 34a to 36a, the pMOS transistors 32a and 33a and the nMOS transistors 35a and 36a are connected in series between the power supply lines, and the pMOS transistor 31a and the nMOS transistor 34a are also connected in series.
[0059]
The delay time control signal (rising edge feedback signal: brake signal BRK0) from the phase comparison circuit 105 (LPF 106) is supplied to the gates of the pMOS transistors 31a and 32a, and the clock is supplied to the pMOS transistor 33a and the nMOS transistor 35a. It is supplied to the gate. Here, the gate and source of the nMOS transistor 34a are connected in common, and the connection node between the nMOS transistor 31a and the pMOS transistor 34a is connected to the gate of the nMOS transistor 36a. An output (clock whose delay time is controlled) is extracted from a connection node between the drain of the pMOS transistor 33a and the drain of the nMOS transistor 35a. Note that the delay time variable clock driver shown in FIG. 8 is merely an example, and it is needless to say that various circuit configurations can be applied.
[0060]
FIG. 9 is a block circuit diagram showing an example of a phase comparison circuit applied to the clock tree circuit according to the present invention. FIG. 10 is a circuit diagram of the brake signal generation circuit and the delay time variable clock driver in the phase comparison circuit of FIG. It is a circuit diagram which shows an example of a voltage limiter and termination | terminus part.
[0061]
FIG. 11 and FIG. 12 are diagrams showing how the skew is reduced by the clock tree circuit according to the present invention. FIG. 11 shows how the rising edge of the initial 600 ps skew is adjusted, and the rising 600 ps skew becomes 120 ps skew Ts1 due to the control signal shown in FIG. It should be noted that the 120 ps skew Ts1 becomes zero by a control signal based on the result of the multiple phase comparisons by the further phase comparison circuit 105. Further, in this example, the falling 600 ps skew Ts2 remains as it is, but the falling skew can be reduced by feeding back a complementary signal described later with reference to FIG.
[0062]
First, the phase comparison circuit 105 drives storage elements, receives two clocks that belong to different clock trees (partial clock trees) and are physically close to each other, and has a length corresponding to the phase difference between the two clocks. Generate a pulse. Here, the phase comparison circuit 105 can be configured by a simple cell-based digital circuit, and can be realized with low power and low cost. The phase comparison circuit can also be configured by a mixer circuit. Of course, various circuit configurations can be applied to the phase comparison circuit.
[0063]
As shown in FIG. 9, the phase comparison circuit 105 includes clock receivers 151 and 152, dynamic D flip-flops 153 and 154, an amplifier 155, a brake signal generation circuit 156, inverters 1501 to 1504, and NAND gates 1505 to 1508. It has. Here, reference numeral 1050 indicates an arrival order determination circuit, and 1051 indicates a phase difference determination circuit. Note that the phase comparison circuit 105 in FIG. 9 can be configured with, for example, 68 transistors.
[0064]
The first clock receiver 151 receives the clock CLKIN0 (corresponding to CLK1 in FIG. 7) from the first partial clock tree 110a and outputs complementary clock signals CLK0P and CLK0M (see FIG. 11). The clock receiver 152 receives the clock CLKIN1 (corresponding to CLK2 in FIG. 7) from the second partial clock tree 110b and outputs complementary signals CLK1P and CLK11M. Among these complementary clocks, the negative logic signals CLK0M and CLK1M are supplied to the flip-flops 153 and 154 via the inverters 1501 and 1502, and the other positive logic clock signals CLK1P and CLK0P are input to one end. NAND gates 1506 and 1505 are supplied. The outputs of the flip-flops 153 and 154 are supplied to an amplifier 155. The outputs (control signals) CLK0V and CLK1V (see FIG. 12) of the amplifier 155 are connected to one end of the outputs of NAND gates 1505 and 1506 via inverters 1503 and 1504. The input NAND gates 1507 and 1508 are supplied to the other ends. The amplifier 155 can be configured by a cross-coupled (cross-connected) current mirror circuit, but various other circuit configurations can also be applied.
[0065]
The outputs (kick pulses: control signals) KICK0 and KICK1 (see FIG. 12) of the NAND gates 1507 and 1508 are supplied to the brake signal generation circuit 156 from the first and second partial clock trees. Brake signals (control signals) BRK0 and BRK1 (see FIG. 12) are supplied to 110a and 110b (first and second delay time variable clock drivers 103a and 103b in the first and second partial clock trees 110a and 110b). Is output. The brake signals BRK0 and BRK1 are supplied to the first and second partial clock trees 110a and 110b directly or via the LPF 106 as described above.
[0066]
Thus, the phase comparison circuit 105 includes a circuit for determining the arrival times of the clocks CLKIN0 and CLKIN1 (CLK1 and CLK2) from the first and second partial clock trees 110a and 110b, and operates only when there is an edge. The circuit configuration has low power consumption, and a symmetric operation for delaying the earlier clock is performed. As will be described later, in the present invention, the phase comparison circuit determines the insertion position immediately after applying the CTS method, and therefore has high consistency with the existing SoC design flow.
[0067]
As shown in FIG. 10, the brake signal generation circuit 156 includes p-channel MOS transistors (pMOS transistors) 612 and 611 that receive kick pulses KICK0 and KICK1 as outputs of NAND gates 1507 and 1508 at the gates, and n-channel MOS transistors (nMOS transistors) 615, 616; 613, 614 connected in series with the pMOS transistors 612; 611. Here, the brake signal generation circuit 156 forms a low-pass filter together with the wiring load capacitance from the brake signal generation circuit 156 (phase comparison circuit 105) to the first and second delay time variable clock drivers 103a and 103b. The enable signal ENB is supplied to the gates of the nMOS transistors 613 to 616.
[0068]
Thus, the brake signal generation circuit 156 (LPF 106) is designed to reduce power consumption by converting the pulse input (kick pulses KICK0 and KICK1) to a DC level. Further, the charging system is driven by the pulse input, and the discharging system is performed by the leakage current of the transistor, so that low speed operation is possible. Furthermore, the capacitance of the wiring from the phase comparison circuit 105 (brake signal generation circuit 156) to the root of the clock tree (the delay time variable clock drivers 103a and 103b of the first and second partial clock trees 110a and 110b) is low-pass. A filter is configured, and if it is insufficient, it can be compensated by a MOS capacitor.
[0069]
The voltage limiter / termination unit 1031 is disposed in each of the delay time variable clock drivers 103a and 103b of the first and second partial clock trees 110a and 110b. The brake signal BRK0; BRK1 and the power line (V [0 ] NMOS transistors 624, 625, 626; 621, 622, 623 provided in series with each other. Here, the voltage limiter / termination unit 1031 is for keeping the feedback signal (brake signals BRK0, BRK1) below a certain level. By providing the voltage limiter / termination unit 1031 in the clock drivers 103a, 103b, Noise resistance can be improved. The voltage limiter / termination unit 1031 is not essential to the present invention.
[0070]
FIG. 13 is a block circuit diagram schematically showing another embodiment of the clock tree circuit according to the present invention.
[0071]
The clock tree circuit shown in FIG. 7 described above corrects only the rising edge of the clock, for example, and therefore does not maintain the duty. In the embodiment of the clock tree circuit shown in FIG. 13, the phase comparison circuit 105 has a function of measuring both rising and falling edges of the clocks CLK1 and CLK2, and provides complementary signals on the feedback lines 104a and 104b. By performing feedback (adding a feedback line for the falling feedback signal), both the rising and falling edges of the clock are corrected to maintain the duty.
[0072]
FIG. 14 is a circuit diagram showing an example of a clock driver applied to the clock tree circuit of FIG. 13, showing an example of a variable delay time clock driver capable of controlling the delays of both the rising edge and the falling edge of the clock. It is.
[0073]
As shown in FIG. 14, the delay time variable clock driver 103a (103b) includes pMOS transistors 37a and 38a and nMOS transistors 39a and 40a connected in series between the power supply lines. The rising edge feedback signal CNTLP (delay time control signal: brake signal BRK0) from the phase comparison circuit 105 (LPF 106) is supplied to the gate of the pMOS transistor 37a, and is connected to the commonly connected gates of the pMOS transistor 38a and the nMOS transistor 39a. The rising edge of the input clock CLKIN is controlled. The falling edge feedback signal CNTLN is supplied to the gate of the nMOS transistor 40a and controls the falling edge of the input clock CLKIN. The input clock CLKIN whose rising and falling edges are controlled by the rising edge feedback signal CNTLP and the falling edge feedback signal CNTLN is output (delayed) from the connection node between the drain of the pMOS transistor 38a and the drain of the nMOS transistor 39a. The time-controlled clock (CLKOUT) is taken out.
[0074]
The clock tree circuit shown in FIG. 13 and the variable delay time clock driver shown in FIG. 14 are used particularly in the case of a high-speed clock, in the case where both rising and falling edges of the clock are used, and in a duty-dependent circuit and the like. It is effective.
[0075]
FIG. 15 is a circuit diagram showing a modification of the clock driver of FIG. 13, and the clock driver (delay time variable clock driver) shown in FIG. 15A is obtained by removing the nMOS transistor 40a from the clock driver shown in FIG. In addition, the clock driver shown in FIG. 15B corresponds to the clock driver shown in FIG. 14 excluding the pMOS transistor 37a.
[0076]
That is, the clock driver shown in FIG. 15A is configured to control the delay time of the clock CLKOUT by controlling the rising edge of the input clock CLKIN by the control signal (rising edge feedback signal) CNTLP. The clock driver shown in FIG. 15B controls the delay time of the clock CLKOUT by controlling the falling edge of the input clock CLKIN with a control signal (falling edge feedback signal) CNTLN.
[0077]
Here, the present invention is a low voltage (a value sufficiently smaller than the standard voltage of the technology node (for example, 1.0 to 1.2 V in the case of 130 nm process) (for example, Vdd = 0.7 V or less in the 130 nm process)) As a control signal (feedback signal), about 0 to Vth (V) for the gate of the pMOS transistor 37a and about Vdd−Vth to Vdd (V) for the gate of the nMOS transistor 40a. The above-described circuits shown in FIGS. 14, 15A, and 15B can be applied as a delay time variable clock driver using a signal having a small amplitude, and the area and power overhead can be reduced. .
[0078]
Note that the variable delay time clock driver is not limited to the one described above, and various configurations can be applied. The clock drivers shown in FIG. 14, FIG. 15A and FIG. 15B are configured as inverters. For example, one stage of inverter is provided in front of the input clock CLKIN, and the input clock and output clock are Needless to say, it can be configured as a buffer having the same logic.
[0079]
FIG. 16 is a block circuit diagram schematically showing a further embodiment of the clock tree circuit according to the present invention.
[0080]
As is clear from the comparison between FIG. 16 and FIG. 7, in the clock tree circuit of this embodiment, one control signal fed back from the phase comparison circuit 105 to the delay time variable clock driver via the LPF 106 and the feedback wiring 104a is provided. The delay time is controlled by supplying not only the delay time variable clock driver 103a but also a plurality of delay time variable clock drivers 103a, 1032a and 10322a. At this time, control signals are also supplied to delay time variable clock drivers 1031a and 10321a corresponding to delay time variable clock drivers 1032a and 10322a downstream of the most upstream delay time variable clock driver 103a that controls the delay time. Thus, the delay time is controlled.
[0081]
As described above, the delay time variable clock driver for controlling the delay time is not limited to one stage, and the delay time may be controlled by supplying a control signal to a plurality of delay time variable clock drivers. it can. Thereby, the delay adjustment amount can be increased, or the delay time control characteristic can be improved by reducing the delay adjustment amount per stage. In this embodiment, since the control signal (feedback signal) is fed back at a DC level, even if the number of delay time variable clock drivers controlled by the control signal is increased and the parasitic capacitance is increased, there is no problem. .
[0082]
FIG. 17 is a diagram for conceptually explaining a method for designing a semiconductor integrated circuit device according to the present invention.
[0083]
As a premise of the method for designing a semiconductor integrated circuit device according to the present invention, the clock tree has a simple branch structure so that it does not reconverge (does not rejoin), and the partial clock tree after branching is Covers the region almost exclusively and convexly (without the intricacies of different partial clock trees).
[0084]
As shown in FIG. 17, in the method for designing a semiconductor integrated circuit device of the present invention, first, the clock tree 100 of the target semiconductor integrated circuit device (chip or module) is configured by applying the CTS method (S1). Then, a pair of partial clock trees (first partial clock tree 110a and second partial clock tree 110b) is selected (S2), and further, a phase difference observation circuit (phase comparison circuit) 105 and a low-pass filter (LPF) ) 106 is arranged (S3). As described above, for example, when the function of the low-pass filter can be substituted by the capacitive load of the feedback wiring 104 (104a, 104b) itself, the LPF 106 may not be provided.
[0085]
That is, in the method for designing a semiconductor integrated circuit device of the present invention, one clock driver (corresponding to the clock driver 130a in FIG. 7) in the front end region 120a in the first partial clock tree 110a and the second partial clock tree 110b. One clock driver (corresponding to the clock driver 130b in FIG. 7) in the tip region 120b in FIG. 7 is selected, and the phase comparison circuit 105 compares the phases of the output clocks from these two clock drivers. Here, the phase comparison circuit 105 is preferably arranged near the center of the two selected drivers. Each clock driver selected from the leading end region 120a in the first partial clock tree 110a and the leading end region 120b in the second partial clock tree 110b can select any one, but each leading end region 120a. And a leading (average) clock arrival time in the tip region 120b and close to the adjacent portion of the first partial clock tree 110a and the second partial clock tree 110b (physically close distance) Preferably, two clock drivers are selected. Each clock driver to be selected is, for example, a clock driver at the final stage or a clock driver upstream by a predetermined number of stages from the final stage, but it is not always necessary to have the same number of stages.
[0086]
Further, the feedback wiring 104 (104a, 104b) is laid from the phase comparison circuit 105 (LPF 106) to the first and second delay time variable clock drivers 103a, 103b (S4). Then, the delay time in the first and second delay time variable clock drivers 103a and 103b is controlled by the output of the phase comparison circuit 105 (S5). Note that the two delay time variable clock drivers 103a and 103b output a clock with a fast timing if the timing relation between the output clocks of the first and second partial clock trees 110a and 110b is known in advance. It is also possible to provide a delay time variable clock driver only for the partial clock tree and provide a normal clock driver for the other partial clock tree.
[0087]
Similarly, a partial clock tree 110a ′ including the first and second partial clock trees 110a and 110b is set as the first partial clock tree 110a described above, and the new first partial clock tree 110a ′. By setting the partial clock tree 110b ′ as a new second partial clock tree for, a process similar to the process for the first and second partial clock trees 110a and 110b described above can be applied recursively ( S6). That is, by extracting the first and second partial clock trees 110a, 110b; 110a ′, 110b ′;... Corresponding to the branch structure of the clock tree 100 and applying the above-described processing recursively, the semiconductor integration The present invention can be applied to the entire circuit device.
[0088]
In the method for designing a semiconductor integrated circuit device according to the present invention, first, the CTS method is lightly implemented (with timing constraints looser than originally required), and the clock tree is clustered (extracted) into partial clock trees. At this time, the estimated clock skew value in each cluster is set to a certain value or less. In addition, a skew reduction circuit is inserted by combining the adjacent (adjacent) partial clock trees having similar representative arrival times. This combined circuit (tree) again becomes a partial clock tree.
[0089]
In the method for designing a semiconductor integrated circuit device according to the present invention, for example, in a gated clock, the portion after the enable circuit may be regarded as a partial clock tree. Of course, it is possible to apply it upstream from enable. Further, it is not necessary to put a skew reduction circuit between subtrees without data transfer. Further, after applying the CTS method, the insertion position of the skew reduction circuit is determined, and the wiring from the tip of the clock tree to the phase comparator is set as the priority wiring similar to the clock. This wiring must be drawn so as to have the same length and equal delay as much as possible. The layout of the feedback line may be handled in the same way as a normal signal, and may be detoured as necessary. Then, it is applied recursively and hierarchically according to the spread of the clock tree.
[0090]
FIG. 18 is a block circuit diagram schematically showing still another embodiment of the clock tree circuit according to the present invention, which is applied to a gated clock circuit.
[0091]
As shown in FIG. 18, enable signals ENA to ENZ are input to the NAND gates 107A to 107Z, respectively, and the activation of the output clock is controlled. Here, the downstream side (flip-flop FF side) to which the output clock of the NAND gate 107A is supplied is the first partial clock tree 110a, and the downstream side to which the output clock of the NAND gate 107Z is supplied is the second partial clock tree. 110b. That is, the downstream side of the enable circuit (NAND gates 107A and 107Z) is regarded as a partial clock tree, and a skew reduction circuit including a phase comparison circuit 105, LPFs 106a and 106b, delay time variable clock drivers 103a and 103b, and the like is provided.
[0092]
For the upstream side (root side) of the enable circuit (NAND gates 107A and 107Z), partial clock trees 110a ′ and 110b ′ are separately extracted, and the first and second partial clock trees 110a and 110b are extracted. A skew reduction circuit is provided by performing the same process as that described above. At this time, CTS may be performed for all clock trees (for example, partial clock trees 110a, 110b and 110a ′, 110b ′) in a lump, but is performed by dividing the gated point as a boundary. That is, for example, the CTS can be divided and performed on the partial clock trees 110a and 110b and the partial clock trees 110a ′ and 110b ′.
[0093]
Hereinafter, a method for designing a semiconductor integrated circuit device according to the present invention will be described in detail in comparison with the prior art.
[0094]
FIG. 19 is a diagram showing an example of a design flow of a general semiconductor integrated circuit device, and shows a normal SoC logic / circuit design flow.
[0095]
As shown in FIG. 19, in the logic / circuit design, in step S10, architecture design, RT (Register Transfer) design / verification and logic synthesis / verification are performed. Then, the process proceeds to step S11, and floor planning is performed. , Place and route and CTS. Here, the restriction on the clock skew is performed in a CTS (Clock Tree Synthesis) process after placement and routing in step S11.
[0096]
In step S12, parasitic elements are extracted, and in step S13, timing verification is performed in consideration of the extracted parasitic elements. That is, a parasitic element is extracted from the layout, and a simulation including the parasitic element (back annotation: timing verification considering the parasitic capacitance and the resistance component extracted from the layout) is performed. In step S14, it is determined whether the timing is correct.
[0097]
If it is determined in step S14 that the timing is correct (YES), the process proceeds to step S15 to create a mask (the design process ends). Here, the determination that the timing in step S14 is correct is a case where, as a result of highly accurate timing verification, it is confirmed that the target semiconductor integrated circuit device (for example, SoC) operates as intended by the designer. At that time, the design process is completed, and the process proceeds to the next mask creation process.
[0098]
On the other hand, if it is determined in step S14 that the timing is not correct (NO), the process proceeds to step S16, the data from the mounting design is fetched, and the processes of steps S10 and S11 are performed as necessary. The parasitic element extraction process in step S12 and the timing verification process in step S13 are executed again, and these processes are repeated until it is determined in step S14 that the timing is correct.
[0099]
That is, when there is a timing error or a margin shortage, it returns to the upstream of the flow, but where to return (step S10 or S11) is case by case. Here, the clock skew dominates both the setup and hold margins, and varies from the case of reviewing from the most upstream architecture to the case of making a minor correction of the layout result. As described above, in the SoC design flow, for example, it is difficult to converge the loop as the SoC is miniaturized.
[0100]
Note that the determination that the timing in step S14 is not correct means that the target circuit has malfunctioned, regardless of the skew. Here, after layout, the cause of back-annotation due to timing causes malfunctions: (1) When the longest path has a delay longer than the original estimate and does not satisfy the setup margin, (2) Shortest path (3) When the starting clock is slower than the estimated value and does not meet the setup margin, (4) The arriving clock is less than the estimated value. (5) When the departure side clock is earlier than the estimated value and does not satisfy the hold margin, and (6) The arrival side clock is later than the estimated value. One of the cases where the hold margin is not satisfied, or In that their multiple occur simultaneously. The method for designing a semiconductor integrated circuit device according to the present invention described in detail below is particularly effective when it is determined that the timing is not correct due to the above (3) to (6).
[0101]
FIG. 20 is a diagram showing an example of a design flow of the semiconductor integrated circuit device according to the present invention, and shows a normal SoC mounting design flow.
[0102]
As shown in FIG. 20, in this embodiment, in the mounting design, first, in step S20, floor planning, placement and routing, and CTS are performed, and the process proceeds to step S21, where parasitic elements are extracted, and further, in step S22. Proceeding to perform timing verification (back annotation) in consideration of the extracted parasitic elements. In step S23, it is determined whether the timing is correct.
[0103]
If it is determined in step S23 that the timing is correct (YES), the process proceeds to step S24 to create a mask (the design process ends). On the other hand, if it is determined in step S23 that the timing is not correct (NO), the process proceeds to step S26, where a skew reduction circuit is inserted at the error location (the semiconductor integrated circuit device design method of the present invention is applied). In step S25, an ECO (Engineering Change Order) process is performed. Then, after performing the ECO process in step S25, the parasitic element extraction process in step S21 and the timing verification process in step S22 are executed again, and these processes are performed until it is determined in step S23 that the timing is correct. repeat.
[0104]
As described above, in this embodiment, when the timing is determined to be incorrect in step S14 shown in FIG. 19 (step S23 in FIG. 20), the skew reduction circuit is inserted into the error location in step S26. It has become. Note that the ECO process (step S27), which is technically well established, can be applied to change the placement and routing for inserting the circuit. The function that supports the design flow as shown in FIG. 20 can be part of the function of the automatic layout tool. Here, the circuit obtained in the above design flow is a clock tree design with an estimated value, and the effect of minimizing skew during operation may not be sufficient, but it is possible to converge the physical design loop. is there.
[0105]
21 is a diagram showing an example of the skew reduction circuit insertion process (step S26 in FIG. 20) in the design flow of FIG. 20, and FIG. 22 is a diagram for explaining the skew reduction circuit insertion process of FIG. . FIG. 22 shows a state where an error path exists through a combinational circuit between two flip-flops (FF) that receive the clocks Ta and Tb.
[0106]
In the insertion process of the skew reduction circuit shown in FIG. 21, in the embodiment of FIG. 20, it is determined in step S23 that the timing does not satisfy the predetermined skew value (NO), and the skew reduction circuit is inserted at the error location performed in step S26. The process to insert is shown.
[0107]
As shown in FIG. 21, in the skew reduction circuit insertion processing (step S26), first, in step S261, the clock skew at the end and start of the path is set to Ts, and the setup (hold) error is set to Te, and the process proceeds to step S262. . In step S262, it is determined whether or not the skew Tb−Ta (= Ts) is larger than the error Te. Here, the clocks Ta and Tb are outputs of the clock drivers (buffers or inverters) 130a and 130b, and correspond to the output clocks CLK1 and CLK2 of the first and second partial clock trees 110a and 110b in FIG. 7, for example. .
[0108]
If it is determined in step S262 that the skew Tb-Ta is equal to or less than the error Te (NO), the process proceeds to step S260 and normal countermeasures (for example, the processes of steps S11, S16, and S10 in FIG. 19) are performed. . On the other hand, if it is determined in step S262 that the skew Tb-Ta is larger than the error Te (YES), the process proceeds to step S263, and as shown in FIG. 22, the clock tree is traced and Tb'-Ta '> A set of upstream clock drivers 103a and 103b that satisfies Te is defined (detected). In step S264, the phase difference detection circuit (phase comparison circuit) detects the phase difference between the two clocks Ta and Tb (compares the phases) in the vicinity of the clock skew observation point (near the clock drivers 130a and 130b). 105), and the clock driver set 103a, 103b defined in step S263 is replaced with a delay time variable clock driver (variable delay buffer), and the process proceeds to step S25. In step S264, wiring for controlling the delay time in the delay time variable clock drivers 103a and 103b is also performed according to the phase difference detected by the phase difference detection circuit.
[0109]
As a result, when a small amount of setup shortage or hold shortage due to the clock skew is small, the skew is locally reduced by applying the semiconductor integrated circuit device design method (skew reduction circuit) of the present invention described above. Design. In addition, by applying the present invention, it may be possible to avoid the shortage of setup by suppressing the skew with higher accuracy even for the shortage of setup caused by the layout of the data path system.
[0110]
FIG. 23 is a diagram showing another example of the design flow of the semiconductor integrated circuit device according to the present invention.
[0111]
In FIG. 23, steps S30, S31 and S33 to S37 correspond to steps S10, S11 and S12 to S16 in FIG. 19, respectively, and in this embodiment, after step S11 in FIG. 19 (step S31 in FIG. 23). Step S32 for inserting a skew reduction circuit is further provided.
[0112]
That is, as shown in FIG. 23, in this embodiment, after architecture design, RT design / verification, and logic synthesis / verification are performed in step S30, and after floor planning, placement and routing, and CTS are performed in step S31. In step S32, the skew reduction circuit is inserted. In step S33, parasitic elements are extracted, and timing verification is performed in consideration of the parasitic elements extracted in step S34. That is, the same processing as in FIG. 19 is performed, and further, in step S35, it is determined whether or not the timing is correct. In addition, the process of step S35-S37 in a present Example is the same as that of step S14-S16 demonstrated with reference to FIG. 19, The description is abbreviate | omitted.
[0113]
FIG. 24 is a diagram showing still another example of the design flow of the semiconductor integrated circuit device according to the present invention, and shows a normal SoC mounting design flow.
[0114]
As shown in FIG. 24, in the mounting design, first, in step S40, floor planning, placement and routing, and CTS are performed. Then, the process proceeds to step S41, and a skew reduction circuit is inserted (in the semiconductor integrated circuit device of the present invention). Apply design method). Thereafter, in step S42, parasitic elements are extracted, and further, the process proceeds to step S43 to perform timing verification (back annotation) in consideration of the extracted parasitic elements. In step S44, it is determined whether the timing is correct.
[0115]
If it is determined in step S44 that the timing is correct (YES), the process proceeds to step S45 to create a mask (the design process ends). On the other hand, if it is determined in step S44 that the timing is not correct (NO), the process proceeds to step S47 (path P2), and a skew reduction circuit is inserted at the error location (the method for designing a semiconductor integrated circuit device of the present invention is applied). Further, the process proceeds to step S46 to perform an ECO process. Then, after performing the ECO process in step S46, the parasitic element extraction process in step S42 and the timing verification process in step S43 are executed again, and these processes are performed until the timing is determined to be correct in step S44 described above. repeat. Here, the insertion process of the skew reduction circuit in step S41 is the same as that in step S32 in FIG. 23, and the insertion process of the skew reduction circuit for the error part in step S47 is the same as in step S26 in FIG. These steps S41 and S47 are the same as described with reference to FIGS. 21 and 22 described above.
[0116]
When it is determined in step S44 that the timing is not correct (NO), the process flow proceeds to step S47, and instead of performing the above-described processing, the general semiconductor integrated circuit device design flow described with reference to FIG. Similarly, the data from the mounting design is captured (step S16 in FIG. 19). If necessary, the architecture design, the RT design / verification and the logic synthesis / verification (step S10 in FIG. 19), and the floor planning, Placement and wiring and CTS (step S11 in FIG. 19) may be performed (path P1).
[0117]
That is, the “estimated value” of the clock skew can be determined after the automatic layout or inside the automatic layout. For example, when the skew is larger than the target value, the skew reduction circuit is inserted (the semiconductor integrated circuit of the present invention). The possibility of timing errors can be reduced by applying a device design method). Furthermore, if a skew reduction circuit is inserted into the entire clock tree, it is possible to dynamically minimize the clock skew. Further, as described above, when it is determined that the timing is not correct (NO) after the back annotation in step S44, the process proceeds to step S47 to further insert a skew reduction circuit at the error location (path P2). However, it is also possible to proceed with a normal flow (flow as shown in FIG. 19) as in the path P1. This is because, in step S44, when it is determined that the timing is not correct (when there is a malfunction due to timing), when the increase in skew is the cause, a process that flows through the path P2 is performed, and the delay of the data path is the cause. In this case, processing that flows through the path P1 is performed.
[0118]
FIG. 25 is a diagram schematically showing an example of a clock tree to which a normal CTS method is applied, and FIG. 26 is a diagram schematically showing an example of a clock tree to which the present invention is applied. In FIG. 25 and FIG. 26, reference numeral 400 indicates an inverted L-shaped cell placement and routing area to which a clock is distributed, and 410 indicates the distribution of the clock to the cell placement and routing area 400 by applying a normal CTS method. A part of the clock tree (clock tree circuit) is shown, and 420 shows a part of the clock tree that extracts two partial clock trees according to the present invention and distributes the clock to the cell placement and routing area 400. Here, in FIGS. 25 and 26, each triangle mark indicates a clock driver (buffer or inverter). In FIGS. 25 and 26, when, for example, a memory macro or the like is already placed in the lower left rectangular area of the inverted L-shaped cell arrangement / wiring area 400, the cell arrangement / wiring area 400 can be used. The portions 410 and 420 of the clock tree up to are routed in the cell placement and routing area 400.
[0119]
As shown in FIG. 25, the clock tree to which the normal CTS method is applied constitutes the clock tree by extending the length of each wiring symmetrically in all regions, so that the total wiring length (total The wiring length) also becomes longer, the hierarchy of the clock tree becomes deeper, and the number of clock drivers increases.
[0120]
On the other hand, when the present invention is applied, as is clear from FIG. 26, the total wiring length can be shortened, the hierarchy of the clock tree can be made shallow, and the number of clock drivers can be reduced. Thus, a clock tree can be configured. In FIG. 26, each of the clock driver sets A and B, C and D, and E and F correspond to two partial clock tree delay time variable clock drivers (103a and 103b in FIG. 7) extracted. For example, two clocks from the last set of clock drivers are compared by a phase comparison circuit (105 in FIG. 7) to control the delay time of each delay time variable clock driver. Here, each set of delay time variable clock drivers A, B; C, D; E, F is hierarchized. For example, the present invention is applied to the first set of delay time variable clock drivers A and B. Apply (Process X), apply the present invention to the second set of delay time variable clock drivers C and D (Process Y), and then apply the third set of delay time variable clock drivers E and F. The present invention can be applied (processing Z).
[0121]
The delay time variable clock drivers A and B compare the phases of the clocks output from the clock drivers 401 and 402 in the final stage, and the delay time is variable according to the phase difference between the two clocks (the arrival time difference between the two clocks). The delay times of the clock drivers A and B are controlled. As described above, if one of the two clocks output from the pair of clock drivers 401 and 402 is known in advance, the clock that transmits the opposite (forward) clock. Only the driver can be configured as a variable delay time clock driver, and the other (clock driver that transmits the delayed clock) can be configured as a normal clock driver that does not have a variable delay time function.
[0122]
For example, the phase of the clock output from the last stage clock drivers 403 and 404 may be compared with respect to the delay time variable clock drivers C and D, but the output from the clock drivers B and 405 upstream of the last stage may be compared. It is also possible to compare the phases of the clocks to be controlled, and to control the delay times of the delay time variable clock drivers C and D based on the phase comparison result. The subsequent clock driver that receives the output clocks of the clock drivers B and 405 is configured as a part of the clock tree at the same time as the entire clock tree circuit is configured by the CTS method, for example. These (upstream) clock trees and the subsequent (downstream) clock trees that receive the output clocks of clock drivers B and 405 can also be configured independently. Here, the downstream clock tree that receives the output clocks of the clock drivers B and 405 can be considered to have no large skew because, for example, the number of stages of the clock drivers is small and the area to be covered is narrow.
[0123]
Further, for example, with respect to the delay time variable clock drivers E and F, the phases of the clocks output from the final stage clock drivers 406 and 407 may be compared, but from the clock drivers D and 408 upstream of the final stage. The clock phases may be compared, and the delay times of the delay time variable clock drivers E and F may be controlled based on the phase comparison result. The delay time of the delay time variable clock driver is configured to have a predetermined delay time in advance, and the timing of the clock transmitted through the delay time variable clock driver by one delay time variable clock driver is set. Control can be done early or late.
[0124]
As described above, according to the present invention, global distribution does not need to form a strictly equal delay tree, and can be applied to an unequal area as it is. The number of repeaters (clock drivers) and the wiring length can be reduced. Can be reduced.
[0125]
FIG. 27 is a diagram for explaining an example of a medium on which a design program for a semiconductor integrated circuit according to the present invention is recorded. In FIG. 27, reference numeral 310 denotes a processing device, 320 denotes a program (data) provider, and 330 denotes a portable recording medium.
[0126]
The semiconductor integrated circuit design method according to each embodiment described above is given as a program (data) for the processing device 310 as shown in FIG. 27 and executed by the processing device 310, for example. The processing device 310 includes an arithmetic processing device main body 311 including a processor, and a processing device side memory (e.g., RAM (Random Access) that stores a result of giving a program (data) to the arithmetic processing device main body 311 or processing. Memory), hard disk) 312 and the like. The program (data) provided to the processing device 310 is loaded and executed on the main memory of the processing device 310.
[0127]
The program (data) provider 320 has means (line destination memory: for example, DASD (Direct Access Storage Device)) 321 for storing the program (data). For example, the program (data) is provided via a line such as the Internet. Is provided to the processing device 310 or is provided to the processing device 310 via a portable recording medium 330 such as an optical disk such as a CD-ROM or DVD or a magnetic disk such as a floppy disk. Needless to say, the medium on which the design program of the semiconductor integrated circuit according to the present invention is recorded includes the processing apparatus side memory 312, the line destination memory 321, the portable recording medium 330, and the like.
[0128]
As described above, according to the design method of the clock tree circuit or the semiconductor integrated circuit device according to the present invention, the clock at the tip of the clock tree (120a, 120b: the tip of the clock tree: the input of the flip-flop) is always observed. Therefore, the effect of reducing skew can be exhibited dynamically even with respect to skew caused by estimation error, manufacturing variation, power supply voltage fluctuation, temperature change, and the like. In addition, since a physically close point is selected as the observation point, the wiring length of the observation signal (between the tip of each of the partial clock trees 110a and 110b and the phase comparator 105) can be ignored. Since the node operating at a high frequency by the clock is limited in the phase comparison circuit and the vicinity thereof, the overhead of the alternating current can be made minute.
[0129]
Further, according to the present invention, since there is virtually no reference clock as in the prior art, the problem of low power and distributing the reference clock with zero skew can be avoided. And since the request | requirement with respect to a CTS system can be eased, the number of stages of a clock tree and wiring length become small, and reduction of operating power can also be expected. Note that both the phase comparison circuit (phase difference detection circuit) and the delay time variable clock driver (variable delay circuit) can be configured as a small-scale circuit, and the above-described small-scale circuit is applied to the clock tree after the CTS method is applied. Since only a circuit needs to be added, there is also an advantage that consistency with the current design flow is high.
[0130]
Furthermore, according to the present invention, when the signal after the low-pass filter (LPF 106) is fed back, it is not necessary to consider the wiring length because the feedback signal is a direct current potential, and the operating current can be reduced. When the signal after the LPF is fed back, a repeater is not required as compared with the feedback of the digital signal, so that the cost and power can be reduced.
[0131]
【The invention's effect】
As described above in detail, according to the present invention, it is possible to provide a clock tree circuit (semiconductor integrated circuit device) that can be easily designed with low power consumption and low cost, and is resistant to PVT fluctuations. Therefore, it is possible to effectively secure a margin for an LSI operating at high speed with a low voltage.
[Brief description of the drawings]
FIG. 1 is a diagram (No. 1) for describing a technical background of clock tree design of a semiconductor integrated circuit device;
FIG. 2 is a diagram (No. 2) for describing the technical background of the clock tree design of the semiconductor integrated circuit device;
FIG. 3 is a diagram conceptually illustrating a specific example of a clock tree in a semiconductor integrated circuit device.
FIG. 4 is a diagram illustrating a relationship between clock skew and power consumption in the CTS method.
FIG. 5 is a diagram for explaining clock tree design of a semiconductor integrated circuit device operating at a low voltage;
FIG. 6 is a block circuit diagram showing an example of a conventional clock tree circuit.
FIG. 7 is a block circuit diagram schematically showing an embodiment of a clock tree circuit according to the present invention.
FIG. 8 is a circuit diagram showing an example of a clock driver applied to the clock tree circuit of FIG. 7;
FIG. 9 is a block circuit diagram showing an example of a phase comparison circuit applied to the clock tree circuit according to the present invention.
10 is a circuit diagram showing an example of a brake signal generation circuit in the phase comparison circuit of FIG. 9 and a voltage limiter / termination unit in the delay time variable clock driver. FIG.
FIG. 11 is a diagram (No. 1) illustrating a state of skew reduction by the clock tree circuit according to the present invention;
FIG. 12 is a diagram (part 2) illustrating a state of skew reduction by the clock tree circuit according to the present invention;
FIG. 13 is a block circuit diagram schematically showing another embodiment of the clock tree circuit according to the present invention.
14 is a circuit diagram showing an example of a clock driver applied to the clock tree circuit of FIG. 13;
FIG. 15 is a circuit diagram showing a modification of the clock driver of FIG. 13;
FIG. 16 is a block circuit diagram schematically illustrating a further embodiment of a clock tree circuit according to the present invention.
FIG. 17 is a diagram for conceptually explaining a method for designing a semiconductor integrated circuit device according to the present invention.
FIG. 18 is a block circuit diagram schematically showing still another embodiment of the clock tree circuit according to the present invention.
FIG. 19 is a diagram showing an example of a design flow of a general semiconductor integrated circuit device.
FIG. 20 is a diagram showing an example of a design flow of a semiconductor integrated circuit device according to the present invention.
21 is a diagram showing an example of insertion processing of a skew reduction circuit in the design flow of FIG.
22 is a diagram for explaining insertion processing of the skew reduction circuit of FIG. 21;
FIG. 23 is a diagram showing another example of the design flow of the semiconductor integrated circuit device according to the present invention.
FIG. 24 is a diagram showing still another example of the design flow of the semiconductor integrated circuit device according to the present invention.
FIG. 25 is a diagram schematically illustrating an example of a clock tree to which a normal CTS method is applied.
FIG. 26 is a diagram schematically showing an example of a clock tree to which the present invention is applied.
FIG. 27 is a diagram for explaining an example of a medium recording a semiconductor integrated circuit design program according to the present invention;
[Explanation of symbols]
1 ... Clock supply source (clock generator)
2 ... Clock supply destination (flip-flop)
3, 21-24, 31-33, 321-323 ... clock driver
4a, 4b; 41a-43a, 41b-43b; 421a-423a, 421b-423b, 4220 ... clock wiring
41-43 ... Charge pump circuit
100: Clock tree circuit
103a ... first delay variable clock driver
103b ... Second delay variable clock driver
102a, 102b ... flip-flop
104a, 104b ... feedback wiring
105, 105 '... Phase comparison circuit
106 ... Low-pass filter (LPF)
107A to 197Z ... enable circuit (NAND gate)
110a ... first partial clock tree
110b ... second partial clock tree
151, 152 ... Clock receiver 151, 152
153, 154 ... Dynamic D flip-flop
155 ... Amplifier
156 ... Brake signal generation circuit
310 ... Processing device
320 ... Program (data) provider
330 ... portable recording medium
400: Cell placement and routing area
410, 420 ... part of the clock tree
1501-1504 ... Inverter
1505-1508: NAND gate

Claims (40)

クロックを分配するクロックツリー回路であって、
第1のクロックドライバを介して前記クロックを分配する第1の部分クロックツリー、
第2のクロックドライバを介して前記クロックを分配する第2の部分クロックツリー、
前記第1の部分クロックツリーからの第1のクロックと前記第2の部分クロックツリーからの第2のクロックとの位相を比較する位相比較回路、および、
前記位相比較回路の出力を受け取って直流化するローパスフィルタを備え、前記第1および第2のクロックドライバの少なくとも一方は遅延時間が可変であり、前記ローパスフィルタの出力により該遅延時間が可変な該第1および第2のクロックドライバの少なくとも一方の遅延時間を制御することを特徴とするクロックツリー回路。
A clock tree circuit for distributing clocks,
A first partial clock tree that distributes the clock through a first clock driver;
A second partial clock tree that distributes the clock through a second clock driver;
A phase comparison circuit for comparing the phases of a first clock from the first partial clock tree and a second clock from the second partial clock tree; and
A low-pass filter that receives the output of the phase comparison circuit and converts it into a direct current; at least one of the first and second clock drivers has a variable delay time, and the delay time is variable by the output of the low-pass filter; A clock tree circuit that controls a delay time of at least one of the first and second clock drivers.
請求項1に記載のクロックツリー回路において、
前記ローパスフィルタは、前記位相比較回路と前記遅延時間が可変な前記第1および第2のクロックドライバの少なくとも一方との間の配線容量を使用することを特徴とするクロックツリー回路。
The clock tree circuit of claim 1, wherein
The clock tree circuit, wherein the low-pass filter uses a wiring capacitance between the phase comparison circuit and at least one of the first and second clock drivers having a variable delay time.
請求項1に記載のクロックツリー回路において、該クロックツリー回路は、CTS方式が適用されたクロックドライバのツリーであり、前記第1および第2の部分クロックツリーは、該クロックドライバのツリーの一部を構成することを特徴とするクロックツリー回路。2. The clock tree circuit according to claim 1, wherein the clock tree circuit is a tree of a clock driver to which a CTS method is applied, and the first and second partial clock trees are a part of the tree of the clock driver. A clock tree circuit characterized by comprising: 請求項3に記載のクロックツリー回路において、
前記クロックドライバは、バッファまたはインバータであることを特徴とするクロックツリー回路。
The clock tree circuit according to claim 3, wherein
The clock tree circuit, wherein the clock driver is a buffer or an inverter.
請求項1に記載のクロックツリー回路において、
前記第1および第2の部分クロックツリーは近接しており、
前記位相比較回路は、前記近接する第1および第2の部分クロックツリーから出力される前記第1および第2のクロックを取り込んで位相比較を行うことを特徴とするクロックツリー回路。
The clock tree circuit of claim 1, wherein
The first and second partial clock trees are close together;
The clock tree circuit, wherein the phase comparison circuit takes in the first and second clocks output from the adjacent first and second partial clock trees and performs phase comparison.
請求項5に記載のクロックツリー回路において、
前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段のクロックドライバの出力クロックであることを特徴とするクロックツリー回路。
The clock tree circuit according to claim 5, wherein
The clock tree circuit, wherein the first and second clocks are output clocks of a clock driver at a final stage of the clock tree circuit.
請求項5に記載のクロックツリー回路において、
前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであることを特徴とするクロックツリー回路。
The clock tree circuit according to claim 5, wherein
The clock tree circuit according to claim 1, wherein the first and second clocks are output clocks of clock drivers at arbitrary stages except the final stage of the clock tree circuit.
請求項7に記載のクロックツリー回路において、さらに、
前記第1の部分クロックツリーからの前記第1のクロックが供給され、CTS方式が適用されたクロックドライバのツリーとして構成された第1の末端領域、および、
前記第2の部分クロックツリーからの前記第2のクロックが供給され、CTS方式が適用されたクロックドライバのツリーとして構成された第2の末端領域を備えることを特徴とするクロックツリー回路。
The clock tree circuit of claim 7, further comprising:
A first end region configured as a tree of clock drivers to which the first clock from the first partial clock tree is supplied and to which a CTS scheme is applied; and
A clock tree circuit comprising: a second end region configured as a tree of clock drivers to which the second clock from the second partial clock tree is supplied and to which a CTS method is applied.
請求項1に記載のクロックツリー回路において、
前記第1の部分クロックツリーと前記第2の部分クロックツリーとの組を、複数組備えることを特徴とするクロックツリー回路。
The clock tree circuit of claim 1, wherein
A clock tree circuit comprising a plurality of sets of the first partial clock tree and the second partial clock tree.
請求項9に記載のクロックツリー回路において、前記複数組は階層化されており、第1の組における第1の部分クロックツリーは、クロックドライバの遅延時間制御が終了した第2の組における第1および第2の部分クロックツリーを含むことを特徴とするクロックツリー回路。10. The clock tree circuit according to claim 9, wherein the plurality of groups are hierarchized, and the first partial clock tree in the first group is the first group in the second group in which the delay time control of the clock driver is completed. And a second partial clock tree. クロックを分配するクロックツリー回路、該クロックツリー回路を介して第1のクロックが供給される第1のフリップフロップ群を有する第1の内部回路、および、該クロックツリー回路を介して第2のクロックが供給される第2のフリップフロップ群を有する第2の内部回路を備える半導体集積回路装置であって、前記クロックツリー回路は、
第1のクロックドライバを介して前記クロックを分配する第1の部分クロックツリー、
第2のクロックドライバを介して前記クロックを分配する第2の部分クロックツリー、
前記第1の部分クロックツリーからの第1のクロックと前記第2の部分クロックツリーからの第2のクロックとの位相を比較する位相比較回路、および、
前記位相比較回路の出力を受け取って直流化するローパスフィルタを備え、前記第1および第2のクロックドライバの少なくとも一方は遅延時間が可変であり、前記ローパスフィルタの出力により該遅延時間が可変な該第1および第2のクロックドライバの少なくとも一方の遅延時間を制御することを特徴とする半導体集積回路装置。
A clock tree circuit for distributing clocks, a first internal circuit having a first flip-flop group to which a first clock is supplied via the clock tree circuit, and a second clock via the clock tree circuit Is a semiconductor integrated circuit device having a second internal circuit having a second flip-flop group supplied with the clock tree circuit,
A first partial clock tree that distributes the clock through a first clock driver;
A second partial clock tree that distributes the clock through a second clock driver;
A phase comparison circuit for comparing the phases of a first clock from the first partial clock tree and a second clock from the second partial clock tree; and
A low-pass filter that receives the output of the phase comparison circuit and converts it into a direct current; at least one of the first and second clock drivers has a variable delay time, and the delay time is variable by the output of the low-pass filter; A semiconductor integrated circuit device that controls a delay time of at least one of the first and second clock drivers.
請求項11に記載の半導体集積回路装置において、
前記ローパスフィルタは、前記位相比較回路と前記遅延時間が可変な前記第1および第2のクロックドライバの少なくとも一方との間の配線容量を使用することを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 11,
The semiconductor low-pass filter uses a wiring capacitance between the phase comparison circuit and at least one of the first and second clock drivers whose delay time is variable.
請求項11に記載の半導体集積回路装置において、前記クロックツリー回路は、CTS方式が適用されたクロックドライバのツリーであり、前記第1および第2の部分クロックツリーは、該クロックドライバのツリーの一部を構成することを特徴とする半導体集積回路装置。12. The semiconductor integrated circuit device according to claim 11, wherein the clock tree circuit is a tree of clock drivers to which a CTS method is applied, and the first and second partial clock trees are one of the clock driver trees. A semiconductor integrated circuit device comprising a part. 請求項13に記載の半導体集積回路装置において、
前記クロックドライバは、バッファまたはインバータであることを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 13.
The semiconductor integrated circuit device, wherein the clock driver is a buffer or an inverter.
請求項11に記載の半導体集積回路装置において、
前記第1および第2の部分クロックツリーは近接しており、
前記位相比較回路は、前記近接する第1および第2の部分クロックツリーから出力される前記第1および第2のクロックを取り込んで位相比較を行うことを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 11,
The first and second partial clock trees are close together;
2. The semiconductor integrated circuit device according to claim 1, wherein the phase comparison circuit takes in the first and second clocks output from the adjacent first and second partial clock trees and performs phase comparison.
請求項15に記載の半導体集積回路装置において、
前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 15, wherein
The semiconductor integrated circuit device according to claim 1, wherein the first and second clocks are output clocks of a clock driver at a final stage of the clock tree circuit.
請求項15に記載の半導体集積回路装置において、
前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 15, wherein
The semiconductor integrated circuit device according to claim 1, wherein the first and second clocks are output clocks of a clock driver at an arbitrary stage excluding the final stage of the clock tree circuit.
請求項17に記載の半導体集積回路装置において、前記クロックツリー回路は、さらに、
前記第1の部分クロックツリーからの前記第1のクロックが供給され、CTS方式が適用されたクロックドライバのツリーとして構成された第1の末端領域、および、
前記第2の部分クロックツリーからの前記第2のクロックが供給され、CTS方式が適用されたクロックドライバのツリーとして構成された第2の末端領域を備えることを特徴とする半導体集積回路装置。
18. The semiconductor integrated circuit device according to claim 17, wherein the clock tree circuit further includes:
A first end region configured as a tree of clock drivers to which the first clock from the first partial clock tree is supplied and to which a CTS scheme is applied; and
A semiconductor integrated circuit device comprising a second terminal region configured as a tree of clock drivers to which the second clock from the second partial clock tree is supplied and to which a CTS method is applied.
請求項11に記載の半導体集積回路装置において、
前記第1の部分クロックツリーと前記第2の部分クロックツリーとの組を、複数組備えることを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 11,
A semiconductor integrated circuit device comprising a plurality of sets of the first partial clock tree and the second partial clock tree.
請求項19に記載の半導体集積回路装置において、前記複数組は階層化されており、第1の組における第1の部分クロックツリーは、クロックドライバの遅延時間制御が終了した第2の組における第1および第2の部分クロックツリーを含むことを特徴とする半導体集積回路装置。20. The semiconductor integrated circuit device according to claim 19, wherein the plurality of sets are hierarchized, and the first partial clock tree in the first set is the second set in the second set in which the delay time control of the clock driver is completed. A semiconductor integrated circuit device comprising a first and a second partial clock tree. フロアプランニング、配置配線およびCTSを行うステップ、
寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、
前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入するステップ、および、
ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行うステップを備え、
前記エラー個所にスキュー低減回路を挿入するステップは、
遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、
前記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求めるステップ、および、
該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更するステップを備えることを特徴とする半導体集積回路装置の設計方法。
Performing floor planning, placement and routing, and CTS;
Extracting parasitic elements and performing timing verification in consideration of the extracted parasitic elements;
Inserting a skew reduction circuit at an error location when it is determined that the timing in consideration of the extracted parasitic element is not correct; and
Performing ECO processing, and again performing extraction of parasitic elements and timing verification in consideration of the extracted parasitic elements,
Inserting a skew reduction circuit at the error location comprises:
A first partial clock tree that distributes a clock through a first delay time variable clock driver having a variable delay time and a second partial clock tree that distributes a clock through a second clock driver are extracted. Step,
Determining an arrival time difference between a first clock output from the first partial clock tree and a second clock output from the second partial clock tree; and
A semiconductor integrated circuit comprising a step of changing a delay time of the first delay time variable clock driver when a difference between arrival times of the first and second clocks does not satisfy a predetermined skew value. Device design method.
請求項21に記載の半導体集積回路装置の設計方法において、
前記第2のクロックドライバは遅延時間が可変な第2の遅延時間可変クロックドライバであり、前記第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバと共に、該第2の遅延時間可変クロックドライバの遅延時間も変更することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 21,
The second clock driver is a second delay time variable clock driver having a variable delay time, and when the difference between arrival times of the first and second clocks does not satisfy a predetermined skew value, the first clock driver A method of designing a semiconductor integrated circuit device, wherein the delay time of the second delay time variable clock driver is also changed together with the delay time variable clock driver.
請求項21に記載の半導体集積回路装置の設計方法において、
前記第1および第2の部分クロックツリーは近接しており、
該近接する第1および第2の部分クロックツリーから出力される前記第1および第2のクロックの到着時間差を求めることを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 21,
The first and second partial clock trees are close together;
A design method of a semiconductor integrated circuit device, wherein an arrival time difference between the first and second clocks output from the adjacent first and second partial clock trees is obtained.
請求項23に記載の半導体集積回路装置の設計方法において、
前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 23,
The method of designing a semiconductor integrated circuit device, wherein each of the first and second clocks is an output clock of a clock driver at a final stage of the clock tree circuit.
請求項23に記載の半導体集積回路装置の設計方法において、
前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 23,
The method of designing a semiconductor integrated circuit device, wherein the first and second clocks are output clocks of a clock driver at an arbitrary stage excluding the final stage of the clock tree circuit.
請求項25に記載の半導体集積回路装置の設計方法において、
前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と同時にCTS方式を適用してクロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 25,
A first end region to which the first clock from the first partial clock tree is supplied and a second end region to which the second clock from the second partial clock tree is supplied On the other hand, a method for designing a semiconductor integrated circuit device, wherein a tree of clock drivers is formed by applying a CTS method simultaneously with the clock tree circuit.
請求項25に記載の半導体集積回路装置の設計方法において、
前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と独立してCTS方式を適用し、クロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 25,
A first end region to which the first clock from the first partial clock tree is supplied and a second end region to which the second clock from the second partial clock tree is supplied On the other hand, a design method of a semiconductor integrated circuit device, wherein a CTS method is applied independently of the clock tree circuit to form a clock driver tree.
請求項21に記載の半導体集積回路装置の設計方法において、
前記第1の部分クロックツリーと前記第2の部分クロックツリーとの組を、複数個所で抽出することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 21,
A design method of a semiconductor integrated circuit device, wherein a set of the first partial clock tree and the second partial clock tree is extracted at a plurality of locations.
請求項28に記載の半導体集積回路装置の設計方法において、
前記複数個所の第1および第2の部分クロックツリーの組の抽出を階層的に行い、第1の組における第1の部分クロックツリーは、クロックドライバの遅延時間制御が終了した第2の組における第1および第2の部分クロックツリーを含むことを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 28,
The plurality of first and second partial clock tree sets are hierarchically extracted, and the first partial clock tree in the first set is the second set in which the delay time control of the clock driver is completed. A method for designing a semiconductor integrated circuit device, comprising first and second partial clock trees.
フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入するステップを備える半導体集積回路装置の設計方法であって、
前記スキュー低減回路を挿入するステップは、
遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、
前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定するステップ、
前記第1および第2のクロックの位相を比較する位相比較回路を配置するステップ、
該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックするステップを備えることを特徴とする半導体集積回路装置の設計方法。
A method for designing a semiconductor integrated circuit device comprising a step of inserting a skew reduction circuit after performing floor planning, placement and routing, and CTS,
Inserting the skew reduction circuit comprises:
A first partial clock tree that distributes a clock through a first delay time variable clock driver having a variable delay time, and a clock that is proximate to the first partial clock tree and distributed through a second clock driver Extracting a second partial clock tree to
Defining a first observation point from which the first clock from the first partial clock tree is output and a second observation point from which the second clock from the second partial clock tree is output. ,
Arranging a phase comparison circuit for comparing phases of the first and second clocks;
A design method of a semiconductor integrated circuit device, comprising a step of feeding back a control signal from the phase comparison circuit to the first delay time variable clock driver.
請求項30に記載の半導体集積回路装置の設計方法において、
前記第1の観測点は前記第1の部分クロックツリーのクロックを代表する前記第1のクロックを出力し、且つ、前記第2の観測点は前記第2の部分クロックツリーのクロックを代表する前記第2のクロックを出力することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 30,
The first observation point outputs the first clock representing the clock of the first partial clock tree, and the second observation point represents the clock of the second partial clock tree. A method for designing a semiconductor integrated circuit device, comprising: outputting a second clock.
請求項30に記載の半導体集積回路装置の設計方法において、
前記第1の部分クロックツリーと前記第2の部分クロックツリーとの組を、複数個所で抽出することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 30,
A design method of a semiconductor integrated circuit device, wherein a set of the first partial clock tree and the second partial clock tree is extracted at a plurality of locations.
請求項32に記載の半導体集積回路装置の設計方法において、
前記複数個所の第1および第2の部分クロックツリーの組の抽出を階層的に行い、第1の組における第1の部分クロックツリーは、クロックドライバの遅延時間制御が終了した第2の組における第1および第2の部分クロックツリーを含むことを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 32,
The plurality of first and second partial clock tree sets are hierarchically extracted, and the first partial clock tree in the first set is the second set in which the delay time control of the clock driver is completed. A method for designing a semiconductor integrated circuit device, comprising first and second partial clock trees.
請求項30に記載の半導体集積回路装置の設計方法において、
前記第1および第2のクロックの観測点は、それぞれ最終段のクロックドライバの出力であることを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 30,
The method for designing a semiconductor integrated circuit device, wherein the observation points of the first and second clocks are the outputs of the clock driver in the final stage, respectively.
請求項30に記載の半導体集積回路装置の設計方法において、
前記第1および第2のクロックの観測点は、それぞれ最終段を除くクロックドライバの出力であることを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 30,
The method of designing a semiconductor integrated circuit device, wherein the observation points of the first and second clocks are outputs of clock drivers excluding the final stage, respectively.
請求項35に記載の半導体集積回路装置の設計方法において、
前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と同時にCTS方式を適用してクロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 35,
A first end region to which the first clock from the first partial clock tree is supplied and a second end region to which the second clock from the second partial clock tree is supplied On the other hand, a method for designing a semiconductor integrated circuit device, wherein a tree of clock drivers is formed by applying a CTS method simultaneously with the clock tree circuit.
請求項35に記載の半導体集積回路装置の設計方法において、
前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と独立してCTS方式を適用し、クロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計方法。
The method of designing a semiconductor integrated circuit device according to claim 35,
A first end region to which the first clock from the first partial clock tree is supplied and a second end region to which the second clock from the second partial clock tree is supplied On the other hand, a design method of a semiconductor integrated circuit device, wherein a CTS method is applied independently of the clock tree circuit to form a clock driver tree.
請求項30〜37のいずれか1項に記載の半導体集積回路装置の設計方法において、前記スキュー低減回路を挿入するステップの後、さらに、
寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、
前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にさらなるスキュー低減回路を挿入するステップ、および、
ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行うステップを備え、
前記エラー個所にさらなるスキュー低減回路を挿入するステップは、請求項21〜29のいずれか1項に記載の処理を行うことを特徴とする半導体集積回路装置の設計方法。
38. The method of designing a semiconductor integrated circuit device according to claim 30, further comprising: after the step of inserting the skew reduction circuit,
Extracting parasitic elements and performing timing verification in consideration of the extracted parasitic elements;
Inserting a further skew reduction circuit at the error location when it is determined that the timing considering the extracted parasitic elements is not correct; and
Performing ECO processing, and again performing extraction of parasitic elements and timing verification in consideration of the extracted parasitic elements,
30. The method of designing a semiconductor integrated circuit device according to claim 21, wherein the step of inserting a further skew reduction circuit at the error portion performs the process according to any one of claims 21 to 29.
コンピュータによって実行させるプログラムを記録した媒体であって、
フロアプランニング、配置配線およびCTSを行うステップ、
寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、
前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入するステップ、および、
ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行うステップを備え、
前記エラー個所にスキュー低減回路を挿入するステップは、
遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、
前記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求めるステップ、および、
該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更するステップを備える半導体集積回路の設計プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
A medium storing a program to be executed by a computer,
Performing floor planning, placement and routing, and CTS;
Extracting parasitic elements and performing timing verification in consideration of the extracted parasitic elements;
Inserting a skew reduction circuit at an error location when it is determined that the timing in consideration of the extracted parasitic element is not correct; and
Performing ECO processing, and again performing extraction of parasitic elements and timing verification in consideration of the extracted parasitic elements,
Inserting a skew reduction circuit at the error location comprises:
A first partial clock tree that distributes a clock through a first delay time variable clock driver having a variable delay time and a second partial clock tree that distributes a clock through a second clock driver are extracted. Step,
Determining an arrival time difference between a first clock output from the first partial clock tree and a second clock output from the second partial clock tree; and
When the difference between the arrival times of the first and second clocks does not satisfy a predetermined skew value, a semiconductor integrated circuit design program comprising a step of changing the delay time of the first delay time variable clock driver is recorded A computer-readable recording medium characterized by that.
フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入するステップを備えるコンピュータによって実行させるプログラムを記録した媒体であって、
前記スキュー低減回路を挿入するステップは、
遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出するステップ、
前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定するステップ、
前記第1および第2のクロックの位相を比較する位相比較回路を配置するステップ、
該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックするステップを備える半導体集積回路の設計プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
A medium on which a program to be executed by a computer including a step of inserting a skew reduction circuit after performing floor planning, placement and routing, and CTS,
Inserting the skew reduction circuit comprises:
A first partial clock tree that distributes a clock through a first delay time variable clock driver having a variable delay time, and a clock that is proximate to the first partial clock tree and distributed through a second clock driver Extracting a second partial clock tree to
Defining a first observation point from which the first clock from the first partial clock tree is output and a second observation point from which the second clock from the second partial clock tree is output. ,
Arranging a phase comparison circuit for comparing phases of the first and second clocks;
A computer-readable recording medium having recorded thereon a semiconductor integrated circuit design program comprising a step of feeding back a control signal from the phase comparison circuit to the first delay time variable clock driver.
JP2003200500A 2003-07-23 2003-07-23 Clock tree circuit and semiconductor integrated circuit device Expired - Fee Related JP4020836B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003200500A JP4020836B2 (en) 2003-07-23 2003-07-23 Clock tree circuit and semiconductor integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003200500A JP4020836B2 (en) 2003-07-23 2003-07-23 Clock tree circuit and semiconductor integrated circuit device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007202097A Division JP4425300B2 (en) 2007-08-02 2007-08-02 Semiconductor integrated circuit device design program and recording medium

Publications (2)

Publication Number Publication Date
JP2005044854A true JP2005044854A (en) 2005-02-17
JP4020836B2 JP4020836B2 (en) 2007-12-12

Family

ID=34260891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003200500A Expired - Fee Related JP4020836B2 (en) 2003-07-23 2003-07-23 Clock tree circuit and semiconductor integrated circuit device

Country Status (1)

Country Link
JP (1) JP4020836B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007027285A (en) * 2005-07-13 2007-02-01 Advantest Corp Semiconductor device
JP2009124703A (en) * 2007-11-09 2009-06-04 Hynix Semiconductor Inc Data center tracking circuit and semiconductor integrated circuit including the same
JP2010224717A (en) * 2009-03-23 2010-10-07 Nec Corp Clock distribution device and clock distribution method
JP2011044795A (en) * 2009-08-19 2011-03-03 Renesas Electronics Corp Input interface circuit
JP2011043993A (en) * 2009-08-21 2011-03-03 Nec Corp Delay analysis device for semiconductor integrated circuit, delay analysis method and program for the same
US9666265B2 (en) 2014-12-15 2017-05-30 Renesas Electronics Corporation Semiconductor device
CN113569524A (en) * 2021-07-29 2021-10-29 眸芯科技(上海)有限公司 Method for extracting clock tree based on comprehensive netlist in chip design and application

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007027285A (en) * 2005-07-13 2007-02-01 Advantest Corp Semiconductor device
JP2009124703A (en) * 2007-11-09 2009-06-04 Hynix Semiconductor Inc Data center tracking circuit and semiconductor integrated circuit including the same
JP2010224717A (en) * 2009-03-23 2010-10-07 Nec Corp Clock distribution device and clock distribution method
JP2011044795A (en) * 2009-08-19 2011-03-03 Renesas Electronics Corp Input interface circuit
JP2011043993A (en) * 2009-08-21 2011-03-03 Nec Corp Delay analysis device for semiconductor integrated circuit, delay analysis method and program for the same
US8788255B2 (en) 2009-08-21 2014-07-22 Nec Corporation Delay analysis processing of semiconductor integrated circuit
US9666265B2 (en) 2014-12-15 2017-05-30 Renesas Electronics Corporation Semiconductor device
US10097189B2 (en) 2014-12-15 2018-10-09 Renesas Electronics Corporation Semiconductor device
CN113569524A (en) * 2021-07-29 2021-10-29 眸芯科技(上海)有限公司 Method for extracting clock tree based on comprehensive netlist in chip design and application
CN113569524B (en) * 2021-07-29 2023-12-29 眸芯科技(上海)有限公司 Method for extracting clock tree based on comprehensive netlist in chip design and application

Also Published As

Publication number Publication date
JP4020836B2 (en) 2007-12-12

Similar Documents

Publication Publication Date Title
US8887110B1 (en) Methods for designing intergrated circuits with automatically synthesized clock distribution networks
US6268746B1 (en) Method and apparatus for logic synchronization
Fluhr et al. The 12-core power8™ processor with 7.6 tb/s io bandwidth, integrated voltage regulation, and resonant clocking
US6651230B2 (en) Method for reducing design effect of wearout mechanisms on signal skew in integrated circuit design
US7650521B2 (en) Semiconductor integrated circuit having a first power supply region and a second power supply region in which power supply voltage changes
US7904874B2 (en) Opposite-phase scheme for peak current reduction
Kim et al. A low-jitter mixed-mode DLL for high-speed DRAM applications
TW201351089A (en) Data processing system, data processing circuit and data processing method
US11971740B2 (en) Timing error detection and correction circuit
US10498339B2 (en) Hold-time compensation using free metal segments
US6288589B1 (en) Method and apparatus for generating clock signals
JP2000151369A (en) Semiconductor device
US9625938B2 (en) Integrated differential clock gater
JP4020836B2 (en) Clock tree circuit and semiconductor integrated circuit device
US7151396B2 (en) Clock delay compensation circuit
Chattopadhyay et al. Flexible and reconfigurable mismatch-tolerant serial clock distribution networks
JP4425300B2 (en) Semiconductor integrated circuit device design program and recording medium
Islam et al. CMCS: Current-mode clock synthesis
US7126405B2 (en) Method and apparatus for a distributed clock generator
US6233707B1 (en) Method and apparatus that allows the logic state of a logic gate to be tested when stopping or starting the logic gate&#39;s clock
US6888385B2 (en) Phase locked loop (PLL) for integrated circuits
US8710892B2 (en) Clock distribution circuit
JP4599485B2 (en) Method and apparatus for logic synchronization
Saxena et al. Clock System Architecture for Digital Circuits
Liao et al. Efficient and accurate jitter modeling method for unmatched memory bus

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070802

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: 20070828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070925

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131005

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees