Você está na página 1de 45

Contadores Assíncronos

Tiago Alves de Oliveira


Introdução

• Aprendemos anteriormente como os flip-flops podem ser


conectados para funcionar como contadores e registradores.
• Veremos em detalhe os conceitos subjacentes e as características
típicas de diferentes tipos de contadores e registradores.
• Nossa discussão englobará desde como portas lógicas são usadas
para controlar os flip-flops, para criar uma funcionalidade de
contador ou registrador específica, até o uso de linguagens de
descrição de hardware, para conseguir realizar o mesmo.
• Vamos enfatizar diagramas de tempo para ilustrar a operação de
circuitos de contadores e registradores.
• Diagramas de tempo fornecem uma ferramenta poderosa para
demonstrar graficamente as relações entre os sinais em um sistema
digital
Introdução

• Simuladores de circuitos digitais apresentam seus resultados de


análise como diagramas de tempo.

• Isso nos permite determinar se a funcionalidade e o tempo estão


corretos para uma aplicação.

• Questões de tempo também estão se tornando cada dia mais


críticas, com sistemas digitais de alta velocidade.
• Muitos sistemas podem ser capazes de operar a velocidades mais
baixas, mas falham em frequências mais altas.
• Ser capaz de interpretar informações de diagramas de tempo é vital
para um engenheiro ou um técnico.
Contadores Assíncronos

• A Figura abaixo mostra o circuito de um contador binário de quatro


bits
Contadores Assíncronos

• Seguem os seguintes pontos referentes à operação desse contador:


1. Os pulsos de clock são aplicados apenas na entrada CLK do flip-flop A. Assim, o flip-flop
A comutará (mudará para o estado oposto) cada vez que ocorrer uma borda de descida
(nível ALTO para BAIXO) no pulso de clock. Observe que J = K = 1 para todos os FFs.
2. A saída normal do flip-flop A funciona como clock de entrada para o flip-flop B, sendo
que o flip-flop B comuta a cada vez que a saída A muda de 1 para 0. Da mesma
maneira, o flip-flop C comuta quando B muda de 1 para 0, e o flip-flop D comuta
quando C muda de 1 para 0.
3. As saídas dos FFs D, C, B e A representam um número binário de quatro bits, sendo D o
MSB. Vamos considerar que todos os FFs tenham sido resetados para o estado 0 (as
entradas de CLEAR não aparecem).
4. Após a borda de descida do décimo quinto pulso de clock, os FFs do contador estão na
condição 1111. Na décima sexta borda de descida do clock, o flip-flop A muda de 1 para
0, fazendo o flip-flop B mudar de 1 para 0, e assim por diante, até que o contador
chegue ao estado 0000. Em outras palavras, o contador realizou um ciclo completo de
contagem (de 0000 a 1111) e foi reciclado de volta para 0000, a partir de onde
começará um novo ciclo de contagem, conforme os pulsos subsequentes de clock
forem aplicados.
Contadores Assíncronos
Contadores Assíncronos

• Nesse contador, a saída de cada FF aciona a entrada CLK do FF seguinte.


• Esse tipo de contador é denominado contador assíncrono, porque os FFs não
mudam de estado exatamente com o mesmo sincronismo com que os
pulsos de clock são aplicados; apenas o flip-flop A responde aos pulsos de
clock.
• O FF B tem de esperar o FF A mudar de estado antes que ele possa comutar;
o FF C tem de esperar pelo FF B, e assim por diante.
• Assim, existirá atraso entre as respostas dos FFs sucessivos.
• Esse atraso é normalmente de 5 a 20 ns por FF.
• E, em alguns casos, como veremos, pode ser problemático.
• Esse tipo de contador também é frequentemente denominado contador
ondulante (ripple counter), devido à maneira de os FFs responderem um
após o outro como um tipo de efeito de ondulação.
• Usaremos os termos contador assíncrono e contador ondulante
indistintamente.
Fluxo do sinal

• É uma convenção, nos esquemas de circuitos, desenhá-los (sempre que possível)


