tema 1 introducción a los sistemas programables avanzados

100
SISTEMAS DIGITALES DE INSTRUMENTACIÓN Y CONTROL Departamento de Ingeniería Electrónica Rafael Ramos Lara Febrero 2008 TEMA 1 Introducción a los sistemas programables avanzados

Upload: nguyendieu

Post on 07-Jan-2017

293 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: TEMA 1 Introducción a los sistemas programables avanzados

SISTEMAS DIGITALES DE INSTRUMENTACIÓN Y CONTROL

Departamento de Ingeniería Electrónica

Rafael Ramos LaraFebrero 2008

TEMA 1Introducción a los sistemas programables avanzados

Page 2: TEMA 1 Introducción a los sistemas programables avanzados

1

1

TEMA 1Introducción a los sistemas

programables avanzados

Tema 1: Introducción a los sistemas programables avanzados 2

Índice (I)

1.1. Introducción a los PLD’s1.1.1. Alternativas de diseño de sistemas digitales. Diseño con PLD’s.1.1.2. Estructuras básicas

1.2. PLD’s de alta capacidad1.2.1. Arquitectura de las CPLD’s1.2.2. Arquitectura de las FPGA’s

1.2.2.1. Características generales1.2.2.2. Tecnologías de las conexiones programables1.2.2.3. Bloques lógicos1.2.2.4. Arquitecturas de interconexión

Page 3: TEMA 1 Introducción a los sistemas programables avanzados

2

Tema 1: Introducción a los sistemas programables avanzados 3

Índice (II)

1.3. Dispositivos Programables de Xilinx1.3.1. Familia XC40001.3.2. Familia Spartan II1.3.3. Familia Spartan-31.3.4. Familia Virtex II1.3.5. Familia XC9500

1.4. Dispositivos Analógicos Programables (FPAD)1.4.1. TRAC de FAS1.4.2. ispPAC de Lattice

4

1.1 Introducción a los PLD’s

Page 4: TEMA 1 Introducción a los sistemas programables avanzados

3

5

1.1.1 Alternativas de diseño de sistemas digitales. Diseño con PLD’s

Tema 1: Introducción a los sistemas programables avanzados 6

Implementación de diseños lógicosImplementación de diseños lógicos

Existen diversas formas de implementar circuitos lógicos dependiendo de la complejidad del diseño:

- Circuitos de lógica estándar: 7400, 7402, 74138... Válidos para aplicaciones poco complejas- Lógica programable (PLD): alternativa al diseño con circuitos de lógica estandar para diseños de complejidad media/alta- Sistemas microprocesadores ó microcontroladores: para aplicaciones muy complejas ó que requieran procesar cantidades importantes de información.

PLD Alternativa al diseño con lógica estándar

7400

7404 7402

7474

7474

740474107400

PLD

Page 5: TEMA 1 Introducción a los sistemas programables avanzados

4

Tema 1: Introducción a los sistemas programables avanzados 7

Dispositivos Lógicos Programables (PLD’s)Dispositivos Lógicos Programables (PLD’s)

- Circuito integrado de aplicación específica

- Programable por el usuario

- Permite implementar un sistema lógico de tipo combinacional o secuencial

- Inicialmente surgieron como alternativa de diseño a los circuitos de lógica estandar

- Actualmente la capacidad de las PLD’s le permiten realizar funciones de muy alta complejidad

Tema 1: Introducción a los sistemas programables avanzados 8

Ventajas de diseño con PLD vs. lógica estandarVentajas de diseño con PLD vs. lógica estandar

Facilidad de diseño: - Programación transparente al usuario- Sistemas de desarrollo de fácil manejo y utilización

Fiabilidad: - Reducción del número de integrados de la placa- Posibilidad de borrado y reprogramación- Simplificación del test

Velocidad: - Tiempos de propagación menores- Menores capacidades parásitas

Coste: - Una PLD reemplaza varios componentes discretos lo cual implica una reducción de coste- Reducción de coste de ensamblado y stock

Page 6: TEMA 1 Introducción a los sistemas programables avanzados

5

Tema 1: Introducción a los sistemas programables avanzados 9

Dispositivos PLDDispositivos PLD

En el mercado existe una gran variedad de dispositivos PLD.

La nomenclatura varia en función de las características de la estructura interna y del fabricante.

PLD

PALPLA

FPGA

GALPLS

CPDLLCA

PROM

Tema 1: Introducción a los sistemas programables avanzados 10

Proceso de diseñoProceso de diseñoExisten en el mercado muchos paquetes de software para el diseño con PLD's. El modo de proceder es el mismo:

Concepción del diseño

Lenguajes de alto nivel

Ecuacionesde estado

Tabla deverdad

Capturade esquemas

Ecuacionesbooleanas

Programación

PLD

Selección del dispositivo

Definición de la lógica

Compilación y Simulación

Page 7: TEMA 1 Introducción a los sistemas programables avanzados

6

11

1.1.2 Estructuras básicas

Tema 1: Introducción a los sistemas programables avanzados 12

Estructura básica (I)Estructura básica (I)La estructura básica de un PLD se compone de una matriz de puertas AND seguida de una matriz de puertas OR con conexiones programables.

Tipos conexiones programables:- Fusibles- Tecnología bipolar- Tecnología EPROM

a b c Conexión entre filas y columnas:

conexión fija

conexión programable

sin conexión

x

Page 8: TEMA 1 Introducción a los sistemas programables avanzados

7

Tema 1: Introducción a los sistemas programables avanzados 13

Estructura básica (II)Estructura básica (II)

Utilizando esta simplificación la estructura anterior queda:

- Inicialmente todas las conexiones existen

- Al programar se eliminan conexiones

a b c

Normalmente se simplifica el esquema eléctrico indicando varias conexiones como una sola:

Tema 1: Introducción a los sistemas programables avanzados 14

Ejemplo de programación de una función lógicaEjemplo de programación de una función lógica

La utilización de una estructura de puertas AND y OR se basa en que cualquier función lógica se puede expresar como una suma de productos

a b c

c

a b ca b c

y

Ejemplo: y = a b c + a b c + c

Page 9: TEMA 1 Introducción a los sistemas programables avanzados

8

Tema 1: Introducción a los sistemas programables avanzados 15

Tipos de PLD's (I)Tipos de PLD's (I)

• PAL (Programmable Array Logic)

• Plano AND programable, OR fijo

Tema 1: Introducción a los sistemas programables avanzados 16

Tipos de PLD's (II)Tipos de PLD's (II)

• PROM (ROM programable)

• Tipos: PROM, EPROM, EEPROM

• Plano AND fijo, OR programable

Page 10: TEMA 1 Introducción a los sistemas programables avanzados

9

Tema 1: Introducción a los sistemas programables avanzados 17

Tipos de PLD's (III)Tipos de PLD's (III)

• PLA (Programmable Logic Array)

• Planos AND y OR ambos programables

• Máxima flexibilidad de programación pero mayor retardo

Tema 1: Introducción a los sistemas programables avanzados 18

Salida de alta impedancia y con realimentación interna

Salida con báscula (registrada)

Variantes de las estructuras

Page 11: TEMA 1 Introducción a los sistemas programables avanzados

10

Tema 1: Introducción a los sistemas programables avanzados 19

Macrocélula ProgramableMacrocélula Programable

Otras estructuras poseen en la salida un bloque configurable por el usuario denominado Macrocélula.

Las macrocélulas incorporan: Registros programables; Multiplexores; Bufferstriestados

Características generales de las macrocélulas:- Polaridad de salida programable- Salida por báscula o combinacional- Salida triestada controlada por un término producto- Realimentación programable- Posibilidad de utilizar el terminal de la macrocélula como entrada o salida

Tema 1: Introducción a los sistemas programables avanzados 20

PAL22V10 (I)PAL22V10 (I)

Encapsulado de la PAL22V10

Page 12: TEMA 1 Introducción a los sistemas programables avanzados

11

Tema 1: Introducción a los sistemas programables avanzados 21

PAL22V10 (II)PAL22V10 (II)

Opciones de configuración de la macrocélula:

Arquitectura de la macrocélula

Tema 1: Introducción a los sistemas programables avanzados 22

Otras estructurasOtras estructuras

PLS (Secuenciadores Lógicos Programables):

Los PLS son PLA que incorporan básculas en las salidas

GAL : son dispositivos reprogramables tipo PAL con macrocélulas de salida

Dispositivos de alta densidad de integración: de 1000 a 10.000.000 de puertas lógicas equivalentes:

FPGA (Field Programmable Gate Arrey)

CPLD (Complex Programmable Logic Device)

Page 13: TEMA 1 Introducción a los sistemas programables avanzados

12

23

1.2 PLD’s de alta capacidad

Tema 1: Introducción a los sistemas programables avanzados 24

