SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Diseño de Sistemas con
FPGA
Patricia Borensztejn
Primer Cuatrimestre 2015
Objetivo del curso
• Adquirir conocimientos elementales de la
arquitectura de las FPGA actuales
• Aprender a utilizar las herramientas de
programación y realizar proyectos
sencillos “que anden”
– Proyecto Combinacional
– Proyecto Secuencial
– Proyecto E/S
– Proyecto PicoBlaze
– Proyecto Integrador
Temario y Planificación
• Introducción: FPGA (1)
• Modelado de Sistemas Combinacionales.
Verilog. Entorno de desarrollo de xilinx. (4)
• Modelado de Sistemas Secuenciales. (5)
• Entrada / Salida: monitor, teclado, audio,
línea serie (4)
• Co-Diseño software hardware con
Picoblaze (4)
• Proyectos (10)
• Total= 28 clases mas 1 entrega
Calendario Primero 2015
Marzo M V
18 20
25 27
Abril
1 3
8 10
15 17
22 24
29
Mayo
1
6 8
13 15
20 22
27 29
Junio M V
3 5
10 12
17 19
24 26
julio
1 3
8 10
Bibliografía 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 (tecnología)
• The Design Warrior´s Guide for FPGAs. Clive Maxfield
(arquitecturas)
• Digital Arithmetic. Ercegovac, y Thomas Lang (algoritmos
aritméticos)
• Synthesis of Arithmetic Circuits. Deschamps, Gioul, and
Sutter. (algoritmos y codificación en VHDL para FPGA)
• Writing Testbenches: Functional Verification of HDL
Models. Janick Bergeron. Kluwer Academic Publishers.
• Hojas de Datos…. (de FPGA´s…)
• ….. Y todo lo que ustedes encuentren en la web (que es
mucho)
Hardware y Software
• La cátedra cuenta con las siguientes placas de desarrollo:
• Spartan-3E Starter Kit donada por XUP (Xilinx University Program) (3)
• Spartan-3 Starter Board (Digilent) donada por XUP (1)
• Xilinx Spartan-3A EVALUATION KIT (Avnet) (propio)
• Virtex-II Pro Development System (donada por Xilinx University Program) (esta
discontinuada)
• Virtex4 FX12 Evaluation Board (Avnet) con Audio/Visual Card (Avnet) (Propiedad
del Grupo de Investigación: Embebidos)
• Virtex-5 OpenSPARC Evaluation Platform (Donación de University Program
OpenSparc)
• Nexys-2 comprada con subsidio UBACYT (2011-2013) (1)
• Atlys comprada con subsidio UBACYT (2011-2013) (1)
• Nexys-3 comprada con subsidio UBACYT (2011-2013) (4)
• Nexys-4 comprada con subsidio UBACYT (2011-2013) (1)
• Zybo comprada con subsidio UBACYT (2014-2016) (1)
Hardware y Software
• El software que utilizamos es :
– ISE Webpack 14.7 (xilinx.com) para linux
• Pueden bajar ISE Webpack directamente de xilinx, pues
es gratuita, ojo! Bajar el webpack, ya que la herramienta
completa (ISE Design Suite) NO es gratuita. (y pesa
mucho mas).
• Esto es para mi:
• (http://ibelimb.com/blog/2014/03/30/generating-a-
microblaze-soft-processor-with-ise-webpack-14-dot-7/)
Hardware y Software
• Xilinx esta migrando… tanto el hardware como el
software.
• En hardware esta migrando a lo que se llama ALL
PROGRAMMABLE SoC que son procesadores
(programables) mezclados con lógica (programable). Las
FPGA a las que se esta migrando se llaman Zync.
• En software se está migrando a la nueva herramienta
llamada VIVADO.
• Nosotros usamos ISE, version 14.7 pero xilinx ya dejó de
mejorar ISE en octubre de 2013.
• Otra cosa que sucedió, creo que hace poco, es que en
las versiones gratuitas (webpack) ahora podemos tener
acceso al procesador (microblaze)
Cuestiones Administrativas
• Usaremos 28 clases, teórico-prácticas.
Comenzamos hoy, 18 de marzo y
terminamos el 10 de julio.
• No se puede faltar mas de seis veces, a
riesgo de perder la materia…
Cuestiones Administrativas
• La página de la materia es:
http://www.dc.uba.ar/materias/disfpga/2015/c1
• El material de la página se irá subiendo de clase
en clase, versiones anteriores en:
http://www.dc.uba.ar/materias/disfpga/2014/c2
Empecemos….
Introducción
• Sistemas Embebidos
• ¿Que son los FPGA?
• ¿En que se diferencian de un
microprocesador?
• Origen de los FPGA: PLD´s
• ASIC´s
• FPGA
¿Donde estamos?
En el mundo de los
sistemas embebidos
Sistemas Embebidos
• El mundo está lleno de ellos.
• Se pueden definir como todo sistema
que NO es una PC de escritorio , ni
un servidor, ni una workstation, ni una
supercomputadora, ni un cluster
distribuido, en fin, NO es un sistema
programable de propósito general.
Sistema Embebido: ¿Que
significa?
 Small device, like a cell phone?
 Small processor installed in some other device, like a car?
 Software that controls a consumer device?
 Must have real-time response?
