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 LSD = Least-significant-digit 1 3 7 6 4 6 1 8 3 7 1 1 LSD 1 0 0 1 (9) 1 1 1 1 (15) 1 1 0 0 0 (24) 1 LSD 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 0 (7 bits = 31- a + 31 em S&M) Bit de sinal (-) Magnitude do número Quando o bit de sinal igual a 0 o número é positivo, quando 1 é negativo.
Meio Somador vai-um c n+1 Entrada de dados a n b n FA a n b n S n C n 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 s n Soma
Meio Somador Na forma SDP: s n = a n.b n + a n.b n Simplificando: s n = a n b n Cout c n+1 = a n.b n
Somador Completo Também chamado: full-adder. O somador completo tem 3 bits de entrada a n e b n, utilizados pelos dados, e c n, (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 s n e o vai-um de saída (Carry Out) c n+1.
Somador Completo vai-um c n+1 Entrada de dados a n b n FA s n c n vem-um Soma a n b n C n s n c n+1 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
Somador Completo Na forma SDP: s n = a n.b n.c n + a n.b n.c n + a n.b n.c n + a n.b n.c n Simplificando: s n = (a n.b n + a n.b n ). c n + (a n.b n + a n.b n ). c n = (a n b n ). c n + (a n b n ). c n x x s n = (a n b n c n ) x y = x.y +x.y (x y) = x.y +x.y
Somador Completo Da mesma forma para c n+1 c n+1 = a n.b n.c n + a n.b n.c n + a n.b n.c n + a n.b n.c n = a n.b n.(c n + c n ) + (a n.b n + a n.b n ).c n = a n.b n + (a n b n ). c n a b 0 0 ou ainda = a n.b n + a n. c n + b n. c n a b ab ab c c 0 1 1 1 0 1
Circuito Somador Completo
Circuito Somador Completo c n+1 = a n.b n + (a n b n ). c n s n = (a n b n c n )
Somador em Paralelo Supor agora somar palavras de 4 bits A = a 3 a 2 a 1 a 0 B = b 3 b 2 b 1 b 0 Uma unidade somador paralelo produz a soma permitindo que entremos com 2 palavras ao mesmo tempo:
Somador em Paralelo a 3 b 3 a 2 b 2 a 1 b 1 a 0 b 0 FA c 3 FA c 2 FA c 1 FA C in =0 c 4 s 3 s 2 s 1 s 0
Somador Completo Somador completo CI Somador paralelo de 4 bits
Meio Subtrator vai-um c n+1 Entrada de dados a n b n FA a n b n S n C n 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 s n Subtração s n = a n b n c n+1 = a n.b n
Subtrator Completo vai-um c n+1 Entrada de dados a n b n FA s n c n vem-um Subtração s n = a n b n c n c n+1 = a n.c n + b n.c n a n b n c n s n c n+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 a b a b ab ab c c 0 1 1 1 1 0 0 0
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 0 1 1 0 1 = +45 10 Bit de Sinal (+) Forma binária direta 1 0 1 0 0 1 1 = - 45 10 Bit de Sinal (-) 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 = 1101 2 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 9 10 = 1001 2 0110 (complemento de 1) + 1 (soma-se 1 ao LSB) Anexando o bit de sinal 1 temos: - 9 = 10111 0111 (Complemento de 2) 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: +3 10 = 00011 2 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 0 1001 (1 a parcela) +4 0 0100 (2 a 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 0 1001 (1 a parcela) -4 1 1100 (2 a parcela) 1 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 1 0111 (1 a parcela) +4 0 0100 (2 a 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 1 0111 (1 a parcela) -4 1 1100 (2 a parcela) O carry novamente é desconsiderado 1 1 0011 (Soma = -13) Bits de sinal Carry desconsiderado
Adição no Sistema Complemento de 2 Caso 5: Números iguais e sinais opostos Ex: Somar -9 com +9-9 1 0111 (1 a parcela) +9 0 1001 (2 a parcela) 1 0 0000 (Soma = 0) O carry novamente é desconsiderado Bits de sinal Carry 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 0 1001 (1 a parcela) -4 1 1100 (2 a parcela) 1 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 1 1100 (1 a parcela) -9 1 0111 (2 a parcela) 1 1 0011 (Soma = -13) Bits de sinal Carry desconsiderado
Multiplicador A multiplicação binária é definida pelas seguintes regras: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 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 = A x B
Multiplicador Um problema mais prático é a multiplicação de duas palavras de n-bits. Exemplo: x a 1 a 0 b 1 b 0 a 1 b 0 a 0 b 0 p 0 = a 0 x b 0 p 1 = a 0 x b 0 + a 1 x b 0 p 2 = a 1 x b 1 + c 2 a 1 b 1 a 0 b 1 p 3 = c 3 p 3 p 2 p 1 p 0 O produto de duas palavras de dois bits resulta em um produto com 4 bits.
Circuito Lógico (Multiplicador 2x2) a 1 a 0 b 1 b o a 1 x b 1 a 1 x b 0 a 0 x b 1 a 0 x b 0 MS MS p 0 = a 0 x b 0 p 1 = a 0 x b 0 + a 1 x b 0 p 2 = a 1 x b 1 + c 2 p 3 p 2 p 1 p 0 p 3 = c 3
Multiplicação 1 0 0 1 multiplicando = 9 10 1 0 1 1 multiplicador = 11 10 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 Produtos parciais Produtos final = 99 10
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 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 Primeiro produto parcial Segundo produto parcial Soma dos dois primeiros produtos parciais Terceiro produto parcial Soma dos três primeiros produtos parciais Quarto produto parcial 1 1 0 0 0 1 1 Soma dos quatro primeiros produtos parciais que é igual ao produto final
Multiplicador 4x4
Circuito 4x4 Multiplicador Somador Completo