Você está na página 1de 11

TEMA 6: FUNDAMENTOS FPGA

MATRIZ DE CAMPO DE PUERTAS PROGRAMABLES


Una matriz de puertas programables es un circuito integrado digital genrico que
contiene bloques lgicos configurables con interconexin configurable con estos
bloques. Estos bloques y estas interconexiones pueden ser programados por un
diseador para personalizar la funcionalidad de una aplicacin digital particular.
Una CPU proporciona la funcionalidad como una secuencia de instrucciones
almacenadas en la memoria y ejecuta mediante una unidad de control cual es la
arquitectura fija predefinida. La lgica programable proporciona funcionalidad como un
circuito.
Campo-programable se refiere al hecho de que su programacin tiene lugar en un
campo, en contraposicin a los dispositivos en los cuales la funcionalidad interna esta
cableada por los fabricantes.
FPGA fueron inventadas por Xilinx en 1985.
POR QU FPGAs? Plataforma ideal para diseos personalizados con alto
funcionalidad.
Funcionalidad: Paralelismo inherente al hardware permite ejecutar mltiples
instrucciones por ciclo de reloj. Alta velocidad de procesamiento.
Programable: FPGA son completamente programables por el usuario final, incluso con
una reconfiguracin parcial y dinmica.
Entradas/Salidas: Versatilidad de E/S, tanto en nmero de pines de E/S como en
estndares soportados.

Tiempo en el mercado: La tecnologa FPGA ofrece la flexibilidad y capacidad de


prototipos rpidos.
Confiabilidad: FPGAs son unos productos estndar disponibles en el mercado, no
hechos a medida.
FPGAs son una solucin intermedia entre funcionamiento y flexibilidad.
Ventajas competitivas sobre Procesadores de propsito general:
Alto funcionamiento. El diseo debe funcionar a una velocidad requerida.
Paralelismo de procesamiento de tareas puede ser explotado a diferentes
niveles para conocer los requisitos.
Bajo consumo de potencia.
Ventajas competitivas sobre ASICs y ASSPs:
Menor tiempo de diseo. Ms rpido de poner en el mercado.
Alta flexibilidad de diseo. Cambiar el diseo de implementacin es mucho ms
rpido.
Ms barato. FPGAs son un producto estndar. La fabricacin cuesta mucho
menos que los ASIC. Adems, son ms baratas las herramientas de FPGA que
las herramientas de VLSI.
Mantenimiento ms largo. Los chips FPGA son de campo-actualizables y no
requiere tiempo ni gastos involucrados con el rediseo de ASIC.

APLICACIONES
Aeroespacial y defensa: aviones, espacio, MILCOM.
Industriales, cientficas y mdicas: Sistemas ultrasonidos, controladores de
motor.
Automocin: asistencia al conductor, docudramas.
Test y medidas: instrumentos de comunicacin, semiconductor ATE.
Comunicaciones cableadas: equipamiento de centros de datos, redes pticas
de reas metropolitanas.
Audio, video, difusin: cmaras 3D, transporte de video.
Consumibles: displays digitales, impresoras multifuncin.
Comunicaciones inalmbricas: estaciones bases 3G/4G, redes principales o
Backhaul.

ARQUITECTURA
La estructura bsica FPGA es una matriz de bloques lgicos, pin E/S y enrutamiento de
canales.
Bloques lgicos configurables: normalmente basados en LUTs, usadas para
implementar la lgica de una aplicacin. Los bloques lgicos estn distribuidos
con una estructura en forma de tabla.
Interconexiones programables: los bloques lgicos habilitados estn
interconectados en configuraciones arbitrarias y tambin para implementar
cualquier funcionalidad deseada.
Bloques de E/S: la interfaz entre el ncleo con la FPGA y dispositivos externos.
Virtualmente, cualquier seal puede ser ruteada a cualquier pin de E/S del
dispositivo.

CONCEPTO LUT BASADO EN FPGA


Una LUT (Look-Up Table) es una memoria SRAM (RAM esttica) con 2n ubicaciones de
1-bit y n entradas. El grupo de n seales de entrada es usado como un puntero de la
LUT. El contenido de esta
tabla estn dispuestos de tal
manera que la ubicacin
seleccionada para cada
combinacin de entrada
contiene el valor del
resultado de cualquier
funcin deseada con estos n
datos de entrada.
Esto es: la LUT almacena las
tablas de verdad de las