My favorite:
Any system where the user doesn’t want to know that it includes
a processor
Disertación de un consultor de la industria de embebidos, Doug Locke,
2004 Real-Time Embedded Technology and Applications Symposium:
Real-Time and Embedded Systems: Past, Present, and Future
Sistemas Embebidos: ¿de donde
venimos?
• El primer sistema embebido se considera:
– Sistema de Control del ICBM (Misil Balístico Inter
Continental), desarrollado por la Fuerza Aérea de
EEUU en 1961.
– Formado por transistores y puertas lógicas
– Controlaba la trayectoria y estabilidad del misil
– (No falla. Siempre la tecnología avanzando a paso
redoblado)
– Otros consideran que fue AGD Apollo Guidance
Computer, pero yo creo que AGD no era un
sistema embebido sino una computadora
programable.
– Durante la primer década, 1970, las aplicaciones
de SE eran para defensa y militares.
Sistemas Embebidos
• El mercado de los productos embebidos es
enormemente mas grande que el mercado de las PC´s
que lidera Intel, por ejemplo.
• Jim Turley, asesor de la industria de los embebidos, dice
que aproximadamente el 0% de los microprocesadores
que se fabrican, se usan en el mercado de las PC de
escritorio. El 100% restante, se usan en el mercado de
los embebidos.
• En los últimos años, se vendieron alrededor de 500
millones de microprocesadores para el mercado de las
PC´s y 10 mil millones para el mercado de los
embebidos.
Embedded Processors by the
numbers, 1999.
• http://vault.embedded.com/1999/9905/9905turley.htm
• Es este artículo de Jim Turley, asesor de la
industria de los embebidos, escrito en el
año 1999, el decía:
About zero percent of the world's microprocessors are used in
computers. Yup. Every PC, Macintosh, engineering workstation, Cray
supercomputer, and all the other general-purpose computers put
together account for less than 1% of all the microprocessors sold
every year. If you round off the fractions, embedded systems
consume 100% of the worldwide production of microprocessors.
Sistemas Embebidos
• Son sistemas de hardware y software, de propósito
específico embebidos en algún producto del mercado.
Por ejemplo:
– Embebidos de la industria automotriz : navegador
GPS, de la aviación: control de aterrizaje automático
– Embebidos de la industria de las telecomunicaciones:
routers, modems
– Embebidos de la industria de las comunicaciones:
teléfonos celulares, palms, e-books
– Embebidos de la industria del hogar: control de
heladeras, microondas, robots
– Etc, pero muchos etcéteras.
El mundo de los embebidos
• Aplicaciones específicas
• Optimizadas en consumo y área.
• Se trabaja en hardware y en software
• Se programa en C , ensamblador y/o HDL
• ¡¡¡Costosísima la parte de verificación y
testing!!!
El mundo de los embebidos
• Mucha variedad en las implementaciones
• Si un ingeniero necesita desarrollar un
producto nuevo, puede elegir entre
diversas alternativas:
– Procesadores de propósito general, adaptados
para placas embebidas
– DSP (procesadores específicos para
procesamiento de señales)
– Microcontroladores
– ASIC´s
– FPGA´s
El mundo de los embebidos …
…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 código en mi
portátil...
• Es el procesador mas pequeño de Intel, fabricado con
tecnología de 45 nm (nm=mil millonésima parte del
metro) y próximamente de 32nm. (actualmente, Intel ya
fabrica con tecnología de 14nm)
• Pensados para una amplia gama de dispositivos:
netbooks, PC básicas, tablets, laptops, smartphones,
dispositivos electrónicos de consumo y otros dispositivos
complementarios.
• Características del procesador:
– Arquitectura de ahorro de consumo de energía,
optimizada para su uso en los productos embebidos
¿Y que es una FPGA?
• Es… lógica (programable) organizada de
alguna manera… dentro de un chip.
• Se usa para:
– En los 80, cuando recién arrancaban, para
implementar “lógica para unir” (glue logic), lógica para
interfacear componentes mas grandes (porque sus
antepasados son los PLD´s)
– 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 líder en el mercado de procesadores
para la industria de las PC básicas.
• …pero no en el mercado de los embebidos…
(donde reina ARM, especialmente en el
mercado de los dispositivos móviles)
• 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 móviles?
• El secreto de su éxito:
– ARM no fabrica micros, solo los
diseña y luego los licencia a
fabricantes de electrónica 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
teléfonos móviles fabricará
procesadores que además del
núcleo ARM contendrán el
transmisor 3G y el controlador
de pantalla y teclado; de esta
forma reducimos el número de
chips necesarios para montar el
teléfono, con la consiguiente
reducción de coste, tamaño y
consumo.
Procesador para router ADSL basado en ARM
Idea de Intel para entrar en el
mercado de las cosas pequeñas…
• Intel no licencia sus procesadores, por lo tanto si
queremos hacer un teléfono móvil basado en Intel,
tendríamos que montar un conjunto extra de chips…y
eso trae problemas y deja a Intel fuera del mercado de
las cosas pequeñas…
• Solución 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 gráfica, 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.
Intel sigue apostando a los
FPGA
• 25/02/2013
Altera to Build Next-Generation, High-Performance
FPGAs on Intel's 14 nm Tri-Gate Technology
• Intel’s Hybrid CPU-FPGA by Tom R. Halfhill, The
Linley Group
http://www.embeddedintel.com/commentary.php?articl
e=2143
• Intel reveals its FrankenChip ARM killer: one FPGA
and one Xeon IN ONE SOCKET
http://www.theregister.co.uk/2014/06/18/intel_fpga_cust
om_chip/
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 también nos introducimos
en el mundo de los embebidos?
¿Que son los FPGA?
Field Programmable Gate Array
• Arreglos de Puertas Programables en
el Campo : (nunca mas lo traduzco)
– Circuitos Integrados que contienen
bloques configurables de lógica
junto con conexiones configurables
entre esos bloques.
– Para que se configuran? Para realizar
distintas tareas. Algunas FPGA
permiten ser programados una sola
vez(OTP one time programmable), o
bien una y otra y otra vez…
– Donde se programan?Los FPGA se
programan “in the field”, o sea, no los
programa el fabricante, sino que lo
puede programar el desarrollador “en
su campo”, o sea, en su laboratorio. Si
un dispositivo puede ser programado
mientras está residente, o embebido
en un sistema mayor, se dice que es
ISP (In System Programmable)
– ¿Porqué Gate Array? Es el nombre de
un tipo de tecnología de fabricación de
los ASIC (Application Specific
Integrated Circuit)
Programmable
interconnect
Programmable
logic blocks
FPGA ASIC
ISP OTP
Ross Freeman (1985)
• Patente US 4870302:
– Configurable electrical circuit having configurable logic elements
and configurable interconnects
Ross Freeman
La foto que este cuatrimestre elegí para ilustrar nuestra página es la de Ross
Freeman, inventor de las FPGA y co fundador de Xilinx, junto con Bernard
Vonderschmitt. Esto sucedió en el año 1985. Freeman era un ingeniero y
trabajaba en circuitos integrados en Zilog, ademas era vice presidente de esa
companía y gerente general. Todo en uno.
Zilog , que era subsidiaria de Exxon Corporation habia sido fundada, nada mas
y nada menos que por Federico Fagin (FF) en 1974 conocido por haber dejado
su firma en el primer microprocesador de Intel , el 4004. El producto mas
conocido de Zilog fue el Z80 que FF logró que sea incorporado a las
videoconsolas como el Sega, Game Boy, etc. Pero eso es otra historia.
Mientras trabajaba en Zilog, Freeman pergenia la idea de diseñar un chip de
computadora que funcionara como una cinta en blanco, permitiendo al usuario
programar ese chip en vez de tener que comprarlo ya hecho. Había que
convencer a Exxon de que les dejaran fabricar ese chip en blanco. Y Freeman
no lo logró. Asi que, simplemente, dejó todo y se fué. Patentó su linda idea y
fundó Xilinx.
Origen
• Dispositivos Lógicos Programables
– PLD
– PLA
– ROM
– PAL
– Variantes todas de array programables de
puertas AND y OR
PLDs
SPLDs CPLDs
PLAsPROMs PALs GALs etc.
a b c
l
l
l
Address 0 &
Address 1 &
Address 2 &
Address 3 &
Address 4 &
Address 5 &
Address 6 &
Address 7 &
a !a b !b c !c
!a !c!b& &
!a c!b& &
!a !cb& &
!a cb& &
a !c!b& &
a c!b& &
a !cb& &
a cb& &
Predefined AND array ProgrammableORarray
w x y
Predefined link
Programmable link
PROMs (1970)
 Solo es configurable la
