En la actualización anterior, examinamos cómo definir un apilado de capas adecuado para el módulo, así como agregar el enrutamiento de escape a todos los componentes colocados en la placa. Basándonos en todas estas preparaciones, ahora estamos casi listos para trazar las primeras pistas. Sin embargo, antes de comenzar a conectar cualquier componente en la placa, tenemos que definir los perfiles de impedancia y establecer las reglas de diseño correspondientes para el ancho de pista correcto.
Configurar los perfiles de impedancia es sencillo en el administrador de apilado de capas. Tenemos que definir tanto los perfiles de impedancia simple como los diferenciales. La información sobre qué valores de impedancia se necesitan se puede obtener de los estándares de interfaz y las guías de diseño de hardware para el procesador NXP i.MX8. Los siguientes valores de impedancia, tanto simple como diferencial, se utilizan en el diseño:
En el apilado de capas previamente definido, tenemos cuatro capas de señal disponibles que podemos usar para el enrutamiento controlado por impedancia, que son la capa superior, L2, L7 y la capa inferior. La capa superior e inferior tienen cada una solo un plano de tierra de referencia, mientras que L2 y L7 están incrustadas entre dos planos de referencia. Después de ingresar los valores de impedancia y las capas de referencia, la geometría de la pista se calcula automáticamente:
Perfil de impedancia del administrador de apilado de capas diferencial 100 Ohm
Al definir la geometría de las pistas, especialmente el ancho de la pista y el espacio para pares diferenciales, es importante tener en cuenta el espacio de enrutamiento necesario. Si es posible, nos gustaría mantener el ancho total del par diferencial pequeño para limitar el espacio de enrutamiento necesario. Dependiendo de la densidad de la placa, esto también debe tenerse en cuenta al definir el apilado de capas.
Solo queda un paso antes de poder enrutar las primeras pistas, y eso es indicarle a Altium Designer qué anchos de pista (y espacios para los pares diferenciales) se requieren dependiendo de la interfaz y la capa de enrutamiento. Los valores de impedancia se asignan a las interfaces apropiadas en el esquemático. Aquí podemos trabajar con directivas para asignar redes a clases de red o clases de par diferencial.
Varias clases de red asignadas a una manta de diseño
En el editor de reglas de diseño ahora podemos enfocarnos en estas redes o clases de par diferencial y asignar las geometrías de pista correspondientes. En lugar de ingresar manualmente la geometría de la pista, podemos elegir el perfil de impedancia correspondiente que hemos definido en el administrador de apilado de capas:
Perfil de impedancia utilizado en el diálogo de reglas de diseño – regla de alta prioridad sobrepasa el perfil de impedancia
Tenga en cuenta que tenemos otra regla de diseño que toma la máxima prioridad en nuestra configuración. Esta regla de diseño solo se aplica a ciertas salas de diseño que hemos creado en la actualización anterior. Estas salas de diseño se colocan únicamente directamente debajo de los componentes de paso fino y nos permiten usar localmente un ancho de traza y un espaciado de hasta 85 um en la región de salida. Las reglas de diseño para estas salas tienen la máxima prioridad ya que necesitamos anular los perfiles de impedancia definidos. Como es posible que no podamos seguir la geometría de traza requerida dentro de estas salas, necesitamos mantenerlas lo más pequeñas posible y usar geometrías de traza que se desvíen de los perfiles de impedancia solo donde sea absolutamente necesario. Si mantenemos estas secciones muy pequeñas, el impacto general en la integridad de la señal del canal será aceptable. Sin embargo, necesitaremos verificar esto en nuestras simulaciones posteriores al diseño.
Salas de diseño en rojo mostradas debajo de BGAs de paso fino
Ahora que todas las reglas de diseño han sido definidas, podemos comenzar a enrutar la primera interfaz. En esta placa comenzaremos con la interfaz DRAM.
Notarás que aún no hemos definido la estrategia de enrutamiento general para esta placa. Podríamos haber hecho esto antes de colocar cualquier ruta y, dependiendo de las preferencias personales, no hay nada de malo en ello. En esta placa, decidí enrutear primero la interfaz DRAM para ver cuánto espacio y cuántas capas de enrutamiento necesitamos asignar a la interfaz DRAM. Si podemos enrutear el IC LPDDR4 en dos o tres capas de señal, entonces podemos asignar una o dos capas de enrutamiento a otras interfaces en las cercanías. Dado que la interfaz DRAM ocupa bastante espacio, especialmente en una placa pequeña como esta, tener otra capa de señal vacía disponible sería muy deseable.
Vamos a echar un vistazo rápido al enrutamiento de los capacitores de desacoplamiento en el IC LPDDR4. Conectar los capacitores de desacoplamiento fue parte del enrutamiento de salida en el artículo anterior. Revisemos eso primero para ver si necesitamos agregar algún VIA adicional o trazas en la capa superior o inferior. El hecho de que estemos usando VIAs llenos y tapados realmente juega a nuestro favor cuando se trata de enrutamiento de los capacitores de desacoplamiento.
Cada pin de alimentación en el IC DRAM tiene su propio VIA pasante que puede conectarse a las 10 capas de la placa. Necesitamos usar VIAs en estos pines ya que estamos tratando con corrientes de retorno en todos los planos de tierra en el apilado. Dado que los capacitores de desacoplamiento están colocados en el lado inferior de la placa, también necesitamos tener los pads de alimentación VDD y VDDQ disponibles en el lado inferior de la placa. El IC DRAM tiene un paso de pin de 0.65mm en el eje Y. Este paso de pin nos permite colocar los capacitores de desacoplamiento directamente entre los pads GND y VDD/VDDQ. Esta disposición permite la menor inductancia de bucle posible. Ahora podemos distribuir uniformemente los capacitores de desacoplamiento entre los pines de alimentación.
Los resistores de terminación de reloj opcionales también se colocan directamente debajo de los pines de reloj, cada uno conectado directamente a los pines a través de VIAs.
Capacitores de desacoplamiento colocados en el lado inferior del IC LPDDR4
Dado que no se necesitan segmentos de traza adicionales para los condensadores de desacoplamiento, podemos utilizar el espacio en la capa inferior para el enrutamiento de señales. Nos apegaremos de cerca al diseño de referencia del i.MX 8M plus y colocaremos todos los pares diferenciales DQS en el lado inferior de la placa. Adicionalmente, también podemos colocar las señales de reinicio de DRAM y habilitación de reloj en el lado inferior:
Enrutamiento de DRAM lado inferior
Colorear la señal de comando/dirección/control de manera diferente a los grupos DQ nos ayuda a identificar una buena estrategia de enrutamiento. Las señales de comando/dirección/control de color cian están todas ubicadas detrás de las primeras dos filas de pines de señal en el SoC, con la excepción de las dos señales de reloj. Si queremos enrutar estas señales en las capas internas, necesitamos asegurarnos de que no haya VIAs de las dos filas exteriores de pines de señal en el camino. Podemos conectar el Byte 0 de los canales A y B así como las señales de reloj que están todas disponibles en las dos filas exteriores directamente en la capa superior sin necesidad de cambiar de capa:
Enrutamiento de DRAM lado superior
El Byte 1 de los canales A y B se ubican ambos hacia la esquina del BGA. Esto es perfecto ya que nos permite mover esas señales a L2 y conectarlas al IC de DRAM mientras aún se deja suficiente espacio entre esos dos grupos de enrutamiento para conectar las señales de comando/dirección/control:
Enrutamiento de DRAM en L2
Hablando estrictamente, no estamos cambiando la capa de referencia, pero estamos introduciendo una segunda al cambiar a L2. Tan pronto como colocamos una traza con un voltaje que varía en el tiempo sobre un plano de tierra, una corriente fluirá independientemente de si hay un segundo plano de referencia presente. Para proporcionar un camino de retorno para esas corrientes también estamos usando VIAs de camino de retorno cerca de las transiciones de capa en la capa superior. Las señales que están cambiando de capas detrás de las dos filas de pines exteriores debajo del BGA ya tienen VIAs de camino de retorno cercanas que están formadas por las dos filas de pines de tierra y VIAs de tierra del SoC:
VIAs de camino de retorno para la interfaz de DRAM
Aquí hay un detalle más a tener en cuenta en relación con los caminos de retorno. Estamos utilizando un apilado de capas con microvías escalonadas. Por lo tanto, las dos microvías secuenciales necesitan ser colocadas con una cierta distancia mínima entre ellas. Un segmento de traza corto es necesario para establecer una conexión entre las dos microvías secuenciales. Este segmento de traza se coloca en el plano de tierra debajo de la capa superior e inferior. Debemos tener cuidado de no crear cortes o vacíos en el plano de tierra que interrumpan el camino de retorno de las líneas de señal:
Gestión del camino de retorno - vacíos y divisiones en el lado izquierdo, enrutamiento mejorado en el lado derecho
Al organizar las microvías y segmentos de traza en línea con la rejilla BGA del dispositivo DRAM podemos asegurarnos de que siempre haya una conexión a tierra sólida debajo de las líneas de señal:
Las trazas en la capa superior y en L2 están espaciadas a una distancia uniforme de al menos 0.275mm entre ellas. Esta distancia es necesaria para asegurar que no creamos un diafonía excesiva entre estas señales. Tendremos que verificar eso también en una simulación post-diseño.
Lo único que queda por hacer ahora para terminar el enrutamiento de la interfaz DRAM es la sintonización de retraso. Sin embargo, no lo haremos ahora. En su lugar, la sintonización de retraso se realizará para todas las interfaces una vez que el enrutamiento esté terminado. Para diseños de muy alta densidad o interfaces que requieren mucha compensación de retraso, es mejor hacer la sintonización de longitud más temprano que tarde. Los requisitos de tiempo en LPDDR4 no son demasiado estrictos, así que estoy seguro de que no nos encontraremos con ningún problema si nos ocupamos de eso más tarde.
Por ahora, el enrutamiento de DRAM está completado y podemos pasar a la fase de planificación del diseño y enrutamiento de todas las otras interfaces. ¡Esto y más será parte de la próxima actualización sobre el proyecto de módulo de computación de código abierto!