¿Diseño de referencia LPDDR2?

He estado tratando de conectar la memoria RAM LPDDR2 con mi SOC, pero me confundí sobre cómo conectar las líneas CA. ¿Alguien tiene algún diseño de referencia de LPDDR2 para mí?

Respuestas (1)

LPDDR2 es más o menos confidencial y, por lo tanto, no hay mucha información disponible al respecto.

Si ha enrutado DDR, es casi sencillo ya que no hay terminación, solo tiene que conectar señales entre ellos. Actualmente estoy trabajando en un diseño con un SoC y un LPDDR2 y el esquema fue realmente simple, pero el enrutamiento es un poco más desafiante.

CA son líneas de dirección y deben enrutarse directamente (CA0 del controlador a CA0 de la memoria, etc.).

El intercambio de bits y bytes está claramente permitido con otro tipo de DDR y LPPDR, pero para LPDDR2, algunas notas y apéndices en el estándar Jedec parecen no permitirlo. Después de buscar, algunos chicos en el foro de Xilinx lo probaron y funcionó bien, también pregunté a dos proveedores de LPDDR2 y al proveedor de SoC (para el lado del controlador), qué es posible sobre el intercambio de bits y bytes:

  • El grupo 0 (DQS/DQSn0, DQ[0...7], DM0) debe enrutarse directamente sin intercambiar para permitir la compatibilidad con la función de registro de modo (pero parece que no se usa realmente)
  • Grupo 1 (DQS/DQSn1, DQ[8...15], DM1), Grupo 2 (DQS/DQSn2, DQ[16...23], DM2) y Grupo 3 (DQS/DQSn3, DQ[24.. .31], DM3) se pueden intercambiar
  • El bit DQ dentro de un mismo grupo se puede intercambiar. Pero no puede intercambiar un DQ de un grupo con uno en otro grupo (es decir, intercambiar DQ9 con DQ12 está bien, pero intercambiar DQ9 con DQ25 está NO)

También con el turno del paquete PoP de 168 bolas, que es claramente más fácil de enrutar en 32 bits que el paquete de 134 bolas. Pero también dependerá del fabricante y montaje de su PCB, ya que el paso es muy fino (0,5 mm y 0,65 mm).

Puedes leer algunas recomendaciones:

Pero lo mejor será contactar con un proveedor de LPDDR2 y pedirle ayuda en tu diseño.

Este es el problema, mi SOC no tiene pines llamados 'CA', tienen los pines ddr genéricos, por lo que es confuso averiguar dónde conectarse en el lado del SOC.
¿El controlador de memoria de su SoC es compatible con LPDDR2? Estoy usando un Cyclone V y del archivo pinout que muestra los pines DDR2/DDR3 y LPDDR2, para la dirección LPDDR2 CAx está conectado a los pines DDR2 Ax, y los pines BAx no se usan con LPDDR2. RAS, CAS y WE no se usan con LPDDR2 y, por lo tanto, son NC. La señal ODT todavía está presente en el controlador LPDDR2. Un archivo pinout de Altera Cyclone V (archivo XLS): altera.com/content/dam/altera-www/global/en_US/pdfs/literature/…
Aquí está mi hoja de datos, es compatible con lpddr2. Son una empresa china, por lo que la comunicación con ellos es muy difícil y la hoja de datos carece de información. ( dropbox.com/s/ci7kj329nggb15v/… ) He visto muchas configuraciones como la que describiste para LPDDR2, ¿es esta una especie de configuración predeterminada?
Además, ¿cómo le dice al SOC en su diseño que ha interactuado con LPDDR2? ¿El controlador mem detecta esto automáticamente?
De la hoja de datos no veo ningún problema: simplemente agregan una "S" antes de cada nombre de señal DDR. Así que use el pinout de Altera para usar las señales DDR2 correctas para LPDDR2 y estará bien. Pídale a su proveedor de LPDDR2 información y una revisión esquemática, creo que está haciendo un producto real, por lo que tiene algo de volumen, por lo que el soporte es inherente. Para el SoC y LPDDR2, no sé como usamos un FPGA lo configuramos para LPDDR2. Es posible que deba configurar algunos registros de arranque / pines de arranque. O puede ser automático, realmente no lo sé. Pregúnteles incluso si es mal inglés, es su producto.
Ok entonces, gracias por la ayuda. Los seguiré pinchando.