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.
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
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:
-
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.
-
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 |
|
1 | 0 | 1 |
|
1 | 1 | 0 |
|
1 | 1 | 1 |
|
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: .
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
Resposta: (a)