¿Cuál es la relación entre una caja de cambios 10: 5 y un OSERDES2 5: 1?

4

Estoy tratando de entender la implementación de HDMI en la nota de la aplicación Xilinx XAPP495 . Especialmente, no entiendo el diagrama a continuación donde hay conexiones entre las cajas de engranajes y oserdes2.

Como puede ver en el diagrama anterior, hay cajas de engranajes 10: 5 y módulos OSERDES2 5: 1. Ahora me quedo con: ¿por qué se usan la caja de engranajes 10: 5 y el OSERDES2 5: 1 al implementar una interfaz de video TMDS en el FPGA Spartan-6? ¿Podría por favor hágamelo saber? Además, ¿por qué no utiliza diferentes tipos de módulos, como la caja de engranajes 10: 1 y Oserdes2 10: 1?

    
pregunta Carter

2 respuestas

5

Al convertir datos paralelos en datos en serie, toma un bus paralelo que se ejecuta a baja frecuencia y luego lo registra en serie a una frecuencia mucho más alta.

  

¿Por qué no utiliza diferentes tipos de modos, como la caja de engranajes 10: 1 ...?

Una "caja de cambios" no es básicamente más que un bloque SERDES, la única diferencia es que la salida suele ser de varios bits. Una caja de engranajes en serie toma un bus de datos ancho y lo convierte en un bus de datos más estrecho, con el bus estrecho sincronizado a una frecuencia proporcionalmente más alta.

El problema con este proceso es que requiere que el serializador se ejecute a la velocidad de datos completa del bus serie, que es generalmente más allá de las capacidades de rendimiento del tejido central de procesadores y FPGA. Para un bus que se ejecuta a más de 400 Mbps, su dispositivo Spartan-6 no podría realizar la serialización dentro de la estructura central.

  

¿Por qué no usa diferentes tipos de modos, como ... 10: 1 Oserdes2

Para combatir este problema de velocidad, por lo general, los dispositivos cuentan con hardware dedicado SERDES (DESERializador de SERializador) en la periferia (junto a los pines de E / S) que es una pieza de silicio diseñada para los requisitos específicos de serialización. Está diseñado para ejecutarse a alta velocidad mediante un cuidadoso diseño de silicio, y se ejecutará más rápido que las tablas de búsqueda de propósito general y el enrutamiento en el núcleo.

El siguiente problema proviene de los requisitos de serialización para HDMI. Esto requiere un factor de serialización de 10: 1, es decir, se envían 10 bits de datos en cada ciclo de reloj de referencia.

De la hoja de datos, página 91 :

  

OSERDES2 permite la conversión de paralelo a serie con relaciones SerDes de 1: 1 (solo modo SDR), 2: 1, 3: 1 y 4: 1.
  Cuando se usan salidas diferenciales, las dos primitivas OSERDES2 asociadas con las dos IOB se pueden conectar en cascada para permitir relaciones SerDes más altas de 5: 1, 6: 1, 7: 1 y 8: 1.

Por lo que sabemos, los bloques Spartan-6 OSERDES solo admiten la serialización 1: 1, 2: 1, 3: 1 y 4: 1 para señales de un solo extremo, y adicionalmente 5: 1, 6: 1, 7: 1 y 8: 1 cuando se usan estándares diferenciales mediante bloques de OSERDES en cascada, simplemente, no pueden alcanzar el factor 10: 1 requerido .

  

¿Por qué la caja de engranajes 10: 5 y el OSERDES2 5: 1 se utilizan en la implementación de una interfaz de video TMDS en el FPGA Spartan-6?

La forma de evitar esto es utilizar una caja de cambios junto con el bloque SERDES.

Al utilizar una caja de cambios 10: 5, usted toma su problemático bus de datos de 10 bits y lo convierte en un bus de datos de 5 bits que se ejecuta con el doble de frecuencia . Los bloques OSERDES pueden manejar la serialización de 5 bits, por lo que luego puede usar el bloque OSERDES para pasar de 5 bits al requisito final de ancho de 1 bit.

La esperanza es que la velocidad de reloj intermedia, en este caso 2 veces la velocidad de reloj original, sea lo suficientemente lenta como para que se realice en el núcleo del FPGA utilizando tablas de búsqueda y registros. Aún puede aprovechar los bloques SERDES dedicados en la periferia del FPGA para convertirlos a la máxima velocidad.

El proceso completo también se puede hacer en sentido inverso: utilizando un bloque ISERDES de 1: 5 seguido de una caja de cambios de 5:10.

    
respondido por el Tom Carpenter
2

Una caja de engranajes traduce n bits de la frecuencia a a m bits a la frecuencia b . Así, las cajas de engranajes se traducen de datos paralelos a datos paralelos. La proporción de conversión de bits y frecuencias es \ $ \ frac {n} {m} = \ frac {b} {a} \ $.

Otra implementación de caja de cambios usa la misma frecuencia en ambos lados. En ese caso, se necesitan las señales valid y ready para acelerar el ancho de banda en el lado más rápido.

Un SerDes (serializador / deserializador) es una forma especial de una caja de engranajes con dos frecuencias: \ $ \ frac {n} {1} = \ frac {b} {1} \ $. Es un circuito de entrada en paralelo, salida en serie (PISO, a.k.a. registro de desplazamiento con carga en paralelo).

En sus casos, 10 bits (supongo que generados por un codificador 8B10B) se traducen primero a 5 bits (a doble frecuencia) y luego se modifican en serie a una frecuencia 10 veces mayor.

El reloj original se transmite con un ODDR FF (esto mantiene el ciclo de trabajo en una mejor forma y creó un retardo equivalente en comparación con los pines de datos.

    
respondido por el Paebbels

Lea otras preguntas en las etiquetas