1. INTRODUCCIÓN A LA LÓGICA PROGRAMABLE SISTEMAS...

51
SISTEMAS DIGITALES 1. INTRODUCCIÓN A LA LÓGICA PROGRAMABLE UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA Instituto de Electrónica y Mecatrónica M. C. Felipe Santiago Espinosa Marzo / 2019 1

Transcript of 1. INTRODUCCIÓN A LA LÓGICA PROGRAMABLE SISTEMAS...

S I S T E M A S D I G I T A L E S

1. INTRODUCCIÓN A LA LÓGICA PROGRAMABLE

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA

Instituto de Electrónica y Mecatrónica

M. C. Felipe Santiago Espinosa

Marzo / 2019

1

ELECTRÓNICA DIGITAL

ASIC : Application-Specific Integrated Circuit.

Lógica Digital

Lógica Estándar

TTL74xx

CMOS4xxx

Lógica Reconfigurable Personalizable

Microcontroladores

Microprocesador + Memoria

ASIC

SPLD’s CPLD’s FPGA’s SoC FPGA

2

CIRCUITOS DIGITALES RECONFIGURABLES

• De manera general, un circuito digital reconfigurable (CDR) contiene un arreglo de celdas lógicas.

• • En cada celda se puede programar una función booleana.

• Las celdas se comunican por conexiones que también son programables.

• Los CDR cuentan con bloques I/O, que se pueden configurar para que sean entradas, salidas o líneas bidireccionales.

3

CIRCUITOS DIGITALES RECONFIGURABLES

4

IOB – Bloque de Entrada/Salida

Celdas lógicas

Líneas de interconexión

La estructura del dispositivo y la arquitectura de la celda pueden variar, depende del fabricante y de la densidad del circuito.

CIRCUITOS DIGITALES RECONFIGURABLES

• Los CDR pueden ser programados “en sitio” en segundos o minutos.

• Las celdas lógicas incluyen compuertas y elementos de estado, para la creación de sistemas combinacionales y secuenciales.

• Los CDR están completamente caracterizados por el fabricante, el tiempo de respuesta de un sistema es predecible.

• Representan un estilo de diseño de bajo-riesgo, su capacidad de reconfiguración facilita la corrección de errores.

• Los CDR son ideales para el desarrollo de prototipos.

5

DENSIDAD EN LOS CDR’S

• Los CDR se desarrollan con procesos nano-métricos, lo que posibilita incluir millones de transistores en áreas mínimas.• Un FPGA Stratix 10 de Altera tiene 17x109 transistores en un espacio de

560 mm, su proceso es de 14 nm (2017).

• La programabilidad de un CDR requiere de circuitería que no puede ser usada por los diseñadores (Costo en Área).

• Por su alta densidad, el desarrollo de sistemas con CDR requiere el uso de Lenguajes de Descripción de Hardware (HDL).

6

MODIFICACIONES FUTURAS

• El mismo CDR puede ser utilizado para diferentes diseños. En contraste con circuitos de aplicación específica, cuya funcionalidad no puede ser cambiada.

• Un diseño basado en un CDR se puede modif icar a l reprogramar el dispositivo. La reprogramación puede tomar segundos o minutos, ya sea en línea (mientras el sistema está operando) o fuera de línea.

• No representa un riesgo mantener un volumen alto de CDR en inventario.

7

LÓGICA RECONFIGURABLE VS. LÓGICA DISCRETA

• Diseño de un circuito combinacional:

8

Lógica Discreta Lógica reconfigurable

1. Tabla de Verdad.2. Simplificación mediante

mapas de Kargnaugh.3. Diseño del circuito

simplificado.4. Cableado del circuito.5. Pruebas.

1. Tabla de Verdad.2. Descripción de la tabla

mediante un HDL.3. Sintesís e implementación

con herramientas EDA.4. Programación del CDR.5. Pruebas.

LÓGICA RECONFIGURABLE VS. LÓGICA DISCRETA

• Similitudes:• Ambas tecnologías representan un bajo riesgo en inventario.

• Ventajas de los CDR:• Velocidad y densidad mucho más alta.• Se facilita el desarrollo de prototipos.• Las correcciones y/o modificaciones futuras resultan mucho

más simples.• Existen herramientas de simulación e implementación más

sofisticadas.

• Desventajas de los CDR:• Algunos CDR no son convenientes para sistemas de baja

complejidad.• Su precio es más alto, en muchos casos es necesario emplear

una tarjeta para prototipado rápido.9

LÓGICA RECONFIGURABLE VS. PROCESADORES

Circuito Digital Reconfigurable

