Está en la página 1de 80

Diseo de Sistemas con FPGA

Introduccin

Patricia Borensztejn
revisado: septiembre 2009

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. 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)

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

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)

Introduccin: Que son las FPGA?


Que son?
En que se diferencian de un microprocesador?
Que parte del mercado ocupan? (para qu se
venden?)
Tecnologas de Programacin
Origen de los FPGA: PLDs
ASICs
FPGA

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.
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
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 tecnologa de fabricacin de
los ASIC (Application Specific
Integrated Circuit)

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!!)

Microprocesadores, FPGA, ASICs


Microprocesadores
Las funciones se realizan
en software
No son custom parts por
lo tanto no son tan buenos
como un chip dedicado
(ASIC)

FPGA
Las funciones se realizan
en hardware.
No son custom parts. Son
mas lentos que los ASICs,
consumen mas energa.

ASIC (Application Specific IC)


Diseado para implementar una funcin lgica particular. Son
hechos a medida.
Son ms rpidos que los FPGA y manufacturados en gran
escala son mas baratos.
Consumen menos.

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, o bien, para que se


usan, o bien, compiten entre s?
Cual es el mercado de los
microprocesadores?
Computadoras personales (menos del 1% del
mercado) (ver Jim Turley). Propsito General.
En Sistemas Embebidos. Propsito
Especfico. Ej. MP3, cmaras digitales
enfin el 100% de la produccin de
microprocesadores y microcontroladores.

Algunas perlitas de Jim Turley


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.
I figure the average middle-class household has about 40 to 50
microprocessors in itor 55 if you own a PC. There's the famous
microprocessor on the motherboard, of course, but there's also one in
every IBM PC keyboard; one on each floppy, hard, and CD-ROM
drive; one on the 3D accelerator card; and probably one each on your
modem and your network-interface card. Force-feedback joysticks and
wheels add even more, as do USB peripherals, printers, SCSI
controllers, and Zip or tape drives.

Algunas perlitas de Jim Turley


Gordon Moore predicted that the number of transistors one could fit on
a given amount of silicon would double about every 18 months, and so
far, he's been right. Personally, I predict that the amount of computing
power we carry on our person will double every 12 months.

Algunas perlitas de Jim Turley


En1999 se vendieron para el mercado de embebidos:

250 millones de microprocesadores de 32 bits


1000 millones de microprocesadores de 16 bits
1000 millones de microprocesadores de 8 bits
1000 millones de microprocesadores de 4 bits

Contra 100 millones para el mercado de computadoras