com o fluxo de sinal indo da esquerda para a direita, com as entradas do lado
esquerdo e as saídas do lado direito.
• Nessa etapa, quebraremos essa convenção com frequência, especialmente em
diagramas que mostram contadores.
• Por exemplo, na Figura anterior, a entrada CLK de cada FF está do lado direito, as
saídas estão do lado esquerdo e a entrada do sinal de clock vem da direita.
• Usamos essa configuração porque facilita a compreensão e o acompanhamento
do funcionamento do contador, pois a ordem dos FFs é a mesma dos bits no
número binário que representa a contagem.
• Em outras palavras, o FF A (que é o LSB) é o FF mais à direita, e o FF D (que é o
MSB) é o FF mais à esquerda.
• Se aplicássemos a convenção de fluxo de sinal da esquerda para a direita,
colocaríamos o FF A do lado esquerdo e o FF D do lado direito, que apresenta
disposição oposta à do número binário que o contador representa.
• Em alguns dos diagramas de contadores que aparecerão futuramente,
empregaremos a convenção de fluxo de sinal da esquerda para a direita.
Exemplo

• O contador mostrado na Figura anterior começa no estado 0000, e


então os pulsos de clock são aplicados. Algum tempo depois, são
removidos e os FFs dos contadores apresentam o estado 0011.
Quantos pulsos de clock ocorreram?
Resposta

• A resposta parece ser 3, visto que 0011 é o equivalente binário de 3.


Entretanto, com as informações dadas, não há como dizer se o
contador foi reciclado ou não. Isso significa que podem ter ocorrido
19 pulsos de clock; os primeiros 16 teriam trazido o contador de
volta para 0000, e os últimos três o teriam levado para 0011. Podem
ter ocorrido 35 pulsos (dois ciclos completos de contagem mais três
pulsos) ou 51 pulsos, e assim por diante.
Módulo

• O contador mostrado na Figura anterior tem 16 estados distintos (de


0000 a 1111).
• Assim, é um contador ondulante de módulo 16.
• Lembre-se de que o módulo é sempre igual ao número de estados
que o contador percorre em cada ciclo completo de contagem antes
de reciclar ao estado inicial.
• O módulo pode ser ampliado simplesmente acrescentando mais FFs
ao contador. Ou seja:

𝑀𝑜𝑑𝑢𝑙𝑜 = 2𝑁

• em que N é o número de FFs conectados na configuração mostrada


na Figura anterior.
Exemplo

• Um contador é necessário para contar o número de itens que


passam por uma esteira de transporte. Uma fotocélula combinada a
uma fonte de luz é usada para gerar um único pulso cada vez que um
item passa pelo feixe de luz. O contador tem de ser capaz de contar
mil itens. Quantos FFs são necessários?
Resposta

• Basta determinar qual valor de N é necessário, de modo que:


2N ≥ 1000.
• Como 29 = 512, 9 FFs não são suficientes.
• 210 = 1024, logo, 10 FFs produzem um contador que conta até
11111111112 = 102310.
• Portanto, devemos usar 10 FFs.
• Poderíamos usar mais de 10 FFs, mas seria desperdício, visto que
qualquer FF além dos dez não seria necessário.
Divisão da Contagem e Frequência

• Veja a Figura abaixo.

• Cada FF tem suas entradas J e K em nível 1, para que ele mude de estado
(comute) sempre que o sinal em sua entrada de CLK for do nível ALTO para o
BAIXO.
• Os pulsos de clock são aplicados apenas na entradaCLK do FF Q0. A saída de
Q0 está conectada na entrada CLK do FF Q1, e a saída de Q1 está conectada
na entrada CLK do FF Q2
Divisão da Contagem e Frequência

• Formas de onda para a configuração anterior:


Divisão da Contagem e Frequência

• Os pontos importantes a serem observados são os seguintes:


• O FF Q0 comuta na borda de descida de cada pulso na entrada de
clock. Assim, a forma de onda da saída Q0 tem uma frequência que é
exatamente a metade da frequência dos pulsos de clock.
• O FF Q1 comuta de estado cada vez que a saída Q0 vai do nível ALTO
para o BAIXO. A forma de onda de Q1 tem uma frequência
exatamente igual à metade da frequência da saída Q0 e, portanto, um
quarto da frequência do sinal de clock.
• O FF Q2 comuta de estado cada vez que a saída Q1 vai do nível ALTO
para o BAIXO. Assim, a forma de onda Q2 tem a metade da
frequência de Q1 e, portanto, um oitavo da frequência de clock.
• A saída de cada FF é uma forma de onda quadrada (tem ciclo de
trabalho de 50 por cento).
Divisão da Contagem e Frequência

• Como vimos, cada FF divide a frequência do sinal de sua entrada por 2.

• Assim, se acrescentarmos um quarto FF a essa cadeia, ele teria frequência


igual a 1/16 da frequência de clock, e assim por diante.

• Usando um número apropriado de FFs, esse circuito pode dividir uma


frequência por qualquer potência de 2.

• Especificamente, usando N flip-flops produziríamos uma frequência de saída


