7 fatos sobre fatos sobre adicionador binário: somador completo e meio somador

  1. Definições e visão geral do somador
  2. Tipos de somador
  3. Meio somador
  4. Somador completo
  5. Somador BCD

Definições:

Um somador é um dispositivo que soma dois números e produz o resultado. Um somador binário é algo que lida com a adição de números binários.

Um somador binário é um dispositivo digital e necessário para cálculos digitais. A operação realizada em um somador binário obedece às regras de adição binária. Aqui, dois bits correspondendo a 2n são adicionados e o resultante é então adicionado ao transporte de 2n-1 dígito.

As regras de adição binária são apresentadas a seguir. Aqui, 0 é lógico baixo e 1 é lógico alto. A e B são duas entradas.

ABS = A + B
000
011
101
110 (transportar 1)
Adição Binária

Exemplo de operações de adição:

  • 11111 + 1011 + 101 + 10 + 1
  • 11111+ 1011 = 101010
  • 101010 + 101 = 101111
  • 110001 + 1 = 110010

Portanto, a resposta é 110010

Tipos de somador

Esta operação de adição é implementada por vários circuitos digitais. Eles são -

  • Meio somador
  • Somador Completo
  • Adicionador BCD

Um somador binário não apenas executa operações de adição, mas também é usado em outros aplicativos digitais. Decodificação de endereço, cálculo de índice são algumas de suas aplicações.

Meio somador

Um meio somador é um tipo de somador binário que adiciona um bit de dados e produz o resultado. Possui duas entradas laterais pelas quais fornecemos os valores lógicos digitais e duas saídas pelas quais recebemos o resultado da operação. O resultado pode ser mostrado em um único dígito. A saída mostra o dígito na soma que tem o mesmo significado que os dígitos individuais adicionados. A outra saída mostra o carry.

Mesa Half Adder Truth

A operação do meio somador é mostrada na seguinte tabela verdade.

ABSomaTransportarSoma de A e B
000000
011001
101001
110110
Mesa da verdade do meio somador

Agora, na tabela verdade, podemos observar que as três primeiras linhas podem representar a soma usando um único dígito. Na última linha, a soma é representada usando dois dígitos, pois tem 1 como transporte. Aqui, a soma é zero e o transporte 1 deve ser levado para a próxima posição de maior significância.

Soma = A ′ B + AB ′

Carregar = AB

então,

Soma = A XOR B

Carregar = A E B

Para implementar a lógica, precisamos de uma porta XOR e uma porta AND. As portas XOR e AND também podem ser feitas usando portas universais como NAND e NOR. Portanto, um meio somador pode ser projetado usando apenas portas universais.

A imagem a seguir mostra A e B como a entrada e S como a soma e C como o transporte.

Somador Binário Completo
Somador meio binário, fonte da imagem - carga indutivaMeio somador, marcado como domínio público, mais detalhes sobre Wikimedia Commonsimprensa

Somador Completo

Outro tipo de somador binário é o somador completo. Ele também adiciona dados binários e produz a saída. Agora, quando dois números binários são adicionados, exceto o dígito menos significativo, há um carry-in como Ci-1 e realizar como Ci. O somador completo é projetado para lidar com um carry-in para cada estágio. É assim que um pedido completo supera a deficiência de meio somador para lidar com o transporte de carga.

Tabela de verdade completa do somador

AiBiCi-1SiCi
00000
00110
01010
01101
10010
10101
11001
11111
Tabela de verdade do somador completo

Circuito Full Adder

Si = Ai Bi Ci-1 + Ai Bi Ci-1 + Ai Bi Ci-1 + Ai Bi Ci-1 + (UMi Bi + Ai Bi) Ci-1   + (UMi Bi + Ai Bi) Ci-1

E o transporte vem como:

Ci = Ai Bi Ci-1 + Ai Bi Ci-1 + Ai Bi Ci-1 + Ai Bi Ci-1 

Ou, Ci = (UMAi Bi + Ai Bi) Ci-1   + (UMi Bi + Ai Bi) Ci-1

Ou, Ci = Ai Bi + (UMi Bi + Ai Bi) Ci-1

