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

ID 683216
日付 6/20/2022
Public
ドキュメント目次

11.10.3.1.3. パラメーター・テーブルの配列

この項では、アドレスがパラメーター・テーブルに格納される一部の配列の構造について説明します。これらの配列はキャリブレーション時に使用され、デザインのデバッグに役立つ場合があります。

Calデータ配列 (pt_CAL_DATA_PTR)

Calデータ配列のベースアドレスは、(user_ramのベースアドレス) + (pt_CAL_DATA_PTRから読み取られるcal_data配列のオフセット) に等しくなります。

表 174.  cal_data配列
ポインターアドレスからのオフセット エントリー サイズ (バイト)
0x0 STARTING_VREFIN 4
0x4 CAL_TREFI 4
0x8 CAL_TRFC 4
0xC CAL_ADDR0 4
0x10 CAL_ADDR1 4

MR配列 (pt_MR_PTR)

MR配列のベースアドレスは、(user_ramのベースアドレス) + (pt_MR_PTRから読み取られるMR配列のオフセット) に等しくなります。

各配列要素は32ビット幅です。次のように、この配列には最大3種類の情報を含むことができます。

  • モードレジスターに書き込まれる値。順序に関しては、ENUM_MR_INDEXを参照してください。このタイプのエントリー数はpt_NUM_MRで、非DDRプロトコルの場合は0になります。各エントリーは32ビットとしてコード化されます: {19'b0, A[12:0]} (バンクアドレスは含まれません)。
  • RDIMMまたはLRDIMMでは、上記のデータの後に64ビットのRDIMMコンフィグレーションが続きます。これは、それぞれが4ビットの16個の制御ワードで構成されます。
  • LRDIMMでは、上記のデータの後に、(pt_NUM_LRDIMM_CFG * 3) のバイト数の追加LRDIMMコンフィグレーションが続きます。各エントリーは3バイトのデータで、トリプレット間にパディングバイトはありません。各トリプレットは、{func_sel, address, value} として定義されます。例えば、{3, 2, 6} はF3RC2=6を意味します。

ピンアドレス配列 (pt_PIN_ADDR_PTR)

各配列要素は8ビット幅です。ピンの順序は次のとおりです。

  1. コマンド/アドレス・ピンに対する適切なENUM_AC_ROM_*のすべてのピン (このデザインで使用されているプロトコルに基づく)
  2. 次の順序でのすべてのデータピン。括弧内の各項目は、シングルビット、マルチビット・バス (LSBからMSB)、または0エントリー (存在しないバス) のいずれかになります。
    • DDR4: [DQS_T、DQS_C、DM、DQ]
    • QDR-IV: [QKA、QKB、QKA_N、QKB_N、DKA、DKB、DKA_N、DKB_N、DIVA、DIVB、DQA、DQB]

    次に例を示します。

    次の表は、2つのDQSグループに分割されているx16データ幅のDDR4インターフェイスのピンアドレス配列を示しています。

    表 175.  
    セクション アドレス 要素
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス = user_ramのベースアドレス + pt_PIN_ADDR_PTR DDR4_CKE_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1 DDR4_CKE_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2 DDR4_CKE_2
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x3 DDR4_CKE_3
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x4 DDR4_ODT_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x5 DDR4_ODT_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x6 DDR4_ODT_2
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x7 DDR4_ODT_3
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x8 DDR4_RESET
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x9 DDR4_ACT
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0xA DDR4_CS_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0xB DDR4_CS_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0xC DDR4_CS_2
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0xD DDR4_CS_3
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0xE DDR4_C_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0xF DDR4_C_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x10 DDR4_C_2
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x11 DDR4_BA_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x12 DDR4_BA_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x13 DDR4_BG_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x14 DDR4_BG_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x15 DDR4_ADD_0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x16 DDR4_ADD_1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x17 DDR4_ADD_2
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x18 DDR4_ADD_3
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x19 DDR4_ADD_4
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1A DDR4_ADD_5
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1B DDR4_ADD_6
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1C DDR4_ADD_7
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1D DDR4_ADD_8
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1E DDR4_ADD_9
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x1F DDR4_ADD_10
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x20 DDR4_ADD_11
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x21 DDR4_ADD_12
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x22 DDR4_ADD_13
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x23 DDR4_ADD_14
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x24 DDR4_ADD_15
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x25 DDR4_ADD_16
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x26 DDR4_ADD_17
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x27 DDR4_ADD_18
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x28 DDR4_ADD_19
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x29 DDR4_PAR_IN
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2A REAL_AC_PIN_DDR4_NUM
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2A DDR4_RDATA_EN
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2B DDR4_MRNK_RD
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2C DDR4_WDATA_VALID
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2D DDR4_MRNK_WRT
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2E AC_DDR4_NUM
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2A DDR4_ALERT0_N
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2B DDR4_ALERT1_N
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2C DDR4_CK0
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2D DDR4_CK0_N
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2E DDR4_CK1
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x2F DDR4_CK1_N
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x30 DDR4_CK2
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x31 DDR4_CK2_N
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x32 DDR4_CK3
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x33 DDR4_CK3_N
    1 (ENUM_AC_ROM_DDR4) ピンアドレス配列のベースアドレス + 0x34 AC_PIN_DDR4_NUM
    2 (DQS_T) ピンアドレス配列のベースアドレス + 0x35 DQS_0
    2 (DQS_T) ピンアドレス配列のベースアドレス + 0x36 DQS_1
    2 (DQS_C) ピンアドレス配列のベースアドレス + 0x37 DQS_N_0
    2 (DQS_C) ピンアドレス配列のベースアドレス + 0x38 DQS_N_1
    2 (DM) ピンアドレス配列のベースアドレス + 0x39 DM_0
    2 (DM) ピンアドレス配列のベースアドレス + 0x40 DM_1
    2 (DQ) ピンアドレス配列のベースアドレス + 0x41 DQ_0
    2 (DQ) ピンアドレス配列のベースアドレス + 0x42 DQ_1
    2 (DQ) ピンアドレス配列のベースアドレス + 0x43 DQ_2
    2 (DQ) ピンアドレス配列のベースアドレス + 0x44 DQ_3
    2 (DQ) ピンアドレス配列のベースアドレス + 0x45 DQ_4
    2 (DQ) ピンアドレス配列のベースアドレス + 0x46 DQ_5
    2 (DQ) ピンアドレス配列のベースアドレス + 0x47 DQ_6
    2 (DQ) ピンアドレス配列のベースアドレス + 0x48 DQ_7
    2 (DQ) ピンアドレス配列のベースアドレス + 0x49 DQ_8
    2 (DQ) ピンアドレス配列のベースアドレス + 0x50 DQ_9
    2 (DQ) ピンアドレス配列のベースアドレス + 0x51 DQ_10
    2 (DQ) ピンアドレス配列のベースアドレス + 0x52 DQ_11
    2 (DQ) ピンアドレス配列のベースアドレス + 0x53 DQ_12
    2 (DQ) ピンアドレス配列のベースアドレス + 0x54 DQ_13
    2 (DQ) ピンアドレス配列のベースアドレス + 0x55 DQ_14
    2 (DQ) ピンアドレス配列のベースアドレス + 0x56 DQ_15

    ほとんどの場合、各エントリーは8ビット {lane-index[3:0], pin-index[3:0]} としてエンコードされます。このlane-indexは、pt_TILE_ID_PTRのレーンアドレスへのインデックスであり、pin-indexはそのレーンの物理的なピンのインデックスです。

    データグループの数が16を超える場合は、16ビットのエンコーディングが使用されるため、4ビットでは不十分です。16ビットのエンコーディングはまた、alert_nなどのCAピンにも使用されますが、これらは必ずしも物理的にCAレーンに配置されているとは限りません。alert_nピンがデータレーンに配置されている場合は、タイルIDの絶対値 {1'b0, data-lane-index[6:0], pin-index[3:0], 4'b1111} が使用されます。このdata-lane-indexは、ピンのタイプに関係なく、常にデータレーンに基づいていることを除いて、8ビットのエンコーディングのlane-indexに似ています。16ビット・コードの場合、LSBバイトが最初に表示され、次にMSBバイトが表示されます。

    レーン・インデックスは、対応するグループ、具体的にはCAレーンまたはデータレーンのいずれかに基づいています。CAレーンとデータレーンの説明については、上記のpt_TILE_ID_PTRの内容を参照してください。

    次に例を示します。

    DDR4インターフェイスでは、DQ_0 = 8’b0001_0010の配列要素は次のとおりです。

    lane_index = 4’b0001

    pin_index = 4’b0010

    これはデータピンであるため、DATA_LANESのインデックス1 (つまり、タイルID配列の「DATA_LANES: TILE ID 1」) を参照し、このインターフェイスのDQ0データピンの実際のタイルとレーンの位置を取得する必要があります。

    未使用のスロット (デザインにCKEピンが2つしかない場合のCKE_3など) は、8'b0にする必要があります。

タイルID配列 (pt_TILE_ID_PTR)

各配列要素は8ビット幅のタイルID {tile-pos[4:0], lane-id[2:0]} です。この配列には、3つのグループのタイルIDが次の順序で含まれています。

  1. センター
  2. CAレーン
  3. データレーン

pt_NUM_CENTERS、pt_NUM_CA_LANES、pt_NUM_DATA_LANESはそれぞれ、センター、CAレーン、データレーンに存在するタイルIDの数を示します。

次の表は、次の特性をもつタイルID配列を例に示しています。

  • pt_NUM_CENTERS = 0x03
  • pt_NUM_CA_LANES = 0x03
  • pt_NUM_DATA_LANES = 0x09
表 176.  タイルID配列例
アドレス グループ 要素
タイルID配列のベースアドレス = user-ramのベースアドレス + pt_TILE_ID_PTRオフセット CENTERS CENTERS: Tile ID 0
タイルID配列のベースアドレス + 0x1 CENTERS CENTERS: Tile ID 1
タイルID配列のベースアドレス + 0x2 CENTERS CENTERS: Tile ID 2
タイルID配列のベースアドレス + 0x3 CA_LANES CA_LANES: Tile ID 0
タイルID配列のベースアドレス + 0x4 CA_LANES CA_LANES: Tile ID 1
タイルID配列のベースアドレス + 0x5 CA_LANES CA_LANES: Tile ID 2
タイルID配列のベースアドレス + 0x6 DATA_LANES DATA_LANES: TILE ID 0
タイルID配列のベースアドレス + 0x7 DATA_LANES DATA_LANES: TILE ID 1
タイルID配列のベースアドレス + 0x8 DATA_LANES DATA_LANES: TILE ID 2
タイルID配列のベースアドレス + 0x9 DATA_LANES DATA_LANES: TILE ID 3
タイルID配列のベースアドレス + 0xA DATA_LANES DATA_LANES: TILE ID 4
タイルID配列のベースアドレス + 0xB DATA_LANES DATA_LANES: TILE ID 5
タイルID配列のベースアドレス + 0xC DATA_LANES DATA_LANES: TILE ID 6
タイルID配列のベースアドレス + 0xD DATA_LANES DATA_LANES: TILE ID 7
タイルID配列のベースアドレス + 0xE DATA_LANES DATA_LANES: TILE ID 8

各グループ内のレーン順序は任意ですが、最初のアドレスはアクティブなシーケンサーを備えるセンターアドレスにする必要があります。