Você está na página 1de 92

Introdução a Programação

UNIDADE I – COMPUTAÇÃO E OS SISTEMAS DE NUMERAÇÃO


UNIDADE II – MÁQUINA DE ESTADOS FINITOS
UNIDADE III – ALGORITMOS

1
Máquina de Estados Finitos

3.1 – Introdução
3.2 – Máquina Seqüencial
3.3 – Máquina de Estados Finitos (FSM)
3.4 – Controladores Hardware
3.5 – Controladores Hardware/Software

2
Introdução

Sistemas Automatizados
• Os sistemas automatizados, em sua grande maioria, são
construídos baseados em processadores.

Porque?

• Desenvolva um sistema para o controle de um semáforo com a


seguinte especificação:
No primeiro segundo o semáforo deve ligar a lâmpada amarela e
apagar as demais, em seguida deve apagar a lâmpada amarela e
acender a vermelha por 3 segundos. Ao término desta etapa deve
apagar a lâmpada vermelha e acender a verde por 4 segundos. Este
processo cíclico deverá se repetir continuamente. 3
Introdução

Sistemas Automatizados
Tempo (s) Lâmpadas
T2 T1 T0 Am Vm Vd
0 0 0 1 0 0
0 0 1 0 1 0
0 1 0 0 1 0
0 1 1 0 1 0
1 0 0 0 0 1
1 0 1 0 0 1
1 1 0 0 0 1
1 1 1 0 0 1

Am = T2’ T1’ T0’


Vm = T2’ T1’ T0 + T2’ T1 T0’ + T2’ T1 T0 = T2’( T1’ T0 + T1 T0’ + T1 T0 )
Vm = T2’(T1’ T0 + T1 (T0’ + T0 )) = T2’ (T1’ T0 + T1)
Vd = T2 T1’ T0’ + T2 T1’ T0 + T2 T1 T0’ + T2 T1 T0 SEMA
Vd = T2 (T1’ T0’ + T1’ T0) + T2 (T1 T0’ + T1 T0)
Vd = T2 (T1’ (T0’ + T0)) + T2 (T1 (T0’ + T0)) = T2 (T1’) + T2 (T1) = T2 (T1’+T1)
Vd = T2
4
Introdução

Sistemas Automatizados
Problemas de um semáforo real:
 Tempo de duração do acionamento das lâmpadas é bem mais
longo;
 Solicitação de passagem pelo pedestre;
 Sinais de três fases e
 Sincronização entre semáforos.

Por isto que os sistemas automatizados


utilizam processadores.

5
Introdução

Sistemas Automatizados
• Para construir um sistema automatizado é necessário que seja
descrito o seu comportamento;

• Para que possamos traduzir seu comportamento em uma


linguagem de programação (baixo e ou alto nível).

CODIFICAÇÃO
A=A*B; SUB_ROT: PUSH BC
LD B,(HL)
LD C,A
LD A,00
CP B
JR Z,VOLTA1
VOLTA2: ADD A,C
DEC B
JR Z,VOLTA1
JR VOLTA2
VOLTA1: POP BC
RET
Alto nível Baixo nível 6
Introdução

Sistemas Automatizados
• Para ambos os casos estamos empregando o modelo
computacional de programação seqüencial.

• Os primeiros sistemas automatizados, também conhecidos como


sistemas dedicados tais como máquina de lavar e pequenos games
necessitavam de centenas linhas de código para a construção do
seu programa;

• Entretanto, para os atuais sistemas como: televisões


programáveis, telefones celulares são necessários centenas de
milhares linhas de código;

• Para a elaboração de sistemas de tal porte, o maior tempo gasto


pelos projetistas está na etapa de compreensão do problema e na
descrição de seu comportamento (projeto do software).

7
Introdução

Modelamento do sistema
• Para especificar um sistema utilizamos um modelo computacional
responsável pela descrição do seu comportamento;

• Este modelo provê um conjunto de objetos, regras de composição


e semântica de execução destes objetos.

• Entretanto, existem vários modelos aplicados na descrição de


comportamento dos sistemas, dentre eles temos:

8
Introdução

Modelamento do sistema
⇒ Pseudocódigo: possui um conjunto de comandos, regras para
escrita e ordenação e execução dos comandos.

⇒ Fluxogramas: descrever comportamento e modelar estruturas


para linguagem não estruturada como Assembly.

⇒ Máquina de Estados: geralmente utilizada para descrever no


domínio de controle sistema. Consiste em monitorar as entradas
reagindo através da atuação nos elementos de saída.

⇒ Orientação a Objetos: provê mecanismos de quebra sistemas


complexos em pequenas peças bem definidas. 9
Introdução

Modelamento do sistema

• Na prática os sistemas são descritos utilizando uma combinação


de modelos.

• É importante observar que até o momento nenhuma linha de


código foi escrita.

10
Introdução
Modelos X Linguagem
• Os modelos computacionais têm como principal papel a descrição
do comportamento do sistema, enquanto as linguagens são
responsáveis pela codificação destes modelos.

11
Introdução
Modelos X Linguagem
• Saindo do contexto computacional observamos a existência de
diversos modelos e linguagens.

• Neste exemplo uma receita pode ser entendida como um modelo no


contexto da culinária, é uma notação conceitual, consiste em um
conjunto de passos para fazer um prato.

• Suponha que a primeira instrução da receita seja colocar e bater


dois ovos em uma tigela. Isto pode ser escrito em Português! 12
Introdução
Modelos X Linguagem

• Podemos destacar três fatos importantes:

1 – A instrução “colocar e bater dois ovos em uma tigela” pode ser


