外部メモリー・インターフェイス・インテル® Stratix® 10 FPGA IPユーザーガイド

ID 683741
日付 9/30/2019
Public
ドキュメント目次

9.3.1.6.1. 一般的なガイドライン

インテル® Stratix® 10デバイスをターゲットにする外部メモリー・インターフェイス・ピンのピン配置を行う際はかならず、ハード・メモリー・コントローラーを使用している場合でも独自のソリューションを使用している場合でも、推奨されるガイドラインに従う必要があります。

ハード・メモリー・コントローラーを使用している場合は、 <variation_name>/altera_emif_arch_nd_version number/<synth|sim>/<variation_name>_altera_emif_arch_nd_version number_<unique ID>_readme.txtファイルで定義される相対的なピン位置を使用する必要があります。これは、お使いのIPで生成されます。

注:
  1. インテル® Stratix® 10ハード・プロセッサー・サブシステム (HPS) のEMIF IPのピン配置要件は、HPS以外のメモリー・インターフェイスの配置要件よりも制限が厳しくなります。HPS EMIF IPは、IPのコンフィグレーションに基づき インテル® Quartus® Prime IPファイル (.qip) で固定のピン配置を定義します。 インテル® Stratix® 10 HPSをターゲットにしている場合、外部メモリー・インターフェイスのピンの位置の割り当てを行う必要はありません。HPS固有の外部メモリー・インターフェイスのピン配置を取得するには、インターフェイスを インテル® Quartus® Prime開発ソフトウェアでコンパイルします。または、デバイスのハンドブックもしくはデバイスのピン配置ファイルを参照します。HPS EMIFのピン配置をカスタマイズする方法については、 HPSを備える インテル® Stratix® 10 EMIF IPのI/Oバンク使用時の制約 を参照ください。
  2. ピンポンPHY、PHY-Only、RLDRAMx、およびQDRxは、HPSでサポートされていません。