Dispositivos Lógicos ProgramablesDispositivos Lógicos Programables

FPGA: Field-Programmable Gate ArraysCPLD: Complex Programmable Logic Device

PLD’s

<1000 puertas >1000 puertas

PLDs de Alta CapacidadPLDs sencillasPAL

PROMPLAPLSGAL

FPGA CPLD

Page 14: TEMA 1 Introducción a los sistemas programables avanzados

13

25

1.2.1 Arquitectura de las CPLD’s

Tema 1: Introducción a los sistemas programables avanzados 26

ComplexComplex Programmable Logic DeviceProgrammable Logic Device (CPLD)(CPLD)

• Un CPLD contiene múltiples bloques lógicos, cada uno similar a una pequeña PLD tipo 22V10.• Componentes:Logic Block; Programmable Interconnect; I/O

Prog

ram

mab

le

Inte

rcon

nect

LogicBlock

LogicBlock

LogicBlock

LogicBlock

LogicBlock

LogicBlock

LogicBlock

LogicBlock

I/O I/O

Page 15: TEMA 1 Introducción a los sistemas programables avanzados

14

Tema 1: Introducción a los sistemas programables avanzados 27

Programmable Programmable InterconnectsInterconnects (PI)(PI)

• Conecta señales de salida de Bloques Lógicos con entradas de otros Bloques lógicos

• Implementaciones típicas del PI:- Interconexión por matriz:

• Permite conectar cualquier señal del PI a cualquier entrada o salida de un Bloque Lógico• Altamente flexible• Ocupa más área y consume mayor potencia

- Interconexión con multiplexor:• Se utilizan multiplexores para realizar las conexiones• Hay un multiplexor por cada entrada del un Bloque Lógico• Sistema poco flexible

Tema 1: Introducción a los sistemas programables avanzados 28

Interconexión por matriz programable

LogicBlock

oooi

LogicBlock

oooi

Page 16: TEMA 1 Introducción a los sistemas programables avanzados

15

Tema 1: Introducción a los sistemas programables avanzados 29

Interconexión con multiplexor

LogicBlock

oooi

LogicBlock

oooi

Tema 1: Introducción a los sistemas programables avanzados 30

Bloque Lógico (I)

• Un Bloque Lógico (LB) es similar a una 22V10• Esta compuesto por los siguientes elementos

- Matriz de puertas AND con conexiones programables- Matriz de puertas OR y Macrocélulas

• El tamaño del LB se mide por el número de macrocélulas que contiene

Mcell

Mcell

Page 17: TEMA 1 Introducción a los sistemas programables avanzados

16

Tema 1: Introducción a los sistemas programables avanzados 31

Bloque Lógico (II)• Existen diversas soluciones para aumentar el número de términos producto a la entrada de la Macrocélula

Productos expandidos defamilia MAX5000 de Altera y MAX 340 de Cypress

Tema 1: Introducción a los sistemas programables avanzados 32

Bloque Lógico (III)

Esquema Bloque Lógico de los CPLD de la familia MACH3(Advanced Micro Device)

Mcell

Mcell

Mcell

Mcell

Page 18: TEMA 1 Introducción a los sistemas programables avanzados

17

Tema 1: Introducción a los sistemas programables avanzados 33

Bloque Lógico (IV)

Matriz de puertas de la familiaFLASH370 de Cypress

Cada macrocélula puede disponer de 0 a 16 términos producto

de 0 a 16

de 0 a 16

de 0 a 16

de 0 a 16

36 entradas

86 productos

Mcell

Mcell

Mcell

Mcell

Tema 1: Introducción a los sistemas programables avanzados 34

Macrocélulas

• Las macrocélulas de las CPLDs ofrecen mas posibilidades de configuración que las macrocélulas de la PLD 22V10

• Se pueden encontrar 3 tipos de macrocélulas:

- I/O macrocélulas: estan asociadas a un pin de I/O de la CPLD

- Input macrocélulas: estan asociadas a un pin de entrada

- Buried macrocelula: es una macrocélula cuya salida no está asociada a ningún pin del dispositivo

Page 19: TEMA 1 Introducción a los sistemas programables avanzados

18

Tema 1: Introducción a los sistemas programables avanzados 35

I/O y Buried Macrocélulas

Macrocélula de la familia MAX340 (Cypress)• La puerta XOR puede ser usada en sumadores y comparadores o como inversor de la función de salida

• La salida de la macrocélula puede ser configurada como registrada o combinacional

• La salida se realimenta a la entrada, puede ser utilizada por el mismo Bloque Lógico

Tema 1: Introducción a los sistemas programables avanzados 36

I/O y Buried Macrocélulas (II)familia FLASH370 (Cypress)

• La versión “buried” no dispone de conexión a la salida

Page 20: TEMA 1 Introducción a los sistemas programables avanzados

19

Tema 1: Introducción a los sistemas programables avanzados 37

Input Macrocélulas

• Son macrocélulas que reciben señales de entrada del exterior pero no generan salidas al exterior del integrado.• Se utilizan para tener señales de entrada adicionales, aparte de las propias de los Bloques Lógicos.

Input Macrocélula de la familia FLASH370

Tema 1: Introducción a los sistemas programables avanzados 38

I/O Células

• Su función es la de sacar la señal de salida de la macrocélula al exterior dependiendo de la señal de habilitación

I/O Célula de la familia MAX340 (Cypress)

Page 21: TEMA 1 Introducción a los sistemas programables avanzados

20

Tema 1: Introducción a los sistemas programables avanzados 39

I/O Células (II)

• Existen otras arquitecturas mas complejas que dan mayor flexibilidad a las conexiones entre las salidas de las macrocélulas y los pines del integrado

I/Ocell

I/Ocell

I/Ocell

I/Ocell

I/Ocell

I/Ocell

Macrocell

Macrocell

Macrocell

Macrocell

Macrocell

Macrocell

MUXI/Ocell

I/O célula familia MACH3 (Advanced Micro Devices)

Tema 1: Introducción a los sistemas programables avanzados 40

Ejemplo de células I/O con conexión únicaFLASH370 (Cypress)

Page 22: TEMA 1 Introducción a los sistemas programables avanzados

21

Tema 1: Introducción a los sistemas programables avanzados 41

Ejemplo de células de I/O con matriz de conexiones

ispLSI and pLSI 1016E Functional Block Diagram

42

1.2.2 Arquitectura de las FPGA’s

Page 23: TEMA 1 Introducción a los sistemas programables avanzados

22

43

1.2.2.1 Características generales

Tema 1: Introducción a los sistemas programables avanzados 44

Field Programmable Gate Array (FPGA) Arquitectura básica

Field Programmable Gate Array (FPGA) Arquitectura básica

• Componentes:- Matriz de Bloques Lógicos Configurables (CLB): Cada bloque posee una

complejidad similar a una PAL- Bloques de entrada-salida (IOB): Conectan la patillas externas del integrado

con la lógica interior- Líneas de interconexión: Conectan entre sí los bloques CLB

Page 24: TEMA 1 Introducción a los sistemas programables avanzados

23

Tema 1: Introducción a los sistemas programables avanzados 45

Características generales arquitectura FPGA’s

- FPGA’s vs. PLD ‘s:• PLD ⇒ utilizan estructuras de dos niveles AND-OR para

implementar la lógica• FPGA ⇒ implementan los diseños con estructuras multinivel

- Los CLB de las FPGA’s se implementan con:• Transistores• Puertas lógicas básicas: NAND de dos entradas, XOR, etc• Multiplexores• Look-up tables (LUT)• Estructuras AND-OR

Tema 1: Introducción a los sistemas programables avanzados 46

Interconexiones FPGA’s

- Las interconexiones se realizan mediante segmentos de diferente longitud que se conectan entre sí mediante conexiones programables

- La cantidad y variedad de los segmentos de conexión afectan a la capacidad de la FPGA:

• Nº segmentos ↓ ⇒ solo se puede interconectar un número reducido de CLB

• Nº segmentos ↑ ⇒ ocupa mucha área ⇒ Nº reducido de CLB

Page 25: TEMA 1 Introducción a los sistemas programables avanzados

24

Tema 1: Introducción a los sistemas programables avanzados 47

Tipos de tecnologías

• Existen tres tecnologías de programación de FPGA:- SRAM: la configuración interna se almacena en memoria tipo RAM;

cada vez que se alimenta la FPGA debe ser reconfigurada. Son reconfigurables pero ocupa mucho espacio.

- Antifuse: utilizan fusibles para realizar las conexiones, ocupan menos espacio pero no son reprogramables.

- EPROM, EEPROM: las conexiones programables se implementan con transistores de puerta flotante que se activan inyectando carga en su puerta flotante

48

1.2.2.2 Tecnologías de las conexiones programables