escrita nas demais linguagens: Inglês e Japonês;
2 – Uma linguagem (ex: Português) pode traduzir diferentes
modelamentos: Poesia e História;
3 – Uma linguagem pode traduzir um modelo de forma mais apropriada
que a outra. Ex: No caso de uma poesia o uso da palavra Saudade só
13
seria possível no Português.
Introdução
Modelos X Linguagem
• Vamos retornar a computação utilizando o Pseudocódigo como
exemplo. Suponha que tenhamos seguinte seqüência de passos:
iniciar uma variável com 10 e em seguida somar 2.
• Por meio da linguagem “C” podemos codificar tais passos.

• Vamos agora aplicar os três fatos destacados no exemplo da receita:


1 – Esta mesma instrução pode ser escrita nas demais linguagens:
C++ e Java;
2 – Uma linguagem pode traduzir diferentes modelamentos:
Máquina de Estados e Fluxo de Dados e
3 – Uma linguagem pode traduzir de forma mais apropriada um 14 tipo
de modelamento que a outra.
Introdução
Modelos X Linguagem Modelar o funcionamento de um elevador
• Vamos ao nosso primeiro
modelamento utilizando três técnicas
distintas: Texto, Pseudocódigo e
Máquina de Estados.
• Texto: “Mover o elevador para
cima ou para baixo conforme
solicitação interna ou externa. Uma
vez atingido o andar da solicitação,
abrir a porta por um período de 10s.
A porta ficará aberta até que uma
nova solicitação seja feita. Garantir
que a porta nunca se abrirá estando
o elevador em movimento. A direção
do movimento só será alterada caso
uma solicitação de maior prioridade
ocorra. ...”
15
Introdução
Modelos X Linguagem
• Pseudocódigo:
Entradas: int andar, bit SAndar1,...,SAndarN-1, bit DAndar2,..., DAndarN;
Saídas: bit sobe, desce, abrir;
Variável : int comando;
Início
Sobe=desce=0,abrir=1;
RepitaParaSempre
Início
Enquanto (comando = andar) espera;
Se (comando>andar)
sobe=1;
Senão
desce=1;
Enquanto (comando ≠ andar) mantém movimento;
sobe=desce=0;
abrir=1;
espera 10s;
Fim 16
Fim
Introdução
Modelos X Linguagem
• Máquina de Estados:
Comando > Andar

Comando = Andar
SOBE

Comando > Andar

Tempo > 10s


PARAR/ Tempo < 10s
Comando = Andar PARADO
ABRIR

Comando < Andar

BAIXO
Comando = Andar

Comando < Andar 17


Introdução
Modelos X Linguagem
• Foram apresentadas três formas distintas de modelamento de um
mesmo problema.

• Textual
 Descrição com palavras de todos os detalhes do problema;
 Não é possível olhar o texto e extrair a primeira vista qualquer
conclusão do mesmo sem que seja feita a sua leitura por completo;
 Modelagem mais comum para o cliente que é o responsável pela
solicitação do sistema.

• Pseudocódigo
 Traz a forma textual descrita através de passos seqüenciais;
 Os passos são informações extraídas do texto e transformados em
comandos sequenciais;
 Os comandos podem ser interpretados pelo projetista, mas o
cliente não é familiarizado com tal modelamento. 18
Introdução
Modelos X Linguagem

• Máquina de estados

 Abstrai a interpretação do texto e apresenta de forma gráfica o


comportamento do sistema.
 Alguns detalhes de implementação podem ser suprimidos, evitando
carregar o diagrama.

 Aproxima o projetista do cliente.

 Possibilita o cliente, desconhecedor de detalhes técnicos, validar sua


solicitação junto ao projetista (Custo).

 Permite ao projetista gerar código com base no modelo gráfico


aprovado pelo cliente.

19
Introdução
Modelos X Linguagem

• Em função da importância do modelamento de sistemas


estudaremos, a partir de agora, as máquinas de estados.

• Isto é importante, pois criaremos sistemas com menores chances de


falhas e que nos permita implementar de forma menos traumática
mudanças e manutenções.

• Embora o exemplo apresentado nos leve a crer que a utilização de


máquinas de estado esteja vinculada a projeto de software, isto não é
verdade. Para projetos de hardware também é uma ferramenta de
fundamental importância.

• Começaremos desta forma aplicá-la no hardware, que já nos é


familiar, para que em seguida possamos aplicá-la no software.

20
Introdução
Modelando o hardware
• Nos circuitos combinacionais, suas saídas são exclusivamente
dependentes do estado de suas entradas.

• A saída só não é uma resposta instantânea das alterações na


entrada devido aos atrasos de propagação dos sinais elétricos
21
necessários para a execução da lógica.
Introdução
Modelando o hardware
• A partir de agora estaremos modelando situações onde não só as
condições das entradas do nosso circuito determinarão a sua saída.

• Teremos um segundo elemento, denominado condição anterior, que


juntamente com as entradas determinarão a saída do nosso sistema.
22
Introdução
Modelando o hardware
• Para que possamos utilizar a condição anterior será necessário
armazenar esta condição e isto só será possível através da utilização
de memórias.

• Ao aplicarmos esta técnica estaremos criando como modelo final


uma máquina seqüencial. 23
Máquina de Estados Finitos

3.1 – Introdução
3.2 – Máquina Seqüencial
3.3 – Máquina de Estados Finitos (FSM)
3.4 – Controladores Hardware
3.5 – Controladores Hardware/Software

24
Máquina Seqüencial

• A máquina seqüencial, por possuir memória, é capaz de guardar a


história do ocorrido com o circuito.

 Os sistemas não possuem memória infinita.


 É necessário saber qual é o tamanho mínimo de memória para
guardar a história deste sistema.

• Vamos a um exemplo prático.


