Está en la página 1de 106

UNIVERSIDAD CATLICA BOLIVIANA

SAN PABLO

MICROCONTROLADORES

IMT-320

Ing. Mauricio Uyuni M.


mauric.mum@gmail.com
II.-2015
.

EVALUACIN N3

Describir los siguientes conceptos (ej: principio de funcionamiento,


caractersticas, ventajas/desventajas, etc)

Unidad

de control hardwired / Unidad


de control microprogramada

Representacin

de punto fijo (fixed point)

Representacin

de punto flotante (floating

point)

IMT-320 Microcontroladores

DE LOS PLDS A LOS FPGAS

PROGRAMMABLE
LOGIC DEVICES (PLDS)

CONTENIDO: TECNOLOGA DE SOPORTE


Generalidades

(limitaciones)

la NRE: Diseo Digital

Inicios

de la lgica programable PLDs


bsicos

CPLDs

y FPGAs

Caractersticas
Comparacin

de FPGAs
con otras tecnologas

NON RECURRING ENGINEERING


La Ingeniera no Recurrente(NRE) se refiere al costo
incurrido por una sola vez para realizar la Investigacin,
Diseo, Desarrollo y Prueba de un nuevo producto.
EL COSTO ES ALTO se evala si el nuevo producto ser
rentable. Los costos de NRE pueden ser prohibitivos y el
producto deber venderse muy bien para poder costear
los costos de la NRE

Aplication-Specific
Integrated Circuit (ASIC)

NON RECURRING ENGINEERING


Digital designers:

$70k salary
$30k overhead
$10k computer
$10k CAD tools
Total: $120k * 7 = $840k

$100k salary
$30k overhead
$10k computer
$100k CAD tools
Total: $240k * 3 = $720k

$45k salary
$20k overhead
$5k computer
Total: $70k * 5 = $350k

Fabrication

Analog designers

Support staff

Back-end tools: $1M


Masks: $1M
Total: $2M / year

Summary
2 years @ $3.91M / year
$8M design & prototype

NRE Y MTRICAS DE COSTO POR UNIDAD

Costo Unitario

El costo monetario de la manufactura de cada copia del


sistema excluyendo los costos de NRE

Costos de Ingeniera no Recurrente(NRE)

Costo monetario del diseo del sistema

Costo total = costo del NRE + costo unidad*nmero de


unidades

Costo por producto = costo total / # unidades

NRE EN PROGRAMMABLE LOGIC DEVICES

ACERCNDONOS AL LMITE
Simple die (Chip
o C.I.)

Wafer (Galleta
Electrnica)
Tendencia fue

+
9

por rea

COSTO POR TRANSISTOR


cost:
-per-transistor

1
0.1

Fabrication capital cost per transistor (Moores law)

0.01
0.001

0.0001
0.00001
0.000001
0.0000001
1982

10

1985

1988

1991

1994

1997

2000

2003

2006

El nmero de transistores en un chip se dobla


aproximadamente cada dos aos; al igual que su
velocidad de funcionamiento

2009 2012

ACERCNDONOS AL LMITE : RENDIMIENTO

11

ACERCNDONOS AL LMITE CUNTICO

a es aproximadamente 3

12

ACERCNDONOS AL LMITE

13

Chip

Metal
layers

Line
width

Wafer
cost

Area
mm2

Dies/wafer

Die
cost

386DX

0.90

$900

43

360

$4

486 DX2

0.80

$1200

81

181

$12

Power PC
601

0.80

$1700

121

115

$53

HP PA 7100

0.80

$1300

196

66

$73

DEC Alpha

0.70

$1500

234

53

$149

Super Sparc

0.70

$1700

256

48

$272

Pentium

0.80

$1500

296

40

$417

FIN DE LA ERA MOORE ?

Se ha estado re-dimensionando los MOSFET


(PMOS) al disminuir su tamao
Incrementa la capacitancia de la Gates.
Reduce las corrientes de salida de S a D

El grosor de oxido para la puerta es de 2.5-3 nm

