Projete um circuito que apresente a saída 1 a cada 99 ciclos de clock:
a) Usando um contador crescente com clear síncrono como entrada e circuitos combinacionais extras.
b) Usando um contador decrescente com carga paralela, e circuitos combinacionais extras.
c) Qual o tradeoff entre os dois projetos (itens e )?
Referência: Vahid, Frank. Digital Design with RTL Design, Verilog and VHDL. John Wiley & Sons, 2010.

Passo 1

Beleza, vamos lá! O exercício pede para gente projetar um circuito que dê saída 1 a cada 99 ciclos de clock. Isso está ligado ao conteúdo de contadores digitais. Para resolver isso, vamos precisar entender como funcionam contadores crescentes e decrescentes, além de saber usar sinais de clear e carga paralela. Vamos abordar as partes a), b) e c) do exercício passo a passo.

Passo 2

Parte a): Usando um contador crescente com clear síncrono e circuitos combinacionais extras.
Primeiro, precisamos entender o que é um contador crescente. Ele conta de 0 até um valor máximo (neste caso, 98, já que queremos que no 99º ciclo dê 1) e depois retorna a 0. O clear síncrono é um sinal que reinicia o contador para 0 quando atingimos o valor desejado.
Vamos considerar que o contador é de 7 bits, já que é suficiente para contar até 99.

Passo 3

Para que o contador reinicie a contagem a cada 99 ciclos, precisamos detectar quando o contador atinge o valor 98. Para isso, usamos circuitos combinacionais que verificam se os bits do contador correspondem a 98.
Representando 98 em binário:
Então, criamos uma lógica que detecta esse padrão específico. Quando o contador atinge 98, o sinal de clear é ativado, resetando o contador para 0 no próximo ciclo de clock.

Passo 4

Além disso, configuramos a saída do circuito para ser alta (1) quando o contador atinge 98. Isso significa que a cada 99 ciclos, temos uma saída 1.
Então, resumindo:
  • Usamos um contador de 7 bits.
  • Detectamos o valor 98 para resetar o contador.
  • Configuramos a saída 1 quando o contador atinge 98.

Passo 5

Parte b): Usando um contador decrescente com carga paralela e circuitos combinacionais extras.
Agora, vamos trabalhar com um contador decrescente, que inicia de um valor específico e conta para baixo até 0. A carga paralela permite que carreguemos um valor inicial diretamente no contador.
Queremos que o contador dê saída 1 a cada 99 ciclos. Então, configuramos o contador para iniciar de 98 e contar até 0. Quando atinge 0, a saída será 1 e o contador será recarregado com 98 novamente.

Passo 6

Para implementar isso:
  • Usamos um contador decrescente de 7 bits.
  • Configuramos a carga paralela para iniciar em 98 ( ).
  • Verificamos quando o contador atinge 0 para ativar a saída 1 e recarregar 98 no contador.

Passo 7

Parte c): Qual o tradeoff entre os dois projetos (itens a e b)?
Agora, vamos comparar os dois métodos:
  1. Contador Crescente com Clear Síncrono:
    • Simples de implementar.
    • Requer circuitos para detectar o valor 98.
    • Pode ter ligeira complexidade na lógica de reset.
  2. Contador Decrescente com Carga Paralela:
    • Necessita de um mecanismo para carregar o valor 98 no contador.
    • A lógica para detectar o 0 é mais simples.
    • Pode ser mais eficiente em termos de sincronização, já que o reset ocorre naturalmente quando o contador chega a 0.

Resposta

Então, projetamos dois métodos para gerar uma saída 1 a cada 99 ciclos de clock: um usando um contador crescente com clear síncrono e outro usando um contador decrescente com carga paralela. A principal diferença entre eles está na complexidade da lógica de reset e na eficiência da detecção dos pontos de reinício. Dependendo das necessidades específicas do projeto, um pode ser mais vantajoso que o outro.

Exercícios relacionados

Projete um ALU com duas entradas de 8 bits e , e as entradas de controle e . A ALU deve suportar as operações descritas na Tabela 1. Use um somador de 8 bits e combinações lógicas adicionais.
Operação
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0 NAND (NAND bit a bit)
1 0 1 XOR (XOR bit a bit)
1 1 0 Inverter (Inversão da ordem dos bits)
1 1 1 NOT (complemento bit a bit)
Table 1: Operações desejadas na ALU.
Projete um contador crescente/decrescente com quatro entradas de controle: countup que habilita a contagem crescente, countdown que habilita a contagem decrescente, um clear síncrono e um set síncrono. Se duas ou mais entradas de controle são 1 s então o contador mantém seu valor corrente de contagem. Use um registrador de carga paralela.
Determine o valor da capacitância em paralelo necessária para corrigir uma carga de 140 kVAR com FP de 0,85 (atrasado) para um FP unitário. Suponha que a carga seja alimentada por uma linha de 110 V (RMS), 60 Hz .
Resposta: .
Para uma carga, . Determine: (a) as potências complexa e aparente; (b) as potências real e reativa; © o fator de potência e a impedância da carga.
Resposta: (a) ; (b) 15,05 W, 41,35 VAR; © 0,342 atrasado, 94,06