Buscar

cap08_v3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 67 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 67 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 67 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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
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
3
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
4
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 
5
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
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. 2Y 
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 
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 
9
IC-UNICAMP
MC602 – Mario Côrtes – IC / Unicamp
Tabela verdade em forma alternativa
• novo formato:
– explicita transições de estado
Present 
Next State 
state w = 0 w = 1 
Output
y 2 y 1 Y 2 Y 1 Y 2 Y 1 
z 
0 0 0 0 01 0 
0 1 0 0 10 0 
1 0 0 0 11 0 
1 1 0 0 11 1 
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
10
IC-UNICAMP
MC602 – Mario Côrtes – IC / Unicamp
Atribuição simbólica de estados
Present 
Next State 
state w = 0 w = 1 
Output
y 2 y 1 Y 2 Y 1 Y 2 Y 1 
z 
0 0 0 0 01 0 
0 1 0 0 10 0 
1 0 0 0 11 0 
1 1 0 0 11 1 
Present Next state Output
state w = 0 w = 1 z 
A A B 0 
B A C 0 
C A D 0 
D A D 1 
11
IC-UNICAMP
MC602 – Mario Côrtes – IC / Unicamp
Diagrama de transição de estados
Present Next state Output
state w = 0 w = 1 z 
A A B 0 
B A C 0 
C A D 0 
D A D 1 A
B
C
D
W=0
W=0
W=0
W=0
W=1
W=1W=1
W=1
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=1W=1
W=1
Resetn=0
13
IC-UNICAMP
MC602 – Mario Côrtes – IC / Unicamp
Análise de uma FSM: resumo
• Identificar os dois circuitos combinacionais
(re-arranjar desenho?)
– próximo estado
– saída
• Tabela verdade convencional
• Tabela verdade: forma alternativa
• Atribuição de estados: binário � simbólico
• Tabela de transição de estados
• Diagrama de transição de estados
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
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
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 
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
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 
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
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
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
y2
z
w y
1
Y1
Y2
Combinacional
Circuito
CC1: prox estado = 
f(entrada e estado atual)
CC2: saída = 
f(estado atual)
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 = 
Entrada
Estado 
atual
Próximo 
estado
Saí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
23
IC-UNICAMP
MC602 – Mario Côrtes – IC / Unicamp
Tabelas verdade de CC1 e CC2 
(assumindo FF-D)
CC1
Clock
y2
z
w y1Y1
Y2
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
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 wy1 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
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
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
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
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
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??)
R1
in
Bus 
Clock 
Control circuit 
Function
R1 R2 Rk
Data
Extern
R1
out
R2
in
R2
out
Rk
in
Rk
out
Control 
circuit 
w 
Clock 
Done
R 1 out 
R 2 out 
R 1 in
R 2 in
R 3 out 
R 3 in
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 = , , ⁄
w 0 = 
w 1 = 
C R 1 out 1 = R 2 in 1 = , ⁄
B R 2 out 1 = R 3 in 1 = , ⁄
w 1 = 
A No⁄
w 0 = 
w 1 = 
transfer
w 0 = 
w 1 = 
Reset 
w 0 = 
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 
32
IC-UNICAMP
MC602 – Mario Côrtes – IC / Unicamp
Mapas de Karnaugh
w 
00 01 11 10
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 + = 
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
34
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
35
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
36
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
37
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
38
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 
00 01 11 10
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 + = 
39
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 wy2 y 1 y 2 + = 
w 
00 01 11 10
0 
1 
1 1 
1 1 
y 2 y 1 
Y 2 y 1 = 
40
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
41
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
42
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 
43
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 
44
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 = ⁄⁄⁄⁄
45
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 
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 Outputz 
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 
47
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 
48
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
49
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
R3out 1= R1in 1= Done 1=, ,
w 0=
w 1=
R1out 1= R2in 1=,
w 1= R⁄ 2out 1= R3in 1=,
A
w 0=
w 1=
Reset
w 0=
B
C
50
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 
51
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 ⁄( ) 
52
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
53
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
54
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
1011
11
01
10
G 1 s 1 = ⁄
G 0 s 0 = ⁄
01
10 00
01
00
10
11
00
00
11
Mealy
Moore
55
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 
56
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 
57
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
58
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/4F/5G/6H/7
59
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/4F/5G/6H/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 
60
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
61
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
d11
10
y1y0
wy2
J2 wy0y1=
00 01 11 10
00
01d
0 0
d
0
d
0
d
0
d d
1
d
0
d
011
10
y1y0
wy2
K2 wy0y1=
00 01 11 10
00
01
0
0 0
d
d
d
d
0
1
0 1
d
d
d
d
011
10
y1y0
wy2
J1 wy0=
00 01 11 10
00
01
d
d d
0
0
0
0
d
d
d d
1
1
0
0
d11
10
y1y0
wy2
K1 wy0=
00 01 11 10
00
01
d
0 d
d
d
0
0
0
d
1 d
d
d
1
1
111
10
y1y0
wy2
J0 w=
00 01 11 10
00
01
0
d 0
0
0
d
d
d
1
d 1
1
1
d
d
d11
10
y1y0
wy2
K0 w=
62
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 
63
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 
64
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 
65
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
66
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
67
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 ≥ tck�Q + tcc + tsu
• fck ≤ 1 / (tck�Q + tcc + tsu )
D Q 
Q 
D2 Q2
D Q 
Q 
D2 Q1
circuito 
combinacional
com atraso tcc
tck����Q tcc tsu
CK
tck-->Q tcc tsu

Outros materiais