JP3614758B2 - クロック位相調整システム及びクロックツリー設計方法 - Google Patents
クロック位相調整システム及びクロックツリー設計方法 Download PDFInfo
- Publication number
- JP3614758B2 JP3614758B2 JP2000136680A JP2000136680A JP3614758B2 JP 3614758 B2 JP3614758 B2 JP 3614758B2 JP 2000136680 A JP2000136680 A JP 2000136680A JP 2000136680 A JP2000136680 A JP 2000136680A JP 3614758 B2 JP3614758 B2 JP 3614758B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- clock tree
- phase adjustment
- tree
- functional blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、ASIC全般(IC、LSI、VLSI全て含む)に適用されるクロック位相調整システム及びクロックツリー設計方法に関する。特に大規模なASICを設計する場合、クロックツリー合成が行われるが、遅延(絶対遅延時間)やスキュー(相対遅延時間のばらつき)などタイミングについて改善に関するものである。
【0002】
【従来の技術】
従来の半導体集積回路の同期設計されるクロックツリー設計方法について説明する。
【0003】
図7は、従来技術でクロックツリーを発生させた場合のブロック図である。入力クロックバッファ11から末端のブロック12、13、14までの遅延時間は最小に抑えるようにしており、遅延時間は仮配線容量から求めている。そして末端ブロック12、13、14の夫々に対応してクロックドライバセル15が挿入されてクロックツリーが構成される。ここでは、1本のクロックツリーの根元(図6において入力バッファ11出力)からのクロックツリーを構築しているため、クロックツリー段数(クロックバッファのシリーズ段数)は3段になっている。
【0004】
クロックツリー全体の絶対遅延はクロックバッファ3個分のセル遅延と配線遅延の合計となるので、単純にクロックバッファ1個あたりのセル遅延をTckbuf, 1本あたりの配線遅延をTwireとすると、
Tdelay = 3*Tckbuf + 3*Twire (式1)
で表されたものとなる。
【0005】
【発明が解決しようとする課題】
しかしながら、前述した従来の技術では、クロックツリー合成ツール自体に性能の限界があるため、例え、1系統のクロックであっても、回路規模が大きくなると、末端での絶対時間が大きくなったり、スキューが大きくなっていた。
【0006】
また、内部PLLを使って位相ロックする場合、末端までスキューを改善する事は複数の内部PLLを使えば不可能では無いが、内部PLL自体の回路規模が大きくなったり、専用電源の供給が必要なため端子数が増加したりすると言う課題がある。
【0007】
また、最近は消費電力削減のためにパワーマネジメントを行えるようにクロックツリーを複数に分けてクロックを停止できるようにする構成が多用されてきているが、この場合もクロックの根本は同じでもクロックツリーが異なるため、クロックツリー間の信号が行き来を行う際のクロックスキューが発生し、このスキュー調整のためのレイアウト修正時間がかかったという問題があった。
【0008】
本発明は、上記課題を解決するためになされたものである。
【0009】
【課題を解決するための手段】
本発明は、共通の周期のクロックで動作し、レイアウト上複数の機能ブロックで構成されるASICのクロック位相調整システムにおいて、クロックツリーをその機能ブロックの数またはそれ以下の数で複数に分けて構成するとともに、前記複数に分割されたブロック間における信号接続部分の入力側又は出力側に、クロックの極性切り替えを含む位相調整手段を設け、そして、前記極性切り替えをマイコン供給してなるクロック位相調整システムである。
【0010】
また、本発明は、共通の周期のクロックで動作し、レイアウト上複数の機能ブロックで構成されるASICのクロックツリー設計方法において、クロックツリーをその機能ブロックの数またはそれ以下の数で複数に分けるとともに、複数に分割されたブロック間における信号接続部分の入力側又は出力側で、クロックの極性切り替えを含む位相調整を行い、そして、前記極性切り替えをマイコン供給として、クロックツリーの段数を削減するクロックツリー設計方法である。
【0014】
【発明の実施の形態】
図1は本発明の実施例を示す、機能ブロックごとに分けて各ブロックごとにクロックツリーを発生させた場合の構成図である。
【0015】
図2は、入力側のFFのクロック極性を切り替えられるようにした位相調整回路図である。
【0016】
図3は図2の動作を説明するタイムチャートである。
【0017】
図4は、出力側のFFのクロック極性を切り替えられるようにした位相調整回路図である。
【0018】
図5は、マイコンによるパラメータ調整によりクロック極性を切り替えられるようにしたシステム構成図であり、本発明の応用例である。
【0019】
図6は、パワーマネジメントを盛り込んだクロックツリー構成図である。
【0020】
以下本発明の実施例について図を用いて具体的に説明する。
【0021】
図1は、図7の従来例のブロック図を、本発明であるブロックの個数に応じてクロックツリーを分けたものである。すなわち、クロックツリーをその機能ブロックの数またはそれ以下の数で複数に分けており、ここでは、この機能ブロック別の分割により、入力クロックバッファ11から末端のブロック12、13、14の間に挿入されるクロックドライバセル15を2段として、クロックツリーの段数による絶対遅延時間及び相対遅延時間(スキュー)を抑えている。
【0022】
一般的に、機能ブロック内では複数のフリップフロップ(FF)の入出力が(間に論理ゲートの有無の差はあるが)複雑に接続しあっている。この場合、当然、各FFのSetup及びHold時間を満たすようにクロックツリー合成が行われる。逆に言えば、その機能ブロックが正しくクロック同期で動作するためには、少なくとも、機能ブロック内のFFに供給されるクロックに相対遅延ばらつき(ス
キュー)が押さえられている必要がある。
【0023】
問題は、機能ブロック間でデータが行き来する場合(ブロック間配線)である。つまり、ブロック間配線が全く無い設計では、ブロック内部に供給されるクロックにスキューが無ければそのブロックは正しくクロック同期で動作する。しかし、ブロック間配線がある場合、単純に言えば同じクロックツリーで駆動されれば良いが、通常は、各ブロック毎にFFの個数は異なるので、それらに対応してクロックツリー合成すると遅延の遅いほうに合わせるようになり、全体のクロックツリー段数が増え、絶対遅延の増加と共に相対遅延ばらつき(スキュー)が劣化する傾向となる。
【0024】
クロックツリーを機能ブロック毎に分けることにより上記の問題点を避け、絶対遅延とスキューを最小限に押さえるようにクロックツリー合成を行うことができる。
【0025】
上記実施例でのクロックツリー全体の絶対遅延Tdelayは、従来技術同様の計算方式で求めると、
Tdelay = 2*Tckbuf + 2*Twire (式2)
となる。ここで、Tckbufは、クロックバッファ1個あたりのセル遅延時間、 Twireは、1本あたりの配線遅延である。
【0026】
また、相対遅延(クロックスキュー)Tskewは、一般的に末端のクロックバッファ数とクロックツリー全体の絶対遅延に比例する傾向にあるので、
Tskew = Kd*Tdelay + Kbuf*Nbuf (式3)
となる。ここで、KdはTdelayに対する比例係数、Kbufは末端のクロックバッファ数Nbufに対する比例係数である。
【0027】
従い、式1及び式2から判るように、絶対遅延と相対遅延は1クロックツリーあたりの段数を少なくするようにクロックツリーを分けた方が小さく抑えられる。
【0028】
図1では説明を簡単にするために、各クロックツリー間の絶対時間に差がないものとして説明した。しかし、実際には、各ブロックのフリップフロップ(FF)回路の個数が異なるため、クロックツリー段数や末端のクロックバッファ数が異なることにより、各クロックツリー間での絶対遅延に差が生じることがある。
【0029】
図2、図3は、図1においてブロック間配線がある場合、各クロックツリー間で生じる絶対遅延のばらつきを収するための調整回路を説明するものである。
【0030】
図2は、入力側のFFのクロック極性を切り替えられるようにしたものである。
【0031】
図2において、例えば、フリップフロップFF01が図1のBLOCK1の最終段で、FF01からのデータがBLOCK2に入力されるブロック間配線の場合、BLOCK2の初段にクロック2の極性選択付きのFF02を配置し、FF01からのデータをFF02に入力している。
【0032】
この場合、クロックツリー1から供給されるクロック1とクロックツリー2から供給されるクロック2は、どちらの絶対遅延が短いかによって、極性選択は左右されるが、レイアウト後の実配線遅延が判明した段階で、正しく動作する極性を決定する。これにより、レイアウト前のタイミング調整を簡略化できる。
【0033】
クロック1とクロック2の絶対遅延(Tdelay1,Tdelay2)の差が半サイクル近くあり、かつTdelay1>Tdelay2の場合、クロック2は立ち上がりで受ければ良いことになる(図3(a)参照)。同様に、Tdelay1<Tdelay2の場合、クロック2は立下りで受ければ良いことになる(図3(b)参照)。また、Tdelay1とTdelay2の差が少なく、Tdelay1>Tdelay2又はTdelay1<Tdelay2がはっきりしない場合、クロック2は立下りで受ければ良いことになる(図3(c)参照)。
【0034】
また、外部から入力する場合も受けるクロック位相が選択でき、最適化が可能である。例えば、外部の信号と内部の信号をセレクタで選択した後、クロック位相調整回路を通すことで、どちらかに合った位相調整を行うことができる。
【0035】
図4のように出力で位相を変えた場合についても同様である。
【0036】
図4において、例えば、FF03が図1のBLOCK1の最終段で、FF03からのデータがBLOCK2に入力されるブロック間配線の場合、FF03からの出力をクロック1の反転クロックで駆動するFF04を配置し、極性選択信号により、FF03からのデータかFF04からのデータかの何れかを選択したデータをBLOCK1の出力データとしてBLOCK2の初段のFF05に入力している。なお、ここでBLOCK2のFF05はクロック2の立ち上がり駆動である。
【0037】
クロック1とクロック2の絶対遅延(Tdelay1,Tdelay2)の差が半サイクル近くあり、かつ、Tdelay1>Tdelay2の場合、BROCK1は、クロック1の立上りで出力すれば良いことになる。同様にTdelay1<Tdelay2の場合、BROCK1は、クロック1の立下りで出力すれば良いことになる。また、Tdelay1とTdelay2の差が少なく、Tdelay1>Tdelay2又はTdelay1<Tdelay2がはっきりしない場合は、BLOCK1クロック1の立下りで出力すれば良いことになる。尚、外部に出力する場合も、クロック位相選択ができ最適化が可能である。
【0038】
図5は、マイコンからのパラメータ指示により、クロック位相調整が可能となるようにしたシステムブロックを示している。なお、図5では位相調整回路5をBLOCK1またはBLOCK2から分けて書いているが、実際には、図2または図4で示したように、各ブロックBLOCK1又はBLOCK2に吸収して構成される。
【0039】
マイコン1から8ビットのアドレスデータバス、パラメータクロック、アドレス/データモード制御、リード/ライト制御、チップセレクタ等からなるパラメータ制御信号を、マイコンインタフェース2に入力する。マイコンインタフェース2は各制御信号に応じて、アドレスデータバスからアドレスとデータを切りだす。アドレスデコーダ3は、マイコンインタフェース2で得られたアドレスをデコードし、規定のアドレスに一致したときのみ、データラッチ回路4でマイコンインタフェース2で得られたデータを保持する。
【0040】
そのデータが、極性信号として位相調整回路5に供給され位相切り替えが可能となる。
【0041】
また、パワーマネジメントを行う場合は、この図6(パワーマネジメントを盛り込んだクロックツリー構成図を示す)と図5を組み合わせる事になる。また、その際の位相調整回路5は図2または図4の何れかが使用される。
【0042】
なお、図2と図4はASIC内部ブロック間データのクロック乗換を行う際の位相調整回路として説明しているが、本発明はこれに限定するものでなく、外部のデジタルICとのインタフェースにも使用できることは言うまでもない。例えば、図2の場合は、クロック1で動作しているFFが外部のデジタルICに相当し、また図4の場合は、クロック2で動作しているFFが外部デジタルICに相当する。
【0043】
【発明の効果】
本発明により、クロックツリーの段数を減らすことにより、クロックツリー合成の結果を改善し、絶対遅延時間の減少とスキューの発生を押さえることが可能となる。
【0044】
また、クロックツリーが分割されるが、ブロック間の接続で、入力または出力のFFのクロック極性がコントロールできるため、最適の状態に設定できる。
【0045】
さらに、マイコンなどからのパラメータ調整で設定でき、レイアウト後の配線遅延の結果によって、極性設定が可能になるため、タイミングシミュレーション完了までの開発時間を大幅に削減することができ、そのコストメリットは非常に大きい。
【図面の簡単な説明】
【図1】機能ブロックごとに分けて各ブロックごとにクロックツリーを発生させた場合の構成図である。
【図2】入力側のFFのクロック極性を切り替えられるようにした位相調整回路図である。
【図3】図2の動作を説明するタイムチャートである。
【図4】出力側のFFのクロック極性を切り替えられるようにした位相調整回路図である。
【図5】マイコンによるパラメータ調整によりクロック極性を切り替えられるようにしたシステム構成図である。
【図6】パワーマネジメントを盛り込んだクロックツリー構成図である。
【図7】従来の1クロックツリー構造を示す構成図である。
【符号の説明】
01〜05 フリップフロップ
1 マイコン
2 マイコンインタフェース
3 アドレスデコーダ
4 データラッチ回路
5 位相調整回路
Claims (2)
- 共通の周期のクロックで動作し、レイアウト上複数の機能ブロックで構成されるASICのクロック位相調整システムにおいて、
クロックツリーをその機能ブロックの数またはそれ以下の数で複数に分けて構成するとともに、前記複数に分割されたブロック間における信号接続部分の入力側又は出力側に、クロックの極性切り替えを含む位相調整手段を設け、そして、前記極性切り替えをマイコン供給してなることを特徴とするクロック位相調整システム。 - 共通の周期のクロックで動作し、レイアウト上複数の機能ブロックで構成されるASICのクロックツリー設計方法において、
クロックツリーをその機能ブロックの数またはそれ以下の数で複数に分けるとともに、複数に分割されたブロック間における信号接続部分の入力側又は出力側で、クロックの極性切り替えを含む位相調整を行い、そして、前記極性切り替えをマイコン供給として、クロックツリーの段数を削減することを特徴とするクロックツリー設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000136680A JP3614758B2 (ja) | 2000-05-10 | 2000-05-10 | クロック位相調整システム及びクロックツリー設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000136680A JP3614758B2 (ja) | 2000-05-10 | 2000-05-10 | クロック位相調整システム及びクロックツリー設計方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001319975A JP2001319975A (ja) | 2001-11-16 |
JP3614758B2 true JP3614758B2 (ja) | 2005-01-26 |
Family
ID=18644583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000136680A Expired - Fee Related JP3614758B2 (ja) | 2000-05-10 | 2000-05-10 | クロック位相調整システム及びクロックツリー設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3614758B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007300290A (ja) | 2006-04-28 | 2007-11-15 | Nec Electronics Corp | クロック分配回路 |
-
2000
- 2000-05-10 JP JP2000136680A patent/JP3614758B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001319975A (ja) | 2001-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sjogren et al. | Interfacing synchronous and asynchronous modules within a high-speed pipeline | |
JP2735034B2 (ja) | クロック信号分配回路 | |
JP4130006B2 (ja) | 半導体装置 | |
US20080127003A1 (en) | Opposite-phase scheme for peak current reduction | |
US6574781B1 (en) | Design methodology for inserting RAM clock delays | |
JPH06203553A (ja) | 半導体集積回路装置 | |
US6711089B2 (en) | Method and apparatus for performing signal synchronization | |
JP2006157357A (ja) | 位相同期回路及び半導体集積回路装置 | |
JPH08111675A (ja) | 同期回路 | |
JP2000341093A (ja) | 低消費電力ディジタル論理回路 | |
JP3614758B2 (ja) | クロック位相調整システム及びクロックツリー設計方法 | |
JPH11112309A (ja) | 同期遅延回路 | |
JPH0645879A (ja) | フリップフロップ | |
JP2007109773A (ja) | 大規模半導体集積回路装置 | |
JP2001056721A (ja) | クロック分配回路 | |
JP3651659B2 (ja) | イネーブル付きラッチ回路 | |
JP2009169981A (ja) | 半導体装置およびクロック伝送方法 | |
JP2008219535A (ja) | 同期回路 | |
JP2004127012A (ja) | 同期式回路およびその設計方法 | |
JP2000353939A (ja) | クロック信号同期式フリップフロップ回路 | |
JP2646561B2 (ja) | クロック分配回路 | |
JP3866562B2 (ja) | 半導体集積回路の設計方法 | |
JP3271609B2 (ja) | クロック位相制御回路及びそれを用いた装置 | |
JP3184135B2 (ja) | 半導体集積回路のレイアウト方法 | |
JP2007110403A (ja) | 半導体集積回路およびその設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040709 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040709 |
|
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: 20041019 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041027 |
|
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: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |