いまさら聞けない
ロジック・アナライザ入門
目次
(1) デジタルデバッグにはなぜロジアナ? 仕組みと歴史 ロジック・アナライザの基礎解説講座がスタート。連載1回目は、 ロジアナの基本的な仕組みを歴史とともに紹介する (2) ロジアナとMSO、違いと使い分け ロジック・アナライザをいつ使うべきか。オシロやMSOと ロジアナを比較しながらそれぞれの解析モードについて紹介 (3) 今どきのロジアナ機能と、避けては通れないプローブ 使いこなせば便利な今どきのロジック・アナライザ機能と、 ロジック・アナライザを接続するためのプローブについて紹介 (4) それでもロジック・アナライザは使いたくない!? オシロスコープはよく使うけどロジアナはできれば使いたくない、 という技術者をターゲットに使いこなしのポイントを紹介 (5) FPGA、DDRも怖くない! ロジアナによる簡単デバッグ 最終回は、ロジック・アナライザの用途として最近よく使用されて いるFPGAやDDRメモリのデバッグ解析例を紹介する 本冊子は、2010年5月から9月まで、 5回に渡り@IT MONOist サイトで連載された記事をまとめたものです。 そのため、文中の、「アジレント」「アジレント・テクノロジー」は、 「キーサイト」「キーサイト・テクノロジー」に置き換えてお読みいた だきますよう、お願いいたします。 http://monoist.atmarkit.co.jp/ロジック信号は「0」または「1」の2つの値で表現されますが、こ れをそのまま人間が見て意味を理解するのは困難です。また 16ビットや32ビットといった単位でデータを表現するため、信 号線の数も16本や32本必要になります。システム全体の動作 を確認するためには、数十~数百の信号を同時に観測する 必要があり、多数の入力チャネルを備えた測定器が必要にな ります。 ロジック・アナライザを使用することで、多数の信号線に同時 にプロービングし、0と1のバイナリで表現されるデータを人間 が理解しやすい形式に変換して表示することができます。これ により、システム上で発生しているさまざまなイベントを簡単に 確認することができます(図2)。 ロジック・アナライザは、用途に応じて2種類の解析モードを 切り替えて測定できます。1つはステート解析モード(同期ク ロックでのサンプリング機能)で、もう1つはタイミング解析モー ド(非同期クロックでのサンプリング機能)です。これら2つの機 能を持っている理由は、ロジック・アナライザの歴史と大きく関 係があります。まずはロジック・アナライザの歴史を振り返って みましょう。 ロジック・アナライザの歴史 1970年代初めまでは、デジタル製品のデバッグ時にはオシ ロスコープが使われていました。しかしながらCPUのアドレス やデータのビット幅が8→16→32と増えるにつれ、観測すべき 信号数が増加し、2~4チャネル入力のオシロスコープでは対 応が困難になってきました(図3)。 また、ソフトウェアの開発時に、プログラムが特定の処理を 行ったところや、特定のアドレスにアクセスしたときの状態を確 認したいというニーズも出てきました。つまり、信号を単なる波 形としてではなく、8ビットや16ビット幅のバスのデータとして読 み取り、そのデータが示す意味を解釈して表示する必要性が 高まりました(図4)。
いまさら聞けないロジック・アナライザ入門(1)
デジタルデバッグにはなぜロジアナ?
仕組みと歴史
アジレント・テクノロジー 佐貫 聡信 実機の環境はシミュレーションのように理想的ではない。実 機で発生しているイベントをリアルタイムに観測できるツー ルはロジック・アナライザ(ロジアナ)だけだ。本稿では、これ からロジアナを使ってみようと考えている読者を対象に、ロ ジアナの測定原理から、実機デバッグで役に立つテクニック まで順に解説していく。(編集部) はじめに 技術の進歩により、近年では高速で高機能なデジタル半 導体が比較的容易に入手できるようになり、大規模で複雑な システムが増えています。また、シミュレーション技術の発達 により、ハードウェアおよびソフトウェアのバグの多くは設計 段階で修正できるようになっています。 しかし、実機の環境はシミュレーションのように理想的では ありません。開発したハードウェアとソフトウェアを統合した際 に、シミュレーションでは見つからなかった不具合が発生す ることもしばしばあります。多くの場合、まずはハードウェアと ソフトウェアのどちらに問題があるのか見分ける必要がありま す。その際、CPUやFPGAの内部信号を観測するだけでなく、 外付けのメモリや周辺回路の信号などとも相関を取って、シ ステム全体の動作を検証する必要があります。 このような実機デバッグの必要性から、近年ロジック・アナラ イザが注目されています。実基板上の多数の信号をシステム に同期して取り込み、実機で発生しているイベントをリアルタ イムに観測できるツールはロジック・アナライザだけだからで す。 本連載では、これからロジック・アナライザを使ってみようと お考えの読者を対象に、ロジック・アナライザの測定原理か ら、実機デバッグで役に立つテクニックまで順番に解説して いきたいと思います。連載1回目では、ロジック・アナライザの 基本的な仕組みを歴史とともに解説します。 ロジック・アナライザとは ロジック・アナライザ(図1)は、多数のロジック信号を同時に 取り込み、解析/表示する測定器です。 図1 ロジック・アナライザ 図2 ロジック・アナライザを使用したDDRメモリバスのデバッグイメージ 図3 ロジック回路の例 図4 アドレスバス、データバスの表示例これらのニーズに応えて、現在のロジック・アナライザの前身 となるステートアナライザやタイミングアナライザが登場しま した。 ステートアナライザは、外部クロック信号に同期して信号を サンプリングします。例えばCPUのアドレスバスやデータバ ス上の信号を、システムクロックに同期してサンプリングする ことで、システムが処理している信号と同じものを観測するこ とができます。また、アドレスバスやデータバスのイベントでト リガを掛け、リスト表示でアドレスやデータを分かりやすく表 示することができます(図5)。このため主にソフトウェアの解 析に活用されました。 タイミングアナライザは、システムクロックとは非同期に信 号をサンプリングし、波形として表示します。アナライザの内 部クロックにより高速サンプリングを行うことで、多数の信号 の細かなタイミングの違いを確認することができます(図6)。 このため主にハードウェアの解析に活用されました。 その後システムの複雑化が進むと、不具合の原因がハード ウェアとソフトウェアのどちらにあるのかという切り分けが重要 になりました。そこで、ステート解析とタイミング解析の両方 の機能を持ったロジック・アナライザが1980年代に登場しま した。現在販売されている多くのロジック・アナライザは、ス テート解析とタイミング解析の両方の機能を備えています。 ロジック・アナライザの仕組み 図7にロジック・アナライザのブロック図を示します。 最初に、ロジック・アナライザは入力された信号が1か0かの 判別を行います。これにはコンパレータが使用されます。コ ンパレータは入力信号の電圧とスレッショルド(しきい値)電 圧を比較し、信号の電圧の方が高ければ1、低ければ0と解 釈します(図8)。スレッショルド(しきい値)電圧はユーザーが 任意の値に設定可能で、各種信号規格のレベルに合わせ た設定が可能です。このようなシンプルな構成のため、多 チャネル化が容易です(図9)。 コンパレータの出力は、サンプリング・クロックのタイミングで ラッチされます。サンプリング・クロックとして外部クロックまた は内部クロックが選択でき、これによりロジック・アナライザの 動作モードが決まります。それぞれの動作モードの違いは表 1のとおりです。詳細は次回以降でご紹介します。 サンプリングされた信号はメモリに保存されます。メモリが いっぱいになると古いデータから順番に破棄され新しい データが上書きされます。トリガ回路は、ユーザーが指定し たデータパターンなどのトリガイベントを検出し、ロジック・ア ナライザのサンプリング動作を停止します。その後メモリ内の データが処理され画面に表示されます。 次回は、ステートとタイミングそれぞれの解析モードについ て、オシロスコープやミックスドシグナルオシロスコープとの 比較を交えながら、もう少し詳しく説明します。 図5 ステート解析の例 図6 タイミング解析の例(赤枠内:細かなタイミングの違い) 図7 ロジック・アナライザのブロック図 図8 コンパレータの動作 図9 ロジック・アナライザの入力部 表1 ステート解析モードとタイミング解析モードの比較 3
信号品質チェックと高分解能タイミング解析―オシロスコープ による解析 ボードが出来上がってきて、まず何をするでしょうか。おそら く、オシロスコープを使って、信号がきちんと出ているか確認し たうえで、立ち上がり、リンギングといった波形品質をチェック (波形解析)し、次に各信号間のスキューやセットアップや ホールド時間などをチェック(タイミング解析)すると思います。 オシロスコープは、通常2~4チャネル程度のチャネル数で すが、ロジック・アナライザは数十~数百チャネルもの信号を 同時に解析できます。従って、信号数の多いシステムを解析 する場合には、ロジック・アナライザを使用します。この場合ロ ジック・アナライザのタイミング解析モードは、「電圧分解能1 ビット・多チャネルのオシロスコープ」といってもよいかもしれま せん。ただし、ロジック・アナライザの電圧分解能は1ビットで すので、被試験信号の波形品質を観察できません。波形品 質を観察するには、オシロスコープを使用する必要があります (図2)。 タイミング解析において、重要なスペックとなるタイミング分 解能は、測定器内部で生成されるサンプリング・クロックの速 度に依存します。つまり、サンプリング・クロックが速ければ速 いほどタイミング分解能が向上し、デジタイジング誤差(実際 の信号の遷移点とサンプリングポイントとの誤差。最大で±1 サンプリング周期)の影響が減少します。また一般的にタイミ ング分解能は、ロジック・アナライザよりもオシロスコープの方 が高い場合が多く、最近では80Gサンプル/secのオシロス コープもリリースされています。 最近のシステムでは、パラレルバスから高速シリアルバスへ の移行が進み、多チャネル解析の要求よりも波形品質も含め たタイミング解析の要求が高まってきたため、タイミング解析の 局面ではロジック・アナライザよりもオシロスコープが使用され ることが多くなってきています。 1台で波形もロジックも!? ―MSOによる解析 デバッグの最初の段階では、オシロスコープを使用して確認 することが多いと思いますが、システム全体の動作を検証する フェイズでは、オシロスコープだけでは厳しくなってきます。一 般的なオシロスコープでは、ロジックの動作やバスを流れるコ マンドやコードの値などは分かりません。
いまさら聞けないロジック・アナライザ入門(2)
ロジアナとMSO、違いと使い分け
アジレント・テクノロジー 竹中 慎吾 連載1回目は、ロジック・アナライザの成り立ちを通じて、ス テート(同期)解析モードとタイミング(非同期)解析モードに ついて説明しました。ロジック・アナライザは、もともと2種類の 異なる解析のニーズに対応できるような測定器として進化し たため(ステート解析機能とタイミング解析機能の両方の機 能を備えているため)、ハードウェアからソフトウェアのテスト、 さらにはシステムを統合したときのテストに至るまで、あらゆる 局面において幅広く活用できる高い柔軟性を持っています。 しかしながらロジック・アナライザをいつ使うべきか、イメージ がわかないという読者の方も多いかもしれません。また、デジ タルシステムの開発・検証において、どのような局面でロジッ ク・アナライザ、オシロスコープやミックスド・シグナル・オシロ スコープ(MSO)などを使い分ければよいか、困ることも少なく ないのではないでしょうか。 「取りあえずオシロスコープ?」 「MSOですべて検証可能?」 「結局ロジック・アナライザはいつ使うの?」 今後ますます複雑化するデジタルシステムの問題を迅速に 解決するためには、それぞれの測定器の特徴を知り、状況 に応じて使い分けることが重要です。連載2回目となる今回 は、オシロスコープやMSOといった測定器とロジック・アナラ イザを比較しながらそれぞれの解析モードについて、もう少 し詳しく説明していきます。 まずは、それぞれの測定器とその解析機能を以下にまとめ ておきます(図1)。 図1 測定器と解析機能 図2 オシロスコープとロジック・アナライザの比較 Scope •アナログ信号 •確度/精度 •電圧 vs. 時間の相関データ •パラメータ情報(Vp-p、Tr、 Tf,Freq…) •デジタル信号 •多くの信号 •信号間のタイミングの相関 •パターンでのイベント検出(トリガ) Logic Analyzer ステート解析 システムのイベント ターゲットの信号(一般的にはシステム・ク ロック)に同期して、サンプリングするため、 『同期解析』と呼ばれます。これによりシス テムの動作と全く同じ1クロック1イベントの データをモニタすることができます。これは 、通常ロジック・アナライザにしかできない 解析です。 エッジの関係 複数の信号間のエッジの関係がどうなっ ているか、スキューはどれくらいあるかと いったタイミングを解析します。この解析 は、オシロスコープでもMSOでもロジッ ク・アナライザでもできます。システムの 動きに関わらず、測定器内部のクロック によりサンプリングするため、『非同期解 析』と呼ばれます。 波形のパラメータ 立上り、立下り、リンギングといった波形 のパラメータを観測します。電圧軸の分 解能を持つオシロスコープやMSOといっ た測定器による解析になります。 タイミング解析 波形解析 ロジック・アナライザ ミックスド・シグナル・ オシロスコープ(MSO) 解析機能 測定器一方、ステート解析に対して、タイミング解析は、「非同期解 析」です。先ほど、ロジック・アナライザのタイミング解析モード が、オシロスコープでの解析にイメージが近いと書いたのは、 両方とも測定器内部のサンプリング・クロックを使うためです。 MSOのロジック解析機能もロジック・アナライザも“0”“1”を見 るという点で基本的に同じです。しかし、デコーダ、プロトコル 解析、逆アセンブル、ソース相関、画像への変換、変調解析、 パフォーマンス解析など(図5)は、基本的にロジック・アナライ ザのステート解析でなければできない機能です(これらのロ ジック・アナライザならではの豊富な解析の機能については、 次回以降で説明します)。 ではなぜこれらの機能はタイミング解析モードではなくステー ト解析モードでなければならないのでしょうか? 非同期サンプ リングでは図5に示すとおり有効なデータ以外に余計なデータ をたくさんサンプリングしています。ステート解析では、ター ゲットのクロックに同期して実際のシステムの動作と同じ1イベ ント/1クロックのデータをモニタすることができます。このため システム・クロックに同期してサンプリングしたデータは、実シ ステムと同じようにデータ処理が可能になります。 すでに使用されている読者の方も多いかもしれませんが、 最近のオシロスコープの中でも、ロジック・アナライザ機能が 付いたMSOが一般的に使われるようになってきました。MSO は通常、1台でアナログ2もしくは4チャネル、デジタルが16 チャネル程度の信号を同時にタイミング解析できるため非常 に便利です。 ここではMSOの便利な機能について、最近多くのシステム に採用されてきているDDRメモリの解析を例に説明します。 例えば、コントローラから発行されるDDRメモリのコマンドは RAS、CAS、WEの組み合わせで定義されます。その場合、シ ンボル表示を使えば、“0”と“1”のロジック波形だけでなく、 ReadやWriteといったシンボルで解析を進めることができます。 さらにReadコマンドのパターンでトリガを掛けて、そのときの データやアドレスの波形も容易にチェック可能です(図3)。こ れとは逆に、異常な波形でトリガを掛けて、その現象がどこの 論理シーケンスで起こっているのかをチェックすることもでき ます。 また、MSOがよく使われる例として、リセット直後の波形を取 る際に通常のオシロスコープではチャネルが足りない場合に も、余っているロジックチャネルをトリガ入力やタイミングの確 認ができるため、いざというときに大変重宝します。 以上のようにMSOは、アナログ解析に加えて、デジタル信 号のタイミング解析までできますので、「MSO1台で十分なの では?」……そう考えている読者の方も多いかもしれません。 システムの動きが手に取るように分かる! ―ロジック・アナ ライザによる解析 それでは、ロジック・アナライザを使用するメリット、いい換え るとMSOにできない部分はどこにあるのでしょうか。ロジック・ アナライザが多チャネルであることは前述したので除くとして、 ここでは、大きく3つ挙げます。 1. ステート解析ができる 2. 豊富なトリガが掛けられる 3. 長時間のトレースが取れる それではこれらの3つのポイントについて説明していきます。 1. ロジック・アナライザにしかできないステート解析 勘のいい読者の方はすでにお分かりかもしれませんが、実 は、ロジック・アナライザはステート解析モードで真の威力を 発揮します。ステート解析は「同期解析」です。ターゲットとな るシステムは、システム・クロックなどの基準信号に従って動 いていますので、この基準信号に従ってサンプリングすること で、システムの動きそのものが見えるわけです。 図3 Readコマンドでパターン・トリガを掛けたときの例 図4 ステート解析によって可能となる豊富な解析機能の例 図5ステートとタイミングのサンプリング方式の違いによるトレースデータの違い アナログ READコマンドでトリガ COMMANDというバスを 定義し、シンボル表示 ロジック 画像表示 ソース相関 プロトコル解析 パフォーマンス解析 5
2. 難しいデバッグでも現象をとらえる―豊富なトリガ MSOのトリガ例では、Readコマンドに対してパターン・トリガ を掛ける場合を紹介しました。一般的にロジック・アナライザ は、MSOと比べて問題現象を補足するためのトリガ機能が豊 富です。例えばトリガ・シーケンスを組む際に、タイマ、カウン タ、条件分岐やループなどを使って、柔軟にトリガ条件を設 定することができます。さらに、DDRメモリの物理アドレスを入 力するだけで自動的にトリガ条件を作成するものもあります。 例えばある特定の物理アドレスに書き込んだときだけ、デー タが化けるといったトラブルが発生した場合(図6)には、どの ようにして現象をつかまえればよいでしょうか? 特定のアドレスへのデータの書き込み/読み込み時には、 トリガ条件にアドレスを指定しなければなりません。DDRメモリ のアドレスは、実際にはバンク、カラム、ローなどのアドレスで 構成されているため、単純なパターン・トリガではなく、連続し たいくつかのイベントを設定する必要があります。ロジック・ア ナライザはこのような場合でも、自由にトリガ・シーケンスを設 定することができます(図7)。 また、最近ではこのような複雑なトリガ設定も簡単に作成す ることができるトリガ作成のツール(図8)なども一般的になっ てきています。 また余談ですが、ロジック・アナライザのスペックにおいて最 大サンプリング速度は最も重要ですが、トリガ検出可能なトリ ガ・シーケンサの対応速度も非常に重要です。例えば、DDR3 メモリは現在最速で、1867Mbpsのデータレートで読み書きで きますが、最大サンプリング速度がそれ以下であれば当然 データをキャプチャすることはできません。またトリガ・シーケン サの対応速度が1867Mbps以上あれば、図9のような64ビット のデータ・パターンが、バースト長8で流れてくるといった特定 のデータ・パターンでも検出できますが、それ以下の速度であ ればトリガ検出は不可能です。 データは取れても、取りたい現象が取れないのでは意味があ りません。システムがきちんと動いていて、トリガのシーケンス もしっかり組めていると思うのに、うまくデータが取れない。そ んなときは、トリガ速度のスペックが足りないのかもしれません。 今後、システムが複雑になり、デバッグがますます困難に なってきたときには、特定のイベントを検出できるトリガ機能が 非常に重要になってきます。今後ロジック・アナライザをトリガ 検出器として使用して、オシロスコープで特定のイベント発生 時の波形を解析するようなケースも多々出てくるでしょう。 3. 長時間トレースのための機能 ロジック・アナライザを用いたシステムの解析要求の中には、 長時間のリアルタイム・トレースを取りたいというものも少なくあ りません。例えば、Read時のデータが疑わしい場合、同じアド レスに対してWriteしたデータを確認する必要がありますが、 WriteはReadの数ms以上前といった状況も往々にしてありま す。ロジック・アナライザには、ロング・トレースを取るためのさ まざまな工夫が盛り込まれています。 図7 物理アドレスでトリガを掛ける例。シーケンスを組む必要がある 図8 トリガツールによる物理アドレスへのトリガの自動生成 図6 よくあるトラブル事例―特定の物理アドレスでデータが化ける 図9 DDR3 1867MHzのバースト・データのトリガ例 ト リ ガ ! Step1 Activateコマンド BA(Bank Address)を指定 RowAddrを指定 Step2 Read/Writeコマンド BA(Bank Address)を指定 Colmn Addrを指定 補足)DDRメモリの物理アドレス構造 Activateコマンド発行時に指定 Read/Writeコマンド発行時に指定 1. アドレス入力 Row、Colmn、 Bankアドレスもし くは物理アドレス を入力 たとえばこのアドレスでかけたい 3. Create Triggerをクリック アドレス構成を選択 2. コマンドを指定 Read/Write/Eitherを選択 バースト1(64Bit) 1867MHzで流れる64Bitのデータ・ パターンをバースト1~8まで、すべ て指定したトリガの例 バースト2 バースト8 1867MHz
さらに、MSOのように同じ画面上で波形・ロジックの2つを解 析するため、オシロスコープと連携する機能があるロジック・ア ナライザもあります。これを用いることで、タイミング、ステート、 そしてアナログ解析が時間軸相関を取って行えます。詳細は 次回以降に説明します。 以上、普段の仕事の中でどれを使用すべきか迷いがちなオ シロスコープやMSOといった測定器とロジック・アナライザを比 較しながら、それぞれの解析モードについて説明しました。最 後に各測定器の比較をまとめておきます(表1)。どのような局 面でどのような測定器を使えばよいのか、参考にしていただけ れば幸いです。 次回は、デジタルデバッグの効率化に役立つ今どきの機能 と、ロジック・アナライザを使用するうえで避けて通れないプ ローブについて説明します。 例えば、タイミング解析モード時には、トランジショナル・タ イミング・モードというものがあります(図10)。このモードは、 通常のタイミング解析モードと異なり、データの遷移点だけを 記録します。 ステート解析モード時に使用可能なストア・クオリフィケー ション(図11)は、ある条件のときだけ記録するあるいは記録 しないといった指定ができます。例えば、NOPは必要ないと いった場合にNOPを除いて記録したり、あるコマンドだけを 記録したりといった場合に有効です。後者の一例として、 Refreshコマンドだけを記録すれば、Refreshがどんな間隔で 発行されているかが容易に分かります。 そのほか、使用可能なチャネル数を2分の1あるいは4分の1 に減らすことで、サンプリング速度を上げるとともに、使用でき るトレース・メモリを増やすハーフ/クオータ・チャネルといっ たモードもあります。これらの機能を駆使することで、場合に よっては秒単位のデータを記録することも可能です。 また余談ですが、いまのロジック・アナライザの中にはス テート解析とタイミング解析を同時に行えるものもあります。 図12は、システム内のカウンタのロジック・シーケンスを追うと 同時に、トリガ周辺のエッジの関係を250ps(4GHz)という高 い時間の分解能で見ている例です。 図10 トランジショナル・タイミング方式 図11 ストア・クオリフィケーションの例 表1 各測定器の比較 図12 ステート解析と高速タイミング解析を同時に行った例 (a)コンベンショナル・タイミング方式 (b)トランジショナル・タイミング方式 (1クロックごとに保存) メ モ リ 7
パケット表示によるプロトコル解析 最近のバスは従来のようなハンドシェイクではなく、通信プロ トコルのようなパケットのやりとりを行うものが多くなってきました。 パケットとパケットの間はアイドルデータが流れており、リスト表 示でそのまま表示するとパケットが不要なアイドルデータの中 に埋もれてしまい、非常に分かりづらくなります。フィルタを使 用して不要なデータを表示しないようにする手もありますが、 そのような場合にはパケット表示を使用すると、専用機である プロトコル・アナライザのような表示で測定データを確認するこ とができます(図3)。 パケット定義はXMLなどで記述されているため、標準プロト コルをカスタマイズしたり、独自プロトコルをパケット・デコード したりして表示することも可能です。 バストレースとソースコードを相関表示 マイコンのバストレースでは、前述のデコーダ(逆アセンブ ラ)によりアセンブラレベルでの表示が可能ですが、さらにソー スコードを相関させて表示することが可能です(図4)。
いまさら聞けないロジック・アナライザ入門(3)
今どきのロジアナ機能と
避けては通れないプローブの話
アジレント・テクノロジー 里見 尚志 前回は、状況に応じた測定器の選び方や使用方法につい て、ロジック・アナライザをオシロスコープやMSOと比較しな がら説明しました。また、ロジック・アナライザの特長であるス テート解析・高機能なトリガ・長時間測定については、DDRメ モリ解析を例として解説しました。 ロジック・アナライザ測定においては、タイミング解析の場 合は波形表示で測定データを見て、ステート解析の場合はリ スト表示で測定データを見る、というのが定石ですが、最近 のロジック・アナライザにはさまざまな機能があり、それらを活 用することによりデバッグの効率を飛躍的に上げることが可 能です。連載3回目の今回は、使いこなせば便利な今どきの ロジック・アナライザ機能と、測定するうえでは避けて通ること のできない、ロジック・アナライザを接続するためのプローブ について詳しく説明します。 デコーダによるデータ表示 デコーダはデータの前後関係を見て、分かりやすく表示して くれる機能です。マイコン開発におけるバス解析でも使用さ れているため、逆アセンブラと呼ばれることもあります。 ここでもDDRメモリを例にして説明します。デコーダを使用 することにより、DDRメモリのどこのアドレスにどんなデータが 書き込まれたか、あるいは読み込まれたかが一目で分かりま す(図1)。 デコーダを使用しない場合、コマンド、アドレスおよびデー タとそれらの関係を自分の手で調べる必要があります。特に 物理アドレスの組み立ては大変です。概要は図2を参照して ください。 図1 デコーダの表示例:どこのアドレスにどんなデータが書き込まれた か一目で分かる 図2 デコーダがない場合:どのアドレスにどんなデータが 書き込まれたかは自分の手で調べる 図3 パケット表示の例:双方向に流れるパケットとその中身を 分かりやすく表示 双 方 向 に 送 受 信 さ れ る パ ケ ッ ト を 色 分 け し て 表 示 パ ケ ッ ト の 詳 細 情 報 を 仕 様 書 の フ ォ ー マ ッ ト で 表 示 <たとえば、どのアドレスにどんなデータがWriteされたのか調べる手順> 物理アドレスの構造は、Row アドレスとColアドレス、Bank アドレスからなります。 Activateコマンドが発行される と同時にRowアドレスが指定 され、一定クロックごにWriteコ マンドとともにColアドレスが 指定されます。実際のデータ はまた一定クロック(レーテン シ)後にバス上を流れます。デジタルVSA(Vector Signal Analysis)解析 携帯電話のような無線機器では、従来は全体的な制御にマ イコンが用いられてきた程度で、信号はアナログで処理されて いました。最近はベースバンドをデジタル化して処理すること が普通に行われています。デジタル・ベースバンドとIF信号に おける時間、周波数、モジュレーションドメイン解析をロジック・ アナライザ上で実行するようなツールもあります(図7)。 ロジアナで多チャンネルの信号品質チェック ステート解析を行ううえで重要なポイントの1つは、適切なサ ンプリング位置でデータをサンプリングすることです。システム がきちんと動いているのに、ロジック・アナライザが間違った データを観測していたのでは何の意味もありません(図8)。 これを解決するために、いまのロジック・アナライザの中には、 つながっている信号すべてのアイパターンを一度に描画でき るものがあります(図9)。 マイコンに実行させるバイナリコードをコンパイル・リンクす る際にデバッグオプションを付けることにより、シンボル情報 を生成します。ロジック・アナライザはそのシンボル情報を基 にバストレースのアドレス情報からソースコードの当該部分を 表示します。 さまざまなカスタム解析ツール 最近のロジック・アナライザは比較的容易にカスタマイズで きるようになっており、さまざまな解析ツールを作成することも 可能になっています。 例えば、DDRメモリバスを測定する場 合、読み書きするメモリ領域とその頻度を解析したり、 ActivateやRefreshなどのコマンド発行頻度を確認したりする パフォーマンス解析ツールがあります(図5)。 面白い例では、バス上を流れる画像データをロジック・アナ ライザ上で再生するツールがあります(図6)。画像を送信側、 受信側だけでなくバス上でも確認することにより、問題の原 因切り分けが容易になります。 図5 DDRメモリのパフォーマンス解析:各コマンドの出現頻度が色別に 表示される 図7 デジタルVSA解析の例 図6 画像表示ツール:MIPI上を流れる画像データをロジック・アナライザ上で再生 図9 多チャンネルのアイパターン描画:適切なサンプリング位置の 設定と信号品質のチェック 図8 ロジック・アナライザでは適切なサンプリング位置の設定が重要 実行している ソースコードを 表示 ロジアナで 実測した バストレース 図4 ソース相関表示:リスト画面とソースコード画面が連動して表示される 9
重要なプローブ選び 非接触で信号を測定できればよいのですが、そうなるにはま だまだ時間がかかりそうです。ロジック・アナライザを使用する うえでは、適切なプローブを選択することが重要です。プロー ブ選択には、以下のようなポイントがあります。 物理的形状:DUTに接続しやすいか、物理的に干渉しないか、 取り付け強度は大丈夫か 電気的負荷:取り付けることによってDUTに電気的影響を与 えないか 伝送帯域:測定する信号の周波数やデータレートに対応でき る帯域を持っているか プローブには大きく分けて以下の3種類があります。 フライングリード:プローブリードを信号個別に接続する コネクタ:あらかじめDUTに搭載しておいたロジック・アナライ ザ用コネクタに接続 コネクタレス:あらかじめDUTに搭載しておいた信号パッドに プローブピンを接触させる フライングリード・プローブ その名前のとおり、測定する信号ごとにリードを個別に接続 するプローブです(図11)。従来よく使われているプローブで すが、最近の製品は1.5Gb/sの帯域を持ったものや、差動入 力のものもあります。 あらかじめロジック・アナライザを接続することを考慮してい ない場合でも使用でき、非常に柔軟性の高い接続方法です が、多チャンネルを測定する場合は取り扱いが煩雑になると いうデメリットがあります。 リードとDUTの接続には、DUT側のヘッダピンに直接接続、 クリップ(グラバ)を使用する、ダンピング抵抗内蔵リードをはん だ付けするなど、いろいろな方法(プローブ・アクセサリ)があり ますが、アクセサリによりロジック・アナライザ入力の伝送帯域 が大きく変化する(制限される)ことに注意が必要です。 コネクタ・プローブ あらかじめDUT側に搭載しておいたロジック・アナライザ用コ ネクタに接続するプローブです。シングルエンド入力のもの (例:Mictorコネクタ)、差動入力対応のもの(例:Samtecコネク タ)などがあります(図12)。 原理は、ロジック・アナライザのスレッショルドとディレイを少し ずつ変えていき、そのポイントでデータが遷移するかどうかで アイパターンを描いていきます。遷移があればドットを描きま す(図8でオレンジ色の部分)。 もともと、正しいサンプリング位置を決めるための機能です が、多チャンネルの信号品質を確認できますので、多チャン ネルのオシロスコープとしても使えます。ただし、原理を説明 したとおり、リアルタイム・オシロスコープではなくサンプリン グ・オシロスコープに近いです。信号のパラメトリックな評価に はリアルタイム・オシロスコープを使用します。 DDRメモリの中でも、PCやサーバで使用されるDIMMでは、 データがReadとWriteで64ビットずつ、アドレスが16ビット、コ マンドが10ビット……と100を優に超す信号があります。一昔 前のシステムなら16ビットあるうちの数ビットを見てOKであれ ばほかのビットもOKとできたかもしれませんが、近年の高速、 複雑化したシステムでは、それだけで安心できないケースが 増えています。それでは、1つ1つオシロスコープで見るので しょうか。ロジック・アナライザを使えば、全信号を一度に チェックできます。しかも、時間軸分解能10ps、電圧軸分解 能10mVというかなり高い分解能でアイパターンを描けるもの もあります。 通常のタイミング解析は、ターゲットではなく測定器のクロッ クに従って解析する非同期の解析です。それに対して、この 機能は、ターゲットの基準信号に同期した形で、ほかの信号 のタイミング解析を行います。この考え方は、シンクロナス(同 期)・タイミングと呼ばれ、今後より高速・複雑化していくシス テムでは、非常に重要になる考え方になるでしょう。 専用ソフトウェアツールと測定用アダプタ 規格やデバイスに特化したソフトウェアツールなども充実し てきており、それらの解析を行う専用機として使っても申し分 ないくらいのものもあります。また、ロジック・アナライザで直 接測定が困難なシリアルバスや高速バスに対しては、測定 用アダプタ(解析プローブ)を使用することにより測定や解析 を行うことが可能です(図10)。 このようにオシロスコープやMSOにできない多彩な解析を 行えるのが現在のロジック・アナライザです。いかがでしょうか、 ロジック・アナライザ=タイミング・チャートというイメージを 持っていた読者の方は、ロジック・アナライザへの認識が大き く変わったはずです。今回はそれぞれの機能を簡単に紹介 しましたが、次回以降でいくつかを詳細に解説します。 さて、いくら解析機能が充実していても、ロジック・アナライ ザと被測定物(DUT:Device Under Test)がうまく接続されて いなければ、信頼性の高い測定や解析を行うことはできませ ん。次にロジック・アナライザを使用するうえでは避けて通れ ないプローブについて説明します。 図10 ロジック・アナライザをベースにした専用ツールの例:FPGA、DDR、 MIPIアナライザ 図11 フライングリード・プローブの例:1.5Gb/s 差動16ch+クロック入力 10
いまさら聞けないロジック・アナライザ入門(4)
それでもロジック・アナライザは使いたくない!?
アジレント・テクノロジー 堀部 勝義 連載1から3回目まで、いろいろな切り口でロジック・アナライ ザについて語ってきました。しかしながら、やはりロジック・アナ ライザを引っ張り出してくるのは面倒だし、オシロスコープはよ く使うけど、ロジアナはできれば使いたくないというエンジニア は少なくないと思います。今回はこのような読者をターゲットに そのあたりのポイントを少し掘り下げてみたいと思います。 面白いことに昔から日本では、ロジアナ=タイミング・チャー トのイメージが強く(図1)、海外ではロジアナ=リアルタイム・ デバッグツールとして広く認知されています。 確かにロジック・アナライザの普及期には、多くのエンジニア がデバッグピンを立てて、タイミング・チャートでスキューやグ リッチなどの問題現象を追いかけていました。しかし今では FPGAやASICなどロジック回路がチップ内部に集積され外部 に信号が出なくなりました。またこれらのチップには便利なシ ミュレータやデバッグツールもそろっており、よほどのことがな い限りこのようなデバッグを行う必要はありません。このためオ シロスコープでチップ間の伝送線路のシグナル・インテグリ ティをチェックする方がより重要になってきました。 また昔はCPU周りのバスをステートでサンプリングし、逆アセ ンブル表示とソースコードの相関を取りながらデバッグしてい ましたが、CPUに大容量のキャッシュが標準的に搭載されるよ うになるとJTAGデバッグが主流になりました。またソフトウェア の開発ツールもシステムの肥大化、複雑化の流れとともに発 展し非常に便利になってきています。 以上のことからロジック・アナライザなんて過去の遺物だ、ロ ジック・アナライザを持ち出すようじゃ終わりだねと思っている 方も多いと思います。しかしながら知らないうちにデバッグに はまっていたりしませんか? もしくはオシロスコープでロジッ ク・イベントを追いかけて苦労していませんか? 意外と知られていないロジック・アナライザの進化 ロジック・アナライザは、近年ターゲット・システムの実際の動 作を可視化しデバッグするツールとして進化してきています。 まずはロジック・アナライザのメリット、デメリットを以下に簡単に まとめます。 DUTの設計段階でスペースを確保してコネクタを組み込む 必要がありますが、多チャンネルの信号を簡単確実に測定 できるので、最も多く使用されているプローブです。Mictorコ ネクタの場合で600Mb/s程度まで、Samtecコネクタだと 1.5Gb/sの入力データレートに対応可能です。最近のトレン ドである数100Mb/sを超えるような高速信号においては、装 着するコネクタがスタブになってしまうので、後述のコネクタレ ス・プローブが使用されることが多くなってきています。 コネクタレス・プローブ コネクタを使用せず、DUT上に設置した信号パッドに物理 的接触を行うプローブです。あらかじめDUT上にプローブ接 続用の信号パッドを設けておく必要がありますが、物理的な コネクタをDUT上に装着する必要がないためDUT上の信号 にもほとんど影響を与えず、多チャンネルの高速信号を確実 に測定することが可能です(図13)。 入力データレートとしては、現在のロジック・アナライザの上 限である2Gb/sを超える速度まで対応可能です。このコネク タレス・プローブは、優れた電気的特性を持っていて扱いも 簡単なため、ロジック・アナライザの汎用測定用途以外にも PCI ExpressやSerial Rapid IOなどの汎用高速シリアルバス のプロトコル測定にも使用されています。 ◇ 今回は最近のロジック・アナライザに搭載されているさまざ まな解析機能と、ロジック・アナライザをどのように接続するの かというプローブについて説明しました。これらはロジック・ア ナライザを提供するメーカーごとに異なり、カスタムツールを 作成することも可能なので、分からないことがあればメーカー のエンジニアに相談されることをお勧めします。 図13 コネクタレス・プローブの例:DUT上の白い枠はプローブを物理的に 固定するためのもので、信号はマイクロスプリングピンが信号パッドに接 触することにより測定する 図12コネクタ・プローブの例:Mictorコネクタ34chシングルエンド+クロック入力 図1 ロジック・アナライザ=タイミング・チャート? 11表1 ロジック・アナライザのメリットとデメリット 1)ロジック・アナライザは使い始めるまでが大変 !! ・チャンネル数が多いのでプロービングが大変 ・信号名の入力等のチャンネルセットアップが煩わしい 2)使いこなすのが大変 !! ロジック・アナライザのデメリット 1)実際のシステムの動作がわかる 2)イベントの検出が容易である ロジック・アナライザのメリット 図2 ロジック・アナライザから何でもアナライザへ ロジック・アナライザの最大のメリットは、実際のシステムの 状況をリアルタイムにモニタできることです。また「あるアドレ スにWriteしたとき」をイベントとして検出し、オシロスコープや ICE、プロアナなどにトリガ連携することができます。 しかしシステムの挙動をリアルタイムにモニタしても、単に 0/1のタイミングをチャートで見るだけでは、システム設計に 関係するほかのエンジニアにはよく分かりません。しかしなが らシステム上をやりとりしているメモリや画像などのデータを フォーマットに合わせてコマンドや画像にデコードすれば誰 でも簡単に理解することができます。 しかもトリガイベントやプロービングの煩わしさの問題も、上 位のコマンドや垂直同期イベント名でトリガリングすれば非常 に簡単です。ロジック・アナライザは、いろいろ応用が利く製 品なので、すべての機能を使いこなすのは少し大変かもしれ ません。しかしながら用途を決めて最適化すれば手軽に使 用することができます。 またプローブについては前回で説明したとおり最近では手 軽に使えるコネクタレスのプローブやアプリケーションに特化 した専用プローブがありますので、プローブとアナライザをコ ネクタで接続してセットアップ・ファイルを開けばすぐに使用 できるようになっています。 以上のことからロジック・アナライザは、アプリケーションに 合わせてプローブとセットアップ、専用解析ソフトウェアアプリ ケーションを組み合わせれば「何でもアナライザ」になる可能 性を秘めています(図2)。 それではFPGAアナライザやDDRアナライザを例に、どのよ うにロジック・アナライザがデメリットを克服して進化してきた のか確認していきましょう。 FPGAアナライザ 近年、FPGAは大規模、高集積、高速化が進み、CPUや I/Oコントローラなどの複雑な機能ブロックもIP化され、非常 に複雑なハードウェアを手軽にFPGA内部で構成できるよう になりました。 しかもFPGAは、シミュレータやデバッグツールなどFPGAベ ンダ純正の開発ツールが整備されており快適な開発環境が 整っています。しかしながらFPGAベンダの標準ツールは、 FPGA内部にロジック・アナライザ回路を組み込むため、FPGA 内部のブロックRAMなどのリソースを消費せざるを得ない部分 があります。 またDDRメモリや外部I/OはFPGAのクロックとは非同期にな るため、実システムになるとシミュレーションのようにはいかな いということも多々あります。そこでFPGA内部の信号を未使用 ピンに引き出せば、ロジック・アナライザで内部の信号の状況 をリアルタイムでモニタできますが、従来のロジック・アナライ ザの煩わしさが気になります。しかも違うポイントを観測したい 場合には再度FPGAの配置配線をしなければなりません。 そこで登場してきたのがロジック・アナライザベースのFPGA アナライザです。ご参考までにFPGAの各種デバッグツールの 比較データを以下に示します。 FPGAアナライザは、FPGA内部のデバッグコア(マルチプ レクサ・コア)経由で観測したい内部の実信号をまるでシミュ レータのように信号名を選択するだけでFPGA内部のノード の信号をJTAG経由で切り替えて、簡単にモニタすることが できます。しかも観測したい信号やデバッグコアについては FPGAベンダの環境からシームレスに構成することができます。 図3 FPGAアナライザ 図4 最近のSystem on FPGAの例 表2 FPGAの各種デバッグツールの比較データ
・FPGAのピンにロジック・アナライザの入力チャンネルを 接続すれば自動的にマッピングできるものもある。 ・ FPGAベンダの標準開発ツールからFPGA内部のノード 名を読み込むので、信号名の入力が不要 •FPGA開発ツールとシームレスにデバッグ用のマルチプ レクサを生成できるので、バンクごとにあらかじめ設定し たFPGA内部のノードを切り替えてモニタが可能である。 1) ロジック・アナライザは使い始める までが大変!! ・チャンネル数が多いのでプロービング が大変 ・信号名の入力等のチャンネルセット アップが煩わしい 2) 使いこなすのが大変 !! FPGAアナライザとしての進化のポイント ロジック・アナライザのデメリット ・ DIMMやSO-DIMMであればインタポーザプローブ、 DDR直付けの場合はBGAプローブでプロービングが 可能である。 ・ 専用セットアップファイルを読み込むだけでセットアップ が完了 ・ DDR解析ソフトウエアやトリガ生成ツールでDDR用 プロトコルアナライザとして簡単に使いこなすことがで きるだけでなく、パフォーマンス検証、プロトコルレベル のコンプライアンス検証、デバッグも可能である。 1) ロジック・アナライザは使い始める までが大変!! ・チャンネル数が多いのでプロービング が大変 ・信号名の入力等のチャンネルセット アップが煩わしい 2) 使いこなすのが大変 !! DDRアナライザとしての進化のポイント ロジック・アナライザのデメリット FPGAアナライザは、以下のとおりロジック・アナライザの従 来のデメリットを克服して進化してきた製品だと考えることが できます。 それからもう1つ、ロジック・アナライザは、いまだに高級高 額測定器だと思っている方も多いのではないでしょうか? 実 は、現在のロジック・アナライザの価格は、驚くほど安価にな り、34チャンネル程度のFPGAアナライザの構成であれば、 プローブ込みでも175万円程度で手に入ります。確かに同期 2GHzの高性能ロジック・アナライザ・モジュールなどは400万 円以上しますが、普及型のロジック・アナライザは、オシロス コープの広帯域化のような果てしない技術革新を要求される よりも、デバッグの基本ツールとして使い勝手の向上を要求 されてきたため、価格対性能比で見ると驚くほど低価格に なってきています。 DDRアナライザ DDRメモリは、ここ数年で一般的に使用されるようになって きました。DDRメモリは、データバスにメモリ・コントローラの信 号とDDRメモリの信号が互いのクロックで行き来し、しかも ReadとWriteではデータの位相が90度ずれるため、ロジック・ アナライザでメモリ・トランザクションをモニタすることは至難の 業でした。さらに、BGAが主流の現在ではプロービングする こと自体非常に困難です。 このためDDRメモリの実装上のトラブルに関しては、基板 のシグナル・インテグリティだけをチェックして、問題がなけれ ば、後はメモリ・ベンダ、コントローラ・ベンダにトラブルの切り 分けを依頼するケースが多かったと思います。ところが最近 ではFPGAへのDDRメモリ・コントローラIPの実装、より高速な DDRメモリの採用、外部I/Oの増設によるメモリ・トランザクショ ンの増加などによりDDR周辺のトラブルが後を絶ちません。 通常のメモリ・アクセスでは問題が発生しないのに、特定の状 況のときにだけシステムがハングするような場合、どのようにト ラブルを切り分けますか? このようなケースではDDRアナライ ザが威力を発揮します。 DDRアナライザにおけるロジック・アナライザの進化のポイン トは以下のとおりです。 以上のとおり、DDRアナライザはDDR専用プロトコル・アナラ イザのように簡単に接続して誰でも簡単に使用することができ ます。プロービングについては、仕様でDIMMやSO-DIMMな どの形状が規定されているので、以下のようなプローブをター ゲットに接続し、付属のセットアップ・ファイルを開けば準備完 了です(図7)。 また組み込みシステムの場合、DDRメモリを基板に直付けす るケースも多いと思いますが、その場合は上記のようなBGAプ ローブを基板とDDRメモリの間に取り付けるだけです。この場 合もセットアップ・ファイルが添付されていますのですぐに使用 可能です。 DDRアナライザの機能については、すでに第2回、第3回で 触れましたので、ここでは以下にパフォーマンス検証、プロトコ ルレベルのコンプライアンス検証、デバッグ画面の各画面を 示します(図8)。 図6 DDRアナライザ 表3 FPGAアナライザとしての進化ポイント 表4 ロジック・アナライザの進化ポイント 図7 DDR用各種プローブ 図8 DDRアナライザの解析例 図5 FPGAアナライザの概念図 13
例えば物理層、論理層、プロトコル層、アプリケーション層の エンジニアは、それぞれの使用したシミュレータや開発ツール を前提に不具合解析を行います。しかしながら互いに協力し 相関を取らなければ不具合現象を特定することは困難です。 その際にロジック・アナライザは、オシロスコープ、プロトコル・ アナライザ、ICEなどとの時間相関、トリガ連携が可能ですの で、問題現象発生時のイベントを特定することでデバッグ効率 は飛躍的に向上します。実際のシステムの動作を正しく把握 し、その情報を関係するエンジニアで共有し連携して解決し ていくことは非常に重要です。 ロジック・アナライザは、基本的な性能よりも、使い勝手の点 で進化し低価格になってきています。シミュレーションのため のテストベンチの構築やシミュレーションの精度は極めて重要 ですが、実機デバッグをスマートに行うためにロジック・アナラ イザの活用を検討してみるのも悪くないと思います。 さて次回でこの連載も終了です。FPGAアナライザやDDRア ナライザなど実際のデバッグで役立つテクニックについて実 例を交えて紹介していきます。 DDRメモリの場合、データバスの信号をモニタしないと割り 切れば、64チャンネル入力で足ります。この場合Read/Write したデータはモニタできないので分かりませんが、特定のア ドレスにRead/Writeしたイベントを検出することが可能です。 また上記のDDRアナライザの解析機能も使用可能です。 さらにデータバスをモニタしない場合のメリットはもう1つあり ます。アドレスやコマンド/コントロール・バスはダブル・デー タ・レートではありません。例えばDDR2/400の場合、データ バスは200MHzの両エッジでのサンプリングが必要ですが、 アドレスやコマンド/コントロール・バスは、200MHzの片エッ ジでのサンプリングです。このためアナライザ・モジュールも 安価なモジュール1枚でDDRアナライザとして使用することが 可能です。 システム統合デバッグ時の盲点 高速化、大規模化、複雑化したシステムの設計において、 システムの各ブロックや統合デバッグにおける評価検証作業 は非常に複雑になり、効率的なデバッグが、開発期間を短 縮し信頼性を維持するうえでの重要な課題になっています。 しかしながら、システム統合デバッグを非常に複雑にしてい る要因の1つとして、物理層、論理層、トランザクション層、ソ フトウェアなどの各レイヤで使用している測定器の連携の問 題(図9)があることはあまり知られていません。 図9 各レイヤ間での測定器の連携の概念
いまさら聞けないロジック・アナライザ入門(
5)
FPGA、DDRも怖くない!
ロジアナによる簡単デバッグ
アジレント・テクノロジー 菊地 秀 いままでロジック・アナライザについて、タイミング解析とス テート解析の違い、MSOとの違い、プロービングの選択などの それぞれの観点から解説してきました。大規模で多機能化す るシステムに対して、仕様どおり動作していることをスマートに 実機検証し、どのようにして早く不具合を発見していくのか? 最終回となる今回は、最近ロジック・アナライザの用途としてよ く使用されているFPGA、DDRメモリのデバッグ解析例を紹介し ます。 FPGAアナライザを使用した実機デバッグ例 前回、FPGAアナライザは「FPGA内部にデバッグコアを入れ てロジック・アナライザでFPGA内部を簡単にモニタできるツー ル」と紹介しました。図1は実際にFPGA内部のそれぞれのモ ジュールを観測した例を表します。この例ではFPGA内部から PCI ExpressやシリアルATAなどの外部I/Oへのデータを送る ために、Linear Feedback Shift Registerでスクランブルを掛け て、8B10B回路にデコードするところまでをFPGA内部で行い、 外部のユーザー回路のPHYにデータを送ることを想定してい ます。なおこの例では分かりやすいように、実際に送るデータ の代わりにIncrement Counterを使用しています。ロジック・アナライザのFPGAアナライザ機能とDDRアナライ ザ機能を併用すると簡単にFPGA内部の信号とボード上の DDRの信号と併せて測定することができます。例えば、FPGA アナライザで1と4のメモリ・コントローラの書き込み/読み出し アクセスをしながら、DDRアナライザで2と3のDDRメモリの書き 込み/読み出しアクセスをデコードしてモニタすることが可能 です。 さらに最近のロジック・アナライザには、1台でタイミング解析 とステート解析を同時に行えるものもあり、FPGAで問題となり やすい外部からの非同期信号入力の動作確認を行うことも可 能です。例えば3と4の読み出し動作の確認時に4の確認は FPGA内部のクロック信号に同期したステート測定を行い、3の 部分はタイミング測定を使用してクロックとデータのタイミング の確認を同時に行うことも可能です。 実際にFPGAアナライザを使用した測定例を図3に表します。 このボードでは、FPGAの内部信号用のプローブはフライン グリード・プローブを使用して、FPGAとDDRメモリ間にはコネク タレス・プローブを使用しています。 ちなみに、このFPGAアナライザのようにFPGAの内部観測を 行う機能は5年以上前からあったのですが、最近の高性能 FPGAや既存のIPの使用比率の高まりとともにニーズが急増し ています。特に既存のIPを使用した場合、サポートを受けるた めにはIPに問題があることをユーザーが切り分けなければなり ません。複雑なIPを開発するより既存のIPを利用することで開 発工数を劇的に削減することができますが、その半面、デバッ グの難易度も劇的に増加します。 DDRアナライザ使用例(DDRメモリの初期化の確認) DDR1まではICのパッケージによっては、何とかクリップでア ドレス、コマンド各信号をプロービングしてロジック・アナライザ で観測することが可能でしたが、DDR2からパッケージがBGA になったため、DDRメモリの動作確認を行ううえでプロービン グをどうするかを検討しなければならず、以前はそれが最初 のハードルになっていました。現在では第4回で紹介したBGA プローブがあるので、ロジック・アナライザで簡単にDDRメモリ の動作検証ができます。 実際に、DDRメモリを使用するうえで最初に必要な動作検証 として「コントローラからメモリの初期化」があります。実際の測 定例を図4に表します。 IPなどを使用して複雑な回路を組み込んだ場合、システム に不具合があったときにどこに問題があるのか切り分けること が重要になります。FPGAアナライザを使用するとFPGAを停 止することなく出力する信号を変更することが可能なので、シ ステムを動作させながらどの機能ブロックで不具合が起きて いるか簡単に確認することができます。さらにロジック・アナラ イザの豊富なトリガ機能が使用できることと、メモリ長も数メガ サンプルから数百メガサンプルまであるので、実システムで 長時間の動作を確認することが可能です。いかにシミュレー ションが便利になっていても、実機で起きている問題は実機 で観測した方が早いケースがあります。 FPGAアナライザを使用したFPGA外部信号との相関 また、FPGAアナライザはロジック・アナライザをベースにし ていますので、FPGA内部だけではなくボード上のほかの信 号と併せて測定することも可能です。図2はFPGA内部の信 号とボード上のDDRメモリの信号を同時に測定している例で す。 例えばFPGAとDDR間のメモリ・アクセスに問題があった場 合、FPGAの中だけ、もしくはボード上だけを個別に観測して いても、なかなか解決はできません。このような問題は時間 相関を取って、いつどこで障害が発生しているのか把握する ことが重要かつ必要です。メモリ・アクセス動作は次の4つに 分けられます。 1. FPGA内部のメモリ・コントローラからの書き込みの信号 2. ボード上のDDRメモリへの書き込みの信号 3. ボード上のDDRメモリからの読み出しの信号 4. FPGA内部のメモリ・コントローラへの読み出しの信号 図1 FPGAアナライザ使用例(内部観測) 図2 FPGAアナライザ使用例(外部相関) 図3 FPGAアナライザ使用例(DDRメモリとの外部相関) ユーザー回路 FPGAアナライザ Linear Feedback Shift Register M U X 8B/10B Encoder counter FPGA FPGAアナライザからJTAGケーブル経由で FPGA内部のマルチプレクサ(MUX)を 切り替えて出力信号が変更可能 メモリー コントローラ FPGAアナライザ WRITE READ DDRmemory 100101 MUX 101101 FPGA 4 1 3 2 FPGA-DDR間プロービング コネクタレス・プローブ使用 FPGAアナライザ用プローブ フライングリード・プローブ使用 15
このように実システムでのトラブルは物理層からソフトウェア までさまざまなところに問題が潜んでいます。そのようなとき でもロジック・アナライザはイベント検出器としてほかの測定 器と連動させ、単体では難しい現象をスマートに確認するこ とができます。さらにCPUやFPGAの内部信号を観測するだ けでなく、外付けのメモリや周辺回路の信号などとも相関を 取って、システム全体の動作を検証することが可能です。 最後に ロジック・アナライザはその成り立ちからいまに至るまで、デ ジタル・デバッグのためのツールとして進化してきています。 システムが日々複雑化しているにもかかわらず、オシロス コープとシミュレータだけでデバッグをしていないでしょうか? またコストや工数を極限まで効率化しなければならない状 況では、できるだけ既存のIPやリファレンスを採用することが 求められています。しかしながらこのようなIPやリファレンスデ ザインは、ますますブラックボックス化してしまい、最終的な 実機デバッグにおいて、より高度な検証が必要になってきて います。 問題は切り分けてしまえば単純な原因で発生していること がほとんどです。実機デバッグにおいても同時性のある多面 的なデバッグをすることにより、スマートにコストと工数を削減 する方法を考えてもよいのではないでしょうか? 図4 DDRアナライザによる初期化動作の確認 DDRアナライザで初期化するレジスタアクセスをトリガにセッ トするだけで測定が行えます。デコード結果を仕様と比較す ればよいので簡単に確認できます。見落としがちなところでも ありますので、思い込みで“こうなっているはずだ”ではなく、 実システムでも、きちんと仕様どおり設定されていることを確認 することをお勧めします。 DDRアナライザ使用例(アクセスの確認例) 実際に書き込んだデータが読み出したデータと一致しないト ラブル事例を図5、図6に表します。 FPGAアナライザでも紹介しましたが、まずは各動作を1つず つ確認することが重要になります。書き込んだデータ値と読み 出したデータ値が異なる場合、読み出したアドレスに書き込ん だときのデータが正しいかどうか確認する必要があります。ロ ジック・アナライザのメモリとストア条件を使用してReadとWrite イベント以外をフィルタ・アウトすることで、これらの間隔の空い たメモリ・アクセスも長時間のレコーディングが可能です。その 結果、図5のとおり書き込んだデータは0x8000、0x0008の連続 ですが、読み出したデータは0x0000、0x0008となっていること が分かります(図5)。 図6では、オシロスコープとロジック・アナライザの連携機能を 利用して、実際にオシロスコープにて電圧を確認したところ、 書き込み時の振幅が小さかったため、データを正しく書き込 めていなかったことが確認できました。 図5 DDRアナライザによる同一アドレスの確認例 図6 DDRアナライザとオシロスコープの連動 1. ターゲットの電源は切っておく 2. トリガ設定を読み出す(Recall…→MRS) 3. ロジアナをRun 4. ターゲットに電源を投入 コントローラは意図した通りにきちんと設定 をしているでしょうか? 初期化シーケンス後の最初のWriteコマンドでトリガ Write 波形 Read 波形 1.15V Write時のDQのHighが、 VIH(AC)=1.15V を下回っている事が判明。 ©Keysight Technologies. 2015 Published in Japan, January 6, 2015