Vous êtes sur la page 1sur 14

Universidade Federal Rural de Pernambuco

Unidade Acadmica de Serra Talhada

UNIDADE LGICA ARITMTICA - ULA

Infraestrutura de Hardware
FABRCIO DE MENESES LUNA

UNIDADE LGICA ARITMTICA ULA

INTRODUO
A unidade lgica e aritmtica (ULA) ou em ingls Arithmetic Logic
Unit (ALU) um circuito digital que realiza operaes lgicas e aritmticas. A
ULA uma pea fundamental da unidade central de processamento (CPU), e
at dos mais simples microprocessadores. na verdade, uma "grande
calculadora eletrnica" do tipo desenvolvido durante a II Guerra Mundial, e sua
tecnologia j estava disponvel quando os primeiros computadores modernos
foram construdos.

PROJETO
A unidade lgica aritmtica dever ser capaz de executar as seguintes
operaes, que sero selecionadas a partir dos cdigos da tabela abaixo:
Seleo
S2 S1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

Funo
S0
0
1
0
1
0
1
0
1

F=A+B
F=A-B
F = Complemento a 2 de B
F=A=B
F=A>B
F=A<B
F = A AND B
F = A XOR B

Entradas:
1. Dois vetores A e B de 4 bits (1 para sinal e 3 para o mdulo) representando
os operandos. Esses nmeros so binrios positivos ou negativos
(complementados a 2).
2. Um vetor S de 3 bits representando o seletor da operao segundo a tabela
exibida acima.
Sadas:
1. Um vetor F de 4 bits representando o resultado da operao (para os casos
em que a operao retorna um vetor).
2. Um sinal representando overflow (para as operaes que podem gerar
overflow)
3. Um sinal representado status (para as operaes que retornam um booleano)

Esquema de circuitos lgicos da ULA

Componentes
Entradas
Dois vetores de (A e B) de 4 bits, sendo o primeiro bit de sinal (0 para
positivo e 1 para negativo). Caso o nmero seja negativo, deve-se usar
Complemento a 2 para representa-lo

Chave seletora
Encarregada de determinar qual funo ser usada de a acordo com a
seleo, obedecendo o quadro a seguir:
Seleo
S2 S1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

Funo
S0
0
1
0
1
0
1
0
1

F=A+B
F=A-B
F = Complemento a 2 de B
F=A=B
F=A>B
F=A<B
F = A AND B
F = A XOR B

Display de 7 segmentos
Foi utilizado o esquema de display de7 segmentos para mostrar as
entradas (A e B), e tambm, para representar a sada. O display inserido a
esquerda, possui apenas a ligao com o bit de sinal de sua respectiva entrada
ou sada, caso o bit seja 1, o sinal do centro aceso. O display capaz de
mostrar nmeros de -7 a 7

Circuito do Display de 7 Segmentos


Temos 4 entradas e 7 sadas, porm no projeto utilizamos apenas 3
entradas, uma vez que o primeiro bit usado para representar o sinal dos
nmeros. Cada sada do circuito ligada a um led do display, que acender caso
o bit seja 1.
No projeto, dadas as entradas, so ligadas a um circuito
SomadorSubtrator cuja sua sada ligada a entrada do circuito do display. Essa
medida foi tomada para no caso dos elementos negativos, o circuito realizar o
complemento a 2 para representa-los.