matriz OR.
 Útiles para ecuaciones con
pocas entradas y muchos
términos producto.
 Quiere decir
Programmable Read Only
Memory
Implementación de una función
lógica combinacional
a b c w x y
0 0 0 0 1 0
0 0 1 0 1 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 0 1 0
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 0 0
&
a
b
c
w
x
y^
a b c
l
l
l
Address 0 &
Address 1 &
Address 2 &
Address 3 &
Address 4 &
Address 5 &
Address 6 &
Address 7 &
a !a b !b c !c
!a !c!b& &
!a c!b& &
!a !cb& &
!a cb& &
a !c!b& &
a c!b& &
a !cb& &
a cb& &
Predefined AND array
ProgrammableORarray
w x y
Predefined link
Programmable link
w = (a & b)
x = !(a & b)
y = (a & b) ^ c
Implementación con PROM
a b c
&
&
&
a !a b !b c !c
N/A
Predefined AND array
Programmable
ORarray
Predefined link
Programmable link
l
l
l
w x y
N/A
N/A
PLA (Programmable Logic Array)
 Disponible a partir de 1975, se pueden programar los dos arrays.
 Se hicieron algunas variantes: arrays AND con arrays NOR. No mucho
éxito en el mercado
 Son útiles cuando diversas funciones usan o comparten términos
producto.
 Son mas lentas que las PROMS
Programmable
a b c
&
&
&
a !a b !b c !c
a cb& &
a c&
!b !c&
Predefined AND array
Programmable
ORarray
Predefined link
Programmable link
l
l
l
w x y
w = (a & c) | (!b & !c)
x = (a & b & c) | (!b & !c)
y = (a & b & c)
Implementación con PLA
a b c
l
l
l
&
&
&
&
&
&
a !a b !b c !c
Programmable
AND array
PredefinedORarray
w x y
Predefined link
Programmable link
PAL (Programmable Array Logic)
 Al revés de las PROM, la parte
programable es la matriz AND
 Las GAL (Generic Array Logic)
son variaciones de las PAL,
mas sofisticados (EE)
 Todos estos dispositivos,
aparecen en el mercado con
una variedad de opciones:
inversión de las salidas,
salidas triestado, salidas
registradas, etc. Además de
tener un número mas grande
de entradas y salidas.
Programmable
Interconnect
matrix
Input/output pins
SPLD-like
blocks
CPLD´s (vamos llegando)
• A finales de los 70, los
inventores de la PAL,
introducen el Mega-Pal,
dispositivo con 4 Standard
Pals interconectadas de
alguna manera. No funcionó.
Consumía mucho.
• 1984: Altera (nueva
empresa) introduce el CPLD
basado en tecnología CMOS
y EPROM.
• Las conexiones entre los bloques se programan mediante
la matriz de interconexión.
Proceso de Diseño
• ¿Como se diseñaba un circuito
usando PLD´s?
Se realizaba un esquemático o bien
un diagrama de estados, todo en
papel porque no existían las
herramientas que hoy
conocemos.
El esquemático se convertía del
papel a una tabla (con un formato
especial, requerido por el
dispositivo programador). Esta
tabla indicaba que conexiones se
debían programar. La tabla se
tipeaba en un computadora y se
bajaba luego al dispositivo
programador.
Cada vendedor de PLD´s,
obviamente, había desarrollado
su propio formato para el archivo,
que solo servía para sus
dispositivos.
(a) Host computer (b) Device programmer
Unprogrammed
device
Programmed
device
Ensambladores y Herramientas de
Diseño
• 1980: JEDEC (Joint Electron Device Engineering Council) propone
un formato standard para los archivos de configuracion de los
PLD´s.
• John Birkner, creador de las PAL, crea PALASM el primer
ensamblador para PAL. Es un primitivo HDL (Hardware Description
Languaje) y además una aplicación software. Es usado para
trasladar expresiones booleanas y grafos de estados a una tabla
para PAL. PALASM solo es para PAL´s 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 PLD´s 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 ASIC´s y FPGA.
PALASM
PALASM
TITLE Example
PATTERN Simple
REVISION A
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
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
X=/A*B + A*B + A*/B + /A*/B*C
Z=/A*B + A*B + A*/B + /A*/B*C
SIMULATION
TRACE-ON A B C /X Z
SETF /A /B /C
SETF /A /B C
SETF /A B /C
SETF /A B C
SETF A /B /C
SETF A /B C
SETF A B /C
SETF A B C
TRACE-OFF
obligado
opcional
Equaciones booleanas
•Trace define que
señales mostrará el
simulador.
•SETF define el valor
de las variables en
cada simulación.
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.
24-Pin Small PAL Family
PAL 20 L 8
PALASM: archivo .xpt
• Después de creado el archivo
extensión .pds se ensambla. El
ensambaldor genera dos archivos:
– .xpt: contiene el fuse map
– .trf es el archivo para
simulación
• x se usa para denotar un contacto
quemado.
• Columnas 0,1,2,3,4 5
corresponden a las entradas y sus
complementarios.
• Cada fila es un término producto
• Filas 0,1,2,3 corresponden a la
función x (sus términos producto y
su habilitación)
• Filas 8 y 9 corresponden a la
función Z. Sus términos producto y
su habilitación.
• Fijense que cada OR puede
admitir hasta 7 términos producto
(pues uno de ellos se reserva para
la habilitación)
PALASM: archivo .xpt
• Interpretación de los términos producto.
– La función 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).
– La función Z=/A*B + A*B + A*/B + /A*/B*C
Es idéntica a la anterior, salvo en el valor de la variable
dependiente Z, que ahora la usamos sin negar.
Pero, las salidas son negadas en el dispositivo…. Así que el
ensamblador tiene que complementar la expresión
Z=A + B + C
/Z= /A*/B*/C (aquí se aplica Morgan)
PALASM: archivo .trf (simulación)
PLDs ASICs
Standard Cell
Full Custom
Gate Arrays
Structured ASICs*
SPLDs
CPLDs
*Not available circa early 1980s
The
GAP
• Hacia 1980, es evidente que
hay un GAP entre el mundo
de los IC.
• Por un lado, los dispositivos
programables, muy sencillos
pero muy configurables. Por
el otro, los ASIC´s,
soportando funciones
complejas, pero muy caros,
y muy costosos en tiempo
de diseñar. Además, una vez
el diseño estaba hecho,
quedaba congelado en el
silicio.
• Para salvar ese GAP, Xilinx
lanza al mercado en 1984,
una nueva clase de IC:
FPGA.
FPGA
3-input
LUT
a
b
c
flip-flop
clock
mux
y
q
d
FPGA
• Basados en el concepto de
bloque lógico programable,
que contiene una LUT, un
registro y un multiplexor.
• Cada FPGA contendrá un
número grande de estos
bloques.
• Utilizando SRAM todos los
bloques se pueden
programar para que realicen
una función diferente.
|
&
a
b
c
y
y = (a & b) | !c
Required function Truth table
1
0
1
1
1
0
1
000
001
010
011
100
101
110
1111
y
a b c y
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
SRAM cells
Programmed LUT
8:1Multiplexer
a b c
FPGA
Bloques Básicos de Xilinx
• Se llama Logic Cell
(LC) y está
compuesto
(básicamente) por:
– Una LUT de 4
entradas
– Un multiplexor
– Un registro (flip-flop
(actúa por flanco de
reloj) o latch (actúa
por nivel, monitorea
siempre las entradas))
16-bit SR
flip-flop
clock
mux
y
q
e
a
b
c
d
16x1 RAM
4-input
LUT
clock enable
set/reset
LUT´s de SRAM
• Cuando una arquitectura basada
en LUT se implementa con celdas
de SRAM, las celdas, además de
LUT´s, pueden ser utilizadas
como pequeños bloques de
memoria RAM (una LUT de 16
entradas por un bit, puede ser una
RAM de 16x1). Esto se denomina
RAM Distribuida. (Distributed
RAM)
• Como las celdas de SRAM están
encadenadas unas con otras (las
celdas de SRAM de configuración,
pero también las de las LUT,s)
formando una larga cadena,
algunos fabricantes permiten que
las que forman las LUT´s sean
tratadas de forma independiente,
como un shift register.
0
1
From the previous
cell in the chain
0
0
To the next cell
in the chain
SRAM
cells
16-bit SR
16 x 1 RAM
4-input LUT
Slice de Xilinx
• Dos LC forman un
Slice.
• El slice comparte
algunas señales:
– Clock
– Clock Enable
– Set/Reset
16-bit SR
16x1 RAM
4-input
LUT
LUT MUX REG
Logic Cell (LC)
16-bit SR
16x1 RAM
4-input
LUT
LUT MUX REG
Logic Cell (LC)
Slice
CLB de Xilinx
• Un nivel mas arriba están los
CLB´s: Configurable Logic Block.
Pueden tener dos o cuatro slices,
(o los que sean en el futuro)
• Un CLB corresponde a una “isla”
de lógica programable dentro del
mar de las conexiones
programables.
• A la jerarquía de bloques, le
corresponde una jerarquía en las
interconexiones. Es decir, hay una
muy rápida interconexión entre
LC´s, un poco menos rápida entre
Slices y mas lenta entre CLB´s.
• Local Routing comunica slices
dentro del CLB y con otros CLB´s
cercanos.
• Una matriz de interconexión
provee acceso a recursos
generales
CLB CLB
CLB CLB
Logic cell
Slice
Logic cell
Logic cell
Slice
Logic cell
Logic cell
Slice
Logic cell
Logic cell
Slice
Logic cell
Configurable logic block (CLB)
CIN
Switch
Matrix
BUFT
BUF T
COUTCOUT
Slice S0
Slice S1
Local Routing
Slice S2
Slice S3
CIN
SHIFT
FPGA 1985
Familia Spartan 6
All Programable SoC
All Programable SoC
Zynq Board (ZyBO, de Digilent)

