cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Versal メモリ インターフェイス入門

kshimizu
Xilinx Employee
Xilinx Employee
5 0 334

このブログは、英語版の Getting Started with Versal Memory Interfacesを翻訳したものです。

 

概要

このブログ エントリでは、Versal ACAP デバイスのメモリ インタフェースを使用して設計する前に理解しておく必要がある重要な情報について説明します。 

 また、このブログには、関連する資料、チュートリアル、およびサンプル デザインへのリンクも含まれています。

Versal に関連するブログは、こちらからご覧いただけます。

 

 

IP

Versal ACAP では、ハード化された Integrated DDR Memory Controller (DDRMC) がソフト メモリ インターフェイス IP オプションと共に提供されています。

さらに、Performance AXI Traffic Generator は、ハードウェア解析のためにシミュレーションおよび合成後の両方で Memory IP をスティミュレーションするために使用できます。

 

Versal Integrated DDRMC は、消費電力、リソース使用率、およびタイミング クロージャが抑えられているため、推奨されるソリューションです。

DDRMC にはプログラマブル ネットワーク オン チップ (NoC) インターフェイス ポートがあり、複数のトラフィック ストリームを処理するように設計されています。

さらに、サービス品質 (QoS) クラスがサポートされているので、コマンドの優先順位を適切に付けることができます。

 

NoC は、設定可能な AXI 接続ネットワークで、プログラマブル ロジック (PL)、プロセッシング システム (PS)、およびその他のハード ブロックの IP エンドポイント間でデータを共有するために使用されます。このデバイスのインフラストラクチャが、専用スイッチを持つ、高速で統合されたデータパスです。

Versal ソフト IP PL 内に配置されており、UltraScale/UltraScale+ デバイス ファミリのソフト メモリ インターフェイス IP に類似しています。

1: Versal IP

メモリ インターフェイス

 

DDRMC またはソフト IP

製品ガイド

ピン、バンク、クロッキング、およびリセット規則

PCB ガイドライン

リリース ノートおよび既知の問題

使用可能な IP デザイン フロー

ファブリック アクセス

DDR4

DDRMC

(PG313)

(PG313)

(UG863)

(Xilinx Answer 75764)

IP インテグレーターが必要

NoC

ソフト IP

(PG353)

(PG353)

(UG863)

近日リリース

IP インテグレーターまたは RTL のインスタンシエーション

PL に含まれている

LPDDR4/4X

DDRMC

(PG313)

(PG313)

(UG863)

(Xilinx Answer 75764)

IP インテグレーターが必要

NoC

RLDRAM3

ソフト IP

(PG354) 

(PG354) 

(UG863)

近日リリース

IP インテグレーターまたは RTL のインスタンシエーション

PL に含まれている

QDR-IV

ソフト IP

(PG355)

(PG355)

(UG863)

近日リリース

IP インテグレーターまたは RTL のインスタンシエーション

PL に含まれている

トラフィック ジェネレーター

ソフト IP

製品ガイド

クロッキングおよびリセット規則

PCB ガイドライン

リリース ノートおよび既知の問題

使用可能な IP デザイン フロー

ファブリック アクセス

Performance AXI Traffic Generator

ソフト IP

(PG381)

(PG381)

該当なし

(Xilinx Answer 75781)

IP インテグレーターまたは RTL インスタンシエーション

PL に含まれている

 

 

デザイン フロー

Versal ACAP をターゲットにする場合は、主に次の 2 つのデザイン ツールを使用できます。

  • 高位 FPGA デザインおよび検証をアクセラレーションする Vivado® ツール デザイン フロー
  • アクセラレーション アプリケーションをビルドする Vitis™ 環境デザイン フロー

NoC および DDRMC デザインには、Vivado IP インテグレーターが必要です。上記のソフト IP では、RTL インスタンシエーションと IP インテグレーターの両方がサポートされています。

IP インテグレーターの使用に関する情報は、Vivado デザイン ハブ - IP インテグレーターの使用」を参照してください。

 

デザインフローのベスト プラクティスおよび詳細なメモリ インターフェイス IP のウォークスルーについては、『Versal ACAP デザイン ガイド』 (UG1273) の第 4 章「デザインフロー」および上記の IP 製品ガイドを参照してください。

次に示すサンプル デザインも利用可能で、使い始めるときに役立つ優れた例が提供されています。

Versal ACAP デザインには、デバイスのブートに使用される PMC を含む CIPS IP が必要です。詳細は、『Control Interface and Processing System IP 製品ガイド』 (PG352) を参照してください。

 

 

NoC/DDRMC 入門

NoC および DDRMC を使用したデザインは、Versal ACAP が初なので、以前のザイリンクス デバイス ファミリとは異なります。

