Contadores assíncronos

Eletrônica Digital - Contadores Assíncronos Flip-Flop J-K - Professor Anibal - Oficina X (Pode 2019).

$config[ads_text] not found
Anonim

Contadores assíncronos

Capítulo 11 - Circuitos Sequenciais


Na seção anterior, vimos um circuito usando um flip-flop JK que contava para trás em uma sequência binária de dois bits, de 11 a 10 para 01 a 00. Como seria desejável ter um circuito que pudesse contar para frente e não apenas para trás, valeria a pena examinar novamente uma seqüência de contagem para a frente e procurar mais padrões que pudessem indicar como construir um circuito desse tipo.

Como sabemos que sequências de contagem binária seguem um padrão de divisão de frequência de oitava (fator de 2), e que os multivibradores flip-flop JK configurados para o modo “alternar” são capazes de realizar esse tipo de divisão de frequência, podemos imaginar um circuito composto de vários flip-flops JK, em cascata para produzir quatro bits de saída. O principal problema que enfrentamos é determinar como conectar esses flip-flops juntos para que eles alternem nos momentos certos para produzir a sequência binária adequada. Examine a sequência de contagem binária a seguir, prestando atenção aos padrões que precedem a “alternância” de um bit entre 0 e 1:

Observe que cada bit nessa sequência de quatro bits alterna quando o bit anterior (o bit tem uma importância menor ou o peso do local), alterna em uma direção específica: de 1 a 0. Setas pequenas indicam esses pontos na sequência em que um pouco alterna, a cabeça da seta apontando para o bit anterior passando de um estado “alto” (1) para um estado “baixo” (0):

Começando com quatro flip-flops JK conectados de modo a estar sempre no modo “toggle”, precisamos determinar como conectar as entradas do relógio de tal maneira que cada bit seguinte alterne quando o bit antes dele passar de 1 para 0. As saídas Q de cada flip-flop servirão como os respectivos bits binários da contagem final de quatro bits:

Se usássemos flip-flops com trigger de borda negativa (símbolos de bolha nas entradas de clock), poderíamos simplesmente conectar a entrada de clock de cada flip-flop à saída Q do flip-flop antes dele, de modo que quando o bit antes ele muda de 1 para 0, a “borda descendente” daquele sinal “relógio” o próximo flip-flop para alternar o próximo bit:

Este circuito produziria as seguintes formas de onda de saída, quando "clocked" por uma fonte repetitiva de pulsos de um oscilador:

O primeiro flip-flop (aquele com a saída Q 0 ), possui uma entrada de clock acionada por borda positiva, então ele alterna com cada borda ascendente do sinal de clock. Observe como o sinal de clock neste exemplo tem um ciclo de trabalho menor que 50%. Mostrei o sinal dessa maneira com o propósito de demonstrar como o sinal de clock não precisa ser simétrico para obter bits de saída confiáveis ​​e “limpos” em nossa sequência binária de quatro bits. No primeiro circuito de flip-flop mostrado neste capítulo, usei o próprio sinal de clock como um dos bits de saída. No entanto, esta é uma prática ruim no design do contador, porque requer o uso de um sinal de onda quadrada com um ciclo de 50% (tempo “alto” = tempo “baixo”) para obter uma seqüência de contagem onde cada etapa faz uma pausa pelo mesmo período de tempo. O uso de um flip-flop JK para cada bit de saída, no entanto, nos alivia da necessidade de ter um sinal de relógio simétrico, permitindo o uso de praticamente qualquer variedade de formas de onda alta / baixa para incrementar a sequência de contagem.

Como indicado por todas as outras setas no diagrama de pulsos, cada bit de saída sucessivo é alternado pela ação do bit anterior passando de “alto” (1) para “baixo” (0). Esse é o padrão necessário para gerar uma sequência de contagem “para cima”.

