FPGA
Los Field Programmable GAte Arry son circuitos logicos programables directamente por el usuario, lo cual requiere de herramientas de costo relativamente bajo, como lo son el software de desarrollo y el dispositivo grabador. La grabacion o programacion de uno de estos dispositivos se puede llevar a cabo en milisegundos.
Tambien los FPGAs se utilizan como prototipos, los cueles se pueden depurar y permitir refinar el diseño. Con el software de diseño se puede simular en hardware antes de mandar a fabrica el ASIC correspondiente.
en la mayoria de los FPGA la configuracion es volatil y debe ser recargada cuando es aplicada energia o cuando se requiere una funcionalidad diferente. La configuracion generalmente es almacenada en memorias PROM o EEPROM
ARQUITECTURA
Para poder hablar de las caracteristicas y las ventajas de un FPGA frente a otros dispositivos es necesario describir la arquitectura interna de un FPGA
Basicamente, una FPGS consiste en:
Una matriz de bloques de logica configurables (CLB): bloques logicos cuyos parametros se pueden modificar de forma que presente diferentes funcionalidades cada CLB consiste, de forma generica, en varias tablas de LUTs (look-up tables, o tablas de consulta) cuyas salidas estan multiplexadas y unos parametros de configuracion de dicho CLB. El diseño de un CLB varia de un fabricante a otro. En la figura puede verse un CLB de una XC4000 de Xilinx:
- Una matriz de rutado encargada de conectar los CLBs entre ellos, y a su vez estos con las celdas de entrada y salida
- Celdas de entrada y salida (IOB): Su mision es comunicar la logica interna de la FPGA con el exterior
No solo los bloques de lógica son configurables, sino que tanto la matriz de rutado como las celdas de entrada y salida son programables, otorgándole a las FPGAs de una gran flexibilidad a la hora de ajustarse a las especificación de cada diseño
MEMORIAS
- SRAM (StaticRAM): Estas guardan la configuracion del circuito. Esto quiere decir que las StaticRAM son utilizadas como generadoras de funciones y ademas son usadas para controlar multiplexores ( que están incluidos en los FPGAs ) y la interconexion entre bloques. En estas el contenido se almacena mediante un proceso de configuracion en el momento de encendido del circuito que contiene el FPGA.
- FLASH:Son programables, aunque la velocidad de programación es bastante mas lenta que en el caso de una SRAM; y son no volátiles, por lo que no necesitan un dispositivo auxiliar para guardar la configuracion interna, como en el caso de una SRAM.
- PROM: Son circuitos fabricados con tecnología bipolar CMOS y sola mente se puede programar una única vez
- EPROM: Son circuitos realizados con transistores de puerta flotante, con estos se permite borrar y re programar las conexiones del circuito las veces que sean necesarios.
PROGRAMACIÓN: Los FPGA tiene celdas que se configuran con una función especifica ya sea como memoria (FLIP-FLOP tipo D) , como miltiplexor o con una función lógica tipo AND, OR, XOR. La labor del "Programador" es describir el hardware que tendrá la FPGA. Por consiguiente, la tarea del "Programador" es definir la función lógica que realizara cada uno de los CLB, seleccionar el modo de trabajo de cada IOB e interconectarlos.
El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el diseño de sistemas a implementarse en una FPGA. Un diseño puede ser capturado ya sea como esquemático, o haciendo uso de un lenguaje de programación especial. Estos lenguajes de programación especiales son conocidos como HDL o Hardware descripción language . Los HDLs mas utilizados son:
- VHDL
- Verilog
- ABEL
En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje rápido, y para validar un diseño en HDL, existen varias propuestas y niveles de abstracción del diseño. Los de abstracción superior son los funcionales y los niveles de abstracción inferior son los de diseño al nivel de componentes de hardware básicos. Entre otras, National Instruments LabVIEW FPGA propone un acercamiento de programacion gráfica de alto nivel.
APLICACIONES
Cualquier de aplicación especifica puede ser implementado en un FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones mas comúnmente se utilizan los FPGA incluyen a los DSP ( Procesamiento digital de señales), radio definido por software, sistemas aeroespaciales y de defensa prototipos de ASICs, sistemas de imágenes para medicina, sistemas de visión para computadoras, reconocimiento de voz, bio-informática, emulación de hardware de computadora, entre otras. Cabe notar que su uso entre otras áreas es cada vez mayor, sobre todo en aquellas aplicaciones que requieran un alto grado de paralelismo
Vídeo Ilustrativo
Enlaces de Interes
No hay comentarios:
Publicar un comentario