Você está na página 1de 13

Desenho e

Implementação
de uma Unidade
Aritmética Lógica
(ALU)
Trabalho realizado no âmbito da unidade
curricular de Sistemas Digitais, do curso
de Engenharia Informática da
Universidade Lusófona do Porto

Álvaro Matos, nº 22109348, Ricardo Aragão, nº 22103422


Índice
Introdução ..................................................................................................................................... 2
Revisão teórica .............................................................................................................................. 3
Unidade Aritmética Lógica ........................................................................................................ 3
Complemento de dois ............................................................................................................... 3
Desenho e implementação do circuito ......................................................................................... 4
Conclusão ...................................................................................................................................... 7
Bibliografia .................................................................................................................................... 8
Anexo ............................................................................................................................................ 9
Introdução

O presente relatório tem como objetivo apresentar o desenho e a implementação de


uma Unidade Aritmética Lógica com duas entradas, cada uma de 4 bits e em notação de
complemento para dois.

A unidade aritmética lógica será capaz de efetuar as operações de subtração e adição,


sendo o resultado visualizado num display LED de sete segmentos, assim como, os elementos
das operações efetuadas.
Revisão teórica

Unidade Aritmética Lógica

A Unidade Aritmética e Lógica é um circuito digital responsável pela execução das


principais operações aritméticas (soma e subtração nos circuitos mais simples e divisão e
multiplicação nos mais complexos) e lógicas de qualquer computador sendo, assim, um
componente indispensável da unidade central de processamento do mesmo. (Ralston & Reilly,
2003)

As ULA’s devem processar os números no mesmo formato que o resto do circuito digital
(binário, decimal, entre outros), sendo a representação binária de complemento de dois a mais
utilizada. (Ralston & Reilly, 2003)

Complemento de dois

O complemento de dois (ou para dois) representa os números com sinal, ou seja, os
números negativos e positivos, em binário, sendo definido como o complemento de um número
em relação a 2 elevado a esse número (tabela 1). (Finley, 2000)

De modo a representar um número negativo em binário vamos, primeiro, inverter todos


os seus bits e depois somar “um”. (Finley, 2000)

Em relação ao número que vai ser visualizado na saída, nos circuitos digitais, sempre
que o bit mais significativo (bit mais à esquerda) for “um” este será negativo e sempre que for
“zero” o número será positivo. (Finley, 2000)

Nesta forma de representação numérica é possível representar 2 elevado a “n”, sendo


“n” o número de bits. (Finley, 2000)
Tabela 1 - Valores de 4 bits em binário, decimal e complemento de dois tabela retirada de (Finley, 2000)

Binário Decimal Complemento de dois


0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 -8
1001 9 -7
1010 10 -6
1011 11 -5
1100 12 -4
1101 13 -3
1110 14 -2
1111 15 -1

Desenho e implementação do circuito

De modo a implementar uma ALU de 4 bits de entrada vamos precisar de 4 somadores


completos (full-adder (figuras 1 e 2)). (Grout, 2008)

Um somador completo de 1 bit permite somar três números de 1 bit cada. (Grout, 2008)

Este tipo de circuito possui 3 entradas sendo estas os dois bits de entrada (A e B) e o
carry-in (Cin) que é o bit proveniente do estágio menos significativo da operação anterior (figura
2). (Grout, 2008)

Em relação às saídas, apresenta duas, sendo elas o bit correspondente à soma (Sum) e
ao carry-out (Cout) (figura 2). (Grout, 2008)

Através da tabela da verdade do somador (tabela 2), conseguimos implementar o


circuito, retirando as expressões lógicas necessárias á mesma. Ao analisar a tabela é possível
retirar as seguintes expressões tendo em conta os “um” da coluna do Sum e da coluna do Cout
(o “ ’ ” representa a negação) (Grout, 2008):

- Sum = A’ B’ C-IN + A’ B C-IN’ + A B’ C-IN’ + A B C-IN = C-IN (A’ B’ + A B) + C-IN’


(A’ B + A B’) = C-IN XOR (A XOR B);
- Cout = A’ B C-IN + A B’ C-IN + A B C-IN’ + A B C-IN
= A B + B C-IN + A C-IN = A B + C-IN (A XOR B).

Posto isto, podemos concluir que os somadores completos podem ser construídos
usando as portas lógicas XOR, AND e OR, resultando no circuito representado na figura 2. (Grout,
2008)

