PCIe, diagnosticando y mejorando un diagrama de ojo

He implementado un diseño que usa PCIe. Es algo diferente en el sentido de que la interfaz PCIe se usa como un carril de comunicación de chip a chip en una sola PCB (por ejemplo, sin conector PCIe).

El dispositivo del complejo raíz es un Freescale i.MX6 que cumple con PCIe Gen 2 y el dispositivo con el que me estoy comunicando es un módulo Marvell WiFi que es un dispositivo compatible con PCIe Gen 3. Es una interfaz de un solo carril que funciona a 2,5 Gbps.

He realizado algunas mediciones de integridad de la señal soldando un osciloscopio de alta velocidad con los problemas diferenciales adecuados justo al otro lado de las tapas en línea que se muestran a continuación:

ingrese la descripción de la imagen aquí

Para el reloj, el diagrama del ojo se ve bastante bien:

ingrese la descripción de la imagen aquí

Pero los datos de TX no tanto:

ingrese la descripción de la imagen aquí

El chip WiFi tiene terminaciones en el chip, por lo que no creo que deba necesitar terminaciones adicionales, pero podría estar equivocado al respecto.

He encontrado algunos registros que se pueden configurar dentro del procesador i.MX6 para el periférico PCIe, pero no estoy seguro de lo que realmente hacen. Un poco de prueba y error tampoco me ha llevado muy lejos.

ingrese la descripción de la imagen aquí

Verifiqué que el diseño sigue las reglas de enrutamiento adecuadas y que la PCB se construyó con la impedancia correcta. Obviamente, tengo algo de inestabilidad en el sistema, pero también parece que tengo un problema de reflexión o reducción de énfasis. Espero que alguien pueda describir lo que ven mal con mi diagrama de ojo y/o sugerir algunas formas de solucionarlo.

¡Salud!

buena pregunta Espero ver algunas buenas respuestas.
¿Dónde estás midiendo tu ojo tx?
¿Y en qué están configurados estos registros?
Un par de preguntas: ¿cuál TX es el problema? ¿el i.MX6 a Marvell o Marvell a i.MX6? ¿Qué tipo de filtrado de suministro ha configurado alrededor del transmisor que se comporta mal o sus rieles de suministro de reloj? ¿Cuáles son los valores actuales de esos registros?
@SomeHardwareGuy Estoy midiendo el ojo de tx justo al otro lado de esos condensadores en un círculo. En términos de diseño, los condensadores tanto para el reloj como para el TX están justo al lado del chip WiFi. La distancia total que se enrutan los pares es de aproximadamente 2,5 pulgadas. El i.MX6 es en realidad parte de un SOM que se conecta a un conector SO-DIMM y solo diseñé la placa que "lleva" este SOM y el chip WiFi.
@akohlsmith & SomeHardwareGuy Los valores son de rango medio en este momento y se basan en su placa de desarrollo. Creo que solo dos de los 5 registros realmente tienen un impacto en un momento dado. Parece que el registro FULL_SWING está en efecto, mientras que LOW_SWING no lo está... No he determinado qué des-énfasis está activo, pero estoy trabajando con el soporte de Freescale para comprender qué son los valores de pipe0_tx_swing y pipe0_tx_deemph, ya que no están en ningún otro lugar. la documentación. Informaré si averiguo más sobre esto.
@akohlsmith, como se mencionó anteriormente, estoy usando un SOM, por lo que el diseño del SOM maneja el filtrado de suministro que va desde el IC de administración de energía del i.MX6 hasta los rieles reales. En mi placa, proporciono 3,3 V de un módulo de alimentación de TI que tiene una ondulación bastante baja y 10 uF de derivación y límites de 100 nF para ruido de frecuencia más baja y límites de rango de pF para ruido de RF.

Respuestas (1)

Hay bastantes cosas que te harán esto.

No ha indicado la longitud de la interfaz. Hago PCIe directo de chip a chip con frecuencia y realmente debe tener esto en cuenta, ya que obtendrá una atenuación de aproximadamente 0.18dB por pulgada debido a las pérdidas por efecto de la piel y aproximadamente 0.5dB por pulgada debido a la absorción dieléctrica en FR4 'ordinario'.

Creo que puede obtener mejores números de la hoja de datos del material de PCB si la descarga y observa la tangente de pérdida. Eche un vistazo a Isola 370HR para obtener una hoja de datos típica. Los números anteriores son bastante precisos a la velocidad de 5 GHz. A la tasa de 2,5 Gb, los números son un poco más bajos, con una pérdida total de ~ 0,4 dB por pulgada.

Supongo que, además de la ruptura y los condensadores de acoplamiento, está utilizando un enrutamiento de una sola capa para la interfaz. Las transiciones de capa pueden hacer cosas muy desagradables a la señal. La impedancia controlada será un poco diferente capa a capa y los reflejos son el resultado natural (hay formas de realizar con éxito el enrutamiento multicapa, pero se necesita mucho cuidado y algunos trucos inusuales para lograrlo).

