Você está na página 1de 32

Circuitos

Seqenciais

Circuitos Lgicos
DCC-IM/UFRJ
Prof. Gabriel P. Silva
Circuitos Seqenciais
Um circuito seqencial sncrono consiste de um
circuito combinacional e uma rede de memria
formada por elementos de armazenamento
(usualmente flip-flops);
A rede de memria define o estado atual da mquina

de estados, representado pelo conjunto de flip-flops;


O circuito seqencial difere de um circuito

combinacional puro na medida em que o prximo


estado ser definido no s a partir das entradas
atuais, como tambm do estado atual.
Logo, as possibilidades de projeto aumentam

enormente com uso de circuitos seqenciais.


Circuitos Seqenciais
O funcionamento dos circuitos seqenciais pode ser
representado por uma mquina de estado.
O conjunto dos valores armazenados em cada flip-

flop define o estado atual dessa mquina de estado.


H diversas codificaes possveis para a

representao do estado atual com o conjunto de flip-


flops, com por exemplo:
Binria

Cdigo Gray

One Hot

Veremos mais detalhes de cada uma dessas

possibilidades mais adiante.


Circuitos Seqenciais
A mquina de estados representada pelo circuito
seqencial sncrono pode ser implementada de duas
maneiras equivalentes entre si:

Mquina de Moore
Mquina de Mealy

Nos slides a seguir observamos diagramas


representativos dessas implementaes
Mquina de Moore

Entrada Sada
Circuito Memria Circuito
Combinacional (Flip-Flops) Combinacional

Na mquina de Moore a sada Y


muda apenas na transio do
relgio.
Mquina de Mealy

Entrada Sada
Circuito Memria Circuito
Combinacional (Flip-Flops) Combinacional

Na mquina de Mealy a sada Y pode


mudar em qualquer instante, em
funo da entrada X.
Mquina de Moore

O comportamento das mquinas de Moore e


Mealy machines idntico, mas suas
implementaes diferem.
Na representao da mquina de Moore, nos
arcos do grafo somente so representados os
sinais de entrada causadores da transio de um
estado para outro.

7
Mquina de Mealy

Na representao da mquina de Mealy, nos


arcos do grafo so representados os sinais de
entrada causadores da transio de um estado
para outro, com os respectivos valores para a
sada.

8
Mealy x Moore

As representaes podem ser


transformadas de uma para a outra.
Vantagens e desvantagens:
Mealy:
glitches (rudos)
problemas de amostragem
+ fcil de projetar
menor nmero total de estados
Moore:
+ sem glitches
Sntese de Redes Seqenciais

A sntese de redes seqenciais pode ser obtida


seguindo-se uma srie bem determinada de passos:
O primeiro passo consiste em elaborar um diagrama de
estados, que seja uma interpretao fiel do problema
original;
Opcionalmente pode-se minimizar o nmero de estados
no diagrama de estados;
Escrever a tabela de estados, com os estados atuais,
prximos estados e sadas.
Atribuir a cada estado uma combinao de variveis de
estado (flip-flops);
Contruir a tabela de excitao do tipo de flip-flop
utilizado;
Sntese de Redes Seqenciais

A sntese de redes seqencias pode ser obtida


seguindo-se uma srie bem determinada de passos:
Montar o mapa de Karnaugh para cada uma das
entradas dos flip-flops do circuito, com o auxlo da tabela
de excitao;
Obter a equao final de cada entrada de cada um dos
flip-flops do circuito a partir da simplificao do mapa de
Karnaugh;
Fazer o mesmo procedimento para as equaes das
variveis de sada.
Finalmente, elaborao do diagrama lgico do circuito,
lembrando que todos os elementos de memria (flip-
flops) recebem o mesmo sinal de relgio.
Tabela de Transio

Estado Prximo FunodeSada
Atual Estado

Vetor X1 X2 X3 X1 X2 X3
de
Entrada

A C B A Z1 Z2 -


B A C B Z1 Z1 Z2 -


C D B D Z1 Z1 Z2


D C D A Z2 Z2 Z1

Ex. Um estado atual C e um vetor de entrada atual X2


