Definición
![](http://blog.pucp.edu.pe/blog/wp-content/uploads/sites/1055/2008/11/im1.jpg)
El término FPGA (Field Programmable Gate Array) hace referencia a dispositivos lógicos programables de propósito general. Como su nombre lo dice se basa en un arreglo de bloques compuertas y su funcionamiento se basa en la posibilidad de configurar la interconexión entre dichos bloques, para de esta manera poder describir el comportamiento de prácticamente cualquier circuito digital.
Usos
![](http://blog.pucp.edu.pe/blog/wp-content/uploads/sites/1055/2008/11/im2.jpg)
Hoy en día, luego de realizar la ardua labor de diseñar un circuito digital y comprobar que todo funciona correctamente en las simulaciones, viene el siguiente y no menos arduo paso, comprobar que todo funciona correctamente en un circuito físico. En este punto hay varios caminos, mandar a fabricar el circuito integrado, lo cual es una buena idea, o implementar tu diseño en un FPGA, lo cual es sumamente más barato y versátil. Bastará con unas decenas de clics y tendrás tu circuito listo para probarlo.
![](http://blog.pucp.edu.pe/blog/wp-content/uploads/sites/1055/2008/11/im3.jpg)
Las aplicaciones de un FPGA son muy diversas, si diseñas un circuito que va a ser producido a gran escala puedes usar estos módulos para tus etapas de prueba y depuración de errores en hardware, y si tu pasión es diseñar y lo haces por diversión o solo requieres implementar una pequeña cantidad puedes usar FPGA’s. Los hay de muchas velocidades y cantidades de componentes según lo que se ajuste a tus necesidades, lo cual permite hacer desde diseños sencillos, hasta circuitos mucho más complejos.
Ventajas
![](http://blog.pucp.edu.pe/blog/wp-content/uploads/sites/1055/2008/11/im4.jpg)
Entre las ventajas de estos dispositivos tenemos la posibilidad de poder usarlos una y otra vez para implementar nuestros diseños, la versatilidad de poder implementar prácticamente cualquier circuito en ellos. A pesar de ser un dispositivo programable dispone de una gran cantidad de compuertas (más de 330K de celdas lógicas en la Virtex-5 y más de 680K, en el caso de la Stratix IV) y puede trabajar a grandes velocidades
![](http://blog.pucp.edu.pe/blog/wp-content/uploads/sites/1055/2008/11/im5.jpg)
(hasta 550Mhz de clock en la Virtex-5 y hasta 600Mhz en el caso de la Stratix IV, por citar dos de los FPGA’s más potentes en el mercado). Es por esto que para aplicaciones de testeo de circuitos o producción de muy bajas cantidades los FPGA’s son la mejor solución.
Imagenes tomadas de:
http://www.ufps.edu.co/materias/uelectro/htdocs/pdf/fpga.pdf
http://www.altera.com/products/devices/stratix-fpgas/stratix-iv/stxiv-index.jsp
http://www.xilinx.com/products/virtex5/
http://www.dataweek.co.za/news.aspx?pklNewsId=23549&pklCategoryID=35
http://electronicdesign.com/Articles/ArticleID/17202/17202.html
http://www.fpga4fun.com/TextLCDmodule.html
Me parece buena la introducción al tema de los FPGAs. Solo para mencionar, algunos lectores se preguntarán y que pasó con los microcontroladores? Bueno la respuesta es que no les ha pasado nada aún se siguen utilizando. Tanto los microcontroladores como los FPGAs implementan lógica digital, la diferencia esta en su capacidad de procesamiento. Los microcontroladores no estan diseñados para procesar grandes cantidades de datos, sino mas bien para supervisar y controlar un sistema. Los FPGAs tienen la capacidad potencial de tener un alto desempeño, y digo potencial porque dependerá de lo que el usuario implemente en el FPGA. Un FPGA podria tener capacidades iguales o mayores que las de un computador convencional y el beneficio esta en la integración en un unico chip.