¿Qué es una FPGA?

Las FPGAs son uno de los últimos escalones en la evolución del hardware reconfigurable. Diseñar y probar componentes hardware era un proceso muy lento y muy costoso. No había muchas formas de probar que tu diseño funcionara hasta que no lo imprimías en una placa, y el proceso de impresión es lento y caro, sobre todo para ir probando cambios en el diseño. 

Las FPGAs llegaron para cambiar esto. En esencia son muchos componentes hardware interconectados entre sí (desde puertas lógicas hasta elementos un poco más complejos), pero de manera que las interconexiones son configurables y las eliges tú. Esto te permite escoger los componentes que tú quieras y conectarlos a tu gusto, sin necesidad de imprimir en hardware. Simplemente haces el diseño en un lenguaje concreto (llamado lenguaje de descripción hardware, HDL por sus siglas en inglés), y una herramienta proporcionada por el fabricante de la FPGA convertirá ese lenguaje en conexiones abiertas o cerradas en los miles de componentes internos de la FPGA. El resultado es que dentro de la FPGA se encontrará tu circuito hardware tal cual, y producirá la misma función que produciría si lo hubieras impreso en una placa.  

Esto facilitó en muchos aspectos el proceso de diseño y construcción, porque permitía probar de manera rápida y barata cada cambio en el diseño. Originalmente, las FPGAs se utilizaban para prototipado y diseño, no como producto final (no se utiliza la FPGA en producción), pero a día de hoy sí existen soluciones que incorporan FPGAs en el producto final (FPGAs por ejemplo que emulan el comportamiento de cierto procesador). En la imagen vemos una placa de desarrollo para una FPGA de Digilent. La FPGA propiamente dicha es el pequeño cuadradito negro arriba de las letras que leen “Basys-3” (Basys-3 es el nombre de la placa). El resto de componentes de la placa sirven para poder probar diferentes funcionalidades y añadirle entrada/salida, entre otras cosas.


Figura 1. FPGA


Referencia
Sistema embebido y sus características | Conceptos fundamentales. (s. f.). Tribalyte Technologies. https://tech.tribalyte.eu/blog-sistema-embebido-caracteristicas


Comentarios

Entradas populares de este blog

ARREGLO LOGICO GENERICO (GAL)

Función "rising_edge" para VHDL

Señal del reloj en VHDL