ザイリンクス Vitis™ HLS ブロックを使用すると、Vitis HLS デザインの機能を Model Composer デザインに含めることができます。Vitis HLS デザインには、C、C++、および System C デザイン ソースを含めることができます。
Vitis HLS デザインを Model Composer に含める方法には次の 2 つの手順があります。最初の手順では、Vitis HLS RTL パッケージ機能を使用して、デザイン ファイルを Solution ディレクトリにパッケージします。RTL パッケージの詳細は、Vitis HLS の資料を参照してください。2 番目の手順では、Model Composer デザインに Vitis HLS ブロックを配置し、Vitis HDL Solution ディレクトリをターゲットとして指定します。
[Block Parameters] ダイアログ ボックス
図 1. [Block Parameters] ダイアログ ボックス
- Solution
- Model Composer 用の RTL パッケージを含む Solution ディレクトリへのパスを指定します。このパスは通常、 Vivado® HLS プロジェクトに含まれるディレクトリへのパスになります。パスはシングル クォーテーションで囲み、文字列として評価されるようにする必要があります。
- Browse
- 標準のディレクトリ参照ボタンです。
- Refresh
- ブロックのポートを Solution に含まれる最新版のパッケージにアップデートします。
- Edit
- Solution に関連付けられている Vitis HLS プロジェクトを開きます。
- Use C simulation model if available
- C シミュレーション モデルが Vitis HLS パッケージで使用可能な場合に、それを使用します。次に示すように、使用中のシミュレーション モデルが Vitis HLS ブロック上に表示されます。この場合は、C シミュレーション モデルが使用できないため、RTL モデルが使用されます。
- Display signal types
- 入力ポートを駆動する信号と出力ポートから出力される信号のデータ型をブロック アイコンに表示します。
- Output Sample Times
- Simulink system period または GCD of the inputs period を選択します。
データ型の変換
データ型の変換 | |
---|---|
C/C++ のデータ型 | Model Composer のデータ型 |
float | XFloat_32_23 |
double | XFloat_64_52 |
bool | UFix_1_0 |
(unsigned) char | (U)Fix_8_0 |
(unsigned) short | (U)Fix_16_0 |
(unsigned) int | (U)Fix_32_0 |
(unsigned) long | (U)FIX_<PlatformDependent>_0 |
(unsigned) long long | (U)Fix_64_0 |
ap_(u)fix<N,M> | (U)Fix_<N>_<N-M> |
ap_(u)int<N> | (U)Fix_N_0 |
既知の問題
- Vitis HLS からの純粋な組み合わせデザインを含めることはできません。このデザインはクロックとクロック イネーブル入力を含む RTL デザインに合成する必要があります。
- 最上位モジュールには、C/C++ テンプレートを含めることはできません。
- 複合ポートは UFix_<N>_0 としてのみ表現されます (N はポートの幅)。
- 現在の C シミュレーション モデルでは、レイテンシと開始間隔が固定されたデザインのみがサポートされます。レイテンシと開始間隔の値は、合成エンジンから取得されます。
- 現在の C シミュレーション モデルでは、デフォルトのブロック レベルの通信プロトコル (ap_hs) がサポートされます。
- 現在の C シミュレーション モデルでは、ap_memory および ap_bus はサポートされていません。
- Vitis HLS ブロックでは、パフォーマンスに関する考慮事項があるため、組み合わせデザインはサポートされていません。現在のインプリメンテーションでは、Model Composer により、毎クロック サイクルで各 HLS 入力ポートが複数回アップデートされます。そのため、入力が変わるたびに DUT を評価すると、コストが非常に高くなります。
- 出力値は、対応する制御信号によりデータが有効であることが示された場合にのみ、RTL シミュレーションの結果と一致します。そのため、テストベンチおよびダウンストリームのブロックでは、通信プロトコルと制御信号に基づいてデータを読み出し/監視する必要があります。
- Vitis HLS ブロックは Vivado Design Suite に含まれる GCC を使用して Windows 64 ビット プラットフォームで DLL をコンパイルする必要があるため、Windows 64 ビット システムでは、C デザインで任意のビット幅の整数値を使用することはできません。