ハードウェア関数を SDSoC™ 環境から Vitis 環境に移行する際、注意が必要な事項がいくつかあります。
ハードウェア関数は、PL で実行するため個別の .xo ファイルとしてコンパイルされるので main() 関数には含まれず、SDSoC 環境でのように関数定義に特定のヘッダー ファイルは必要ありません。ヘッダー ファイルを破棄する前に、BUFFER_SIZE
宣言を mmult 関数にコピーする必要があります。#include
文をコメントにするか、削除することもできます。
#include "mmult.h"
ホスト コードとカーネル コードは個別に開発およびコンパイルされるので、一方が C、もう一方が C++ で記述された場合に、名前修飾の問題が発生する可能性があります。この問題を回避するには、カーネル関数宣言を extern "C"
リンケージで囲む必要があります。
extern "C" {...}
また、sds++
コンパイラではエンベデッド プロセッサとプログラマブル ロジック領域間のデータフローに関する一部の機能は推論されていましたが、Vitis コンパイラではホストからカーネルにデータを移動するのに使用するインターフェイス プロトコルを明示的に定義する必要があります。