ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira...
Transcript of ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira...
![Page 1: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/1.jpg)
ENGA78 – Síntese de Circuitos Digitais 1
Máquina de Estados Finita
Wagner L. A. de Oliveira
![Page 2: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/2.jpg)
2
Como funciona uma máquina de vendas?
![Page 3: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/3.jpg)
3
Máquina de Estados Finita É um circuito sequencial capaz de
implementar um algoritmo em hardware
Conhecida por sua sigla em inglês FSM: Finite State Machine
FSM é um modelo de comportamento, formado por um número finito de estados, transições entre tais estados e ações
![Page 4: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/4.jpg)
4
Circuito da FSM
Decodificador de Próximo
Estado
Elementode
Memória
Decodifcadorde
SaídaEntradas Saídas
Clock
FSM de Moore (orientada a estados)
![Page 5: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/5.jpg)
5
Circuito da FSM FSM de Mealy (orientada a transições)
![Page 6: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/6.jpg)
6
Diagrama de estados Utilizado para descrever o
comportamento de um circuito sequencial
Formado por 2 tipos de elementos
Estado
Entradas/Saídas
EstadoSaídas
FSM de MooreFSM de Mealy
Entradas
![Page 7: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/7.jpg)
7
Variáveis de estado São informações internas da FSM
Sinalizam o estado atual da máquina
Exemplo: Uma máquina de 7 estados terá, pelo menos, 3 variáveis de estado
EstadosdeNúmeroInteiro log2
Estado de VariáveisdeNo.
![Page 8: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/8.jpg)
8
Variáveis de estado Há 3 formas de codificação de estados
Numeração Binária Sequencial One Hot Código Gray
![Page 9: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/9.jpg)
9
Variáveis de estado Há 3 formas de codificação de estados
Numeração Binária Sequencial• recomendada para FSMs com poucos estados
(até 4)• utiliza o menor número de Flip-Flops (FFs)• decodificador de próximo estado mais complexo,
uma vez que utiliza todos os FFs• exige maior cuidado na verificação de
temporização, devido a maior propensão à metaestabilidade
One Hot Código Gray
![Page 10: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/10.jpg)
10
Variáveis de estado Há 3 formas de codificação de estados
Numeração Binária Sequencial One Hot
• recomendada para FSMs entre 4 e 32 estados• número de bits (isto é, o número de variáveis)
é igual ao número de estados• para cada estado, um único bit é 1• utiliza o maior número de FFs• simplifica decodificadores (próximo estado / saída)• simplifica a verificação de temporização• opção default de ferramentas de geração
automática de FSMs para FPGA (Altera / Xilinx) Código Gray
![Page 11: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/11.jpg)
11
Variáveis de estado Há 3 formas de codificação de estados
Numeração Binária Sequencial One Hot Código Gray
• recomendada para FSMs acima de 32 estados• número de FFs igual ao da codificação sequencial• baixa propensão à metaestabilidade
(menor que One Hot)• aumento de complexidade (tamanho do circuito)
devido a contadores Gray
![Page 12: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/12.jpg)
12
![Page 13: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/13.jpg)
13
Tabela de estados É a transcrição do diagrama de estados
para a forma de tabela Permite encontrar as relações binárias
entre as informações de entrada, variáveis de estado e saídas
(obs.: considerando codificação sequencial ou codificação Gray)
2)entradas. estado de variáveis.(
.nono
tabeladalinhasdeNo
![Page 14: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/14.jpg)
14
Processo de Síntese de uma FSM
1. Definir a quantidade de estados, as entradas e as saídas Adotar uma convenção de nomenclatura Ex.: identificar variáveis de estado
por letras do começo do alfabeto e as entradas/saídas por letras do meio para o final do alfabeto
Ideal: usar nomes significativos
![Page 15: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/15.jpg)
15
Processo de Síntese de uma FSM
1. Definir a quantidade de estados, as entradas e as saídas
2. Definir a estrutura da FSM e desenhar o diagrama de estados Escolher entre Mealy / Moore
![Page 16: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/16.jpg)
16
Processo de Síntese de uma FSM
1. Definir a quantidade de estados, as entradas e as saídas
2. Definir a estrutura da FSM e desenhar o diagrama de estados
3. Preencher a tabela de estados Escolher a forma de
codificação de estados Calcular a quantidade de
variáveis de estado Associar estados à valoração
das variáveis de estado
![Page 17: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/17.jpg)
17
Processo de Síntese de uma FSM
1. Definir a quantidade de estados, as entradas e as saídas
2. Definir a estrutura da FSM e desenhar o diagrama de estados
3. Preencher a tabela de estados4. Calcular as expressões booleanas
dos decodificadores Próximo Estado Saída
![Page 18: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/18.jpg)
18
Processo de Síntese de uma FSM
1. Definir a quantidade de estados, as entradas e as saídas
2. Definir a estrutura da FSM e desenhar o diagrama de estados
3. Preencher a tabela de estados4. Calcular as expressões booleanas
dos decodificadores5. Desenhar o circuito
Definir um FF para cada variável de estado
![Page 19: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/19.jpg)
19
Processo de Síntese de uma FSM
1. Definir a quantidade de estados, as entradas e as saídas
2. Definir a estrutura da FSM e desenhar o diagrama de estados
3. Preencher a tabela de estados4. Calcular as expressões booleanas
dos decodificadores5. Desenhar o circuito6. Verificar os estados iniciais
Definir a situação dos sinais de CLEAR e PRESET dos FFs
![Page 20: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/20.jpg)
20
Exemplo
TANQUEBOMBA
Reservatório
HighLow
Sistema de Controle
BOMBA
Alarme
![Page 21: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/21.jpg)
21
Exemplo: Identificando as Variáveis
De estado 4 estados 2 variáveis de estado
• A e B
Entradas 2 entradas
• H (high) e L (low)
Saídas 2 saídas
• M (motor) e A (alarme)
![Page 22: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/22.jpg)
22
Exemplo: Fazendo o Diagrama de Estados (Modelo de Mealy)
Cheio
Vazio
EnchendoEsvaziando
HL/MA
11/00
01/0010/0111/01
01/00
00/0110/0111/00
00/0101/1010/01
01/10
00/1010/0111/01
00/00
![Page 23: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/23.jpg)
23
Exemplo: Definindo a Estrutura da FSMFSM de Moore (orientada a estados) Os FFs compõem o elemento de memória As saídas do DPE são as entradas do EM (entradas dos FFs) As saídas do EM (saídas dos FFs) são as entradas do DS
Decodificador de Próximo
Estado
Elementode
Memória
Decodifcadorde
SaídaEntradas Saídas
Clock
![Page 24: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/24.jpg)
24
Exemplo: Definindo a Estrutura da FSMFSM de Mealy (orientada a transições) Os FFs compõem o elemento de memória As saídas do DPE são as entradas do EM (entradas dos FFs) As entradas do circuito e as saídas do EM (saídas dos FFs) são
as entradas do DS
![Page 25: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/25.jpg)
25
Exemplo: Preenchendo a Tabela de Estados para Síntese
ESTADO ATUAL
ENTRADAS ESTADO FUTURO
SAÍDAS SAÍDAS DO D.P.E.
Variáveis de estado
Variáveis de Entrada
Variáveis de estado
Variáveis de Saída
Entradas dos FF
![Page 26: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/26.jpg)
26
Exemplo: Demais Tarefas
Após obter a tabela, use os conhecimentos referentes à construção de circuitos combinacionais Extraia as expressões do decodificador de saída e
do decodificador de próximo estado Simplifique tais expressões Desenhe o circuito correspondente
Por fim, defina o estado default dos sinais de CLEAR e PRESET dos FFs, de acordo com os estados iniciais
![Page 27: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/27.jpg)
27
Processo de Análise de uma FSM
1. Calcular a quantidade de estados a partir do total de FFs Cada FF corresponde a uma
variável de estado O total de variáveis de estado
é o total de FFs
![Page 28: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/28.jpg)
28
Processo de Análise de uma FSM
1. Calcular a quantidade de estados a partir do total de FFs
2. Identificar as entradas e saídas externas Separar as entradas e saídas de dados
das entradas de clock e RESET
![Page 29: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/29.jpg)
29
Processo de Análise de uma FSM
1. Calcular a quantidade de estados a partir do total de FFs
2. Identificar as entradas e saídas externas3. Levantar as expressões algébricas
das saídas dos decodificadores
![Page 30: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/30.jpg)
30
Processo de Análise de uma FSM
1. Calcular a quantidade de estados a partir do total de FFs
2. Identificar as entradas e saídas externas3. Levantar as expressões algébricas
das saídas dos decodificadores4. Preencher a tabela de estados
![Page 31: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/31.jpg)
31
Processo de Análise de uma FSM
1. Calcular a quantidade de estados a partir do total de FFs
2. Identificar as entradas e saídas externas3. Levantar as expressões algébricas
das saídas dos decodificadores4. Preencher a tabela de estados 5. Desenhar o diagrama de estados
Informar quais são os estados iniciais, caso existam, sinalizando a operação de RESET
![Page 32: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/32.jpg)
32
Tabela de Estados para Análise
ESTADO ATUAL
ENTRADAS SAÍDAS DO D.P.E.
ESTADO FUTURO
SAÍDAS
Variáveis de estado
Variáveis de Entrada
Entradas dos FF Variáveis de estado
Variáveis de Saída
![Page 33: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/33.jpg)
33
Exercício (Análise)
![Page 34: ENGA78 – Síntese de Circuitos Digitais1 Máquina de Estados Finita Wagner L. A. de Oliveira wagner@ecomp.uefs.br.](https://reader037.fdocument.pub/reader037/viewer/2022103113/552fc144497959413d8e0316/html5/thumbnails/34.jpg)
34
Exercício (Síntese) Projete uma máquina de estados que
funcione como um contador crescente ou decrescente de 0-9. Entradas
• START/STOP• Sentido de contagem (0=crescente; 1=decrescente)• RESET• CLOCK
SAÍDAS• Valor do contador