ELO211: Sistemas Digitales TomásArredondo Vidal 1er...
Transcript of ELO211: Sistemas Digitales TomásArredondo Vidal 1er...
1: Intro 1
ELO211: Sistemas Digitales
Tomás Arredondo Vidal1er Semestre – 2011
Este material está basado en:
❒ textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello andRandy Katz. Prentice Hall, 1994, 2005❒ material del curso ELO211 del Prof. Leopoldo Silva❒ material en el sitio http://es.wikipedia.org
1: Intro 2
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 3
¿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 5
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 6
¿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 7
¿ 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 8
¿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 9
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 10
❒ 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 Booleal desarrollo de circuitos conmutados (switchedcircuits)
❍ su tesis de Magíster.
Un poco de historia
1: Intro 11
❒ 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 12
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 13
¿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.
0101010101010101010101
❒ ¿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 requerimientospreviamente especificados
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
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
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
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
V il
V ih
1: Intro 18
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
Vol V il
V il
Vol
Volts
tiempo
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 bitde 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 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
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 22
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 23
¿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 outputssistema
❒ 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 24
¿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 25
¿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
AZ
cerrar switch (si A es “1”) y prender la
bombilla (Z)
abrir switch (si A es “0”) y apagar la
bombilla (Z)
1: Intro 26
¿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 27
¿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 28
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 29
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 30
Compuertas Lógicas CMOS
3v
X
Y 0 volts
x y
3 volts0v
cual es la relación entre x e y?
0 volts
3 volts
1: Intro 31
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
Z1
3v
X Y
0v
Z2
3 volts
3 volts
3 volts
0 volts
3 volts
0 volts
0 volts
0 volts
NAND NOR
1: Intro 32
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 33
Hardware digital vs análogo
❒ Es conveniente pensar en los sistemas digitales como teniendo solo valores discretos. En realidad los componenteselectró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 34
Hardware digital: valores lógicosTecnologí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 35
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 36
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 37
fácil de implementar contransistores CMOS (los interruptores masdisponibles)
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
AB
Z
Z
A
AB
1: Intro 38
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 39
Sistemas Combinacionales: ejemplo❒ Implementación en softwareinteger 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 40
Sistemas Combinacionales: ejemplo
leapmonth
d28 d29 d30 d31
month leap d28 d29 d30 d310000 – – – – –0001 – 0 0 0 10010 0 1 0 0 00010 1 0 1 0 00011 – 0 0 0 10100 – 0 0 1 00101 – 0 0 0 10110 – 0 0 1 00111 – 0 0 0 11000 – 0 0 0 11001 – 0 0 1 01010 – 0 0 0 11011 – 0 0 1 01100 – 0 0 0 11101 – – – – –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 41
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 d310001 – 0 0 0 10010 0 1 0 0 00010 1 0 1 0 00011 – 0 0 0 10100 – 0 0 1 0...1100 – 0 0 0 11101 – – – – –111– – – – – –0000 – – – – –
1: Intro 42
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 43
1-Introducción
1.1 ¿Porque estudiar diseño digital?1.2 ¿Que vamos a aprender en esta clase?1.3 Un poco de historia1.4 ¿Que es el diseño digital?1.5 ¿Que es el hardware digital?1.6 Sistemas combinacionales1.7 Maquinas de estados
1: Intro 44
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 45
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 46
Máquinas de Estados: ejemploImplementación en softwareinteger 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 cuandomirar los inputs (sistema tiene queestar estable después de un cambio)
❍ secuencial: secuencias de valoresdeben ser introducidos
❍ secuencial: recordar si ocurre un error❍ especificar los estados finitos
resetvalue
open/closed
new
clockstate
1: Intro 48
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 newnot newnot new
closed
S1
closedC1=value& new
S2
closedC2=value& new
S3
C3=value& new
OPEN
open
C1!=value& new
closed
ERR
1: Intro 49
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
controllermuxcontrol
clock
1: Intro 50
Máquinas de Estados: ejemplo❒ Refinar maquina de estados finitos (MEF o FSM)
❍ incluir datos internos de la estructura del HW
closed
closedmux=C1reset
equal& new
not equal& new
not equal& new
not equal& new
not newnot newnot new
S1 S2 S3 OPEN
ERR
closedmux=C2 equal
& new
closedmux=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/closed1 – – – S1 C1 closed0 0 – S1 S1 C1 closed0 1 0 S1 ERR – closed0 1 1 S1 S2 C2 closed0 0 – S2 S2 C2 closed0 1 0 S2 ERR – closed0 1 1 S2 S3 C3 closed0 0 – S3 S3 C3 closed0 1 0 S3 ERR – closed0 1 1 S3 OPEN – open 0 – – OPEN OPEN – open0 – – ERR ERR – closed
next
closed
closedmux=C1reset
equal& new
not equal& new not equal
& new not equal& new
not newnot newnot new
S1 S2 S3 OPEN
ERR
closedmux=C2 equal
& new
closedmux=C3 equal
& new
open
1: Intro 52
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 53
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/closed1 – – – 0001 001 0 0 0 – 0001 0001 001 00 1 0 0001 0000 – 00 1 1 0001 0010 010 0 0 0 – 0010 0010 010 00 1 0 0010 0000 – 00 1 1 0010 0100 100 0 0 0 – 0100 0100 100 00 1 0 0100 0000 – 00 1 1 0100 1000 – 1 0 – – 1000 1000 – 10 – – 0000 0000 – 0
next
buena elección!
mux es idéntico a los últimos 3 bits del estado
open / closed esidéntico al primer bitdel estado
1: Intro 54
Jerarquía de diseño
sistema digital
ruta de datos ruta de control
registros deestado
red combinacional(lógica)
multiplexer comparator / ALUmemorias /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 (KeepIt 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!)