デバッグ手法

SDSoC™ アプリケーションのデバッグでは、標準 C/C++ をデバッグするのと同じ手法を使用できます。ほとんどの SDSoC アプリケーションには、ハードウェア アクセラレーション用にマークされた関数と、それを含む標準 C/C++ コードが含まれます。

デバッグ ホスト マシンに接続されたボードを使用して SDSoC アプリケーションをデバッグするには、[Assistant] ビューで [Debug [Hardware]] > [Debug] > [Launch on Hardware] をクリックしてデバッグ セッションを開始します。オプションは、[Debug [Hardware]] > [Debug] > [Debug Configurations] をクリックして設定できます。

注記: デバッグ環境は初期化されるので、ザイリンクスでは SDx™ IDE でメッセージが表示されたら [Debug] パースペクティブに切り替えることをお勧めします。

[Debug] パースペクティブには、コードのシングル ステップ、ブレークポイントの設定と削除、変数の表示、レジスタのダンプ、メモリの表示、run until および jump to などのデバッグ指示子を使用したコード フローの制御など、アプリケーションの標準 C/C++ 部分をデバッグする機能が含まれます。入力および出力は関数呼び出しの前後に監視され、正しい動作が決定されます。

ハードウェア アクセラレーションされたアプリケーションがリアルタイムの要件を満たすかどうかを判断するには、ハードウェア アクセラレーションされた関数の直前および直後にカウンターを開始および停止するデバッグ文を記述します。SDx 環境には、通常ハードウェア アクセラレーションされた関数の経過時間を計算するのに使用される sds_clock_counter() 関数が含まれています。

プロジェクトをエミュレーション用に SDx ビルドすると、デバッグ ホストに接続されたターゲット ボードがなくてもデバッグを実行できます。エミュレーション中は、前述のように [Debug] パースペクティブでソフトウェアおよびデータを制御および確認できますが、Vivado® シミュレータの波形ビューアーを使用してもハードウェア アクセラレーションされた関数を表示できます。アクセラレータの信号で Accelerator start、Accelerator done などの条件を確認したり、入力および出力のデータ バスを監視したりできます。プロジェクトをエミュレーション用にビルドすると、FPGA ビットストリームを生成するための時間のかかる Vivado インプリメンテーション段階を回避することもできます。

SDx IDE でインタラクティブなデバッガーを使用する方法については、SDSoC 環境デバッグ ガイド を参照してください。