Pular para o conteúdo principal

Aula 5 — Contadores

Apresentação​

A aula anterior terminou com quatro dispositivos prontos — RS, JK, T e D — e uma promessa: eles apareceriam montados em blocos maiores, e é aí que se tornam úteis. Esta aula cumpre metade da promessa; a Aula 6 cumpre a outra.

A metade de agora é o flip-flop T. Vimos que, com a entrada T fixada em 1, ele inverte a saída a cada borda ativa e, por isso, entrega na saída um sinal com metade da frequência do que recebe no clock. Um único flip-flop T é, portanto, um divisor por 2. A pergunta desta aula é simples: o que acontece se a saída de um alimentar o clock do seguinte?

A resposta é o contador. Nenhuma porta lógica adicional é necessária para obter a primeira versão dele: basta o encadeamento. As portas entram depois, e por dois motivos distintos — para truncar a contagem em um valor que não seja potência de 2 (o contador de década) e para fazer todos os estágios comutarem ao mesmo tempo (o contador síncrono).

Por que estudar isso em Organização de Computadores​

Porque contar é uma das duas coisas que a máquina faz com estado — a outra é guardar, tema da próxima aula.

O contador de programa é o exemplo central: um registrador que, a cada instrução, avança para o endereço seguinte. A unidade de controle conta os passos de um ciclo de instrução para saber em qual subciclo está. O circuito de atualização periódica (refresh) da memória dinâmica percorre as linhas da matriz com um contador de endereços. E o divisor de frequência, que é o mesmo circuito lido de outro jeito, é o que produz os vários sinais de tempo de uma placa a partir de um único oscilador.

Vale registrar desde já a distinção que a Unidade 4 vai cobrar: o contador de programa de um processador real é síncrono, e a Seção 4 explica por quê.

Objetivos​

Ao final desta aula você deve ser capaz de:

  • Explicar como o encadeamento de flip-flops T produz uma contagem binária sem nenhuma porta lógica adicional.
  • Ler o cronograma de um contador assíncrono e relacionar a frequência de cada saída à do clock de entrada.
  • Determinar o estado das saídas de um contador de n bits após um número dado de pulsos.
  • Descrever a decodificação de estado que trunca a contagem de um contador de década, indicando quais saídas estão em 1 no estado decodificado.
  • Projetar um contador de módulo qualquer pelo mesmo procedimento de decodificação.
  • Comparar contadores assíncronos e síncronos quanto ao atraso acumulado, aos estados espúrios e à frequência máxima de operação.
  • Montar e simular os contadores estudados no Logisim-Evolution, observando o comportamento em função do tempo.

Recapitulando: o flip-flop T​

Da aula anterior interessa aqui um dispositivo só. O flip-flop T tem uma única entrada de dados e duas operações:

TQfQ_fComportamento
0QaQ_amantém o estado
1complemento de QaQ_ainverte o estado

A notação é a da aula anterior: QaQ_a é o estado da saída antes da borda e QfQ_f o estado depois; a saída complementar é sempre Q.

Fixando T = 1 em caráter permanente — ligando a entrada ao nível lógico 1 —, sobra apenas a segunda linha: a saída inverte a cada borda ativa. São necessárias duas bordas ativas para que a saída complete um ciclo (0, depois 1, depois 0 de novo). Como cada período do clock contém uma borda ativa, um ciclo da saída dura dois períodos do clock: a frequência da saída é metade da frequência da entrada.

Todos os contadores desta aula usam flip-flops T com T = 1. O que muda de um para outro é de onde vem o clock de cada estágio e o que interrompe a contagem.

Sensibilidade à borda

Adotamos aqui, como na aula anterior, flip-flops sensíveis à descida — a saída muda na transição do clock de 1 para 0. Nos componentes prontos do Logisim o padrão é o oposto (sensível à subida), e a Seção de atividades mostra as duas formas de acertar isso.


1. Contador de pulso (assíncrono)​

O contador de pulso, também chamado de contador assíncrono (ripple counter), é o encadeamento direto: o clock do primeiro estágio vem de fora, e o clock de cada estágio seguinte vem da saída do estágio anterior. A Figura 1 mostra a versão de 4 bits.

