Frecuencia de conmutación máxima de pines GPIO de FPGA barato y moderno

5

¿Cómo podemos estimar la frecuencia de conmutación máxima de pines GPIO FPGA? ¿Cuál es la velocidad de datos máxima alcanzable al conectar dos FPGA entre sí sin utilizar transceptores integrados de alta velocidad? O cuando estamos GPIO a VGA , ¿qué es el reloj de píxeles máximo?

Me interesan los dispositivos modernos y baratos de Altera, como Cyclone IV, Cyclone V (versión E, no GT) y Xilinx como Spartan 6.

Hay algunas cifras en las hojas de datos que dicen 300-400 MHz para pines GPIO, ¿pero son reales? ¿Cómo podemos impulsar el pin a 300-400 MHz cuando el reloj central máximo es solo de 100-150 MHz?

    
pregunta osgx

3 respuestas

7

Respuesta corta: sí, puede alcanzar una IO de 400MHz en la IO del usuario general en el Cyclone V dependiendo de su grado de velocidad. Por ejemplo, el controlador de memoria dura puede funcionar a una 400MHz . Tenga en cuenta también que las piezas de mayor velocidad pueden admitir un reloj global interno de 550MHz . No estoy seguro de dónde proviene su valor de 100-150MHz, pero eso no es una limitación del dispositivo;) En la práctica, las capacidades del dispositivo serán muy difíciles de lograr, pero debería poder acercarse.

Si está tratando de maximizar el ancho de banda entre los FPGA, la cantidad de IO estará limitada por la elección de su paquete, sin embargo, hay una serie de otros factores que deben considerarse al estimar el ancho de banda:

  1. Disposición e integridad de la señal. Para lograr las velocidades de la interfaz de memoria, debe tener trazas relativamente cortas y bien emparejadas. Si no puede hacer coincidir las huellas y mantenerlas cortas, puede experimentar problemas de integridad de la señal que reducen la frecuencia por debajo de lo que el dispositivo puede admitir. Si debe usar trazas largas, podría considerar sacrificar los IO por integridad utilizando LVDS en lugar de SSTL o similar.

  2. Inclinación del bus. Si está intentando maximizar el ancho de banda al agrupar gran cantidad de IO en un bus paralelo ancho, puede tener dificultades para mantener todos los bits sincronizados y, sin alguna forma de calibración, esto reducirá drásticamente la frecuencia. La interfaz de memoria externa tiene una fase de calibración que ajusta dinámicamente el retardo en cada bit del bus de datos para compensar el sesgo entre los bits, es probable que tenga que hacer algo similar. Por ejemplo, en Cyclone V puede ajustar el retardo de salida de 0 a 150ps en incrementos de 50ps, pero tenga en cuenta que estos valores no siempre pueden modificarse en tiempo de ejecución, por lo que debe consultar la hoja de datos con cuidado.

  3. Cronometraje. Es casi seguro que desee utilizar una fuente sincrónica en lugar de compartir un reloj externo. Esto afectará su elección de pines.

Otro problema que se obtiene al usar interfaces anchas es la falta de coincidencia en los retrasos de enrutamiento internos para llegar a los pines, incluso si sus trazados coinciden perfectamente, los retrasos internos pueden sesgar el bus más de lo que puede compensar en el receptor, por lo que siempre ejecute su Diseñe a través de las herramientas y agregue esta información al diseño de su tablero. A veces es mejor tener longitudes de traza de PCB deliberadamente desajustadas para compensar los retrasos en el dispositivo.

    
respondido por el Chiggs
2

La velocidad del GPIO puede ser de 2 a 4 veces el grado de velocidad del FPGA. Los bloques de E / S del FPGA están diseñados para soportar una velocidad más alta de lo que el FPGA puede soportar. Esto se debe a que muchos de estos IO se crean para admitir IO de alta velocidad como PCIe, USB 3 o incluso 3 y RapidIO, solo por mencionar algunos.

Incluso si el reloj máximo de su FPGA es de 400MHz, puede acceder a las IO con el doble de velocidad usando los bloques DDR de la IO o incluso 4 veces más que usando un bloque QDR.

También es posible serializar y des-serializar los datos a / desde los IO, lo que hace posible que un FPGA de bajo costo acceda a interfaces de alta velocidad.

Por ejemplo, Altera Stratix II tiene los siguientes bloques de IO:

EstoysegurodequetambiénpuedeencontrarunadescripciónsimilardeotrascompañíasdeFPGA.

PuedeverestearchivoPDFdexilinxconrespectoalascapacidadesdeIOenseriedealtavelocidaddesusFPGA.

enlace

Por ejemplo, en mi último proyecto, logramos conectarnos y FPGA a PCIe Gen 3 a 8Gb / s, aunque pensamos que la velocidad interna máxima alcanzable para el FPGA era de aproximadamente 250MHz. En ese proyecto, utilizamos un módulo PCM especial, puede leer más sobre el soporte de acceso PCIe de los FPGA de Xilinx en: enlace

    
respondido por el FarhadA
1

Las salidas síncronas de origen de GPIO pueden ir mucho más rápido que la lógica interna del FPGA. Como señaló FarhadA, esto se debe a todos los requisitos de interconexión de E / S de alta velocidad, incluso los FPGA de gama baja tienen que cumplir hoy (memoria DDR2 / 3/4, cameralink, mipi, ADC de alta velocidad, etc.).

Por ejemplo, el Spartan 6 puede hacer hasta 1050Mb / s enlace Véase también la página 18 de la hoja de datos de Spartan 6 enlace

Para lograr estas tasas, las salidas se serializan y el procesamiento interno se realiza a una señal más lenta y amplia. Específicamente, los bloques ISERDES y OSERDES son bloques duros de ip en los bloques IO del Spartan 6 FPGA. Xapp1064 hará referencia a gran parte de la documentación apropiada.

    
respondido por el davidd

Lea otras preguntas en las etiquetas