1: Intro
ELO211: Sistemas Digitales Tomás Arredondo Vidal
1er Semestre – 2011
Este material está basado en:
❒ textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005
❒ material del curso ELO211 del Prof. Leopoldo Silva
❒ material en el sitio http://es.wikipedia.org
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
¿Porque estudiar diseño digital?
❒ Es la base para la implementación de todos los sistemas computacionales modernos
❍
construcción de unidades mas 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 como
funciona una computadora
1: Intro
Diseño digital: nuestro PC
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
¿Que vamos a aprender en esta clase?
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 maquinas secuenciales y paralelas
❍ Especificar algoritmos, recursos de procesamiento y
almacenamiento
1: Intro
¿ Que vamos a aprender en esta clase?
❒ Visto por capas
Arquitectura abstracta Síntesis y optimización
Bloques básicos
Compuertas y flip-flops
1: Intro
¿Que vamos a aprender en esta clase?
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.
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
❒ 1850: George Boole inventa el álgebra de Boole
❍ convierte proposiciones lógicas a símbolos
❍ permite la manipulación de la lógica proposicional
❒ 1937: Alan Turing diseña una modelo conceptual de una computadora llamada Turing Machine o Maquina de Turing. Esta manipula símbolos en una cinta de acuerdo a una tabla de reglas.
❍ A pesar de su simpleza puede implementar cualquier algoritmo computacional.
❒ 1938: Claude Shannon aplica el álgebra de Boole al desarrollo de circuitos conmutados (switched circuits)
❍ su tesis de Magíster.
Un poco de historia
1: Intro
❒ 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
❒ 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 II
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
¿Que es el diseño digital?
❒ ¿Que 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.
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
❒ ¿Que 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
1: Intro
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
1: Intro
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
1: Intro
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
1: Intro
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
V
ohV
olV
ilV
ih1: Intro
Abstracción digital
❒ ¿ Porque es útil la digitalización?
❍
Permite el desarrollo modular de systemas
❍
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. V
ILdebe ser un poco mayor que V
OLV
olV
ilV
ilV
olVolts
tiempo
1: Intro
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?
1: Intro
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 2
Ncasos que son igualmente probables E
k(k = 1, 2, ...,
2
N) entonces la información (en bits) proveída por
el hecho E
kes N bits
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
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
¿Que 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 sistema outputs
❒
Maquina 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.
1: Intro
¿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
1: Intro
¿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)
1: Intro
¿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
1: Intro
¿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)
1: Intro
Hardware digital: Relays
❒
Una manera simple de conectar rutas e interruptores es usar relays electro-mecánicos
❒
¿Que es un relay?
❒
¿Que determina la velocidad de una red de relays?
al cerrase el circuito causa flujo de corriente
corriente fluye en la bobina causa flujo magnético que causa
que el contacto normalmente cerrado (nc) se abra
cuando no hay corriente un resorte en el contacto lo retorna a su posición normal
1: Intro
Hardware digital: CMOS
❒ Los relays no se siguen utilizando mucho
❍ algunos controladores de luz siguen siendo electromecánicos
❒ Sistemas digitales modernos utilizan tecnología CMOS
❍ MOS: Metal Oxide Semiconductor
❍ C: Complementary porque usa interruptores normalmente abiertos (no) y normalmente cerrado (nc) en pares complementarios y simétricos
❍ tienen tres terminales: drain, gate y souce
❍ si el voltaje en el terminal gate es de cierto valor mayor/menor que source entonces se establece un conductor entre drain y source
n-channel
canal conduce si voltaje en G es mayor que el de S:
voltage(G) > voltage (S) + ε
p-channel
canal conduce si voltaje en G es menor que el de S:
voltage(G) < voltage (S) – ε G
S D
G
S D
1: Intro
Compuertas Lógicas CMOS
3v
X
Y
0 voltsx y
3 volts
0v
cual es la relación entre
x e y?
0 volts 3 volts
1: Intro
Compuertas Lógicas CMOS
cual es la relación entre
x, y y z?
x y z1 z2
0 volts 3 volts 0 volts 3 volts 0 volts
0 volts 3 volts 3 volts
3v
X Y
0v
Z
13v
X Y
0v
Z
23 volts 3 volts 3 volts 0 volts
3 volts 0 volts 0 volts 0 volts NAND NOR
1: Intro
Compuertas Lógicas CMOS
❒ ¿Que influencia la velocidad de una red CMOS?
❍ carga y descarga de voltajes en cables y entradas de transistores
❍ el nodo de output (Z) tiene capacitancia
interna que se carga o descarga dependiendo de los inputs (X o Y)
❍ resistencias retardan el movimiento de electrones
❍ resistencias principalmente de los transistores
❒ ¿Cual es un gran beneficio de CMOS?
❍ Lógica CMOS utiliza menos potencia que NMOS dado que usa energía solo cuando cambiando de estado (conmutando o switching)
Diagrama físico de NAND
1: Intro
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
1: Intro
Hardware digital: valores lógicos
Tecnología Estado 0 Estado 1
Relay logic Circuito Abierto Circuito Cerrado
CMOS logic 0.0-1.0 volts 2.0-3.0 volts
Transistor transistor logic (TTL) 0.0-0.8 volts 2.0-5.0 volts
Fibra Optica Luz apagada Luz prendida
Dynamic RAM (DRAM) Condensador descargado Conden. cargado
Nonvolatile memory (erasable) Electrones atrapados Electrones no atrapados ROM Programable (PROM) Contacto eliminado Contacto intacto
Memoria Bubble Sin burbuja magnética Burbuja presente Disco Magnético Flujo no reverso Flujo reverso Compact disc Sin indentación (pit) Con indentación
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
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 de verdad (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
1: Intro
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
1: Intro
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
1: Intro
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);
} }
1: Intro
Sistemas Combinacionales: ejemplo
month leap
d28 d29 d30 d31
month leap d28 d29 d30 d31
0000 – – – – –
0001 – 0 0 0 1
0010 0 1 0 0 0
0010 1 0 1 0 0
0011 – 0 0 0 1
0100 – 0 0 1 0
0101 – 0 0 0 1
0110 – 0 0 1 0
0111 – 0 0 0 1
1000 – 0 0 0 1
1001 – 0 0 1 0
1010 – 0 0 0 1
1011 – 0 0 1 0
1100 – 0 0 0 1
1101 – – – – –
111– – – – – –
❒ Implementación digital
❒ Codificación:
❍ cuantos bits para cada input/output?
❍ numero binario para el mes
❍ cuatro alambres para 28 - 31
❒ Comportamiento:
❍ combinacional
❍ especificado en la tabla
1: Intro
Sistemas Combinacionales: ejemplo
❒
Análisis
❍ d28 = 1 cuando month=0010 y leap=0
❍ d28 = m8'•m4'•m2•m1'•leap‘
❍ d31 = 1 cuando month=0001 o month=0011 o ... month=1100
❍ d31 = (m8'•m4'•m2'•m1) + (m8'•m4'•m2•m1) + ...
(m8•m4•m2'•m1')
❍ d31 = podemos simplificarlo mas?
símbolo de and
símbolo de or
month leap d28 d29 d30 d31
0001 – 0 0 0 1
0010 0 1 0 0 0
0010 1 0 1 0 0
0011 – 0 0 0 1
0100 – 0 0 1 0
...
1100 – 0 0 0 1
1101 – – – – –
111– – – – – –
0000 – – – – –
1: Intro
Sistemas Combinacionales: ejemplo
❒ d28 = m8'•m4'•m2•m1'•leap’
❒ d29 = m8'•m4'•m2•m1'•leap
❒ d30 = (m8'•m4•m2'•m1') + (m8'•m4•m2•m1') + (m8•m4'•m2'•m1) + (m8•m4'•m2•m1)
= (m8'•m4•m1') + (m8•m4'•m1)
❒ d31 = (m8'•m4'•m2'•m1) + (m8'•m4'•m2•m1) + (m8'•m4•m2'•m1) + (m8'•m4•m2•m1) + (m8•m4'•m2'•m1') + (m8•m4'•m2•m1') + (m8•m4•m2'•m1')
1: Intro
1-Introducción
1.1 ¿Porque estudiar diseño digital?
1.2 ¿Que vamos a aprender en esta clase?
1.3 Un poco de historia
1.4 ¿Que es el diseño digital?
1.5 ¿Que es el hardware digital?
1.6 Sistemas combinacionales
1.7 Maquinas de estados
1: Intro
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 maquina haya
procesado las entradas previas y este estable.
1: Intro
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
1: Intro
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);
}
1: Intro 47
Máquinas de Estados: ejemplo
❒
Codificación:
❍
¿cuantos bits por valor de input?
❍
¿cuantos valores en la secuencia?
❍
¿como sabemos que hay un valor nuevo de input?
❍
¿como 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
reset value
open/closed new
clock state
1: Intro
Máquinas de Estados: ejemplo
❒
Diagrama de estados:
❍
5 estados
• representan situaciones en la ejecución de la maquina
• 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 new not new
not new closed
S1
closed C1=value
& new
S2
closed C2=value
& new
S3
C3=value
& new
OPEN open
C1!=value
& new
closed ERR
1: Intro
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
1: Intro
Máquinas de Estados: ejemplo
❒
Refinar maquina de estados finitos (MEF o FSM)
❍ 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 new not new
not new
S1 S2 S3 OPEN
ERR
closed
mux=C2 equal
& new
closed
mux=C3 equal
& new
open
1: Intro 51
Máquinas de Estados: ejemplo
❒
¿Maquina 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
next
closed
closed mux=C1 reset
equal
& new
not equal
& new not equal
& new not equal
& new
not new not new
not new
S1 S2 S3 OPEN
ERR
closed
mux=C2 equal
& new
closed
mux=C3 equal
& new
open
1: Intro
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!)
1: Intro
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
1: Intro
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)
1: Intro 55
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
❒
En el diseño vale la pena recordar el principio KISS (Keep It Simple and Stupid)
❒
Es muy importante usar una buena metodología de trabajo y saber trabajar en equipo
❒
Para muchos trabajos es muy importante el poder
comunicarse con ingenieros en otros países (e.g. Ingles)
❒