Implementa rápidamente JESD204B en una FPGA Xilinx
Introducción
JESD204 es una interfaz serie de alta velocidad para conectar convertidores de datos (ADC y DAC) a dispositivos lógicos. La revisión B de la norma admite velocidades de datos en serie de hasta 12,5 Gbps y garantiza una latencia repetible y determinista en el enlace JESD204. Como las velocidades y resoluciones de los convertidores siguen aumentando, la interfaz JESD204B es cada vez más habitual en los convertidores de alta velocidad y los transceptores de RF integrados de ADI. Además, los serializadores/deserializadores flexibles (SERDES) en FPGAs y ASICs han empezado a sustituir de forma natural la tradicional interfaz paralela LVDS/CMOS a los convertidores, y se utilizan para implementar la capa física JESD204B. Este artículo describe cómo configurar rápidamente un proyecto con un Xilinx® FPGA para implementar la interfaz JESD204B, y proporciona algunas sugerencias de aplicación y depuración para los diseñadores de FPGA.
Visión general de la implementación del protocolo JESD204B
La especificación JESD204B define cuatro capas clave que implementan el flujo de datos del protocolo, como se muestra en la Figura 1. La capa de transporte asigna la conversión entre muestras y bytes enmarcados y no enmarcados. La capa de codificación opcional codifica/descodifica los bytes, repartiendo los picos espectrales para reducir la EMI. La capa de enlace de datos se encarga de la sincronización, la configuración y el mantenimiento del enlace, y codifica/decodifica los bytes codificados en/desde caracteres de 10 bits. La capa física se encarga de la transmisión y recepción de caracteres a la velocidad de bits.
Los distintos proveedores de IP JESD204B pueden implementar las capas de forma diferente. Las figuras 2 y 3 ilustran cómo ADI implementa los protocolos de transmisión y recepción JESD204B.
La implementación de la capa de transporte depende en gran medida de la configuración del convertidor específico y de cómo se mapea entre las muestras y las tramas, por lo que la mayoría de los proveedores de FPGA la excluyen de su IP JESD204. Además, los transceptores SERDES altamente configurables y estrechamente integrados se incorporan a las FPGA. Pueden utilizarse para soportar todo tipo de protocolos serie, como PCIe, SATA, SRIO, CPRI y JESD204B. Así, un núcleo lógico que implementa la capa de enlace, junto con un SERDES configurable que implementa la capa física, forman la base de un enlace JESD204B. Las figuras 4 y 5 muestran los diagramas de bloques de un transmisor y un receptor JESD204B en una FPGA de Xilinx. Los canales transmisor/receptor implementan las capas de interferencia y de enlace; el 8B/10B el codificador/decodificador y la capa física se implementan en la aplicación GTP/GTX/GTH transceptores gigabit.
Ejemplo de diseño JESD204B con una FPGA de Xilinx
Lo último IP JESD204 de Xilinx el núcleo se entrega y encripta como una caja negra a través del Vivado® Suite de diseño. Xilinx también proporciona un proyecto de ejemplo de Verilog que utiliza la interfaz avanzada eXtensible (AXI), pero este proyecto de ejemplo es excesivo para la mayoría de las aplicaciones. Los usuarios suelen tener sus propias interfaces de configuración y no necesitan integrar un AXI adicional para la lógica JESD204B. La Figura 6 muestra un diseño JESD204 simplificado, destinado a ayudar a los usuarios de FPGA a entender la estructura de JESD204 y a iniciar rápidamente su propio proyecto JESD204 basado en FPGA.
Datos encriptados lengua de transferencia de registros (RTL), el núcleo IP lógico JESD204 generado por Vivado, es equivalente a los módulos de transmisión y recepción que se muestran en la Figura 4 y la Figura 5. La definición de la interfaz cifrada se encuentra en los archivos de diseño de ejemplo de Xilinx. A continuación, la RTL encriptada se envuelve en la parte superior del usuario JESD204B. Las interfaces de control, configuración, estado y datos de JESD de la RTL encriptada pasan por la envoltura para conectarse a la lógica de usuario y a los datos del transceptor GTX/GTH. La configuración de la alineación de símbolos para GTX/GTH se ha optimizado y actualizado para que los transceptores funcionen con mayor solidez.
Se utilizarán almohadillas dedicadas para el reloj de referencia GTX/GTH a los transceptores SERDES. Hay que prestar especial atención al diseño del reloj global para la lógica de la FPGA, incluidos los relojes para el PLL interno, la interfaz paralela, el núcleo lógico JESD204 y la lógica de procesamiento específica del usuario. Además, la entrada de referencia del sistema maestro (SYSREF) para el núcleo lógico JESD204B (subclase 1) debe capturarse con precisión para garantizar el retraso determinista del enlace JESD204.
La secuencia de reinicio de los transceptores GTX/GTH y del núcleo JESD204 es crucial para una inicialización fiable del enlace JESD. Por tanto, el núcleo JESD204 debe estar en estado de reinicio hasta que el PLL interno del transceptor GTX/GTH esté bloqueado y el GTX/GTH se haya reiniciado.
Para implementar la capa de transporte JESD204 se necesita un módulo de trama a muestra (F2S), que mapea muestras a o desde tramas según la configuración específica de JESD204B. A continuación, las muestras son procesadas por la lógica específica de la aplicación. Un módulo auxiliar supervisa la lógica JESD204 y el estado de la capa física (PHY) para la depuración del sistema.
Alineación de símbolos en el transceptor SERDES de Xilinx
En el receptor SERDES, los datos en serie deben alinearse con los límites de los símbolos antes de poder utilizarlos como datos en paralelo. Para alinear los datos, el transmisor envía una secuencia reconocible, normalmente llamada coma. El receptor busca una coma en el flujo de datos en serie entrante y la desplaza a un límite de símbolo cuando la encuentra. Esto permite que las palabras paralelas recibidas coincidan con las palabras paralelas transmitidas. La coma suele ser una K, que es un carácter especial de la tabla 8B/10B utilizado para los símbolos de control. Para las aplicaciones JESD204B, el transmisor enviará un flujo de símbolos K = K28,5 para la sincronización de grupos de códigos (CGS). Por lo tanto, la FPGA puede utilizar K28.5 como coma para alinear los límites de los símbolos y los usuarios pueden especificar si una coincidencia de coma consiste en una coma más (la disparidad actual es más) o una coma menos (la disparidad actual es menos), o ambas. La configuración por defecto de JESD204B para la detección de la coma GTX/GTH permite alinear una coma más o una coma menos.
En algunas aplicaciones, la configuración por defecto de la coma puede hacer que el símbolo se realinee, o que se alinee con el límite de símbolo equivocado. Esto puede causar errores de descodificación 8B/10B y enlaces JESD204B rotos. La coma combinada de más y menos es más robusta, ya que obliga al bloque de alineación de la coma a buscar dos comas seguidas, detectando una coma sólo cuando los datos recibidos tienen una coma de más o menos seguida de una coma de menos o de más sin bits extra entre ellas. Esto mantiene los límites de los símbolos y la estabilidad del enlace cuando la velocidad de la línea es alta o el sistema tiene un ruido excesivo.
Consideraciones de diseño para proyectos JESD204 en FPGAs
Una señal SYNC activa y baja del receptor JESD204 al transmisor indica el estado de la sincronización. El reinicio del enlace durante el funcionamiento normal provocará muestras de datos desordenadas, por lo que el estado del enlace debe controlarse en tiempo real. En particular, un nivel bajo continuo en SYNC significa que el receptor no puede identificar al menos cuatro símbolos K28.5 consecutivos en el flujo de datos recibido. Si esto ocurre, comprueba la configuración SERDES del transmisor/receptor o asegúrate de que el transmisor está enviando K28,5s. Un nivel alto continuo en SYNC significa que el enlace se ha establecido y mantiene la estabilidad. Cuando SYNC pasa de alto a bajo y de nuevo a alto, hay que contar la duración del estado bajo. Si es superior a cinco tramas más nueve bytes, el receptor ha detectado un error significativo y envía una petición de reinicio del enlace JESD204. Si la duración es igual a dos relojes de trama, el receptor ha detectado un pequeño error, pero no provoca un reinicio del enlace. Esta función puede facilitar en gran medida la depuración del sistema y la posterior supervisión de los enlaces, por lo que los usuarios deberían incluirla en sus diseños.
los errores de descodificación 8B/10B pueden provocar el reinicio del enlace JESD204B, pero no son la única causa. Por tanto, los diseños de los usuarios deben tener la capacidad de contar los errores de descodificación de cada canal para determinar la causa de la resincronización del enlace. Además, la calidad del enlace SERDES puede determinarse en tiempo real por el estado de los errores de descodificación 8B/10B.
Secuencias de bits pseudoaleatorias (PRBS) son un recurso útil para medir la calidad de la señal y la tolerancia al jitter en los enlaces de alta velocidad. El transceptor SERDES de la mayoría de las FPGAs tiene un generador y verificador PRBS incorporado, por lo que no se necesitan recursos adicionales de la FPGA. Así que no olvides instanciar esta función, que debe utilizarse cuando se evalúe la tasa de error de bits (BER) o el diagrama de ojos.
En los transceptores SERDES siempre se utiliza un búfer para cambiar el dominio del reloj interno. Un diseño de reloj incorrecto para el transmisor y el receptor o un ajuste incorrecto del reloj y la recuperación de datos (CDR) pueden provocar el desbordamiento o el desbordamiento del búfer. En este caso pueden producirse algunos errores de enlace, por lo que es útil controlar el estado del buffer. Un registro de interrupción por desbordamiento y desbordamiento del búfer es útil para la depuración del sistema, por lo que también deben controlarse otros búferes internos que no pueden desbordarse o desbordarse en la lógica de usuario.
Conclusión
Este artículo ha mostrado cómo implementar rápidamente un bloque JESD204 en una FPGA de Xilinx, pero el método también puede aplicarse a otras FPGAs. En primer lugar, entiende la función y las interfaces del núcleo lógico JESD204 y del transceptor proporcionados por el proveedor de la FPGA, y luego instálalos e intégralos en tu lógica. En segundo lugar, diseña el árbol de reloj general de la FPGA y la secuencia de reinicio de todo tu proyecto. En tercer lugar, define cuidadosamente las interfaces entre el núcleo lógico JESD204, la lógica de usuario y los transceptores. Por último, añade los recursos de depuración necesarios. Siguiendo estos pasos, puedes conseguir un diseño rápido y satisfactorio para tu interfaz JESD204.
Ссылки
Guía de supervivencia JESD204B
Interfaz serie JESD204 Norma JEDEC para convertidores de datos
Convertidores analógico-digitales de alta velocidad
Convertidores digital-analógico de alta velocidad
Transceptores, transmisores y receptores integrados
Diseños de referencia FPGA y alianzas
Desmitificando la interfaz del convertidor de datos de alta velocidad JESD204B a una FPGA
Beavers, Ian"Desmitificando la latencia determinista en los convertidores JESD204B." Diseño electrónico, 2/25/2014.
Beavers, Ian"Sistemas de prototipado: convertidores JESD204B y FPGA." Diseño electrónico, 1/23/2014.
Beavers, Ian y Jeffrey Ugalde. "Diseño de sistemas de conversión JESD204B para una baja BER, parte 1." EDN, 10/22/2014.
Beavers, Ian y Jeffrey Ugalde. "Diseño de sistemas de conversión JESD204B para una baja BER, parte 2." EDN, 10/28/2014.
Harris, Jonathan"Comprender las capas de la especificación JESD204B: Una perspectiva de ADC de alta velocidad, parte 1." EDN, 9/24/2014.
Harris, Jonathan"Comprender las capas de la especificación JESD204B: Una perspectiva de ADC de alta velocidad, parte 2." EDN, 10/2/2014.
Jones, Del. "Subclases JESD204B (Parte 1): Introducción y latencia determinista." EDN, 6/18/2014. Jones, Del. "Subclases JESD204B (Parte 2): Subclase 1 vs. 2, Consideraciones del sistema." EDN, 6/25/2014.
Si quieres conocer otros artículos parecidos a Implementa rápidamente JESD204B en una FPGA Xilinx puedes visitar la categoría Generalidades.
Deja una respuesta
¡Más Contenido!