JPH0766400B2 - クロック・スキュー低減方法 - Google Patents

クロック・スキュー低減方法

Info

Publication number
JPH0766400B2
JPH0766400B2 JP3044115A JP4411591A JPH0766400B2 JP H0766400 B2 JPH0766400 B2 JP H0766400B2 JP 3044115 A JP3044115 A JP 3044115A JP 4411591 A JP4411591 A JP 4411591A JP H0766400 B2 JPH0766400 B2 JP H0766400B2
Authority
JP
Japan
Prior art keywords
level
clock
net
terminator
logic
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 - Lifetime
Application number
JP3044115A
Other languages
English (en)
Other versions
JPH04225476A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04225476A publication Critical patent/JPH04225476A/ja
Publication of JPH0766400B2 publication Critical patent/JPH0766400B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00323Delay compensation

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、VLSI(超大規模
集積)回路の設計に関し、特に、あるシステムのデジタ
ル・チップ・システム内、及びクロック・スキュー(ず
れ)の少ないチップのシステム内の、異なるロジック回
路における各クロック・シグナルの到着時間のスキュー
を少なくする方法に関する。
【0002】
【従来の技術及びその課題】データ・プロセサなどのデ
ジタル・システムは、複数のVLSIチップ(代表的な
ものはプリント回路基板に3、4個ないし12個以上)
のシステムとして実用に供されている。半導体技術によ
るが、各チップのロジック回路は最大75,000個に
もなり、すべてナノ秒またはピコ秒のゲート遅延時間
(ディレイ)で動作する。このようなシステムの動作
は、全体として、全チップのロジック機能の同期をとる
ためのクロック・シグナルの数に依存する。システムの
最大速度は、こうしたクロックによって決まるサイクル
時間に比例する。
【0003】これらのクロック・シグナルは、システム
内の各種の機能ロジック回路において、同じチップ上で
も異なるチップ上でも、所定のシーケンスで届くことが
必須の要件である。サイクル時間の限定は、到着時間の
スキューによってロジックにエラーの生じることがない
ように、注意深く行わなければならない。スキューは、
クロック・シグナルが、異なるデスティネーションへ向
かってゲートを通過するとき、ゲート数が異なると発生
し得る。クロック・ツリーの異なるブランチ(枝)にお
ける負荷が異なるときにもスキューが発生し得る。ま
た、異なるブランチの配線によってディレイが変わると
きにも起こり得る。
【0004】クロック・スキューによって生じる問題は
2つに分けられる。順列とみられる2つのクロック・シ
グナルがオーバラップすると“アーリー・モード”フォ
ールトが発生し、データ・シグナルが、想定時間よりも
1クロック・サイクル早く転送される。クロック分離の
ためにシステムのサイクル時間のうち使用可能な部分が
少なくなると“レイト・モード”の問題が生じる。いず
れの問題も、システムのチップ1個の回路相互間、及び
異なるチップ2個の回路相互間で生じ得る。
【0005】従来のCMOS技術を採用したチップ6個
の代表的なプロセサ基板には、サイクル時間50nsで
動作するものがある。システム全体は、システム内の異
なる回路及びチップにおけるクロックの到着時間のスキ
ューを除けば何も変化させずに、10%ないし20%高
速に動作することができる。また、クロック・スキュー
が少なくなれば、これに比例して、実現可能なサイクル
時間が短縮される。1ナノ秒のスキューがなくなれば、
サイクル時間は1ナノ秒短くなる。
【0006】
【課題を解決するための手段】この発明は、VLSIデ
ジタル・チップのシステムにおいて、異なるロジック回
路にクロック・シグナルが到着する時間のスキューを、
同じチップ上でも、システムの他のチップ上でも低減す
ることによって、サイクル時間を短縮するものである。
この目標は、設計時間を短縮するとともに、すべて人手
による設計を伴い、時間とコストのかかる、かなり直観
的な手続きをなくすことによって達成される。
【0007】この発明は、広い意味では、システムの各
チップの各クロック・ツリーを成す各ネットのディレイ
を等しくするものである。各ツリーはいくつかのレベル
に分けられ、ディレイは各レベルで等しくされる。レベ
ルのディレイは、各ネットに追加されたターミネータ
(終端)回路のキャパシタンスを調整することによって
等しくされるので、ネットの容量負荷が同じになる。レ
ベル・ディレイはまた、各ネットのドライバ回路のパフ
ォーマンス・レベルまたはパワー・レベルを調整するこ
とによって等しくされる。これによってネットの容量負
荷が補正される。負荷が、補正可能な下限よりも小さく
なれば、ターミネータを、それが必要なネットだけに追
加することができる。
【0008】
【実施例】図1は、デジタル・コンピュータに使用でき
るようなVLSI(超大規模集積)デジタル集積回路チ
ップ101、102のシステム100を示す。この例で
は、チップは、従来のCMOS(相補型金属酸化膜半導
体)技術で生産される。
【0009】チップ101は、1組のロジック回路11
0を含み、回路110のクロック・ラッチ(LAT)1
11(AないしN)は、組み合わせロジック・ゲート1
12につながる。ライン113は、チップ101へデジ
タル入力シグナルを転送し、ライン114は、チップ外
のデスティネーションへ出力シグナルを転送する。シグ
ナル113、114は、いずれのロジック・ゲート11
2へも接続でき、ゲートは任意に配線してラッチ111
につなぐことで、所望の機能を実現できる。代表的なチ
ップでは、個別ロジック回路110が25,000ない
し75,000個になり、うち300ないし2,500
個をラッチ111とするのが通常である。
【0010】クロック・ツリー121、122の組12
0は、従来のクロック・シグナルC1、C2をライン1
23、124で受け取る。クロック・ツリー121は、
C1を再付勢し、そのコピーを、ブランチ・ライン12
5を通して、いくつかのラッチ111へ供給する。当該
技術の最大許容ファンアウトが、単位負荷で約5であっ
て、チップ101にラッチが2,500個あれば、クロ
ック・ツリー121は、出力ライン125(Aないし
N)を500ライン与えなければならない。ラインはす
べて同じ負荷であるのが望ましいが、ラインによっては
異なることがある。たとえばライン125Bの負荷は、
ラッチ111F、111G、111Hの3つだけであ
る。クロック・ツリー122は、C2を再付勢し、それ
をブランチ・ライン126を通してゲート111へ供給
する。ここでも、最大で約500のブランチ(126A
ないし126N)が必要になることがある。
【0011】すべてのクロックをすべてのラッチ111
へ供給する必要はない。たとえばゲート111Dには、
ツリー122からのクロック入力はない。2つのクロッ
ク・ツリーの異なるラインを同じラッチに接続できる。
ラッチ111Fはライン125BからC1を(ブランチ
125BAを介して)受け取るが、C2はライン126
Aから(ブランチ126ANを介して)受け取る。クロ
ック・シグナルには、ロジック入力からの活動化または
非活動化を必要とするものがある。たとえば診断機能や
シングル・ステップの機能では、ライン127のロジッ
ク・シグナルL1がすべての出力ライン125を非活動
化しなければならないことがある。他の機能では、たと
えばライン125AがC1をゲート111Aないし11
1Eへ送信するのを禁止し、他のライン125は各々の
ロジック・ゲートへC1を転送し続けなければならない
ケースがある。ライン128のロジック・シグナルは、
クロック・ツリー122に対して同じ機能を提供する。
【0012】チップ102は、チップ101のものと類
似のロジック・ゲートとクロック・ツリーを含む。チッ
プ101、102は、C1とC2を並列に受信する。チ
ップ102に入るクロック制御ロジック入力L1、L2
は、チップ101に入る入力と同じでも別でもよい。チ
ップ102のロジック入力103と出力104は普通、
少なくとも部分的には、105などのチップ間配線によ
ってチップ101のライン113、114と相互に接続
される。
【0013】マルチ・チップ・システム100が正しく
動作するためには、チップ101のすべてのロジック・
ゲート111がクロック・シグナルC1を同時に受信
し、すべてのゲートがC2を同時に受信し、すべてのゲ
ートにおいてC1とC2との時間間隔が正確に忠実に保
たれなければならない。これと同じことが、チップ10
2についても当てはまり、また、チップ102内のC1
とC2の両方について、入力からゲートまでのタイミン
グは、チップ101のタイミングに正確に追従するもの
でなくてはならない。これらの条件をすべて満足できる
までは、クロック・サイクル時間の消費は、アーリー・
モードやレイト・モードのタイミング・フォールトが発
生しないように行われなければならない。
【0014】図2は、図1の121などのクロック・ツ
リーを示す。ツリーの第1レベル210では、従来のレ
シーバ回路(RCVR)211が、ライン123のクロ
ック・シグナルC1をネット212の中間シグナルに変
換する。このシグナルは、チップ101のネット212
上の、ある一定の最大負荷(ファンアウト)までをドラ
イブできる。この負荷は、チップ技術により異なるが、
通常はCMOSチップで回路入力4ないし6である。こ
の例では、最大ファンアウトとして5が用いられてい
る。ライン127のロジック・シグナルL1は、上述の
ように、レシーバのオン/オフを切り替えることもでき
る。
【0015】中間シグナル212は、従来のドライバ回
路(DRVR)221(AないしN)の第2レベルの組
220の入力に現れ、入力ライン123上の元のシグナ
ルよりもある程度ディレイが生じる。このディレイの程
度は、主に、レシーバ211の出力につながるキャパシ
タンスによって変化し、これはライン212のすべての
第1レベル・ブランチ212Aないし212Nのキャパ
シタンス、このネットの各ドライバ回路の入力キャパシ
タンス、及びターミネータ回路(TRM)213のキャ
パシタンスから成る。表1とあわせて述べるように、ツ
リーは、第1レベルの各ブロックのトータル・レベル・
ディレイが同じ値となるようにターミネータ213のキ
ャパシタンスを調整することによって、所望の第1レベ
ル・ディレイが得られるように設計される。(用語につ
いて注記すると、“ネット”は、ライン212とそのブ
ランチ212Aないし212Nによって形成されるネッ
トなど、あるラインとそのブランチのネットワークをい
う。“ステージ”は、ドライバ及びその出力に接続され
たネットワークである。ドライバ211、ライン21
2、及びブランチ212Aないし212Nが1つのステ
ージを成す。これは第1レベル210で唯一のステージ
である。)この例では、回路221(AないしN)は同
一であり、すべて固定パワー・レベルが同じである。
【0016】ツリーの第2レベル220では、ドライバ
221(AないしN)が、第1レベル210から各ブラ
ンチ212(AないしN)を受け取る。第2レベルのド
ライバ221(AないしN)は各々同一である。最大フ
ァンアウトは5で、5つもの負荷が置ける。設計もすべ
て同一である。出力パワー・レベルも同じであり、入力
から出力への回路ディレイも同じである。ドライバ22
1Aは、第1レベルの中間シグナル212を第2レベル
の中間シグナル222に再付勢し、第2レベル・ブラン
チ222(AないしN)で、単位負荷ドライバを別に5
個までも付勢できる。第2レベルの所要負荷は、トータ
ル・ネット・ディレイがある特定の値になるように、タ
ーミネータ223Aのキャパシタンスを調整することに
よって得られる。他の第2レベル・ブランチも同様であ
るが、各々、その出力ライン222Nのブランチ222
(NAないしNN)の個数が異なり、したがって、その
ターミネータ223Nの調整が異なってもよい。これが
必要なのは、入力から出力へのディレイが、すべてのブ
ランチ222(ANないしNN)に対して同じでなけれ
ばならないからである。(そしてこのディレイは、チッ
プ101のすべてのクロック・ツリーについて同一でな
くてはならず、102など他のチップのすべてのクロッ
ク・ツリーとも同じでなくてはならない。)
【0017】ツリーの第3レベル230では、ドライバ
231(AAないしAN)が、各ブランチ222Aを受
け取り、ライン232(AないしN)に第3レベルの中
間シグナルを生成し、前の、ライン222Aの中間シグ
ナルに対して所望のディレイが得られる。ここでもこの
ディレイの程度は、主として、ライン222Aのブラン
チのキャパシタンス、各ドライバ回路231(AAない
しAN)の入力キャパシタンス、及びターミネータ回路
223A(必要に応じて追加される)のキャパシタンス
から成るブランチのトータル・キャパシタンスによって
変化する。このレベルの目的は、第3レベルの各ブラン
チのトータル・ディレイを、ツリー121(並びに図1
のチップ101の他の各ツリー、及びチップ102のす
べてのツリー)の第3レベルの他のブランチに生じるデ
ィレイと同じ値にすることにある。
【0018】このレベル及び後続のレベルではきわめて
多数のブランチが考えられるので、ディレイの調整方法
は、ツリーの第3レベルと後続のレベルでは異なる。こ
のレベルでは、ブランチ数は倍になって64ないし21
6の範囲であり(各々、最大ファンアウトが単位負荷で
4ないし6の場合)、次のレベルでは、ブランチ総数が
最大320ないし1512の範囲となる。各レベルに2
13、223(AないしN)などのターミネータを使用
すれば、かなりのチップ空間が占有される。逆に、第1
と第2のレベルでのターミネータ総数はわずか5ないし
37(ファンアウト4ないし6)であり、チップ101
で使用できる回路セルの割合はわずかである。
【0019】そのため、ドライバ231(AAないしN
N)はすべて同一ではない。回路のトポロジは同じだ
が、出力デバイスは、個々のサイズを変えて生産でき
る。CMOSデバイスでは、チャネル幅が広いほどパフ
ォーマンス・レベルが高いので、同じディレイで、より
大きな負荷(キャパシタンス)をドライブできる。表1
とあわせて説明するように、この例のドライバ・サイズ
の範囲では、出力負荷ゼロから最大ファンアウト、プラ
ス、配線負荷までの全範囲を補正することはできない。
したがって、第3レベル・ドライバからの実際のファン
アウトが、その全容量の何割かよりも少ない場合、23
3AAなどのターミネータがライン上に置かれ、負荷
が、少なくともドライバの複数のパワー・レベルのいず
れか1つによって補正できる最小値にまで引き上げられ
る。通常、クロック・ツリーは対称性が大きい(あるい
は対称性が大きくなるように設計できる)。したがっ
て、実際には、ほとんどのツリーに必要になるターミネ
ータはごくわずかである。すなわち、本発明は、ディー
プ・レベルではターミネータ用に余分のチップ・セルを
要するが、その数は小さく、ディープ・レベルで固定パ
ワー・ドライバを採用する場合に必要な個数のうち、多
くても1、2%にすぎない。第3レベルのターミネータ
243は、実際にはそれらのうちわずかしか存在しない
ため、破線のボックスで示した。第3レベルの他のブラ
ンチに及ぶディレイも、たとえばマルチ・パワー・ドラ
イバ231NNとターミネータ233NNから分かるよ
うに、同じように調整される。
【0020】この実施例では、回路技術にファンアウト
制限があるため、4つのツリー・レベルが必要である。
他の回路、他の技術ではレベル数の増減が考えられる。
こうした状態は、レベル230などの中間レベルを増減
することによって簡単に実現できる。
【0021】ツリーの第4(最終)レベル240では、
ドライバ241(AAAないしAAN)が、ライン23
2AAの各ブランチ232(AAAないしAAN)を受
け取り、ライン242(AAAないしAAN)に第4レ
ベルの中間シグナルを生成する。ここでライン232
(AAAないしAAN)では第3レベルの中間シグナル
に対してある一定のディレイが生じる。第4レベルの各
ブランチにおけるこのディレイの変化は、主に、ライン
242AAAの最終ブランチ(子枝)のキャパシタン
ス、これらのブランチ上の各負荷の入力キャパシタン
ス、及びターミネータ回路243AAA(これらブラン
チの各々に必要に応じて追加)のキャパシタンスから成
る、ブランチのトータル・キャパシタンスによって決ま
る。
【0022】これら最終ブランチは図1に示したライン
125である。すなわちライン242AAAは、図1の
ライン125Aになり、その最終ブランチはライン12
5(AAないしAN)である。同様にライン242AA
Bはライン125Bになり(ブランチは125BAない
し125BN)、以下、ライン125Nを介してブラン
チ125(NAないしNN)につながるライン242N
NNへ至る。ドライバ241AAAは、パワー・レベル
の異なる複数のステップのいずれか1つで構成でき、最
終ブランチのトータル・キャパシタンスによるディレイ
とドライバの伝播ディレイが、所定範囲のディレイ内に
収まる。これらのドライバは必要に応じてゲートでき
る。たとえばドライバ241AABは、図1の組み合わ
せロジック112からゲート・シグナル113を受け取
り、他のクロック・シグナルとは独立した出力クロック
・シグナル242AABを活動化あるいは抑制する。
【0023】先行するレベルと同様、ターミネータ24
3(AAAないしAAN)は、必要に応じて追加でき、
ドライバ回路の異なるパワー・レベルまたはパフォーマ
ンス・レベルによって調整できる最小値にまで負荷を引
き上げられる。最終レベルの他のブランチ(ドライバ2
41NNN、ターミネータ243NNNまで)も、全体
のディレイを可能な限り等しくするために、(同じチッ
プ及び他のチップ上の他のクロック・ツリーの最終レベ
ルと)同様に設計される。
【0024】こうして、クロック・ツリー121のトー
タル・ディレイは、図1のライン123のC1入力から
クロック入力125(AAないしNN)、ロジック・モ
ジュール111(AないしN)まで同じになる。また、
このディレイは、ライン124のC2からクロック入力
126(AAないしNN)までのディレイとも同じであ
る。さらにこのディレイは、同じシステム内の102な
ど、これらのクロックを受け取る他のすべてのチップ上
の同様のクロック・ツリーとも同じである。(このほ
か、入力ライン123、124のチップ間配線ディレイ
を補正する方式が従来からある。)
【0025】図3は、クロック・ツリー121、122
などに使用できる従来のトポロジの回路を示す。FET
符号の‘P’はPチャネル・デバイスを、‘N’はNチ
ャネル・デバイスを示す。
【0026】ドライバ回路310は、その出力(OU
T)312で5つの単位負荷をドライブするように入力
311を再付勢する、非反転ドライバである。このドラ
イバは、たとえば第2レベル・ドライバ221(Aない
しN)の固定パワー・レベルで使用できる。
【0027】回路320は、その出力322で5つもの
単位負荷を接続するように入力(IN)321を再付勢
する、反転ドライバである。出力の極性は入力のそれか
ら反転される。このドライバの(または他の)パワー・
レベルまたはパフォーマンス・レベルは、従来の方法に
従って出力FET323、324の寸法を変えるだけで
変更できる。チャネル幅が広がれば、供給電力が増加
し、与えられた負荷が、短いディレイでドライブされる
(つまり同じディレイで大きい負荷がドライブされ
る)。ドライバ320は、パワー・レベルが本発明で必
要な範囲内にあるものであれば、チップ上の同じサイズ
の回路内に物理的に配置できるので、大きいFET(少
なくとも、本発明で考慮している範囲内)を使用する際
にチップ面積を広げる必要はない。
【0028】ドライバ回路330は、図2の241AA
Bなどのゲート・ドライバとして使用できる。その場
合、出力333は、2つの入力331、332の論理N
ORである。ここでもまた、出力FET334、335
の寸法を変えることによって、同じセル・サイズ内で異
なるパワー・レベルが得られる。
【0029】回路340は、コンデンサとして再配線さ
れたインバータで、図2の213、223(Aないし
N)、233(AAないしNN)、243(AAAない
しNNN)などのターミネータとして用いられる。PF
ET342のチャネルは、正電源Vddに短絡・配線さ
れ、NFET343の短絡チャネルは接地される。これ
により、双方向のシグナル・スイングに対するキャパシ
タンスが得られる。回路の端子341でのキャパシタン
ス値は、2つのデバイスの物理寸法が同じなら、各デバ
イスのゲート/チャネル間キャパシタンスである。典型
的なCMOSの場合、デバイス寸法は、独立した20の
ステップで設定でき、0.05pFないし1.0pFの
範囲のキャパシタンス値が得られる。もしこれで充分な
範囲が得られなければ、ターミネータ回路340を並列
に追加できる。ここでは、あるターミネータに言及する
場合、これは複数のターミネータ回路にも当てはまるこ
とに注意されたい。
【0030】他の半導体技術にも、汎用ドライバと容量
ターミネータを提供するための同様の方法がある。たと
えばバイポーラ(BI)CMOS技術では、抵抗素子の
サイズやバイポーラ・トランジスタのサイズを変えるこ
とによって、パフォーマンスまたはパワーを変化させる
ことができる。ここでいう“パワー”レベルと“パフォ
ーマンス”レベルは同義語であり、負荷を、異なる速度
もしくは異なるディレイでドライブする回路の能力をい
う。
【0031】図4は、図3の310などのドライバ回路
における各パワー・レベルについて、代表的な回路ディ
レイと容量負荷を対比したグラフ400である。回路3
20、330も同様の関係を示すが、値はわずかに異な
る。回路の最小パワー・レベルでは、カーブ410A
が、出力負荷0.20pFで約0.50nsから、最大
設計負荷2.40pFで約2.6nsまでの速度変化を
示している。次に大きい(パワー、パフォーマンスとも
大きい)レベルは、カーブ410Bのように、すべての
負荷についてディレイがいくらか小さい。最大パワー・
レベル(カーブ410N)は、ディレイが最も少なく、
他のレベルよりも負荷に対する変化が少ない。後述する
設計方法では、このグラフの縦軸にブランチの所要ディ
レイがとられ、所与のドライバの容量出力負荷は、グラ
フ410の横軸で、許容負荷範囲内にとられる。各々の
交点に最も近いカーブ410(AないしN)が選ばれ
て、所望のディレイ効果を与える特定の回路レベル(ま
たはばs)が選択される。
【0032】表1は、本発明を適用するための設計方法
500のステップを示す。この方法は、経験ある回路設
計者によって、すべてデジタル・コンピュータに適用で
きるが、コンピュータ・プログラムと回路設計者によっ
て適用するのが望ましい。
【0033】
【表1】
【0034】まず、ステップ501では、システム10
0全体のパラメータが定義される。パラメータは、用い
られる半導体技術、チップ・サイズなどによって異な
る。パラメータのうち主要なものは、クロック・ツリー
に使用する回路素子のファンアウト、ツリーのレベル
数、配線ネットの最小許容負荷、ターミネータとマルチ
・パフォーマンス・ドライバ回路の個数と特性、及びク
ロック・ツリーの各レベルに求められるディレイであ
る。レベル・ディレイは、いずれのレベルについても、
当該レベルの回路のブロック・ディレイ(ドライバ回路
の伝播時間)と、ネット配線のRC時定数による配線デ
ィレイから成る。レベル・ディレイの代わりに“ステー
ジ・ディレイ”という言葉がよく用いられる。これは、
レベル・ディレイが、当該レベルの各ステージ(1ドラ
イバとその出力ネット)に生じるディレイと等しいから
である。レベル・ディレイは、どのレベルにおいても、
システムの全チップの全ツリーについて同一である。た
だし、あるレベルのディレイは、別のレベルのディレイ
と同じにする必要はなく、実際には異なるのが普通であ
る。レベル・ディレイは、環境による不可避的な影響と
プロセス変動によって生じるクロック・スキューを可能
な限り抑えるためには、小さくする必要がある。ツリー
のレベルを少なくすれば、クロック・ディレイは全体と
して短縮できる。一方、ツリー内のドライバのファンア
ウトを制限すれば、補正されない転送ライン・ディレイ
が小さくなる。ここで重要なポイントは、クロック・ツ
リーは、システムのユニットとして構成しなければなら
ないということである。ツリーは、同じシステム内の他
のツリーを考慮しないで個別に設計することはできな
い。
【0035】ステップ502では、システム100内の
各チップ101、102などに対する後続ステップが繰
り返される。
【0036】ステップ510ないし516では、現在の
チップ上の121、122などのツリー(レシーバ21
1に最も近いもの)の特定のレベルが設計される。この
発明では、ステップ510ないし514では、機能ロジ
ックによってゲートされないレベル(210、220、
及び230)が処理の対象になる。ステップ510で
は、各ツリーについて後続ステップが1回実行される。
【0037】ステップ511は、選択されたツリーの上
位レベルについて繰り返される。この発明の実施例で
は、“上位”レベルとは、パフォーマンスが一定のドラ
イバと各ネットのターミネータが用いられるレベルであ
る。次にステップ512では実際のロジックが統合され
る。たとえばレベル210の場合、ステップ512で
は、シグナル123を再付勢して、ネット212を介し
て次のレベルのドライバへ送ることができるレシーバ回
路または“ブック”が指定される。次に、必要なドライ
バ221の数が判定され、その適用対象として310な
どの回路が選択される。これらの回路のデバイス・サイ
ズはすべて同じなので、固定パワー・レベルも同じであ
る。このパワー・レベルは、レベル・ディレイを抑える
ためには比較的高くする必要がある。このレベルでドラ
イバ数が少ないと、チップのトータル・パワーが大きく
消費されることはない。
【0038】ステップ513では、ステップ514のた
めにツリーの中間ディープ・レベルが選択される。ツリ
ーの“ディープ”レベルは、実施例のレベル23、24
0など、パフォーマンスが可変のドライバ回路を採用し
たレベルである。“中間”ディープ・レベルはレベル2
30だけで、レベル240は“最終”ディープ・レベル
である。したがってステップ514は、現在のツリーの
レベル230に対してのみ実行される。ステップ514
では、必要なドライバ231の数が判定され、それらの
ドライバが、第2レベル220からの適正ネットに配線
される。ステップ514では、図3の320などのドラ
イバ回路が選択されるが、特定のパフォーマンス(パワ
ー)レベルまたはバージョンは、この時点では指定され
ない。ここでも、この回路のすべてのパフォーマンス・
レベルが同じチップ空間を占めるので、配置・配線は、
ドライバに最終的にどのバージョン(またはレベル)が
選ばれるかを意識せずに進めることができる。
【0039】実施例においては、ステップ512、51
4は、回路設計者が、コンピュータをベースにロジック
素子と接続の図を指定する従来のツールを使用して実現
される。代表的なチップでは、最初の3つのレベルに含
まれる回路は約150にすぎないので、ここで必要な手
間は少ない。このステップにはターミネータは含まれ
ず、設計の後の段階で追加される。
【0040】ステップ520では、現在のチップ、ゲー
ト112、及びラッチ111の機能ロジックが統合され
る。ここでのロジックの統合は、従来のコンピュータ・
プログラムによって行うのがよい。
【0041】ステップ520には、クロック・ツリーの
最終ディープ・レベル240の統合も含まれる。ステッ
プ521では、各ツリーの最終レベル240で各ネット
が選択される。ステップ522では、現在のネットにタ
ーミネータが条件つきで追加される。このステップの詳
細は表1の下部に示した。ステップ503では、現在の
ネットの総負荷が評価される。ステップ520で用いら
れる統合プログラムは、ネットに接続された回路の入力
キャパシタンスを調べて合計し、ネットの配線によるキ
ャパシタンスの許容差を追加することによって、この評
価を実行できる。ステップ504では、ネット負荷のキ
ャパシタンスが、ネットをドライブする回路によって処
理可能な範囲の最小値よりも小さいかどうかが判定され
る。すなわちネット・キャパシタンスがある一定量より
も小さい場合は、そのレベルのディレイは常に、使用で
きるドライバ回路のパフォーマンスが最小であっても、
先のステップ501で求められたディレイよりも小さ
い。ネット負荷が小さすぎる場合、ステップ505で
は、そのネットにターミネータが追加されるので、ネッ
ト・キャパシタンスは、少なくとも1つのドライバ・バ
ージョンが所望のディレイを満たすところまで増加す
る。
【0042】ステップ503の評価は、エラー・マージ
ンが大きく、通常は約50%である。ただしターミネー
タを必要とするのは、全ネットの1%か2%にすぎな
い。ステップ504のスレショールドは、ターミネータ
が、最終的に必要になったときには必ず追加されるよう
に、充分に低くされる。後のステップでは、ターミネー
タが、与えられたネットに実際には必要なかったことを
判定できるが、消費されたセルの総数は問題にならな
い。各ターミネータのキャパシタンスの特定の値は、こ
の時点では決定されない。ここでも、ターミネータ回路
のすべてのバージョンに同じチップ空間が必要である。
設計のこの段階では、最終レベルに対する実際のクロッ
ク・シグナル入力は、すべて、ファンアウトが巨大な1
つのブラックボックスである論理素子から広がった同一
ネットとみなすことができる。
【0043】ステップ530では、ネット232(AA
ないしNN)を介してレベル230ドライバからレベル
240ドライバへの接続を確立することによって、ステ
ップ510ないし514、520ないし522で形成さ
れたロジックが組み合わせられる。このステップでは、
クロック・ツリーを切り詰めて、最終レベルをそれらの
最大ファンアウトでドライブする必要のないことが明ら
かになったブランチを取り除くこともできる。ステップ
531、532では、各ツリーの上位2レベルにある各
ネット212、222(AないしN)にターミネータが
追加される。ステップ533、534では、各ツリーの
最後の(もしくはこの例では唯一の)中間レベルと最終
ディープ・レベルとの間のネットにターミネータが条件
つきで追加される。これらは図2のネット232(AA
ないしNN)である。これらのターミネータは、ステッ
プ530でロジックが組み合わせられるまではネット負
荷が評価できないため、先には追加できなかったもので
ある。ステップ534の詳細も表1の下にステップ50
3ないし505として示した。クロック・ロジックを2
つの部分に分けて設計し、それらを組み合わせることに
より、クロック・ゲート・シグナル(ドライバ241A
ABに示したものなど)と機能ロジックの統合が容易に
なる。他の実施例では、ツリーの全レベルをまとめて設
計するか、設計を他の方法で分離する方が容易であろ
う。
【0044】ステップ540ないし542では、チップ
の物理的な設計が行われる。これには従来の“配置・配
線”プログラムが使用できる。このようなプログラムは
高度で複雑であるが、よく知られているものである。こ
れについては、たとえば、A.W .Aldridge らによる“A
40 K Equivalent Gate CMOSS tandard Cell Chip ”Pro
ceedings 1987 IEEE Custom Integrated Circuits Conf
erence 、pp .248-251 を参照されたい。この種のプロ
グラムは、従来から、配線長その他のファクタのトレー
ドオフを行うための基準を採用している。プログラム
は、このようなファシリティがどれほど利用できるかに
応じて、配線長の制限に関して上位ツリー・レベルに優
先順位を与えるように設定する必要がある。
【0045】ステップ540では、統合ステップで形成
された各ロジック回路が、チップ上の特定の物理セル位
置に割り当てられる。回路は、この時点で、チップ上に
セル空間を要する全ターミネータを含めて、すべて、設
計に組み込まれる。ただし、この時点では、クロック・
ツリーの第3及び第4レベルにあるターミネータの正確
なサイズも、マルチ・パワー・レベルのドライバ231
(AAないしNN)、241(AAAないしNNN)の
パフォーマンス・レベルも決定されていない。これらは
未決定にしておける。同一サイズのチップ・セル内に、
異なるドライバ、ターミネータがすべて収まるからであ
る。後で正確なレベルを設定するときに配線や配置は必
要ない。
【0046】ステップ541では、これに続く配線ステ
ップのロジックが最適化される。ロジックの機能は当該
方法には必要ではない。もし、回路配置の後、あるクロ
ック・ドライバ出力から後続のドライバの入力までの距
離が、同種の他の距離を大幅に上回る場合は、論理的に
同等な入力を代用できる。たとえば、図2のドライバ2
31NNが結果的に、チップ上でドライバ221Nより
もドライバ221Aに近く配置されれば、ドライバ23
1NNへの入力は、ブランチ222NNではなくブラン
チ222ABに接続できる。ブランチは、同じツリー・
レベルでしか変更できない。これは、ツリー全体のタイ
ミング特性を保つためである。ステップ531は、コン
ピュータ・プログラムによって自動的にか、または経験
あるチップ設計者によって実行できる。
【0047】ステップ542では、配置・配線プログラ
ムが、統合されたロジック設計に従って、チップ上の全
回路素子の相互接続を設定する。これも複雑ではある
が、全く従来どおりの操作である。
【0048】次に、ステップ550ないし562では、
チップに対する実際のターミネータ値及びドライバのパ
ワー・レベルが設定される。設計のこの段階は、最も深
い(最終)ツリー・レベルから、最も上位(初期)のレ
ベルへ遡るのが望ましい。ある1つのレベルでの設計
が、それより上のレベルのキャパシタンスにある程度影
響を与え得るからである。
【0049】したがって、ステップ550ないし555
では、最初にディープ・ツリー・レベルが設計される。
ステップ550では、図2のディープ・レベル230、
240における繰り返しが、最終レベルである240か
ら制御される。ステップ551では、統合ステップで生
成された回路トポロジ、デバイス・サイズ、配線長など
についての従来のデータが用いられ、現在のツリー・レ
ベルのすべてのクロック・ツリー・ネットの容量負荷が
評価される。ネットのキャパシタンスは、それに接続さ
れた全回路の入力キャパシタンス(負荷)と、これらの
回路をつなぐ配線の全長とに依存する。この評価は、一
般には、数%の範囲内で正確であり、ステップ503の
評価よりもかなり近似した値である。
【0050】ステップ552では、最初に、対象ネット
にターミネータがあるかどうかが判定される。ある場
合、ステップ553において、ターミネータ回路のキャ
パシタンスが調整され、ステップ501で各ツリー・レ
ベルに対して定義された最小ネット・キャパシタンスが
得られる。この最小値は、ドライバ回路の複数のパフォ
ーマンス・レベルのうち1つが、ステップ501で指定
された所望のレベル・ディレイを得るのに選択できるこ
とを保証するものである。
【0051】次のステップ554では、現在のネットに
使用できるドライバのパフォーマンス・レベル(または
バージョン)のうち1つが選択される。このパフォーマ
ンス・レベルは、当該クロック・レベルで、ステップ5
01で定義された所望のディレイが得られるように選択
される。これは、上述のように、ドライバ内のFETデ
バイスのサイズを変えることによって行われる。図4に
示したように、10の異なるパフォーマンス・レベルを
用いることで、システムの全チップ上の全ツリーについ
て、同一レベルにあるすべてのネットに生じるディレイ
に対して、確実な許容差が保証される。あるネットに対
するドライバ・バージョンは、ここでも、グラフを水平
に、所望のディレイから当該ブランチについてステップ
551で明らかになった容量負荷の値まで読んでいくこ
とによって選択され、所望のディレイと、算出されたキ
ャパシタンスの交点に最も近いところを通るカーブ41
0に対応したドライバ・バージョンが選択される。
【0052】上位レベル(この例では210、220)
では、各ネットにターミネータが追加される。ステップ
560は、現在のチップの各ツリーのこれらのレベルで
繰り返される。ステップ561では、ターミネータの値
(図3のそのFETデバイス342、343のサイズ)
が調整されて、当該ツリー・レベルについてステップ5
01で定義された標準ディレイに可能な限り近づく、現
在のネットのトータル・キャパシタンスが得られる。2
0の異なるキャパシタンス・レベルがあれば、かなり近
い許容差が得られる。これらのレベルのドライバはすべ
て固定パフォーマンスが同じである。全体的なディレイ
調整は、ターミネータ値を設定することによって行え
る。
【0053】ステップ553、561では、おそらくは
ステップ503で与えられた配線キャパシタンス許容差
が大きすぎるために、ターミネータを持つネットが実際
にはターミネータを必要としないと判定することができ
る。こうした場合、これらのステップではターミネータ
を除外して、ネット配線のわずかのキャパシタンスだけ
をそのセルに残せる。除外すればチップ・セルが無駄に
なるが、これが起こるのはきわめて希である。また、タ
ーミネータがなくてもネット・キャパシタンスが大きす
ぎて、ディレイが、当該ツリー・レベルに求められる値
にまで下がることもあり得る。さらに、ブランチのキャ
パシタンスは、最も大きいターミネータ回路が利用でき
るとしても、ディレイを所要値に上げるのに必要な最小
値にまで引き上げられない可能性もある。こうした、希
ではあっても起こり得る状況では、ステップ555、5
62において、警告が記録され、ネット・ロケーション
とエラー・タイプが与えられる。
【0054】締めくくりのブロック570ないし572
では補助的な機能が実行される。ステップ570は、通
常は回路設計者の制御によって繰り返される。ステップ
571では、設計者がチップ設計に手を加えることがで
きる。これは従来からの機能であり、たとえばステップ
555または562で、この方法の自動化された部分
が、定義されたパラメータ値内の設計を行えなかったこ
とが示される場合に起こり得る。たとえば、ネットの最
小キャパシタンスが、指定ディレイを満足する値よりも
小さい場合、設計者は、ブランチを、比較的分かりやす
いルートに沿って再配線し、キャパシタンスを上げ、よ
ってディレイを長くすることができる。ブロック552
では、ネット・リストまたは回路構成が、もしそれが、
ステップ541で接続が変更されたことによって、ある
いはステップ571で人手が加わったことによって変更
されていれば、更新される。
【0055】方法500のステップの実行シーケンス
は、これまで説明した以外は重要ではない。たとえば、
ステップ501のパラメータが設定されれば、システム
の全チップの設計を平行して進めることもできる。チッ
プの全ツリーの異なるレベルをまとめて設計したり、各
ツリーの全レベルを、次のツリーに移る前に設計したり
できる。
【0056】いうまでもなく、クロック・ツリー・レベ
ルの総数は任意である。望ましいのは、上位ツリー・レ
ベルを、各ネットにレベルが固定されたドライバと必須
のターミネータを用いて設計し、ディープ・ツリー・レ
ベルではマルチ・レベル・ドライバと条件つきターミネ
ータを用いることである。上位レベル(各ネットにレベ
ル固定ドライバとターミネータを用いるもの)の数は、
必要に応じて変えられる。使用可能なエリアのうちわず
かな部分しか用いないチップの場合、設計時間は、すべ
てのツリー・レベルでレベル固定ドライバとターミネー
タを使用することによって短縮できよう。その場合、無
駄になったセルはほとんど考慮しなくてよい。逆に、設
計者としては、場合によっては、クロック・ツリーの全
レベルを、マルチ・レベル・ドライバを使って実現し、
他の場合には上位レベルでターミネータに必要なチップ
空間を節約する方が望ましいであろう。これは、おそら
くは、たとえば必要なファンアウトがきわめて低い、非
常に密集したチップに当てはまると考えられる。この設
計方法はまた、すべてのツリーのすべてのレベルに及ぶ
ディレイの同等性を重視している。ある場合には、クロ
ック・スキューをいくらか意識的に導入した方がよいだ
ろう。たとえば、チップによっては、競合状態を防ぐた
めに、あるクロックを別のクロックからのオフセットを
小さくする(ゼロではない)必要もあろう。この発明
は、この要件及びこれと同様の要件を容易に満足するも
のである。
【0057】
【発明の効果】この発明により、あるシステムのデジタ
ル・チップ・システム内及びクロック・スキュー(ず
れ)の少ないチップ・システム内の異なるロジック回路
における各クロック・シグナルの到着時間のスキューを
低減することができる。
【図面の簡単な説明】
【図1】本発明を採用できる集積回路チップ・システム
のブロック図である。
【図2】図1のクロック・ツリーのブロック図である。
【図3】図2のクロック・ツリーの代表的な回路を含む
図である。
【図4】図2の回路の1つについてディレイと負荷を対
比した図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・フランシス・レンバツチ アメリカ合衆国ミネソタ州ロチェスター、 バイアラ・ロード・ノース・イースト3405 番地 (72)発明者 ブルース・ジヨージ・ラドルフ アメリカ合衆国ミネソタ州ロチェスター、 トウエンテイ・セカンド・アベニユー・ノ ース・イースト4621番地 (72)発明者 ロバート・ラツセル・ウイリアムス アメリカ合衆国ミネソタ州ロチェスター、 エイテイーンス・アベニユー・ノース・ウ エスト2503番地 (56)参考文献 特開 昭59−24324(JP,A) 特開 平2−54950(JP,A)

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数の集積回路チップを持ち、各チップに
    1組の機能ロジック回路が含まれ、かつ該チップと同数
    のクロック・シグナルを受け取るデジタル・システムに
    おいて、クロック・スキューを低減する方法であって、 (a)レベル数が同じであり、レベルに上位レベルが含
    まれ、該上位レベルの最初の1つのレベルが上記クロッ
    ク・シグナルを受け取り、該レベルにさらにディープ・
    レベルが含まれ、該ディープ・レベルの最後の1つのレ
    ベルが、上記機能ロジックに直結して、該クロック・シ
    グナルを該ロジックに供給し、かつ各レベルに対して個
    別の固定レベル・ディレイを定義し、該レベルの各々の
    該レベル・ディレイが、すべての上記チップのすべての
    上記ツリーについて同一である、複数のクロック・ツリ
    ーを、該チップと該クロック・シグナルに対して定義す
    るステップと、 (b)上記ツリーのすべての上記上位レベルに、該上位
    レベルの各々についてパフォーマンスが同一であり固定
    されたドライバ回路が含まれ、かつ複数のキャパシタン
    スを有するターミネータ回路が含まれ、上記ディープ・
    レベルに、該ディープ・レベルのネットごとに異なり得
    る複数のパフォーマンスを有するドライバ回路が含まれ
    るように、該ツリーのすべてに対するクロック・ロジッ
    クと、該ロジックを相互接続するためのネットとを形成
    するステップと、 (c)上記ツリーのすべての上記ディープ・レベルの各
    々の各ネットについて、 1)上記ネットの負荷を評価するステップと、 2)上記負荷を、上記レベル・ディレイのうち対応する
    1つを実現するのに必要な最小負荷と比較するステップ
    と、 3)上記負荷が上記最小負荷よりも小さい場合は、条件
    つき容量ターミネータを上記ネットに接続するステップ
    と、 (d)上記機能ロジックと上記クロック・ロジックとを
    上記チップに配置・配線するステップと、 (e)上記ツリーのすべての上記上位レベルの各々の各
    ネットについて、 1)上記レベル・ディレイのうち対応する1つが実現さ
    れるように、上記ネットのターミネータのキャパシタン
    スを調整するステップと、 (f)上記ツリーのすべての上記ディープ・レベルの各
    々の各ネットについて、 1)上記ネットに条件つきターミネータがある場合に
    は、少なくとも上記最小負荷が得られるように、該条件
    つきターミネータのキャパシタンスを調整するステップ
    と、 2)上記レベル・ディレイのうち対応する1つが得られ
    るように、上記ネット内のマルチ・パフォーマンス・ド
    ライバのパフォーマンスを調整するステップとを含む、 クロック・スキュー低減方法。
  2. 【請求項2】少なくとも1つの集積回路チップを持ち、
    該チップに1組の機能ロジック回路が含まれ、かつ該チ
    ップが複数のクロック・シグナルを受け取るデジタル・
    システムにおいて、クロック・スキューを低減する方法
    であって、 (a)レベル数が同じであり、レベルに上位レベルが含
    まれ、該上位レベルの最初の1つのレベルが、上記クロ
    ック・シグナルを受け取り、該レベルにさらにディープ
    ・レベルが含まれ、該ディープ・レベルの最後の1つの
    レベルが、上記機能ロジックに直結して、該クロック・
    シグナルを該ロジックに供給し、かつ各レベルに対して
    個別の固定レベル・ディレイを定義し、該レベルの各々
    の該レベル・ディレイが、すべての上記ツリーについて
    同一である、複数のクロック・ツリーを、該クロック・
    シグナルに対して定義するステップと、 (b)上記ツリーのすべての上記上位レベルに、該上位
    レベルの各々についてパフォーマンスが同一であり固定
    されたドライバ回路が含まれ、かつ複数のキャパシタン
    スを有するターミネータ回路が含まれ、上記ディープ・
    レベルに、該ディープ・レベルのネットごとに異なり得
    る複数のパフォーマンスを有するドライバ回路が含まれ
    るように、該ツリーのすべてに対するクロック・ロジッ
    クと、該ロジックを相互接続するためのネットとを形成
    するステップと、 (c)上記ツリーのすべての上記ディープ・レベルの各
    々の各ネットについて、 1)上記ネットの負荷を評価するステップと、 2)上記負荷を、上記レベル・ディレイのうち対応する
    1つを実現するのに必要な最小負荷と比較するステップ
    と、 3)上記負荷が上記最小負荷よりも小さい場合は、条件
    つき容量ターミネータを上記ネットに接続するステップ
    と、 (d)上記機能ロジックと上記クロック・ロジックとを
    配置・配線するステップと、 (e)上記ツリーのすべての上記上位レベルの各々の各
    ネットについて、 1)上記レベル・ディレイのうち対応する1つが実現さ
    れるように、上記ネットのターミネータのキャパシタン
    スを調整するステップと、 (f)上記ツリーのすべての上記ディープ・レベルの各
    々の各ネットについて、 1)上記ネットに条件つきターミネータがある場合に
    は、少なくとも上記最小負荷が得られるように、該条件
    つきターミネータのキャパシタンスを調整するステップ
    と、 2)上記レベル・ディレイのうち対応する1つが得られ
    るように、上記ネット内のマルチ・パフォーマンス・ド
    ライバのパフォーマンスを調整するステップとを含む、 クロック・スキュー低減方法。
  3. 【請求項3】少なくとも1つの集積回路チップを持ち、
    該チップに機能ロジック回路が含まれ、かつ該チップが
    少なくとも1つのクロック・シグナルを受け取るデジタ
    ル・システムにおいて、クロック・スキューを低減する
    方法であって、 (a)複数のレベルを有し、上位レベルが含まれ、該上
    位レベルの最初の1つのレベルが、上記クロック・シグ
    ナルを受け取り、さらに、ディープ・レベルが含まれ、
    該ディープ・レベルの最後の1つのレベルが、上記機能
    ロジックに直結して、該クロック・シグナルを該ロジッ
    クに供給し、かつクロック・ツリーの各レベルに対して
    個別の固定レベル・ディレイを定義する、該クロック・
    ツリーを定義するステップと、 (b)上記上位レベルに、該上位レベルの各々について
    パフォーマンスが同一であり固定されたドライバ回路が
    含まれ、かつ複数のキャパシタンスを有するターミネー
    タ回路が含まれ、上記ディープ・レベルに、該ディープ
    ・レベルのネットごとに異なり得る複数のパフォーマン
    スを有するドライバ回路が含まれるように、該ツリーに
    対するクロック・ロジックと、該ロジックを相互接続す
    るためのネットとを形成するステップと、 (c)上記ディープ・レベルの各々の各ネットについ
    て、 1)上記ネットの負荷を評価するステップと、 2)上記負荷を、上記レベル・ディレイのうち対応する
    1つを実現するのに必要な最小負荷と比較するステップ
    と、 3)上記負荷が上記最小負荷よりも小さい場合は、条件
    つき容量ターミネータを上記ネットに接続するステップ
    と、 (d)上記機能ロジックと上記クロック・ロジックとを
    上記チップに配置・配線するステップと、 (e)上記上位レベルの各々の各ネットについて、 1)上記レベル・ディレイのうち対応する1つが実現さ
    れるように、上記ネットのターミネータのキャパシタン
    スを調整するステップと、 (f)上記ディープ・レベルの各々の各ネットについ
    て、 1)上記ネットに条件つきターミネータがある場合に
    は、少なくとも上記最小負荷が得られるように、該条件
    つきターミネータのキャパシタンスを調整するステップ
    と、 2)上記レベル・ディレイのうち対応する1つが得られ
    るように、上記ネット内のマルチ・パフォーマンス・ド
    ライバのパフォーマンスを調整するステップとを含む、 クロック・スキュー低減方法。
  4. 【請求項4】請求項3に記載の方法であって、ステップ
    (c)がステップ(d)よりも前に実行され、ステップ
    (e)及び(f)がステップ(d)よりも後に実行され
    る、クロック・スキュー低減方法。
  5. 【請求項5】請求項3に記載の方法であって、ステップ
    (e)(1)に、所定個数のターミネータ・バージョン
    の1つを選択するステップが含まれ、該バージョンの各
    々のキャパシタンス値が異なる、 クロック・スキュー低減方法。
  6. 【請求項6】請求項5に記載の方法であって、チップ
    が、機能ロジック及びクロック・ロジックを配置するた
    めの複数のセルを有し、ターミネータ・バージョンがす
    べて該セルの1つに収まる、 クロック・スキュー低減方法。
  7. 【請求項7】請求項3に記載の方法であって、ステップ
    (f)(1)に、所定個数のターミネータ・バージョン
    の1つを選択するステップが含まれ、該バージョンの各
    々のキャパシタンス値が異なる、 クロック・スキュー低減方法。
  8. 【請求項8】請求項7に記載の方法であって、チップ
    が、機能ロジック及びクロック・ロジックを配置するた
    めの複数のセルを有し、ターミネータ・バージョンがす
    べて該セルの1つに収まる、 クロック・スキュー低減方法。
  9. 【請求項9】請求項3に記載の方法であって、ステップ
    (f)(2)に、所定個数のドライバ・バージョンの1
    つを選択するステップが含まれ、該バージョンの各々の
    パワー・レベルが異なる、 クロック・スキュー低減方法。
  10. 【請求項10】請求項9に記載の方法であって、チップ
    が、機能ロジック及びクロック・ロジックを配置するた
    めの複数のセルを有し、ドライバ・バージョンがすべて
    該セルの1つに収まる、 クロック・スキュー低減方法。
  11. 【請求項11】複数の集積回路チップを持ち、各チップ
    に、1組の機能ロジック回路が含まれ、かつ該チップと
    同数のクロック・シグナルを受け取るデジタル・システ
    ムにおいて、クロック・スキューを低減する方法であっ
    て、 (a)レベル数が同じであり、各レベルに対して個別の
    固定レベル・ディレイを定義し、該レベルの各々の該レ
    ベル・ディレイが、すべての上記チップのすべての上記
    ツリーについて同一である、複数のクロック・ツリー
    を、該チップと該クロック・シグナルに対して定義する
    ステップと、 (b)複数の上記レベルに、該レベルのネットごとに異
    なり得る複数のパフォーマンスを有するドライバ回路が
    含まれるように、該ツリーのすべてに対するクロック・
    ロジックと、該ロジックを相互接続するためのネットと
    を形成するステップと、 (c)上記ツリーのすべての上記レベルの各々の各ネッ
    トについて、 1)上記ネットの負荷を評価するステップと、 2)上記負荷を、上記レベル・ディレイのうち対応する
    1つを実現するのに必要な最小負荷と比較するステップ
    と、 3)上記負荷が上記最小負荷よりも小さい場合は、条件
    つき容量ターミネータを上記ネットに接続するステップ
    と、 (d)上記機能ロジックと上記クロック・ロジックとを
    上記チップに配置・配線するステップと、 (e)上記ツリーのすべての上記複数のレベルの各々の
    各ネットについて、 1)上記ネットに条件つきターミネータがある場合に
    は、少なくとも上記最小負荷が得られるように、該条件
    つきターミネータのキャパシタンスを調整するステップ
    と、 2)上記レベル・ディレイのうち対応する1つが得られ
    るように、上記ネット内のマルチ・パフォーマンス・ド
    ライバのパフォーマンスを調整するステップとを含む、 クロック・スキュー低減方法。
  12. 【請求項12】ロジック入力シグナル及び入力クロック
    ・シグナルを受け取る集積回路チップであって、 (a)上記ロジック入力シグナルに応答し、相互に接続
    された複数グループの機能ロジック回路と、 (b)第1レベル、第2レベル、第3レベル及び第4レ
    ベルを有し、上記第1レベルが上記入力クロック・シグ
    ナルを受け取り該入力クロック・シグナルから遅延した
    第1レベルの中間シグナルを生じ、上記第2レベルが上
    記第1レベルの中間シグナルを受け取り該中間シグナル
    から遅延した第2レベルの中間シグナルを生じ、上記第
    3レベルが上記第2レベルの中間シグナルを受け取り該
    中間シグナルから遅延した第3レベルの中間シグナルを
    生じ、そして上記第4レベルが上記第3レベルの中間シ
    グナルを受け取り該中間シグナルから遅延した出力クロ
    ック・シグナルを生じるクロック・ツリーとを有し、 上記第1レベルは、上記入力クロック・シグナルを受け
    取り、該入力クロック・シグナルから遅延した上記第1
    レベルの中間シグナルを生じるドライバを含み、 上記第2レベルは、上記第1レベルのドライバからの上
    記第1レベルの中間シグナルを並列的に受け取り、該中
    間シグナルから遅延した上記第2レベルの中間シグナル
    をそれぞれ生じる複数個のドライバを含み、 上記第3レベルは、上記第2レベルの上記複数個のドラ
    イバのそれぞれからの上記第2レベルの中間シグナルを
    並列的に受け取り、該中間シグナルから遅延した上記第
    3レベルの中間シグナルをそれぞれ生じる複数個のドラ
    イバを含み、 上記第4レベルは、上記第3レベルのドライバのそれぞ
    れからの上記第3レベルの中間シグナルを並列的に受け
    取り、該中間クロック・シグナルから遅延した上記出力
    クロック・シグナルをそれぞれ生じる複数個のドライバ
    を含み、 上記第1レベルのドライバにキャパシタンス・ターミネ
    ータが設けられ、この第1レベルのドライバの出力は、
    上記第2レベルの複数個のドライバ及び上記キャパシタ
    ンス・ターミネータに並列接続され、該キャパシタンス
    ・ターミネータの値は、上記第2レベルの複数個のドラ
    イバからの上記第2レベルの中間シグナルが同じ遅延で
    生じる値にされており、 上記第2中間レベルの上記複数個のドライバのファン・
    アウト数が同じであり、そして第3中間レベルの上記複
    数個のドライバのファン・アウト数が互いに異なり、 上記第2レベルの上記複数個のドライバの出力パワー特
    性は同じにされ、該複数個のドライバ毎に同じキャパシ
    タンスのターミネータが設けられ、そしてこの第2レベ
    ルの複数個のドライバのそれぞれの出力は、上記第3レ
    ベルの複数個のドライバ及び上記ターミネータに並列接
    続され、 上記第3レベルの上記複数個のドライバの出力パワー特
    性は、それぞれのドライバのファン・アウト数に応じて
    互いに異なり、該複数個のドライバ毎に異なるキャパシ
    タンスのターミネータが設けられ、該ターミネータのキ
    ャパシタンス値は、この第3レベルの複数個のドライバ
    のそれぞれに接続される第4レベルの複数個のドライバ
    の出力に生じる出力クロック・シグナルが同じ遅延で生
    じる値にそれぞれ調整されており、そしてこの第3レベ
    ルの複数個のドライバのそれぞれの出力は、上記第4レ
    ベルの複数個のドライバ及び上記ターミネータに並列接
    続されていることを特徴とする上記集積回路チップ。
