ハードウェア関数の移行 - 2019.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2020-02-28
Version
2019.2 Japanese

ハードウェア関数を SDSoC™ 環境から Vitis 環境に移行する際、注意が必要な事項がいくつかあります。

ハードウェア関数は、PL で実行するため個別の .xo ファイルとしてコンパイルされるので main() 関数には含まれず、SDSoC 環境でのように関数定義に特定のヘッダー ファイルは必要ありません。ヘッダー ファイルを破棄する前に、BUFFER_SIZE 宣言を mmult 関数にコピーする必要があります。#include 文をコメントにするか、削除することもできます。

#include "mmult.h"

ホスト コードとカーネル コードは個別に開発およびコンパイルされるので、一方が C、もう一方が C++ で記述された場合に、名前修飾の問題が発生する可能性があります。この問題を回避するには、カーネル関数宣言を extern "C" リンケージで囲む必要があります。

extern "C" {...}  

また、sds++ コンパイラではエンベデッド プロセッサとプログラマブル ロジック領域間のデータフローに関する一部の機能は推論されていましたが、Vitis コンパイラではホストからカーネルにデータを移動するのに使用するインターフェイス プロトコルを明示的に定義する必要があります。