Más contenido relacionado

La actualidad más candente

Digital signal processing
Digital signal processingDigital signal processing
Digital signal processingVedavyas PBurli
 
14531428 secuenciales-asincronos
14531428 secuenciales-asincronos14531428 secuenciales-asincronos
14531428 secuenciales-asincronosAzariel Haiayel
 
Transistores mosfet configuracion y polarizacion
Transistores mosfet configuracion y polarizacionTransistores mosfet configuracion y polarizacion
Transistores mosfet configuracion y polarizacionJuan Carlos Cabrera
 
Displaying Animated Images on GLCD display with LPC2148 Microcontroller
Displaying Animated Images on GLCD display with LPC2148 MicrocontrollerDisplaying Animated Images on GLCD display with LPC2148 Microcontroller
Displaying Animated Images on GLCD display with LPC2148 MicrocontrollerOmkar Rane
 
Introduction to Embedded Architecture
Introduction to Embedded Architecture Introduction to Embedded Architecture
Introduction to Embedded Architecture amrutachintawar239
 
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - BasicsNotes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - BasicsJay Baxi
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
Ss cap8 - diseno filtros iir
Ss   cap8 - diseno filtros iirSs   cap8 - diseno filtros iir
Ss cap8 - diseno filtros iirkevinXD123
 

La actualidad más candente (20)

Digital signal processing
Digital signal processingDigital signal processing
Digital signal processing
 
Transistor bjt y polarizacion
Transistor bjt y polarizacionTransistor bjt y polarizacion
Transistor bjt y polarizacion
 
Flip Flop & RS Latch
Flip Flop & RS LatchFlip Flop & RS Latch
Flip Flop & RS Latch
 
Comunicación Serial
Comunicación SerialComunicación Serial
Comunicación Serial
 
Transistores
TransistoresTransistores
Transistores
 
14531428 secuenciales-asincronos
14531428 secuenciales-asincronos14531428 secuenciales-asincronos
14531428 secuenciales-asincronos
 
Transistores mosfet configuracion y polarizacion
Transistores mosfet configuracion y polarizacionTransistores mosfet configuracion y polarizacion
Transistores mosfet configuracion y polarizacion
 
Clases Amplificadores Operacionales
Clases Amplificadores OperacionalesClases Amplificadores Operacionales
Clases Amplificadores Operacionales
 
Displaying Animated Images on GLCD display with LPC2148 Microcontroller
Displaying Animated Images on GLCD display with LPC2148 MicrocontrollerDisplaying Animated Images on GLCD display with LPC2148 Microcontroller
Displaying Animated Images on GLCD display with LPC2148 Microcontroller
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
 
Osciladores
OsciladoresOsciladores
Osciladores
 
3.1. Construcción de Transistor BJT
3.1. Construcción de Transistor BJT3.1. Construcción de Transistor BJT
3.1. Construcción de Transistor BJT
 
Modulacion digital
Modulacion digitalModulacion digital
Modulacion digital
 
Introduction to Embedded Architecture
Introduction to Embedded Architecture Introduction to Embedded Architecture
Introduction to Embedded Architecture
 
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - BasicsNotes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
Notes: Verilog Part 1 - Overview - Hierarchical Modeling Concepts - Basics
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Ss cap8 - diseno filtros iir
Ss   cap8 - diseno filtros iirSs   cap8 - diseno filtros iir
Ss cap8 - diseno filtros iir
 
Los Multivibradores
Los MultivibradoresLos Multivibradores
Los Multivibradores
 
Flip flops2 presentación
Flip flops2 presentaciónFlip flops2 presentación
Flip flops2 presentación
 
Flip flop
Flip flopFlip flop
Flip flop
 

Similar a Introduccion fpga

1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladores1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladoresOmar Felis
 
1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladores1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladoresCataldo Asaro B
 
Microprocesadores.pptx
Microprocesadores.pptxMicroprocesadores.pptx
Microprocesadores.pptxraxodemon1
 
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdf
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdfTEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdf
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdfdocmarcoantoniosotov
 
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptx
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptxTEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptx
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptxdocmarcoantoniosotov
 
Diapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdf
Diapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdfDiapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdf
Diapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdfjorgejvc777
 
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.Juan Anaya
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01lucasoliver12
 
2012 Charla Telecos- Panorama TIC
2012 Charla Telecos- Panorama TIC2012 Charla Telecos- Panorama TIC
2012 Charla Telecos- Panorama TICAitor Ibañez
 
Trabajo práctico nº2
Trabajo práctico nº2Trabajo práctico nº2
Trabajo práctico nº2san carlos
 
Microprocesadorrrrrrrr
MicroprocesadorrrrrrrrMicroprocesadorrrrrrrr
MicroprocesadorrrrrrrrTeresaBosca
 
201910 valencia gnu linux es
201910 valencia gnu  linux es201910 valencia gnu  linux es
201910 valencia gnu linux esGuillermo Amat
 
C21 cm22 eq1-microcontroladores
C21 cm22 eq1-microcontroladoresC21 cm22 eq1-microcontroladores
C21 cm22 eq1-microcontroladoresTaichi Yagami
 
El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)Egdares Futch H.
 

Similar a Introduccion fpga (20)

1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladores1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladores
 
1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladores1 introduccion a_los_ucontroladores
1 introduccion a_los_ucontroladores
 
Microprocesadores.pptx
Microprocesadores.pptxMicroprocesadores.pptx
Microprocesadores.pptx
 
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdf
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdfTEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdf
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pdf
 
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptx
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptxTEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptx
TEMA 2 PARTE 2 DISPOSITIVOS Y PLATAFORMAS PARA IoT.pptx
 
Diapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdf
Diapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdfDiapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdf
Diapositiva de Estudio: ppt-introduccion-a-los-microcontroladores_compress.pdf
 
Parallax (1)
Parallax (1)Parallax (1)
Parallax (1)
 
¿Qué es un microprocesador?
¿Qué es un microprocesador?¿Qué es un microprocesador?
¿Qué es un microprocesador?
 
Microprocesador
Microprocesador Microprocesador
Microprocesador
 
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
 
Tp17
Tp17Tp17
Tp17
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01
 
2012 Charla Telecos- Panorama TIC
2012 Charla Telecos- Panorama TIC2012 Charla Telecos- Panorama TIC
2012 Charla Telecos- Panorama TIC
 
Trabajo práctico nº2
Trabajo práctico nº2Trabajo práctico nº2
Trabajo práctico nº2
 
Trabajo práctico nº2
Trabajo práctico nº2Trabajo práctico nº2
Trabajo práctico nº2
 
Microprocesadorrrrrrrr
MicroprocesadorrrrrrrrMicroprocesadorrrrrrrr
Microprocesadorrrrrrrr
 
201910 valencia gnu linux es
201910 valencia gnu  linux es201910 valencia gnu  linux es
201910 valencia gnu linux es
 
C21 cm22 eq1-microcontroladores
C21 cm22 eq1-microcontroladoresC21 cm22 eq1-microcontroladores
C21 cm22 eq1-microcontroladores
 
El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)
 

Último

linea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añoslinea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añosMaraPazCrdenas
 
Home Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosHome Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosDebora Gomez Bertoli
 
Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptCARLOSAXELVENTURAVID
 
9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf socialesJhonathanRodriguez10
 
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptxRosiClaros
 
PLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primariaPLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primariajosevilla696981
 
Red WAN que es una red WAN? para que sirve?.pptx
Red WAN que es una red WAN? para que sirve?.pptxRed WAN que es una red WAN? para que sirve?.pptx
Red WAN que es una red WAN? para que sirve?.pptxcorteztabo1004
 
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVOPERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVOAdrianaBernal82
 

Último (8)

linea de tiempo television y su avance en los años
linea de tiempo television y su avance en los añoslinea de tiempo television y su avance en los años
linea de tiempo television y su avance en los años
 
Home Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todosHome Assistant - Un Hub para controlarlos a todos
Home Assistant - Un Hub para controlarlos a todos
 
Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.ppt
 
9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales9-Sociales-Colombia siglo XX.pdf sociales
9-Sociales-Colombia siglo XX.pdf sociales
 
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
644400074-LA-CONSOLIDACION-DE-LA-REPUBLICA-OLIGARQUICA-pdf.pptx
 
PLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primariaPLANIFICACION ANUAL , año 2024. nivel primaria
PLANIFICACION ANUAL , año 2024. nivel primaria
 
Red WAN que es una red WAN? para que sirve?.pptx
Red WAN que es una red WAN? para que sirve?.pptxRed WAN que es una red WAN? para que sirve?.pptx
Red WAN que es una red WAN? para que sirve?.pptx
 
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVOPERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
PERFIL SECRETARIAL - SECRETARIADO EJECUTIVO
 

