2.4.5. Example: Swizzling for a 2Ch x32 + ECC interface
Scheme | BL0 | BL1 | BL2 | BL3 | BL4 | BL5 | BL6 | BL7 |
---|---|---|---|---|---|---|---|---|
Ch 0 | ||||||||
Default Placement | GPIO | DQ[ECC] | DQ[3] | DQ[2] | AC0 | AC1 | DQ[0] | DQ[1] |
DQS Group Number in Byte Swizzling Notation | X | ECC | 3 | 2 | X | X | 0 | 1 |
After Byte Swizzling | X | ECC | 3 | 2 | X | X | 1 | 0 |
Ch 1 | ||||||||
Default Placement | DQ[1] | DQ[0] | AC0 | AC1 | DQ[2] | DQ[3] | DQ[ECC] | GPIO |
DQS Group Number in Byte Swizzling Notation | 1 | 0 | X | X | 2 | 3 | ECC | X |
After Byte Swizzling | 1 | 0 | X | X | 3 | 2 | ECC | X |
This example illustrates byte swizzling in Ch0 DQS group 1 (BL7) with DQS group 0 (BL6) and Ch1 DQS group 2 (BL4) with DQS group 3 (BL5). To achieve this swizzling, enter the following BYTE_SWIZZLE_CH0 and BYTE_SWIZZLE_CH1 specification in the Pin Swizzle Map:
- BYTE_SWIZZLE_CH0=X,ECC,3,2,X,X,1,0;
- BYTE_SWIZZLE_CH1=1,0,X,X,3,2,ECC,X;
Lane | Pin Index | Default Placement | After Swizzling |
---|---|---|---|
BL3 | 47 | MEM_DQ[23] | MEM_DQ[23] |
46 | MEM_DQ[22] | MEM_DQ[22] | |
45 | MEM_DQ[21] | MEM_DQ[20] | |
44 | MEM_DQ[20] | MEM_DQ[21] | |
43 | |||
42 | |||
41 | |||
40 | |||
39 | MEM_DQ[19] | MEM_DQ[16] | |
38 | MEM_DQ[18] | MEM_DQ[19] | |
37 | MEM_DQ[17] | MEM_DQ[18] | |
36 | MEM_DQ[16] | MEM_DQ[17] | |
BL1 | 23 | MEM_DQ[39] | MEM_DQ[36] |
22 | MEM_DQ[38] | MEM_DQ[37] | |
21 | MEM_DQ[37] | MEM_DQ[38] | |
20 | MEM_DQ[36] | MEM_DQ[39] | |
19 | |||
18 | |||
17 | |||
16 | |||
15 | MEM_DQ[35] | MEM_DQ[34] | |
14 | MEM_DQ[34] | MEM_DQ[35] | |
13 | MEM_DQ[33] | MEM_DQ[32] | |
12 | MEM_DQ[32] | MEM_DQ[33] |
To achieve the pin swizzling for the out-of-band controller ECC byte (DQ[39:32]) shown in the above table, enter the following BYTE_SWIZZLE_CH0 specification in the Pin Swizzle Map:
PIN_SWIZZLE_CH0_ECC=1,0,3,2,7,6,5,4;This is a full ECC byte (8-bit out-of-band controller ECC). In the case where it is implemented with x4 devices it must follow the x4 restrictions of placing the lower 4 bits of the byte in the lower half and the upper four bits of the byte in the upper half.
Example: PIN_SWIZZLE_CH0_ECC=1,0,3,2;
For x4 device widths, the values in BYTE_SWIZZLE represent the bundles of 2 x4 DQS groups. The lower DQS group of the bundle is connected to the lower half of the byte lane, and the upper DQS group of the bundle is connected to the upper half of the byte lane.
To achieve the pin swizzling for DQ[23:16] shown in the table above using x4 devices, enter the following pin swizzling specification:
- PIN_SWIZZLE_CH0_DQS4=17,18,19,16;
- PIN_SWIZZLE_CH0_DQS5=21,20,22,23;
The placement of each DQS bundle and DQS group in this example, after the byte swizzling, follows the pattern shown below:
- CH0 Bundle 2 is placed on BL3:
- CH0 DQS4 connected to lower half of BL3
- CH0 DQS5 connected to upper half of BL3