PCIe falla en estado de "cumplimiento de sondeo"

6

Estoy usando el bloque PCIe de Altera Cyclone IV FPGA, y tengo un problema por el cual la mitad de las ranuras PCIe que he probado (en tres computadoras diferentes) no funcionan.

La depuración con SignalTap muestra que el LTSSM (Link Training y Status State Machine) se atasca en el estado 3, que es el estado de "cumplimiento de sondeo" donde "todas las especificaciones de voltaje, emisión de ruido y temporización están dentro de la tolerancia".

Altera tiene una página de soporte pero no es relevante para el Cyclone IV. Algunos usuarios del hardware de TI también tuvieron un problema similar .

Extrañamente, dada una computadora, algunos de los puertos siempre funcionan y algunos de los puertos siempre fallan, lo que sugiere (con los dedos cruzados) que mi diseño no está fuera de especificaciones. He comprobado que cada puerto PCIe que he probado es al menos gen2 y tiene al menos 4 carriles.

¿Qué podría hacer que el LTSSM se atasque en el "cumplimiento de sondeo"? ¿Cómo puedo depurar el problema?

    
pregunta Randomblue

2 respuestas

4

Recientemente he completado un diseño PCIe utilizando el bloque PCIe de Altera. Estaba usando el núcleo blando en una parte de Cyclone IV E. Terminé en el mismo estado y varias cosas contribuyeron:

  • no hay suficiente filtrado en las fuentes de alimentación PHY
  • un error de temporización causado por una de las trazas de señal SSTL-2-II que es significativamente más larga que las otras
  • Las longitudes de los pares de traza de PCIe son demasiado largas

Al final, el filtrado fue fácil de arreglar, al igual que el ajuste del archivo SDC para que P & R pudiera ajustar los retrasos de E / S. La parte desagradable fue corregir los pares de trazos PCIe excesivamente largos (y fuera de especificaciones, creo que funcionaron en algo así como 11 pulgadas). Una vez que esto se hizo a través de una reencaminación, el núcleo apareció inmediatamente y se realizó sin problemas.

La PHY que estábamos usando también parecía estar transmitiendo "silenciosamente": el proveedor afirmó que estaba transmitiendo según las especificaciones, pero el análisis y la medición con un equipo de alquiler muy costoso no pudieron verificar su reclamación. Si estuvieran transmitiendo a una especificación, deberíamos haber podido escapar con los trazos largos de PCIe.

    
respondido por el akohlsmith
2

El LTSSM pasará de Polling.Active a Polling.Compliance cuando no se detecte la salida de ralentí eléctrico en ningún carril en el que se detectó un receptor. El LTSSM permanecerá en Polling.Compliance hasta que salga el ralentí eléctrico en cualquiera de esos carriles.

¿Todos los carriles están conectados a receptores válidos?

La otra forma común de ingresar a Polling.Compliance es hacer que el LTSSM se dirija a ese estado mediante una lógica de nivel superior. Es muy probable que este sea un bit de configuración en la lógica de Altera que le permita forzar al LTSSM a ingresar a Polling.Compliance.

Para obtener más información, consulte el libro " Arquitectura del sistema PCI-Express ."

    
respondido por el Jesse Craig

Lea otras preguntas en las etiquetas