Prof.Corradi Finite State Machines Técnicas Digitais e de Microprocessadores – TDM II 1.1 Máquinas de Estados Finitos e Autômatos São uma Forma Muito Usada para Representar Sistemas que Possuem Memorização de Estados, não sendo Portanto Meramente Combinacionais. Podem ser usados para Representar: • • • • Protocolos em Redes Comportamento de Circuitos Eletrônicos Comportamento de Programas de Computador Comportamento de um Processo de Fabricação O Contrôle de Um Processo Físico Analógico de Uma forma Geral: Entrada Analógica Num Sistema Analógico a Somador/ Comparador Saída Analógica PROCESSO Realimentação Técnicas Digitais e de Microprocessadores – TDM II Relação entre Saída e Entrada Pode Ser Representada por Equações Diferenciais e Integrais Variáveis Assumem Valores Contínuos no Tempo 1.2 Lógica Combinacional e Lógica Sequencial Lógica Combinacional • A saída depende apenas de uma combinação lógica dos valores de entrada. A saída não precisa esperar nenhum “clock” para ser gerada. Saídas são geradas um tempo pequeno (atraso da lógica) após as entradas mudarem. A S B T C U D Lógica Sequencial • É a que faz uso de registros (memória) • A saída pode depender apenas dos estados dos flip-flops ou da combinação dos estados e das entradas. • Denomina-se “ESTADO” da lógica sequencial ao conjunto de “1s” e “0s” armazenados nos flip-flops (memória) da lógica • O relógio demarca o momento em que os estados mudam. Técnicas Digitais e de Microprocessadores – TDM II A D B Q S Q T C C D D C CK 1.3 Autômatos – Variáveis Assumem Valores Discretos no Tempo Representação: Reset 11/0 10/0 10/1 E3 10/0 Estado 00/0 A- Tabela de Transição E0 E1 E2 E3 E4 01/1 E4 00/1 PRÓXIMO ESTADO ENTRADAS SAÍDAS (z) ENTRADAS x, y 00 E0 E3 E2 E3 E4 00/0 E2 11/0 E1 Entradas(x, y) 01/0 E0 11/1 01/0 Saída (z) ESTADO ATUAL 00/0 10/0 A- Diagrama de Transição 01 E2 E1 E2 E3 E0 Técnicas Digitais e de Microprocessadores – TDM II x, y 10 E0 E1 E2 E4 E2 11 E1 E2 E3 E3 E4 00 0 1 0 0 ? 01 0 0 ? ? 1 10 0 0 ? 0 1 11 1 0 0 ? ? 1.4 Autômatos Determinísticos e Não Determinísticos Autômato Finito Determinístico (AFD) • • • • • Um Conjunto Q de Elementos Denominados Estados Um conjunto finito I denominado alfabeto de entrada Uma função F de mapeamento de Q X I em Q Um estado inicial q0 em Q Um Conjunto (não vazio) de Estados Terminais Z Autômato Finito Não Determinístico (AFND) • • • • • Um Conjunto Q de Elementos Determinados Estados Um Conjunto finito I denominado alfabeto de entrada Uma função F de mapeamento de Q x I em subconjuntos de Q Um conjunto de estados iniciais em Q Um conjunto (não vazio) de estados terminais Z contido em Q NOTA: Um AFND pode estar em vários estados simultaneamente (paralelismo – vários caminhos podem ser percorridos ao mesmo tempo para chegar ao resultado final) Técnicas Digitais e de Microprocessadores – TDM II 1.5 Mealy and Moore Machines Mealy Machine Inputs Next State Combinatorial Logic Flip Flops Output Combinatorial Logic Flip Flops Output Combinatorial Logic Outputs Clock Moore Machine Inputs Next State Combinatorial Logic Outputs Clock Técnicas Digitais e de Microprocessadores – TDM II 1.6 Modelo de Moore e de Mealy MODELO DE MOORE - As saídas são definidas apenas em função dos estados. - No diagrama dos estados, o valor das saídas é representado junto o código do estado. Exemplo: • MODELO DE MEALY - As saídas são definidas em função dos estados e das entradas do circuito. - No diagrama dos estados, o valor das saídas é representado junto ao valor da entrada. Exemplo: Técnicas Digitais e de Microprocessadores – TDM II 1.7 Máquina de Mealy A- Exemplo: Reset 0/1 1/0 E0 1/1 1/0 0/0 1/0 E1 B- Tabela de Transição E2 0/0 0/1 Est. Próx. Estado/Saída Atual Entrada (x) E x=0 x=1 E0 E0/1 E2/0 E1 E3/1 E1/1 E2 E1/0 E4/1 E3 E0/0 E2/0 E4 E1/1 E3/0 Técnicas Digitais e de Microprocessadores – TDM II 0/1 E4 E3 1/0 1.8 Máquina de Moore Reset 1 A- Exemplo: 0 E0/1 1 0 0 E3/0 1 E4/0 0 B- Tabela de Transição Est. E2/1 Próx. Estado Saída (y) Atual Entrada (x) E x=0 x=1 E0 E0 E2 1 E1 E3 E1 0 E2 E1 E4 1 E3 E0 E2 0 E4 E1 E3 0 Técnicas Digitais e de Microprocessadores – TDM II 1 0 1 E1/0 y = F (E) 1.9 Validade de Especificações (I) Técnicas Digitais e de Microprocessadores – TDM II 1.10 Validade de Especificações (II) Técnicas Digitais e de Microprocessadores – TDM II 1.11 Algumas Características de Máquinas Não Determinísticas (simplificando inicialmente) Os estados são equivalentes a variáveis booleanas em um programa Sua construção é mais intuitiva que a determinísticas A atribuição de estados é simples, normalmente associados com as saídas. Normalmente não se usa codificação de estados. As equações são extraídas diretamente do diagrama, sem tabelas ou mapas Máquinas não determinísticas são ineficientes para sequências de contagem pois usam mais flip-flops que máquinas determinísticas com codificação de estados. Técnicas Digitais e de Microprocessadores – TDM II 1.12 Geração das Equações de Estado Em Máquinas Determinísticas • Atribui-se a Codificação dos Estados • Mapeiam-se os Estados e Eventos em uma Tabela Verdade • Simplifica-se com o Mapa de Karnaugh (ou programa específico) Em Máquinas Não Determinísticas: • • • • Cada estado é representado por um bit (“One Hot Encoding”) Cada termo produto é o produto do evento com o estado origem O estado é ativado pelo “ou” dos produtos que chegam a ele O estado é desativado pelos produtos que efetivamente o abandonam. Na verdade, um estado é desativado pela ativação de um estado gerado a partir dele. Portanto, não é necessário especificar as equações para desativar estados. Técnicas Digitais e de Microprocessadores – TDM II 1.13 Procedimentos de Projeto 1- A partir da especificação obter o diagrama de estados; 2- Atribuir códigos a cada estado do diagrama; 3- Com base no diagrama de estados, obter a tabela de estados; 4- Escolher o tipo de flip-flop a utilizar; 5- Obter as equações de entrada para cada flipflop, com base na tabela de estados; 6- Obter as equações de saída do circuito; 7- Desenhar o circuito lógico. Técnicas Digitais e de Microprocessadores – TDM II 1.14 Análise de um Exemplo (I) Controlador de Vagão: Objetivo: Modelar o comportamento do controlador de um vagão de transporte de materiais. Técnicas Digitais e de Microprocessadores – TDM II 1.15 Análise de um Exemplo (II) Técnicas Digitais e de Microprocessadores – TDM II 1.16 Diagramas de Estados: Vantagens Formalismo gráfico permitindo uma compreensão fácil do comportamento do sistema. Forma intuitiva de modelação de sistemas. Suporte à elaboração de documentação de projeto permitindo a comunicação entre equipas de projetos, bem como ao ciclo de vida de um produto. Técnicas Digitais e de Microprocessadores – TDM II 1.17 Diagramas de Estados: Problemas Ausência de mecanismo de estruturação hierárquica de suporte a encapsulamento e á utilização de módulos. Modelação do estado global do sistema. No caso de sistemas com componentes concorrentes, os estados resultam do produto dos estados das várias componentes, conduzindo á explosão do número de estados. Assim, são pouco adequadas á modelação de sistemas complexos. Técnicas Digitais e de Microprocessadores – TDM II 1.18 Aplicações de máquina de Estados Controle de seqüência de ações: ler instrução • Unidade de controle de CPUs • Seqüência de ações fluxograma • Mapeamento direto: • fluxograma maq. de estados decodificar instrução Técnicas Digitais e de Microprocessadores – TDM II ADD SUB JUMP 1.19 Washing Machine Control Panel LIGADA Molho 10 Enxaguar RESET OPERANDO INICIAR AG AA EA TA Entradas (de Sensores e Botões de Contrôle): MC Sinais de Saída : RESET – Botão Reset – Reinicia Programa LED Ligada M10 – Especifica Molho 10 minutos LED Operando INIC – Botão Iniciar após escolher Molho ou Enxaguar LED M10 – Molho 10 LED - Enxaguando LED AG - Agitando ENX – Enxaguar LED AA – Abre_Água TA – Tampa_Aberta LED EA – Esvazia_Água CC – Cesto_Cheio LED TA – Tampa_Aberta CV – Cesto_Vazio LED MC – Motor_Centrifugar Técnicas Digitais e de Microprocessadores – TDM II 1.20