Burger- la negación de la autonomia del arte en la vanguardia.pdf
01 introduccion
1. 1: Intro 1
¿Porque estudiar diseño
digital?
Es la base para la implementación de
todos los sistemas computacionales
modernos
Construcción de unidades más complejas de
componentes primitivos.
Conocer los principios para organizar los
bloques constructivos básicos de la
computadores.
El paralelismo inherente en el hardware es
nuestra primera introducción a la
computación paralela.
Proveer un modelo y un entendimiento de
cómo funciona una computadora.
3. 1: Intro 3
Objetivos
El lenguaje de diseño y
modelamiento digital
Álgebra de Boole
Funciones y representación
de variables discretas
Minimización lógica
Conceptos de estados
Análisis temporal
Herramientas CAD
Concepto de estados en
sistemas digitales
Análogo a variables y
contadores en el software
Como especificar, simular, compilar y
analizar sistemas
Lenguajes de descripción de HW
Herramientas para simular la
operación de nuestros diseños
Compiladores lógicos para
sintetizar los bloques de diseños
Implementación en hardware
programable
Diferentes tecnologías de
implementación de hardware
Contrastar con diseño de SW
Implementaciones de máquinas
secuenciales y paralelas
Especificar algoritmos, recursos de
procesamiento y almacenamiento
4. 1: Intro 4
Objetivos
Visto por capas
Arquitectura abstracta
Síntesis y optimización
Bloques básicos
Compuertas y flip-flops
5. 1: Intro 5
Objetivos
Resumen: Se estudiaran...
Los fundamentos matemáticos de las funciones de
variables discretas boolenas, su estructura y
diversos métodos de representación.
Los principios y técnicas para modelar situaciones
del mundo real, mediante funciones booleanas y
registros.
Se analizaran sistemas ya diseñados para
posteriormente diseñar, implementar o sintetizar
mediante diferentes tecnologías sistemas digitales
combinacionales y secuenciales.
6. 1: Intro 6
1850: George Boole inventa el álgebra de
Boole
convierte proposiciones lógicas a
símbolos
permite la manipulación de la lógica
proposicional
1938: Claude Shannon aplica el álgebra de
Boole al desarrollo de circuitos conmutados
(switched circuits)
su tesis de Magíster
1945: John von Neumann desarrolla el primer
programa de computadora en la arquitectura
de programa almacenado (stored-program
computer)
sus elementos de conmutación son tubos
de vacío
Un poco de historia
7. 1: Intro 7
1946: ENIAC . . . La primera computadora
electrónica
18,000 tubos de vacío
varios miles de multiplicaciones por minuto.
1947: Shockley, Brattain y Bardeen (Bell Labs)
inventan el transistor
Reemplazo tubos de vacío
Permitió la mayor integración de múltiples
dispositivos.
Comienzo de la electrónica moderna.
Un poco de historia
8. 1: Intro 8
¿Que es el diseño digital?
¿Qué es el diseño?
Dada la especificación de un problema, lograr determinar una manera
de resolverla, seleccionando apropiadamente desde un grupo de
componentes disponibles.
Siempre considerando un conjunto de criterios (requerimientos) como
tamaño, costo, poder, confiabilidad, elegancia, simplicidad etc.
0101010101010101010101
¿Qué es el diseño digital?
Determinación de las componentes de hardware digitales que
implementan las especificaciones de comunicación, control y
procesamiento de los datos.
Más específicamente, es descomponer la solución en redes
combinacionales y/o secuenciales organizando jerárquicamente el
diseño empleando herramientas computacionales modernas.
Hay muchas diferentes tecnologías que se pueden usar para
implementar un diseño (e.g., componentes, dispositivos
programables, transistores en un chip, etc.)
El diseño tiene que ser optimizado para los requerimientos
previamente especificados.
9. 1: Intro 9
¿Que es el diseño digital?
Conceptos básicos en sistemas digitales.
Sistema con una entrada E y una salida S
Las variables E y S sólo pueden tomar los
valores discretos: 0, 1, 2, 3.
10. 1: Intro 10
¿Que es el diseño digital?
Codificación.
Se denomina codificación binaria al proceso
de asignar un vector booleano a un símbolo o
valor de la variable multivaluada.
Sistema numérico binario.
• En el sistema numérico binario la base numérica es
2, y los dígitos sólo pueden ser 0 y 1.
11. 1: Intro 11
¿Que es el diseño digital?
Información. Bit, Byte.
Se denomina bit, que es un acrónimo de
Binary Digit, a la cantidad de información
requerida para distinguir entre dos opciones
igualmente probables.
Tablas de verdad.
12. 1: Intro 12
¿Que es el diseño digital?
Compuertas básicas. Operadores
booleanos.
En el álgebra de Boole se definen los
operadores and y or, mediante las tablas de
verdad .
Expresiones booleanas.
14. 1: Intro 14
Algunas aplicaciones del diseño
digital
Computadores
CPUs, bus, equipos periféricos de I/O (discos,
pendrives, teclados, impresoras, mouse, pantallas,
etc)
Redes y comunicaciones
centrales, estaciones base, teléfonos, módems,
routers, switches, hubs, gateways, gatekeepers (VoIP)
Sistemas embebidos
electrodomésticos
aparatos portátiles: celulares, iPods, organizadores
juguetes y juegos de video
aparatos a control remoto
controladores industriales, robots
Equipos científicos
equipos de prueba, sensores, aparatos médicos
Muchos otros
15. 1: Intro 15
Algunas tendencias actuales en
el diseño digital
Tendencias de la industria para diseño de hardware
Diseños mas grandes e integrados.
Tiempo al mercado mas corto.
Productos mas baratos.
Escala
Uso común de herramientas computacionales sobre métodos
manuales.
Múltiples niveles de diseño y representación.
Tiempo
Énfasis en representaciones abstractas de diseño.
Uso de componentes programables (e.g. FPGA) sobre otros de
función fija.
Técnicas automáticas de síntesis del diseño lógico (e.g. Verilog).
Importancia de buenas metodologías y procesos de diseño.
Costo
Uso de simulación para depurar (debug).
Simulación y verificación (testing) antes de construcción.
16. 1: Intro 16
Diseño digital: computación
abstracta versus
implementación
Computación abstracta es un ejercicio mental o de software
(programas).
Esta clase trata sobre como se puede implementar sistemas
de computación en hardware que usan voltajes para
representar valores lógicos binarios (1 y 0).
Elementos básicos de la computación.
Representación binaria: 0, 1
Asignación: x = y
Operaciones sobre datos: x + y – 5
Control:
• expresiones secuénciales 1; 2; 3;...
• expresiones condicionales: if x == 1 then y
• ciclos (loops): for (i = 1; i == 5; i++) x = x +
A[i];
• procedimientos (funciones)
Uso común de lenguajes y herramientas computacionales (e.g.
HDL, Verilog, Xylinx) sobre métodos manuales.
Múltiples niveles de diseño y representación.
17. 1: Intro 17
Abstracción digital
Abstracción digital binaria
Consiste en representar las señales análogas reales
de entrada y salida usando valores discretos lógicos 0
y 1
Margen de ruido
Margen de ruido
Volts
lógica 1
lógica 0
zona de transición entre lógica 0 y 1
4
3
2
0.5
- 0.5
1
0
Voh
Vol
Vil
Vih
18. 1: Intro 18
Abstracción digital
¿Porque es útil la digitalización?
Permite el desarrollo modular de sistemas
Ayuda a prevenir que un 0 sea confundido con un 1
y viceversa, valores específicos dependen de la
tecnología usada (e.g. TTL)
e.g. VIL debe ser un poco mayor que VOL
Vol
Vil
Vil
Vol
Volts
tiempo
19. 1: Intro 19
Abstracción digital
Bit (Binary digit): unidad de información
Si se tienen 2 eventos igualmente probables y se
desea conocer cuál se produce, debe aportarse 1
bit de información
Interruptor abierto es 1
Interruptor cerrado es 0
Se puede codificar en un bit, el estado del
interruptor
¿Si hay 8 eventos posibles, para conocer la
ocurrencia de uno de ellos deben tenerse
cuantos bits de información?
20. 1: Intro 20
Abstracción digital
La información puede definirse como:
conocimiento comunicado o recibido concerniente a
un hecho particular, el cual reduce la incertidumbre
del receptor
Si tenemos un espacio de muestreo dividido en
2N casos que son igualmente probables Ek (k =
1, 2, ..., 2N
) entonces la información (en bits)
proveída por el hecho Ek es N bits
21. 1: Intro 21
Abstracción digital
Evento
Se denomina evento al cambio de valor de una
señal en un instante de tiempo.
¿Que es un canto de bajada/subida?
Pasar de nivel lógico 1 a 0 se denomina canto de
bajada.
Un canto de subida se produce cuando la señal
pasa de nivel lógico 0 a 1.
1
0
22. 1: Intro 22
¿Qué es el hardware digital?
El modelo del sistema digital tiene inputs y outputs
Sistemas combinacionales (sin memoria)
sus outputs solo dependen de sus inputs
Sistemas secuenciales (con memoria)
sus outputs dependen no solo de sus inputs actuales sino
que también de inputs previos (tienen memoria)
inputs outputssistema
Máquina abstracta:
Una máquina abstracta es un modelo de
computación que establece cómo se generan las
acciones, o eventos de salida, a partir de los
mensajes o eventos de entrada.
23. 1: Intro 23
¿Que es el hardware digital?
Colección de dispositivos que miden y controlan
señales que usan voltajes digitales (e.g. una
cantidad física que se interpreta como un “0” o un
“1”)
e.g.: lógica digital binaria
• “0” cuando el voltaje en una señal es < 0.8 V
• “1” cuando el voltaje es > 2.0 V
El tener Voh > Vih y Vol < Vil causa que la señales lógicas
“1” y “0” se vayan regenerando
24. 1: Intro 24
¿Que es el hardware digital?
Interruptor (switch): elemento básico del
hardware
Implementar un circuito simple (flecha muestra si un
cable cambia a “1”)
A Z
Z ≡ A
A
Z
cerrar switch (si A es “1”) y prender la
bombilla (Z)
abrir switch (si A es “0”) y apagar la
bombilla (Z)
25. 1: Intro 25
¿Que es el hardware digital?
La composición de interruptores (e.g.
transistores) en elementos mas complejos
implementa las funciones de lógica Booleana.
¿Como hago un AND y un OR de dos
interruptores?
AND
OR
Z ≡ A and B
Z ≡ A or B
A B
A
B
26. 1: Intro 26
¿Que es el hardware digital?
Los valores de los interruptores (switches)
determinan si hay o no hay una ruta para encender la luz
Para construir cómputos mas complejos
usar la luz (output de un circuito) para activar otros circuitos
interconectar redes de circuitos (e.g. ICs o circuitos
integrados en wafers)
típicamente se diseñan y modelan estos circuitos usando
aplicaciones de software (e.g. MAGIC para VLSI)
27. 1: Intro 27
Hardware digital vs análogo
Es conveniente pensar en los sistemas digitales como
teniendo solo valores discretos . En realidad los
componentes electrónicos tienen un comportamiento
continuo, análogo.
¿Porque se hace la abstracción digital?
Interruptores operan de esta manera, es fácil modularizar
diseños basado en compuertas digitales
Es mas fácil pensar en valores discretos
Los voltajes se pueden ir renovando entre los componentes
manteniendo su valor lógico
¿Porque funciona?
Los errores en voltajes no se propagan
Siempre se cambian a 0 o 1
28. 1: Intro 28
Sistemas Combinacionales
Se denominan máquinas o sistemas
combinacionales a aquellos cuyas salidas, en
un instante de tiempo, dependen solamente de
los valores que toman las entradas en ese
instante de tiempo (no tienen memoria)
Lo cual puede describirse por una función o
tabla (truth table) que especifique los valores de
las salidas para cada una de las combinaciones
posibles de las entradas
En estos sistemas las componentes no cambian
sus propiedades a medida que transcurre el
tiempo
29. 1: Intro 29
fácil de implementar con
transistores CMOS
(los interruptores mas
disponibles)
Símbolos Lógicos
Sistemas lógicos combinacionales usan
compuertas estándar que se denominan
compuertas lógicas
Buffer, NOT
AND, NAND
OR, NOR
Z
A
B
Z
Z
A
A
B
30. 1: Intro 30
Sistemas Combinacionales:
ejemplo
Subsistema de calendario: numero de días en un
mes
Usado para controlar un reloj de tipo LCD
Input: mes, indicador de año bisiesto (leap year)
Output: numero de días (28, 29, 30 o 31) en ese mes
31. 1: Intro 31
Sistemas Combinacionales:
ejemplo
Implementación en software
integer number_of_days ( month, leap_year_flag)
{
switch (month) {
case 1: return (31);
case 2: if (leap_year_flag == 1)
then return (29)
else return (28);
case 3: return (31);
...
case 12: return (31);
default: return (0);
}
}
35. 1: Intro 35
Máquinas de Estados o Secuenciales
Se denominan máquinas de estados o secuenciales a
aquellas cuyas salidas, en un instante de tiempo,
dependen de los valores que toman las entradas y de
su estado en ese instante de tiempo. Se comienza con
un estado inicial.
Se usa una función de transición que especifique los
valores de las salidas y del próximo estado para cada
una de las combinaciones posibles de las entradas y del
estado presente. También se puede usar un diagrama
de estados.
Una matriz puede servir para indicar los diferentes
valores de esta función.
Las entradas se deben usar una vez que la máquina
haya procesado las entradas previas y este estable.
36. 1: Intro 36
Máquinas de Estados: ejemplo
Candado de combinación:
Seleccionar 3 valores en secuencia y se abre
el candado.
Si hay un error se debe recomenzar la
secuencia (reset).
Input: secuencia de valores, reset.
Outputs: candado abierto/cerrado.
Memoria: debe recordar combinación.
37. 1: Intro 37
Máquinas de Estados: ejemplo
Implementación en software
integer combination_lock ( ) {
integer v1, v2, v3;
integer error = 0;
static integer c[3] = 3, 4, 2; // clave
while (!new_value( ));
v1 = read_value( );
if (v1 != c[1]) then error = 1;
while (!new_value( ));
v2 = read_value( );
if (v2 != c[2]) then error = 1;
while (!new_value( ));
v3 = read_value( );
if (v2 != c[3]) then error = 1;
if (error == 1) then return(0); else return (1);
}
38. 1: Intro 38
Máquinas de Estados: ejemplo
Codificación:
¿Cuántos bits por valor de input?
¿Cuántos valores en la secuencia?
¿Cómo sabemos que hay un valor nuevo de input?
¿cómo representar los estados?
Comportamiento:
Línea clock indica cuando.
mirar los inputs (sistema tiene que
estar estable después de un cambio).
Secuencial: secuencias de valores
deben ser introducidos.
Secuencial: recordar si ocurre un error
Especificar los estados finitos.
resetvalue
open/closed
new
clock
state
39. 1: Intro 39
Máquinas de Estados: ejemplo
Diagrama de estados:
5 estados
• Representan situaciones en la ejecución de la máquina
• Cada estado tiene outputs
• 6 transiciones entre estados, 5 auto transiciones, 1 global
• Cambios en estados ocurren cuando reloj indica que se puede
• Inputs: reset, new, resultado de comparaciones
• Output: open /closed (abierto /cerrado)
C2!=value
& new
C3!=value
& new
reset
not newnot newnot new
closed
S1
closed
C1=value
& new
S2
closed
C2=value
& new
S3
C3=value
& new
OPEN
open
C1!=value
& new
closed
ERR
40. 1: Intro 40
Máquinas de Estados: ejemplo
¿Ruta de datos versus control?
ruta de datos
• Almacenamiento para combinación
• Comparador
control
• Controlador de estados finitos
• Control para ruta de datos
• Cambios en estados controlados por reloj (clock)
reset
open/closed
new
C1 C2 C3
comparator
value
equal
multiplexer
equal
controller
mux
control
clock
41. 1: Intro 41
Máquinas de Estados: ejemplo
Refinar máquina de estados finitos
Incluir datos internos de la estructura del HW
closed
closed
mux=C1
reset
equal
& new
not equal
& new
not equal
& new
not equal
& new
not newnot newnot new
S1 S2 S3 OPEN
ERR
closed
mux=C2 equal
& new
closed
mux=C3 equal
& new
open
42. 1: Intro 42
Máquinas de Estados: ejemplo
¿Máquina de estados finitos actualizada?
Generar tabla estados o transiciones
reset new equal state state mux open/closed
1 – – – S1 C1 closed
0 0 – S1 S1 C1 closed
0 1 0 S1 ERR – closed
0 1 1 S1 S2 C2 closed
0 0 – S2 S2 C2 closed
0 1 0 S2 ERR – closed
0 1 1 S2 S3 C3 closed
0 0 – S3 S3 C3 closed
0 1 0 S3 ERR – closed
0 1 1 S3 OPEN – open
0 – – OPEN OPEN – open
0 – – ERR ERR – closed
next
closed
closed
mux=C1reset
equal
& new
not equal
& new not equal
& new not equal
& new
not newnot newnot new
S1 S2 S3 OPEN
ERR
closed
mux=C2 equal
& new
closed
mux=C3 equal
& new
open
43. 1: Intro 43
Máquinas de Estados: ejemplo
Codificar tabla de estados
estado puede ser: S1, S2, S3, OPEN o ERR
• 3 bits mínimo para codificar
output mux puede ser: C1, C2, o C3
• 2 bits mínimo para codificar
output open /closed puede ser: open o closed
• mínimo 1 bit para codificar
Trabajo en grupo: elegir codificación de bits para los
estados, generar tabla de estados (hay muchas
opciones!)
44. 1: Intro 44
Máquinas de Estados: ejemplo
Codificar tabla de estados
estado puede ser: S1, S2, S3, OPEN o ERR
• usar 4 bits
output mux puede ser: C1, C2, o C3
• usar 3 bits
output open /closed puede ser: open o closed
• usar 1 bit para codificar
reset new equal state state mux open/closed
1 – – – 0001 001 0
0 0 – 0001 0001 001 0
0 1 0 0001 0000 – 0
0 1 1 0001 0010 010 0
0 0 – 0010 0010 010 0
0 1 0 0010 0000 – 0
0 1 1 0010 0100 100 0
0 0 – 0100 0100 100 0
0 1 0 0100 0000 – 0
0 1 1 0100 1000 – 1
0 – – 1000 1000 – 1
0 – – 0000 0000 – 0
next
buena elección!
mux es idéntico a los últimos
3 bits del estado
open / closed es
idéntico al primer bit
del estado
45. 1: Intro 45
Jerarquía de diseño
sistema digital
ruta de datos ruta de control
registros de
estado
red combinacional
(lógica)
multiplexer comparator / ALU
memorias /
registros
registros lógica / compuertas
redes de compuertas
(transistores)
46. 1: Intro 46
Resumen
¿De que se trata este curso?
Desarrollar soluciones a problemas usando circuitos
combinacionales y secuenciales efectivamente
organizando el diseño jerárquicamente.
Utilizar técnicas y herramientas modernas.
Tomar ventaja de oportunidades de optimización.