Consideraciones de diseño de DDR1: qué hacer y qué no hacer

Soy novato en el diseño de alta velocidad.

Antes de ingresar a DDR, recientemente aprendí sobre la coincidencia de impedancia y cómo se hace, del mismo modo aprendí sobre la coincidencia de longitud y cómo se hace. (Pasos de bebé hacia la integridad de la señal)

Ahora, necesito colocar y enrutar un sistema DDR dentro de 50x40 mm. Me han pedido que lo haga en seis capas.

¿Cuáles son las cosas que tendré que aprender antes de hacer esto? El documento que estoy usando actualmente como referencia es AN2582 de FreeScale Semi. Hablando con franqueza, no entiendo muchos términos y tecnologías que se mencionan en él.

Por lo tanto, enumere los puntos de manera nítida, los libros y los enlaces serían útiles.

Específicamente estoy buscando sugerencias sobre:

1. StackUp (tierra, ubicación del plano de potencia) con referencia a la coincidencia de impedancia (si es necesario)

2.Principios de enrutamiento que tendré que seguir:

2a) ¿Cuáles son las señales que deben coincidir en longitud en mi circuito (los detalles se dan a continuación). Hay de 3 a 4 señales que se incluyen en la categoría de dirección y grupo de datos (lo que aumenta aún más mi confusión).

2b) consideraciones de enrutamiento en dirección, líneas de control.

3. Lista de verificación después de completar todo el diseño.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

La tercera captura de pantalla ilustra las señales del procesador. (Por favor, haga zoom para ver los números de pieza y tenga paciencia conmigo)

El cristal utilizado como fuente de reloj para el procesador es de 13 Mhz (placa de baja velocidad, ¿no?)

En este momento, no tengo idea sobre el tiempo de subida.

Gracias por adelantado.

La fuente del reloj no significa mucho: ¿cuál es la frecuencia en la que funciona el procesador y cuál es la frecuencia del reloj para DDR? Si es de 13 MHz, probablemente pueda enrutarlo de la forma que desee, pero dudo que sea tan lento. Tengo una MPU Freescale que usa cristal de 25 MHz pero funciona a más de 400 MHz con una frecuencia DDR que puede ir desde menos de 100 MHz a 133 (más o menos). Estos parámetros son importantes porque puede salirse con la suya con una frecuencia más baja (las reglas aún son relativamente estrictas, téngalo en cuenta), una frecuencia más alta ... bueno, las cosas se ponen bonitas, aunque rápido.
Veo muchas resistencias discretas con el mismo valor. Espero que planees usar un paquete de resistencias para eso. Ahorrará espacio, dinero y sus ensambladores se lo agradecerán.
@Joel B Esa es realmente una muy mala idea para esta aplicación. Puede salirse con la suya dependiendo de las velocidades involucradas, pero no es realmente un buen plan mezclar un montón de señales de alta velocidad a través de un paquete de resistencias. Crea mucha diafonía, especialmente cuando se usa el paquete para la terminación de la fuente.
@Mark Tanto en la nota de aplicación en su respuesta como en esta otra nota de aplicación (en la página 8) del mismo fabricante, cosen para no recomendar su uso, solo que las señales estroboscópicas de comando/dirección y datos/datos usan paquetes de resistencia separados . Incluso los usan en su tablero de validación.

Respuestas (3)

Recomiendo encarecidamente que lo primero que haga sea comprar Diseño digital de alta velocidad: un manual de magia negra . Léelo dos veces, luego léelo de nuevo :)

Un punto importante. La frecuencia del cristal no importa aquí, necesita saber la velocidad de las señales en las líneas en cuestión (que puede ser muchas veces la frecuencia del cristal). Más sobre sus tiempos reales de subida/bajada que impulsan casi todos los problemas de integridad de la señal, no la frecuencia digital de la señal.

Diseñar para DDR no es realmente tan simple. El diseño de alta velocidad puede ser un poco un arte 'vudú', incluso si tiene un software de simulación de más de $ 10,000. En otras palabras, no espere clavar el diseño la primera vez sin trabajar para comprender los problemas involucrados, una lista de verificación realmente no es suficiente.

Lo que quiero decir es que realmente deberías comenzar leyendo el libro que vinculé. Le dará suficientes antecedentes para que la información en AN2582 tenga sentido (nota al margen que vinculó el pdf incorrecto en la operación). También le permitirá comprender las compensaciones de diseño que probablemente tendrá que hacer al diseñar la placa de circuito impreso.

Dicho esto, aquí están mis pensamientos:

Directrices de enrutamiento:

Cosas de alto nivel a considerar/evitar:

1) Ruta en una sola capa, con un plano de tierra sólido debajo. Evita las vías como la peste. Si esto no es posible, los grupos DQ y ADDR son los más críticos, enrute esos primero, intente mover solo las señales como grupos a diferentes capas.

2) Asegúrese de que la impedancia coincida con las trazas: 50-60 ohmios, lo que resulte en el ancho de traza "más agradable" para el diseño. Tenga en cuenta la diferencia entre líneas diferenciales y de un solo extremo y haga coincidir la impedancia de manera adecuada.

3) Mantenga un espaciado de señal adecuado (creo que se prefiere un ancho de línea de señal de 3 *). Esto ayudará a limitar la diafonía entre las señales.

