Buscar

ELTD01 7

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
CAPÍTULO 7 
CIRCUITOS ARITMÉTICOS 
Circuitos aritméticos são amplamente usados em computadores, controladores, 
processadores digitais e em uma grande variedade de circuitos de aplicações específicas. 
Basicamente, todos os cálculos matemáticos são feitos por circuitos aritméticos. O 
gerenciamento avançado de endereços e as tomadas de decisões em computadores são 
dependentes de circuitos aritméticos. Adicionalmente, grande parte do processamento de 
sinais é feito por circuitos aritméticos, demonstrando assim a importância e a dependência 
desses circuitos. 
7.1 SOMA 
Na matemática convencional, quando se faz uma soma, na verdade faz-se um 
deslocamento na sequência de contagem. Considere o valor 2 na sequência da Figura 7.1.a. 
Ao se somar 5, há um deslocamento de 5 unidades após o 2, atingindo o valor 7. 
 Figura 7.1 - Soma em decimal (a) menor que dezena e (b) maior que dezena. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
Considere agora o valor 8 na sequência da Figura 7.1.b. Da mesma forma, ao se 
somar 5, deve haver um deslocamento de 5 unidades. Entretanto, após um único 
deslocamento atinge-se o 9 que é o último valor da sequência decimal. Desta forma há a 
necessidade de reiniciar a sequência decimal, e portanto gera-se o “vai 1”. Assim, contam-se 
os 4 valores restantes e atinge-se o 3. Como já houve o “vai 1”, obtém-se de fato o 13, que é 
o resultado certo e esperado. 
7.1.1 Meio Somador 
A soma binária obedece ao mesmo princípio, porém no código binário. A Tabela 7.1 
apresenta a soma de dois dígitos binários. A soma de A=0 com B= 0, resulta em 0. A soma 
de A=0 com B= 1, resulta em 1, e o mesmo vale para A=1 com B= 0. 
Tabela 7.1 – Meio somador binário. 
Operandos Soma Vai 1 
A B S C 
0 0 0 0 
0 1 1 0 
1 0 1 0 
1 1 0 1 
 
Por outro lado, a soma de A=1 com B= 1, resulta em 0 e vai 1, como indicado na 
Figura 7.2. Uma outra maneira de se “enxergar” isso é sabendo que a soma de A=1 com B= 
1, resulta em 2, que vale 10. 
 
Figura 7.2 - Soma binária simples com “vai 1”. 
As expressões obtidas da Tabela 7.1 são BABABAS  e ABC  resultando 
então no circuito da Figura 7.3.a, cujo símbolo é apresentado na Figura 7.3.b. 
A
B S
C
A
B
S
C
MS
(a) (b) 
Figura 7.3 - Meio somador binário: (a) esquemático e (b) símbolo. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.1.2 Somador Pleno 
A soma anterior funciona somente para o dígito menos significativo. Os demais 
dígitos devem levar em conta também o “vem 1”. Considere como exemplo a soma indicada 
na Figura 7.4. 
 
Figura 7.4 - Somador decimal. 
A soma das unidades 8 e 7 resulta em 5 e “vai 1”. A soma das dezenas deve levar em 
conta o “vem 1” das unidades, resultando em 3 + 1 + 1 = 5. Esse mesmo conceito se aplica 
às somas binárias. A Tabela 7.2 apresenta a soma binária plena. 
Tabela 7.2 – Soma binária plena. 
Operandos Soma Vai 1 
A B Cin S C 
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 
 
