75 CAPÍTULO 6 – CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS Sumário 6.1. Introdução ................................................................................................................................. 77 6.1.1. Máquina de Estados de Moore ............................................................................................. 77 6.1.2. Máquina de Estados de Mealy ............................................................................................. 78 6.2. Projeto de Redes Sequenciais ................................................................................................... 79 6.2.1. Determinação do diagrama de estados ................................................................................. 79 6.2.2. Determinação das tabelas de estados ................................................................................... 80 6.3.3. Codificação dos estados ....................................................................................................... 80 6.3.4. Montagem do mapa de transição ......................................................................................... 80 6.3.5. Montagem dos mapas de entrada dos flip-flops .................................................................. 81 6.3.6. Montagem do mapa de saída................................................................................................ 81 6.3.7. Apresentação do esquemático do circuito desenvolvido ..................................................... 81 6.4. Exercícios de Fixação ................................................................................................................ 82 Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 76 CAPÍTULO 6 – CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS Finalizando os estudos sobre circuitos sequenciais, partimos agora para Projeto de Redes Sequenciais, que nada mais são que circuitos que utilizam elementos de memória para executar funções de controle. Após esse capítulo você deverá ser capaz de: (1) Entender o funcionamento de redes sequenciais; e (2) Projetar uma rede sequencial utilizando metodologia Moore a partir das especificações propostas. Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 77 6.1. Introdução Em lógica combinacional, aprendemos como descrever o comportamento do circuito desejado por meio de um formalismo matemático, conhecido como equações booleanas, que são convertidas no próprio circuito lógico. Porém, a equação booleana não é suficiente para descrever o comportamento de um circuito sequencial, logo, precisamos de um formalismo que incorpore a variável tempo. Uma Máquina de Estados Finitos (FSM – Finite State Machine) constitui exatamente tal formalismo, consistindo basicamente em um conjunto de estados que representam todos os estados, ou modos, possíveis de um sistema. FSM são projetos de redes sequenciais. Uma rede seqüencial pode ser dividida em duas partes distintas: os flip-flops que serão utilizados como elementos de memória da rede e uma rede combinacional que implementa as funções de entrada dos flip-flops e as funções de saída da rede. Existem duas variações de projetos de redes sequenciais, modelo Moore e Mealy. 6.1.1. Máquina de Estados de Moore Nesta metodologia de projeto a saída da rede seqüencial é função somente dos estados atuais da rede. O modelo geral desta rede é representado na figura 6.1. Figura 6.1 Modelo geral de uma máquina de estados tipo Moore. Na rede seqüencial tipo Moore, o sinal de saída só é válido após o sinal de clock ser aplicado à rede. Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 78 6.1.2. Máquina de Estados de Mealy Nesta metodologia de projeto a saída da rede seqüencial é função dos estados atuais da rede e das entradas do sistema. O modelo geral desta rede é representado na figura 6.2. Figura 6.2 Modelo geral de uma máquina de estados tipo Mealy. Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 79 6.2. Projeto de Redes Sequenciais Para executarmos projetos de redes seqüenciais, necessitamos seguir algumas etapas básicas: (1) Determinação do diagrama de estados; (2) Determinação da tabela de estados; (3) Codificação dos estados; (4) Montagem do mapa de transição; (5) Montagem e simplificação do mapa de entrada dos elementos de memória (flip-flops); (6) Montagem e simplificação do mapa de saída; e (7) Circuito esquemático. 6.2.1. Determinação do diagrama de estados Os diagramas de estado de nossos projetos nada mais são que os diagramas de transição estudados no capítulo anterior, com a diferença de que batizamos cada estado com um nome e colocamos o valor correspondente da(s) saída(s). Ex. 1: Projetar um detector de paridade ímpar de um sinal serial. Utilize a metodologia Moore e flip-flops JK. Para determinarmos o diagrama de estados precisamos estabelecer o que o projeto requer. Um circuito detector de paridade ímpar de um sinal serial deve possuir apenas uma entrada de sinal e uma saída, que deve indicar se o número de „1‟s presentes no sinal de entrada é ímpar. Esse diagrama deverá conter a quantidade de estados necessários para a operação e seu comportamento de acordo com cada valor possível de entrada. A figura 6.3 demonstra a tabela de estados do detector serial de paridade ímpar. estado fli p- flop x=1 x=0 S0 0 sai da x=1 S1 1 x=0 entrada Figura 6.3 Diagrama de estados do detector serial de paridade ímpar. Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 80 6.2.2. Determinação das tabelas de estados A tabela de estados é uma representação tabulada do comportamento do obtido do diagrama de estados do item 6.2.1, com a inserção do valor da saída do sistema: Estado Futuro X=0 X=1 S0 S1 S1 S0 Estado Atual S0 S1 Saída (Z) 0 1 6.3.3. Codificação dos estados Na implementação do mapa de designação dos estados, as seguintes orientações de projeto devem ser seguidas: (a) Estados cujos estados futuros são iguais devem ficar próximos; (b) Estados seguintes a um mesmo estado devem ficar próximos; (c) Estado que possuem a mesma saída devem ficar próximos. Para o exemplo tem-se que: QA 0 1 S0 S1 estados: S0 = 0 S1 = 1 6.3.4. Montagem do mapa de transição O mapa de transição nada mais é que uma representação em formato de mapa do diagrama de estados e da tabela de estados, com a codificação proposta na codificação de estados. Para o exemplo proposto temos: est ado at ual X QA 0 1 ent rada 0 1 X S0 S1 S1 S0 QA 0 1 0 1 0 1 1 0 est ado f ut uro Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 81 6.3.5. Montagem dos mapas de entrada dos flip-flops Para realizar esta tarefa, deve-se utilizar as tabelas de transição dos flip-flops, apresentadas no capítulo anterior, visualizando os estados atuais de Q e seus estados futuros, posicionando no mapa as entradas necessárias para causar tal transição. Para esse caso temos: p/ JA X QA p/ KA 0 1 X QA 0 1 0 1 0 0 - 0 - 1 1 - 1 - JA = X KA = X 6.3.6. Montagem do mapa de saída Obtido a partir da codificação dos estados: QA 0 1 0 1 Z = QA 6.3.7. Apresentação do esquemático do circuito desenvolvido Basta implementar as equações lógicas obtidas com os elementos de memória utilizados. Para o exemplo temos: Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 82 6.4. Exercícios de Fixação 1) Mostre que um flip-flop tipo JK pode ser implementado a partir de um flip-flop tipo D. Todas as etapas do projeto devem ser apresentadas na solução. Utilize a metodologia de projeto seqüencial tipo Moore. 2) Projete um circuito seqüencial que detecte a seguinte seqüência do sinal de entrada 101. Considere máquina de Moore e utilize flip-flop´s tipo T. 3) Uma rede seqüencial possui uma única entrada e uma única saída. A saída torna-se “1” e permanece em “1” quando pelo menos dois zeros e dois uns ocorrem na entrada, independente da ordem de ocorrência. Implemente este sistema utilizando metodologia de projeto tipo MOORE e flip-flop‟s tipo D. Na solução do problema todos os passos devem ser apresentados. Considere para solução: S0=0000, S1=0001, S2=0010, S3=0011... 4) Desenhe o diagrama de estados de uma rede tipo MOORE que detecte as seqüências 010 ou 0110. 5) Monte o diagrama de estados de uma rede seqüencial do tipo MOORE que analisa uma entrada de dados X e produz uma saída Z = 1 para qualquer seqüência de entrada terminada em “0010” ou “100”. O sistema não é re-inicializado após encontrar qualquer um das seqüências pré-determinadas. 6) Projete um sistema seqüencial capaz produzir uma saída Z = 1 toda vez que um único 0 e pelo menos dois 1‟s ocorrerem na entrada independente da ordem de ocorrência. Use flipflops tipo T na implementação da rede, e a metodologia MOORE de projeto. A rede não deve ser re-inicializada após a saída ser Z = 1. Todas as etapas do projeto devem ser apresentadas. Obs: considere os estados com valores binários crescentes, como S0=000, S1=001, S2=010... Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling 83 7) Projete uma rede seqüencial que produza Z = 1 toda vez que a seqüência é terminada em 0101 deste que nunca tenha ocorrido a seqüência 110. Use metodologia de projeto MOORE. Exemplo: X=01010110101 Z=00010100000 Curso de Lógica Sequencial – Cap. 6: Circuitos Sequenciais IV: Proj. de Redes Sequenciais | Prof. Marcelo Wendling