47
9: Secuenciales 1 9-Sistemas Secuenciales 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 Implementación en Verilog

9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 1

9-Sistemas Secuenciales

9.1 Máquinas de Estados Finitos9.2 Mealy y Moore 9.3 Implementación en Verilog

Page 2: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 2

Abstracción

Dividir circuito en lógica combinacional y estado (state) Localizar los enlaces de feedback (loops) Implementación de elementos de almacenamiento (storage

elements) nos da diferentes formas de lógica secuencial

CombinationalLogic

Storage Elements

Outputs

State OutputsState Inputs

Inputs

Page 3: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 3

Formas de lógica secuencial

Asincrónica – estados cambian cuandos los inputs cambian (elemento de almacenamiento pueden ser simples alambres of retardos)

Sincrónica – cambios de estados ocurren en todos los elementos de almacenamiento al mismo tiempo (de acuerdo a una senal periódica – el reloj o clock)

Clock

Page 4: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 4

comportamiento no es el mismo si es que los inputs cambian cuando el clock esta alto

D Q

CLK

positiveedge-triggered

flip-flop

D QG

CLK

transparent(level-sensitive)

latch

D

CLK

Qedge

Qlatch

Elementos de almacenamiento: latches y flip-flops

Page 5: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 5

Flip Flop JK

Diagrama de estados

Tabla transiciones

Ecuacion caraterística

Page 6: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 6

Flip Flop JK

Tabla Característica

Tabla de Excitaciones

Page 7: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 7

Flip Flop T

Page 8: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 8

Flip Flop D

Page 9: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 9

x = 0

x = 1

x = 0x = 1

100

010

110

111001

Representaciones de máquinas de estados finitos (finite state machines)

Estados: determinado por posibles valores en elementos de almacenamiento

Transiciones: cambios de estado Reloj (clock): controla cuando los estados pueden

cambiar al controlar elementos de almacenamiento

Lógica secuencial secuencia a través una serie de estados basado en secuencia de valores de señales de input

(x)

Page 10: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 10

Diagrama de máquina de estados finitos

Ejemplo: Candado de combinación 5 estados 5 auto-transiciones 6 otras transiciones entre estados 1 transición de reset (de todos los estados) al estado

S1

resetS3

closed

closedmux=C1 equal

& new

not equal& new

not equal& new

not equal& new

not newnot newnot new

S1 S2 OPEN

ERROR

closedmux=C2 equal

& new

closedmux=C3 equal

& new

open

Page 11: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 11

Ejemplo: Registro de corrimiento (shift register)

Shift register input mostrado en

arcos de transiciones valores de output

mostrado en nodo

de estado

100 110

111

011

101010000

001

1

1

1

1

0

0

00

1

1

1

0

0

1

00

D Q D Q D QIN

OUT1 OUT2 OUT3

CLK

Page 12: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 12

010

100

110

011001

000

101111

3-bit up-counter

Ejemplo: Contadores Contadores

proceden a través de secuencia de estados bien definida en respuesta a enable.

Muchos tipos de contadores: binario, BCD, código Gray contador de subida de 3 bits: 000, 001, 010, 011,

100, 101, 110, 111, 000, ... contador de bajada de 3-bits: 111, 110, 101, 100,

011, 010, 001, 000, 111, ...

Page 13: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 13

010

100

110

011001

000

101111

3-bit up-counter

present state next state0 000 001 11 001 010 22 010 011 33 011 100 44 100 101 55 101 110 66 110 111 77 111 000 0

Cómo convertir diagrama de estados a tabla de transiciones?

Tabla de transiciones: forma tabular de diagrama de estados.

Como una tabla de verdad (se especifican todos los outputs para las combinaciones de input).

Ejemplo: contador

Page 14: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 14

C3 C2 C1 N3 N2 N10 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 0 0

N1 <= C1’N2 <= C1C2’ + C1’C2

<= C1 xor C2N3 <= C1C2C3’ + C1’C3 + C2’C3

<= (C1C2)C3’ + (C1’ + C2’)C3<= (C1C2)C3’ + (C1C2)’C3<= (C1C2) xor C3

código en Verilog paramostrar que la funciónes un input a un D-FF

Implementación

Un flip-flop para cada bit de estado Lógica combinacional basada en codificación

