JPY | USD

同期式デジタルシステムのタイミングを守るためのゼロ遅延クロックバッファの評価とその使用方法

著者 Art Pini

Digi-Keyの北米担当編集者 の提供

デジタルシステムの性能が向上するにつれ、クロック分配タイミングの誤差や不確実さを防ぐため、クロックの生成回路と分配回路の設計に細心の注意を払う必要性が増しています。クロックタイミングの問題は、システム性能の低下やタイミングマージンの減少、機能エラーを招きかねません。タイミングスキューに関する問題を防ぐには、ゼロ遅延クロックバッファを使う方法があります。

通常の同期式デジタルシステムでは共通クロックを使って動作の順序を維持します。システムを適切なレートで動作させ続けるためには、このクロックを全てのシーケンシャル要素に分配する必要があり、タイミングスキューを低減する閉ループ制御がよく使われます。ゼロ遅延クロックバッファは、位相ロックループ(PLL)を使ってバッファ付きクロック出力をリファレンスクロック入力と確実に揃うようにし、ほぼ完全なクロック タイミングを実現します。

この記事では、ゼロ遅延クロックバッファを紹介し、その働きをCypress SemiconductorIntegrated Device Technology Inc.(IDT)ON Semiconductorのサンプルソリューションを使って説明し、どうすればクロックスキューを制御できるのかを詳説します。また、これらのデバイスの安定性を確保するテスト方法についても検討します。

クロックスキュー

同期式デジタルシステムでは、回路の各部に異なったタイミングでクロックが到着してクロックスキューが生じることがあります。クロックスキューによりタイミングマージンが減少し、システムが不具合を起こす恐れがあります(図1)。

クロックのタイムスキューが、パイプライン化されたレジスタの動作に影響する場合があることを示す図図1:クロックのタイムスキューが、パイプライン化されたレジスタの動作に影響することを示す簡単な例。クロックスキューにより、セットアップ要件とホールド要件の両方または片方に違反し、出力状態が不定になることがあります。(画像提供:IDT)

2つのレジスタから成るシンプルな同期式システムを考えましょう。データはレジスタXの出力QXがレジスタYの入力になるようにレジスタ間でパイプライン処理され、クロックは独立したバッファを介して各レジスタに供給されます(CLK1、CLK2と表記)。図(a)に示した2つのクロック間にスキューがない場合、データの状態Nが、レジスタのセットアップ時間(tSUx)およびホールド(tHx)時間の要件を見たし、レジスタの伝播遅延後の最初のクロックエッジでレジスタXの出力QXに送り込まれます。CLK2の同じクロックエッジによって、QXの前の状態N-1がレジスタに読み込まれ、レジスタの伝播遅延の後に出力QYになります。

図(b)のようにCLK1とCLK2の間にタイムスキューがある場合、CLK2の到着時にQXの状態は遷移中である可能性があります。レジスタYへの入力がレジスタのセットアップ時間またはホールド時間の要件を満たせない場合があり、出力が不定でエラーになる可能性があります。

クロックスキューを最小にするため、設計者はプリント回路トレース長を揃え、伝播遅延が同じようなバッファおよびクロック部品を選択し、複数のクロック源の負荷分散をします。このような手法も有効ですが、クロックスキューを十分に制御するには一般にゼロ遅延クロックバッファを使う必要があります。

クロックスキューの制御

クロックスキューには多くの要因が考えられます。最も直接的な要因は、プリント回路間の長さの異なる相互接続経路でクロック信号が伝播している場合です。その他のスキュー要因には、クロックが伝播遅延の異なる各種能動デバイスを通して伝播していること、負荷の異なるクロックバッファ、あるいはバッファの温度差などがあります。このような影響の一部は制御可能ですが、設計者は、PLLを使ってクロックをリファレンスクロックに再同期させるため、能動デバイスを使うことがよくあります。

PLL回路は周波数と位相の制御に使います。周波数逓倍器や復調器、トラッキングジェネレータ、クロック回復回路として構成することができます。これらの各アプリケーションで必要な特性はそれぞれ異なりますが、いずれも同じ基本的な回路の概念を使います(図2)。