Suponha que você foi contratado para acompanhar o comportamento
de uma fileira de cinco lâmpadas, sendo cada uma delas identificada
por um número de 1 a 5. Estas lâmpadas estão conectadas a um
circuito que fará as lâmpadas piscar, mas com a restrição de que
apenas uma única lâmpada piscará por vez.

• Sua tarefa será detectar se a seqüência: 1, 2, 3, 4 e 5 ocorreu;


• Se positivo, você deverá apertar o botão de alarme por um breve
25
intervalo de tempo.
Máquina Seqüencial
• Para qualquer outra seqüência devemos ignorar o ocorrido
anteriormente.
Se por exemplo ocorrer à seqüência 1, 2, 5, podemos concluir
que o aparecimento do 5 após o 2 cancelou todo o ocorrido
anteriormente e que agora devemos esperar que um novo 1 ocorra
para que possamos considerar o início de uma nova seqüência.
• Imagine que você trabalhou até o final do turno e a seqüência não
tenha ocorrido e você será substituído por uma outra pessoa. Quais
serão as possíveis mensagens que você poderá transmitir ao outro
funcionário?
• São seis as possíveis situações:
•A seqüência ainda não começou;
•A seqüência começou e a última lâmpada que piscou foi a 1;
•A seqüência começou e a última lâmpada que piscou foi a 2;
•A seqüência começou e a última lâmpada que piscou foi a 3;
•A seqüência começou e a última lâmpada que piscou foi a 4;
•A seqüência começou e a última lâmpada que piscou foi a 5;
26
Máquina Seqüencial

• Sabemos que um número muito grande de situações pode ser gerado


em nosso sistema, entretanto necessitamos guardar apenas as últimas
ocorrências para detectar a seqüência necessária.

• Desta forma se surgisse a seguinte seqüência: 1, 2, 3, 5, 4, 2, 4, 2, 3


bastaria guardar que a seqüência ainda não começou e não o
conjunto das ocorrências anteriores.

• Se fossemos automatizar este sistema seria necessário montar um


circuito capaz de guardar o código dos números de 1 a 5 e um outro
código que poderia ser 0, para indicar que a seqüência ainda não
começou.

• Nesta situação como temos 6 possibilidades diferentes bastaria


alocar três flip-flops, ou seja, 23 para armazenar a história do sistema.

27
Máquina Seqüencial
• A máquina seqüencial pode ser imaginada como um dispositivo que
executa uma tarefa de forma ordenada baseada em um conjunto de
condições.

• A estas condições damos o nome de estados e é por esta razão que


estas máquinas são mais popularmente conhecidas como máquina de
estados.

28
Máquina Seqüencial
FSM para o problema das lâmpadas

Como escrever e implementar uma FSM? 29


Máquina Seqüencial

• As máquinas seqüenciais, são classificadas como sistemas


síncronos e assíncronos. O que define tal classificação é o instante de
tempo em que às entradas e saídas são consideradas.

• Em um sistema assíncrono, também conhecido como sistema de


modo fundamental, a variável tempo é contínua, de forma que os
sinais de entrada e saída são definidos em cada instante de tempo.
Geralmente são sistemas mais difíceis de descrever, analisar e projetar
do que os sistemas síncronos.

• Nos sistemas síncronos as entradas e saídas são consideradas em


instantes de tempo discretos, sendo este tempo definido por um pulso
de um sinal de sincronização chamado de relógio (clock).

30
Máquina Seqüencial
Assíncrono X Síncrono

31
Máquina Seqüencial
Assíncrono X Síncrono

• Uma vez que a maioria das implementações usadas atualmente é


síncrona e desejamos especificar problemas no contexto de sistemas
microprocessados, que são máquinas síncronas, limitaremos nossos
estudos a este caso.

• As máquinas sequências síncronas seguem um conjunto de passos


de forma repetida e finita o que caracteriza a nomenclatura do tópico
em estudo (Máquina de Estados Finitos - FSMs), mas também
podemos encontrar situações em que os estados não se repetem.

32
Máquina de Estados Finitos

3.1 – Introdução
3.2 – Máquina Seqüencial
3.3 – Máquina de Estados Finitos (FSM)
3.4 – Controladores Hardware
3.5 – Controladores Hardware/Software

33
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Para falarmos de FSM vamos utilizar o modelo compacto do
diagrama como referência geral para nossas implementações.

• Neste modelo é bom ressaltar que a entrada X é opcional e


poderemos modelar sistemas com ou sem sinal de entrada. 34
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Uma segunda consideração importante é que o modelamento das
FSMs são feitos através de um diagrama de estados.

• Cada estado é representado por um círculo ou elipse e cada


transição por uma seta.

35
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• A elipse/círculo atribuímos o nome do estado enquanto a seta
atribuímos o nome do evento que motivou a transição entre estados.

• O evento “a” poderá estar vinculado a uma das entradas do sistema.

• Se o evento “a” é dependente de uma variável binária poderemos


dizer que:
Se a=1 então vá para o estado B.

36
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Podemos cair em situações que mais de um evento possa causar a
transição de estados e poderíamos representar de duas formas
distintas.

• É importante ressaltar que uma transição de estado pode ocorrer


sem que haja um evento na entrada do sistema.

• Isto ocorre principalmente em sistemas que não possuem uma


entrada X conforme apresentado no modelo compacto . Nesta situação
teremos apenas um arco sem um rótulo associado a ele.

37
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Para representação da saída do sistema temos duas formas
distintas:

Saída Máquina de Moore Saída Máquina de Mealy

• Existem dois elementos, nem sempre presentes nos diagramas,


responsáveis pela delimitação do sistema.
• O círculo cheio indica o estado inicial.
• Também é possível representar uma condição
inicial da entrada, descrita no arco, que leva ao
estado inicial.
• Já a elipse dupla indica o estado final do diagrama. O
estado final é útil para identificar que um ciclo da
máquina foi atingido.
• Entretanto, existem situações em que as máquinas
38
são cíclicas e sem fim, sendo omitido o estado final.
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Vamos começar com um exemplo onde tenhamos que modelar um
sistema capaz de acionar um decodificador de duas entradas e que tem
nas suas saídas 4 lâmpadas conectadas. Este sistema deverá acionar
de formar seqüencial e cíclica as lâmpadas de número 0, 2, 1 e 3.

• Para modelar este sistema é fundamental identificar quais são os


sinais de entrada, saída e o número de estados necessários para
executar a tarefa desejada.

• Voltando ao modelamento na forma compacta iremos obter o seguinte


diagrama para o nosso sistema.

39
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• O sistema não possui entradas, tem duas saídas para o acionamento
do decodificador e dois sinais para geração do próximo estado.

Modelamento na forma compacta


SISTEMA
Z1
Z0
LÓGICA

A1 A0 S0 S1

MEMÓRIA

Relógio

40
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
• Adotando a máquina de Moore
para representar o sistema nós
chegaríamos ao seguinte
diagrama.
A/00

• Neste diagrama as arestas não apresentam nomes associados a


elas, pois o sistema não possui entradas, sendo o relógio
responsável pela transição entre os estados.
• São quatro estados distintos, representados pelas letras de A a D e
suas respectivas saídas irão informar ao decodificador qual lâmpada
será acesa naquele momento específico. 41
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
• Extraindo da FSM o circuito necessário para
sua implementação.

• Como são quatro estados distintos serão


necessários 2 bits para armazenar o estado
atual (A1Ao).
• Temos que nos preocupar com a lógica que garantirá o estado
seguinte da máquina (S1So) e os sinais para gerar as saídas (Z1Zo).
• Montaremos agora tabela verdade para que possamos identificar
qual é o circuito combinacional necessário para geração dos sinais.
EA ES SAÍDAS
A1 A0 S1 S0 Z1 Z0
0 0 0 1 0 0
0 1 1 0 1 0
1 0 1 1 0 1
1 1 0 0 1 1
42
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
EA ES SAÍDAS
A1 A0 S1 S0 Z1 Z0
0 0 0 1 0 0
0 1 1 0 1 0
1 0 1 1 0 1
1 1 0 0 1 1

• Obtendo as equações de saída:


S1 = A1’ A0 + A1 A0’

S0 = A1’ A0’ + A1 A0’ = A0’

Z1 = A 0

Z0 = A 1

43
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
• Criar um sistema que seja capaz de identificar um determinado
padrão de entrada. Este sistema receberá uma seqüência de bits e
deverá sinalizar através de uma saída, colocando-a em 1, caso
ocorra uma seqüência de três bits 1 consecutivos, caso contrário a
saída deve ficar em nível lógico baixo.
Modelamento na forma compacta

• Modelamento na forma compacta,


o sistema possui uma entrada X e
uma única saída Z para sinalizar a
ocorrência da sequência.

44
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore) 0

• Vamos montar a FSM cuja função é


detectar a seqüência 111.

0
• Este sistema é denominado
identificador de padrão, pois detecta a
ocorrência de um determinado padrão
de entrada no sistema.

• Muito utilizado em comunicação de


dados para identificação de caracter
de início e fim de quadro ou em
protocolo de software na recepção de
caractere de controle.
1 45
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
• Considerando a FSM obtida podemos observar a
existência de uma entrada X.
• Foram alocados quatro estados distintos sendo
necessários 2 bits para armazenar o estado atual (A1A0).
• Teremos que gerar o próximo estado da máquina (S1S0)
e o sinal para saída (Z).
ENTRADA EA ES SAÍDA
X A1 A0 S1 S0 Z
0 0 0 0 0 0
1 0 0 0 1 0
0 0 1 0 0 0
1 0 1 1 0 0
0 1 0 0 0 0
1 1 0 1 1 0
0 1 1 0 0 1
1 1 1 1 1 1
46
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore) 0

0
ENTRADA EA ES SAÍDA A/0

X A1 A0 S1 S0 Z 0 1
0 0 0 0 0 0
1 0 0 0 1 0 0
B/0

0 0 1 0 0 0 0
1
1 0 1 1 0 0
0 1 0 0 0 0 C/0
1 1 0 1 1 0
0 1 1 0 0 1 1

1 1 1 1 1 1
D/1

• Obtendo as equações de saída: 1

S1 = XA1’ A0 + XA1A0’ + XA1A0 = XA1’ A0 + XA1(A0’ + A0) = XA1’ A0 + XA1

S0 = XA1’ A0’ + XA1 A0’ + XA1A0 = XA1’ A0’ + XA1 (A0’ + A0) = XA1’ A0’ + X

Z = X’A1A0 + XA1A0 = A 1A 0
47
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
S1 = XA1’ A0 + XA1A0’ + XA1A0 = XA1’ A0 + XA1(A0’ + A0) = XA1’ A0 + XA1
S0 = XA1’ A0’ + XA1 A0’ + XA1A0 = XA1’ A0’ + XA1 (A0’ + A0) = XA1’ A0’ + X
Z = X’A1A0 + XA1A0 = A 1A 0 LÓGICA
Z

X
• Para os dois exemplos estudados
utilizamos o modelamento da máquina
de Moore.
• Observe que para os dois casos a
saída do sistema só depende do estado
atual. A1 A0 S0 S1
MEMÓRIA
SET
Q D

• As mudanças na entrada devem


Q CLR

primeiro afetar o estado do sistema Q


SET
D

antes que possa afetar a saída.


Q CLR

Relógio 48
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore)
• Ex1 – Faça o modelamento de um sistema contador de módulo 4 (0
a 3) apresentando os seguintes itens:
 O diagrama do modelo compacto com suas entradas e saídas;
 A FSM e
 Tabela verdade com as equações do próximo estado e das
saídas.
• Ex2 – Altere o modelamento do ex1 e insira uma entrada que em
nível lógico alto fará o sistema trabalhar no modo incremento e caso
contrário no modo decremento. Apresente os seguintes itens:
 O diagrama do modelo compacto com suas entradas e saídas;
 A FSM e
 Tabela verdade com as equações do próximo estado e das
saídas.
49
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Mealy)
• Vamos agora aplicar uma segunda abordagem que é a máquina de
Mealy. Neste caso a saída do sistema também sofrerá influência
direta do sinal presente na entrada do sistema.
• Identificando o padrão 111.

0/0

1/1 50
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Mealy)
• Considerando a FSM obtida podemos observar a
existência de uma entrada X.
• Foram alocados três estados distintos sendo
necessários 2 bits para armazenar o estado atual (A1Ao).
• Teremos que gerar o próximo estado da máquina (S1So)
e o sinal para saída (Z).
ENTRADA EA ES SAÍDA
X A1 A0 S1 S0 Z
0 0 0 0 0 0
1 0 0 0 1 0
0 0 1 0 0 0
1 0 1 1 0 0
0 1 0 0 0 0
1 1 0 1 0 1

51
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Mealy)
ENTRADA EA ES SAÍDA
X A1 A0 S1 S0 Z
0 0 0 0 0 0
1 0 0 0 1 0
0 0 1 0 0 0
1 0 1 1 0 0
0 1 0 0 0 0
1 1 0 1 0 1
• Obtendo as equações de saída:
S1 = XA1’ A0 + XA1A0’
S0 = XA1’ A0’
Z = XA1A0’
• Na Máquina de Mealy, na maioria dos casos, será mais econômica.
Menos estados implica em menos componentes.
• Entretanto, na Máquina de Moore seus estados extras e a
independência das saídas tornam mais fácil acompanhar a operação
do sistema quando se caminha pelos estados. Facilita o processo de
52
depuração.
Máquina de Estados Finitos (FSM)
Máquina de Moore X Mealy
• Suponha agora que tenhamos que descrever a máquina de estados
que receba uma seqüência que contenha apenas as letras “a” e “b” e
coloque em sua saída o valor 1 se o número de “b” recebidos for par e
“0” caso contrário.
Moorea Mealy

a/1
a
A/1

a/0
a

• Podemos observar, neste caso, que tanto utilizando Moore ou


Mealy obtivemos uma solução muito parecida, com apenas dois
estados distintos. 53
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Mealy)
• Ex3 – Refaça o ex1 aplicando Mealy

• Ex4 – Refaça o ex2 aplicando Mealy

• Ex5 – Faça o modelamento de um sistema detector da sequência


10010 proveniente da entrada do circuito. A saída permanecerá em
nível lógico baixo até que esta sequência seja detectada na entrada.
Apresente os seguintes itens:
 O diagrama do modelo compacto com suas entradas e saídas;
 A FSM e
 Tabela verdade com as equações do próximo estado e das
saídas.

54
Máquina de Estados Finitos (FSM)
Levantando comportamento da FSM
• Até o momento estamos implementado sistemas partindo de
problema apresentado. Entretanto, partindo da FSM, mesmo que
não tenhamos a descrição do problema é possível extrair da mesma
qual a lógica que se encontra descrita.
• Embora não seja este o alvo da FSM
podemos partir da mesma para compreender A
e implementar mudanças em um sistema.
• Suponha a seguinte FSM ⇒ b/p
a/p

• O primeiro passo é obter a tabela de


b/q B a/p
estados da FSM. Para isto vamos identificar
os elementos do diagrama: estados, entradas
a/p
e saídas.
• Temos três os estados: A, B e C.
C
• Uma única entrada que assume os valores: a e b.
b/p
• Uma única saída que assume os valores: p e q.

55
Máquina de Estados Finitos (FSM)
Levantando comportamento da FSM
A
Montando a tabela teremos ⇒
a/p
ENTRADA EA ES SAÍDA b/p
a A B p b/q B a/p
b A C q
a B B p a/p
b B A p
a C B p C
b C C p
b/p

• Convertendo esta tabela obtida para tabela lógica com as seguintes


considerações:
Entrada: a=0 e b=1;
Estados: A=00, B=01 e C= 10;
Saída: p=0 e q=1.

56
Máquina de Estados Finitos (FSM)
Levantando comportamento da FSM
Convertendo a tabela lógica para tabela verdade
ENTRADA EA ES SAÍDA
ENTRADA EA ES SAÍDA X A1 A0 S1 S0 Z
a A B p 0 0 0 0 1 0
b A C q 1 0 0 1 0 1
a B B p ⇒ 0 0 1 0 1 0
b B A p 1 0 1 0 0 0
a C B p 0 1 0 0 1 0
b C C p 1 1 0 1 0 0

• Obtendo as equações de saída:


S1 = XA1’A0’ + XA1A0’

S0 = X’A1’A0’ + X’A1’A0 + X’A1A0’ = X’A1’A0’ + X’A0 (A1’+ A1) = X’A1’A0’ + X’A0

Z = XA1’A0’

57
Máquina de Estados Finitos (FSM)
Levantando comportamento da FSM
b
a c
ENTRADA EA ES SAÍDA
A/0
b, c
B/1 a A A 0
b A B 0
c A B 0
a B C 1
a a
b c b B A 1
c B B 1
a C C 1
b
D/0 C/1 b C D 1
c a c C A 1
• Novamente vamos é obter a tabela a D A 0
de estados lógicos da FSM. b D B 0
c D C 0
• Temos quatro estados: A, B, C e D.

