sistemas digitales elo211 - departamento de electrónicalsb/elo211/clases/01-introduccion.pdf ·...

47
Sistemas Digitales ELO211 Rudy Malonnek W. [email protected] 2010-1

Upload: dangkhanh

Post on 19-Sep-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

Sistemas DigitalesELO211Rudy Malonnek W.

[email protected]

Page 2: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

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 más complejas de

componentes primitivos. Conocer los principios para organizar los

bloques constructivos básicos de la computadores.

El paralelismo inherente en el hardware es nuestra primera introducción a la computación paralela.

Proveer un modelo y un entendimiento de cómo funciona una computadora.

Page 3: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 3

Diseño digital: nuestro PC

Page 4: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 4

Objetivos El lenguaje de diseño y

modelamiento digital Álgebra de Boole Funciones y representación

de variables discretas Minimización lógica Conceptos de estados Análisis temporal Herramientas CAD

Concepto de estados en sistemas digitales Análogo a variables y

contadores en el software

Como especificar, simular, compilar y analizar sistemas Lenguajes de descripción de HW Herramientas para simular la

operación de nuestros diseños Compiladores lógicos para

sintetizar los bloques de diseños Implementación en hardware

programable Diferentes tecnologías de

implementación de hardware Contrastar con diseño de SW

Implementaciones de máquinas secuenciales y paralelas

Especificar algoritmos, recursos de procesamiento y almacenamiento

Page 5: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 5

Objetivos

Visto por capas

Arquitectura abstracta

Síntesis y optimización

Bloques básicos

Compuertas y flip-flops

Page 6: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 6

ObjetivosResumen: 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.

Page 7: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 7

1850: George Boole inventa el álgebra de Boole convierte proposiciones lógicas a

símbolos permite la manipulación de la lógica

proposicional

1938: Claude Shannon aplica el álgebra de Boole al desarrollo de circuitos conmutados (switched circuits) su tesis de Magíster

1945: John von Neumann desarrolla el primer programa de computadora en la arquitectura de programa almacenado (stored-program computer) sus elementos de conmutación son tubos

de vacío

Un poco de historia

Page 8: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 8

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

Page 9: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 9

¿Que es el diseño digital? ¿Qué es el diseño?

Dada la especificación de un problema, lograr determinar una manera de resolverla, seleccionando apropiadamente desde un grupo de componentes disponibles.

Siempre considerando un conjunto de criterios (requerimientos) como tamaño, costo, poder, confiabilidad, elegancia, simplicidad etc.

01

01

01

01

01

01

01

01

01

01

01

¿Qué es el diseño digital? Determinación de las componentes de hardware digitales que

implementan las especificaciones de comunicación, control y procesamiento de los datos.

Más específicamente, es descomponer la solución en redes combinacionales y/o secuenciales organizando jerárquicamente el diseño empleando herramientas computacionales modernas.

Hay muchas diferentes tecnologías que se pueden usar para implementar un diseño (e.g., componentes, dispositivos programables, transistores en un chip, etc.)

El diseño tiene que ser optimizado para los requerimientos previamente especificados.

Page 10: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 10

¿Que es el diseño digital?

Conceptos básicos en sistemas digitales. Sistema con una entrada E y una salida S

Las variables E y S sólo pueden tomar los valores discretos: 0, 1, 2, 3.

Page 11: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 11

¿Que es el diseño digital?

Codificación. Se denomina codificación binaria al proceso

de asignar un vector booleano a un símbolo o valor de la variable multivaluada.

Sistema numérico binario.• En el sistema numérico binario la base numérica es

2, y los dígitos sólo pueden ser 0 y 1.

Page 12: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 12

¿Que es el diseño digital?

Información. Bit, Byte. Se denomina bit, que es un acrónimo de

Binary Digit, a la cantidad de información requerida para distinguir entre dos opciones igualmente probables.

Tablas de verdad.

Page 13: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 13

¿Que es el diseño digital?

