External Memory Interfaces (EMIF) IP Design Example User Guide: Agilex™ 5 FPGAs and SoCs

ID 817394
Date 7/08/2024
Public
Document Table of Contents

2.3.4. Example: Swizzling for x32 + ECC DDR4 Interface

Table 10.  Lane Placement for x32 + ECC DDR4 Interface
Lane Number BL0 BL1 BL2 BL3 BL4 BL5 BL6 BL7
DDR4_AC_TOP DQ[4] DQ[3] DQ[2] DQ[1] AC1 AC2 AC3 sDO[0]
DQS Group Number in Byte Swizzling Notation 3 2 1 0 AC1 AC2 AC0 ECC
BYTE SWIZZLE 3 2 0 1 X X X ECC

In this example, BL7 cannot be swapped with other used DQS group. It is used as follows:

  • RUSER/WUSER Lane in x40 configuration
  • ECC Lane in x32 + ECC configuration

This example illustrates swizzling DQS group 1 (BL3) with DQS group 0 (BL2).

To achieve this swizzling, enter the following BYTE_SWIZZLE_CH0 specifications in the USER Extra Parameters filed:

BYTE_SWIZZLE_CH0=2,X,X,X,1,0,3,ECC;

In a DDR4 x32 + ECC configuration, the highest index DQS group is used as the ECC lane. We use PIN_SWIZZLE_CH0_ECC for swizzling the DQ pins within the ECC lane in this case. Note that the valid value for pin swizzling specification in the ECC lane is always 0-7 only.

Table 11.  Example of DQ Pin Swizzling in ECC Lane
Lane Pin Index Default Effective Pinout
BL7 95 MEM_DQ[39] MEM_DQ[36]
94 MEM_DQ[38] MEM_DQ[37]
93 MEM_DQ[37] MEM_DQ[38]
92 MEM_DQ[36] MEM_DQ[39]
91    
90 MEM_DM_N[4] MEM_DM_N[4]
89 MEM_DQS_C[4] MEM_DQS_C[4]
88 MEM_DQS_T[4] MEM_DQS_T[4]
87 MEM_DQ[35] MEM_DQ[34]
86 MEM_DQ[34] MEM_DQ[35]
85 MEM_DQ[33] MEM_DQ[32]
84 MEM_DQ[32] MEM_DQ[33]

To achieve the pin swizzling shown in the above table, enter the following BYTE_SWIZZLE_CH0 specifications in the USER Extra Parameters:

PIN_SWIZZLE_CH0_ECC=1,0,3,2,7,6,5,4;