(PCs, MACs, workstations y supercomputadoras)
So how come all the press and glory goes to Intel and its PC
competitors? How can a product with approximately 0% of the market
get so much attention? Well, Intel may have a small slice of the overall
pie, but it has the biggest slice of one very important pie. (As we've
seen, Intel does not control the microprocessor market; it controls the
PC processor market, a major distinction that's frequently lost on the
six o'clock news.)

Mercados, o bien, para que se


usan, o bien, compiten entre s?
Cual es el mercado de los FPGA?
En los 80 se usaban para implementar lgica para unir (glue
logic), lgica para interfacear componentes mas grandes.
En los 90, telecomunicaciones y redes
2000 todo tipo de aplicaciones

Segmentos de mercado donde se han introducido


Compiten por el mercado con los procesadores dedicados,
DSP.
Reemplazan diseos realizados antes mediantes ASICs (chips
hechos a medida)
Reemplazan a los microcontroladores embebidos en sistemas
Explotacin del alto grado de paralelismo y reconfigurabilidad de
los FPGA como aceleradores hardware de algoritmos
software. Simulacion. Criptografa. Etc.

Mercados (www.xilinx.com)

Aerospace & Defense


Radiation-tolerant FPGAs along with intellectual property for image processing, waveform
generation, and partial reconfiguration for SDRs.
Automotive
Automotive silicon and IP solutions for gateway and driver assistance systems, comfort,
convenience, and in-vehicle infotainment.
Broadcast
Solutions enabling a vast array of broadcast chain tasks as video and audio finds its way
from the studio to production and transmission and then to the consumer.
Consumer
Cost-effective solutions enabling next generation, full-featured consumer applications,
such as converged handsets, digital flat panel displays, information appliances, home
networking, and residential set top boxes.
Industrial/Scientific/Medical
Industry-compliant solutions addressing market-specific needs and challenges in industrial
automation, motor control, and high-end medical imaging.
Storage & Server
Data processing solutions for Network Attached Storage (NAS), Storage Area Network
(SAN), servers, storage appliances, and more.
Wireless Communications
RF, base band, connectivity, transport and networking solutions for wireless equipment,
addressing standards such as WCDMA, HSDPA, WiMAX and others.
Wired Communications
End-to-end solutions for the Reprogrammable Networking Linecard Packet Processing,
Framer/MAC, serial backplanes, and more

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.

40 aos de Ley de Moore


Una de las maneras en que se
enunci la ley de Moore fu : El
nmero de transistores en un
circuito integrado se podr
duplicar cada dos aos
Este cuadro muestra el
crecimiento exponencial de la
integracin de transistores en
un chip.

Es interesante tambin extrapolar


hacia
atrs
podemos ver como la
tecnologa hace que el poder
de cmputo crezca
exponencialmente con el
tiempo.
En rigor, el autor de este cuadro
(The Law of Accelerating Returns
by Ray Kurzweil) dice que lo que no
nos damos cuenta es que hay un
doble crecimiento exponencial, de lo
contrario no estaramos obteniendo
una curva sino una lnea recta en el
cuadro de la derecha).
Estn representadas 49 mquinas.
Desde las primeras calculadoras
electromecnicas que calcularon el
censo de EEUU entre 1890 y 1899, la
mquina de Robinson que craque
el cdigo secreto de los nazis en
1940, la mquina CBS de tubos de
vacio que predijo la eleccin de
Eisenhower, las computadoras que
se usaron en los primeros
lanzamientos al espacio. Y.
Aquellas en las que escribimos y
mostramos esta transparencia.

Sin embargo

Miremos este cuadro.


Muestra que si tomamos
como medida la densidad
computacional que
relaciona el nmero de
operaciones por segundo,
la frecuencia de operacin
y el rea ocupada, vemos
que sta ha ido
descendiendo con los
aos
Esto muestra que los
microprocesadores no
estn siendo capaces de
traducir en un aumento
equivalente en el
rendimiento (MOPS) al
aumentar la frecuencia y el
rea ocupada.
Sin embargo, en el mismo
perodo de tiempo, los
FPGA, han sobrepasado la
Ley de Moore.

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.

RAMP Blue: contiene


(http://ramp.eecs.berkeley.edu/index.
php?index)
21 sistemas llamados BEE2.
Cada uno de los sistemas BEE2
contiene 48 cores de Microblaze (core
de procesador implementado en una
FPGA)
O sea, en total el sistema tiene 1008
procesadores

Y bien, compiten entre s?

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

Para poder programarlos necesitamos algn


mecanismo que nos permita programar o
configurar un chip de silicio preconstruido.
Vamos a ver entonces las tecnologas de
fabricacin que nos van a permitir programar
(configurar) estos dispositivos.

Tecnologas de Programacin

Tecnologas de Programacin
Logic 1
Potential links
a

Pull-up resistors

NOT
b

&

y = 1 (N/A)

AND

NOT

En la ausencia de links, todas las


entradas a la puerta AND estan
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
NOT

Fbt

&

y = 0 (N/A)

AND
Fbf
NOT

El dispositivo se fabrica con todos los


enlaces en su lugar. Un enlace es un
fusible. O sea que, en su forma no
programada, la funcin valdr siempre
0.
Para remover los fusibles se aplican
pulsos de un voltaje alto a las entradas.

Tecnologas de Programacin:
(1) Fusible Link
Logic 1
Fat
a

Pull-up resistors

NOT

&

AND

Fbf
NOT

y = a & !b

Removiendo los fusibles sealados, la


funcin implementada es y=a & !b
Este proceso de remover los fusibles se
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
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

Haciendo crecer los antifusibles


sealados, la funcin programada es:
!a & b

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

(a) Before programming

(b) After programming

