1programación de FPGA S
1programación de FPGA S
1programación de FPGA S
generadores de funciones y además son usadas para controlar multiplexores, que están incluidos en las
configuración en el momento de encendido del circuito que contiene la FPGA, ya que al ser SRAM, el
contenido de la memoria se pierde cuando se deja de suministrar energía; la información binaria de las celdas
configuración o celdas de configuración. En el momento de encendido del circuito toda la información binaria
generalmente automático, dado que la propia FPGA contiene un circuito interno que se encarga de hacer toda
la programación.
● Flash: Las FPGAs basadas en celdas flash recogen las ventajas principales de las dos técnicas
anteriores situándose en un punto intermedio. Su tamaño es más reducido que el de una celda de
SRAM, aunque sin llegar al tamaño reducido de un antifusible; son reprogramables, no obstante la
velocidad de programación es más lenta que en el caso de una SRAM; y son no volátiles, por lo que no
necesitan dispositivos auxiliares para guardar la configuración interna, como en el caso de la SRAM.
Una FPGA que tiene una gran cantidad de canales de interconexión tiende a tener pequeños bloques lógicos con muchas
entradas y salidas en comparación con el número de compuertas que contiene el bloque. Este bloque lógico se caracteriza por
ser bastante sencillo, con poca lógica en su parte combinacional. Este es el caso del bloque lógico a base de multiplexores.
Este tipo de FPGA generalmente utiliza tecnología antifusible. Por otra parte, una FPGA que tiene una estructura pequeña en
canales de interconexión tiende a tener grandes bloques lógicos con pocas entradas y salidas, en comparación con el número de
compuertas que existe en el bloque. Este es el caso del bloque lógico basado en LUTs, que permiten implementar cualquier
función lógica del mismo número de entradas. Este tipo de FPGA generalmente está fabricado con tecnología SRAM.
Bloques entrada/salida (IOB)
Al igual que en los CPLDs, la función de un bloque de entrada/salida es permitir el paso de una
señal hacia dentro o hacia el exterior del dispositivo. Además debe contar con recursos tales como:
● Registros de salida.
● Registros de entrada.
tenemos como ejemplo un diagrama en
bloques simplificado de un bloque de
entrada/salida de la familia 4000 de las
FPGA de Xilinx.
Tiempos de propagación
El cálculo de los retardos incluidos en un diseño basado en FPGAs no es tan fácil de predecir como en el caso
de un CPLD. La propia estructura matricial de estos circuitos hace difícil saber cuántas celdas básicas,
interconexiones programables o bloques de entradas/salida se utilizan para cada señal. Esto hace necesario
conocer cómo se ha realizado la interconexión entre los bloques en el dispositivo para tener un conocimiento
exacto de los retardos de propagación debidos a cada uno.
Debido a este factor, las herramientas de desarrollo para FPGAs suelen incluir un analizador de tiempos, que
sirve para calcular tiempos de set-up, de clock-to-output, y sobre todo dar una estimación de la frecuencia
máxima de operación.
Programación
La tarea del programador es definir la función lógica que realizará 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 se puede llevar a cabo, ya sea como un diagrama esquemático, o haciendo uso de un lenguaje de programación
especial.
Las figuras muestran cómo se realiza la programación de una tarjeta FPGA marca Altera, en lenguaje VHDL.
VHDL
Es el acrónimo que representa la combinación de VHSIC (Very High Speed Integrated Circuit) y HDL. Es un lenguaje textual
de alto nivel, definido por el IEEE (ANSI/IEEE 1076-1993), utilizado para la descripción del hardware de los sistemas digitales.
Entre sus principales características se pueden mencionar:
● Lenguaje estándar.
● Soporte de las principales compañías proveedoras de herramientas CAD (Diseño Asistido por Computadora).
● Existen formas metódicas para el diseño de máquinas de estados, filtros digitales, bancos de pruebas etc.
● Flexibilidad de implementación en circuitos integrados, el código VHDL es portable entre herramientas, aunque
Diseño sencillo
Alto rendimiento
Fiabilidad
Ahorro en costo
Reprogramación
Seguridad
En consecuencia, los circuitos lógicos programables tienen un gran campo de
aplicación en la implementación de circuitos lógicos de todo tipo.
Entre la amplia gama de PLDs tenemos a las FPGAs, que son utilizadas para
diseños que manejan una mayor transferencia de datos y registros; además
permiten implementar dentro de ellas memorias del tipo RAM, ROM, FIFO, etc, a
través de sus bloques de memoria.
La elección de la familia de FPGA a utilizar dependerá de la cantidad de lógica
combinacional (compuertas), la cantidad de lógica secuencial (flip-flops) y por
supuesto la cantidad de memoria a implementar.