News and Views 2015 Autumn / Vol. 15: ものづくり

PCBの同時スイッチングノイズ(SSN)問題を回避するために

プリント基板(PCB)のデジタル回路設計では、さまざまな場所で発生する信号ノイズに常に対応し続けなければなりません。さらに、高速並列バス上のデータレートが増大する中、チップ内部から外に伝搬するノイズについても考慮する必要があります。この種のノイズの1つである同時スイッチングノイズ(SSN)は、チップ上のバッファの同時スイッチング出力(SSO)に起因して発生します。

SSNの発生原因

チップ内の信号は、電源レールから電力を得てステートとして遷移します。一定数以上の信号が同時にスイッチングすると、すべてのスイッチング出力で適切な電流量が得られず、レールの電圧が低下してしまう場合があります。特に、PDN(電源供給ネットワーク)内の電流を供給するコンデンサから離れすぎていたり、コンデンサのレイアウトから大きな直列インダクタンスが生じたりする場合に、この現象が発生します。

また、レール電圧の低下が起きると、ドライバはクリーンな信号を出力できなくなります。1つの信号をスイッチングさせると他の信号出力も変動するため、クロストークによって誘発されるノイズとも似ています。

図1. IBIS 5.0のパワーアウェア機能図1. IBIS 5.0のパワーアウェア機能

電圧レール上の信号の電流と、その後生じる他のデバイスに対する影響を正確にシミュレーションするには、バッファの振る舞いに関する情報が必要となります。これには、SPICEモデルを利用することもできますが、SPICEと同等の精度ではるかに高速のシミュレーションを実現するIBIS(I/O Buffer Information Specification)標準の普及が広がっています。IBIS 5.0は、この「パワーアウェア」トポロジのシミュレーションに必要とされるデータ構造をサポートしています。

SSNは、DDR4のような高速パラレルバスと特に密接な関連性を持っています。パラレルバスでは、各ビットが他のビットと独立して動作します。このため、全ビット信号がすべて同時にスイッチングすると、電源レール上により大きな負荷が発生します。

PDNへの影響

次に、SSNとシグナルインテグリティの問題に対するPDNの影響について考察します。PDNの信号にもたらす影響を分かりやすく示すために、2400Mt/sで実行している単一DDR4のバイトレーンで、各信号が互いに異なるランダムシーケンスを実行している例について考えてみましょう。このシミュレーション設定では、パッケージコンデンサをロードしていません。高周波遷移の主要な電力供給源をあえて除去しているため、SSNの影響を誇張させることができます。

図2. 設計問題を含むPDN図2. 設計問題を含むPDN
図3. 設計問題を含むPDNのワーストケースのビットパターン図3. 設計問題を含むPDNのワーストケースのビットパターン
図4. PDNのワーストケースを改善したビットパターン図4. PDNのワーストケースを改善したビットパターン
図5. 改良したPDNですべての信号に互いに異なるランダムビットパターン図5. 改良したPDNですべての信号に互いに異なるランダムビットパターン
図6. 改良したPDNでのDBI処理したビットパターン図6. 改良したPDNでのDBI処理したビットパターン

図2において、DQ0の開口部はアイマスク周囲にあまりマージンがありません。これはあまり良い状況ではありません。

問題を含むPDN: スイッチングのワーストケース

各信号が互いに異なるランダムシーケンスでなく、すべて同じシーケンスでスイッチングした場合に、状況はさらに悪化します。この場合はSSNによる影響としてはワーストケースとなり、すべての信号が一斉にスイッチングして電圧レールに大きな負荷を与えます。

図3の通り、すべてのビットが同じデータパターンに合わせてスイッチングすると、DQ0の開口部はさらに深刻な状況となります。この場合、開口部は閉じてしまいます。

PDNの改良

次に、最初に取り外しておいた4.7uFのパッケージコンデンサを挿入してみましょう。これはESR(等価直列インダクタンス)の低いコンデンサでなければならず、インダクタンスを発生させるループエリアを最小化するように配置します。

この設定では、すべての信号は依然として同じビットパターンでスイッチングしています。つまり、パッケージコンデンサを挿入した際のワーストケースということになります。図4のDQ0波形は、図2のパッケージコンデンサを除去して得られた結果より良好ですが、アイマスクは辛うじて合格するレベルです。

もっと現実に即した状況では、信号はそれぞれ独立しています。各信号にそれぞれ独自のランダムビットストリームを使うと、図5のようなDQ0の開口部となります。

DQ0アイダイアグラムは劇的に改善されました。マスク内で開口部の高さの最小値は275.5mVとなり、パッケージコンデンサを使った設定ですべての信号を同時にスイッチングした開口部の高さである211mV(図4)よりも良好でした。また、パッケージコンデンサを除去した設定で信号を独立してスイッチングした開口部の高さである237mV(図2)よりも良好でした。

以上のデータから、適切なパッケージコンデンサを追加するか、同じスイッチング操作を同時に実行させないことによって、開口部を改善できることが分かりました。すべての信号に同じスイッチング操作を同時に実行させないためには、DDR4のDBI(データ・バス・インバージョン)オプションを利用します。それでは、最後にDDR4のDBIオプションについて説明しましょう。

DBIオプションを使ってSSN問題を回避する

DBIは、DDR4のオプション機能です。DBI機能をアクティブにすると、ドライバ(コントローラによる書き込み時、あるいはDRAMからの読み出し時)がレーン上にデータを送出するときに、「0」(論理ゼロ)ビットの数を合計します。「0」をレーンに送出しているビット数が5以上の場合、バイト全体を反転し、DBIを示す9番目のビットがゼロとなります。この結果、任意のトランザクションにおいて、8つのDQビットと9番目のDBIビットのなかで少なくとも5ビットは「1」ということになります。また、データレーン全体において遷移中の信号の最大合計数は、5つの「1」から9つの「1」という遷移か、9つの「1」から5つの「1」という遷移になります。つまり、すべてのビットが「0」から「1」へ、あるいは「1」から「0」へと遷移する状況には決して陥りません。
結論として、同じデータバスと同じデータパターンの設定で実行してもDBI処理された出力となり、図6に示したDQ0波形となります。

DQ0の開口部の高さは315mVを超えており、これまでのすべての条件を上回っています。DBIはデータ依存性を持っているため、DBIのメリットの変動幅を実装前に分析しておく必要があります。

まとめ

良好なPDN設計においてDDR4のDBI機能を選択した場合、SSNは設計上の問題にならないはずです。SSNおよび同様の課題についてさらに詳しい情報は、DesignCon Best Paper Award候補に選出された技術文献『DDR4実装基板設計とシグナルインテグリティ検証の課題』をご覧ください。