¿Cómo implementar el protocolo 8b10b en / decoding entre dos FPGA?

0

Estoy usando dos FPGA de Xilinx (uno Kintex 7 y uno Artix 7). El Kintex 7 está vinculado a su propio sistema (el software OPAL-RT, es un software de simulación que es un complemento de Simulink que permite que los datos se envíen a un FPGA a través de una entrada de la CPU del usuario) y emitirá sus datos como 10 serial bits.

El problema que estoy tratando de resolver es enviar 20 bits en serie (en realidad, 16 bits, pero cuando esté codificado deberían ser 20, si no me equivoco) del Kintex 7 al Artix 7.

Se marcarán de manera diferente, pero pensé que el punto de 8b10b era para que el secundario del FPGA primario pueda ser recuperado por el flujo de datos.

Es evidente que no estoy muy informado sobre el tema de la configuración de un enlace de comunicación entre dos FPGA de Xilinx, pero si alguien tiene alguna idea que pueda ayudarme, sería muy apreciado.

Cabe destacar que tengo acceso a Vivado / Xilinx System Generator.

    
pregunta Lerbi

1 respuesta

2

Necesita un circuito de "recuperación de datos de reloj" (CDR). Su FPGA puede incluir uno como núcleo duro, si está utilizando velocidades de señal en el rango de gigabits por segundo.

Esta función generalmente requiere algunas partes especializadas, como un oscilador controlado por voltaje (VCO) y un circuito de control analógico para el VCO, que no se implementan fácilmente en el tejido de FPGA. Entonces, si desea trabajar en frecuencias en las que los núcleos duros del FPGA no funcionan, deberá comprar un IC externo para realizar esta función. Necesitará elegir una tasa de datos que se use con la frecuencia suficiente para que valga la pena desarrollar IC para trabajar allí.

Si desea enviar estos datos a una velocidad relativamente lenta (por ejemplo, por debajo de 50 Mb / s), es posible que desee usar Codificación Manchester en lugar de 8b / 10b. Con la codificación de Manchester, puede recuperar el reloj de los datos utilizando un circuito simple que solo requiere Un par de puertas, sin necesidad de un VCO o PLL. Es posible que su herramienta de síntesis no esté contenta con la implementación de este circuito, pero a bajas tasas de datos debería funcionar bien.

    
respondido por el The Photon

Lea otras preguntas en las etiquetas