Introduccion fpga

  • 1. Diseño de Sistemas con FPGA Patricia Borensztejn Primer Cuatrimestre 2015
  • 2. Objetivo del curso • Adquirir conocimientos elementales de la arquitectura de las FPGA actuales • Aprender a utilizar las herramientas de programación y realizar proyectos sencillos “que anden” – Proyecto Combinacional – Proyecto Secuencial – Proyecto E/S – Proyecto PicoBlaze – Proyecto Integrador
  • 3. Temario y Planificación • Introducción: FPGA (1) • Modelado de Sistemas Combinacionales. Verilog. Entorno de desarrollo de xilinx. (4) • Modelado de Sistemas Secuenciales. (5) • Entrada / Salida: monitor, teclado, audio, línea serie (4) • Co-Diseño software hardware con Picoblaze (4) • Proyectos (10) • Total= 28 clases mas 1 entrega
  • 4. Calendario Primero 2015 Marzo M V 18 20 25 27 Abril 1 3 8 10 15 17 22 24 29 Mayo 1 6 8 13 15 20 22 27 29 Junio M V 3 5 10 12 17 19 24 26 julio 1 3 8 10
  • 5. Bibliografía 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 (tecnología) • The Design Warrior´s Guide for FPGAs. Clive Maxfield (arquitecturas) • Digital Arithmetic. Ercegovac, y Thomas Lang (algoritmos aritméticos) • Synthesis of Arithmetic Circuits. Deschamps, Gioul, and Sutter. (algoritmos y codificación en VHDL para FPGA) • Writing Testbenches: Functional Verification of HDL Models. Janick Bergeron. Kluwer Academic Publishers. • Hojas de Datos…. (de FPGA´s…) • ….. Y todo lo que ustedes encuentren en la web (que es mucho)
  • 6. Hardware y Software • La cátedra cuenta con las siguientes placas de desarrollo: • Spartan-3E Starter Kit donada por XUP (Xilinx University Program) (3) • Spartan-3 Starter Board (Digilent) donada por XUP (1) • Xilinx Spartan-3A EVALUATION KIT (Avnet) (propio) • Virtex-II Pro Development System (donada por Xilinx University Program) (esta discontinuada) • Virtex4 FX12 Evaluation Board (Avnet) con Audio/Visual Card (Avnet) (Propiedad del Grupo de Investigación: Embebidos) • Virtex-5 OpenSPARC Evaluation Platform (Donación de University Program OpenSparc) • Nexys-2 comprada con subsidio UBACYT (2011-2013) (1) • Atlys comprada con subsidio UBACYT (2011-2013) (1) • Nexys-3 comprada con subsidio UBACYT (2011-2013) (4) • Nexys-4 comprada con subsidio UBACYT (2011-2013) (1) • Zybo comprada con subsidio UBACYT (2014-2016) (1)
  • 7. Hardware y Software • El software que utilizamos es : – ISE Webpack 14.7 (xilinx.com) para linux • Pueden bajar ISE Webpack directamente de xilinx, pues es gratuita, ojo! Bajar el webpack, ya que la herramienta completa (ISE Design Suite) NO es gratuita. (y pesa mucho mas). • Esto es para mi: • (http://ibelimb.com/blog/2014/03/30/generating-a- microblaze-soft-processor-with-ise-webpack-14-dot-7/)
  • 8. Hardware y Software • Xilinx esta migrando… tanto el hardware como el software. • En hardware esta migrando a lo que se llama ALL PROGRAMMABLE SoC que son procesadores (programables) mezclados con lógica (programable). Las FPGA a las que se esta migrando se llaman Zync. • En software se está migrando a la nueva herramienta llamada VIVADO. • Nosotros usamos ISE, version 14.7 pero xilinx ya dejó de mejorar ISE en octubre de 2013. • Otra cosa que sucedió, creo que hace poco, es que en las versiones gratuitas (webpack) ahora podemos tener acceso al procesador (microblaze)
  • 9. Cuestiones Administrativas • Usaremos 28 clases, teórico-prácticas. Comenzamos hoy, 18 de marzo y terminamos el 10 de julio. • No se puede faltar mas de seis veces, a riesgo de perder la materia…
  • 10. Cuestiones Administrativas • La página de la materia es: http://www.dc.uba.ar/materias/disfpga/2015/c1 • El material de la página se irá subiendo de clase en clase, versiones anteriores en: http://www.dc.uba.ar/materias/disfpga/2014/c2
  • 12. Introducción • Sistemas Embebidos • ¿Que son los FPGA? • ¿En que se diferencian de un microprocesador? • Origen de los FPGA: PLD´s • ASIC´s • FPGA
  • 13. ¿Donde estamos? En el mundo de los sistemas embebidos
  • 14. Sistemas Embebidos • El mundo está lleno de ellos. • Se pueden definir como todo sistema que NO es una PC de escritorio , ni un servidor, ni una workstation, ni una supercomputadora, ni un cluster distribuido, en fin, NO es un sistema programable de propósito general.
  • 15. Sistema Embebido: ¿Que significa?  Small device, like a cell phone?  Small processor installed in some other device, like a car?  Software that controls a consumer device?  Must have real-time response? My favorite: Any system where the user doesn’t want to know that it includes a processor Disertación de un consultor de la industria de embebidos, Doug Locke, 2004 Real-Time Embedded Technology and Applications Symposium: Real-Time and Embedded Systems: Past, Present, and Future
  • 16. Sistemas Embebidos: ¿de donde venimos? • El primer sistema embebido se considera: – Sistema de Control del ICBM (Misil Balístico Inter Continental), desarrollado por la Fuerza Aérea de EEUU en 1961. – Formado por transistores y puertas lógicas – Controlaba la trayectoria y estabilidad del misil – (No falla. Siempre la tecnología avanzando a paso redoblado) – Otros consideran que fue AGD Apollo Guidance Computer, pero yo creo que AGD no era un sistema embebido sino una computadora programable. – Durante la primer década, 1970, las aplicaciones de SE eran para defensa y militares.
  • 17. Sistemas Embebidos • El mercado de los productos embebidos es enormemente mas grande que el mercado de las PC´s que lidera Intel, por ejemplo. • Jim Turley, asesor de la industria de los embebidos, dice que aproximadamente el 0% de los microprocesadores que se fabrican, se usan en el mercado de las PC de escritorio. El 100% restante, se usan en el mercado de los embebidos. • En los últimos años, se vendieron alrededor de 500 millones de microprocesadores para el mercado de las PC´s y 10 mil millones para el mercado de los embebidos.
  • 18. Embedded Processors by the numbers, 1999. • http://vault.embedded.com/1999/9905/9905turley.htm • Es este artículo de Jim Turley, asesor de la industria de los embebidos, escrito en el año 1999, el decía: About zero percent of the world's microprocessors are used in computers. Yup. Every PC, Macintosh, engineering workstation, Cray supercomputer, and all the other general-purpose computers put together account for less than 1% of all the microprocessors sold every year. If you round off the fractions, embedded systems consume 100% of the worldwide production of microprocessors.
  • 19. Sistemas Embebidos • Son sistemas de hardware y software, de propósito específico embebidos en algún producto del mercado. Por ejemplo: – Embebidos de la industria automotriz : navegador GPS, de la aviación: control de aterrizaje automático – Embebidos de la industria de las telecomunicaciones: routers, modems – Embebidos de la industria de las comunicaciones: teléfonos celulares, palms, e-books – Embebidos de la industria del hogar: control de heladeras, microondas, robots – Etc, pero muchos etcéteras.
  • 20. El mundo de los embebidos • Aplicaciones específicas • Optimizadas en consumo y área. • Se trabaja en hardware y en software • Se programa en C , ensamblador y/o HDL • ¡¡¡Costosísima la parte de verificación y testing!!!
  • 21. El mundo de los embebidos • Mucha variedad en las implementaciones • Si un ingeniero necesita desarrollar un producto nuevo, puede elegir entre diversas alternativas: – Procesadores de propósito general, adaptados para placas embebidas – DSP (procesadores específicos para procesamiento de señales) – Microcontroladores – ASIC´s – FPGA´s
  • 22. El mundo de los embebidos … …es muy codiciado….
  • 23. 2010: Intel introduce una FPGA en el Atom Processor
  • 24. Y ¿que es el procesador Atom de Intel? • Es el procesador que está ejecutando este código en mi portátil... • Es el procesador mas pequeño de Intel, fabricado con tecnología de 45 nm (nm=mil millonésima parte del metro) y próximamente de 32nm. (actualmente, Intel ya fabrica con tecnología de 14nm) • Pensados para una amplia gama de dispositivos: netbooks, PC básicas, tablets, laptops, smartphones, dispositivos electrónicos de consumo y otros dispositivos complementarios. • Características del procesador: – Arquitectura de ahorro de consumo de energía, optimizada para su uso en los productos embebidos
  • 25. ¿Y que es una FPGA? • Es… lógica (programable) organizada de alguna manera… dentro de un chip. • Se usa para: – En los 80, cuando recién arrancaban, para implementar “lógica para unir” (glue logic), lógica para interfacear componentes mas grandes (porque sus antepasados son los PLD´s) – 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?
  • 26. Recordemos que ... • Intel es líder en el mercado de procesadores para la industria de las PC básicas. • …pero no en el mercado de los embebidos… (donde reina ARM, especialmente en el mercado de los dispositivos móviles) • Hoy, el mercado de los productos embebidos alcanza los 10 billones (miles de millones) de unidades vendidas incluyendo microcontroladores, procesadores, DSP, FPGA, ASICs.
  • 27. ¿Porque reina ARM en el mercado de los dispositivos móviles? • El secreto de su éxito: – ARM no fabrica micros, solo los diseña y luego los licencia a fabricantes de electrónica 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 teléfonos móviles fabricará procesadores que además del núcleo ARM contendrán el transmisor 3G y el controlador de pantalla y teclado; de esta forma reducimos el número de chips necesarios para montar el teléfono, con la consiguiente reducción de coste, tamaño y consumo. Procesador para router ADSL basado en ARM
  • 28. Idea de Intel para entrar en el mercado de las cosas pequeñas… • Intel no licencia sus procesadores, por lo tanto si queremos hacer un teléfono móvil basado en Intel, tendríamos que montar un conjunto extra de chips…y eso trae problemas y deja a Intel fuera del mercado de las cosas pequeñas… • Solución 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 gráfica, 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.
  • 29. Intel sigue apostando a los FPGA • 25/02/2013 Altera to Build Next-Generation, High-Performance FPGAs on Intel's 14 nm Tri-Gate Technology • Intel’s Hybrid CPU-FPGA by Tom R. Halfhill, The Linley Group http://www.embeddedintel.com/commentary.php?articl e=2143 • Intel reveals its FrankenChip ARM killer: one FPGA and one Xeon IN ONE SOCKET http://www.theregister.co.uk/2014/06/18/intel_fpga_cust om_chip/
  • 30. 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 también nos introducimos en el mundo de los embebidos?
  • 31. ¿Que son los FPGA? Field Programmable Gate Array • Arreglos de Puertas Programables en el Campo : (nunca mas lo traduzco) – Circuitos Integrados que contienen bloques configurables de lógica junto con conexiones configurables entre esos bloques. – Para que se configuran? Para realizar distintas tareas. Algunas FPGA permiten ser programados una sola vez(OTP one time programmable), o bien una y otra y otra vez… – Donde se programan?Los FPGA se programan “in the field”, o sea, no los programa el fabricante, sino que lo puede programar el desarrollador “en su campo”, o sea, en su laboratorio. Si un dispositivo puede ser programado mientras está residente, o embebido en un sistema mayor, se dice que es ISP (In System Programmable) – ¿Porqué Gate Array? Es el nombre de un tipo de tecnología de fabricación de los ASIC (Application Specific Integrated Circuit) Programmable interconnect Programmable logic blocks FPGA ASIC ISP OTP
  • 32. Ross Freeman (1985) • Patente US 4870302: – Configurable electrical circuit having configurable logic elements and configurable interconnects
  • 33. Ross Freeman La foto que este cuatrimestre elegí para ilustrar nuestra página es la de Ross Freeman, inventor de las FPGA y co fundador de Xilinx, junto con Bernard Vonderschmitt. Esto sucedió en el año 1985. Freeman era un ingeniero y trabajaba en circuitos integrados en Zilog, ademas era vice presidente de esa companía y gerente general. Todo en uno. Zilog , que era subsidiaria de Exxon Corporation habia sido fundada, nada mas y nada menos que por Federico Fagin (FF) en 1974 conocido por haber dejado su firma en el primer microprocesador de Intel , el 4004. El producto mas conocido de Zilog fue el Z80 que FF logró que sea incorporado a las videoconsolas como el Sega, Game Boy, etc. Pero eso es otra historia. Mientras trabajaba en Zilog, Freeman pergenia la idea de diseñar un chip de computadora que funcionara como una cinta en blanco, permitiendo al usuario programar ese chip en vez de tener que comprarlo ya hecho. Había que convencer a Exxon de que les dejaran fabricar ese chip en blanco. Y Freeman no lo logró. Asi que, simplemente, dejó todo y se fué. Patentó su linda idea y fundó Xilinx.
  • 34. Origen • Dispositivos Lógicos Programables – PLD – PLA – ROM – PAL – Variantes todas de array programables de puertas AND y OR
  • 36. a b c l l l Address 0 & Address 1 & Address 2 & Address 3 & Address 4 & Address 5 & Address 6 & Address 7 & a !a b !b c !c !a !c!b& & !a c!b& & !a !cb& & !a cb& & a !c!b& & a c!b& & a !cb& & a cb& & Predefined AND array ProgrammableORarray w x y Predefined link Programmable link PROMs (1970)  Solo es configurable la matriz OR.  Útiles para ecuaciones con pocas entradas y muchos términos producto.  Quiere decir Programmable Read Only Memory
  • 37. Implementación de una función lógica combinacional a b c w x y 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 & a b c w x y^
  • 38. a b c l l l Address 0 & Address 1 & Address 2 & Address 3 & Address 4 & Address 5 & Address 6 & Address 7 & a !a b !b c !c !a !c!b& & !a c!b& & !a !cb& & !a cb& & a !c!b& & a c!b& & a !cb& & a cb& & Predefined AND array ProgrammableORarray w x y Predefined link Programmable link w = (a & b) x = !(a & b) y = (a & b) ^ c Implementación con PROM
  • 39. a b c & & & a !a b !b c !c N/A Predefined AND array Programmable ORarray Predefined link Programmable link l l l w x y N/A N/A PLA (Programmable Logic Array)  Disponible a partir de 1975, se pueden programar los dos arrays.  Se hicieron algunas variantes: arrays AND con arrays NOR. No mucho éxito en el mercado  Son útiles cuando diversas funciones usan o comparten términos producto.  Son mas lentas que las PROMS Programmable
  • 40. a b c & & & a !a b !b c !c a cb& & a c& !b !c& Predefined AND array Programmable ORarray Predefined link Programmable link l l l w x y w = (a & c) | (!b & !c) x = (a & b & c) | (!b & !c) y = (a & b & c) Implementación con PLA
  • 41. a b c l l l & & & & & & a !a b !b c !c Programmable AND array PredefinedORarray w x y Predefined link Programmable link PAL (Programmable Array Logic)  Al revés de las PROM, la parte programable es la matriz AND  Las GAL (Generic Array Logic) son variaciones de las PAL, mas sofisticados (EE)  Todos estos dispositivos, aparecen en el mercado con una variedad de opciones: inversión de las salidas, salidas triestado, salidas registradas, etc. Además de tener un número mas grande de entradas y salidas.
  • 42. Programmable Interconnect matrix Input/output pins SPLD-like blocks CPLD´s (vamos llegando) • A finales de los 70, los inventores de la PAL, introducen el Mega-Pal, dispositivo con 4 Standard Pals interconectadas de alguna manera. No funcionó. Consumía mucho. • 1984: Altera (nueva empresa) introduce el CPLD basado en tecnología CMOS y EPROM. • Las conexiones entre los bloques se programan mediante la matriz de interconexión.
  • 43. Proceso de Diseño • ¿Como se diseñaba un circuito usando PLD´s? Se realizaba un esquemático o bien un diagrama de estados, todo en papel porque no existían las herramientas que hoy conocemos. El esquemático se convertía del papel a una tabla (con un formato especial, requerido por el dispositivo programador). Esta tabla indicaba que conexiones se debían programar. La tabla se tipeaba en un computadora y se bajaba luego al dispositivo programador. Cada vendedor de PLD´s, obviamente, había desarrollado su propio formato para el archivo, que solo servía para sus dispositivos. (a) Host computer (b) Device programmer Unprogrammed device Programmed device
  • 44. Ensambladores y Herramientas de Diseño • 1980: JEDEC (Joint Electron Device Engineering Council) propone un formato standard para los archivos de configuracion de los PLD´s. • John Birkner, creador de las PAL, crea PALASM el primer ensamblador para PAL. Es un primitivo HDL (Hardware Description Languaje) y además una aplicación software. Es usado para trasladar expresiones booleanas y grafos de estados a una tabla para PAL. PALASM solo es para PAL´s 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 PLD´s 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 ASIC´s y FPGA.
  • 46. PALASM TITLE Example PATTERN Simple REVISION A 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 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 X=/A*B + A*B + A*/B + /A*/B*C Z=/A*B + A*B + A*/B + /A*/B*C SIMULATION TRACE-ON A B C /X Z SETF /A /B /C SETF /A /B C SETF /A B /C SETF /A B C SETF A /B /C SETF A /B C SETF A B /C SETF A B C TRACE-OFF obligado opcional Equaciones booleanas •Trace define que señales mostrará el simulador. •SETF define el valor de las variables en cada simulación.
  • 47. 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.
  • 48. 24-Pin Small PAL Family PAL 20 L 8
  • 49. PALASM: archivo .xpt • Después de creado el archivo extensión .pds se ensambla. El ensambaldor genera dos archivos: – .xpt: contiene el fuse map – .trf es el archivo para simulación • x se usa para denotar un contacto quemado. • Columnas 0,1,2,3,4 5 corresponden a las entradas y sus complementarios. • Cada fila es un término producto • Filas 0,1,2,3 corresponden a la función x (sus términos producto y su habilitación) • Filas 8 y 9 corresponden a la función Z. Sus términos producto y su habilitación. • Fijense que cada OR puede admitir hasta 7 términos producto (pues uno de ellos se reserva para la habilitación)
  • 50. PALASM: archivo .xpt • Interpretación de los términos producto. – La función 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). – La función Z=/A*B + A*B + A*/B + /A*/B*C Es idéntica a la anterior, salvo en el valor de la variable dependiente Z, que ahora la usamos sin negar. Pero, las salidas son negadas en el dispositivo…. Así que el ensamblador tiene que complementar la expresión Z=A + B + C /Z= /A*/B*/C (aquí se aplica Morgan)
  • 51. PALASM: archivo .trf (simulación)
  • 52. PLDs ASICs Standard Cell Full Custom Gate Arrays Structured ASICs* SPLDs CPLDs *Not available circa early 1980s The GAP • Hacia 1980, es evidente que hay un GAP entre el mundo de los IC. • Por un lado, los dispositivos programables, muy sencillos pero muy configurables. Por el otro, los ASIC´s, soportando funciones complejas, pero muy caros, y muy costosos en tiempo de diseñar. Además, una vez el diseño estaba hecho, quedaba congelado en el silicio. • Para salvar ese GAP, Xilinx lanza al mercado en 1984, una nueva clase de IC: FPGA. FPGA
  • 53. 3-input LUT a b c flip-flop clock mux y q d FPGA • Basados en el concepto de bloque lógico programable, que contiene una LUT, un registro y un multiplexor. • Cada FPGA contendrá un número grande de estos bloques. • Utilizando SRAM todos los bloques se pueden programar para que realicen una función diferente.
  • 54. | & a b c y y = (a & b) | !c Required function Truth table 1 0 1 1 1 0 1 000 001 010 011 100 101 110 1111 y a b c y 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 SRAM cells Programmed LUT 8:1Multiplexer a b c FPGA
  • 55. Bloques Básicos de Xilinx • Se llama Logic Cell (LC) y está compuesto (básicamente) por: – Una LUT de 4 entradas – Un multiplexor – Un registro (flip-flop (actúa por flanco de reloj) o latch (actúa por nivel, monitorea siempre las entradas)) 16-bit SR flip-flop clock mux y q e a b c d 16x1 RAM 4-input LUT clock enable set/reset
  • 56. LUT´s de SRAM • Cuando una arquitectura basada en LUT se implementa con celdas de SRAM, las celdas, además de LUT´s, pueden ser utilizadas como pequeños bloques de memoria RAM (una LUT de 16 entradas por un bit, puede ser una RAM de 16x1). Esto se denomina RAM Distribuida. (Distributed RAM) • Como las celdas de SRAM están encadenadas unas con otras (las celdas de SRAM de configuración, pero también las de las LUT,s) formando una larga cadena, algunos fabricantes permiten que las que forman las LUT´s sean tratadas de forma independiente, como un shift register. 0 1 From the previous cell in the chain 0 0 To the next cell in the chain SRAM cells 16-bit SR 16 x 1 RAM 4-input LUT
  • 57. Slice de Xilinx • Dos LC forman un Slice. • El slice comparte algunas señales: – Clock – Clock Enable – Set/Reset 16-bit SR 16x1 RAM 4-input LUT LUT MUX REG Logic Cell (LC) 16-bit SR 16x1 RAM 4-input LUT LUT MUX REG Logic Cell (LC) Slice
  • 58. CLB de Xilinx • Un nivel mas arriba están los CLB´s: Configurable Logic Block. Pueden tener dos o cuatro slices, (o los que sean en el futuro) • Un CLB corresponde a una “isla” de lógica programable dentro del mar de las conexiones programables. • A la jerarquía de bloques, le corresponde una jerarquía en las interconexiones. Es decir, hay una muy rápida interconexión entre LC´s, un poco menos rápida entre Slices y mas lenta entre CLB´s. • Local Routing comunica slices dentro del CLB y con otros CLB´s cercanos. • Una matriz de interconexión provee acceso a recursos generales CLB CLB CLB CLB Logic cell Slice Logic cell Logic cell Slice Logic cell Logic cell Slice Logic cell Logic cell Slice Logic cell Configurable logic block (CLB) CIN Switch Matrix BUFT BUF T COUTCOUT Slice S0 Slice S1 Local Routing Slice S2 Slice S3 CIN SHIFT
  • 63. Zynq Board (ZyBO, de Digilent)