produzem uma varivel de sada Z1 e prximo estado B.
Sntese de Redes Seqenciais

Exemplo
O comeo de uma mensagem em um sistema de
comunicao indicado pela ocorrncia de trs 1
consecutivos em uma linha x. Projete um circuito que
fornea em sua sada o valor 1 apenas durante o
perodo de relgio coincidente com o terceiro 1
consecutivo na linha x. Supor que um mecanismo
externo inicialize o detetor, aps o trmino da
mensagem, no estado de reset.
Circuito Detector de
Seqncia Inicial
Detetor de
x comeo de z
mensagem

Clock

Clock

z
Diagrama de Estados
Diagrama de Estados Tabela de Estados
0/0 xt 0 1
1/0 1/0 1/1 qt
q0 q1 q2 q3 q0 q4,0 q1,0
0/0 0/0 1/0 q1 q4,0 q2,0
1/0 q2 q4,0 q3,1
q4 q3 q3,0 q3,0
0/0 0/0 q4 q4,0 q1,0

qt+1, zt
Diagrama de Estados Mnimo
Diagrama de Estados Tabela de Estados
MNIMA
0/0 x 0
t
1
1/0 q t
q0 q1 1/0 q2 1/1 q3 q0 q0,0 q1,0
1/0 q1 q0,0 q2,0
0/0
0/0
0/0 q2 q0,0 q3,1
q3 q3,0 q3,0

qt+1, zt
Variveis para os Estados

Uma varivel binria necessria para codificar dois


estados
Duas variveis binrias so necessrias para codificar trs

ou quatro estados.
Trs variveis binrias so necessrias para codificar de

cinco a oito estados.


Quatro variveis binrias so necessrias para codificar de

nove a dezesseis estados.


Cinco variveis binrias so necessrias para codificar de

dezessete a trinta e dois estados.

Neste exemplo de detetor de sequncias


So necessrias 2 variveis para representar 4 estados.
Variveis para os Estados

Eventualmente pode-se utilizar a codificao one hot, onde


a cada estado associado um flip-flop diferente.
Assim sendo, por exemplo, se precisarmos representar
cinco estados diferentes utilizando uma codificao one
hot, poderamos usar cinco flip-flops distintos com a
codificao a seguir:
00001
00010
00100
01000
10000
Designao dos Estados

Designao de estados: xt xt
qt (y1y0)t 0 1 0 1
q0 0 0 0 0 1 1 0 0
Tabela de Transio: q1 1 1 0 0 0 1 0 0
q2 0 1 0 0 1 0 0 1
q3 1 0 1 0 1 0 0 0

(y1y0)t+1 zt
Designao dos Estados

Os nomes dos estados (letras) so substitudos na tabela de


estados pela codificao escolhida para eles.
Escolhe-se um determinado tipo de flip-flop para
representar a codificao escolhida.
A tabela de estados mostra, a partir do estado atual, qual a
codificao para o prximo estado que desejamos alcanar.
Precisamos montar um mapa de karnaugh para determinar
as equaes de entrada de cada flip-flop do circuito.
Designao dos Estados

Como queremos saber o prximo estado, devemos utilizar


a tabela de excitao relativa ao flip-flop escolhido para
determinar essas esquaes.
A tabela de excitao diz quais so os valores que deve
haver na entrada do flip-flop para que um determinado valor
seja obtido na sua sada.
Tabela de Excitao
FF JK
Tabela de Excitao para o flip-flop JK
Qt Qt+1 Jt Kt
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0

Jt Kt Qt+1
0 0 Qt
0 1 0
1 0 1
1 1 (Qt)
Mapa de Karnaugh
Flip-Flop 1
xt xt
qt (y1y0)t 0 1 0 1 Qt Qt+1 Jt Kt
q0 0 0 0 0 1 1 0 0 0 0 0 X
q1 1 1 0 0 0 1 0 0 0 1 1 X
q2 0 1 0 0 1 0 0 1 1 0 X 1
q3 1 0 1 0 1 0 0 0 1 1 X 0

