B - UFERSA

Propaganda
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: CIÊNCIA DA COMPUTAÇÃO
Aula 10 – Circuitos Aritmeticos
Prof. Leonardo Augusto Casillo
Somador Binário
Funções aritméticas como adição, subtração,
podem ser executadas usando números
binários.
 Tais operações são fundamentais na construção
de um computador.
 Os computadores e as calculadores digitais
realizam várias operações aritméticas sobre
números representados no formato binário

Somador Binário
A adição de dois números binários é realizada
exatamente da mesma forma que a adição de
números decimais.
 A adição de números binários é baseada nas
seguintes identidades:

◦
◦
◦
◦
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 0 com carry de 1 (ou vai-um de 1)
Somador Binário

Apesar de a existência do bit de carry,
observamos que a adição de dois
números tem o mesmo resultado da
operação lógica:
◦ EXCLUSIVE-OR (XOR).
A
B
F = (AB)
0
0
0
0
1
1
1
0
1
1
1
0
Somador Decimal x Binário
3
4
8
7
6
3
6
1
7
1
1
1
1
1
1 1
0
1
0
0
1
0
1
LSD
1 (9)
1 (15)
0 (24)
LSD

LSD = Least-significant-digit

Não é necessário considerar a adição
de mais de dois números binários de
uma vez, porque em todos os sistemas
digitais o circuito que realiza a adição
pode efetuar uma operação apenas com
dois números de cada vez.
Quando mais de 2 números devem ser
somados, os dois primeiros são
somados e o resultado é somado com o
terceiro número e assim por diante.

Representação de Números com
Sinal
(52)10
1
1
0
1
0
0
(6 bits = 0 a 63 decimal)
Magnitude do número
(-52)10
1
1
1
0
1
0
Magnitude do número
Bit de sinal (-)
0
(7 bits = 31- a + 31 em S&M)

Quando o bit de sinal
igual a 0 o número é
positivo, quando 1 é
negativo.
Meio Somador
Entrada de dados
an
cn+1
bn
FA
vai-um
sn Soma
an
bn
Sn Cn
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Meio Somador

Na forma SDP:
◦ sn = a’n.bn + an.b’n

Simplificando:
◦ sn = an  bn

Cout
◦ cn+1 = an.bn
Somador Completo

Também chamado: full-adder.

O somador completo tem 3 bits de entrada an
e bn, utilizados pelos dados, e cn, (Carry In –
Cin) utilizado como bit de entrada do vai-um da
coluna imediatamente à direita.

O circuito produz dois bits de saída, a soma sn e
o vai-um de saída (Carry Out) cn+1 .
Somador Completo
Entrada de dados
an
cn+1
vai-um
an
bn
Cn
sn
cn+1
0
0
0
0
0
0
0
1
1
0
cn
0
1
0
1
0
vem-um
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
bn
FA
sn Soma
Somador Completo

Na forma SDP:
◦ sn = a’n.bn.c’n + an.b’n.c’n + a’n.b’n.cn + an.bn.cn

Simplificando:
◦ sn = (a’n.bn + an.b’n). c’n + (a’n.b’n + an.bn). cn
◦ = (an  bn). c’n + (an  bn)’. cn
x
sn = (an  bn  cn )
x’
x  y = x’.y +x.y’
(x y)’ = x.y +x’.y’
Somador Completo

Da mesma forma para cn+1
◦ cn+1 = an.bn.c’n + a’n.bn.cn + an.b’n.cn + an.bn.cn
◦
= an.bn.(c’n + cn) + (a’n.bn + an.bn).cn
◦
= an.bn + (an  bn). cn
c’
◦ ou ainda = an.bn + an. cn + bn. cn
c
a‘b’ 0
a’b 0
0
1
1
0
1
ab
ab’
1
Circuito Somador Completo
Circuito Somador Completo
cn+1 = an.bn + (an  bn). cn
sn = (an  bn  cn )
Somador em Paralelo

Supor agora somar palavras de 4 bits
◦ A = a3a2a1a0
◦ B = b3b2b1b0

Uma unidade somador paralelo produz a
soma permitindo que entremos com 2
palavras ao mesmo tempo:
Somador em Paralelo
a3
FA
c4
a2
b3
s3
c3
a1
b2
FA
s2
c2
a0
b1
FA
s1
c1
b0
FA
s0
Cin=0
Somador Completo
Somador completo
CI Somador paralelo
de 4 bits
Meio Subtrator
Entrada de dados
an
cn+1
bn
FA
vai-um
sn Subtração
an
bn
Sn Cn
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
◦ sn = an  bn
◦ cn+1 = an’.bn
Subtrator Completo
Entrada de dados
an
cn+1
vai-um
bn
FA
cn
vem-um
sn Subtração
◦ sn = an  bn  cn
◦ cn+1 = an’.cn + bn.c’n
an
bn
cn
sn
cn+1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
c’
a‘b’ 0
a’b 1
1
1
0
0
0
ab
ab’
c
1
Subtrator

