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 PDFInfo
- 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
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Manipulation Of Pulses (AREA)
Abstract
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,
[0008]
As shown in FIG. 1, the clock tree in the semiconductor integrated circuit device is configured such that the clock from the
[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
[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,
[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
[0038]
As described above, the clock tree circuit described in
[0039]
However,
[0040]
Further, the clock distribution techniques shown in
[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,
[0051]
The
[0052]
In each of the
[0053]
That is, the clocks from the tips of the first and second
[0054]
The
[0055]
Further, in the above description, the clock drivers at the root portions of the two partial clock trees (first and second
[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
[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
[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
[0062]
First, the
[0063]
As shown in FIG. 9, the
[0064]
The
[0065]
The outputs (kick pulses: control signals) KICK0 and KICK1 (see FIG. 12) of the
[0066]
Thus, the
[0067]
As shown in FIG. 10, the brake
[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
[0069]
The voltage limiter /
[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
[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
[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
[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
[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
[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
[0085]
That is, in the method for designing a semiconductor integrated circuit device of the present invention, one clock driver (corresponding to the
[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
[0087]
Similarly, a
[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
[0092]
For the upstream side (root side) of the enable circuit (
[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
[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
[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,
[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
[0122]
For example, the phase of the clock output from the last
[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
[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,
[0126]
The semiconductor integrated circuit design method according to each embodiment described above is given as a program (data) for the
[0127]
The program (data)
[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
[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 ...
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および第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.
前記クロックドライバは、バッファまたはインバータであることを特徴とするクロックツリー回路。The clock tree circuit according to claim 3, wherein
The clock tree circuit, wherein the clock driver is a buffer or an inverter.
前記第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.
前記第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.
前記第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.
前記第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の部分クロックツリーと前記第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.
第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.
前記ローパスフィルタは、前記位相比較回路と前記遅延時間が可変な前記第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.
前記クロックドライバは、バッファまたはインバータであることを特徴とする半導体集積回路装置。The semiconductor integrated circuit device according to claim 13.
The semiconductor integrated circuit device, wherein the clock driver is a buffer or an inverter.
前記第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.
前記第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.
前記第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.
前記第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.
前記第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.
寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、
前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入するステップ、および、
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.
前記第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.
前記第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.
前記第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.
前記第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.
前記第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.
前記第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.
前記第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.
前記複数個所の第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.
前記スキュー低減回路を挿入するステップは、
遅延時間が可変な第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.
前記第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.
前記第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.
前記複数個所の第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.
前記第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.
前記第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.
前記第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.
前記第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.
寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行うステップ、
前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にさらなるスキュー低減回路を挿入するステップ、および、
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.
前記スキュー低減回路を挿入するステップは、
遅延時間が可変な第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.
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)
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 |
-
2003
- 2003-07-23 JP JP2003200500A patent/JP4020836B2/en not_active Expired - Fee Related
Cited By (10)
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'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 |