circuitos lógicos e organização de computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de...

71
1 IC-UNICAMP MC602 Mario Côrtes IC / Unicamp Capítulo 8 Máquinas de estado FSM (Finite State Machines) MC 602 Circuitos Lógicos e Organização de Computadores IC/Unicamp Prof Mario Côrtes

Upload: dinhlien

Post on 09-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

1

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Capítulo 8

Máquinas de estado

FSM (Finite State Machines)

MC 602

Circuitos Lógicos e Organização de Computadores

IC/Unicamp

Prof Mario Côrtes

Page 2: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

2

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tópicos

• Sistematização do projeto de circuitos

sequenciais síncronos

• Máquinas de Moore

• Máquinas de Mealy

• Atribuição de estados

• Visão geral de máquinas síncronas

Page 3: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

3

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Problema

• Saída z igual a

– “1” se w=1 nos dois últimos ciclos de clock

– “0” caso contrário

• Todas mudanças sincronizadas com o clock

? w z

Ck

Ciclo: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

w : 0 1 0 1 1 0 1 1 1 0 1

z : 0 0 0 0 0 1 0 0 1 1 0

Page 4: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

4

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Problema (cont)

• Possível implementar como circuito

combinacional?

• Possível implementar apenas com circuitos

sequenciais básicos (FFs, latches,

registradores, contadores)?

• Solução estruturada para circuitos

sequenciais síncronos:

– Máquinas de Estados

– FSM: Finite State Machines

Page 5: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

5

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Forma geral de um circuito síncrono

• Circuitos combinacionais: saídas dependem das

entradas atuais

• Circuitos sequenciais : saídas dependem do

conteúdo atual (estado) dos FFs e das entradas

– circuitos simples (FF, latch, registrador, contador): há pouca

quantidade de portas lógicas além dos elementos de

memória

– Circuito síncrono genérico com grande quantidade de portas

lógicas interligando elementos de memória. Estado atual

dos FFs e valor das entradas definem:

• próximo conteúdo (estado) dos FFs

• saídas atuais

Page 6: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

6

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Máquinas de Estado

• W: Entradas Z:Saídas

• Q: Estados internos (saídas de FFs)

• Y: Próximos estados dos FFs

• Circ comb 1:

– calcula Y (entradas dos FFs) a partir de Q (estado atual =

saídas dos FFs) e das entradas W

• Circ comb 2:

– calcula z a partir de Q e (opcionalmente) W

FFs

Clock

Q

W Z

Circuito

Comb. 1

Clock

Q

W Z

Circuito

Comb. 2 Y

Page 7: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

7

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Análise de uma máquina simples

• Dois FFs quatro estados possíveis

• Uma entrada w e uma saída z

D Q

Q

D Q

Q

Clock

Resetn

y 2

y 1

Y 2

Y 1

w

z

Page 8: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

8

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabela verdade dos combinacionais

Entradas Saídas

w y2y1 Y2Y1 z

0 00 00 0

0 01 00 0

0 10 00 0

0 11 00 1

1 00 01 0

1 01 10 0

1 10 11 0

1 11 11 1

y 2

y 1

z

Y 2

Y 1

w

y 1

y 1

y 2

Page 9: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

9

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabela verdade em forma alternativa

• novo formato:

– explicita transições de estado

Entradas Saídas

w y2y1 Y2Y1 z

0 00 00 0

0 01 00 0

0 10 00 0

0 11 00 1

1 00 01 0

1 01 10 0

1 10 11 0

1 11 11 1

Present

StateOutput

w=0 w=1

y2y1 Y2Y1 Y2Y1 z

00 00 01 0

01 00 10 0

10 00 11 0

11 00 11 1

Next State

Page 10: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

10

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Atribuição simbólica de estados

Present

StateOutput

w=0 w=1

y2y1 Y2Y1 Y2Y1 z

00 00 01 0

01 00 10 0