do último FF que seria igual a 1/2N da frequência de entrada.

• Essa aplicação com flip-flops é conhecida como divisor de frequência.


Divisão da Contagem e Frequência

• Muitas aplicações requerem um divisor de frequência.

• Por exemplo, seu relógio de pulso é certamente um relógio ‘quartzo’.

• O termo relógio quartzo significa que um cristal de quartzo é usado


para gerar um oscilador com frequência bastante estável.

• A frequência natural de resso- nância do cristal de quartzo do relógio


é em torno de 1 MHz ou mais.
• Para obter no display a atualização do mostrador de segundos, que
ocorre uma vez a cada segundo, a frequência do oscilador é dividida
por um valor que produzirá uma frequência de saída bastante estável
com uma precisão de 1 Hz.
Diagrama de transição de estados

• Outra maneira de mostrar como os estados dos FFs mudam a cada


pulso de clock aplicado é pelo uso de um diagrama de transição de
estados, conforme está ilustrado abaixo:
Diagrama de transição de estados

• As setas que conectam um círculo ao outro mostram como ocorre a


mudança de um estado para o outro, conforme os pulsos de clock
são aplicados.
• Observando um estado de um círculo em particular, vemos qual é o
estado anterior e o posterior.
• Por exemplo, observando o estado 000, vemos que ele é alcançado
quando o contador está no estado 111, e o pulso de clock é aplicado.
• Da mesma maneira, vemos que o estado 000 sempre é seguido pelo
estado 001.
• Usaremos diagramas de transição de estados para ajudar a
descrever, analisar e projetar contadores e outros circuitos
sequenciais.
Exemplo I

• Considere que o contador de módulo 8 mostrado na Figura anterior


esteja no estado 101. Qual será o estado (a contagem) após a
aplicação de 13 pulsos?
Resposta

• Localize o estado 101 no diagrama de transição de estados. Siga por


oito mudanças de estado.
• Você deve ter retornado ao estado 101. Agora, continue por mais
cinco mudanças de estado (total de 13).
• Você deve estar agora no estado 010.
• Observe que, como esse é um contador de módulo 8, ele necessita
de oito transições de estado para fazer uma excursão completa no
diagrama e retornar ao estado inicial.
Exemplo II
• Considere um circuito de um contador que possui seis FFs
conectados, segundo o diagrama da Figura abaixo (isto é, Q5, Q4, Q3,
Q2, Q1, Q0).
a) Determine o módulo do contador.
b) Determine a frequência na saída do último FF (Q5) quando a
frequência do clock de entrada for de 1 MHz.
c) Qual é a faixa de estados de contagem desse contador?
d) Considere como estado (contagem) inicial o valor 000000. Qual
será o estado do contador após 129 pulsos?
Respostas

a) Módulo = 26 = 64.
b) A frequência no último FF é igual à frequência do clock de entrada
dividida pelo módulo do contador. Ou seja,
1 𝑀𝐻𝑧
𝑓(𝑒𝑚 𝑄5) = = 15,625 𝑘𝐻𝑧
64
c) Esse contador contará de 0000002 a 1111112 (0 a 6310) em um
total de 64 estados. Observe que o número de estados é o mesmo
que o valor do módulo.
d) Visto que esse contador é de módulo 64, ele retorna para o estado
inicial a cada 64 pulsos de clock. Portanto, após 128 pulsos, o
contador retorna para 000000. O 129º pulso leva o contador para
a contagem 000001.
Exercícios

1. Um sinal de clock de 20 kHz é aplicado em um FF J-K com J = K = 1.


Qual é a frequência da forma de onda de saída do FF?

2. Quantos FFs são necessários para construir um contador que


conte de 0 a 25510?

3. Qual é o módulo desse contador?

4. Qual será a frequência de saída do oitavo FF quando a frequência


de clock for de 512 kHz?

5. Se esse contador começar em 00000000, qual será seu estado


após 520 pulsos?
Respostas

1. 10 kHz.

2. Oito.

3. 256.

4. 2 kHz .

5. 000010002 = 810
Divisão da Frequência

• Então nós aprendemos que em um contador básico cada FF


proporciona uma forma de onda de saída que é exatamente a
metade da frequência da forma de onda na entrada CLK.
• Para ilustrar, considere que o sinal de clock mostrado na Figura
abaixo seja 16 kHz.
Divisão da Frequência

• A Figura abaixo mostra a forma de onda de saída dos FFs.

• A forma de onda na saída A é uma onda quadrada de 8 kHz, na saída


