伝送アプリケーションのための複数の高速多重化DACの同期化

伝送アプリケーションのための複数の高速多重化DACの同期化

著者の連絡先情報

要約

このアプリケーションノートでは、多重化された入力または内蔵補間フィルタ付きの複数の高速ディジタル/アナログコンバータ(DAC)を同期させる方法を提示します。そのようなDACは、I/Qアップコンバータやディジタルビームフォーミング送信機で使用されます。これらのDACは、データソースとの同期のためのデータクロック出力を備えています。

はじめに

多くの伝送アプリケーションでは、正確に既知の位相差を持つ複数のアナログ出力を生成する必要があります。直交変調器(図1)では、イメージ除去を達成するためIチャネルとQチャネルは明確に定義された位相関係になければなりません。図1において、DAC1とDAC2の遅延は十分な整合が必要です。ディジタルビームフォーミングを使用する送信機では、多数のDACについて相対位相の正確な制御が必要になると考えられます。

Figure 1. DACs and first upconversion stage of an I/Q transmitter using MUX-DACs.
図1. MUX-DACを使用したI/Q送信機のDACおよび第1アップコンバージョン段。

MAX19692のような多重化入力を備えたDAC (MUX-DAC)、またはデータクロック出力付きの補間DACを使用する場合、入力データ速度はDAC更新速度の1/Nであり、DACは一方または両方のデータクロック遷移時にデータをラッチします。MAX19692の場合はN = 4であり、入力データ速度はDACの更新速度の1/4になります。DACはディジタルクロック分周器によって入力クロックから得られるデータクロック(DATACLK)を出力します。DACの起動時には、ディジタルクロック分周器はN通りの状態のいずれから始まるか分かりません。複数のDACを使用している場合、それぞれのDACのクロック分周器が異なる状態から始まる可能性があります。したがって、DACは異なるタイミングでデータをラッチすることになります。これを検出して補正しない限り、各DACが互いに1クロックサイクル以上遅れてデータを出力することになります。各DACのクロック分周器をリセットすることができればこの状況は回避可能ですが、この解決法にはいくつか問題点があります。クロック分周器の1つでエラーが発生した場合、エラー状態を検出するための何らかの手段を実装しない限り、DACは永続的に位相がずれたままになります。システムの頑強性を保証するためには、位相エラー状態を検出して補正を行うことが必要です。DACが非常に速い速度で動作している場合、入力クロックに対するリセット信号の同期も難題だと思われます。

図2に、MAX19692のクロック(CLKP、CLKN)およびデータクロック(DATACLKP、DATACLKN)インタフェースの簡単なブロック図を示します。最初のクロック4分周が2ビットのカウンタを使って行われ、ディジタルDAC入力をラッチするために使用されます。カウンタは、4つの状態のいずれかからスタートします(図3)。2つのMUX-DACを使用する場合、2つのDACが異なる状態から始まる可能性があります。このためDAC1のラッチインスタンスは、DAC2のラッチインスタンスに対して-1、0、1、または2クロックサイクルのいずれかの遅延を伴う結果になります。

MAX19692のデータクロック出力は、データ入力ラッチクロックからさらに2倍または4倍に分周されます。そして、ダブルデータレート(DDR)モードではクロックの両端で、またクワッドデータレート(QDR)モードではクロックの90度ごとに、データがラッチされます。複数のDACのデータクロックの遅延が一致しているか、またはデータクロックが互いに反転している場合も、ラッチクロックが一致することになります。

Figure 2. MAX19692 internal clock interface block diagram.
図2. MAX19692の内部クロックインタフェースのブロック図

Figure 3. MAX19692 latching clock (four possible states).
図3. MAX19692のラッチ用クロック(起こりうる4つの状態)。

DACの同期の問題には、2つの要素があります。

  1. DACのラッチ用クロック間の相対位相を検出する必要がある。
  2. DACの位相が正しく揃うまでDAC間の相対位相を調整する必要がある。

DAC間の位相誤差の検出は、2つのDACのデータクロック出力間の位相誤差を検出することによって行うことができます。位相検出器には、XORゲートのような単純なものから、位相周波数検出器(PFD)のような複雑なものまであります。

2つのDACの位相は、DACデータクロック出力の位相差がゼロになるまで1つ以上のDACに対するクロックを操作することによって調整することができます。もう1つの方法は、データクロック間の遅延したDACサイクル数を測定して、それに合わせてデータを遅延させるというものです。以下の各段落では、同じI/Q構成について両方のアプローチを示します。

クロックパルスの「スワロー」処理によるDACの位相調整

DACに矩形波(たとえばECLなど)のクロックを使用している場合、図4に示す単純な高速ロジック回路を使用することによって、2つのDAC間の同期を取ることができます。分かりやすくするため、この図のロジックはシングルエンド動作用に構成してあります。しかし、より実用的な実装では、ECLのような差動ロジックを使用して高速性と低ノイズを実現することになると思われます。

Figure 4. Simple high-speed logic circuit for DAC synchronization.
図4. DAC同期化のための単純な高速ロジック回路