JP3044115A 1990-03-30 1991-02-18 クロック・スキュー低減方法 Expired - Lifetime JPH0766400B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US502474 1990-03-30
US07/502,474 US5077676A (en) 1990-03-30 1990-03-30 Reducing clock skew in large-scale integrated circuits

Publications (2)

Publication Number Publication Date
JPH04225476A JPH04225476A (ja) 1992-08-14
JPH0766400B2 true JPH0766400B2 (ja) 1995-07-19

Family

ID=23997987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3044115A Expired - Lifetime JPH0766400B2 (ja) 1990-03-30 1991-02-18 クロック・スキュー低減方法

Country Status (3)

Country Link
US (1) US5077676A (ja)
EP (1) EP0451079A3 (ja)
JP (1) JPH0766400B2 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210700A (en) * 1990-02-20 1993-05-11 International Business Machines Corporation Automatic delay adjustment for static timing analysis
US5235521A (en) * 1990-03-30 1993-08-10 International Business Machines Corporation Reducing clock skew in large-scale integrated circuits
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
US5274568A (en) * 1990-12-05 1993-12-28 Ncr Corporation Method of estimating logic cell delay time
US5367469A (en) * 1990-12-13 1994-11-22 Vlsi Technology, Inc. Predictive capacitance layout method for integrated circuits
US5197015A (en) * 1990-12-20 1993-03-23 Vlsi Technology, Inc. System and method for setting capacitive constraints on synthesized logic circuits
US5402357A (en) * 1990-12-20 1995-03-28 Vlsi Technology, Inc. System and method for synthesizing logic circuits with timing constraints
JP2695078B2 (ja) * 1991-06-10 1997-12-24 株式会社東芝 データ処理装置クロック信号の分配方法
JP2993239B2 (ja) * 1991-11-28 1999-12-20 株式会社日立製作所 階層間ディレイ配分方法
US6090150A (en) * 1991-12-28 2000-07-18 Nec Corporation Method of designing clock wiring and apparatus for implementing the same
JPH0660139A (ja) * 1992-08-05 1994-03-04 Mitsubishi Electric Corp Mosトランジスタの論理機能ブロックの消費電力計算装置
JP3048471B2 (ja) * 1992-09-08 2000-06-05 沖電気工業株式会社 クロック供給回路及びクロックスキュー調整方法
ES2113498T3 (es) * 1992-12-28 1998-05-01 Advanced Micro Devices Inc Circuito de microprocesador con dos señales de temporizacion.
US5444407A (en) * 1992-12-28 1995-08-22 Advanced Micro Devices, Inc. Microprocessor with distributed clock generators
US5444406A (en) * 1993-02-08 1995-08-22 Advanced Micro Devices, Inc. Self-adjusting variable drive strength buffer circuit and method for controlling the drive strength of a buffer circuit
JP2601168B2 (ja) * 1993-03-30 1997-04-16 日本電気株式会社 順次回路をリタイミングする方法および再設計する方法
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
DE69413478T2 (de) 1993-07-30 1999-02-11 Sgs Thomson Microelectronics Inverter mit Verzögerungselement mit variabler Impedanz
US5481209A (en) * 1993-09-20 1996-01-02 Lsi Logic Corporation Clock distribution and control in an integrated circuit
JP3112784B2 (ja) * 1993-09-24 2000-11-27 日本電気株式会社 クロック信号分配回路
JPH0793386A (ja) * 1993-09-28 1995-04-07 Fujitsu Ltd Lsi実装設計システム
US5500805A (en) * 1993-10-06 1996-03-19 Nsoft Systems, Inc. Multiple source equalization design utilizing metal interconnects for gate arrays and embedded arrays
US5563801A (en) * 1993-10-06 1996-10-08 Nsoft Systems, Inc. Process independent design for gate array devices
US5510999A (en) * 1993-10-06 1996-04-23 Nsoft Systems, Inc. Multiple source equalization design for gate arrays and embedded arrays
US5455931A (en) * 1993-11-19 1995-10-03 International Business Machines Corporation Programmable clock tuning system and method
GB2292823B (en) * 1994-08-26 1998-12-02 Quickturn Design Systems Inc Method for automatic clock qualifier selection in reprogrammable hardware emulation systems
US5633805A (en) * 1994-09-30 1997-05-27 Intel Corporation Logic synthesis having two-dimensional sizing progression for selecting gates from cell libraries
US5507029A (en) * 1995-01-11 1996-04-09 International Business Machines Corporation Method for minimizing the time skew of electrical signals in very large scale integrated circuits
JP3351651B2 (ja) * 1995-04-07 2002-12-03 富士通株式会社 会話型回路設計装置
US5619420A (en) * 1995-05-04 1997-04-08 Lsi Logic Corporation Semiconductor cell having a variable transistor width
US5724557A (en) * 1995-07-10 1998-03-03 Motorola, Inc. Method for designing a signal distribution network
US5619158A (en) * 1995-08-18 1997-04-08 International Business Machines Corp. Hierarchical clocking system using adaptive feedback
US5740067A (en) * 1995-10-19 1998-04-14 International Business Machines Corporation Method for clock skew cost calculation
US5745735A (en) * 1995-10-26 1998-04-28 International Business Machines Corporation Localized simulated annealing
US5724250A (en) * 1996-02-07 1998-03-03 Unisys Corporation Method and apparatus for performing drive strength adjust optimization in a circuit design
US5742832A (en) * 1996-02-09 1998-04-21 Advanced Micro Devices Computer system with programmable driver output's strengths responsive to control signal matching preassigned address range
US5717229A (en) * 1996-03-26 1998-02-10 Intel Corporation Method and apparatus for routing a clock tree in an integrated circuit package
US5790415A (en) * 1996-04-10 1998-08-04 Pullela; Satyamurthy Complementary network reduction for load modeling
US5787008A (en) * 1996-04-10 1998-07-28 Motorola, Inc. Simulation corrected sensitivity
US5963728A (en) * 1996-08-14 1999-10-05 International Business Machines Corporation Method to partition clock sinks into nets
JP3469006B2 (ja) * 1996-09-30 2003-11-25 株式会社東芝 半導体集積回路及びその設計方法
US5790839A (en) * 1996-12-20 1998-08-04 International Business Machines Corporation System integration of DRAM macros and logic cores in a single chip architecture
US5912820A (en) * 1997-01-22 1999-06-15 Unisys Corporation Method and apparatus for distributing a clock tree within a hierarchical circuit design
US6014038A (en) * 1997-03-21 2000-01-11 Lightspeed Semiconductor Corporation Function block architecture for gate array
US6109201A (en) * 1998-01-21 2000-08-29 Lsi Logic Corporation Resynthesis method for significant delay reduction
US6205572B1 (en) * 1998-02-20 2001-03-20 Lsi Logic Corporation Buffering tree analysis in mapped design
JPH11317457A (ja) * 1998-05-07 1999-11-16 Oki Electric Ind Co Ltd 集積回路とその配置配線設計方法
US6172528B1 (en) 1999-01-20 2001-01-09 Fairchild Semiconductor Corporation Charge sharing circuit for fanout buffer
JP2001125937A (ja) * 1999-10-25 2001-05-11 Fujitsu Ltd 半導体集積回路装置のレイアウト設計システム、半導体集積回路装置のレイアウト設計方法、およびそのシステムにおける各手段をもしくはその方法における各工程をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6425114B1 (en) * 2000-01-31 2002-07-23 Lsi Logic Corporation Systematic skew reduction through buffer resizing
US6573757B1 (en) 2000-09-11 2003-06-03 Cypress Semiconductor Corp. Signal line matching technique for ICS/PCBS
US6621302B2 (en) 2001-03-21 2003-09-16 Bae Systems Information And Electronic Systems Integration, Inc Efficient sequential circuits using critical race control
US6751786B2 (en) * 2002-01-09 2004-06-15 Cadence Design Systems, Inc. Clock tree synthesis for a hierarchically partitioned IC layout
US6952813B1 (en) * 2003-07-30 2005-10-04 Xilinx, Inc. Method and apparatus for selecting programmable interconnects to reduce clock skew
US7299445B2 (en) * 2004-10-29 2007-11-20 Synopsys, Inc. Nonlinear receiver model for gate-level delay calculation
CN111259614B (zh) * 2018-11-15 2022-04-26 北京大学 优化鱼骨型时钟树金属走线的设计方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4263651A (en) * 1979-05-21 1981-04-21 International Business Machines Corporation Method for determining the characteristics of a logic block graph diagram to provide an indication of path delays between the blocks
JPS5924324A (ja) * 1982-07-30 1984-02-08 Nec Corp 集積回路装置
US4694403A (en) * 1983-08-25 1987-09-15 Nec Corporation Equalized capacitance wiring method for LSI circuits
JPS6156435A (ja) * 1984-07-25 1986-03-22 Fujitsu Ltd 半導体集積回路装置に於ける配線長予測方法
JPS61199329A (ja) * 1985-03-01 1986-09-03 Hitachi Ltd 信号伝搬遅延時間調整方式
US4698760A (en) * 1985-06-06 1987-10-06 International Business Machines Method of optimizing signal timing delays and power consumption in LSI circuits
US4769558A (en) * 1986-07-09 1988-09-06 Eta Systems, Inc. Integrated circuit clock bus layout delay system
JPH083773B2 (ja) * 1987-02-23 1996-01-17 株式会社日立製作所 大規模半導体論理回路
US4924430A (en) * 1988-01-28 1990-05-08 Teradyne, Inc. Static timing analysis of semiconductor digital circuits
JPH0736422B2 (ja) * 1988-08-19 1995-04-19 株式会社東芝 クロック供給回路

