エミュレーション・デバッギング

検証プロセスにおいて、エミュレーションは従来のFPGAプロトタイピングよりもずっと早く実用化されました。例えば、シミュレーション・アクセラレーションは主なSoCブロックが実用化されてからすぐに注目されました。そのため、HDLシミュレーションに戻らずにエミュレーション実行中に問題を追跡してバグを発見できる高機能デバッギングが必要となります。こうした要求に応えるために、アルデックのHES-DVM™は次のようなツールと機能をすべて用意しています。

 

デバッグ・プローブ

デバッグ・プローブ機能は、エミュレーションを実行しながらデザインの信号値をキャプチャし、波形データベースに保存して、後でデバッグするのに必要とされます。

デバッグ・プローブについては、HES-DVMはスタティック・プローブとダイナミック・プローブの2種類をサポートしています。そのため、速度と可視性の絶妙なバランスを取る設定が可能です。どちらのケースでもHES-DVMは自動RTLソースコード計測とトゥルーRTLビューをサポートし、信号名、データタイプ、階層パスはHDLシミュレータと同じようにすべて保持・表示されます。デバッグ・プローブのサンプリングにはデザイン・クロックの1つが使用されますが、ユーザーは使うクロックを実行中にも変更できます。HES-DVMがサポートする波形フォーマットは、ASDBとFSDBの2種類で、前者はアルデックのRiviera-PROやActive-HDLに、後者はSynopsysのVerdiに読み込ませることができます。VCD波形はASDBから変換することで得られます。デバッギング・データはエミュレータ・ボードから高速PCIeホスト・インタフェースを使って取得可能です。

 

emulators and debuggers in embedded system, embedded software development tools emulators and debuggers

 

主要機能:

 

スタティック・プローブ

スタティック・プローブ機能はオンチップ・ロジックアナライザとして実現されるので、ロジックアナライザ特有の機能が使えます。アルデック独自の実装であるAdvanced Logic Analyzer (ALA) は、マルチFPGA構成でもシームレスに動作し、さらに各FPGAに搭載のフレキシブル・サンプル・バッファとPCIe経由で高いスループットのホスト・インタフェースをサポートしています。

スタティック・プローブは合成実行前に、デザインの設定フローの中で選択しなければなりません。ALAは最大256 Kbitというかつてない容量のデバッグ・プローブを用意し、それらをどのFPGAパーティションにも分散させることができます。スタティック・プローブはデータグループとトリガグループに分類可能で、エミュレーション実行時間で選択・設定できます。

  データグループ トリガグループ
グループ数 16 32
グループごとのプローブ数 16 Kbit 256 Bit
合計プローブ数 256 Kbit 8 Kbit

さらに、ユーザーはプローブ条件式やサンプルキャプチャの時間範囲指定などでデバッギング・プロセスをチューンアップできます。どんな場面でも、デバッグ・バッファがすべてロードされるときにエミュレーション・クロックを自動停止させることができるので、ALAはサンプルに抜けがないことを保証できます。

主要機能:

 

emulators and debuggers in embedded system, embedded software development tools emulators and debuggersダイナミック・プローブ

ダイナミック・プローブは100%の可視化を実現するもので、独自のHVD(Hardware-based Visibility Debugging)技術をベースにしています。HVDアルゴリズムは自動解析でベース・プローブを発見します。これはデザインの信号の最小のサブセットで、100%可視化するのにハードウェアからキャプチャする必要があるものです。

ダイナミック・プローブの最大の利点は、ユーザーはどの信号が所定の問題を解析するのに必要か前もって知る必要がない、というところです。代わりに、エミュレーション実行時間中にデバッグ用信号をデザインの中から選ぶことができます。HVDは予約済みの基本信号を拡張することで、どのデザイン・ノードでも確実に可視化することができます。

主要機能:

 

対話式プレゼンテーションのダウンロード

ウェブセミナー視聴

 

トリガとブレークポイント

複雑なSoCをデバッグする場合、デバッグ・データをキャプチャするかどうか決める際色々な条件をチェックする必要があります。数百万もの信号がありデバッグ・データはどんなエミュレータでも処理しきれないくらいの量になるので、デザインのデータセットをすべて(信号の100%)捕まえるのは現実的ではありません。トリガとブレークポイントはデバッグ・プロセスをより賢く進め、うまく制御するためのものです。トリガは、ロジックアナライザと同じように、集めたスタティック・プローブのサンプルをリリースするためのもので、ブレークポイントはエミュレーション・クロックを停止してユーザーに制御を返します。

アルデックのHES-DVMでは、スタティック・プローブで複雑な条件のトリガやブレークポイントを、ダイナミック・プローブでソフト・ブレークポイントを作れるようになっています。条件はブール式かシーケンス式で、比較演算子も全種類使えます。トリガとブレークポイントの条件はすべて、実行時間中に有効化・無効化・再設定などが可能です。

主要機能:

メモリ表示機能

メモリ・ブロックはどんなデジタル回路設計にも存在します。SoC内部では、ローカル・データストレージとしてだけでなく、マイクロプロセッサのサブシステムのキー要素としても頻繁に使われています。それゆえ、メモリの中味を確認できるかどうかはハードウェアでも組込みソフトウェアでも検証の際に不可欠なものです。メモリ・ビューワはハードウェア開発者にとってもソフトウェア開発者にとっても、まず何より大切なツールになりつつあります。

HES-DVMはオンチップ・メモリのデータをエミュレーション中に読み書きできるようにするデバッグ用のバックドア・インタフェースを持つモデルを用意しています。また、色々な標準的メモリ・モデルを豊富に揃えたライブラリがあり、サイズに応じてFPGAのRAMブロックや、外付けのオンボードDDR3メモリにマッピングすることができます。エミュレーション中、RTLソースコードから派生する階層名から所定のメモリが選択されます。実際のFPGAのインプリメントに関係なく、物理アドレスとデータ構造はユーザーインタフェースに保存されます。

 

主要機能:

 

HWデバッガ

HWデバッガはエミュレーション・デバッギング機能すべてにGUIから呼び出しできるようになっています。エミュレーション・ターゲットへの接続にはTCP/IPソケットを使用するので、エミュレーション・ホストのワークステーションからでも、さらにはデスクトップ・コンピュータからリモート接続することもできます。HWデバッガはLinux版とMS Windows版があり、クロスプラットフォーム環境も構築可能です。

 emulators and debuggers in embedded system, embedded software development tools emulators and debuggers

 

主要機能:

 

HES Debug API

emulators and debuggers in embedded system, embedded software development tools emulators and debuggersHES Debug APIは「C言語」インタフェースを持つライブラリで、CやC++のオブジェクトをリンクできるアプリケーションでなら何でも使えます。ライブラリはHES-DVMのデバッグ機能をすべてサポートするので、HWデバッガのGUIの代わりにもなります。HES Debug APIは、オンチップ・メモリの初期化や、内部レジスタのプローブ、ブレークポイントの動的構成などもできる強力で対話式のテストベンチの開発にも便利です。この独自機能を使うことで、検証エンジニアはエミュレーション中のデザインをブラックボックスとして扱う必要がなくなります。

主要機能:



Printed version of site: support.aldec.com/jp/solutions/hardware_emulation_solutions/emulation_debugging--emulators-and-debuggers-in-embedded-system