インテルのみ表示可能 — GUID: obu1590001534968
Ixiasoft
インテルのみ表示可能 — GUID: obu1590001534968
Ixiasoft
11.10.3.1.3. パラメーター・テーブルの配列
Calデータ配列 (pt_CAL_DATA_PTR)
Calデータ配列のベースアドレスは、(user_ramのベースアドレス) + (pt_CAL_DATA_PTRから読み取られる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ビット幅です。ピンの順序は次のとおりです。
- コマンド/アドレス・ピンに対する適切なENUM_AC_ROM_*のすべてのピン (このデザインで使用されているプロトコルに基づく)
- 次の順序でのすべてのデータピン。括弧内の各項目は、シングルビット、マルチビット・バス (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が次の順序で含まれています。
- センター
- CAレーン
- データレーン
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
アドレス | グループ | 要素 |
---|---|---|
タイル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 |
各グループ内のレーン順序は任意ですが、最初のアドレスはアクティブなシーケンサーを備えるセンターアドレスにする必要があります。