Hay dos formas de manejar la memoria DDR en un Cyclone V con un HPS y un HMC:
- Uso de la HMC (Hard Memory Controller) que se encuentra en la parte FPGA
- Uso del controlador de memoria del HPS (que también está disponible con FPGA que no cuenta con una HMC)
Esto explica por qué en las columnas "HMC" tiene dos conjuntos de señales DDR, una que comienza por B_xyz es para la HMC y la otra que comienza por HPS_xyz es para el controlador HPS. Esto es fácil de entender, estoy de acuerdo.
Pero también hay una tercera forma de controlar la memoria DDR, a través de un controlador de memoria flexible, en la parte FPGA (con ALTMEM_PHY IP supongo), por lo que puede usar los pines de E / S para este controlador. Los pines de E / S son de uso general y no pueden alcanzar una frecuencia DDR alta, pero Altera intentó optimizar el enrutamiento interno de estos pines para lograr una velocidad de memoria decente.
Por lo tanto, como esta es la parte de FPGA y E / S general, puede elegir su propio pinout ... dentro de los límites. Estos límites están especificados por la columna DQS x8 o DQS x16:
Todos los pines de un grupo DQx deben estar en un grupo DQx de la lista de pines. Si tomamos un grupo DQ [0 ... 7] / DQS-DQSn0 y lo quiere en el grupo DQS4B de la columna DQS x8, entonces:
- DQS0 = AB15 (DQS4B)
- DQSn0 = AC14 (DQSn4B)
- Los DQ [0 ... 7] se colocan como se desea entre los pines DQS4B: AG13, AJ6, AG12, AK8, AK9, AH14, AJ9, AH13.
Actualmente estoy usando un Cyclone V SE pero sin HMC y sin controlador de memoria, así que contacte a Altera para obtener más detalles o intente pinout en Quartus.