Tarea 5 Fpga
Tarea 5 Fpga
Tarea 5 Fpga
FPGA
Programación en VHDL.
-------------------------------------------------
Los FPGA son dispositivos que aunque no son nuevos no son tan populares, si no
los has usado seguramente ya habrás escuchado de ellos, este artículo no
tiene como intención hacer un análisis técnico profundo ni enseñar a
programarlos, sólo mostrar el panorama para aquellos que no los conocen.
FPGA son las siglas de Field Programmable Gate Array, los FPGAs son
dispositivos digitales que son capaces de configurarse para prácticamente
cualquier aplicación, son muy rápidos, son capaces de trabajar muchos procesos
en paralelo.
Entonces viene la pregunta, ¿por qué no muchos los utilizan? ¿son una tecnología
sin futuro? Habrá opiniones diferentes pero por lo menos Intel cree que tienen
mucho futuro, acaba de invertir $16,700 millones de dólares en la compra de
Altera, una de las empresas más grandes de FPGAs. Analizemos algunos de sus
aspectos.
ARQUITECTURA PROGRAMABLE
Sin entrar en detalles internamente los FPGAs tienen un conjunto muy grande de
componentes digitales elementales combinacionales y secuenciales, compuertas
AND, OR, NOT, FLIP-FLOPs entre otros.
Hay que decirlo, es un lenguaje difícil, mientras que enviar el mensaje “¡Hola
Mundo!” desde Arduino implica escribir unas pocas líneas, quizá unas 10, casi
cualquiera puede hacerlo, enviar ese mensaje en VHDL puede implicar unas 300 o
400 líneas de código para alguien que ya tiene experiencia. Claro que hay
sistemas que definitivamente no se pueden hacer en los microcontroladores y para
los FPGA no hay problema.
También existe la posibilidad de implementar un procesador y a este
procesador programarlo en C utilizando las herramientas oficiales, o algunas
alternativas. O también hay FPGAs que llevan in procesador dentro.
PRECIO
Las tarjetas de desarrollo suelen ser relativamente caras, un poco por el precio del
FPGA mismo pero también por los componentes externos necesarios para su
funcionamiento, memoria Flash, fuente de voltaje, que usualmente es fuente
conmutada porque consumen bastante corriente para su funcionamiento, varias
decenas capacitores necesarios por la gran cantidad de transistores que funcionan
a altas frecuencias, programador y muchos otros aditamentos que suelen poner
los fabricantes de tarjetas para agregar funcionalidad.
¿QUIENES UTILIZAN LOS FPGA?
Las industrias dedicadas al desarrollo de circuitos integrados digitales, centros de
investigación, en general instituciones dedicadas a crear circuitos digitales que no
pueden conseguir en ningún otro lado, sistemas con características especiales.
Si eres estudiante de alguna carrera que está relacionada con sistemas digitales,
arquitectura de procesadores, microcontroladores también es recomendable
utilizarlos, utilizar FPGAs para practicar la teoría mejora mucho el entendimiento
de los sistemas digitales.
Todo ingeniero que se tome en serio los sistemas digitales debería también saber
a programar FPGAs incluso si no es la plataforma de su preferencia, implementar
sistemas en FPGAs ayuda mucho a entender mucho a los microprocesadores o
microcontroladores, características como el DMA (Direct Memory Access),
prioridad de interrupciones y la diferencia entre un SoftwareSerial y un Serial de
Arduino.
FUTURO DE LOS FPGAS
La compra de Altera de parte de Intel quizá sea indicio de que lo mejor está
por venir, ya hablamos de que algunos FPGAs llevan procesadores dentro, otra
propuesta interesante es que los procesadores lleven dentro un FPGA.
Imaginemos que en el futuro nuestra computadora podrá elegir entre agregar
algunos núcleos de procesador extra, o mayor memoria RAM o agregar otra
tarjeta gráfica, todo esto sin tener que agregar nada físicamente, nuestra
computadora configuraría su hardware de acuerdo a las necesidades.
En el área de los microcontroladores también hay propuestas interesantes que
agregan una parte de arquitectura configurable, manteniendo el bajo costo, el bajo
consumo y la facilidad de programación, esto agrega el gran beneficio de poder
agregar PWMs o UART o Timers extra, de acuerdo a la necesidad de la
aplicación.