IC
package
14

IC

source

gate
oxide

channel drain

Silicon substrate

Nueva

ley de Moore?

Nueva ley de Moore?

IMT-320 Microcontroladores

15

RETOS PARA AHORA Y EL FUTURO

Evaluado el reto de hacer Diseo Digital


Costo
Confiabilidad (Reliability)
Escalabilidad (Scalability)
Velocidad (speed), retraso, frecuencia de
operacin, paralelismo
Disipacin de Energa (Power Dissipation)
Energa para desarrollar una funcin (Energy to
perform a function)
Flexibilidad (Flexibility), adaptabilidad

16

LOS PLDS COMO GLUE LOGIC RESPUESTA AL DILEMA


DE MOORE?

Los dispositivos PLD permiten crear diseos lgicos digitales a ser


implementados en un dispositivo simple.
Pueden ser borrados elctricamente y reprogramados con un nuevo
diseo hacindose atractivos para la academia y para el prototipado.
Tipos de dispositivos lgicos programables
SPLDs (Simple Programmable Logic Devices)
ROM (Read-Only Memory)
PLA (Programmable Logic Array)
PAL (Programmable Array Logic)
GAL (Generic Array Logic)
CPLDs (Complex Programmable Logic Devices)
FPGA (Field Programmable Gate Array)

17

PROGRAMMABLE LOGIC DEVICES

18

PROGRAMMABLE LOGIC DEVICES

Las primeras cuatro variedades de PLDs son muy


similares entre si. Todas ellas tienen una matriz de
conexin a la entrada, la cual conecta las entradas
del Chip, a un arreglo de compuertas AND.
Todos ellas tiene una matriz de conexin de salida,
las cuales conectan las salidas de las compuertas
AND a compuertas OR que manejan las salidas del
dispositivo.

19

PROGRAMMABLE LOGIC DEVICES

1.

2.
3.

Las diferencias entre las cuatro primeras categoras son:


En una ROM, la matriz de conexin de entrada esta alambrada
(hardwired). El usuario solo puede modificar la matriz de conexin de
salida.
En una PAL/GAL, la matriz de conexin de salida esta alambrada. El
usuario puedo solamente modificar la matriz de conexin de entrada.
En un PLA el usuario podr modificar ambas matrices de conexin, la
de entrada y la de salida.

20

PROGRAMMABLE LOGIC DEVICES

Estructura General de un PLD

21

PROGRAMMABLE LOGIC DEVICES

Buffer Inversor

(a) Smbolo

22

(b) Lgica equivalente

PLDS: LOS PRINCIPIOS

..programacin mediante fusibles

(a) Antes de programar

23

(b) Despus de programar

PROGRAMMABLE LOGIC DEVICES

Notacin de compuertas OR en PLDs

(a) Antes de programar

(b) Despus de programar


24

PROGRAMMABLE LOGIC DEVICES

Notacin de compuertas AND en PLDs

(a) Antes de programar

(b) Despus de programar


25

PROGRAMMABLE LOGIC DEVICES

Recordemos que un circuito lgico combinacional es aquel donde la


prxima salida depende solamente de la entrada actual.

Entradas
e
(a) Antes de programar

Cualquier
nmero
de
entradas

26

Salidas
Lgica
Lgica
(b) Despus de programar
Combinacion
Combinacio
al
nal

Compuertas Lgicas
AND, OR, NOT
(sin lazos de
realimentacin)

Cualquier
nmero
de salidas

ELEMENTOS BSICOS DE LOS SISTEMAS


DIGITALES

Sabemos que cualquier funcin lgica (combinacional) puede ser


implementada como suma de productos o producto de sumas.
27

PROGRAMMABLE LOGIC DEVICES

Tabla de Verdad
28

PROM PARA DISEO LGICO 70S TEXAS I.

(a) Tabla de Verdad


29

(b) Realizacin en la PROM

PROGRAMMABLE LOGIC ARRAYS (PLAS)

Idea Construir un arreglo grande de


