Graduação em Engenharia Eletrônica Universidadee Federal de Itajubá IESTI Máquinas de Estados Finitos de Paula Rodrigues
Contexto Aplicações dos Flip-flops síncronos Armazenamento de dados Q Transferência de dados CLK Q Q 1 2 3 4 Contadores CLK Q Máquinas de estado A B C N D
O que são? Máquina de Estados Finitos (FSM) 0 1 m-1 MEF (FSM) Z 0 Z 1 Z n-1 Q Q Q Q Circuito combinacional Circuito combinacional Circuito combinacional A F B E C D
O que são? Máquina de Estados Finitos (FSM) A F B D E A D Levar a zaída Z a 0 Levar a zaída Z a 1 C Estado Condição que demarca o momento presente Transição Indica uma mudança condicional de estado Ação Atividade a ser realizada ao se estar em um dado estado
Modelos Modelos de Máquinas de Estados Finitos Moore Circuito combinatório Q Elemento de memória q Circuito combinatório Z clk Z = f(q) Q = g(q,) Estado / saída Entrada
Modelos Modelos de Máquinas de Estados Finitos Mealy q Circuito combinatório Q Z Estado Entrada/saída Z = f(q,) Q = g(q,) Elemento de memória clk
Passos de projeto de Máquinas de Estado Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6 Passo 7 Levantar o diagrama de estados Levantar a tabelaa de estados Eliminar estados s equivalentes Designar os estados Elaborar o mapaa de transição de estados Obter o mapa de excitações dos flip-flops Obter as equações de transição dos FFs e saídas
Exercícios Exercício 1 Obter diagramas de estados em Mealy e também em Moore para um circuito que detecte paridade ímpar.
Exercícios Exercício 2 Obter diagramas de estados em Mealy e também em Moore para um circuito que detecte se o número de 1s recebidos é divisível por 3.
Exercícios Exercício 3 Projete uma máquina de estado que faça a contagem de 0 a 3. Tal máquina deve ter uma entrada que estabeleça a direção da contagem.
Exemplo 1: Detectar a seqüência 01 por meio de uma máquina de Mealy Detectar 01 Z CLK : Z: 0 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0
Exemplo 1: Detectar a seqüência 01 Passo 1 Levantar o diagrama de estados Estados: Diagrama por Mealy: 0/0 A Esperando 0 B Esperando 1 1/0 A B 0/0 1/1
Exemplo 1: Detectar a seqüência 01 Passo 2 Levantar a tabelaa de estados Estado atual Próximo estado q =0 Q/Z =1 Q/Z A B B/0 A/0 B/0 A/1
Exemplo 1: Detectar a seqüência 01 Passo 3 Passo 4 Detectar estadoss equivalentes Designar os estados Estado Valor A B 0 1
Exemplo 1: Detectar a seqüência 01 Passo 5 Elaborar o mapaa de transição de estados Estado atual Próximo estado q =0 Q/Z =1 Q/Z 0 1 1/0 0/0 1/0 0/1
Exemplo 1: Detectar a seqüência 01 Passo 6 Obter o mapa de excitações dos flip-flops Flip-flops: Tipo: 1 JK Estado atual q Próximo estado =0 Q/Z =1 Q/Z =0 J K Excitação =1 J K 0 1/0 1 1/0 0/0 0/1 1 - - 0 0 - - 1
Exemplo 1: Detectar a seqüência 01 Passo 7 Obter as equações de transição dos FFs e saídas Flip-flop JK Saída Z 0 1 0 1 0 1 q 0 1 0 1 - - q 0-1 0-1 q 0 0 0 1 0 1 J = K = Z = q
Exemplo 1: Detectar a seqüência 01 Z JQ Q K Q CLK
Exemplo 2: Detectar a seqüência 01 por meio de uma máquina de Moore Detectar 01 Z CLK : Z: 0 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0
Exemplo 2: Detectar a seqüência 01 Passo 1 Levantar o diagrama de estados Estados: Diagrama por Moore: 0 A Esperando 0 B Esperando 1 1 A 0 0 B 0 0 C Sinalizar 1 C 1 1
Exemplo 2: Detectar a seqüência 01 Passo 2 Levantar a tabelaa de estados Estado atual Próximo estado q =0 Q/Z =1 Q/Z A B C B/0 A/0 B/0 C/1 B/0 A/0
Exemplo 2: Detectar a seqüência 01 Passo 3 Passo 4 Detectar estadoss equivalentes Designar os estados Estado Valor A B C 0 0 0 1 1 1
Exemplo 2: Detectar a seqüência 01 Passo 5 Elaborar o mapaa de transição de estados Estado atual Próximo estado q 2 q 1 Z =0 Q 2 Q 1 =1 Q 2 Q 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0
Exemplo 2: Detectar a seqüência 01 Passo 6 Obter o mapa de excitações dos flip-flops Flip-flops: 2 Tipo: JK Estado atual Próximo estado Excitação q 2 q 1 Z =0 =1 Q 2 Q 1 Q 2 Q 1 =0 =1 J 2 K 2 J 1 K 1 J 2 K 2 J 1 K 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 0-1 - 0 - - 0-1 - 0 0-0 - 1 - - 0-1 - 1
Exemplo 2: Detectar a seqüência 01 Passo 7 Obter as equações de transição dos FFs e saídas Flip-flop JK 2 Flip-flop JK 1 Saída Z 0 1 00 0 0 0 1 00 - - 00 0 1 1 0 0 1 00 - - q 2 0 1 q 2 q 1 01 0 1 11 - - 10 - - 01 - - 11 1 1 10 - - 01 11 10 - - - - - - 01 0 0 11 0 1 10 - - q 1 0 0 0 1 0 1 J 2 = xq 1 K 2 = 1 J 1 = x K 1 = xq 2 Z = q 1 q 2
Exemplo 2: Detectar a seqüência 01 Z xq 1 V DD JQ Q FF 2 q 2 x JQ Q FF 1 q 1 K Q xq 2 K Q CLOCK
Exemplo 3: Detectar a seqüência 1111 Detectar 1111 Z CLK : Z: 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0
Exemplo 3: Detectar a seqüência 1111 Passo 1 Levantar o diagrama de estados Estados: Diagrama por Mealy: A Esperando 1 B Esperando 1 C Esperando 1 D Esperando 1 0/0 A 1/0 0/0 B 0/0 1/1 1/0 C 0/0 D 1/0
Exemplo 3: Detectar a seqüência 1111 Passo 2 Levantar a tabelaa de estados Estado atual Próximo estado q =0 Q/Z =1 Q/Z A B C D A/0 B/0 A/0 C/0 A/0 D/0 A/0 D/1
Exemplo 3: Detectar a seqüência 1111 Passo 3 Passo 4 Detectar estadoss equivalentes Designar os estados Estado A B C D Valor 00 01 10 11
Exemplo 3: Detectar a seqüência 1111 Passo 5 Elaborar o mapaa de transição de estados Estado atual Próximo estado q 2 q 1 =0 Q/Z =1 Q/Z 0 0 0 1 1 0 1 1 0 0/0 0 1/0 0 0/0 1 0/0 0 0/0 1 1/0 0 0/0 1 1/1
Exemplo 3: Detectar a seqüência 1111 Passo 6 Obter o mapa de excitações dos flip-flops Flip-flops: 2 Tipo: D Estado atual q 2 q 1 Próximo estado =0 Q 2 Q 1 /Z =1 Q 2 Q 1 /Z =0 D2 D1 Excitação =1 D2 D1 00 00/0 01 00/0 10 00/0 11 00/0 01/0 10/0 11/0 11/1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1
Exemplo 3: Detectar a seqüência 1111 Passo 7 Obter as equações de transição dos FFs e saídas Flip-flop D2 0 1 Flip p-flop D1 0 1 Saída Z 0 1 00 0 0 00 0 1 00 0 0 q 2 q 1 01 0 1 11 0 1 q 2 q 1 01 11 0 0 0 1 q 2 q 1 01 0 0 11 0 1 10 0 1 10 0 1 10 0 0 D 2 = (q 1 +q 2 ) D 2 = (q 1 +q 2 ) Z = q 1 q 2
Observações Estados equivalentes Estado atual Próximo estado Estado atual Próximo estado q =0 Q/Z =1 Q/Z =0 =1 q Q/Z Q/Z A A/0 B/0 B A/0 C/0 C A/0 E/0 D A/0 D/1 E A/0 D/1 A A/0 B/0 B A/0 C/0 C A/0 D/0 D A/0 D/1
Fim Obrig gado