周波数逓倍器として構成したPLLのブロック図図2:周波数逓倍器として構成したPLLのブロック図基本的には、電圧制御発振器(VCO)の位相を制御するフィードバック制御システム。(画像提供:Digi-Key Electronics)

図2は、周波数逓倍器として構成した基本的なPLLのブロック図を示したものです。この回路の動作はあらゆるPLLに一般的なものです。基本的には、VCOの位相を制御するフィードバック制御システムです。入力信号は位相検出器の1つの入力に印加します。もう1つの入力は、N分周カウンタの出力からのフィードバック信号です。通常、これら2つの信号の周波数はほぼ同じです。

位相検出器の出力は、これら2つの入力の位相差に比例した電圧です。この信号はループフィルタに印加されます。PLLの動的特性はこのループフィルタで決まります。このフィルタ処理された信号がVCOを制御します。VCO出力の周波数は、周波数リファレンス入力(FIN)に供給された入力のN倍です。この出力信号は、N分周カウンタを介して位相検出器に戻されます。

通常、ループフィルタはそのPLLの用途に必要な特性に一致するように設計されます。PLLが信号を受け入れてトラッキングする場合、ループフィルタの帯域幅は、固定入力周波数を想定している場合より大きくなります。PLLが引き込んでロックオンする周波数範囲は、キャプチャレンジと呼ばれます。PLLがロックされ信号をトラッキングしているときにPLLが追従する周波数の範囲は、トラッキングレンジと呼ばれます。一般に、トラッキングレンジはキャプチャレンジよりも広いものです。信号周波数がどれだけ速く変化できるか、またその場合にもロックを維持できるかも、PLLのループフィルタで決まります。これが、最大スルーレートです。ループフィルタの帯域幅が狭いほど、位相誤差は小さくできます。これは、応答を遅くすることとキャプチャ範囲を狭めることの引き換えで得られます。クロックアプリケーションで使われるPLLは、主に固定周波数で動作します。

ゼロ遅延クロックバッファ

ゼロ遅延バッファとは、クロック信号をバッファリングして、単一のリファレンスクロック入力から複数のクロック出力を生成できるデバイスです。その複数のバッファ付きクロック出力は、リファレンスクロック入力と比較して遅延がほとんど、またはまったくなく、出力間のスキューも小さいものです。Cypress Semiconductorが提供するCY2308SXC-3Tのゼロ遅延バッファの簡略ブロック図を図3に示します。

Cypress Semiconductor CY2308SXC-3T 8出力ゼロ遅延バッファの図図3:CY2308SXC-3T 8出力ゼロ遅延バッファはPLLを使用して、全出力をタイムスキューほぼゼロで同期します。(画像提供:Cypress Semiconductor)

ゼロ遅延バッファは、リファレンス入力(REF)とフィードバック入力(FBK)を入力として位相検出器に引き込む整数PLLを使用して構成されます。フィードバック入力は、ユーザーが選択する出力の1つによって駆動されます。PLL内部の位相検出器は、2つの入力の位相や周波数に差が出ないようにVCOの出力位相を調整します。バッファ付きクロック出力の1つおよびその負荷が選択されて、位相検出器を介したPLLへのフィードバック信号になります。その出力負荷の変化に関係なく、PLLはこれらの出力負荷の変化を動的に補償します。その結果、出力負荷に関係なく、入力に対するフィードバック出力の遅延がゼロになります。

CY2308ファミリは4出力のバンクを2つ有し、10~133MHzの周波数範囲で動作します。入力~出力間のタイムスキューは250ピコ秒(ps)未満、出力間のクロックスキューは200ps未満です。入力~出力間のタイムスキューは、フィードバック入力に使う出力の負荷静電容量を変化させることで調整可能です。

この製品ファミリには、2分周分周器の構成の製品が複数用意されています。ブロック図に示すように、選択したコンポーネントは、そのような分周器を2つ備えた「-3」タイプのバリアントです。この構成では、ユーザーがリファレンスクロック入力周波数の2または4倍の出力を得ることができます。

