勘のいい読者の方はすでにお分かりかもしれませんが、実は、ロジック・アナライザはステート解析モードで真の威力を発揮します。ステート解析は「同期解析」です。ターゲットとなるシステムは、システム・クロックなどの基準信号に従って動いていますので、この基準信号に従ってサンプリングすることで、システムの動きそのものが見えるわけです。
一方、ステート解析に対して、タイミング解析は、「非同期解析」です。先ほど、ロジック・アナライザのタイミング解析モードが、オシロスコープでの解析にイメージが近いと書いたのは、両方とも測定器内部のサンプリング・クロックを使うためです。
MSOのロジック解析機能もロジック・アナライザも“0”“1”を見るという点で基本的に同じです。しかし、デコーダ、プロトコル解析、逆アセンブル、ソース相関、画像への変換、変調解析、パフォーマンス解析など(図5)は、基本的にロジック・アナライザのステート解析でなければできない機能です(これらのロジック・アナライザならではの豊富な解析の機能については、次回以降で説明します)。
ではなぜこれらの機能はタイミング解析モードではなくステート解析モードでなければならないのでしょうか? 非同期サンプリングでは図5に示すとおり有効なデータ以外に余計なデータをたくさんサンプリングしています。ステート解析では、ターゲットのクロックに同期して実際のシステムの動作と同じ1イベント/1クロックのデータをモニタすることができます。このためシステム・クロックに同期してサンプリングしたデータは、実システムと同じようにデータ処理が可能になります。
MSOのトリガ例では、Readコマンドに対してパターン・トリガを掛ける場合を紹介しました。一般的にロジック・アナライザは、MSOと比べて問題現象を補足するためのトリガ機能が豊富です。例えばトリガ・シーケンスを組む際に、タイマ、カウンタ、条件分岐やループなどを使って、柔軟にトリガ条件を設定することができます。さらに、DDRメモリの物理アドレスを入力するだけで自動的にトリガ条件を作成するものもあります。例えばある特定の物理アドレスに書き込んだときだけ、データが化けるといったトラブルが発生した場合(図6)には、どのようにして現象をつかまえればよいでしょうか?
特定のアドレスへのデータの書き込み/読み込み時には、トリガ条件にアドレスを指定しなければなりません。DDRメモリのアドレスは、実際にはバンク、カラム、ローなどのアドレスで構成されているため、単純なパターン・トリガではなく、連続したいくつかのイベントを設定する必要があります。ロジック・アナライザはこのような場合でも、自由にトリガ・シーケンスを設定することができます(図7)。
また、最近ではこのような複雑なトリガ設定も簡単に作成することができるトリガ作成のツール(図8)なども一般的になってきています。
また余談ですが、ロジック・アナライザのスペックにおいて最大サンプリング速度は最も重要ですが、トリガ検出可能なトリガ・シーケンサの対応速度も非常に重要です。例えば、DDR3メモリは現在最速で、1867Mbpsのデータレートで読み書きできますが、最大サンプリング速度がそれ以下であれば当然データをキャプチャすることはできません。またトリガ・シーケンサの対応速度が1867Mbps以上あれば、図9のような64ビットのデータ・パターンが、バースト長8で流れてくるといった特定のデータ・パターンでも検出できますが、それ以下の速度であればトリガ検出は不可能です。
データは取れても、取りたい現象が取れないのでは意味がありません。システムがきちんと動いていて、トリガのシーケンスもしっかり組めていると思うのに、うまくデータが取れない。そんなときは、トリガ速度のスペックが足りないのかもしれません。
今後、システムが複雑になり、デバッグがますます困難になってきたときには、特定のイベントを検出できるトリガ機能が非常に重要になってきます。今後ロジック・アナライザをトリガ検出器として使用して、オシロスコープで特定のイベント発生時の波形を解析するようなケースも多々出てくるでしょう。
ロジック・アナライザを用いたシステムの解析要求の中には、長時間のリアルタイム・トレースを取りたいというものも少なくありません。例えば、Read時のデータが疑わしい場合、同じアドレスに対してWriteしたデータを確認する必要がありますが、WriteはReadの数ms以上前といった状況も往々にしてあります。ロジック・アナライザには、ロング・トレースを取るためのさまざまな工夫が盛り込まれています。
例えば、タイミング解析モード時には、トランジショナル・タイミング・モードというものがあります(図10)。このモードは、通常のタイミング解析モードと異なり、データの遷移点だけを記録します。
ステート解析モード時に使用可能なストア・クオリフィケーション(図11)は、ある条件のときだけ記録するあるいは記録しないといった指定ができます。例えば、NOPは必要ないといった場合にNOPを除いて記録したり、あるコマンドだけを記録したりといった場合に有効です。後者の一例として、Refreshコマンドだけを記録すれば、Refreshがどんな間隔で発行されているかが容易に分かります。
そのほか、使用可能なチャネル数を2分の1あるいは4分の1に減らすことで、サンプリング速度を上げるとともに、使用できるトレース・メモリを増やすハーフ/クオータ・チャネルといったモードもあります。これらの機能を駆使することで、場合によっては秒単位のデータを記録することも可能です。
また余談ですが、いまのロジック・アナライザの中にはステート解析とタイミング解析を同時に行えるものもあります。図12は、システム内のカウンタのロジック・シーケンスを追うと同時に、トリガ周辺のエッジの関係を250ps(4GHz)という高い時間の分解能で見ている例です。
さらに、MSOのように同じ画面上で波形・ロジックの2つを解析するため、オシロスコープと連携する機能があるロジック・アナライザもあります。これを用いることで、タイミング、ステート、そしてアナログ解析が時間軸相関を取って行えます。詳細は次回以降に説明します。
以上、普段の仕事の中でどれを使用すべきか迷いがちなオシロスコープやMSOといった測定器とロジック・アナライザを比較しながら、それぞれの解析モードについて説明しました。最後に各測定器の比較をまとめておきます(表1)。どのような局面でどのような測定器を使えばよいのか、参考にしていただければ幸いです。
次回は、デジタルデバッグの効率化に役立つ今どきの機能と、ロジック・アナライザを使用するうえで避けて通れないプローブについて説明します。
Copyright © ITmedia, Inc. All Rights Reserved.