A maioria dos computadores modernos usa o
sistema de complemento de 2 para representar
números negativos e realizar subtrações.

As operações de adição e subtração de
números com sinal podem ser realizadas
usando apenas a operação de adição se
usarmos a forma de complemento de 2 para
representar números negativos.
Subtrator

Para realizar operações com números inteiros, são
considerados os números em sistemas de ponto fixo.

O sistema mais usado para representar números
binários com sinal é o sistema de complemento de 2.

Antes de saber como é esse sistema, temos que
saber determinar o complemento de 1 e o
complemento de 2 de um número binário.
Forma de Sinal e Magnitude (S&M)

O sinal do número é calculado separadamente
do seu módulo. O bit de sinal é sempre o bit
mais à esquerda do valor (MSB).
1 0 1 1 0 1
- 13
0 0 1 1 0 1
+ 13
Forma do Complemento de 1
O complemento de 1 de um número binário é
obtido substituindo cada 0 por 1 e cada 1 por 0.
 Em outras palavras, substitui-se cada bit do
número binário pelo seu complemento.

1 0 1 1 0 1
Número binário original
0 1 0 0 1 0
Complemento de 1
Forma de Complemento de 2

O complemento de 2 de um número é obtido
tomando-se o complemento de 1 do número e
somando-se 1 na posição do bit menos
significativo.
+
1 0 1 1 0 1 (binário (45)10)
0 1 0 0 1 0 (complemento de 1)
1 (adiciona-se 1)
0 1 0 0 1 1 (Complemento de 2)
Forma de Complemento de 2 (com
sinal)

Se o número for positivo, a magnitude é
representada na forma binária direta, e
um bit de sinal 0 é colocado em frente ao
bit mais significativo (MSB).

Se o número for negativo, a magnitude é
representada
na
sua
forma
do
complemento de 2 e um bit de sinal 1 é
colocado em frente ao MSB.
Forma de Complemento de 2 (com
sinal)
0
1
Bit de Sinal (+)
1
0
Bit de Sinal (-)
0
1
1
0
1
= +4510
1
= - 4510
Forma binária direta
1
0
0
1
Complemento de 2
Complemento de 2

Representar cada um dos números
decimais com sinal usando um número
binário com sinal no sistema de
complemento de 2.
Usar um total de 5 bits incluindo o bit de
sinal.
 (a) +13 (b) –9 (c) +3

Complemento de 2
(a) +13
 Como o número é positivo, a magnitude
(13) é representada na forma direta, ou
seja, 13 = 11012
 Anexando o bit 0 temos:

+13 = 01101

Bit de sinal
Complemento de 2




(b) - 9
Como o número é negativo, a magnitude (9) tem de ser
representada na forma de complemento de 2
910 = 10012
0110 (complemento de 1)
+
1 (soma-se 1 ao LSB)
0111 (Complemento de 2)
Anexando o bit de sinal 1 temos:
- 9 = 10111
Bit de sinal
Complemento de 2
(c) +3
 O valor decimal 3 pode ser representado em
binário usando apenas 2 bits.
 Entretanto, o enunciado do problema requer
uma magnitude de 4 bits precedida de um bit de
sinal. Então temos:

+310 = 000112

Bit de sinal
Negação

Negação é a operação de conversão de um número
positivo em seu equivalente negativo ou a conversão
de um número negativo em seu equivalente positivo.

Quando os números binários com sinal estão
representados no sistema de complemento de 2, a
negação é obtida simplesmente realizando-se a
operação de complemento de 2.
Iniciar com
01001 = +9
Fazer complemento de 2 (negação)
10111 = -9
Negar Novamente 01001 = +9
Adição no Sistema Complemento
de 2

Caso 1: Dois números positivos
◦ Este é feito diretamente.
◦ Ex: Somar +9 com +4
+9
+4
0
0
1001 (1a parcela)
0100 (2a parcela)
0
1101 (Soma = +13)
Bits de sinal
Adição no Sistema Complemento
de 2

Caso 2: Um número positivo e outro número
menor e negativo
◦ Lembre-se que –4 será representado na forma de
complemento de 2. Então +4 (00100) tem que ser
convertido para –4 (11100)
◦ Ex: Somar +9 com -4
+9
-4
1
0
1
1001 (1a parcela)
1100 (2a parcela)
0
0101 (Soma = +5)
Bits de sinal
Carry desconsiderado
Neste caso, o bit de sinal
também participa do processo de
soma. Na verdade, um carry é
gerado na última posição da
soma. Esse carry sempre é
desconsiderado; logo a soma
final é 00101, o equivalente a +5.
Adição no Sistema Complemento
de 2