Quatro blocos de flip-flop T alinhados da esquerda para a direita, rotulados de Q0 a Q3. A entrada T de cada um está ligada ao nível lógico 1. O sinal de clock externo CK entra na entrada de clock do primeiro bloco, marcada com triângulo e círculo de sensibilidade à descida. A saída Q de cada bloco segue para a direita e alimenta a entrada de clock do bloco seguinte, além de subir para um terminal de saída rotulado com o peso do estágio
Cada estágio é o relógio do estágio seguinte: é só isso que transforma quatro divisores por 2 em um contador.

O nome "contador de pulso" descreve o funcionamento: cada flip-flop conta os pulsos que chegam do anterior. O nome inglês ripple — ondulação — descreve o defeito, que a Seção 4 examina: a mudança se propaga da esquerda para a direita, estágio a estágio, e não acontece de uma vez.

1.1 Por que a contagem sai crescente​

Acompanhe o primeiro par de estágios, com todas as saídas partindo de 0:

  • Primeira descida do clock externo. O estágio 0 inverte: Q0 vai de 0 para 1. O estágio 1 recebe, no seu clock, uma transição de subida — e ele é sensível à descida, então não faz nada.
  • Segunda descida do clock. O estágio 0 inverte de novo: Q0 vai de 1 para 0. Agora o estágio 1 recebe uma descida e inverte: Q1 vai de 0 para 1.

Ou seja: Q1 muda uma vez a cada duas mudanças de Q0. É exatamente a relação entre o bit de peso 2 e o bit de peso 1 de um número binário. O mesmo raciocínio se repete nos estágios seguintes, e o conjunto passa a exibir a sequência binária natural, com Q0 como bit menos significativo.

1.2 A contagem, pulso a pulso​

PulsoQ3Q2Q1Q0Decimal
0 (inicial)00000
100011
200102
300113
401004
501015
601106
701117
810008
………………
15111115
1600000

No 16.º pulso todas as saídas voltam a 0 e o ciclo recomeça. Com quatro estágios há 24=162^4 = 16 estados distintos: diz-se que o contador é de módulo 16. Em geral, n flip-flops produzem um contador de módulo 2n2^n, que conta de 0 a 2n−12^n - 1.

1.3 O mesmo circuito visto como divisor de frequência​

A Figura 2 mostra os quatro sinais no tempo, ao longo de 16 pulsos.

Cronograma com cinco formas de onda empilhadas ao longo de dezesseis pulsos: na primeira linha o clock CK, com dezesseis ciclos; abaixo, Q0 com oito ciclos, Q1 com quatro, Q2 com dois e Q3 com um. Linhas verticais tracejadas âmbar marcam as descidas do clock, e cada onda inverte de nível na descida da onda imediatamente acima
A mesma figura conta e divide: cada linha tem metade da frequência da linha de cima.

Lendo as quatro ondas na vertical, em qualquer instante, obtém-se a contagem da tabela anterior. Lendo cada onda na horizontal, obtém-se uma divisão de frequência:

SaídaFrequênciaExemplo com clock de 8 kHz
Q0metade da do clock4 kHz
Q1um quarto2 kHz
Q2um oitavo1 kHz
Q3um dezesseis avos500 Hz

São duas leituras do mesmo circuito, e é útil ter as duas à mão: quando se quer um número, o circuito é um contador; quando se quer um sinal de tempo mais lento, ele é um divisor.


2. Contador de década​

Quatro estágios contam naturalmente de 0 a 15. Só que a maior parte das aplicações que mostram um número a um ser humano precisa contar de 0 a 9 — um dígito decimal por vez. É o contador de década, ou contador de módulo 10.

O problema, então, é truncar a contagem: deixá-la seguir normalmente até 9 e, ao chegar ao valor seguinte, devolvê-la a zero.

2.1 Qual estado decodificar​

A pergunta a responder é: quais saídas estão em 1 quando a contagem chega a 1010 (o decimal 10, primeiro valor indesejado)? A tabela responde, e mostra por que essas duas saídas bastam:

