Máquinas de Estado Eletrônica Digital
Introdução Máquinas de Estados são usadas para representar o funcionamento de circuitos sequenciais. um circuito sequencial consiste de um circuito combinacional e uma rede de memória formada por elementos de armazenamento (usualmente flip-flops). a rede de memória define o estado atual da máquina de estados. o circuito sequencial difere de um circuito combinacional puro na medida em que o próximo estado será definido não só a partir das entradas atuais, como também do estado atual, aumentando enormemente as possibilidades de projeto.
Tipos de Implementações Máquinas de Estados podem ser dos tipos seguintes: Máquina de Moore: a saída muda apenas na transição do relógio Máquina de Mealy: a saída pode mudar a qualquer instante em função da entrada
Tipos de Implementações O comportamento das máquinas de Moore e Mealy é idêntico, mas suas implementações diferem, como mostrado a seguir. Máquina de Moore: somente os sinais de entrada causadores da transição de um estado para outro são representados nos arcos do grado Máquina de Mealy: nos arcos do grafo são representados os sinais de entrada causadores da transição de um estado para outro, com os respectivos valores para a saída
Etapas de Projeto de Circuitos Sequenciais 1º passo: elaborar diagrama de estados que interprete fielmente o problema que se deseja resolver; 2º passo: opcionalmente pode-se minimizar o número de estados no diagrama de estados; 3º passo: escrever a tabela de estados, com os estados atuais, próximos estados e saídas; 4º passo: atribuir a cada estado uma combinação de variáveis de estado (flip-flops); 5º passo: construir a tabela de excitação do tipo de flip-flop utilizado;
Etapas de Projeto de Circuitos Sequenciais 6º passo: montar o mapa de Karnaugh para cada uma das entradas dos flip-flops do circuito, com o auxílio da tabela de excitação; 7º passo: obter a equação final de cada entrada para cada um dos flip-flops do circuito a partir da simplificação do mapa de Karnaugh; 8º passo: fazer o mesmo procedimento para as equações das variáveis de saída; 9º passo: finalmente, elaboração do diagrama lógico do circuito, lembrando que todos os elementos de memória (flipflops) recebem o mesmo sinal de relógio. 6
Detector de Começo de Mensagem O começo de uma mensagem em um sistema de comunicação é indicado pela ocorrência de três ‘1’ consecutivos em uma linha x. Projete um circuito que forneça em sua saída o valor ‘1’ apenas durante o período de relógio coincidente com o terceiro ‘1’ consecutivo na linha x. Supor que um mecanismo externo inicializa o detector no estado de “reset” após o término da mensagem.
Detector de Começo de Mensagem 1º passo: elaborar diagrama de estados que interprete fielmente o problema que se deseja resolver Identificação dos Estados: Não recebeu nenhum 1, q0; Recebeu o primeiro 1, q1; Recebeu o segundo 1, q2; Recebeu o terceiro 1, q3; Recebeu 0 após receber 1 ou 2 uns, q4.
Detector de Começo de Mensagem Construção de Diagrama de Estados usando Máquina de Mealy
Detector de Começo de Mensagem 3º passo: escrever a tabela de estados, com os estados atuais, próximos estados e saídas
Detector de Começo de Mensagem 4º passo: atribuir a cada estado uma combinação de variáveis de estado (flip-flops)
Detector de Começo de Mensagem 4º passo: atribuir a cada estado uma combinação de variáveis de estado (flip-flops)
Detector de Começo de Mensagem 5º passo: construir a tabela de excitação do tipo de flip-flop utilizado qt (y1y0)t xt 1 J1 K1 J0 K0 q0 00 11 X q1 01 q2 10 q3
Detector de Começo de Mensagem 6º passo: montar o mapa de Karnaugh para cada uma das entradas dos flip-flops do circuito, com o auxílio da tabela de excitação 7º passo: obter a equação final de cada entrada para cada um dos flip-flops do circuito a partir da simplificação do mapa de Karnaugh qt (y1y0)t xt 1 J1 K1 J0 K0 q0 00 11 X q1 01 q2 10 q3
Detector de Começo de Mensagem 6º passo: montar o mapa de Karnaugh para cada uma das entradas dos flip-flops do circuito, com o auxílio da tabela de excitação 7º passo: obter a equação final de cada entrada para cada um dos flip-flops do circuito a partir da simplificação do mapa de Karnaugh qt (y1y0)t xt 1 J1 K1 J0 K0 q0 00 11 X q1 01 q2 10 q3
Detector de Começo de Mensagem 8º passo: fazer o mesmo procedimento para as equações das variáveis de saída
Detector de Começo de Mensagem 9º passo: finalmente, elaboração do diagrama lógico do circuito, lembrando que todos os elementos de memória (flip-flops) recebem o mesmo sinal de relógio
Considerações Importantes
Identificação dos Estados Detector de Paridade Obter o diagrama de estados de um circuito que detecte a paridade de um sinal serial. Considere paridade ímpar e máquina de Moore. Identificação dos Estados Número de 1s acumulados é par, q0; Número de 1s acumulados é ímpar, q1. Máquina de Moore S0/0 S1/1 1
Detector de Paridade Prossiga com o projeto! S0/0 S1/1 1
Identificação dos Estados Divisível por 3 Obter o diagrama de estados de um circuito que indique se o número de 1s recebidos é divisível por 3 (considerar zero divisível por 3). Máquina de Moore Exemplo: S0/1 S1/0 1 S2/0 Identificação dos Estados 1) Divisível por 3, S0; 2) Divisível por 3 + 1, S1; 3) Divisível por 3 + 2, S2. Máquina de Mealy S0 S1 0/1 0/0 1/0 S2 1/1
Detector de Paridade Prossiga com o projeto considerando primeiramente a Máquina de Moore e depois a Máquina de Mealy. Máquina de Moore S0/1 S1/0 1 S2/0 Máquina de Mealy S0 S1 0/1 0/0 1/0 S2 1/1
Indicação de Números de Zeros Obter o diagrama de estados de um circuito que indique se o número de zeros recebidos é par, maior que zero, e desde que NUNCA ocorram dois 1s consecutivos. Identificação dos Estados Não recebeu nada, S0; Em S0, recebeu 1, S1; Em S0, recebeu 0 (ímpar), S2; Em S2, recebeu 0 (par), S3; Em S3, recebeu 1, S4; Em S3, recebeu 0 (ímpar), S2; Em S2, recebeu 1, S5; Em S1, recebeu 0 (ímpar), S2; Em S1, recebeu 1, S6; Em S4, recebeu 0 (ímpar), S2; Em S4, recebeu 1 (dois 1s consecutivos), S6; Em S5, recebeu 0 (ímpar), S2; Em S5, recebeu 1 (dois 1s consecutivos), S6; Em S6, recebeu X, S6. Prossiga com o projeto!
Detector de Sequência 0010 Obter o diagrama de estados de um circuito que detecte todas as sequências 0010. Se ocorrer mais do que dois zeros consecutivos a máquina deve ser reiniciada após a ocorrência de um 1. Exemplo: Faça o projeto!