As expressões da Tabela 7.2 podem ser obtidas como: 
CinBAABCinCinBACinBACinBAS 
)( BACinABABCinCinABCinBABCinAC  
resultando então no circuito da Figura 7.5 onde se faz reuso do meio somador anterior, 
indicados pelos retângulos vermelhos. 
 
Figura 7.5 - Somador binário pleno à partir de meio somadores. 
As expressões da Tabela 7.2 também podem ser obtidas como: 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
CinBAABCinCinBACinBACinBAS 
BCinACinABABCinCinABCinBABCinAC  
resultando agora então no circuito da Figura 7.6. Independente da forma de implementação, 
este circuito pode ser representado pelo símbolo da Figura 7.7. 
 
Figura 7.6 - Implementação alternativa de somador binário pleno. 
 
 
Figura 7.7 - Símbolo de um somador binário pleno. 
7.1.3 Somadores de Múltiplos Bits 
A implementação de um somador de vários bits é feito a partir da associação de 
somadores plenos, como visto na Figura 7.8. De fato essa topologia pode ser usada para 
qualquer número de bits. Como exemplo, somando-se os valões A3A2A1A0 = 0010 e 
B3B2B1B0 = 0011 tem-se C3C2C1C0 = 0101. A Figura 7.9 apresenta a representação do 
somador mostrado na Figura 7.8. O somador pleno menos significativo deve ter sua entrada 
Cin0 ligada em 0. 
 
Figura 7.8 - Somador de quatro bits. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
 
Figura 7.9 – Representação de um somador de 4 bits. 
Através da associação de somadores de 4 bits, podem-se obter somadores maiores. A 
Figura 7.10 ilustra a associação de dois somadores de 4 bits para formar um somador de 8 
bits. Observe que o a entrada Cin0 deve ser ligada à terra e a entrada Cin4 deve ser ligada a 
saída C3. 
 
Figura 7.10 - Associação de dois somadores de 4 bits. 
7.2 SUBTRAÇÃO 
Ao contrário da soma, a subtração na matemática convencional é feita por um 
deslocamento decrescente na sequência de contagem. Considere o valor 6 na sequência da 
Figura 7.11.a. Ao se subtrair 5, há um deslocamento decrescente de 5 unidades, atingindo o 
valor 1. 
Considere agora o valor 2 na sequência da Figura 7.11.b. Da mesma forma, ao se 
subtrair 5, deve-se fazer um deslocamento decrescente de 5 unidades. Entretanto, após dois 
deslocamentos atinge-se o 0. Assim, para continuar o deslocamento decrescente deve-se 
fazer um empréstimo, para que o 0 passe a valer 10. Assim, pode-se continuar a contar os 3 
valores restantes até atingir o 7. 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
0
1
2
3
4
5
6
7
8
9
-5
-5
(a) (b)
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
 Figura 7.11 - Subtração em decimal (a) menor que dezena e (b) maior que dezena. 
7.2.1 Meio Subtrator 
A subtração binária obedece ao mesmo princípio, porém no código binário. A Tabela 
7.3 apresenta a subtração de dois dígitos binários. Subtraindo-se B=0 de A= 0, resulta em 0 
e o mesmo vale para se subtrair B=1 de A= 1. Ao subtrair B=0 de A= 1, tem-se 1. Por outro 
lado, para subtrair B=1 de A= 0 faz-se necessário pedir um empréstimo (assim o 0 torna-se 
10, ou seja 2) e ao subtrair-se 1, tem-se então 1, como indicado na Figura 7.12. 
Tabela 7.3 – Meio subtrator binário. 
Operandos Diferença Empréstimo 
A B D E 
0 0 0 0 
0 1 1 1 
1 0 1 0 
1 1 0 0 
 
 Figura 7.12 - Subtração binária simples com empréstimo. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
As expressões obtidas da Tabela 7.3 são BABABAD  e BAE  
resultando então no circuito da Figura 7.1.a e o seu respectivo símbolo na Figura 7.1.b. 
 Figura 7.13 - Meio subtrator binário: (a) esquemático e (b) símbolo 
7.2.2 Subtrator Pleno 
A subtração anterior funciona somente para o dígito menos significativo. Os demais 
dígitos devem levar em conta também o “empréstimo”. Considere o exemplo de subtração 
indicado na Figura 7.14. Não se pode subtrair 7 de 2, portanto deve-se incialmente pedir um 
empréstimo às dezemas, e o 2 passa a valer 12. Agora subtraindo-se 7, o resultado das 
unidades torna-se 5. Por outro lado, como houve um empréstimo de 1 pelas dezenas, tem-se 
3 - 1 - 1 = 1. Esse mesmo conceito se aplica à subtração binária. A Tabela 7.4 apresenta a 
subtração de dois dígitos binários, incluindo “empréstimo”. 
 Figura 7.14 - Subtrator decimal. 
Tabela 7.4 – Subtração binário plena. 
Operandos Diferença Empréstimo 
A B Ein D E 
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 
 
As expressões da Tabela 7.4 podem ser obtidas como: 
EinBAABEinEinBAEinBAEinBAD 
)( BAEinBAABCinBEinAEinBAEinBAE  
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
resultando então no circuito da Figura 7.15 onde se faz reuso do meio subtrator anterior, 
indicados pelosretângulos vermelhos. 
 
Figura 7.15 - Subtrator binário pleno à partir de meio subtratores. 
As expressões da Tabela 7.4 também podem ser obtidas como: 
EinBAABEinEinBAEinBAEinBAD 
BEinEinABAABEinBEinAEinBAEinBAE  
resultando agora então no circuito da Figura 7.16. Independente da forma de 
implementação, este circuito pode ser representado pelo símbolo da Figura 7.17. 
A
B
Ein
D
E
 
Figura 7.16 - Implementação alternativa de subtrator binário pleno. 
 
 
Figura 7.17 - Símbolo de um subtrator binário pleno. 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.2.3 Subtratores de Múltiplos Bits 
A implementação de um subtrator de vários bits é feito a partir da associação de 
subtratores plenos, como indicado na Figura 7.18. De fato essa topologia pode ser usada 
para qualquer número de bits. O subtrator pleno menos significativo deve ter a sua entrada 
Ein0 ligada em 0. Como exemplo, subtraindo-se B3B2B1B0 = 0010 de A3A2A1A0 = 0011, 
tem-se C3C2C1C0 = 0001 e E3= 0. A Figura 7.19 apresenta a representação do subtrator 
mostrado na Figura 7.18. 
 
Figura 7.18 - Subtrator de 4 bits. 
 
Subtrator de 4 Bits
A0A1A2A3 B0B1B2B3
D0D1D2D3
E3 Ein0
 
Figura 7.19 – Representação de subtrator de 4 bits. 
Através da associação de subtratores de 4 bits, podem-se obter subtratores maiores. 
A Figura 7.20 ilustra a associação de dois subtratores de 4 bits para formar um subtrator de 
8 bits. Observe que a entrada Ein0 deve ser ligada ao terra e a entrada Ein4 deve ser ligada 
na saída E3. 
 
Figura 7.20 - Associação de dois subtratores de 4 bits. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.3 SUBTRAÇÃO PELO COMPLEMENTO 
A subtração pelo complemento é uma forma de se efetuar a subtração usando apenas 
circuitos somadores, bastando apenas obter o complemento de um número, que é de fácil 
implementação em binário. 
Em termos decimais também é possível implementar a subtração pelo complemento 
de 9. Aqui complemento de 9 significa a diferença em relação ao 9. Como exemplo, o 
complemento de 9 do número 5 é o número 4. No processo de subtração pelo complemento 
faz-se o complemento de 9 de cada dígito do subtraendo e o resultado é somado com o 
minuendo. 
No caso de subtraendo menor que minuendo (resultado positivo), o dígito mais 
significativo gerado, que é um 1, é removido e somado ao digito menos significativo. Como 
exemplo, veja a soma indicada na Figura 7.21. 
 
Figura 7.21 - Subtração pelo complemento de 9 com resultado positivo. 
Por outro lado, se o subtraendo for maior que minuendo (resultado negativo), não há 
a geração do dígito mais significativo (um 1). Nesse caso, faz-se o complemento de 9 para 
obter o resultado correto. Como exemplo, veja a soma indicada na Figura 7.22. 
 
Figura 7.22 - Subtração pelo complemento de 9 com resultado negativo. 
7.3.1 Representação de Números Binários Negativos 
Há basicamente duas formas de se representar números binários sinalizados. Na 
primeira, chamada se sinal-magnitude, o primeiro digito (digito mais significativo) é usado 
para representar o sinal. Nesse caso, 0 representa números positivos e 1 representa números 
negativos. Assim, 00101 representa 5 e 10101 representa -5. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
A segunda forma de representar números sinalizados é através do complemento de 2. 
Da mesma forma que no caso da representação sinal-magnitude, o bit mais significativo é 
usado para representar o sinal. Se o número for positivo, o bit mais significativo é 0, e os 
demais bits representam diretamente o valor do número. Entretanto se o bit mais 
significativo for 1, os demais bits NÃO representam diretamente o valor do número. Nesse 
caso, para saber o valor do número, deve-se obter o seu complemento de 2. Para se obter o 
complemento de um número, basta inverter todos os seus dígitos e somar 1. 
Como exemplo, considere o número 5, dado por 00101. O número -5 é obtido 
invertendo-se os bits do número e somando-se 1, como indicado na Figura 7.23. Desta 
forma, o número -5 é dado por 11011. 
 Figura 7.23 - Obtenção do complemento de 2. 
Da mesma forma, para se determinar o valor de um número negativo, deve-se repetir 
o processo anterior. Assim, como indicado na Figura 7.24, o número negativo 11011, após 
processo de inversão dos bits e adição de 1, resulta em 00101, que vale 5. Desta forma, 
sabe-se então que 11011 vale -5. 
 Figura 7.24 - Determinação do valor de um número negativo em complemento de 2. 
Nos exemplos anteriores foram utilizados 5 bits, sendo 1 para o sinal e 4 bits que 
representam o valor efetivo, em complemento de 2. Os números positivos estão na faixa de 
00000 (que vale 0) até 01111 (que vale 15). Por outro lado, os números negativos estão na 
faixa de 10001 (que vale -15) até 11111 (que vale -1). 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.3.2 Aritmética em Complemento de 2 
As operações de soma e subtração em complemento de 2 são executadas de forma 
bem simples, pois são executadas sempre como somas. Considere, para os exemplos a 
seguir, que os números tenha 5 bits. 
A Figura 7.25 ilustra a operação 7+3, onde os dois operandos são positivos. 
 
Figura 7.25 - Soma de dois operandos positivos em complemento de 2. 
A Figura 7.26 ilustra a operação 7-3, que pode ser visto como sendo 7+(-3). Desta 
forma, basta somar 7 com o complemento de 2 do número 3. O resultado é um número 
positivo, dado pelo fato de ter ocorrido a geração de um bit mais significativo. Nesse caso, 
para ter o número correto, basta fazer o descarte o digito mais significativo que foi gerado. 
 Figura 7.26 - Complemento de 2 do número 3 e operação 7+(-3). 
A Figura 7.27 ilustra a operação 3-7, que pode ser visto como sendo 3+(-7). Desta 
forma, basta somar 3 com o complemento de 2 do número 7. O resultado é um número 
negativo, visto que não houve a geração de um bit mais significativo. Assim, para saber qual 
é número negativo do resultado, basta fazer o processo de complemento de 2, onde se obtém 
o valor 4. Isto significa que o resultado, 11100 vale -4. 
 Figura 7.27 - Complemento de 2 do número 7 e operação 3+(-7). 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.3.3 Circuito Somador-Subtrator 
A grande vantagem da subtração pelo complemento é o fato de se efetuar a subtração 
por meio de circuitos somadores. A Figura 7.28 ilustra a forma de se implementar um 
somador/subtrator em complemento de 2. 
 
Figura 7.28 - Circuito somador/subtrator em complemento de 2. 
Para melhor entender esse circuito, observe a tabela de operação do ou-exclusivo, 
apresentado na Tabela 7.5. Observe que se a entrada X for 0, a saída Z fica igual à outra 
entrada (entrada Y). Porém se a entrada X for 1, a saída Z fica igual ao inverso da outra 
entrada (entrada Y). Em outras palavras, a porta ou-exclusiva funciona como um inversor 
controlado. 
Tabela 7.5 – Operação Ou-Exclusivo. 
X Y YXZ  
0 0 0 
0 1 1 
1 0 1 
1 1 0 
 
Retornando à Figura 7.28, se a linha Op for igual a 0, os sinais das entradas 
B3B2B1B0 não são invertidos pelas portas Ou-Exclusivo e são aplicados no somador, e ao 
mesmo tempo, a linha Cin0 recebe 0. Por outro lado, se a linha Op for igual a 1, os sinais das 
entradas B3B2B1B0 são invertidos pelas portas Ou-Exclusivo e são aplicados no somador, e 
ao mesmo tempo, a linha Cin0 recebe 1. Como visto, a inverter e somar 1 corresponde à 
inversão de um número em complemento de 2! 
 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.3.4 Transbordo ou Estouro de Campo 
Como visto, na representação de completo de 2, um bit é utilizado para o sinal e os 
demais bits representam o valor efetivo. Como exemplo de 5 bits, os números positivos 
estão na faixa de 00000 (que vale 0) até 01111 (que vale 15). Por outro lado, os númerosnegativos estão na faixa de 10001 (que vale -15) até 11111 (que vale -1). 
Assim, ao se somar 9 e 8, tem-se, como indicado na Figura 7.29, um número 
negativo como resultado. Isso ocorre porque o resultado correto, 17, está além da 
capacidade de representação de números positivos com 5 bits, que é somente 15. 
 Figura 7.29 - Soma de dois números positivos com resultado negativo. 
Uma possível solução para esse problema é aumentar o número de bits. Entretanto, 
independente da quantidade de bits, torna-se necessário um mecanismo de indicar toda vez 
que a operação aritmética ultrapassar a capacidade de representação, também chamado de 
estouro de campo. As condições que causam estouro de campo são: 
 Somar de dois números positivos com resultado negativo, 
 Somar de dois números negativos com resultado positivo, 
 Subtrair um número negativo de um número positivo com resultado negativo, 
 Subtrair um número positivo de um número negativo com resultado positivo. 
Como visto, um número é negativo se o seu digito mais significativo for 0, e positivo 
se for 1. Considerando Op=0 para soma e Op=1 para subtração (como previamente usado 
na Figura 7.29), as operações que acima listadas que causam estouro de campo, ou overflow, 
estão listadas na Tabela 7.6. 
Tabela 7.6 – Condições para estouro de campo. 
An Bn Sn Op 
0 0 1 0 
1 1 0 0 
0 1 1 1 
1 0 0 1 
 
Essas condições podem ser traduzidas em um circuito lógico dado por: 
OpSBAOpSBAOpSBAOpSBACampodeEstouro 333333333333  
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.4 ARITMÉTICA EM BCD 
No código BCD os números estão limitados à faixa de 0 a 9 e consequentemente os 
resultados das operações BCD estão limitadas a essa faixa. Assim, algumas considerações 
devem ser feitas com relação ao resultado de uma soma, quando for maior que 9: 
A. Resultado entre 10 e 15: Ao se somar os números BCD 8 e 3 tem-se um resultado 
não BCD, como indicado pela Figura 7.30. 
 Figura 7.30 - Soma de dois números BCD com resultado não BCD. 
A correção é feita adicionando-se 6 (0110) ao resultado anterior, como indicado na 
Figura 7.31. O valor final agora é 11, ou seja, obteve-se 1 como resultado da soma e o vai 1, 
que é o valor correto da soma entre 8 e 3. 
 
Figura 7.31 - Correção de soma de dois números BCD com resultado não BCD. 
B. Resultado entre 16 e 18: Ao se somar os números BCD 8 e 9 tem-se um resultado 
BCD, porém não é correto, como indicado pela Figura 7.32. 
 
Figura 7.32 - Soma de dois números BCD com resultado BCD errôneo. 
Observe que houve a geração do Vai 1, indicando um erro. Novamente a correção é 
feita adicionando-se 6 (0110), como no caso anterior. A Figura 7.33 ilustra a correção 
através da adição de 6. O resultado obtido, e correto, é 7. Como já houve o Vai 1, o 
resultado final da soma de 8 e 9 é 17. 
 
Notas
entrad
portan
Karna
 
 
s de Aula – 
Figur
 
A Tabela 
das dois valo
 
 
As combi
nto devem 
augh, é dada
 
ELTD01 
ra 7.33 - Corre
7.7 lista a
ores BCD. 
Tabela 7.7
inações ind
ser corrig
a por: 
 
 0
+ 0
 0
eção de soma d
s possíveis 
7 – Possíveis re
S3 S
0 0
0 0
0 0
0 0
0 1
0 1
0 1
0 1
1 0
1 0
1 0
1 0
1 1
1 1
1 1
1 1
x x
dicadas em 
gidas. A ex
  S3 S
S1 S0 
  00
  01
  11
10
 NB 
0 0 0 1
0 1 1 0
0 1 1 1
7
de dois número
combinaçõ
esultados de so
S2 S1 
0 0 
0 0 
0 1 
0 1 
1 0 
1 0 
1 1 
1 1 
0 0 
0 0 
0 1 
0 1 
1 0 
1 0 
1 1 
1 1 
x x 
azul corres
xpressão d
S2  
00  01
0  0  0
1  0  0
1  0  0
0  0  0
323 SSSS 
 
os BCD com re
ões de saída
oma de dois nú
S0 C3
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
0 0
1 0
x 1
spondem a 
dessas cond
 
1  11  1
0  1  0
0  1  0
0  1  1
0  1  1
( 231 SSS 
Prof. Tal
esultado BCD e
a de um so
úmeros BCD. 
um resultad
dições, obti
 
10 
0 
0 
1 
1 
)1S 
les C Pimen
errôneo. 
omador tend
ado entre 10
ida por m
nta, PhD 
do como 
0 e 15 e 
mapas de 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
A condição indicada em verde correspondem a um resultado BCD não válido e 
portanto deve ser corrigida. A Figura 7.34 apresenta o circuito completo para a operação de 
soma em BCD, incluindo a correção, quando necessária. 
 
Figura 7.34 - Circuito de correção de soma de dois números BCD. 
Essa estrutura forma um somador BCD, isto é, o somador de um dígito BCD. Para se 
implementar a soma de vários dígitos BCD, basta cascatear outros somadores, onde C3 de 
um somador é ligado ao Cin do somador seguinte. O Cin0 do dígito BCD menos 
significativo deve ser ligado ao terra. 
7.4.1 Subtração BCD 
O processo de subtração BCD se torna um pouco mais complexo, especialmente se 
for considerada a possibilidade de resultados negativos. A subtração, considerando somente 
números BCD positivos, por ser feita usando o circuito da Figura 7.35. Nesse caso a 
correção é feita pela adição de 1010. Para se implementar a subtração de vários dígitos 
BCD, basta cascatear outros subtratores, onde E3 de um subtrator é ligado ao Ein do 
subtrator seguinte. O Ein0 do dígito BCD menos significativo deve ser ligado em 1, pois o 0 
nesse caso significa pedido de empréstimo. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
 
Figura 7.35 - Circuito de correção de subtração de dois números BCD positivos. 
Como exemplo de operação, considere a subtração 33 – 17 = 16. No caso do dígito 
menos significativo, deve-se fazer 3 – 7 = 6 e um “pede emprestado1”. Assim, 
A3A2A1A0=0011 e B3B2B1B0=0111. Portanto o somador recebe 0011 e 1000 e Ein0=1. Desta 
forma, a saída do primeiro somador é dada por 0011+1000+1=1100. Como E3 vale 0, a 
saída do segundo somador é dada por 1100+1010=0110, que é o resultado correto. Como 
mencionado, há um pede empréstimo pois Ein0=1. 
7.5 SOMA RÁPIDA 
A Figura 7.36 apresenta novamente o somador binário de 4 bits, da Figura 7.8. 
 
Figura 7.36 - Somador binário de 4 bits. 
Considere, para esse circuito, a soma de A3A2A1A0=1101 e B3B2B1B0=0011. A soma 
de A0=1 e B0=1 resulta em S0=0 e vai 1. Agora a soma de A1=0 e B1=1 e o vem 1 do bit 
anterior, resulta em S1=0 e novamente vai 1. Esse processo continua até a soma de A3=1 e 
B7=0 com o vem 1 do bit anterior, resultando em S3=0. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
Assim, percebe-se que o resultado de A3=1 e B3=0 depende do vem 1 do bit 2, esse 
depende do vem 1 do bit 1, que por sua vez depende do bit 0. Desta forma, a soma fica 
demorada e dependente dos atrasos somados de todos os elementos do somador. Isto se 
torna mais agravante para circuitos maiores. Esse atraso pode comprometer o desempenho e 
as aplicações do somador, e desta forma torna-se necessário um mecanismo mais rápido de 
soma. Esse somador é conhecido como ripple adder. 
Como já apresentado, a expressão do vai 1 é dada por )( BACinABC  . O 
elemento AB é gerado se ambos A e B forem 1 ao mesmo tempo, e portanto é chamado de 
termo gerado – G. Em outras palavras, se A e B forem 1, há a geração do vai 1. 
O elemento )( BACin  surge se A ou B for 1, desde que tenha ocorrido o vem 1 do 
termo anterior. Assim, esse termo propaga o vem 1 do termo anterior se A ou B for 1, e 
portanto é chamado de termo propagado – P. Em outras palavras, se A ou B for 1, há a 
propagação do vai 1. 
Desta forma a expressão do vai 1 pode ser escrita como CinPGC  onde ABG  
e BAP  . Seguindo esse conceito, a Figura 7.5 pode ser refeita como a Figura 7.37. 
 
Figura 7.37 - Somador binário pleno com sinais G e P. 
Assim, para um somador de 4 bits, tem-se: 
C0=G0 
C1=G1+G0P1 
C2=G2+G1P2+G0P1P2 
C3=G3+G2P3+G1P2P3+G0P1P2P3 
Observe agora que C3 pode ser implementada sob a forma de circuito combinacional,como mostrado na Figura 7.38. Desta forma, o atraso para a geração de qualquer vai 1, 
depende somente de um circuito combinacional de soma de produtos. Esse somador rápido 
de avanço de vai 1, é conhecido como look ahead carry. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
 
Figura 7.38 - Somador binário look ahead carry. 
O somador look ahead carry é mais rápido que o somador simples, entretanto o 
preço pago é o aumento da quantidade de portas lógicas empregadas na implementação do 
somador. Assim, se velocidade é o fator crítico, usa-se o somador look ahead carry, por 
outro lado se área for a preocupação principal, usa-se o somador simples. Pode-se também 
fazer uma solução de compromisso, em que se usa blocos de somadores menores, usando 
internamente look ahead carry, para formar somadores maiores. 
7.6 UNIDADE LÓGICA E ARITMÉTICA 
Além das operações de soma e subtração (em binário puro e em BCD), há ainda 
várias outras operações aritméticas. Adicionalmente há operações lógicas como e, ou, 
inversão, ou-exclusivo, coincidência e outras. Muitos micro-controladores, processadores e 
uma grande variedade de sistemas digitais utilizam muitas operações lógicas e aritméticas. 
Assim, a abordagem mais adequada é a utilização de um bloco dedicado à essas operações, 
chamado de Unidade Lógica e Aritmética – ULA. 
Como exemplo, a Figura 7.39 apresenta uma ULA, baseada no circuito integrado 
74181, e a Tabela 7.88 apresenta as suas operações lógicas e aritméticas. A saída A=B torna 
ativa toda vez que as entradas A e B forem iguais. A saída G é o vai 1 gerado e a saída P é o 
vai 1 propagado. 
Deve-se observar que o símbolo + na Tabela 7.8 significa a operação ou e o símbolo 
mais significa operação de soma. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
 
Figura 7.39 - Unidade Lógica e Aritmética. 
 
Tabela 7.8 – Operações da ALU 74181. 
 Lógica Aritmética 
 M=1 M=0 
F3 F2 F1 F0 Cin=1 Cin=0 
0 0 0 0 AS  AS  1maisAS  
0 0 0 1 BAS  BAS  1)( maisBAS  
0 0 1 0 BAS  BAS  1)( maisBAS  
0 0 1 1 0S 1S 0S 
0 1 0 0 ABS  BAmaisAS  1maisBAmaisAS  
0 1 0 1 BS  BAmaisBAS )(  1)( maisBAmaisBAS  
0 1 1 0 BAS  1menosBmenosAS  BmenosAS  
0 1 1 1 BAS  1menosBAS  BAS  
1 0 0 0 BAS  ABmaisAS  1maisABmaisAS  
1 0 0 1 BAS  BmaisAS  1maisBmaisAS  
1 0 1 0 BS  ABmaisBAS )(  1)( maisABmaisBAS  
1 0 1 1 ABS  1menosABS  ABS  
1 1 0 0 1S SHIFTAmaisAS )( 1maisAmaisAS  
1 1 0 1 BAS  AmaisBAS )(  1)( maisAmaisBAS  
1 1 1 0 BAS  AmaisBAS )(  1)( maisAmaisBAS  
1 1 1 1 AS  1menosAS  AS  
 
 
7.7 CIRCUITOS ARITMÉTICOS UTILIZANDO VERILOG 
Circuitos aritméticos utilizando Verilog. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
7.4 EXERCÍCIOS 
1. Execute manualmente as operações a seguir, em binário 
a. 11010110 + 00101010 
b. 11010110 + 10101010 
c. 11010110 – 00101010 
d. 11010110 – 10101010 
e. 10101010 – 11010110 
2. Considerando número sinalizado me complemento de 2, execute as operações a seguir: 
a. 00110101 + 00010111 
b. 00110011 + 10010010 
c. 00110101 – 00010111 
d. 00110011 – 10010010 
e. 10010010 – 00110011 
3. Execute as seguintes operações usando o menor número de dígitos possível. Considere 
números negativos em complemento de 2. 
a. 26 – 14 
b. 14 – 26 
c. 31 – 7 
d. (–13) + 11 
e. (–12) – 15 
f. (–17) – (–1) 
4. Qual é a faixa de números, em complemento de 2, usando 12 bits? 
5. Um operando de oito bits é 11001010. Qual é a faixa de valores do outro operando, em 
complemento de 2, de modo que não haja overflow? 
6. Considerando o tempo de propagação de portas lógicas simples igual a 1nS, determine 
o tempo de propagação de um meio-somador. Qual é o atraso de um somador pleno? 
7. Considerando os valores anteriores, qual é o tempo de propagação de um somador de 8 
bits? 
8. Qual é o tempo de propagação de um somador de 8 bits usando a técnica de look ahead 
carry considerando os tempos anteriores? 
9. Qual é o tempo de propagação de um somador de 8 bits, formado pelo cascateamento 
de dois somadores de 4 bits da Figura 7.38. Considere os tempos anteriores. 
10. As linhas de controle de uma ULA são F3F2F1F0 = 0110. Se as linhas de entrada de 
dados são A = 1010 e B = 0110, quais os valores das saídas para todas as combinações 
de M e Cin. 
Notas de Aula – ELTD01 Prof. Tales C Pimenta, PhD 
 
11. Utilizando duas ULAs, implemente um somador de 2 bytes em BCD8421. 
12. Utilizando duas ULAs, implemente um somador de 8 bits usando a técnica de look 
ahead carry. 
13. Utilizando ULA, implemente um somador/subtrator BCD8421.

Outros materiais