DecimalQ3 (peso 8)Q2 (peso 4)Q1 (peso 2)Q0 (peso 1)Q3 e Q1 em 1 ao mesmo tempo?
00000não
10001não
20010não
30011não
40100não
50101não
60110não
70111não
81000não
91001não
101010sim

Percorrendo a coluna da direita de cima para baixo, o primeiro "sim" aparece na contagem 10. Isso é tudo o que precisamos: uma porta que vigie apenas Q3 e Q1 já distingue o estado 1010 de todos os nove estados úteis, sem precisar olhar para Q2 e Q0.

Um atalho de memória, e o que ele não é

Os pesos das duas saídas vigiadas somam 8 + 2 = 10, que é justamente o módulo desejado. O atalho funciona e é cômodo, mas o critério não é a soma: é a verificação, na tabela, de que nenhum estado da contagem útil tem essas duas saídas simultaneamente em 1. Sempre que projetar um módulo novo, confira pela tabela.

2.2 Como o estado decodificado zera o contador​

A porta escolhida é uma NAND: sua saída está em 1 em todas as demais situações e cai para 0 exatamente quando as duas entradas vigiadas estão em 1. Esse nível 0 é o que se precisa, porque a entrada CLR dos flip-flops é ativa em nível 0 — vimos isso na aula anterior. A saída da NAND vai, portanto, ao CLR dos quatro estágios ao mesmo tempo, como mostra a Figura 3.

Quatro flip-flops T em cascata, ligados como no contador de pulso. Abaixo da linha de flip-flops, uma porta NAND de duas entradas recebe, por derivações verticais, as saídas Q3 e Q1. A saída da NAND percorre uma linha horizontal que sobe até a entrada Clear barrado de cada um dos quatro blocos, marcada com círculo de atividade em nível zero
A porta não conta nada: ela apenas reconhece um estado e usa a entrada assíncrona para apagá-lo.

O ponto decisivo é que CLR é assíncrona: ela não espera o clock. No instante em que o décimo pulso leva as saídas a 1010, a NAND comuta, o CLR é acionado e as quatro saídas caem a 0000 — sem que o clock precise fazer nada. A contagem útil passa a ser 0, 1, 2, …, 9 e de volta a 0: dez estados, que é o que "década" quer dizer.

2.3 O estado 1010 existe — e dura pouquíssimo​

O contador de década passa fisicamente pelo estado 1010. Ele não é evitado: é reconhecido e desfeito. A Figura 4 mostra o efeito no tempo.

Cronograma dos dez estados de um contador de década ao longo de dez pulsos de clock, com as ondas CK, Q0, Q1, Q2 e Q3 empilhadas. No instante do décimo pulso, Q1 apresenta um pulso muito estreito, com subida e descida quase coincidentes, e uma linha adicional na base mostra o pulso estreito de reset produzido pela NAND. Depois dele todas as ondas voltam ao nível zero
O décimo pulso produz um estado que só dura o tempo de a porta reagir: é ele que a década sacrifica.

A largura desse pulso é a soma de dois atrasos: o tempo que a NAND leva para reconhecer o estado e o tempo que os flip-flops levam para responder ao CLR. Na prática, alguns nanossegundos — invisível para quem lê um mostrador, mas perfeitamente visível para outro circuito digital ligado às mesmas saídas. Esse é um dos motivos pelos quais decodificar as saídas de um contador assíncrono exige cuidado, assunto da Seção 4.

O pulso de reset não pode ser curto demais

Há uma armadilha de projeto aqui: assim que as saídas começam a cair, a condição que a NAND vigiava deixa de existir, e a porta tende a desfazer o próprio comando. Se o pulso resultante for mais estreito do que o mínimo que os flip-flops exigem para aceitar o CLR, alguns estágios zeram e outros não, e o contador termina em um estado errado. Circuitos integrados contadores de década resolvem isso internamente, com um elemento que alarga o pulso — o que também explica por que existe um componente pronto para uma função aparentemente tão simples.

2.4 O procedimento vale para qualquer módulo​