10 00 11 0

11 00 11 1

Next StatePresent

StateOutput

w=0 w=1

A A B 0

B A C 0

C A D 0

D A D 1

Next State

Page 11: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

11

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Diagrama de transição de estados

A

B

C

D

W=0

W=0

W=0

W=0

W=1

W=1 W=1

W=1

Present

StateOutput

w=0 w=1

A A B 0

B A C 0

C A D 0

D A D 1

Next State

Page 12: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

12

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Último passo: reset

A

B

C

D

W=0

W=0

W=0

W=0

W=1

W=1 W=1

W=1

Resetn=0

Page 13: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

13

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Análise de uma FSM: resumo

1. Identificar os dois circuitos combinacionais

(re-arranjar desenho?)

– próximo estado

– saída

2. Tabela verdade convencional

3. Tabela verdade: forma alternativa

4. Atribuição de estados: binário simbólico

5. Tabela de transição de estados

6. Diagrama de transição de estados

– Representa de forma compacta a funcionalidade

da FSM

Page 14: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

14

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exercício de análise de uma FSM simples

• Dois FFs quatro estados possíveis

• Uma entrada e duas saídas

D Q

Q

D Q

Q

s1

s2

y2

y1

w

z1

z2

Page 15: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

15

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Máquinas de Moore e de Mealy

• Máquinas de Moore

– próximo conteúdo dos flip-flops (Y) depende das entradas

(W) e do estado atual (Q)

– saída depende do estado atual (Q)

• Máquina de Mealy

– próximo conteúdo dos flip-flops (Y) depende das entradas

(W) e do estado atual (Q)

– saída depende do estado atual (Q) e das entradas (W)

Combinational

circuit Flip-flops

Clock

Q

W Z

Combinational circuit

Combinational

circuit Flip-flops

Clock

Q

W Z

Combinational circuit

Y

Moore: z muda

sincronizado

com o clock

Page 16: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

16

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Síntese de uma FSM simples (Moore)

• O circuito tem uma entrada w e uma saída z

• Todas as mudanças ocorrem na borda de

subida do clock

• z=1 se w=1 nos dois últimos ciclos de clock

• z=0 caso contrário

FSM w z

Ck

Ciclo: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

w : 0 1 0 1 1 0 1 1 1 0 1

z : 0 0 0 0 0 1 0 0 1 1 0

Page 17: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

17

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Definição dos estados

• Primeiro passo: quantos estados são

necessários para representar o histórico?

• Não há método sistemático

• Imaginemos estado inicial (power-up ou

reset) A com z = 0

– desde que w=0, FSM mantém-se em A

• Se w=1 por um clock estado B

– significa histórico = um clock apenas com w=1

• Em B

– se w=1 estado C e z =1

– se w=0 volta para A

• Três estados são suficientes

Page 18: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

18

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Diagrama de transição de estados

C z 1 =

Reset

B z 0 = A z 0 = w 0 =

w 1 =

w 1 =

w 0 =

w 0 = w 1 =

Reset pode ser

clear dos FFs

Ciclo: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

w : 0 1 0 1 1 0 1 1 1 0 1

z : 0 0 0 0 0 1 0 0 1 1 0

Page 19: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

19

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Notação do diagrama

• Nesta modalidade: há uma saída determinada

para cada estado (C/z=1)

• Transições de estado

– saindo de C: uma para cada combinação de entradas

– entrando em C: arbitrário (mas deve haver alguma,

senão o estado nunca é alcançado)

C z 1 =

w 1 =

w 0 = w 1 =

Estado C, saída =1

Uma transição para

cada combinação de

entradas

Page 20: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

20

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Estado Próx estado saída atual w = 0 w = 1 z

A A B 0

B A C 0

C A C 1

C z 1 =

Reset

B z 0 = A z 0 = w 0 =

w 1 =

w 1 =

w 0 =

w 0 = w 1 =

Tabela de transição de estados

