260 likes | 301 Views
Sistemas Digitais. Subtrator e Somador BCD. Subtrator de 4 bits. Soma de números binários:. 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?.
E N D
Sistemas Digitais Subtrator e Somador BCD
Subtrator de 4 bits • Soma de números binários: Monitoria Sistemas Digitais – 2007.1 - {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br
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 • 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 XOR Seletor!! 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]... Overflow = Cin XOR Cout 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: 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 5: 0101 1: 0001 6: 0110 2: 0010 7: 0111 3: 0011 8: 1000 4: 0100 9: 1001 • 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 O primeiro bit NÃO representa sinal! 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