Tema 2: Análisis y diseño de circuitos digitales

44
1 Tema 2: Análisis y diseño de circuitos digitales Análisis y diseño de circuitos secuenciales Electrónica Digital

Transcript of Tema 2: Análisis y diseño de circuitos digitales

Page 1: Tema 2: Análisis y diseño de circuitos digitales

1

Tema 2: Análisis y diseño de

circuitos digitales

Análisis y diseño de circuitos secuenciales

Electrónica Digital

Page 2: Tema 2: Análisis y diseño de circuitos digitales

2

Esquema de la presentación

1. Introducción

2. Análisis de circuitos secuenciales

3. Metodología de diseño de máquinas de estado

• Ejemplo: Máquina de Mealy

• Ejemplo: Máquina de Moore

4. Observaciones al proceso de diseño

Page 3: Tema 2: Análisis y diseño de circuitos digitales

3

1. Introducción

Los circuitos secuenciales se pueden clasificar en:

Circuitos secuenciales asíncronos:Las entradas actúan en todo instante sobre el estado del circuito

Circuitos secuenciales síncronos:Las entradas actúan sobre el estado del circuito sólo en determinados instantes, que vienen determinados por la señal de reloj

El diseño de circuitos secuenciales lo vamos a hacer en base a diseño de máquinas de estados finitos ó máquinas de estado

Page 4: Tema 2: Análisis y diseño de circuitos digitales

Concepto de estado

Estado: Se puede definir como el conjunto de

valores almacenado en los biestables durante un

determinado ciclo de reloj

En general, un circuito con n biestables podrá tener 2n

estados posibles

Los estados contienen la información relevante que

debe almacenar el circuito

4

Page 5: Tema 2: Análisis y diseño de circuitos digitales

5

Definición de máquina de estados finitos

(FSM)

Una máquina de estados representa un sistema

como un conjunto de estados, de transiciones entre

ellos junto con las entradas y salidas asociadas

Una máquina de estados es una conceptualización

de un circuito secuencial particular

Las máquinas de estado pueden usarse para muchas

otras cosas, más allá del diseño lógico y la

arquitectura de computadores

Page 6: Tema 2: Análisis y diseño de circuitos digitales

6

Máquina de estados finitos (FSM)

Cualquier circuito con memoria puede verse como

una máquina de estados

El diseño de FSMs involucra:

Definir estados

Definir transiciones entre estados

Optimizar / minimizar (fuera de esta asignatura)

Definir los valores de las salidas en cada momento

Este enfoque es práctico sólo para FSMs pequeñas

Page 7: Tema 2: Análisis y diseño de circuitos digitales

7

Máquinas de estados: definiciones

Diagrama de estados:

Muestra la forma y la función de la máquina de estados

Normalmente un diagrama de círculos y flechas

Estado

Identifica de forma única una situación del sistema digital

Próximo estado

El estado al que irá la máquina de estados en la siguiente transición

La transición se produce son la señal de reloj

Depende de los valores de las entradas y del estado presente

Rama

Indica un cambio del estado presente al próximo estado

Máquina de Mealy

Una máquina de estados que determina sus salidas en base al estado presente y a las entradas

Máquina de Moore

Una máquina que determina sus salidas sólo en base a su estado presente

Page 8: Tema 2: Análisis y diseño de circuitos digitales

8

Esquema general de una máquina de

estados finito

CIRCUITO

COMBINACIONAL

Eltos. De

MEMORIA

X

y Y

Zn m

pp

Entradas Salidas

Variables de

próximo estadoVariables de

estado presente

Almacena el estado interno del sistema

Page 9: Tema 2: Análisis y diseño de circuitos digitales

9

Máquinas de Moore y de Mealy

Su diferencia está únicamente en la dependencia de las salidas

Máquina de Moore:

Las salidas dependen sólo del estado presente

Las entradas intervienen en la decisión del próximo estado

Z = f(y)

Máquina de Mealy:

Las salidas dependen del estado presente y del valor de las entradas

Z = f(y,X)

Page 10: Tema 2: Análisis y diseño de circuitos digitales

10

Diagramas de estados

Estado 6 Estado 7

Estado 5

Estado 4

Para cualquier estado, hay un

número finito de posibles próximos

estados

En cada ciclo de reloj la máquina

cambia al siguiente estado

Uno de los posibles próximos

estados se convierte en el nuevo

estado presente

Depende del estado presente