O mesmo raciocínio produz um contador de módulo N qualquer, em três passos:

  1. Escolher o número de flip-flops: o menor n tal que 2n2^n seja maior ou igual a N.
  2. Escrever o valor N em binário e identificar quais saídas estão em 1 nele.
  3. Ligar essas saídas a uma NAND, e a saída da NAND ao CLR de todos os estágios.

Um contador de módulo 12, por exemplo, precisa de quatro estágios e decodifica o 1100 — as saídas de peso 8 e 4. Um de módulo 6 precisa de três estágios e decodifica o 110 — as saídas de peso 4 e 2. Em ambos os casos, confira pela tabela que nenhum estado útil tem essas duas saídas simultaneamente em 1.


3. Contador síncrono​

Nos dois contadores anteriores, um único flip-flop recebe o clock externo; os demais são acionados em cadeia. O contador síncrono faz o oposto: como mostra a Figura 5, o clock externo chega a todos os estágios ao mesmo tempo, e o que decide quem inverte é a entrada T de cada um.

Quatro blocos de flip-flop T alinhados, rotulados de Q0 a Q3. Uma linha horizontal de clock percorre a base da figura e sobe para a entrada de clock de todos os quatro blocos simultaneamente. A entrada T do primeiro bloco está ligada ao nível lógico 1; a do segundo vem da saída Q0; a do terceiro vem de uma porta AND que recebe Q0 e Q1; a do quarto vem de uma porta AND que recebe Q0, Q1 e Q2
O clock é o mesmo para todos: as portas AND apenas escolhem, antes da borda, quem tem permissão de inverter.

3.1 A regra de habilitação​

A regra sai da própria contagem binária: um bit inverte quando todos os bits de peso menor estão em 1. Some 1 a 0011 e observe: os dois bits de peso 1 e 2 estão em 1, então o bit de peso 4 muda; o bit de peso 8 não muda, porque abaixo dele há um zero.

EstágioEntrada T ligada aInverte quando
Q0 (peso 1)nível lógico 1sempre — a cada borda ativa
Q1 (peso 2)Q0Q0 está em 1
Q2 (peso 4)AND de Q0 e Q1Q0 e Q1 estão em 1
Q3 (peso 8)AND de Q0, Q1 e Q2Q0, Q1 e Q2 estão em 1

Repare que as portas AND não fazem parte de um caminho de contagem: elas apenas leem as saídas e preparam as entradas T antes da borda. Quando a borda chega, cada flip-flop já sabe se deve ou não inverter, e todos agem no mesmo instante.

3.2 Um exemplo completo​

Tome a contagem 7 (0111) e aplique uma borda ativa:

  • Q0 tem a entrada T fixa no nível 1: inverte, de 1 para 0.
  • Q1 tem a entrada T ligada a Q0, que está em 1: inverte, de 1 para 0.
  • Q2 tem a entrada T na saída da AND que lê Q0 e Q1, ambas em 1: inverte, de 1 para 0.
  • Q3 tem a entrada T na saída da AND que lê Q0, Q1 e Q2, todas em 1: inverte, de 0 para 1.

O resultado é 1000, que é 8 — e os quatro bits mudaram na mesma borda. Note que os valores de Q0, Q1 e Q2 usados nas portas são os de antes da borda: é a mesma separação entre "ler a entrada" e "atualizar a saída" que a estrutura mestre-escravo da aula anterior garante. Sem ela, a mudança de Q0 alteraria as portas no meio da operação e o contador não funcionaria.


4. Assíncrono × síncrono​

As duas famílias contam a mesma sequência. A diferença está no tempo — a Figura 6 mostra as duas passando pela mesma transição de contagem —, e é ela que decide qual usar.

Comparação em dois painéis, um acima do outro, mostrando a transição da contagem 0111 para 1000. No painel superior, do contador assíncrono, as quatro saídas mudam em degraus sucessivos, cada um deslocado para a direita em relação ao anterior, e o intervalo total entre a borda do clock e a estabilização da última saída está cotado como a soma de quatro atrasos. No painel inferior, do contador síncrono, as quatro saídas mudam alinhadas na mesma vertical, logo após a borda, com a cota de um único atraso
O que se paga no assíncrono não é a contagem, é o intervalo em que ela está errada.