Page 26: TEMA 1 Introducción a los sistemas programables avanzados

25

Tema 1: Introducción a los sistemas programables avanzados 49

Tecnología SRAM

Utilizado por Xilinx, Toshiba...Emplea células de RAM estática para controlar conexiones programables

Puerta de paso Multiplexor

0 1 00

01

Tema 1: Introducción a los sistemas programables avanzados 50

Características tecnología SRAM

Características:• Es volátil ⇒ la FPGA se debe configurar cada vez que se alimenta• Requiere una memoria externa no volátil que almacene la

configuraciónInconvenientes:

• Ocupa mayor área ⇒ cada conexión necesita al menos 5 transistores para la célula RAM y un transistor para el interruptor programable

Ventajas:• Reprogramación fácil y rápida

Page 27: TEMA 1 Introducción a los sistemas programables avanzados

26

Tema 1: Introducción a los sistemas programables avanzados 51

(Dieléctrico)

Field Oxide

Tecnología Antifuse

Utilizado por Actel, Quicklogic...Se emplea “antifuse” para establecer conexiones entre segmentos

Antifuse: dispositivo de dos terminales• Resistencia ↑ cuando no está programado• Aplicando un alto voltaje (11-20V) crea una conexión de baja

resistenciaEjemplo: PLICE (Programmable Low Impedance Circuit Element) Antifuse

Un voltaje elevado rompe el dieléctrico creando entre los electrodos una conexión policristalina de baja resistencia

Tema 1: Introducción a los sistemas programables avanzados 52

Características tecnología Antifuse

Características:• Programación no volátil

Ventajas:• Reducido tamaño• Baja resistencia cuando está en ON

Inconvenientes:• No son reprogramables

Page 28: TEMA 1 Introducción a los sistemas programables avanzados

27

Tema 1: Introducción a los sistemas programables avanzados 53

Tecnología Puerta Flotante

Utilizada por Altera (EPROM), AMD, Lattice (EEPROM)Emplea tecnología EPROM, EEPROM para realizar conexiones programables o lógica cableada

• Si se inyecta carga en Gate 2 el transistor permanece inhibido

• Sin carga en Gate 2 el TRT funciona normalmente

NOR cableadaWord line: 1 ⇒ Bit line: 0

Tema 1: Introducción a los sistemas programables avanzados 54

Ejemplo: PLA con tecnología de puerta flotante

Puertaflotante

Funciones lógicas

Resistencias de pull-up

oxNOR cableada

ox3131 xxxx ≡+

1x2x

3131 xxxx ≡+

3131 xxxx ≡+3x

Page 29: TEMA 1 Introducción a los sistemas programables avanzados

28

Tema 1: Introducción a los sistemas programables avanzados 55

Características tecnología puerta flotante

Características:• Programación no volátil

Ventajas:• No necesita memoria externa• Reprogramable

Inconvenientes:• Alta resistencia cuando cuando está en ON• Elevado consumo (resistencia pull-up)

56

1.2.2.3 Bloques lógicos

Page 30: TEMA 1 Introducción a los sistemas programables avanzados

29

Tema 1: Introducción a los sistemas programables avanzados 57

Arquitecturas básicas de los Bloques Lógicos

Amplia gama de arquitecturas comerciales de bloques lógicos:• Par de transistores (Crosspoint)• Puerta NAND más Latch (Plessey)• Multiplexores (Actel)• Multiplexores, puertas lógicas y latch (Quicklogic)• Look-up tables (Xilinx)

Ejemplo: implementación de función lógica cabf +=

ab

c f

ab

c f

Tema 1: Introducción a los sistemas programables avanzados 58

Bloque Lógico Crosspoint

Par de transistores

CLB

a b c

cabf +=

ab

c f

Page 31: TEMA 1 Introducción a los sistemas programables avanzados

30

Tema 1: Introducción a los sistemas programables avanzados 59

Bloque Lógico Plessey

ab

c cabf +=

ab

c f

Estructura CLB

Los Latch se programan para ser transparentes

Tema 1: Introducción a los sistemas programables avanzados 60

Bloque Lógico Actel-1

ab

c f

Estructura CLB

( )( )( )( )zsysss

xswsssf

2243

1143

+++

++=

w

x

y

z

s1

s2s3 s4 1

1

0

a

0

b c 0

cabcabcf +≡+=Adjudicando valores variables o constantes a s1, s2, s3, s4, w, x, y, z se pueden generar 702 funciones lógicas diferentes

Mux 4-1

Page 32: TEMA 1 Introducción a los sistemas programables avanzados

31

Tema 1: Introducción a los sistemas programables avanzados 61

Bloque Lógico Actel-2

Estructura CLB

( )( )( )( )zssyssss

xsswssssf

212143

212143

+++

++=

w

x

y

z

s1

s2

s3 s4

Añadiendo la puerta AND en la entrada de selección se pueden generar 766 funciones lógicas diferentes

Tema 1: Introducción a los sistemas programables avanzados 62

Bloque Lógico Quicklogic

Estructura CLB

Mux 4-1

Estructuras basadas en multiplexores:• Proporcionan gran flexibilidad en el diseño• Número de transistores relativamente

pequeño

• Elevado número de entradas ⇒ necesita más recursos de conexión y rutado

Page 33: TEMA 1 Introducción a los sistemas programables avanzados

32

Tema 1: Introducción a los sistemas programables avanzados 63

Bloque Lógico Altera MAX5000

Esquema CLB

Características:• Derivada de la arquitectura de las PLA: plano AND (20-100 entradas)-OR

(3-8 entradas)• Es difícil aprovechar todas las puertas y todas las entradas ⇒ pérdida de

densidad

cabf +=

Tema 1: Introducción a los sistemas programables avanzados 64

Bloque Lógico Xilinx

ab

c f

Bloque Lógico basado en Look-up table (LUT)

La tabla de verdad de la función a implementar se almacena en una memoria SRAM de 2K x 1 bit

Las entradas de direcciones son las entradas de la función

La salida proporciona el valor de la función “f”

Page 34: TEMA 1 Introducción a los sistemas programables avanzados

33

Tema 1: Introducción a los sistemas programables avanzados 65

Bloque Lógico Xilinx XC3000

Componentes• 1 LUT de 5 entradas• Multiplexores• 2 Flip-flops

Esquema CLB

Tema 1: Introducción a los sistemas programables avanzados 66

Bloque Lógico Xilinx XC4000

Componentes:• 2 LUT 4 entradas• 1 LUT 3 entradas• Multiplexores programables• 2 Flip-flops

Esquema CLB

Características:• Las LUT’s 4x1 disponen de entradas independientes • Las LUT’s 4x1 pueden ser utilizadas para implementar memoria RAM• Incorpora circuitos específicos para propagación del bit de carry

Page 35: TEMA 1 Introducción a los sistemas programables avanzados

34

Tema 1: Introducción a los sistemas programables avanzados 67

Prestaciones de las LUT

Ventajas de implementación mediante LUT:

• Posee alta funcionalidad ⇒ una LUT de “k” entradas implementa cualquier función de “k” variables ⇒ (22)k funciones distintas

• Permiten bloques de memoria (muy útiles en aplicaciones de procesado de señales)

El tamaño de la LUT condiciona las prestaciones de la FPGA:

• Tamaño↑⇒ disminuye el nº de CLB necesario para realizar un diseño⇒ aumenta el área necesaria para implementar un CLB

Tema 1: Introducción a los sistemas programables avanzados 68

Implementación de las LUT

Memoriza un bitde información

Multiplexor de 16 entradas

Page 36: TEMA 1 Introducción a los sistemas programables avanzados

35

Tema 1: Introducción a los sistemas programables avanzados 69

Efecto del tamaño de la LUT (I)

Ejemplo: implementación de la función usando LUT cbadbcabdf ++=

LUT de 2 entradas LUT de 3 entradas LUT de 4 entradas

1

2

3

4

5

6

7

7 LUT28 RAM bits

1

2

3

3 LUT24 RAM bits

1

1 LUT16 RAM bitsMínima área

Tema 1: Introducción a los sistemas programables avanzados 70

Efecto del tamaño de la LUT (II)

CLB/Área necesaria para implementar un diseño en función de K

↑ K ⇒ ↓ Número de bloques

↑ K ⇒ ↑ Área de un bloque

↑ K ⇒ ↓ Número de bloques

↑ K ⇒ ↑ Área de las conexiones

K=4 Mínimo nºCLB x Área CLB

K=4 Mínimo nºCLB x Área Conexiones

Page 37: TEMA 1 Introducción a los sistemas programables avanzados

36

Tema 1: Introducción a los sistemas programables avanzados 71

Efecto del tamaño de la LUT (III)

CLB/Área necesaria para implementar un diseño