• Uma entrada que assume os valores: a, b e c.


58
• Uma única saída que assume os valores: 0 e 1.
Máquina de Estados Finitos (FSM)
Levantando comportamento da FSM
Convertendo a tabela lógica para tabela verdade
EA ES SAÍDA
ENTRADA EA ES SAÍDA X1 X0 A1 A0 S1 S0 Z
a A A 0 0 0 0 0 0 0 0
b A B 1 0 1 0 0 0 1 0
c A B 1 1 0 0 0 0 1 0
a B C 1
0 0 0 1 1 0 1
b B A 0
⇒ 0 1 0 1 0 0 1
c B B 1
a C C 1
1 0 0 1 0 1 1
b C D 0 0 0 1 0 1 0 1
c C A 0 0 1 1 0 1 1 1
a D A 0 1 0 1 0 0 0 1
b D B 1 0 0 1 1 0 0 0
c D C 1 0 1 1 1 0 1 0
1 0 1 1 1 1 0
• Obtendo as equações de saída:
S1 = X1’X0’A1’A0 + X1’X0’A1A0’ + X1’X0A1A0’ + X1X0’A1A0
S0 = X1’X0A1’A0’+X1X0’A1’A0’+X1X0’A1’A0+X1’X0A1A0’+X1’X0A1A0+X1X0’A1A0
Z = X1’X0’A1’A0+X1’X0A1’A0 +X1X0’A1’A0+X1’X0’A1A0’+X1’X0A1A0’+X1X0’A1A0’
Z = A1’A0 ( X1’X0’ + X1’X0 + X1X0’ ) + A1A0’ ( X1’X0’ + X1’X0 + X1X0’ )
• Qualquer valor de X1X0 ≠ 11 ⇒ Z = A1’A0 + A1A0’
59
• O que torna Z independente de X1X0.
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Ex6 – Encontre as expressões lógicas de saída e mostre qual será a
saída produzida pelo sistema caso ocorra a seguinte sequência de
entrada 00110B.

60
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Ex7 – Encontre as expressões lógicas de saída e mostre qual será a
saída produzida pelo sistema caso ocorra a seguinte entrada
01011B.

61
Máquina de Estados Finitos (FSM)
Somador completo
• Vamos construir uma FSM que modele um somador completo de dois
números binários.
• Vamos identificar o que é necessário saber para o modelamento deste
sistema:
• Possíveis valores obtidos em operações binárias:
0 0 1 1
+0 +1 +0 +1
0 1 1 10
• Tratando-se de um somador completo é necessário conhecer se a
operação executada no período de clock anterior (t-1) gerou vai um (carry).
Neste caso, o carry influenciará no resultado da operação.
• Para guardarmos o carry utilizaremos o próprio estado da máquina.

62
Máquina de Estados Finitos (FSM)
Somador completo
• Neste sistema estamos trabalhando com duas entradas (dois operandos) e
• Uma saída que corresponderá ao resultado.

00 01,10

11 11

00
CARRY1/ 01,10
0

11

63
• Colocando a FSM em operação
Máquina de Estados Finitos (FSM)
Somador completo
• Efetuando a operação: 0110
+ 1100

00 01,10

1 11
11 11 0110 0110 0110 0110
1100
____ 1100
____ 1100
____ 1100
____
0 10 010 0010
00
CARRY1/ 01,10
0

11

64
Máquina de Estados Finitos (FSM)
Somador completo
• Efetuando a operação: 1
0111 1000
+ 1100 1000
???? 0000
00 01,10 11 11 11 11
0111 0111 0111 0111
11 11 1100
____ 1100
____ 1100
____ 1100
____
0 00 100 0010

00
CARRY1/ 01,10
0

11
65
Máquina de Estados Finitos

3.1 – Introdução
3.2 – Máquina Seqüencial
3.3 – Máquina de Estados Finitos (FSM)
3.4 – Controladores Hardware
3.5 – Controladores Hardware/Software

66
Máquina de Estados Finitos (FSM)
Controladores Hardware
• Até o momento projetamos uma série de FSMs as quais daremos
o nome de controladores. Pois um controlador é um sistema de
estados finitos que produz sinais de controle à medida que os
estados são percorridos.
• Podemos classificar os controladores em duas categorias:
autônomos e não autônomos.
• Os autônomos são aqueles que em as transições de estados
seguem uma seqüência fixa, independente de qualquer entrada.
Estas transições são determinadas pelo clock.
A/0 B/0

CLOCK

SAÍDA

D/1 C/0
67
Máquina de Estados Finitos (FSM)
Controladores Hardware
• Já os não autônomos dependem também das entradas externas.

00 01,10

11 11

00
CARRY1/ 01,10
0

Somador completo
68
Máquina de Estados Finitos (FSM)
Controladores Hardware
• O projeto de controladores não é uma tarefa trivial, pois temos
que identificar as entradas, as possíveis transições, os estados da
máquina e as saídas do controlador.
• Nesta etapa podemos especificar estados redundantes, que
aumentarão o número de portas do sistema, entretanto, existem
técnicas que nos permitirão suprimi-los em uma etapa posterior do
projeto.
• Ao término do projeto lógico da FSM com as respectivas equações
responsáveis pela geração do próximo estado e dos sinais de saída,
passamos para o projeto físico que seria a especificação e
montagem do hardware.

• Este processo tem sido facilitado a cada dia, pois existem


ferramentas de software que nos permite não só simular a FSM
projetada como também permite o seu mapeamento em dispositivos
lógicos programáveis.
69
Máquina de Estados Finitos (FSM)
Controladores Hardware
• Embora os softwares responsáveis por tal mapeamento ainda
apresentem preços elevados existem ferramentas que codificam a
FSM utilizando a linguagem HDL (Hardware Description Language)
e gera a configuração de gravação do dispositivo programável.

• A utilização desta técnica para o desenvolvimento de sistemas


seqüências nos possibilita um desenvolvimento rápido e a geração
de sistemas confiáveis, com menor probabilidade de falhas.

• Passamos agora a desenvolver o nosso próprio hardware, ou seja,


temos agora um circuito customizado.

• Este circuito poderá ser comercializado a fim de que seja


integrado a sistemas maiores, desenvolvendo o seu papel
específico, assim como utilizamos uma porta lógica de um circuito
digital.
70
Máquina de Estados Finitos (FSM)
Controladores Hardware - Ferramentas de
Modelamento e programação de Dispositivos Lógicos

• Esquemático
• HDL (Linguagem de Descrição de Hardware)
• Máquina de estados 0/0 1/0
Process(d,clk) Q0
Begin
if clk='1' then 0/0 Q1
Q<=d; 0/0
end if;
end Process; Q2 1/0

1/1

71
Máquina de Estados Finitos

3.1 – Introdução
3.2 – Máquina Seqüencial
3.3 – Máquina de Estados Finitos (FSM)
3.4 – Controladores Hardware
3.5 – Controladores Hardware/Software

72
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Vamos incorporar recursos de software ao hardware e aplicá-los
de forma integrada aos controladores.
• Vamos começar com um exemplo onde modelaremos um
controlador que tem como papel o acionamento de um semáforo
com suas respectivas temporizações.
• Considerando o diagrama a seguir:

• Vamos fazer nossa análise utilizando as mesmas técnicas


estudadas até o momento.
73
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Obteremos a tabela de estados da FSM. Para isto vamos
identificar os elementos do diagrama: estados, entradas e saídas.

• Nenhuma entrada, pois neste caso o


pedestre não pode solicitar passagem,
trata-se de um controlador autônomo.

• Temos três estados:


A – Carro passando (Verde)/Pedestre parado (Vermelho)
B – Carro parando (Amarelo)/Pedestre parado (Vermelho)
C – Carro parado (Vermelho)/Pedestre passando (Verde)
• Temos duas saídas distintas:
Indicador do pedestre (Vermelho ou Verde) e
Indicador do veículo (Vermelho, Amarelo ou Verde). 74
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• A FSM para esta especificação.
Estado/Indicador Carro, Indicador Pedestre
A / Carro passando (Verde),Pedestre parado (Vermelho)
B / Carro parando (Amarelo),Pedestre parado (Vermelho)
C / Carro parado (Vermelho),Pedestre passando (Verde)

C/VM,VD

• Obtendo as expressões de saída ⇒


75
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Considerando a FSM obtida podemos
observar a inexistência de entrada.
• Foram alocados três estados distintos sendo
necessários 2 bits para armazenar o estado atual (A1A0).
• Teremos que gerar o próximo estado da máquina (S1S0) e
os sinais para as saídas de Veículo e Pedestre.
• Assumindo as seguintes condições para o estado e saídas:
Saídas Estados
Vermelho 00 A 00
Verde 01 B 01
Amarelo 10 C 10
EA ES SAÍDAS
Carro Pedestre
A1 A0 S1 S0
C1 C0
0 0 0 1 0 1 0
0 1 1 0 1 0 0
76
1 0 0 0 0 0 1
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
EA ES SAÍDAS
Carro Pedestre
A1 A0 S1 S0
C1 C0
0 0 0 1 0 1 0
0 1 1 0 1 0 0
1 0 0 0 0 0 1

• Obtendo as equações de saída:


S1 = A1’A0
S0 = A1’A0’
C1 = A1’A0
C0 = A1’A0’
P = A 1A 0’
• Embora as equações descrevam o funcionamento do circuito o
semáforo não funcionará corretamente, pois temos tempos distintos
associados ao vermelho, verde e amarelo e isto não foi modelado.

• Seria necessário definir a base de tempo do sistema e inserir


estados de atrasos para que os tempos fossem computados
corretamente. 77
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Para solucionar tais problemas podemos inserir contadores que
nos permitirão introduzir os atrasos desejados, entretanto as FSMs
trabalham basicamente com entradas/saídas booleanas e estados.

• Nesta nova proposta teremos que inserir variáveis capazes de


acumular as contagens parciais. As máquinas com capacidade de
armazenamento de valores são conhecidas como FSM estendida ou
também como FSMD, onde o D significa Datapath.

• Nestes sistemas mais complexos as entradas e saídas irão


manipular diversos tipos de dados e as funções de transição
dependerão de uma aritmética diferenciada do que vínhamos
fazendo até o momento.

• Na FSMD as transições não mais dependerão só do clock e


entradas, mas também do conteúdo destas variáveis.
Vamos então reescrever a FSM do semáforo utilizando o recurso
das variáveis de uma FSMD.
78
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Vamos então reescrever a FSM do semáforo utilizando o recurso
das variáveis de uma FSMD. tAT > 0 tAT > 0
FSM

tAT = 55

tAT > 0
• Novo elemento denominado tAT, que irá definir o tempo de atraso.
• Em cada um dos estados será executada uma operação de
decremento em tAT a cada pulso de clock do sistema e só haverá
transição para o novo estado caso tAT=0 e não mais a cada pulso 79
de
clock.
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Inserindo uma entrada para pedido de passagem.

tAT > 0 tAT > 0

tAT = 55 tAT = 5
A/VD,VM B/AM,VM

tAT = 60

tAT = 55

C/VM,VD

tAT > 0

80
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Estes tipos de controladores podem ser implementadas somente por
hardware, entretanto a inserção de software é cada dia mais presente.