インテル® Stratix® 10外部メモリー・インターフェイスにピンを配置する際は、次の一般的なガイドラインに従います。

  1. 単一の外部メモリー・インターフェイスのピンが単一のI/O列内にあることを確認します。
  2. 外部メモリー・インターフェイスは、同じI/O列の複数のバンクを占有できます。インターフェイスが複数のバンクを占有する必要がある場合、それらのバンクが互いに隣接していることを確認します。
  3. 外部メモリー・インターフェイスで使用されていない同じバンク内のピンは、互換性のある電圧および終端設定の汎用I/Oとして使用可能です。
  4. アドレスおよびコマンドピン、およびそれらに関連付けられているクロックピン (CKおよびCK#) は、単一のバンク内に存在する必要があります。アドレスおよびコマンドピンを含むバンクは、アドレスおよびコマンドバンクとして識別されます。
  5. インターフェイスが3つ以上のバンクを使用する場合、インターフェイスの中央のバンクをアドレスおよびコマンドバンクとして選択し、レイテンシーを最小限に抑える必要があります。
  6. アドレスおよびコマンドバンク内のアドレスおよびコマンドピンとそれらに関連付けられているクロックピンは、Intel Stratix 10 External Memory Interface Pin Information Fileで定義されている固定のピン配置スキームに従う必要があります。このファイルは、www.altera.comより入手可能です。

    アドレスおよびコマンドピンをすべて手動で配置する必要はありません。1つのアドレスおよびコマンドピンの位置を割り当てると、フィッターは残りのアドレスおよびコマンドピンを自動的に配置します。

    注: ピン配置スキームは従う必要があるハードウェア要件です。また、メモリーデバイスのトポロジーによって異なる場合があります。一部のスキームではアドレスおよびコマンドピンの実装に3つのレーンを必要とし、他のスキームでは4つのレーンが必要です。従うスキームを決定するには、IPのパラメーター化を行う際のメッセージウィンドウを参照する、もしくは、IPの生成後に <variation_name>/altera_emif_arch_nd_<version>/<synth|sim>/<variation_name>_altera_emif_arch_nd_<version>_<unique ID>_readme.txtファイルを参照します。
  7. アドレスおよびコマンドバンクの未使用のI/Oレーンは、x8 DQSグループなどのデータグループの実装に使用できます。データグループは、アドレスおよびコマンド信号と同じコントローラーからのものでなければなりません。
  8. I/Oレーンは、アドレスおよびコマンドピンとデータピンの両方に使用することはできません。
  9. 読み出しデータグループは、ピンの表およびPin PlannerのDQSグループに従い配置します。読み出しデータストローブ (DQSおよびDQS#など) または読み出しクロック (CQおよびCQ#、QKおよびQK#など) は、特定の読み出しデータのグループサイズのDQS/CQおよびDQSn/CQnとして機能できる物理ピンに属している必要があります。関連する読み出しデータピン (DQおよびQなど) は、同じグループ内に配置する必要があります。
    注:
    1. ほかのデバイスファミリーとは異なり、特定のQDR IIおよびQDR II+のレイテンシーのコンフィグレーションで、CQ/CQ#ピンのスワップを行う必要はありません。
    2. QDR-IVでは、すべてのQKB/QKB#ピンの極性をFPGAの差動バッファー入力の極性に対してスワップし、ポートBでの正確なデータのキャプチャーを保証する必要があります。メモリーデバイスのQKBピンはすべて、FPGA側の入力バッファーのマイナスピンに接続し、メモリーデバイスのQKB#ピンはすべて、 FPGA側の入力バッファーのプラスピンに接続する必要があります。IPの最上位にあるポート名は、すでにこのスワップを反映していることに注意してください。すなわち、mem_qkbはマイナスのバッファー脚に割り当てられ、mem_qkb_nはプラスのバッファー脚に割り当てられています。
  10. 単一のI/Oレーンで2つのx4 DQSグループを実装することができます。ピンの表は、2組のDQSおよびDQS#信号に使用できるI/Oレーン内のピンを指定します。また、x4 DQSグループにおいては次の規則に従う必要があります。
    • 外部メモリー・インターフェイスには、偶数個のx4グループが必要です。
    • DQSグループ0およびDQSグループ1は、同じI/Oレーンに配置する必要があります。同様に、DQSグループ2およびグループ3は、同じI/Oレーンに存在する必要があります。一般的に、DQSグループXおよびDQSグループX+1を同じI/Oレーンにする必要があります。このXは偶数です。
  11. 書き込みデータグループは、ピンの表およびPin PlannerのDQSグループに従い配置します。QDR II、QDR II+、QDR II+ Extreme、RLDRAM 3プロトコルの出力専用データクロックをDQS/DQSnピンに配置する必要はありませんが、差動ピンのペアに配置する必要があります。これらは対応するDQSグループと同じI/Oバンクに配置する必要があります。
    注: RLDRAM 3、x36デバイスの場合、DQ[8:0]およびDQ[26:18]DK0/DK0#にリファレンスされ、DQ[17:9]およびDQ[35:27]DK1/DK1#にリファレンスされます。
  12. 書き込みデータグループが複数の読み出しデータグループで構成される双方向のデータピンを備えるプロトコルおよびトポロジーの場合、データグループとそれぞれの書き込みおよび読み出しクロックを同じバンクに配置し、I/Oのタイミングを向上させます。

    データピンの位置をすべて手動で指定する必要はありません。読み出しキャプチャーのストローブ/クロック・ピンのペアの位置を割り当てると、フィッターは残りのデータピンを自動的に配置します。

  13. DM/BWSピンが書き込みデータピンとペアになっていることを確認します。これは、1つをI/Oピンに配置し、もう1つをそのI/Oピンとペアになるピンに配置することで行います。DBIピンにおいても同じ規則に従うことが推奨されます (必須ではありません)。これにより、必要な場合にそのピンをDMとして再利用できる柔軟性を維持します。
注:
  1. x4モードは、DM/DBIまたは、HPS向け インテル® Stratix® 10 EMIF IPをサポートしません。
  2. インテル® Stratix® 10 EMIF IPベースのRLDRAM 3外部メモリー・インターフェイスを使用している場合、DQSグループのすべてのピン (DQDMDKQK) が同じI/Oバンクに配置されていることを確認します。この要件はタイミング・クロージャーを容易にします。また、デザインのコンパイルを成功させるために必要です。

同じI/O列の複数のインターフェイス

複数のインターフェイスを同じI/O列に配置するには、各インターフェイスのグローバルリセット信号 (global_reset_n) がすべて同じ入力ピンまたは信号から供給されるようにする必要があります。

I/O バンクの選択

  • 各メモリー・インターフェイスには連続するI/Oバンクを選択します。すなわち、同じ列番号およびそれぞれのI/Oバンク文字の前または後ろの文字を含むバンクを選択する必要があります。
  • メモリー・インターフェイスは、同じI/O列のI/Oバンクにのみ広がることができます。
  • 必要なI/Oバンクの数は、メモリー・インターフェイスの幅によって異なります。
  • 一部のデバイスパッケージでは、一部のLVDS I/OバンクのI/Oピン数が48ピン未満です。

アドレス/コマンド・ピンの位置

  • コントローラーのアドレス/コマンド・ピンはすべて、単一のI/Oバンクにある必要があります。
  • インターフェイスが複数のI/Oバンクを使用する場合、アドレス/コマンド・ピンは中央のバンクを使用する必要があります。インターフェイスで使用されるバンク数が偶数の場合、中央に位置する2つのI/Oバンクのいずれかをアドレス/コマンド・ピンに使用できます。
  • アドレス/コマンド・ピンとデータピンはI/Oレーンを共有できませんが、I/Oバンクを共有することができます。
  • ソフトおよびハード・メモリー・コントローラーのアドレス/コマンド・ピンの位置は事前に定義されています。External Memory Interface Pin Information for Devicesスプレッドシートの「Index within I/O bank」列にある各インデックスは、特定のプロトコルに対する専用アドレス/コマンド・ピンの機能を示しています。ピンのインデックス番号は、ピンが属するI/Oレーンを指定します。
    • I/Oレーン0—インデックス0から11のピン
    • I/Oレーン1—インデックス12から23のピン
    • I/Oレーン2—インデックス24から35のピン
    • I/Oレーン3—インデックス36から47のピン
  • アドレス/コマンド・ピンに3つのI/Oレーンのみを必要とするメモリートポロジーとプロトコルには、I/Oレーン0、1、2を使用します。
  • I/Oレーンの未使用のアドレス/コマンド・ピンは、汎用I/Oピンとして使用できます。

CKピンの割り当て

クロックピン (CKピン) は、インターフェイスのI/Oバンク数に基づき割り当てます。

  • I/Oバンク数が奇数の場合、1つのCKピンを中央のI/Oバンクに割り当てます。
  • I/Oバンク数が偶数の場合、CKピンは中央の2つのI/Oバンクのいずれかに割り当てます。

フィッターは必要なI/Oバンクを自動的に選択することができますが、インテルでは、手動で選択を行いフィット前のランタイムを短縮することを推奨しています。

PLLリファレンス・クロック・ピンの配置

PLLリファレンス・クロック・ピンはアドレス/コマンド・バンクに配置します。ほかのI/Oバンクには、PLLリファレンス・クロック・ピンとして使用できる未使用のピンがない場合があります。

  • PLLリファレンス・クロック・ピンを複数のインターフェイスで共有している場合、I/Oバンクは隣接している必要があります。すなわち、バンクには、同じ列番号およびそれぞれのI/Oバンク文字の前または後ろの文字が含まれている必要があります。

インテル® Stratix® 10の外部メモリー・インターフェイスIPは、PLLのカスケード接続をサポートしていません。

RZQピンの配置

RZQピンは、使用しているメモリー・インターフェイスのI/O Standardに対する正しいVCCIOおよびVCCPTを備えるI/O列の任意のI/Oバンクに配置することが可能です。ただし、推奨される位置はアドレス/コマンドI/Oバンク内です。これにより、より狭いインターフェイス・プロジェクトがテストに必要な場合のデバッグ中の柔軟性を高めます。

DQおよびDQSピンの割り当て

インテルでは、必要に応じてDQSピンをI/Oバンクの残りのI/Oレーンに割り当てることを推奨しています。

  • 同じDQSグループのDQおよびDQS信号を同じI/Oレーンに制約します。
  • 2つの異なるDQSグループからのDQ信号を、同じI/Oレーンに制約することはできません。

DQSピンの割り当てを指定しない場合、フィッターは自動的にDQSピンを選択します。

複数のインターフェイスでのI/Oバンクの共有

I/Oバンクを複数の外部メモリー・インターフェイスで共有する場合は、次のガイドラインに従います。

  • インターフェイスは、同じプロトコル、電圧、データレート、周波数、およびPLLリファレンス・クロックを使用する必要があります。
  • I/Oバンクを複数のインターフェイスのアドレス/コマンド・バンクとして使用することはできません。メモリー・コントローラーとシーケンサーは共有できません。
  • I/Oレーンを共有することはできません。DQS入力はI/Oレーンごとに1つのみであり、I/Oレーンは1つのメモリー・コントローラーのみに接続できます。