0 0

0 1

1 1

0 1C1

C2

C3N3

0 1

1 0

1 0

0 1C1

C2

C3N2

1 1

0 0

1 1

0 0C1

C2

C3N1

Page 15: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 15

Implementación (cont)

Contador 3 flip-flops para tener estado. lógica para calcular próximo estado. reloj controla cuando la memoria de los flip-flops

cambia.• hay que esperar para que la lógica calcule nuevo valor• no hay que esperar mucho para no tener velocidad muy

lenta

D Q D Q D Q

OUT1 OUT2 OUT3

CLK

"1"

Page 16: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 16

In C1 C2 C3 N1 N2 N30 0 0 0 0 0 00 0 0 1 0 0 00 0 1 0 0 0 10 0 1 1 0 0 10 1 0 0 0 1 00 1 0 1 0 1 00 1 1 0 0 1 10 1 1 1 0 1 11 0 0 0 1 0 01 0 0 1 1 0 01 0 1 0 1 0 11 0 1 1 1 0 11 1 0 0 1 1 01 1 0 1 1 1 01 1 1 0 1 1 11 1 1 1 1 1 1

N1 <= InN2 <= C1N3 <= C2

Implementación: Registro de corrimiento

Input determina próximo estado

100 110

111

011

101010000

001

0

1

1 1

11

1

1

0

0

0

0 0

1

00

D Q D Q D QIN

OUT1 OUT2 OUT3

CLK

Page 17: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 17

Ejemplo: Contador más complejo

Contador Complejo repite 5 estados en secuencia secuencia no es una representación numérica binaria

Paso 1: hacer diagrama de transición de estados contar secuencia: 000, 010, 011, 101, 110

Paso 2: hacer tabla de transición de estados

Present State Next StateC B A C+ B+ A+0 0 0 0 1 00 0 1 – – –0 1 0 0 1 10 1 1 1 0 11 0 0 – – –1 0 1 1 1 01 1 0 0 0 01 1 1 – – –notar condiciones don't care por los estados no usados

010

000 110

101

011

Page 18: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 18

C+ <= A

B+ <= B’ + A’C’

A+ <= BC’

Ejemplo: Contador más complejo (cont)

Paso 3: mapas Karnaugh para próximas funciones

0 0

X 1

0 X

X 1A

B

CC+

1 1

X 0

0 X

X 1A

B

CB+

0 1

X 1

0 X

X 0A

B

CA+

Page 19: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 19

Contadores con estados iniciales

Estados iniciales durante el inicio, el contador puede estar en un

estado sin usar o inválido el diseñador debe garantizar que eventualmente

entre en un estado válido diseñar para que estados inválidos transiciones a

válidos

010

000 110

101

011

001111

100

010

000 110

101

011

001 111

100

Page 20: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 20

Contadores con estados iniciales (cont) Generar tabla de transición de estados con estados

iniciales

0 0

1 1

0 0

1 1A

B

CC+

1 1

1 0

0 1

0 1A

B

CB+

0 1

0 1

0 0

0 0A

B

CA+

Present State Next StateC B A C+ B+ A+0 0 0 0 1 00 0 1 1 1 00 1 0 0 1 10 1 1 1 0 11 0 0 0 1 01 0 1 1 1 01 1 0 0 0 01 1 1 1 0 0

010

000 110

101

011

001111

100

Page 21: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 21

Actividad

Contador up-down de 2-bits (2 inputs) dirección: D = 0 para up, D = 1 para down cuenta: C = 0 para parar, C = 1 para contar

01

00 11

10

C=0D=X

C=0D=X

C=0D=X

C=0D=X

C=1D=0

C=1D=0

C=1D=0

C=1D=0

C=1D=1

S1 S0 C D N1 N00 0 0 0 0 00 0 0 1 0 00 0 1 0 0 10 0 1 1 1 10 1 0 0 0 10 1 0 1 0 10 1 1 0 1 00 1 1 1 0 01 0 0 0 1 01 0 0 1 1 01 0 1 0 1 11 0 1 1 0 11 1 0 0 1 11 1 0 1 1 11 1 1 0 0 01 1 1 1 1 0

Page 22: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 22

Actividad (cont)

S1 S0 C D N1 N00 0 0 0 0 00 0 0 1 0 00 0 1 0 0 10 0 1 1 1 10 1 0 0 0 10 1 0 1 0 10 1 1 0 1 00 1 1 1 0 01 0 0 0 1 01 0 0 1 1 01 0 1 0 1 11 0 1 1 0 11 1 0 0 1 11 1 0 1 1 11 1 1 0 0 01 1 1 1 1 0

N1 = C’S1 + CDS0’S1’ + DS0S1 + CD’S0S1’ + D’S0’S1

N0 = CS0’ + C’S00 1 1 0

0 1 1 0

1 0 0 1

1 0 0 1

D

S1

S0

C

0 0 1 1

0 0 1 1

1 0 1 0

0 1 0 1

D

S1

S0

C

Page 23: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 23

9-Sistemas Secuenciales

9.1 Máquinas de Estados Finitos9.2 Mealy y Moore9.3 Implementación en Verilog

Page 24: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 24

Modelo de Contador/registro de corrimiento Valores almacenados en registros representan

estado del circuito Lógica combinacional calcula:

próximo estado• función de estados actuales e inputs

salidas (o outputs)• valores de flip-flops

Inputs

Outputs

Next State

Current State

next statelogic

Page 25: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 25

Modelo general

Valores almacenados en registros representan el estado del circuito: y

Lógica combinacional calcula próximo estado: FPE (Función Próximo Estado)

• función de estados actuales e inputs outputs: FS (Función Salida)

• Mealy: función de estado actual e inputs, z = F(y, x)• Moore: solo función de estado actual, z = F(y)

Inputs: x

Outputs: z

Next State: y(n+1)

Current State: y(n)

lógica outputFS

lógica próximo estado: FPE

Page 26: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 26

Modelo general (cont)

Estados: y1, y2, ..., yk

Inputs: x1, x2, ..., xm

Outputs: z1, z2, ..., zn

Función transición: FPE(yi, xj)

Función de output: FS(yi) or FS(yi, xj)

Inputs

Outputs

Next State

Current State

outputlogic

next statelogic

Clock

Next State

State0 1 2 3 4 5

Page 27: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 27

Máquinas Mealy vs Moore

Máquinas Mealy tienden a tener menos estados outputs son diferentes en arcos (n2) no en estados (n)

Máquinas Moore outputs cambian durante cambios del reloj (siempre un

ciclo más tarde) en máquinas Mealy, input puede causar cambios en output

de inmediato cuando cambie lógica – puede causar problemas cuando se conectan múltiples máquinas

Máquinas Mealy reaccionan mas rápido reaccionan en el mismo ciclo – no tienen que esperar el

reloj en algunos casos en máquinas Moore – mas lógica puede ser necesaria para

decodificar estado en outputs

Page 28: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 28

Comparar máquinas Mealy y Moore (cont)

Moore: z = F(y)

Mealy: z = F(y, x)

Mealy Sincrónicaz = F(y, x) con FF en salida

state feedback

inputs

outputsreg

combinational logic for

next state logic foroutputs

inputs outputs

state feedback

regcombinational

logic fornext state

logic foroutputs

inputs outputs

state feedback

regcombinational

logic fornext state

logic foroutputs

Page 29: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 29

D/1

E/1

B/0

A/0

C/0

1

0

0

00

1

1

1

1

0

reset

current nextreset input state state output1 – – A0 0 A B 00 1 A C 00 0 B B 00 1 B D 00 0 C E 00 1 C C 00 0 D E 10 1 D C 10 0 E B 10 1 E D 1

Especificar outputs para máquina Moore

Output es solo una función del estado se especifica en nodos del diagrama de estado Ejemplo: detector de secuencia para 01 o 10

Page 30: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 30

current nextreset input state state output1 – – A 00 0 A B 00 1 A C 00 0 B B 00 1 B C 10 0 C B 10 1 C C 0

B

A

C

0/1

0/0

0/0

1/1

1/0

1/0

reset/0

Especificar outputs para máquina Mealy

Output es función de estados e inputs especificar output en transición entre estados Ejemplo: Detector de secuencia para 01 o 10

Page 31: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 31

Máquina Mealy

