Um dos problemas enfrentados pelos somadores paralelos é o atraso elevado por conta da propagação do carry entre os blocos de somadores completos. Esse atraso acontece porque um bloco somador completo qualquer só conseguirá gerar o resultado correto após todos os somadores completos à sua direita concluírem a soma e propagarem corretamente o carry até ele. Assumindo que o atraso de propagação individual de cada bloco somador completo seja de 5 ns , qual será o atraso total para um somador paralelo de 32 bits? Considerando que o período de um ciclo de clock tem que ser longo o suficiente para acomodar uma operação de soma realizada por este somador paralelo de 32 bits, qual será a frequência máxima do clock para este circuito?

Passo 1

O enunciado pede duas coisas:
  • Calcular o atraso total de um somador paralelo de 32 bits, sabendo que o atraso de propagação de cada bloco somador completo (full adder) é de 5\\ \mathrm{ns}.
  • A partir desse atraso, determinar a frequência máxima do clock, sabendo que o período do clock tem que acomodar a operação de soma desse somador.
Informações dadas (peguei estes valores do enunciado):
  • Número de bits: n=32.
  • Atraso de cada bloco somador completo: t_{\text{FA}}=5\\ \mathrm{ns}.

Passo 2

Entendendo o que causa o atraso (explicação didática e conceitual).
  • Num somador paralelo do tipo ripple-carry (o típico somador “em série” de blocos), o carry gerado em cada full adder precisa chegar ao full adder seguinte para que este calcule seu próprio sum e gere o próximo carry. Na pior situação (caso mais custoso em tempo) o carry inicial precisa “propagar” por todos os n full adders até o bit mais significativo.
  • Isso significa que os atrasos se somam de forma linear: cada bloco contribui com seu atraso de propagação ao caminho crítico.
  • Fórmula simples que usamos para o atraso no pior caso:
t_{\text{total}} = n \cdot t_{\text{FA}},
onde t_{\text{total}} é o atraso total (pior caso), n é o número de bits (full adders) e t_{\text{FA}} é o atraso de propagação de um full adder. Aqui cada variável significa explicitamente:
  • n: número de blocos full adder que o carry precisa atravessar (aqui 32).
  • t_{\text{FA}}: tempo que um full adder demora para propagar o carry/somar (aqui 5\\ \mathrm{ns}).

Passo 3

Aplicando a fórmula ao caso concreto (contas passo a passo).
t_{\text{total}} = 32 \cdot 5\\ \mathrm{ns}.
Calcule:
32 \cdot 5 = 160,
portanto
t_{\text{total}} = 160\\ \mathrm{ns}.
Interpretação: no pior caso, a soma de 32 bits só estará correta após 160\\ \mathrm{ns} desde a apresentação dos operandos (ou do carry inicial).

Passo 4

Determinando a frequência máxima do clock (razão e cálculo).
  • O período mínimo do clock T_{\min} tem que ser pelo menos igual ao atraso total para que a operação de soma termine antes da borda seguinte:
T_{\min} = t_{\text{total}} = 160\\ \mathrm{ns}.
  • A frequência máxima do clock é o inverso do período mínimo:
f_{\max} = \frac{1}{T_{\min}} = \frac{1}{160\times 10^{-9}\\ \mathrm{s}}.
Calcule:
\frac{1}{160\times 10^{-9}} = 6{,}25\times 10^{6}\\ \mathrm{Hz} = 6{,}25\\ \mathrm{MHz}.

Passo 5

Resumo prático e dica rápida (motivação).
  • Resumo: o atraso total no pior caso é 160\\ \mathrm{ns} e, portanto, a frequência máxima segura do clock é 6{,}25\\ \mathrm{MHz}.
  • Dica rápida: se precisar de somas mais rápidas em prova ou projeto, mencione técnicas como adição com carry-lookahead ou pipeline, que reduzem muito esse atraso linear — bom ponto para citar se o professor pedir otimizações.

Resposta

t_{\text{total}} = 160\\ \mathrm{ns}
f_{\max} = 6{,}25\\ \mathrm{MHz}

Exercícios relacionados