y de las entradas

En un diagrama de estados bien dibujado, todas las posibles transiciones están

visibles, incluyendo los bucles sobre el mismo estado

En este diagrama se puede deducir que si el estado presente es el 5, el estado

previo era el 4 o el 5 y el próximo estado será el 5, el 6 ó el 7

Page 11: Tema 2: Análisis y diseño de circuitos digitales

11

Diagramas de estado de máquinas de

Moore

Estado 2

x,y

Estado 1

q,r

a,b

i,j

Las salidas de las máquinas de

Moore se muestran dentro del

círculo del estado

La salida está asociada al

estado y sólo cambia cuando

cambia el estado

Valores de las salidas cuando

se está en ese estado

Condiciones en

las entradas para

producir la

transición

marcada

Page 12: Tema 2: Análisis y diseño de circuitos digitales

12

Diagramas de estado de máquinas de

Mealy

Estado 2

Estado 1

a,b / q,r

Las máquinas de Mealy

generan sus salidas en base a:

• El estado presente

• Los valores de las entradas

Es capaz de generar salidas

diferentes en un mismo estado

Los valores de las salidas se

muestran en las transiciones,

porque se calculan de la

misma forma que los próximos

estados

i,j / x,y

Condición de

entrada que debe

existir para que

se produzca la

transiciónValores de las salidas para ese

estado y esas entradas

Page 13: Tema 2: Análisis y diseño de circuitos digitales

13

2. Análisis de circuitos secuenciales

El proceso de análisis consiste en obtener el

comportamiento de un circuito a partir de su

esquemático

Page 14: Tema 2: Análisis y diseño de circuitos digitales

14

Pasos del proceso de análisisCircuito

Ecuaciones de

Excitación / salida

Tabla de

Excitación / salida

Tabla de

Transición / salida

Tabla de

Estados / salida

Diagrama de estados

Diagrama temporal

Entradas biestables = f(x,q)

Salidas: z = f(x,q) (Mealy)

z = f(q) (Moore)

Entradas biestables,

salidas

xq

Proximas salidas biest.,

salidas

xqMapa de

transición

Próximo estado,

salidas

xS

Se asocia un símbolo (letra) a cada

Combinación de salidas de biestables

B

E/S

A

Page 15: Tema 2: Análisis y diseño de circuitos digitales

15

Ejemplo de análisis

Analizar el comportamiento del siguiente circuito:

Page 16: Tema 2: Análisis y diseño de circuitos digitales

16

Paso 1:

Ecuaciones de excitación / salida

B1: S0= x q1’

R0= x’ q1

B2: S1= x’ q0

R1= x q0’

Salida: z = x q0’ q1

Se ponen las entradas de los

biestables en función de las

entradas y de las propias salidas

de los biestables

Page 17: Tema 2: Análisis y diseño de circuitos digitales

17

Paso 2:

Tabla de excitación / salida

Xq1q0

0 1

00 00,00;0 10,01;0

01 01,00;0 00,01;0

10 01,10;0 00,00;0

11 00,10;0 10,00;1

R1S1, R0S0, z

Las ecuaciones se convierten en

una tabla

Es importante mantener el

mismo orden en los subíndices

Tanto las entradas como las “q”

se ponen en codificación gray

(obligatorio para hacer diseño)

Page 18: Tema 2: Análisis y diseño de circuitos digitales

18

Paso 3:

Tabla de transición / salida

Haciendo uso de la tabla de

transición del biestable se

sustituyen las entradas de los

biestables por los próximos estados

Xq1q0

0 1

00 00;0 01;0

01 11;0 01;0

10 10;0 11;0

11 10;0 00;1

Q1Q0, z

RSq 00 01 11 10

0 0 1 - 0

1 1 1 - 0

Q

Page 19: Tema 2: Análisis y diseño de circuitos digitales

19

Paso 4:

Tabla de estados / salida

A cada combinación de las salidas

de los biestables se le asigna un

nombre (normalmente una letra)

XS 0 1

a a;0 b;0

b c;0 b;0

d d;0 c;0

c d;0 a;1

q1q0

00 a

01 b

10 d

11 cNS, z

Asignación

de estados

Page 20: Tema 2: Análisis y diseño de circuitos digitales

20

Paso 5:

Diagrama de estados / salida

A partir de la tabla de estados se

puede dibujar el diagrama de

estados

Page 21: Tema 2: Análisis y diseño de circuitos digitales

