Baixe o app para aproveitar ainda mais
Prévia do material em texto
DESCRIÇÃO Os circuitos sequenciais clássicos e o projeto de máquinas de estado síncronas. PROPÓSITO Conhecer os circuitos sequenciais clássicos e projetar máquinas de estado síncronas, objetivando a compreensão da estrutura de sistemas digitais utilizados para “comandar” muitos dos dispositivos que usamos diariamente. OBJETIVOS MÓDULO 1 Descrever o funcionamento dos circuitos sequenciais clássicos MÓDULO 2 Projetar máquinas de estado síncronas APRESENTAÇÃO Vamos estudar, neste tema, contadores, registradores de deslocamentos e multivibradores monoestáveis. O que todos esses circuitos têm em comum? RESPOSTA Todos eles possuem memória, ou seja, suas saídas podem depender, além da entrada atual, das entradas passadas. Também iremos aprender a projetar circuitos sequenciais síncronos para aplicações específicas, igualmente conhecidas como máquinas de estado síncronas. As máquinas de estado realizam função parecida com a do cérebro no corpo humano. Elas controlam os dispositivos a partir de suas entradas e seu estado atual, calculando os próximos estados e saídas. Máquinas de estado podem ser encontradas em diversos itens do nosso cotidiano, como televisores, fornos micro-ondas e até nos processadores dos computadores. MÓDULO 1 Descrever o funcionamento dos circuitos sequenciais clássicos INTRODUÇÃO Não estudaremos aqui como todos os circuitos sequenciais são construídos, no entanto é importante ter em mente que o elemento central de tais circuitos são flip-flops. Os flip-flops são utilizados para armazenar o estado do circuito, provendo a capacidade de memória que caracteriza esse tipo de circuito. Não se preocupe! A utilização dos flip-flops na construção dos circuitos sequenciais será estudada no próximo módulo. CONTADORES Os contadores são circuitos sequenciais que a cada pulso do relógio mudam seu estado de acordo com uma sequência predeterminada (contagem). Podemos dividir os contadores em dois tipos: síncronos e assíncronos. SÍNCRONOS Nos contadores síncronos o relógio (clock) é comum a todos os flip-flops. ASSÍNCRONOS Nos contadores assíncronos os flip-flops são “cascateados”. ATENÇÃO O sinal de relógio é utilizado apenas pelo primeiro flip-flop, os demais utilizam a saída do flip-flop anterior como sinal de relógio. CONTADORES ASSÍNCRONOS Os contadores assíncronos são comumente utilizados quando a sequência de estados utilizada é a binária. Nesse caso, o projeto do circuito é bastante simplificado. Veja o circuito a seguir: Fonte: EnsineMe Figura 1: Contador assíncrono de 4 bits crescente Primeiramente, notamos que as entradas J e K estão conectadas no nível alto. Dessa forma, os flip-flops executam toggle sempre que houver um bordo de descida em suas respectivas entradas de ¯ CLK . Note também que o preset fica permanentemente desativado, enquanto o clear está ativo se o sinal ¯ CLR estiver em nível baixo, fazendo a saída de todos os flip-flops ficarem em nível baixo. Se ¯ CLR = 1 , então a cada bordo de subida de ¯ CLK o primeiro flip-flop ( QA ) irá alterar seu estado. Assim temos: Fonte: EnsineMe Figura 2: Saída QA do contador assíncrono de 4 bits crescente Repare que QA será o sinal de relógio do segundo flip-flop e assim por diante. Logo, a saída completa do contador é: Fonte: EnsineMe Figura 3: Saída completa do contador assíncrono de 4 bits crescente Sendo que, os números abaixo dos sinais indicam a ordem do ciclo do sinal de relógio com o sinal de clear em nível alto, considerando que os ciclos terminam no bordo de descida. Assim, a tabela de saída do contador síncrono apresentado é: Pulso de ¯ CLK com ¯ CLR = 1 QD QC QB QA Número formado por QDQCQBQA 1° 0 0 0 0 0 2° 0 0 0 1 1 3° 0 0 1 0 2 4° 0 0 1 1 3 5° 0 1 0 0 4 6° 0 1 0 1 5 7° 0 1 1 0 6 8° 0 1 1 1 7 9° 1 0 0 0 8 10° 1 0 0 1 9 11° 1 0 1 0 10 12° 1 0 1 1 11 13° 1 1 0 0 12 Pulso de ¯ CLK com ¯ CLR = 1 QD QC QB QA Número formado por QDQCQBQA 14° 1 1 0 1 13 15° 1 1 1 0 14 16° 1 1 1 1 15 17° 0 0 0 0 0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 1: Saída do contador assíncrono de 4 bits crescente. Fonte: EnsineMe Pela Tabela 1 vemos que o número formato por QDQCQBQA corresponde à quantidade de pulsos completos do sinal de relógio desde que a entrada de clear foi desativada. Contudo, como o contador só possui 4 bits, ele só pode contar até 15. Após esse valor ele reinicia a contagem do zero. Devido a essa característica, tal circuito é conhecido também como “contador de pulsos”. Um fato interessante sobre esse circuito é que, como podemos ver na Figura 3, o período do sinal QA é o dobro do sinal ¯ CLK . Portanto, a frequência do sinal QA é metade da frequência do sinal ¯ CLK . Essa relação se repete entre QB e QA , QC e QD . Então, se f ¯CLK for a frequência do sinal do relógio e fA , fB , fC e fD as frequências dos sinais de saída, temos a seguinte relação: F ¯CLK = 2FA = 4FB = 8FC = 16FD Atenção! Para visualização completa da equação utilize a rolagem horizontal Generalizando para um contador de pulsos com N bits, temos: fN = f ¯ CLK /2 N . Logo, um contador de pulso pode ser utilizado para dividir a frequência do sinal de relógio por uma potência de 2. Como visto, o contador apresentado realiza a contagem de 0 a 2N − 1 , sendo N o número de flip-flops utilizados. Porém, utilizando as entradas de preset e clear e uma porta NAND, podemos fazer com que o contador inicie a contagem em um número diferente de 0 e que tenha valor máximo diferente de 2N − 1 . Veja o exemplo a seguir: EXEMPLO Projete um contador assíncrono que conte de 2 a 5. SOLUÇÃO O primeiro passo é determinar quantos flip-flops serão necessários. Para representar 5 precisamos de 3 dígitos binários (5 = 101b). Logo, serão necessários 3 flip-flops. Como para o contador só estamos interessados na operação toggle, então podemos usar flip-flops T , com a entrada T em nível alto. Para que o contador conte até 5, devemos possibilitar que o próximo estágio, no caso 6 (110b), retorne para o valor inicial da contagem, no caso 2. Com essa finalidade, utilizamos uma porta NAND que, quando QCQBQA = 110 , ative o clear dos flip-flops javascript:void(0) C e A e o preset do B . Isto é, assim que QCQBQA assumirem o valor de 110 serão acionados os preset e clear necessários para que QCQBQA tornem-se 010 (2, em decimal). Desse modo, o estado 110 é um estado instável, pois o circuito irá imediatamente, e sem necessidade de nenhuma entrada, modificar seu estado. O circuito proposto é mostrado a seguir: Fonte: EnsineMe Figura 4: - Contador assíncrono de 2 a 5 Considerando que seu estado inicial seja 2 ( QCQBQA = 010 ), apresenta a seguinte tabela de funcionamento nos primeiros 6 pulsos de relógio: Pulso de ¯ CLK QC QB QA Número formado por QCQBQA Pulso de ¯ CLK QC QB QA Número formado por QCQBQA 1° 0 1 0 2 2° 0 1 1 3 3° 1 0 0 4 4° 1 0 1 5 Estado instável 1 1 0 6 5° 0 1 0 2 6° 0 1 1 3 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 2: Tabela do contador assíncrono crescente de 2 a 5. Fonte: EnsineMe Se quisermos fazer um contador assíncrono de 4 bits decrescente, ele deverá seguir a seguinte tabela: Pulso de ¯ CLK QD QC QB QA Número formado por QDQCQBQA 1° 1 1 1 1 15 2° 1 1 1 0 14 3° 1 1 0 1 13 4° 1 1 0 0 12 Pulso de ¯ CLK QD QC QB QA Número formado por QDQCQBQA 5° 1 0 1 1 11 6° 1 0 1 0 10 7° 1 0 0 1 9 8° 1 0 0 0 8 9° 0 1 1 1 7 10° 0 1 1 0 6 11° 0 1 0 1 5 12° 0 1 0 0 4 13° 0 0 1 1 3 14° 0 0 1 0 2 15° 0 0 0 1 1 16° 0 0 0 0 0 17° 1 1 1 1 15 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 3: Saída do contador assíncrono de 4 bits decrescente. Fonte: EnsineMe Comparando as Tabelas 1 e 2, podemos perceber que as saídas da segunda são a negação da primeira, dessa forma podemos esquematizar o contadordecrescente: Fonte: EnsineMe Figura 5: Contador assíncrono de 4 bits decrescente Como exercício, sugiro que você verifique que o circuito a seguir implementa um contador assíncrono decrescente de 3 bits: b Fonte: EnsineMe Figura 6: Contador assíncrono de 3 bits decrescente Sabemos que os circuitos reais não mudam de estado instantaneamente de acordo com as entradas. Eles levam um tempo (em geral pequeno) para atualizar o valor das saídas. Este tempo é chamado de atraso. ATENÇÃO Tal como no contador assíncrono, os flip-flops estão cascateados, o atraso na mudança do estado dos flip-flops vai se acumulando conforme mais afastados eles estão do primeiro. Para entender melhor esse fenômeno, iremos analisar a transição de 7 (0111) → 8 (1000) no circuito da Figura 1. Repare que o flip-flop B só pode iniciar sua mudança de estado após o flip-flop A ter terminado a sua mudança. Essa relação repete-se entre o flip-flop C e B , e entre o D e o C . Considerando que o atraso de flip-flop JK seja t , o diagrama de sinais da transição entre o 0111 → 1000 é representado na Figura 7, que deixa claro que o atraso em relação ao sinal do relógio vai se somando conforme nos distanciamos do flip-flop A . Por exemplo, o atraso do flip-flop D é 4t . Fonte: EnsineMe Figura 7: Zoom na transição entre os estados 7 e 8 de um contador crescente assíncrono PROJETO DE UM CONTADOR BINÁRIO ASSÍNCRONO CONTADOR SÍNCRONO No contador síncrono, o sinal de relógio entra em todos os flip-flops. Assim, todos eles mudam de estado ao mesmo tempo, eliminando o problema de soma dos atrasos que ocorre no contador assíncrono. Em contrapartida, é necessário que todos os flip-flops saibam qual o próximo estado, o que normalmente torna o circuito mais complexo. O circuito genérico de um contador síncrono utilizando flip-flops JK sensíveis a bordo de descida é indicado a seguir: Fonte: EnsineMe Figura 8: Contador síncrono genérico Apesar de termos visto até agora apenas contadores que seguem a sequência binária, existem outros que seguem códigos diferentes. Além disso, os contadores podem ser classificados de acordo com diversas características. A seguir citamos as mais importantes: Sincronismo Assíncrono Síncrono Polaridade do relógio, a qual bordo o clock dos flip-flops é sensível: A bordo de subida A bordo de descida Modo de operação, o sentido da contagem: Crescente Crescente Crescente/Decrescente, também conhecido como Up/Down Counter, pode operar nos dois modos, com o controle sendo realizado por uma entrada de controle. Número de bits, quantidade de bits utilizada na sequência de contagem. Código, o código da sequência utilizada. Binário, por exemplo, de 3 bits: → 000 → 001 → 010 → 011 → 110 → 111 → 000 → ; BCD, → 0000 → 0001 → 0010 → 1000 → 1001 → ; Entre outros, como código Gray e Código 9876543210. Módulo, quantidade de estados estáveis da sequência de estados. Por exemplo, um contador com código BCD possui módulo 10, já o contador assíncrono de 2 a 5 possui módulo 4, como pode ser visto na Tabela 2. Tipo de clear/preset: clear/preset síncrono: para o contador reiniciar é necessário que o clear ou preset esteja ativo no momento que houver o bordo designado do clock; clear/preset assíncrono: assim que clear ou preset são ativados o contador reinicia o seu estado. Atenção! Para visualização completa da tabela utilize a rolagem horizontal REGISTRADORES DE DESLOCAMENTO O registrador de deslocamento, também conhecido como shift-register, é um circuito que pode armazenar determinada quantidade de bits (palavra) e permitir o deslocamento desses bits para esquerda ou direita a cada pulso do relógio. Para entender o deslocamento, veja o exemplo: Um registrador de deslocamento de 4 bits e deslocamento para direita é inicializado com o valor 1010. Ao realizar um deslocamento para a direita ele insere o valor 0 no espaço do bit mais significativo. A sequência que esse registrador de deslocamento segue em 4 pulsos de relógio é: 1010 → 0101 → 0010 → 0001 → 0000 Atenção! Para visualização completa da equação utilize a rolagem horizontal Como a ideia por trás do registrador de deslocamento é a passagem de bits entre flip-flops vizinhos, é natural utilizar flip-flops D na implementação. Vejamos o esquema de um registrador de deslocamento de 4 bits que faz o deslocamento para a direita. Fonte: EnsineMe Figura 9: Registrador de deslocamento de 4 bits que faz o deslocamento à direita Analisando o circuito, percebemos que a cada bordo de descida do relógio o estado é atualizado de acordo com a seguinte lógica: Q3Q2Q1Q0 → INQ3Q2Q1 . SAIBA MAIS Os registradores de deslocamento comerciais muitas vezes permitem outras funções, como executar o deslocamento à direita ou à esquerda em função de um sinal de entrada e permitir o carregamento de uma palavra de uma vez (load). Como exemplo, mostraremos o 74194, um registrador de deslocamento de 4 bits bidirecional, sensível a bordo de subida e com clear assíncrono. Destaca-se que, diferentemente do usual, neste componente, o bit mais significativo (MSB) é QA e o menos significativo (LSB) é QD . Fonte: EnsineMe Figura 10: Representação do registrador de deslocamento 74194 S1 S0 Próximo estado Operação 0 0 QA QB QC QD hold 0 1 SRSI QA QB QC Deslocamento para direita (shift right) 1 0 QB QC QD SLSI Deslocamento para esquerda (shift left) 1 1 A B C D Carregamento (load) Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 4: Tabela de funcionamento do registrador de deslocamento 74194. Fonte: EnsineMe Uma das aplicações mais importantes do registrador de deslocamento é como conversor série- paralelo. TRANSMISSÃO PARALELA Todos os bits da palavra são transmitidos simultaneamente. TRANSMISSÃO EM SÉRIE Os bits são transmitidos sequencialmente. Veja a transmissão do nibble 0101 nos modos série e paralelo: Fonte: EnsineMe Figura 11: Transmissão a) paralelo b) série Conversão de série para paralelo Para converter uma palavra de 4 bits de série para paralelo utilizando o 74194, fazemos a entrada transpor a entrada SRSI e realizamos deslocamento à direita (shift right). Após 4 pulsos do relógio, a saída QAQBQCQD será a palavra no modo série, pronta para o armazenamento ou transmissão paralela. Conversão de paralelo para série Para converter uma palavra de 4 bits de paralelo para série utilizando o 74194, devemos fazer, inicialmente, carregar a palavra que se deseja transmitir (load). Em seguida, são realizados deslocamentos à direita (shift right). O sinal de saída em série é obtido pela saída QD do 74194. MULTIVIBRADORES Circuitos multivibradores são capazes de operar em estados estáveis e/ou instáveis. Um estado é considerado estável, caso o circuito o mantenha indefinidamente se não houver nenhum sinal de entrada, incluindo o relógio. Um estado é instável caso, mesmo sem nenhuma entrada, ele mude de estado após determinado tempo. Como em eletrônica digital, o bit pode valer 0 ou 1, então há 3 tipos de multivibradores digitais: MULTIVIBRADORES BIESTÁVEIS MULTIVIBRADORES MONOESTÁVEIS MULTIVIBRADORES ASTÁVEIS MULTIVIBRADORES BIESTÁVEIS Como o nome sugere, possuem dois estados estáveis. Latches e flip-flops são exemplos de multivibradores biestáveis. MULTIVIBRADORES MONOESTÁVEIS Apresentam apenas um estágio estável, podendo ser tanto o 0 como o 1. Estudaremos mais a fundo esse tipo de multivibrador. MULTIVIBRADORES ASTÁVEIS Nesses circuitos não existem estados estáveis, o circuito muda de estado constantemente. Como geralmente os multivibradores astáveis não possuem entradas, normalmente eles não são circuitos sequenciais. Os osciladores que geram o sinal de relógio são exemplos de multivibradores astáveis digitais, assim como os sinais de trânsito, comuns em nosso cotidiano. SAIBA MAIS Os osciladores que geram o sinal de relógio são exemplos de multivibradoresastáveis digitais, assim como os sinais de trânsito, comuns em nosso cotidiano. O funcionamento do multivibrador monoestável, ou simplesmente monoestável, segue a seguinte lógica: quando um sinal de gatilho (G) sensível a bordo é ativado, o monoestável muda do estado estável para o instável e permanece por um tempo τ até retornar ao estado estável. Na figura a seguir, o gatilho é ativado no nível alto e o estado estável é o 0. Fonte: EnsineMe Figura 12: Funcionamento de um monoestável Normalmente, o tempo que o monoestável fica no estado instável ( τ ) é definido por uma associação de resistor e capacitor conectados externamente ao monoestável, permitindo a configuração de τ de acordo com a aplicação. Se ocorrer um novo bordo do gatilho enquanto a saída ainda está no estado instável, como o monoestável se comporta? Para responder a esse questionamento precisamos saber qual é o tipo do monoestável. Existem dois tipos: MONOESTÁVEIS REGATILHÁVEIS javascript:void(0) A contagem do tempo τ é reiniciada a cada novo bordo de subida do gatilho. MONOESTÁVEIS NÃO REGATILHÁVEIS: Quando no estado instável, o monoestável “ignora” o gatilho até retornar para o estado estável. Fonte: EnsineMe Figura 13: Monoestável regatilhável e não regatilhável VERIFICANDO O APRENDIZADO 1. UM CONTADOR BINÁRIO SÍNCRONO CRESCENTE DE 4 BITS, COM CLEAR ASSÍNCRONO ATIVADO EM NÍVEL BAIXO, TEM SAÍDA QDQCQBQA . SABENDO QUE O CLEAR RECEBE ¯ QD . QB , QUAL O MÓDULO DESTE CONTADOR? A) 10 B) 11 javascript:void(0) C) 9 D) 4 E) 15 2. QUAIS TIPOS DE MULTIVIBRADORES PODEM COMPOR OS SEGUINTES EQUIPAMENTOS: UMA CAMPAINHA MUSICAL QUE TOCA UM TRECHO DE MÚSICA; UM SISTEMA QUE LIGA A ILUMINAÇÃO AUTOMATICAMENTE AO DETECTAR MOVIMENTO; UM INTERRUPTOR DIGITAL DE LÂMPADA QUE MIMETIZA UM INTERRUPTOR TRADICIONAL. A) I – Biestável; II – Monoestável não regatilhável; III – Astável B) I – Biestável; II – Astável; III – Biestável C) I – Monoestável; II – Monoestável regatilhável; III – Biestável D) I – Astável; II – Biestável; III – Monoestável E) I – Monoestável; II – Monoestável não regatilhável; III – Biestável GABARITO 1. Um contador binário síncrono crescente de 4 bits, com clear assíncrono ativado em nível baixo, tem saída QDQCQBQA . Sabendo que o clear recebe ¯ QD . QB , qual o módulo deste contador? A alternativa "A " está correta. O contador seguirá a contagem até que ¯ QD . QB = 0 , quando será ativado o clear. Assim, temos a seguinte tabela: Estado QD QC QB QA clear = ¯ QD . QB 0 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 1 4 0 0 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 1 8 1 1 0 0 1 9 1 0 0 1 1 10 1 0 1 0 0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Ao alcançar o estado 10, o clear é ativado. Como o clear é assíncrono, o estado vai diretamente para o estado 0. Dessa forma, o estado 10 não é estável, os estados estáveis são de 0 a 9, totalizando 10 estados estáveis. Logo, o contador possui módulo 10. 2. Quais tipos de multivibradores podem compor os seguintes equipamentos: uma campainha musical que toca um trecho de música; um sistema que liga a iluminação automaticamente ao detectar movimento; um interruptor digital de lâmpada que mimetiza um interruptor tradicional. A alternativa "C " está correta. Equipamento I: A campainha deve permanecer desligada (estado estável). Ao ser pressionada, deve tocar música por um tempo predeterminado (estado instável) e, então, retornar a ficar desligada. Como o equipamento tem um estado instável, então deve ser usado um multivibrador monoestável. Equipamento II: A luz deve permanecer desligada (estado estável). Ao ser detectado movimento, a luz deve ser ligada (estado instável) e assim permanecer (característica regatilhável). Ao passar certo tempo sem movimento, a luz deve ser desligada. Logo, o equipamento II pode usar um monoestável regatilhável. Equipamento III: Cada vez que o interruptor é pressionado, o estado da lâmpada deve ser modificado e assim se manter até que o interruptor seja acionado novamente. Portanto, os dois estados são estáveis e o circuito III pode usar um multivibrador biestável. MÓDULO 2 Projetar máquinas de estado síncronas INTRODUÇÃO Máquinas de estado finitas são aquelas com uma quantidade de estados predefinidos e finitos. O conceito de máquinas de estado finitas é utilizado tanto em eletrônica digital, quanto em programação. Por simplicidade, iremos suprimir o termo “finitas”, chamando as máquinas de estado finitas simplesmente de máquinas de estado. Neste módulo, estudaremos as máquinas de estado síncronas, ou seja, aquelas na qual os relógios de todos os flip-flops são conectados juntamente, de forma que o estado só pode ser modificado em momentos específicos determinados pela entrada de relógio da máquina. MODELO DE MÁQUINAS DE ESTADO SÍNCRONAS As máquinas de estado síncronas são compostas de três blocos principais: BLOCO DE MEMÓRIA O coração da máquina de estados armazena o estado atual da máquina de estados, geralmente implementado com flip-flops. LÓGICA COMBINACIONAL DE PRÓXIMO ESTADO Circuito combinacional que, baseado no estado atual e nas entradas, calcula as entradas dos flip- flops do bloco de memória para realizar a correta transição entre estados. LÓGICA COMBINACIONAL DE SAÍDA Circuito combinacional que calcula as saídas do circuito. Ele pode usar apenas o estado atual (Modelo Moore) ou o estado atual e as entradas (Modelo Mealy). Como em máquinas de estados trabalhamos com agrupamento de bits — os bits de estado, os bits de entrada e os bits de saída — usaremos barramentos. Um barramento é um conjunto de fios utilizados para transferir informação no modo paralelo. É usual utilizar uma seta no final do barramento para indicar o fluxo da informação. Fonte: EnsineMe Figura 14: Notações de barramento de n fios onde a informação flui da esquerda para a direita Os modelos genéricos de uma máquina de estado síncrona, modelo Mealy e de Moore, podem ser vistos nas Figura 15 e 16, respectivamente. O modelo Mealy utiliza o estado presente e as entradas do circuito no cálculo da saída, portanto, a saída pode ser alterada. Mesmo sem haver variação no estado da máquina, a saída não é obrigada a seguir os bordos do sinal do relógio. Dessa forma, dizemos que as máquinas de estado síncronas modelo Mealy possuem saída assíncrona. Já no modelo Moore, a lógica combinacional de saída só utiliza o estado presente. Como o estado só pode mudar nos bordos designados do sinal de relógio, a saída do modelo Moore é síncrona. Fonte: EnsineMe Figura 15: Máquina de estados síncrona Modelo de Mealy genérica Fonte: EnsineMe Figura 16: Máquina de estados síncrona Modelo de Moore genérica DIAGRAMAS DE ESTADO E TABELA DE TRANSIÇÃO E DE SAÍDA O diagrama de estados é um diagrama com todos os estados utilizados pela máquina de estado, todas as transições possíveis e as saídas. Por exemplo, uma máquina de Moore com 4 estados ( E0 , E1 , E2 , E3 ), uma entrada ( H ) e uma saída ( F ) poderia apresentar o seguinte diagrama de estados: Fonte: EnsineMe Figura 17: Exemplo de diagrama de estados de uma máquina modelo Moore A leitura desse diagrama é feita da seguinte forma: No estado E0 a saída F é 1 e o próximo estado é E1 se H = 0 e E3 se H = 1 ; No estado E1 a saída F é 0 e o próximo estado é E2 se H = 0 e E1 se H = 1 ; No estado E2 a saída F é 1 e o próximo estado é E3 se H = 0 e E1 se H = 1 ; No estado E3 a saída F é 0 e o próximo estado é E3 se H = 0 e E0 se H = 1 . Note que o código atribuído a cada estado não influencia na lógica de funcionamento da máquina de estados, portando pode ser omitida quando quisermos analisar apenas o funcionamento da máquina de estado. Contudo, essa informação é fundamental para a implementação da máquina de estados. A partir do diagrama de estados podemos montar uma tabelacom todos eles, suas saídas e prever o próximo estado em função da entrada. Essa tabela é chamada de tabela de transição de estado e de saída (MENDONÇA; ZELENOVSKY, 2007, p. 179) e podemos montá-la em função da designação de cada estágio (E0, E1, E2 ou E3 ) ou do código de cada estágio (00, 01, 10 ou 11). Estado atual Próximo estado se H = 0 Próximo estado se H = 1 Saída 00 01 11 1 Estado atual Próximo estado se H = 0 Próximo estado se H = 1 Saída 01 10 01 0 10 11 01 1 11 11 00 0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 5: Tabela de transição de estado e de saída do diagrama de estados da Figura 17. Fonte: EnsineMe O diagrama de estados de máquina de estados modelo Mealy usa a notação “próximo estado/saída do estado presente com essa entrada”. Por exemplo, podemos ter uma máquina de Mealy com 4 estados ( E0 , E1 , E2 , E3 ), duas entradas ( H e D ) e uma saída ( F ) com o seguinte diagrama de estados: Fonte: EnsineMe Figura 18: Exemplo de diagrama de estados de uma máquina Modelo Mealy ATENÇÃO É importante compreender que a notação do tipo “ HD /0 ”, “ HD ” indica a condição para a transição para o próximo estado apontado pela seta, enquanto “ 0 ” é a saída do estado atual se HD = 1 . Estado atual Próximo estado / saída se HD = 00 Próximo estado / saída se HD = 01 Próximo estado / saída se HD = 10 Próximo estado / saída se HD = 11 Estado atual Próximo estado / saída se HD = 00 Próximo estado / saída se HD = 01 Próximo estado / saída se HD = 10 Próximo estado / saída se HD = 11 E0 E0 /1 E2 /0 E1 /0 E3 /0 E1 E1 /0 E3 /0 E0 /1 E2 /1 E2 E2 /1 E1 /1 E2 /1 E1 /1 E3 E3 /1 E3 /1 E0 /1 E0 /1 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 6: Tabela de transição de estado e de saída do diagrama de estados da Figura 18. Fonte: EnsineMe Para que um diagrama de estados seja válido, ele precisa cumprir dois requisitos básicos: REQUISITO 1 Nenhuma combinação de estado atual e entradas pode corresponder à transição para mais de um próximo estado. A máquina de estados não pode “ficar em dúvida” de qual deve ser o próximo estado. REQUISITO 2 Toda combinação de estado atual e entradas precisa corresponder a um próximo estado. A máquina não pode “ficar sem saber para onde ir”. Observe a figura abaixo: javascript:void(0) javascript:void(0) Fonte: EnsineMe Figura 19: Diagrama de estados mal projetado Ao observar um diagrama de estados como o da figura anterior, podemos achar que está tudo normal, porém ao montar a tabela de transição de estado e de saída obtemos: Estado atual Próximo estado / saída se HD = 00 Próximo estado / saída se HD = 01 Próximo estado / saída se HD = 10 Próximo estado / saída se HD = 11 E0 E0 E1 E0 E1 E1 E1 E2 E0 - E1 E2 E2 E0 E0 E0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 7: Tabela de transição de estado e de saída do diagrama de estados da Figura 19. Fonte: EnsineMe Na tabela de transição de estado e de saída, fica claro que há dois problemas no diagrama de estado proposto: O estado E0 possui mais de um próximo estado para a entrada HD = 00 ; O estado E1 não prevê o próximo estado para a entrada HD = 10 . OBTENÇÃO DA LÓGICA COMBINACIONAL DE PRÓXIMO ESTADO A obtenção da lógica combinacional de próximo estado está intimamente ligada ao flip-flop utilizado, sendo, geralmente, o flip-flop D ou JK , mas pode ser usado qualquer tipo. Assim que estabelecido o tipo de flip-flop a ser utilizado, montamos a sua tabela de excitação. Observe a tabela de excitação dos flip-flops JK , SR , D e T : Flip-flop JK Qn → Qn + 1 J K 0 → 0 0 X 0 → 1 1 X 1 → 0 X 1 1 → 1 X 0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Flip-flop RS Qn → Qn + 1 S R 0 → 0 0 X 0 → 1 1 0 Flip-flop RS 1 → 0 0 1 1 → 1 X 0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Flip-flop D Qn → Qn + 1 D 0 → 0 0 0 → 1 1 1 → 0 0 1 → 1 1 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Flip-flop T Qn → Qn + 1 T Flip-flop T 0 → 0 0 0 → 1 1 1 → 0 1 1 → 1 0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Com a tabela de excitação e a tabela de próximo estado, podemos montar a tabela-verdade da lógica combinacional de próximo estado. Por exemplo, utilizando flip-flops JK e a Tabela 5 podemos montar a seguinte tabela-verdade: Estado atual Entrada Mudança de estado Flip-flop B Flip-flop A QB QA H JB KB JA KA 0 0 0 00 → 01 0 X 1 X 0 0 1 00 → 11 1 X 1 X 0 1 0 01 → 10 1 X X 1 Estado atual Entrada Mudança de estado Flip-flop B Flip-flop A QB QA H JB KB JA KA 0 1 1 01 → 11 0 X X 0 1 0 0 10 → 11 X 0 1 X 1 0 1 10 → 01 X 1 1 X 1 1 0 11 → 11 X 0 X 0 1 1 1 11 → 00 X 1 X 1 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela 8: Tabela verdade da lógica combinacional de próximo estado. Fonte: EnsineMe Após montar a tabela-verdade, extraímos as funções booleanas. Utilizando mapa de Karnaugh: MAPA DE KARNAUGH Tipo de mapeamento biunívoco que tem como ponto de partida uma tabela-verdade da função que está sendo analisada javascript:void(0) Fonte: EnsineMe Veja mais detalhes no vídeo a seguir: OBTENÇÃO DA LÓGICA COMBINACIONAL DE SAÍDA Note que, para as saídas, a tabela de transição de estado e de saída já corresponde à tabela- verdade. Se estivermos projetando uma máquina de estado no modelo Mealy, a saída é função do estado presente e das entradas. Caso a máquina de estado use o modelo Moore, a saída é função exclusiva do estado presente. De acordo com a Tabela 5, podemos escrever os mintermos em que a saída é ativa: MINTERMOS Método de reescrição de função lógica com intuito de reduzir o número de portas do circuito lógico que implementa tal função. F = ¯ QB . ¯ QA + QB . ¯ QA Atenção! Para visualização completa da equação utilize a rolagem horizontal Fazendo a simplificação por álgebra booleana: javascript:void(0) F = ¯ QB . ¯ QA + QB . ¯ QA = ¯ QA ¯ QB + QB = ¯ QA . 1 F = ¯ QA Atenção! Para visualização completa da equação utilize a rolagem horizontal PROJETO DE MÁQUINA DE ESTADOS SÍNCRONA Fazer o projeto de uma máquina de estados é um processo complexo que, em geral, depende bastante da experiência do engenheiro para obter o resultado ótimo, seja ele visto por um critério de custo de implementação, confiabilidade ou outro, de acordo com a finalidade do circuito. EXEMPLO Em um equipamento médico de suporte a vida são inclusas redundâncias e circuitos de segurança adicionais, haja vista que falhas não são toleradas. Já em acessórios de baixo custo, procura-se projetar o dispositivo mais barato possível de produzir que cumpra sua função. Veja a seguir as etapas que compõem o projeto de uma máquina de estado síncrona. Clique nos títulos para ver, por meio de exemplos simples, como funcionam essas etapas: ESPECIFICAR O PROJETO Nesta etapa você deve se perguntar: qual a finalidade do seu circuito, quais são as entradas e as saídas? Como ele deve se comportar nos diferentes cenários? Exemplo: Deseja-se um dispositivo que faça o controle de uma bomba d´água automática para uma caixa d’água. ( ) Entradas: Dois sensores de nível de água: um colocado no nível baixo e o segundo no nível alto, respectivamente, A e B . Esses sensores apresentam saída 1 se encontrando com a água e 0 , caso contrário; Indicador, se está chegando água na bomba d’água: C = 1 está chegando água, C = 0 caso contrário. Saída: Controle da bomba d’água: H = 1 ativa a bomba d’água, H = 0 desativa a bomba. Funcionamento desejado: Quando a água estiver abaixo do nível baixo, a bomba deve ser ligada até que a água ative o nível alto, então ela é desligada; Para evitar a queima da bomba, ela nunca deve ser ligada caso nãoesteja recebendo água; Caso o indicador de nível alto esteja ativo e o baixo esteja desativado ( BA = 10 ). Como essa seria uma situação fisicamente impossível, a máquina deve parar de funcionar devido ao mau funcionamento dos sensores de nível água. ESCOLHER MODELO: MOORE OU MEALY Esse passo pode ser feito já pensando no seguinte: a elaboração da máquina de estado. Algumas perguntas simples podem nos ajudar a decidir qual modelo utilizar: O sistema tem alguma restrição a saídas assíncronas/síncronas? Utilizar o modelo de Mealy proporcionará um diagrama de estados com uma menor quantidade de estados? No nosso exemplo, caso a bomba não esteja recebendo água, ela não deve ser ativada de forma alguma. Essa restrição é um indicativo de que o modelo de Mealy pode ser uma boa alternativa. Note que também poderíamos utilizar o Modelo de Moore, mas seria necessário utilizar mais estados no diagrama, gerando um circuito de maior complexidade e, consequentemente, mais caro de ser implementado. ELABORAR O DIAGRAMA DE ESTADOS Nesse passo, é preciso muito cuidado para não violar as regras dos diagramas de estados apresentadas em Diagramas de estado e tabela de transição e de saída. Para o nosso exemplo, propomos o seguinte diagrama de estados: Fonte: EnsineMe No estado E0 , a bomba está desligada e esperamos até que a água caia abaixo do nível do sensor A para ir para o estado E1 , no qual a bomba, dado que esteja chegando água na bomba ( C ), é ativada até a água atingir o sensor B . Então, a máquina volta ao estado E0 . No caso de BA = 10 , que indicaria um mau funcionamento de um dos sensores, a máquina vai para o estado E2 , e permanece travada, necessitando de intervenção para fazer os reparos necessários nos sensores e, então, reiniciar a máquina de estados. ASSOCIAR CÓDIGOS BINÁRIOS A CADA ESTADO A forma como associamos os códigos binários a cada um dos estados impacta diretamente na complexidade da lógica combinacional de próximo estado, principalmente quando trabalhando com uma máquina com maior quantidade de estados. Infelizmente, não existe maneira prática de achar a melhor forma de designar os estados, este é um dos passos muito influenciado pela experiência do projetista. Em nosso exemplo, temos 3 estados, então precisamos usar pelo menos 2 bits. Escolhemos E0 = 01 , E1 = 11 e E2 = 00 . ESCREVER A TABELA DE TRANSIÇÃO DE ESTADOS E SAÍDA Nesse passo, aproveitamos para checar se não cometemos algum erro no diagrama de estados, seja ele em relação às regras de construção apresentadas em Diagramas de estado e tabela de transição e de saída, ou em relação à lógica pensada para cumprir o que foi especificado no projeto. Em nosso exemplo, notamos que C não influencia a mudança de estados, assim temos: Estado atual Próximo estado / saída se BA = 00 Próximo estado / saída se BA = 01 Próximo estado / saída se BA = 10 Próximo estado / saída se BA = 11 E0 = 01 11/0 01/0 00/0 01/0 Estado atual Próximo estado / saída se BA = 00 Próximo estado / saída se BA = 01 Próximo estado / saída se BA = 10 Próximo estado / saída se BA = 11 E1 = 11 11/C 11/C 00/0 01/0 E2 = 00 00/0 00/0 00/0 00/0 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Pela tabela, fica claro que todos os estados preveem os próximos estados para todas as entradas, e não ocorre de nenhum par de estado atual/entradas resultar em mais de um próximo estado previsto. Dessa forma, o diagrama de estados proposto está OK! ESCOLHER O TIPO DE FLIP-FLOP A SER UTILIZADO Quando tiver liberdade para escolher qual tipo de flip-flop utilizar, recomendamos que escolha o tipo D . Como nesse flip-flop, a saída simplesmente copia a entrada. A lógica de próximo estado é simplesmente o próprio estado, facilitando o projeto. Em nosso exemplo utilizaremos o flip-flop D . OBTER A LÓGICA COMBINACIONAL DE PRÓXIMO ESTADO Como estamos utilizando flip-flops D , podemos montar diretamente os mapas de Karnaugh, dado que a lógica combinacional de próximo estado é o próprio estado futuro. Designando os flip-flops de 2 e 1, de forma que o estado é dado por Q2Q1 : Fonte: EnsineMe Repare que no estado não utilizado Q2. Q1 = 10 utilizamos don’t care, o que favorece a minimização da lógica de próximo estado. Essa abordagem é conhecida como Projeto Modo Mínimo. Em circuitos críticos, como os de suporte de vida, os estados não utilizados são direcionados para um estado utilizado predeterminado. Desse modo, se por alguma interferência externa a máquina for para um estado não previsto, garante-se que ela retorne para um estado conhecido. Essa abordagem é conhecida como Projeto Risco Mínimo. OBTER A LÓGICA COMBINACIONAL DE SAÍDA Em nosso exemplo, a saída só está ativa em dois casos, assim é fácil extraí-la direto da tabela de transição estado e saída: H = Q2 . Q1 . ¯ B . ¯ A . C + Q2. Q1. ¯ B . A . C = Q2 . Q1 . ¯ B . C . ( ¯ A + A) H = Q2 . Q1 . ¯ B . C Atenção! Para visualização completa da equação utilize a rolagem horizontal Por último, note que precisamos ligar o clear e o preset dos flip-flops de forma a criar uma entrada para inicialização da máquina de estado. Nesse exemplo, é uma boa ideia iniciar no estado E0 = 01 . VERIFICANDO O APRENDIZADO 1. (PROVA DE ENGENHEIRO DE EQUIPAMENTOS JÚNIOR – ELETRÔNICA, 2014. PETROBRAS). SEJA A SEQUÊNCIA DE ESTADOS A SEGUIR, REPRESENTADA PELOS BITS Q3Q2Q1Q0 , IMPLEMENTADA POR 4 FLIP-FLOPS D . A LÓGICA MÍNIMA, EM TERMOS DE SOMA DE PRODUTOS, QUE IMPLEMENTA A ENTRADA D2 É: A) Q1 B) Q1Q0 C) Q2Q1 D) ¯ Q2Q1Q0 E) ¯ Q3 ¯ Q2Q1Q0 2. ASSINALE A ALTERNATIVA QUE COMPLETA CORRETAMENTE AS LACUNAS. NA MÁQUINA DE ESTADOS SÍNCRONA OS ESTADOS SÓ PODEM MUDAR NOS MOMENTOS DEFINIDOS PELO BORDO DESIGNADO DO RELÓGIO. CONTUDO, NO MODELO _________ A SAÍDA DEPENDE ___________________, PODENDO VARIAR DE FORMA ASSÍNCRONA. A) Assíncrono, do estado futuro. B) Mealy, apenas das entradas. C) Moore, apenas do estado presente. D) Mealy, estado presente e das entradas. E) Moore, estado presente e das entradas. GABARITO 1. (Prova de Engenheiro de Equipamentos Júnior – Eletrônica, 2014. Petrobras). Seja a sequência de estados a seguir, representada pelos bits Q3Q2Q1Q0 , implementada por 4 flip-flops D . A lógica mínima, em termos de soma de produtos, que implementa a entrada D2 é: A alternativa "B " está correta. Montando a tabela-verdade de Q2 : Estado atual Próximo estado Q3 Q2 Q1 Q0 Q2 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 Estado atual Próximo estado 0 1 0 1 X 0 1 1 0 X 0 1 1 1 X 1 0 0 0 X 1 0 0 1 X 1 0 1 0 X 1 0 1 1 X 1 1 0 0 X 1 1 0 1 X 1 1 1 0 X 1 1 1 1 X Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Como o flip-flop utilizado é o D, D2 = Q2 Utilizando o mapa de Karnaugh: D2 = Q1Q0 2. Assinale a alternativa que completa corretamente as lacunas. Na máquina de estados síncrona os estados só podem mudar nos momentos definidos pelo bordo designado do relógio. Contudo, no Modelo _________ a saída depende ___________________, podendo variar de forma assíncrona. A alternativa "D " está correta. No Modelo Mealy, a saída depende do estado atual e das entradas. Dessa forma, mesmo sem mudar de estado, a saída da máquina de estados pode variar devido a uma mudança nas entradas. Assim, no Modelo de Mealy a saída pode variar de maneira assíncrona. CONCLUSÃO CONSIDERAÇÕES FINAIS Neste tema estudamos os contadores assíncronos e síncronos, multivibradores monoestáveis e registradores de deslocamento. São estes os circuitos sequenciais clássicos, sendo amplamente utilizados. Também aprendemos sobre diagramas de estado, cuja aplicação ultrapassa a fronteira da Eletrônica Digital, e os passos básicos para podermos projetar máquinas de estado síncronas. O conhecimento adquirido neste tema será fundamental para a compreensão dos sistemas digitais modernos, tais como os microprocessadores. Agora,somos capazes de projetar circuitos para finalidades específicas! AVALIAÇÃO DO TEMA: REFERÊNCIAS CAPUANO, F. G. Sistemas digitais circuitos combinacionais e sequenciais. São Paulo: Érica, 2014. DACHI, E. P; HAUPT, A. G. Eletrônica digital. São Paulo: Blucher, 2018. IDOETA, I.V.; CAPUANO, F. G. Elementos de Eletrônica Digital. 41. ed. São Paulo: Érica, 2012. MENDONÇA, A.; ZELENOVSKY, R. Eletrônica Digital: curso prático e exercícios. 2. ed. Rio de Janeiro: MZ, 2007. EXPLORE+ O capítulo 8 do livro Eletrônica Digital, 2ª ed, de Alexandre Mendonça e Ricardo Zelenovsky. Ele apresenta os mais populares circuitos integrados sequenciais. CONTEUDISTA Felipe Gonçalves Serrenho CURRÍCULO LATTES javascript:void(0);
Compartilhar