Somador-Subtrator
o principal circuito, onde todas as funes passam por ele para serem
computadas. Recebe 9 bits de entrada, sendo 4 de A, 4 de B e 1 bit de seleo
(0 para soma e 1 para subtrao. Temos 4 bits de sada para o resultado e 1 bit
de sada para Overflow.

Circuito Somador-Subtrator
Temos 4 Somadores Completos ligados em sequncia, onde recebem as
entradas A e B, e tambm a entrada de seleo (0 para soma e 1 para
subtrao). No caso de soma, as entradas de A e B entram diretamente nos
somadores completos para que possa ser realizada a operao.
J em caso de subtrao, a chave seletora, envia 1 como entrada no s
para o primeiro somador completo, mas tambm para os XORS onde as
entradas de B esto ligadas. Sendo assim, todas as entradas de B sero
invertidas (1 por 0 e 0 por 1), realizando o complemento a 1. E somando isso a
1 bit de entrada no primeiro somador completo, possvel se obter o
complemento a 2, gerando o nmero negativo.
Temos 4 bis de sada, sendo 1 de sinal e 1 bit de Overflow. O overflow
indica que o resultado da operao no dever ser usado. As condies para
que haja overflow so as seguintes:
Operao
A+B
A+B
A-B
A-B

Operador A
>=0
<0
>=0
<0

Operador B
>=0
<0
<0
>=0

Resultado Indicando Overflow


<0
>=0
<0
>=0

Somador Completo
Utilizado em sequncia para formar o somador subtrator. Trata-se de um
circuito que recebe 2 bits de entrada (A e B) e tambm o Cin (Vem um). Tem
como sada S (resultado da soma) e Cout (Vai um).

Multiplexador de 2 entradas e 1 seletor


Foram utilizados multiplexadores de 2 entradas e 1 seletor para realizar a
funo Complemento a 2 de B. Temos uma das entradas aterradas (sempre
ser 0) e a outra entrada A.
Vemos no circuito a seguir que existe uma porta AND cujas entradas so
a seleo de funo. Essa porta serve para ativar os multiplexadores caso a
seleo seja 010 (Complemento a 2 de B).
Sendo assim, caso a opo de Complemento a 2 de B seja selecionada,
realizada a subtrao de B em 0 (zero), pois com a ativao dos
multiplexadores, independentemente do valor de A, a entrada no SomadorSubtrator ser sempre 0 (zero).

Circuito do Multiplexador de 2 entradas e 1 seletor.


Dadas as entradas X que no projeto representa o valor aterrado (sempre
zero) e Y que representa o valor da entrada principal A. Temos como entrada
tambm a chave de seleo. Caso a chave marque 0, o valor a ser passado o
valor de Y (Nesse caso, o valor da entrada principal: A), caso a chave marque 1,
o valor a ser passado o valor de X (valor aterrado, sempre zero).

XOR
Temos 8 entradas, 4 bits de A e 4 Bits de B, com 4 sadas.

Circuito XOR
Dadas as entradas A e B, realizada a funo XOR em cada elemento,
resultando em 4 sadas. A0 xor B0; A1 xor B1; A2 xor B2; A3 xor B3.

AND
Temos 8 entradas, 4 bits de A e 4 Bits de B, com 4 sadas.

Circuito AND
Dadas as entradas A e B, realizada a funo AND em cada elemento,
resultando em 4 sadas. A0 and B0; A1 and B1; A2 and B2; A3 and B3.

Funes A=B; A>B; A<B


Para realizar a funo: A=B, realizamos a subtrao A-B. Caso o resultado
seja 0, o resultado verdadeiro. Para que isso seja mostrado, usado um OR
com as entradas sendo as sadas da subtrao e a sada desse OR negada.
Ou seja, para a sada ser verdadeira, todas as entradas devem ser zero.
Para realizar a Funo A>B, tambm realizamos a subtrao A-B, mas
dessa vez, preciso que pelo menos uma das sadas seja 1 e que o bit de sinal
seja 0.
Para a funo A<B, mais uma vez feita a subtrao A-B, e para o
resultado, basta termos um AND negando A=B e A>B. Ou seja, Se A no maior
nem igual a B, ser menor.

Multiplexador de 8 entradas e 3 seletores


Temos 5 multiplexadores, sendo 4 para resultados em forma de vetor e
um para resultado sendo apenas um bit de sinal (booleano).
Em cada multiplexador temos 8 entradas de dados, e 3 seletores, que so
justamente a chave de seleo que indica qual funo dever ser usada.

Circuito Multiplexador de 8 entradas e 3 seletores


Como foi visto, se tem 8 entradas e 3 seletores. Os seletores recebem o
valor da chave de seleo que indica qual funo dever ser usada. Das 8
entradas, apenas 1 ser selecionada.
Temos as 3 primeiras entradas (da direita para a esquerda) para a Soma,
Subtrao e Complemento a 2 de B). Isso possvel, pois o resultado dessa
entrada j foi filtrado pelo Somador-Subtrator, que realizou a operao de acordo
com a chave de seleo. A 4 entrada a operao A=B, a 5 A>B, a 6 A<B. A
7 entrada recebe a funo A and B e a 8 recebe A xor B.

