Você está na página 1de 26

Sistemas Digitais

Subtrator e Somador
BCD

Subtrator de 4 bits
Soma

de nmeros binrios:

INPUT
VCC

XOR

INPUT
VCC

Cin

XOR
OUTPUT

INPUT
VCC

AND2

10
AND2

A[3..0]

VCC
INPUT

OR2
OUTPUT
12

B3
B
Cout

OUTPUT

Overflow

somador1bit

Cin

S3

Cout

A3

B2
3

A2
B

A
S

Cin

S2

Cout

somador1bit

A1
B

A
Cin

somador1bit

Cout

S1

A
S

somador1bit

Cin

S0

GND

A0

B0

VCC
INPUT

B1

11

B[3..0]

OUTPUT

S[3..0]

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Cout

Subtrator de 4 bits
Subtrao

de nmeros binrios:

So circuitos anlogos, afinal so operaes


inversas.
Ento cria-se um subtrator de 1 bit e depois
une-os para fazer um de 4 bits?

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4-bits

uma soluo, mas isso pode ser otimizado!


Pode-se construir circuitos para efetuar
qualquer operao apenas com somadores!
A chave est na representao:

Nmeros de 4 bits
em Complemento a 2

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits
Com

nmeros em complemento a 2, a
subtrao pode ser representada como uma
soma:
A B = A + (- B)

Dessa

forma, podemos utilizar o mesmo circuito


feito antes!

Subtrao:

Transformar B em B;
Somar
A e B
Monitoria
Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits
Lembrando

da aula, para encontrar o


complemento a 2 de um nmero inverta os bits
e adicione 1.
Ex:
2 = 0010
Invertendo os bits: 1101
Adicionando 1: 1101 + 0001 = 1110 = -2
-7 = 1001
Invertendo os bits: 0110
Adicionando 1: 0110 + 0001 = 0111 = 7
Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


Voltando ao somador de 4-bits

B3
B
Cout

OUTPUT

Overflow

somador1bit

Cin

S3

Cout

A3

B2
B

A
S

somador1bit

Cin

S2

Cout

A2

B1
B

A
S

Cin

S1

Cout

somador1bit

1
B

A
S

somador1bit

S0

GND

Cin

VCC
INPUT

A0

B[3..0]

VCC
INPUT

A1

A[3..0]

B0

OUTPUT

S[3..0]

Temos que inverter B e somar 1 para efetuar uma


subtrao, certo?

Podemos usar o carry in como seletor da operao!


0 = soma
1 = subtrao (j entra como a soma de 1 da
transformao de B em B!)
Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


Agora

s inverter B!

Crie

um multiplexador que escolhe entre B[i] e


~B[i] (i o ndice do bit)
B B
0

~B
Seletor
Seletor
Sada Sada
1

0
1 1
1 1
1
B 0XOR
Seletor!!
1

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


E

como descobrir se a soma/subtrao


estourou o limite de representao (overflow)?

Se A negativo e B positivo (ou vice-versa) nunca


haver overflow
Se A e B so negativos e o resultado for positivo,
ento houve overflow
Da mesma forma, se A e B so positivos e o
resultado for negativo, houve overflow

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo

Analizando a soma de
A[3] com B[3]...

A[3]

B[3]

Cin

Cout
Cout

00

Overflow
=
Cin
XOR
Cout
1
0
0
1
00
0

00

11

00

11

11

11

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


Resumindo...

Efetuar a inverso de B...

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


Resumindo...

Adicionar 1...

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


Resumindo...

Calcular overflow

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits - Construo


Primeira

atividade:

Desenvolver o subtrator de 4 bits


Utilize os conceitos apresentados aqui e o somador
de 4 bits desenvolvido na aula anterior
As

entradas so dois vetores de 4 bits (A e B) e o seletor


de 1bit
As sadas so um vetor de 4 bits (Z) e o sinal de overflow
de 1 bit

Essa atividade deve ser apresentada at


a prxima sexta 15/07 aos monitores
Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD

A representao dos nmeros determinam a construo do


sistema

Outra representao importante de nmeros BCD (Binary


Coded Decimal)

Em BCD, representamos cada dgito do nmero separadamente


Ex:
Decimal

Binrio (8 bits)

BCD

10

00001010

0001 0000

21

00010101

0010 0001

102

01100110

0001 0000 0010

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD
So

necessrios 4 bits para representar cada


dgito:
0: 0000
1: 0001
2: 0010
3: 0011
4: 0100

5: 0101
6: 0110
7: 0111
8: 1000
9: 1001

O primeiro bit NO representa sinal!


A menor

unidade de soma agora recebe um


vetor de 4 bits e no mais de 1

No faz sentido um somador BCD de 1 bit

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD
A representao

mudou, mas no precisamos


definir um novo circuito para efetuar a soma
em BCD.

Utilize o somador de 4 bits para somar

Crie um novo circuito para transformar de binrio


complemento a 2 em BCD!

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD
Para

resultados menores que 9, a sada a


mesma (veja a tabela de dgitos BCD)

Mas

para resultados maiores que 9, preciso


separar os dgitos

9 (01001) + 2 (00010) = 11 (01011) -> 0001 0001

Subtraindo

10 do resultado (para nmeros


menores que 20) obtemos o resultado
esperado!
Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD
Como

acabamos de ver, A B = A + (-B) para


a representao binria utilizada

Ento

R 10 = R + (- 10) = R + (10110)

Como

trabalha-se com 4 bits apenas, o mais


significativo ignorado.

10 = R + 0110
Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD
E

como saber quando somar -10?

Analizando

os nmeros maiores ou iguais a 10


percebe-se que eles pertencem a um dos
formatos:

11xx
1x1x
1xxxx (9 + 7 = 16 | 1001 + 0111 = 10000)

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD - Construo


De

forma incremental...

Efetuando a soma entre A e B

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD - Construo


De

forma incremental...

Efetuando a subtrao do resultado com 10

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD - Construo


De

forma incremental...

Efetuando a escolha de quando somar

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Somador BCD - Construo


Segunda

atividade:

Desenvolver o somador BCD


Utilize os conceitos apresentados aqui e o somador
de 4 bits desenvolvido na aula anterior
As

entradas so dois vetores de 4 bits (A e B)


representados em BCD, ou seja, de 0 a 9.
As sadas so dois dgitos em BCD representando a soma.
O dgito mais significativo sempre 0 ou 1, logo
representado em 1 bit apenas
O outro digito deve ter 4 bits

Essa atividade deve ser apresentada at


a prxima sexta 15/07 aos monitores
Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Subtrator de 4 bits e Somador BCD


Sugestes

de leitura

Aula 7 (Operaes aritmticas)

http://www.cin.ufpe.br/~if675/arquivos/aulas/2003-2/unidade1/aula07.pdf

Monitoria Sistemas Digitais 2007.1 {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br

Sistemas Digitais

Subtrator e Somador
BCD

Você também pode gostar