Você está na página 1de 28

1

Captulo VI
Circuitos Aritmticos
1 Introduo
No captulo anterior estudamos a soma e subtrao de nmeros binrios.
Neste captulo estudaremos como as operaes aritmticas de soma e
subtrao entre nmeros binrios podem ser implementadas atravs da
combinao de funes lgicas. Quando reunidas em um nico CI , estas
funes lgicas aritmticas constituem uma Unidade Lgica e Arimtica (ULA).
Uma ULA um bloco funcional fundamental em um microprocessador.
2 Meio Somador
Conforme vimos no Captulo V as regras bsicas para adio binria so:
0 0 0 = +
1 1 0 = +
1 0 1 = +
10 1 1 = + O 1 no resultado o vai-um (carry) gerado
por ter sido esgotado a capacidade de contagem.
O carry deve ser acrescentado soma dos bits
imediatamente mais significativos esquerda
daqueles que deram origem ao carry .
Estas operaes so realizadas por um circuito lgico denominado
Meio-Somador (half adder).
Um meio-somador recebe dois bits de entrada Ae B e produz dois bits de
sada: o bit de soma B A+ = e o bit de carry
out
C
, conforme mostram as
Figuras 1 e 2 e a Tabela 1 a seguir:
Figura 1: Smbolo lgico de um meio-somador.
2
Tabela 1: Tabela Verdade de um meio-somador.
Figura 2: Diagrama lgico de um meio-somador.
3 Somador Inteiro
Um Somador Inteiro (full-adder) recebe 3 bits de entrada A, B , e
in
C (o
ltimo correspondendo a eventual carry gerado na operao com bits menos
significativos) e produz dois bits de sada: o bit de soma B A+ = e o bit de
carry
out
C
, conforme mostram as Figuras 3 a 5 e a Tabela 2 a seguir:
Figura 3: Smbolo lgico de um somador inteiro.
3
Tabela 2: Tabela Verdade de um somador inteiro. Note que a tabela obedece
as regras para soma binria com carry, estudada no captulo anterior.
Figura 4: (a) Lgica necessria para formar a soma dos bits de entrada Ae B
com o carry de entrada
in
C . (b) Diagrama lgico do somador inteiro, composto
pelos meio-somadores I e II , o qual implementa a Tabela 2 (verifique).
4
Figura 5: (a) Diagrama lgico alternativo representando um somador inteiro
implementado a partir de 2 meio-somadores. (b) Smbolo lgico do somador
inteiro resultante.
Exemplo 1: Determine as sadas e
out
C
para as situaes de entrada do
somador inteiro mostrado na Figura 6.
Figura 6: Somador inteiro com situaes de entrada distintas.
Soluo:
(a) = 1 + 0 + 0 = 1 com carry
0 =
out
C
(b) = 1 + 1 + 0 = 0 com carry
1 =
out
C
(c) = 1 + 0 + 1 = 0 com carry
1 =
out
C
5
4 Somadores de Palavras Binrias
Para somar palavras binrias de N bits necessrio colocar em paralelo
N somadores inteiros, conforme mostram as Figuras 7,8 e 9:
Figura 7: Somador para palavras binrias de 2 bits.
Figura 8: Soma dos nmeros 101 e 011 atravs de um somador de 3 bits.
6
Figura 9: Somador para palavras binrias de 4 bits. (a) Diagrama de blocos
(b) Smbolo lgico.
A tabela verdade para o n -simo somador inteiro de um somador de
palavras binrias de N bits :
7
Tabela 3: Tabela Verdade para o n -simo somador inteiro de um somador de
palavras binrias de N . Note que a tabela idntica Tabela 2.
5 Somadores Ripple Carry Somadores Look-ahead Carry
O somador mostrado na Figura 9(a) um somador do tipo Ripple Carry, o
qual maneja os bits de carry da mesma maneira que efetuamos em uma soma
manual:
Ou seja,
4
C no ser determinado antes que cada coluna tenha sido
formada. Note que cada coluna representa a ao do respectivo somador
inteiro na Figura 9(a).
Isto significa que o Tempo de Propagao (j estudado no Captulo IV)
das portas ser acumulado, atrasando a determinao de
4
C . dito que o bit
de carry fica ondulando entre os somadores inteiros (da o nome ripple
ondulao) e, portanto, atrasa a definio do resultado da soma.
Para evitar este efeito de atraso, um somador Look-Ahead Carry efetua a
operao de adio obtendo o bit de carry diretamente a partir dos bits de
entrada, sem precisar a definio dos bits de sada de cada somador inteiro:
8
Figura 10: Somador Look-Ahead Carry para palavras binrias de 4 bits. As
portas no interior do retngulo cinza so as responsveis pela obteno do bits
de carry diretamente a partir dos bits de entrada.
9
Figura 11: Operao do somador Look-Ahead Carry para palavras binrias de
4 bits. mostrado os valores lgicos gerados no circuito quando so somados
os nmeros
10 2
9 1001 =
e
10 2
10 1010 =
, com um carry prvio
1
0
= C
.
10
6 Implementao em MSI (Medium Scale Integration)
A Figura 12 a seguir mostra os diagramas de dois CIs MSI para a
implementao da funo somador Look-Ahead Carry para palavras de 4 bits:
Figura 12: TTL 7483 e TTL 74283, somadores Look-Ahead Carry para
palavras binrias de 4 bits. (a) Pinagem (b) Diagrama lgico. Ambos os CIs so
funcionalmente idnticos, diferindo apenas na pinagem.
A Tabela 4 mostra os Tempos de Propagao destes somadores:
Tabela 4: Tempos de Propagao dos CIs TTL 74283 e 7483 - somadores
Look-Ahead Carry para palavras de 4 bits.
11
7 Operao em Cascat a de Somadores
Figura 13: (a) Operao em cascata de somadores de 4 bits para formar um
somador de 8 bits. (b) Operao em cascata de somadores de 4 bits para
formar um somador de 16 bits.
8 Somador/Subtrator
Estudamos no Captulo V que a subtrao B A entre duas palavras
binrias A e B executada atarvs da operao
{ } B A
II
C +
onde
{}
II
C o
operador denominado Complemento de 2. A operao
{}
II
C equivalente
a acrescentar o sinal ao nmero binrio.
12
Vimos que a operao
{ } B
II
C efetuada sobre uma palavra binria B
dada por
{ } { } 1 + = B B
I II
C C , onde
{ } B
I
C a operao de inverso (NOT)
do valor lgico de cada bit da palavra binria B (operao conhecida como
Complemento de 1).
Por exemplo, a diferena B A entre os nmeros
10 2
6 = 0110 = A
e
10 2
4 = 0100 = B
dada por:
{ } { } { } 1 + 1011 + 0110 = 1 + 0100 + 0110 = 1 + + = + =
I I II
C C C B A B A B A
(4)
Que resulta em:
0 0 1 1
1 0 0 0 +
1 1 0 1
prosseguindo:
( )
10
2 = 0 1 0 0 1
0 0 1 1 +
0 1 1 0
carry o descartar
Vimos tambm que, alternativamente, podemos implementar a operao
{ } B
II
C atravs do seguinte procedimento: Efetuamos a leitura da palavra
binria B da direita para a esquerda at encontrarmos o primeiro 1 e a
seguir invertemos o valor lgico de todos os bits esquerda do primeiro
1.
Por exemplo, supondo que queremos achar o Complemento de 2 do nmero
binrio
10 2
22 = 10110 = A
atravs da tcnica descrita no pargrafo anterior
obtemos diretamente
{ } 01010 = 10110
II
C .
Portanto, a operao B A pode ser efetuada em um somador atravs
operao
{ } B A
II
C +
, conforme mostra a Figura 14:
13
Figura 14: Se 0 = Controle , executada a operao B A+ conforme
discutido em pargrafos anteriores, sendo A e B nmeros de 4 bits. Se
1 = Controle ento executada a operao B A atravs de
{ } { } { } 1 + + = + = + B A B A B A
I II II
C C C . Note que quando 1 = Controle as
portas XOR 1-4 efetuam a operao
{ } B
I
C . Note tambm que nesta situao
o Complemento de 2 de B efetuado atravs de
{ } { }
0
+ = C B B
I II
C C
, onde
1 = =
0
Controle C
.
O circuito completo de um Somador/Subtrator para palavras de 4 bits
obtido quando definimos o modo em que o circuito ir administrar as situaes
de 1) overflow e 2) resultado negativo.
Para tanto, vamos experimentalmente fazer operaes entre nmeros de 4
bits que gerem as situaes 1) e 2), procurando inferir a lgica da operao:
14
Figura 15: (a) Operao
10 10 10
4 = 5 9 = B A
. Note que quando o carry
1 =
4
C significa que os 4 bits do resultado representam um nmero positivo.
(b) Operao
10 10 10
4 = 9 5 = B A
. Note que quando o carry
0 =
4
C
significa que os 4 bits do resultado representam um nmero negativo, e que,
para obtermos a magnitude deste nmero de 4 bits basta efetuar o
Complemento de 2 do resultado (em verde na figura).
Figura 16: (a) Operao
10 10 10
13 = 2 15 = B A
. Note que quando o carry
1 =
4
C significa que os 4 bits do resultado representam um nmero positivo.
(b) Operao
10 10 10
13 = 15 2 = B A
. Note que quando o carry
0 =
4
C
significa que os 4 bits do resultado representam um nmero negativo, e que,
apesar de ter ocorrido overflow na aritmtica de 4 bits em Complemento de 2,
para obtermos a magnitude deste nmero de 4 bits basta efetuar o
Complemento de 2 do resultado (em verde na figura).
15
Portanto, as Figuras 15 e 16 sugerem o seguinte circuito sinalizador para
resultado negativo:
Figura 17: Se 1 = Controle (operao B A ) e se simultaneamente
0 =
4
C (resultado negativo) o LED acende, indicando um nmero negativo.
Vimos na anlise da Figura 16 que quando o carry
0 =
4
C os 4 bits do
resultado representam um nmero negativo e que para obtermos a magnitude
deste nmero de 4 bits basta efetuar o Complemento de 2 do resultado,
independentemente de ter ocorrido overflow ou no. Portanto a Figura 16
sugere o seguinte circuito para obteno da magnitude do resultado de 4 bits (o
sinal indicado pelo LED da Figura 17):
16
Figura 18: Circuito para obteno da magnitude do resultado de 4 bits do 1 CI
7483 atravs da operao Complemento de 2 efetuada pelas portas XOR 5-8
em conjunto com o 2 CI 7483.
Tendo definido o modo em que o circuito Somador/Subtrator administra as
situaes de overflow e resultado negativo, o circuito completo fica sendo:
17
Figura 19: Circuito completo do Somador/Subtrator de palavras de 4 bits em
aritmtica Complemento de 2.
Exemplo 2: Determine o valor lgico em cada entrada/sada das portas e dos
CIs 7483 na Figura 19, bem como o estado do LED, quando a operao
efetuada
10 10 10
14 = 9 + 5 = + B A
.
Soluo:
18
Figura 20: Valor lgico em cada entrada/sada das portas e dos CIs 7483 na
Figura 19 quando a operao efetuada
10 10 10
14 = 9 + 5 = + B A
.
Exemplo 3: Determine o valor lgico em cada entrada/sada das portas e dos
CIs 7483 na Figura 19, bem como o estado do LED, quando a operao
efetuada
10 10 10
4 = 5 9 = B A
.
Soluo:
19
Figura 21: Valor lgico em cada entrada/sada das portas e dos CIs 7483 na
Figura 19 quando a operao efetuada
10 10 10
4 = 5 9 = B A
.
Exemplo 4: Determine o valor lgico em cada entrada/sada das portas e dos
CIs 7483 na Figura 19, bem como o estado do LED, quando a operao
efetuada
10 10 10
4 = 9 5 = B A
.
Soluo:
20
Figura 22: Valor lgico em cada entrada/sada das portas e dos CIs 7483 na
Figura 19 quando a operao efetuada
10 10 10
4 = 9 5 = B A
.
9 Somador BCD
Estudamos no Captulo III que o cdigo BCD (Binary Coded Decimal)
expressa cada dgito de um nmero decimal por uma palavra binria de 4 bits
(Nibble) no formato
0 1 2 3
b b b b
atravs da relao:
0
0
1
1
2
2
3
3
2 + 2 + 2 + 2 = b b b b mal NmeroDeci
. A Tabela 5 mostra o
resultado desta relao.
21
Tabela 5: Tabela para converso de um nibble BCD em um algarismo decimal.
Note que existem 6 nibbles invlidos na contagem da tabela, porque com 4 bits
possvel contar de 0 a 15 mas o cdigo BCD s representa algarismos
decimais de 0 a 9.
Por exemplo, o nmero binrio 010101111000 codificado em BCD, quando
convertido para decimal resulta em
0101 0111 1000