La columna de silicio acta como aislante entre las dos capas de


metal, y tiene una resistencia muy alta (mas de un billn ohms)
El acto de programacin hace crecer una va de polisilicio.
Estos dispositivos son OTP.

Tecnologas de Programacin:
ROM
Logic 1
Mask-programmed
connection

Pull-up resistor

Row
(word) line

Transistor
Logic 0

Column
(data) line

Celda de una memoria ROM

Consiste de array de filas


(row) y columnas
Cada columna tiene un
nico pull-up que intenta
mantener a 1 esa
columna
Cada interseccin
fila/columna tiene un
transistor y una conexin
potencial
La ROM se preconstruye
y la misma arquitectura
puede usarse para
mltiples clientes.

Tecnologas de Programacin:
(3) Mediante Mscara (ROM)
Logic 1
Mask-programmed
connection

Pull-up resistor

Row
(word) line

Transistor
Logic 0

Column
(data) line

Celda de una memoria ROM

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

Con trol g ate


te rmin al

Drain
termina l

control gate

Silicon
dio xid e

control gate
source

drain

(a) Standard MOS transistor

Silicon
substrate

floating gate
source

drain

(b) EPROM transistor

Problema con las tecnologas basadas en fusible links y mscaras


son OTP.
Erasable Programmable EPROM (1971) : los transistores tienen
una puerta adicional de polisilicio : puerta flotante
En su estado no programado, la puerta flotante no est cargada y
no afecta el normal funcionamiento del transistor.
Al programar el transistor, se carga la puerta flotante, inhibiendo la
normal operacin del transistor, y distinguiendo aquellas celdas
que han sido programadas, de las que no lo han sido.

Tecnologas de Programacin:
(5) EPROM
Logic 1
Pull-up resistor
Row
(word) line

EPROM
Transistor

Logic 0

Column
(data) line

Para borrar la EPROM hay que quitarla


del circuito.
Problemas: mucho tiempo para ser
borradas (20). Cuanta mas integracin,
se necesita mas radiacin mas tiempo
de exposicin.

En este caso, no es necesario el


fusible.
En su estado no programado, tal
como se compra, todas las
puertas flotantes estn
descargadas. O sea, si la lnea
se activa, se activa el transistor y
la columna conduce 0.
La programacin, al cargar la
puerta flotante, inhibe la
operacin del transistor, por lo
tanto la columna conduce 1.
Para descargar esa puerta, se
utiliza radiacin ultravioleta.

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

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

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.

Tecnologas de Programacin:
(8) .

La tecnologa avanza proximamente.


MRAM. (magnetic RAM) quien sabe

Tecnologas de Programacin
Technology

Symbol

Predominantly
associated with ...

Fusible-link

SPLDs

Antifuse

FPGAs

EPROM

SPLDs and CPLDs

E2PROM/
FLASH

SPLDs and CPLDs


(some FPGAs)

SRAM

SRAM

FPGAs (some CPLDs)

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

(especially when using


bitstream encryption)

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

Origen de los FPGAs


Tecnologas relacionadas
Tecnologas
Transistores (1947, Schockley,Brattain, Bardeen.
Laboratorios Bell)
Circuito Integrado (1958, Jack Kilby. Texas
Instrument. Jean Hoerni & Robert Noice, Fairchild
Semiconductor)
DRAM ( Intel 1970) SRAM (Fairchild 1970)
Microprocesador (Intel, 1971) (2300 transistores:
4004)
Dispositivos programables: PLDs : SPLDs a
principios de los 70, CPLDs a fines de los 70
ASICs
FPGA

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

Predefined AND array

!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.

Implementacin de una funcin


lgica combinacional
a
b

&

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

Implementacin con PROM


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
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)

Predefined AND array

a !a b !b c !c

PLA (Programmable Logic Array)


b

Predefined link
Programmable link
&
&
&

N/A
l

Predefined AND array

N/A

a !a b !b c !c

N/A

Programmable
OR 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 trminos
producto.
Son mas lentas que las PROMS

Implementacin con PLA


b

Predefined link
Programmable link
&
&
&

a & b & c
a & c
!b & !c

x = (a & b & c) | (!b & !c)


