Recuento de puertas lógicas de FPGA

Encontré una placa FPGA que me gustó. Utiliza un Xilinx Spartan 6 LX45. Cuando fui a la hoja de datos de la serie Spartan 6 , solo decía que había 43,661 celdas lógicas. ¿A cuántas puertas equivale eso? O bien, ¿cómo calcularía el número total de puertas a partir del número de celdas lógicas?

Respuestas (3)

Los fabricantes de FPGA ya no usan conteos de puertas equivalentes, incluso en los materiales de marketing más ondulados a mano. Al igual que las líneas de código o los megahercios de la velocidad del procesador, es una métrica muy imprecisa para medir la capacidad del dispositivo, y en los mercados de FPGA los clientes se dieron cuenta lo suficiente como para suprimir su uso.

Para estimar el tamaño del dispositivo que necesita, deberá consultar el resumen en la pág. 2 de la hoja de datos que vinculó. Por lo general, puede obtener una idea decente al principio de su proceso de diseño de cuántos flip-flops, cuántas E/S y cuánta RAM necesita su diseño. Uno u otro de ellos será típicamente el recurso crítico que determina el tamaño de la pieza que necesita.

Si no está muy limitado por los costos, use un dispositivo 2 veces o más grande de lo que cree que necesita. Le dará espacio para el aumento de características en su diseño y también acelerará el desarrollo porque las herramientas de diseño no necesitarán trabajar tan duro para adaptar su diseño a los recursos disponibles.

Editar , extrayendo cosas de los comentarios,

Mencionaste que tu diseño está mayormente desbloqueado.

El problema con esto es que las herramientas de diseño de FPGA dependen del reloj y las restricciones de tiempo resultantes para impulsar la optimización del diseño sintetizado. Si desea hacer un diseño sin reloj en un FPGA, en principio es posible, pero no obtendrá mucha ayuda de las herramientas (o proveedores) y probablemente necesitará encontrar una comunidad especializada que haga ese tipo de cosas para obtener cualquier apoyo.

En cualquier caso, puede consultar la Guía del usuario del bloque lógico configurable de Spartan 6 para ver qué recursos están disponibles en cada bloque. Luego asigne mentalmente su diseño a esos recursos para ver cuántos bloques necesita. Eso debería ser suficiente para permitirle elegir el dispositivo del tamaño correcto.

Por ejemplo, puede ver en ese documento que la parte LX45 contiene alrededor de 27,000 LUT de 6 entradas. Cada LUT se puede utilizar para implementar una lógica combinatoria arbitraria con hasta 6 entradas. Si puede expresar su lógica en términos de esta primitiva, puede estimar si su diseño encaja en el dispositivo.

Bueno, esa es la cuestión, todavía no he comenzado a diseñar (y mi diseño está directamente en la lógica), porque iba a diseñar en base a mis ofertas especiales de FPGA. Sé que necesitaría aproximadamente> 2,5 millones de puertas, entonces, ¿cómo encontraría algo que pudiera contener tantas puertas?
¿De verdad, no hay chanclas?
Bueno, tengo algunos, pero bastantes son solo SR y otros, en lugar de JK y D.
Para obtener un buen soporte de las herramientas de síntesis de FPGA, puede considerar ajustar su diseño para enfatizar los flip-flops D --- Supongo que hay formas de diseñar en otros estilos, pero los conjuntos de herramientas de FPGA están fuertemente orientados hacia el diseño RTL, lo que significa mucho Dff's.
Lo que pasa con las chanclas D es que tienen reloj, lo cual no es algo que realmente me guste en mi diseño. Pero de cualquier manera, ¿qué debo hacer para encontrar la cantidad de celdas que necesito?
Lo que pasa con las herramientas de diseño de FPGA es que dependen del reloj y las restricciones de tiempo resultantes para impulsar la optimización del diseño sintetizado. Si desea hacer un diseño sin reloj en un FPGA, probablemente pueda, pero no obtendrá mucha ayuda de las herramientas (o proveedores) y probablemente necesitará encontrar una comunidad especializada que haga ese tipo de cosas para obtener cualquier apoyo.
En cualquier caso, puede consultar la guía del usuario del bloque lógico configurable de Spartan 6 para ver qué recursos están disponibles en cada bloque. Luego asigne mentalmente su diseño a esos recursos para ver cuántos bloques necesita. Eso debería ser suficiente para permitirle elegir el dispositivo del tamaño correcto. xilinx.com/support/documentation/user_guides/ug384.pdf
Supongo que tomará algo de trabajo, pero esto parece ser lo mejor. Edite su respuesta para incluir ese comentario, y luego lo marcaré como correcto.
Hay muy buenas razones por las que las herramientas FPGA están diseñadas para usarse principalmente con lógica sincronizada. Los circuitos combinatorios complejos son muy difíciles de diseñar en un FPGA. Probablemente tendría que colocar manualmente cada recurso, ya que si no se especifica el reloj, los retrasos en el enrutamiento podrían ser bastante aleatorios entre las ejecuciones de síntesis. Si a su diseño realmente no le importan los retrasos en la propagación, tiene una oportunidad... pero si le importan estos retrasos, probablemente se enfrente a una experiencia dolorosa y desalentadora.
Afortunadamente, los retrasos no importan tanto, ya que se le asigna una tarea y luego se le da tiempo para resolverla.