4.1 O atraso se acumula​

No contador assíncrono, o estágio 1 só pode mudar depois que o estágio 0 mudou, e assim por diante. Suponha um atraso de propagação de 20 ns por flip-flop (valor hipotético para fins de cálculo, não medido). Na transição de 0111 para 1000, o último estágio só assenta 80 ns depois da borda do clock — quatro atrasos em sequência. Com oito estágios seriam 160 ns, e assim por diante: o atraso cresce com o número de estágios.

No contador síncrono, todos os flip-flops partem da mesma borda. O atraso total é o de um flip-flop mais o das portas de habilitação, e não cresce quando se acrescentam estágios. É por isso que o contador de programa de um processador é síncrono: o atraso do contador não pode depender do tamanho da palavra de endereço.

4.2 Os estados espúrios​

A consequência mais perigosa do atraso acumulado não é a lentidão: são os valores falsos que aparecem durante a propagação. Ainda na transição de 0111 para 1000, um circuito que leia as quatro saídas nesse intervalo pode encontrar, em sequência, 0110, 0100 e 0000 antes de ver 1000. Nenhum desses valores foi contado — são estados espúrios, produzidos pelo caminhamento da mudança.

Se essas saídas alimentarem um decodificador, um mostrador ou uma entrada de outro circuito, esses valores serão lidos como se fossem contagens. O contador de década da Seção 2 tira proveito exatamente desse fenômeno — o 1010 que ele decodifica também é um estado transitório —, mas na maior parte das aplicações ele é um defeito, e a solução é o contador síncrono.

4.3 Quadro comparativo​

Assíncrono (de pulso)Síncrono
Sinal de clocksó o primeiro estágio o recebecomum a todos os estágios
Origem do clock dos demaisa saída do estágio anterioro mesmo clock externo
Lógica adicionalnenhuma para contarportas de habilitação das entradas T
Atraso até a saída estabilizarsoma dos atrasos dos estágios — cresce com num atraso de flip-flop mais o das portas
Estados espúrios na transiçãosim, entre a primeira e a última mudançanão, todas as saídas mudam juntas
Frequência máximamenor, e cai à medida que se acrescentam estágiosmaior, e praticamente independente de n
Customenor: só flip-flopsmaior: flip-flops mais portas
Uso típicodivisão de frequência, contagem lenta, mostradorescontador de programa, contadores dentro da CPU, qualquer coisa cujas saídas sejam decodificadas

A leitura da tabela é uma troca só: o assíncrono é mais barato e mais simples; o síncrono é correto em qualquer instante. Onde as saídas são lidas por olho humano, o assíncrono basta; onde são lidas por outro circuito, quase sempre não.


5. Para onde isso vai​

Os contadores desta aula são o primeiro bloco construído a partir de flip-flops, e reaparecem em três lugares da disciplina.

  • Na Unidade 3, subsistema de memória, o contador percorre endereços — é o que varre as linhas de uma matriz de células durante a atualização periódica da memória dinâmica.
  • Na Unidade 4, CPU, ele é o contador de programa: o registrador que guarda o endereço da próxima instrução e avança sozinho a cada busca. A unidade de controle também usa um contador para saber em que passo do ciclo de busca, decodificação e execução se encontra.
  • Na Unidade 6, ao acompanhar a execução passo a passo de um programa no simulador, o valor que avança na tela a cada instrução é a saída de um contador exatamente como os desta aula.

A próxima aula faz o movimento paralelo com o flip-flop D: em vez de encadear os clocks, encadeia os dados, e o que sai daí é o registrador de deslocamento — e, com ele, o registrador propriamente dito.


Exercícios (checkpoints)​

Verificação rápida​

Quiz6 questões

1. Em um contador de pulso (assíncrono) de 4 bits, o que serve de sinal de clock para o segundo estágio?

  • a)O mesmo sinal de clock externo que ataca o primeiro estágio
  • b)A saída do primeiro estágio
  • c)A entrada T do primeiro estágio, ligada ao nível lógico 1
  • d)A saída de uma porta AND que combina as saídas dos estágios anteriores
  • e)A entrada Clear, comum a todos os estágios

