インテルのみ表示可能 — GUID: ewa1466529352404
Ixiasoft
1.4.4.2. スレーブメモリー
デフォルトでは、コンポーネントへのポインター引数はコンポーネントにメモリーマップド・マスター・インターフェイスを生成します。ポインターはコンポーネントの外部でシステムメモリーに格納されているバッファーを参照します。
ポインター引数によるコンポーネントにメモリーマップド・マスター・インターフェイスを生成には、潜在的な欠点が 2 つあります。
- マスター・インターフェイスはシングルポートを有します。コンポーネントに複数のロード・ストアー・サイトがある場合、そのポートの調停により、ストール可能なロジックが作成される可能性があります。
- コンポーネントがインスタンス化されているシステムによっては、コンポーネントが動作中に他のマスターがメモリーバスを使用して、バス上に好ましくないストールを作成する場合があります。
小から中サイズのオンチップ・メモリーでは、スレーブメモリーのポインター引数は上記の欠点にアドレスする可能性があります。ポインター引数をスレーブメモリーとして宣言することは、コンポーネントの中で静的アレイを宣言することと類似しています。静的アレイの宣言とは異なり、内部初期化はメモリーに外部から公開されたポートに置き換えられます。メモリーは現在コンポーネントの内部にあるため、HLS コンパイラーは通常のメモリー最適化をすべて利用して、コンポーネントのアクセスパターン ( つまり、バンキング、結合など ) に最適化されたメモリー・アーキテクチャーを作成することができます。
HLSコンパーラーはオンチップ・メモリーブロックにスレーブメモリーを実装します。
コンポーネントは多数のメモリー・インターフェイスを有することができます。CSR スレーブ・インターフェイスとともにグループ化されたスレーブレジスター引数とは異なり、スレーブメモリーはコンポーネントで独自のスレーブ・インターフェイスを有します。スレーブメモリー・インターフェイスのデータバス幅はスレーブタイプの幅により決定します。メモリーへの内部アクセスが結合した場合、スレーブメモリー・インターフェイスのデータバス幅はスレーブタイプの幅の倍数になる可能性があります。