¿Qué es un controlador de reconfiguración de transceptor en FPGA?

1

Me he topado con esto en un FPGA (Altera) que hace uso de protocolos de alta velocidad pero no sabe lo que hace.

    
pregunta quantum231

4 respuestas

3

Un transceptor es una combinación de bloques analógicos y digitales. El bloque analógico (el PMA) puede tener subbloques, como la unidad de recuperación de reloj, el PLL del transmisor, el serializador de bits y el des-serializador, y la parte digital consta de uno de los siguientes bloques, alineador de datos, compensación de fase y en muchos Casos algo así como decodificador y codificador 8b / 10b.

Para simplificar todo esto, cuando conectas 2 dispositivos a través de una interfaz serial de alta velocidad, necesitas crear algún tipo de control para asegurarte de que tus datos se transfieran correctamente entre estos dispositivos.

Esto se complica aún más cuando tiene varias líneas de datos ejecutándose en varios Gigabits / segundo.

El transceptor 'alinea' esas líneas y se encarga de los problemas eléctricos entre esos dispositivos. Y al mismo tiempo, se asegura de que se detecten datos erróneos y, en algunos casos, se solucionen antes de enviarlos a la capa superior del protocolo de comunicación.

Puede crear la mayoría de las partes digitales en HDL, pero muchos FPGA modernos ya tienen implementados en HW para facilitar el uso para las personas. Tanto Altera como Xilinx tienen algunos asistentes para generar una envoltura para el tipo de interfaz en serie a la que desea acceder.

Puede encontrar más información en el departamento sobre estas páginas:

También puede leer este interesante folleto breve de Xilinx: E / S en serie de alta velocidad Made Simple

    
respondido por el FarhadA
3

Hay algunos casos, cuando el transceptor se utiliza para la aplicación, que puede funcionar en varios modos o velocidades. P.ej. SDI ( enlace ). Si usa una señal de video de calidad SD, la velocidad de datos es de 270Mbps, si conecta video HD HD-SDI a la misma interfaz, entonces la velocidad de datos es de 1485Mbps. Lo mismo para otros estándares SDI. Ahora el deserializador realiza la deserialización de los datos ... Desde SD-SDI extrae un reloj de 27 MHz y 10 bits de datos. De HD-SDI extrae reloj de 74MHz y 20 bits de datos. Debido a la diferencia de reloj PLL interno y la diferencia de bus de datos, debe reconfigurar el transceptor para que el reloj se recupere correctamente, ya que el reloj debe recuperarse del mismo cable que los datos.

    
respondido por el Socrates
2

Un "transceptor" en este contexto es un bloque de hardware que se convierte de una interfaz en serie de alta velocidad (demasiado rápida para que la lógica FPGA normal y la E / S se manejen directamente) en una interfaz paralela interna.

Los transceptores en un FPGA generalmente son altamente configurables y admiten diferentes velocidades y protocolos. En sistemas simples, solo puede configurar el transceptor de forma estática pasando la configuración al bloque de IP del transceptor que la herramienta de síntesis luego convierte en la configuración en su archivo de programación.

Pero a veces desea cambiar la configuración del transceptor sin reprogramar el FPGA. El bloque del controlador de reconfiguración del transceptor le brinda una interfaz para reprogramar el transceptor desde su sistema lógico.

    
respondido por el Peter Green
0

Los controladores de reconfiguración del transceptor no están muy documentados. Por lo que yo entiendo, el controlador tiene un par de propósitos principales. Lo que hay que tener en cuenta es que los transceptores de alta velocidad son bloques de señales mixtas muy complejos. Tienen una gran variedad de ajustes de configuración y calibración (en su mayoría no documentados, al menos públicamente). Algunos de estos son directos, como la configuración del divisor PLL y la configuración de codificación de línea. Muchas de estas configuraciones son específicas del protocolo en uso y se deben volver a cargar si es necesario cambiar el protocolo sobre la marcha. Los parámetros generalmente se exponen a través de una interfaz de memoria, por lo que usar una pequeña CPU de núcleo blando tiene sentido para cargarlos. Sin embargo, otras configuraciones son un poco más bajas de nivel. Cosas como tensiones y corrientes de polarización para varios bloques analógicos y otros componentes internos del transceptor. Las cosas que deben ajustarse con el tiempo para compensar las variaciones de temperatura y voltaje y las diferencias de fabricación entre las partes para que el transceptor funcione correctamente. El firmware del controlador de reconfiguración también administra estas configuraciones continuamente, por lo que necesita una, incluso si no tiene la intención de cambiar la configuración de alto nivel sobre la marcha.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas