Buscar

Circuitos Aritmticos

Prévia do material em texto

CAP. 06
Circuitos Aritméticos
UNIFACS – 2015_02
Prof. Elio Pithon Sarno Filho
Adição decimal
Adição binária
Subtração binária
Complemento de 1
(45)
Complemento de 2
• Números positivos:
I) Magnitude representada na forma binária direta
II) Bit de sinal “0” colocado antes do MSB
• Números negativos:
I) Magnitude na forma complemento de 2
II) Bit de sinal “1” colocado antes do MSB
• O sistema de complemento de 2 é usado para 
representar números com sinal porque 
permite realizar a subtração efetuando uma 
adição
• Utilização do mesmo circuito lógico
• Economia de hardware
O processo pode ser realizado em apenas um passo :
Extensão de sinal
(-9)
Negação
• Para sabermos o valor decimal de um número 
negativo representado em complemento de 2, 
é preciso negá-lo pelo processo de 
complementação de 2 para obtermos seu 
equivalente positivo e, então, descobrirmos a 
sua magnitude
• Sempre que um número com sinal tiver um 1 
no bit de sinal e todos os bits de magnitude 
forem 0, seu equivalente decimal será 
em que N é o número de bits da magnitude.
• Neste caso, o complemento de 2 produz o próprio 
número original, uma vez que estamos no limite 
negativo do intervalo de valores representáveis com 
N+1 bits:
• Se estendermos o sinal desses números especiais, o 
processo de negação funcionará normalmente:
Faixa de valores representáveis com N bits em 
complemento de 2
N=3
Adição e subtração em complemento de 2
• Números negativos representados em complemento 
de 2
• A mesma operação realizada sobre os bits de 
magnitude é realizada sobre o bit de sinal
• Os dois operandos devem ter a mesma quantidade 
de bits
Dois números positivos
Um número positivo e outro menor e negativo
Um número positivo e outro maior e negativo
Dois números negativos
Números iguais e de sinais opostos
• Mesmo processo utilizado na soma
• Para efetuar a subtração :
Minuendo - Subtraendo
• 1) Fazer a negação do subtraendo
• 2) Somar este resultado ao minuendo
Overflow
• Nos casos até aqui considerados, os números possuem um bit 
de sinal e N bits de magnitude. Os resultados também. 
Quando acontece um carry para a posição mais significativa 
do que a do bit de sinal, este bit é desconsiderado. Em todos 
estes casos, a magnitude da resposta é suficientemente 
pequena para ser representada pelos N bits.
• Analisemos o seguinte caso:
• Neste caso N = 4
• A resposta deveria ser +17, porém a magnitude 17 requer 
mais de 4 bits e, portanto, ocorreu overflow na posição do bit 
de sinal
• A condição de overflow ocorre apenas quando dois números 
positivos ou dois negativos são somados. E isto produz 
sempre resultado errado
• Neste caso, o overflow pode ser detectado verificando se o bit 
de sinal do resultado tem o mesmo valor dos bits de sinal dos 
números que estão sendo somados
• Como a subtração em complemento de 2 é realizada pela 
operação de negação do subtraendo, o overflow pode 
ocorrer apenas quando o minuendo e o subtraendo tiverem 
sinais diferentes.
• Por exemplo: se subtrairmos -8 de +9. A operação de negação 
de -8 produz +8 que, somado com +9 ocasiona overflow, 
como visto anteriormente
• Os computadores possuem um circuito 
especial para detectar qualquer condição de 
overflow quando dois números são somados 
ou subtraídos. Esse circuito envia um sinal 
para a unidade de controle do computador, 
informando que ocorreu overflow e que o 
resultado está incorreto.
• A maioria das máquinas digitais pode somar 
apenas dois números binários de cada vez:
• Multiplicando e multiplicador deve estar no formato 
binário direto
• Assim, a multiplicação é realizada como anteriormente
• 1) Dois números positivos: já estão no formato binário; 
resultado é positivo e o bit de sinal é zero
• 2) Dois números negativos: devem ser convertidos para 
binário, achando o complemento de 2; o produto é 
mantido como número positivo e o bit de sinal é zero
• 3) Um número positivo e o outro negativo: o negativo é 
convertido em uma magnitude positiva. O produto tem 
um formato com magnitude direta. Porém, como o 
produto de números com sinais opostos é negativo, o 
resultado deve ser convertido em representação negativa 
por complemento de 2 e o bit de sinal deve ser 1.
Sugestão de Exercícios:
• 6.1 até 6.11
FUNÇÕES XOR e XNOR
XOR
XNOR
Simplificação do termo S
Simplificação do termo S
Simplificação do termo COUT
A saída , denominada carry out, é o transporte gerado para a soma dos 
próximos 2 bits mais à esquerda.
Somador de 5 bits
• Em um computador os números a serem somados são 
armazenados em registradores
• Os bits da primeira parcela são armazenados no acumulador 
(registrador A) e os da segunda parcela , no registrador B
• Os registradores são implementados com flip-flops tipo D para 
uma fácil transferência de dados
• O conteúdo de A é somado ao de B e o resultado aparece nas 
saídas S
• O bit de carry gerado na soma de cada dois bits é transferido 
ao próximo estágio através da saída Cout, interconectada à 
entrada Cin do estágio seguinte.
• O bit C4 (carry out do último estágio) pode ser usado como 
carry in de um quinto estágio ou como bit de overflow, para 
indicar que a soma excedeu a 1111
• As saídas S do resultado são conectadas às entradas D do 
registrador A, para serem armazenados quando ocorrer a 
borda de subida do pulso TRANSFER
• Os dados provenientes da memória são armazenados no 
registrador B quando ocorrer a borda de subida do pulso 
LOAD
• As saídas o registrador A estão disponíveis para transferência 
de dados para outros destinos (outro registrador ou memória 
do computador)
• Desta forma o circuito somador está disponível para somar 
um novo conjunto de dois números
• Soma dor paralelo de alta velocidade: todos os bits somados 
simultaneamente
• Velocidade limitada pelo efeito “ripple carry” (propagação do 
carry):
• A geração do bit MSB, depende não apenas dos dois bits MSB 
das parcelas somadas e do bit de carry da posição anterior, 
mas também do carry gerado na adição da primeira posição 
(C1)
C1
• Portanto, o bit S3 gerado pelo somador MSB depende do bit 
C1 gerado pelo primeiro somador (LSB)
• Porém o sinal C1 tem de passar pelos três Faz antes de gerar a 
saída S3, ou seja, S3 não alcançará o valor correto até que C1 
tenha se propagado através dos FAs intermediários.
• Se cada FA tem um atraso de 40ns, o MSB só estará pronto 
após 160ns ( contando o atraso para a geração de C1 no 
somador LSB)
• À medida em que aumenta o número de bits, a situação se 
torna mais crítica. Par um somador de 32 bits, o atraso de 
propagação do carry seria de 1,28μs. Portanto, o pulso de 
soma (transfer) não poderia ser aplicado antes deste intervalo 
de tempo.
• Essa magnitude de atraso é proibitiva para computadores de 
alta velocidade e, principalmente, em DSPs
• Uma das soluções encontradas para este problema foi um 
circuito lógico chamado “carry antecipado” (look-ahead
carry), em que se utiliza portas lógicas para “observar” os bits 
de ordem mais baixa e ver se um carry de ordem mais alta 
será gerado. Obviamente este circuito tem um atraso menor 
do que aquele obtido pela propagação do carry através dos 
FAs. 
• Este esquema exige um circuito mais complexo, porém é 
utilizado em circuitos integrados de alta velocidade.
• Ocarry antecipado do 74HC283 aumenta a 
velocidade de operação dos dois estágios somadores 
uma vez que o nível lógico em C4 (carry de saída do 
estágio de baixa ordem) é gerado mais rapidamente 
do que se não tivesse este circuito.
• Desta forma, o estágio de ordem mais elevado pode 
gerar sua soma mais rapidamente
Meio Subtrator
Subtrator Completo
O bit C4 é desconsiderado
Em complemento de 2

Continue navegando

Outros materiais