FPGA vs Microcontrolador, ¿cual es mejor?

Simplemente depende de la aplicación.

Una FPGA consume más que la mayoría de microcontroladores, sus encapsulados tienen une levado número de pines, requieren una memoria externa de configuración y varias tensiones de alimentación.

Un microcontrolador puede consumir potencias del orden del uW, tener tan solo 4 pines y alimentarse desde una simple pila. Esto sería imposible con una FPGA.

Respecto a las capacidades de una FPGA dependen mucho del diseño.

En una EP3C25 se pueden implementar fácilmente 66 procesadores muy sencillos con una memoria de 1KByte, multiplicador hardware de 18x18 bits y frecuencia de funcionamiento de 100 Mhz. Un total de 6600 MIPS (millones de instrucciones por segundo), que si bien hay algunos micros que los superan, seguramente no hay ninguno con 66 núcleos...

Saludos.
 
Espéro que la opinion de un viejo que nacio con el Z80, el 6502, 8088, los circuitos TTL, etc. les pueda servir, mas como historia y por tanto como referencia para poder entender la grandisima diferencia que hay entre Un microcontrolador y Un FPGA.

En mis tiempos teniamos muy pocos CPUS y una gran familia de circuitos TTL (LOGICOS),Circuitos operacionales(analogicos) y una limitada gama de semiconducores (transistores y diodos), asi que para hacer algo funcional teniamos la unica alternativa de combinar estos dispositivos para lograr la meta que nos proponiamos.

Hoy en dia veo con mucho agrado todo el desarrollo que existe Tanto en CPU´s, FPGAS y Microcontroladores, sin embargo me preocupa un poco ver que exista "confucion" entre las diferentes herramientas que tenemos a mano y peor aun pretender compararlas y por tanto concluir cual es mejor: Mientras que muy pocos ven en realidad para que sirve cada uno.

Por aqui lei que alguien muy sensato, escribia "que es mejor: Capacitor o resistencia" una forma muy ironica de expresar la misma preocupacion que yo. Si alguien tiene fotos o diagramas de las Primeras tarjetas madres de Computadoras personales, como APPLE II, IBM, TANDY, COMODORE, etc. podran entender como nace la historia de los FPGAS, los microcontroladores, VLSI, etc.