B ela é de 4 kHz, na saída C é de 2 kHz e na saída D é de 1 kHz.
• Observe que a saída do FF D tem frequência igual à frequência
original do clock dividida por 16.
Divisão da Frequência

• Em geral:
Em qualquer contador, o sinal na saída do último FF (ou seja,
o MSB) tem frequência igual à do clock de entrada dividida
pelo módulo do contador.

• Por exemplo, em um contador de módulo 16, a saída a partir do


último FF tem uma frequência de 1/16 da frequência do clock de
entrada.
• Assim, ele pode ser chamado de contador divisor por 16.
• Da mesma maneira, um contador de módulo 8 tem frequência de
saída de 1/8 da de entrada; ele é um contador divisor por 8.
Ciclo de trabalho

• Como podemos ver na Figura anterior, em cada borda de descida de


CLOCK, a saída do FF A vai comutar.
• Com um sinal de clock de frequência constante aplicado, significa
que a forma de onda A será BAIXA, por um montante de tempo igual
ao período de CLOCK, e então será ALTA, pelo mesmo período de
tempo.
• O montante de tempo que o sinal é ALTO é referido como largura de
pulso, tw.
• O flip-flop A produz uma forma de onda de saída periódica, já que ela
terá apenas um único pulso ocorrendo em cada ciclo da forma de
onda repetindo.
• O período da forma de onda A é a soma do tempo BAIXO com o
ALTO, daquele sinal.
Ciclo de trabalho

• Da mesma maneira, o sinal A é usado para fazer o clock do flip-flop B,


de maneira que a saída B será BAIXA ou ALTA por um período de
tempo igual ao da saída A.
• Os flip-flops C e D terão a mesma ação.
• A largura do pulso, para cada sinal de saída em nosso contador
binário, é exatamente metade do período daquela forma de onda.
• Lembre-se de que o ciclo de trabalho de uma forma de onda
periódica é definido como a razão entre a largura do pulso e o
período, T, da forma de onda, e é expresso como percentagem.

𝑡𝑤
Ciclo de trabalho = × 100%
𝑇
Ciclo de trabalho

• Portanto, podemos ver que um contador binário, cujo MOD = 2N,


sempre produzirá sinais de saída que têm um ciclo de trabalho de 50
por cento.
• Como veremos nas seções posteriores, se o número MOD para um
contador for menor que 2N, então o ciclo de trabalho para alguns dos
sinais de saída FF não será 50 por cento.
• Na realidade, podem ocorrer algumas saídas de FF que não têm ciclo
de trabalho definido, pois as formas de onda não têm padrão
periódico simples.
• Para um contador com uma sequência de contagem truncada (isto é,
MOD < 2N), será necessário analisar sua operação para determinar
sequências de contagem, frequências de sinal de saída e ciclos de
trabalho de forma de onda.
Exercícios

1. Verdadeiro ou falso: em contadores assíncronos, todos os FFs


mudam de estado ao mesmo tempo.

2. Considere que o contador, mostrado na Figura abaixo, esteja com


a contagem 0101. Qual será a contagem, após 27 pulsos de clock?

3. Qual seria o módulo do contador, se três FFs fossem


acrescentados?
Respostas

1. Falso.

2. 0000.