2. Um contador assíncrono de 4 bits recebe um clock de 8 kHz. Qual é a frequência do sinal na saída do quarto estágio (peso 8)?

  • a)8 kHz
  • b)4 kHz
  • c)2 kHz
  • d)1 kHz
  • e)500 Hz

3. Em um contador de década construído sobre um contador assíncrono de 4 bits, por que a porta de decodificação vigia exatamente as saídas de peso 8 e de peso 2?

  • a)Porque são as duas saídas com menor atraso de propagação
  • b)Porque 1010 é o primeiro estado da contagem em que essas duas saídas estão simultaneamente em 1
  • c)Porque a porta NAND admite no máximo duas entradas
  • d)Porque as saídas de peso 1 e de peso 4 nunca chegam a 1 durante a contagem
  • e)Porque apenas esses dois estágios possuem entrada Clear

4. Um contador assíncrono de 4 bits passa da contagem 7 (0111) para a contagem 8 (1000). O que um circuito que leia as quatro saídas pode encontrar durante essa transição?

  • a)Sempre 0111 ou 1000, e nada além disso
  • b)Valores intermediários como 0110, 0100 e 0000, porque os estágios não comutam ao mesmo tempo
  • c)Apenas 1111, porque todas as saídas sobem antes de descer
  • d)Nada, porque as saídas ficam desconectadas durante a transição
  • e)Somente 0111, que permanece até que a última saída assente

5. Em um contador síncrono de 4 bits, quando o estágio de peso 4 inverte o seu estado?

  • a)A cada borda ativa do clock, como o estágio de peso 1
  • b)Quando as saídas de peso 1 e de peso 2 estão ambas em 1 no instante da borda ativa
  • c)Quando a saída de peso 8 está em 1
  • d)Quando a saída de peso 2 muda de 1 para 0, que é o seu sinal de clock
  • e)Somente quando a entrada Clear é acionada

6. Qual é a principal vantagem do contador síncrono sobre o assíncrono?

  • a)Usa menos portas lógicas e, por isso, é mais barato
  • b)Dispensa o sinal de clock em todos os estágios menos o primeiro
  • c)Todas as saídas mudam na mesma borda, de modo que o atraso total não cresce com o número de estágios
  • d)Conta até um valor maior com o mesmo número de flip-flops
  • e)Não precisa que a entrada T dos flip-flops seja controlada

Questões dissertativas​

Q1

Explique por que quatro flip-flops T ligados em cascata, com T = 1 e sem nenhuma porta lógica adicional, exibem a contagem binária natural nas suas saídas.

Q2Difícil

O contador de década passa fisicamente pelo estado 1010 antes de ser zerado. Explique por que esse estado existe, quanto tempo ele dura e por que não se conta como um dos dez estados do contador.

Q3

Um contador assíncrono e um contador síncrono, ambos de 4 bits, são construídos com flip-flops cujo atraso de propagação é de 20 ns. As portas de habilitação do síncrono acrescentam 10 ns (valores hipotéticos para fins de cálculo, não medidos). Calcule, para cada um, o tempo que as saídas levam para estabilizar no pior caso e discuta o que isso significa para a frequência máxima de operação.

Q4

Projete um contador de módulo 6, que conte de 0 a 5 e volte a zero. Indique quantos flip-flops são necessários, qual estado deve ser decodificado e quais saídas a porta de decodificação deve vigiar. Justifique a escolha mostrando que ela não interfere na contagem útil.

Atividades práticas no Logisim-Evolution​

Ambiente sugerido: Logisim-Evolution, o mesmo da Aula 3 e da Aula 4. Os atalhos usados aqui são os de sempre: Ctrl+R reinicia a simulação, Ctrl+T avança meio ciclo de relógio (ou seja, uma borda), Ctrl+F9 avança um ciclo inteiro e Ctrl+K liga e desliga o relógio automático. Duas atividades abaixo pedem Ctrl+I, que avança um atraso de porta por vez: ele só produz efeito com a propagação automática desligada, o que se faz com Ctrl+E — com ela ligada, que é o padrão, Ctrl+I não faz nada e a tela parece travada. Os arquivos declaram as bibliotecas na ordem do Logisim-Evolution e não abrem no Logisim 2.7.1 original.

