C ドライバー ファイル - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

AXI4-Lite スレーブ インターフェイスがインプリメントされると、C ドライバー ファイルのセットが自動的に作成されます。これらの C ドライバー ファイルは、CPU で実行されるどのソフトウェアにも統合できる API を含んでおり、AXI4-Lite スレーブ インターフェイスを介してデバイスとの通信に使用されます。

C ドライバー ファイルは、デザインが IP カタログで IP としてパッケージされると作成されます。

ドライバー ファイルは、スタンドアロン モードと Linux モード用に作成されます。スタンドアロン モードの場合、ドライバーがその他のAMD スタンドアロン ドライバーと同じように使用されます。Linux モードの場合、すべての C ファイル (.c) とヘッダー ファイル (.h) がソフトウェア プロジェクトにコピーされます。

合成では、ドライバー ファイルと API 関数に最上位関数からの名前が一部使用されます。上記の例の場合、最上位関数の名前は example です。最上位関数が DUT であれば、次の説明に使用されている「example」は「DUT」になります。ドライバー ファイルがパッケージされた IP (solution フォルダー内の impl ディレクトリ) に作成されます。

表 1. example というデザインの C ドライバー ファイル
ファイル パス 使用モード 説明
data/example.mdd スタンドアロン ドライバー定義ファイル。
data/example.tcl スタンドアロン ソフトウェアを SDK プロジェクトに統合するために SDK で使用。
src/xexample_hw.h 両方 すべての内部レジスタのアドレス オフセットを定義。
src/xexample.h 両方 API 定義
src/xexample.c 両方 標準 API インプリメンテーション
src/xexample_sinit.c スタンドアロン 初期化 API インプリメンテーション
src/xexample_linux.c Linux 初期化 API インプリメンテーション
src/Makefile スタンドアロン makefile

xexample.h ファイルでは、次の 2 つの構造体が定義されています。

XExample_Config
IP インスタンスのコンフィギュレーション情報 (各 AXI4-Lite スレーブ インターフェイスのベース アドレス) を保持するのに使用されます。
XExample
IP インスタンスのポインターを保持するのに使用されます。ほとんどの API ではこのインスタンス ポインターが最初の引数として認識されます。

標準 API インプリメンテーションは、xexample.cxexample_sinit.cxexample_linux.c ファイルで提供されており、次の操作を実行する関数が含まれます。

  • デバイスを初期化
  • デバイスを制御し、そのステータスをクエリ
  • レジスタの読み出し/書き込み
  • 割り込みの設定、監視および制御

C ドライバー ファイルで提供される API 関数の詳細は、Vitis HLS C ドライバー リファレンス を参照してください。

重要: C ドライバー API は、常に符号なしの 32 ビット型 (U32) を使用します。C コードのデータを予測されるデータ型に変換しておく必要のあることもあります。