Also Published As

Publication number Publication date
JPH04225476A (ja) 1992-08-14
EP0451079A2 (en) 1991-10-09
EP0451079A3 (en) 1992-03-25
US5077676A (en) 1991-12-31

Similar Documents

Publication Publication Date Title
JPH0766400B2 (ja) クロック・スキュー低減方法
US5235521A (en) Reducing clock skew in large-scale integrated circuits
US8427213B2 (en) Robust time borrowing pulse latches
US7010763B2 (en) Method of optimizing and analyzing selected portions of a digital integrated circuit
US7587537B1 (en) Serializer-deserializer circuits formed from input-output circuit registers
US6038386A (en) Method for controlling power and slew in a programmable logic device
US6532574B1 (en) Post-manufacture signal delay adjustment to solve noise-induced delay variations
US6769104B2 (en) Method and apparatus for minimizing clock skew in a balanced tree when interfacing to an unbalanced load
US6396307B1 (en) Semiconductor integrated circuit and method for designing the same
JPH08510885A (ja) ダイナミックロジックコアに動的に相互接続するフィールドプログラマブル・ロジックデバイス
US6593792B2 (en) Buffer circuit block and design method of semiconductor integrated circuit by using the same
JPH09107035A (ja) トランジスタ幅が可変の半導体セル
US7254794B1 (en) Timing performance analysis
US6425115B1 (en) Area efficient delay circuits
US6687889B1 (en) Method and apparatus for hierarchical clock tree analysis
JP2013179598A (ja) 減少された挿入遅延を持つプログラマブル遅延回路
CN116401987A (zh) 一种芯片时序优化方法、系统、设备及介质
US7058907B2 (en) Reduction of cross-talk noise in VLSI circuits
JP5051963B2 (ja) プログラマブル・ゲートアレイ部を備えたマスクプログラマブル論理装置
KR101164683B1 (ko) 디지털 회로를 구비한 집적 회로 및 이 회로를 설계하는방법, 컴퓨터 지원 설계 도구, 집적 회로를 설계하는 제품및 신호 스큐 조정 방법
US7509603B2 (en) Semiconductor integrated circuit and design method thereof
US6294929B1 (en) Balanced-delay programmable logic array and method for balancing programmable logic array delays
WO2006003368A2 (en) Improved c-element and logic reduction and completion detection circuits
JP2002076125A (ja) 半導体集積回路のレイアウト設計方法
JPH05102306A (ja) 半導体集積回路の設計方法