Sistemas Digitais
Subtrator e Somador
BCD
Subtrator de 4 bits
Soma de números binários:
A
INPUT
VCC
XOR
B
INPUT
VCC
8
XOR
Cin
OUTPUT
S
9
INPUT
VCC
AND2
10
OR2
OUTPUT
AND2
A[3..0]
VCC
INPUT
A
B3
B
Cout
OUTPUT
Overflow
S
somador1bit
Cin
S3
Cout
4
A3
B2
3
A2
B
A
S
Cin
S2
Cout
somador1bit
2
A1
B
A
S
Cin
S1
Cout
somador1bit
B
A
S
Cin
S0
somador1bit
1
A0
B0
VCC
INPUT
B1
11
B[3..0]
GND

OUTPUT
S[3..0]
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
12
Cout
Subtrator de 4 bits

Subtração de números binários:
São circuitos análogos, afinal são operações
inversas.
 Então 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 solução, mas isso pode ser otimizado!
Pode-se construir circuitos para efetuar
qualquer operação apenas com somadores!
A chave está na representação:
Números 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 números em complemento a 2, a
subtração pode ser representada como uma
soma:
A – B = A + (- B)

Dessa forma, podemos utilizar o mesmo
circuito feito antes!

Subtração:
–
–
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 número 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 - Construção
Voltando ao somador de 4-bits
A
B3
B
Cout
OUTPUT
Overflow
S
somador1bit
Cin
S3
Cout
4
A3
B2
3
B
A
S
Cin
S2
Cout
somador1bit
2
B
A
S
Cin
S1
Cout
somador1bit
1
B
A
S
somador1bit
S0
GND
Cin
A2
B1
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
subtração, certo?

Podemos usar o carry in como seletor da operação!
0 = soma
1 = subtração (já entra como a soma de 1 da
transformação de B em –B!)
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Subtrator de 4 bits - Construção

Agora é só inverter B!

Crie um multiplexador que escolhe entre B[i] e
~B[i] (i é o índice do bit)
B B
0
0
~B
Seletor
Seletor
Saída Saída
1
0
0
0
0
0
1 Seletor!!
1
1 1
1
B 0XOR
1
1
0
0
0
1
1
1
1
0
1
1
0
0
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Subtrator de 4 bits - Construção

E como descobrir se a soma/subtração
estourou o limite de representação (overflow)?
–
–
–
Se A é negativo e B é positivo (ou vice-versa) nunca
haverá overflow
Se A e B são negativos e o resultado for positivo,
então houve overflow
Da mesma forma, se A e B são 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 - Construção

Analizando a soma de
A[3] com B[3]...
A[3]
B[3]
Cin
S
Cout
Cout
0
0
0
0
00
0
1
0
1
00
Overflow
=
Cin
XOR
Cout
1
0
0
1
00
1
1
0
0
11
0
0
1
1
00
0
1
1
0
11
1
0
1
0
11
1
1
1
1
11
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Subtrator de 4 bits - Construção

Resumindo...
–
Efetuar a inversão de B...
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Subtrator de 4 bits - Construção

Resumindo...
–
Adicionar 1...
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Subtrator de 4 bits - Construção

Resumindo...
–
Calcular overflow
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Subtrator de 4 bits - Construção

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 são dois vetores de 4 bits (A e B) e o seletor
de 1bit
As saídas são um vetor de 4 bits (Z) e o sinal de overflow
de 1 bit
Essa atividade deve ser apresentada até
a próxima sexta 15/07 aos monitores
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Somador BCD

A representação dos números determinam a construção do
sistema

Outra representação importante de números é BCD (Binary
Coded Decimal)

Em BCD, representamos cada dígito do número separadamente
– Ex:
Decimal
Binário (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

São necessários 4 bits para representar cada
dígito:
0: 0000
1: 0001
2: 0010
3: 0011
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
9: 1001
O primeiro bit NÃO representa sinal!

A menor unidade de soma agora recebe um
vetor de 4 bits e não mais de 1
–
Não 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 representação mudou, mas não 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 binário
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 saída é a
mesma (veja a tabela de dígitos BCD)

Mas para resultados maiores que 9, é preciso
separar os dígitos
–

9 (01001) + 2 (00010) = 11 (01011) -> 0001 0001
Subtraindo 10 do resultado (para números
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 representação binária utilizada

Então R – 10 = R + (- 10) = R + (10110)

Como trabalha-se com 4 bits apenas, o mais
significativo é ignorado.

R – 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 números 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 - Construção

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 - Construção

De forma incremental...
–
Efetuando a subtração do resultado com 10
Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
Somador BCD - Construção

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 - Construção

Segunda atividade:
–
–
Desenvolver o somador BCD
Utilize os conceitos apresentados aqui e o somador
de 4 bits desenvolvido na aula anterior


As entradas são dois vetores de 4 bits (A e B)
representados em BCD, ou seja, de 0 a 9.
As saídas são dois dígitos em BCD representando a soma.
–
O dígito 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 próxima 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

Sugestões de leitura
–
Aula 7 (Operações aritméticas)

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
Download

Subtrator de 4 bits