Em circuitos digitais, um somador- subtrator binário é aquele que é capaz tanto de adição quanto de subtração de números binários em um circuito. A operação que está sendo executada depende do valor binário que o sinal de controle mantém. É um dos componentes da ALU (Arithmetic Logic Unit). 

Este circuito requer conhecimento prévio de Exor Gate, Adição e Subtração Binárias, Full Adder. 

Vamos considerar dois números binários de 4 bits A e B como entradas para o circuito digital para a operação com dígitos 
 

A0 A1 A2 A3 for A
B0 B1 B2 B3 for B 

O circuito consiste em 4 somadores completos, uma vez que estamos executando a operação em números de 4 bits. Existe uma linha de controle K que contém um valor binário de 0 ou 1 que determina que a operação que está sendo realizada é adição ou subtração. 

Conforme mostrado na figura, o primeiro somador completo tem a linha de controle diretamente como sua entrada (transporte de entrada Cin), A entrada A0 (o bit menos significativo de A) é entrada diretamente no somador completo. A terceira entrada é o exor de B0 e K. As duas saídas produzidas são Soma / Diferença (S0) e Carry (C0). 

Se o valor de K (linha de controle) for 1, a saída de B0 (exor) K = B0 ′ (Complemento B0). Assim, a operação seria A + (B0 ′). Agora a subtração do complemento de 2 para dois números A e B é dada por A + B '. Isso sugere que quando K = 1, a operação que está sendo executada nos quatro números de bits é a subtração. 

Da mesma forma, se o valor de K = 0, B0 (exor) K = B0. A operação é A + B, que é uma simples adição binária. Isso sugere que Quando K = 0, a operação que está sendo executada nos quatro números de bits é a adição. 

Então C0 é passado serialmente para o segundo somador completo como uma de suas saídas. A soma / diferença S0 é registrada como o bit menos significativo da soma / diferença. A1, A2, A3 são entradas diretas para o segundo, terceiro e quarto somadores completos. Então, a terceira entrada é B1, B2, B3 EXORADA com K para o segundo, terceiro e quarto somadores completos, respectivamente. O carry C1, C2 são passados ​​em série para o somador completo sucessivo como uma das entradas. C3 torna-se o transporte total para a soma / diferença. S1, S2, S3 são registrados para formar o resultado com S0. 

Para um somador-subtrator binário de n bits, usamos um número n de somadores completos. 

Exemplo: 
vamos pegar dois números de 3 bits A = 010 e B = 011 e inseri-los no somador completo com ambos os valores das linhas de controle. 
 

For K=0:
B0(exor)K=B0 and C0=K=0

Thus from first full adder
= A0+B0
= 0+1
= 1, 

S0=1
C1=0
Similarly, 
S1=0 with C2=1
S2=1 and C2=0
 
Thus, 
A = 010 =2   
B = 011 = 3
Sum = 0101 = 5


For K=1
B0(exor)K=B0' and C0=k=1

Thus 
S0=1 and C1=0
Similarly 
S1=1 and C2=0
S3=1 and c3=1

Thus,  
A = 010 = 2
B = 011 = 3 
Sum(Difference) = 1111 = -1 

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.