Uma solução menos óbvia para gerar uma sequência “up” usando flip-flops acionados por borda positiva é “clock” em cada flip-flop usando a saída Q 'do flip-flop anterior ao invés da saída Q. Como a saída Q 'sempre será exatamente o estado oposto da saída Q em um flip-flop JK (nenhum estado inválido com este tipo de flip-flop), uma transição de alta para baixa na saída Q será acompanhada por uma transição de baixa para alta na saída Q '. Em outras palavras, cada vez que a saída Q de um flip-flop transitar de 1 para 0, a saída Q 'do mesmo flip-flop fará a transição de 0 para 1, fornecendo o pulso de clock positivo que precisaríamos para alternar flip-flop com borda positiva no momento certo:

Uma forma de expandir as capacidades de qualquer um desses dois circuitos de contagem é considerar as saídas Q 'como outro conjunto de quatro bits binários. Se examinarmos o diagrama de pulsos para tal circuito, veremos que as saídas Q 'geram uma seqüência de contagem decrescente, enquanto as saídas Q geram uma seqüência de up -count:

Infelizmente, todos os circuitos de contagem mostrados, por sua vez, compartilham um problema comum: o efeito cascata . Este efeito é visto em certos tipos de somadores binários e circuitos de conversão de dados, e é devido a atrasos de propagação acumulativa entre portas em cascata. Quando a saída Q de um flip-flop transita de 1 para 0, ele comanda o próximo flip-flop para alternar. Se a próxima alternância de flip-flop for uma transição de 1 para 0, ela comandará o flip-flop depois dele para alternar também, e assim por diante. No entanto, como há sempre uma pequena quantidade de atraso de propagação entre o comando para alternar (o pulso de clock) e a real resposta de alternância (saídas Q e Q 'mudam de estados), qualquer flip-flop subsequente a ser alternado irá alternar algum tempo após o primeiro flip-flop se alternou. Assim, quando vários bits alternam em uma sequência de contagem binária, eles não alternarão exatamente ao mesmo tempo:

Como você pode ver, quanto mais bits alternarem com um determinado pulso de clock, mais grave será o tempo de atraso acumulado de LSB para MSB. Quando ocorre um pulso de clock em tal ponto de transição (digamos, na transição de 0111 para 1000), os bits de saída irão "ondular" em sequência de LSB para MSB, pois cada bit sucessor alterna e comanda o próximo bit para alternar também, com uma pequena quantidade de atraso de propagação entre cada bit de alternância. Se dermos uma olhada de perto nesse efeito durante a transição de 0111 a 1000, podemos ver que haverá falsas contagens de saída geradas no curto período de tempo em que o efeito “ondulação” ocorre:

Em vez de fazer uma transição limpa de uma saída “0111” para uma saída “1000”, o circuito contador irá rapidamente passar de 0111 para 0110 para 0100 para 0000 para 1000, ou de 7 para 6 para 4 para 0 e então para 8. Este Comportamento ganha o circuito contador o nome do contador de ondulação ou contador assíncrono .

Em muitas aplicações, esse efeito é tolerável, já que a ondulação acontece muito, muito rapidamente (a largura dos atrasos foi exagerada aqui como uma ajuda para entender os efeitos). Se tudo o que queríamos fazer era dirigir um conjunto de diodos emissores de luz (LEDs) com as saídas do contador, por exemplo, essa breve ondulação não teria nenhuma conseqüência. No entanto, se quisermos usar esse contador para direcionar as entradas “select” de um multiplexador, indexar um ponteiro de memória em um circuito de microprocessador (computador), ou executar alguma outra tarefa onde falsos resultados possam causar erros espúrios, isso não seria aceitável . Existe uma maneira de usar esse tipo de circuito de contador em aplicações sensíveis a saídas falsas, geradas por ripple, e envolve um princípio conhecido como strobing .

A maioria dos circuitos do decodificador e do multiplexador é equipada com pelo menos uma entrada chamada “enable”. A (s) saída (s) de tal circuito estará ativa somente quando a entrada de habilitação for ativada. Podemos usar essa entrada de habilitação para sinalizar o circuito que recebe a saída do contador de ondulação, de modo que ela seja desabilitada (e, portanto, não responda à saída do contador) durante o breve período de tempo em que as saídas do contador podem estar onduladas e habilitada somente quando o tempo passou desde o último pulso de relógio que toda ondulação terá cessado. Na maioria dos casos, o sinal de efeito estroboscópico pode ser o mesmo pulso de clock que aciona o circuito de contador:

Com uma entrada Habilitada ativa baixa, o circuito receptor responderá à contagem binária do circuito contador de quatro bits somente quando o sinal do relógio estiver “baixo”. Assim que o pulso do relógio ficar “alto”, o circuito receptor irá parar de responder para a saída do circuito do contador. Como o circuito do contador é acionado pela borda positiva (conforme determinado pela primeira entrada de clock do flip-flop), toda a ação de contagem ocorre na transição de baixa para alta do sinal de clock, o que significa que o circuito receptor será desativado antes que ocorra qualquer alternância nos quatro bits de saída do circuito de contador. O circuito receptor não será ativado até que o sinal de clock retorne a um estado baixo, que deve ser um tempo longo o suficiente, depois que toda a ondulação deixou de ser “segura” para permitir que a nova contagem tenha efeito no circuito receptor. O parâmetro crucial aqui é o tempo “alto” do sinal do relógio: ele deve ser pelo menos tão longo quanto o período de oscilação esperado máximo do circuito do contador. Caso contrário, o sinal do relógio habilitará prematuramente o circuito receptor, enquanto alguma ondulação ainda estiver ocorrendo.

Outra desvantagem do circuito contador assíncrono, ou ripple, é a velocidade limitada. Embora todos os circuitos de porta sejam limitados em termos de frequência máxima de sinal, o projeto de circuitos de contador assíncrono agrava esse problema ao tornar os adiamentos de propagação aditivos. Assim, mesmo que o efeito estroboscópico seja usado no circuito receptor, um circuito contador assíncrono não pode ser cronometrado em qualquer frequência maior do que aquela que permite que o maior atraso de propagação acumulado possível decorrerá bem antes do próximo pulso.

A solução para este problema é um contra-circuito que evita completamente o ripple. Tal circuito de contador eliminaria a necessidade de projetar um recurso “estroboscópico” em qualquer circuito digital que usasse a saída do contador como entrada, e também desfrutaria de uma velocidade operacional muito maior do que seu equivalente assíncrono. Este projeto de circuito de contador é o assunto da próxima seção.

  • REVEJA:
  • Um contador “up” pode ser feito conectando as entradas de clock dos flip-flops acionados por JK com borda positiva às saídas Q 'dos ​​flip-flops precedentes. Outra maneira é usar flip-flops acionados por borda negativa, conectando as entradas de clock às saídas Q dos flip-flops anteriores. Em ambos os casos, as entradas J e K de todos os flip-flops são conectadas a V cc ou V dd para sempre serem “altas”.
  • Circuitos contadores feitos de flip-flops JK em cascata onde cada entrada de clock recebe seus pulsos da saída do flip-flop anterior invariavelmente exibem um efeito de ondulação, onde contagens falsas de saída são geradas entre algumas etapas da sequência de contagem. Esses tipos de circuitos de contador são chamados de contadores assíncronos ou contadores de oscilação .
  • O efeito estroboscópico é uma técnica aplicada a circuitos que recebem a saída de um contador assíncrono (ripple), de modo que as contagens falsas geradas durante o tempo de ondulação não terão efeito negativo. Essencialmente, a entrada de habilitação de tal circuito é conectada ao pulso de clock do contador de tal forma que é habilitada somente quando as saídas do contador não estão mudando, e será desabilitada durante esses períodos de mudança de saídas do contador onde a ondulação ocorre.