Buscar

Prévia do material em texto

Sistemas Digitais
Revisão: Máquina de 
Estados Finitos (FSM)
Professor Tiago Balen
Tópico do plano de ensino cobertos por esta aula:
Circuitos Sequenciais
• Um circuito sequencial pode ser estudado
e projetado do ponto de vista dos estados
que este pode assumir. Cada estado é
representado pelo valor binário presente
nos elementos de memória (FFs) que
compõem o circuito.
Contadores
Contadores
• Um circuito sequencial bastante útil é o
contador. Contadores podem ser utilizados
também como divisores de frequência.
• Contador de 3 BITs
• Conta de 0 a 7 (000, 001, 010, 011, 100, 101, 110, 111). Ao
analisar este circuito como uma máquina de estados diz-se
que este apresenta 8 estados. Pode-se então representar o
Diagrama ou Mapa De Estados do circuito em questão da
seguinte maneira:
Diagrama de estados de um 
contador de 3 BITs
Máquina de Moore:
Saída só depende do 
estado atual !!!!
Emanuel
Pencil
Emanuel
Pencil
Funcionamento
S0
S1
S2
Count_IN
Contador:
H
111
A
000 B
001
C
010
D
011E
100
F
101
G
110
0
0
0
Estado: A
Funcionamento
S0
S1
S2
Count_IN
Contador:
H
111 B
001
A
000
C
010
D
011E
100
F
101
G
110
1
0
0
Estado: B
Funcionamento
S0
S1
S2
Count_IN
Contador:
H
111
C
010
A
000
B
001
D
011E
100
F
101
G
110
0
1
0
Estado: C
Funcionamento
S0
S1
S2
Count_IN
Contador:
H
111
D
011
A
000
B
001
C
010
E
100
F
101
G
110
1
1
0
Estado: D
. . .
Memória !!!!
Funcionamento
S0
S1
S2
Count_IN
Contador:
H
111
E
100
A
000
B
001
C
010
D
011
F
101
G
110
0
0
1
Estado: E
. . .
Memória !!!!
O que é uma FSM?
• A máquina de estados é uma 
representação abstrata comportamental 
de um sistema digital que possui:
– Memória (obrigatório)
– Entradas (opcional – se o clock não for 
considerado entrada)
– Saídas (obrigatório)
O que é uma FSM?
• A máquina de estados é uma 
representação abstrata comportamental 
de um sistema digital que possui:
– Memória (obrigatório)
– Entradas (opcional – se o clock não for 
considerado entrada)
– Saídas (obrigatório)
– Utilidade (desejável)
Baixando o nível
Baixando o nível (de abstração)
S0
S1
S2
Count_IN
Contador:
D1 Q1
D2 Q2
D0 Q0
Função
de
Próximo
Estado
(comb.)
Função
de
Saída
(comb.)
Níveis de abstração
• Comportamental
• RTL (Register Transfer Level)
• Lógico (esquemático: portas lógicas)
• Elétrico (esquemático: transistores)
• Físico (arranjo geométrico de materiais 
condutores, isolantes e semicondutores)
Entradas externas
• Neste caso a única entrada do circuito é o próprio clock e
a cada evento deste (borda de subida ou descida,
dependendo dos Flip-Flops utilizados) há uma transição de
estado.
• Podemos ter casos em que as transições ocorram apenas
em determinadas condições de entrada. Ex.:
A
000
B
001
X
X
XYX+Y
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
A
000 B
001
C
010
D
011E
100
F
101
G
110
0
0
0
Estado: A
En
En
En
En
En
En
0
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
A
000 B
001
C
010
D
011E
100
F
101
G
110
0
0
0
Estado: A
En
En
En
En
En
En
0
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
A
000 B
001
C
010
D
011E
100
F
101
G
110
0
0
0
Estado: A
En
En
En
En
En
En
0
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
A
000 B
001
C
010
D
011E
100
F
101
G
110
0
0
0
Estado: A
En
En
En
En
En
En
0
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
A
000 B
001
C
010
D
011E
100
F
101
G
110
0
0
0
Estado: A
En
En
En
En
En
En
1
En
En
En
En En
En
En
En
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111 B
001
A
000
C
010
D
011E
100
F
101
G
110
1
0
0
Estado: B
En1
En
En
En
En
En
En
En
En En
En
En
En
En
Emanuel
Lápis
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
C
010
A
000
B
001
D
011E
100
F
101
G
110
0
1
0
Estado: C
En1
En
En
En
En
En
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
C
010
A
000
B
001
D
011E
100
F
101
G
110
0
1
0
Estado: C
En0
En
En
En
En
En
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
C
010
A
000
B
001
D
011E
100
F
101
G
110
0
1
0
Estado: C
En0
En
En
En
En
En
En
En
En
En En
En
En
En
Contador Habilitável (Enable)
S0
S1
S2
Count_IN
Contador:
H
111
C
010
A
000
B
001
D
011E
100
F
101
G
110
0
1
0
Estado: C
En0
En
En
En
En
En
En
En
En
En En
En
En
En
Baixando o nível... 
S0
S1
S2
Count_IN
Contador:
D1 Q1
D2 Q2
D0 Q0
Função
de
Próximo
Estado
(comb.)
Função
de
Saída
(comb.)
En
Tabela de Transição
Contador simples 
(sem Enable)
Entrdas da Função de p. 
Estado
Saídas da 
Função 
de Saída
Saídas da Função 
de p. Estado
Baixando o nível... 
S0
S1
S2
Count_IN
Contador:
D1 Q1
D2 Q2
D0 Q0
Função
de
Próximo
Estado
(comb.)
Função
de
Saída
(comb.)
En
Codificação dos Estados
O número de FFs necessários à implementação da máquina obedece a
seguinte relação:
NFF = log 2 NE
Onde NFF é o número de FFs necessários e NE é o numero de estados da
máquina.
Ou seja, para representar:
Até 2 estados precisamos de 1 FF
Até 4 estados precisamos de 2 FFs
Até 8 estados precisamos de 3 FFs
Até 16 estados precisamos de 4 FFs
...
Mealy x Moore
Moore
Saídas dependem apenas do estado atual e 
suas variações são síncronas
Mealy
As saídas dependem do estado atual e das 
entradas;
Como as entradas são assíncronas as 
saídas podem ter variações assíncronas
Mealy x Moore
Mealy
Exemplo 
Mealy x Moore
Exercício
2
0
Nome
Saída
Representação de cada estado (Moore):
1
0
0
0
B’
B
B’
B’
C∙B
É possível obter algum benefício 
usando Mealy?
Mealy x Moore
Máquinas de Mealy são mais econômicas 
em termos de registradores, pois podem ter 
menos estados que sua dual Moore
Porém podem apresentar Glitches na saída 
nas transições de entrada e o diagrama é 
mais difícil de interpretar
Baixando o nível (Mealy)... 
S0
S1
S2
Ck
D1 Q1
D2 Q2
D0 Q0
Função
de
Próximo
Estado
(comb.)
Função
de
Saída
(comb.)
In
1. Interpretação do problema
2. Diagrama de estados
3. Determinação do número de FFs
4. Codificação e nomeação dos estados
5. Tabela de transição
6. Determinação da função de próximo estado
7. Determinação da função de saída
8. Desenho do esquemático
Fluxo de Projeto (manual)
Síntese das 
funções 
lógicas
Considerações sobre projeto 
automatizado
• Linguagens de descrição de Hardware
– Descrições podem ser
• Comportamental
• Estrutural
• Mistas
• Ferramentas de simulação e geração 
automática de leiaute
FSMs na Disciplina
• Lembram do somador bit a bit projetado 
em Técnicas Digitais?
• FSMs serão a base da Parte de Controle 
(PC) de sistemas digitais compostos 
também por uma Parte Operativa (PO)
Exercício 1: Análise
Escreva a tabela de transição e desenhe o diagrama de estados do circuito 
abaixo, identificando as equações booleanas das funções de próximo estado e 
de saída.
D Q
E
Ck
S
Quantos estados o circuito pode representar?
Defina quais são os sinais de entrada e saída (quem é quem).
Parta do preenchimento da seguinte tabela:
“D” é função de “Q” e “E”
“S” é apenas função de 
“Q” (Maq. De Moore)
Emanuel
Lápis
Emanuel
Lápis
Emanuel
Lápis
Exercício 2: Projeto
Projetar o contador habilitável estudado nesta aula (3 BITs)
EmanuelCarimbo
Emanuel
Texto digitado
https://www.youtube.com/watch?v=6e8oV2blkGs 
Emanuel
Lápis
Emanuel
Lápis
Emanuel
Lápis
Emanuel
Lápis
Emanuel
Lápis
Exercício 3: Projeto
Projetar um contador simples que conta apenas os números impares: 1, 3, 5 e 7
Emanuel
Carimbo
Exercício 4: Projeto
Projetar um circuito que terá como entrada um push-button e como saída 3 LEDs.
Quando o botão for pressionado uma vez o circuito será ligado, sendo que para 
desligar o circuito o botão deve ser pressionado novamente (Modo Toggle).
Quando o circuito estiver ligado os 3 LEDS devem piscar alternadamente no 
sentido horário (apenas um LED ligado por vez).
Emanuel
Texto digitado
Mesmo passo a passo do exemplo 3, porém não sei como inclur o botão
Tabela de Excitação 
Q Q+1 D 
0 0 0 
0 1 1 
1 0 0 
1 1 x 
 SISTEMAS DIGITAIS - PROJETO DE UM CONTADOR DE 3 BITS COM ENABLE 
Saídas 
D0 C EN 
D1 B (EN.C) 
D2 A (EN.B.C) 
ESTADO ATUAL 
 
PRÓXIMO ESTADO 
Nº EN A B C D2 D1 D0 
1 0 0 0 0 0 0 0 
2 0 0 0 1 0 0 1 
3 0 0 1 0 0 1 0 
4 0 0 1 1 0 1 1 
5 0 1 0 0 1 0 0 
6 0 1 0 1 1 0 1 
7 0 1 1 0 1 1 0 
8 0 1 1 1 1 1 1 
9 1 0 0 0 0 0 1 
10 1 0 0 1 0 1 0 
11 1 0 1 0 0 1 1 
12 1 0 1 1 1 0 0 
13 1 1 0 0 1 0 1 
14 1 1 0 1 1 1 0 
15 1 1 1 0 1 1 1 
16 1 1 1 1 0 0 0

Mais conteúdos dessa disciplina