Sadas
Se tem como sada, um vetor de 4 bits ou um sinal de status para os
resultados booleanos. Esses resultados so obtidos aps as informaes
passarem pelo multiplexador. Foi inserido tambm um circuito de display de 7
segmentos para mostrar nos displays as respostas, caso seja o vetor.

Overflow
acionado caso exista a condio descrita no quadro visto em
Somador-Subtrator, e em qualquer outro caso em que o resultado no dever
ser considerado.

Erros encontrados
Em operaes que o resultado seria 8 (valor a cima do limite da ULA), o
resultado mostrado era -0 e o overflow no era indicado. Para contornar esse
erro, foi feita a condio para que caso ocorra, o overflow aceso, indicando que
o resultado no vlido.

Explicando as funes
A+B (000)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o Somador-Subtrator, que realiza a
operao de soma e manda o resultado para os multiplexadores, que identificam
de acordo com a chave seletora e por fim, exibem o resultado, em leds e tambm
no display.
A-B (001)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o Somador-Subtrator, que realiza a
operao de subtrao usando o complemento de 2 e manda o resultado para
os multiplexadores, que identificam de acordo com a chave seletora e por fim,
exibem o resultado, em leds e tambm no display.

Complemento a 2 de B (010)
Recebe-se como B, que mostrado no display, o valor de A no usado
o valor enviado para o Somador-Subtrator, que realiza a operao subtraindo
B de 0 usando complemento de 2 e manda o resultado para os multiplexadores,
que identificam de acordo com a chave seletora e por fim, exibem o resultado,
em leds e tambm no display.

A=B (011)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o Somador-Subtrator, que realiza a
operao de subtrao e caso o resultado seja 0, a operao verdadeira. O
resultado enviado para o multiplexador, que identifica de acordo com a chave
seletora e por fim, exibem o resultado no led de status.

A>B (100)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o Somador-Subtrator, que realiza a
operao de subtrao e caso o resultado no seja 0 e o bit de sinal seja igual
a 0 a operao verdadeira. O resultado enviado para o multiplexador, que
identifica de acordo com a chave seletora e por fim, exibem o resultado no led
de status.
A<B (101)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o Somador-Subtrator, que realiza a
operao de subtrao e caso o resultado no seja 0 e tambm no seja A>0,

a operao verdadeira. O resultado enviado para o multiplexador, que


identifica de acordo com a chave seletora e por fim, exibem o resultado no led
de status.
A and B (110)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o circuito AND, onde feita a comparao
bit a bit, enviado o resultado para os multiplexadores, que identificam de acordo
com a chave seletora e por fim, exibem o resultado, em leds e tambm no
display.

A xor B (111)
Recebe-se como entradas A e B, os valores so mostrados em seus
respectivos displays e enviados para o circuito XOR, onde feita a comparao
bit a bit, enviado o resultado para os multiplexadores, que identificam de acordo
com a chave seletora e por fim, exibem o resultado, em leds e tambm no
display.

Dificuldades encontradas
Uma das dificuldades encontradas foi na exibio de valores a serem
mostrados no display, que foi tratado utilizando o circuito Somador-Subtrator
juntamente como circuito de Display de 7 Segmentos.
Outra dificuldade encontrada, foi quanto ao tratamento de Overflow, que
foi feito com a ajuda a tabela de condies de Overflow do livro: Organizao e
projeto de computadores : [a interface hardware-software] - 3. ed. / 2005.