Agora, considere que um meio somador tem entradas A e B. A soma de saída é S e o transporte é C. Agora, a expressão de Si e Ci pode ser obtida a partir das expressões de Soma e transporte do circuito meio somador.

Si = SCi-1 + SCi-1

Ci = C + SCi-1

Agora, para implementar um somador completo usando meio somadores, precisamos de dois meio somadores e uma porta OR. Implementações completas de somadores usando meio somadores são representadas na figura abaixo.

Diagrama lógico do somador completo
Adicionador binário completo, fonte da imagem - Carga IndutivaDiagrama lógico de somador completo, marcado como domínio público, mais detalhes sobre Wikimedia Commons

Como podemos ver na figura que o somador da primeira metade (marcado como-) tem a entrada Ai e Bi. O somador da segunda metade (marcado como-) tem entradas de C i-1 e a saída do somador da primeira metade que é S. A saída do somador da segunda metade é Si e SCi-1.

Agora, SCi-1 representa a realização. O carry do somador da primeira metade que é C e o carry do somador da segunda metade que é SCi-1 são alimentados como entrada de uma porta OR. A saída da porta OR é a execução final de todo o circuito somador.

Adicionadores binários paralelos

Um somador completo é necessário para a adição de bits em cada estágio de adição, exceto a adição dos dígitos menos significativos, por outro lado, dois meio somadores são necessários para completar um somador completo. Segue a regra de que a adição de dois números de n bits exigirá 2 * m -1 número de meio somador e m-1 números de portas OR. Este tipo de somadores binários é conhecido como somadores binários paralelos. A velocidade de operação desses tipos de somadores é muito rápida. É por isso que eles são preferidos em dispositivos computacionais modernos.  

Vamos adicionar 101 e 111 como um exemplo de somador binário paralelo. A figura abaixo representa a adição.

Somador lookahead de carry de 4 bits
Adicionador binário paralelo, fonte da imagem - pt: Usuário: CburnettSomador carry lookahead de 4 bitsCC BY-SA 3.0

O primeiro meio somador (marcado como-1) adiciona os bits 1 e 1 da extrema direita para produzir a soma binária 0 e o carry 1 de acordo com as regras de adição binária. A saída do meio somador é alimentada na entrada do primeiro somador completo (marcado como-2). As outras duas entradas do primeiro somador completo são os dois próximos bits que são 0 e 1. As saídas do primeiro somador completo são 0 como soma e 1 como transporte. Eles são posteriormente alimentados na entrada do segundo somador completo. As outras duas entradas são 1 e 1. As saídas do segundo somador completo são 1 como soma e 1 como transporte. Portanto, o resultado da soma é 1100.

Agora, um ponto a ser observado que no lugar de um meio somador na posição de dígito menos significativo, um somador completo pode ser usado com sua entrada de transporte definida como 0.

Adicionador BCD

O termo BCD no somador BCD significa Binary Coded Decimal. BCD é um tipo especial de codificação binária em que cada dígito tem um certo número de bits para representação. O BCD dos primeiros 10 valores decimais é mostrado na tabela.

Dígito Decimal BCD  
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
ADICIONADOR BCD

O somador BCD tem duas entradas que variam de 0 a 9. A saída varia de 0 a 18 e se o transporte anterior for considerado, o intervalo será de até 19.

A tabela para o adicionador BCD é fornecida abaixo.

somador decimal ou bcd
Tabela de verdade do BCD Adder

Da tabela acima, podemos observar que de 1 a 9 o binário e o BCD são iguais. De 10 a 19 números decimais, tanto o binário quanto os códigos são diferentes.

O diagrama de circuito de um adicionador BCD é mostrado abaixo.

  • No diagrama acima, há um somador binário de quatro bits que tem entrada como adicionada e aumentada. Também possui entrada de transporte.
  • O somador binário fornece a saída da adição e uma saída de transporte.
  • Agora, usando a saída e o carry, o circuito é projetado para descobrir o carry final.
  • A saída é alimentada posteriormente em um somador de 4 bits.
  • Agora, o circuito é projetado para fazer o 1st e 4th bit do número adicionado como 0 e também o 2nd e 3rd bit para fazer igual a Carry. Quando o carry é 1, o circuito é projetado de forma que o adicionado seja 0110. 6 é adicionado com augend para obter o BCD.

