- Definições e visão geral do somador
- Tipos de somador
- Meio somador
- Somador completo
- 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.
A | B | S = A + B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 (transportar 1) |
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.
A | B | Soma | Transportar | Soma de A e B |
0 | 0 | 0 | 0 | 00 |
0 | 1 | 1 | 0 | 01 |
1 | 0 | 1 | 0 | 01 |
1 | 1 | 0 | 1 | 10 |
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 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
Ai | Bi | Ci-1 | Si | Ci |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
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.
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.
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 | |||
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 1 | 1 |
4 | 0 | 1 | 0 | 0 |
5 | 0 | 1 | 0 | 1 |
6 | 0 | 1 | 1 | 0 |
7 | 0 | 1 | 1 | 1 |
8 | 1 | 0 | 0 | 0 |
9 | 1 | 0 | 0 | 1 |
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.
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;
Olá, meu nome é Sudipta Roy. Eu fiz B. Tecnologia em Eletrônica. Sou um entusiasta da eletrônica e atualmente me dedico à área de Eletrônica e Comunicações. Tenho grande interesse em explorar tecnologias modernas, como IA e aprendizado de máquina. Meus escritos são dedicados a fornecer dados precisos e atualizados a todos os alunos. Ajudar alguém a adquirir conhecimento me dá imenso prazer.
Vamos nos conectar através do LinkedIn –
Olá caro leitor,
Somos uma equipe pequena na Techiescience, trabalhando duro entre os grandes players. Se você gostou do que viu, compartilhe nosso conteúdo nas redes sociais. Seu apoio faz uma grande diferença. Obrigado!