• Bloques e interconexiones configurables, es posible diseñar sistemas a medida.

• El programa define al hardware.

• En un sistema, los diferentes módulos pueden operar en forma concurrente.

• Un diseño puede optimizarse, ya sea en área o en velocidad.

Procesadores

• Unidades funcionales bien definidas.

• El programa determina el comportamiento del hardware.

• Un programa se ejecuta en forma secuencial, aunque exista concuerrencia en los recursos, su atención por la CPU será secuencial

10

CONCEPTOS RELACIONADOS

• Procesador o CPU: Es la unidad central de procesamiento de un sistema, se encarga de administrar los recursos del mismo bajo la ejecución de un programa, un programa es un con junto ordenado de ins t rucc iones con una tarea establecida.

• Microprocesador: Básicamente es una CPU en un chip y es utilizado para administrar los recursos en sistemas con alto nivel de procesamiento, como computadoras o video-juegos.

• Microcontrolador: Es un CI que contiene una CPU, memoria de p r o g r a m a , m e m o r i a p a r a d a t o s , p u e r t o s d e I / O , temporizadores, interfaces seriales, etc., con todos estos recursos los MCU (micro-controller unit) son empleados en sistemas embebidos con un propósito específico.

• Procesador Digital de Señales (DSP): Es un CI similar a un MCU porque tiene una CPU, memoria y otros recursos, pero la diferencia fundamental es la presencia de hardware optimizado para realizar operaciones matemáticas en forma rápida, generalmente cuentan con una unidad de punto flotante, también se enfocan a los sistemas embebidos.

11

¿QUE USAR: CDR, MCU O DSP?

• El tiempo de aprendizaje para el desarrollo de aplicaciones de mediana y alta complejidad es mucho más corto con un MCU o DSP, que con un CDR.

• Las tareas que se realizan con un MCU o DSP también se pueden realizar con un CDR, pero en el CDR primero debe establecerse el hardware y posteriormente definir su comportamiento.

• L a e l e c c i ó n d e u n a u o t r a t é c n i c a d e p e n d e d e l o s requerimientos del sistema y la experiencia del desarrollador.

• Los CDR son necesarios si se requiere hardware a medida y la ejecución concurrente de tareas a una alta velocidad.

12

CLASIFICACIÓN DE LOS CDR

Una clasificación básica es la siguiente:

• SPLD (Simple Programmable Logic Device)

• PROM (Programmable Read Only Memory) • PLA (Programmable Logic Array) • PAL (Programmable AND-Array Logic) • GAL (Generic Array Logic)

• CPLD (Complex Programmable Logic Device) • FPGA (Field Programmable Gate Array) • SoC (System On a Chip)

13

PROM

Arreglo AND fijo + Arreglo OR programable

El primer circuito configurable por el usuario, inventado en 1956.

Dirección

Dato

14

PROM (EJEMPLO)

– X = AB’C’ + A’B’C + A’BC – Y = A’BC’ + AB’C – Z = AB’C’ + ABC’ + A’B’C + ABC

15

PLA

• A mediados de la década de 1970 surgen los arreglos lógicos programables (PLA, Programmable Logic Array).

• Tienen un arreglo AND programable seguido de un arreglo OR programable.

• Pueden configurarse para realizar operaciones lógicas AND y OR.

16

PLA

Arreglo AND programable + Arreglo OR programable17

PLA (EJEMPLO)

– X = AB’C’ + A’B’C + A’BC – Y = A’BC’ + AB’C – Z = AB’C’ + ABC’ + A’B’C + ABC

18

PAL

• A finales de la década de 1970 surge el arreglo lógico AND programable (PAL, Programmable AND-Array Logic).

• Mejora los tiempos de retardo del PLA.

• El PAL consta de una arreglo AND programable y un arreglo OR fijo.

19

PAL

Arreglo AND programable + Arreglo OR fijo20

PAL

• X = AB’C’ + A’B’C • Y = A’BC’ + AB’C • Z = A’B’C + ABC

21

GAL

• Con los dispositivos PROM, PLA y PAL sólo se pueden construir circuitos combinacionales.

• Para crear circuitos secuenciales se requiere: • Elementos de estado (Flip-Flop). • Señal de reloj. • Líneas de retroalimentación.

• Con estos requerimientos se crearon los arreglos lógicos genéricos (GAL, Generic Logic Array).

• Una GAL se basa en un Arreglo AND programable y macro celdas lógicas de salida.

22

GAL

( OLMC, Output Logic Macrocell )

Combinacional

Secuencial 23