Para PCI Express (e Infiniband para el caso), la tasa de subida y bajada de la señal en el transmisor tiene un tiempo mínimo de subida y bajada para minimizar los problemas de EMI, y ese tiempo es 0.25UI, lo que produce artefactos de señalización de 10 GHz en enlaces de segunda generación. y artefactos de 5 GHz en gen 1 que deben tenerse en cuenta.

El campo de reducción de énfasis de arriba le ayuda a tener una visión clara del receptor al reducir la amplitud de no conmutación en relación con la amplitud de lanzamiento nominal.

Si está perdiendo demasiada amplitud en el borde de conmutación de la señal, establezca este campo en un valor mayor. También puede establecer la amplitud de lanzamiento nominal un poco más alta.

Otros problemas que puede consultar:

¿Dónde, en relación con el transmisor, están los condensadores de acoplamiento? Deben estar lo más cerca posible de los pines de transmisión. Una vez que tengan más de la mitad de la longitud de onda de 10 GHz (alrededor de 0,6 pulgadas en FR4) [el doble de esa distancia para enlaces de 2,5 Gb/seg], definitivamente reflejarán energía.

He tenido problemas con geometrías de capacitores de 0402 o más grandes en PCI express gen. 2 y ahora uso dispositivos de geometría inversa (0204) para la inductancia en serie efectiva reducida. Estos parecen estar haciendo el trabajo muy bien.

Mirando de cerca el diagrama del ojo para los bits de transición (buen alcance que tiene, por cierto, eso es lo que necesita para estas cosas), la unidad de señal inicial parece estar impulsando una línea terminada (la señal va a 0.5 V (nominal) en la forma clásica de línea de transmisión). Esta no es una línea particularmente larga (el tiempo de ida y vuelta es donde la señal conduce a la V[nominal] completa).

