El mejor protocolo / interfaz de baja latencia de placa a placa

2

He estado haciendo una pregunta similar que recibió algunos votos a la baja, así que estoy reformulando mi tarea (espero que esta le dé más claridad).

Estoy planeando establecer una conexión serie de alta velocidad (dúplex completo de 3 Gpbs) entre dos tarjetas fpga (distancia entre los chips < 15 cm, incluidos los conectores), más precisamente entre spartan 6 y artix 7 (estos no son requisitos absolutos, pero parecen ser los más baratos que tienen transceptores integrados).

No estoy seguro de qué protocolo debo elegir. He estado investigando las especificaciones de RapidIO últimamente, pero parece que tengo que usar un chip de conmutador para conectar dispositivos, pero los conmutadores son bastante caros (~ $ 150 / pieza) e introducen un retraso de al menos 100 ns, así como más de 10 capas Requisito de PCB ( ejemplo ).

PCIExpress no es una opción (aunque el conector es bueno), ya que introduce alrededor de 500 ns de retardo, e idealmente estoy buscando en la latencia de transmisión sub 100 ns (desde un flujo paralelo dentro de un fpga hasta un flujo paralelo dentro de otro). Debido a la alta latencia, 10Gb Ethernet tampoco es una opción.

También hay un protocolo Aurora de Xilinx ( enlace ), pero no puedo encontrar ningún PHY Definiciones de capas y números de retardo. Más de eso, a pesar de que todas las aplicaciones de Serdes de alta velocidad anuncian un bajo número de pines, todas las placas de desarrollo con transceptores integrados utilizan conectores de tarjetas intermedias SMC, ópticas o crípticas con 400 pines. ¿Hay alguna otra opción? Como, ~ 50 pin conector o menos. Entonces, para resumir, las preguntas son:

  1. ¿Es posible lograr un retardo de sub 100 ns entre dos chips usando serdes?
  2. ¿Existen especificaciones / ejemplos de PHY para Aurora?
  3. ¿Será más sencillo lanzar una interfaz BLVDS ancha y usar un bus paralelo de alta frecuencia?

Cualquier sugerencia es muy apreciada!

    
pregunta user37741

2 respuestas

2

Aurora parece una opción razonable; básicamente, se parece a lo que construirías si estuvieras intentando construir una interfaz genérica a partir de SERDES de alta velocidad. Tiene control de flujo. Incluso tiene enlace de canales, que parece tener algo de soporte en el hardware Xilinx. Eso debería darle su velocidad requerida desde un punto de vista teórico en un solo par de enlaces en el máximo de 3Gpbs.

Este enlace proporciona algunos números de latencia , para un enlace de loopback. La latencia de placa a placa obviamente dependerá de la demora del cable.

no debería requerir un apilamiento más complejo que el propio FPGA (generalmente un mínimo de 4?). Yo sugeriría usar los conectores PCIe incluso si no usa el protocolo; alternativamente, los conectores SATA pueden proporcionar una buena opción de cable corto.

En realidad no especifican el PHY en absoluto, pero esto nota de la aplicación da un ejemplo de cómo conectar dos tableros de evaluación. Simplemente están cableados con cables mini coaxiales que usan conectores SMA, así que supongo que la impedancia requerida es la habitual de 50 ohmios.

    
respondido por el pjc50
0

Definitivamente deberías usar los transceptores gigabit. Con Spartan 6 puede enviar hasta 3.125 Gbps usando un transceptor, por lo que no hay problema.

Este transceptor funciona muy bien y es muy fácil de implementar.

Si tiene conectores SFP en ambas tarjetas, solo tiene que comprar un cable de cable de cobre SFP para conectar las dos tarjetas. Si tiene SMA, solo necesita comprar cuatro cables SMA. También hay cables SFP a SMA.

Cuando he realizado este tipo de proyecto, generalmente defino mi propio protocolo, sin embargo, es necesario enviar algunas palabras K para alinear los bytes en el flujo en serie. También es necesario definir una secuencia inactiva para el amortiguador elástico. Usualmente uso el mismo K / D como se define para Ethernet.

    
respondido por el Holminge

Lea otras preguntas en las etiquetas