次の図に、[Waveform] ビューを示します。
図 1. [Waveform] ビュー
[Waveform] ビューおよびライブ波形ビューアーは、ナビゲートしやすいように階層形式で表示されます。
- [Waveform] ビューはハードウェア エミュレーション (カーネル トレース) 中に実際に生成された波形に基づいているので、抽象化されたデータの基になっている個別信号まで詳細に表示できます。ただし、[Waveform] ビューは後処理されたデータから生成されるので、信号を追加することはできず、DATAFLOW トランザクションなどのランタイム解析の一部は表示されません。
- ライブ波形ビューアーは Vivado ロジック シミュレータ (
xsim
) の実行の一部として表示されるので、RTL デザインの信号および内部信号をライブ波形に追加できます。波形ビューアーの詳細は、 『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900) を参照してください。
[Waveform] ビューおよびライブ波形ビューアーには、次のような階層があります。
- [HLS Process Summary]
-
- CU のユーザー関数に対応するプロセスとそのサブプロセスの階層ビュー
- ユーザー関数を記述するプロセスを持つ各カーネル インスタンスのエントリ (エントリを展開すると、プロセスを表示可能)
- ユーザー関数に対応するすべてのプロセスでのハンドシェイク トランザクション
- データフロー プロセスと非データフロー プロセス/非パイプライン プロセスの両方
- プロセス上のトランザクション (ストールを含む) は、対応するプロトコル アナライザーのインスタンスを使用して表示されます。
- 実行時間に対する個々のプロセスの使用率の概要を取得できます (C/C++ プロファイル機能と同様)。
- Device "name"
- ターゲット デバイスの名前。
- Binary Container "name"
- バイナリ コンテナーの名前。
- Memory Data Transfers
- ホストからバンクに到着する読み出しおよび書き込みトランザクションすべてのトレースを DDR バンクごとに示します。
- Kernel "name" 1:1:1
- 各カーネルおよびそのカーネルの演算ユニットごとに、演算ユニットからのアクティビティを示します。
- Compute Unit: "name"
- 演算ユニットの名前。
- CU Stalls (%)
- 外部メモリ アクセス、内部ストリーム (データフロー)、または外部ストリーム (OpenCL パイプ) が原因で回路の一部がストールした場合に通知するため、Vitis HLS ツールからストール信号が提供されています。カーネル トレースに詳細に示されるストール バスは、最下位のストール信号をすべてコンパイルし、すべての時点でのストールしている割合 (%) をレポートします。これにより、カーネルのどの程度がシミュレーションでストールしているかがわかります。
たとえば、100 個の最下位ストール信号があり、あるクロック サイクルでそのうち 10 個がアクティブであれば、[CU Stall (%)] は 10% です。そのうちの 1 つがアクティブでなくなれば、9% になります。
- Data Transfers
- 演算ユニットの各マスター AXI ポートから DDR への読み出し/書き込みデータ転送アクセスを示します。
- User Functions
- HLS カーネル用に表示される情報で、ユーザー関数を示します。
- Function: "name"
- 関数名。
- HLS FIFO
-
- これは、RTL 以外のカーネル内で作成された HLS FIFO のサイズの波形を示しています。
- 波形はアナログ形式です。
- FIFO が含まれるカーネル インスタンスごとに 1 つのエントリが表示されます。
- アナログ波形は、シミュレーション中に FIFO 内の現在のエレメント数を示すカーネルの内部 HDL 信号をトレースすることによって生成されます。
- CU 名
- FIFO を含む CU の名前
- FIFO のインスタンス名
- FIFO インスタンス名
- mOutPtr["size:"0]
- シミュレーション中に現在 FIFO 内に存在するエレメントの数を示す HDL 信号