Sei sulla pagina 1di 55

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
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 2
¿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 3
Diseño digital: nuestro PC

1: Intro 4
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 5
¿Que vamos a aprender en esta clase?
Objetivos:
❒ El lenguaje de diseño y ❒ Como especificar, simular,
modelamiento digital compilar y analizar sistemas
❍ Lenguajes de descripción de HW
❍ Álgebra de Boole ❍ Herramientas para simular la
❍ Funciones y representación operación de nuestros diseños
de variables discretas ❍ Compiladores lógicos para
sintetizar los bloques de diseños
❍ Minimización lógica
❍ Implementación en hardware
❍ Conceptos de estados programable
❍ Análisis temporal ❍ Diferentes tecnologías de
implementación de hardware
❍ Herramientas CAD
❒ Contrastar con diseño de SW
❒ Concepto de estados en ❍ Implementaciones de maquinas
sistemas digitales secuenciales y paralelas
❍ Especificar algoritmos, recursos
❍ Análogo a variables y de procesamiento y
contadores en el software almacenamiento 1: Intro
6
¿ 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 7
¿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 8
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 9
Un poco de historia
❒ 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.

1: Intro 10
Un poco de historia II
❒ 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

1: Intro 11
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 12
¿Que es el diseño digital?

0101010101010101010101
❒ ¿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.
❒ ¿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 13
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 14
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 15
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 16
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
Volts Voh
4

3 lógica 1 Margen de ruido


2 Vih
1 zona de transición entre lógica 0 y 1
0.5 Vil
0 lógica 0 Margen de ruido
- 0.5
Vol
1: Intro 17
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. VIL debe ser un poco mayor que VOL
Volts

Vil
Vol Vil
Vol

tiempo
1: Intro 18
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 19
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

1: Intro 20
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

1: Intro
0 21
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 22
¿Que es el hardware digital?
❒ 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.

inputs sistema outputs

❒ 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)
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

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
cerrar switch (si A es “1”) y prender la

bombilla (Z)

Z
A
abrir switch (si A es “0”) y apagar la

bombilla (Z)

Z ≡ A
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?

A B
AND
Z ≡ A and B

A
OR
Z ≡ A or B

B
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)

1: Intro 27
Hardware digital: Relays
❒ Una manera simple de conectar rutas e interruptores
es usar relays electro-mecánicos
❒ ¿Que es un relay?

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

❒ ¿Que determina la velocidad de una red de relays?

1: Intro 28
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
G G

S D S D
n-channel p-channel

canal conduce si voltaje en G canal conduce si voltaje en G


es mayor que el de S: es menor que el de S:
voltage(G) > voltage (S) + ε voltage(G) < voltage (S) – ε
1: Intro 29
Compuertas Lógicas CMOS

X cual es la relación
entre
x e y?
3v x y

Y 0 volts 3 volts

0v 3 volts 0 volts

1: Intro 30
Compuertas Lógicas CMOS
X Y

3v cual es la relación
entre
x, y y z?
Z1
0v x y z1 z2

X Y 0 volts 0 volts 3 volts 3 volts


0 volts 3 volts 3 volts 0 volts
3v 3 volts 0 volts 3 volts 0 volts
Z2 3 volts 3 volts 0 volts 0 volts
NAND NOR
0v
1: Intro 31
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 32
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 33
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 34
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 35
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 36
Símbolos Lógicos
❒ Sistemas lógicos combinacionales usan compuertas
estándar que se denominan compuertas lógicas

❍ Buffer, NOT
A Z

❍ AND, NAND
fácil de implementar con
A
Z transistores CMOS
B
(los interruptores mas
❍ OR, NOR disponibles)

A
Z
B

1: Intro 37
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 38
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 39
Sistemas Combinacionales: ejemplo
❒ Implementación digital
❒ Codificación:
❍ cuantos bits para cada input/output?
month leap d28 d29 d30 d31
❍ numero binario para el mes 0000 – – – – –
0001 – 0 0 0 1
❍ cuatro alambres para 28 - 31 0010 0 1 0 0 0
0010 1 0 1 0 0
❒ Comportamiento: 0011 – 0 0 0 1
month leap 0100 – 0 0 1 0
❍ combinacional
0101 – 0 0 0 1
❍ especificado en 0110 – 0 0 1 0
la tabla 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
d28 d29 d30 d31 1101 – – – – –
111– – – – – –

1: Intro 40
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')
month leap d28 d29 d30 d31
0001 – 0 0 0 1
0010 0 1 0 0 0
0010 1 0 1 0 0
símbolo 0011 – 0 0 0 1
símbolo de or 0100 – 0 0 1 0
de and ...
1100 – 0 0 0 1
❍ d31 = podemos simplificarlo mas? 1101 – – – – –
111– – – – – –
0000 – – – – –

1: Intro 41
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 42
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 43
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 44
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 45
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 46
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 new value reset
mirar los inputs (sistema tiene que
estar estable después de un cambio)
state
❍ secuencial: secuencias de valores clock
deben ser introducidos
❍ secuencial: recordar si ocurre un error open/closed

❍ especificar los estados finitos 1: Intro 47


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
ERR
• output: open /closed (abierto /cerrado) closed

C1!=value
C2!=value C3!=value
& new
& new & new
S1 S2 S3 OPEN
reset closed closed closed open
C1=value C2=value C3=value
& new & new & new

not new not new not new


1: Intro 48
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)
new equal reset
value
C1 C2 C3
multiplexer
mux
controller
control
clock
comparator

equal open/closed
1: Intro 49
Máquinas de Estados: ejemplo
❒ Refinar maquina de estados finitos (MEF o FSM)
❍ incluir datos internos de la estructura del HW

ERR

closed

not equal
not equal
& new not equal
& new
& new
S1 S2 S3 OPEN
closed closed closed
reset mux=C1 mux=C2 mux=C3 open
equal equal equal
& new & new & new

not new not new not new

1: Intro 50
Máquinas de Estados: ejemplo
❒ ¿Maquina de estados finitos actualizada?
ERR

closed
❍ generar tabla estados o transiciones
not equal
& new not equal
& new not equal
& new

S1 S2 S3 OPEN

closed closed closed


reset mux=C1 mux=C2 mux=C3 open
equal equal equal
& new & new & new

not new not new not new


next
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
1: Intro 51
0 – – ERR ERR – closed
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 52
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
next
reset new equal state state mux open/closed
1 – – – 0001 001 0
0 0 – 0001 0001 001 0 buena elección!
0 1 0 0001 0000 – 0
0 1 1 0001 0010 010 0 mux es idéntico a los últimos
0 0 – 0010 0010 010 0 3 bits del estado
0 1 0 0010 0000 – 0
0 1 1 0010 0100 100 0 open / closed es
0 0 – 0100 0100 100 0 idéntico al primer bit
0 1 0 0100 0000 – 0 del estado
0 1 1 0100 1000 – 1
0 – – 1000 1000 – 1
0 – – 0000 0000 – 0 1: Intro 53
Jerarquía de diseño
sistema digital

ruta de datos ruta de control

memorias /
registros multiplexer comparator / ALU registros de red combinacional
estado (lógica)

registros lógica / compuertas

redes de compuertas
(transistores)

1: Intro 54
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)
❒ Hay que poder comunicarse de manera efectiva, honesta y
transparente (e.g. saber compartir la informacion!)1: Intro 55

Potrebbero piacerti anche