Tabela 2 -Tabela de verdade do somador completo de entrada A,B e Cin e saídas Sum e Cout; tabela retirada de
(Grout, 2008)

A B Cin Sum Cout


0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Para criar um circuito somador/subtrator de n bits basta conectar qualquer número de


n somadores completos. Para um somador binário de 4 bits (utilizado no nosso trabalho) vamos
precisar de quatro somadores completos e implementá-los conforme as figuras 3 e 4. (Grout,
2008)

De modo a transformar o somador num somador/subtrator, adiciona-se uma nova


entrada, “K” (linha de controlo) (figura 3), que vai servir como controlo, dizendo se a operação
aritmética a efetuar é a adição ou a subtração. Se o valor de K for “um” a operação efetuada
será a subtração, se for zero será a adição: se o valor de K é um, a operação lógica que irá ocorrer
será B’ XOR B’, o que resultará na operação de A + B’ (que corresponde à subtração na
representação binária de complemento de dois); quando K é zero, a operação lógica que irá
ocorrer será B XOR K, o que resultará na operação lógica de A+B, correspondente á soma binária.
(Grout, 2008)

O primeiro somador completo (mais à direita) (bits menos significativos) vai ter a linha
de controlo ligada diretamente a ele como o input Cin, pois ainda não foi efetuada nenhuma
operação. (Grout, 2008)
Os bits (A0, A1, A2 E A3) de cada somador completo são ligados diretamente ao mesmo,
enquanto que os bits (B0, B1, B2 e B3) estão conectados a um XOR com o input K e só o
resultante desta ligação é que vai ser ligado diretamente ao somador completo. (Grout, 2008)

Os outputs de cada somador completo correspondem à soma/subtração efetuada (S0,


S1, S2 e S3) e ao valor de carry-out (C0, C1, C2 e Cout). Os valores de C0, C1 e C2 serão passados
ao próximo somador como inputs do mesmo e outputs do anterior. O Cout será o carry-out total
da soma/subtração. Os valores de S1, S2 e S3 irão formar o resultado juntamente com o valor
de S0. (Grout, 2008)

De modo a visualizar os números que irão ser somados/subtraídos, assim como o


resultado da operação, em LED’s, ligam-se três displays BCD de sete segmentos às entradas e
saída, ou seja, um para os valores de A, outro para os valores de B e outro para os valores de S,
conforme está representado na figura 5.
Conclusão

Este trabalho permitiu aprofundar o nosso conhecimento sobre o desenho e a


implementação de Unidades Aritméticas Lógicas, nomeadamente de um somador/subtrator de
4 bits, assim como permitiu uma melhor compreensão da representação binária de
complemento de dois utilizada neste circuito digital e do funcionamento de um
somador/subtrator de 4 bits.

Em termo de conclusão, podemos referir que a grande vantagem deste tipo de circuito
é a sua simplicidade e custo baixo e a sua principal desvantagem é a lentidão que apresenta
devido, principalmente, aos carry-out de cada somador completo. (Grout, 2008)
Bibliografia
E. T. (2021). Binary Coded Decimal. Obtido em 27 de novembro de 2021, de Electronics
Tutorials: https://www.electronics-tutorials.ws/binary/binary-coded-decimal.html

Finley, T. (2000). Two's Complement.

Grout, I. (2008). Digital Systems Design with FPGAs and CPLDs. Introduction to Digital Logic
Design.

Ralston, A., & Reilly, E. D. (2003). Encyclopedia of Computer Science. United Kingdom: John
Wiley and Sons Ltd.
Anexo

Figura 1 - Somador completo (full adder) com 3 entradas e 2 saídas; imagem retirada de
https://www.geeksforgeeks.org/full-adder-in-digital-logic/

Figura 2 - Somador completo dormado por E, OU's e XOR's lógicos; imagem retirada de
https://www.sciencedirect.com/topics/computer-science/full-adder
Figura 3 – Somador/subtrator de 4 bits; imagem retirada de https://www.geeksforgeeks.org/4-bit-binary-adder-
subtractor/
Figura 4 - Somador/subtrator de 4 bits criado no digitals
Figura 5 – Somador/subtrator de 4 bits implementado com display BCD de 7 segmentos

Você também pode gostar