Área de CLBy conexiones

El área se minimiza para K=4

El valor óptimo de K es 4

72

1.2.2.4 Arquitecturas de interconexión

Page 38: TEMA 1 Introducción a los sistemas programables avanzados

37

Tema 1: Introducción a los sistemas programables avanzados 73

CLB CLB CLB

CLBCLBCLB

CLBCLBCLB

Arquitecturas de interconexión para FGPA’s

La arquitectura de interconexión es la combinación de segmentos y conexiones programables que hacen posible la interconexión de los bloques lógicos.

Esquema general de la arquitectura de una FPGA

Segmentos de conexión ⇒ líneas de conexión continuas no interrumpidas por conexiones programablesPista (track) ⇒ es una secuencia de uno o más segmentos que forman una línea

Elementos de la arquitectura de interconexión:

• C (bloque de conexión) ⇒ conecta las entradas y salidas de los CLB con los segmentos de conexión

• S (switch block, bloque de conexiones programables) ⇒ realiza conexiones entre segmentos

Tema 1: Introducción a los sistemas programables avanzados 74

Características de la arquitectura de interconexión

La arquitectura de interconexión debe cumplir dos criterios:

• Rutabilidad ⇒ capacidad de llevar a cabo todas las conexiones necesarias para implementar un diseño

• Velocidad ⇒ los retardos de propagación dependen de la longitud de la pista conexión y del número y tipo de interruptores que incorpora la pista

Los interruptores programables introducen un retardo debido a la resistencia y capacidad que presentan

La tecnología antifuse presenta un menor retardo debido a su menor resistencia

Page 39: TEMA 1 Introducción a los sistemas programables avanzados

38

Tema 1: Introducción a los sistemas programables avanzados 75

Optimización de la arquitectura de interconexión

Objetivo: disminuir los retardos de las conexiones asegurando la realización del diseño

↓ longitud track↓ nº interruptores programables

¿Como conseguir este objetivo?

Se debedeterminar

- nº de segmentos por canal- Longitud de los segmentos- Distribución de los interruptores

↓ Retardo

Asegurar la realización del diseño

Tema 1: Introducción a los sistemas programables avanzados 76

Arquitecturas de interconexión con antifuse (I)

CLB CLB CLB CLB

• Ventaja: Máxima flexibilidad de rutado• Inconveniente: el número de conexiones programables es proporcional a la longitud de la pista ⇒ retardo inaceptable

• Conexiones programables en todos los cruces de filas y columnas

• Conexiones programables entre dos puntos de cruce

El track se puede dividir en segmentos de longitud arbitraria

Antifuse desprogramadoAntifuse programado

Page 40: TEMA 1 Introducción a los sistemas programables avanzados

39

Tema 1: Introducción a los sistemas programables avanzados 77

Arquitecturas de interconexión con antifuse (II)

CLB CLB CLB CLB

• Ventaja: Elevada flexibilidad de rutado• Inconveniente: el número de conexiones programables variable pero en general menor que en

caso anterior ⇒ retardo variable y elevado en conexiónes de longitud media-grande

• Conexiones programables en todos los cruces de filas y columnas

• Algunas conexiones programables entre dos puntos de cruce

El track se puede dividir en segmentos de diferente longitud

Antifuse desprogramadoAntifuse programado

Tema 1: Introducción a los sistemas programables avanzados 78

Arquitecturas de interconexión con antifuse (III)

CLB CLB CLB CLB

• Ventaja: retardo similar y predecible en todas las conexiones• Inconveniente: área excesiva; las conexiones cortas tienen el mismo retardo que el asociado a un

track completo

• Tracks continuos ⇒ un track por conexión• Conexiones programables en cada cruce

Todas las conexiones necesitan solo dos interruptores programables

Antifuse desprogramadoAntifuse programado

Page 41: TEMA 1 Introducción a los sistemas programables avanzados

40

Tema 1: Introducción a los sistemas programables avanzados 79

Arquitecturas de interconexión con antifuse (IV)

CLB CLB CLB CLB

• Ventaja: retardo ajustado a la longitud de la conexión; dos interruptores por conexión• Inconveniente: área excesiva; las conexiones cortas tienen el mismo retardo que el asociado a un

track completo

Solución intermedia:• Tracks segmentados con conexiones de diferentes

longitudes• Conexiones programables en cada cruce

Las conexiones se establecen utilizando un segmento de longitud apropiada

Antifuse desprogramadoAntifuse programado

Tema 1: Introducción a los sistemas programables avanzados 80

Arquitecturas de interconexión con SRAM (I)

• Switches: se suele utilizar para conectar las salidas ya que permite la conexión a múltiples tracks

• Multiplexores: se utilizan para conectar las entradas de I/O a los tracks

C (bloque de conexión) ⇒ conecta I/O de los CLB con los tracksSe suelen implementar con multiplexores o switches (transistores de paso)

Multiplexores Switches

Page 42: TEMA 1 Introducción a los sistemas programables avanzados

41

Tema 1: Introducción a los sistemas programables avanzados 81

Arquitecturas de interconexión con SRAM (II)

S (switch block) ⇒ establecen conexiones entre tracks verticales y horizontalesSe suelen implementar con switches (transistores de paso)

Switch block

Posibles conexiones entre el track R0 y el resto de tracks verticales y horizontales

Track horizontal

Track vertical

Transistor de paso

Tema 1: Introducción a los sistemas programables avanzados 82

Arquitectura óptima de interconexión con SRAM

La flexibilidad de los S (switch block) y de los C (bloque de conexión) es la clave para obtener un área de rutado eficiente

Flexibilidad ↑ ⇒ Conectividad completa ⇒ elevado número de switches ⇒FPGA lenta y grande

Flexibilidad ⇒ el número de conexiones posibles asociadas a cada segmento

Flexibilidad ↓

⇒ La conectividad completa es imposible o bien

⇒ Se necesita un elevado número de tracks por canal ⇒ Área excesivamente grande

Page 43: TEMA 1 Introducción a los sistemas programables avanzados

42

Tema 1: Introducción a los sistemas programables avanzados 83

Arquitectura óptima de interconexión con SRAM

Parámetros a optimizar: Área y conectividad

Se debe dimensionar adecuadamente:• La flexibilidad del C (bloque de conexión) • La flexibilidad del S (switch block)• El número de tracks por canal• El número de caras del CLB por donde aparecen pines de I/O

Resultado deseado:• 100% conectividad• Área reducida• Velocidad elevada

Tema 1: Introducción a los sistemas programables avanzados 84

Flexibilidad del S (switch block) : Fs

Fs: número de conexiones posibles que se ofrece a cada segmento de entrada

La elección de la topología de interconexión es importante

Fs = 5

Ej.:Se debe conectar los puntos A y B (Fs=2)

Topología 1

NOK

Topología 2

OK

Page 44: TEMA 1 Introducción a los sistemas programables avanzados

43

Tema 1: Introducción a los sistemas programables avanzados 85

Flexibilidad del C (bloque de conexión) : Fc

Fc: número de canales a los que se puede conectar una I/O de un CLB

Cada línea I/O puede conectarse a dos líneas

Fc = 2

Tema 1: Introducción a los sistemas programables avanzados 86

Resultados: % Rutado vs. Fc

Número de tracks por canal W = 14

• No se alcanza el 100% de rutado para Fc≤7• Un incremento de Fs aumenta la rutabilidad

pero para que sea del 100% Fc debe ser suficientemente elevado

Rutabilidad del circuito BNRE*

Para 100% de rutabilidad: 0.5 ≤Fc/W ≤1

* Bell-Northern Research

Page 45: TEMA 1 Introducción a los sistemas programables avanzados

44

Tema 1: Introducción a los sistemas programables avanzados 87

Resultados: % Rutado vs. Fs

Si Fc es suficientemente alta se puede alcanzar 100% de rutabilidad con valores pequeños de Fs

W = 14

Tema 1: Introducción a los sistemas programables avanzados 88

Arquitectura óptima

Nº de interruptores Mínimo número de interruptores

El nº de interruptores se incrementa cuando se incrementa la flexibilidad ↑Interruptores ⇒ ↑área y ↑retardo

(12≤W≤35) Fs =4Fc/W = 0.7, W=13

En general los resultados óptimos se obtienen para los siguientes parámetros de flexibilidad:

3 ≤ Fs ≤ 4 0.7 ≤ Fc/W ≤ 0.9

Objetivo: mínimo coste de implementación, área y retardo FsFc/W

Page 46: TEMA 1 Introducción a los sistemas programables avanzados

45

Tema 1: Introducción a los sistemas programables avanzados 89

Arquitectura de interconexión Xilinx XC3000