funciones y adems una entrada n en la LUT que puede implementar cualquier funcin
aleatoria de las n entradas.
Las LUTs no tiene una seal de reloj pero operan como cualquier otra puerta lgica:
como sus entradas cambian, sus salidas cambian despus de un pequeo retardo. El
retardo de la LUT es independiente de los bits almacenados en las celdas de la SRAM.
Actualmente, los dispositivos FPGA tienen disponibles las LUTs 4 o 6 entradas. Para
llevar a cabo funciones ms complejas se pueden implementar en cascada mltiples
niveles de LUTs conectando la salida a la entrada de la siguiente capa.
ARQUITECTURA (MS DETALLADO QUE EN APARTADO ANTERIOR)
Bloques lgicos configurables (CLBs) implementan la lgica combinacional y secuencial
de una aplicacin.
Un CLB consiste en:
Generadores de funciones (LUTs): el retardo de la propagacin a travs de la LUT
es independiente de la funcin implementada.
Elementos de almacenamiento: Ellos pueden ser configurados como flips-flops
disparados por flanco ascendente o latch sensibles al nivel, y pueden estar
directamente guiados por salidas de una LUT o por una entrada de un CLB.
Seales de control:
- Reloj de entrada: Cada flip-flop puede ser disparados por reloj ascendente o
descendente. El pin del reloj es compartido por todo los elementos de
almacenamiento. Sin embargo, el reloj es individualmente invertible para
cada almacenamiento de entrada.
- Reloj enable: Si lo dejamos desconectado, la seal de habilitacin para cada
elemento de almacenamiento, por defecto, se encuentra en estado activo.
- Seal de set/reset: En un elemento de almacenamiento asncrono SR puede
ser configurado como set o reset. Esta configuracin determina el estado en
el cual cada elemento de almacenamiento se convierte operacional despus
de la configuracin, el efecto de un set/reset global y el efecto de un puso en
un pin SR de un CLB. Esta entrada tambin puede ser independientemente
deshabilitada para cualquier elemento de almacenamiento y el estado de
set/reset puede ser independientemente especificado por cada uno.

E/S programables: Hoy en da, los


paquetes de FPGA pueden tener ms de
mil pines, los cuales son organizados en
una matriz a travs de la base del
paquete. Cada pin est conectado a un
componente de E/S el cual permite la
comunicacin de seales internas con
mdulos fueras del chip. En la
estructura bsica de FPGA, estos
bloques de E/S estn localizados
alrededor de la periferia de la matriz de
bloques lgicos.
Las E/S de la FPGA son programables como entradas, salidas o bidireccionales, y pueden
ser configuradas para aceptar y generar seales cumpliendo un gran nmero de
estndares de E/S (diferentes rangos de voltajes, corrientes y velocidades)
Recursos adicionales bsicos
Red de reloj y gestores de bloque
Todos los elementos internos asncronos en una
FPGA necesitan ser guiados por una seal de reloj.
La seal de reloj es externa a la FPGA y entra en
un pin especial para el reloj. Un gestor de reloj es
un bloque especial cableado dentro de la FPGA
que genera seales de reloj personalizadas y
optimizadas derivadas de la externa.
Los principales requisitos de las seales de reloj
son:
- Alta frecuencia.
- Baja distorsin (Skew): Una distorsin se
define como la diferencia de llegada de una seal de reloj en elementos
lgicos sncronos. Los circuitos necesitan recibir la seal de reloj al mismo
tiempo para asegurar el correcto funcionamiento.
- Bajo retardo. En un entorno ideal cada flanco de reloj desde la salida debe
llegar al mismo tiempo despus de su predecesor. En el mundo real, sin
embargo, los flancos podran llegar un poco ms tarde. Esto es conocido
como retardo (jitter).
Una red de distribucin de reloj, llamado rbol de reloj, proporciona seales para
todos los elementos sncronos de la FPGA.

Recursos de propsito especfico


RAM embebida
Muchas aplicaciones requieren el
uso de memoria. Para evitar,
cuando es posible, accesos
externos de la memoria, la FPGA
incluye una RAM incorporada.
Cada bloque de la RAM puede ser
usado independientemente, o
mltiples bloques pueden ser
combinados
juntos
para
implementar enormes bloques. La
RAM integrada es usada para un
almacenamiento eficiente de
datos o almacenamiento en memoria intermedia (Buffering), almacenamientos
intermedios FIFO, enormes LUTs o ROMs.
Estas RAMs integrada son de dos puertos: tiene dos puertos completamente
independientes que comparten nada ms que los datos. Cada puerto tiene sus
propi conjunto de direcciones y controles. Es posible acceder (leer y escribir) de
dos diferentes localizaciones de memoria simultneamente. En Virtex 7 (FPGA
2010), un mdulo de un bloque de una RAM almacena hasta 36kbits de datos y
pueden
ser
personalizadas
con
diferentes
aspectos
relacin
profundidad/anchura.
DSP slices
Algunas funciones, como la
multiplicacin, requieren un gran
nmero de bloques lgicos
programables conectados todos
juntos. Muchas aplicaciones usan
estas funciones, especialmente en
aplicaciones de procesamiento de
seal digital, FPGAs incluyen DSP
slices dedicados para mejorar la
velocidad y la eficiencia.

