JP4425300B2 - 半導体集積回路装置の設計プログラム、および、記録媒体 - Google Patents

半導体集積回路装置の設計プログラム、および、記録媒体 Download PDF

Info

Publication number
JP4425300B2
JP4425300B2 JP2007202097A JP2007202097A JP4425300B2 JP 4425300 B2 JP4425300 B2 JP 4425300B2 JP 2007202097 A JP2007202097 A JP 2007202097A JP 2007202097 A JP2007202097 A JP 2007202097A JP 4425300 B2 JP4425300 B2 JP 4425300B2
Authority
JP
Japan
Prior art keywords
clock
semiconductor integrated
tree
integrated circuit
partial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007202097A
Other languages
English (en)
Other versions
JP2008010003A (ja
Inventor
徹哉 藤本
高廣 山下
幸生 有馬
孝一郎 石橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2007202097A priority Critical patent/JP4425300B2/ja
Publication of JP2008010003A publication Critical patent/JP2008010003A/ja
Application granted granted Critical
Publication of JP4425300B2 publication Critical patent/JP4425300B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、クロックの分配技術に関し、特に、低電力で動作し、設計が容易であり、且つ、スキューの小さいクロックツリー回路、半導体集積回路装置、半導体集積回路装置の設計方法、および、半導体集積回路の設計プログラムを記録した媒体に関する。
従来、ASIC/SoC(Application Specific Integrated Circuit/System on Chip)設計において、クロックスキュー(Clock Skew)の小さいクロック分配は、CTS(Clock Tree Synthesis)と呼ばれる方式、すなわち、まず、LSI(Large Scale Integration Circuit)のセルを配置し、その後、クロック供給源から全ての供給先(例えば、フリップフロップのクロック入力端子)への伝播遅延時間がなるべく等しくなるように、インバータまたはバッファツリーを合成して配置および優先配線を行うセルライブラリのタイミング情報と配線遅延等の寄生素子の情報に基づく静的な方式が用いられていた。
さらに、従来、クロックの分配精度を高める(各クロック供給先への伝播遅延時間の差を小さくする)ために、遅延のバラエティの高いセルセットを用意するといった高精度化を目的とした多数の提案がなされ、また、実用に供されている。そして、それでも吸収できないパラメータの見積り誤差、製造ばらつき、並びに、動作時の電源電圧や温度による変動に対応するために、動的に遅延を調整する方式もいくつか提案されている。
ところで、上述した静的方式は、近年の半導体集積回路装置の微細化およびその動作電圧の低電圧化によって、クロック供給源から各供給先へのクロックの伝播遅延時間に対する要求を満たすことが極めて難しくなっているのが実情である。すなわち、クロックの伝播遅延時間を無理に目標に近づけると、クロックツリーが深く(階層の段数が多く)なって、回路規模および消費電力が破綻することになってしまう。さらに、従来、知られている動的方式は、消費電力が大きく、また、回路規模が大きく、或いは、通常のSoCの設計フローとの整合性がなくシステム(ハードまたはソフト)の負荷が増大するといった問題がある。
そこで、低電力で動作すると共に、設計が容易であり、且つ、スキューの小さいクロック分配技術の提供が強く要望されている。
まず、添付図面の図1〜図5を参照して、半導体集積回路装置におけるクロックツリー設計の技術背景を説明する。
図1および図2は半導体集積回路装置のクロックツリー設計の技術背景を説明するための図であり、LSIのセルを配置した後、クロック供給源から全ての供給先への伝播遅延時間がなるべく等しくなるように、インバータまたはバッファツリーを合成して配置・配線を行うCTS方式を説明するものである。図1において、参照符号1はクロック供給源(クロックジェネレータ)、2はクロック供給先(フリップフロップ)、3,31〜33,321〜323はクロックドライバ(バッファまたはインバータ)、そして、4a,4b;41a〜43a,41b〜43b;421a〜423a,421b〜423b,4220はクロック配線を示している。
図1に示されるように、半導体集積回路装置におけるクロックツリーは、クロックジェネレータ1からのクロックを、階層化されたクロックドライバ(例えば、クロックドライバ3,32,322)およびクロック配線(例えば、クロック配線4a,4b,42a,42b,422a,422b,4220)を介してフリップフロップ1のクロック端子CKに供給する。なお、図1では、1つのフリップフロップのみが描かれているが、実際には、階層化された最終段の複数のクロックドライバ(322)から対応する各フリップフロップ(2)に対してそれぞれクロックが供給される。
ここで、クロックを受け取る複数のフリップフロップ(2)において、最も速いタイミングでクロックを受け取るフリップフロップと最も遅いタイミングでクロックを受け取るフリップフロップとの間の時間差(伝播遅延時間の差:クロックスキュー)をTsとすると、このクロックスキューTsはできるだけ小さい方が好ましい。すなわち、半導体集積回路装置における各回路(各フリップフロップ)を同じクロックのエッジで制御する必要がある。
ところで、半導体集積回路装置において、クロックを受け取るフリップフロップは、チップ上の様々な位置に散らばっており、クロックジェネレータ1(または、半導体集積回路装置のクロック入力端子)から各フリップフロップ(2)までのクロック配線(4a,4b,42a,42b,422a,422b,4220)の長さはそれぞれ異なっており、また、これらのクロック配線の寄生容量も一定ではない。そのため、クロックを受け取る全てのフリップフロップ(2)を同じタイミングで制御するためには、クロックドライバ(3,32,322)の階層化を多く(クロックツリーを深く)して、これら各クロックドライバで短いクロック配線(小さい寄生容量)を駆動するようになっている。
さらに、近年、半導体集積回路装置は、その性能を一層向上させるべく、より高速のクロックにより駆動されるようになって来ている。このように、クロック周波数が高速化すると、クロックスキューに対する要求は、より一層厳しいものとなる。
具体的に、例えば、図2に示されるように、クロック周波数が100MHzで10%のタイミングマージン(すなわち、1ns)が許される場合、同じ10%のタイミングマージンでも、例えば、クロック周波数が200MHzになると、半分(0.5ns)の時間しか許されないことになる。換言すると、同じ1nsのクロックスキューが存在する場合、クロック周波数が200MHzになると、20%のタイミングマージンがないと誤動作の恐れが生じることになる。
そのため、クロック周波数が高くなると、より多くのクロックドライバを使用することになり、結果として、消費電力も増加してしまう。
図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)になる。なお、クロックツリーの各ブランチの先端には、例えば、それぞれフリップフロップ(図示しない)が設けられている。
図3(a)〜図3(c)から明らかなように、クロックスキューを小さくすればするほど、クロックツリーは複雑になって回路規模も大きくなることが分かる。
すなわち、クロックスキューと消費電力との関係を示す図4からも明らかなように、CTS方式を適用したクロックツリーは、クロックスキューの値を減らそうとすると、ツリーの段数が増えるため消費電力も増大する。さらに、厳しいスキューを充足するためには、クロックツリーの規模が爆発的に増大して非現実的なものになったり、また、レイアウトとして物理的な実現可能性が難しくなってしまう。さらに、仮に、そのような深い(クロックドライバの段数の多い)クロックツリーができたとしても、実際に製造した半導体集積回路装置におけるタイミング精度には疑問がある。なお、経験的には、浅いクロックツリーが正確でよいという考え方もある。
図5は低電圧で動作する半導体集積回路装置のクロックツリー設計を説明するための図であり、図5(a)は、低電圧で動作する半導体集積回路装置の一例における制御系、データパス系およびクロックブロック系に対するコア電力消費の百分率を示し、また、図5(b)は、低電圧で動作する半導体集積回路装置の各具体例における電力消費の百分率を示している。
図5(a)に示されるように、低電圧で動作する半導体集積回路装置の一例におけるコア電力消費は、例えば、制御系において約53%が消費され、その内、約38%が論理回路により消費され、また、約15%がクロックドライバにより消費され、さらに、例えば、データパス系において約43%が消費され、その内、約28%が論理回路により消費され、また、約15%がクロックドライバにより消費されることが分かる。なお、クロックブロック系においては、約4%がクロックドライバにより消費されている。合計すると、クロック系全体で全電力の約34%が消費されているといえる。
このように、半導体集積回路装置において、クロックドライバにより消費される電力は、クロックブロック系だけではなく、制御系やデータパス系においてもおおきなウェイトを占めていることが分かる。
図5(b)は、半導体集積回路装置の各具体例における電力消費の百分率を示すもので、埋め込みコントローラLSI(最内周の同心円部分)、ハイエンドCPU(埋め込みコントローラLSIの外側の同心円部分)、MPEG2デコーダ(ハイエンドCPUの外側の同心円部分)、および、ATMスイッチLSI(MPEG2デコーダの外側の同心円部分:最外周の同心円部分)の具体的な4種類のLSI(チップ)における電力消費の百分率を示すものである。
すなわち、例えば、埋め込みコントローラ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による電力消費である。
このように、様々な半導体集積回路装置においても、クロック系の消費電力が大きなウェイトを持つことが分かる。
特に、低電圧でのタイミング設計においては、動作電圧の低下によりスリューレート(Slew Rate)が大きくなり、それに伴ってクロックスキューも増大する。このため、標準電圧で設計されたクロックツリーを用いると動作マージンの劣化が起こる。また、クロックスキューを標準電圧と同じに保とうとすると、クロックツリーの強化が必要となり、消費電力および面積の増加を招く。このことは、より強力なCTS技術に加え、性能と消費電力のトレードオフ問題を取り扱うことを意味し、設計問題が複雑化するため好ましいことではない。
ここで、低電圧におけるクロックスキューの低減は、標準電圧時よりも一層直接に最大動作周波数に寄与する。さらに、クロックツリーを強化せずにスキューを削減できれば、高速動作、低電圧動作および低電力動作の並立に有効である。
なお、従来、低消費電力で低スキューのクロックツリー回路が提案されている(例えば、特許文献1参照)。
さらに、従来、基準クロックとの位相比較を行う位相比較器、ループフィルタおよびVCO(Voltage Controlled Oscillator:電圧制御発信器)を使用して高速のクロックを分配する技術も提案されている(例えば、非特許文献1参照)。また、従来、ディジタル方式のDLL(Delay Locked Loop)回路を使用して低スキューのクロックを分配するものも提案されている(例えば、非特許文献2参照)。
特開2000−035831 バディム・ガトニックおよびアナンサ・ピー・チャンドラカサン、「分配PLLを使用したアクティブ・ギガヘルツ・クロックネトワーク」、ソリッド・ステート・サーキットのIEEEジャーナル、第35巻、第11号、第1553〜第1560頁、2000年11月(Vadim 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) チャールズ・イー・ダイク他、「ディジタル、ダイナミック・クロック・デスキュー設計」、技術論文の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)
上述したように、従来、クロック分配技術としては、高精度な見積もりによるトップダウン方式、すなわち、静的手法として、通常、CTS(Clock Tree Synthesis)方式が利用されている。このCTS方式は、インバータまたはバッファ(クロックドライバ)から構成されるクロックツリーを、経路遅延がなるべく等しくなるように、チップ上に配置・配線するP&R(Place-and-Route)技術を適用し、さらに、クロックツリーの経路遅延を正確に見積もるタイミング評価を行い、そして、一旦作成されたクロックツリーの経路遅延をより均一にするために、遅延値(遅延時間)の異なるセルへの差し替えや負荷の微調整等を行う後処理によりさらに精度を向上するものである。
しかしながら、このCTS方式には、以下のような問題点がある。
すなわち、CTS方式は、遅延の見積もり値に基づくものであるが、実デバイスにおいては、見積もり誤差、製造ばらつきおよび温度変化等の影響を受けることになる。さらに、より小さなスキューを達成するためには、クロックツリーの段数、総クロックドライバ数および総配線長が増加することになりその結果、消費電力も増加する。
また、クロックツリーが深く(階層の段数が多く)なると、見積もり誤差、製造ばらつき、および、温度変化等の影響が増大するといった悪循環に入ってしまうことがある。さらに、CTS方式は、配置結果や配置領域の形状などに間接的影響を受けるため、スキューに対する要求が厳しいときは、収束しなかったり、或いは、レイアウトより寄生素子を抽出しその寄生素子を考慮したシミュレーションを行うバックアノテーション後にタイミングエラーとなって実装設計が収束しないこともにもなる。
しかしながら、前述したように、通常電圧(例えば、電源電圧Vcc=1.2V、トランジスタの閾値電圧Vth=400mV)のとき、静的手法で妥当なスキュー(10psのオーダ)が達成できるとしても、低電圧(例えば、電源電圧Vcc=0.5V、トランジスタの閾値電圧Vth=200mV)では2倍以上のスキューとなってしまう。また、ばらつきの影響や温度変化を考慮すると、前記のような静的な手法では十分とはいえず、LSI内部での実際のスキューの観測値に基づくより一層正確な方法が求められている。そこで、クロックツリーの中に、遅延可変なクロックドライバまたは選択可能なクロックドライバの組を設け、例えば、電源投入時等のタイミングで経路遅延をある種の参照時間(外部クロック等)に合わせて変更するといった遅延の半動的調整が考えられる。
しかしながら、上記の手法では、チップ外部にリファレンス(外部クロック)が必要であったり、或いは、内部にリファレンスを設ける場合には、LSIが複雑化し、さらに、ボードやシステムの負荷が増大することにもなる。
さらに、他の手法として、経路遅延差のあるクロックを短絡して遅延差が無くなるように出力の短絡を行うこと(例えば、FPGA(File Programmable Gate Array)におけるグローバルライン)も考えられるが、この場合、周波数の高い部分を短絡すると動作電流が増加することになり、また、位相差のある信号を出力短絡すると、貫通電流が増加して消費電力が大きくなるといった問題がある。
さらに、従来、回路の動作中に、経路遅延差を測定し、遅延可変なクロックドライバにフィードバックする遅延の動的調整も提案されている(例えば、前記特許文献1参照)。
図6は従来のクロックツリー回路の一例を示すブロック回路図であり、特許文献1の図4に相当するものである。図6において、参照符号21〜24はクロックドライバ(クロック素子)、25はクロック供給元クロックドライバ、31〜33は位相比較回路、そして、41〜43はチャージポンプ回路を示している。
図6に示す従来のクロックツリー回路は、クロックドライバ21〜24に閾値電圧可変のウェル構造を有するトランジスタを適用し、位相比較回路31〜33により、クロックドライバ24を基準とした他のクロックドライバ21〜23との間の位相を比較(位相差(スキュー)を検出)すると共に、差電圧を出力する。さらに、チャージポンプ回路41〜43により、上記差電圧を入力としてクロックドライバ21〜23にフィードバック(クロックドライバ21〜23のn−チャネル型MOSトランジスタのpウェル端子にウェル電位として印加)し、クロックドライバ21〜23のスイッチング速度を制御してクロックスキューを低減させるようになっている。
このように、特許文献1に記載されたクロックツリー回路は、クロックツリーの先端部で位相差を測定し、ツリーに帰還するアーキテクチャであり、位相比較回路の出力を用いてチャージポンプ回路を駆動し、基板に逆バイアスを印加することによりクロックドライバを低速化してクロックスキューを低減させるものである。
しかしながら、特許文献1には、チャージポンプ回路および位相比較回路の実現方法や配置位置等に関する記載がないだけでなく、チャージポンプ回路を別に設けたり、基板の独立化等により回路のオーバヘッドの増加(回路面積の増加)および消費電力の増大が生じ、さらに、高周波信号(リファレンスや位相差信号)の大域的分配による消費電力の増加も生じる。また、図6の回路では、リファレンスクロックがスキューレスで分配でき、且つ、リファレンスクロックが一番遅いことが前提となっているが、それらは現実的ではない。
また、前述した非特許文献1および非特許文献2に示すクロック分配技術では、回路規模が大きくなると共に、消費電力が増大するといった課題がある。さらに、例えば、非特許文献2では、遅延線(DLL回路)を制御する信号はディジタル信号でありノイズの影響を受け易いといった課題もある。
本発明は、上述した従来のクロック分配技術が有する課題に鑑み、低電圧動作で高速および高信頼性を有し、クロック系の消費電力を低減することのできるクロックツリー回路および半導体集積回路装置の提供を目的とする。さらに、本発明は、増大するクロック系電力の割合を抑えると共に、回路オーバヘッドが少なく、また、テクノロジ依存性が小さく、さらに、一般的なSoC設計フローと親和性高く、合理的な設計フローを構築することができ、そして、新たに問題を導入しない(ゼロスキュー配線を要する信号を増やしたりしない)クロックツリー回路、半導体集積回路装置、半導体集積回路装置の設計方法、および、半導体集積回路の設計プログラムを記録した媒体の提供を目的とする。
本発明の第1の形態によれば、コンピュータに、フロアプランニング、配置配線およびCTSを行う手順寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行う手順、前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入する手順、および、ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行う手順を実行させるための半導体集積回路装置の設計プログラムであって、前記エラー個所にスキュー低減回路を挿入する手順は、前記コンピュータに、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接する第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出する手順、前記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求める手順、および、該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更する手順を実行させ、前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置の設計プログラムが提供される。
本発明の第2の形態によれば、コンピュータに、フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入する手順を実行させるための半導体集積回路装置の設計プログラムであって、前記スキュー低減回路を挿入する手順は、前記コンピュータに、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出する手順、前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定する手順、前記第1の観測点から出力される前記第1のクロックおよび前記第2の観測点から出力される前記第2のクロックの位相を比較する位相比較回路を配置する手順、該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックする手順を実行させ、前記第1および第2のクロックの観測点は、それぞれ最終段を除くクロックドライバの出力であることを特徴とする半導体集積回路装置の設計プログラムが提供される。
本発明の第3の形態によれば、コンピュータに、フロアプランニング、配置配線およびCTSを行う手順寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行う手順、前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入する手順、および、ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行う手順を実行させるための半導体集積回路装置の設計プログラムであって、前記エラー個所にスキュー低減回路を挿入する手順は、前記コンピュータに、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接する第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出する手順、前記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求める手順、および、該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更する手順を実行させ、前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置の設計プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
本発明の第4の形態によれば、コンピュータに、フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入する手順を実行させるための半導体集積回路装置の設計プログラムであって、前記スキュー低減回路を挿入する手順は、前記コンピュータに、遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出する手順、前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定する手順、前記第1の観測点から出力される前記第1のクロックおよび前記第2の観測点から出力される前記第2のクロックの位相を比較する位相比較回路を配置する手順、該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックする手順を実行させ、前記第1および第2のクロックの観測点は、それぞれ最終段を除くクロックドライバの出力であることを特徴とする半導体集積回路装置の設計プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
このように、本発明は、例えば、物理的に近接(例えば、隣接)した2つの部分クロックツリーのスキューを小さくする方式をCTS方式と併用するものである。本発明では、クロック周波数で動作する回路を物理的に極めて小さい領域に囲い込み、遠距離の信号伝送を必要とする位相差信号を直流化(DC化)することで、消費電力の削減と実装設計の容易性を実現する。若干の消費電力増加と面積増加を伴うが、CTS方式に対する要求が緩和されるためクロックツリー側の消費電力と面積コストが低減され、全体としては低電力化、低コスト化になる。PVT(Process/Voltage/Temperature)変動に対して耐性を与えることができるので、低電圧で高速動作するLSIのマージン確保を有効に行うことが可能になる。
本発明によれば、低消費電力および低コストで実装設計の容易なクロックツリー回路(半導体集積回路装置)を提供することができ、また、PVT変動に対して耐性を与えることができるので、低電圧で高速動作するLSIのマージン確保を有効に行うことが可能になる。
以下、本発明に係るクロックツリー回路、半導体集積回路装置、半導体集積回路装置の設計方法、および、半導体集積回路の設計プログラムを記録した媒体の実施例を、添付図面を参照して詳述する。
図7は本発明に係るクロックツリー回路の一実施例を概略的に示すブロック回路図である。図7において、参照符号100はクロックツリー回路、103a,103bは遅延時が可変なクロックドライバ、102a,102bはフリップフロップ、104a,104bはフィードバック配線、105は位相比較回路、106はローパスフィルタ(LPF)、そして、110a,110bは部分クロックツリーを示している。
本発明に係るクロックツリー回路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の先端からは、対称な帰還経路を持つようになっており、相互に相手をリファレンスクロックとみなすことができるような構成となっている。
なお、各部分クロックツリー110a,110bにおいても、通常のクロックツリー(クロックツリーの一部)と同様に、複数のクロックドライバを介して複数のフリップフロップに対してクロックを分配するようになっている。第1および第2の部分クロックツリー110a,110bは、それぞれクロックツリー回路100の単なるクロックツリーの一部である。また、位相比較回路105に入力する第1および第2の部分クロックツリー110a,110bの先端からのクロックは、例えば、クロックツリー全体(クロックツリー回路)の最終段のクロックドライバの出力クロックであるが、これに限定されるものではない。
すなわち、第1および第2の部分クロックツリー110a,110bの先端からのクロックは、例えば、クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであってもよい。この場合、第1および第2の部分クロックツリー110a,110bの先端からのクロックは、さらに下流の第1および第2の末端クロックドライバツリーを介して分配されることになる。なお、各部分クロックツリー110a,110bからの出力クロックを受け取る各末端クロックドライバツリーは、例えば、CTS方式が適用されるクロックドライバ回路全体と一緒に形成することができる。これらの末端クロックドライバツリーは、例えば、クロックドライバの段数が少なく、また、カバーする領域も狭いために大きなスキューは生じないものと考えられる。
位相比較回路105と第1および第2の遅延時間可変クロックドライバ103a,103bとの間に設けられるLPF106は、位相比較回路105からの信号(遅延時間制御信号)をフィードバック配線104a,104b(配線距離が長くなると考えられる)を介して第1および第2の遅延時間可変クロックドライバ103a,103bに供給する場合、その長いフィードバック配線104a,104b上の遅延時間制御信号を直流化して低電力化するためのものである。なお、このLPF106は、例えば、回路構成によってはフィードバック配線104a,104b自体が有する容量負荷(配線容量、寄生容量等)により実現され得るものであり、その場合には、改めてLPF106を設ける必要はない。
また、上記説明では、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も同じ階層である必要はない。
次に、本発明のクロックツリー回路に適用される位相比較回路およびLPF後のフィードバック回路について説明する。
図8は図7のクロックツリー回路に適用されるクロックドライバの一例を示す回路図である。
図8に示されるように、クロックドライバ(遅延時間可変クロックドライバ)103a(103b)は、位相比較回路105からの立ち上がりエッジ用帰還信号によって制御されるものであり、pMOSトランジスタ31a〜33aおよびnMOSトランジスタ34a〜36aを備え、pMOSトランジスタ32a,33aおよびnMOSトランジスタ35a,36aは電源線間に直列に接続され、また、pMOSトランジスタ31aおよびnMOSトランジスタ34aも直列に接続されている。
位相比較回路105(LPF106)からの遅延時間制御信号(立ち上がりエッジ用帰還信号:ブレーキ信号BRK0)は、pMOSトランジスタ31aおよび32aのゲートに供給され、また、クロックは、pMOSトランジスタ33aおよびnMOSトランジスタ35aのゲートに供給されている。ここで、nMOSトランジスタ34aのゲートおよびソースは共通接続され、nMOSトランジスタ31aとpMOSトランジスタ34aとの接続ノードはnMOSトランジスタ36aのゲートに接続されている。そして、pMOSトランジスタ33aのドレインおよびnMOSトランジスタ35aのドレインの接続ノードから出力(遅延時間が制御されたクロック)が取り出されるようになっている。なお、図8に示す遅延時間可変クロックドライバは、単なる一例であり、様々な回路構成を適用することができるのはいうまでもない。
図9は本発明に係るクロックツリー回路に適用される位相比較回路の一例を示すブロック回路図であり、図10は図9の位相比較回路におけるブレーキ信号発生回路、および、遅延時間可変クロックドライバにおける電圧リミッタ兼終端部の一例を示す回路図である。
また、図11および図12は本発明に係るクロックツリー回路によるスキュー低減の様子を示す図である。図11は、600psの初期スキューの立ち上がりエッジを調整する様子を示すものであり、立ち上がりの600psのスキューは、図12に示す制御信号により120psのスキューTs1になった様子を示している。なお、120psのスキューTs1は、さらなる位相比較回路105による複数回の位相比較結果による制御信号で零になる。また、この例では、立ち下がりの600psのスキューTs2はそのままとなっているが、図13を参照して後述する相補的な信号を帰還することにより、立ち下がりのスキュー低減も行うことができる。
まず、位相比較回路105は、記憶素子を駆動し、異なるクロックツリー(部分クロックツリー)に属し、物理的に近くにある2つのクロックを入力とし、それら2つのクロックの位相差に見合った長さのパルスを発生する。ここで、位相比較回路105は、単純なセルベースのディジタル回路で構成可能であり、低電力および低コストで実現することができる。なお、位相比較回路は、ミキサ回路により構成することもできる。なお、位相比較回路も様々な回路構成のものを適用することができるのはもちろんである。
図9に示されるように、位相比較回路105は、クロックレシーバ151,152、ダイナミック型Dフリップフロップ153,154、アンプ155、ブレーキ信号発生回路156、インバータ1501〜1504、および、NANDゲート1505〜1508を備えている。ここで、参照符号1050は到着順判定回路を示し、また、1051は位相差判定回路を示す。なお、図9の位相比較回路105は、例えば、68個のトランジスタで構成することができる。
第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は、クロスカップル(交差接続)されたカレントミラー回路により構成することができるが、他の様々な回路構成を適用することもできる。
そして、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に供給されるのは、前述した通りである。
このように、位相比較回路105は、第1および第2の部分クロックツリー110a,110bからのクロックCLKIN0,CLKIN1(CLK1,CLK2)の到着時間を判定する回路を備え、エッジがあるときだけ動作する低消費電力の回路構成とされ、また、早い方のクロックを遅らせる対称な動作を行うようになっている。なお、後述するように、本発明において、位相比較回路は、CTS方式を適用した直後に挿入位置を決定するため、既存のSoC設計フローと高い整合性を有することになる。
図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が供給されている。
このように、ブレーキ信号発生回路156(LPF106)は、パルス入力(キックパルスKICK0,KICK1)を直流レベルへ変換することで低消費電力化を図るようになっている。また、上記パルス入力で充電系を駆動し、放電系はトランジスタのリーク電流により行うようになっており、低速動作が可能である。さらに、位相比較回路105(ブレーキ信号発生回路156)からクロックツリー(第1および第2の部分クロックツリー110a,110bの各遅延時間可変クロックドライバ103a,103b)のルートへ向けた配線の容量がローパスフィルタを構成するようになっており、足りない場合はMOSキャパシタで補うことができる。
電圧リミッタ兼終端部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は、本発明に必須なものではない。
図13は本発明に係るクロックツリー回路の他の実施例を概略的に示すブロック回路図である。
上述した図7に示すクロックツリー回路は、例えば、クロックの立ち上がりエッジのみを修正するものであり、そのため、デューティを維持するようにはなっていない。図13に示すクロックツリー回路の実施例において、位相比較回路105は、クロックCLK1,CLK2の立ち上がりおよび立ち下がりの両方のエッジを測定する機能を有し、フィードバック線104a,104bで相補的な信号を帰還する(立ち下がり用帰還信号用のフィードバック線を追加する)ことで、クロックの立ち上がりおよび立ち下がりの両方のエッジを修正してデューティを維持するようになっている。
図14は図13のクロックツリー回路に適用されるクロックドライバの一例を示す回路図であり、クロックの立ち上がりエッジおよび立ちさがりエッジの両方の遅延を制御可能な遅延時間可変クロックドライバの一例を示すものである。
図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が取り出されるようになっている。
図13に示すクロックツリー回路および図14に示す遅延時間可変クロックドライバは、特に、高速なクロックの場合、クロックの立ち上がりおよび立ち下がりの両方のエッジを使用する場合、および、デューティ依存の回路等において有効なものである。
図15は図13のクロックドライバの変形例を示す回路図であり、図15(a)に示すクロックドライバ(遅延時間可変クロックドライバ)は、図14に示すクロックドライバからnMOSトランジスタ40aを除いたものに相当し、また、図15(b)に示すクロックドライバは、図14に示すクロックドライバからpMOSトランジスタ37aを除いたものに相当する。
すなわち、図15(a)に示すクロックドライバは、制御信号(立ち上がりエッジ用帰還信号)CNTLPにより入力クロックCLKINの立ち上がりエッジを制御してクロックCLKOUTの遅延時間を制御するようになっており、また、図15(b)に示すクロックドライバは、制御信号(立ち下がりエッジ用帰還信号)CNTLNにより入力クロックCLKINの立ち下がりエッジを制御してクロックCLKOUTの遅延時間を制御するようになっている。
ここで、本発明を低電圧(テクノロジーノードの標準電圧(例えば、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)に示す回路を適用することができ、面積および電力オーバヘッドを小さくすることができる。
なお、遅延時間可変クロックドライバとしては、上述したものに限定されず、様々な構成のものを適用することができる。また、図14、図15(a)および図15(b)に示すクロックドライバは、インバータとして構成されているが、例えば、入力クロックCLKINの前段にインバータを1段設けて入力クロックと出力クロックの論理を一致させたバッファとして構成することができるのはいうまでもない。
図16は本発明に係るクロックツリー回路のさらなる実施例を概略的に示すブロック回路図である。
図16と図7との比較から明らかなように、本実施例のクロックツリー回路では、位相比較回路105からLPF106およびフィードバック配線104aを介して遅延時間可変クロックドライバにフィードバックする制御信号を、1つの遅延時間可変クロックドライバ103aだけでなく複数の遅延時間可変クロックドライバ103a,1032aおよび10322aに供給して遅延時間の制御を行うようになっている。このとき、遅延時間の制御を行う最上流の遅延時間可変クロックドライバ103aよりも下流の遅延時間可変クロックドライバ1032aおよび10322aに対応する遅延時間可変クロックドライバ1031aおよび10321a等に対しても制御信号を供給して遅延時間の制御を行うように構成する。
このように、遅延時間の制御を行う遅延時間可変クロックドライバは1段に限定されず、制御信号を複数段の遅延時間可変クロックドライバに供給して遅延時間の制御を行うように構成することもできる。これにより、遅延調節量を大きくすることができ、或いは、一段当たりの遅延調節量を小さくすることで遅延時間の制御特性を向上させることができる。なお、本実施例では、制御信号(帰還信号)は直流レベルで帰還されるため、たとえ制御信号により制御される遅延時間可変クロックドライバの数が増えて寄生容量が増加しても問題とはならない。
図17は本発明に係る半導体集積回路装置の設計方法を概念的に説明するための図である。
本発明に係る半導体集積回路装置の設計方法の前提として、クロックツリーは単純な分岐構造を有して再収斂しない(再び合流しない)ようになっており、さらに、分岐後の部分クロックツリーは、領域をほぼ排他的で、且つ、凸領域的(異なる部分クロックツリーが複雑に入り込んだりすることなく)にカバーする。
図17に示されるように、本発明の半導体集積回路装置の設計方法は、まず、目的とする半導体集積回路装置(チップ或いはモジュール)のクロックツリー100を、CTS方式を適用して構成し(S1)、その後、部分クロックツリーのペア(第1の部分クロックツリー110aおよび第2の部分クロックツリー110b)を選択し(S2)、さらに、位相差観測回路(位相比較回路)105およびローパスフィルタ(LPF)106を配置する(S3)。なお、前述したように、例えば、フィードバック配線104(104a,104b)自体が有する容量負荷によりローパスフィルタの機能が代用可能な場合には、LPF106を設けなくてもよい。
すなわち、本発明の半導体集積回路装置の設計方法では、第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つのクロックドライバを選択するのが好ましい。この選択される各クロックドライバとしては、例えば、最終段のクロックドライバ、或いは、最終段よりも所定段数だけ上流のクロックドライバであるが、必ずしも同じ段数のものである必要はない。
さらに、位相比較回路105(LPF106)から第1および第2の遅延時間可変クロックドライバ103a,103bまでフィードバック配線104(104a,104b)を敷設する(S4)。そして、位相比較回路105の出力により第1および第2の遅延時間可変クロックドライバ103a,103bにおける遅延時間を制御する(S5)。なお、2つの遅延時間可変クロックドライバ103a,103bは、予め第1および第2の部分クロックツリー110a,110bの出力クロックにおけるタイミングの前後関係が分かっていれば、速いタイミングのクロックを出力する一方の部分クロックツリーに対してのみ遅延時間可変クロックドライバを設け、他方の部分クロックツリーに対しては通常のクロックドライバを設けるように構成することもできる。
同様に、上述した第1の部分クロックツリー110aとして、上記の第1および第2の部分クロックツリー110a,110bを含む部分クロックツリー110a’を設定し、この新たな第1の部分クロックツリー110a’に対する新たな第2の部分クロックツリーとして部分クロックツリー110b’を設定して、上述した第1および第2の部分クロックツリー110a,110bに対する処理と同様の処理を再帰的に適用することができる(S6)。すなわち、クロックツリー100の分岐構造に対応して第1および第2の部分クロックツリー110a,110b;110a’,110b’;…を抽出し、上述した処理を再帰的に適用することで、半導体集積回路装置全体に対して本発明を適用することができる。
本発明に係る半導体集積回路装置の設計方法は、まず、CTS方式を軽く(本来の要求より緩いタイミング制約で)実施し、さらに、クロックツリーを部分クロックツリーにクラスタ化(抽出)する。このとき、各クラスタ内のクロックスキュー見積り値が一定以下になるようにする。また、隣接(近接)する部分クロックツリーの代表的到着時間が近いものを組み合わせてスキュー低減回路を入れる。この組み合わせた回路(ツリー)は再び部分クロックツリーとなる。
なお、本発明に係る半導体集積回路装置の設計方法において、例えば、ゲーティドクロックでは、イネーブル回路以降を部分クロックツリーと捉えるとよい。もちろん、イネーブルより上流へも適用することは可能である。また、データ転送のないサブツリー間には、スキュー低減回路を入れなくてもよい。さらに、CTS方式を適用した後、スキュー低減回路の挿入位置を決定し、クロックツリーの先端部から位相比較器までをクロックと同様の優先配線とする。この配線は、なるべく等長、等遅延になるように引かなければならないが物理的に近接する配線のため問題少ない。また、フィードバック線のレイアウトは、普通の信号と同じ扱いでよく、また、必要に応じて遠回りさせてもよい。そして、クロックツリーの広がりに応じて再帰的、階層的に適用する。
図18は本発明に係るクロックツリー回路のさらに他の実施例を概略的に示すブロック回路図であり、ゲーティドクロック方式の回路に対して適用したものである。
図18に示されるように、NANDゲート107A〜107Zにはそれぞれイネーブル信号ENA〜ENZが入力され、出力されるクロックの活性化の制御を行うようになっている。ここで、NANDゲート107Aの出力クロックが供給される下流側(フリップフロップFF側)を第1の部分クロックツリー110aとし、NANDゲート107Zの出力クロックが供給される下流側を第2の部分クロックツリー110bとする。すなわち、イネーブル回路(NANDゲート107A,107Z)よりも下流側を部分クロックツリーと捉え、位相比較回路105、LPF106a,106bおよび遅延時間可変クロックドライバ103a,103b等によるスキュー低減回路を設ける。
なお、イネーブル回路(NANDゲート107A,107Z)よりも上流側(ルート側)に対しては、別途部分クロックツリー110a’および110b’を抽出して、第1および第2の部分クロックツリー110a,110bに対する処理と同様の処理を行ってスキュー低減回路を設ける。このとき、CTSは全てのクロックツリー(例えば、部分クロックツリー110a,110bおよび110a’,110b’)に対して一括して行ってもよいが、ゲーティドされる点を境界にして分割して行う、すなわち、例えば、部分クロックツリー110a,110bと部分クロックツリー110a’,110b’に対してCTSを分割して行うようにすることもできる。
以下、本発明に係る半導体集積回路装置の設計方法を従来技術と比較しつつ、詳述する。
図19は一般的な半導体集積回路装置の設計フローの一例を示す図であり、通常のSoCの論理・回路設計フローを示すものである。
図19に示されるように、論理・回路設計は、まず、ステップS10において、アーキテクチァ設計、RT(Register Transfer)設計・検証および論理合成・検証を行い、さらに、ステップS11に進んで、フロアプランニング、配置配線およびCTSを行う。ここで、クロックスキューに対する制約は、ステップS11における配置配線後のCTS(Clock Tree Synthesis)工程で行われる。
さらに、ステップS12に進んで、寄生素子を抽出し、ステップS13に進んで、抽出された寄生素子を考慮したタイミング検証を行う。すなわち、レイアウトより寄生素子を抽出しその寄生素子を含めたシミュレーション(バックアノテーション:レイアウトから抽出した寄生容量および抵抗成分等を考慮したタイミング検証)を行う。そして、ステップS14において、タイミングが正しいかどうかの判定を行う。
ステップS14において、タイミングが正しい(YES)と判定されると、ステップS15に進んでマスクの作成を行う(設計工程が終了する)。ここで、ステップS14におけるタイミングが正しいとの判定は、精度の高いタイミング検証の結果、目的とする半導体集積回路装置(例えば、SoC)が設計者の意図通り動作することが確認された場合であり、そのときには、設計工程が終了し、次のマスクの作成工程に進むことになる。
一方、ステップS14において、タイミングが正しくない(NO)と判定されると、ステップS16に進んで、実装設計からのデータを取り込んで、必要に応じてステップS10およびステップS11の処理を行った後、ステップS12の寄生素子の抽出処理およびステップS13のタイミング検証処理を再度実行し、上述したステップS14において、タイミングが正しいと判定されるまでこれらの処理を繰り返す。
すなわち、タイミングエラーやマージン不足等があった場合には、フローの上流に戻るがどこに戻るか(ステップS10或いはS11)は、ケースバイケースである。ここで、クロックスキューはセットアップおよびホールドの両マージンを支配し、最上流のアーキテクチァから見直す場合からレイアウト結果の小修正で済む場合まで様々である。このように、SoCの設計フローは、例えば、SoCの微細化等に伴って上記のループを収束させることが困難になっているのが現状である。
なお、上述したステップS14におけるタイミングが正しくないとの判定は、スキューがどうなっているかは別として、目的とする回路が誤動作したことを意味する。ここで、レイアウトの後、タイミングが原因でバックアノテーションの結果、誤動作が生じる原因は、(1) 最長パスに当初の見積もり以上の遅延が付いてセットアップマージンを満たさなくなった場合、(2) 最短パスに当初の見積もり程の遅延が付かずホールドマージンを満たさなくなった場合、(3) 出発側クロックが見積もり値よりも遅くなってセットアップマージンを満たさなくなった場合、(4) 到着側クロックが見積もり値よりも早くなってセットアップマージンを満たさなくなった場合、(5) 出発側クロックが見積もり値よりも早くなってホールドマージンを満たさなくなった場合、および、(6) 到着側クロックが見積もり値よりも遅くなってホールドマージンを満たさなくなった場合等のいずれか1つが、或いは、それらの複数が同時に起こったことにある。なお、以下に詳述する本発明に係る半導体集積回路装置の設計方法は、特に、上記(3)〜(6)に起因してタイミングが正しくないと判定された場合に有効なものである。
図20は本発明に係る半導体集積回路装置の設計フローの一例を示す図であり、通常のSoCの実装設計フローを示すものである。
図20に示されるように、本実施例において、実装設計は、まず、ステップS20において、フロアプランニング、配置配線およびCTSを行い、ステップS21に進んで、寄生素子を抽出し、さらに、ステップS22に進んで、抽出された寄生素子を考慮したタイミング検証(バックアノテーション)を行う。そして、ステップS23において、タイミングが正しいかどうかの判定を行う。
ステップS23において、タイミングが正しい(YES)と判定されると、ステップS24に進んでマスクの作成を行う(設計工程が終了する)。一方、ステップS23において、タイミングが正しくない(NO)と判定されると、ステップS26に進んで、エラー個所にスキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)し、さらに、ステップS25に進んで、ECO(Engineering Change Order)処理を行う。そして、ステップS25でECO処理を行った後、ステップS21の寄生素子の抽出処理およびステップS22のタイミング検証処理を再度実行し、上述したステップS23において、タイミングが正しいと判定されるまでこれらの処理を繰り返す。
このように、本実施例では、図19に示すステップS14(図20のステップS23)において、タイミングが正しくないと判定されると、ステップS26におけるエラー個所に対するスキュー低減回路の挿入処理を行うようになっている。なお、回路を挿入するための配置配線の変更は、技術的に十分確立されたECO処理(ステップS27)を適用することができる。この図20に示すような設計フローをサポートする機能は、自動レイアウトツールの機能の一部とすることが可能である。ここで、上記設計フローで得られる回路は、見積もり値でのクロックツリー設計であり、動作時のスキューを最小化する効果は十分ではないこともあるが、物理設計ループを収束させることは可能である。
図21は図20の設計フローにおけるスキュー低減回路の挿入処理(図20のステップS26)の一例を示す図であり、図22は図21のスキュー低減回路の挿入処理を説明するための図である。なお、図22は、各クロックTaおよびTbを受け取る2つのフリップフロップ(FF)間で組み合わせ回路を介したエラーパスが存在している様子を示している。
図21に示すスキュー低減回路の挿入処理は、図20の実施例において、ステップS23でタイミングが所定のスキュー値を満たしていない(NO)と判定され、ステップS26で行うエラー個所にスキュー低減回路を挿入する処理を示している。
図21に示されるように、スキュー低減回路の挿入処理(ステップS26)は、まず、ステップS261において、パスの終端と始端のクロックスキューをTsとし、セットアップ(ホールド)エラーをTeとしてステップS262に進む。ステップS262では、スキューTb−Ta(=Ts)がエラーTeよりも大きいか否かを判定する。ここで、クロックTaおよびTbは、クロックドライバ(バッファまたはインバータ)130aおよび130bの出力であり、例えば、図7における第1および第2の部分クロックツリー110aおよび110bの出力クロックCLK1およびCLK2に相当する。
ステップ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における遅延時間の制御を行う配線も行う。
これにより、クロックスキューが原因で些少なセットアップ不足やホールド不足が少数の場合には、上述した本発明の半導体集積回路装置の設計方法(スキュー低減回路)を適用して局所的にスキューを小さくして設計を行うことができる。また、本発明を適用することにより、データパス系のレイアウトが原因となるセットアップ不足に対しても、より高精度にスキューを抑え込むことでセットアップ不足を回避することが可能な場合もある。
図23は本発明に係る半導体集積回路装置の設計フローの他の例を示す図である。
図23において、各ステップS30,S31およびS33〜S37は、それぞれ図19におけるステップS10,S11およびS12〜S16に相当し、本実施例では、図19のステップS11(図23のステップS31)の後に、スキュー低減回路を挿入するステップS32をさらに設けるようにしたものである。
すなわち、図23に示されるように、本実施例では、ステップS30でアーキテクチァ設計、RT設計・検証および論理合成・検証を行い、さらに、ステップS31でフロアプランニング、配置配線およびCTSを行った後、ステップS32に進んで、スキュー低減回路の挿入処理を行う。さらに、ステップS33に進んで寄生素子を抽出し、そして、ステップS34で抽出された寄生素子を考慮したタイミング検証を行う。すなわち、図19と同様の処理を行い、さらに、ステップS35において、タイミングが正しいかどうかの判定を行う。なお、本実施例におけるステップS35〜S37の処理は、図19を参照して説明したステップS14〜S16と同様であり、その説明は省略する。
図24は本発明に係る半導体集積回路装置の設計フローのさらに他の例を示す図であり、通常のSoCの実装設計フローを示すものである。
図24に示されるように、実装設計は、まず、ステップS40において、フロアプランニング、配置配線およびCTSを行い、さらに、ステップS41に進んで、スキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)する。その後、ステップS42において、寄生素子を抽出し、さらに、ステップS43に進んで、抽出された寄生素子を考慮したタイミング検証(バックアノテーション)を行う。そして、ステップS44において、タイミングが正しいかどうかの判定を行う。
ステップS44において、タイミングが正しい(YES)と判定されると、ステップS45に進んでマスクの作成を行う(設計工程が終了する)。一方、ステップS44において、タイミングが正しくない(NO)と判定されると、ステップS47に進んで(経路P2)、エラー個所にスキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)し、さらに、ステップS46に進んで、ECO処理を行う。そして、ステップS46でECO処理を行った後、ステップS42の寄生素子の抽出処理およびステップS43のタイミング検証処理を再度実行し、上述したステップS44において、タイミングが正しいと判定されるまでこれらの処理を繰り返す。ここで、ステップS41のスキュー低減回路の挿入処理は、図23におけるステップS32と同様のものであり、また、ステップS47のエラー個所に対するスキュー低減回路の挿入処理は、図20におけるステップS26と同様のものであり、これらステップS41およびS47の処理は、前述した図21および図22を参照して説明した通りである。
なお、ステップS44において、タイミングが正しくない(NO)と判定されたとき、ステップS47に進んで上述した処理を行う代わりに、図19を参照して説明した一般的な半導体集積回路装置の設計フローと同様に、実装設計からのデータを取り込み(図19のステップS16)、必要に応じて、アーキテクチァ設計、RT設計・検証および論理合成・検証(図19のステップS10)、並びに、フロアプランニング、配置配線およびCTS(図19のステップS11)を行ってもよい(経路P1)。
すなわち、クロックスキューの「見積もり値」は自動レイアウト後、或いは、自動レイアウト内部で判定することができ、例えば、スキューが目標値よりも大きいときは、スキュー低減回路を挿入(本発明の半導体集積回路装置の設計方法を適用)してタイミングエラーが生じる可能性を小さくすることができる。さらに、全クロックツリーに対してスキュー低減回路を挿入すれば、動的にクロックスキューを最小化することが可能になる。また、上述したように、ステップS44のバックアノテーション後、タイミングが正しくない(NO)と判定された場合には、ステップS47に進んでエラー個所に対してさらにスキュー低減回路を挿入(経路P2)することもできるが、経路P1のように、通常のフロー(図19に示すようなフロー)で進むこともできる。これは、ステップS44において、タイミングが正しくないと判定された場合(タイミングによる誤動作があった場合)、スキューの増大が原因のときには経路P2を流れる処理を行い、また、データパスの遅延が原因の場合には経路P1を流れる処理を行うことになる。
図25は通常のCTS方式を適用したクロックツリーの一例を概略的に示す図であり、また、図26は本発明を適用したクロックツリーの一例を概略的に示す図である。図25および図26において、参照符号400はクロックが分配される逆L字形のセルの配置配線領域を示し、また、410は通常のCTS方式を適用してセルの配置配線領域400までクロックを分配するクロックツリー(クロックツリー回路)の一部を示し、そして、420は本発明による2つの部分クロックツリーを抽出してセルの配置配線領域400までクロックを分配するクロックツリーの一部を示す。ここで、図25および図26において、各三角形印はそれぞれクロックドライバ(バッファまたはインバータ)を示している。なお、図25および図26において、逆L字形のセルの配置配線領域400の左下の矩形領域に、例えば、メモリマクロ等が既に置かれていて配線領域として使用できない場合、セルの配置配線領域400までのクロックツリーの一部410および420は、セルの配置配線領域400内に配線されることになる。
図25に示されるように、通常のCTS方式を適用したクロックツリーは、全ての領域において、それぞれの配線の長さを対称的に延ばしてクロックツリーを構成するため、全体としての配線長(総配線長)も長くなり、また、クロックツリーの階層も深くなり、そして、クロックドライバの数も多くなる。
これに対して、本発明を適用すると、図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)することができる。
遅延時間可変クロックドライバAおよびBは、最終段のクロックドライバ401および402から出力されるクロックの位相を比較し、その2つのクロックの位相差(2つのクロックの到着時間差)に応じて遅延時間可変クロックドライバAおよびBの遅延時間の制御を行うようになっている。なお、前述したように、1組のクロックドライバ401,402から出力される2つのクロックの内、予め遅れる方のクロックがどちらかが分かっていれば、その反対(進む方)のクロックを伝えるクロックドライバのみを遅延時間可変クロックドライバとし、他方(遅れる方のクロックを伝えるクロックドライバ)は遅延時間可変機能を持たない通常のクロックドライバとして構成することができる。
また、例えば、遅延時間可変クロックドライバCおよびDに関して、最終段のクロックドライバ403および404から出力されるクロックの位相を比較してもよいが、最終段よりも上流のクロックドライバBおよび405から出力されるクロックの位相を比較し、その位相比較結果により遅延時間可変クロックドライバC,Dの遅延時間を制御するように構成することもできる。なお、クロックドライバBおよび405の出力クロックを受け取る後段のクロックドライバは、例えば、CTS方式によりクロックツリー回路全体を構成するのと同時にクロックツリーの一部として構成されるが、クロックドライバBおよび405までの(上流の)クロックツリーと、クロックドライバBおよび405の出力クロックを受け取るそれ以降の(下流の)クロックツリーとを独立に構成することもできる。ここで、クロックドライバBおよび405の出力クロックを受け取る下流のクロックツリーは、例えば、クロックドライバの段数が少なく、また、カバーする領域も狭いために大きなスキューは生じないものと考えることができる。
さらに、例えば、遅延時間可変クロックドライバEおよびFに関して、最終段のクロックドライバ406および407から出力されるクロックの位相を比較してもよいが、最終段よりも上流のクロックドライバDおよび408からのクロックの位相を比較し、その位相比較結果により遅延時間可変クロックドライバE,Fの遅延時間を制御してもよい。なお、遅延時間可変クロックドライバの遅延時間としては、予め所定の遅延時間を持つように構成しておき、一方の遅延時間可変クロックドライバによりその遅延時間可変クロックドライバを介して伝えられるクロックのタイミングを早くも遅くも制御することもできる。
このように、本発明は、大域的分配は厳密に等遅延なツリーを組む必要がなく、不均等な領域に対してもそのまま適用することができ、リピータ(クロックドライバ)の数や配線長を低減することができる。
図27は本発明に係る半導体集積回路の設計プログラムを記録した媒体の例を説明するための図である。図27において、参照符号310は処理装置、320はプログラム(データ)提供者、そして、330は可搬型記録媒体を示している。
上述した各実施例に係る半導体集積回路の設計方法は、例えば、図27に示すような処理装置310に対するプログラム(データ)として与えられ、処理装置310により実行される。処理装置310は、プロセッサを含む演算処理装置本体311、および、演算処理装置本体311に対してプログラム(データ)を与えたり或いは処理された結果を格納する処理装置側メモリ(例えば、RAM(Random Access Memory)やハードディスク)312等を備える。処理装置310に提供されたプログラム(データ)は、ローディングされて処理装置310のメインメモリ上で実行される。
プログラム(データ)提供者320は、プログラム(データ)を格納する手段(回線先メモリ:例えば、DASD(Direct Access Storage Device))321を有し、例えば、インターネット等の回線を介してプログラム(データ)を処理装置310に提供したり、或いは、CD−ROMやDVD等の光ディスクまたはフロッピィディスク等の磁気ディスクといった可搬型記録媒体330を介して処理装置310に提供する。本発明に係る半導体集積回路の設計プログラムを記録した媒体は、上記の処理装置側メモリ312、回線先メモリ321、および、可搬型記録媒体330等の様々なものを含むのはいうまでもない。
このように、本発明に係るクロックツリー回路、或いは、半導体集積回路装置の設計方法によれば、クロックツリーの先端部(120a,120b:クロックツリーの先端:フリップフロップの入力)のクロックを常時観測するため、見積もり誤差、製造ばらつき、電源電圧変動および温度変化等に起因したスキューに対しても動的にスキュー低減の効果を発揮することができる。また、観測点として物理的に近接した点を選択するため、観測用信号(各部分クロックツリー110a,110bの先端から位相比較器105までの間)の配線長を無視することができ、さらに、クロックによる高周波数で動作するノードが位相比較回路内およびその近傍に限られるため、交流電流のオーバヘッドを微小にすることができる。
また、本発明によれば、従来技術のように、リファレンスクロックが事実上存在しないため、低電力であり、且つ、リファレンスクロックをゼロスキューで分配するといった問題を回避することができる。そして、CTS方式に対する要求を緩和できるため、クロックツリーの段数と配線長が小さくなり、動作電力の削減も期待できる。なお、位相比較回路(位相差検出回路)および遅延時間可変クロックドライバ(可変遅延回路)は共に小規模回路として構成することができ、CTS方式を適用した後のクロックツリーに対して、上記小規模回路を付加するだけでよいため、現状の設計フローに対する整合性が高いといった利点もある。
さらに、本発明によれば、ローパスフィルタ(LPF106)の後の信号を帰還する場合、フィードバック信号が直流電位のため、配線長を考慮する必要がなくなり、また、動作電流も少なくすることができる。そして、LPFの後の信号を帰還する場合、ディジタル信号の帰還に比べるとリピータが不要になるため、低コスト化および低電力化を図ることができる。
半導体集積回路装置のクロックツリー設計の技術背景を説明するための図(その1)である。 半導体集積回路装置のクロックツリー設計の技術背景を説明するための図(その2)である。 半導体集積回路装置におけるクロックツリーの具体例を概念的に示す図である。 CTS方式におけるクロックスキューと消費電力との関係を示す図である。 低電圧で動作する半導体集積回路装置のクロックツリー設計を説明するための図である。 従来のクロックツリー回路の一例を示すブロック回路図である。 本発明に係るクロックツリー回路の一実施例を概略的に示すブロック回路図である。 図7のクロックツリー回路に適用されるクロックドライバの一例を示す回路図である。 本発明に係るクロックツリー回路に適用される位相比較回路の一例を示すブロック回路図である。 図9の位相比較回路におけるブレーキ信号発生回路、および、遅延時間可変クロックドライバにおける電圧リミッタ兼終端部の一例を示す回路図である。 本発明に係るクロックツリー回路によるスキュー低減の様子を示す図(その1)である。 本発明に係るクロックツリー回路によるスキュー低減の様子を示す図(その2)である。 本発明に係るクロックツリー回路の他の実施例を概略的に示すブロック回路図である。 図13のクロックツリー回路に適用されるクロックドライバの一例を示す回路図である。 図13のクロックドライバの変形例を示す回路図である。 本発明に係るクロックツリー回路のさらなる実施例を概略的に示すブロック回路図である。 本発明に係る半導体集積回路装置の設計方法を概念的に説明するための図である。 本発明に係るクロックツリー回路のさらに他の実施例を概略的に示すブロック回路図である。 一般的な半導体集積回路装置の設計フローの一例を示す図である。 本発明に係る半導体集積回路装置の設計フローの一例を示す図である。 図20の設計フローにおけるスキュー低減回路の挿入処理の一例を示す図である。 図21のスキュー低減回路の挿入処理を説明するための図である。 本発明に係る半導体集積回路装置の設計フローの他の例を示す図である。 本発明に係る半導体集積回路装置の設計フローのさらに他の例を示す図である。 通常のCTS方式を適用したクロックツリーの一例を概略的に示す図である。 本発明を適用したクロックツリーの一例を概略的に示す図である。 本発明に係る半導体集積回路の設計プログラムを記録した媒体の例を説明するための図である。
符号の説明
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ゲート

