差動信号は、ロジック部品および製品を接続するための主要な手段となり、PCIなどの並列バスアーキテクチャーの多くを置き換えました。差動信号がデジタル世界を支配している主な理由として、並列シングルエンド信号プロトコルよりはるかに高いデータ帯域幅を1対の配線で実現できることが挙げられます。ご存知の通り、インターネットは差動信号なくして成立しません。
差動信号の例を以下に示します。
• USB
• PCI Express
• HDMI
• Infiniband
• SATA
• 有線イーサネット
• Hypertransport®
• LVDS
• ECL長距離ラインドライバー
• 2相クロッキング
• DDRクロックおよびデータ線
差動信号は、ほぼ全ての新規設計で選択されるプロトコルになったため、その動作原理、重要な設計上の考慮事項、重要でない事項を理解することが重要です。残念ながら、このプロトコルの動作原理、世間に広まっているどのルールが有効であり、または有効でないかについて非常に多くの誤解が存在します。有効なルールを理解しない場合、設計が過剰に複雑になり、正常に機能しない恐れがあります。この章は、差動信号に関する不明瞭な点を解消することを目的としています。
設計上の判断を適切に行うには、差動信号の動作原理を理解することが重要です。図4.1に、オリジナルの差動信号プロトコルの回路図を示します。これは、ECL(Emitter Coupled Logic)です。この回路は、2つの箱またはシャーシ(BOX A、BOX B)で構成されています。これらの2つの論理GNDは、シングルエンド論理では正常に動作できないほど大きいDCオフセットを持つ経路で接続されています。
図4.1 ECL差動回路の経路
BOX A内で、シングルエンドの論理信号は 2つの信号(A、A-)に変換されます。これらは互いに反転した同じ信号です。2つの信号に共通することは、論理状態が変化する際に2つの信号が中央(論理1と論理0の真ん中)で交差するように互いに密接に同期していることです。設計者の仕事は、BOX Bのエミッタ結合した2つのトランジスタのベースに同時に到達するように、これらの2つの信号を供給することです。これは、それぞれ通常50Ω、かつ同じ電気長の並列終端された伝送線路上に各信号を送ることで実現されます。差動インピーダンスはかかわっていないことに注意します。ここで、「業界は、どのような経緯で、差動インピーダンスが重要であると考えるようになったか」という疑問が生じるかもしれません。これについては、後で説明します。
BOX Bのエミッタ結合したトランジスタペアは、より一般的にはカレントスイッチと呼びます。その役割は、電流Iが一対のどちらか片方に流れるように制御することです。電流がある一方の側に流れている場合、論理1を表し、その反対側を流れている場合、論理0を表します。2つの信号(A、A-)が論理状態を切り換えた場合、2つのトランジスタのベース電圧は反転し、電流が入れ替わって論理状態が変化したことを示します。そのため、BOX Bの回路は交差(クロッシング)検出器といえます。信号が交差する精度を保つことは、差動ペア経路を設計する場合の最大の課題です。これについては後で詳しく説明します。
信号プロトコルのヒント
差動信号を使用する理由は、2つの箱のGNDが遠く離れすぎているためにシングルエンド論理が誤動作する場合があるためです。論理経路の両端のDCオフセットの補償は、BOX Bの2つのトランジスタのエミッタを電流源Iの上に接続することで実現します。これにより、BOX Aの電位が上下するに従ってこれらのトランジスタのエミッタの電位も上下します。BOX Bの2つのトランジスタのコレクタも電流源です。その結果、BOX Bの2つのトランジスタ(カレントスイッチ)の電位は、BOX Aに合わせて広い電圧範囲にわたって上下できるため、DCオフセットにうまく対応でき、BOX Bに有効な論理信号を供給できます。
有線イーサネットの場合、2つの箱を接続するより線ペアの各端にトランスを使うことでこのDCオフセットの問題を解決しています。
図4.1で、2本の独立した伝送線路(一方はA用、他方はA-用)があることに注意します。各伝送線路は、その伝送線路のインピーダンス(通常50Ω)で並列終端されています。これらの伝送線路はどちらも、他方が存在することを知らず、他方の線路の現象とは無関係に動作できます。差動インピーダンスが必要である、またはこれらの2本の線路を互いに密結合することが重要と考えた根拠について知りたくなるかもしれません。
図4.2に、オリジナルのLVDSの回路図を示します。各並列終端が接続するVrefがあることに注意します。片側が論理High(1)、反対側が論理Low(0)の場合、2つの信号が設計通り中央で交差する限り、Vrefに流れ込む、またはVrefから流れ出す正味の電流はゼロです。これらの条件の下で、「Vrefの接続は不要であり、大多数の設計で省略され、結果的に直列接続された2本の50Ωの抵抗になる」という結論が正しく導かれました。これらの2本の抵抗を1本の100Ωの抵抗に置き換えることは合理的であり、したがって、100Ωの差動インピーダンスが必要であると考えられました。
この配置は、データレートが非常に高い場合(2.5Gb/s以上)、許容できなくなります。2つのエッジ(スキュー)にずれがない場合、この回路は正常に動作します。やがて2つのエッジがずれるようになるとすぐに、2つのエッジはもはや中央では交差しなくなり、何らかの電流がVrefに流れ込むまたはVrefから流れ出すことが必要になります。Vref接続がない場合、エッジが損なわれ、結果的に性能が劣化します。
図 4.2 オリジナルのLVDS回路
図4.1または4.2から、差動ペアの各端はそれが接続する伝送線路のインピーダンスで並列終端する必要があることが分かります。ほとんど全ての場合、これらの線路は50Ωです。従来のLVDSを除く全ての設計において、終端はICパッケージ内のIC自体に内蔵されており、Vrefに相当する電位に接続した50Ωの抵抗となっています。従来のLVDSの場合、設計者は、最後の負荷にできるだけ近づけて終端抵抗を配置する必要があります。Vref終端電圧が存在しない場合、1本の100Ωの抵抗を入力とレシーバーの間に接続することで十分です。
この章の最初に記載しているプロトコルの一部では、100Ω差動または50Ωシングルエンド伝送線路以外のインピーダンスを推奨しています。例えば、LVDSは93Ω差動または46.5Ωシングルエンドを規定しています。設計の大半が50Ωであり、大多数がそうなる予定である場合、スタックアップ設計は2種類のインピーダンスに対応することが必要になります。これは望ましくありません。これらの全てのプロトコルを調べることで、これらは全て(DDRデータおよびクロック線を含め)50Ωの線路で正常に機能することが確認できました。したがって、同一スタックアップ中で2種類のインピーダンスを持つ必要はなく、これにより配線を簡単にできます。
カンファレンスで、密結合が推奨されることがあります。よく言われる理由は、密結合に同相モードノイズ除去の効果があるということです。図4.3に、共通の5milライン、5milのスペース(隣接する駆動ラインとの間隔)のルールで配線した差動ペアの図を示します。これらの伝送線路はオフセットストリップラインと呼ぶレイヤーに配置されます。第2章のクロストークの考察を参照すれば、DIFF Aペアの近い方に結合するノイズは、DIFF Bに結合するノイズより大幅に大きいこと(2%に対して12%)が分かります。これでは同相モード除去になりません。同相モード除去をするには、差動ペアのそれぞれと交差する誘導信号の電磁界強度が同じである必要があります。これはPCB内のトレースでは達成できません。これを頼りにする設計者は、厳しいクロストーク問題に直面する可能性があります。
同相モードノイズ除去はPCB内では実現できないため、設計者は、差動ペアのそれぞれがシングルエンドトレースであると仮定し、クロストーク問題を生じさせる恐れがあるその他の信号と差動ペアのそれぞれとの間に十分な間隔を確保する必要があります。
図4.3 問題のある信号が横に配線されているストリップラインレイヤーの差動ペア
密結合差動ペアは推奨されません。
密結合からのクロストークが問題になるとしても、差動ペアの密結合を推奨する人がいます。筆者は、複数のカンファレンスでこれを耳にしたことがあります。図4.4に、3.125 Gb/sで動作する密結合差動ペア(左)と疎結合差動ペア(右)を示します。明らかに、ペアを密結合すると疎結合するより信号は劣化しています。
密結合差動ペア(図4.4の左側)が疎結合ペア(図4.4の右側)より悪く見えるのはなぜでしょうか。左のトレースは、線幅5mil、間隔5milです。右のトレースは、線幅10mil、間隔15milです。どちらの場合も、差動インピーダンスが100Ω、シングルエンドインピーダンスが50Ωになるようにトレース幅を設計しています。
2つの信号の振幅の差は、この例でトレース幅が狭いことによる銅箔の損失の結果です。トレース幅が、左側が5milで右側が10milである理由は、2本の伝送線路が互いに近接して配置されている場合、各伝送線路が他方のインピーダンスを低減するためです。それを50Ωに戻すには、各トレースを狭くする必要があるため、銅箔の損失が増加します。
図4.4 密結合と疎結合の3.125 Gb/s差動ペア
第2の考慮事項は、損失の問題よりも重要かもしれません。左側の例の伝送線路を、コネクタピン領域またはBGAの下部のビア列を通して配線するために分離する必要がある場合、伝送線路はもはや相互に作用せず、それらのインピーダンスは72Ωに急増します。これは深刻なダメージをもたらすインピーダンスの変化であり、許容できません。そのため、密結合した状態で配線を始めた場合、配線長全体にわたって結合した状態を保つ必要があります。この制約によって配線は、不可能ではないにしても、困難になる可能性があります。
高速差動ペアの経験が豊富な設計者なら、よりよい間隔ルールは「なるべく離す」ルールであることを知っています。つまり、この不要な相互作用を回避できる間隔を選択するということです。図4.5に、2本の50Ω伝送線路のインピーダンスが、両者の間隔が減少するにつれてどのように相互作用するかを示します。この例は、図4.3に示すものと同様のストリップラインレイヤーに対応するものです。間隔が10milである場合、インピーダンスの変化は0.5Ωまたは1%であることに注意します。このインピーダンスの変化量が許容できるかどうかは、耐え得る劣化の程度で決まります。しかし、ほとんど全ての場合許容できます。インピーダンスの変化が許容できる場合、「なるべく離す」間隔ルールを適用します。間隔がより広い場合は問題ありません。
図4.5 オフセンターストリップライン伝送線路のインピーダンスと間隔
このセクションで前述したように、差動信号は、大きさが等しく極性が逆の2つの信号を利用して論理状態の変化を検出します。スキューとは、差動ペアのこの2つの信号の到達時刻の差です。到着時刻が離れすぎている(スキューが大きすぎる)場合、レシーバーは論理状態の変化を正確には検出できず、リンクできません。長さを一致させる目的は、差動ペアのスキューを最小限に抑えることです。設計者は、長さの一致の許容値の厳しさと、長さを一致させることの難しさとの適切なトレードオフを考慮する必要があります。例えば、LVDS規格は、2つのエッジが最大400ピコ秒離れて到達でき、プロトコルは誤動作しないことを規定しています。基板材料内の信号速度では、400ピコ秒は約2.4インチ(約6cm)の配線に相当します。LVDS設計ガイドは、長さの一致は100mil(2.54 mm)とする必要があると規定しています。明らかに、この要件の作成者は過度に保守的であり、これらの信号のレイアウトを必要以上に難しくしました。
表4.1 データ速度とユニットインターバル
差動ペアの長さの不一致(スキュー)がユニットインターバルの4分の1以下の場合、リンクは正常に機能することが実証されています。ユニットインターバル(UI)とは、所定のデータ速度での1つのデータビットの長さです。表4.1に、高速プロトコルの主なデータ速度とユニットインターバルを示します。UIの4分の1(ピコ秒)と、それに相当するPCBでの配線長(mil)も示しています。
スキューの潜在的な要因として、各積層で補強として使われるガラスクロスの不規則性があります。図4.6に、一般的に使用されるガラスクロスの写真を示します(左が1080、右が3313)。各写真には、ガラス繊維束とその上にひかれるトレースの幅を比較できるように3.5milの針金が写っています。
1080ガラスクロスは4milコアを作成するために使用する最も一般的なガラスクロススタイルです。ガラス繊維が固く縛った束のようになっており、束と束の間に、樹脂で満たされる空間が大きく空いていることに注意します。ガラスの比誘電率は約6であり、樹脂の比誘電率は3未満です。トレースがガラス繊維束の上を通る場合とガラス繊維束を避けて通る場合がある(図4.6の左を参照)ために、この比誘電率により2つの事象が発生します。第1に、インピーダンスが非常に広い範囲にわたって変化します。図4.7(左)に、これを示します。第2に、速度が大幅に変化します(ガラス繊維束の上は遅く、樹脂の上は速い)。差動ペアが同じように進むとは限らない(1080ガラスクロスの上を通る場合と通らない場合がある)場合、両者の速度が異なることになりスキューの原因となります。
この問題の解決策はガラス繊維束を広げることです(図4.6の3313参照)。
図4.6 1080および3313ガラスクロス(基準として3.5milの針金を示す)
図4.7 インピーダンス対トレース長(1080ガラスクロス、3313ガラスクロス)
14インチ(31cm)の長さの差動ペアで62ピコ秒ものスキューを持つテスト用PCBを作成しました。織目によるスキューを回避する方法の詳細はこのドキュメントの範囲外ですが、5Gb/s以上のデータ速度での不具合の原因になることが知られています。
ジッターは、レシーバーでデータを確定するのに使うクロックに対するスイッチングエッジの時刻のビット間での変動として定義されます。ジッターが過大になると、データ経路が機能しなくなります。この章の最初に記載したプロトコルの多くには、最大ジッター仕様があります。
図4.8に、データビット間の交差(クロッシング)の検出精度に起因するジッターを最小化する上で許容される長さの不一致の量の計算方法を示します。立ち上がりおよび立ち下がり時間の「直線」部と呼ぶ部分で2つの信号が交差する場合、ビット間ジッタ―(クロック信号に対する変動、図4.8(上)の波形の上部のチェックマークの間隔)は最小になります。図4.8(下)の波形のように、2つの波形がそろっていない場合、データの変化を検出できたとしてもビット間の精度(ジッター)が悪化し、クロッキングエラーの原因となる可能性があります。
どの程度のずれが許容できるかを判断するために長さ一致の許容誤差(±)を求めるには、図4.8のチェックマーク間の時間を測定し、それを長さに変換して2で割ります。
図4.8 差動信号の交差と長さ一致
業界にはさまざまな差動ペア配線ルールがあります。その一部を以下に示します。
以上の考察を振り返ると、まず第一に、差動ペアの2本の配線が実際は、互いに独立した2本のシングルエンド伝送線路であるということが言えます。したがって、上記の全ての規則が適用されるわけではありません。ここまでの考察から以下の結論を導くことができます。
差動ペアの2本を、長さ一致要件を満たすその他の全てのシングルエンド伝送線路のように独立した伝送線路として配線します。
差動ペア経路の両端のDCオフセットがレシーバーの許容値を超える場合、AC結合コンデンサーが必要になることがあります。PCI Expressの場合、DCオフセットの問題がない場合でもコンデンサーは常に必要です。起動時にシステムがそれらのコンデンサーを使って、スイッチICの出力に負荷が接続されていることを検出するためです。
AC結合コンデンサーを配置すべき場所について質問されることがよくあります。以下に例を示します。
伝送線路は線形回路であるため、全ての条件が同じだとすると、伝送線路が存在する位置は問題にならないはずです。ビアを使って伝送線路を接続していない限り、伝送線路が存在する位置は問題になりません。つまり、トレースがコンポーネント実装パッドと同じレイヤーにある限り、トレースの位置は問題になりません。
データ速度が低ければ (約 3 Gb/s 未満) 、ビアで接続してもトレースの位置は問題になりません。この章の終わりの参考1では、コンポーネントピンへの接続とレイヤーの変更に使うビアが、高いデータ速度でいかに深刻な問題を引き起こすかについて考察します(参考1を参照)。PCI Expressの設計ガイドには、コネクタピンに必要なビアの扱い方に関するセクションがあります。
次のような経験則があります。「AC結合コンデンサーの実装パッドの下のGNDを除去するとシグナルインテグリティーが改善する。」このルールは、それが必要であるまたは価値があるという裏付けを伴っていません。筆者は、AC結合コンデンサー(1つは実装パッドの下のGNDを除去、もう1つのGNDはそのまま)を使い、同一の差動ペアを配線したテスト用PCBを作成しました。測定データは、非常に小さな違いがあることを示しました。その違いとは、GNDの除去は、GNDをそのままにした場合と比べてわずかな劣化を引き起こすということでした。
差動信号のあまり目立たない利点 - 組み込みクロック
設計者が直面している最も困難な課題の1つは、データを正確にクロッキングするには、全てのデータおよびアドレス線をクロック信号と同じ長さに保つために幅広のパラレルデータバスが必要であるということでした。ほぼ全ての差動信号プロトコルは、複雑なエンコード方式を使ってデータに埋め込まれたクロックを使う仕組みになっています。これにより、データおよびアドレスと、クロックの長さを一致させる必要がなくなりました。
CMOS差動信号はECLの例(図4.1でこのプロトコルの動作原理を説明しています)とは異なる、と思われる方もいるかもしれません。図4.9は、LVDS差動ペアの回路図です。図に示すように、ECLの例と同様にBOX Bのカレントスイッチに2つの信号を供給する2本の伝送線路があります。これらの2つの回路の主な違いは、GNDオフセットに対処するために使う電流源が、LVDSの場合は経路のドライバー端にあり、ECLの場合はレシーバー端にあるということです。どちらの場合も、レシーバーは、論理状態の変化を検出する交差検出器として機能します。
図4.9 LVDS差動ペア
データ経路が長くデータ速度が速くなると、経路での損失が信号劣化の重要な要因になってきます。損失の主要因は、積層の誘電損とトレース自体の銅箔の損失です。これらの損失を最小限に抑える新しい積層が開発されています。銅箔の損失は、トレースの表面を非常に滑らかにすることで最小化されています。損失を考慮すべきデータ速度に達した場合、銅箔、積層、回路自体の正確なモデルを用いたシミュレーションを実行し、設計案の損失が限度内にあることを確認する必要があります。
この10年間のトランスミッタ―とレシーバーの両方の設計の進歩によって、38dBもの経路損失を補償できるSerDes(ドライバー/レシーバーのペア)が誕生しました。これにより業界では、比較的簡単に28Gb/s以上で動作するPCBを設計できるようになりました。
差動信号は、信号源と負荷の間のデータ転送のための主要な手段となり、ほぼ全ての並列データ転送プロトコルを置き換えました。差動信号は非常に分かりやすく使いやすい技術であり、安定した性能を達成するために必要とされるルールが、非常にシンプルで簡単です。差動信号を使用するプロトコルは、全てが交差検出器です。これらの信号プロトコルを使う設計者に課せられた仕事は、差動ペアの2つの側が交差する場所が安定していることと、論理状態の変化を確実に検出するのに十分な大きさの信号がレシーバー端に存在することを確認することです。
高速設計について、Judy WarnerとゲストスピーカーのLee Ritchey氏の対話をOnTrackポッドキャストでご覧いただけます。 こちらよりでポッドキャストの全エピソードをご覧ください。