São três atividades, uma por seção de conteúdo. Cada uma tem a mesma estrutura das anteriores: o que fazer, o que deve aparecer na tela e o que verificar se não aparecer.

Arquivos de apoio​

ArquivoAtividadeO que contém
09-contador-pulso-4bits.circ1Quatro flip-flops T em cascata, com um componente Clock e um pino de saída em cada uma das quatro saídas
10-contador-decada.circ2O mesmo circuito, com a porta de decodificação do estado 1010 ligada à entrada de Clear
11-contador-sincrono-4bits.circ3Contador síncrono de 4 bits, com o clock comum aos quatro estágios e as portas AND de habilitação
A borda ativa nos componentes prontos

Os flip-flops da biblioteca Memory vêm configurados como sensíveis à subida, ao contrário dos esquemáticos desta aula, que são sensíveis à descida. Em um contador assíncrono isso importa: com componentes de subida, ligar o clock de cada estágio à saída Q do anterior produz uma contagem decrescente. Há duas correções, ambas válidas — mudar o atributo Trigger de cada flip-flop para Falling edge, ou manter a subida e ligar o clock de cada estágio a Q do anterior. É o mesmo ajuste da Atividade 5 da aula anterior.

Atividade 1 — O contador de pulso e a divisão de frequência​

Objetivo: ver a Figura 2 acontecendo na tela e confirmar a tabela de contagem da Seção 1.2.

Abra 09-contador-pulso-4bits.circ e compare o desenho com a Figura 1 antes de simular.

  1. Com o relógio automático desligado (Ctrl+K), dê Ctrl+R para partir de 0000.
  2. Avance com Ctrl+F9, um ciclo por vez, anotando Q3 Q2 Q1 Q0 a cada pulso. Vá até o 16.º.
  3. Compare a coluna anotada com a tabela da Seção 1.2.
  4. Ligue o relógio automático (Ctrl+K) e observe as quatro saídas piscando. Se estiver rápido demais, reduza a frequência em Simulate → Auto-Tick Frequency.
  5. Conte quantas vezes a saída de peso 1 pisca para cada piscada da saída de peso 8.

O que deve aparecer:

  • Passos 2 e 3: a sequência de 0 a 15, com retorno a 0000 no 16.º pulso — exatamente a tabela.
  • Passo 5: oito piscadas do estágio de peso 1 para cada piscada do de peso 8. É a divisão por 2 repetida quatro vezes, agora visível a olho nu.

Se a contagem sair decrescente: os flip-flops estão em Rising edge. Veja a nota sobre a borda ativa, logo acima.

Se a contagem pular valores: confirme que você está usando Ctrl+F9 (um ciclo completo) e não Ctrl+T (meio ciclo) — com meio ciclo, metade dos comandos não produz a borda ativa.

Atividade 2 — O contador de década e o pulso que você não vê​

Objetivo: confirmar que a contagem para em 9 e investigar o estado que existe entre a contagem 9 e o retorno a 0.

Abra 10-contador-decada.circ.

  1. Localize a porta de decodificação e identifique a quais saídas as suas entradas estão ligadas. Confira com a Seção 2.1.
  2. Observe como a saída dessa porta se liga à entrada de Clear dos flip-flops. No esquemático da Figura 3, a NAND é ativa em nível 0, como nos circuitos integrados; no Logisim, a entrada de Clear do componente pronto é ativa em nível 1 (veja o quadro sobre polaridade na Aula 4). Diga qual das duas convenções o arquivo usa e o que precisaria mudar para reproduzir a outra.
  3. Com o relógio automático desligado, avance com Ctrl+F9 e anote a contagem, do 0 até o retorno a 0000.
  4. Tente "pegar" o estado 1010: avance pulso a pulso a partir da contagem 9 e observe as saídas imediatamente depois do décimo pulso.