Los bloques de conexión conectan cada una de las 11 entradas y salidas del CLB a 2 ó 3 de las 5 líneas de conexión mediante multiplexores (entradas) y transistores de paso (salidas)

El switch block, conecta cada segmento con 5 ó 6 de 15 segmentos posibles en las caras opuestas

Tipos de segmentos:

• Segmentos de propósito general ⇒ pasan a través del switch block

• Interconexiones directas ⇒ Conectan directamente cada salida de un CLB con cuatro posibles entradas de CLB vecinos

• Líneas largas ⇒ son conexiones con un retardo uniforme, elevado fan-out y longitud similar a la del chip

• Línea de reloj ⇒ conectada a la entrada de reloj de todas los flip-flops, propaga la señal de reloj a toda la FPGA con retardo bajo

Tema 1: Introducción a los sistemas programables avanzados 90

Arquitectura de interconexión Xilinx XC4000

Segmentos de doble longitud

La arquitectura es similar a la serie XC3000Características:

• Conectividad más elevada que la serie XC3000• 18 líneas por canal en lugar de 5• Cada canal tiene 4 segmentos de conexión de doble longitud

Seis transistores de paso por cada punto de conexión

Page 47: TEMA 1 Introducción a los sistemas programables avanzados

46

Tema 1: Introducción a los sistemas programables avanzados 91

Arquitectura de interconexión ActelCaracterísticas:

• Estructura asimétrica ⇒ dispone de mas tracks horizontales que verticales• Las salidas de los CLB se pueden conectar a cualquier track de los dos canales superiores o inferiores• Las entradas se pueden conectar a cualquier track del canal adyacente

Bloques de conexión

22 tracks por canal

Salida Entrada

Tema 1: Introducción a los sistemas programables avanzados 92

Arquitectura Altera MAX 5000 (I)Dos niveles de interconexión:

• 1er nivel: formado por 16 ó 32 bloques lógicos agrupados en un LAB (Logic Array Block)• 2º nivel: formado por agrupaciones de LAB’s

2º nivel: Las interconexiones entre LAB se realizan a través del PIA (Programmable Interconnect Array)

Page 48: TEMA 1 Introducción a los sistemas programables avanzados

47

Tema 1: Introducción a los sistemas programables avanzados 93

Arquitectura Altera MAX 5000 (II)

Arquitectura de interconexión del primer nivel:• PIA: conexión con las salidas de otros LAB• I/O: conexión con pines de entrada/salida• Conexión con las salidas de todos los LB del

LAB• Conexión con los Logic Expanders (puertas

NAND)

94

1.3 Dispositivos programables de Xilinx

Page 49: TEMA 1 Introducción a los sistemas programables avanzados

48

95

1.3.1 Familia XC4000

Tema 1: Introducción a los sistemas programables avanzados 96

Esquema de una CLB (XC4000E)

Page 50: TEMA 1 Introducción a los sistemas programables avanzados

49

Tema 1: Introducción a los sistemas programables avanzados 97

Esquema de un IOB (XC4000E)

Tema 1: Introducción a los sistemas programables avanzados 98

Esquema líneas de conexión (XC4000E)

Page 51: TEMA 1 Introducción a los sistemas programables avanzados

50

Tema 1: Introducción a los sistemas programables avanzados 99

Matriz de interruptores programables (PSM)

Tema 1: Introducción a los sistemas programables avanzados 100

FPGA’s de la serie 4000E y 4000XL

Page 52: TEMA 1 Introducción a los sistemas programables avanzados

51

101

1.3.2 Familia Spartan II

Tema 1: Introducción a los sistemas programables avanzados 102

Familia Spartan-II

CaracterísticasBajo costeAlto volumenSoporta standards de I/OBloques de memoria RAM

Page 53: TEMA 1 Introducción a los sistemas programables avanzados

52

Tema 1: Introducción a los sistemas programables avanzados 103

Bloque de entrada/salida

Esquema IOBStandards soportados

Tema 1: Introducción a los sistemas programables avanzados 104

Bancos de I/O standards

• Las salidas se agrupan en 8 bancos• Cada banco puede soportar distintos standards

Page 54: TEMA 1 Introducción a los sistemas programables avanzados

53

Tema 1: Introducción a los sistemas programables avanzados 105

Configurable Logic Block (CLB)

Cada CLB tiene 4 células lógicas (LC)

Generador de funcionesde 4 variables

Báscula de salida

Generador de carry

Se pueden combinar 4 LC’spara generar una función de 6 variables

Tema 1: Introducción a los sistemas programables avanzados 106

Memoria RAM

RAM distribuida

CLB-> 4 RAM 16x1bit

Bloques RAM

Doble puertoSimple puerto

Page 55: TEMA 1 Introducción a los sistemas programables avanzados

54

Tema 1: Introducción a los sistemas programables avanzados 107

Spartan-II Block RAM

Tema 1: Introducción a los sistemas programables avanzados 108

Implementación de lógica con memoria RAM

Extractor de raíz cuadrada 8 bits

A Q7

0x9

A11

x8

A Q6

0

AAA

x7x6

A Q5

0

AAAAA

x5x4

A Q4

0

AAAAAAA

x3x2

A Q3

0

AAAAAAAAA

x1x0

A Q2

0

AAAAAAAAAAA

0

A Q1

0

AAAAAAAAAAAAA

0

A Q0

0

AAAAAAAAAAAAAAA

0

A

nd

p'c'

pc

n'd'

d’=dp’=p

If p=0 (add)n’=n⊕d⊕cc’=nd+nc+cd

If p=1 (subtract)n’=n⊕/d⊕cc’=n/d+c/d+nc

Con puertas lógicas Bloque memoria RAM

A0...A8

D0...D7

4k RAM

CK

Page 56: TEMA 1 Introducción a los sistemas programables avanzados

55

Tema 1: Introducción a los sistemas programables avanzados 109

Componentes de la familia Spartan-II

110

1.3.3 Familia Spartan-3

Page 57: TEMA 1 Introducción a los sistemas programables avanzados

56

Tema 1: Introducción a los sistemas programables avanzados 111

Familia Spartan-3

CaracterísticasBajo costeAlto volumen de integraciónSoporta 26 standards de I/OControl digital de impedancia (DCI)Bloques de memoria RAMMultiplicadores 18x18 bitsDigital Clock Manager (DCM)

Arquitectura Spartan-3

Tema 1: Introducción a los sistemas programables avanzados 112

Bloque de entrada/salida

Double-Data-Rate Transmission (DDR): duplica la velocidad de transmisión de datos aprovechando el flanco de subida y bajada de la señal de reloj

Control digital de impedancia (DCI)

Keeper Latch: retiene el último valor de la I/O después de que los drivers pasen a tercer estado

Protección contra descargas electrostáticas (ESD)

Soporta 8 standards de señales diferenciales

Page 58: TEMA 1 Introducción a los sistemas programables avanzados

57

Tema 1: Introducción a los sistemas programables avanzados 113

Bancos de I/O standards

• Las salidas se agrupan en 8 bancos• Cada banco tiene líneas de Vref y Vcco independientes

Cada banco puede soportar un standard distinto

Tema 1: Introducción a los sistemas programables avanzados 114

Configurable Logic Block (CLB)

• Cada CLB contiene 4 SLICES agrupados en parejas

Cada par de SLICES dispone de un circuito de propagación de carry

Page 59: TEMA 1 Introducción a los sistemas programables avanzados

58

Tema 1: Introducción a los sistemas programables avanzados 115

Esquema CLBElementos comunes a los SLICES:• 2 Look-Up Table (LUT) 16x1 bit• 2 Registros (Latch o FF tipo D)• Multiplexores• Puertas aritméticas (AND, XOR)

-Funciones lógicas-Aritméticas -ROM

Las LUT de la parte izquierda pueden configurarse como memoria RAM o registros de desplazamiento de 16 bits

Tema 1: Introducción a los sistemas programables avanzados 116

LUT como RAM distribuida

Cada CLB dispone de 64 bits de RAM distribuida repartidas en 4 LUT que se pueden combinar de múltiples maneras

1 LUT2 LUT

Memorias soportadas por una CLB

Page 60: TEMA 1 Introducción a los sistemas programables avanzados

59

Tema 1: Introducción a los sistemas programables avanzados 117

Ejemplos implementación memorias RAM distribuida

Memoria RAM 16x1 bit dual-port Memoria RAM 32x1 bit single-port

Tema 1: Introducción a los sistemas programables avanzados 118

LUT como registros de desplazamiento

• Una LUT se puede configurar como un registro de desplazamiento (SR) de 1 a 16 bits sin utilizar la báscula disponible en cada SLICE

• Los registros se pueden colocar en cascada para obtener un SR de cualquier longitud

LUT configurada como registro de desplazamiento de 16 bits SalidaEntrada

Salida intermedia(longitud < 16bits)

