S01.s1 - Introduccion Diseño FPGA
S01.s1 - Introduccion Diseño FPGA
Digitales y FPGA’s.
Datos/Observaciones
FPGA
Datos/Observaciones
Definición
FPGA (Field Programmable Gate Array) fueron introducidas por Xilinx en
1985. También se denominan LCA (Logic Cell Array). Circuitos Integrados
que contienen bloques configurables de lógica junto con conexiones
configurables entre esos bloques.
Datos/Observaciones
Datos/Observaciones
Estructura General
Datos/Observaciones
Los elementos básicos constituyentes de una FPGA son los siguientes:
1. Bloques lógicos: Su estructura y contenido se denomina arquitectura.
Hay muchos tipos de arquitecturas, que varían principalmente en
complejidad. Suelen incluir biestables para facilitar la implementación de
circuitos secuenciales. Otros módulos de importancia son los bloques de
Entrada/Salida,
2. Recursos de interconexión: cuya estructura y contenido se denomina
arquitectura de rutado.
Datos/Observaciones
3. Memoria RAM: Se carga durante el RESET para configurar bloques y
conectarlos.
Datos/Observaciones
Principales características de
los FPGA
Los FPGAs son dispositivos orientados a satisfacer una muy amplia gama
de aplicaciones. Por ello las principales características son las siguientes:
Gran cantidad de terminales de E/S. Desde 100 hasta unos 1400
terminales de E/S
Buffers de E/S programables: control de sesgo, control de corriente,
configuración del estándar de E/S , pull-up y pull-down configurables
Datos/Observaciones
Gran cantidad de Flips-Flops, los dispositivos mas grandes tienen unos
40.000 FFs
Gran cantidad de Tablas de Búsqueda (Look-Up Tables), ~100.000
Bloques de Memoria (BRAM) de doble puerto, puerto simple, de hasta
18Mbits, configurables como RAM, ROM, FIFO y otras configuraciones
Bloques dedicados de Multiplicación
Transceptores para transmisión serie de muy alta velocidad , entre 1.5 a-
10.0Gb/s
Datos/Observaciones
Procesador en hardware embebido, tal como el Power-PC, ARM9
Procesadores descriptos en software, HDL, tales como el 8051, ARM3
Controladores de reloj tipo Delay Lock Loop (DLL) y Phase Lock Loop
(PLLs) de hasta 550MHz.
De 2 a 8 controladores por dispositivo
Control de impedancia programable por cada terminal de E/S
Datos/Observaciones
Familias FPGA
Datos/Observaciones
Datos/Observaciones
EVOLUCIÓN DE CIRCUITOS
LÓGICOS PROGRAMABLES
Datos/Observaciones
PAL (PROGRAMMABLE ARRAY
LOGIC)
Datos/Observaciones
Utiliza la filosofía AND-OR con AND
programable se impuso sobre la del
esquema de AND-OR con OR
programable dado que estadísticamente
se comprobó que podía generar todos los
mintérminos necesarios, subutilizando
toda la capacidad de ese tipo de circuito.
Datos/Observaciones
EPLD (Erasable Programmable
Logic Device)
Esta filosofía se basa en el empleo de bloques (denominados
MACROCELDAS) que generan funciones de lógica combinatoria empleando la
tecnología PAL (AND-OR con AND programable) pero con cambios
sustanciales.
Cada macrocelda tiene capacidad para generar una función lógica de 4 ó 5
Datos/Observaciones
CELDA DE CONFIGURACION
FPGA
Datos/Observaciones
Celda básica FPGA
Datos/Observaciones
Celda SRAM
Datos/Observaciones
Esta reprogramación en PCB se
denomina Programable En Circuito (In-
Circuit Programmable, ISP). Esta
tecnología SRAM es muy útil también
para llevar a cabo una actualización
rápida del sistema digital dentro del
FPGA.
Datos/Observaciones
Celda Anti-Fuse
Datos/Observaciones
Datos/Observaciones
Celda Flash
Son costosas.
Datos/Observaciones
Celda Flash y SRAM
Las celdas Flash se utilizan para guardar los datos de configuración del
FPGA.
Las celdas SRAM para la configuración de la lógica del FPGA
Datos/Observaciones
BLOQUE LOGICO
CONFIGURABLE
Datos/Observaciones
Definición
Conocidos comúnmente como Bloque Lógico Configurable, (Configurable Logic
Block, CLB), estos bloques son la parte lógica mayoritaria dentro de un FPGA.
Está constituido por 4 rebanadas (Slices), SLICEM S0, SLICEM S1, SLICEL S2 y
SLICEL S3, rutas de conexión para el acarreo matemático, Cin y Cout (carry in,
carry out), conexiones a la matriz de conexiones (Switch Matrix) que proveen
acceso a las rutas de conexiones generales y conexiones locales entre las
rebanadas del mismo CLB y CLBs vecinos.
Datos/Observaciones
Datos/Observaciones
Rebanadas (SLICE) de un CLB
Datos/Observaciones
La Figura muestra una vista simplificada de un
SLICEL, en la que se destaca lo siguiente:
Dos tablas de búsquedas (Look-Up Tables)
Dos flip-flops
Cuatro salidas, dos combinacionales y dos con
registros
Tiene entradas de control para los flip-flops
Entradas para las LUTs Entrada y salida para
Datos/Observaciones
Tablas de Búsqueda - Look-up
Tables (LUTs)
Datos/Observaciones
La Figura detalla la similitud entre una tabla de
verdad y una LUT. La columna de valores Z, valores
de la función combinacional, son los valores que
realmente se almacenan en la LUT de 16x1.
Datos/Observaciones
Elementos de Almacenamiento.
Flip-Flops
Cada SLICE posee dos elementos de almacenamiento
programables que pueden funcionar como flip-flop D, o cerrojo
(latch) transparente.
Datos/Observaciones
Lógica de Acarreo (Carry)
El CLB tiene lógica dedicada exclusivamente para el acarreo de
la suma aritmética con el objeto de mejorar el rendimiento de
sumadores, contadores, comparadores y funciones lógicas
relacionadas.
Existe un bloque E/S por cada terminal del FPGA. Cada terminal puede ser
configurado como entrada, como salida o bidireccional.
Datos/Observaciones
En cada bloque E/S existe un buffer que tiene diversas funciones configurables
por el diseñador que permiten adaptar el FPGA en un sistema complejo
trabajando con diferentes tensiones y corrientes, en un circuito impreso con
muchos problemas de integridad de señal.
Datos/Observaciones
Se puede observar que hay tres caminos posibles para una señal:
1. Camino de entrada: que conecta el IO Pad (terminal del circuito
Datos/Observaciones
2. Camino de salida: Comunica la lógica interna con el IO Pad del FPGA. Entra al
IOB por medio de O1 u O2, pasa a través de un multiplexor y del buffer de
salida llegando al IO Pad.
Datos/Observaciones
3. Camino de alta impedancia: Comunica la señal de control de alta
impedancia con el buffer de salida.
Esta ruta también dispone de un par de flip-flops para interfaces tipo DDR o
para registrar en este bloque la señal de control de alta impedancia. Se
observa también una realimentación de la señal que controla la alta
impedancia del buffer de salida.
Datos/Observaciones
CIERRE
Conclusiones
• Los FPGA (Field Programmable Gate Array) o LCA (Logic Cell Array), son Circuitos
Integrados que contienen bloques configurables de lógica con conexiones configurables entre
esos bloques.
• Los elementos básicos constituyentes de una FPGA son los siguientes: Bloques lógicos,
Recursos de interconexión, Memoria RAM.
• Existen en la actualidad cuatro tipos de celdas de configuración de un FPGA: Celda SRAM,
Celda anti-fuse (anti-fusible), Celda Flash, Celdas Flash y SRAM