Máquina Mealy Sincrónica estados y outputs con registros evita outputs con ruidos (‘glitches’) típicamente se implementa en PLDs

Inputs

Outputs

Current State

outputlogic

next statelogic

Page 32: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 32

VendingMachine

FSM

N

D

Reset

Clock

OpenCoinSensor

ReleaseMechanism

Ejemplo: máquinas de bebidas

Entrega bebida después que 150 pesos son depositados

Acepta diferentes monedas 50 (N), 100 (D)

No entrega cambio

Page 33: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 33

Ejemplo: máquinas de bebidas (cont)

Representación abstracta listar secuencias típicas:

• tres de cincuenta

• cincuenta, cien

• cien, cincuenta

• dos de cien dibujar diagrama de estados:

• inputs: N, D, reset

• output: dar bebida (OPEN) asumir:

• N y D seteadas por un ciclo

• cada estado tiene un auto estado

para N = D = 0 (no hay moneda)

S0

Reset

S2

D

S6[open]

D

S4[open]

D

S1

N

S3

N

S5[open]

N

S8[open]

D

S7[open]

N

Page 34: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 34

Ejemplo: máquinas de bebidas (cont)

Minimizar número de estados – reusar estados si es posible

tabla de estados simbólica

present inputs next outputstate D N state open 0 0 0 0 0

0 1 50 01 0 100 01 1 – –

50 0 0 50 00 1 100 01 0 150 01 1 – –

100 0 0 100 00 1 150 01 0 150 01 1 – –

150 – – 150 1

0

Reset

50

N

N

N + D

100

D

150[open]

D

Page 35: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 35

present stateinputs next state outputQ1 Q0 D N D1 D0 open

0 0 0 0 0 0 00 1 0 1 01 0 1 0 01 1 – – –

0 1 0 0 0 1 00 1 1 0 01 0 1 1 01 1 – – –

1 0 0 0 1 0 00 1 1 1 01 0 1 1 01 1 – – –

1 1 – – 1 1 1

Ejemplo: máquinas de bebidas (cont)

Codificar estados

Page 36: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 36

D1 = Q1 + D + Q0 N

D0 = Q0’ N + Q0 N’ + Q1 N + Q1 D

OPEN = Q1 Q0

Ejemplo: Implementación Moore

Mapear la lógica

0 0 1 1

0 1 1 1

X X 1 X

1 1 1 1

Q1D1

Q0

N

D

0 1 1 0

1 0 1 1

X X 1 X

0 1 1 1

Q1D0

Q0

N

D

0 0 1 0

0 0 1 0

X X 1 X

0 0 1 0

Q1Open

Q0

N

D

Page 37: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 37

present state inputs next state outputQ3Q2 Q1Q0 D N D3D2 D1D0 open0 0 0 1 0 0 0 0 0 1 0

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

0 0 1 0 0 0 0 0 1 0 00 1 0 1 0 0 01 0 1 0 0 0 01 1 - - - - -

0 1 0 0 0 0 0 1 0 0 00 1 1 0 0 0 01 0 1 0 0 0 01 1 - - - - -

1 0 0 0 - - 1 0 0 0 1

D0 = Q0 D’ N’

D1 = Q0 N + Q1 D’ N’

D2 = Q0 D + Q1 N + Q2 D’ N’

D3 = Q1 D + Q2 D + Q2 N + Q3

OPEN = Q3

Ejemplo: Implementación Moore (cont)

Otra codificación (1 encendido)

Page 38: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 38

Diagramas de Estados de Mealy y Moore

Moore outputs asociados con

estados

0[0]

100[0]

50[0]

150[1]

N’ D’ + Reset

D

D

N

N+D

N

N’ D’

Reset’

N’ D’

N’ D’

Reset

0

100

50

150

(N’ D’ + Reset)/0

D/0

D/1

N/0

N+D/1

N/0

N’ D’/0

Reset’/1

N’ D’/0

N’ D’/0

Reset/0

Mealy outputs asociados con

transiciones

Page 39: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 39

Ejemplo: Implementación Mealy

0

100

50

150

Reset/0

D/0

D/1

N/0

N+D/1

N/0

N’ D’/0

Reset’/1

N’ D’/0

N’ D’/0

Reset/0present stateinputs next state output

Q1 Q0 D N D1 D0 open 0 0 0 0 0 0 0