Page 61: TEMA 1 Introducción a los sistemas programables avanzados

60

Tema 1: Introducción a los sistemas programables avanzados 119

Spartan-3 Block RAM

• Los dispositivos Spartan-3 disponen de bloques de 18kbits de memoria RAM

• El contenido de cada bloque es accesible a través de dos puertos: A y B

• Cada puerto dispone de bus de datos, direcciones y control independientes

Tema 1: Introducción a los sistemas programables avanzados 120

Organización Spartan-3 Block RAM (Single-Port)

Bloque RAM ⇒18 kbits • 16 kbits de datos• 2 kbits de paridad o datos (en algunas configuraciones)

Opcional

Page 62: TEMA 1 Introducción a los sistemas programables avanzados

61

Tema 1: Introducción a los sistemas programables avanzados 121

Spartan-3 Block RAM (Dual-Port)

• Los dos puertos de la memoria se pueden configurar independientemente • Se puede acceder al contenido de la memoria a través de cualquiera de los dos puertos

Ejemplo de aplicación:Los datos entran como Bytes

Los datos salen como doble word

Tema 1: Introducción a los sistemas programables avanzados 122

Multiplicadores de Spartan-3

• Multiplicadores 18x18 bits en complemento a 2

Page 63: TEMA 1 Introducción a los sistemas programables avanzados

62

Tema 1: Introducción a los sistemas programables avanzados 123

Digital Clock Manager (DCM)

Permite un control preciso sobre la señal de reloj que incluye:• Generación de un amplio rango de frecuencias• Eliminación del efecto Clock-skew (la señal de reloj llega a diferentes

puntos en diferentes tiempos)• Genera desplazamiento de fases en las señales de reloj generadas

Componentes:• Delay-Locked Loop (DLL)• Digital Frequency Syntesizer (DFS)• Phase Shifter• Status Logic

Tema 1: Introducción a los sistemas programables avanzados 124

Clock-skew

Clock-skew: la señal de reloj llega a diferentes puntos en diferentes tiempos

Eliminación del clock-skew

Page 64: TEMA 1 Introducción a los sistemas programables avanzados

63

Tema 1: Introducción a los sistemas programables avanzados 125

Delay-Locked Loop (DLL)

Principalmente elimina el Clock-skew (retardo de distribución)

Entradas

Salida en fase con CLKIN

Salidas desfasadas90º, 180º, 270º

Salida frecuencia 2xCLKIN

Salida divisor de frecuencia CLKIN/n

Posibilidad de corrección del Duty-cycle al 50%

Tema 1: Introducción a los sistemas programables avanzados 126

Digital Frequency Synthesizer (DFS)

Genera señales de reloj cuya frecuencia esta relacionada con CLKIN:

donde:• CLKFX_MULTIPLY: de 2 a 32• CLKFX_DIVIDE: de 1 a 32

Page 65: TEMA 1 Introducción a los sistemas programables avanzados

64

Tema 1: Introducción a los sistemas programables avanzados 127

Phase Shifter (PS)

• Introduce un desfase entre las señales de entrada CLKIN y CLKFB• La resolución del desfase es de TCKLIN/256 (8 bits) • El desfase seleccionado se añade a todas las señales generadas por el DLL

La fase se ajusta dinámicamente, incrementado o decrementando el desfase en función de señales externas

Tema 1: Introducción a los sistemas programables avanzados 128

Status Logic Component/Resumen prestaciones

• Proporciona información sobre el estado del DCM• Permite realizar un reset a un estado inicial conocido

Resumen de prestaciones

Page 66: TEMA 1 Introducción a los sistemas programables avanzados

65

Tema 1: Introducción a los sistemas programables avanzados 129

Componentes de la familia Spartan-3

130

1.3.4 Familia Virtex II

Page 67: TEMA 1 Introducción a los sistemas programables avanzados

66

Tema 1: Introducción a los sistemas programables avanzados 131

Familia Virtex-II 1.5V

CaracterísticasBloques MultiplicadoresAlto volumen (8M)Soporta standards de I/OBloques de memoria RAM

Tema 1: Introducción a los sistemas programables avanzados 132

Bloque de entrada/salida

Standards soportadosEsquema IOB

• Las salidas se agrupan de dos en dos• Se puede tener salidas unipolares o diferenciales(LVDS, LDT, LVPECL)

• Control digital de la impedancia de salida

Page 68: TEMA 1 Introducción a los sistemas programables avanzados

67

Tema 1: Introducción a los sistemas programables avanzados 133

Bancos de I/O standards

• Las salidas se agrupan en 8 bancos• Cada banco puede soportar distintos standards

Tema 1: Introducción a los sistemas programables avanzados 134

Configurable Logic Block (CLB)

Cada CLB tiene 4 células lógicas (slices)

Page 69: TEMA 1 Introducción a los sistemas programables avanzados

68

Tema 1: Introducción a los sistemas programables avanzados 135

Componentes de la familia Virtex-II

136

1.3.5 Familia XC9500

Page 70: TEMA 1 Introducción a los sistemas programables avanzados

69

Tema 1: Introducción a los sistemas programables avanzados 137

Arquitectura de la CPLD

Tema 1: Introducción a los sistemas programables avanzados 138

Macrocélula de un Bloque Funcional

Page 71: TEMA 1 Introducción a los sistemas programables avanzados

70

Tema 1: Introducción a los sistemas programables avanzados 139

Distribuidor de términos producto

Tema 1: Introducción a los sistemas programables avanzados 140

Ubicación de términos producto

15 términos producto 18 y 2 términos producto

Page 72: TEMA 1 Introducción a los sistemas programables avanzados

71

Tema 1: Introducción a los sistemas programables avanzados 141

Matriz de conexiones FastCONNECT

Tema 1: Introducción a los sistemas programables avanzados 142

Bloque de I/O con control de OE

Control de Slew-Rate

Page 73: TEMA 1 Introducción a los sistemas programables avanzados

72

Tema 1: Introducción a los sistemas programables avanzados 143

Componentes de la familia XC9500

Tema 1: Introducción a los sistemas programables avanzados 144

In-System Programming

Page 74: TEMA 1 Introducción a los sistemas programables avanzados

73

Tema 1: Introducción a los sistemas programables avanzados 145

¿CPLD o FPGA?

CPLD• No volátil• Contadores Rápidos• Lógica combinacional• Proyectos pequeños• In-System Programmable• Retardo predecible

FPGA• Configuración con SRAM• Excelente para diseños DSP y con

abundantes registros.• Proyectos medianos/grandes• Requiere memoria PROM externa• Retardo variable

Conversión de diseños que incorporan varias SPLD dentro de una CPLDDiseños fácilmente implementablescon puertas AND/OR y pocos Flip-Flops

Controladores, procesado de señal, comunicaciones, prototipo de diseños gate array, coprocesadores, etc...

Tema 1: Introducción a los sistemas programables avanzados 146

Aplicaciones de FPGAs y CPLDs

• Interfaces de Bus•Controlador de DMA• Controlador bus PCI• Controlador bus VME

• Comunicaciones• Controlador de protocolo SDLC• Telefonía digital• Controlador de protocolo ATM

• Procesado digital de señal• Operaciones aritméticas en coma flotante• Procesado de imagen• Filtros FIR• FFT• Coprocesadores de DSP

Page 75: TEMA 1 Introducción a los sistemas programables avanzados

74

Tema 1: Introducción a los sistemas programables avanzados 147

Microcontrolador

Tema 1: Introducción a los sistemas programables avanzados 148

Sistemas de control digital

Page 76: TEMA 1 Introducción a los sistemas programables avanzados

75

Tema 1: Introducción a los sistemas programables avanzados 149

Sistemas de instrumentación digital

Linealización de la respuesta de un termopar

TermoparCromo-constatan ADC

V=f(Cº) FPGAFunción

linealizadora

Tema 1: Introducción a los sistemas programables avanzados 150

Sistemas de procesado de señal

Receptor de Radio

Page 77: TEMA 1 Introducción a los sistemas programables avanzados

76

Tema 1: Introducción a los sistemas programables avanzados 151

Filtros digitales (I)

Estructura filtro FIR

Ecuación filtro FIR

Tema 1: Introducción a los sistemas programables avanzados 152

Filtros digitales (II)

Prestaciones CPLD vs. DSP

Page 78: TEMA 1 Introducción a los sistemas programables avanzados

77

Tema 1: Introducción a los sistemas programables avanzados 153

Filtros adaptativos

Cancelación adaptativa del EGC de la madre

Cancelación adaptativa del eco en comunicaciones telefónicas

Tema 1: Introducción a los sistemas programables avanzados 154