21

Evolución temporalX

S 0 1

a a;0 b;0

b c;0 b;0

d d;0 c;0

c d;0 a;1

NS, z

A partir de la tabla de estados se

puede conocer la evolución del

circuito para unas entradas dadas

Los estados sólo pueden cambiar en los flancos

activos de reloj

La salida en una máquina de Mealy cambia al

cambiar la entrada

Page 22: Tema 2: Análisis y diseño de circuitos digitales

22

3. Metodología de diseño de máquinas de

estado

El proceso de diseño sigue los mismos pasos

seguidos en el análisis pero en el sentido inverso

El diseño de FSMs involucra:

Definir estados

Definir transiciones entre estados

Optimizar / minimizar (fuera de esta asignatura)

Definir los valores de las salidas en cada momento

Page 23: Tema 2: Análisis y diseño de circuitos digitales

23

Pasos del proceso de diseño

Circuito

Ecuaciones de

Excitación / salida

Tabla de

Excitación / salida

Tabla de

Transición / salida

Tabla de

Estados / salida

Diagrama de estados

Descripción no formal

Entradas biestables = f(x,q)

Salidas: z = f(x,q) (Mealy)

z = f(q) (Moore)

Entradas biestables,

salidas

xq

Proximas salidas biest.,

salidas

xq

Próximo estado,

salidas

xS

Se asocia una combinación de salidas

de biestables a cada estado

B

E/S

A

A partir de las ecuaciones se dibuja el circuito

Se elije el biestable a utilizar

Page 24: Tema 2: Análisis y diseño de circuitos digitales

24

Ejemplo de diseño de una máquina de

Mealy

Descripción del problema:

Diseñar un circuito con una entrada y una salida que

tenga el siguiente comportamiento:

• La salida se pone a 1 cuando por su entrada se reciben

tres o más unos consecutivos.

Page 25: Tema 2: Análisis y diseño de circuitos digitales

25

Ejemplo de diseño de una máquina de MealyPaso 1: Plantamiento de estados

El circuito tiene una entrada (X) y una salida (Z)

Iniciamos el planteamiento de los estados:

Planteamos un primer estado (S0) en el que ha llegado un ‘0’

Planteamos un segundo estado (S1) en el que ha llegado un ‘1’

Planteamos un tercer estado en el que han llegado dos ‘1’ consecutivos

¿Haría falta un estado S3 para cuando hubieran llegado tres ‘1’ consecutivos?: podermos hacer que S2 signifique que han llegado dos o más ‘1’ consecutivos. Cuando han llegado más de dos ‘1’ la salida estará a ‘1’

S0 S1 S2

Page 26: Tema 2: Análisis y diseño de circuitos digitales

26

Ejemplo de diseño de una máquina de MealyPaso 1: Plantamiento de las transiciones

Vamos planteando las transiciones entre estados:

Cuando estamos en S0 y recibimos un ‘0’, seguimos en S0. La salida será ‘0’

Cuando estamos en S0 y recibimos un ‘1’ pasamos a S1. La salida será un ‘0’

Cuando estamos en S1 y la entrada es ‘0’ pasamos a S0. La salida está a ‘0’

Cuando estamos en S1 y la entrada es ‘1’ pasamos a S2. La salida está a ‘0’

Cuando estamos en S2 y la entrada es ’0’ pasamos a S0. La salida está a ‘0’

Cuando estamos en S2 y la entrada es ‘1’ podemos permanecer en S2 con la salida a ‘1’, indicando que han llegado tres o más ‘1’ consecutivos

S0 S1 S20/0

1/0

0/0

1/0

0/0

0/0

Page 27: Tema 2: Análisis y diseño de circuitos digitales

27

Ejemplo de diseño de una máquina de MealyPaso 2: Tabla de estados y salidas

Lo expresado en el diagrama anterior hay que expresarlo en

forma de tabla

xS 0 1

S0 S0,0 S1,0

S1 S0,0 S2,0

S2 S0,0 S2,1

NS, z

Page 28: Tema 2: Análisis y diseño de circuitos digitales

28

Ejemplo de diseño de una máquina de MealyPaso 3: Tabla de transición y salidas

Se asigna a cada estado una combinación de salidas de los

biestables

Como tenemos 3 estados, necesitamos dos biestables

S q1q0

S0 00

S1 01

S2 10

Asignación

de estados

xq1q00 1

