ELO211: Sistemas Digitales TomásArredondo Vidal 1er...

55
1: Intro 1 ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er Semestre – 2011 Este material está basado en: textos y material de apoyo: Contemporary Logic Design 1 st / 2 nd 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

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 4

Diseño digital: nuestro PC

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