Claims (14)

  1. コンピュータに、
    フロアプランニング、配置配線およびCTSを行う手順
    寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行う手順、
    前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にスキュー低減回路を挿入する手順、および、
    ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行う手順を実行させるための半導体集積回路装置の設計プログラムであって、
    前記エラー個所にスキュー低減回路を挿入する手順は、前記コンピュータに、
    遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接する第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出する手順、
    記第1の部分クロックツリーから出力される第1のクロックと前記第2の部分クロックツリーから出力される第2のクロックとの到着時間差を求める手順、および、
    該第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバの遅延時間を変更する手順を実行させ、
    前記第1および第2のクロックは、それぞれ前記クロックツリー回路の最終段を除く任意の段のクロックドライバの出力クロックであることを特徴とする半導体集積回路装置の設計プログラム。
  2. 請求項1に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第2のクロックドライバは遅延時間が可変な第2の遅延時間可変クロックドライバであり、前記第1および第2のクロックの到着時間差が所定のスキュー値を満たしていない場合には、前記第1の遅延時間可変クロックドライバと共に、該第2の遅延時間可変クロックドライバの遅延時間も変更することを特徴とする半導体集積回路装置の設計プログラム。
  3. 請求項1に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と同時にCTS方式を適用してクロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計プログラム。
  4. 請求項1に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と独立してCTS方式を適用し、クロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計プログラム。
  5. 請求項1に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の部分クロックツリーと前記第2の部分クロックツリーとの組を、複数個所で抽出することを特徴とする半導体集積回路装置の設計プログラム。
  6. 請求項5に記載の半導体集積回路装置の設計プログラムにおいて、
    前記複数個所の第1および第2の部分クロックツリーの組の抽出を階層的に行い、第1の組における第1の部分クロックツリーは、クロックドライバの遅延時間制御が終了した第2の組における第1および第2の部分クロックツリーを含むことを特徴とする半導体集積回路装置の設計プログラム。
  7. コンピュータに、
    フロアプランニング、配置配線およびCTSを行った後、スキュー低減回路を挿入する手順を実行させるための半導体集積回路装置の設計プログラムであって、
    前記スキュー低減回路を挿入する手順は、前記コンピュータに、
    遅延時間が可変な第1の遅延時間可変クロックドライバを介してクロックを分配する第1の部分クロックツリーと、該第1の部分クロックツリーに近接し、第2のクロックドライバを介してクロックを分配する第2の部分クロックツリーとを抽出する手順、
    前記第1の部分クロックツリーからの第1のクロックが出力される第1の観測点と前記第2の部分クロックツリーからの第2のクロックが出力される第2の観測点とを規定する手順、
    前記第1の観測点から出力される前記第1のクロックおよび前記第2の観測点から出力される前記第2のクロックの位相を比較する位相比較回路を配置する手順、
    該位相比較回路から前記第1の遅延時間可変クロックドライバまで制御信号をフィードバックする手順を実行させ、
    前記第1および第2のクロックの観測点は、それぞれ最終段を除くクロックドライバの出力であることを特徴とする半導体集積回路装置の設計プログラム。
  8. 請求項7に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の観測点は前記第1の部分クロックツリーのクロックを代表する前記第1のクロックを出力し、且つ、前記第2の観測点は前記第2の部分クロックツリーのクロックを代表する前記第2のクロックを出力することを特徴とする半導体集積回路装置の設計プログラム。
  9. 請求項7に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の部分クロックツリーと前記第2の部分クロックツリーとの組を、複数個所で抽出することを特徴とする半導体集積回路装置の設計プログラム。
  10. 請求項9に記載の半導体集積回路装置の設計プログラムにおいて、
    前記複数個所の第1および第2の部分クロックツリーの組の抽出を階層的に行い、第1の組における第1の部分クロックツリーは、クロックドライバの遅延時間制御が終了した第2の組における第1および第2の部分クロックツリーを含むことを特徴とする半導体集積回路装置の設計プログラム。
  11. 請求項7に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と同時にCTS方式を適用してクロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計プログラム。
  12. 請求項7に記載の半導体集積回路装置の設計プログラムにおいて、
    前記第1の部分クロックツリーからの前記第1のクロックが供給される第1の末端領域、および、前記第2の部分クロックツリーからの前記第2のクロックが供給される第2の末端領域に対して、前記クロックツリー回路と独立してCTS方式を適用し、クロックドライバのツリーを形成することを特徴とする半導体集積回路装置の設計プログラム。
  13. 請求項7〜12のいずれか1項に記載の半導体集積回路装置の設計プログラムにおいて、前記スキュー低減回路を挿入する手順を実行させた後、さらに、前記コンピュータに、
    寄生素子を抽出し、該抽出された寄生素子を考慮してタイミング検証を行う手順、
    前記抽出された寄生素子を考慮したタイミングが正しくないと判定されたとき、エラー個所にさらなるスキュー低減回路を挿入する手順、および、
    ECO処理を行って、再度寄生素子の抽出および該抽出された寄生素子を考慮したタイミング検証を行う手順を実行させ、
    前記エラー個所にさらなるスキュー低減回路を挿入する手順は、前記コンピュータに、請求項1〜6のいずれか1項に記載のプログラムを実行させることを特徴とする半導体集積回路装置の設計プログラム。
  14. 請求項1〜13のいずれか1項に記載の半導体集積回路装置の設計プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2007202097A 2007-08-02 2007-08-02 半導体集積回路装置の設計プログラム、および、記録媒体 Expired - Fee Related JP4425300B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007202097A JP4425300B2 (ja) 2007-08-02 2007-08-02 半導体集積回路装置の設計プログラム、および、記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007202097A JP4425300B2 (ja) 2007-08-02 2007-08-02 半導体集積回路装置の設計プログラム、および、記録媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003200500A Division JP4020836B2 (ja) 2003-07-23 2003-07-23 クロックツリー回路、および、半導体集積回路装置