• Notar a ausência de Reset na tabela

– clear do FF

Page 21: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

21

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Estrutura da FSM

• Há três estados 2 bits são suficientes

• Variáveis de estado:

– Estado atual y1 e y2

– Próximo estado Y1 e Y2

Combinacional

Circuito

Clock

y 2

z

w y 1

Y 1

Y 2

Combinacional

Circuito

CC1: prox estado =

f(entrada e estado atual)

CC2: saída =

f(estado atual)

Page 22: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

22

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Atribuição de Estado

Estado Próx estado saída atual w = 0 w = 1 z

A A B 0 B A C 0 C A C 1

C z 1 =

Reset

B z 0 = A z 0 = w 0 =

w 1 =

w 1 =

w 0 =

w 0 = w 1 =

EntradaEstado

atual

Próximo

estadoSaída

w y2y1 Y2Y1 z

0 A=00 A=00 0

0 B=01 A=00 0

0 C=10 A=00 1

0 11 dd d

1 A=00 B=01 0

1 B=01 C=10 0

1 C=10 C=10 1

1 11 dd d

Page 23: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

23

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabelas verdade de CC1 e CC2

(assumindo FF-D)

CC1

Clock

y 2

z

w y 1 Y 1

Y 2

CC2

w y2 y1 Y2 Y1

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 d d

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 d d

w y2 y1 z

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 d

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 d

Page 24: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

24

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

w 00 01 11 10

0

1

0

1 0

Y 1

wy 1 y

2 =

w 00 01 11 10

0

1

0 d

1 d

Y 2

wy 1 y

2 wy

1 y

2 + =

d

d

0

0

0

0

0

0

1

0 1

0

1

0

d

y 1

z y 1 y 2

= 0

1

y 2

Y 1

wy 1 y

2 =

Y 2

wy 1

wy 2

+ =

z y 2

=

w y 1

y 2

+ ( ) =

Sem don't cares

Síntese de CC1 e CC2 y

2 y

1

y 2 y

1

Com don't cares

Page 25: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

25

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito final com FF tipo D

D Q

Q

D Q

Q

Y 2

Y 1

w

Clock

z

y 1

y 2

Resetn

Page 26: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

26

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

1

0

1

0

1

0

1

0

Clock

w

y 1

y 2

1

0 z

Diagrama de tempo da FSM

Ciclo: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

w : 0 1 0 1 1 0 1 1 1 0 1

z : 0 0 0 0 0 1 0 0 1 1 0

Observar sinais síncronos com borda de subida do clock

Page 27: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

27

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Simulação no Quartus

• Observar

– agrupamento de sinais das variáveis de estado

(tipo enumerado)

– identificação pelo Quartus da máquina de estado

e geração automática do diagrama de transição

Page 28: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

28

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Resumo do procedimento

• Especificar o circuito

• Identificar o número de estados necessário e

suas transições

• Desenhar o diagrama de transição de estados

• Fazer a tabela de transição de estados

• Fazer a atribuição de estados e completar a

tabela

• (decidir o tipo de FF a ser usado e completar a

tabela)

• Implementar os circuitos combinacionais CC1 e

CC2

Page 29: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

29

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo de projeto: Expl 8.1

• Implementação da unidade de controle da fig 7.55

• Tarefa: após pulso de start em w, trocar o conteúdo

de R1 e R2, usando R3 como temporário. Ao final,

ativar sinal “done” (?? possível trocar diretamente??)

R1in

Bus

Clock

Control circuit

Function

R1 R2 Rk

Data

Extern

R1out R2in R2out Rkin Rkout

Control circuit

w

Clock

Done

R 1 out

R 2 out

R 1 in

R 2 in

R 3 out

R 3 in

Page 30: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

30

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Diagrama de transição de estados

D R 3 out 1 = R 1 in 1 = Done 1 = , ,

C R 1 out 1 = R 2 in 1 = ,