0 1 0 1 01 0 1 0 01 1 – – –

0 1 0 0 0 1 00 1 1 0 01 0 1 1 11 1 – – –

1 0 0 0 1 0 00 1 1 1 11 0 1 1 11 1 – – –

1 1 – – 1 1 1

D0 = Q0’N + Q0N’ + Q1N + Q1DD1 = Q1 + D + Q0NOPEN = Q1Q0 + Q1N + Q1D + Q0D

0 0 1 0

0 0 1 1

X X 1 X

0 1 1 1

Q1Open

Q0

N

D

Page 40: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 40

Ejemplo: Implementación Mealy (cont)

D0 = Q0’N + Q0N’ + Q1N + Q1DD1 = Q1 + D + Q0NOPEN = Q1Q0 + Q1N + Q1D + Q0D

hay que asegurar que OPEN es 0 cuando hay reset – con compuerta AND

Page 41: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 41

9-Sistemas Secuenciales

9.1 Maquinas de Estados Finitos9.2 Mealy y Moore FSMs9.3 Implementación en Verilog

Page 42: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 42

Ejemplo: reducir string de 1s en 1

Eliminar un 1 de cada string de 1s en el input

1

0

0

0

11

zero[0]

one1[0]

two1s[1]

1/00/0

0/0

1/1

zero[0]

one1[0]

Moore Mealy

Page 43: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 43

module reduce (clk, reset, in, out); input clk, reset, in; output out;

parameter zero = 2’b00; parameter one1 = 2’b01; parameter two1s = 2’b10;

reg out; reg [2:1] state; // state variables reg [2:1] next_state;

always @(posedge clk) if (reset) state = zero; else state = next_state;

asignar estados

Ejemplo: reducir string de 1s en 1

Verilog: Máquina de Moore

1

0

0

0

11

zero[0]

one1[0]

two1s[1]

Page 44: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 44

always @(in or state)

case (state) zero:

// last input was a zero begin if (in) next_state = one1; else next_state = zero; end

one1:// we've seen one 1 begin if (in) next_state = two1s; else next_state = zero; end

two1s:// we've seen at least 2 ones begin if (in) next_state = two1s; else next_state = zero; end

endcase

hay que incluir todas las señalesque son determinan el estado

Ejemplo: reducir string de 1s en 1 (cont)

el output solo depende delestado

always @(state) case (state) zero: out = 0;

one1: out = 0; two1s: out = 1;

endcase

endmodule

Page 45: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 45

module reduce (clk, reset, in, out); input clk, reset, in; output out; reg out; reg state; // state variables reg next_state;

always @(posedge clk) if (reset) state = zero; else state = next_state;

always @(in or state) case (state) zero: // last input was a zero

begin out = 0; if (in) next_state = one; else next_state = zero; end

one: // we've seen one 1 if (in) begin

next_state = one; out = 1; end else begin

next_state = zero; out = 0; end

endcaseendmodule

Verilog para MEF Mealy

1/00/0

0/0

1/1

zero[0]

one1[0]

Page 46: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 46

module reduce (clk, reset, in, out); input clk, reset, in; output out; reg out; reg state; // state variables

always @(posedge clk) if (reset) state = zero; else case (state) zero: // last input was a zero

begin out = 0; if (in) state = one; else state = zero; end

one: // we've seen one 1 if (in) begin

state = one; out = 1; end else begin

state = zero; out = 0; end

endcaseendmodule

Verilog para MEF Mealy (otra versión)

1/00/0

0/0

1/1

zero[0]

one1[0]

Page 47: 9.1 Máquinas de Estados Finitos 9.2 Mealy y Moore 9.3 ...profesores.elo.utfsm.cl/~tarredondo/info/digital... · 9: Secuenciales 27 Máquinas Mealy vs Moore Máquinas Mealy tienden

9: Secuenciales 47

Resumen MEFs

Modelos para representar circuitos secuenciales abstracción de elementos secuenciales máquinas de estados finitos y diagramas de estados Mealy, Moore y maquinas sincrónicas Mealy

Procedimiento de diseño usando MEFs generar diagrama de estados generar tabla de transiciones de estados determinar funciones de próximo estado y output implementar lógica combinacional

HDLs