Caso 3: Um número positivo e outro
número maior e negativo
◦ Ex: Somar -9 com +4
-9
+4
1
0
0111 (1a parcela)
0100 (2a parcela)
1
1011 (Soma = -5)
Bits de sinal
Carry desconsiderado
Neste caso, a soma tem um bit de
sinal 1, indicando um número
negativo. Como a soma é negativa,
está na forma do complemento de
2; logo, os últimos 4 bits, 1011, de
fato representam o complemento de
2 da soma. Para obter a magnitude
direta da soma, temos de fazer a
negação de 11011; o resultado é
00101 = +5.
Adição no Sistema Complemento
de 2

Caso 4: Dois números negativos
◦ Ex: Somar -9 com -4
-9
-4
1
1
1
0111 (1a parcela)
1100 (2a parcela)
1
0011 (Soma = -13)
Bits de sinal
Carry desconsiderado
O carry novamente é
desconsiderado
Adição no Sistema Complemento
de 2

Caso 5: Números iguais e sinais opostos
◦ Ex: Somar -9 com +9
-9
+9
1
1
0
0111 (1a parcela)
1001 (2a parcela)
0
0000 (Soma = 0)
Bits de sinal
Carry desconsiderado
O carry novamente é
desconsiderado
Subtração

A operação de subtração que usa o sistema de
complemento de 2 na verdade envolve a operação de
soma e não é diferente dos diversos casos de adição
tratados anteriormente.

Quando efetuamos a subtração de um número binário
(o subtraendo) de um outro número binário (o
minuendo) usa-se os seguintes procedimentos:
◦ Faça a operação de negação do subtraendo. Isso mudará o
subtraendo para o seu valor equivalente com sinal oposto.
◦ Adicione esse número obtido ao minuendo. O resultado dessa
adição representa a diferença entre o subtraendo e o minuendo.
Subtração

Vamos considerar em que +4 é subtraído de +9.
◦ Minuendo (+9) = 01001
◦ Subtraendo (+4) = 00100

Faça a negação do subtraendo para obter 11100, que
representa –4. Agora some este número ao minuendo.
+9
-4
1
0
1
1001 (1a parcela)
1100 (2a parcela)
0
0101 (Soma = +5)
Bits de sinal
Carry desconsiderado
Subtração

Vamos considerar em que +9 é subtraído de -4.
◦ Minuendo (-4) = 11100
◦ Subtraendo (+9) = 01001

Faça a negação do subtraendo (+9) para obter 11100,
que representa –4. Agora some este número ao
minuendo.
-4
-9
1
1
1
1100 (1a parcela)
0111 (2a parcela)
1
0011 (Soma = -13)
Bits de sinal
Carry desconsiderado
Multiplicador

A multiplicação binária é definida pelas
seguintes regras:
◦
◦
◦
◦

0x0=0
0x1=0
1x0=0
1x1=1
Analizando as regras acima, podemos perceber
que a operação de multiplicação é o mesmo
que a operação AND.
Multiplicador

A tabela da verdade de uma AND ilustra
esta relação:
A
B
(AxB)
0
0
0
0
1
0
1
0
0
1
1
1
A
B
P=AxB
Multiplicador

Um problema mais prático é a
multiplicação de duas palavras de n-bits.
Exemplo:
a1
x b1
a1b0
p3

a1b1
a0 b1
p2
p1
a0
b0
a0 b0
p0 = a0 x b0
p1 = a0 x b0 + a1 x b0
p2 = a1 x b1 + c2
p3 = c3
p0
O produto de duas palavras de dois bits
resulta em um produto com 4 bits.
Circuito Lógico (Multiplicador 2x2)
a1
a0
b1
bo
a1 x b1
a1 x b0
MS
a0 x b1
a0 x b0
p0 = a0 x b0
MS
p1 = a0 x b0 + a1 x b0
p3
p2 = a1 x b1 + c2
p2
p1
p0
p3 = c3
Multiplicação
1 0 0 1
1 0 1 1
1 0 0 1
1 0 0 1
multiplicando = 910
multiplicador = 1110
Produtos parciais
0 0 0 0
1 0 0 1
1 1 0 0 0 1 1
Produtos final = 9910
Multiplicação
1 0 0 1
1 0 1 1
1 0 0 1
1 0 0 1
0 0 0 0
1 0 0 1
1 0 0 1
1 0 0 1
1 1 0 0 1
0 0 0 0
Primeiro produto parcial
Segundo produto parcial
Soma dos dois primeiros produtos parciais
Terceiro produto parcial
0 1 1 0 1 1
1 0 0 1
Soma dos três primeiros produtos parciais
1 1 0 0 0 1 1
Soma dos quatro primeiros produtos parciais
que é igual ao produto final
Quarto produto parcial
1 1 0 0 0 1 1
Multiplicador 4x4
Circuito 4x4
Multiplicador
Somador
Completo
Download