B R 2 out 1 = R 3 in 1 = ,

w 1 =

A No

∀ W

transfer Reset

w 0 =

∀ W

∀ W

Page 31: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

31

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabelas de transição de estado

Present Next state Outputs

state

A A B 0 0 0 0 0 0 0 B C C 0 0 1 0 0 1 0 C D D 1 0 0 1 0 0 0 D A A 0 1 0 0 1 0 1

w = 0 w = 1

Present Nextstate

state Outputs

A 00 00 0 1 0 0 0 0 0 0 0

B 01 10 1 0 0 0 1 0 0 1 0

C 10 11 1 1 1 0 0 1 0 0 0

D 11 00 0 0 0 1 0 0 1 0 1

Page 32: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

32

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Mapas de Karnaugh

w 0 0 0 1 1 1 1 0

0

1

1

1 1

y 2 y 1

Y 1 wy 1 y 1 y 2 + =

w 00 01 11 10

0

1

1 1

1 1

y 2 y 1

Y 2 y 1 y 2 y 1 y 2 + =

Page 33: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

33

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito final

• (ver outra solução na fig. 7.57, com o uso de

registrador de deslocamento

D Q

Q

D Q

Q

Done

w

Clock

Y 2

Y 1

y 2

y 1

y 2

y 1

R 1 in

R 3 out

R 1 out

R 2 in

R 2 out

R 3

in

Page 34: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

34

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito final: solução c/ Shift

Page 35: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

35

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

O problema da atribuição de estados

• Nos exemplos anteriores codificação dos

estados foi arbitrária

• É possível escolher atribuição visando

minimizar o circuito final

– solução ótima é difícil

• Vejamos os dois últimos exemplos em outra

codificação

Page 36: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

36

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo: detector de seq de dois 1s

Estado Próx estado saída atual w = 0 w = 1 z

A A B 0 B A C 0 C A C 1

C

z 1 =

Reset

B

z 0 = A

z 0 = w

0 =

w

1 =

w

1 =

w

0 =

w

0 = w

1 =

Present Next state

state w = 0 w = 1 Output

y 2 y 1 Y 2 Y 1 Y 2 Y 1 z

A 00 00 01 0

B 01 00 10 0

C 10 00 10 1

11 dd dd d

atribuição original

Present Next state

state w = 0 w = 1 Output

y 2 y 1 Y 2 Y 1 Y 2 Y 1 z

A 00 00 01 0 B 01 00 11 0 C 11 00 11 1

10 dd dd d

atribuição melhorada

Page 37: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

37

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Síntese do novo circuito

• Possível escrever equações diretamente

• Y1 = w

• Y2 = w. y1

• z = y2

Present

Next state

state w = 0 w = 1 Output

y 2 y 1 Y 2 Y 1 Y 2 Y 1 z

A 00 00 01 0 B 01 00 11 0 C 11 00 11 1

10 dd dd d

atribuição melhorada

Page 38: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

38

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito final com atribuição melhorada

D Q

Q

D Q

Q

Y 2

Y 1 w

Clock

z

y 1

y 2

Resetn

• Y1 = w

• Y2 = w. y1

• z = y2

circuito antigo

Page 39: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

39

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo 8.1 antigo

Present Nextstate

state Outputs

A 00 00 0 1 0 0 0 0 0 0 0

B 01 10 1 0 0 0 1 0 0 1 0

C 10 11 1 1 1 0 0 1 0 0 0

D 11 00 0 0 0 1 0 0 1 0 1

w 0 0 0 1 1 1 1 0

0

1

1

1 1

y 2 y 1

Y 1 wy 1 y 1 y 2 + =

w 00 01 11 10

0

1

1 1

1 1

y 2 y 1

Y 2 y 1 y 2 y 1 y 2 + =

Page 40: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

40

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo 8.1 com nova atribuição

Present Nextstate

state Outputs

A 00 0 0 01 0 0 0 0 0 0 0

B 01 1 1 11 0 0 1 0 0 1 0

C 11 1 0 10 1 0 0 1 0 0 0

D 10 0 0 00 0 1 0 0 1 0 1

w 00 01 11 10

0

1

1

1 1

y 2 y 1

Y 1 wy 2 y 1 y 2 + =

w 00 01 11 10

0

1

1 1

1 1

y 2 y 1

Y 2 y 1 =

Page 41: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

41

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

One-hot encoding

• É possível codificar os estados com n bits

para n estados

– apenas um bit fica ligado (one-hot)

• Grande número de don´t care (combinações

de estados não utilizados)

• Vantagem: circuito combinacional pode ficar

mais simples

• Desvantagem: usa maior número de FFs

• Ver detalhes na seção 8.2.1 do livro texto

Page 42: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

42

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Máquinas de Mealy

• Máquinas de Moore

– próximo conteúdo dos flip-flops (Y) depende das entradas (W) e do

estado atual (Q)

– saída depende do estado atual (Q)

• Máquina de Mealy

– próximo conteúdo dos flip-flops (Y) depende das entradas

(W) e do estado atual (Q)

– saída depende do estado atual (Q) e das entradas (W)

Combinational

circuit Flip-flops

Clock

Q

W Z

Combinational circuit

Combinational

circuit Flip-flops

Clock

Q

W Z

Combinational circuit

Y

Mealy: z pode mudar

a qquer instante,

indep. do clock

Page 43: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

43

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Implementação Mealy

do mesmo exemplo

• Especificações alteradas:

– O circuito tem uma entrada w e uma saída z

– Todas as mudanças ocorrem na borda de subida

do clock

– z=1 se w=1 nos dois últimos ciclos de clock no

último clock e no clock atual

– z=0 caso contrário

Clock cycle: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

w : 0 1 0 1 1 0 1 1 1 0 1

z : 0 0 0 0 1 0 0 1 1 0 0

Page 44: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

44

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

A

w 0 = z 0 =

w 1 = z 1 = B w 0 = z 0 =

Reset

w 1 = z 0 =

Diagrama de transição de estados

da Máquina de Mealy

Clock cycle: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

w : 0 1 0 1 1 0 1 1 1 0 1

z : 0 0 0 0 1 0 0 1 1 0 0

Page 45: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

45

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Notação Moore e Mealy

Moore

• Saída definida pelo

estado atual

• Arcos de transição de

estados não mostram

saídas

Mealy

• O estado atual pode ter

várias saídas, em

função de w

• Arcos de transição

mostram w e z

C z 1 =

w 1 =

w 0 = w 1 =

w 0 = z 0 =

w 1 = z 1 =

B

w 1 = z 0 =

Page 46: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

46

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabela de transição de estados

A

w 0 = z 0 =

w 1 = z 1 = B w 0 = z 0 =

Reset

w 1 = z 0 =

Present Next state Output z

state w = 0 w = 1 w = 0 w = 1

A A B 0 0

B A B 0 1

Page 47: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

47

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabela de transição de estados

A

w 0 = z 0 =

w 1 = z 1 = B w 0 = z 0 =

Reset

w 1 = z 0 =

Present Next state Output z

state w = 0 w = 1 w = 0 w = 1

A A B 0 0 B A B 0 1

Present Next state Output

state w = 0 w = 1 w = 0 w = 1

y Y Y z z

A 0 0 1 0 0

B 1 0 1 0 1

Page 48: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

48

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito e seu comportamento

Clock

Resetn

D Q

Q

w

z

y

t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

1

0

1

0

1

0

1

0

Clock

y

w

z

Page 49: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

49

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Comportamento comparado

t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

1

0

1

0

1

0

1

0

Clock

y

w

z

t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

1

0

1

0

1

0

1

0

Clock

w

y 1

y 2

1

0 z

Moore

Mealy

Page 50: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

50

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo 8.4 (Mealy em expl 8.1)

• troca de conteúdo

dos registradores R1

e R2, usando R3

como temporário

• diagrama de

transição de estados

A Reset

w 0 =

B

C

∀ W / R3out=1; R1in=1; Done=1

W=1 / R2out=1; R3in=1

∀ W / R1out=1; R2in=1

Page 51: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

51

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

8.5 Exemplo: somador serial

• Projetar um somador serial

– operandos de n bits armazenados nos shifts A e B

– resultado ficará armazenado no shift A+B

– “Adder FSM” cuida da soma e do carry do bit

anterior

– bits são apresentados ao “Adder FSM” do LSB

para o MSB

Sum A B + =

Shift register

Shift register

Adder FSM Shift register

B

A

a

b

s

Clock

Page 52: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

52

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Projeto somador serial Mealy

Sum A B + =

Shift register

Shift register

Adder FSM Shift register

B

A

a

b

s

Clock

G

00 1

11 1 10 0 01 0

H 10 1 01 1 00 0

carry-in 0 =

carry-in 1 =

G:

H:

Reset

11 0

ab s ( )

Page 53: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

53

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabelas de transição

de estados

Present Next state Output s

state ab =00 01 10 11 00 01 10 11

G G G G H 0 1 1 0

H G H H H 1 0 0 1

carry-in 0 =

carry-in 1 =

G:

H: G

00 1

11 1 10 0 01 0

H 10 1 01 1 00 0

Reset

11 0 ab s ( )

Present Next state Output

state ab =00 01 10 11 00 01 10 11

y Y s

0 0 0 0 1 0 1 1 0

1 0 1 1 1 1 0 0 1

Estados

genéricos

Estados

atribuídos

Page 54: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

54

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito do Somador Serial Mealy

• Poderia ser projetado por inspeção (e

tentativa e erro)

Full adder

a

b

s

D Q

Q

carry-out

Clock

Reset

Y y

Page 55: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

55

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Projeto somador serial Moore

carry-in 0 =

carry-in 1 =

G:

H:

G

00 1

11 1 10 0 01 0

H 10 1 01 1 00 0

Reset

11 0 ab s ( )

H 1 s 1 =

Reset

H 0 s 0 =

01 10 11

11

01 10

G 1 s 1 =

G 0 s 0 =

01 10 00

01

00

10

11

00

00

11

Mealy

Moore

Page 56: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

56

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabelas de transição de estados

H 1 s 1 =

Reset

H 0 s 0 =

01 10

11

11

01 10

G 1 s 1 =

G 0 s 0 =

01 10

00

01

00

10

11

00

00

11

Present Nextstate Output state ab =00 01 10 11 s

G 0 G 0 G 1 G 1 H 0 0

G 1 G 0 G 1 G 1 H 0 1 H 0 G 1 H 0 H 0 H 1 0 H 1 G 1 H 0 H 0 H 1 1

Present Nextstate

state ab =00 01 10 11 Output

y 2 y 1 Y 2 Y 1 s

00 0 0 01 0 1 10 0 01 0 0 01 0 1 10 1 10 0 1 10 1 0 11 0 11 0 1 10 1 0 11 1

Page 57: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

57

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito do Somador Serial Moore

• Nos dois casos, apesar de mais complicada, a

máquina Moore é mais robusta:

– mudanças na entrada não afetam imediatamente a

saída e só no próximo clock

Full adder

a

b

D Q

Q Carry-out

Clock

Reset

D Q

Q

s

Y 2

Y 1 Sum bit

y 2

y 1

Page 58: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

58

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Projeto de FSM com FF-D e FF-JK

• Visto até agora:

FSM com FF-D

– yi+1 = Yi

• E se FF-JK?

• Derivar de Y

(próximo estado) J e K

CC1 FFD y W

Z CC2 Y

CC1 FFJK y W

Z CC2 Y J

K

Estado atual Próximo estado J K

0 0 0 d

0 1 1 d

1 1 d 0

1 0 d 1

Page 59: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

59

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo: contador como FSM (JK)

• Contador síncrono mod 8: 0 1 2 3 4 5 6 7 0 ...

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

A/0 B/1 C/2 D/3

E/4 F/5 G/6 H/7

Page 60: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

60

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Tabelas de transição

de estados

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

w 0 =

w 1 =

A/0 B/1 C/2 D/3

E/4 F/5 G/6 H/7

Present Next state Output

state w = 0 w = 1

A A B 0 B B C 1 C C D 2 D D E 3 E E F 4 F F G 5 G G H 6 H H A 7

Present Next state

state w = 0 w = 1 Count

y 2 y 1 y 0 Y 2 Y 1 Y 0 Y 2 Y 1 Y 0

z 2 z 1 z 0

A 000 000 001 000 B 001 001 010 001 C 010 010 011 010 D 011 011 100 011 E 100 100 101 100 F 101 101 110 101 G 110 110 111 110 H 111 111 000 111

Page 61: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

61

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Derivação de

J K do FF Present Next state

state w = 0 w = 1 Count

y 2 y 1 y 0 Y 2 Y 1 Y 0 Y 2 Y 1 Y 0

z 2 z 1 z 0

A 000 000 001 000 B 001 001 010 001 C 010 010 011 010 D 011 011 100 011 E 100 100 101 100 F 101 101 110 101 G 110 110 111 110 H 111 111 000 111

Present Flip-flop inputs

state w = 0 w = 1 Count

y 2 y 1 y 0

Y 2 Y 1 Y 0 J 2 K 2 J 1 K 1 J 0 K 0 Y 2 Y 1 Y 0 J 2 K 2 J 1 K 1 J 0 K 0 z 2 z 1 z 0

A 000 000 0d 0d 0d 001 0d 0d 1d 000 B 001 001 0d 0d d0 010 0d 1d d1 001 C 010 010 0d d0 0d 011 0d d0 1d 010 D 011 011 0d d0 d0 100 1d d1 d1 011 E 100 100 d0 0d 0d 101 d0 0d 1d 100 F 101 101 d0 0d d0 110 d0 1d d1 101 G 110 110 d0 d0 0d 111 d0 d0 1d 110 H 111 111 d0 d0 d0 000 d1 d1 d1 111

Transição J K

0 0 0 d

0 1 1 d

1 1 d 0

1 0 d 1

Page 62: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

62

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Mapas de Karnaugh para Js e Ks

00 01 11 10

00

01

0

d d

0

d

0

d

0

d

0 0

d

1

d

0

d 11

10

y 1 y 0

wy 2

J 2 wy 0 y 1 =

00 01 11 10

00

01

d

0 0

d

0

d

0

d

0

d d

1

d

0

d

0 11

10

y 1 y 0

wy 2

K 2 wy 0 y 1 =

00 01 11 10

00

01

0

0 0

d

d

d

d

0

1

0 1

d

d

d

d

0 11

10

y 1 y 0

wy 2

J 1 wy 0 =

00 01 11 10

00

01

d

d d

0

0

0

0

d

d

d d

1

1

0

0

d 11

10

y 1 y 0

wy 2

K 1 wy 0 =

00 01 11 10

00

01

d

0 d

d

d

0

0

0

d

1 d

d

d

1

1

1 11

10

y 1 y 0

wy 2

J 0 w =

00 01 11 10

00

01

0

d 0

0

0

d

d

d

1

d 1

1

1

d

d

d 11

10

y 1 y 0

wy 2

K 0 w =

Page 63: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

63

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Circuito final com JKs

• Observar regularidade

• J=K= w y0 y1 ...yn-1

• Observar que é possível

fatorar termo repetido:

Ji = Ki = Jn-1 . yn-1

• Essa é a forma

conhecida com FF - T

Clock

Resetn

w J Q

Q K

y 0

y 1

y 2

J Q

Q K

J Q

Q K

Page 64: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

64

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Contador com JK e termos fatorados

• Exatamente o

contador com

FFT

• Comparar com

contador FFD

Clock

Resetn

w y 0

y 1

y 2

J Q

Q K

J Q

Q K

J Q

Q K

Page 65: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

65

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Contador

com FFD

• Em geral,

implementação

com FFD tem

maior custo

D Q

Q

D Q

Q

Clock

y 0

w

y 1

y 2

Y 0

Y 1

Y 2

Resetn

D Q

Q

Page 66: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

66

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

8.6 Minimização de estados

• Definições:

– Estados Si e Sj são equivalentes: para qualquer

sequencia de entradas, as saídas serão as

mesmas se Si ou Sj for o estado inicial

– 1-sucessor de Sv: Estado que se alcança

aplicando-se a entrada 1 a partir do estado Sv

– Partição de um ou mais blocos: estados em

blocos diferentes SÃO não-equivalentes

Page 67: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

67

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo de minimização

• Partição inicial: P1 = (ABCDEFG)

• Saídas diferentes:

P2 = (ABD)(CEFG)

• Ver sucessores (0 e 1) dos

estados em cada bloco

– (ABD) 0-sucessores: (BDB) mesmo bloco em P2 ok

– (ABD) 1-sucessores: (CFG) mesmo bloco em P2 ok

– (CEFG) 0-sucessores: (FFEF) mesmo bloco em P2 ok

– (CEFG) 1-sucessores: (ECDG) dif. bloco em P2 não ok

• Partição (CEG)(ECG) e (F)(D) bloco diferente

• P3 = (ABD)(CEG)(F) ..... Repetindo

• P4 = (AD)(B)(CEG)(F) ......fim

Present Next state Output

state w = 0 w = 1 z

A B C 1

B D F 1

C F E 0

D B G 1

E F C 0

F E D 0

G F G 0

Page 68: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

68

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo de minimização(2)

• Original

(ABCDEFG)

• Minimizado

(AD)(B)(CEG)(F)

Present Next state Output

state w = 0 w = 1 z

A B C 1

B D F 1

C F E 0

D B G 1

E F C 0

F E D 0

G F G 0

Present Nextstate

Output

state w = 0 w = 1

z

A B C 1

B A F 1

C F C 0

F C A 0

Page 69: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

69

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

ASM – Algorithmic State Machine

• Representação alternativa (e equivalente) ao

diagrama de estados

– Semelhante ao fluxograma

– Elementos principais:

Sinais de saída

ou ações

(Moore)

Nome do

estado

a) Caixa de estado

Condição

0 (Falso) 1 (Verdadeiro)

b) Decisão

Saídas condicionais

ou ações (Mealy)

c) Saída condicional

Page 70: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

70

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Exemplo 8.3: FSM e ASM

C z 1 =

Reset

B z 0 = A z 0 = w 0 =

w 1 =

w 1 =

w 0 =

w 0 = w 1 =

w

w

w 0 1

0

1

0

1

A

B

C

z =1

Reset

z =0

z =0

Page 71: Circuitos Lógicos e Organização de Computadorescortes/mc602/slides/cap08_v3.pdf · quantidade de portas lógicas além dos elementos de memória – Circuito síncrono genérico

71

IC-UNICAMP

MC602 – Mario Côrtes – IC / Unicamp

Visão geral de máquinas síncronas

• Em circuitos síncronos, frequência máxima do clock

limitada pelo maior atraso combinacional

• Tck tckQ + tcc + tsu

• fck 1 / (tckQ + tcc + tsu )

D Q

Q

D2 Q2 D Q

Q

D2 Q1

circuito

combinacional

com atraso tcc

tckQ tcc tsu

CK

tck-->Q tcc tsu