Eletrônica Digital II ELT013 Engenharia de Computação Aula 9 MÁQUINAS DE ESTADOS FINITOS ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 2 Máquinas de Estados Finitos (1) Procedimento formal para projeto de circuitos sequenciais Funcionamento do circuito pode ser descrito por meio de uma lista bem definida de estados Essa lista contem todos os estados possíveis do sistema e as condições necessárias para o sistema passar de um estado para outro Valores de saída que o sistema deve produzir para cada estado Essa definição se parece com que? ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 3 Máquinas de Estados Finitos (2) Funcionamento do circuito pode ser descrito por meio de uma lista bem definida de estados ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 4 Máquinas de Estados Finitos (2) Essa lista contem todos os estados possíveis do sistema e as condições necessárias para o sistema passar de um estado para outro ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 5 Máquinas de Estados Finitos (2) Essa lista contem todos os estados possíveis do sistema e as condições necessárias para o sistema passar de um estado para outro ELT013 - Eletrônica Digital II Valores de saída que o sistema deve produzir para cada estado Aula 9 - Máquinas de Estados Finitos 6 Máquinas de Estados Finitos Vs. Contadores (1) Oras, qual é a diferença de um contador para uma máquina de estados finitos? Diagrama de transição de estados contador ELT013 - Eletrônica Digital II Diagrama de transição de estados máquinas de estados Aula 9 - Máquinas de Estados Finitos 7 Máquinas de Estados Finitos Vs. Contadores (2) Máquinas de Estado Finitos (Finite State Machine – FSM) Controlam eventos Cada estado armazena informação sobre o passado Reflete mudanças desde a entrada em um estado no início do sistema, até o presente momento Contador Conta eventos Considerando essa comparação, qual a função do diagrama de estados da figura? Detectar uma sequência de três 1’s! ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 8 MODELO PARA MÁQUINAS DE ESTADOS FINITOS ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 9 Diagrama de Transição de Estados Para o exemplo mostrado: Quatro estados (A, B, C e D) Uma saída y y = 0 quando em A, B ou C y = 1 quando em D Uma entrada x Um clock (não mostrado) e um reset ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 10 Modelo Simplificado de FSM Lógica combinacional Circuitos combinacionais e portas lógicas Lógica sequencial Circuitos sequenciais com todos os flip-flops Clock e reset são aplicados neste bloco Present State – pr_state (entrada) Bits armazenados nos flip-flops no momento atual Next State – nx_state (saída) Bits a serem armazenados por eles na próxima transição nx_state é produzido na seção superior a partir do pr_state ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 11 Máquinas de Mealy Vs. Máquinas de Moore Máquina de Mealy A saída da máquina depende do estado armazenado na mesma e das entradas do sistema Projeto de máquinas de estado mais gerais Máquinas de Moore A saída depende somente do estado armazenado Ex.: contadores convencionais não tem nenhuma entrada (exceto clock) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 12 PROJETO DE MÁQUINAS DE ESTADOS ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 13 Projeto de Máquinas de Estados Etapa 1: Descreva o diagrama de transição de estados Etapa 2: Escreva as tabelas-verdades para nx_state e para saída. Rearranje as tabelas-verdades substituindo os nomes dos estados pelo valores binários correspondentes Lembrando do número mínimo de FF para realizar a implementação Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída Etapa 4: Desenhe o circuito correspondente colocando os FFD na seção inferior e a lógica combinacional para as expressões obtidas ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 14 EXEMPLO 1 ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 15 Exemplo 1 (1) Avaliação da máquina de estados Contém três estados (A, B e C) Saída (y) e uma entrada (x) Quando no estado A Produz y = 0 na saída Permanece no estado A se x = 1 Prossegue para estado B se x = 0 Quando no estado B Quando no estado C Produz y = 0 na saída Permanece no estado B se x = 0 Prossegue para estado B se x = 1 ELT013 - Eletrônica Digital II Produz y = x’ na saída Prossegue para estado A se x = 0 ou x = 1 Aula 9 - Máquinas de Estados Finitos 16 Exemplo 1 (2) Solução Etapa 1: Descreva o diagrama de transição de estados ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 17 Exemplo 1 (3) Solução Etapa 2: Escreva as tabelas-verdades para nx_state e para saída Etapa 2: Rearranje as tabelas-verdades substituindo os nomes dos estados pelo valores binários correspondentes ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 18 Exemplo 1 (3) Solução Etapa 2: Escreva as tabelas-verdades para nx_state e para saída Numeração dos estados. Estado A → 0 0 Etapa 2: Rearranje as tabelas-verdades Estado B → 0 1 substituindo os nomes Estado C→10 estados pelo valores binários correspondentes (se houvesse Estado D → 1 1) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos dos 19 Exemplo 1 (4) Solução Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 20 Exemplo 1 (5) Solução Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) Estados que não utilizandos, logo não importa 0 ou 1 ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 21 Exemplo 1 (6) Solução Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 22 Exemplo 1 (6) Solução Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 23 Exemplo 1 (6) Solução Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 24 Exemplo 1 (6) Solução Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) y q1 x ELT013 - Eletrônica Digital II d1 q0 x Aula 9 - Máquinas de Estados Finitos d1 q1 x 25 Exemplo 1 (7) Solução Etapa 4: Desenhe o circuito correspondente colocando os FFD na seção inferior e a lógica combinacional para as expressões obtidas ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 26 EXEMPLO 2 DETECTOR DE SEQUÊNCIA ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 27 Exemplo 2 (1) Projete um circuito que detecte uma sequência de “111” Por exemplo, para entrada “000111110011100” A saída deve ser “000001110000100” Etapa 1: Descreva o diagrama de transição de estados ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 28 Exemplo 2 (2) Etapa 2: Escreva as tabelas-verdades para nx_state e para saída ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 29 Exemplo 2 (2) Etapa 2: Escreva as tabelas-verdades para nx_state e para saída Como são quatro estados, são necessários dois flipflops com entradas d0 e d1 e saídas q0 e q1 ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 30 Exemplo 2 (2) Etapa 2: Escreva as tabelas-verdades para nx_state e para saída ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 31 Exemplo 2 (3) Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 32 Exemplo 2 (3) Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 33 Exemplo 2 (3) Etapa 3: Extraia das tabelas verdade as expressões booleanas para nx_state e para a saída (y) ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 34 Exemplo 2 (4) Etapa 4: Desenhe o circuito correspondente colocando os FFD na seção inferior e a lógica combinacional para as expressões obtidas ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 35 EXERCÍCIOS PROPOSTOS ELT013 - Eletrônica Digital II Aula 9 - Máquinas de Estados Finitos 36 Exercícios Propostos Façam do livro Eletrônica Digital Moderna e VHDL Cap. 15 os exercícios similares aos exemplos apresentados (15.5 – 15.8) ELT013 - Eletrônica Digital II Aula 8 - Contadores - Parte II 37