Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion FPGA PDF
Introduccion FPGA PDF
Sistemas con
FPGA
Patricia Borensztejn
Primer Cuatrimestre
2012
Objetivo del curso
Adquirir conocimientos elementales de la
arquitectura de las FPGA actuales
Aprender a utilizar las herramientas de
programacin y realizar dos proyectos
sencillos que anden (uno combinacional
y otro secuencial) y finalmente un
proyecto algo mas interesante a acordar
entre todos.
Temario y Planificacin
Introduccin las FPGA (1)
Modelado de Sistemas
Combinacionales. Verilog. Entorno de
desarrollo de xilinx. (5)
Modelado de Sistemas Secuenciales.
(5)
Co-Diseo software hardware con
Picoblaze (5)
Proyectos (11)
Bibliografa del curso (la que yo
uso)
FPGA Prototyping by Verilog Examples. Pong P. Chu.
Wiley InterScience. (Verilog e ISE)
FPGA-Based System Design. Wayne Wolf (tecnologa)
The Design Warriors Guide for FPGAs. Clive Maxfield
(arquitecturas)
Digital Arithmetic. Ercegovac, y Thomas Lang (algoritmos
aritmticos)
Synthesis of Arithmetic Circuits. Deschamps, Gioul, and
Sutter. (algoritmos y codificacin en VHDL para FPGA)
Writing Testbenches: Functional Verification of HDL
Models. Janick Bergeron. Kluwer Academic Publishers.
Hojas de Datos. (de FPGAs)
.. Y todo lo que ustedes encuentren en la web
Hardware y Software
La ctedra cuenta con los siguientes placas de
desarrollo:
Spartan-3E Starter Kit (3 unidades, Digilent) donada por XUP
(Xilinx University Program)
Spartan-3 Starter Board (Digilent) donada por XUP
Xilinx Spartan-3A EVALUATION KIT (Avnet) (propio)
Virtex-II Pro Development System (Xilinx University Program)
(Digilent)
Virtex4 FX12 Evaluation Board (Avnet) con Audio/Visual Card
(Avnet) (Propiedad del Grupo de Investigacin: Embebidos)
Virtex-5 OpenSPARC Evaluation Platform (University Program
OpenSparc)
NetFPGA con VirtexII Pro 50 FPGA. Donado por empresa
proveedora de Internet, interesada en el prototipo.
Hardware y Software
es muy codiciado.
2010: Intel introduce una FPGA en
el Atom Processor
Y que es el procesador Atom de
Intel?
Es el procesador que est ejecutando este cdigo en mi
porttil...
Es el procesador mas pequeo de Intel, fabricado con
tecnologa de 45 nm (nm=mil millonsima parte del
metro) y prximamente de 32nm.
Pensados para una amplia gama de dispositivos:
netbooks, PC bsicas, tablets, laptops, smartphones,
dispositivos electrnicos de consumo y otros dispositivos
complementarios.
Caractersticas del procesador:
Arquitectura de ahorro de consumo de energa,
optimizada para su uso en los productos embebidos
Y que es una FPGA?
Es lgica programable organizada de alguna
manera dentro de un chip.
Se usa para:
En los 80, cuando recin arrancaban, para
implementar lgica para unir (glue logic), lgica para
interfacear componentes mas grandes (porque sus
antepasados son los PLDs)
En los 90, telecomunicaciones y redes
2000 todo tipo de aplicaciones del mercado de los
embebidos
2010 para hacer llegar fibra ptica a cada hogar?
2020 todo tipo de aplicaciones, hoy no muy
imaginables alguna idea?
Recordemos que ...
Intel es lder en el mercado de procesadores
para la industria de las PC bsicas.
pero no en el mercado de los embebidos
(donde reina ARM, especialmente en el
mercado de los dispositivos mviles)
Hoy, el mercado de los productos embebidos
alcanza los 10 billones (miles de millones) de
unidades vendidas incluyendo
microcontroladores, procesadores, DSP, FPGA,
ASICs.
Porque reina ARM en el mercado
de los dispositivos mviles?
El secreto de su xito:
ARM no fabrica micros, solo los
disea y luego los licencia a
fabricantes de electrnica que
los integran en sus chips
La clave es que los microchips
que finalmente salen al
mercado son algo mas que
microprocesadores; por
ejemplo, un fabricante de
telfonos mviles fabricar
procesadores que adems del
ncleo ARM contendrn el
transmisor 3G y el controlador
de pantalla y teclado; de esta
forma reducimos el nmero de
chips necesarios para montar el
telfono, con la consiguiente
reduccin de coste, tamao y Procesador para router ADSL basado en ARM
consumo.
Idea de Intel para entrar en el
mercado de las cosas pequeas
Intel no licencia sus procesadores, por lo tanto si
queremos hacer un telfono mvil basado en Intel,
tendramos que montar un conjunto extra de chipsy
eso trae problemas y deja a Intel fuera del mercado de
las cosas pequeas
Solucin de Intel para entrar en ese mercado: hacer
configurables a sus procesadores poner una FPGA.
La FPGA es un chip que puede convertirse en una
tarjeta grfica, un sintonizador wifi, un controlador de
puertos, Dicho con otras palabras, una FPGA
proporciona a los fabricantes una capacidad para
personalizar el chip similar a la que proporciona ARM.
El mercado de los embebidos
Es un muy buen mercado. no les parece?
A Intel le pareci una muy buena idea irrumpir
en ese mercado adosando al costado de su
micro procesador un producto, la FPGA,
claramente usable en el mercado de los
embebidos para hacer aplicaciones ad-hoc.
Y que tal si nosotros tambin nos introducimos
en el mundo de los embebidos?
Que son los FPGA?
Fiel Programmable Gate Array
Arreglos de Puertas Programables en
el Campo : (nunca mas lo traduzco)
Circuitos Integrados que contienen
bloques configurables de lgica
junto con conexiones configurables
entre esos bloques. Programmable
bits de bits de
configuracin configuracin
Programacin CPU: lgica lgica
Las instrucciones se
obtienen de la memoria
Las instrucciones Configuracin FPGA:
seleccionan operaciones
Bits permanecen en el
complejas
dispositivo que programan
Un bit de configuracin
controla un switch o un bit
de lgica
Tecnologas de Programacin
Field Programmable Gate Array
Lo que caracteriza o distingue a un FPGA de un
ASIC es un aspecto crucial que justamente
reside en su nombre:
Field Programmable Gate Array
a Pull-up resistors
b
AND
En la ausencia de links, todas las
entradas a la puerta AND estan
NOT conectadas al valor lgico 1.
Los pull-up resistors mantienen
dbilmente el valor lgico 1.
Para realizar una funcin hay que
buscar un mecanismo que permita
establecer uno o mas links.
Tecnologas de Programacin:
(1) Fusible Link
Fuses Logic 1
Fat
a Pull-up resistors
Faf
Fat
a Pull-up resistors
b
AND
Fbf Removiendo los fusibles sealados, la
funcin implementada es y=a & !b
Este proceso de remover los fusibles se
NOT
llama programacin (tambin se llama
blowing o burning)
Los dispositivos son OTP, porque el
fusible no puede recuperarse despus
de haberse quemado.
Tecnologas de Programacin:
(2) Antifuse
Logic 1
Unprogrammed
antifuses
a Pull-up resistors
b
AND
En su estado no programado, el
antifusible tiene una resistencia tan
NOT grande que puede considerarse un
circuito abierto.
Cuando se programa, (se dice que ha sido
crecido (grown)) , aplicando pulsos de alto
voltaje y corriente a las entradas del
dispositivo.
Tecnologas de Programacin:
(2) Antifuse
Logic 1
Programmed
antifuses
a Pull-up resistors
b
AND
control gate
Silicon floating gate
control gate
dioxide
source drain source drain
Silicon
substrate
E2PROM Cell
FLASH: borran mas rpido que
EPROM.
Usan diversas arquitecturas, pero
todas permiten ser borradas
elctricamente. Estas
arquitecturas con similares de las
EEPROM.
Tecnologas de Programacin:
(7) SRAM
Es un multitransistor formado por 4 a
6 transistores configurados como un
latch. Dos de los seis transistores
controlan el acceso al latch.
Cuando la celda no se direcciona,
los dos transistores de control estn
cerrados y los datos se mantienen
dentro del latch.
Consumen mucha rea
Pierden la informacin cuando dejan
de ser alimentados.
Pueden ser reprogramados
rpidamente y repetidamente.
SRAM Para escribir un 1, se pone
B=1;B/=0 y se activa WordLine
Tecnologas de Programacin:
(8) .
Predominantly
Technology Symbol
associated with ...
Fusible-link SPLDs
Antifuse FPGAs
Acceptable
IP Security (especially when using Very Good Very Good
bitstream encryption)
SPLDs CPLDs
Programmable OR array
!a & b & !c
Address 2 &
!a & b & c
EEPROM).
Address 3 &
a & !b & !c
Solo es configurable la
Address 4 &
a & !b & c
matriz OR.
Address 5 &
a & b & !c
tiles para ecuaciones con
Address 6 &
a & b & c
pocas entradas y muchos
Address 7 &
trminos producto.
a !a b !b c !c
l
a b c w x y
a
& w 0 0 0 0 1 0
b 0 0 1 0 1 1
0 1 0 0 1 0
x
0 1 1 0 1 1
1 0 0 0 1 0
1 0 1 0 1 1
^ y 1 1 0 1 0 1
c
1 1 1 1 0 0
Implementacin con PROM
a b c
Predefined link
Programmable link
!a & !b & !c
Address 0 &
!a & !b & c
Address 1 &
Programmable OR array
!a & b & !c
Address 2 &
!a & b & c
Address 3 &
a & !b & !c
Address 4 &
a & !b & c
Address 5 &
a & b & !c
Address 6 &
a & b & c
Address 7 &
a !a b !b c !c
l
Predefined AND array w x y
w = (a & b)
x = !(a & b)
y = (a & b) ^ c
PLA (Programmable Logic Array)
a b c
Predefined link
Programmable link
N/A
&
Programmable
N/A
OR array
&
N/A
&
a !a b !b c !c
l
Predefined AND array w x y
a & b & c
&
Programmable
a & c
OR array
&
!b & !c
&
a !a b !b c !c
l
Predefined AND array w x y
w = (a & c) | (!b & !c)
x = (a & b & c) | (!b & !c)
y = (a & b & c)
PAL (Programmable Array Logic)
a b c
Predefined link Al revs de las PROM, la parte
Programmable link programable es la matriz AND
Las GAL (Generic Array Logic)
&
son variaciones de las PAL,
Predefined OR array
& mas sofisticados (EE)
&
&
Todos estos dispositivos,
& aparecen en el mercado con
&
una variedad de opciones:
inversin de las salidas,
a !a b !b c !c
l
Programmed
papel a una tabla (con un formato device
especial, requerido por el
dispositivo programador). Esta
tabla indicaba que conexiones se
deban programar. La tabla se
tipeaba en un computadora y se
bajaba luego al dispositivo (a) Host computer (b) Device programmer
programador.
Cada vendedor de PLDs,
obviamente, haba desarrollado
su propio formato para el archivo,
que solo serva para sus
dispositivos.
Ensambladores y Herramientas de
Diseo
1980: JEDEC (Joint Electron Device Engineering Council) propone
un formato standard para los archivos de configuracion de los
PLDs.
John Birkner, creador de las PAL, crea PALASM el primer
ensamblador para PAL. Es un primitivo HDL (Hardware Description
Languaje) y adems una aplicacin software. Es usado para
trasladar expresiones booleanas y grafos de estados a una tabla
para PAL. PALASM solo es para PALs fabricadas por MMI
(Monolithic Memories Inc). No realiza minimizaciones o
optimaciones.
1983: ABEL (Advanced Boolean Expression Languaje ) y CUPL
(Common Universal tool for Programmable Logic). Ambas
herramientas trabajan con diversos tipos de PLDs y de fabricantes.
Estas herramientas y HDL son las precursoras de VHDL y Verilog,
lenguajes HDL de alto nivel y herramientas que son usadas hoy
para los ASICs y FPGA.
PALASM
PALASM
TITLE Example
PATTERN Simple
REVISION A
opcional AUTHOR ECEN 220
COMPANY BYU
DATE March 1, 1995
CHIP Example PAL2OL8
;PINS
; 1 2 3 4 5 6 7 8 9 10 11 12
obligado B A C D NC NC NC NC NC NC NC GND
; 13 14 15 16 17 18 19 20 21 22 23 24
NC NC NC NC NC NC NC NC Z /X NC VCC
EQUATIONS
Equaciones booleanas X=/A*B + A*B + A*/B + /A*/B*C
Z=/A*B + A*B + A*/B + /A*/B*C
SIMULATION
Trace define que TRACE-ON A B C /X Z
seales mostrar el SETF /A /B /C
SETF /A /B C
simulador. SETF /A B /C
SETF define el valor SETF /A B C
SETF A /B /C
de las variables en SETF A /B C
cada simulacin. SETF A B /C
SETF A B C
TRACE-OFF
PAL20L8
Entradas (20) :
1..11; 13-14; 16..23
Salidas (8): 15..22
Algunas salidas
(16..22) son
triestado. Es decir,
pueden ser
configuradas tanto
como entradas
como salidas.
Todas las salidas
son negadas.
Pin 12 es ground,
Pin 24 es Vcc.
Esquema de la PAL
24-Pin Small PAL Family
PAL 20 L 8
PALASM: archivo .xpt
Despus de creado el
archivo extensin .pds se
ensambla. El ensambaldor
genera dos archivos:
.xpt: contiene el fuse
map
.trf es el archivo para
simulacin
x se usa para denotar un
contacto quemado.
Columnas 0,1,2,3,4 5
corresponden a las entradas
y sus complementarios.
Filas 0,1,2,3 corresponden a
la funcin \x (sus tminos
producto y su habilitacin)
Filas 8 y 9 corresponden a la
funcin Z. Sus trminos
producto y su habilitacin.
Fijense que cada OR puede
admitir hasta 7 trminos
producto (pues uno de ellos
se reserva para la
habilitacin)
PALASM: archivo .xpt
Interpretacin de los trminos producto.
La funcin X=/A*B + A*B + A*/B + /A*/B*C
Simplificada es :
/X=A + B + C
Comprobarlo!!!!! (Pista: Usar Mapas de Karnaugh o bien deducirlo
de la Tabla de Verdad).
Increasing complexity
DATA
N_DATA
Q
representa como una
CLOCK
G2 = NOT
N-Q
coleccin de puertas
G4 = DFF lgicas y funciones y
CLEAR_A CLEAR
CLEAR_B conexiones entre ellas.
G3 = OR
Netlist: para
BEGIN CIRCUIT=TEST poder usar el
INPUT SET_A, SET-B, DATA, CLOCK, CLEAR_A, CLEAR_B;
OUTPUT Q, N_Q;
simulador, el
WIRE SET, N_DATA, CLEAR; diseo debe
GATE
GATE
G1=NAND
G2=NOT
(IN1=SET_A, IN2=SET_B, OUT1=SET);
(IN1=DATA, OUT1=N_DATA);
describirse de
GATE G3=OR (IN1=CLEAR_A, IN2=CLEAR_B, OUT1=CLEAR); forma textual
GATE G4=DFF (IN1=SET, IN2=N_DATA, IN3=CLOCK,
IN4=CLEAR, OUT1=Q, OUT2=N_Q); (archivos de
END CIRCUIT=TEST; texto)
Structured ASIC
Structured ASIC tiles
(2002) Cada vendedor tiene su
arquitectura.
Cada dispositivo est formado por LUT
elemento bsico llamado mdulo
(tiles) que contiene una mezcla de
lgica prefabricada (multiplexores,
puertas, lookup table) junto con uno o LUT
Basados en el concepto de
bloque lgico programable,
que contiene una LUT, un a
registro y un multiplexor. 3-input
b y
Cada FPGA contendr un LUT
c mux
nmero grande de estos flip-flop
bloques.
q
Utilizando SRAM todos los d
bloques se pueden
programar para que realicen clock
una funcin diferente.
FPGA
Required function Truth table Programmed LUT
a a b c y SRAM cells
&
b 1 000
0 0 0 1
8:1 Multiplexer
0 0 1 0 0 001
| y
c 0 1 0 1 1 010
0 1 1 1 1 011
y
y = (a & b) | !c 1 0 0 1 1 100
1 0 1 0 0 101
1 1 0 1 1 110
1 1 1 1 1 111
abc
Un FPGA est compuesto
por un gran nmero de
bloques lgicos islas
rodeados por un mar de
interconexiones
programables.
Adems, suele haber Programmable
interconexiones globales de interconnect
Y, entradas/salidas.
Los FPGA son el puente
entre los ASICs y los PLDs
porque son altamente
configurables, y, pueden ser To other chips
utilizados para implementar on the board
funciones complejas.
Pueden ser utilizados en To other chips
diseos hbridos, junto con on the board
ASIcs. To other chips
ASIC
Los FPGA son arquitecturas on the board
Referencia:
BEE2: A High-End Reconfigurable Computing System. Chen Chang, John Wawrzynek, and
Robert W. Brodersen. University of California, Berkeley. IEEE Design & Test of Computers,
MarchApril 2005.
el rendimiento de un solo
procesador no aumenta acorde a la
tecnologa
Como aumentar el rendimiento?
(Como hacer que la Ley de Moore
contine?)
Si un solo procesador ya no puede ser capaz de
obtener un aumento exponencial del
rendimiento conforme la tecnologa avanza,
entonces el aumento del rendimiento debe
provenir de multiplicar los ncleos de
procesador (arquitecturas multicore) dentro del
chip. Es el camino que siguen en este momento
IBM (PowerPc), Sun e Intel.
Esto quiere decir que toda la computacin se
vuelve paralela!
High Performance Computing
En el mundo de las Supercomputadoras,
rendimientos entre los 100Gflops y 10Teraflops
se obtienen en base a sistemas construidos
como una coleccin de procesadores del
mercado (componentes off-the-shelf).
Como se producen tan pocos sistemas de este
tipo, no se justifica utilizar procesadores
dedicados al cmputo de alto rendimiento
(Todas las veces que se intent, la empresa
quebr. )
High End Reconfigurable
Computing
Son sistemas de super cmputo basados en FPGAs.