インテル® HLS コンパイラー: ユーザーガイド

ID 683456
日付 12/22/2017
Public
ドキュメント目次

3. HLS コンポーネントおよびテストベンチの作成

コンポーネントを作成するには、main()関数にテストベンチとして機能する完全な C++ アプリケーションを記述し、コンポーネントとしてラベル付けされる各関数を HDL 表現にするために合成します。

可能な場合はその都度OpenCL™がサポートする C99 サブセットでコードを記述します。コンパイラーはいくつかの C++ 構文を合成することができ、これにより、より見通しの良いコードが作成しやすくなります。

サポートされている C99 サブセットとその制限について詳しくは、「 インテル® HLS コンパイラー・リファレンス・マニュアル」の「コンポーネント合成でサポートされるサブセット」を参照してください。

インテル® HLS コンパイラーは、コンポーネントとしてラベル付けされるすべての関数または関数内コードを合成し、これらのコンポーネントが呼び出す任意のコードを HDL 表現にするために合成します。
IP コアに合成する C++ アプリケーションの関数を特定するには、次のいずれかのタスクを実行します。
  • トップレベルの C++ 関数が合成される前に、ソースコードにcomponent属性を挿入します。
  • i++ コマンドの --component <component_list> オプションを使用し、コマンドライン上で関数を指定します。
重要:

一部の関数では不要なコンポーネントが予期せず合成される可能性があるため、これら 2 つの方法を併用しないでください。万一、これらの方法を併用すると、 i++ コマンドの --component <component_list> オプションにリストされたすべてのコンポーネントと同様に、componentキーワードでラベル付けされたすべてのコンポーネントに対して合成されます。

関数に対してコンポーネントを合成しない場合は、関数で指定されたcomponent属性を含んでいないこと、およびその関数が i++ コマンドの --component <component_list> オプションで指定されていないことを確認してください。

各コンポーネントの関数の内容は、high-level design レポート ( <name>.prj/reports/report.html) の 「Area Analysis by Source」 で確認してください。

HLSコンパイラーは、CPU で実行する実行可能ファイルを作成します。次に、コンパイラーは合成された IP コアのシミュレーションをするためにコンポーネントとして宣言した関数にすべてのコールを送信し、シミュレーション結果を返します。