y1 y0
t t (y1y0)t+1 zt y1ty0t
xt 00 01 11 10 xt 00 01 11 10
0 0 0 X X 0 X X 1 0
1 1 1 X X 1 X X 1 0

Jy1 = x Ky1 = y0
Mapa de Karnaugh
Flip-Flop 0
xt xt
Qt Qt+1 Jt Kt
qt (y1y0)t 0 1 0 1
q0 0 0 0 X
0 0 0 0 1 1 0 0
0 1 1 X
q1 1 1 0 0 0 1 0 0 1 0 X 1
q2 0 1 0 0 1 0 0 1 1 1 X 0
q3 1 0 1 0 1 0 0 0

(y1y0)t+1 zt
y1ty0t y1ty0t
xt 00 01 11 10 xt 00 01 11 10

0 0 X X 0 0 X 1 1 X
1 1 X X 0 1 X 1 0 X
Ky0 = x + y1
Jy0 = x .y1
Mapa de Karnaugh
Sada Z
xt xt
qt (y1y0)t 0 1 0 1
q0 0 0 0 0 1 1 0 0
q1 1 1 0 0 0 1 0 0
q2 0 1 0 0 1 0 0 1
q3 1 0 1 0 1 0 0 0 y1ty0t
xt 00 01 11 10
(y1y0)t+1 zt 0 0 0 0 0
1 0 1 0 0

z = x .y1.y0
Sntese de Redes Seqenciais
Circuito Final
Resumo
O projeto de redes seqenciais requer
ateno e experincia.
A maioria das aplicaes teis requer o uso de
tais sistemas.
H necessidade de um cuidado especial com as

especificaes iniciais do circuito,


principalmente na codificao dos estados e na
escolha do tipo de flip-flop a ser utilizado.
Exerccio
Projete um sistema com uma entrada e duas sadas que
detecte a ocorrncia de duas seqncias de 4 bits.

O valor inicial da sada 00.


Se a seqncia 1010 for detectada a sada 01 gerada.
Se a seqncia 0111 for detectada a sada 10 gerada.

A sadas devem ser geradas quando o ltimo bit da seqncia de


entrada for detectado e o detetor deve retornar para o estado inicial.
Nenhuma sobreposio das seqncias deve ser assumida.
Exerccio
Projete um sistema com uma entrada e duas sadas que
detecte a ocorrncia de duas seqncias de 4 bits.

O valor inicial da sada 00.


Se a seqncia 1010 for detectada a sada 01 gerada.
Se a seqncia 0111 for detectada a sada 10 gerada.

A sadas devem ser geradas quando o ltimo bit da seqncia de


entrada for detectado e o detetor deve retornar para o estado inicial.
Nenhuma sobreposio das seqncias deve ser assumida.
Mquina de Estados
em VHDL
ENTITY simple_seq IS
PORT(x : IN BIT ;
z : OUT Bit_Vector(1 DOWNTO 0);
clk : IN BIT);
END simple_seq;

ARCHITECTURE behavioral OF simple_seq IS


TYPE stateT is (S0, S1, S2, S3);
SIGNAL state: stateT; -- state
Mquina de Estados
em VHDL
BEGIN
PROCESS (clk) -- processo ativado por clk
BEGIN
IF (clk'EVENT AND clk='1') THEN
CASE state IS -- determina o novo estado
WHEN S0 => IF (x = '0') THEN state <= S0;
ELSE state <= S1;
END IF;
WHEN S1 => IF (x = '0') THEN state <= S2;
ELSE state <= S3;
END IF;
WHEN S2 => IF (x = '0') THEN state <= S0;
ELSE state <= S1;
END IF;
WHEN S3 => IF (x = '0') THEN state <= S2;
ELSE state <= S3;
END IF;
END CASE;
END IF;
END PROCESS;
Mquina de Estados
em VHDL
PROCESS (state,x) -- processo ativado por state ou x
BEGIN
CASE state IS
WHEN S0 =>
z <= "00";
WHEN S1 =>
z <= x & NOT(x);
WHEN S2 =>
z <= NOT(x) & x;
WHEN S3 =>
z <= "11";
END CASE;
END PROCESS;
END behavioral;

Você também pode gostar