En Virtex7 FPGAs, el
independientemente:
- Multiplicacin.
- Multiplicacin y suma.
- Multiplicacin
y
acumulacin.
- Tres entradas para
sumar.
- Comparador
de
magnitudes.
- Funciones lgicas bit a
bit
- Contador.

DSP48

slice

soporta

muchas

funciones

Memoria distribuida
El hecho de que un entrada n de una LUT es una memoria SRAM con 2n celdas de 1-bit,
adems de su papel primario de generador de funciones, usando estas celdas para
implementar una pequea 2nx1
RAM. Varias LUTs pueden ser
combinadas de diferentes formas
para almacenar una gran cantidad
de datos, con un ao y una
profundidad. Ya que las LUTs estn
dispersas sobre la capa de la FPGA,
esta implementacin de la memoria
se llama RAM distribuida.

FLUJO DE DISEO BSICO

1) Descripcin del diseo.


2) Desarrollo del testbench.
3) Sntesis: es el proceso que traduce el lenguaje HDL en una lista sensible genrica
de componentes a nivel de puertas. La lista sensible define el circuito como la
construccin de bloques bsicos, como simples puertas lgicas, flips-flops y otros
niveles ms bajos, y sus interconexiones.

--------------------------------------SIMULACIN FUNCIONAL------------------------------------------Realizado despus de la sntesis, con el fin de comprobar la correccin de la


funcionalidad.

4) Implementacin
Mapeo: (LUT basado en la tecnologa de mapeo) traduce la funcionalidad de la
lista sensible en los recursos disponibles en la FPGA. Determina como muchos
recursos son requeridos en la configuracin de cada uno, cuantas LUTs y el
contenido de cada una, cuantos flip-flops, sus estados iniciales y sus seales de
control, cuantos gestores de relojes y sus parmetros de ajustes, cuantos
bloques de E/S y sus configuraciones, etc.
Lugar y ruta: determina la capa fsica dentro de la FPGA, asociando el mapeo de
los componentes con componentes particulares en la FPGA y determinando la
ruta requerida para interconectar todos ellos.
--------------------------------------SIMULACION DEL TIEMPO------------------------------------------La lista sensible fsica final, junto con la sincronizacin detallada datos, para llevar a cabo
simulacin.
5) Genera el archivo de programa, llamado bitstream, con una configuracin de
todos los recursos programables en la arquitectura de la FPGA.
6) Configuracin del dispositivo. El archivo bitstream es descargado en la FPGA.

ENTRADA DE DISEO
Diagrama: La funcionalidad se describe con un diagrama conectando todos los
componentes seleccionados desde una librera.

Lenguajes:
Lenguaje de descripcin de hardware (HDL): Lenguaje con expresiones, estados
y estructuras de control especialmente orientadas a describir el comportamiento de un
circuito electrnico, ms comnmente como circuitos lgicos digitales a nivel de
transferencia de registros (RTL).
En HDL el cdigo no representa un programa pero un circuito, una estructura de
hardware, con puertas lgicas, componentes digitales combinacionales y secuenciales y
cables. El cdigo no es ejecutado sino que es implementado. Funciona en paralelo,
es decir, que no funciona siguiendo una ejecucin de instrucciones, sino como la
implementacin de un circuito.
Nivel de sistema electrnico (ESL): es un lenguaje y herramienta de diseo para
modelar el comportamiento de un sistema entero usando un lenguaje de alto nivel. Un
especifico compilador genera la lista sensible desde el lenguaje de alto nivel, usando o
no el lenguaje HDL como un paso intermedio.
-

Lenguajes aumentados: El lenguaje basado para software con una


declaracin especial y soporte de funcionalidad inherente al hardware como
eventos de reloj, concurrencia, sincronizacin y recursos compartidos. Los
ms extendidos son: C y Matlab.
Herramientas integradas en entornos visuales de diseo de alto nivel.

ZINQ-7000 Sistema en chip programable


Zynq es un procesador centrado en la plataforma de sistema en chip que ofrece
software, hardware y E/S programables en un simple chip, integrando un ncleo ARM
en una FPGA.
Zynq aborda un sistema integrado de alta gama en aplicaciones del mercado que
requieren multifuncionalidad y capacidad de respuesta en tiempo real, como la
automatizacin de una fbrica, asistencia de conduccin en sistema de automocin,
videovigilancia, automatizacin industrial, defensa, aeroespacial, y siguientes
generaciones inalmbricas.
La arquitectura de Zinq difiere de los previos matrimonios de la lgica programable y
procesadores integrados cambiando de una plataforma de FPGA cntrica a un modelo
de procesador cntrico.
Para los desarrolladores de software, Zynq aparece como un estndar, basado
completamente en las caractersticas del procesador ARM sistema en chip (SoC),
arrancando inmediatamente en el encendido y siendo capaz de ejecutar una variedad
de sistemas de operacin independientemente de la lgica programable.

Você também pode gostar