S_AXILITE オフセット オプション - 2023.2 日本語

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

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語
注記: Vitis カーネル フローでは、必要なオフセットが自動的に判断されます。このフローでは offset オプションを指定しないでください。

Vivado IP フローでは、使用されている引数のデータ型およびポート プロトコルによって、S_AXILITE 制御レジスタ マップ のポートのサイズまたはアドレス範囲が Vitis HLS で定義されます。INTERFACE プラグマには、AXI4-Lite インターフェイスのアドレス オフセットを指定する offset オプションが含まれます。

引数のオフセットを指定する際は、データのサイズを考慮し、ポート制御プロトコル用のスペースも確保する必要があります。確保するアドレス範囲は、32 ビット ワード単位にする必要があります。引数のデータ型を含めるのに十分な 32 ビット ワードを確保し、ap_none であっても、制御プロトコル用に 1 ワード余分に追加する必要があります。

ヒント: 配列の ap_memory プロトコルの場合、制御プロトコル用に 1 ワード余分に確保する必要はありません。この場合、引数のデータ型を格納するのに十分な 32 ビット ワードだけを確保します。

たとえば、double 用に十分なスペースを確保するには、64 ビット データ型用に 2 つの 32 ビット ワードが必要で、さらに制御プロトコル用に 32 ビット ワードを予約します。つまり、3 つの 32 ビット ワード (96 ビット) を確保する必要があります。引数オフセットが 0x020 から開始する場合は、引数用に必要なアドレス範囲を確保するため、次のオフセットは 0x02c から開始します。

引数のオフセットを間違って設定し、データ型および制御プロトコルに十分なアドレス範囲を確保しなかった場合、Vitis HLS でこのエラーが認識され、問題に関するメッセージが表示されて、間違って配置された引数レジスタが制御レジスタ マップの最後に移動されます。これによりビルドを続行することが可能になりますが、ホスト アプリケーションまたはドライバーが指定したオフセットに合わせて記述されている場合、正しく機能しない可能性があります。