Bienvenidos a una nueva entrega sobre el proyecto del módulo de cómputo Pi.MX8 SoM! En esta actualización estaremos dando los toques finales a nuestro diseño de PCB y preparando el diseño para la producción de prototipos.
En el último artículo completamos el enrutamiento de las capas de señal. Esta fue la parte que más tiempo consumió del diseño de la PCB para el módulo Pi.MX8. Sin embargo, todavía nos quedan dos tareas por delante que requieren tanto cuidado como el anterior: el enrutamiento de los planos de potencia y la afinación del retardo de señal.
Comencemos con los planos de potencia. Normalmente me gusta hacer la afinación del retardo como los últimos pasos, ya que las meandras necesarias para la sintonización de longitud a menudo llenan el espacio restante en la placa. Por ejemplo, colocar VIAs adicionales (lo que a veces puede ser necesario al enrutamiento de redes de potencia) podría requerirnos ajustar las primitivas de sintonización de longitud para crear el espacio necesario. Al llenar el espacio restante con primitivas de sintonización de longitud al final, podemos evitar trabajos adicionales de retoque.
Capas de plano de potencia disponibles
Al observar el apilado de capas, podemos ver que tenemos dos capas dedicadas a planos de potencia disponibles. Estas capas están separadas de las capas de tierra adyacentes por un prepreg delgado. Este apilamiento aumenta la capacitancia del plano de baja inductancia y puede ayudar a disminuir la impedancia de la red de distribución de potencia (PDN) en altas frecuencias.
Primero, vamos a trazar los rieles de potencia de alta corriente. En nuestro caso, estos son los rieles del núcleo y de memoria para el SoC i.MX8 y el controlador DRAM con el IC LPDDR4.
Suministro de núcleo y memoria PMIC para el SoC
Los rieles VCC_ARM y VCC_SOC utilizan detección remota, lo que significa que el nodo de retroalimentación de los convertidores buck no está conectado a los condensadores de salida cerca del MIC, sino a los pads de potencia del i.MX8. Esto es para compensar la caída de voltaje a través del plano de potencia o polígono. Como la corriente en estos rieles puede ser relativamente alta y el PMIC necesita regular estos voltajes con precisión, es importante "medir" el voltaje directamente en la carga. La siguiente figura muestra la caída de voltaje a través de un polígono de potencia:
Caída de voltaje a través del polígono de potencia
El polígono de alimentación para el riel VCC_ARM está trazado en la capa 6. El trazo trazado cerca del contorno del polígono es la señal de detección remota. Idealmente, nos gustaría medir el voltaje de manera diferencial para compensar los efectos parásitos introducidos por la corriente del camino de retorno y para hacer que la retroalimentación sea menos susceptible al ruido, pero en nuestro caso esto no será necesario. Seguiremos las recomendaciones del diseño de referencia.
Polígono VCC_SOC
El trazo de retroalimentación utiliza un 'net-tie' cerca de los pines del SoC para conectar la red de retroalimentación con la red de alimentación. Sin usar un net-tie, tendríamos que asegurarnos manualmente de una aislación limpia entre el trazo de retroalimentación y el polígono de alimentación. Este enfoque es propenso a errores. El net-tie es simplemente un footprint que consiste en un segmento de trazo corto con dos pequeñas almohadillas en cada extremo. Al establecer el tipo de componente a net-tie, Altium Designer no creará un error de cortocircuito para este componente.
El polígono VCC_ARM y el riel de alimentación de DRAM están trazados de manera similar en la Capa 5.
VCC_ARM resaltado y riel de alimentación de DRAM en púrpura
Las vías de alimentación restantes se distribuyen en las capas 5 y 6. Los polígonos de alimentación del sistema de 1.8V y 3.3V abarcan toda la placa ya que muchos componentes conectados a estas vías se distribuyen a lo largo de la placa.
El último paso en el enrutamiento de los planos de alimentación es configurar un análisis de PDN de AC y DC y verificar si los resultados están dentro de los límites de valor de impedancia establecidos por la guía de diseño de hardware del SoC.
La simulación de AC debe incluir los capacitores de desacoplamiento con un modelo equivalente preciso, las características de salida del regulador buck y la geometría del diseño. No vamos a profundizar en la configuración de la simulación en este artículo, pero debemos tenerla en cuenta como un paso de verificación obligatorio.
Impedancia objetivo de las vías de alimentación
La simulación de DC requiere solo la geometría del diseño y las características de carga del SoC como entrada para calcular la caída de voltaje a través de los polígonos de alimentación y resaltar áreas de densidad de corriente excesiva.
Con el diseño de la red de alimentación completado, ahora podemos pasar al último ítem en nuestra lista de tareas - el ajuste de retardo.
Hay muchas interfaces en el módulo Pi.MX8 que tienen requisitos de tiempo estrictos y requieren ajuste de retraso. Vamos a ver las interfaces más críticas y cómo podemos usar X-Signals para ajustar los retrasos incluso a través de varios componentes.
Comencemos con la interfaz DRAM. La guía de diseño de hardware de i.MX8 proporciona toda la información que necesitamos para el ajuste de retraso. Antes de que podamos ajustar cualquier traza, primero tenemos que verificar si el retraso del paquete está incluido en el símbolo de la biblioteca esquemática.
NXP proporciona tiempos de retraso del paquete, que es el tiempo que tarda una señal en viajar desde la bola BGA de i.MX8 hasta el chip de silicio. Las diferentes longitudes en el interposer afectan el tiempo total de retraso, por lo que es importante tenerlas en cuenta.
Retraso del paquete del pin en el símbolo esquemático
Podemos usar el editor de lista de librerías esquemáticas para pegar todos los retrasos del paquete del pin del documento de guía de diseño de hardware de i.MX8 de una vez usando el diálogo de pegado de cuadrícula inteligente.
Retrasos de los pines en formato de tabla a través de la barra de herramientas SCHLIB List
Los requisitos de ajuste de retraso para la interfaz LPDDR4 están descritos en la guía de diseño de hardware de i.MX8. La guía agrupa las dependencias de retraso en grupos de reloj, control/comando y byte. Las ventanas de tiempo para cada grupo se referencian a las señales de reloj y de strobe. Todas las señales diferenciales deben coincidir hasta 1ps entre las señales complementarias en el par.
Requisitos de ajuste de retraso para PCB LPDDR4-4000
Las señales en el grupo de dirección/comando/control deben cumplir con dos requisitos de tiempo. Un requisito define el retraso máximo entre cada señal dentro del grupo, mientras que el segundo requisito define la ventana de retraso máximo de todo el grupo referenciado a la señal de reloj.
Es por esto que usamos múltiples grupos de señales X para asegurar que las señales correctas sean objetivos dentro de las reglas de diseño.
Clases de señal X para el ajuste de LPDDR4
Cuando uso reglas de ajuste de retraso entrelazadas, me gusta adicionalmente llevar un registro de los valores totales de retraso en una hoja de Excel para propósitos de documentación. Sin embargo, este paso es opcional y depende de las preferencias personales ya que los requisitos de tiempo pueden definirse todos dentro de la configuración de reglas de Altium Designer.
Documentación de ajuste de retraso en Excel
Una vez que se han definido las clases de señales X y las reglas de diseño están en su lugar, podemos comenzar a ajustar el retraso en el diseño. Aparte del ajuste del retraso intra-par, la mayoría de los ajustes deben realizarse en las líneas de dirección/comando/control:
Ajuste de retraso en líneas de dirección/comando/control
Las propias líneas de datos necesitan muy poco o ningún ajuste en absoluto. Alrededor de los pares de señales de reloj trazados en la capa superior, tenemos mucho espacio que podemos usar para el ajuste de retraso:
Ajuste de retraso del reloj en la capa superior
Al igual que con la red de entrega de energía, necesitamos realizar simulaciones de verificación para la interfaz DRAM. Nos interesa particularmente si podemos ver efectos de diafonía ya que partes de los trazados están empaquetados relativamente cerca unos de otros. La regla general es mantener una distancia de 3 veces el grosor del dieléctrico a las trazas vecinas. Sin embargo, no vamos a detallar la configuración de la simulación y los detalles en este artículo.
Una vez que se completa el ajuste de retraso de la interfaz DRAM, veamos otra aplicación para las señales X. La placa PiMX8 tiene dos interfaces que pueden manejar una pantalla externa - LVDS y MIPI-DSI.
MIPI-DSI también utiliza señalización diferencial de bajo voltaje (LVDS), por lo que podemos usar un multiplexor para seleccionar cualquiera de estas interfaces ya que comparten las mismas especificaciones de hardware. Al usar un multiplexor para cambiar entre las interfaces, también necesitamos ser conscientes de que cualquier enrutamiento realizado después del multiplexor (en el lado común) afectará el retardo de ambas interfaces, tanto la MIPI-DSI como la LVDS. Esto se puede tener en cuenta creando una clase de señal X separada para la interfaz MIPI-DSI y la interfaz LVDS, permitiendo más libertad en la afinación del retardo en el PCB.
En este ejemplo, podría haber sido posible evitar la necesidad de este enfoque si todo el enrutamiento en el lado común hubiera sido ajustado a una ventana de retardo ajustada, tanto entre pares como de par a par. Sin embargo, al usar dos clases de señal X separadas, tenemos un mejor control sobre el presupuesto de tiempo de cada interfaz.
Las señales X nos permiten salvar la brecha sobre el multiplexor y realizar la afinación de longitud en cada interfaz sobre toda la longitud de la señal antes y después del multiplexor.
El mismo enfoque se utiliza en la interfaz PCIe para salvar la brecha a través de los capacitores de acoplamiento AC en serie.
LVDS enrutado al multiplexor
MIPI-DSI enrutado al multiplexor
Todas las interfaces de alta velocidad en la placa Pi.MX8 se ajustan en retraso utilizando señales X ya que proporcionan una longitud de trayectoria más precisa de toda la señal. No vamos a examinar cada interfaz por separado ya que la configuración de la regla de ajuste de retraso y el ajuste de enrutamiento es una tarea repetitiva que no difiere mucho en su enfoque general entre las interfaces.
Este fue el paso final para completar el enrutamiento en la placa Pi.MX8. La siguiente etapa es realizar una verificación exhaustiva de las reglas de diseño y exportar el conjunto de datos de fabricación.
En la próxima actualización, echaremos un vistazo a las placas y comenzaremos a ensamblar algunos prototipos. Este será el paso final para encender el módulo Pi.MX8 por primera vez, así que ¡manténganse atentos!