usted dice que el enlace está funcionando a 2,5 Gb/seg (gen 1) y eso es lo que muestran las trazas del osciloscopio, pero es posible que desee experimentar con el campo de reducción de énfasis (consulte el manual de referencia y la hoja de datos eléctricos (vea la nota a continuación). Los valores de desacentuación 'estándar' son para un enlace nominal, no para un enlace incrustado como el que tiene aquí (y lo que también hago regularmente). Si puede llegar a unos 6dB, puede obtener Mejores resultados.

El énfasis nominal es de 3,5 dB para Gen 1 y de 6 dB para Gen2. Observo que el campo anterior parece implicar que un enlace Gen 2 es de 3.5dB; es posible que desee profundizar un poco en eso. El enlace que tiene necesita un mínimo de 3,5 dB de desacentuación.

Tenga en cuenta que el ojo del receptor será muy diferente, pero aquí es donde importa . Como experimento, lea los contadores de errores en el procesador (la mayoría de ellos tienen un contador para reintentos); si no ve errores significativos, es posible que esté persiguiendo algo que realmente no es un problema. Si está viendo un gran número de errores, entonces tal vez algo de esto podría ayudar.

Una cosa más: las amplitudes de lanzamiento excesivas y la falta de énfasis son tan malas como establecerlas demasiado bajas.

Tal vez eso te ayude un poco: Espero que sí.

Nota: Freescale lo documenta todo, solo que a veces no está en el lugar que esperas encontrarlo. Asegúrese de tener también la última errata del dispositivo.

Actualizar _ Se agregaron notas sobre geometrías de condensadores.

Hasta el nodo de 2,5 Gb/s, los dispositivos 0402 están bien. Mi práctica calculadora muestra que un dispositivo 0402 típico tiene alrededor de 10 ohmios de impedancia (inductiva) a esta frecuencia y 21 ohmios a 5 GHz (la frecuencia más alta de interés). Esto no es tan malo en un sistema diferencial de 100 ohmios ya que la impedancia efectiva de un par estrechamente acoplado es algo menor que una suma directa.

La resonancia propia de este dispositivo es de 19 MHz, muy por debajo de todas las frecuencias de interés, por lo que cualquier ruido de fase se debe a ESL. Mantener la impedancia por debajo de aproximadamente 1/3 de la impedancia efectiva de la pista significa que el ruido de fase (y por lo tanto el ISI adicional) que obtendremos estará entre 1 y 17 grados (una pista de un solo extremo de un par estrechamente acoplado es típicamente (Z (diff)/2)*1,25, por lo que para 100 diff, la impedancia de un solo extremo es de unos 65 ohmios). Esta cantidad de ruido de fase es manejable.

A 10 GHz, la impedancia efectiva es de aproximadamente 44 ohmios y puede comenzar a interferir con el par diferencial al introducir un ruido de fase excesivo en la banda de frecuencia de interés, ya que la fase máxima ahora es de aproximadamente 34 grados. Aunque he realizado con éxito Gen 2 con dispositivos 0402, también he tenido problemas con tiradas más largas y ahora uso dispositivos de geometría inversa 0204 para esta velocidad y superior.

Para enlaces codificados en 8b/10b, la banda de frecuencia de interés es de tasa de bits/5 a tasa de bits * 2. El límite inferior está limitado por la codificación de longitud de ejecución, y el límite superior está limitado por el requisito de especificación de tiempos mínimos de subida y bajada. .

El ESL para varias geometrías:

0402: alrededor de 700pH

0204: alrededor de 300pH

0805: alrededor de 1nF

Actualización Se agregaron comentarios sobre el 50 % de las amplitudes de lanzamiento iniciales.

Consideremos una línea de transmisión terminada en el origen y el destino en la impedancia característica de la línea, Z0.

En el lanzamiento inicial, asumiendo que la línea es larga en comparación con la longitud de onda de la señal, el punto de lanzamiento irá al 50 % de la amplitud de lanzamiento debido al efecto divisor de voltaje (el transmisor solo ve la línea de transmisión en este punto).

Una vez que la energía llega al punto de destino y comienza a aumentar hasta el punto del 50 %, la energía en la fuente efectivamente ha "llenado" la línea con energía y aumenta a la amplitud de lanzamiento total. Estrictamente hablando, la línea de transmisión en el destino ve un divisor de voltaje y el efecto del divisor en la fuente desaparece a medida que la salida se acerca a CC (teniendo en cuenta que el efecto de la línea de transmisión es aplicable solo a las transiciones).

Esto también podría visualizarse como el 50 % del nivel de energía moviéndose por la línea de transmisión hasta la terminación final y luego reflejándose al nivel máximo. Es por eso que vemos un 'tiempo de ida y vuelta' en el punto del 50% en cualquier punto de la línea.

Su gráfico muestra precisamente este comportamiento en un punto de la línea que aún no está en el puerto de destino , porque este punto del 50 % se está moviendo a lo largo de la línea.

En el receptor, una vez que la energía ha llegado al punto del 50 %, sigue la energía total de la línea y el voltaje en el receptor continúa aumentando, dando una transición suave de un nivel al otro.

Esto también podría visualizarse como el punto de voltaje del 50 % que se mueve a lo largo de la línea hacia el receptor y luego se refleja al 100 % (el receptor alcanza primero la CC). Por esa razón, el voltaje al 50% visto en cualquier punto de la línea muestra el tiempo de ida y vuelta desde ese punto hasta el receptor.

Esta discusión es tan válida para señales diferenciales como de un solo extremo.

Entonces, su gráfico anterior muestra el comportamiento clásico de la línea de transmisión con pequeñas excursiones más allá del comportamiento esperado. De hecho, este es uno de los ojos transmisores más limpios que he visto.

Buena respuesta. ¿Quizás agregar una referencia o algunas medidas donde vea reflejos de sus gorras en presencia de una pérdida grave? Nunca he visto eso y creo que es más un mito.
En los comentarios debajo de la publicación, aclaré que la longitud es de aproximadamente 2,5 pulgadas. De hecho, estamos usando Isola 370HR y hemos manejado el diseño con mucho cuidado. Habiendo dicho eso, también estamos usando un SOM que hace que colocar las tapas cerca del transmisor sea esencialmente imposible. Estoy midiendo en el lado del receptor de las tapas de acoplamiento, que es lo más cerca que puedo llegar al receptor antes de que las rutas caigan en una capa interna de impedancia controlada.
Habiendo dicho la hermosa respuesta anterior. Voy a marcarlo como correcto incluso si no conduce directamente a la solución de mi problema en particular, ya que tiene mucho conocimiento útil. ¿Alguna sugerencia de buenos recursos sobre este tema? Encuentro que el conocimiento realmente práctico está encerrado en power point y en el libro blanco ocasional.
Rolf: las tapas causarán algún reflejo si están a una distancia considerable, y se puede controlar, pero es necesario reconocerlo, especialmente si la señal tiene que provenir de una capa interna hacia y desde las tapas, agregando un par de vías La discontinuidad no es enorme, pero si el presupuesto del enlace se estira, puede ser la gota que colmó el vaso.
¡Algunas preguntas más si no te importa! ¿Qué quiere decir cuando compara 0.5V inicial con Vfull y menciona el tiempo de ida y vuelta ...? ¿Estás diciendo que la primera parte es medir el reflejo y la señal y la última parte es solo una señal? ¿Es esto apropiado para ver o malo? De todos modos para quitarlo?
¿Obliga a su enlace a entrar en el modo polling.compliance para hacer esta prueba o simplemente lo hace con las transiciones de codificación 8b/10b? ¿Debe desconectarse el chip "receptor" o debe ponerse en algún modo determinado? En este momento, el chip WiFi está encendido y no hace nada en particular.
Para la mayoría de las pruebas, solo dejo que el enlace se ejecute normalmente, y esto está bien para más del 99% de todas las pruebas. Comprender las máquinas de estado de detección y sondeo es increíblemente útil para los enlaces que no aparecen correctamente, y aquí es donde trato de forzar ciertos estados.
El chip WiFi no necesita hacer nada en particular; estadísticamente, el diagrama de ojo que obtendrá no debería variar debido al tráfico, debido al hecho de que el enlace está codificado a través de un LFSR (a veces conocido como PRBS) que mantiene un espectro de potencia constante. densidad cuando se promedia durante un largo período de tiempo (en comparación con un bit de tiempo). En este caso, la mayoría del tráfico es probablemente el conjunto ordenado 'inactivo'.