Exemplo de BCD

0110 + 0101 = 1011

Agora, isso é inválido como BCD. O número é maior que 9. Portanto, temos que adicionar 6 ao resultado.

O resultado final será = 1011 + 0110 =

1011 + 0110 = 10001

Portanto, a resposta final será 10001

Conheça os subtratores! Clique aqui!

Implementação de VHDL de Half adder e Full Adder

MODELAGEM DE FLUXO DE DADOS DE ADICIONADOR MEIO-BINÁRIO

biblioteca IEEE;

use IEEE.std_logic_1164.all;

entidade half_adder_dataflow é

    Porta (a: em STD_LOGIC;

           b: em STD_LOGIC;

           s: out STD_LOGIC;

           c: fora STD_LOGIC);

fim half_adder_dataflow;

arquitetura Comportamental de half_adder_dataflow é

começar

s <= a XOR b;             

c <= a AND b;            

fim Comportamental;

MODELAGEM DE COMPORTAMENTO DE ADICIONADOR MEIO-BINÁRIO:

entidade SUDIPTA_ROY_HALFADD é

    Porta (A: em STD_LOGIC;

           B: em STD_LOGIC;

           C: fora STD_LOGIC;

           S: fora STD_LOGIC;

           Z: out STD_LOGIC);

fim SUDIPTA_ROY_HALFADD;

arquitetura Comportamental de SUDIPTA_ROY_HALFADD é

começar

processo (A, B)

começar

if (A = '0 ′ e B =' 0 ′) então

S <= '0 ′;

C <= '0 ′;

elsif (A = '0 ′ e B =' 1 ′) então

S <= '1 ′;

C <= '0 ′;

elsif (A = '1 ′ e B =' 0 ′) então

S <= '0 ′;

C <= '1 ′;

outro

S <= '1 ′;

C <= '1 ′;

end if;

fim do processo;

fim Comportamental;

MODELAGEM DE FULL-ADDER DATAFLOW

biblioteca IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entidade SUDIPTA_ROY_FULLADD é

    Porta (A: em STD_LOGIC;

           B: em STD_LOGIC;

           Cin: em STD_LOGIC;

           S: fora STD_LOGIC;

           Carro: fora STD_LOGIC);

fim SUDIPTA_ROY_FULLADD;

arquitetura Dataflow de SUDIPTA_ROY_FULLADD é

começar

S <= (A xor B) xou Cin;

Car <= (A e B) ou (B e Cin) ou (Cin e A);

fim do Dataflow;

MODELAGEM COMPORTAMENTO COMPLETO

entidade SAERI_DATT_FULLADD é

    Porta (A: em STD_LOGIC;

           B: em STD_LOGIC;

           Cin: em STD_LOGIC;

           S: fora STD_LOGIC;

           Carro: fora STD_LOGIC);

fim SAERI_DATT_FULLADD;

arquitetura Comportamental de SAERI_DATT_FULLADD é

começar

processo (A, B, Cin)

começar

if (A = '0 ′ e B =' 0 ′ e Cin = '0 ′) então

S <= '0 ′;

Carro <= '0 ′;

elsif (A = '0 ′ e B =' 0 ′ e Cin = '1 ′) então

S <= '1 ′;

Carro <= '0 ′;

elsif (A = '0 ′ e B =' 1 ′ e Cin = '0 ′) então

S <= '1 ′;

Carro <= '0 ′;

elsif (A = '0 ′ e B =' 1 ′ e Cin = '1 ′) então

S <= '0 ′;

Carro <= '1 ′;

elsif (A = '1 ′ e B =' 0 ′ e Cin = '0 ′) então

S <= '1 ′;

Carro <= '0 ′;

elsif (A = '1 ′ e B =' 0 ′ e Cin = '1 ′) então

S <= '0 ′;

Carro <= '1 ′;

elsif (A = '1 ′ e B =' 1 ′ e Cin = '0 ′) então

S <= '0 ′;

Carro <= '1 ′;

outro

S <= '1 ′;

Carro <= '1 ′;

 end if;

 fim do processo;

 fim Comportamental;