¿Hasta donde han llegado las FPGA’s?Las sondas marcianas Spirit y Opportunity incorporan FPGA’s XQVR4000XL™ tolerantes a radiaciones para realizar tareas de control de motores, brazos, cámaras e instrumentos.

Page 79: TEMA 1 Introducción a los sistemas programables avanzados

78

155

1.4 Dispositivos Analógicos Programables (FPAD)

Tema 1: Introducción a los sistemas programables avanzados 156

FPAD (Field Programmable Analog Device)

Aplicaciones:

• Cálculos analógicos: • Procesado analógico de señal• Sistemas electrónicos de control• Audio• Instrumentación (RMS, potencia, valor medio..)• Cancelación de eco.• Linealización de transductores

Page 80: TEMA 1 Introducción a los sistemas programables avanzados

79

Tema 1: Introducción a los sistemas programables avanzados 157

Fabricantes de FPAD

• Aplicaciones: funciones analógicas no lineales, procesado de señal y control

• Célula básica: amplificador operacional realimentado• Programación: Volátil (registros de desplazamiento)

• Aplicaciones: instrumentación y acondicionamiento de señal• Célula básica: amplificador operacional y de instrumentación• Programación: No volátil E2CMOS (ISP: In-System-Programmation)

158

1.4.1 TRAC de FAS

Page 81: TEMA 1 Introducción a los sistemas programables avanzados

80

Tema 1: Introducción a los sistemas programables avanzados 159

TRAC020LH(Totally Re-configurable Analog Circuit)

Ventajas:

• Diseño rápido de circuitos que realizan funciones analógicas.

• Gran flexibilidad para realizar cambios.• Menos de 8 bytes de programación.• Modo de funcionamiento de bajo consumo.• Se pueden conectar distintos dispositivos en cascada para

realizar diseños complejos.

Tema 1: Introducción a los sistemas programables avanzados 160

Esquema del TRAC020LH

• 20 células programables• 20 entradas/salidas• 2 entradas para las células 1 y 2• Alimentación: Vdd = +3V, Vss = -2V, AGND = 0V

Page 82: TEMA 1 Introducción a los sistemas programables avanzados

81

Tema 1: Introducción a los sistemas programables avanzados 161

Funciones programables

Cada una de las células se puede programar con una de 8 funciones

Función CódigoNinguna funciónAmplificación operacionalAmplificador inversorSumadorNo inversorAntilogaritmicoLogaritmoRectificador

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

Tema 1: Introducción a los sistemas programables avanzados 162

Sumador (ADD)

Eo = -(Ea + Eb)

Parámetro Condiciones Min. Típico Max.Ganancia VA=VB = ±400mV -1.012 -1.000 -0.988Resistencia de entrada 30kΩ 40kΩ 50kΩOffset Vin = 0 mV -3.4mV 0mV 3.4mVAncho de banda (pequeña señal) 20 mVpp 6MHzAncho de banda (gran señal) 500 mVpp 3MHz

Page 83: TEMA 1 Introducción a los sistemas programables avanzados

82

Tema 1: Introducción a los sistemas programables avanzados 163

Negador (NEGATE)

Eo = - Ea

Parámetro Condiciones Min. Típico Max.Ganancia Vin = ± 800mV -1.010 -1.000 -0.990Resistencia de entrada 30kΩ 40kΩ 50kΩOffset Vin = 0 mV -2.4mV 0mV 2.4mVAncho de banda (pequeña señal) 20 mVpp 7MHzAncho de banda (gran señal) 500 mVpp 3MHz

Tema 1: Introducción a los sistemas programables avanzados 164

No inversor (NON INVERTING PASS)

Ea Eo

Esta célula provee una conexión directa sin modificar la señal: Ea = Eo

Parámetro Condiciones Min. Típico Max.Ganancia Vin = ± 800mV 0.996 1.000 1.004Resistencia de entrada 60MΩOffset Vin = 0 mV -1.2mV 0mV 1.2mVCorriente de entrada 100nA 260nAAncho de banda (pequeña señal) 20 mVpp 12MHzAncho de banda (gran señal) 500 mVpp 3MHz

Page 84: TEMA 1 Introducción a los sistemas programables avanzados

83

Tema 1: Introducción a los sistemas programables avanzados 165

Logaritmo (LOG)

( )

⋅⋅−=

IoREa

VEasignoEo T ln

Parámetro Condiciones Min. Típico Max.Tensión de salida Vin = ±1.000V ±625mV ±685mV ±745mVCaracterística de transferencia(Cambio de la salida para uncambio de entrada x10)

Vin = ±10mV,±100mV,±1000mV

±60mV

Resistencia de entrada 30kΩ 40kΩ 50kΩ

Tema 1: Introducción a los sistemas programables avanzados 166

Antilogaritmo (ANTI-LOG)

Parámetro Condiciones Min. Típico Max.Tensión de salida Vin = ±685mV ±0.80V ±1.00V ±1.2VCaracterística de transferencia(Multiplicación de la tensiónde salida para incrementosfijos de la tensión de entrada)

Vin = ±565mV,±625mV,±685mV steps

±10

