Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Patricia Borensztejn
revisado: septiembre 2009
Temario y Planificacin
Introduccin. Tecnologas (1)
Arquitectura de las FPGA. (2)
Modelado de Sistemas Combinacionales. Verilog.
Entorno de desarrollo de xilinx. (3,4)
Modelado de Sistemas Secuenciales. Un ejemplo
completo. UART. (5,6)
PicoBlaze: una herramienta para introducirnos en el codiseo hardware software. Un ejemplo sencillo. (7,8,9)
Pipeline: un diseo sencillo (10)
Memorias embebidas. (11)
Testing (12)
Cuestiones Administrativas a
acordar
Usaremos 16 clases, terico-prcticas.
Si por algn motivo de fuerza mayor
tuviramos que suspender alguna clase,
la reemplazaramos el da viernes en el
mismo horario.
La asistencia del alumno debe superar el
80% del total de clases para aprobar la
materia(No debe faltar mas de 3 veces)
Programmable
interconnect
Programmable
logic blocks
FPGA
ISP
ASIC
OTP
Microprocesadores y FPGA
Ninguno de los dos son circuitos dedicados. (no
full custom) No estn diseados para una funcin
especfica, sino que el usuario los programa.
Los microprocesadores implementan funciones
por software. Los FPGA lo hacen por hardware.
(pero un procesador es, desde el punto de
vista del diseador de procesadores (Intel, por
ejemplo), un full custom ASIC!!)
FPGA
Las funciones se realizan
en hardware.
No son custom parts. Son
mas lentos que los ASICs,
consumen mas energa.
Microprocesadores y FPGA
bits de
configuracin
instrucciones
lgica
bits de
configuracin
lgica
CPU
memoria
Programacin CPU:
Las instrucciones se
obtienen de la memoria
Las instrucciones
seleccionan operaciones
complejas
bits de
configuracin
lgica
bits de
configuracin
lgica
Configuracin FPGA:
Bits permanecen en el
dispositivo que programan
Un bit de configuracin
controla un switch o un bit
de lgica
Mercados (www.xilinx.com)
Ley de Moore
Moore di un discurso en el ao 1965,
donde predijo que en el ao 1970 (cinco
aos mas adelante) el costo por
componente sera la dcima parte del
actual costo.
Y adems predijo que
esa tendencia se
mantendra por 10
aos.
Sin embargo
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
Tecnologas de Programacin
Tecnologas de Programacin
Logic 1
Potential links
a
Pull-up resistors
NOT
b
&
y = 1 (N/A)
AND
NOT
Tecnologas de Programacin:
(1) Fusible Link
Fuses
Logic 1
Fat
a
Pull-up resistors
Faf
NOT
Fbt
&
y = 0 (N/A)
AND
Fbf
NOT
Tecnologas de Programacin:
(1) Fusible Link
Logic 1
Fat
a
Pull-up resistors
NOT
&
AND
Fbf
NOT
y = a & !b
Tecnologas de Programacin:
(2) Antifuse
Unprogrammed
antifuses
a
Logic 1
Pull-up resistors
NOT
b
&
y = 1 (N/A)
AND
NOT
En su estado no programado, el
antifusible tiene una resistencia tan
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
Programmed
antifuses
a
Logic 1
Pull-up resistors
NOT
b
&
y = !a & b
AND
NOT
Tecnologas de Programacin:
(2) Antifuse
A mo rp h ou s silico n co lu mn
Po lysilico n via
Me ta l
O xid e
Me ta l
S u bstra te
Tecnologas de Programacin:
ROM
Logic 1
Mask-programmed
connection
Pull-up resistor
Row
(word) line
Transistor
Logic 0
Column
(data) line
Tecnologas de Programacin:
(3) Mediante Mscara (ROM)
Logic 1
Mask-programmed
connection
Pull-up resistor
Row
(word) line
Transistor
Logic 0
Column
(data) line
Se pre-construyen y, para
adaptarlas a los
requerimientos del cliente
se utiliza una mscara
fotogrfica para definir
cuales celdas tendrn o
no una conexin
programada.
Si la lnea de fila se
activa, el transistor se
activa y :
Si hay conexin, en la
columna aparece el valor
lgico 0
Si no hay conexin, en la
columna sigue el valor 1
del pullup.
Tecnologas de Programacin:
(4) PROM
Problema de los dispositivos
Logic 1
programados con mscara:
son caros! Se hacen en la
Fusible link
Pull-up resistor fbrica y solo salen a cuenta
Row
si son muchisimos
(word) line
Programmable ROM (1970)
estn basados en la
tecnologa de fusible link.
En su estado no
programado, tal como se
Column
Transistor
compra, todos los enlaces
(data) line
Logic 0
estn presentes. O sea, si la
lnea se activa, la columna
conduce 0.
Celda de una memoria PROM
La programacin al remover
los enlaces, hace que la
celda almacene un 1.
Tecnologas de Programacin:
(5) EPROM
So urce
te rmin al
Control g ate
termina l
Dra in
termina l
So urce
te rmin al
Drain
termina l
control gate
Silicon
dio xid e
control gate
source
drain
Silicon
substrate
floating gate
source
drain
Tecnologas de Programacin:
(5) EPROM
Logic 1
Pull-up resistor
Row
(word) line
EPROM
Transistor
Logic 0
Column
(data) line
Tecnologas de Programacin:
(6) EEPROM y FLASH
Normal
MOS transistor
E 2PROM
transistor
Electrically Erasable
Programmable ROM
Necesita dos transistores, el
normal se utiliza para el borrado.
Son 2,5 veces mas grandes que
los EPROM.
E2PROM Cell
Tecnologas de Programacin:
(7) SRAM
SRAM
Tecnologas de Programacin:
(8) .
Tecnologas de Programacin
Technology
Symbol
Predominantly
associated with ...
Fusible-link
SPLDs
Antifuse
FPGAs
EPROM
E2PROM/
FLASH
SRAM
SRAM
Tecnologas de Programacin
Feature
SRAM
Antifuse
E2PROM /
FLASH
Technology node
State-of-the-art
One or more
generations behind
One or more
generations behind
Reprogrammable
Yes
(in system)
No
Yes (in-system
or offline)
Reprogramming
speed (inc.
erasing)
Fast
----
3x slower
than SRAM
Volatile (must
be programmed
on power-up)
Yes
No
No
(but can be if required)
Requires external
configuration file
Yes
No
No
Good for
prototyping
Yes
(very good)
No
Yes
(reasonable)
Instant-on
No
Yes
Yes
IP Security
Very Good
Very Good
Size of
configuration cell
Large
(six transistors)
Very small
Medium-small
(two transistors)
Power
consumption
Medium
Low
Medium
Rad Hard
No
Yes
Not really
Acceptable
Tecnologas Vivas
1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000
Transistors
ICs (General)
SRAMs & DRAMs
Microprocessors
SPLDs
CPLDs
ASICs
FPGAs
PLDs
Programmable Logic Device
Dispositivos cuya arquitectura interna est
predeterminada por el fabricante, pero pueden ser
configurados por los ingenieros en el campo para
realizar una variedad de funciones.
Pocas puertas lgicas funciones simples
PLDs
SPLDs
PROMs
PLAs
CPLDs
PALs
GALs
etc.
PROMs (1970)
b
Predefined link
Programmable link
Address 0
&
Address 1
&
Address 2
&
Address 3
&
Address 4
&
Address 5
&
Address 6
&
Address 7
&
!a & b & !c
!a & b & c
a & !b & !c
a & !b & c
a & b & !c
a & b & c
l
!a & !b & c
a !a b !b c !c
!a & !b & !c
Programmable OR array
La programacin se puede
realizar con cualquiera de
las tecnologas vistas
(fusibles, EPROM,
EEPROM).
Solo es configurable la
matriz OR.
tiles para ecuaciones con
pocas entradas y muchos
trminos producto.
&
w
x
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
Predefined link
Programmable link
Address 0
&
Address 1
&
Address 2
&
Address 3
&
Address 4
&
Address 5
&
Address 6
&
Address 7
&
!a & !b & !c
!a & !b & c
Programmable OR array
!a & b & !c
!a & b & c
a & !b & !c
a & !b & c
a & b & !c
a & b & c
x = !(a & b)
y = (a & b) ^ c
w = (a & b)
a !a b !b c !c
Predefined link
Programmable link
&
&
&
N/A
l
N/A
a !a b !b c !c
N/A
Programmable
OR array
Predefined link
Programmable link
&
&
&
a & b & c
a & c
!b & !c
a !a b !b c !c
Programmable
OR array
Predefined link
Programmable link
Predefined OR array
&
&
&
&
&
&
l
Programmable
AND array
a !a b !b c !c
Programmable
Interconnect
matrix
Input/output pins
SPLD-like
blocks
Proceso de Diseo
Unprogrammed
device
Programmed
device
Ensambladores y Herramientas de
Diseo
PALASM
PALASM
opcional
obligado
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
B A C D NC NC
; 13
NC
Equaciones booleanas
Trace define que
seales mostrar el
simulador.
SETF define el valor
de las variables en
cada simulacin.
7
8
NC NC
9 10 11 12
NC NC NC GND
14 15
16 17 18
19 20 21 22 23 24
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
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
PAL 20 L 8
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)
Z=A + B + C
/Z= ??????? (aqu se aplica Morgan)
ASIC
Application Specific IC
Diseado para una funcin especfica.
Contienen cientos de millones de puertas
lgicas y pueden ser usados para crear
funciones complejas.
El proceso de diseo y construccin de un
ASIC es largo y caro, y finaliza en su
realizacin en silicio.
No puede ser usado ni testeado antes de su
fabricacin.
Fabricacin de un IC
ASICs
ASICs
Gate
Arrays
Structured
ASICs
Standard
Cell
Full
Custom
Increasing complexity
Gate Array
B asic ce lls
SET
SET_B
G1 = NAND
N_DATA
DATA
CLOCK
G2 = NOT
N-Q
G4 = DFF
CLEAR_A
CLEAR
CLEAR_B
G3 = OR
BEGIN CIRCUIT=TEST
INPUT SET_A, SET-B, DATA, CLOCK, CLEAR_A, CLEAR_B;
OUTPUT Q, N_Q;
WIRE
SET, N_DATA, CLEAR;
GATE
GATE
GATE
GATE
G1=NAND
G2=NOT
G3=OR
G4=DFF
END CIRCUIT=TEST;
Netlist: para
poder usar el
simulador, el
diseo debe
describirse de
forma textual
(archivos de
texto)
Standard Cell
Structured ASIC
LUT
Prefabricated I/O,
cores, etc.
Embedded RAM
Sea-of-tiles
FPGA
PLDs
SPLDs
CPLDs
ASICs
The
GAP
Gate Arrays
Structured ASICs*
Standard Cell
Full Custom
*Not available circa early 1980s
FPGA
Basados en el concepto de
bloque lgico programable,
que contiene una LUT, un
registro y un multiplexor.
Cada FPGA contendr un
nmero grande de estos
bloques.
Utilizando SRAM todos los
bloques se pueden
programar para que realicen
una funcin diferente.
a
b
c
d
clock
3-input
LUT
y
mux
flip-flop
q
FPGA
a
b
c
Truth table
&
|
y = (a & b) | !c
a b c
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Programmed LUT
SRAM cells
1
0
1
1
1
0
1
1
000
001
010
011
100
101
110
111
8:1 Multiplexer
Required function
ab c
Programmable
interconnect
Programmable
logic blocks
To other chips
on the board
To other chips
on the board
To other chips
on the board
ASIC
FPGA
To other chips
on the board
Consumo y Rendimiento
Comparacin entre procesadores y
ASICs
Efficient Embedded Computing .Artculo de Stanford
University, est en la pgina. Computer. Julio 2008
Algunos nmeros interesantes de rendimiento:
Dispositivos electrnicos (telfonos celulares, cmaras de video
y televisin digital) realizan ms operaciones que la ms rpida
computadora, y con mucho menor consumo que una
computadora personal.
Ejemplo: 3G mobile phone receiver requiere 35 a 40 GOPS
(Giga( mil millones) Operaciones por segundo) de rendimiento
para soportar un canal de 14.4 Mbps (para un canal de
100Mbps (OFDM) requeririan entre 210 y 290 GOPS.
En contraste, el rendimiento de pico de una computadora tpica
es de algunos GOPS, pero mantiene menos de un GOPs en la
mayora de las aplicaciones.
Consumo y rendimiento
Consumo:
Eficiencia requerida para un embebido: 25pJ/op (para
el receptor 3G)
Un ASIC , diseado cuidadosamente, puede conseguir una
eficiencia de 5pJ/op en la tecnologa CMOS de 90-nm.
Un procesador embebido muy eficiente o un DSP requieren
250pJ/op
Un laptop requiere 20nJ/op (4000 veces la de un ASIC)
Conclusin: las eficiencias de los procesadores
programables son inadecuadas para las aplicaciones
embebidas, obligando a los ingenieros a usar hardware.
(caro, muy caro!!! En dinero y en tiempo de desarrollo )
Referencias
BEE2: A High-End Reconfigurable Computing System
Chen Chang, John Wawrzynek, and Robert W.
Brodersen. University of California, Berkeley
IEEE Design & Test of Computers, 0740-7475/05/$20.00
2005 IEEE
The Law of Accelerating Returns by Ray Kurzweil
The Landscape of Parallel Computing Research: A
View from Berkeley. David Paterson et al.
http://www.embedded.com/1999/9905/9905t
. Embedded processors by the
numbers. Jim Turley