compuertas AND-OR con muchas entradas y
trminos producto (AND) y con conectividad
programable.

30

n entradas
compuertas AND tienen 2n entradas
directas y complementada por cada
variable.
m salidas, a travs de compuertas OR
(grandes)
Cada compuerta AND es programada y
conectada a cada compuerta OR de
salida.
AMD (Lattice)

PROGRAMMABLE LOGIC ARRAYS (PLAS)


NIVEL DE COMPUERTAS: ESTRUCTURA

31

EJEMPLO: 4X3 PLA, 6 PRODUCTOS

32

EJEMPLO: REPRESENTACIN COMPACTA

33

EJEMPLO: FUNCIN LGICA

34

EJEMPLO: FUNCIN LGICA


(a) Mapa de Karnaugh

(b) Implementacin

35

LGICA DE ARREGLOS PROGRAMABLES (PALS)


Cuan beneficioso es compartir los productos?
No lo suficiente para justificar un arreglo OR extra
PALs Arreglo de OR fijo
Cada compuerta AND est permanentemente conectada a una
compuerta OR.
Ejemplo: PAL16L8 - AMD

36

ELEMENTOS DISCRETOS SON EL PASADO

37

Captura de forma de ondas


(Oscilograma)

38

PROGRAMMABLE LOGIC DEVICES

std_logic;
std_logic);

Captura de forma de ondas


(Oscilograma)

39

PROGRAMMABLE LOGIC DEVICES

40

PROGRAMMABLE LOGIC DEVICES: GAL


El GAL (Generic Array Logic) es reprogramable. Por este motivo es til
para el prototipado y desarrollo de nuevos productos y para propsitos
de entrenamiento.
A

Fueron creados por Lattice


Semiconductor. Son de alta
velocidad y poseen un
interfaz con circuitos de 3.3
V as como 5 V.

41

COMPLEX PROGRAMMABLE LOGIC


DEVICES

CPLDs son dispositivos digitales que pueden ser


programados con diversas funciones lgicas
Las funciones son diseadas utilizando un
software de aplicacin que es programado
en el chip
Son un grupo de GAL o PALs que comparten un
bus de interconexin

42

PAL-like
block

PAL-like
block

I/O block

I/O block

COMPLEX PROGRAMMABLE LOGIC DEVICES

43

PAL-like
block

PAL-like
block

I/O block

I/O block

Interconnection wires

COMPLEX PROGRAMMABLE LOGIC DEVICES


I/O

I/O

I/O

Logic
Block

Logic
Block

Logic
Block

Interconnect
Logic
Block

Logic
Block

Logic
Block

I/O

I/O

I/O

Nmero pequeo de PLDs grandes


(Ej. 36V18) en un simple chip
Interconexin programable entre los PLDs

44

ARQUITECTURA DE LA FAMILIA XILINX 9500


36 Signal pins

18 outputs

Global Clock
Global set/reset
45

Global 3 state control

18 Output
enable signals

ARQUITECTURA DE LA FAMILIA XILINX 9500

46

Los CPLDs tiene pocos trminos AND por macro-celda,


XC9500 tiene 5 mientras que 16V8 tiene 8 y 22V10 tiene 6-16
Pero cada macro-celda puede usar los ANDs no usados de
las macroceldas vecinas gracias al asignado de trminos
producto

VENTAJAS DE LOS CPLDS Y FPGAS


Reducen el espacio utilizado en las tarjetas, disminuyendo el costo y
aumentando la confiabilidad del sistema.

Un pequeo CPLD
de 44 pines es
equivalente a 600
compuertas

Algunos CPLDs tienen


un equivalente a
millones de
compuertas y con ms
47
de 400 pines.

PROGRAMANDO UN CPLD Y FPGAS


Los CPLD tienen muchos pines, los grandes tienen > 200
Remover del Printed Circuit Board (PCB) es difcil , por lo
que se utilizan tcnicas de in system programming
Usualmente a travs de un interfaz o puerto JTAG (Joint
Test Action Group) que se conecta a la computadora.

48

