Use redução forçada para criar um circuito que compute
usando apenas deslocadores e somadores.
é uma saída de 12 bits e
é uma entrada de 12 bits. Estime os transistores no circuito e compare com uma estimação de transistores do circuito usando um multiplicador.
Passo 1
Beleza, vamos lá! O exercício pede para a gente criar um circuito que calcule
, usando apenas deslocadores (shifters) e somadores. Aqui,
é uma saída de 12 bits e
é uma entrada de 12 bits. A gente também precisa estimar quantos transistores esse circuito vai ter e comparar isso com um circuito que usa um multiplicador tradicional.
Para resolver isso, vamos precisar entender como funções de multiplicação podem ser implementadas com deslocamentos e somas, que é uma técnica comum em eletrônica digital para simplificar multiplicadores. Vamos passo a passo descobrir como representar a multiplicação por 27 usando essas operações básicas e depois estimar os transistores envolvidos.
Passo 2
Primeiro, vamos decompor o número 27 em potências de 2, porque deslocar à esquerda em binário é equivalente a multiplicar por 2. Assim, podemos expressar 27 como a soma de potências de 2:
. Isso significa que
.
Passo 3
Agora, vamos ver como implementar cada parte dessa soma usando deslocadores e somadores:
- 16 × Q: Para multiplicar por 16, deslocamos
4 bits à esquerda. Em notação, isso seria . - 8 × Q: Multiplicar por 8 é deslocar 3 bits à esquerda:
. - 2 × Q: Multiplicar por 2 é deslocar 1 bit à esquerda:
. - Q: Já temos
como está.
Passo 4
Com esses deslocamentos definidos, agora precisamos somar todos esses valores para obter
:
Isso significa que vamos ter quatro deslocadores que produzem os valores deslocados e depois somamos todos eles usando somadores.
Passo 5
Vamos agora estimar quantos transistores serão necessários para esse circuito. Assumindo que estamos usando somadores de meio bit (half adders) e que cada deslocador pode ser implementado com uma certa quantidade de transistores, podemos fazer uma estimativa simplificada:
- Deslocadores: Cada deslocador pode precisar de aproximadamente 10 transistores por bit deslocado. Como temos deslocamentos de 1, 3 e 4 bits, mais o deslocamento de 0 bits (que é apenas o próprio Q), isso dá:
-
: 10 transistores × 4 bits = 40 -
: 10 × 3 = 30 -
: 10 × 1 = 10 -
: 0 (já está disponível)
-
Total de transistores para deslocadores: 40 + 30 + 10 = 80
- Somadores: Para somar quatro valores de 12 bits, podemos usar uma estrutura de somadores em cascata. Cada bit somado com um carry implica em 2 transistores por bit. Se considerarmos que temos 4 somas de 12 bits cada, podemos estimar:
- 12 bits × 2 transistores × 3 somas (para somar 4 números) = 72 transistores
Total de transistores para somadores: aproximadamente 72
Total geral: 80 (deslocadores) + 72 (somadores) = 152 transistores
Passo 6
Agora, vamos comparar isso com um multiplicador tradicional. Um multiplicador binário de 12 bits geralmente utiliza uma matriz de multiplicação que envolve ANDs e somas, o que pode resultar em um número maior de transistores. Estimativas comuns para multiplicadores de 12 bits estão na ordem de algumas centenas de transistores, geralmente entre 300 a 500, dependendo da implementação específica.
Resposta
Então, usando a técnica de redução forçada com deslocadores e somadores, o circuito para calcular
consome aproximadamente 152 transistores. Em comparação, um multiplicador tradicional de 12 bits geralmente utiliza entre 300 a 500 transistores, tornando a abordagem com deslocadores e somadores mais eficiente em termos de uso de transistores.
Exercícios relacionados
Projete um multiplicador de 8 bits do tipo array-style.
Um medidor portátil usado pela polícia tem como saída as medições de velocidade dos carros que passam por ele. Todavia, quando um policial quer multar um motorista por excesso de velocidade, ele precisa salvar a velocidade medida. Construa um sistema que implemente a capacidade de guardar os valores medidos pelo medidor em questão. O sistema tem uma entrada
de 8 bits que representa as velocidades detectadas, uma outra entrada
para o botão de salvar, um botão
para mostrar o valor salvo e uma saída
de 8 bits que envia a velocidade para um display.
Assumindo que portas AND tem atraso de 2 ns , portas OR tem atraso de 1 ns e portas XOR tem atraso de 3 ns , compute o máximo tempo requerido para realizar a soma de dois números de 8 bits usando um somador com propagação do carry.
Projete um circuito que compute
e
são entradas de 16 bits, e
é uma saída de 16 bits. Use multiplicadores e somadores de 16 bits no projeto. Ignore os problemas de overflow.