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
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
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
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
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
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
• 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
Los CLBs (Configurable Logic Blocks) constituyen los principales recursos lógicos para implementar circuitos combinacionales o secuenciales síncronos.
36
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
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.