Publications (2)

Publication Number Publication Date
JP2008010003A JP2008010003A (ja) 2008-01-17
JP4425300B2 true JP4425300B2 (ja) 2010-03-03

Family

ID=39068081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007202097A Expired - Fee Related JP4425300B2 (ja) 2007-08-02 2007-08-02 半導体集積回路装置の設計プログラム、および、記録媒体

Country Status (1)

Country Link
JP (1) JP4425300B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5696407B2 (ja) * 2010-09-14 2015-04-08 株式会社リコー 半導体集積回路の自動配置配線方法、レイアウト装置、自動配置配線プログラム、及び半導体集積回路
CN109376467B (zh) * 2018-11-19 2022-12-06 武汉工程大学 集成电路中时钟树布局流程方法和时钟树偏差补偿装置

Also Published As

Publication number Publication date
JP2008010003A (ja) 2008-01-17

Similar Documents

Publication Publication Date Title
US9608639B2 (en) Semiconductor device
US8887110B1 (en) Methods for designing intergrated circuits with automatically synthesized clock distribution networks
US6651230B2 (en) Method for reducing design effect of wearout mechanisms on signal skew in integrated circuit design
US6268746B1 (en) Method and apparatus for logic synchronization
US11971740B2 (en) Timing error detection and correction circuit
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
US10498339B2 (en) Hold-time compensation using free metal segments
Kim et al. A low-jitter mixed-mode DLL for high-speed DRAM applications
US8957716B2 (en) Multiple threshold voltage standard cells
US8539413B1 (en) Frequency optimization using useful skew timing
JP2008140821A (ja) 半導体装置および半導体装置の設計方法
JP4806417B2 (ja) 論理ブロック制御システム及び論理ブロック制御方法
JP4020836B2 (ja) クロックツリー回路、および、半導体集積回路装置
US7151396B2 (en) Clock delay compensation circuit
JP4425300B2 (ja) 半導体集積回路装置の設計プログラム、および、記録媒体
US6888385B2 (en) Phase locked loop (PLL) for integrated circuits
US7126405B2 (en) Method and apparatus for a distributed clock generator
Lu et al. Clock tree synthesis with XOR gates for polarity assignment
US8710892B2 (en) Clock distribution circuit
US20030163750A1 (en) Clock grid skew reduction technique using biasable delay drivers
JP4599485B2 (ja) ロジックの同期をとるための方法および装置
Liao et al. Efficient and accurate jitter modeling method for unmatched memory bus
Saxena et al. Clock System Architecture for Digital Circuits
CN118868866A (zh) 时钟系统、芯片、芯片系统、电路板及电子装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091019

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091208

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees