Anda di halaman 1dari 34

Lógica Seqüencial

Definição
“É um sistema digital no qual a saída em qualquer
tempo dado depende não somente da entrada
nesse tempo, mas também das entradas
anteriores.”
ERCEGOVAC.

z (t ) = f ( x(0, t ))
Lógica Seqüencial

Entradas Circuito Digital Saídas


Exemplo de Sistema Seqüencial

S1 é igual a 1 se a quantidade
Circuito S1 de 1s que entrou for par.
E1 Combinacional
Caso contrário, S1 é igual a 0.

t1 t2 t3 t4 t5 t6 t7

E1 1 1 0 0 1 0 1

S1 0 1 1 1 0 0 1
Descrições

• Descrição de estado

• Comportamento no tempo
Sistema Assíncrono
• A variável tempo é contínua, de forma que
os sinais de entrada e saída são definidos
em cada valor de t.
• São mais difíceis de descrever, analisar e
projetar do que os sistemas síncronos.
• Minoria das aplicações
Sistema Assíncrono

x(t)

z(t)

Tempo
Sistema Síncrono
• As entradas e saídas são consideradas
em instantes discretos no tempo, que são
definidos por transições de um sinal de
sincronização chamado relógio (clock).
• Normalmente, a separação entre
transições idênticas consecutivas do sinal
de clock é constante. Este período é
chamado ciclo de relógio.
Sistema Síncrono

x(t)

z(t)

clk

0 1 2 3 Tempo
Sistemas de Estados Finitos

• Pela definição: um sistema seqüencial


deve ter a capacidade de capturar a
influência de todas as entradas passadas
sobre as saídas atuais e futuras.
• Porém, em geral, os valores das
seqüências de entradas podem ser
agrupados em um número finito de
classes.
Sistemas de Estados Finitos
• Assim, a determinação de z(t) não precisa
da seqüência de entrada inteira x(0,t), pois
basta saber a classe à qual a função
pertence.
• A classe é mantida em uma variável
auxiliar chamada estado, que também é
uma função no tempo.
Sistemas de Estados Finitos
• A descrição de um sistema seqüencial usa
três variáveis no tempo: a entrada, o
estado e a saída.
• Além disso, há duas funções:
– a função de transição de estado;
s (t + 1) = G ( s (t ), x(t ))
– a função de saída.
z (t ) = H ( s (t ), x(t ))
Exemplo 1

x(t)
Somador Serial z(t)
Decimal
y(t)
Exemplo 1

c 1 0 1 1 0 0

x 1. 6 3 8. 7 5 3

y 3. 6 5 2. 4 2 5

z 5. 2 9 1. 1 7 8
Exemplo 1

• Entrada: x(t ), y (t ) ∈ {0,1,...,9}


• Saída: z (t ) ∈ {0,1,...,9}
• Estado: c(t ) ∈ {0,1}
• Estado inicial: c(0) = 0
• Funções: ⎧ 1 se x(t ) + y (t ) + c(t ) ≥ 10 2
c(t + 1) = ⎨
⎩0 caso contrário
z (t ) = ( x(t ) + y (t ) + c(t )) mod 10 2
Representação das Funções

• Tabelas, expressões ou mapas

• Diagrama de estados
Grafo orientado usado para representar as
funções de transição e de saída em um
sistema seqüencial.
–Estados: representados por nós
–Transições: representados por arcos
Diagrama de Estados

x/z
Sk Sj
entrada/saída
Estado
Exemplo 2
• Entrada: x(t ) ∈ {a, b}
• Saída: z (t ) ∈ {p, q}
• Estado: s (t ) ∈ {S 0 , S1 , S 2 }
• Estado inicial: s (0) = S 0
• Funções: s(t) x(t)
a b
S0 S1,p S2,q
S1 S1,p S0,p
S2 S1,p S2,p
s(t+1), z(t)
Exemplo 2

b/q

a/p a/p
S0 S1 S2

b/p b/p
Implementação Canônica

Entradas Saídas
Circuito
Combinacional

Estados Valores para os


