Circuitos aritméticos Circuitos aritméticos é o nome porque são conhecidos os circuitos lógicos que realizam operações aritméticas. Repare-se que quando se faz a operação de soma sobre dois números, por exemplo os 0s e os 1s têm um duplo significado. Por um lado olhando para a soma, são algarismos em base 2. Por outro, quando definirmos as funções lógicas a utilizar são vistos como elementos lógicos. 2 1
O somador é um circuito que soma dois operandos em código binário natural Barramento de n bits Há muitas formas de implementar um somador deste tipo que permitem optar por privilegiar a velocidade de operação ou a simplicidade de projecto e implementação. Far-se-á apenas uma introdução ao tema. 3 Barramento é um grupo de linhas que, no conjunto, têm um significado próprio, por exemplo, por darem suporte a um número de n bits. Note que o barramento de saída do somador é representado com n +1 bits. Incluiu-se o bit de transporte da soma das posições mais significativas dos números. 4 2
Uma forma de projectar este circuito é obter para cada bit de saída a função lógica de 2n bits de entrada. Para um somador de 64 bits, esta abordagem é possível teoricamente, mas inexequível na prática. A solução clássica é a abordagem modular construindo o somador de n bits a partir de somadores de um bit seguindo o mesmo método que utilizamos na soma manual de dois números. 5 A soma é feita coluna a coluna. Considere-se o exemplo A coluna do bit menos significativo é tratada somando os dois bits, um de cada número e obtendo a soma (S) e o transporte (C do inglês Carry) 6 3
Considere-se apenas a coluna do bit menos significativo. É possível definir duas funções booleanas S e C das variáveis A e B que simulem a tabela da soma numérica. Índice 0 por se tratar do bit menos significativo correspondente ao peso 2 0 7 É fácil concluir que E que o circuito respectivo é Este circuito é designado por semi-somador por razões perceptíveis na continuação- 8 4
Para todos os outros bits do resultado será necessário ter conta, não só os bits dos números A e B, como também do transporte anterior. 9 Os mapas de Karnaugh resultantes e as expressões das funções são 10 5
Manipulando estas expressões obtém-se: 11 12 6
A este circuito chama-se somador completo. É agora evidente a razão da designação de semi-somador. Números a somar Soma Entrada de transporte Saída de transporte 13 Um somador de n bits pode ser facilmente construído a partir de somadores de 1 bit numa perspectiva de modularidade. 14 7
O símbolo deste somador de 4 bits é o seguinte (circuito 74HCT283) 15 O somador construído desta forma é conhecido por somador em cascata. Este tipo de modularidade em que se ligam em cascata módulos todos iguais, com linhas de entrada e de saída e com linhas que passam informação de um módulo para o adjacente dá origem aos denominados circuitos iterativos. 16 8
Repare-se que o módulo menos significativo poderia ser um semi-somador. No entanto esta solução facilita que dois somadores de 4 bits possam ser interligados para realizar um somador de 8 bits e por aí adiante. 17 Este circuito construído em cascata tem, como é natural, um tempo de reacção muito maior que um somador construído com 5 funções de 9 entradas. A vantagem é que é muito mais simples. Há técnicas que permitem construir circuitos somadores que, não gastando tanto material como exige a abordagem de implementar independentemente as funções, não são tão lentos como o somador em cascata simples. Não iremos abordar esse assunto, mas fica o alerta. 18 9
Tal como se projectou um circuito somador, pode ser projectado um circuito subtractor. 19 Como se viu quando se estudou a notação de complemento para 2, a operação A B pode ser realizada fazendo a soma de A com B, isto é A + (- B). A obtenção de B a partir de B, como se viu, faz-se realizando a operação de complemento para 2 de B. A forma mais simples de o fazer consiste em negar todos os bits de B e somar (soma aritmética) 1. 20 10
O circuito para realizar a subtracção é o seguinte: Soma-se A com a negação de B mais 1. 21 É possível fazer evoluir o circuito anterior para um circuito que, sob comando de uma variável de controlo, faça a soma ou a subtracção. Para fazer isso ter-se-á de possibilitar que a entrada B seja negada (como se fez no circuito anterior) ou não (para fazer a soma). Do mesmo modo, para fazer a soma o primeiro transporte terá de ser 0 enquanto que, para fazer a subtracção terá de ser 1. 22 11
Tendo em conta as propriedades do XOR obtem-se o circuito somador/subtractor: M = 0 - soma M = 1 subtracção 23 Um outro circuito aritmético interessante é o comparador. O comparador compara dois números e tem três saídas das quais uma está a 1 e as outras a 0: A > B A = B A < B A realização mais simples é a de um circuito iterativo 24 12
Um ponto importante nos circuitos iterativos é a definição das linhas entre módulos. No caso dos somadores essa linha é o transporte. No caso dos comparadores há várias soluções possíveis mas opta-se por passar três linhas de designações óbvias A>B, A=B e A<B. Optou-se por partir do bit mais significativo. 25 A primeira célula irá comparar os bits mais significativos dos dois números. Se eles forem iguais, a informação a transmitir é a de que, até àquele bit, os números não diferem (A=B) =1. Se o bit A = 1 e B = 0, então (A>B) =1 porque então A > B. Se o bit A = 0 e B = 1, então (A<B) =1 porque então A < B. 26 13
O módulo i irá informar o módulo i-1 que A > B se tiver sido informado disso pelo módulo mais significativo ou se sendo até ali os bits correspondentes dos dois número iguais, se verificar que A = 1 e B = 0. Do mesmo modo é fácil de ver que 27 O circuito de cada módulo será, portanto 28 14
O comparador de 4 bits será, portanto Repare-se que para o circuito funcionar bem, o primeiro módulo terá de ter nas suas entradas os valores assinalados. Na figura exemplifica-se a comparação de A = 1100 com B = 1010. 29 74HCT85 30 15
Livro recomendado, Capítulo 5, secções 5.1 e 5.3; Secção 4.6 Existem muitos livros com capítulos sobre o assunto. A Internet é, como de costume, uma fonte que, explorada com espírito crítico, tem muito para dar. 31 16