EJEMPLOS DE GALS COMERCIALES

24

CPLD

• Un CPLD es un dispositivo lógico programable complejo (Complex Programmable Logic Device).

• Son circuitos programables construidos con base en arreglos de bloques lógicos (LABs).

• Cada LAB contiene un conjunto de Macro celdas. • Con cada macro celda se puede realizar una función

lógica independiente. • Los LABs se conectan entre si a través de un arreglo de

interconexiones programable.• Es posible realizar sistemas con mayor complejidad que

con GAL's.

25

CPLD

26

U n C P L D p u e d e s e r c on s i de rado como un arreglo de GAL's.

CPLD (DIAGRAMA A BLOQUES)

27

CPLD (MACRO CELDA)

28

CPLD (BLOQUE I/O)

29

FPGA

• Un FPGA es un Arreglo de Compuertas Programable en Campo (Field Programmable Logic Device).

• Son dispositivos programables que están construidos con base en una matriz de bloques lógicos configurables (CLB) o elementos lógicos (LE).

• En cada CLB o LE se puede desarrollar una función lógica independiente, por que contienen:• Una pequeña memoria (llamada LUT, look up table) para definir la función.• Elementos de estado.• Multiplexores.

• El uso de LUT's establece una forma muy distinta para generar las funciones lógicas, con respecto a una macrocelda de un CPLD.

30

FPGA

31

FPGA

• Entre los CLBs hay un conjunto de alambres de diferentes longitudes conformando los recursos de ruteo.

• También se puede configurar la forma en que estas líneas se conectan.

• Alrededor de la matriz se encentran bloques de entrada y salida (IOB) que también son configurables.

• Los FPGA's actuales l legan a tener bloques con funciones especiales como multiplicadores, memorias, mul t ip l icadores-acumuladores (b loques DSP) , administradores de reloj, entre otros.

• 32

PRINCIPALES FABRICANTES

33

34

Hay 3 rutas principales :

• Entrada• Salida• Tres estados

IOBs

35

Los CLBs (Configurable Logic Blocks) constituyen los principales recursos lógicos para implementar circuitos combinacionales o secuenciales síncronos.

36

1 CLB = 4 Slices

Interior de un Slice

37

SOC FPGA

• Los s i s t e m a s e m b e b ido s e s t á n b a s a do s e n un procesador o en un FPGA.

• Un SoC FPGA integra un procesador (o procesadores) y lógica reconfigurables (típica de un FPGA) en el mismo dispositivo.

• Un SoC combina: La funcionalidad de gestión de alto nivel de un procesador con las operaciones en tiempo real, el procesamiento concurrente y el manejo de interfaces de un FPGA.

• El resultado es una plataforma de cómputo incrustada, aún más potente.

38

SOC FPGA

Se elimina el costo de una pieza de plástico y se reduce el tamaño de la tarjeta del sistema.

Se reduce el consumo de potencia y aumenta el ancho de banda para la comunicación entre el FPGA y el procesador. 39

SOC FPGA

40

APLICACIONES

• Los Dispositivos Lógicos Programables Simples (SPLD’s) proporcionan la flexibilidad que no se consigue con lógica estándar (TTL y CMOS).

• Los primeros SPLD’s se usaron para hacer partes de diseños que no correspondían con ningún componente existente en el mercado.

• Con su uso se reduce el número de chips requeridos por una implementación basada en circuitos LSI, reduciendo el tamaño y consumo de potencia.

• Una ap l icac ión t íp ica para es tos c i rcu i tos es la decodificación de direcciones de un procesador, para el manejo de información de memorias o perifér icos mapeados a memoria.

41

APLICACIONES

• Para dispositivos de mayor densidad, como CPLD's y FPGA's, las aplicaciones pueden incluir:• Pegamento lógico.• Conversión de diseños basados en lógica discreta o múltiples SPLDs.• Sistemas completos con poco volumen de producción.

• Con los CPLDs es posible realizar diseños relativamente complejos, como:• Controladores de gráficos.• UARTs• Controladores de LAN• Control de caché, etc.

• Al emplear CPLD's, los fabricantes pueden manufacturar un número elevado de tarjetas, con la flexibilidad de actualizar el firmware si llega a haber cambios en algún protocolo.

42

APLICACIONES

• Las aplicaciones de los FPGAs en el área de procesamiento de señales incluyen:• Controladores de dispositivos• Sistemas de codificación y filtrado en tiempo real

• Los fabricantes de microprocesadores uti l izan FPGAs para la evaluación de prototipos, se evalúa la ejecución de instrucciones antes de fabricar el diseño final.

