インテル® HLS コンパイラー: リファレンス・マニュアル

ID 683349
日付 6/23/2017
Public
ドキュメント目次

1.4.2.2. ポインター・パラメーター、参照パラメーター、および Avalon Memory-Mapped インターフェイス

コンポーネントは、Avalon® Memory-Mapped (Avalon®-MM) インターフェイスを介して外部メモリーとインターフェイスすることができます。 Avalon-MM インターフェイスは、ポインター関数引数を黙示的に使用するか、またはhls.hファイルで定義されるmm_master<> クラスを明示的に使用して指定できます。mm_master<> クラスはコンポーネント・シグネチャーの参照パラメーターとして機能しなければなりません。
表 6.  Avalon-MM インターフェイスのコンフィグレーションで使用可能なテンプレート引数すべてのポインターは、デフォルト設定で使用する信号インターフェイスで調停されます。ポインターのデフォルトのアドレススペースは 0 です。

Avalon-MM マスターでの入力テンプレート構文は、変化の対象となります。

テンプレート引数 デフォルト 説明
type 任意の有効な C++ 型 N/A 基となるポインター型です。マスター・オブジェクトで実行されるポインター演算はこの型に準じます。マスターの依存関係は、sizeof(type)の幅を有するロード・ストアー・サイトの結果となります。ポインター引数は、少なくともバイト単位でsizeof(type)に揃えられている必要があります。
ihc::dwidth<value> 8、16、32、64、128、256、512、または 1024 64 ビット単位のメモリーマップド・データバスの幅。
ihc::awidth<value> 1 – 64 の範囲の整数値 64 ビット単位のメモリーマップド・アドレスバスの幅。
ihc::aspace<value> 0 よりも大きい整数値 1 マスターに関連するインターフェイスのアドレススペースです。同じアドレススペースのすべてのマスターは、コンポーネント内で単一インターフェイスに調停されます。これらのマスターは、インターフェイスを記述する同じテンプレート・パラメーターを共有している必要があります。
ihc::latency<value> 正の整数値 1 外部メモリーが有効な読み出しデータを返す際に、read コマンドがコンポーネントを終了してから保証されるレイテンシーです。

このレイテンシーが変数の場合、 0 に設定されます。

ihc::maxburst<value> 1 – 1024 の範囲の整数値 1 リードおよびライト・トランザクションに関連付けることができるデータ転送の最大数です。固定レイテンシー・インターフェイスでは、値は 1 に設定される必要があります。

詳しくは、Avalon Interface Specificationsを参照ししてください。

ihc::align<value> type引数の整列の整数倍である整数値 型のアライメント

基本ポインターアドレスのバイト境界合わせです。HLSコンパイラーはこの情報を使用してこのポインターへのロードとストアーで可能な結合の量を決定します。

データ型の幅がマスターデータの幅より小さい場合、 インテル® はこの引数を少なくともマスター幅と同じに設定することを推奨しています。

例えば、型がcharでマスター幅を 64 ビットになるように設定している場合、各クロックサイクルごとに 8 文字をリードまたはライトできるように、alignテンプレート引数を 8 バイトに設定します。

重要: 呼び出し元は、align引数の設定値にデータを整列する必要があります。そうでない場合、機能上で障害が起こる場合があります。