VSC モードは、ハードウェア エミュレーション ターゲット (
-t hw_emu
) 用にコンパイルされる場合、アクセラレータ ソースから RTL を生成し、アプリケーション層コードに従って RTL シミュレーションを実行します。シミュレーション波形を表示するには、xrt.ini ファイルで次のオプションをイネーブルにします。[Emulation]
debug_mode=gui
図 1. シミュレーション波形の表示
上の図は、Vivado XSim インターフェイスの波形ビューアーを示しています。デフォルトでは、VSC は compute()
インターフェイスに合わせてグループ分けされた波形オブジェクトを作成します。カーネル コードは -g オプションを使用してコンパイルしておかないと、Vivado XSim でグループ分けのエラーが発生します。このデザインでは、アクセラレータの 4 つのインスタンス (NCU=4) がグループ分けされたオブジェクト (vadd*CU_0
~ vadd*_CU_3
) として列挙されます。これらの各グループには、compute()
引数、in1
、in2
、out
、および size
に対応する信号がさらに含まれます。kernel_execution
グループも自動作成され、CU インスタンスごとに ap_start
および ap_done
信号が含まれます。
ヒント: ハードウェア エミュレーションでは、開始信号のタイミングは、実際のハードウェア ビヘイビアーに比べると正確ではありません。これは、ホストとエミュレーション モデル (PCIe を介した、または DDR/HBM メモリを使用したデータ転送レイテンシ) の対話と、アプリケーションがリアルタイムのハードウェア実行ビヘイビアーを反映しないためです。ただし、
compute()
呼び出しの開始から停止までのタイミングはサイクル精度で正確です。