y = (a & b & c)

w = (a & c) | (!b & !c)

Predefined AND array

a !a b !b c !c

Programmable
OR array

PAL (Programmable Array Logic)


a

Predefined link
Programmable link

Predefined OR array

&
&
&
&
&
&
l

Programmable
AND array

a !a b !b c !c

Al revs 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:
inversin de las salidas,
salidas triestado, salidas
registradas, etc. Adems de
tener un nmero mas grande
de entradas y salidas.

CPLDs (vamos llegando)

Programmable
Interconnect
matrix

Input/output pins

SPLD-like
blocks

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.
Consuma mucho.
1984: Altera (nueva
empresa) introduce el CPLD
basado en tecnologa CMOS
y EPROM.

Las conexiones entre los bloques se programan mediante


la matriz de interconexin.

Proceso de Diseo

Como se diseaba un circuito


usando PLDs?
Se realizaba un esquemtico o bien
un diagrama de estados, todo en
papel porque no existan las
herramientas que hoy conocemos.
El esquemtico se converta del
papel a una tabla (con un formato
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
programador.
Cada vendedor de PLDs,
obviamente, haba desarrollado su
propio formato para el archivo,
que solo serva para sus
dispositivos.

Unprogrammed
device
Programmed
device

(a) Host computer

(b) Device programmer

Ensambladores y Herramientas de
Diseo

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 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
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

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).
La funcin Z=/A*B + A*B + A*/B + /A*/B*C
Es idntica 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 expresin

Z=A + B + C
/Z= ??????? (aqu se aplica Morgan)

PALASM: archivo .trf (simulacin)

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

Los transistores y sus conexiones se construyen mediante muchas


capas (typical 10 to 15 in CMOS) puestas unas sobre las otra
Cada capa tiene una forma especial definida por una mscara.
Algunas de las capas o niveles forman transistores, otras los planos
de conexin.
Un aspecto importante de un IC es el tamao del mas pequeo
transistor que puede ser fabricado:
Este es medido en micrones (m, 10-6 meter)
Por ejemplo, decimos que un IC est construido con un proceso
de 0.50 m
Tal cual como profetiz Moore, el proceso contina mejorando,
o sea haciendose mas pequeo.

The state-of-art process approaches less than


a fraction of 0.1 m (known as deep sub-micron)

ASICs
ASICs

Gate
Arrays

Structured
ASICs

Standard
Cell

Full
Custom

Increasing complexity

ASIC: Es un chip (circuito integrado, IC) diseado


para una determinada aplicacin y para una
determinada compaa.
Full custom: hecho enteramente por encargo (a
medida): desde componentes pequeos, a
microprocesadores diseados y fabricados para
una compaa especfica.

Circuitos Dedicados (full custom)


Los ingenieros tienen el control completo sobre cada
una de las mscaras usadas para fabricar el chip.
El vendedor del ASIC no prefabrica ningn componente
en el silicio y no provee ninguna librera ni puertas
predefinidas.
Por medio de las herramientas apropiadas, los
ingenieros pueden modelar a mano las dimensiones de
los transistores y pueden crear sus propias funciones
basados en estos transistores. Incluso, las propias
herramientas con las que ellos hacen estas cosas son
diseadas por ellos.
El proceso es altamente complejo, y consume mucho
tiempo, pero el chip resultante contiene la mxima
cantidad de lgica con el mnimo desperdicio de silicio.

Gate Array

(a) Pure CMOS basic cell

(b) BiCMOS basic cell

I/O cells/p ads


Chan nels

B asic ce lls

(a) Single-column arrays

(b) Dual-column arrays

Gate Array: (1975) basado en la idea


de celdas bsicas formadas por
transistores y resistencias sin
conexin.
Cada fabricante de ASIC determina
que incluir en una celda bsica, y
construye chips presiliconados
formados por arrays de celdas. (sea of
cells).
Los fabricantes definen una librera
funciones lgicas (puertas primitivas,
multiplexores, y registros) que son los
que usan los ingenieros de la
aplicacin.
Los ingenieros disean hasta llegar a
nivel de netlist. Luego se hace el
mapeo, ubicacin y routing con las
herramientas provistas por el
fabricante.
El resultado de este proceso son las
mscaras con las cuales se crean los
niveles de metalizacin que unirn las
celdas bsicas entre s, as como los
componentes dentro de las celdas
bsicas.