atuais Registrador
próximos estados
de Estados

CLK
Flip-Flop D
D Q
PRE
D Q 0 0
1 1
Q
CLR /PRE /CLR Q
0 0 Indevido
0 1 0
1 0 1
1 1 Tabela acima
Flip-Flop JK
J K Q
0 0 Q0
PRE
0 1 0
J Q
1 0 1
1 1 /Q0
K Q
CLR /PRE /CLR Q
0 0 Indevido
0 1 0
1 0 1
1 1 Tabela acima
Projeto Tradicional
• Definir número de estados e, portanto,
definir número de flip-flops.
• Definir o tipo dos flip-flops.
– D: projeto mais simples, circuito combinacional
maior.
– JK: projeto mais trabalhoso, circuito
combinacional menor.
• Montar tabela de estados
• Projeto do circuito combinacional (Mapa-K)
Exemplo 3
Contador crescente/decrescente de 0 a 3 com
reset
Reset z1
Up/Down Circuito z0
Combinacional

Registrador
de Estados

CLK
Exemplo 3
• Se Reset=1, s(t+1)=S0 1X, 00
• Se Reset=0, conta 1X
01
S0 /00 S1 /01

Contagem 1X
01 00
00
• Se Up/Down=1, conta 1X, 01
crescente 01
S3 /11 S2 /10
• Se Up/Down=0, conta
decrescente 00
Exemplo 3 - Considerações
• 4 estados → no mínimo 2 flip-flops
• Escolhendo 2 flip-flops tipo D

QB QA
DB QB DA QA S0 0 0

S1 0 1
QB QA
S2 1 0

S3 1 1
Estado Atual Entradas Próximo Estado Saídas
QB(t) QA(t) Reset U/D QB(t+1)=DB(t) QA(t+1) =DA(t) z1 z2
0 0 1 X 0 0 0 0
0 1 1 X 0 0 0 1
1 0 1 X 0 0 1 0
1 1 1 X 0 0 1 1
0 0 0 0 1 1 0 0
0 1 0 0 0 0 0 1
1 0 0 0 0 1 1 0
1 1 0 0 1 0 1 1
0 0 0 1 0 1 0 0
0 1 0 1 1 0 0 1
1 0 0 1 1 1 1 0
1 1 0 1 0 0 1 1
Exemplo 3 - Resposta

DA (t ) = QA (t ) ⋅ reset (t )
DB (t ) = reset (t ) ⋅ (QA (t ) ⊕ QB (t ) ⊕ Up _ Down)
z1
Reset z0

Up/Down

Circuito .
Combinacional .

QA DA

QA
QB DB

QB Registrador
de Estados

CLK
Máquina de Mealy
É um sistema seqüencial cuja saída no
tempo t depende do estado e da entrada
no tempo t.

z (t ) = H ( s (t ), x(t ))
b/q

a/p a/p
S0 S1 S2

b/p b/p
Máquina de Moore
É um sistema seqüencial cuja saída no
tempo t depende somente do estado no
tempo t. A influência da entrada sobre a
saída ocorre somente através do estado.
z (t ) = H ( s (t ))
b

a a
S0 /p S1 /q S2 /q

b b
Controladores
Sistema de estados finitos que, à medida
que os estados são percorridos, produz
sinais de controle.

• Autônomos: as transições seguem uma


seqüência fixa de estados, independentes
de qualquer entrada (exceto o clock).
• Não Autômonos.
Exemplo de Controlador

zerar_soma
moeda devolver_todas_moedas
devolver
Controlador devolver_troco
Sistema soma < 75
de Máquina
Digital soma = 75
Sequencial
soma > 75
troco_disponível

liberar_doce
moeda devolver

Liberação Liberação
do troco do doce
Moedas Devolver Troco_disponível
Exemplo de Controlador
moeda .devolver

moeda .devolver

S0 S5 / devolver_todas_moedas, zerar_soma
moeda.devolver

S2 / liberar_doce, zerar_soma

troco_disponível

S4 / devolver_troco

troco_disponível
soma = 75

S1 S3
soma < 75
soma > 75