You are on page 1of 7

Circuitos sequenciais sncronos

At agora, cada circuito que foi apresentado foi um circuito combinatrio. Isso significa que sua sada depende
apenas das suas entradas atuais. As entradas anteriores para esse tipo de circuitos no tm efeito na sada.
No entanto, existem muitas aplicaes em que h necessidade de nossos circuitos terem "memria"; para
lembrar as entradas anteriores e calcular suas sadas de acordo com elas. Um circuito cuja sada depende no
apenas da entrada atual, mas tambm do histrico da entrada, chamado de circuito sequencial.
O primeiro passo do procedimento de design definir com palavras simples e claras o que queremos que o
nosso circuito faa: "Nossa misso projetar um circuito secundrio que transmita um pulso ALTO com
durao de apenas um ciclo quando o boto manual pressionado e no transmitir outro pulso at que o
boto seja pressionado e pressionado novamente.
Mquinas de estados
Uma mquina de estados finitos um modelo usado para representar e controlar o fluxo de execuo.
perfeito para implementar AI em jogos, produzindo timos resultados sem um cdigo complexo.
Uma mquina de estados finitos, ou FSM para abreviar, um modelo de clculo baseado em uma mquina
hipottica feita de um ou mais estados. Apenas um nico estado pode ser ativo ao mesmo tempo, de modo
que a mquina deve se transitar de um estado para outro para realizar diferentes aes.
Os FSMs so comumente usados para organizar e representar um fluxo de execuo, o que til para
implementar AI nos jogos. O "crebro" de um inimigo, por exemplo, pode ser implementado usando um FSM:
cada estado representa uma ao, como ataque ou evaso:
Um FSM pode ser representado por um
grfico, onde os ns so os estados e as bordas so
as transies. Cada borda tem um rtulo
informando quando a transio deve acontecer,
como o jogador est perto do rtulo na figura
acima, o que indica que a mquina ir transitar de
vaguear para atacar se o jogador estiver perto.
O prximo passo projetar um Diagrama de
Estado. Este um diagrama feito de crculos e setas
e descreve visualmente a operao do nosso

circuito. Em termos matemticos, este diagrama que descreve


o funcionamento do nosso circuito sequencial uma mquina
de estado finito.
Cada crculo representa um "estado", uma condio bem
definida em que nossa mquina pode ser encontrada.
Na metade superior do crculo, descrevemos essa condio. A
descrio nos ajuda a lembrar o que nosso circuito deveria fazer
nessa condio.
O primeiro crculo a condio "stand-by". a que o nosso
circuito comea e onde ele espera por outro boto, pressione.
O segundo crculo a condio em que o boto acabou de ser
pressionado e nosso circuito precisa transmitir um pulso ALTO.
O terceiro crculo a condio em que nosso circuito espera que o boto seja liberado antes de retornar
condio de "stand-by".
Na parte inferior do crculo est a sada do nosso circuito. Se queremos que nosso circuito transmita um ALTO
em um estado especfico, colocamos um 1 nesse estado. Caso contrrio, colocamos um 0.
Cada seta representa uma "transio" de um estado para outro. Uma transio acontece uma vez que cada
ciclo do relgio. Dependendo da entrada atual, podemos ir para um estado diferente de cada vez. Observe o
nmero no meio de cada seta. Esta a entrada atual. Por exemplo, quando estamos no estado "Inicial-Stand
by" e "lemos" um 1, o diagrama nos diz que temos que ir ao estado "Ativar pulso". Se lemos um 0, devemos
permanecer no estado "Inicial-Stand by".
Ento, o que nossa "Mquina" faz exatamente? Comea a partir do estado "inicial - Stand by" e espera at que
1 seja lido na entrada. Em seguida, ele vai para o estado "Ativar pulso" e transmite um pulso ALTO em sua
sada. Se o boto continuar sendo pressionado, o circuito vai para o terceiro estado, o "loop de espera". L,
aguarda at que o boto seja liberado (a entrada vai 0) ao transmitir um BAIXO na sada. Ento tudo de novo!
Em seguida, substitumos as palavras que descrevem os
diferentes estados do diagrama com nmeros binrios.
Iniciamos a enumerao de 0 atribuda no estado inicial.
Em seguida, continuamos a enumerao com qualquer
estado que desejamos, at que todos os estados tenham
seu nmero.
Depois, preenchemos a Tabela de Estado. Esta tabela tem
uma forma muito especfica.

As primeiras colunas so tanto quanto os bits do nmero mais alto que atribumos ao Diagrama de Estado. Se
tivssemos 5 estados, teramos usado at o nmero 100, o que significa que ns usaramos 3 colunas. Para o
nosso exemplo, usamos at o nmero 10, ento apenas 2 colunas sero necessrias. Essas colunas descrevem
o estado atual do nosso circuito.
direita das colunas do estado atual, escrevemos as colunas de entrada. Estas sero todas as nossas variveis
de entrada. Nosso exemplo tem apenas uma Entrada. Em seguida, escrevemos as Colunas do Prximo Estado.
Estas so todas as colunas do estado atual.
Finalmente, escrevemos as Colunas de Sadas. Estas so todas as nossas sadas. Nosso exemplo tem apenas
um resultado. Uma vez que construmos uma mquina de estado mais finita, a sada depende somente dos
estados de entrada atuais. Esta a razo pela qual a coluna de sadas tem dois: 1 para resultar em uma funo
booleana de sada que independente da entrada I.
As colunas Current State e Input so as Entradas de nossa tabela. Ns os preenchemos com todos os nmeros binrios
de 0 para