O que deve aparecer:

  • Passo 1: as entradas da porta vêm das saídas de peso 8 e peso 2, e de mais nenhuma.
  • Passo 3: a contagem vai de 0 a 9 e volta a 0 — dez estados.
  • Passo 4: você não consegue pegar. O simulador aplica o Clear dentro do mesmo passo de simulação, e a tela nunca mostra 1010. Isso não significa que o estado não exista: significa que a resolução de tempo do simulador é maior do que a duração dele. Desligue a propagação automática com Ctrl+E e use Ctrl+I, que avança um atraso de porta por vez em vez de um ciclo de relógio, e tente de novo. Sem desligar a propagação automática, Ctrl+I não tem efeito nenhum.

Se a contagem for até 15: a saída da porta de decodificação não está chegando às entradas de Clear, ou está chegando com a polaridade errada — que é justamente o que o passo 2 pede para investigar.

Atividade 3 — O contador síncrono, lado a lado com o assíncrono​

Objetivo: ver que as duas famílias contam igual e diferem apenas no instante em que mudam.

Abra 11-contador-sincrono-4bits.circ.

  1. Confira que a linha de clock chega às quatro entradas de clock, e não apenas à primeira. Compare com a Figura 5.
  2. Percorra as entradas T: a do primeiro estágio está fixa em 1; as demais vêm das portas AND. Confira cada porta contra a tabela da Seção 3.1.
  3. Avance com Ctrl+F9 e anote a contagem. Confirme que é a mesma da Atividade 1.
  4. Leve a contagem até 7 (0111) e desligue a propagação automática com Ctrl+E e avance a transição com Ctrl+I (um atraso de porta por vez) em vez de Ctrl+F9, para observá-la em câmera lenta. Religue-a com Ctrl+E ao terminar.
  5. Repita o passo 4 no arquivo da Atividade 1, na mesma transição.

O que deve aparecer:

  • Passo 3: a mesma sequência de 0 a 15. As duas famílias produzem a mesma contagem.
  • Passos 4 e 5: no síncrono, as quatro saídas assumem o valor novo praticamente juntas; no assíncrono, elas caem em sequência, e nos passos intermediários aparecem combinações — 0110, 0100, 0000 — que não pertencem à contagem. São os estados espúrios da Seção 4.2, vistos na tela.

Para explorar: ligue os dois arquivos com o relógio automático em uma frequência alta e compare o comportamento das saídas. A diferença que a Seção 4.1 descreve em nanossegundos é a mesma que aqui aparece como instabilidade nas saídas.

Se as portas AND parecerem não fazer nada: lembre-se de que elas não estão no caminho do clock. Elas preparam as entradas T antes da borda, e o efeito delas só aparece no valor que cada estágio assume quando a borda chega.


Referências​

Principais (essenciais)​

  • CAPUANO, Francisco Gabriel. Sistemas digitais: circuitos combinacionais e sequenciais. São Paulo: Érica, 2014. (Série Eixos). Número de chamada: Ac.5012157

    • Capítulo 5 — Contadores e registradores de deslocamento (texto de referência desta aula)
  • SILVA, Gabriel Pereira da. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. Recurso online — Acervo Virtual. Número de chamada: Ac.5063593

    • O contador de programa e os registradores internos da CPU

Aprofundamento (opcionais)​

  • TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. São Paulo: Pearson Prentice Hall, 2018. Número de chamada: Ac.131146

    • Contadores de módulo arbitrário, contadores comerciais integrados e análise dos atrasos de propagação
  • BIGNELL, James. Eletrônica digital. São Paulo: Cengage Learning, 2018. Número de chamada: Ac.5038600

    • Contadores assíncronos e síncronos do ponto de vista do circuito integrado comercial
  • WEBER, Raul Fernando. Fundamentos de arquitetura de computadores. Porto Alegre: Bookman, 2012. Número de chamada: 004.2 W375fuf 4.ed.-2012 Ac.113940

Continuação​

  • Aula 6 — Registradores — o mesmo movimento desta aula, agora com flip-flops D: registrador de deslocamento, conversores série-paralelo e paralelo-série, e o registrador de entrada e saída paralelas.

Pré-requisito​