始めるのに役立つ情報は、次のとおりです。

  • NoC の概要を学ぶ: NoC の基本およびデザイン内で NoC を設定する方法を学ぶことができます。(PG313) の第 2 章と第 3 章で概要および製品仕様を確認できます。
    GitHub NOC DDRMC デザイン フローの概要に関するチュートリアルから学ぶことができます。このチュートリアルには、次のモジュールが含まれています。
    • NoC デザインの基本
    • NoC での Integrated Memory Controller の使用
    • ストリーミング トラフィックを使用したアイソクロナス クラス
    • 複数の NoC インスタンスを接続する NOC 間インターフェイス
    • デザインの合成およびインプリメンテーション

  • NoC IP を適切に設定する: IP に適切な数の AXI マスター、スレーブ、NoC 間インターフェイス、およびメモリ コントローラーを設定します。
    決定されたトラフィック モデルに基づいて (下記の「パフォーマンスを重視してデザインする」セクションを参照)、各 AXI チャネルの QoS を入力し、DDR アドレス マップを設定します。
    DDRMC でのメモリ インターフェイスの設定方法が、以前のデバイス ファミリとは異なります。DDR メモリ コントローラーは、NoC IP ウィザードを使用してインプリメントされます。このウィザードを使用すると、ドロップダウン リストからメモリ デバイスを選択する代わりに、メモリ集積度パラメーター、JEDEC タイミング パラメーター、およびモード レジスタ設定など、ターゲット メモリ デバイスのオプションを設定できます。
    さらに、このウィザードでは、ランクやスロットの追加、3DS デバイスへの移行など、将来のメモリ トポロジの拡張を考慮する際に、DDRMC のピン配置が十分あるように、将来のデバイス拡張に対応するオプションが提供されています。
    詳細は、(PG313) の第の「DDR メモリ コントローラー」を参照してください。

  • パフォーマンスを重視してデザインする: NoC および DDRMC を使用してデザインする場合、事前にパフォーマンスを重視したデザインを計画することが重要です。
    (PG313) の第「NoC のパフォーマンス調整」では、帯域幅、遅延、およびパフォーマンスに影響を与えるシステム デザインのトレードオフなど、パフォーマンスを測定するときに使用する主な基準と、NoC および統合 DDR メモリ コントローラーのパフォーマンスを最適化する方法が説明されています。
    パフォーマンスを重視してシステムをデザインする前に、GitHub チュートリアル「Versal ネットワーク オン チップ/DDR メモリ コントローラーのパフォーマンス調整」を参照して、パフォーマンス目標を達成するためにデザインを改善します。このチュートリアルでは、システムの DDR トラフィック仕様から始めて、次に NoCDDR メモリ コントローラー、および AXI トラフィック ジェネレーター (TG) を使用してこの仕様をモデル化する方法を学びます。

    準備ができたら、システムでパフォーマンスを重視してデザインします。

 

  1. トラフィック フローをモデル化します。コマンド パターンやアドレス パターンなど、システムのトラフィック要件を決定します。

  2. システムの集合体 (読み出しおよび書き込み) の帯域幅と各マスターの帯域幅を決定します。

  3. 理論上の最大帯域幅と NoC および DDRMC の実際のまたは達成可能な帯域幅を比較します。
    NoC の帯域幅については、(PG313) の「パフォーマンス メトリクス」セクションを参照してください。LPDDR4/DDR4 の帯域幅については、バスのターンアラウンド タイム、ページ ミス、メンテナンス コマンドなどの SDRAM オーバーヘッドを考慮してください。

  4. シミュレーションを実行して、チャネルで予測どおりにトラフィックが実行されていることを確認し、ボトルネックを特定し、パフォーマンスを調整します。
    • Performance AXI Traffic Generator は、Versal ACAP デザインのトラフィック マスターをモデリングし、ネットワーク オン チップ (NoC) に基づくソリューションのパフォーマンスを評価するものです。このコアには、シミュレーション専用で合成が実行できないバージョンと、シミュレーションとハードウェアでの実行の両方が可能な合成可能バージョンの 2 つのバージョンがあります。
      カスタム トラフィック パターンは、.cvs ファイルを使用すると IP に読み込むことができます。.csv ファイルの例は、(Xilinx Answer 75782) を参照してください。
    • 読み出し/書き込みレイテンシと帯域幅を表示するための AXI Performance Monitor IP を含めます。

  5. パフォーマンスを調整してシミュレーションを再実行します。
    • 要件を満たすために必要な数の NoC NMU DDRMC が設定されていることを確認します。
      オプションとして、メモリ インターリーブ、メモリの追加、データ幅の拡張、メモリの高速実行も考慮してください。
    • トラフィック要件を満たした DDR コンポーネントがあることを確認します。たとえば、DDR コンポーネントでバンクとバンク グループを増やすと、ページ ヒットとスイッチング ペナルティが減るため、最終的にはパフォーマンスが向上します。
    • シングル チャネルとデュアル チャネルの DDR 帯域幅を決定します。
    • DRAM コマンドおよびアドレス マッピングの効率を最大化して、ページ ヒットを含む DRAM ペナルティを削減します。
      DDR にアクセスするアドレス パターン、コマンド パターン、トランザクション サイズ、およびスレッド数を考慮してください。

  6. AXI Performance Traffic Generator をターゲット AXI エンドポイントに置き換えてシミュレーションします。インターフェイスの使用率を最大限にするようにカスタム AXI IP をデザインします。
    『Vivado Design Suite: AXI リファレンス ガイド』 (UG1037) (特に第 6 章の「AXI システムの最適化」) およびフォーラムの AXI 基本ブログ シリーズには役立つ情報が提供されています。

    簡単なヒント:
    • シミュレーションで確認できる Outstanding Read (未処理の読み出し) Outstanding Write (未処理の書き込み) が常にキューに入っていることを確認します。
    • axi_cache[1] がどのように設定されているかを確認します。変更可能としてマークされている場合、NoC でトランザクションをより効率的に動作させることができます。
    • データ幅変換を最小限に抑えます。

 

 

デザイン プロセス ハブ

ザイリンクスの資料は、デザイン ニーズに関連する内容を見つけやすいように、デザイン プロセスに基づいて構成されています。
デザイン プロセスに関する詳細情報については、次のデザイン プロセス ハブを参照してください。

 

 

サンプル デザインおよびチュートリアル

 

 

その他のリソース