EJEMPLO DE UN CPLD
Utilizar un CPLD para implementar la funcin:

f = x1x3x6' + x1x4x5x6' + x2x3x7 + x2x4x5x7

(from interconnection wires)


x1

x2

x3

x4

x5

x6

x7

unused

PAL-like block
0

0
f
D Q

49

VENTAJAS DE LOS PLDS AVANZADOS


Fcil de Modificar

50

Se Modifica el software para modificar


el hardware

VENTAJAS DE LOS PLDS AVANZADOS


Fcil de mapear las ideas en circuitos

51

Entrada directa del diseo conceptual


en un circuito funcional
Diseo racionalizado del proceso de
prototipado

VENTAJAS DE LOS CPLDS


Diseo Transportable

52

Como diseador podr fcilmente


intercambiar los diseos y modificaciones del
diseo (email, CD, sitio web, etc). Personas
separadas por la distancia podrn trabajar
conjuntamente en el mismo diseo (e.g.
satlite)

VENTAJAS DE LOS CPLDS


Reutilizacin

Inventariado universal como un solo


integrado, que puede se instanciado en
varios sistemas o formas.

Fcil de duplicar
Diseo

53

VENTAJAS DE LOS PLDS AVANZADOS


Reprogramabilidad

Pueden ser reprogramados cientos de


veces.

Diseo 1

Diseo 2

Diseo 3

54

VENTAJAS DE LOS PLDS AVANZADOS


Software y Lenguaje de programacin

55

Manufacturadores proporcionan
software para el diseo gratis
especialmente para estudiantes.
El VHDL es el estndar que la mayora
de los mano-facturadores aceptan
(aunque hay dos estndares ms de
facto: Verilog, ABEL)

VENTAJAS DE LOS PLDS AVANZADOS


Simple de interfazar
Los dispositivos pueden fcilmente
ser interzafados a un computadora
travs de puertos seriales, paralelos,
USB o JTAG
Modificaciones en el circuito

56

Pueden ser reprogramados en tiempo


real(runtime ).

LA EVOLUCIN DE LOS PLDS FPGAS

Compuertas lgicas (1950s-60s)


Estructuras regulares de dos niveles
(1960s-70s)
Multiplexores y decodificadores,
(PLA)
Arreglos programables de suma de
productos (1970s-80s)
PLDs y PLDs complejos
Arreglos de puertas programables
(1980s -90s)
Altas densidades de integracin,
permitiendo nuevas aplicaciones, e.g.
prototipado, emulacin, aceleracin.
Heterogeneidad en lgica
programable
SoC, NoC, ARM, BRAM, etc.
57

Tendencia
pasada y
actual a
mayores
grados de
integracin
heterognea

http://whatis.techtarget.com/definition/ARM-processor

TECNOLOGA IBM DE LOS 70S

Compuertas Lgicas simples

Interconexin

Alambres para conectar las


entradas y salidas de los
bloques lgicos

Bloques de E/S

Combinacin de transistores
para implementar lgica
combinacional y secuencial.

Bloques especiales en la
periferia para conexiones
externas

Alambres para hacer


interconexin

58

Realizada cuando el chip es


fabricado mascara
programable. Cualquier
circuito

IMEC: Repite la historia reconfigurable

CHIPS SEMICONDUCTORES

ASICs

Application Specific
Integrated Circuits

59

Microprocessors
FPGA & CPLD
Microcontrollers

LGICA PROGRAMABLE

Un circuito integrado que puede ser


programado/reprogramado con una
lgica digital a un nivel exacto(eliminar
ambigedades)

Inicio a finales de los 70s y creci


constantemente

Actualmente disponible hasta


aproximadamente 700K Flip-Flops en un
simple chip

FIELD-PROGRAMMABLE GATE ARRAYS


(FPGA)
O/I
Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

Logic
Block

O/I
61

I/O

Logic
Block

I/O

Logic
Block

Gran nmero de
pequeos Bloques
Lgicos Programables
Bloques inmersos en
un extenso conjunto
de interconexiones
programables

