Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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?
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
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.
5
Introdução
Sistemas Automatizados
• Para construir um sistema automatizado é necessário que seja
descrito o seu comportamento;
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.
7
Introdução
Modelamento do sistema
• Para especificar um sistema utilizamos um modelo computacional
responsável pela descrição do seu comportamento;
8
Introdução
Modelamento do sistema
⇒ Pseudocódigo: possui um conjunto de comandos, regras para
escrita e ordenação e execução dos comandos.
Modelamento do sistema
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.
Comando = Andar
SOBE
BAIXO
Comando = Andar
• 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
19
Introdução
Modelos X Linguagem
20
Introdução
Modelando o hardware
• Nos circuitos combinacionais, suas saídas são exclusivamente
dependentes do estado de suas entradas.
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
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.
28
Máquina Seqüencial
FSM para o problema das lâmpadas
30
Máquina Seqüencial
Assíncrono X Síncrono
31
Máquina Seqüencial
Assíncrono X Síncrono
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.
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.
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.
37
Máquina de Estados Finitos (FSM)
Modelamento com FSM
• Para representação da saída do sistema temos duas formas
distintas:
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.
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
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
44
Máquina de Estados Finitos (FSM)
Modelamento com FSM (Moore) 0
0
• Este sistema é denominado
identificador de padrão, pois detecta a
ocorrência de um determinado padrão
de entrada no sistema.
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
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
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
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
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
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
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.
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.
• 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:
C/VM,VD
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 = 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.
81
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
82
Máquina de Estados Finitos (FSM)
Controladores Hardware/Software
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.
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.
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
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