Por ejemplo Tanto en las APPLE y la primera IBM-pc, todo estaba desarrollado en circutios TTL, salvo algunos otros integrados como la RAM, Y otra electronica dicrecional. A lo que quiero llegar es que, los FPGAS (Field Programmable Gate Array vienen a substituir toda esta electronica "Logica" que en ese entonces nos consumian cientos de integrados. A traves de los desarrollos de PAL´s, GAL´s, y otras tecnologia; se llega al actual FPGA, que si bien y gracais a tan alta integracion (que llegan a millones) de compuertas que superan a muchos microprocesadores de antaño, pueden "lucir" mas poderosos, pero definitivamente no estan diseñados para eso. Por otro lado recordemos que los FPGA No pueden procesar señales analogicas, y que por tanto si se requiere, deben utilisarse circuitos extras para estas funciones de conversion AD (Analogico-Digital) o DA (Digital-Analogico).

Los microcontroladores, que me parecen fantasticos tienen la virtud de contener un pequeñisimo CPU, RAM, ROM, i/o, ADC, DAC. que te permiten dar una solucion muy rapida a muchisimas aplicaciones sin meterse en la complicacion que implica llegar a lo mismo con un CPU, RAM, ROM. etc.

Por lo pronto, dejo aqui este comentario, que quizas les suene a palabras de vejete decrepíto, y que quizas no entienda los alcances que tiene hoy la electronica, pero que si les asegura saber como es que llegamos a estas tecnologias que tenemos en mano. Pero por favor...¡No mezclen la Gimansia con la Magnesia!


Saludos y Gracias a todos por este gran foro.
 
Última edición:
espero q de algo valga mi opinion, pero los fpga son algo asi como tarjetitas CONFIGURABLES, por eso lo dificil de "programarlos", y los micros son dispositivos PROGRAMABLES.

en mi opinion los dos son totalmente diferentes y dificil de comparar, pues sus aplicaciones aunq pueden ser las mismas generalmente no lo son.

otras diferencias son los precios ya q un fpga en México puede llegar a valer unos $1000 y un micro alrededor de los $100.

la cuestion de las I/O pues se las llevan los fpga pero para controles mas especificos y tamaños (hablo de algo al alcance de nosotros los mortales) un PIC bien programado seria lo mejor

en conclusión usaria PIC para todo lo q sea pequeño o mediano y un FPGA para cosas de verdad grandes.

espero me entiendan y sea de ayuda ...

saludos desde Hgo México
 
Pues un FPGA es un circuito integrado, solo que la mayoria de las personas los han visto montados en un sistema de desarrollo, pero si observamos con detalle, el FPGA es solo un circuito integrado digital reconfigurable, y la complejidad de la programación es debido a que la mayoria de las personas esta acostumbrada a programar en C o en otro tipo de lenguajes de lógica secuencial, en cambio los FPGA y CPLD requieren un tipo de programación concurrente, que les permita manejar la al máximo sus recursos. En cuanto a sus aplicaciones, no son las mismas, aunque ambos puede llevar a cabo tareas similares, fueron creados para diferentes aplicaciones. Respecto al precio no son tan caros, ya que con algunos proveedores se pueden encontrar con un precio aproximado de 15dolares (solo el chip, faltando sumar el precio de importacion y de envio a México), lo que si debemos considerar es que se debe adquirir tambien la memoria para guardar el programa. Para aplicaciones que requieren el tamaño y funcionalidad de un micro se puede usar un cpld, el cual lleva internamente la memoria flash y son relativamente mas baratos (XC9500 aproximadamente $150 MX o 15 dolares gringos). El problema es que desafortunadamente en México y en otros paises nos casamos con ciertas tecnologias y dejamos atras dispositivos con mayores ventaja, por ejemplo para una aplicación real o mejor dicho para vender no usaria un pic, si no alguna otra marca como Freescale, Texas Instrument, ST Microelectronic, Renesas, ya que poseen compiladores mas potentes y/o gratuitos (con ciertas restricciones) que nos permiten desarrollar aplicaciones mas eficientes que usando un Pic, la cuestión es explorar el mundo de los sistemas embebidos y actualizarnos día a día. Por cierto de que parte de hidalgo eres?? o mas en que escuela estudias, yo tambien soy de Hidalgo
 
hola otra vez, y bueno NEEC, coincido contigo de q muchas veces solo utilizamos lo q nos enseñan o solo un producto q conozcamos, y tambien en q un fpga solo es un CI, igual en q son completamente diferentes y eso, en los precios pues en lo personal prefiero ls pic, y como dices para aplicaciones reales en mi caso prefiero ls pic por lo facil de utilizar y como decia con un pic bien programado practicamente no necesitas nada mas (considerando interfaces de I/O, fuentes etc etc), en cuanto a actualizarnos cn lo nuevo esta bien y pues por hacer eso entre un poco al mundo de los FPGA, como dige es una opinion muy personal, en cuanto a experiencias y practicas q he hecho, y bueno soy de pachuca, de la UPP
 
Haber, si diseño un sistema con un fpga y muchops p´perifericos, y si kiero ya el sistema armado, tengo que enviarles mi codigo a xilinx o altera, por asi decir, y ellos me envian las placas acabadas?, o como esta el rollo?. porque neec dices que mno utilizarias un PIC, bueno me pienso comprar una tarjeta de desarrollo del pic32, pero esa es la duda que tengo, el producto final como lo hago?, las placas las hago yo o que pasa?
 
No....

Cualquier fabricante solo se responsabiliza de fabricar los chips... y si el negocio es elevado (varios millones de dolares) algunos te surten el chip ya programado

Pero si quieres una PCB ya armada necesitas mandar los datos a un maquilador (la empresa varia segun el volumen que requieras), usualmente ellos cuentan con programadores para grabar tu codigo en el chip y te entregan desde las placas individuales hasta un producto terminado...

En cualquier caso tu tienes que diseñar todo... a los maquiladores solo les entregas los planos de diseño y el codigo maquina..
 
oye chico, en mi escuela voy a programar estas cosas, pero qusuiera saber mas o menos que "maquiladores"hay en el mercado, porque estoy empapandome del tema y me estoy "casando" poco a poco con altera. grax
 
Te cuento un poco mi experiencias con las FPGAs como ya mencione, estos chip son para prototipado rapido, la configuración del chip fpga es volátil es decir se borra al quitar la alimentación del chip, generalmente las tarjetas de desarrollo traen una memoria no volatil que es donde se guarda la configuración del chip FPGA y es la encargada de pasar la programación a la FPGA, generalmente no vas a encontrar productos finales en un chip de estos a menos que sean pocas unidades si se desea hacer un producto comercial se pasa a etapas de diseño posteriores al prototipado como son las de general celdas estandar y crear mascaras para la fabricación de un chip de uso especifico (tu diseño) lo cual sale muy caro a menos que fabriques miles de estos.
Si lo que quieres es para usos academicos una tarjeta de desarrollo FPGA puede ser muy util ya que nos permite experimentar muchas configuraciones, prácticamente puede sintetizar cualquier cosa que imagines como procesadores de 32 bits , buses de datos como el wishbone , modulos VGA y mucho mas
te recomiendo este libro "FPGA Prototyping by VHDL Examples - Xilinx Spartan-3" lo puedes encontrar en google y existe una versión en lenguaje verilog, también te recomiendo la tarjeta de desarrollo Spartan-3

saludos

En este momento no tengo el dato... pero lo voy a conseguir para abrir una pagina dedicada a eso en la wiki del foro...

Me parece perfecto
 
Última edición:
en la universidad me toco programar varias cosas conel FPGA fue una SPARTAN 3 el cual es una tarjeta entrenadora de fpga el asunto es como ya mencionaron todos en el fpga es para diseño de prototipos en los cuales requieres de una alta velocidad y los micros ya no te responden a esa velocidad y para todos nosotros que simplemente hacemos pequeñas o medianas aplicaciones es mejor el micro ya que viene con todos sus perifericos internos y recursos necesarios ya solo elegimos el micro necesario en cambio el fpga es muy potente pero no trae nada de perifericos y recursos nosotros los tenemos que crear como decirte es como una pc el procesador es el fpga pero hay que anexarle la ram el disco duro y basarlo todo en una tarjeta madre y en cambio el pic ya solo lo programas y vas jalando tus recursos como los convertidores A/D el modulo USB y de mas ya todo esta integrado dentro de uno solo y la fpga no y si como varios aqui comentan el fpga es mmuy pero muy potente para nuestras pequeñas y medianas aplicaciones;

Ademas el pic sus procesos los hace serialmente es por eso que se ve afectado con en cuanto a velocidad y primero hace algo como para ocuparse despues en otra cosa

y el FPGA es casi como los TTls todo lo hace en forma concurrente y es por eso que en procesos complejos se utiliza un fpga ya que al hacer sus procesos en forma concurrente gana bastante tiempo en cuanto a la parte de procesamiento de datos y señales.

En conclusion si tu aplicacion te la resuelve un micro para que te complicas las cosas con algo mas grande que es un FPGA
 
Hola, de lo poco que se podría decirte que una gran diferencia entre FPGA´s y Microcontroladores es que, los FPGA´s son un hardware y programa el hardware en si, es por ello que se dice que son mas difíciles de utilizar, puesto que se programan en Verilog y tienes que hacer trabajo con compuertas etc.

Los microcontroladores si trabajan directamente con un software de programación, son mas fáciles puesto que puedes usar lenguajes de alto nivel como C y Visual Basic aunque también puedes programarlos en Assembler para poder tener un mayor entendimiento de como trabajan estos, los microcontroladores se especializan en realizar tareas especificas y ademas en el envió de datos, utilizan bajas frecuencias y también sus propios osciladores o cristales.

Depende de la aplicación que deseas, ambos componentes resultan muy útiles.
 
Tengo entendido que los FPGA son para uso excluvido de algo, en alguna función enconcreto, son carísimos. No es rentable para lo que nosotros vamos hacer.

Los PIC o AVR son más bien para propósito general.

Un saludo.
 
Me parece muy interesante el tema de las FPGA, yo soy estudiante de ingeniería electrónica y en mi facultad hay un módulo con una FPGA Spartan de Xilinx. Está disponible para nuestro uso pero lamentablemente ningún profesor nos enseñó a utilizarla todavía. Voy a ponerme por mi cuenta a sacarle un poco de jugo. Veo que no es tan fácil aprender a utilizarlas pero espero que sea productivo y me dé alguna utilidad más allá de los microcontroladores.
Saludos
 
Me parece muy interesante el tema de las FPGA, yo soy estudiante de ingeniería electrónica y en mi facultad hay un módulo con una FPGA Spartan de Xilinx. Está disponible para nuestro uso pero lamentablemente ningún profesor nos enseñó a utilizarla todavía. Voy a ponerme por mi cuenta a sacarle un poco de jugo. Veo que no es tan fácil aprender a utilizarlas pero espero que sea productivo y me dé alguna utilidad más allá de los microcontroladores.
Saludos

El problema es ese, la utilidad de una fpga no puede ser comparada con la utilidad de un microcontrolador, una fpga es util para la tarea en que uns microcontrolador no lo es.

El fpga se necesita en procesos que son muy rapidos o en extremo especializados,
 
Atrás
Arriba