4) Haga coincidir la longitud de seguimiento de todas las señales/grupos relacionados (pares diferenciales, bus de datos, bus de direcciones, etc.). Trate de mantener todos los rastros en aproximadamente la misma longitud, es decir, no desea que el grupo de direcciones sea 1 cm más largo que el grupo de datos si puede evitarlo.

5) Usar terminación de fuente. Probablemente no necesite una terminación paralela ni un Vtt dado el tamaño de su placa y el uso de un solo ram ic.

6) Prestar especial atención a Vref, tiene que ser estable: bien desacoplado, trazas gordas. Para un solo módulo ram, puede generarlo con un divisor de resistencia simple.

7) No use bancos de resistencias para la terminación, use resistencias individuales.

8) Espere que tendrá que 'jugar' con los valores de la resistencia de terminación de fuente en el primer prototipo. Básicamente, coloque un alcance en la señal y pruebe varios valores en la región de (trace_impedance - impedancia de salida del controlador) = R. Busque el valor que resulte en la señal más limpia (lea los patrones de los ojos).

Grupos de señales:

Son (NOTA: Tomado de AN2910 y esto es para un módulo ECC de 64 bits + 8 bits, no tiene todos estos pines):

Grupo de datos: METRO D q S ( 8 : 0 ) , METRO D q S ¯ ( 8 : 0 ) , METRO D METRO ( 8 : 0 ) , METRO D q ( 63 : 0 ) , METRO mi C C ( 7 : 0 )

Dirección/Grupo CMD: METRO B A ( 2 : 0 ) , METRO A ( 15 : 0 ) , METRO R A S ¯ , METRO C A S ¯ , METRO W mi ¯

Grupo de control: METRO C S ¯ ( 3 : 0 ) , METRO C k mi ( 3 : 0 ) , METRO O D T ( 3 : 0 )

Grupo de reloj: METRO C k ( 5 : 0 ) y METRO C k ¯ ( 5 : 0 )

Amontonar:

Hay muchas formas de hacer esto. Micron da su recomendación para apilamientos de 6 capas con 3 o 4 capas de señal en la nota de aplicación TN-46-14 .

Realmente apilar es un tema completo en sí mismo, pero si su dispositivo tiene la variedad "estándar" de dispositivos, estas recomendaciones deberían funcionar bien.

Otras cosas:

Creo que el resto de sus preguntas se responden en los archivos PDF vinculados o AN2582. Hay otra lista de verificación disponible en AN2910 .

Un poco un punto secundario, pero ¿has leído su segundo libro, la magia negra avanzada?
@Kortuk No lo he hecho, no sabía que había una nueva versión. Ya no trabajo tanto haciendo este tipo de trabajo, pero probablemente lo retome de todos modos, ya que disfruté el primer libro.

Fallé el diseño de DDR usando FPGA + DDR, pero aún no sé qué parte falla. ¿Por qué dejaste las líneas de dirección sin resistencias si todos los demás pines las tienen? ¿Qué longitud de cable habrá entre la CPU y la RAM? Si mide más de 2 pulgadas (5 cm), se necesita una terminación paralela. El par diferencial de reloj necesita una terminación de 100 ohmios en todos los casos. ¿También es DDR de baja potencia? Porque los chips DDR comunes funcionan con 2,5 V y deben tener un pin VRef, que debe ser la mitad del voltaje de la fuente de alimentación (1,25 V). Le ofrecería que vaya a www.micron.com, seleccione cualquier chip de memoria DDR y vaya a la pestaña de documentos, habrá muchos documentos relacionados con el diseño de la memoria y otros temas.

como el tamaño de la placa es de 5 cm, la longitud de cpu a ram está dentro de ese límite. gracias de nuevo.

La lista de verificación de AN2826 parecía bastante comprensible:

  • Minimice las longitudes de seguimiento generales entre MPU y DDR SDRAM. Las longitudes de los trazos deben mantenerse <6 pulgadas (15 cm) si es posible. Los componentes podrían y deberían colocarse lo más cerca posible de la MPU, en particular los componentes DDR SDRAM.
  • Cada grupo de trazas de señal DQS, DM y DQ debe tener una carga idéntica y un enrutamiento similar para mantener la sincronización y la integridad de la señal.
  • Las señales de control y de reloj se enrutan punto a punto.
  • La longitud de seguimiento de las señales de reloj, dirección y comando debe coincidir con un margen de +/- 1,25 cm (500 mil).
  • Dirija las señales DDR en capas adyacentes a un plano de tierra para minimizar el ruido.
  • Use un plano VREF debajo de la SDRAM. VREF está desacoplado tanto de SDVDD como de VSS (GND).
  • Para evitar la diafonía, mantenga las señales de dirección y comando separadas (es decir, una capa de enrutamiento diferente) de los datos y las luces estroboscópicas de datos.
  • Use diferentes paquetes de resistencias para comandos/direcciones y datos/luces estroboscópicas de datos.
  • Utilice una sola terminación en serie y en paralelo (se recomiendan valores en serie de 25 ohmios y paralelos de 50 ohmios, pero se pueden sustituir los paquetes de resistencias estándar con valores similares).
  • La terminación en serie debe estar entre el MCF547x y la memoria, pero más cerca del procesador.
  • La terminación en paralelo está al final de la línea de señal (cerca de la DDR SDRAM).
  • Los condensadores de desacoplamiento de 0,1 uF, 1nF y 100pF (dieléctrico COG o NPO) se utilizan con los paquetes de resistencias de terminación.