3. 128.
Atraso de Propagação em Contadores
Assíncronos
• Contadores ondulantes são o tipo mais simples de contadores
binários, visto que requerem poucos componentes para produzir a
operação de contagem desejada.
• Entretanto, têm uma grande desvantagem, causada pelo princípio
básico de operação: cada FF é disparado pela transição de saída do
precedente.
• Em virtude do tempo de atraso de propagação (tpd), inerente a cada
FF, o segundo não responderá por um intervalo de tempo tpd, após o
primeiro FF receber uma transição ativa do clock; o terceiro FF não
responderá por um intervalo de tempo igual a 2 x tpd, após a
transição do clock, e assim por diante.
• Em outras palavras, os atrasos de propagação dos FFs se acumulam,
de modo que o enésimo FF não muda de estado até que um intervalo
de tempo igual a N x tpd, após a transição do clock, tenha ocorrido.
Atraso de Propagação em Contadores
Assíncronos
• Isso é ilustrado na Figura abaixo, em que as formas de onda para o
contador ondulante de três bits são mostradas.
Atraso de Propagação em Contadores
Assíncronos
• A figura anterior mostra uma situação na qual um pulso de entrada
ocorre a cada 1.000 ns (o período do clock é T = 1.000 ns) e
considera-se que cada FF tem atraso de propagação de 50 ns (tpd = 50
ns).
• Observe que a saída do flip-flop A comuta 50 ns, após a borda de
descida do clock de cada pulso de entrada.
• De modo similar, a saída B comuta 50 ns depois que a saída A vai de
1 para 0, e a saída C comuta 50 ns depois que a saída B vai de 1 para
0. C
• omo resultado, quando a quarta entrada de borda de descida ocorre,
a saída C vai para nível ALTO após um atraso de 150 ns.
• Nessa situação, o contador opera adequadamente para que os FFs
vão para seus estados corretos, representando a contagem binária.
• Entretanto, a situação piora se os pulsos de entrada forem aplicados
em frequência muito maior.
Atraso de Propagação em Contadores
Assíncronos
• Observe agora a figura abaixo:
Atraso de Propagação ã̧ o em Contadores
Assíncronos
• A formas de onda da figura anterior mostram o que acontece se os
pulsos de entrada ocorrerem a cada 100 ns.
• Mais uma vez, a saída de cada FF responde 50 ns após a transição de
1 para 0 na entrada CLK (observe a mudança na escala relativa de
tempo).
• A situação particular de interesse é a que ocorre após a borda de
descida do quarto pulso de entrada, em que a saída C não vai para
nível ALTO até que tenham decorrido 150 ns, que é o mesmo tempo
que a saída A gasta para mudar para nível ALTO em resposta ao
quinto pulso de entrada.
• Em outras palavras, a condição C = 1, B = A = 0 (contagem 100) nunca
ocorrerá, porque a frequência de entrada é muito alta.
• Isso poderia causar um sério problema caso essa condição fosse
supostamente usada para controlar outra operação em um sistema
digital.
Atraso de Propagação em Contadores
Assíncronos
• Problemas como esse poderão ser evitados se o período entre os
pulsos de entrada for bem maior que o atraso de propagação total
do contador.
• Ou seja, para uma operação adequada é preciso que:

𝑇𝑐𝑙𝑜𝑐𝑘 ≥ 𝑁 × 𝑡𝑝𝑑
• em que N = número de FFs. Em termos de frequência de entrada, a
frequência máxima que pode ser usada é dada por:

1
𝑓𝑚𝑎𝑥 =
𝑁 × 𝑡𝑝𝑑
Atraso de Propagação em Contadores
Assíncronos
• Por exemplo, suponha que um contador ondulante de quatro bits
seja construído usando o flip-flop J-K 74LS112. No caso, esse CI tem
seu tPLH = 16 ns e tPHL = 24 ns como atrasos de propagação de CLK
para a saída Q. Para calcular fmax, consideraremos o ‘pior caso’, ou
seja, usaremos tpd = tPHL = 24 ns, de modo que:

1
𝑓𝑚𝑎𝑥 = = 10,4 𝑀𝐻𝑧
4 × 24
• À medida que o número de FFs aumenta, o atraso de propagação
total aumenta e fmax diminui. Por exemplo, um contador ondulante
que usa seis FFs 74LS112 terá:
1
𝑓𝑚𝑎𝑥 = = 6,9 𝑀𝐻𝑧
6 × 24
Atraso de Propagação em Contadores
Assíncronos
• Assim, os contadores assíncronos não são úteis para frequências
muito altas, especialmente para um grande número de bits.
• Outro problema provocado pelo atraso de propagação em
contadores assíncronos ocorre quando as saídas do contador são
decodificadas.
• Se você olhar bem a Figura abaixo, verá que, para um período curto
de tempo (50 ns, no exemplo) logo após o estado 011, o estado 010
ocorre antes de 100.
Atraso de Propagação em Contadores
Assíncronos
• Essa não é, obviamente, a sequência correta da contagem binária e,
embora o olho humano seja lento demais para ver esse estado
temporário, nossos circuitos digitais são rápidos o bastante para
detectá-la.

• Esses padrões errôneos de contagem podem gerar o que chamamos


de glitches nos sinais produzidos por sistemas digitais que usam
contadores assíncronos.

• A despeito de sua simplicidade, esses problemas limitam a utilidade


dos contadores assíncronos em aplicações digitais.
Exercícios

1. Explique como a frequência limite máxima dos contadores


ondulantes diminui à medida que aumenta o número de FFs do
contador.

2. Determinado flip-flop J-K tem um tpd = 12 ns. Qual é o contador de


maior módulo que pode ser construído a partir desses FFs e ainda
operar em uma frequência de até 10 MHz?
Respostas

1. Cada FF adiciona seu atraso de propagação ao atraso total do


contador em resposta ao pulso de clock.

2. Módulo 256.

Você também pode gostar