JP4599485B2 - ロジックの同期をとるための方法および装置 - Google Patents
ロジックの同期をとるための方法および装置 Download PDFInfo
- Publication number
- JP4599485B2 JP4599485B2 JP2000578908A JP2000578908A JP4599485B2 JP 4599485 B2 JP4599485 B2 JP 4599485B2 JP 2000578908 A JP2000578908 A JP 2000578908A JP 2000578908 A JP2000578908 A JP 2000578908A JP 4599485 B2 JP4599485 B2 JP 4599485B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- signal
- precharge logic
- locally generated
- phase
- 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
Links
- 238000000034 method Methods 0.000 title claims description 77
- 238000011156 evaluation Methods 0.000 claims description 115
- 230000001360 synchronised effect Effects 0.000 claims description 71
- 238000012360 testing method Methods 0.000 claims description 42
- 239000000872 buffer Substances 0.000 claims description 17
- 230000000630 rising effect Effects 0.000 claims description 14
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 abstract 1
- 239000013256 coordination polymer Substances 0.000 description 61
- 238000013461 design Methods 0.000 description 42
- 230000007704 transition Effects 0.000 description 28
- 230000003068 static effect Effects 0.000 description 26
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 20
- 230000008901 benefit Effects 0.000 description 13
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 11
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 11
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 11
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 10
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 10
- 230000014759 maintenance of location Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000001902 propagating effect Effects 0.000 description 7
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 6
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 6
- 230000001934 delay Effects 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000003750 conditioning effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012938 design process Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001808 coupling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/08—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
- H03K19/094—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
- H03K19/096—Synchronous circuits, i.e. using clock signals
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Communication Control (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Tests Of Electronic Circuits (AREA)
Description
本発明は、半導体デバイスに関する。さらに具体的には、本発明は半導体デバイス内における論理回路の同期に関する。
【0001】
【従来の技術】
デジタル論理回路におけるクロッキング
クロックの目的
クロックは、同期デジタル論理回路におけるタイミングおよび同期の目的に用いられる周期的信号である。クロックは、回路によって論理演算が行われる時間を定める。論理演算には、一連の論理ゲートを通って状態が伝搬することが含まれる。
【0002】
同期回路において、論理状態の伝搬は伝搬元クロック・エッジ(Source Clock Edge)によって開始される。論理ゲートのパスを通って伝搬した後に、その結果生ずる論理状態は、伝搬先クロック・エッジ(Destination Clock Edge)によってサンプリングされる。伝搬先クロック・エッジは、伝搬元クロック・エッジを生成したクロック・イベント(clock event)に続くクロック・イベントから生成される。
【0003】
ゲートのパスを通る状態の伝搬には時間がかかるので、伝搬元クロック・エッジの後のある時間にわたって、論理パスは新しい状態(このサイクルについて有効な状態)と古い状態(このサイクルについて無効な)とを含むであろう。一般的に、所定時間(この時間はクロック・サイクルとして定義されることが多い)の終わりにおいては、有効な状態はパス全体またはパスの集合を通って伝搬してしまっており、その回路において無効な状態はもはや何もない。それに続くクロック・エッジは新たに工程を開始する。
【0004】
電子回路において実施される論理演算は、分岐するパスと収束するパスの両方の論理ゲートのパスを通って伝搬する。論理パスが収束するか他のパスと結合される際には、時間的に類似の時点でそうならなければならず、この時点において、多様な収束パスが全て有効なデータを有する。この時点は、最新の到着データの到着時間によって決定される。一般的に、この時点で収束している他のより速いパスがあり、後に到着するデータと首尾よく結合されるまで、有効なデータを保持しなければならない。ほとんどのデジタル回路においては、1つまたは複数のクロックが、この同期機能を提供する。そのため、クロックは、調整または調節機能を遂行するものと考えることができ、より遅いパスが有効になるまで、より速いパスを遅くするか保持する。
【0005】
一般的に言って、論理回路はできるだけ速やかに働くことが求められている。したがって、クロックは、回路の動作速度にはできるだけ損失を課さずに、それらの調整機能を遂行することが非常に望ましい。
【0006】
クロック・スキュー(Clock Skew)
クロック・スキューは、クロックの調整機能と干渉し、かつ回路の最大動作速度を低下させ得る、タイミング誤差の成分である。クロック・スキューの定義は、「同じクロック・イベントから派生するが、物理的に別個のクロック・ノードと関連付けられたクロック・エッジの間における、到着時間の差」である。
【0007】
たとえば、マスタ・クロックは一般的に、何らかの手段によって多くの伝搬先に分配される。分配手段は、配線のネットワークのように単純なものであってもよく、多数のレベルの能動バッファを含んでもよい。図1は、いくつかの発生器(generator)が続く、単一のクロック源(通常は、位相ロック・ループ、PLL、またはデジタル・ディレイ・ループ、DLL)を備えたクロック・システムを示している。発生器は単一のクロック源を多数のクロックに変形する。発生器内で生ずる変形は、伝搬元クロックの直接的な遅延、伝搬元クロックの反転、あるいはクロック波形の形状の変更(たとえば、デューティ・サイクルの変更、スルー・レートの変更など)があり得る。あるいは、前述の変形のあらゆる組み合わせでもあり得る。いずれの場合にも、この分配パスを通るクロック・エッジの伝搬時間は、0ではないある一定の時間を必要とする。各伝搬先への伝搬時間は、設計の必要に応じて、設計によってより小さくまたはより大きく調節できる。しかし、実際には、完全な正確性をもって実際のクロック・スキューを予測するために、クロック分配回路を分析または模擬実験することは費用がかかる(設計労力の点で)。
【0008】
実際に、完全な設計知識を有していても、回路全体にわたる通常の製造上の変動のために、完全な正確性をもってスキューを制御することは不可能である。たとえば、特定のクロック分配線は、接続厚または幅の局所化された変化のために、ある程度、回路の部分において抵抗性が強くなる場合がある。これは、特定のダイ上の他のクロック伝搬先に対して、この線の末端では、クロック伝搬先への常により長い遅延につながり得る。
【0009】
クロック・スキューは予測可能な成分と予測不可能な成分の両方を有することが分かる。ある程度困難ではあるが、設計者は特定の限界内でクロック・スキューを調節または制御することができる。実際には、この制御は、設計時間の制限、並びに、通常の製造上の変動および環境上の変動によっても限定される。クロック・スキューを完全に制御する際の困難性の結果および、クロック・スキューの有害な影響のために、設計は、多様なクロック伝搬先の間におけるクロック・スキューの何らかの不安定性に対して耐性があることが重要である。
【0010】
クロック・ジッタ(Clock Jitter)
クロック・ジッタは、クロック・スキューと同様に、タイミング誤差の成分であって、この成分はクロックの調整機能および回路の動作速度に悪影響を与え得る。クロック・ジッタは、「単一のクロック・ノード上でのクロック・イベントの到着時間の誤差または変動」と定義される。この誤差または変動は、理想的なまたは意図された到着時間に対するものである(通常は直前のクロック・イベントに対して特定される)。すなわち、クロック・スキューは、物理的に分離した場所での同じイベントの到着時間を示し、一方、クロック・ジッタは、同じ物理的な場所での異なったイベントの到着時間を示す。クロック・ジッタは、各クロック・ノードで幾分か異なる場合がある。
【0011】
クロック・ジッタがクロック・ネットワークに意図的に導入されることは希である(一つの例外は、クロックの意図的な周波数変調である)。ジッタはいくつかの要因によって引き起こされ得る。ジッタは、回路の入力クロック上に存在する場合がある。これは一般的に、分散ネットワーク(distribution network)を通して渡される。また、PLLなどのクロック発生論理回路の部分によって導入される場合もある。たとえば、図4はクロック発生論理回路によるジッタの導入を図示しており、Z(クロック発生器)の転送機能に連結しているフィードバック系の制御システム(典型的なPLL)を示している。PLLは、エッジ配置に影響する、安定した状態の位相誤差を含む。多様なポイントでシステムに送り込まれるノイズは、システム内で一時的な反応を引き起こすであろう。ノイズは、基準信号θ(t)、位相比較器、ループ・フィルタ、電圧制御発振器(VCO)、クロック発生器(Z)またはこれらの構成要素を接続している配線の何れかで発生し得る。これらの構成要素に関しては、ノイズの主たる発生源は電圧源(電源および接地)であり、配線については、連結ノイズである。
【0012】
クロック・ジッタは、電源ノイズ、および電気誘導性の信号の結合(inductive signal coupling)や容量性の信号の結合(capacitive signal coupling)によっても引き起こされ得る。ジッタの影響というのは、回路の特定部分によって認識されるクロック周期を短くまたは長くすることである。たとえば、特定のクロック・エッジが、前のエッジによって予測された到着時間から遅延した場合には、終了クロック周期は長くされるが、それに続くクロック周期は短くされる。
【0013】
様々なクロック伝搬先の間で変化するクロック・ジッタは、クロック・スキューも増大させ得る。たとえば、局所的電源ノイズは、クロック・エッジを1つの場所に早く到着させる場合があるが、同じクロック・エッジが別の場所では時間通りに到着する場合がある。
【0014】
クロック・ジッタは短期であって、クロック周期のサイクル間変動を生じさせる場合もあれば、長期であって、同様の方法で一連の連続的なサイクルに影響する場合もある。ジッタは、クロックのデューティ・サイクルをその意図した値から変化させる場合もある。通常、短期と長期の成分の両方がクロック内に存在する。
【0015】
セットアップ・ハザード(Setup Hazard)および保持ハザード(Hold Hazard)
セットアップ・ハザードおよび保持時間ハザードは、クロック・スキューやジッタがない状態でも存在し得るが、スキュー(特に、予測不可能なスキュー)やジッタは一般的に、これらのハザードの可能性や重大さを高める。クロック・エッジが、クロックに比べて非常に遅く到着しているデータをサンプリングしているときに、セットアップ・ハザードが発生する。意図した到着時間に比べてデータが遅すぎるか、サンプリング・クロックが早すぎるのであれば、無効なデータがサンプリングされて、回路は誤って動作する。これらのハザードは、最長の伝搬遅延で設計されたパスと関連付けられているので、スロー・パス・ハザード(slow path hazard)またはクリティカル・パス・ハザード(critical path hazard)とも呼ばれる。
【0016】
論理パスは伝搬元クロックで開始され、伝搬先クロックでサンプリングされることにより終了するので、セットアップ・ハザードは、伝搬元クロックと伝搬先クロックとの間の遅延ならびに論理パス遅延によって影響される。セットアップ・ハザードは、クロック周波数を遅くすることにより、より重大でなくなるか、解消されることさえある。したがって、セットアップ・ハザードはデジタル回路の高周波数パフォーマンスを制限するが、より低い周波数での正しい動作は妨げない。
【0017】
対照的に、保持ハザードは、有効であったが、サンプリング周期が完了する前に再び無効になるデータを、誤ってサンプリングするときに発生する。保持時間の問題は、ファスト・パス問題(fast path problems)とも呼ばれる。
【0018】
前述のように、伝搬先クロック・エッジは通常、伝搬元クロック・エッジを生成したクロック・イベントに続くクロック・イベントから生成される。保持時間の変動は、伝搬元クロックを生成した同じクロック・エッジから実際に派生する伝搬先クロック・エッジによって、データがサンプリングされたときに発生する。これは、伝搬元から伝搬先にデータが速く伝搬されすぎたとき、または、同じルート・クロック・イベントから生成された伝搬元エッジに比べて、伝搬先クロック・エッジが遅く発生しすぎたときに発生し得る。保持時間ハザードは、同じイベントから派生したクロック・エッジの間でのタイミングに関連しているので、保持時間ハザードはクロック周波数を変えることにより軽減されることがないを特筆することが重要である。保持時間の違反は、回路があらゆる周波数で動作することを妨げる。この理由で、保持時間の違反は、セットアップ時間の問題よりも重大である。保持時間の問題は、付加的な遅延をファスト・データ・パスに挿入すること、伝搬元クロックを遅延させること、伝搬先クロックの到着時間を早めること、またはこれらの方法の組み合わせによって修正できる。
【0019】
スタティック論理回路における同期のコスト
論理回路同期と関連付けられたサイクルの部分は、同期オーバーヘッドと呼ばれ、計算作業を行わないで費やされる時間を表す。明らかに、高パフォーマンス設計については、所与の時間で達成できる作業量を最大化することが望まれるであろう。同期オーバーヘッドに時間を消費すると、設計の計算効率を削減することによりこの目標から逸れてしまう。
【0020】
図2は、2つの論理パスを含む単純な論理パスを示している。一方のパスはフリップ・フロップ1で始まり、フリップ・フロップ2で終わる。他方のパスはフリップ・フロップ2で始まり、フリップ・フロップ1に戻る。クロック内に予測不可能なスキューやジッタがないのであれば、これら2つのパスを通る往復遅延によって決定されるサイクル時間は、次の式で求められる。
【0021】
T≡(O1+D+S2+O2+D’+S1)/2 ・・・ (式1)
ここで、
Oi=フリップ・フロップiの出力遅延
O1およびO2=それぞれ、フリップ・フロップ1および2の出力遅延
S1およびS2=それぞれ、フリップ・フロップ1および2のセットアップ時間
Si=フリップ・フロップiのセットアップ時間、および
D、D’は論理パスを通る遅延である。
【0022】
図3は、50%デューティ・サイクルの典型的なクロック信号を示している。クロック周期Tは、クロック信号の立ち上がりの中間点から、クロック信号の次の立ち上がりの中間点まで計測される。スキューは、クロックの立ち上がりエッジおよび下降エッジの周囲に斜線部分で表されている。第1の立ち上がりエッジは基準点として取られているので、スキューを有していないことに留意されたい。この図はこの状況を表すものであるが、実際には、ここではクロック・ネットワークにおける特有の点の間におけるスキューについて述べていることを特筆することも重要である。図2および図3に関連して、クロック(図3)の第1の立ち上がりエッジは、フリップ・フロップ1(図2)のクロック入力で計測されるが、クロックの次の立ち上がりエッジはフリップ・フロップ2のクロック入力で計測される。
【0023】
予測可能なクロック・スキューは、対処するのがかなり容易であり、場合によっては、これを利用することさえできる。たとえば、フリップ・フロップ2が、フリップ・フロップ1よりも若干遅いバージョンのクロックを採用していることが分かっていれば、設計者は実際に、データを若干後に到着させることができる。この場合に、フリップ・フロップ1はフリップ・フロップ2に比べて早く立ち上がりエッジに達するので、次のサイクルでは、論理ゲートを通過する時間は少ない。フリップ・フロップ1はそれ自体に対してスキューを有していないので、データは2サイクルでループ・パス全体を通過しなければならない。全てのスキューが予測可能であるとすれば、等式(1)は最小サイクル時間を示すことになり、この場合に2つのパス遅延は平均される。
【0024】
予測不可能なクロック・スキューは、異なった問題をもたらす。フリップ・フロップ1とフリップ・フロップ2との間でスキューがどのようであるかを設計者が知らなければ、設計者は最悪の事態を仮定しなければならない。すなわち、第1のサイクルでは、フリップ・フロップ2がフリップ・フロップ1に比べて早いという仮定であり、第2のサイクルでは、その逆の仮定である。このようにして、どのケースが真であっても、データは時間通りに到着する。残念ながら、これは、スキューのこの部分について、設計者は上記のように遅れたクロックを利用できないことを意味する。等式(2)は、この2サイクル・パスを次のように表している。
【0025】
T≡(O1+D+S2+O2+D’+S1+2Ku)/2 ・・・ (式2)
ここで、Ku=クロック・スキューの不明確な部分である。
【0026】
クロック・ジッタの効果もこの遅延等式に付加されるのであれば、次のようになる。
【0027】
T≡(O1+D+S2+O2+D’+S1+2Ku+2J)/2 ・・・ (式3)
ここで、J=クロック・ジッタである。
【0028】
予測不可能なクロック・スキューの原因は、クロックの周波数とは無関係である。これは、フリップ・フロップ遅延(O1、S1)についても当てはまり、クロック・ジッタについても概して当てはまる。このことは、所与の技術でますます高い周波数用に設計する際、同期オーバーヘッド専用のクロックの割合が上昇するため、高周波数設計に関して大きな問題を提起する。ある時点では、このオーバーヘッドが際だったものになり、より高い周波数の設計の利益は、論理回路の計算効率の低下によって凌駕されてしまう。明らかに、非常に高い周波数の設計については、設計者は同期オーバーヘッドを最小にする方法を検討する必要がある。
【0029】
同期オーバーヘッドを最小にする1つの設計方法には、フリップ・フロップを形成する2つのラッチを分離して、2つのラッチの間に論理回路を設けることがある。そして、設計者は、最も遅い論理パスの評価エッジ(クロック信号の)がラッチの入力に到着したときに、ラッチがトランスペアレントであるように、論理回路のタイミング調節を行う。ここで、クロック・スキューは、ほぼ時間通りに動作するようにクロック・エッジがラッチを制御することにつながるので、最も遅いパスは影響を受けない(クロック・スキューが大きすぎないと仮定すると)。これは耐スキュー設計である。この種の設計におけるクロック・スキューは、理想的なクロック・エッジ時間と、最も遅いパスの評価エッジがラッチの入力に到着する時間との間の時間ほどに大きくなり得る。各ラッチについて正のクロック・パルスの中間(クロックがHighの時間)に評価エッジが到着するように、設計者がそれのタイミング調節を行うのであれば、その設計はスキューの1/4サイクルのフルに耐えることができる。このスキームの別の利点は、損失なしに、評価エッジをこの時点から僅かに外すことができることである(スキューは1/4サイクルよりも小さいと仮定して)。したがって、耐スキュー設計はサイクル時間から、スキュー損失と、ラッチを通る出力およびセットアップの遅延を除去する。しかし、この設計は、ラッチを通る伝搬遅延を付加し、これは、サイクル時間の等式を次のように変える。
【0030】
T≡(D1+D+D2+D’+2J)/2 ・・・ (式4)
ここで、D1およびD2=それぞれ、ラッチ1および2を通る遅延
DおよびD’=論理パスを通る遅延
J=クロック・ジッタ
【0031】
上記の設計形式は、クロック・サイクル時間を短縮するという、長期のクロック・ジッタの影響を解消しない。ラッチ伝搬時間の遅延損失は存在するが、この損失は一般的にフリップ・フロップで生じた損失よりも一般的に少ない。
【0032】
クロック・プリチャージ論理回路における同期
クロック同期式プリチャージ論理回路(CP論理回路/crocked precharge logic)は、スタティックCMOS論理回路を超える速度の利点を有することが多い設計形式であり、同期損失を克服する際に、利点をさらに提供することができる。スタティック・ゲートとは異なり、CPゲートは固有の同期特性を有する。CPゲートは、プリチャージおよび評価という2つの主たる動作フェーズを有している。これは、評価フェーズの間に1回だけ切替ができるので、プリチャージフェーズの開始まで、その値を保持するものと考えることができる。さらに重要なのは、CPゲートは、その評価フェーズの開始まで切り替えできないことである(入力が変わるときには常に切り替わり得るスタティックCMOSゲートとは異なる)。
【0033】
CPゲートは、パスの全てのゲートが評価してしまうまで、第1のゲートが順次評価し、次のゲートに評価させ、それを繰り返すような方法で接続されてクロッキングされる。これらのゲートへのクロック(これをクロックPH1と呼ぶ)がそのプリチャージ状態に切り換わると、これらのゲートはプリチャージしてその状態を失う。したがって、ゲートをプリチャージする前に計算の結果を記憶することが必要である。これは、プリチャージが始まる前に、評価期間の終わりに、最終ゲートの出力値をストリングでラッチすることにより(すなわち、CPゲートのPH1クロックに類似のクロックで)、一般的に行われる。ここで、この構造は、ラッチ系の設計形式におけるスタティック論理ゲートの配置に類似している。このラッチまたはラッチのセットは、一般的に、第1のセットのCPゲートのクロック(これをクロックPH2と呼ぶ)の逆であるクロックによってクロッキングされる、別の一連のCPゲートに入力を提供する。このようにして、第1のセットが評価しており、2つのセットのCPゲートの間のラッチがトランスペアレントである間に、第2のセットのCPゲートがプリチャージされる。第1のセットのゲートがプリチャージされると(PH1がLowのとき)、ラッチはその状態を保持し、第2のセットのゲートはラッチ出力を検知して、評価を始める。第1のセットのCPゲートと同様に、第2のセットのCPゲートから得られる結果は、それらの評価フェーズの間に(PH2がHighのときに)ラッチされなければならない。そして、第2のタイプのラッチ(PH2ラッチ)の出力は、より多くの第1のタイプのCPゲート(PH1 CPゲート)を駆動できる。この論理回路および同期形式は、クロック・エッジのスキューおよびジッタの影響を受けやすいので、スキュー抵抗力のないCP論理回路として知られている。図5は、このタイプの論理回路を示している。
【0034】
スキュー抵抗力のないCP論理回路における同期のコスト
スキュー抵抗力のないCP論理回路は、前述のクロック損失を被る。CPゲートは、クロックがHighの時にのみ評価できるが、フェーズの終わりに結果をラッチ内に記憶できるように、クロックがHighからLowに切り替わるときまでに、評価を終了しなければならない。この形式は、サンプリングされるのに間に合うように計算結果をラッチにセットアップしなければならないので、クロックの両エッジの予測不可能なスキューによって影響される。データが遅いか、ラッチ・クロックが早い場合には、誤った結果がサンプリングされる。したがって、図5を再び参照すると、次の等式がサイクル時間を示す。
【0035】
T≡D0+D+D1+D’+2Ku+2J ・・・ (式5)
ここで、Di=ラッチIを通る遅延
Ku=クロック・スキューの不明確な部分
J=クロック・ジッタ
【0036】
この同期スキームは、フリップ・フロップ系のスタティック論理回路設計において遭遇した問題と非常に似通った問題を被る。
【0037】
論理回路の同期は、システム内の論理信号の全てのタイミングを制御する工程である。本発明は、論理回路デバイスについて最小動作サイクル時間を低下させるために、できるだけスキューおよびジッタに耐える同期機構を説明する方法および装置である。しかし、同期機構は論理回路群のコンテキストにおいて最もよく理解され、本発明を説明するのに用いる論理回路群は、「Method and Apparatus for a N-Nary logic circuit using 1 of 4 Encoding」という名称の、現在、米国特許第6066965号となっている、同時係属出願である1998年5月2日出願の米国特許出願第09/019355号において説明されている、N進論理回路群である。簡潔に言えば、この群の論理ゲートは、クロック入力信号がLowのときにプリチャージして、クロック入力信号がHighのときに評価する、非反転クロック・プレチャーチ回路として考えることができる。図10Aは、N進論理回路群(N-nary logic family)に典型的である1−4論理回路(1 of 4 logic circuit)を示している。
【0038】
効率的なプロセッサ設計は論理ゲートをその最高速度で動作させ、ここで、ゲートの速度は、その論理伝搬時間とそのノード再生時間との合計である。スタティック論理ゲートは、ゲートが新たな入力値に遭遇したときに「再生」する。一方、ダイナミック・ゲートは、次のセットの入力に備えるために、明示的なプリチャージ操作を必要とする。論理ゲートは、出力が評価レベルにもプリチャージレベルにも遷移していない時間がないときに、そのデューティ・サイクル限界で動作している。図9Aおよび9Bはこの概念を示しており、ここで、teは評価時間であり、tpはプリチャージ時間であり、tsoは安定した出力を表している。
【0039】
所与のダイナミック・ゲートは、重要な1つまたは複数の入力および1つの出力を有する。評価フェーズにあるときには、ダイナミック・ゲートの出力は入力に反応する。プリチャージフェーズにあるときには、ダイナミック・ゲートの出力は再生されたレベルに戻る。図9Aおよび9Bは、評価フェーズごとに遷移するゲート(出力)を示していることに留意されたい。これは、ゲートが「真」と評価したときにのみ遷移する、従来のダイナミック・ゲートには当てはまらない。しかし、N進論理回路は複数の配線を含み、各評価でたった1本の配線のみが遷移する。場合によっては、評価する配線がない場合もあり、そのため出力は遷移しない場合もある。したがって、N進論理回路(N-nary logic)における信号の点から見ると、図9Aおよび9BはN進の出力信号を表しており、これは、図10Bに示したような出力配線の論理和の均等物である。
【0040】
図9Bは、ダイナミック・ゲートの所望の動作モードを示している。出力信号が一旦読み取られると(その遷移を完了したときに)、ゲートは再生し始めるので、出力信号が安定している時間はほとんどないか全くない。そして、その再生を一旦終了すると、ゲートは再び遷移を始める。これらの条件の下で、論理ゲートは、そのゲートが分配できる限りできるだけ多くの論理演算を、所与の時間に分配することが分かっている。
【0041】
しかし、図9Aは、先行技術のシステムにおいて典型的であるような、ダイナミック・ゲートのより現実的な応用を示している。図から分かるように、論理ゲートの評価の後と論理ゲートのプリチャージフェーズの後との両方で、かなりの長さの追加時間が必要である。評価とプリチャージの周期に焦点を当てることにより、トレードオフを行う多くの技術が先行技術にはある。残念ながら、ゲートの効率に直接的に焦点を当てるものは先行技術にはない。ゲート効率を改善することに焦点を当てることにより、本発明は、最大パフォーマンスを有するプロセッサを製作するための指針のより優れたセットを生成し、さらに、技術の本質から直接的に派生する代替的なクロッキング方法を開発する。
【0042】
いくつかの論理ゲートは他の論理ゲートよりも速い。通常、最も遅いゲートが設計者の懸念であり、一方、設計者はより速いゲートを無視できることが多い。ダイナミック・ゲートに要求されるクロッキングは、ゲートがその所望の機能を遂行できるクロック・サイクル内の位置を制限するので、ゲート速度は、ダイナミック論理回路にとってより大きな問題である。一方、スタティック論理回路は、常にその機能を遂行する。入力が到着すると常に、スタティック・ゲートはそれに応じて切り替わる。そうであっても、効率的なクロッキング方法は、ダイナミック論理ゲートが、できるだけ広い時間にわたってその機能を遂行することを許容すべきである。
【0043】
Harris等に付与された米国特許第5,517,136号(名称「Opportunistic Time-Borrowing Domino Logic」)は、効率的なクロッキング方法の試みである。この特許の特徴は、特定のクロック・ドメイン間で、ある程度の時間借りを提供することである。Harris特許の目的は、クロック・サイクルの各半分の終わりに、出力を記憶するラッチの必要性を解消することであり、これは本質的に、ある程度のタイム・スチーリング、すなわちこの特許が呼ぶところの「便宜的時間借り」(opportunistic time borrowing)を許容する。しかし、Harris特許におけるクロックのタイミング調整または同期の非対称性は、時間借りが実際に発生し得るクロック・サイクル内の場所を限定する。実際に、借りはあらゆるパス内でいくつかの時点では発生し得ないので、クロッキング方法のパフォーマンスは、クロックの不安定性によって影響されるに違いない。
【0044】
Harrisは、特許に対する追跡文書、Harris, D., and Horowitz, M., Skew-Tolerant Domino Circuit, IEEE Journal of Solid-State Circuits, Vol. 32, No. 11, pp. 1702-1711(1997年11月)において、上記のクロッキング・スキームを、多相クロック・システムのためのより一般化されたアプローチに拡張している。Harris特許を、多相クロック・システムのためのより一般化されたアプローチに拡張することに加えて、Harris文書は、クロッキング・スキーム内でのクロック・スキューに関する許容範囲を含めることを試みている。残念ながら、この文書は、予測可能なクロック誤差と予測可能でないクロック誤差とを差別化できなかった。また、この文書は、スキューに加えてクロック・ジッタがクロッキング・スキームに与える影響を理解しておらず、実際的な設計を導くために、ゲート効率の計測法を開発しておらず、この開示文書において開示されているものに類似のクロッキング方法に反対の主張を行っている。
【0045】
別の先行技術の特許である、Yetter等に付与された米国特許第5,434,520号(名称「Clocking Systems and Methods for Pipelined Self-Timed Dynamic Logic Circuits」)は、評価およびプリチャージ周期を改善することに焦点を当てることにより、システムのクロッキングを最適化する別の試みである。この特許は、上記Harris特許およびHarris文書のように、ぎこちなく非効率的なクロッキング・システムを実施しており、ここでは、従来のダイナミック論理回路群における非効率性の部分が改善されるだけである。
【0046】
引き伸ばしクロックを用いたオーバーラッピング・クロック(Overlapping Clocks Using Clocks)
図6は、論理回路の同期を達成するための1つの技術を示しており、これはクロック・サイクルを「引き伸ばす」ことによるものである。前述のように、Harris特許、Yetter特許およびHarris文書を含む先行技術においては、引き伸ばしクロックの多数の例がある。ラッチは、両方のクロックがHighの期間、したがって、ラッチがトランスペアレントである期間があり、その一方の側のCPゲートは評価モードであることが分かる。このことは、オーバーラッピング・ウィンドウ内で、評価エッジはラッチを通過して、直ちに他方の側のゲートを通って継続できることを意味する。両方のクロックが明らかにHigh(すなわち、図面に示された斜線で表したスキュー範囲にはない)の時にラッチが設けられるものと仮定すると、トランスペアレントなラッチ設計様式のように、スキューは問題ではない。等式6は、このように引き伸ばしたクロックを使用する場合の、サイクル時間に対する関係を示している。
【0047】
T≡(D0+D+D1+D’+J) ・・・ (式6)
ここで、Di=ラッチIを通る遅延
J=クロック・ジッタ
【0048】
引き伸ばしクロックで設計者が得ることができる別の利点は、ラッチ遅延にある。ラッチがパスにある理由は、1つの位相から次の位相への遷移中の論理回路の位相の結果を保持することであった。オーバーラッピング・クロックを用いると、1つの位相にあるゲートから次の位相にあるゲートまで、それらの両方が評価モードにある時間中に、ロジック・フィーディング(logic feeding)を有することが可能である。これは、ラッチが過剰であることを意味する。唯一の要件は、早いほうのゲートが、その値が遅い方のゲートを通って伝搬してしまう前にプリチャージしないことである。図7は、このスキームで実施されたパスを示しており、等式7はクロックのサイクル時間を次のように示している。
【0049】
T≡(D+D’+J) ・・・ (式7)
ここで、J=クロック・ジッタ
【0050】
引き伸ばしクロック(Stretched Clocks)の問題
しかし、この同期スキームにはいくつかの問題がある。クロック上の50%よりも大きいデューティ・サイクルは、この開示文書において説明していない同じ物理的な障害の多くを提示する。また、保持時間の問題(hold time problem)が悪化する。引き伸ばしクロックを備えたシステムは、スキューやジッタを考慮せずにも、ファスト・パス(fast path)に保持時間の問題を生ぜしめるであろう。保持時間の問題は、ファスト・パスを調節するために、追加の設計作業を要求する。典型的な設計においては、慎重な調節を必要とする数個のクリティカル・パスがある(潜在的なセットアップ時間の問題)が、潜在的には多数のファスト・パスがある。クロックを調節する際に行う作業は、これらのパスを調節するときに論理チップのパフォーマンスが改善するという利点を得る。また、ここで設計者が調節しなければならないファスト・パス(潜在的保持時間の問題)もある。これらのパスを調節することは、一般的に、遅延を挿入するか(範囲の増大)、またはクロックで「細工すること」(誤り易く、多大な分析を必要とする)を意味する。機能的なチップ(あらゆる周波数で)を有するために、保持時間の問題を解決することが必要であるが、そうすることにパフォーマンス上の利益はない。
【0051】
集積回路上のパイプライン内で論理回路を同期するには、様々な方法がある。たとえば、図16はHarris特許およびYetter特許で用いられている、典型的な4クロック・システムを示している。このタイプのクロッキング・システムには通常、マスタ・クロックCLK1およびその逆クロックCLK3が関係する。他の2つのクロックであるCLK2およびCLK4は、マスタ・クロックまたはその逆クロックと一致する場合がある、引き伸ばしクロック・サイクルを備えたクロックである。たとえば、CLK2のリーディング・エッジは、CLK1のリーディング・エッジと一致し、CLK4のリーディング・エッジは、CLK3のリーディング・エッジと一致する。クロック信号の各完全なサイクルは2つの部分である、偶数半サイクルtxおよび奇数半サイクルtyも含む。クロックk信号の各半サイクルは、プリチャージ期間tpおよび評価期間teを含む。このタイプのクロッキング・システムの共通の特徴は、その評価ウィンドウ220であり、これはいくつかのオーバラップしている位相を有するが、引き伸ばしクロック・サイクルを備えたクロックにのみ起因している。
【0052】
図13は、Yetter特許に記載された典型的なダイナミック論理回路を示しており、この特許ではこれをマウストラップ論理回路(“mousetrap” logic circuit)と呼んでいる。この回路は、出力信号32を生成するために、2つの入力信号26および28についてある種の論理評価行う、論理回路24を含む。この論理回路には出力緩衝デバイスが連結されており、これは、ここではインバータ30である。また、ロジック・ツリー回路には、その論理回路のダイナミック・ノードをリチャージする期間を決定するために、クロック信号CKを用いるプリチャージデバイス22が連結されている。このタイプのダイナミック論理回路の1つの欠点は、このタイプの回路をパイプライン化に用いることの困難さである。別の欠点は、情報を失わずにクロックを停止させることができないことである。本発明のクロッキング同期は、オーバラップしている位相を有する多数のクロック・ドメインを用いることにより、これらの欠点を克服する。
【0053】
図14Aおよび図14Bは、Harris特許(米国特許第5,517,136号)における出力緩衝デバイスを示している。図14Aは、Harris特許の図1を示しており、図14BはHarris特許の図2を示している。図14Aの回路は、本発明の半信号保持器に類似の出力バッファを用いている。インバータの出力がLowのときには、このトランジスタは入力をHighに保持し、ゲートを安定させる。しかし、出力がLowのときには、ゲートへの入力が除去されると、入力ノードは浮動し得る。図14Bの回路は、特に、入力が生じないときには出力をLowに保持する目的で、Nチャネルのトランジスタを含む、本発明の完全な信号保持器に類似の出力バッファを用いている。
【0054】
図14Aは論理回路41から構成されており、これはさらに入力信号AおよびBからなる。この入力信号AはNFET44に接続し、入力信号BはNFET42に接続する。NFET40は、この回路用の評価デバイスであり、PFET46はプリチャージデバイスである。評価デバイスおよびプリチャージデバイスの両方が、クロック信号CLKに接続する。この回路は、インバータ50とPFET48とからなる出力緩衝デバイスも含んでいる。論理回路41の出力はインバータ54に接続しており、Harrisではこれを高スキュー・デバイスと呼んでいる。出力56は、たとえば、パイプラインにおける次の回路であり得る、次の論理回路に接続している。Harrisは、出力緩衝デバイスを備えたこのタイプの論理回路をD1タイプ・ゲートと呼んでいる。
【0055】
図14Bは論理回路61から構成されており、これはさらに入力信号AおよびBからなる。この入力信号AはNFET64に接続し、入力信号BはNFET62に接続する。NFET60は、この回路用の評価デバイスであり、PFET66はプリチャージデバイスである。評価デバイスおよびプリチャージデバイスの両方が、クロック信号CLKに接続する。この回路は、インバータ68とインバータ70とからなる出力緩衝デバイスも含んでいる。論理回路61の出力はインバータ72に接続しており、Harrisではこれを高スキュー・デバイスと呼んでいる。出力76は、たとえば、パイプラインにおける次の回路であり得る、次の論理回路に接続している。Harrisは、出力緩衝デバイスを備えたこのタイプの論理回路をD1Kタイプ・ゲートと呼んでいる。
【0056】
【発明が解決しようとする課題】
最適なクロッキングの実装は、単純なゲートと複雑なゲートとの間や、小さい出力負荷を有するゲートと大きい出力負荷を有するゲートとの間のゲート速度の差および、製造の変動に起因する速度の差に対処するために、1つのダイナミック・ゲートから次のダイナミック・ゲートに十分な時間借りを可能にし、全てのパスの全てのポイントでそのようにする。
本発明は先行技術の上記問題を克服すべく、極めてフレキシブルなロジック同期方法および装置であって、オーバラップする位相を備えた多相クロックを用いる方法および装置を提供する。
【0057】
【課題を解決するための手段】
本発明は、集積回路(IC)でのロジックを同期させる方法および装置である。本発明は複数のクロック信号を含んでおり、該複数のクロック信号は、それぞれ、約50%のデューティ・サイクルおよびオーバラップしている位相(overlapping phase)を有している。これらの複数のクロックの位相は、個々のクロック信号の位相が、次のクロック信号の位相とのオーバーラップ量にほぼ等しい分だけ、前のクロック信号の位相とオーバーラップするようになっている。さらに、本発明は、複数のクロック同期式プリチャージ論理ゲート(CP論理ゲート/clocked precharge logic gate)を含んでいる。かかるCP論理ゲートは直列に連結されており、ラッチ、バッファまたはレジスタを介在させる必要はない。CP論理ゲートは、ロジック評価回路(logic evaluation circuitry)、評価デバイス(evaluate device)および1または複数の信号保持器(signal keeper device)を含んでいる。個々のCP論理ゲートは、その評価デバイスを介して、個々のクロック信号につながっている。個々のCP論理ゲートを通るデータ・フローに関しては、論理ゲートは、そのデータ入力(data input)を、直列配列のより早い方のCP論理ゲート(前のCP論理ゲート/earlier CP logic gate)から受け取るとともに、当該直列配列の次の論理ゲート(next CP logic gate)に渡す。ここで、前述した「前のCP論理ゲート」は前の位相のクロック信号につながっており、「次のCP論理ゲート」は次の位相のクロック信号につながっている。さらに、本発明は、3個、4個、5個および6個のクロック信号を有する実施形態も含む。さらに、本発明においては、論理ゲートは、フィードフォワード・ループ(feed forward loop)またはフィードバック・ループ(feed back loop)内の別の論理回路であって、次の位相のクロック信号を用いる論理回路だけに伝達できるようになっている。
【0058】
また、本発明は、集積回路(IC)でのロジックを同期させるためのクロック信号を生成する方法および装置である。そして、本発明は、マスタ・グローバル・クロック(master global clock)を含んでいる。
このマスタ・グローバル・クロックは、関連するクロック・ドメイン・エリアにわたって、低スキューな方法(low-skew manner)で分散される。また、当該マスタ・グローバル・クロックの立ち上がりエッジまたは下降エッジを緩衝(buffering)し遅延(delaying)させることにより、複数のクロックがローカルに生成されようになっている。そして、本発明においては、これらのローカルに生成された複数のクロックは、上記マスタ・グローバル・クロックに関連付けされるようになっている。
マスタ・グローバル・クロックを遅延させたものをローカルに調節することにより、前記複数のローカル生成クロックは調整され、その結果、ロジック設計におけるスキューとジッタのトレランスが実現される。
さらに、本発明は、3個、4個、5個および6個のローカルに生成されたクロックを有する実施形態を含む。
【0059】
また、本発明は、論理ゲートのクロックを停止または開始するときに、当該論理ゲートのロジック状態を試験できるようにする方法および装置である。本発明は、オーバーラップする位相を含む複数のクロック信号と、直列に連結された複数のCP論理ゲートとを含んでいる。
前記複数のCP論理ゲートのそれぞれは、個々のクロック信号に個別につながっている。さらに、本発明は、1または複数の信号保持器(signal keeper device)を含んでいる。この信号保持器は、ロジック状態のクリティカル・パスにおける所定の個別CP論理ゲートに接続されている。前記信号保持器は、前記複数のCP論理ゲートのそれぞれについての個別クロック信号を停止または開始するときに、当該複数のCP論理ゲートのロジック状態を試験できるようにしている。本発明は、IDDQ・テスティング(IDDQ testing)、スキャン・テスティング(scan testing)およびハードウエア・エミュレーション・テスティング(hardware emulation testing)を含む様々な試験技術に適している。
【0060】
【発明の実施の形態】
本発明は、集積回路(IC)において論理回路を同期する方法および装置に関する。本発明の他の実施形態は、3相クロック、4相クロック、5相クロックおよび6相以上のクロックを含む。この開示は、本発明の完全な理解を提供するために、特定の構造、回路および論理機能を含む非常に多くの特定の詳細を説明している。当業者であれば、これらの特定の詳細な説明がなくても本発明を実施できることと理解するであろう。なお、この開示は、本発明が不明確とならないように、トランジスタなどの周知の構造については詳細に説明しない。
【0061】
波クロック耐スキューCP論理回路(Wave-clocked Skew Tolerant CP Logic)
ハイパフォーマンス・システムの設計者は、引き伸ばしクロック・サイクル(stretched clock cycles)を有する多相クロック(multi-phase clocks)およびオーバーラップしたクロック(overlapped clocks)の利点を維持することを望むが、欠点については排除することを望む。利点は主として、隣接する位相のゲートがともに、ある期間(位相遷移時間(phase transition time)とよばれている)にわたって、評価モード(evaluation mode)にあるという事実によるものである。最大の欠点は、全てのゲートが同時に評価モードになるという事実に関連している。
【0062】
50%(または50%に近い)デューティ・サイクル・クロックが望ましい。この理由の1つは、良好なサイクル時間ジッタ特性を有する伝搬元クロック(source clock)を半分に分割することにより、デューティ・サイクル・スキューを制御できることである。しかし、120度位相外れである3つの50%デューティ・サイクル・クロックを使用したら、システムはどうなるか。クロックのデューティ・サイクルは特に重要である。50%デューティ・サイクルは、ゲート出力が下降するのに等しい量の時間を、ゲート出力が立ち上がるために提供する。ところが、クロック・デューティ・サイクルが50%から大きく逸れれば、動作処理におけるプリチャージフェーズ(precharge phase)または評価フェーズ(evaluate phase)の時間が少なくなる。そのため、割当時間内に動作を完了できるように、プリチャージ・トランジスタ(precharge transistor)または評価トランジスタ(evaluation transistor)をより大きく形成することが必要になる。これは、トランジスタ領域の非効率的な使用である。また、プリチャージ・トランジスタは大きいほど、CPゲートのプリチャージ時間をスピードアップさせるが、実際には評価トランジスタにより大きい負荷をかけるため、評価時間を若干スローダウンさせてしまう。その逆も同じことがいえる。つまり、ゲートの評価時間をスピードアップさせるために評価トランジスタをより大きくした場合には、同時により大きい容量をプリチャージできるように、プリチャージ・トランジスタも大きくしなければならない。
【0063】
図8は本発明の一実施形態であって、50%デューティ・サイクルを備えた3クロックの信号またはドメインと、120度位相外れであるオーバーラッピング・クロック位相を示している。オーバーラッピング・クロックを備えたシステムは、ある位相から次の位相に容易に遷移(transition)できる。全てのクロックが約50%デューティ・サイクルであると、3つ全てのクロックがHighの時はない。つまり、本発明におけるオーバーラッピング特性とは、いずれか2つの連続するクロック信号がそれらの評価フェーズにおいて、オーバーラップするということである。そして、50%デューティ・サイクル・クロックは、容易に生成できるだけでなく、サイクルの半分でCPゲートをプリチャージすることを可能にする。3つ全てのクロックがHighになる時はないので、あらゆるパスが各クロック位相につき少なくとも1つのゲートを有するようにすれば、保持時間の問題から解放される。(なお、信号を通り抜け式に伝搬させて先行する一群の信号に追いつかせる方法はない。)そして、スキュー範囲(図8に斜線で示す)の外側で遷移できるとすれば、最も遅い信号の伝搬時間(従って、サイクル時間)は、クロック・スキューによって影響されないことになる。等式8は、サイクル時間に関する関係を示している。
【0064】
T≡(D0+D1+D2+J) ・・・ (式8)
ここで、J=クロック周期ジッタ(clock period jitter)であり、
Diはゲートiの伝搬遅延である。
【0065】
本発明のこの実用的側面の重要性を過大評価することはできない。先行技術の解決法は効率的な設計を提供できるが、設計者側に実質的な技術と時間を要求し、設計工程を非効率にする。効率的な高パフォーマンス設計の目的は、デザインが効率的であることと、デザイン工程が効率的であることとの両方を要求する。
【0066】
上記の例における3相クロックに戻って説明する。クロック位相のオーバーラップ量とその意味に注目すると、T/2〜T/3またはT/6のオーバーラップ時間があることが分かる。これは、ある位相から次の位相に遷移するために、1サイクルの1/6のウィンドウがあることを意味する。これは、理想的クロックのためのオーバーラップ時間であることに留意されたい。このオーバーラップ時間は、スキューおよびジッタによって削減される。一般的に、N個のクロック位相があれば、その結果生ずる遷移ウィンドウ時間(Wt)は、次の式9によって求められる。
【0067】
Wt=T/2−T/n−(J+Ku+Kc) ・・・ (式9)
ここで、J=クロック・ジッタ、
Ku=クロック・スキューの不明確な部分、
Kc=クロック・スキューの制御された部分、
T=理想的なサイクル時間、
n=位相の数、および
Wt=遷移ウィンドウ時間(transition window time)である。
【0068】
ジッタおよびスキューの効果はさておき、位相とその前の位相との間のオーバーラップは、その位相と次の位相との間のオーバーラップと同じである。図18A、18B、18Cおよび18Dは、それぞれ3、4、5および6個のクロック・ドメイン・システム(clock domain systems)に関するオーバーラップ位相を示している。
【0069】
設計者の目標は、評価エッジ(evaluation edge)をこの遷移ウィンドウの中央を通過させることであり、これは、スキュー・トレランス(skew tolerance)を最大化させる。等式9を見ると、位相の数が増えれば、遷移ウィンドウの大きさもそれに応じて拡大することが分かる。多数の論理ゲートの遅延がすべてほぼ同じであるのならウィンドウの大きさはそれほど重要ではないが、異なった複数の論理ゲートの間で遅延に著しい差異があれば(通常はこうなる)、評価エッジを遷移ウィンドウの中央を通過させることは困難になる。この点、設計者が大きくミスしてしまうと、システムはスキューの問題に突き当たり、遷移ウィンドウの大きさを増すためにクロックをスローダウンさせることが必要な場合がある。このことは、クロックにおける位相の数を最大化することの根拠を示している。位相の数は、最長のパスにおけるゲート数によって決定される。したがって、クロック位相の数を設定するにあたっては、所定のクリティカル・パス(critical path)との関係で位相ごとにちょうど1ゲート分の遅延があるようにすることが望まれる。そして、他の全てのパスは、これと同じ数のクロック位相を有することが必要となる(ただし、上記最長のパスよりも短いパスは、余分な位相に対処するために付加されたバッファを有することになる)。つまり、本発明に係る論理回路の同期方法では、一群のCPゲートを含むデバイスにおいて、ほぼ全ての信号パスが、同じ数のクロック位相をパスすることを必要とするのである。
【0070】
クロッキング効率
図9Aを参照すると、単一のゲートのクロック・サイクルは4つの領域を有することが分かる。すなわち、まずプリチャージ期間(precharge period)tpがあって、この期間では、ゲートが既知の論理値までプリチャージされるようになっている。このプリチャージ期間に続いて、クロックがLowからHighに切り替わる期間がある(ただしこの期間ではゲートへの入力は有効ではない)。この期間はスキュー・トレランス期間(skew-tolerance period)tstと考えることができる。その理由は、ゲートが評価モード(evaluate mode)にあると分かるまでは入力が有効にならないように、パスを特別設計しているからである(たとえば、評価エッジは、クロック到着後のある時点で到着する)。続いて、評価期間(evaluation period)teがあり、ここでは、ゲートの入力が有効になり、ゲートは実際に評価を行う。この期間は、評価エッジが論理ゲートを通過する時間であると考えることができる。最後に、出力保持期間(output-hold-time period)tsoがあり、この期間では、次のゲートが前のゲートの出力値を捕らえたと分かるまで出力が一定に保持される。そしてここから、ゲートをプリチャージすることによって、プロセスが再開されるようになっている。
【0071】
論理ゲートは、できるだけ効率的に使用することが望まれる。つまり、ゲートについて動作の異なる4つのフェーズを最適配置することが望まれるのである。特定のロジック機能について「プリチャージ」、「スキュー・トレランス」、「評価」および「保持時間」に必要とされる時間の量を計算してから、これらの時間に対する正しいクロックを生成することができる。この同期スキームにおいて考慮すべき重要な点の1つは、各位相毎の論理回路によって必要とされる評価時間の差異を削減する試みにある。これが遷移ウィンドウの大きさを縮小し、サイクルタイムを改善する。この「評価時間の差異」を削減する1つの方法としては、各位相毎に実行されるロジック機能が、正確に同じ数のゲートを含むようにすることが挙げられる。異なったゲート間で速度にほとんど差がなければ、いくつでも決まった数のゲートを用いることができる。また、位相のオーバーラップ量が大きくなるほど、遷移ウィンドウの大きさは増大する点にも留意すべきであり、このことはクロック位相の数が増えることを示している(その結果、位相ごとのゲート数が減る)。よって、本発明の好適な実施形態は、クロック位相毎に1つのゲートを有している。図9Bは、上記の設計原則を用いたときの、本発明のクロッキング・モードを示している。
【0072】
クロック生成
多相クロッキング・システムにおいて異なったクロック位相を生成するには、基本的に2つの方法がある。まず、単一のクロックを遅延させて成る複数のクロックを生成することが可能である。あるいは、位相検出器(phase detector)を用いて、単一のクロックから、適当に位相外れした多数のクロックを生成することも可能である。単一のクロックだけでルーティングしたいのであれば、当該単一のクロックを遅延させて成る複数クロックから、異なった位相のものを構築しなければならない。
【0073】
本発明の好適実施形態においては、関連するクロック・ドメイン・エリアの全体にわたって、低スキューな方法で、単一のグローバル・マスター・クロック(global master clock)が分散される。個々の位相は、かかるマスタ・クロックを緩衝し遅延させることにより、複数のローカル域について生成される。このアプローチには、2つの主たる利点がある。第1に、スキューは単一の電気的ノードであるので、当該スキューはマスタ・クロック全体にわたって良好に制御される。第2に、複数のローカル位相クロックはきめ細かな制御によって意図的にスキューすることができる。かかる複数のローカル位相クロックは、それぞれ決まった数のゲートに供給されるからである。マスタ・クロックによって規定されたサイクルの前半において立ち上がるローカル位相クロックは、マスタ・クロックの立ち上がりエッジから派生している。また、マスタ・クロックのサイクルの後半で立ち上がる位相は、マスタ・クロックの下降エッジから派生している。このように、クロックが止められると、少なくとも1つの位相クロックはプリチャージになる。これがレース・スルー(race-through)を防止する。
【0074】
位相ウィンドウの調整(Tuning the Transition Window)
一のグローバル・クロック源(global clock source)からローカルに生成された複数のクロックを用いることの利点は、特定のコンテキスト用の各ローカル位相クロック(local phase clock)を調整できることである。このようなクロック遅延調整能は、ゲート遅延におけるある程度の非均一性を可能にする。たとえば、比較的長い伝搬時間を有する複数ゲートがあって、それに続いて比較的短い伝搬時間を有するゲートが1個あるとする。かかる短い伝搬時間の1個のゲートを、1つのローカル位相クロックが規制しているのであれば、そのゲートのクロック到着時間を調整して通常よりも遅延させることができる。これは、このゲートの評価エッジが、そのクロックがHighにある期間内で、よりセンタに位置決めされることを可能にする。その結果、それ以外の場合よりも一層高いスキューとジッタのトレランスが達成される。ゲートの入力の最も早い到着時間および最も遅い到着時間は、スタティック・タイミング分析ツール(static timing analysis tool)またはダイナミック・タイミング分析ツール(dynamic analysis tool)によって容易に判断される。このように、この設計方法は、クロック位相遅延を、サイクル内でゲートの評価時間に一致するように調整するものである。また、クロック調整方法は反復的でないことを特筆することも重要である。クロックを適切に調整するために、単一のスタティックまたはダイナミックなタイミング分析(クロックがクリティカル・パス・タイミングに干渉しないという仮定で)を用いることができる。これは、設計工程の効率性の観点から重要である。
【0075】
効率が低下し始めるので、設計に含ませることのできる不均一なゲート遅延の程度には限界がある。スローペースのゲートがあっても、クロック調整することにより、その隣接ゲートの評価時間の幾分かを用いることが可能になるが、その「スローペースのゲート」はその後もなおプリチャージしなければならない。スローペースで「評価」を実行するゲートは、やはりスローペースで「プリチャージ」する傾向にある。よって、「評価時間」だけのサイクル・スティーリングでは、設計効率の最適化は図られない。実際には、「評価」の時よりも素早く「プリチャージ」するゲートもあるが(一般的には、機能が複雑で出力負荷が小さいもの)、そのようなものは一般的ではない。したがって、効率的設計における評価期間のオーバーラップは、主としてクロックの不安定さを許容する目的である。
【0076】
ゲートは何故クロック調節されるのか
前述ように、クロックは早い信号が早く行き過ぎるのを防止するために必要である。すなわち、クロックは事象をスローダウンさせるためにある。それゆえ、クロックの設計にあたっては、早いパスには必要なインパクトを与え、遅いパスにはできる限り小さいインパクトを与えるようにしなければならない。そして、クロック同期式プリチャージ・ロジック(clocked-precharged logic)の最大の利点は、同期に用いられるトランジスタが、ロジックの評価パスの側の方にあることである。つまり、同期目的でのみ存在するデバイスを介して、ロジック処理を伝搬させることに利点はない。その代わりのものとして、同期デバイスが、ゲートをON/OFFするバーチャルなパワーノード,グランドノードを作り出すようになっている。
【0077】
ゲートは何故その出力を保持することが必要なのか
ゲートは、それに続くゲートが「評価」処理を開始するのに十分な間、出力を保持しなければならない。予測不可能なスキューの原因があるため、2つのクロック位相だけでは重大な設計を構成できないのは分かっている。なぜなら、一のクロック位相の評価期間と、その次のクロック位相の評価期間との間にオーバーラップがないからである。(なお、Harris論文は、2つのクロックを用いる構成を教示している。これはシンプルな設計ではあるが、早いパスおよび遅いパスの両方を調整することの困難さ故に、実現不可能なものとなっている。)しかし、3つのクロック位相は、図18Aに示すように一のクロック位相と次のクロック位相との間において、1/6サイクルのオーバーラップを提供する。図18Bは4つのクロック位相を示している。図18Cは5つのクロック位相を示しており、図18Dは6つのクロック位相を示している。表1に示すように、位相数と評価期間のオーバーラップ量との間には、直接的な関係がある。
【0078】
【表1】
【0079】
異なったクロッキング方法との関係で図示したクロック波形は全て、好適にバランスが図られており、その結果、予測不能な誤差についてのトレランス(unpredictable error tolerance)が最大化され、また、可能な限りの時間借りが実現される。選択される方法は、存在する誤差量と、所望の時間借り量との合計だけで決定されるべきでる。
【0080】
典型的な0.18uのプロセスでは、ダイナミック・ゲートは100psから200psで評価し、150psでプリチャージすることができ、これによってゲートが300psから350psでサイクルすることが可能になる。クロック・ジッタ(予測不能誤差)は、50ps内に制御できる。したがって、200psのゲートが、両側で25psずつを借りるとともに、各クロック・エッジで50psのジッタに耐えるようにするのであれば、各クロック・ドメイン間において50psのオーバーラップが保証されることが必要である。3相方式では、2.222GHzのピーク・クロック・レートについて、最大クロック周期は450ps(1/6で75ps)になるであろう。同様の制約で動作する4相方式は、オーバーラップを満足するために300psを必要とすると思われるが、4個のゲートは少なくとも600psを必要とするので、この方法は、クロック・レートを犠牲にして、必要とされるものを超えるジッタおよび時間借りのトレランスを提供する。したがって、3相クロック(オーバーラップする位相を有する)は、ほとんどの場合についてロジックの同期をとるための好適な解決手段を提供する。なお、3つの位相は、早いパスを調整する必要性をなくす最小数である。
Harris特許や他の先行技術と本発明との相違点の1つは、機能的論理回路の構成である。本発明による論理回路は、かかる機能的論理回路の一部として信号保持デバイス(signal keeper device)を含んでいる。先行技術では、通常、出力バッファとして機能するデバイス(あるいは一種の信号保持機能としてのデバイス)から、論理回路を分離している。しかし、本発明では、このような信号保持回路や出力バッファを、論理回路の一部とみなしている。その結果、本発明では、良好に制御された評価ノードを有することが可能になって、回路内の全てのキャパシタンスが完全に把握されることとなる。また、上記信号保持デバイスを論理回路の一部として含めることにより、本発明では、専用の保持器インバータ(keeper inverter)を必要としなくなっている。たとえば、図17Aおよび17Bは、本発明において付加的なインバータ(付け加えのインバータ)が不要になっていることを図示するものであって、図14Aおよび14Bに対応している。図17Aにおいて、出力222は、本発明の教示を利用した回路からの出力を表している。好適実施形態におけるこの出力は、直列接続した次の論理ゲートの入力に直接につながっている。先行技術では、出力信号56(これは次の論理ゲートにつながる)は、まず付加的インバータ54(付け加えのインバータ)を通って伝わらなければならないことに留意されたい。同様に、図17Bにおいて、出力224は、本発明の教示を利用した回路からの出力を表している。好適実施形態におけるこの出力は、直列接続した次の論理ゲートの入力に直接につながっている。そして、先行技術では、出力信号76は、まず付加的インバータ72(付け加えのインバータ)を通って伝わらなければならないことに留意されたい。なお、図17Bにおいては、図14Bの追加インバータ68を、本発明において説明しているような「全信号保持器」と同様になるように描き直している。
【0081】
スタティック・インターフェイス
どの設計も完全にダイナミックにはなり得ない。いずれにしても、ダイナミック・ゲートは既存のハードウエアと通信しなければならなくなるが、これらのほぼ全てがスタティック論理回路を用いている。信号をスタティックからダイナミックに変換することは、時間基準点(time reference point)を必要とする。これは、ダイナミック信号は、「状態情報(state information)」および「その状態情報が有効であるかどうか」の両方を伝達するからである。一方、スタティック信号は「状態情報(state information)」のみを伝達するようになっており、その状態情報がいつ有効であるかを示すために、外部の時間基準に依存しなければならない。したがって、適切なダイナミック信号を生成するためには、スタティック信号からの「状態情報(state information)」に、クロックからの「有効情報(validation information)」を加える必要がある。
【0082】
ダイナミック・ゲートが評価フェーズにあるときには、その入力は当該評価フェーズが終わる前に到着しなければならない。さらに、その入力は、この周期中に、アサート(assert)された状態からプリチャージされた状態に遷移しなければならない。別の言い方をすれば、ゲートが評価処理しているときには、その入力は i) アサートされているか、ii) アサートされていないか、あるいは iii) アサートされていない状態からアサートされた状態に遷移しているかでなければならず、アサートされた状態からアサートされていない状態に遷移していてはならない。
【0083】
スタティック信号は、1サイクル中にそれらの最終的で有効な値を達成する前に、何回も切り替わることができる。また、スタティック信号はその電圧レベルを利用して情報を符号化する(一般的に、高い電圧「High」は論理1を示し、低い電圧「Low」は論理ゼロを示す)。スタティック論理回路のこれら2つの特性は、スタティック論理回路がCP論理回路と連動するときに問題を引き起こす。
【0084】
両方の問題が関連する事実というのは、CP論理ゲートは評価フェーズの間に、それらのプリチャージ状態を回復できないということである。そのため、CPゲートへのスタティック入力が、最終的にLowに向かう前に、CPゲートの評価フェーズ中に一時的にHighになる場合を想定してみる。かかる場合には、CPゲートは、一時的で無効なHighのスタティック信号に反応して、誤って切り替わってしまうことになる。
【0085】
このような事態を回避するためには、スタティック信号を制御して、CPゲートの評価フェーズ中に誤ってHighに遷移しないようにしなければならない。このような制御は、CPゲート入力が評価フェーズの間安定するような方法で、CPゲートに先立ってスタティック信号をラッチすることにより行うことができる。
【0086】
なお、CPゲートは反転機能(インバータ機能)を提供しないので、単にラッチしたスタティック信号だけでなく、ラッチして反転したものを提供することが一般的に必要である。
【0087】
クロッキング・デバイス
前述のように、ダイナミック・ゲートは信号保持器を含む場合がある。設計者は、ダイナミック・ゲートの評価期間が終わる前に、ダイナミック・ゲートへの入力を消失させることを望むので、ゲートの評価スタックが、一部の時間にわたって、内部評価ノード用のグランドへのパスを提供しない可能性がある。このようになったとき、当該評価ノードは電源からもグランドからも完全に切断されてしまい、その所望の電圧レベルからドリフトする。「真(true)」と評価されたゲート(その評価ノードを放電したゲート)については、電圧はHighへドリフトする場合がある。さらに、ゲートが評価フェーズにあるときには、入力は「真(true)」でない場合があり、このことは評価ノードが放電しないことを意味する。この場合、かかるノードを放電するためのグランドへのパスはないが、ノードをHighに保持する電源へのパスもない(ノードはプリチャージしていない)。したがって、当該ノードはLowへドリフトするであろう。
【0088】
ダイナミック論理回路方式には、Harris特許に記載されているように、評価期間の全体にわたって入力が存在するようにするものがあるが、Harris特許ではこのダイナミック論理回路方式を「ドミノ」論理回路と呼んでいる。ドミノは、直列のダイナミック・ゲートの配列であり、全てのゲートが一度にプリチャージされ、続いて全てのゲートが一度に評価される。これらのゲートが評価フェーズにあるときに、入力が直接配列の第1ゲートに供給され、直立された一連のドミノのように、評価ノードは「倒れ」始める。この構成において、各ダイナミック・ゲートへの入力は、それらの評価フェーズ全体をとおして有効である。(「ドミノ」という語は、当該技術分野において誤って用いられており、あらゆるダイナミック・ゲートを意味することが多い点に留意されたい。実際には、「ドミノ」はダイナミック・ゲートの最初の普及されたクロッキング方法の1つを意味する)。入力が有効(Low、High、またはLowからHighへの遷移)であるときには、Nチャネルの信号保持器は必要ない。Nチャネルの保持器は、以前に「真(true)」であった入力がなくなった後に、入力をLowに保持するためのみ必要であると思われる。したがって、HighからLowへの遷移があったということである。
【0089】
本発明に記載したクロッキング方法は、ドミノ論理回路のクロッキング方法とは異なる。全てのドミノを直立させてから、一連のドミノのうち最初のものを倒す代わりに、本発明は、隣のドミノを倒した直後に、各ドミノを元通りに立て直す。このように動くドミノを見れば、それらの倒れるパターンは「波(wave)」として伝搬するように見えると思われるので、これはドミノ・クロッキングではなくウェーブ・クロッキングと呼ぶ方がより適切である。このクロッキング方法を用いると、全ての信号が、各クロック位相に対応する唯一のゲートを通って伝搬する。隣り合うゲートの各組合せについて、それぞれの評価期間が十分にオーバーラップするので、ジッタに起因するクロック自体の不正確さは許容される。これらのオーバーラップは、信号が伝搬するのに通らなければならない「波」、すなわち時間の回廊を表す。信号がゲートに早く到着した場合には、信号は、その評価クロック期間まで、そのゲートを通り始めるのを遅らされるだけである。
【0090】
本発明の好適実施形態の要素のいくつかを要約すれば、次のとおりである。すなわち、各クロック位相のゲートは、その入力を前のクロック位相のゲートからのみ受け取らなければならないので、全てのパスは同じレベル数の論理回路を通らなければならないということである。また、あってもごく僅かの例外を除いて、ダイナミック・スタティック・インターフェイスで生ずる同期損失を回避するために、全ての信号は動的である。本発明は、ラッチ、レジスタおよびフリップ・フロップの使用を避けており、これはさらに同期損失を削減する。また、フィードバック・パスおよびフィードフォワード・パスは、このクロッキング方法におけるクロック位相数に等しい数のゲート(整数倍数のゲート)をスキップしなければならない。
【0091】
本発明とドミノ論理回路との重要な相違は、本発明における1つのダイナミック・ゲートへの入力が、一連になった次のダイナミック・ゲートがその評価期間を完了する前に消失することである。したがって、評価処理するゲートへの入力で、HighからLowへの遷移を得ることは可能である。これが受け入れ可能である理由は、信号は「High」であれば正しく、ダイナミック・ゲートでの処理は単に次のゲートに情報を伝搬することで簡単に行われるからである。なお、この場合当該ゲートは、本格的にプリチャージを開始して次の評価フェーズに向けて準備する必要がある。しかし、ゲートはHighからLowに遷移できるので、評価ノードが放電されている状態に遭遇することができるが、低周波数動作中またはクロックが停止しているときに、放電させたまま保持するものではない。したがって、信号保持器が必要である。これは、本発明が、図10A、11Aおよび11Bに示したような論理回路の一部として信号保持器を必要とするためである。信号保持器がなければ、低周波数動作中またはクロックが停止したときに浮動している、CP論理デバイスのダイナミック・ノードは、未知の電圧レベルにドリフトするであろう。図20は、図18Cに示すような5相クロック・システムを図示するものであって、低周波数動作で遭遇する問題を示している(1/10のクロック速度で作動)。符号2010−2020の間は、CLK0がいつ評価期間にあるかを示している。符号2030は、CLK5の下降エッジを示している。CLK5は、CLK1が2020で「評価」から出て「プリチャージ」に入ってしまうまで、プリチャージ2040にある。CLK1が「評価」状態にある時間の長さのために、そのダイナミック・ノードは未知の電圧レベルにドリフトするであろう。
【0092】
図18A、18B、18Cおよび18Dは、本発明のクロッキング・システムを示している。図面において、teはクロック・サイクルの「評価」フェーズであり、tpはクロック・サイクルの「プリチャージ」フェーズである。また、個々のクロックは50%のデューティ・サイクルを有する。異なる複数のクロックは次のとおりになっている。すなわち、個々のクロック信号の位相が、次のクロック信号の位相とのオーバーラップ量に等しい分だけ、より早いクロック信号の位相にオーバーラップするようになっている。そして、クロックの位相のオーバーラップというのは、2またはそれ以上のクロック信号が、いずれの時間においてもそれらの評価フェーズにおいてオーバーラップするように、生ずるようになっている。図18Aは、クロックCLK1、CLK2およびCLK3を備えた三相クロッキング・システムを示している。符号250は、異なったクロックの評価サイクルの「波」の伝搬を示している。図18Bは、クロックCLK1、CLK2、CLK3およびCLK4を備えた四相クロッキング・システムを示している。符号252は、異なったクロックの評価サイクルの「波」の伝搬を示している。図18Cは、クロックCLK1、CLK2、CLK3、CLK4およびCLK5を備えた五相クロッキング・システムを示している。符号254は、異なったクロックの評価サイクルの「波」の伝搬を示している。また、図18Dは、クロックCLK1、CLK2、CLK3、CLK4、CLK5およびCLK6を備えた六相クロッキング・システムを示している。符号256は、異なったクロックの評価サイクルの「波」の伝搬を示している。
【0093】
本発明の好適実施形態を用いた設計は、十分に高いクロック速度で動作するようになっており、その結果、評価ノードがドリフトする時間がないようになっている。たとえば、2GHzでは、まずLowにされていなければならないので、評価ノードがHighに保持されない時間はわずか250psであり、Lowに保持されない時間はそれよりもさらに短い。信号保持器は、ノイズを免れることにある程度役立っており、これは、評価ノードに重大なノイズの問題がある場合には、特に重要な問題である。Harris特許において議論されているように、評価ノード自体が出力として用いられるので、評価ノードは長い配線にすることができると示唆されている。このようになった場合に、ゲート内における保持器トランジスタの必要性を増大させる、大きな連結構成部品が存在し得る。しかし、本発明は、評価ノードが完全に論理ゲート内に保持されることを必要とする。これによって、Harris特許や他の先行技術にあるような、信号上の追加信号保持器が不要になるほどに、連結効果が削減される。
【0094】
図19A、19B、19Cおよび19Dは、本発明の論理回路の同期をとるためのシステムを用いた、集積回路におけるパイプライン設計を示している。本発明の好適実施形態は、個々の論理回路がその入力を、直列配列におけるより早い論理回路から受け取り、それを直列配列の次の論理回路に渡すことを定めている。より早い論理回路はより早い位相クロック信号につながっており、直列配列の次の論理回路は次の位相クロック信号につながっている。また、本発明の好適実施形態は、論理回路が、フィードバック・ループまたはフィードフォワード・ループにおける別の論理回路(当該回路は次の位相クロック信号を用いる)だけに供給してもよいことを定めている。
【0095】
図19Aは、クロックCLK1、CLK2およびCLK3を備えた三相クロッキング・システム(図18Aに示す)を用いた集積回路におけるパイプライン110を示している。パイプライン110は、データパス128,入力信号112および出力信号114を含む。データパス128は、上記パイプラインを介して信号を伝搬させるために、1本または複数の配線を含む。たとえば、データパス128は、1つまたは複数のN進信号を含む場合がある。また、入力信号112および出力信号114は、N進符号化を用いた信号を含む場合がある。パイプライン110は、データパス128に直列に連結された、論理回路116,118、120、122、124および126を含む。これらの論理回路は、N進論理回路を含む場合がある。また、各論理回路は、さらに、1つまたは複数の追加の論理回路を含む場合がある。
【0096】
図19Bは、クロックCLK1、CLK2、CLK3およびCLK4を備えた四相クロッキング・システム(図18Bに示す)を用いた集積回路におけるパイプライン130を示している。パイプライン130は、データパス136、入力信号132および出力信号134を含む。データパス136は、上記パイプラインを介して信号を伝搬するために、1本または複数の配線を含む。たとえば、データパス130は1つまたは複数のN進信号を含む場合がある。また、入力信号132および出力信号134は、N進符号化を用いた信号を含む場合がある。パイプライン130は、データパス136に直列に連結された、論理回路138、140、142、144、146、148、150および152を含む。これらの論理回路は、N進論理回路を含む場合がある。また、各論理回路は、さらに、1つまたは複数の追加の論理回路を含む場合がある。
【0097】
図19Cは、クロックCLK1、CLK2、CLK3、CLK4およびCLK5を備えた五相クロッキング・システム(図18Cに示す)を用いた集積回路におけるパイプライン300を示している。パイプライン300は、データパス304、入力信号302および出力信号326を含む。データパス304は、上記パイプラインを介して信号を伝搬するために、1本または複数の配線を含む。たとえば、データパス304は、1つまたは複数のN進信号を含む場合がある。また、入力信号302および出力信号326は、N進符号化を用いた信号を含む場合がある。パイプライン300は、データパス304に直列に連結された、論理回路306、308、310、312、314、316、318、320、322および324を含む。論理回路はN進論理回路を含む場合がある。また、各論理回路は、さらに、1つまたは複数の追加の論理回路を含む場合がある。
【0098】
図19Dは、クロックCLK1、CLK2、CLK3、CLK4、CLK5およびCLK6を備えた六相クロッキング・システム(図18Dに示す)を用いた集積回路におけるパイプライン160を示している。パイプライン160は、データパス166、入力信号162および出力信号164を含む。データパス166は、上記パイプラインを介して信号を伝搬するために、1本または複数の配線を含む。たとえば、データパス166は、1つまたは複数のN進信号を含む場合がある。また、入力信号162および出力信号264は、N進符号化を用いた信号を含む場合がある。パイプライン166は、データパス166に直列に連結された、論理回路168、170、172、174、176、178、180、182、184、186、188および190を含む。論理回路はN進論理回路を含む場合がある。また、各論理回路は、さらに、1つまたは複数の追加の論理回路を含む場合がある。
【0099】
図19Eは、図19Aのパイプライン110を備えたフィードバック・ループおよびフィードフォワード・ループを示している。
CLK1信号につながる論理回路122は、CLK2信号につながる論理ゲートのみと通信し得る。この場合の「CLK2につながる論理ゲート」は、フィードバック・ループ800経由の論理ゲート118、または論理ゲート124(パイプライン110において直列に連結されている)のいずれかである。
また、CLK2信号につながる論理回路118は、CLK3信号につながる論理ゲートのみと通信し得る。この場合の「CLK3信号につながる論理ゲート」は、フィードフォワード・ループ802経由の論理ゲート126、または論理ゲート120(パイプライン110において直列に連結されている)のいずれかである。
【0100】
クロックの停止
本発明の最後の態様は、クロックを停止することが論理回路に与える影響に関する。クロックを停止するときには、「High」状態または「Low」状態のいずれかで停止する必要がある。クロックが停止されると、ダイナミック・ゲートのシーケンス内のゲートには、「プリチャージ」状態で停止されるものもあれば、「評価」状態で停止されるものもある。ここで、あるゲートを評価状態で停止するとき、その前のゲートがプリチャージ状態で停止される場合には、当該ゲート(前者のゲート)の入力は存在しなくなるおそれがある。そのため、このゲートはNチャネルの保持器(N-channel keeper)を必要とする。また、停止されたときに、ゲートの入力は論理ゼロの出力になる場合があり(Nスタックがオフの場合)、そのため、このゲートはPチャネルの保持器(P-channel keeper)を必要とするようになる。図11Aおよび11Bに示したように、本発明の保持器には、全保持器(full-keeper)と半保持器(half-keeper)の2つの形式がある。したがって、クロックを停止するときに評価処理されたゲートの出力を見る必要があれば、集積回路は、一連の論理回路のクリティカル・パス内に全保持器を含まなければならない。
【0101】
製造試験の過程では、低レベルの電流漏出がないか回路を試験するために、クロックはHigh状態およびLow状態の両方で停止される。このタイプの試験は、IDDQテスティングとして一般的に知られており、潜在欠陥がないか試験し、回路製品の出力特性および信頼性を改善するために用いられる。簡単な測定によれば、あらゆるゲートは評価状態で停止され、したがって、あらゆるゲートは全保持器を必要とする。しかし、直列の論理ゲート内の全てのゲートが全保持器を含む必要はない。直列配列において、評価処理を実行した最初のゲートが全保持器を有するようにすれば、評価フェーズにあるゲートは停止し、残りの評価ゲートは、ドミノ・クロッキング方式(domino clocking strategy)と同様に、その入力を「真(true)」に保持することになる。これは、各クロック位相が次のクロック位相にのみ供給しなければならない、本発明の論理回路の同期をとるための形式によって大幅に単純化されることに留意されたい。
【0102】
ハードウエア・エミュレーション・テスティング(hardware emulation testing)およびスキャン・テスティング(scan testing)は他の機能であり、これらは、クロックを停止し且つ回路をその状態に保持する能力によって大きく利益を受ける。両方のアプリケーションにおいて、「クロックを停止できること」と、「有効な回路状態を検査および/または修正できること」が望ましいし、必要でさえある。本発明はこのようになることを可能にし、さらに、回路の動作を妨げずにクロックを再始動することを可能にする。
【0103】
クロック停止を説明すると、6相設計が考えられる。この場合、グローバル・クロック信号に応じて3つのクロックが生成され、グローバル・クロック信号の反転に応じて3つのクロックが生成される。直列配列の論理ゲートは、測定をサイクルのどこで行うかにもよるが、下記の6個の位相の1つにおいて、プリチャージ(P)または評価(E)の論理ゲートを有することになる。
【0104】
【表2】
【0105】
位相0〜2は「正」のクロック信号から派生しており、位相3〜5は「反転」のクロック信号から派生しているので、これらのクロックはこれらの状態のいずれかで停止することができる。
【0106】
【表3】
【0107】
表2に示したその他の4つの状態は一時的なものであり、クロックが停止されたときには存続しない。したがって、最低でも、位相0のクロックおよび位相3のクロックにおける論理ゲートは、全保持器を必要とし、その他の位相における論理ゲートは半保持器を使用する場合がある。
【0108】
本発明は、集積回路(IC)でのロジックを同期させる方法および装置である。本発明は、オーバーラップする位相および約50%のデューティ・サイクルを有する複数のクロック信号を含んでいる。前記複数のクロックの位相はそれぞれ、次のクロック信号の位相とのオーバーラップ量に等しい分だけ、前のクロック信号の位相とオーバーラップするようになっている。さらに、本発明は、直列に連結された複数のクロック同期式プリチャージ論理ゲート(CP論理ゲート/Clocked Precharge Logic Gate)を含んでいる。CP論理ゲートは、ロジック評価回路(logic evaluation circuitry)、評価デバイス(evaluate device)、および1または複数の信号保持器(signal keeper device)を含んでいる。個々のCP論理ゲートは、CP論理ゲートの評価デバイスを介して、個々のクロック信号につながっている。個々のCP論理ゲートを通るデータ・フローに関しては、論理ゲートは、そのデータ入力(data input)を、直列配列における前のCP論理ゲートから受け取るとともに、それを当該直列配列における次のCP論理ゲートに渡す。前述した「前のCP論理ゲート」は前の位相のクロック信号につながっており、「次のCP論理ゲート」は次の位相のクロック信号につながっている。本発明によれば、CP論理ゲートの配置およびオーバーラップするクロック(デューティ・サイクル:50%)によって、従来型の論理回路におけるレジスタやラッチに固有の「同期」のオーバーヘッド・コストを回避することができる。さらに、本発明は、3個、4個、5個および6個以上のクロック信号を備えた実施形態を含んでいる。また、本発明においては、論理ゲートは、フィードバック・ループ(feed back loop)またはフィードフォワード・ループ(feed forward loop)内の別の論理回路であって、次の位相のクロック信号を用いる論理回路にのみ伝達できるようになっている。
【0109】
また、本発明は、集積回路(IC)でのロジックを同期させるためのクロック信号を生成する方法および装置である。そして、本発明は、マスタ・グローバル・クロック(master global clock)を含んでいる。
このマスタ・グローバル・クロックは、関連するクロック・ドメイン・エリアにわたって、低スキューな方法(low-skew manner)で分散される。また、当該マスタ・グローバル・クロックの立ち上がりエッジまたは下降エッジを緩衝(buffering)し遅延(delaying)させることにより、複数のクロックがローカルに生成されようになっている。そして、本発明においては、これらのローカルに生成された複数のクロックは、上記マスタ・グローバル・クロックに関連付けされるようになっている。
マスタ・グローバル・クロックを遅延させたものをローカルに調節することにより、前記複数のローカル生成クロックは調整され、その結果、ロジック設計におけるスキューとジッタのトレランスが実現される。
さらに、本発明は、3個、4個、5個および6個のローカルに生成されたクロックを有する実施形態を含む。
【0110】
また、本発明は、論理ゲートのクロックを停止または始動するときに、当該論理ゲートのロジック状態を試験できるようにする方法および装置である。本発明は、オーパーラップする位相を備えた複数のクロック信号および、直列に連結された複数のCP論理ゲートを含んでいる。
前記複数のCP論理ゲートのそれぞれは、個々のクロック信号に個別につながっている。さらに、本発明は、1または複数の信号保持器(signal keeper device)を含んでいる。この信号保持器は、ロジック状態のクリティカル・パスにおける所定の個別CP論理ゲートに接続されている。前記信号保持器は、複数の論理ゲートのそれぞれについての個別クロック信号を停止または始動するときに、当該複数のCP論理ゲートのロジック状態を試験できるようにしている。本発明は、IDDQテスティング(IDDQ testing)、スキャン・テスティング(scan testing)およびハードウエア・エミュレーション・テスティング(hardware emulation testing)を含む、様々な試験技術に適している。
【0111】
本発明の他の実施形態は、当業者であれば、この明細書を検討するか開示された発明を実施すれば明らかになるであろう。この明細書および上記の実施例は代表的なものにすぎず、本発明の範囲は特許請求の範囲に示されていることに留意されたい。
【図面の簡単な説明】
【図1】 クロック生成システムを示している。
【図2】 フリップ・フロップで始まり終わる単純な論理パスを示している。
【図3】 クロック信号の例である。
【図4】 クロック生成器を示している。
【図5】 スキュー抵抗力のない論理回路(skew intolerant logic)を示している。
【図6】 2相クロックでクロック調整された論理回路を示している。
【図7】 2相クロックでクロック調整された論理回路を示している。
【図8】 3相クロックを備えた本発明の実施形態を示している。
【図9】 (A)は、ダイナミック・ゲートの所望の動作モードを示しており、(B)は、典型的なダイナミック・ゲートの動作モードを示している。
【図10】 (A)は、本発明において用いられる4つの論理回路うちの1つを示しており、(B)は、本発明において用いられる4つの論理回路のうちの1つを示している。
【図11】 (A)は、本発明の別の信号保持器デバイスを示しており、(B)は、本発明の別の信号保持器デバイスを示している。
【図12】 集積回路内のパイプラインの例である。
【図13】 先行技術の論理回路の例を示している。
【図14】 (A)は、先行技術の論理回路の例を示しており、(B)は、先行技術の論理回路の例を示している。
【図15】 (A)は、ダイナミック論理ゲート用のクロック条件付け(clock conditioning)を示しており、(B)は、ダイナミック論理ゲート用のクロック条件付けを示しており、(C)は、ダイナミック論理ゲート用のクロック条件付けを示している。
【図16】 先行技術の4相クロック・システムを示している。
【図17】 (A)は、先行技術と本発明との間における、論理ゲート構成の相違を示しており、(B)は、先行技術と本発明との間における、論理ゲート構成の相違を示している。
【図18】 (A)は、本発明のクロッキング・システムを示しており、(B)は、本発明のクロッキング・システムを示しており、(C)は、本発明のクロッキング・システムを示しており、(D)は、本発明のクロッキング・システムを示している。
【図19】 (A)は、本発明を備えた論理回路のパイプライン化を示しており、(B)は、本発明を備えた論理回路のパイプライン化を示しており、(C)は、本発明を備えた論理回路のパイプライン化を示しており、(D)は、本発明を備えた論理回路のパイプライン化を示している。
【図20】 低周波数で動作する図18Cの5相クロック・システムを示している。
Claims (68)
- オーバーラップする位相およびほぼ50%のデューティ・サイクルを有する複数のクロック信号を発生させる回路と;
直列に接続された複数のクロック同期式プリチャージ論理ゲートと;を含んでおり、
オーバーラップする前記複数のクロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号につながる前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号につながる次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とするロジックを同期させる集積回路。 - 前記複数のクロック信号は、3つのクロック信号を含んでいることを特徴とする請求項1記載の集積回路。
- 前記複数のクロック信号は、4つのクロック信号を含んでいることを特徴とする請求項1記載の集積回路。
- 前記複数のクロック信号は、5つのクロック信号を含んでいることを特徴とする請求項1記載の集積回路。
- 前記複数のクロック信号は、6つのクロック信号を含んでいることを特徴とする請求項1記載の集積回路。
- 前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項1記載の集積回路。
- オーバーラップする位相およびほぼ50%のデューティ・サイクルを有する複数のクロック信号を発生させる回路と;
直列に接続された複数のクロック同期式プリチャージ論理ゲートと;を含んでおり、
オーバーラップする前記複数のクロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量に等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号につながる前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号につながる次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とするロジックの同期をとるためのシステム。 - 前記複数のクロック信号は、3つのクロック信号を含んでいることを特徴とする請求項7記載のシステム。
- 前記複数のクロック信号は、4つのクロック信号を含んでいることを特徴とする請求項7記載のシステム。
- 前記複数のクロック信号は、5つのクロック信号を含んでいることを特徴とする請求項7記載のシステム。
- 前記複数のクロック信号は、6つのクロック信号を含んでいることを特徴とする請求項7記載のシステム。
- 前記クロック同期式プリチャージ論理ゲートにおける個々の信号線のすべては、当該クロック同期式プリチャージ論理ゲート内で同数のデバイスを通っていることを特徴とする請求項7記載のシステム。
- 前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項7記載のシステム。
- オーバーラップする位相およびほぼ50%のデューティ・サイクルを有する複数のクロック信号を構築するとともに、
直列に接続された複数のクロック同期式プリチャージ論理ゲートを設けるようにし、
オーバーラップする前記複数のクロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量に等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号に接続する前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号に接続する次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とするロジックを同期させる集積回路を提供する方法。 - 前記複数のクロック信号は、3つのクロック信号を含んでいることを特徴とする請求項14記載の方法。
- 前記複数のクロック信号は、4つのクロック信号を含んでいることを特徴とする請求項14記載の方法。
- 前記複数のクロック信号は、5つのクロック信号を含んでいることを特徴とする請求項14記載の方法。
- 前記複数のクロック信号は、6つのクロック信号を含んでいることを特徴とする請求項14記載の方法。
- 前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項14記載の方法。
- オーバーラップする位相およびほぼ50%のデューティ・サイクルを有する複数のクロック信号を生成するとともに、
直列に接続された複数のクロック同期式プリチャージ論理ゲートを同期させるようにし、
オーバーラップする前記複数のクロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量に等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号につながる前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号につながる次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とする集積回路においてロジックを同期させる方法。 - 前記複数のクロック信号は、3つのクロック信号を含んでいることを特徴とする請求項20記載の方法。
- 前記複数のクロック信号は、4つのクロック信号を含んでいることを特徴とする請求項20記載の方法。
- 前記複数のクロック信号は、5つのクロック信号を含んでいることを特徴とする請求項20記載の方法。
- 前記複数のクロック信号は、6つのクロック信号を含んでいることを特徴とする請求項20記載の方法。
- 前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項20記載の方法。
- 関連するクロック・ドメイン・エリアにわたって低スキューな方法でマスタ・グローバル・クロック信号を分散されるようになっており、前記マスタ・グローバル・クロック信号を生成する集積回路のマスタ・グローバル・クロック発生回路と、
前記クロック・ドメイン・エリアにおいて複数のクロック信号をローカルに生成する、前記集積回路の複数のローカルクロック発生回路と、を含んでおり、
前記複数のローカルクロック発生回路は、前記マスタ・グローバル・クロック信号に関連付けされており、
前記複数のローカルクロック発生回路のそれぞれは、別個のローカル生成クロック信号を生成し、
当該複数のローカル生成クロック信号は、複数のクロック同期式プリチャージ論理ゲートにつながっており、この場合、各ローカル生成クロック信号は、それぞれ別個のクロック同期式プリチャージ論理ゲートにつながっており、
各ローカル生成クロック信号についてクロック位相ごとのゲート遅延を有するように、前記複数のローカルクロック発生回路は、スキューとジッタのトレランスを有するように調整され、
前記複数のローカルクロック発生回路の1または2以上が、前記マスタ・グローバル・クロック信号の立上がりエッジに関連付けされ、かつ、前記複数のローカルクロック発生回路の1または2以上が、前記マスタ・グローバル・クロック信号の下降エッジに関連付けされており、
前記複数のローカル生成クロック信号は、ほぼ50%のデューティ・サイクルを有するとともに、オーバーラップする位相を有しており、個々のローカル生成クロック信号は、次の位相のローカル生成クロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
さらに、前記複数のローカル生成クロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっている
ことを特徴とする集積回路における複数のクロック同期式プリチャージ論理ゲートを同期させるクロックシステム。 - 前記複数のローカル生成クロックは、3つのローカル生成クロックを含んでいることを特徴とする請求項26記載のクロックシステム。
- 前記複数のローカル生成クロックは、4つのローカル生成クロックを含んでいることを特徴とする請求項26記載のクロックシステム。
- 前記複数のローカル生成クロックは、5つのローカル生成クロックを含んでいることを特徴とする請求項26記載のクロックシステム。
- 前記複数のローカル生成クロックは、6つのローカル生成クロックを含んでいることを特徴とする請求項26記載のクロックシステム。
- 関連するクロック・ドメイン・エリアにわたって低スキューな方法で分散されるクロックであって、マスタ・グローバル・クロック信号を生成するマスタ・グローバル・クロックを構築するステップと、
前記クロック・ドメイン・エリアにおいてローカルに生成された複数のローカル生成クロックを、前記マスタ・グローバル・クロック信号に対し関連付けするステップと、を含んでおり、
前記複数のローカル生成クロックは、複数のローカル生成クロック信号を生成し、この場合、各ローカル生成クロックは、それぞれ別個のローカル生成クロック信号を生成するようになっており、
前記複数のローカル生成クロック信号は、複数のクロック同期式プリチャージ論理ゲートにつながっており、この場合、各ローカル生成クロック信号は、それぞれ別個のクロック同期式プリチャージ論理ゲートにつながっており、
各ローカル生成クロック信号についてクロック位相ごとのゲート遅延を有するように、前記複数のローカル生成クロックは、スキューとジッタのトレランスを有するように調整され、
前記複数のローカル生成クロックの1または2以上が、前記マスタ・グローバル・クロック信号の立上がりエッジに関連付けされ、かつ、前記複数のローカル生成クロックの1または2以上が、前記マスタ・グローバル・クロック信号の下降エッジに関連付けされており、
前記複数のローカル生成クロック信号は、ほぼ50%のデューティ・サイクルを有するとともに、オーバーラップする位相を有しており、個々のローカル生成クロック信号は、次の位相のローカル生成クロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
さらに、前記複数のローカル生成クロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっている
ことを特徴とする集積回路における複数のクロック同期式プリチャージ論理ゲート用のクロックを提供する方法。 - 前記複数のローカル生成クロックは、3つのローカル生成クロックを含んでいることを特徴とする請求項31記載の方法。
- 前記複数のローカル生成クロックは、4つのローカル生成クロックを含んでいることを特徴とする請求項31記載の方法。
- 前記複数のローカル生成クロックは、5つのローカル生成クロックを含んでいることを特徴とする請求項31記載の方法。
- 前記複数のローカル生成クロックは、6つのローカル生成クロックを含んでいることを特徴とする請求項31記載の方法。
- マスタ・グローバル・クロック信号を生成するマスタ・グローバル・クロックを、関連するクロック・ドメイン・エリアにわたって低スキューな方法で分散するステップと、
前記クロック・ドメイン・エリアにおいて、ローカルに生成された複数のローカル生成クロックから複数のローカル生成クロック信号を生成するステップと、を含んでおり、
前記複数のローカル生成クロックは、前記マスタ・グローバル・クロック信号に関連付けされており、
前記複数のローカル生成クロックのそれぞれは、別個のローカル生成クロック信号を生成し、
当該複数のローカル生成クロック信号は、複数のクロック同期式プリチャージ論理ゲートにつながっており、この場合、各ローカル生成クロック信号は、それぞれ別個のクロック同期式プリチャージ論理ゲートにつながっており、
各ローカル生成クロック信号についてクロック位相ごとのゲート遅延を有するように、前記複数のローカル生成クロックは、スキューとジッタのトレランスを有するように調整され、
前記複数のローカル生成クロックの1または2以上が、前記マスタ・グローバル・クロック信号の立上がりエッジに関連付けされ、かつ、前記複数のローカル生成クロックの1または2以上が、前記マスタ・グローバル・クロック信号の下降エッジに関連付けされており、
前記複数のローカル生成クロック信号は、ほぼ50%のデューティ・サイクルを有するとともに、オーバーラップする位相を有しており、個々のローカル生成クロック信号は、次の位相のローカル生成クロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
さらに、前記複数のローカル生成クロック信号は、その2以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっている
ことを特徴とする集積回路における複数のクロック同期式プリチャージ論理ゲートを同期させる方法。 - 前記複数のローカル生成クロックは、3つのローカル生成クロックを含んでいることを特徴とする請求項36記載の方法。
- 前記複数のローカル生成クロックは、4つのローカル生成クロックを含んでいることを特徴とする請求項36記載の方法。
- 前記複数のローカル生成クロックは、5つのローカル生成クロックを含んでいることを特徴とする請求項36記載の方法。
- 前記複数のローカル生成クロックは、6つのローカル生成クロックを含んでいることを特徴とする請求項36記載の方法。
- 論理ゲートのクロックを停止または始動する際に、該論理ゲートのロジック状態を試験できるようにする装置であって、
オーバーラップする位相を有する複数のクロック信号を発生させる回路と;
直列に接続された複数のクロック同期式プリチャージ論理ゲートと;を含んでおり、
前記複数のプリチャージ論理ゲートはそれぞれ、前記複数のクロック信号に個別につながっており、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とする装置。 - 前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項41記載の装置。
- 前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項41記載の装置。
- 前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項41記載の装置。
- 前記試験は、IDDQテスティングによって行われることを特徴とする請求項41記載の装置。
- 前記試験は、スキャン・テスティングによって行われることを特徴とする請求項41記載の装置。
- 前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項41記載の装置。
- 論理ゲートのクロックを停止または始動する際に、該論理ゲートのロジック状態を試験できるようにするシステムであって、
オーバーラップする位相を有する複数のクロック信号を発生させる回路と;
直列に接続された複数のクロック同期式プリチャージ論理ゲートと;を含んでおり、
前記複数のプリチャージ論理ゲートはそれぞれ、前記複数のクロック信号に個別につながっており、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とするシステム。 - 前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項48記載のシステム。
- 前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項48記載のシステム。
- 前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項48記載のシステム。
- 前記試験は、IDDQテスティングによって行われることを特徴とする請求項48記載のシステム。
- 前記試験は、スキャン・テスティングによって行われることを特徴とする請求項48記載のシステム。
- 前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項48記載のシステム。
- 論理ゲートのクロックを停止または始動する際に該論理ゲートのロジック状態を試験できるようにする試験性能を有する集積回路を提供する方法であって、
オーバーラップする位相を有する複数のクロック信号を構築するステップと;
複数のクロック同期式プリチャージ論理ゲートを直列に接続するステップと;を含んでおり、
前記複数のプリチャージ論理ゲートはそれぞれ、前記複数のクロック信号に個別にクロック信号につながっており、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とする方法。 - 前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項55記載の方法。
- 前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項55記載の方法。
- 前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項55記載の方法。
- 前記試験は、IDDQテスティングによって行われることを特徴とする請求項55記載の方法。
- 前記試験は、スキャン・テスティングによって行われることを特徴とする請求項55記載の方法。
- 前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項55記載の方法。
- 論理ゲートのクロックを停止または始動する際に、該論理ゲートのロジック状態を試験できるようにする方法であって、
オーバーラップする位相を有する複数のクロック信号を生成するステップと;
直列に接続された複数のクロック同期式プリチャージ論理ゲートに、前記複数のクロック信号を個別に割り当てるステップと;を含んでおり、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とする方法。 - 前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項62記載の方法。
- 前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項62記載の方法。
- 前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項62記載の方法。
- 前記試験は、IDDQテスティングによって行われることを特徴とする請求項62記載の方法。
- 前記試験は、スキャン・テスティングによって行われることを特徴とする請求項62記載の方法。
- 前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項62記載の方法。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/179,626 US6233707B1 (en) | 1997-11-20 | 1998-10-27 | Method and apparatus that allows the logic state of a logic gate to be tested when stopping or starting the logic gate's clock |
US09/179,330 | 1998-10-27 | ||
US09/179,626 | 1998-10-27 | ||
US09/179,745 US6288589B1 (en) | 1997-11-20 | 1998-10-27 | Method and apparatus for generating clock signals |
US09/179,330 US6118304A (en) | 1997-11-20 | 1998-10-27 | Method and apparatus for logic synchronization |
US09/179,745 | 1998-10-27 | ||
PCT/US1999/023931 WO2000025425A1 (en) | 1998-10-27 | 1999-10-12 | Method and apparatus for logic synchronization |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003526962A JP2003526962A (ja) | 2003-09-09 |
JP2003526962A5 JP2003526962A5 (ja) | 2006-11-30 |
JP4599485B2 true JP4599485B2 (ja) | 2010-12-15 |
Family
ID=27391102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000578908A Expired - Lifetime JP4599485B2 (ja) | 1998-10-27 | 1999-10-12 | ロジックの同期をとるための方法および装置 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1135859B1 (ja) |
JP (1) | JP4599485B2 (ja) |
AT (1) | ATE264023T1 (ja) |
AU (1) | AU6430499A (ja) |
DE (1) | DE69916318T2 (ja) |
WO (1) | WO2000025425A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060044016A1 (en) | 2004-08-24 | 2006-03-02 | Gasper Martin J Jr | Integrated circuit with signal skew adjusting cell selected from cell library |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4841174A (en) * | 1985-10-21 | 1989-06-20 | Western Digital Corporation | CMOS circuit with racefree single clock dynamic logic |
JPH07105713B2 (ja) * | 1986-03-26 | 1995-11-13 | 株式会社日立製作所 | 半導体集積回路装置 |
JPS63228206A (ja) * | 1987-03-17 | 1988-09-22 | Nec Corp | クロツク分配方式 |
JPH03216898A (ja) * | 1990-01-22 | 1991-09-24 | Nec Corp | 集積回路 |
US5434520A (en) * | 1991-04-12 | 1995-07-18 | Hewlett-Packard Company | Clocking systems and methods for pipelined self-timed dynamic logic circuits |
US5532625A (en) * | 1995-03-01 | 1996-07-02 | Sun Microsystems, Inc. | Wave propagation logic |
JP3776127B2 (ja) * | 1995-06-27 | 2006-05-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | パイプラインデータ処理回路 |
US5917331A (en) * | 1995-10-23 | 1999-06-29 | Megatest Corporation | Integrated circuit test method and structure |
US5760610A (en) * | 1996-03-01 | 1998-06-02 | Hewlett-Packard Company | Qualified universal clock buffer circuit for generating high gain, low skew local clock signals |
US5886540A (en) * | 1996-05-31 | 1999-03-23 | Hewlett-Packard Company | Evaluation phase expansion for dynamic logic circuits |
-
1999
- 1999-10-12 DE DE69916318T patent/DE69916318T2/de not_active Expired - Lifetime
- 1999-10-12 WO PCT/US1999/023931 patent/WO2000025425A1/en active IP Right Grant
- 1999-10-12 EP EP99951988A patent/EP1135859B1/en not_active Expired - Lifetime
- 1999-10-12 AU AU64304/99A patent/AU6430499A/en not_active Abandoned
- 1999-10-12 JP JP2000578908A patent/JP4599485B2/ja not_active Expired - Lifetime
- 1999-10-12 AT AT99951988T patent/ATE264023T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
AU6430499A (en) | 2000-05-15 |
WO2000025425A1 (en) | 2000-05-04 |
EP1135859B1 (en) | 2004-04-07 |
DE69916318T2 (de) | 2005-05-04 |
EP1135859A4 (en) | 2002-04-17 |
JP2003526962A (ja) | 2003-09-09 |
DE69916318D1 (de) | 2004-05-13 |
EP1135859A1 (en) | 2001-09-26 |
ATE264023T1 (de) | 2004-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6118304A (en) | Method and apparatus for logic synchronization | |
US6288589B1 (en) | Method and apparatus for generating clock signals | |
US5517136A (en) | Opportunistic time-borrowing domino logic | |
JP3644827B2 (ja) | 外部負荷を考慮したdll回路 | |
US20050225365A1 (en) | Electronic circuits | |
US6194932B1 (en) | Integrated circuit device | |
US8644439B2 (en) | Circuits and methods for signal transfer between different clock domains | |
JP4488872B2 (ja) | 位相同期回路及び半導体集積回路装置 | |
US6825695B1 (en) | Unified local clock buffer structures | |
US6233707B1 (en) | Method and apparatus that allows the logic state of a logic gate to be tested when stopping or starting the logic gate's clock | |
US6792554B2 (en) | Method and system for synchronously transferring data between clock domains sourced by the same clock | |
CN110383380A (zh) | 实施精确占空比控制的双数据速率电路和数据生成方法 | |
JP7565467B2 (ja) | 非同期asic | |
JP4599485B2 (ja) | ロジックの同期をとるための方法および装置 | |
Oklobdzija | Clocking in multi-GHz environment | |
US10608620B2 (en) | Shifter circuits having registers arranged in a folded topology | |
JP3717290B2 (ja) | 集積回路装置 | |
JP4020836B2 (ja) | クロックツリー回路、および、半導体集積回路装置 | |
US6412099B1 (en) | Apparatus and method for converting logical connection information of circuit | |
US6911854B2 (en) | Clock skew tolerant clocking scheme | |
US6927615B2 (en) | Low skew, power efficient local clock signal generation system | |
JP4425300B2 (ja) | 半導体集積回路装置の設計プログラム、および、記録媒体 | |
JPH11353268A (ja) | デ―タ高速転送システム | |
US20100040122A1 (en) | Simultaneous bi-directional data transfer | |
US6812750B1 (en) | Divided clock generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061010 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091208 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100304 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100311 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100330 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100406 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100507 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100514 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100607 |
|
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: 20100629 |
|
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: 20100729 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100907 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131008 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4599485 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |