インテル®高位合成 (HLS) コンパイラー プロ・エディション: ベスト・プラクティス・ガイド

ID 683152
日付 12/16/2019
Public
ドキュメント目次

5. メモリー・アーキテクチャーのベスト・プラクティス

インテル®HLS (高位合成) コンパイラーでは、コンポーネント内の効率的なメモリー・アーキテクチャー (メモリー幅、バンク数、ポート数など) を推測します。そのために インテル®HLS (高位合成) コンパイラーでは、アーキテクチャーをコンポーネントのメモリー・アクセス・パターンに適応させます。メモリー・アーキテクチャーのベスト・プラクティスでは、コンポーネントの最適なメモリー・アーキテクチャーをコンパイラーから得る方法を身に付けます。

ほとんどの場合、メモリー・アーキテクチャーを最適化するには、アクセスパターンを変更しますが、 インテル®HLSコンパイラー プロ・エディションを使用すると、メモリー・アーキテクチャーを制御することができます。

メモリー・アーキテクチャーのベスト・プラクティスに関するチュートリアル

インテル®HLSコンパイラー プロ・エディションに付属している多数のチュートリアルでは、 インテル®HLSコンパイラーの重要な概念や優れたコーディング・プラクティスを示しています。

次のチュートリアルでは、デザインに適用できる可能性のあるメモリー・アーキテクチャーのベスト・プラクティスを確認できます。
表 7.   インテル®HLSコンパイラー プロ・エディションで用意されているチュートリアル
チュートリアル 説明
この表のチュートリアルは、 インテル® Quartus® Primeシステム内の次の場所にあります。
<quartus_installdir>/hls/examples/tutorials/component_memories
memory_bank_configuration 次のメモリー属性を1つ以上使用して、各メモリーバンクのロード/ストアポートの数を制御し、コンポーネント領域の使用率、スループットを最適化する方法を示します。
  • hls_max_replicates
  • hls_singlepump
  • hls_doublepump
  • hls_simple_dual_port_memory
memory_geometry 各メモリーバンクのロード/ストアポートの数を制御し、コンポーネント領域の使用率、スループットを最適化する方法を示します。このためには、次のメモリー属性を1つ以上使用します。
  • hls_bankwidth
  • hls_numbanks
  • hls_bankbits
memory_implementation 変数または配列をレジスター、MLAB、またはRAMに実装する方法を示します。このためには、次のメモリー属性を使用します。
  • hls_register
  • hls_memory
  • hls_memory_impl
memory_merging リソース使用率の改善方法を示します。このためには、2つのロジックメモリーを単一の物理メモリーとして実装します。そのためには、hls_merge メモリー属性を深さ方向または幅方向にマージさせます。
static_var_init コンポーネント内のスタティックの初期化動作を制御する方法を示します。このためには、hls_init_on_reset または hls_init_on_powerup メモリー属性を使用します。
attributes_on_mm_slave_arg メモリー属性を Avalon® Memory Mapped (MM) スレーブ引数に適用する方法を示します。
exceptions メモリー属性を定数および構造体メンバーで使用する方法を示します。