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
ディレクトリ) に作成されます。
ファイル パス | 使用モード | 説明 |
---|---|---|
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.c、xexample_sinit.c、xexample_linux.c ファイルで提供されており、次の操作を実行する関数が含まれます。
- デバイスを初期化
- デバイスを制御し、そのステータスをクエリ
- レジスタの読み出し/書き込み
- 割り込みの設定、監視および制御
C ドライバー ファイルで提供される API 関数の詳細は、Vitis HLS C ドライバー リファレンス を参照してください。