• Otras áreas de interés son el procesamiento de imágenes y visión por computadora. En el FPGA se implementan arquitecturas específicas que se pueden paralelizar para acelerar su rendimiento.

• En IA se han empleado FPGA's para implementar redes neuronalos o sistemas difusos.

43

44

• Surgen como una necesidad debido a que, con la alta d e n s i d a d d e l o s C D R ' s a c t u a l e s , l o s m é t o d o s tradicionales llegan a ser ineficientes.

• Antes de los HDL, los métodos de diseño se basaban en ecuaciones booleanas y esquemáticos.

• Con ecuaciones Booleanas se debe determinar una ecuación por cada flip-flop.

• Es impráctico para circuitos con cientos de flip-flops.

• Teóricamente cualquier sistema puede representarse con ecuaciones booleanas, pero tratar con miles de ellas no es factible.

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

ANTES DE LOS HDL

• El uso de esquemáticos amplía la capacidad del uso de ecuaciones, al aceptar bloques con funciones básicas (multiplexores, sumadores, memorias, etc.), además de compuertas y flip-flops.

• Con la posibilidad de agregar nuevos módulos, se pueden m a n e j a r d i s e ñ o s j e r á r q u i c o s a c o m o d a n d o m á s componentes con menos esfuerzo.

• Las representaciones gráficas muestran las relaciones entre diferentes bloques del diseño.

• Fue considerado como un método óptimo para el diseño de sistemas digitales.

45

DESVENTAJAS DE LOS MÉTODOS TRADICIONALES

• Un diseño inicia con la descripción del comportamiento esperado. Con los métodos tradicionales, el resultado final no muestra los fundamentos sobre los cuales fue creado.

• La verificación y modificaciones futuras llegan ser muy complicadas cuando un diseño sólo contiene información de sus interconexiones o se basa en un número grande de ecuaciones.

• Tratar con cientos de ecuaciones es difícil, pero factible; sin embargo, si se trata de miles de ecuaciones llega a ser imposible.

• Los sistemas actualmente contienen millones de compuertas (y sus densidades continúan creciendo), por lo que los métodos tradicionales ya no son suficientes.

46

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

• Los lenguajes para la descripción de Hardware eliminan las desventajas de los métodos tradicionales.

• Su ap l icac ión es d i recta en d i fe rentes d i spos i t i vos programables:• PLD’s de diferentes complejidades, desde los simples PALs hasta los

complejos CPLD’s.• FPGA’s : Arreglos de Compuertas Programables en Campo.

• Actualmente hay diferentes lenguajes HDL, los más populares son: CUPL, VHDL, Verilog y ABEL.

47

48

Descripción Informal

Ecuaciones Booleanas

Esquemático

Sintésis delCircuito

Especificación enun HDL

AN

TES

DE

LO

S H

DL

CO

N U

N H

DL

Los HDL se auxilian de herramientas EDA, para una sistesis e implementación automática.

CUPL: UN HDL PARA SPLD'S

CUPL significa Compilador universal para Lógica Programable, se emplea para programar o simular GAL'S.

Con CUPL es posible el diseño de circuitos combinacionales o secuenciales.

Un circuito combinacional se describe por medio de su ecuación booleana o con su tabla de verdad.

Para los circuitos secuenciales se pueden emplear ecuaciones para los e lementos de estado. También es pos ib le una descripción a través de una máquina de estados f initos, conservando la estructura de la solución del problema.

WinCUPL es una versión de CUPL para windows. Es un entorno desarrollado por Atmel Corporation.

49

EJEMPLOS PARA CONOCER EL ENTORNO DE WINCUPL

1. Circuito combinacional: Decodificador de Binario a 7 Segmentos.

50

I0/CLK1

I12

I23

I34

I45

I56

I67

I78

I89

I910

I1011

I1113

IO0 23

IO1 22

IO2 21

IO3 20

IO4 19

IO5 18

IO6 17

IO7 16

IO8 15

IO9 14

U1

AM22V10

0000

Describir con WinCUPL. Simular con Proteus.

EJEMPLOS PARA CONOCER EL ENTORNO DE WINCUPL

2. Circuito secuencial: Contador binario UP/DOWN de tres bits.

51

I0/CLK1

I12

I23

I34

I45

I56

I67

I78

I89

I910

I1011

I1113

IO0 23

IO1 22

IO2 21

IO3 20

IO4 19

IO5 18

IO6 17

IO7 16

IO8 15

IO9 14

U1

AM22V10

???

00

U1(CLK)

UP

DOWN

Describir con WinCUPL. Simular con Proteus.