mais simples do que parece, felizmente. Normalmente, haver mais linhas do que os estados reais que criamos no
Diagrama de Estado, mas est certo.
Cada linha das colunas Next State preenchida da seguinte forma: o preenchemos com o estado que
alcanamos quando, no Diagrama de Estado, do Estado atual da mesma linha, seguimos a Entrada da mesma
linha. Se tiver que preencher uma linha cujo nmero de Estado atual no corresponda a nenhum estado real
no Diagrama de Estado, ns o preenchemos com os Termos de Do not Care (X). Afinal, no nos importa onde
podemos ir de um Estado que no existe. Ns no estaramos l em primeiro lugar! Novamente mais simples
do que parece.
A coluna de sadas preenchida pela sada do Estado atual correspondente no Diagrama de Estado. A Tabela
de Estado est completa! Ele descreve o comportamento do nosso circuito to completamente quanto o
Diagrama de Estado.
O prximo passo levar essa "Mquina" terica e implement-la em um circuito. Na maioria das vezes, esta
implementao envolve Flip Flops. Este guia dedicado a este tipo de implementao e descrever o
procedimento tanto para D - Flip Flops quanto para JK - Flip Flops. T-Flip Flops no ser includo, pois eles so
muito semelhantes aos dois casos anteriores. A seleo do Flip Flop para usar arbitrria e geralmente
determinada por fatores de custo. A melhor escolha realizar ambas as anlises e decidir qual tipo de Flip
Flop resulta em um nmero mnimo de portes lgicos e menor custo.
Vamos precisar de tantos D -
Flip Flops como as colunas do Estado,
2 no nosso exemplo. Para cada Flip
Flop, adicionaremos mais uma coluna
em nossa tabela de estado (Figura
abaixo) com o nome da entrada do
Flip Flop, "D" para este caso. A coluna
que corresponde a cada Flip Flop
descreve o input que devemos
fornecer ao Flip Flop para passar do
Estado atual para o Prximo Estado. Para o D - Flip Flop, isso fcil: a entrada necessria igual ao Prximo
Estado. Nas linhas que contm X's, tambm preenchemos X's nesta coluna.
Podemos fazer os mesmos passos com o JK - Flip Flops. No entanto, existem algumas
diferenas. Um JK - Flip Flop tem duas entradas, portanto, precisamos adicionar duas
colunas para cada Flip Flop. O contedo de cada clula ditado pela tabela de excitao
da JK:
Esta tabela diz que, se
quisermos passar do Estado Q
para o Estado Qnext,
precisamos usar a entrada
especfica para cada terminal.
Por exemplo, para ir de 0 a 1,
precisamos alimentar J com 1
e no nos importa que
entrada ns alimentamos o
terminal K.
Estamos no estgio final do nosso procedimento. O que resta
determinar as funes booleanas que produzem as entradas dos
nossos Flip Flops e a Sada. Vamos extrair uma funo booleana para
cada entrada Flip Flop que possamos. Isso pode ser feito com um
mapa de Karnaugh. As variveis de entrada deste mapa so as
variveis de estado atual, bem como as entradas.
Dito isto, as funes de entrada para nossos D - Flip Flops so as
seguintes:
Se escolhemos usar JK - Flip Flops, nossas funes seriam as
seguintes:
Um mapa de Karnaugh ser usado tambm para
determinar a funo da sada:

Ns projetamos nosso circuito. Colocamos as Flip Flops e usamos portas lgicas para formar as funes
booleanas que calculamos. Os portes recebem entrada da sada dos flip-flop e da entrada do circuito. No se
esquea de conectar o relgio s Flip Flops!
Mquina de Moore
Uma mquina Moore possui sadas que dependem somente do estado (assim, o FSM possui a sada escrita no
prprio estado)
Mquina Mealy
Uma mquina Mealy possui sadas que dependem do estado e entrada (assim, o FSM tem a sada escrita nas
bordas)
Estados
A implementao de um FSM comea com os estados
e as transies que ter. Imagine o seguinte FSM,
representando o crebro de uma formiga carregando
folhas para casa:
O ponto de partida o estado da folha de busca, que
permanecer ativo at que a formiga encontre a folha.
Quando isso acontece, o estado atual transferido para
ir para casa, que permanece ativo at a formiga chegar
em casa. Quando a formiga finalmente chega em casa, o
estado ativo torna-se encontrar uma folha novamente,
ento a formiga repete sua jornada.
Se o estado ativo for encontrar uma folha e o cursor do mouse se aproximar da formiga, h uma transio
para o estado de corrida. Enquanto esse estado estiver ativo, a formiga escapar do cursor do mouse. Quando
o cursor no mais uma ameaa, h uma transio para o estado da folha de busca.
Uma vez que h transies que conectam encontrar
folha e fugir, a formiga sempre escapar do cursor do
mouse quando ela se aproximar, desde que a formiga
encontre a folha. Isso no acontecer se o estado ativo
for para casa (veja a figura abaixo). Nesse caso, a
formiga caminhar para casa sem medo, apenas a
transio para encontrar o estado da folha quando
chegar em casa.