NoC IP を設定する - 1.0 日本語

Versal ACAP Programmable Network on Chip and Integrated Memory Controller v1.0 LogiCORE IP 製品ガイド (PG313)

Document ID
PG313
Release Date
2021-04-08
Version
1.0 日本語
  1. axi_noc_0 をダブルクリックすると、次の図に示すような設定ダイアログ ボックスが表示されます。

    このダイアログ ボックスを使用してデザインを作成し、DDRMC に含まれる NMU と NSU の数を設定します。この後の手順で、デザインの作成に必要な主要オプションの設定方法について説明します。

    [General] タブの [DDR Address Region 0] と [DDR Address Region 1] で、DDRMC のアドレスを Versal の統一システム アドレス マップにマップします。詳細は、アドレス デコードとシステム アドレス マップ を参照してください。



  2. [Connectivity] タブで、有効にする接続のチェック ボックスをオンにします。この例では、入力 S00_AXI からメモリ コントローラー ポート MC_0 への接続を有効にします (下図参照)。

  3. [QoS] タブでは、デザイン要件に基づいて読み出しおよび書き込み帯域幅とトラフィック クラスを設定します。次の図を参照してください。

    書き込みの場合、次の 2 つのトラフィック クラスを使用できます。
    • BEST_EFFORTS
    • ISOCHRONOUS
    読み出しの場合、次の 3 つのトラフィック クラスを使用できます。
    • BEST_EFFORTS
    • ISOCHRONOUS
    • LOW_LATENCY
    注: [Gb/s] をオンにすると、MB/s と Gb/s の間で帯域幅が変換されます。

    (Gb/s = MB/s*8/1000)

    [Owns QoS and Path]

    1 つの NoC パスは、INI を使用して複数の NoC を経由できます。QoS 設定は、QoS およびパスのオーナーである NoC インスタンスから取得します。NoC がパスのオーナーでない場合、QoS は無視されます。オーナーシップは、NMU または strategy=Driver から NSU、MC、または strategy=Load へ遷移します。

    値が [pending] の場合、検証時または上の [Run NoC DRCs] をクリックすると、オーナーシップが計算されます。値が [error] の場合、検証を実行するか、上の [Run NoC DRCs] をクリックすると、Tcl コンソールおよびメッセージ ウィンドウにエラーの詳細が表示されます。

    注: [Owns QoS and Path] が [no] の場合、帯域幅とトラフィック クラスのすべての設定が無視されます。

    [Run NoC DRCs]

    デザイン全体で NoC DRC を実行します。エラーは、Tcl コンソールとメッセージ ウィンドウに表示されます。デザイン全体でオーナーシップが計算され、[Owns QoS and Path] の列の [pending] と表示された項目が更新されます。1 つの NoC パスは、INI を使用して複数の NoC を経由できます。QoS 設定は、QoS およびパスのオーナーである NoC インスタンスから取得します。NoC がパスのオーナーでない場合、QoS は無視されます。オーナーシップは、NMU または strategy=Driver から NSU、MC、または strategy=Load へ遷移します。

    [QoS] タブの [Advanced] をオンにすると、次の列が有効になります。



    • [Read Ave Burst Length]/[Write Ave Burst Length]: 平均バースト長 (単位: ビート)。
      • 下限値: 1
      • 上限値: average_burst_length*master_data_width/8 = 4096 (4KB のデータ上限)
    • [Exclusive-Routing Group]/[Separate-Routing Group]
      • これらの機能は、いずれも機能安全アプリケーションをサポートするためのものです。各欄には、NoC 配線ネットのグループを定義する任意の文字列を入力できます。同じ文字列を入力したネットは、同じグループのメンバーとなります。[Exclusive-Routing Group] に指定したネットは、同じグループのほかのメンバーとの間で物理リソースを共有できますが、グループ外部のネットとはリソースを共有しないようにコンパイルされます。同様に、[Separate-Routing Group] に指定したネットは、同じグループのほかのメンバーとの間ではリソースを共有せず、グループ外部のネットとリソースを共有できます。
  4. [DDR4 Basic] タブをクリックし、[Controller Selection] のドロップダウン リストで必要なコントローラー タイプを選択します。
    • DDR4 SDRAM
    • LPDDR4/SDRAM
    次の図を参照してください。

  5. [Clocking] セクションの項目を設定します。

    [Clock selection] では、[Memory Clock] または [System Clock] を選択できます。上図のように Memory Clock を選択すると、[Memory Clock period (ps)] で指定した値に対応する範囲の値を [Input System Clock Period (ps)] で選択できます。System Clock を選択した場合は、これとは反対の動作となります。[System Clock Period] で指定した値に対応する範囲の値を [Memory Clock period (ps)] で選択できます。選択可能な値の範囲は、クロッキング アーキテクチャに基づいて決定されます。ほとんどのユース ケースでは、まず [Input System Clock Period] を設定し、次に必要な [Memory Clock period] を選択する方が簡単です。

    [Memory Clock Period]
    メモリ インターフェイス クロック周期を入力または選択します。このクロック周期は、DDR4 または LPDDR4/C メモリ インターフェイスのトグル レートの 2 分の 1 です。
    [Input System Clock Period]
    [Input System Clock Period] を入力または選択します。このクロックを使用して、DDRMC のクロッキング設定と、その結果得られるメモリ インターフェイス オプションが生成されます。
    [System Clock]
    現在のところ、差動外部入力クロックのみがサポートされています。
    [Enable Internal Responder]
    シミュレーション用のザイリンクス DDR4/LPDDR4 メモリ デバイス モデルを有効にします。
    • [Enable Internal Responder] をオフにすると、IP インテグレーターの最上位に追加のピンが引き出され、これらが AXI NoC IP 外部のメモリ モデルにフックアップされます。このデフォルト設定では、ザイリンクスのレスポンダーをユーザーが必要に応じて独自のメモリ ベンダー モデルに置き換えることができます。
    • [Enable Internal Responder] をオンにすると、ザイリンクスのレスポンダーが AXI NoC IP 内部に含まれるため、IP インテグレーターの最上位にピンは追加されません。これらのピンをシミュレーションに含めるには、「u_ddr_responder」を検索して波形ウィンドウに追加します。
    [Power Parameters]
    [Read Bandwidth] および [Write Bandwidth] のデフォルト値は、選択したメモリ周波数によって決まります。XPE ツールで正確な消費電力プロファイルを計算できるように、適切な値を入力してください。
  6. [DDR4 Memory] タブを使用して、基本的なメモリ設定を入力します。

    • [DDR Memory Options]:
      • [Device Type]: 次のメモリ フォーム ファクター オプションから選択します。
        • [Components]
        • [UDIMMs]
        • [SODIMMs]
        • [RDIMMs]
        • [LRDIMMs]
      • [Speed Bin (Monolithic/3DS)]: 選択した DDR4 または LPDDR4 SDRAM コントローラー タイプに対して、JEDEC でサポートされるスピード ビンを選択します。たとえば、x8 および 2 ランクを選択した場合、ツールは DDP と推論します。[DDR Basic] タブで [Controller Type] に DDR4 を選択した場合、プルダウンの後半に 3DS デバイスが表示されます。
      • [Base Component Width]: 選択したメモリ デバイス タイプのベース ダイの幅。
      • [Memory Device Width] (DDR4 のみ): このオプションは、コンポーネント メモリ デバイスで [Base Component Width] が x8 の場合のみ適用されます。x8 デバイスと、2 つの x8 ダイを使用した x16 を区別するために使用します。
    • [Memory Density Parameters]:
      1. [Row Address Width]: メモリ データシートのアドレス テーブルを参照してください。
      2. [Bank Group Width] (DDR4 のみ): 自動的に計算されます。
      3. [Bank Address Width]: 自動的に計算されます。
      4. [Number of Channels]: 1 つのメモリ コントローラー内の独立したサブチャネル数 (1 または 2)。
      5. [Data Width]: 選択したメモリ構成のチャネルあたりのデータ幅。
      6. [Ranks]: メモリ トポロジに基づくランク数を選択します。
      7. [Stack Height] (DDR4 のみ): 3DS メモリ デバイスのスタック高さを選択します。
      8. [Slot] (DDR4 のみ): RDIMM/LRDIMM トポロジのスロット数を設定します。
      9. [Number of Memory Clocks] (DDR4 のみ): 1866Mbps 以上の DDR4 DDP Deep コンポーネントを 4 個より多く使用する場合は 2 に設定します。詳細は、DDR4 のデュアル CK 構成 を参照してください。
      10. [ECC]: オンにすると、選択したメモリ構成に対して ECC が有効になります。
      11. [Write DBI]/[Read DBI]: メモリ側とコントローラー側の DBI (Data Bus Inversion) を選択します。このドロップダウンでは、必要に応じて [Write Data Mask (DM)] オプションも使用できます。
      12. [Channel Interleaving]: DDRMC は、AXI 要求をインターリーブ ブロック サイズのサブ要求に自動的に分割し、これらを 2 つのチャネルに交互に送信することにより、2 つのメモリ チャネルによるインターリーブをサポートします。
      13. [DRAM Command/Address Parity] (DDR4 のみ): このオプションのチェック ボックスをオンにすると、コマンド/アドレス パリティが有効になります。
      14. [CA Mirror] (DDR4 のみ): メモリ トポロジで必要な場合、アドレス ミラーリングを有効にします。
      15. [Clamshell] (DDR4 のみ): オンにすると、クラムシェル トポロジが有効になります。詳細は、クラムシェル トポロジ を参照してください。
        注: 10、13、14、および 15 のオプションはハードウェアでのみサポートされ、シミュレーションには反映されません。
      16. [LP4 Pin Efficient] (LPDDR4/X のみ):: 性能と引き換えに、必要なピンの数を減らします。このオプションは、シングル ランク メモリ トポロジの場合のみ利用できます。
    • [Future Expansion for PCB designs (set per Interleaved MC)]: 選択したメモリ構成に応じて複数のオプションを利用できます。将来の拡張を考慮したピン配置オプション を参照してください。利用可能なオプションは、次のとおりです。
      • [Optimum]: 選択したメモリ構成に対して標準的なピン出力を生成します。
      • [Ranks Expansion]: 選択したメモリ構成をサポートすると同時に、将来のランク拡張を考慮してピンを作成します。
      • [Slot Rank and Stack Height Expansion]: 選択したメモリ構成をサポートすると同時に、将来の拡張を考慮してピンを作成します。
      • [CLK Expansion]: 1866Mbps 以上の DDR4 DDP Deep コンポーネントを 4 個より多く使用する場合は 2 に設定します。
      重要: [Expansion] オプションを選択した場合、ツールは現在の構成に基づいて追加のピン サイトのみを生成します。たとえば、将来のデザインでデュアル ランク DDR4 トポロジが必要になる可能性がある場合は、それらのピンがピン配置に生成されるように [Ranks] を 2 に設定します。
    • [Pinout Swapping (set per Interleaved MC)]:
      • [MC0 Pinout Swapping]: スワップは、3 つのバンク (トリプレット) 内ですべてのニブルの順番を反転します。この結果、一部のニブルはダイ上のハード ブロックによって「シャドー」の状態になります。シャドーになったニブルは、DDRMC のみが使用できます。ほかの用途には使用できません。詳細は、ピン配置の規則 を参照してください。
    • [Timing Parameters]: デフォルト値は、選択したスピード ビンおよび動作条件に対応する JEDEC 仕様の値です。
    • [Mode Register settings]:
      • [CAS latency(nCK)]: 選択したメモリ構成の CAS レイテンシを選択します。
      • [CAS Write latency(nCK)]: 選択したメモリ構成の CAS 書き込みレイテンシを選択します。
    • [Operating temperature]: LPDDR4 SDRAM の場合のみ利用できます。[Standard] と [High] のいずれかを選択できます。High を選択すると、一部のタイミング パラメーターがディレーティングされます。

    [DDR4 Memory] タブの [Timing Parameters] には、メモリ スピード ビンの要件に基づいた値をメモリ データシートから選択する必要があります。デフォルト値は、選択したスピードに対応する JEDEC 仕様の値です。

  7. [DDR4 Address Mapping] タブでは、ドロップダウン リストから事前定義済みのアドレス マップを選択するか、[USER DEFINED ADDRESS MAP] を選択した後、個々のアドレス ビットをドロップダウン リストで設定できます。
    注: デフォルトのアドレス マップは、[ROW BANK COLUMN BG0] です。


  8. [DDR Advanced] タブ (下図参照) では、高度なオプションを設定します。次の図に、DDR4 インターフェイス タイプのオプションを示します。

    [2T Timing] (DDR4 のみ)
    DDR コンポーネント構成では、デフォルトで [Enable] です。RDIMM/LRDIMM/UDIMM/SODIMM など、その他の DDR 構成では有効または無効のいずれにも設定できます。
    [ECC Options]
    ECC を有効にしたデザインにのみ適用されます。
    [Enable Background Scrubbing] (DDR4 のみ)
    詳細は、ECC スクラビング を参照してください。LPDDR4 に対して ECC が有効になっている場合、バックグラウンド スクラビングは自動的に有効になります。
    [Initialize Memory for ECC]
    このオプションはデフォルトでオンです。スクラビング サイズは、デフォルト値の 1MB からユーザーが変更できます。オフにする場合は、ユーザーがメモリを初期化する必要があります。
    [Refresh Options]
    [Enable Refresh and Periodic Calibration Interface]
    この機能はまだ実装されていません。
    [Fixed fine Granularity Refresh] (DDR4 のみ)
    1x、2x、4x。[Fixed Fine Granularity Refresh] モードを使用して、高温環境でのリフレッシュ プロトコルのオーバーヘッドを削減できます。詳細は、JESD79-4C に関するベンダーのデータシートを参照してください。
    [Refresh Type] (LPDDR4 のみ)
    [All Bank] または [Per Bank] リフレッシュ モードを選択します。
    [Power Saving Options]
    [Idle time to enter Power Down mode (nCK)]
    メモリ インターフェイス上でアクティブ パワーダウン モードに移行するまでのインターフェイス クロック周期の数を設定します。