00 00,0 01,0

01 00,0 10,0

11 --,- --,-

10 00,0 10,1

Q1Q0, z

Page 29: Tema 2: Análisis y diseño de circuitos digitales

29

Ejemplo de diseño de una máquina de MealyPaso 4: Tabla de excitación y salidas

Se elige el biestable

En el ejemplo un biestable D

En cada casilla se Introduce el valor de próximo estado del biestable

q → Q D

0 → 0 0

0 → 1 1

1 → 0 0

1 → 1 1

xq1q00 1

00 00,0 01,0

01 00,0 10,0

11 --,- --,-

10 00,0 10,1

D1D0, z

Tabla de

excitación

Page 30: Tema 2: Análisis y diseño de circuitos digitales

30

Ejemplo de diseño de una máquina de MealyPaso 5: Ecuaciones de excitación y salidas

Utilizando la tabla de excitación como un mapa de Karnaugh, se obtienen las expresiones de las entradas del biestable y de la salida

xq1q00 1

00 0 0

01 0 1

11 - -

10 0 1

D1

xq1q00 1

00 0 1

01 0 0

11 - -

10 0 0

D0

xq1q00 1

00 0 0

01 0 0

11 - -

10 0 1

z

D1= xq1 + xq0 D0= xq1’q0’ z= xq1

Page 31: Tema 2: Análisis y diseño de circuitos digitales

31

Ejemplo de diseño de una máquina de MealyPaso 6: Dibujar el circuito

Page 32: Tema 2: Análisis y diseño de circuitos digitales

32

Ejemplo de diseño de una máquina de

Moore

Descripción del problema (idéntico al anterior):

Diseñar un circuito con una entrada y una salida que

tenga el siguiente comportamiento:

• La salida se pone a 1 cuando por su entrada se reciben

tres o más unos consecutivos

Recordar que las salidas van asociadas al estado

Ahora las salidas se pondrán dentro del círculo del

estado

Page 33: Tema 2: Análisis y diseño de circuitos digitales

33

Ejemplo de diseño de una máquina de MoorePaso 1: Plantamiento de estados

El circuito tiene una entrada (X) y una salida (Z)

Iniciamos el planteamiento de los estados:

Planteamos un primer estado (S0) en el que ha llegado un ‘0’. La salida estará a ‘0’

Planteamos un segundo estado (S1) en el que ha llegado un ‘1’. La salida estará a ‘0’

Planteamos un tercer estado (S2) en el que han llegado dos ‘1’ consecutivos. La salida estará a ‘0’

Ahora necesitamos introducir un estado S3 que indique que se han recibido tres o más ‘1’. La salida estará a ‘1’

S0

0

S1

0

S2

0

S3

1

Page 34: Tema 2: Análisis y diseño de circuitos digitales

34

Ejemplo de diseño de una máquina de MoorePaso 1: Plantamiento de las transiciones

Vamos planteando las transiciones entre estados:

Cuando estamos en S0 y recibimos un ‘0’, seguimos en S0

Cuando estamos en S0 y recibimos un ‘1’ pasamos a S1

Cuando estamos en S1 y la entrada es ‘0’ pasamos a S0

Cuando estamos en S1 y la entrada es ‘1’ pasamos a S2

Cuando estamos en S2 y la entrada es ’0’ pasamos a S0

Cuando estamos en S2 y la entrada es ‘1’ pasamos a S3

Cuando estamos en S3 y la entrada es ‘0’ pasamos a S0

Cuando estamos en S3 y la entrada es ‘1’ seguimos en S3

0

1

0

1

0

1

S0

0

S1

0

S2

0

S3

1

1

0

Page 35: Tema 2: Análisis y diseño de circuitos digitales

35

Ejemplo de diseño de una máquina de MoorePaso 2: Tabla de estados y salidas

Lo expresado en el diagrama anterior hay que expresarlo en

forma de tabla

Ahora la salida va en una columna aparte, porque está

asociada al estado

xS 0 1 z

S0 S0 S1 0

S1 S0 S2 0

S2 S0 S3 0

S3 S0 S3 1

NS

Page 36: Tema 2: Análisis y diseño de circuitos digitales

36

Ejemplo de diseño de una máquina de MoorePaso 3: Tabla de transición y salidas

Se asigna a cada estado una combinación de salidas de los biestables

Como tenemos 4 estados, necesitamos dos biestables