Los FPGA son más que simples puertas (LUT, FF, Block RAM, multiplicadores, etc.) y tratar de calcular cuántos hay es un ejercicio bastante sin sentido. Los departamentos de marketing de la empresa FPGA, en el pasado, arrojaron números como recuentos de puertas equivalentes iguales a 1.4x el número de celdas lógicas, pero creo que han detenido esta práctica.

Si está tratando de determinar si un diseño dado encajará en un FPGA, es mejor hacer algunas ejecuciones de síntesis de prueba en su HDL para FPGA de varios tamaños.

Bueno, esa es la cuestión, todavía no he comenzado a diseñar (y mi diseño está directamente en la lógica), porque iba a diseñar en base a mis ofertas especiales de FPGA. Sé que necesitaría aproximadamente> 2,5 millones de puertas, entonces, ¿cómo encontraría algo que pudiera contener tantas puertas?
¿Cómo sabes que necesitas puertas de 2,5 millones?
Empecé a hacer un módulo en un pequeño simulador, multipliqué por la cantidad de módulos que necesitaría, agregué un poco de espacio y redondeé a dos sig figs.
Sin embargo, ¿cómo obtuviste un conteo de puertas? Las herramientas FPGA le darán números de uso en términos de sus recursos, no de conteos de puertas.
He estado diseñando en una herramienta que no es FPGA, es decir, un simulador mixto analógico/digital. Y también en papel. La forma en que obtuve un conteo de puertas fue que diseñé todo en puertas en lugar de chanclas y demás.
Como dijo @The Photon, los FPGA y sus herramientas están muy sesgados hacia las técnicas de diseño síncrono y, de lo contrario, obtendrá malos resultados. Sin embargo, al final del día, si desea diseñar para un FPGA, use herramientas de FPGA, no otra cosa.
Si debo usar puertas lógicas, ¿qué debo usar? Un CPLD no tiene suficientes puertas.
Bueno, depende de lo que quieras hacer, aún puedes usar FPGA, pero para FPGA, lo que diseñas en las puertas no es 'exactamente' lo que obtienes después de Place&Route, la herramienta asigna tu diseño a los recursos disponibles dentro del FPGA y luego genera un informe para usted. A partir de ahí puedes determinar el tamaño de tu diseño.

Véalo de otra manera: parece que en otros comentarios ya tiene un módulo resuelto. Alimente eso a las herramientas FPGA, incluso las gratuitas le darán una estimación del recuento LUT/BRAM/FF de la síntesis. Multiplique eso por el recuento de instancias, agregue un poco de holgura y ahí tendrá un recuento de LUT utilizable para dimensionar el FPGA.

Por supuesto, es posible que deba hacerlo para cada tipo de FPGA que considere, ya que cada uno tiene arquitecturas algo diferentes, en términos de la cantidad de entradas que tienen las LUT y cuántos otros circuitos de soporte en forma de muxes, etc. tienen alrededor. los LUTS. Y si tu circuito puede aprovecharlo...

Bueno, lo haría, si pudiera encontrar una herramienta FPGA gratuita que me permita simplemente dibujar puertas lógicas y luego programar un FPGA con ella.
Si desea una estimación seria, es posible que desee tomar su diagrama de puertas y convertirlo en HDL. Tendrá que hacer eso de todos modos para hacer cualquier trabajo de implementación serio en estos días. ¿Es un diseño de "espagueti" muy grande o está estructurado jerárquicamente con mucha reutilización?
@haneefmubarak 8 años tarde, pero hay muchas herramientas de dibujo/simulación que pueden exportar verilog, por ejemplo. Entonces es posible, al menos, en 2021 lo es. Circuitverse es una de las muchas herramientas gratuitas que podrían hacer esto.