Sie sind auf Seite 1von 26

Sistemas Digitais

Subtrator e Somador BCD

Subtrator de 4 bits

Soma de nmeros binrios:

A B

INPUT VCC INPUT VCC INPUT VCC

XOR XOR 8 9 OUTPUT

Cin

AND2
OR2 OUTPUT

10 AND2

Cout

A[3..0]
B[3..0]

VCC INPUT
11

12

B0

B1

B2

A0

A1

A2

A3

B3
B 4

VCC INPUT

somador1bit

somador1bit

somador1bit

somador1bit

Cin

Cout

Cin

Cout

Cin

Cout

Cin

Cout

OUTPUT

Overflow

GND

S0

S1

S2

S3

OUTPUT

S[3..0]

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

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


A[3..0]
B[3..0]
VCC INPUT VCC INPUT

B0

B1

B2

A0

A1

A2

A3

B3
B 4

somador1bit

somador1bit

somador1bit

somador1bit

Cin

Cout

Cin

Cout

Cin

Cout

Cin

Cout

OUTPUT

Overflow

GND

S0

S1

S2

S3

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 0

~B Seletor Seletor Sada Sada


1 0 0 0 0

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

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] 0

B[3] 0

Cin 0

S 0

Cout Cout 0 0

0 1 0 1 0 0 Overflow = Cin XOR Cout 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1

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 10 21 102 Binrio (8 bits) 00001010 00010101 01100110 BCD 0001 0000 0010 0001 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. 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 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

Das könnte Ihnen auch gefallen