( )VtEaeIoREasignoEo ⋅⋅⋅−= )(

Page 85: TEMA 1 Introducción a los sistemas programables avanzados

84

Tema 1: Introducción a los sistemas programables avanzados 167

Rectificador (RECTIFIER)

Si Ea < 0:

Si Ea > 0: Eo = 0

( )VtEaeIoREasignoEo ⋅⋅⋅−= )(

Parámetro Condiciones Min. Típico Max.Tensión de salida Vin = -685mV

Vin = +685mV+0.80V-5.0mV

+1.00V +1.2V5.0mV

Característica de transferencia(Multiplicación de la tensiónde salida para incrementosfijos de la tensión de entrada)

Vin = -565mV, -625mV,-685mV steps

+100V

Tema 1: Introducción a los sistemas programables avanzados 168

LOG + REC

La función de rectificación de media onda se consigue precediendo al bloque REC el bloque logarítmico (LOG)

Eo = Eapara Ea > 0Eo = 0para Ea < 0

( )

( )VtEp

T

eIoREpsigEo

IoREa

VEasigEp

⋅⋅⋅−=

⋅⋅−=

)(

lnLOG REC

Ea EoEp

Parámetro Condiciones Min. Típico Max.Ganancia Vin = ±1.0V 1.00Ancho de banda (pequeña señal) 20 mVpp 6MHzAncho de banda (gran señal) 500 mVpp 2MHz

Page 86: TEMA 1 Introducción a los sistemas programables avanzados

85

Tema 1: Introducción a los sistemas programables avanzados 169

Rectificador de onda completa

La función de rectificación de onda completa se consigue combinando dos rectificadores de media onda.

LOG REC

LOG RECINV

ADD |Ea|Ea

Tema 1: Introducción a los sistemas programables avanzados 170

LOG + ALOG

Parámetro Condiciones Min. Típico Max.Ganancia Vin = ±1.0V 1.00Ancho de banda (pequeña señal) 20 mVpp 6MHzAncho de banda (gran señal) 500 mVpp 2MHz

Eo = EaLOG ALOGEa EoEp ( )

( )VtEp

T

eIoREpsigEo

IoREa

VEasigEp

⋅⋅⋅−=

⋅⋅−=

)(

ln

Page 87: TEMA 1 Introducción a los sistemas programables avanzados

86

Tema 1: Introducción a los sistemas programables avanzados 171

Amplificador operacional (AUX)Permite incorporar elementos externos a un amplificador operacional

Parámetro Condiciones Min. Típico Max.Ganancia RF = RS = 20kΩ -0.993Corriente de entrada RF = RS = 20kΩ

Vin = 0 mV 100nAOffset RF = RS = 20kΩ

Vin = 0 mV 2.0mVTensión de saturación de salida Vin = ±50mV <Vss+0.2V >VDD-1.7VGanancia en lazo abierto 300 700

Tema 1: Introducción a los sistemas programables avanzados 172

Amplificador (AUX)

1 2

Eo RR

Ea= −21

Page 88: TEMA 1 Introducción a los sistemas programables avanzados

87

Tema 1: Introducción a los sistemas programables avanzados 173

Derivador (AUX)

Eo Ro Cd Ea

dt= − ⋅ ⋅

Tema 1: Introducción a los sistemas programables avanzados 174

Integrador (AUX)

EoC

EaR

dt= − ∫1

Page 89: TEMA 1 Introducción a los sistemas programables avanzados

88

Tema 1: Introducción a los sistemas programables avanzados 175

Esquema TRAC020

Tema 1: Introducción a los sistemas programables avanzados 176

Ejemplo de aplicación: Conversor RMS

Definición de Root Mean Squared: ( )VT

v t dtRMS = ⋅ ∫1 2

Page 90: TEMA 1 Introducción a los sistemas programables avanzados

89

Tema 1: Introducción a los sistemas programables avanzados 177

Diagrama de bloques del conversor RMS

Tema 1: Introducción a los sistemas programables avanzados 178

Diagrama de bloques con TRAC

( )x t 2

x(t)

( ) ( )y tT

z t dt= ∫1

( )y t

( ) ( )z t x t=2

( ) ( )v t x to RMS=

Page 91: TEMA 1 Introducción a los sistemas programables avanzados

90

Tema 1: Introducción a los sistemas programables avanzados 179

Implementación del filtro paso bajo

Simulación del filtro paso bajo real

Tema 1: Introducción a los sistemas programables avanzados 180

Implementación TRAC del conversor RMS

Page 92: TEMA 1 Introducción a los sistemas programables avanzados

91

Tema 1: Introducción a los sistemas programables avanzados 181

Programación

• DATA: Entrada serie de programación del TRAC.

• /RESET: Activa a nivel bajo, esta entrada tiene como función inicializar todos los registros de las células a cero lógico, que equivale a la función OFF.

• CLOCK: Esta entrada, activa a flanco de subida, se utiliza para introducir los bits de programación dentro de los registros de desplazamiento de las células.

• DOUT: Este pin es la salida serie de datos de la célula 20. Se utiliza normalmente para validar la programación del dispositivo. En el caso de que el diseño estécompuesto de dos o más TRAC se deberán conectar en serie para poder realizar la programación de todos ellos.

• CLCR: Esta salida se utiliza como pin de control para señalizar el fin de la programación del dispositivo.

Tema 1: Introducción a los sistemas programables avanzados 182

Secuencia de programación del convertidor RMS

100 110 111 011 110 011 000 001 011 101

011 110 111 000 110 000 010 110 000 010011 000 001 110 011 000 001 011 101 010

000 100 010 110 000 000 110 000 000 010

Page 93: TEMA 1 Introducción a los sistemas programables avanzados

92

Tema 1: Introducción a los sistemas programables avanzados 183

Filtro programable

( )Vout sRC s Vc

VRC s Vc

Vin s

w VcRC

bias

o

=+

−+

=

11

11

( )

Tema 1: Introducción a los sistemas programables avanzados 184

Amplificador controlado por tensión

Page 94: TEMA 1 Introducción a los sistemas programables avanzados

93

Tema 1: Introducción a los sistemas programables avanzados 185

Oscilador

fRCo =1

4

Frecuencia de oscilación

Tema 1: Introducción a los sistemas programables avanzados 186

Oscilador controlado por tensión

Page 95: TEMA 1 Introducción a los sistemas programables avanzados

94

Tema 1: Introducción a los sistemas programables avanzados 187

Modulador de anchura de pulsos (PWM)

188

1.4.2 ispPAC de Lattice

Page 96: TEMA 1 Introducción a los sistemas programables avanzados

95

Tema 1: Introducción a los sistemas programables avanzados 189

ispPAC(In-System-Programmable Analog Circuit)

Ventajas:• Diseño rápido de circuitos que realizan funciones analógicas.• Gran flexibilidad para realizar cambios con el sistema isp• Programación no volátil• Software de programación PAC-Designer.• Se pueden conectar distintos dispositivos en cascada para

realizar diseños complejos.

Tema 1: Introducción a los sistemas programables avanzados 190

Estructura ispPAC10

Cuatro células programables (Filtering/Summation PACblock) con:

• Dos Amp. de Instrumentación con entrada diferencial (G: ±1 y ±10)• Un filtro amplificador• Array de capacidades, fc: 10kHz y 100kHz

Page 97: TEMA 1 Introducción a los sistemas programables avanzados

96

Tema 1: Introducción a los sistemas programables avanzados 191

Estructura ispPAC20

• Dos células programables FilSum PACblock• DAC 8 bits• Dos comparadores

Tema 1: Introducción a los sistemas programables avanzados 192

Amplificador de puente de Wheastone

Sensor: galga extensiométricaGanancia: 100 con dos etapas de G=10

Page 98: TEMA 1 Introducción a los sistemas programables avanzados

97

Tema 1: Introducción a los sistemas programables avanzados 193

Filtro Biquad

Esquema del filtro Biquad Implementación con ispPAC

Tema 1: Introducción a los sistemas programables avanzados 194

Bibliografía (I)

• Rafael Ramos y Antonio Mànuel, “Introducción a los dispositivos lógicos programables (PLDs) de Lattice,” Eurofach Electrónica nº 284, pp. 36-39, Abril 2000. ISSN: 0211-2973.

• Rafael Ramos y Antonio Mànuel, “Introducción a los dispositivos lógicos programables (PLDs) de Lattice (II),” Eurofach Electrónica nº 285, pp. 52-56, Mayo 2000. ISSN: 0211-2973.

• Rafael Ramos y Antonio Mànuel, “La familia FLEX de dispositivos lógicos programables de Altera,” Conectrónica tecnología y elementos de conexión en electrónica nº 49, pp. 20-24, Julio-Agosto 2001.

• Rafael Ramos, Manuel Trujillo y Antonio Mànuel, “FPGA y herramientas de desarrollo,” Automática e Instrumentación nº 321, pp. 96-103, Septiembre 2001.

Page 99: TEMA 1 Introducción a los sistemas programables avanzados

98

Tema 1: Introducción a los sistemas programables avanzados 195

Bibliografía (II)

• Rafael Ramos y Antonio Mànuel, “La familia de dispositivos analógicos programables TRAC,” Revista Española de Electrónica nº 540, pp. 59-63, Noviembre 1999. ISSN: 0482-6396.

• Rafael Ramos y Antonio Mànuel, “La familia de dispositivos analógicos programables ipsPAC de Lattice,” Revista Española de Electrónica nº 547, pp.80-88, Junio 2000. ISSN: 0482-6396.

• Jonathan Rose, Abbas El Gamal and Alberto Sangiovanni-Vincentelli, “Arquitecture of Field-Programmable Gate Arrays,” Proceedings of the IEEE , Vol. 81, nº 7, July 1993, pp. 1013-1029.

• Jonathan Greene, Esmat Hamdy and Sam Beal, “Antifuse Field Programmable Gate Arrays,” Proceedings of the IEEE , Vol. 81, nº 7, July 1993, pp. 1043-1056.

Tema 1: Introducción a los sistemas programables avanzados 196

Bibliografía (III)

• Jonathan Rose and Stephen Brown, “Flexibility of Interconnection Structuresfor Field-Programmable Gate Arrays,” IEEE Journal of Solid-State Circuits, Vol. 26, nº 3, March 1991, pp. 277-282.

• Satwant Singh, Jonathan Rose, Paul Chow and David Lewis, “The Effect of Logic Block Architecture on FPGA Performance,” IEEE Journal of Solid-StateCircuits, Vol. 27, nº 3, March 1992, pp. 281-287.

• Fabio Somenzi and Silvano Gai, “Fault Detection in Programmable Logic Arrays,” Proceedings of the IEEE, Vol. 74, nº 5, May 1986, pp. 655-668.

• Paul Chow, Soon Ong Seo, Jonathan Rose, Kevin Chung, Gerard Páez-Monzón, and Immanuel Rahardja, “The Design of a SRAM-Based Field-Programmable Gate Array- Part II: Circuit Design and Layout,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 7, No. 3, September 1999, pp. 321-330.

Page 100: TEMA 1 Introducción a los sistemas programables avanzados

99

Tema 1: Introducción a los sistemas programables avanzados 197

Bibliografía (IV)

• Jonathan Rose and Stephen Brown, “Using Bus-Based Connections to ImproveField-Programmable Gate-Array Density for Implementing DatapathCircuits,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 14, No. 5, May 2006, pp. 462-473.

• Jonathan Rose, Robert J. Francis, David Lewis and Paul Chow, “Architectureof Field-Programmable Gate Arrays: The Effect of Logic Block Functionalityon Area Efficiency,” IEEE Journal of Solid-State Circuits, Vol. 25, No. 5, Oct. 1990, pp. 1217-1225.

• Chen, J., Eltoukhy, S., Yen, S., Wang, R., Issaq, F., Bakker, G., Yeh, J.L., Poon, E., Liu, D. and Hamdy, E., “A modular 0.8 µm technology for highperformance dielectric antifuse field programmable gate arrays,” Proceedings of International Symposium on VLSI Technology, Systems, and ApplicationsMay 1993, pp. 160 – 164.

Tema 1: Introducción a los sistemas programables avanzados 198

Bibliografía (V)

• Stephen Brown and Jonathan Rose, “FPGA and CPLD Architectures: A Tutorial,” IEEE Desing & Test of Computers, Summer 1996, pp. 42-57.

• www.xilinx.com• www.digilentinc.com• www.altera.com• www.latticesemi.com• www.cypress.com