Compuertas básicas. Operadores booleanos. En el álgebra de Boole se definen los

operadores and y or, mediante las tablas de verdad .

Expresiones booleanas.

Page 14: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 14

¿Que es el diseño digital?

Esquemático.

Page 15: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 15

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

Page 16: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 16

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.

Page 17: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 17

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.

Page 18: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 18

Abstracción digital Abstracción digital binaria

Consiste en representar las señales análogas reales de entrada y salida usando valores discretos lógicos 0 y 1

Margen de ruido

Margen de ruido

Volts

lógica 1

lógica 0

zona de transición entre lógica 0 y 1

4

3

2

0.5

- 0.5

1

0

Voh

Vol

Vil

Vih

Page 19: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 19

Abstracción digital ¿Porque es útil la digitalización?

Permite el desarrollo modular de sistemas Ayuda a prevenir que un 0 sea confundido con un 1

y viceversa, valores específicos dependen de la tecnología usada (e.g. TTL)

e.g. VIL debe ser un poco mayor que VOL

Vol Vil

Vil

Vol

Volts

tiempo

Page 20: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 20

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?

Page 21: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 21

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

Page 22: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 22

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

Page 23: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

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.

Page 24: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

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

Page 25: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

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)

Page 26: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

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

Page 27: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

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)

Page 28: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 28

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

Page 29: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 29

Sistemas Combinacionales

Se denominan máquinas o sistemas combinacionales a aquellos cuyas salidas, en un instante de tiempo, dependen solamente de los valores que toman las entradas en ese instante de tiempo (no tienen memoria)

Lo cual puede describirse por una función o tabla (truth table) que especifique los valores de las salidas para cada una de las combinaciones posibles de las entradas

En estos sistemas las componentes no cambian sus propiedades a medida que transcurre el tiempo

Page 30: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 30

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

Page 31: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 31

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

Page 32: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 32

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

}

}

Page 33: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 33

Sistemas Combinacionales: ejemplo

leapmonth

d28d29d30d31

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:

Cuántos bits para cada input/output? Número binario para el mes Cuatro alambres para 28 - 31

Comportamiento: combinacional especificado en

la tabla

Page 34: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 34

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 – – – – –

Page 35: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 35

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

Page 36: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 36

Máquinas de Estados o Secuenciales Se denominan máquinas de estados o secuenciales a

aquellas cuyas salidas, en un instante de tiempo, dependen de los valores que toman las entradas y de su estado en ese instante de tiempo. Se comienza con un estado inicial.

Se usa una función de transición que especifique los valores de las salidas y del próximo estado para cada una de las combinaciones posibles de las entradas y del estado presente. También se puede usar un diagrama de estados.

Una matriz puede servir para indicar los diferentes valores de esta función.

Las entradas se deben usar una vez que la máquina haya procesado las entradas previas y este estable.

Page 37: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 37

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.

Page 38: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 38

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);}

Page 39: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 39

Máquinas de Estados: ejemplo Codificación:

¿Cuántos bits por valor de input? ¿Cuántos valores en la secuencia? ¿Cómo sabemos que hay un valor nuevo de input? ¿cómo representar los estados?

Comportamiento: Línea clock indica cuando.

mirar los inputs (sistema tiene que

estar estable después de un cambio). Secuencial: secuencias de valores

deben ser introducidos. Secuencial: recordar si ocurre un error Especificar los estados finitos.

resetvalue

open/closed

new

clockstate

Page 40: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 40

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

Page 41: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 41

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

controllermux control

clock

Page 42: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 42

Máquinas de Estados: ejemplo Refinar maquina de estados finitos

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

Page 43: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 43

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

Page 44: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 44

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

Page 45: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 45

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

Page 46: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 46

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)

Page 47: Sistemas Digitales ELO211 - Departamento de Electrónicalsb/elo211/clases/01-Introduccion.pdf · Implementaciones de máquinas secuenciales y paralelas ... interconectar redes de

1: Intro 47

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.