5 7 8
Quando efetuamos a soma de dois nmeros binrios A e B codificados
em BCD necessrio levar em considerao a existncia dos 6 nibbles
invlidos mostrados na Tabela 5.
Consideremos os seguintes exemplos:
22

10 10 10
8 = 5 + 3 = + B A
efetuado em um somador BCD resulta
Note que no ocorre overflow na aritmtica BCD (8 est dentro da faixa
0-9) e portanto o nibble resultante um nmero BCD vlido.

10 10 10
13 = 5 + 8 = + B A
efetuados em um somador BCD resulta
Ocorre overflow na aritmtica BCD (13 est fora da faixa 0-9) e portanto o
nibble resultante um nmero BCD invlido.
Da, necessrio somar 6 ao resultado para compensar a contagem dos
6 nibbles invlidos da Tabela 5:
Note que, aps a soma de 6 ao nibble invlido, o novo resultado expressa
corretamente
10
13 0011 = 0001
em BCD.

10 10 10
17 = 9 + 8 = + B A
efetuados em um somador BCD resulta
23
Ocorre overflow na aritmtica BCD (17 est fora da faixa 0-9) e portanto o
nibble resultante um nmero BCD invlido. Observe que ocorreu um carry
1 =
4
C nesta operao.
Somando 6 ao resultado:
Note que, aps a soma de 6 ao nibble invlido, o novo resultado expressa
corretamente
10
17 0111 = 0001
em BCD.
Os exemplos anteriores mostram que necessrio somar 6 ao resultado
da operao B A+ quando:
! Ocorre um carry
1 =
4
C no resultado da operao B A+
OU
! O resultado da operao B A+ um dos 6 nibbles invlidos da Tabela 5.
Mas, a anlise da Tabela 5 mostra que os 6 nibbles invlidos ou so da
forma
X X 1 1
2 2 2 2
0 1 2 3
ou so da forma
X 1 X 1
2 2 2 2
0 1 2 3
no havendo nenhuma outra possibilidade para sua representao. Lembre
que X representa valor lgico irrelevante (dont care).
Portanto necessrio somar 6 ao resultado da operao B A+ em BCD
somente quando:
! Ocorre um carry
1 =
4
C no resultado da operao B A+
OU
! O resultado da operao B A+ da forma
24
X X 1 1
2 2 2 2
0 1 2 3
OU
! O resultado da operao B A+ da forma
X 1 X 1
2 2 2 2
0 1 2 3
A discusso nos pargrafos anteriores sugere o seguinte circuito para
efetuar a soma BCD:
Figura 23: Circuito Somador BCD para palavras de 4 bits.
Exemplo 5: Determine o valor lgico em cada entrada/sada das portas e dos
CIs 7483 na Figura 23 quando a operao efetuada
10 10 10
12 = 3 + 9 = + B A
.
Soluo:
25
Figura 24: Valor lgico em cada entrada/sada das portas e dos CIs 7483 na
Figura 23 quando a operao efetuada
10 10 10
12 = 3 + 9 = + B A
.
Exemplo 6: Determine o valor lgico em cada entrada/sada das portas e dos
CIs 7483 na Figura 23 quando a operao efetuada
10 10 10
16 = 7 + 9 = + B A
.
Soluo:
26
Figura 25: Valor lgico em cada entrada/sada das portas e dos CIs 7483 na
Figura 23 quando a operao efetuada
10 10 10
16 = 7 + 9 = + B A
.
10 Unidade Lgica e Aritmtica (ULA)
O CI TTL 74181 uma implementao MSI de uma ULA, conforme mostram
as Figuras 26 e 27:
27
Figura 26: Diagrama de pinagem do TTL 74181. S3 S0 selecionam a
operao a ser feita entre os dois nmeros binrios A e B de 4 bits, conforme
a Figura 27. O resultado colocado em F3 F0 .
n
C
o carry de entrada e
4 + n
C
o carry de sada. 1 = M seleciona o modo lgico e 0 = M seleciona o
modo aritmtico.
28
Figura 27: Tabela de funes do TTL 74181. Um resultado negativo das
operaes aritmticas representado em Complemento de 2.
11 Multiplicao e Diviso
Embora existam implementaes em circuitos integrados de circuitos
multiplicadores e divisores, estes raramente so utilizados. Isto porque, na
grande maioria das vezes, as operaes de multiplicao e diviso so
implementadas atravs de uma rotina em linguagem Assembly executada em
um microprocesador.

Você também pode gostar