clase 14: hardware programable · 2019-10-22 · introducci on el hardware de los sistemas...

65
Clase 14: Hardware programable Sistemas Embebidos Prof: Lic. Jos´ e H. Moyano Departamento de Ciencias e Ingenier´ ıa de la Computaci´ on 2019 Prof: Lic. Jos´ e H. Moyano (Departamento de Ciencias e Ingenier´ Clase 14: Hardware programable 2019 1 / 63

Upload: others

Post on 19-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Clase 14: Hardware programableSistemas Embebidos

Prof: Lic. Jose H. Moyano

Departamento de Ciencias e Ingenierıa de la Computacion

2019

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 1 / 63

Page 2: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Introduccion

El hardware de los sistemas embebidos se compone de un CPU, memoria ydispositivos.

Hasta el momento hemos considerado que dicho hardware era fijo, incluido en unSoC o mediante un conjunto de ICs conectados al microcontrolador.

Sin embargo, actualmente existe una tendencia creciente en la utilizacion dehardware programable.

Es cada vez mas comun el uso de dispositivos programables integrados en losmicrocontroladores (SoCs y boards).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 2 / 63

Page 3: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Ventajas

Muy util para el prototipado de soluciones y para el analisis de disenos alternativos(menores costos – non-recurring engineering (NRE) costs)

Muy sencillo realizar actualizaciones

Mayor flexibilidad y menores costos en cada iteracion del proceso de diseno

Menor “time to market” para productos nuevos

Mayor reuso de componentes

La idea es disenar un circuito en software e implementarlo en hardware. Se tiene laflexibilidad del software y el desempeno del hardware.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 3 / 63

Page 4: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Introduccion

Sin embargo:I Disenar con HW programable es mas complejoI Mayor delay y area, y peor desempeno que un ASICI Tienen mayor costo y consumo por unidad (que un ASIC)I No aptos para disenos simples que no aprovechan la flexibilidad

Originalmente:I Se prototipaba con estas herramientasI Se encargaban ASICs en base a dichos prototipos

Actualmente existe tendencia a incluir hardware programable en las solucionesfinales a partir de cierto costo.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 4 / 63

Page 5: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Hardware programable

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 5 / 63

Page 6: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Hardware programable

Un dispositivo programable es un componente electronico que permite laimplementacion de funciones mediante la combinacion y reconexion de elementosmas simples.

Se compone de elementos discretos y de una logica de interconexion reconfigurable.

A diferencia del hardware fijo, no implementa una funcionalidad determinada. Lafuncion es programada en el dispositivo luego de fabricado.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 6 / 63

Page 7: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Hardware programable

En este contexto, para un diseno de sistema embebido hay que determinar quefuncionalidad:

I Se implementa en hardware fijoI Se implementa en hardware programableI Se implementa en software

La introduccion de hardware programable desdibuja los lımites entre el desarrollo desoftware y el desarrollo de hardware.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 7 / 63

Page 8: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Hardware programable

Estudiando ingenierıa en computacion ¿Vieron anteriormente hardwareprogramable?

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 8 / 63

Page 9: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Tecnologıas

Existen distintas tecnologıas de hardware programable que determinan como eldispositivo es configurado (como se interconectan sus elementos basicos):

Fusible-link

Antifuse technology

SRAM-based technology

EPROM/EEPROM/Flash-based technology

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 9 / 63

Page 10: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Fusible-link

No usado en actualmente en FPGA.

“Removiendo” los fusibles al aplicar alta tension, se selecciona que entradas serancomputadas (se programa el dispositivo).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 10 / 63

Page 11: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Fusible-link

¿Se podra reprogramar la tecnologıa de fusible-link si se eliminan losfusibles aplicando tension?

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 11 / 63

Page 12: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Antifuse technologyEn estado no programado: antifuse en alta impedancia (OC).Conforman dispositivos OTP (one-time programmable). Son rapidos y consumenmenos.

Se produce un enlace aplicando corrientes yvoltajes altos.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 12 / 63

Page 13: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

SRAM-based

Utilizan una celda SRAM para determinar laprogramacion de la logica.

Cada celda ocupa una porcion considerable de silicio (varios transistores p/celdaSRAM + el transistor de control).

La programacion se pierde al cortar el suministro electrico. El dispositivo debereprogramarse en cada inicio.

Este tipo de dispositivos se programan rapida y facilmente (los mas utiles paraprototipado).

La tecnologıa SRAM mejora continuamente, se logran altos niveles de integracionya que sigue procesos de construccion estandar.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 13 / 63

Page 14: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

EPROM/EEPROM/Flash-based

Utilizan celdas de memoria Flash para mantener la programacion.

Son no volatiles (al igual que los dispositivos antifuse), pero reprogramables (comolos SRAM-based).

Utilizan un proceso de fabricacion estandar (como los SRAM-based) y consumenpoco (como los antifuse).

Son dispositivos relativamente rapidos.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 14 / 63

Page 15: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Comparacion

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 15 / 63

Page 16: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Comparacion

¿Por que SRAM-based son los mejores para desarrollo y prototipado?

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 16 / 63

Page 17: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Categorıas de Hardware Programable

Simple Programmable Logic Devices(SPLDs)

Complex Programmable Logic Devices(CPLDs)

Field Programmable Gate Arrays(FPGAs)

Cierta funcionalidad es posible implementarla en mas de una de estas categorıas(solapamiento).

Los PLD mas complejos pueden implementar cualquier funcionalidad, pero nosiempre resulta conveniente.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 17 / 63

Page 18: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Comparando categorıas

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 18 / 63

Page 19: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Tecnologıas y categorıas

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 19 / 63

Page 20: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Escala de lo SPLDs

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 20 / 63

Page 21: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Escala de los CPLDs

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 21 / 63

Page 22: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Escala de los FPGAs

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 22 / 63

Page 23: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Simple Programmable Logic Devices (SPLDs)

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 23 / 63

Page 24: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

SPLDsEn el extremo mas bajo del espectro tenemos los Arreglos Logicos Programables(PAL, PLA) o Arreglos Logicos Genericos (GAL).

Los SPLD constituyen elorigen del hardwareprogramable y surgieron paraimplementar la llamada “gluelogic “.

Ej: address decoding. . .

Estos dispositvos sedenominan (Simple)Programmable Logic Devices(PLDs).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 24 / 63

Page 25: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

SPLDs

Cada SPLD define dos arreglos de compuertas: uno computa el AND y el otro elOR booleanos. Dichos arreglos conforman un conjunto de macroceldas.

Cada macrocelda implementa logica combinacional y opcionalmente flip flops, ypuede almacenar una ecuacion booleana simple que combina ciertas entradas conciertas salidas (suma de productos).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 25 / 63

Page 26: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

SPLDs

Las ecuaciones se programan con unlenguaje particular (ej: ABEL,PALASM). A partir de allı se construyela imagen que luego es programada enel dispositivo (Programador de PLA –[E]PROM).

Otra alternativa es transferir el disenoa partir de la captura de esquematicos.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 26 / 63

Page 27: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

SPLDs

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 27 / 63

Page 28: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Complex Programmable Logic Devices (CPLDs)

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 28 / 63

Page 29: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

CPLDsEl siguiente escalon en hardware programable esta dado por los ComplexProgrammable Logic Devices (CPLDs).En su forma mas simple se componen de multiples bloques logicos (SPLDs)interconectados.

Permiten implementar disenos mascomplejos merced a una mayorcantidad de recursos.

Programables por JTAG.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 29 / 63

Page 30: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

CPLDsAbarcan desde aplicaciones simples como decodificacion de direcciones hastaimplementaciones de logicas de control de alta performance y maquinas de estadosfinitos.

Los CPLD con mayor numero decompuertas comparten parte delcampo de aplicacion con los FPGAs,aunque presentan retardos menores ymas predecibles a raız de suarquitectura interna menos flexible.

Altera MAX 7000-series (2500 compuertas)Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 30 / 63

Page 31: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Field Programmable Gate Arrays (FPGAs)

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 31 / 63

Page 32: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

FPGAs

El ultimo escalon en hardware programable viene dado por los Field ProgrammableGate Arrays (FPGAs).

Pueden utilizarse para implementar practicamente cualquier diseno de hardware(prototipos para ASICs o disenos finales dependiendo de los costos de desarrollo yproduccion para un proyecto vs la necesidad de actualizar el HW una vez lanzado elproducto).

Principales fabricantes (son fabless):

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 32 / 63

Page 33: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Diferencias con CPLD

Los FPGAs difieren estructuralmente de los CPLD en:

Bloques logicos

Interconexiones (canales de ruteo)

Bloques o elementos de I/O

Red de propagacion de la senal de clock

Pueden incluir multiplicadores

Pueden incluir elementos de memoria

Pueden incluir caracterısticas avanzadas

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 33 / 63

Page 34: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

CPLD vs FPGA

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 34 / 63

Page 35: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

CPLD vs FPGA

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 35 / 63

Page 36: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

FPGAs

Los FPGAs siguen la idea de interconectar elementos basicos para lograrfuncionalidades mas avanzadas, pero son mas adecuados para aplicaciones quehacen uso intensivo de los registros y del pipelining.

Son muy utilizados como alternativa a soluciones de CPU + Software cuando elprocesamiento de datos requiere tasas elevadas (aceleracion por Hardware).

En general son mas densos que los CPLD lo que los convierte en la eleccionobligada ante niveles muy altos de integracion.

Numerosos MCUs y DSCs integran FPGAs en SoCs.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 36 / 63

Page 37: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Aplicaciones

ASICs/ASSPs: Cada dıa es mas comun el uso de FPGAs para aplicaciones antesdestinadas al uso de ASICs de manera dedicada (prototipado y desarrollo).

Digital Signal Processig (DSP): los FPGAs que integran MACs, grandes cantidadesde RAM, y proveen ruteo aritmetico dedicado simplifican las implementaciones enprocesamiento digital de senales. Si sumamos el alto nivel de paralelismo presenteen los FPGAs, se obtienen implementaciones DSP de altısimo desempeno.

Microncontroladores embebidos: A medida que decrecen los costos de los FPGAs,es cada vez mas comun el uso de procesadores soft-core que integran funciones deE/S personalizadas en aplicaciones embebidas.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 37 / 63

Page 38: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Aplicaciones

Comunicaciones: Historicamente se han utilizado para la interface (glue logic) entrela capa fısica y las capas de protocolos de red superiores. Actualmente los FPGAsde alta performance incorporan transceivers de alta velocidad, consolidando lascomunicaciones y las funciones de red en un unico dispositivo.

Computacion reconfigurable: Se trata de explotar la naturaleza paralela yreconfigurable de los FPGAs para acelerar por hardware algoritmos de software.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 38 / 63

Page 39: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

FPGAsLos bloques logicos en un FPGA pueden ser tan simples como una macroceldaPLD, o mas complejos (nunca tan complejos como un PLD completo).

Se diferencian de los CPLD fundamentalmente en que estan basados enMUXes/Lookup Tables mientras que estos ultimos estan basados en suma deproductos.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 39 / 63

Page 40: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

MUX/Lookup tablesSe diferencian de los CPLD fundamentalmente en que estan basados en MUXes/LookupTables mientras que estos ultimos estan basados en suma de productos.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 40 / 63

Page 41: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Ventajas LUT

Permite encadenar las celdas SRAM (programacion por JTAG)

Permite implementarse como un bloque de RAM/shift register.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 41 / 63

Page 42: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Combinando bloques logicosLos bloques logicos (celdas logicas/elementos logicos) se combinan para formarestructuras mayores.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 42 / 63

Page 43: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Combinando bloques logicos

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 43 / 63

Page 44: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Jerarquıa

En estos ejemplos, terminologıa XilinxI Un Configurable Logic Block (CLB) son 4 slicesI 1 slice son 2 celdas logicas

Interconexion entre LC en un slice rapida, un poco mas lenta entre slices en unCLB, mas lenta entre CLB.

Intentar obtener el trade-off optimo entre hacer facil la conexion de elementos, sinincurrir en delays excesivos producidos por la interconexion.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 44 / 63

Page 45: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

FPGAs orientados a conexionLos FPGAs estan mas orientados a la interconexion que los CPLD:

Son mas flexiblesEs mas complejo disenar sobre ellos (ruteo)

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 45 / 63

Page 46: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Bloques de E/S

Los FPGAs poseen elementos o bloques de E/S.

Para interfacear elementos externos.

Los bloques de E/S proveen registros, senalesde control, multiplexores y senales de clock.

Entradas directas.

Salidas 3-state.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 46 / 63

Page 47: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Bloques de E/S

Tener en cuenta ciertos aspectos al momento deasignar pines de E/S:

Seleccion de salidas Pull-Up vs Pull Down

Estado de los pines no usados (dejarlosflotantes consume energıa)

Modos de operacion simple o diferencial.

Estandares de E/S.

Etc.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 47 / 63

Page 48: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Clock

Los FPGAs proveen recursos paragestionar la senal de clock.

Dispersar la senal de clock de maneracontrolada (minimizar el clock skew).

Clock globales y regionales (clockingdiferencial).

Ruteo de la senal de clock.

Ajuste de fases y frecuencias entre lasdiferentes regiones del dispositivo.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 48 / 63

Page 49: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Clock Trees

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 49 / 63

Page 50: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Repasando o aprendiendo algunos conceptos

Con respecto a una senal de clock

¿Que es jitter?

¿Que es el skew entre dos senales?

¿Que es frequency synthesis?

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 50 / 63

Page 51: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Repasando o aprendiendo algunos conceptos

Con respecto a una senal de clock

¿Que es jitter?

¿Que es el skew entre dos senales?

¿Que es frequency synthesis?

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 50 / 63

Page 52: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Repasando o aprendiendo algunos conceptos

Con respecto a una senal de clock

¿Que es jitter?

¿Que es el skew entre dos senales?

¿Que es frequency synthesis?

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 50 / 63

Page 53: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Clock ManagersEs un bloque especial de funcion cableada

Derivar senales de clock (daughter clocks)

Corregir jitter mediante PLL (phase lockedloop) o DLL (delay locked loop).

Sıntesis de frecuencias: Para crear daughterclocks divisores o multiplicadores de la senal deentrada.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 51 / 63

Page 54: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Clock Managers

Desplazamientos de fase (para disenosque lo necesiten)

Deskewing de senal de clock: Skew esel lag entre la senal de entrada y lasenal procesada.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 52 / 63

Page 55: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Unidades multiplicadoras

Los FPGAs incluyen regiones de memoria y unidadesmultiplicadoras entre otras unidades dedicadas:

Util para procesamiento DSP.

Ciertas funciones como sumadores, las unidadesde multiplicacion, o unidades MAC son lentas sise implementan interconectando elementoslogicos. . .

. . . entonces se proveen bloques multiplicadoresprecableados.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 53 / 63

Page 56: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Unidades multiplicadoras

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 54 / 63

Page 57: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Otros elementos en una FPGAAdicionalmente se cuenta con la posibilidad de:

Incluir Intellectual Properties (IPs), i.e. componentes de funcionalidadpre-implementada.

Contar con procesadores dedicados e interconectarlos a los demas elementos deprocesamiento.

Descargar procesadores completos sobre la matriz de elementos logicos del FPGA(soft-core CPUs).

Contar con bloques del FPGA optimizados para el procesamiento digital de senales.

Soporte para estandares de E/S (Ejemplo,transceivers Ethernet Gigabit de alta velocidad).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 55 / 63

Page 58: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Ej: Altera Cyclone II vs Altera Stratix V

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 56 / 63

Page 59: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

FPGAs

Todo diseno basado en FPGAs debe mapearse teniendo en cuenta los recursosdisponibles (cantidad de bloques logicos, numero de interconexiones, etc).

La configuracion del FPGA se realiza mediante lenguajes de descripcion dehardware. La especificacion se sintetiza y se descarga en el dispositivo programable.

El diseno de hardware utiliza los mismos procesos y herramientas que el diseno desoftware.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 57 / 63

Page 60: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Esquema tıpico desarrollo para FPGA

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 58 / 63

Page 61: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Procesadores Soft Core

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 59 / 63

Page 62: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Procesadores Soft Core

Siguiendo la misma logica utilizada para implementar circuitos combinacionalessimples, circuitos secuenciales y elementos mas complejos como sumadores,multiplicadores, unidades multiply and accumulate, etc., el hardware programablepermite implementar procesadores completos.

Cuando se necesita un dispositivo adicional con un elevado grado de diversidadfuncional, lo usual es definir un instruction set e implementarlo como un procesadordentro del FPGA.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 60 / 63

Page 63: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Procesadores Soft Core

Los proveedores proveen nucleos de procesadores listos para ser descargados en susFPGAs.

El usuario selecciona las prestaciones del microprocesador e instala dicho hardwareen el FPGA.

Ejemplos:I Microblaze core de Xilinx.I NIOS core de Altera.

La funcionalidad y las prestaciones de cada core se pueden seleccionar en funcionde los recursos de hardware disponibles y de los requerimientos de la aplicacion.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 61 / 63

Page 64: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Resumen

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 62 / 63

Page 65: Clase 14: Hardware programable · 2019-10-22 · Introducci on El hardware de los sistemas embebidos se compone de un CPU, memoria y dispositivos. Hasta el momento hemos considerado

Referencias

Barr, M., Massa, A. Programming Embedded Systems: With C and GNUDevelopment Tools, 2nd Edition. O’Reilly Media. 2006. ISBN: 978–0596009830.Capıtulo 13.

Cofer, R., Harding, B. Rapid System Prototyping with FPGAs: Accelerating thedesign process (Embedded Technology). Newnes. 2005. ISBN: 978–0750678667.Capıtulos 1 y 2.

Maxfield, C. FPGAs: World Class Designs. Newnes. 2009. ISBN: 978–1856176217.Capıtulos 1, 2 y 3.

Simon, D. An Embedded Software Primer. Addison-Wesley Professional. 1999.ISBN: 978–0201615692. Capıtulos 6 y 7.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 14: Hardware programable 2019 63 / 63