ゼロ遅延バッファに最もよく使われるのは5出力構成で、複数のメーカーから提供されています。Cypress SemiconductorのCY2305SXI-1HT、IDTの2305-1DCGI8、ON SemiconductorのNB2305AI1HDR2Gは、よく似たデバイスです。これらはすべて、5つのバッファ付きクロック出力、1つのCLKOUTポート、およびクロック出力のクワッドバンクを備えています。CY2308と異なり、PLLフィードバック点は1つのCLKOUT信号に固定されています。

ゼロ遅延バッファのダイナミックス

ゼロ遅延バッファ内部のPLLは、基本的にフィードバック制御システムです。そのダイナミックスは、PLLのループフィルタによって制御されます。どんな制御システムにも言えますが、過度入力に対する応答のフィードバックループのダイナミックスを評価することが重要です。それを行う方法の1つは、ステップ状に変化する入力を印加してステップ応答を評価することです(図4)。

CY2305ゼロ遅延バッファのステップ応答のグラフ図4:66.67MHzで1ラジアン位相ステップを使用したCY2305ゼロ遅延バッファのステップ応答の評価。左上のグリッドが入力信号で、右上のグリッドが出力。(画像提供:Digi-Key Electronics)

入力信号は、66.67MHzの正弦波で、測定信号ウィンドウの中心に1ラジアンのステップがあります。この波形は、任意波形発生器(AWG)で発生させたものです。CY2305ゼロ遅延バッファの入出力は共に、時間軸設定を1目盛り10マイクロ秒(µs)にしたオシロスコープで測定します。

図4の左上のグリッドは入力信号で、右上のグリッドが出力です。時間間隔誤差(TIE)とは、測定されたクロックのエッジとその理想的な位置との時間差で、各波形について測定されるものです。これは実質的には、固定クロックレート(この例では66.67MHz)を基準にした、信号の瞬時位相です。入出力の各クロックサイクルのTIE値は、TIEトラックと呼ばれる波形としてプロットされています。入力のトラックは左上から2番目のグリッドです。この例では、位相のステップの振幅が2.4ナノ秒(ns)であることが確認できます。この値は、66.67MHzのクロック周波数に対して位相シフトが1ラジアンであることを示しています。

右の上から2番目のトレースは出力のTIEトラックです。この出力のトラックは、多少のオーバーシュートがあった後、入力の変化に一致する新しい平均値に落ち着いていることを示しています。上から3つ目のトレースは、左側の入力と右側の出力の水平方向拡大ズームです。入力ステップの細部を見ると、クリアな遷移であることがわかります。

出力を拡大ズームすると、多少のオーバーシュートがあった後すぐに、約500nsの約1サイクル後に新しい平均値に落ち着いているのがわかります。これは、このような大きな位相ステップに対して良好なステップ応答です。すぐに落ち着き、不安定な振動応答の徴候もありません。

最下部の2つのトレースは、入力(左)および出力(右)の水平拡大表示したものです。入力の大きな位相ステップが明確に確認できますが、この時間スケールでは遅い出力応答はそれほど明確ではありません。

まとめ

高性能デジタルシステムの設計者は、クロック分配タイミングの誤差や不確実さを防止するため、クロックの生成および分配の回路の設計に細心の注意を払っていく必要があります。クロックタイミングの問題は、システム性能の低下やタイミングマージンの減少、機能エラーを招きかねません。

既述のとおり、ゼロ遅延バッファは、複数のクロック信号を伝播してマスタクロック信号との同期を維持する場合に、アクティブ制御のための優れたツールとなります。検出した出力に大幅な負荷変動がある場合でも優れたトラッキングが可能です。ただし、上で示したように、アプリケーションの要件を満たすようにするには、ゼロ遅延バッファのフィードバックループのダイナミックスを注意深く評価する必要があります。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。

著者について

Art Pini

Arthur(Art)PiniはDigi-Key Electronicsの寄稿者です。ニューヨーク市立大学の電気工学学士号、ニューヨーク市立総合大学の電気工学修士号を取得しています。エレクトロニクス分野で50年以上の経験を持ち、Teledyne LeCroy、Summation、Wavetek、およびNicolet Scientificで重要なエンジニアリングとマーケティングの役割を担当してきました。オシロスコープ、スペクトラムアナライザ、任意波形発生器、デジタイザや、パワーメータなどの測定技術興味があり、豊富な経験を持っています。

出版者について

Digi-Keyの北米担当編集者