• Vantagens da solução por software:


• Não demanda a inserção de hardware para solucionar problemas;
• Permite alteração do sistema sem alteração no hardware;
• Baixo custo e
• Grande número de microcontroladores (MCU), onde existirá um
adequado para cada tipo de aplicação.

• Isto propicia um ganho no tempo considerável no desenvolvimento


do hardware, pois só serão necessários os projetos dos circuitos de
potência, pois os circuitos de controle lógico já estão implementados.

81
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software

• Vamos a um novo exemplo, só que neste caso iremos trabalhar


identificando algumas etapas que ocorrem durante o projeto de um
sistema.
• Etapa 1 - Solicitação
• Etapa 2 – Descrição
• Etapa 3 – Modelamento
• Etapa 4 – Refinamento

• Etapa 1 - Solicitação: Suponha que um cliente solicite a


implementação de uma máquina automática de vendas de
refrigerantes.

82
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software

• Etapa 2 – Descrição: Diante da solicitação caberá ao projetista


juntamente com o cliente montar uma descrição detalhada do
sistema e de suas funcionalidades. Esta máquina de refrigerantes
possui uma entrada para colocação de moedas. Ela aceita moedas
R$0,25, R$0,50 e R$1,00 e o custo do refrigerante é de R$1,50. A
máquina possui uma saída para troco outra para o refrigerante.

• A operação básica desta máquina é monitorar o depósito de


refrigerante interno e caso haja refrigerante ela deverá liberar a
entrada de moedas. Estando nesta condição a máquina irá
monitorar a entrada de moedas e calcular se valor depositado já
atingiu R$1,50. Se valor depositado na máquina for superior ao
preço do refrigerante a máquina deverá colocar o troco na sua
respectiva saída e em seguida liberar o refrigerante.

83
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Etapa 3 – Modelamento: Vamos identificar os elementos do
sistema: estados, variáveis, entradas e saídas.

• Estados:
A – Inicia
B – Esperando primeira moeda
C - Somando valor
D – Troco
E – Refrigerante
F – Falha coleta
G – Falha depósito

• Variáveis:
• Total  somatório do valor depositado e
• TempoColeta  Tempo máximo para inserção do dinheiro.
84
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Entradas:
• Sensor moeda e
• Sensor indicador da existência de refrigerante no interior da
máquina.
• Saídas:
• Dispositivo para coleta de moedas,
• Bandeja para troco (moedas) e
• Bandeja para colocação do refrigerante.

• Embora tenhamos listado previamente os elementos do sistema


(estados, variáveis, entradas e saídas) eles poderão sofrer alterações
durante o processo de construção da FSMD.

• Novas entradas e saídas poderão ser adicionadas de forma a


atender algum requisito secundário do sistema (sensor de
temperatura, indicador de alarme).
85
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Complexidade do controlador:
 Tabela verdade e lógica digital X solução por software.

TempoColeta=TEMPO

SOMANDO

86
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Testar o comportamento lógico da FSMD:
• Funcionamento básico e
• Simulação de condições de anormalidades provocadas pelo usuário.

• Recuperação de falhas:
• Na medida do possível, realizar de forma automática a detecção e
recuperação de falhas uma vez que a inoperância do sistema acarreta
prejuízo ao cliente.
• Validação do projeto:
• É de suma importância que ao término desta etapa o cliente
aprove o projeto.
• Qualquer mudança a partir deste momento implicará em atrasos
no projeto e conseqüente prejuízo ao projetista.
• Não estamos inviabilizando mudanças após esta etapa, mas uma
nova especificação sistema necessitará de uma renegociação de preço
e prazo. 87
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Etapa 4 – Refinamento: No desenvolvimento de uma FSMD
iremos identificar que muitas operações estão implícitas dentro de
um único estado e talvez fosse mais interessante descrevê-las em
detalhes.

• Em alguns casos seremos forçados a transformar um estado em


uma nova FSMD.

• Ao implementarmos este processo estaremos fazendo o


refinamento do sistema.

88
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Vamos aplicar o refinamento no estado Somando.

89
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Refinando o estado Somando.

SemMoeda E
TempoColeta>0 SOMANDO
ESPERA INICIA/
MOEDA/ PT_MOEDA=0
PT_TROCO=0 PT_REFRI=0
PT_TROCO=0

VALIDA
TAMANHO

TROCO/
PT_TROCO=1

• Estes refinamentos poderão ser implementados até atender o nível


de detalhamento desejado. 90
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
• Estando agora com o sistema especificado, com o nível de
detalhamento desejado, temos mais uma etapa antes de
codificarmos o nosso sistema, ou seja, antes de começarmos a
escrever o programa que irá executar cada um dos estados.

• Nossa tarefa agora é escrever o algoritmo de cada um dos


estados. Este será o assunto da próxima unidade.

91
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software

 Tranca eletrônica
•Este sistema possui um teclado com 10 dígitos numéricos cuja
entrada será liberada pela digitação de uma sequência de três
números.
• A abertura da tranca é realizado colocando nível lógico alto.
• O usuário terá um tempo máximo de 5s entre a digitação dos
números. Caso este tempo seja excedido um LED será ligado por
um tempo de 5s indicação falha na introdução da senha. Após
este tempo o sistema retornará ao estado de espera do primeiro
número da senha. Este mesmo procedimento será adotado caso
um dos dígitos da senha esteja incorreto.
• Por questão de segurança, para as duas situações de falha
(tempo/senha) o sistema irá contabilizar tais ocorrências e caso
sejam detectadas 3 falhas consecutivas o sistema irá manter a
trava fechada e irá ignorar a digitação de nova senha, até que o
sistema seja resetado.
92

Você também pode gostar