Pregunta:
Frecuencia de conmutación máxima de pines GPIO de FPGA moderno y económico
osgx
2014-01-02 03:11:37 UTC
view on stackexchange narkive permalink

¿Cómo podemos estimar la frecuencia de conmutación máxima de los pines GPIO FPGA? ¿Cuál es la velocidad máxima de datos que se puede alcanzar cuando se conectan dos FPGA sin usar transceptores integrados de alta velocidad? O cuando estamos transfiriendo GPIO a VGA, ¿cuál es el reloj de píxeles máximo?

Estoy interesado en dispositivos Altera modernos y baratos, como Cyclone IV, Cyclone V (versión E, no GT) y dispositivos 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 conducir el pin a 300-400 MHz cuando el reloj de núcleo máximo es de solo 100-150 MHz?

Muchos FPGA tienen bloques PLL / Clock que pueden multiplicar un reloj de entrada hasta la frecuencia deseada.
dextorb, sí, pero creo que no puedo tener una frecuencia lógica superior a 150 MHz en mi Cyclone IV (grado de velocidad C6).
Creo que ese es el REFCLK máximo, no la velocidad lógica máxima, que está determinada por el retardo de propagación y los tiempos de configuración / retención del flop. Si dice 400MHz en la hoja de datos, esperaría poder lograrlo.
No entiendo por qué la gente a menudo quiere FPGA para lo que no está diseñada. Un FPGA de gama baja como la serie Cyclone es barato pero no está diseñado para ejecutar un reloj central de alta frecuencia, si desea que su diseño se ejecute a una frecuencia alta, debe tomar un FPGA de gama alta. Es como un procesador: un Atom y un Core i7 no cuestan lo mismo pero tampoco tienen el mismo rendimiento. Tenga en cuenta también que con una FPGA puede realizar acciones simultáneas, mientras que con una MCU está trabajando paso a paso (simplificando). Entonces, incluso si su reloj está bajo, puede lograr optimizar su diseño;)
Tres respuestas:
Chiggs
2014-01-08 05:58:44 UTC
view on stackexchange narkive permalink

Respuesta corta: sí, puede lograr IO de 400MHz en el IO de usuario general en el Cyclone V dependiendo de su grado de velocidad. Por ejemplo, el controlador de memoria dura puede funcionar a 400 MHz. Tenga en cuenta también que las piezas de grado de velocidad más rápidas pueden admitir un reloj global interno de 550 MHz. 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, el extremo superior de las capacidades del dispositivo será muy difícil de lograr, pero debería poder acercarse.

Si está tratando de maximizar el ancho de banda entre FPGA, el número de IO estará limitado por su elección de paquete, sin embargo, hay otros factores a considerar al estimar el ancho de banda:

  1. Diseño 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 trazas y mantenerlas cortas, es posible que experimente problemas de integridad de la señal que reduzcan la frecuencia por debajo de lo que el dispositivo realmente puede admitir. Si debe utilizar trazas largas, puede considerar sacrificar las IO por la integridad utilizando LVDS en lugar de SSTL o similar.

  2. Bus sesgado. Si está tratando de maximizar el ancho de banda agrupando una gran cantidad de E / S en un bus paralelo ancho, es posible que tenga 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 la desviación entre los bits; es probable que deba 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 se pueden cambiar en tiempo de ejecución, así que revise la hoja de datos cuidadosamente.

  3. Marcado. Es casi seguro que querrá utilizar una arquitectura de reloj sincrónica de origen en lugar de compartir un reloj externo. Esto afectará su elección de pines.

Otro problema al usar interfaces anchas es la falta de coincidencia en los retrasos de enrutamiento interno para llegar a los pines; incluso si sus trazas tienen una longitud perfecta, los retrasos internos pueden sesgar el bus más de lo que puede compensar en el receptor, así que siempre ejecute diseñe a través de las herramientas e introduzca esta información en el diseño de su tablero. ¡A veces es mejor tener trazas de PCB que no coincidan deliberadamente para compensar los retrasos en el dispositivo!

FarhadA
2014-01-03 14:26:57 UTC
view on stackexchange narkive permalink

La velocidad del GPIO puede ser de 2 a 4 veces el grado de velocidad del propio FPGA. Los bloques de E / S de la FPGA están diseñados para admitir una velocidad superior a la que puede admitir la FPGA. Esto se debe a que muchos de estos IO se crearon 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 400MHz, puede acceder IO al doble de esa velocidad usando los bloques DDR del IO o incluso 4 veces más usando un bloque QDR.

También es posible serializar y deserializar los datos hacia / desde los IO, lo que lo convierte en posible que una FPGA de bajo costo acceda a interfaces de alta velocidad.

Por ejemplo, Altera Stratix II tiene los siguientes bloques de E / S: enter image description here

Estoy seguro de que también puede encontrar una descripción similar de otras compañías FPGA.

Puede echar un vistazo a este archivo PDF de xilinx con respecto a las capacidades de E / S en serie de alta velocidad de sus FPGA.

http://www.xilinx.com/publications/archives/books/serialio.pdf

Por ejemplo, en mi último proyecto, logramos para conectar y FPGA a PCIe Gen 3 a 8Gb / s incluso aunque la velocidad interna máxima alcanzable para la FPGA era de aproximadamente 250MHz. En ese proyecto, usamos un módulo PCM especial, puede leer más sobre el soporte de acceso PCIe de FPGA de Xilinx en: http://www.xilinx.com/technology/protocols/pciexpress.htm

Pero, como sé, PCIe y otras interfaces de alta velocidad se implementan con transceptores de hardware, no con el GPIO habitual. Como GPIO me refiero a los pines sin piezas de hardware de alta velocidad.
OP dice que sin usar los transceptores integrados de alta velocidad, por lo que la mención de PCIe gen 3 y USB 3 es engañosa, ya que estos protocolos no son posibles usando GPIO.
davidd
2014-09-20 02:22:41 UTC
view on stackexchange narkive permalink

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

Para ejemplo, el Spartan 6 puede hacer hasta 1050Mb / s http://www.xilinx.com/support/documentation/application_notes/xapp1064.pdf Consulte también la página 18 de la hoja de datos del Spartan 6 http : //www.xilinx.com/support/documentation/data_sheets/ds162.pdf

Para lograr estas velocidades, 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 IP duros en los mosaicos IO de la FPGA Spartan 6. Xapp1064 hará referencia a gran parte de la documentación correspondiente.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...