Schematic. Gate Level. Netlist.


SET_A

SET

SET_B
G1 = NAND
N_DATA

DATA
CLOCK

G2 = NOT

N-Q
G4 = DFF

CLEAR_A

CLEAR

CLEAR_B

Gate Level: el diseo se


representa como una
coleccin de puertas
lgicas y funciones y
conexiones entre ellas.

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

(IN1=SET_A, IN2=SET_B, OUT1=SET);


(IN1=DATA, OUT1=N_DATA);
(IN1=CLEAR_A, IN2=CLEAR_B, OUT1=CLEAR);
(IN1=SET, IN2=N_DATA, IN3=CLOCK,
IN4=CLEAR, OUT1=Q, OUT2=N_Q);

END CIRCUIT=TEST;

Netlist: para
poder usar el
simulador, el
diseo debe
describirse de
forma textual
(archivos de
texto)

Standard Cell

Como en el caso de Gate Arrays, el fabricante define un conjunto


de bloques bsicos (multiplexores, registros, puertas, etc) que
ofrece al ingeniero en forma de libreras.
Tambin ofrece libreras que pueden incluir microprocesadores,
elementos de comunicacin, funciones de ROM y RAM.
Adems hay IP que los ingenieros pueden reusar.
IP: Intellectual Property: bloques funcionales creados por algun
otro. Se compran.
Los ingenieros, con todos esos elementos hacen el diseo hasta
llegar a nivel de netlist, que describe las puertas lgicas que usarn
y sus conexiones. Las herramientas de diseo son, incluso hoy,
muy sofisticadas)
La diferencia con las Gate Arrays es que no hay nada prefabricado.
Cada funcin se crea con el mnimo nmero de transistores
necesarios, sin componentes redundantes.
Mas eficiente uso del silicio que Gate Arrays.

Structured ASIC

(2002) Cada vendedor tiene su


arquitectura.
Cada dispositivo est formado por
elemento bsico llamado mdulo
(tiles) que contiene una mezcla de
lgica prefabricada (multiplexores,
puertas, lookup table) junto con uno o
mas registros y posiblemente algo de
RAM
Un array (sea) de estos elementos se
prefabrica sobre la superficie del chip.
Adems, en los bordes de este mar de
tiles (tejas, baldosas, ladrillo) hay
bloques de RAM, generadores de
reloj, etc.
Cada dispositivo se particulariza
mediante niveles de metalizacin,
aunque muchos de estos niveles ya
estn tambin predefinidos. Solo 2 o 3
niveles se deben aplicar. Reduccin
de costos.
Consumen mas que un standard cell.
Tambien ocupan mas. (dos o tres
veces mas).

Structured ASIC tiles


LUT

LUT

(a) Gate, mux, and flop-based

(b) LUT and flop-based

Prefabricated I/O,
cores, etc.
Embedded RAM
Sea-of-tiles

Generic structured ASIC

FPGA

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 ASICs,
soportando funciones
complejas, pero muy caros,
y muy costosos en tiempo
de disear. Adems, una
vez el diseo estaba hecho,
quedaba congelado en el
silicio.
Para salvar ese GAP, Xilinx
lanza al mercado en 1984,
una nueva clase de IC:
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

Un FPGA est compuesto


por un gran nmero de
bloques lgicos islas
rodeados por un mar de
interconexiones
programables.
Adems, suele haber
interconexiones globales de
alta velocidad que atraviesan
todo el chip.
Y, entradas/salidas.
Los FPGA son el puente
entre los ASICs y los PLDs
porque son altamente
configurables, y, pueden ser
utilizados para implementar
funciones complejas.
Pueden ser utilizados en
diseos hbridos, junto con
ASIcs.
Los FPGA son arquitecturas
de grano medio porque
utilizan bloques lgicos, a
diferencia de los ASIC que
son grano fino porque se
programan a nivel de
transistor

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

También podría gustarte