A FIELD-PROGRAMMABLE GATE ARRAY


Grupo de 8 celdas lgicas

Bloque de Memoria

Cables de
Interconexin
62

FIELD-PROGRAMMABLE GATE ARRAY:


QUE SON?

63

CPLDs son relativamente pequeos y muy utilices para


lgica simple. Son adems mas rpidos para muchas cosas
que los FPGAs.
Los Field Programmable Gate Arrays (FPGA) puede manejar
circuitos ms grandes y complejos.
No poseen planos AND/OR
Proporciona bloques lgicos, bloques de entrada salida,
alambres de interconexin y conmutadores (switches)
Los bloques lgicos proporcionen funcionalidad
Los switches de interconexin permiten a los bloques
lgicos ser conectados entre ellos y los pines de entrada
salida.

FIELD-PROGRAMMABLE GATE ARRAYS

64

Bloques
Programables
Buses
Conexiones a
buses
programables

FIELD-PROGRAMMABLE GATE ARRAYS

65

LUTS COMO ELEMENTO BSICO

Las funciones lgicas se implementan en Lookup Tables (LUTs)


Multiplexores eligen 1 de N entradas
Flip Flops, Registros, elementos de almacenaje sncronos

66

CONFIGURANDO UN LUT
LUT es una RAM con un ancho de datos de 1 bit
Los datos almacenados son programados al
energizar el sistema(chip)
Tabla de
verdad
Funcin requerida
a
b

y a b c

LUT programada

LUT
1
0
1
1
1
0
1
1
a,b,c

MUX

LUTS COMO ELEMENTO BSICO

68

LUTS COMO ELEMENTO BSICO

Funciones ms largas pueden ser construidas conectando varios


bloques

69

LUTS COMO ELEMENTO BSICO

70

Se tiene FF a las salidas, como elementos de almacenaje


Lgica secuencial (lgica combinacional en las LUTs)
Pipelines, Diseo Lgico Sncrono
El sistema esta gobernado por un Reloj Global (Global Clock)

FUNCIONES ESPECIALES DE LOS FPGAS


SRAM

interna

Multiplicadores

y bloques
DSP embebidos

Analizador

embebido

CPUs

lgico

embebidos

I/O

de alta velovidad
(~10GHz)

Interfaces

SDRAM

PLLs

DDR/DDRII/DDRIII

UTILIZACIN
Diseos

digitales dnde los ASIC no son


comerciales

Sistemas

Reconfigurables

Sistemas

Actualizables

Prototipado

rpido y emulacin de sistemas


orientados a ASIC

Educacin

ingeniera)