La combinación de estados hay que ponerla en código gray

S q1q0

S0 00

S1 01

S2 10

S3 11

Asignación

de estados

Q1Q0

xS 0 1 z

00 00 01 0

01 00 10 0

11 00 11 1

10 00 11 0

Page 37: Tema 2: Análisis y diseño de circuitos digitales

37

Ejemplo de diseño de una máquina de MoorePaso 4: Tabla de excitación y salidas

Se elige el biestable

En este ejemplo un biestable JK

En cada casilla se Introduce el valor de próximo estado del biestable

q → Q JK

0 → 0 0-

0 → 1 1-

1 → 0 -1

1 → 1 -0

xq1q00 1 z

00 0-,0- 0-,1- 0

01 0-,-1 1-,-1 0

11 -1,-1 -0,-0 1

10 -1,0- -0,1- 0

J1K1, J0K0

Tabla de

excitación

Page 38: Tema 2: Análisis y diseño de circuitos digitales

38

Ejemplo de diseño de una máquina de MoorePaso 5: Ecuaciones de excitación y salidas

Utilizando la tabla de excitación como un mapa de Karnaugh, se obtienen las expresiones de las entradas del biestable y de la salida

xq1q00 1

00 0 0

01 0 1

11 - -

10 - -

J1 = xq0 z = q1q0

xq1q00 1

00 - -

01 - -

11 1 0

10 1 0

xq1q00 1

00 0 1

01 - -

11 - -

10 0 1

xq1q00 1

00 - -

01 1 1

11 1 0

10 - -

xq1q0z

00 0

01 0

11 1

10 0

K1 = x’ J0 = x K0 = x’ + q1’

Page 39: Tema 2: Análisis y diseño de circuitos digitales

39

Ejemplo de diseño de una máquina de MoorePaso 6: Dibujar el circuito

Page 40: Tema 2: Análisis y diseño de circuitos digitales

40

Evolución temporal

Vamos a comprobar el funcionamiento de los dos

diseños realizados

Vamos a ver el comportamiento a partir de la tabla

de estados

Para ello introduciremos un pulso de un ciclo de

duración, otro de dos y otro de tres

La salida sólo se tiene que poner a ‘1’ con el pulso de

tres ciclos de duración

Page 41: Tema 2: Análisis y diseño de circuitos digitales

41

Evolución temporal (II)

xS 0 1

S0 S0,0 S1,0

S1 S0,0 S2,0

S2 S0,0 S2,1

NS, z

Tabla de estados

(Mealy)

Diagrama temporal

xS 0 1 z

S0 S0 S1 0

S1 S0 S2 0

S2 S0 S3 0

S3 S0 S3 1

NS

La máquina de Moore funciona correctamente

¡¡ La máquina de Mealy pone la salida a ‘1’ sin

haber llegado tres unos ¡¡

Page 42: Tema 2: Análisis y diseño de circuitos digitales

42

Evolución temporal (III)

El problema está en que las entradas no están sincronizadas

con el reloj:

Cambian con el flanco de subida

El circuito se dispara con el flanco de bajada

Solución: sincronizar las entradas con el flanco activo de reloj

Page 43: Tema 2: Análisis y diseño de circuitos digitales

43

Evolución temporal (IV)Entradas sincronizadas

xS 0 1

S0 S0,0 S1,0

S1 S0,0 S2,0

S2 S0,0 S2,1

NS, z

Tabla de estados

(Mealy)

Diagrama temporal

xS 0 1 z

S0 S0 S1 0

S1 S0 S2 0

S2 S0 S3 0

S3 S0 S3 1

NS

Ambas funcionan correctamente:

• La M. de Moore se pone a ‘1’ después del tercer uno

• La M. de Meale se pone a ‘1’ justo al iniciar el tercer uno

Page 44: Tema 2: Análisis y diseño de circuitos digitales

44

4. Observaciones al proceso de diseño

En general, para un sistema dado, los estados del autómata de Mealy no coinciden con los del autómata de Moore

Normalmente, el número de estados del autómata de Moore es mayor que el número de estados del autómata de Mealy

La asignación de estados determina la complejidad de la parte combinacional del circuito

Nosotros haremos una asignación secuencial o gray

La elección del tipo de biestable es arbitraria, pero vendrá determinada por aspectos tecnológicos (velocidad, consumo, disponibilidad, etc.)

El número de estados determina la complejidad de la parte secuencial del circuito