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:
| T | Comportamento | |
|---|---|---|
| 0 | mantém o estado | |
| 1 | complemento de | inverte o estado |
A notação é a da aula anterior: é o estado da saída antes da borda e 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.
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.
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
| Pulso | Q3 | Q2 | Q1 | Q0 | Decimal |
|---|---|---|---|---|---|
| 0 (inicial) | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 2 | 0 | 0 | 1 | 0 | 2 |
| 3 | 0 | 0 | 1 | 1 | 3 |
| 4 | 0 | 1 | 0 | 0 | 4 |
| 5 | 0 | 1 | 0 | 1 | 5 |
| 6 | 0 | 1 | 1 | 0 | 6 |
| 7 | 0 | 1 | 1 | 1 | 7 |
| 8 | 1 | 0 | 0 | 0 | 8 |
| … | … | … | … | … | … |
| 15 | 1 | 1 | 1 | 1 | 15 |
| 16 | 0 | 0 | 0 | 0 | 0 |
No 16.º pulso todas as saídas voltam a 0 e o ciclo recomeça. Com quatro estágios há estados distintos: diz-se que o contador é de módulo 16. Em geral, n flip-flops produzem um contador de módulo , que conta de 0 a .
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.
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ída | Frequência | Exemplo com clock de 8 kHz |
|---|---|---|
| Q0 | metade da do clock | 4 kHz |
| Q1 | um quarto | 2 kHz |
| Q2 | um oitavo | 1 kHz |
| Q3 | um dezesseis avos | 500 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:
| Decimal | Q3 (peso 8) | Q2 (peso 4) | Q1 (peso 2) | Q0 (peso 1) | Q3 e Q1 em 1 ao mesmo tempo? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | não |
| 1 | 0 | 0 | 0 | 1 | não |
| 2 | 0 | 0 | 1 | 0 | não |
| 3 | 0 | 0 | 1 | 1 | não |
| 4 | 0 | 1 | 0 | 0 | não |
| 5 | 0 | 1 | 0 | 1 | não |
| 6 | 0 | 1 | 1 | 0 | não |
| 7 | 0 | 1 | 1 | 1 | não |
| 8 | 1 | 0 | 0 | 0 | não |
| 9 | 1 | 0 | 0 | 1 | não |
| 10 | 1 | 0 | 1 | 0 | sim |
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.
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.
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.
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.
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:
- Escolher o número de flip-flops: o menor n tal que seja maior ou igual a N.
- Escrever o valor N em binário e identificar quais saídas estão em 1 nele.
- 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.
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ágio | Entrada T ligada a | Inverte quando |
|---|---|---|
| Q0 (peso 1) | nível lógico 1 | sempre — a cada borda ativa |
| Q1 (peso 2) | Q0 | Q0 está em 1 |
| Q2 (peso 4) | AND de Q0 e Q1 | Q0 e Q1 estão em 1 |
| Q3 (peso 8) | AND de Q0, Q1 e Q2 | Q0, 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.
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 clock | só o primeiro estágio o recebe | comum a todos os estágios |
| Origem do clock dos demais | a saída do estágio anterior | o mesmo clock externo |
| Lógica adicional | nenhuma para contar | portas de habilitação das entradas T |
| Atraso até a saída estabilizar | soma dos atrasos dos estágios — cresce com n | um atraso de flip-flop mais o das portas |
| Estados espúrios na transição | sim, entre a primeira e a última mudança | não, todas as saídas mudam juntas |
| Frequência máxima | menor, e cai à medida que se acrescentam estágios | maior, e praticamente independente de n |
| Custo | menor: só flip-flops | maior: flip-flops mais portas |
| Uso típico | divisão de frequência, contagem lenta, mostradores | contador 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
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
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.
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.
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.
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
| Arquivo | Atividade | O que contém |
|---|---|---|
09-contador-pulso-4bits.circ | 1 | Quatro 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.circ | 2 | O mesmo circuito, com a porta de decodificação do estado 1010 ligada à entrada de Clear |
11-contador-sincrono-4bits.circ | 3 | Contador síncrono de 4 bits, com o clock comum aos quatro estágios e as portas AND de habilitação |
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.
- Com o relógio automático desligado (
Ctrl+K), dêCtrl+Rpara partir de 0000. - Avance com
Ctrl+F9, um ciclo por vez, anotandoQ3 Q2 Q1 Q0a cada pulso. Vá até o 16.º. - Compare a coluna anotada com a tabela da Seção 1.2.
- 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. - 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.
- 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.
- 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.
- Com o relógio automático desligado, avance com
Ctrl+F9e anote a contagem, do 0 até o retorno a 0000. - 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+Ee useCtrl+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+Inã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.
- Confira que a linha de clock chega às quatro entradas de clock, e não apenas à primeira. Compare com a Figura 5.
- 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.
- Avance com
Ctrl+F9e anote a contagem. Confirme que é a mesma da Atividade 1. - Leve a contagem até 7 (0111) e desligue a propagação automática com
Ctrl+Ee avance a transição comCtrl+I(um atraso de porta por vez) em vez deCtrl+F9, para observá-la em câmera lenta. Religue-a comCtrl+Eao terminar. - 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
- Aula 4 — Flip-flops — o flip-flop T, a divisão de frequência por 2 e as entradas assíncronas Preset e Clear, usadas em todos os circuitos desta aula.
- Referência rápida — Notação de circuitos digitais — a simbologia dos blocos de contador e a leitura de cronogramas.