(diversos campos de la

FABRICANTES

Xilinx

Altera

Lattice

Actel

Se utilizarn FPGAs de Xilinx (+Xilinx EdaTools)

PIPELINING
Lgica de entubamiento, segmentacin o PIPELINING
Funciones mas largas pueden ser construidas conectando varios
bloques
Pipepelining Logic
Combinational Logic

74

PIPELINING

Mejora el desempeo del sistema

Digital designs where ASIC is not


commercial
Reconfigurable systems
Upgradeable systems
ASIC prototyping and emulation
Education

75

16-bit SR
16x1 RAM

a
b
c
d
e
clock
clock enable
set/reset

4-input
LUT

y
mux
flip-flop
q

ENRUTAMIENTO

Seales (buses) de enrutamiento entre los bloques lgicos


Esto esta gobernado por las SRAMs

76

CONFIGURANDO LOS FPGAS

Millones de SRAM son utilizadas para las funciones LUTs y para el


enrutamiento o conectividad.
La configuracin se pierde cuando la tarjeta es apagada*.
Se almacena el patrn descriptor del diseo en memorias no
voltiles, e.g. ROM o SD cards.
El proceso de configuracin toma algunos segundos.

77

DISEANDO CON LAS FPGAS

78

Se crea la descripcin en un lenguaje descriptor de


hardware HDL.
Se Compila (Sintetiza) y se crea un Netlist de
compuertas booleanas.
Se modifica e implementa la funcionalidad del FPGA
Mapea
Enruta
Se programa el cdigo del sistema en especfico
(bitfile al FPGA).
Se simula y verifica el sistema.
Se realiza la documentacin

IMT-320 Microcontroladores

79

FIELD-PROGRAMMABLE GATE ARRAYS

Histricamente, Arquitecturas FPGA comenzaron al


mismo tiempo que los CPLDs
FPGAs son ms cercanos a los ASICs programables
nfasis grande en ruteo de las interconexiones.
Temporizacin difcil de predecir -- mltiples
saltos vs. retraso fijo en matriz de conmutacin
CPLDs.
Pero, ms escalables a tamaos mayores.
Bloques lgicos programables FPGA poseen
solamente unas pocas entradas y 1 o 2 flip-flops,
pero poseen muchas ms comparadas con el # de
Macro Celdas en las CPLDs.
80

CONFIGURABLE LOGIC BLOCKS (CLBS) XILINX

81

CLBs son los principales recursos para implementar


lgica combinacional como secuencial.
2 Slices con carry chain(permite a los FPGAs
ejecutar operaciones aritmticas efectivamente)
independientes.

SLICE DE VIRTEX-E

82

SLICES

83

Cada slice
contiene 4
generadores de
funciones lgicas.
8 elementos de
almacenamiento
Multiplexores y
lgica de acarreo.

DETALLE DE UN SLICE VIRTEX-E

84

IMPLEMENTANDO FUNCIONES LGICAS 4


ENTRADAS
Funcin
de 4
entradas

Funcin de 3
entradas
Registrada

85

IMPLEMENTANDO FUNCIONES LGICAS 5


ENTRADAS

86

IMPLEMENTANDO FUNCIONES LGICAS 5


ENTRADAS

Funcin
de
Entradas

87

IMPLEMENTANDO FUNCIONES MAS GRANDES

88

IMPLEMENTANDO FUNCIONES MAS GRANDES

Funcin
de 6entradas
de otro
slice

89

FUNCIN SUMA 2 BITS POR SLICE, ACARREO


RPIDO

Carry(a,b,cin)

Sum(a,b,cin)
a
b

cin

90

LUTS USADAS COMO MEMORIA DISTRIBUIDA 16X2

91

BLOCK RAM (BRAM)

92

ENRUTAMIENTO VIRTEX

93

ENRUTAMIENTO NO LOCAL

94

Se extiende el salto de 6 CLB en una direccin


Conexiones a 3 y 6 CLB CLBs
Express busses
Toman ventaja de varias capas metlicas
Alambres extensos
Se extienden a los largo y ancho del chip
Seales globales
E.g. clk, reset, etc.
Buses de tercer estado
Se extienden por todo el chip
Utilizan los datapath(trayectoria de datos) bit-slice

CARACTERSTICAS DE ENTRADA-SALIDA

95

HACIA LOS HARD IPS: DETALLES DEL SLICE DSP

Sumador previo usado mucho en DSP


Multiplicador
ALU independiente
Lgica comparacin.

96

VIRTEX 6 SPARTAN 6

97

FPGAS

98

IMT-320 Microcontroladores

99

PROGRAMANDO UN FPGAS

El mtodo IPs es utilizado


Al tener las LUTs clulas con almacenaje
voltil, deben ser reescritas para su
funcionamiento.
Ninguna

de las otras tecnologas PLDs


son voltiles.
Las celdas de almacenaje de las FPGA
son cargadas va PROM durante el
Boot
100

PROGRAMANDO UN FPGAS: EJEMPLO BSICO

Utilizacin de un FPGA con dos entradas por LUT para


implementar la funcin:

101

f = x1x2 + x2'x3

TRADE-OFFS DEL DISEO DIGITAL

102

COMPARACIN.UNA MS

103

APLICACIONES

IMT-320 Microcontroladores

104

APLICACIONES
Conectados

a un Mundo Embebido

IMT-320 Microcontroladores

105

GRACIAS!

También podría gustarte