Diseño PCIe y enrutamiento de señales

Estoy buscando construir una placa simple que tenga un conector PCIe 16x, que acomode una tarjeta de video PCIe compatible.

Puedo encontrar los conectores y crear una huella en el tablero. Puedo encontrar y entender hasta cierto punto el pin-out básico del conector PCIe 1x, pero no tengo claro la implementación completa de extremo a extremo.

He leído las especificaciones completas, cuesta mucho dinero y, sinceramente, es excesivo para lo que quiero.

No estoy muy preocupado por el protocolo real (como en la capa física), por lo que no busco necesariamente la especificación PCIe oficial, solo la implementación práctica. Qué pines van en qué lugar de las tarjetas, dónde están dispuestos.

No estoy seguro del enrutamiento de la señal entre el conector de acoplamiento y la tarjeta PCIe, y luego dónde señala la tarjeta.

Sé que Altium proporciona plantillas de los pads reales, etc., pero estoy más interesado en dónde van las señales, qué hace cada una, qué señales deben tratarse como señales de alta velocidad, etc.

¿Parece que este tipo de información no es tan de código abierto? No es que un fabricante de video simplemente publique una hoja de datos para cada persona que compra una tarjeta PCIe para comprender cómo se enruta desde la tarjeta a la CPU final en una placa base.

Para las personas que construyen tarjetas de video o lo que sea para PCIe, ¿dónde aprenden a construir estos dispositivos?

¿Qué estás poniendo en el otro extremo de tu placa con un conector?
Además de ser un proyecto de aprendizaje para el diseño de alta velocidad, será como un elevador de GPU para la minería de bitcoins. Básicamente, la placa sería una fuente de alimentación regulada, un conector PCIe 16x, un cable plano que va a una PCB separada con un conector PCIe 1x. Si estuviera construyendo una placa base, ¿conecta la tarjeta PCIe a un controlador? ¿Cómo se llama ese controlador? (Literalmente, no sé dónde comienza el inicio del hilo).

Respuestas (2)

PCIe tiene "puntos finales (EP)" y un "complejo raíz (RC)". La tarjeta GFX en este caso se conoce como EP, que es básicamente como una hoja del árbol. En el tronco del árbol estaría la CPU en su placa base que tiene un RC incorporado que administra todos los dispositivos.

El cableado entre un EP y un RC es, en su forma más sencilla, punto a punto. Dentro de esto, hay dos tipos de señales: carriles (TX y RX) y señales de banda lateral (todo lo demás, por ejemplo, reloj, reinicio, alimentación, etc.). De estas señales cabe señalar las siguientes:

  1. Para las señales de banda lateral, prácticamente todas deberían estar conectadas entre los pines correspondientes en cada extremo. En su caso, para una tarjeta vertical, simplemente los pasaría directamente desde el pin de un conector al mismo pin del otro.

  2. Los rastros de energía deben enrutarse con suficiente para suministrar 25W o 75W. Por lo general, hay un suministro de 12 V, un suministro de 3,3 V y un suministro auxiliar (en espera) de 3,3 V cuando la PC está inactiva o apagada.

  3. Las señales de carril son las más críticas . Estos deben enrutarse con gran atención a los detalles, asegurándose de que estén enrutados diferencialmente y que la impedancia coincida con un diferencial de 100 Ω. Esto generalmente se logra mediante el uso de un plano de tierra en una placa de 4 capas como plano de referencia (el enrutamiento HF está más allá del alcance de esta respuesta, hay muchos recursos EE.SE aquí). Debe hacer coincidir la longitud de las señales P/N de los pares diferenciales para cada carril; sin embargo, no necesita preocuparse por hacer coincidir las longitudes de los diferentes carriles para PCIe, ya que cada carril se maneja por separado del resto de todos modos.

  4. Los carriles son unidireccionales, es decir, los datos fluyen en un solo sentido. Es imperativo cruzar los carriles TX y RX: el carril TX de un dispositivo va al carril RX del otro dispositivo. Sin embargo , si está construyendo una tarjeta vertical, el cruce de los carriles se realiza en la placa base , lo que significa que su tarjeta vertical debe enrutar las señales de un conector al mismo número de pin en el otro extremo (TX en un extremo va a TX en el otro extremo).

  5. Si está cambiando el número de carriles, solo necesita cablear los carriles que necesita para asegurarse de que se mantenga el número más bajo de carriles contiguos (p. ej., carril 0 para 1x, carriles 0 y 1 para 2x, etc.). PCIe espera que el carril 0 en un dispositivo se conecte al carril 0 en el otro dispositivo siempre (*) y que no se omita ningún carril. Entonces, si está conectando su tarjeta x16 a una ranura x1, debe mantener el carril 0 y solo necesita conectar ese. Cualquier carril no utilizado puede dejarse simplemente desconectado (no es necesario ni debe cancelarlo).

Más allá de eso, es solo un caso de seguir buenas prácticas de PCB y tener especial cuidado con la coincidencia de impedancia y el enrutamiento de trazas de alta frecuencia.

La parte que se vuelve muy complicada es si espera obtener PCIe Gen 3 (y Gen 2 hasta cierto punto). Las velocidades a las que funciona G3 (4 GHz) superan con creces las capacidades de los sustratos de PCB FR4 estándar y el enrutamiento lo lleva al extraño y maravilloso mundo del diseño de RF: piense en las señales de radio Wi-Fi que se canalizan a través de las huellas de PCB y se dará cuenta de cuánto de un dolor es. Gen 1 es solo (o_O) 1.25 GHz, que es un poco más indulgente siempre que sea ordenado con su enrutamiento e intente evitar las vías cuando sea posible.


(*) Estrictamente hablando, hay otros trucos inteligentes como la inversión de carril, pero el soporte no es obligatorio.


Con respecto a la pregunta final de dónde aprenden las personas estas cosas, generalmente mientras trabajan para empresas o instituciones de investigación. No hay muchos recursos disponibles porque el diseño de dispositivos PCIe generalmente va mucho más allá de lo que la mayoría de los aficionados intentarían, y la información de implementación probablemente se mantenga como secreto corporativo por parte de quienes fabrican dispositivos comerciales.

Gran respuesta, gracias! Sí, el diseño del dispositivo PCIe es algo muy discreto. ¡Estoy tratando de implementar líneas de comunicación, no construir una tarjeta de video! Enruté y construí placas de RF sub-GHZ para diferentes sistemas (trazas de 50 Ω, con una red coincidente, sintonícela con un VNA). Pero nunca he hecho una tabla de alta velocidad. Esto parece un buen proyecto de aprendizaje.

Definitivamente necesita una copia de PCI Express Technology 3.0 (2012), o podría arreglárselas con PCI Express System Architecture (2004). Ambos son libros de Mindshare y cubren muy bien los conceptos básicos.

Intel también tiene gran información sobre su red de diseño . También tienen una versión de la especificación PCIe 4.x disponible gratuitamente.

Si solo está haciendo el diseño de PCB, obtenga una copia de las Pautas de diseño de placa PCIe. Debe registrarse con Intel para obtener la última versión, pero hay muchas copias del borrador disponibles .

Gracias, no he visto una referencia a esa fuente de 2012. Tipo de críticas mixtas sobre el texto de 2004. Me preocupaba que estuviera un poco deprimido, la implementación de la capa física. Esto es más un proyecto de plomería que conecta tuberías. La guía de Intel parece excelente, la revisaré.