MUX-DAC1のクロック経路にANDゲート(G1)を挿入することで、MUX-DAC1に与えるクロックの操作が可能になります。ANDゲート(G2)は、遅延を整合させるためにMUX-DAC2へのクロック経路に挿入しています。XORゲート(G3)は、位相検出器の役割を果たします。DATACLK1とDATACLK2の出力が異なるとき、「1」が出力されます。G3out = 「1」であれば、MUX-DAC1へのクロックパルスを「スワロー(飲込み)」処理して、CLKの1クロック周期分だけDATACLK1のエッジをシフトさせます。G3の出力(G3out)の立上りエッジを、FF1とG4で構成された正のエッジ検出器(PED)で検出します。立上りエッジを検出すると、PEDは1クロックサイクルの間「0」を出力します。次にこの信号がFF2によってタイミング変更されてからG1に印加され(SPB)、結果としてMUX-DAC1へのクロックパルスが1つ抑止されることになります。これによって、CLKの1クロックサイクル分だけDATACLK1が遅延します。数クロックサイクル後には、図5に示すように、DATACLK1の遅延がDATACLK2と揃うことになります。DACのクロック信号のグリッチを防ぐため、クロックの立下りエッジでフリップフロップの更新を行うことが重要です。この方法を使用する場合、両方のMUX-DACへの入力のタイミングは同じになります。ルーチン内の遅延も計算に入れることが重要であり、2つのフリップフロップのセットアップ時間とホールド時間の整合を取ること、およびクロックがローのときにSPB信号のパルスをG1に印加することを確実に行ってください。さもないと、クロック信号にグリッチが発生する恐れがあります。また、ジッタの発生を最小限に抑えるため、クロック同期回路への給電はノイズの無い電源によって行うことが推奨されます。

Figure 5. Timing diagram showing logic circuit operation.
図5. ロジック回路の動作を示すタイミング図

入力データのシフト処理によるDACの位相調整

Xilinx®のFPGAが持つ高度なディジタルクロックマネージャ(DCM)を利用して、2つのMUX-DACのデータクロック間の位相差を検出することができます(図6)。DCM1はDATACLK1およびDATACLK2と同じ周波数のクロックを生成します。DCLK1のディレイはクロック周期の1/256のステップで動的に調整することが可能です。フリップフロップDFF1およびDFF2は、1クロックサイクルに1回ずつDATACLK1とDATACLK2のサンプリングを行います。DATACLK1がローのときにDFF1がDATACLK1のサンプリングを行った場合、DFF1は定常的な「0」を出力します。DATACLK1がハイのときにDFF1がDATACLK1のサンプリングを行った場合、DFF1は定常的な「1」を出力します。したがってDFF3とDFF4には、DCLK1のディレイ設定とは無関係に、任意のクロック位相でクロックを与えることができます。DCM1の動的ディレイ調整機能を使用して、DCLK1のディレイを所定の範囲内で1段階ずつ変化させ、DFF3とDFF4の出力を読み取ることによって、DATACLK1とDATACLK2の立上りエッジに一致するディレイ設定を見つけることができます。そのディレイ設定から、MUX-DAC2へのデータと位相を合わせるためのMUX-DAC1へのデータの遅延に必要なDACのクロック数を計算することができます。FPGA内に4×4バレルシフタを実装することによって、DACクロックサイクル1つの増分でデータのレイテンシを変更することができます(図6参照)。

MAX19692には、A、B、C、Dと名づけられた4つのパラレルデータポートがあります。DACに供給されるワードのシーケンスは、An、Bn、Cn、Dn、An+1、Bn+1、Cn+1、Dn+1、An+2、というようになります。12ビットの4 × 4バレルシフタ(図6)によって、CLKの-1、0、1、または2サイクルを単位としてMUX-DAC1へのデータを遅延させることが可能になります。こうして、2つのDAC出力データが同期するまでデータレイテンシを調整することができます。この場合、2つのDACのデータクロックはクロック周期(CLK)の整数倍だけずれる可能性がありますが、これを変更する試みは行われません。DACのセットアップ時間とホールド時間はデータクロックを基準にしているため、2つのDACへのデータのタイミングは異なる必要があるからです。これは、DACを駆動しているFPGA内の複数のDCMを使用して実現することができます。

Figure 6. MUX-DAC synchronization using a barrel shifter implemented in the FPGA.
図6. FPGAで実装したバレルシフタを使用するMUX-DACの同期

それぞれのDACに1つのPLLを使用するDACの同期化

位相ロックループ(PLL)シンセサイザを使ってDACのクロックを供給する場合、2つのDACを同期させる方法の1つとして、それぞれのDAC用に独立したPLLを用意してクロックを供給することが考えられます(図7)。DAC1とDAC2のLVDSデータクロック出力の位相を、基準クロックと比較します。この場合、DACに内蔵されたクロック分周期を、クロック生成PLLのフィードバック分周期として使用します。

Figure 7. MUX-DAC synchronization using one PLL per DAC.
図7. DACごとに1つのPLLを使用するMUX-DACの同期

2つのDACのセットアップ時間とホールド時間を、この方法を使って整合させます。しかし、この解決法には2つの欠点があります。2つのPLLによる追加コストと、PLLの位相ノイズの制約によって性能が制限される可能性があることです。

結論

I/Qアプリケーションでの使用に最適なMAX19692は、4:1入力データマルチプレクサを内蔵した、2.3Gsps、12ビットのマルチナイキストDACです。I/QアプリケーションにおけるMAX19692の使用について強調しましたが、ここで検討したソリューションは、3つ以上のチャネルが存在するアプリケーションでMAX5858Aを使用する場合など、他のDACやアプリケーションにも適用可能です。推奨ソリューションについては、任意の数のDACに拡張することができます。高速なデバイスを適切に同期させるためには、基板トレースに伴う遅延も考慮に入れる必要があります。

 

 エッセンシャル・アナログ(必須アナログ) ICについての詳細はこちら

  エッセンシャル・アナログ(必須アナログ) IC