Keysight Infiniium 90000 DSO/DSA Series Oscilloscopes

デジタル機器の
Keysight Infiniium
最新デバッグ手法
90000 DSO/DSA Series
Oscilloscopes
Engineered for unmatched
~オシロスコープだけでは限界!様々な測
定器を使った効率的なデバッグのノウハウ
real-time measurement accuracy
Application Note
02 | Keysight | デジタル機器の最新デバッグ手法
デジタルの世界ではゴールは{1}{0}を正しく通信させる事であ
ります。{1}{0}を間違えて、機器間あるいはチップ間を正しく情
報が伝達されないと困ります。だからオシロスコープでアイパタ
ーンやジッタを測定して、このようなビットエラーが起きていない
かをエンジニアは確認します(図1)。
評価においてアイパターンやジッタの測定はどのような場合でも
必要ですが、デバッグとなると話が違います。定常的あるいは高
確率で波形に異常がある場合には有効です。アイパターンが潰
れた瞬間を捉えたり、大きなジッタが発生した際のノイズ源を探
し当てることは比較的容易です。ところが、昨今急増している突
発的なトラブルの場合はそのままでは通用しません。
数秒に1回の異常や、色々な条件が複雑に絡み合った際に起こ
る波形異常をオシロスコープで観測するのは容易ではありませ
ん。何時間もオシロスコープで波形を重ね続けていても、捉える
事ができない可能性が高いのです。デジタル・オシロスコープは
本質的にデッドタイムという物が存在し、流れている波形の 90%
以上は見落としているからです(図2)。どんなに波形更新が速い
オシロスコープであっても、それは程度の差に過ぎません。数時
間に 1 回の異常だと話になりません。異常を観測できなければ、
デバッグのしようがありません。
図1:アイパターンの測定(Keysight DSA90000A シリーズ)
左はアイが開いて{1}{0}の判別が容易。
右はアイが潰れて{1}{0}のエラーが起きやすくなっている。
このように問題が複雑化、突発的になっている現状ではオシロ
スコープ単独で異常を捉えるのは困難です。他の測定器を組み
合わせて使用する事により道が開けてきます。中でもロジックア
ナライザは全体像を把握するにも、複雑な条件でトリガをかける
のにも優れた測定器です。現在の複雑なデバッグには欠かせな
いツールと言えるのですが、残念ながら多くのエンジニアが依然
としてオシロスコープだけで格闘しています。
市場のトラブルで最も多いのが DDR メモリ周りです。毎週のよう
にお問い合わせを頂いています。各インタフェースのシリアル
化・差動化が進む中、DDR メモリの信号はパラレル・シングルエ
ンドだからと言えるでしょう。本稿では私が経験したお客様との
DDR のデバッグ事例をいくつか具体的に挙げながら、デバッグ
の一般的な手順や様々な測定器を組み合わせたノウハウをご
紹介します。
オシロスコープだけで出来るデバッグ
先に述べたように、あくまでもある程度以上の頻度で起こる異常
に限りますが、オシロスコープだけでも機能を駆使すれば高度な
デバッグが可能です。
ジッタトレンド波形とノイズ源波形を同時に表示
オシロスコープ単独のデバッグで、最初に出来ることとしてはジ
ッタ解析です。クロック信号あるいはデータ信号のジッタの挙動
(ジッタトレンド)を見れば、信号に重畳したノイズが分かります。
空いているチャネルを使ってノイズ源になりそうな信号をプロー
ビングします。ジッタトレンド波形と相関があれば、その信号が犯
人です。図3の例ではジッタトレンドが電源波形と大きな相関を
示しています。電源ノイズが信号に乗っかり、ジッタを増やしてし
まっているのです。対策を施すと、図4のようにジッタの減少に成
功しています。DDR メモリの場合、ノイズ源としては電源、源信、
ODT の3つが非常に多いです。また、もしジッタスペクトラムに明
らかなピークが立っていれば、話はもっと簡単になります。ピー
クの周波数を調べることにより、ノイズ源を容易に推測する事が
できるからです。
図2:デッドタイム。オシロスコープは 90%以上の波形を見落としている。
数年前まではオシロスコープで波形を見ればトラブルは解決で
きた例が多いのですが、現在は非常に難しくなっています。何故
でしょうか?
それはシステム LSI のように多数の機能を 1 個のチップに詰め
込む傾向が顕著になっているからです。小型化、高性能化、コス
ト削減というメリットがある反面、複雑になっているので思わぬ所
で関係のなさそうな機能が作用し、問題を起こすことがあります。
少量のデータあるいは単一のアプリケーションだけを走らせてい
ると問題はないのに、データ量を増やしたり、複数のアプリケー
ションを同時に走らせると、いくつかの条件が重なり、問題が発
生する場合があります。
図3:ジッタトレンドと電源波形の相
関
図4:対策後、ジッタは減少
03 | Keysight | デジタル機器の最新デバッグ手法
マスク・アンフォルド機能とシームレス・デバッグ
多くの規格の場合、アイパターンのマスクが定義されています。
アイパターンがマスクにかからなければ{1}{0}が問題なく判別
できる事を保証しています。マスクテストに Fail した時、そのまま
ではいつ、どのように Fail したのか分かりません。マスク・アンフ
ォルド機能を使えば Fail した瞬間の波形を調べることが出来ま
す(図5)。この時にジッタトレンドや他の信号を同時に表示してお
けば相関を確認できます。このように異なる機能を複数駆使した
デバッグをシームレス・デバッグと呼んでいます。図6は USB2.0
のマスクテストに Fail した原因が電源の揺れによるものだという
事例です。
Read/Write が連続する際にエラーが起きやすく、電源の揺れが
疑われていた事例がありました(図7)。まず Read/Write が連続
の場合にトリガがかかるように、DQS 波形に対しソフトウェアトリ
ガを設定します。次に電源の揺れが Read/Write のタイミングと
重なるというトリガ条件を電源波形に対し課します(図8)。ノイズ
の多い DQ 波形と思っていましたが、実際にトリガをかけてみる
と想像以上に DQ が電源の影響を受けていました。これだけ揺
れていると{1}{0}のエラーが起きてもおかしくありません。
図7:電源の揺れが疑わしい
図5:マスク・アンフォルド機能
図8:DQ が予想以上に電源
の影響を受けていた
このようにソフトウェア・トリガは直観的で、どのような複雑なトリ
ガであっても容易に設定が可能です。容易で自由度の高いトリ
ガは、効率良くデバッグを進めるには非常に重要です。
USB デバイスを接続すると止まってし
まうカーナビゲーションの事例
最近急増しているのが外部の USB デバイスを接続すると異常
が起こるデジタル機器です。ここで取り上げるのは USB デバイ
スを接続すると、何回かに 1 回それまでの動作モードがおかしく
なってしまうカーナビゲーションの事例です。カーナビゲーション
は多機能化に伴う処理のマルチタスク化が進み、またリヤカメラ
などの搭載により高速画像処理が必要になって来ています (図
9) 。メモリと定期的にやり取りをしなければいけないプログラム
が複数走っている中、新たに USB デバイスを接続すると、割り
込みによりメモリへのアクセスが過剰になり、規定時間内に処理
が終わらないプログラムが暴走すると考えられます。
図6:USB のマスク Fail と電源の揺れのタイミングが一致
直観的なソフトウェア・トリガを使って仮説を効率
良く検証。
デバッグでは仮説を立てて、その条件の波形を取得し検証する
という作業を繰り返します。そのため素早くトリガを設定できる事
が重要になります。トリガ設定に時間がかかるようでは効率の良
いデバッグは不可能です。ところが条件が増えるごとに、従来の
トリガ設定は急激に難しさを増します。せっかく時間をかけて設
定したのに思った通りに動かなかったり、そもそもかけたいトリガ
機能がなく不可能な場合もあります。従来のトリガでは不可能で
も、ソフトウェアトリガを使うといとも簡単に要求する複雑なトリガ
が実現できます。オシロスコープの画面上にマウスで四角形を
描き、そこを波形が通る・通らないでトリガを設定します。
図9:処理のマルチタスク化
04 | Keysight | デジタル機器の最新デバッグ手法
RAS、CAS、WE の信号をオシロで観測し、DDR メモリへのアク
セスを追いかけようとしても大変です。100 だから WRITE、101
だから READ と波形から読み取るのは手間です(図10)。デジタ
ル信号付きの MSO(ミックスド・シグナル)・オシロスコープを用
いても、コマンド単位のデコードはしてくれますが、どのタスクの
メモリアクセスなのかは教えてくれません。MSO 機能はデコード
には優れていても、全体状況を把握したり、特定できていないエ
ラーを探すのには不向きです(図11)。そもそも USB のアクセス
処理は数秒間かかります。それをオシロスコープで観測するの
は不可能です。ロジック・アナライザの出番です(図12)。
それが分かれば両者のリクエスト前後のメモリアクセスを詳細に
比較し、違いを探します(図15)。メモリのアクセスしているアドレ
スを見ればどのタスクの処理を行っているのかが分かります。
DDR メモリの解析はロジック・アナライザの得意とする分野です。
デコーダやパフォーマンス解析ソフトウェアを使えば効率的にア
クセスを解析できます(図16)。
図15:(左)OK (右)NG
図10:オシロスコープで RAS, CAS,
WE を観測
図11:MSO では全体像を把握す
るのは困難
図16:(左)DDR デコーダ (右)DDR パフォーマンス解析ソフトウェア
ロジック・アナライザの膨大なメモリ長を使えば数秒間のトレース
も問題なく捉えられますし、何よりもチャネル数が圧倒的に多い
のがメリットです。DDR メモリのコマンド信号だけでなく、データ
およびアドレスも全て見ることができますし、USB のデータ信号
および VBUS 信号、その他の画像信号や制御信号も全て観測
できます。図13に示すようにオシロスコープとロジック・アナライ
ザでは情報量が桁違いなのです。
例えば USB の処理が入った際にたまたま大きな画像データを
処理していたのか、複数のプログラムが並行して走っていたの
か、状況を把握します。そしてそれを回避するためにタスクの優
先順位を変更するとか、プログラムを書き換えるなどを行います。
この例ではちょうどメインアプリケーションがアイドル中に USB
処理が入り込んでしまい、時間内に処理が終わらなかったため、
メインアプリケーションが暴走してしまっていました。
デバッグの一般的な手順
図12:ロジック・アナライザ(Keysight
16900 シリーズ)
図13:オシロスコープとロジック・アナ
ライザの情報量の差
システムが止まってしまった場合(NG)と止まらなかった場合
(OK)の双方をロジック・アナライザで観測し、比較します。NG は
USB が IN(リクエスト)と NAK(エラー)を繰り返している事が判
明しました。OK はスムーズにリンクを成功しています(図14)。
図14:NG の場合と OK の場合のリンクの流れ
次の事例に行く前に、ここでデバッグの一般的な手順を紹介しま
す。
① 最初にエラー現象を測定器上で観測する必要があります。
これは実は非常に難しいのです。どのようなデータ値だった
らエラーなのか、どのようなコマンドが出たらエラーなのか
分かっていないと測定器を止めようがありません。オシロス
コープは短時間しか観測できないので、運良くエラーが保
存したデータ内にあれば良いですが、そんなあまい物では
ありません。ロジック・アナライザは比較的長時間観測でき
ますが、何がエラーなのか分かっていないと、保存したデー
タから探し出すのは困難です。エラーが起きたら何らかの
信号を出すなどの細工ができれば、①だけでなく、次の②も
一気に解決します。
② エラー現象が測定器上で捕捉できたら、そのエラーでかか
るトリガを設定します。そのエラーのデータ値やアドレス値
でトリガを設定して、トリガとエラーが毎回連動するか確認し
ます。たまたまそのデータ値でエラーだった可能性もありま
す。エラー現象を何度か捉えて、それらの共通点を探しま
す。トリガの設定も試行錯誤が必要です。
③ 無事エラーでトリガをかける事ができたら、やっと原因探し
です。エラーに至った経緯を測定器のデータを遡って、注意
深く解析します。
以上が一般的なデバッグの流れですが、その前にもやる事があ
ります。エラーの頻度を上げる事です。エラー頻度が低いと①が
困難になるからです。数時間、数日に一度しか起こらないエラー
は論外です。エラーが起こりやすい条件は何なのかを探します。
プログラムの種類かもしれませんし、温度や電源電圧、終端抵
抗値などのパラメータに依存するかもしれません。またこの作業
を通し仮説が立てやすくなります。
05 | Keysight | デジタル機器の最新デバッグ手法
まとめると図17になります。
エラーが起こりやすい条件を探る
↓
エラーを測定器上で捉える
↓
トリガを設定する
↓
エラー原因を探る
コントローラ ⇔ ディスプレイ間のロジック・アナライザのプロービ
ングポイントがあったのが幸いし、比較的容易にエラー(ライン)
でトリガがかけられました。単色画面を表示させている中、ライン
が現れるので、RGB のデータに変化があるからです。この場合
は RGB の信号にバースト状のデータが時々見えたので、その
バーストでトリガをかけることにしました。するとロジック・アナラ
イザのトリガがかかるタイミングと画面にラインが現れるタイミン
グが完全に一致したので、エラーでトリガをかけることに成功し
たと言えます。トリガ点の少し前の DDR メモリのオシロスコープ
の波形を見ると、異常な READ データ信号を発見しました。正常
だったら{101010}を繰り返すはずのデータが、{0}が続く異常な
データでした(図21)。オシロスコープは DDR の DQ 信号 1 本し
か見ていないので、ロジック・アナライザで全 DQ 信号を確認し
ました。正常なら 8000 から始まるはずのデータが 0000 から始
まっていました(図22)。
図17:デバッグの流れ
画面に意図しないラインやドットが入っ
てしまうテレビの事例
画面にラインやドットが入ってしまうテレビを度々見かけますが
(図18)、原因は DDR メモリのデータ化けによるものである。ここ
で紹介する事例は、オシロスコープとロジック・アナライザの長所
を最大限に活かしつつ、お互いの機能を補ったデバッグ手法で
す。
まずオシロスコープで Read および Write のアイパターンを確認
したが、十分に開いていました。やはり突発的なエラーの場合、
オシロスコープでは捉えきれません (図19) 。そこでコントローラ
⇔DRAM 間のやり取りをオシロスコープおよびロジック・アナライ
ザで、コントローラ⇔ディスプレイ間のやり取りをロジックアナライ
ザで観測しました(図20)。オシロスコープの波形をロジック・アナ
ライザ上にインポートする事が可能なので、これら全てのデータ
をロジック・アナライザ上で単一の画面で表示し、解析します。
図21:RGB のバーストでトリガ。その少し前に異常な DDR READ 信号。
図22:ロジック・アナライザのデータ値。異常なデータを確認。
図18:画面にライン
が入る
図20:測定セットアップ
図19:(左)READ アイパターン (右)WRITE ア
イパターン
06 | Keysight | デジタル機器の最新デバッグ手法
READ データが異常ということは、同じアドレスへの WRITE 時か
らデータが異常だったのか、それとも WRITE 時は正常だったの
に途中で化けてしまったのかのどちらかになります。要するにコ
ントローラが悪いのか、メモリが悪いのか。それを見極めるため
に同じアドレスへの直前の WRITE を確認します。ロジック・アナ
ライザのデコーダは Bank Address, Row Address, Column
Address と分かりやすく表示してくれますので、サーチ機能と組
み合わせて探します。この場合は 1.75ms 前に同じアドレスへの
WRITE がありました。データ値を見ると WRITE は正常な 8000
から始まっています(図23)。オシロスコープの波形も確認すると、
WRITE 時は{101010}だった波形が、READ 時には{0}が続く波
形に変わってしまっています(図24) 。コントローラではなく、メモ
リがエラーの原因と疑われます。
振幅が減衰する異常が起きていると分かってしまえば、オシロス
コープ単独でも容易にトリガをかけられます。ラント・トリガという
2つのスレッショルド電圧を設定して、片方は通過するけど、もう
片方は通過しないというトリガです。オシロスコープ単独でトリガ
がかけられるようになると、犯人探しは楽になります。空いてい
るプローブで疑わしい信号を当てて行きます。この場合はコント
ローラのインピーダンス制御信号に異常があった直後に、DQS
信号・DQ 信号の振幅が減衰していました(図26)。
図25:WRITE の振幅が減衰して
いた。
図26:インピーダンス制御信号
の異常が原因でした。
この事例ではロジック・アナライザがその実力を発揮しています。
オシロスコープ単独では、しばらく走らせても WRITE の振幅減
衰はまったく見えていませんでした。ロジック・アナライザの圧倒
的なチャネル数とメモリ長によって状況を把握し、複雑なトリガや
デコード、サーチ機能を使って問題の箇所を突き止めました。で
すが最後はやはりオシロスコープを使って波形を確認します。こ
のようにデバッグにおいて重要なのは測定器の長所を理解し、
それらを組み合わせて上手に使いこなすことです。
図23:異常 READ と同じアドレスへの直前の WRITE を確認。
映像画面が止まってしまう画像処理ボ
ードの事例
次は映像画面が止まってしまう画像処理ボードの事例です。映
像の種類によって止まったり、止まらなかったり、電源電圧を変
えると止まる頻度が変わるボードでした。この事例で苦労したの
は、画面を見ていてもいつ止まったのか分からないところです。
動きがある画像なら良いのですが、動きが少ない模様だったの
で、止まった事に気付きづらいのです。デバッグの第一歩はエラ
ーを測定器上で捉える事と説明しましたが、いつ止まったか分
からないとそれが出来ないのです。
電源電圧によりエラーの頻度が変わるので、電源に注目しまし
た。まずオシロスコープで電圧を測定しましたが、オシロスコープ
での電圧・電流測定はプローブのノイズに埋もれていて細かい
挙動が分かりづらいのです(図27)。
図24:WRITE 時は波形が{101010}と遷移しているのに、READ 時は{0}が
続く。
ところが WRITE 時のオシロスコープ波形をズームアウトすると、
WRITE の DQS 信号と DQ 信号の振幅が減衰してします。
DDR2 は Vac=1.15V 以上を{1}と判定しますが、それを下回っ
ていました(図25)。つまりコントローラは{101010}と書いている
つもりでも、振幅が減衰していたため、メモリは{000000}と受け
止めていたのです。(ロジック・アナライザは Vref=900mV で{1}
{0}判定をしているため、{101010}と表示していました)
そこで今回は電源アナライザ (図28) を用いて電源を詳しく解析
しました。電源アナライザは DC 電源の代わりに使用してボード
の負荷変動を解析できます。最大4つの電源を内蔵し、シーケン
シャルな出力タイミング、任意波形発生に対応しています。スコ
ープ・ビューを使えば、電圧・電流・電力の波形を確認できます。
自分自身が出している電圧・電流なので、ノイズに埋もれていな
い非常にシャープな波形観測が可能です。
07 | Keysight | デジタル機器の最新デバッグ手法
電源アナライザを使って画像処理ボードの電圧・電流の様子を
見ていると、READ と WRITE を繰り返しながら、READ 時よりも
WRITE 時に電源変動が大きいのが分かりました。そして大きな
電流が流れた直後に WRITE をしなくなっていました(図29)。
図27:オシロスコープでは電圧波
形がノイズに埋もれる
図29:大きな電流が流れて、その
後 WRITE しなくなる
図28:電源アナライザ(Keysight N6705A)
状況が分かったので、オシロスコープに戻ります。オシロスコー
プで大きな電圧変動でトリガ設定をし、エラーでしっかりとトリガ
がかかるかを確認しました。何度かトライしていると、トリガ後に
WRITE が止まってしまう波形を得ることができました(図30)。解
析すると、クロックの大きな Cycle-to-Cycle Jitter(周期の急激
な変動)があり、しばらくして止まってしまったようです(図31)。特
定のパターン発生時に、電源周りが不安定になり、クロックジッ
タへ影響している事が分かりました。電源回路の見直し、グラン
ドの取り方・配置を工夫することが必要になります。
図30:電源スパイク後、
WRITE が止まる
図31:クロックの大きな Cycle-toCycle Jitter
クロストークが問題になっていたデジタ
ルカメラの事例
最後の事例はクロストークにより誤動作を起こしていたデジタル
カメラです。図32のように、DDR のあるアドレス信号は他のアド
レス信号が遷移すると 300mV くらいクロストークを受けてしまっ
ています(図32)。300mV も動いてしまうので、実際に誤動作を
起こしていました。ところがシミュレーションではそのようなクロス
トークは発見できませんでした。そこで生基板を用意し、ネットワ
ーク・アナライザを使って実測してみることにしました。
図33を見て下さい。赤いラインの A7 が被害者アドレス信号で
すが、加害者として青いラインの A9 と緑のラインの A2を想定し
ました。A9 はこの図で A7 と隣り合っています。A2 はこの図で
は離れていますが、ちょうど上下の関係にある区間があるので、
層間のクロストークを疑いました。
ネットワーク・アナライザはそれぞれのポートがサイン波を出力し、
同時にそれぞれのポートがレシーバにもなります。この場合は4
ポートのネットワーク・アナライザを使用し、コントローラ側とメモ
リ側の被害者信号と容疑者信号に半田付け接続しました (図34、
図35)。容疑者信号のコントローラ側から信号を入力し、メモリ側
の被害者信号から信号が出てきたら、まさにクロストークが起き
ていることの証明になります。ネットワーク・アナライザはサイン
波を低周波から高周波までスイープしますが、様々な計算処理
ができます。この場合はあたかも 1V のステップパルスを入力し
たかのような計算処理を行いました。
図32:クロストーク
図34:ネットワーク・ア
ナライザで測定
(Keysight E5071C)
図33:回路パターン
図35:半田付け接続
まず A9 の結果ですが、A9 のコントローラ側(ポート2)から 1V
のパルスを入力すると、A7 のメモリ側(ポート4)から 250mV の
パルスが出てきました。これはまさにクロストークです。次に同様
の事を A2 に行いますと、今度は 50mV 程度のパルスが出てき
ました(図36)。A7 のクロストークは A2 より A9 の方が影響が大
きいのが分かりました。
この測定によりクロストークの存在が実測で確認でき、犯人も分
かりました。また、どこでクロストークが起きたのかも分かります。
線路の途中でカップリングが起き、信号が乗り移るわけですが、
戻ってきた信号のタイミング(ニアエンド・クロストーク)を調べれ
ばカップリングの位置が導かれます。A9 の測定結果を再度見る
と、A7 のコントローラ側(ポート1)に信号が戻って来たタイミング
はネットワーク・アナライザの原点です(図36)。つまり、信号がコ
ントローラの A9 のパッドを出た瞬間に、A7 に乗り移っているこ
とが分かりました。
図36:測定結果
この結果を得て、再度コントローラ周りのシミュレーションを詳しく
行うと、クロストークを発見することができました。コントローラ直
下のグランドが弱かったのが理由です。基板全体を細かくシミュ
レーションするのは非常に時間がかかり現実的ではないですが、
問題のある場所を実測である程度絞ってしまえば、細かくシミュ
レーション解析することも可能になるのではないでしょうか。
まとめ
データ量の増加、信号の高速化、またシステム LSI に代表され
る多機能化により、エラーは複雑化しています。そのような背景
の中、オシロスコープ単独でのデバッグは難しくなっています。
本稿では事例を元に、ロジック・アナライザ、電源アナライザ、ネ
ットワーク・アナライザなど、他の測定器を組み合わせた最新デ
バッグ手法を紹介して来ました。デバッグの第一歩はエラー現象
を捕まえることですが、何がエラーか分かっていないとオシロス
コープでは困難を極めます。もちろん、エラー箇所を特定できた
らオシロスコープは最強のツールであり、最後はオシロスコープ
での波形品質確認に行きつくのは間違いありません。
また突発的なエラーの場合、流しているプログラムについて分か
っていないとなかなかデバッグしきれません。ハードウェア担当
者だけでなくソフトウェア担当者との連携が必要になって来ます。
同様に実測担当者だけでなく、シミュレーション担当者との連携
も必要になって来ます。
ここで紹介したデバッグ手法がお役に立てれば幸いです。
キーサイト・テクノロジー合同会社
本社〒192-8550 東京都八王子市高倉町 9-1
計測お客様窓口
受付時間 9:00-18:00(土・日・祭日を除く)
TEL
0120-421-345 (042-656-7832)
FAX
0120-421-678 (042-656-7840)
Email [email protected]
ホームページ www.keysight.co.jp
記載事項は変更になる場合があります。
ご発注の際はご確認ください。
©Keysight Technologies. 2014
Published in Japan, December 08,2014
5990-8259JAJP
0000-08A