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 flipflop define o estado atual dessa mquina de estado. H diversas codificaes possveis para a representao do estado atual com o conjunto de flipflops, 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 Combinacional

Memria (Flip-Flops)

Circuito Combinacional

Na mquina de Moore a sada Y muda apenas na transio do relgio.

Mquina de Mealy
Entrada Sada

Circuito Combinacional

Memria (Flip-Flops)

Circuito 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.

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.

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 (flipflops) recebem o mesmo sinal de relgio.

Tabela de Transio
Estado Atual Vetor de Entrada A B C D

Prximo Estado X1 C A D C X2 B C B D X3 A B D A

FunodeSada X1 Z1 Z1 Z1 Z2 X2 Z2 Z1 Z2 Z1 Z2 X3 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


x Clock Clock x z Detetor de comeo de mensagem z

Diagrama de Estados
Diagrama de Estados q0 1/0 q1 1/0 0/0 1/0 0/0 q2 0/0 q4 0/0 1/1 0/0 q3 1/0
t

Tabela de Estados q q0 q1 q2 q3 q4 xt 0 q4,0 q4,0 q4,0 q3,0 q4,0 1 q1,0 q2,0 q3,1 q3,0 q1,0

qt+1, zt

Diagrama de Estados Mnimo


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

0/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: qt q0 q1 q2 q3 (y1y0)t 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0

xt 1 1 0 1 1 1 1 0 0 0 0 0 0 0

xt 1 0 0 1 0 zt

Tabela de Transio:

(y1y0)t+1

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 0 0 1 1 Qt+1 0 1 0 1 Jt 0 1 X X Kt X X 1 0 Jt Kt 0 0 1 1 0 1 0 1 Qt+1 Qt 0 1 (Qt)

Mapa de Karnaugh Flip-Flop 1


q q0 q1 q2 q3
t

(y1y0)t 0 0 1 1 0 1 1 0 y1 y0
t t

xt 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0

xt 1 0 0 1 0 zt xt
0 1

Qt 0 0 1 1

Qt+1 0 1 0 1 y1ty0t

Jt 0 1 X X

Kt X X 1 0

(y1y0)t+1

xt
0 1

00 01 11 10

00 01 11 10

0 0 X X 1 1 X X Jy1 = x

X X 1 0 X X 1 0 Ky1 = y0

Mapa de Karnaugh Flip-Flop 0


xt xt qt q0 q1 q2 q3 (y1y0)t 0 0 1 1 0 1 1 0 y1ty0t
00 01 11 10 0 1

0 0 0 0 1 0 0 0 0 1 0 1 1

1 1 1 0 0

0 0 0 0 0 zt

1 0 0 1 0

Qt 0 0 1 1

Qt+1 0 1 0 1

Jt 0 1 X X

Kt X X 1 0

(y1y0)t+1

xt

xt
0 1

y1ty0t
00 01 11 10

0 X X 0 1 X X 0 Jy0 = x .y1

X 1 1 X X 1 0 X Ky0 = x + y1

Mapa de Karnaugh Sada Z


xt qt q0 q1 q2 q3 (y1y0)t 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 zt xt 1 0 0 1 0 xt (y1y0)t+1
0 1

y1ty0t
00 01 11 10

0 0 0 0 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) BEGIN CASE state IS WHEN S0 => WHEN S1 => WHEN S2 => WHEN S3 => END CASE; END PROCESS; END behavioral; -- processo ativado por state ou x

z <= "00"; z <= x & NOT(x); z <= NOT(x) & x; z <= "11";