Circuitos Digitais Cap. 5 Prof. José Maria P. de Menezes Jr. Objetivos Aritmética Digital Adição Binária Subtração Binária Representação de números com sinal Complemento de 2 Negação Subtração como soma de complementos Multiplicação e Divisão Binária Adição BCD Adição Hexadecimal Circuitos Meio Somador e Somador Completo Circuito Somador de n bits Adição e subtração combinadas Circuito Integrado ALU 1
Aritmética Digital Os computadores e as calculadoras digitais realizam várias operações aritméticas sobre números representados no formato binário. O tema da aritmética digital pode ser muito complexo se desejarmos entender os diversos métodos de computação e a teoria envolvida. Entretanto, esse nível de conhecimento não é necessário à maioria dos técnicos, pelo menos até que se tornem experientes programadores de computadores. Assim, adota-se a abordagem de se concentrar nos princípios básicos necessários para entender como as máquinas digitais realizam as operações aritméticas básicas. Primeiramente serão estudados os procedimentos para realizar as operações aritméticas sobre números binários e, em seguida, serão estudados os circuitos lógicos que realizam essas operações em um sistema digital. Aritmética Digital Adição Binária A adição de dois números binários é realizada exatamente da mesma forma que a adição de números decimais. 1 3 7 6 + 4 6 1 LSD 8 3 7 Os mesmos passos são seguidos em uma adição binária. Entretanto, temos um número menor de casos que podem ocorrer na soma de dois dígitos binários (bits) em qualquer posição. 2
Aritmética Digital Adição Binária Esses casos são: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 + carry 1 para próxima posição Mesma forma com base decimal Quando há um carry em uma determinada posição, este é considerado na operação. carry 1 + 0 + 0 = 1 1 + 0 + 1 = 0 1 + 1 + 0 = 0 1 + 1 + 1 = 1 + carry 1 para próxima posição + carry 1 para próxima posição + carry 1 para próxima posição Aritmética Digital Adição Binária Não é necessário considerar a adição de mais de dois números binários de uma vez porque em todos os sistemas digitais o circuito que realiza a adição pode efetuar uma operação apenas com dois números de cada vez. 011 (3) 1001 (9) 11,011 (3,375) + 110 (6) + 1111 (15) + 10,110 (2,750) 1001 (9) 11000 (24) 110,001 (6,125) Quando mais de dois números devem ser somados, os dois primeiros são somados e o resultado é somado com o terceiro número, e assim por diante. A adição é a operação aritmética mais importante nos sistemas digitais. Como veremos, as operações de subtração, multiplicação e divisão, do modo como são realizadas na maioria dos computadores modernos e calculadoras, usam apenas a adição em suas operações básicas. 3
4
Aritmética Digital Representação de Números com Sinal Nos computadores digitais, os números binários são representados por um conjunto de dispositivos de armazenamento binário (ou seja, flip-flops) flops). Cada dispositivo representa um bit. Por exemplo, um registrador de seis bits pode armazenar números binários na faixa de 000000 a 111111 (de 0 a 63 em decimal). Isso representa a magnitude do número. Mas como representar números negativos???? Isso é feito normalmente acrescentando ao número um bit de sinal. Em geral, a convenção comum é que um 0 no bit de sinal representa um número positivo, e um 1 no bit de sinal representa umnúmero negativo. 5
Aritmética Digital Representação de Números com Sinal O bit de sinal é usado para indicar a natureza positiva ou negativa do número armazenado. Abaixo é mostrada a representação sistema sinal-magnitude em que sinal e magnitude do número são representados diretamente. Aritmética Digital Representação de Números com Sinal Embora no sistema sinal-magnitude o sinal e a magnitude do número são representados explicitamente (representação direta), os computadores e as calculadoras normalmente não o utilizam porque a implementação do circuito é mais complexa do que em outros sistemas. O sistema mais usado para representar números binários com sinal é o sistema de complemento de 2. Forma do Complemento de 1 O complemento de um número binário é obtido substituindo cada 0 por 1, e cada 1 por um 0. Conforme abaixo: 1 0 1 1 0 1 Número binário original 0 1 0 0 1 0 Complemento de 1 6
Aritmética Digital Forma do Complemento de 2 O complemento de 2 de um número binário é obtido tomando-se o complemento de 1 do número, e somando-se se 1 na posição do bit menos significativo. 1 0 1 1 0 1 0 1 0 0 1 0 + 1 0 1 0 0 1 1 Complemento de 2 Aritmética Digital Representação na Forma do Complemento de 2 O sistema de complemento de 2 para representação de números com sinal funciona da seguinte forma: Se o número for positivo, a magnitude é representada na forma binária direta, e um bit de sinal 0 é colocado em frente ao bit mais significativo. Se o número for negativo, a magnitude é representada na sua forma do complemento de 2, e um bit de sinal 1 é colocado em frente ao MSB. 7
Ex.: +13-9 +3-2 -8 8
9
Adição e Subtração Complemento de 2 1. Dois números positivos: +9e+4 2. Um positivo e um outro menor e negativo: +9 e -4 * 3. Um numero positivo e um outro maior e negativo: -9 e +4 4. Dois números negativos -9 e -4 5. Dois números iguais em magnitude, mas de sinais contrários -9 e +9 *(carry desconsiderado) 10
Overflow Ex.: +9 0 1 0 0 1 +8 0 1 0 0 0 1 0 0 0 1 Pode-se detectar observando o bit do sinal. Um circuito especial pode ser usado para detectar o overflow. 11
12
13
14
15
16
17
18
19
20
21
22
Adição e Subtração combinadas Um circuito somador paralelo pode ser usado para realizar adição ou subtração dependendo se o número B é mantido inalterado ou convertido para a sua forma de complemento de 2. Esse circuito somador/subtrator é controlado pelos sinais ADD e SUB. Circuito Integrado ALU Existem vários CIs disponíveis no mercado denominados Unidades Lógicas e Aritméticas (Arithmetic/Logic Units ALUs), ainda que não tenham toda a capacidade de uma ALU de um computador. A operação específica realizada pela ULA é determinada por um código binário específico colocado nas entradas de seleção de funções. A ULA 74LS382/HC382 Esse CI de 20 pinos opera com dois números de quatro bits na entrada, para gerar uma saída de quatro bits. Essa ULA pode realizar oito operações diferentes. A operação realizada pela ULA, em qualquer instante de tempo, depende do código aplicado às entradas de seleção. 23
Circuito Integrado ALU Bibliografia Básica Tocci,R.j.,Widmer,N.S.; Sistemas Digitais - Pi Princípios i e Aplicações - 8ª Ed, Editora Pearson, 2003. Milos Ercegovac; Tomas Lang; Jaime H. Moreno; Introdução aos Sistemas Digitais, Editora Bookman, 2000. Material da Disciplina Notas de Aula 24