0% acharam este documento útil (0 voto)
52 visualizações3 páginas

Uma Unidade Lógica Aritmética (ALU) Simples: Operação Código

Enviado por

estherplvictoria
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
52 visualizações3 páginas

Uma Unidade Lógica Aritmética (ALU) Simples: Operação Código

Enviado por

estherplvictoria
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 3

Uma Unidade Lógica Aritmética (ALU)

Simples
A ULA é a parte da CPU que é responsável por realizar operações lógicas e aritméticas.
Nesta implementação em particular, a ULA é bem simples. Ela recebe duas entradas (e1 e e2)
de 8 bits, além de outra entrada, também de 8 bits, que é o código de operação. A saída é o
resultado da operação (8 bits também) feita com as entradas e1 e e2.

As operações que a ULA deve implementar são as listadas abaixo. O código da operação é
os 3 bits menos significativos da entrada código do circuito:

Operação Código

OR 000

NAND 001

NOR 010

AND 011

ADD 100

SUB 101

Para os operadores lógicos, a operação é feita bit a bit. Para as operações aritméticas, a
operação é feita considerando os números em complemento de dois. Para somar os
números 9 e 2, por exemplo, teríamos os seguintes valores de entrada e saída:
e1 = 00001001 (9)
e2 = 00000010 (2)
código = 00000100 (ADD)
A saída será 00001011 (11)

Para realizar a subtração (SUB), a ULA converte o segundo operando em um número


negativo (em complemento de dois) e realiza a soma normalmente.Para obter o complemento
de dois invertemos os bits e somamos 1 ao número invertido. Para subtrair 2 de 9 ( 9 - 2), por
exemplo, teríamos os seguintes valores de entrada e saída:

e1 = 00001001 (9)
e2 = 00000010 (2)
código = 00000101 (SUB)
A saída será 00000111 (7)

Como dito acima, as operações lógicas são feitas com os respectivos pares de bits (bit 0 de
e1 com o bit 0 de e2 , bit 1 de e1 com o bit 1 de e2 , e assim por diante até o bit 7). Por
exemplo, para realizar a operação AND entre 9 e 10, por exemplo, teríamos os seguintes
valores de entrada e saída:

código = 00000011
e1 = 00001001 (9)
AND e2 = 00001010 (10)
---------------------
saída = 00001000 (8)

Detalhes de implementação
• Temos 6 operações. Como projetar o circuito para escolher a operação correta?
Uma forma simples de se fazer isso é deixar que todas ou algumas das
operações sejam realizadas simultaneamente, e escolher o resultado correto. Por
exemplo, as entradas e1 e e2 podem chegar tanto ao circuito AND quanto ao
OR. O resultado de cada operação é enviado a um mesmo multiplexador (2:1)
que seleciona o resultado correto e o envia à saída. O seletor do multiplexador
está, neste caso, diretamente relacionado ao código da operação (entrada
código ).
• As operações de soma e subtração podem causar overflow. Não se preocupe
com isso. Apenas ignore o bit de carry do somador.
• ⚠ Importante: para a implementação da ULA você vai utilizar apenas as portas
lógicas básicas: NOT, AND, e OR. Não use circuitos prontos da biblioteca do
Logisim como somadores, contadores, etc. Logo, se você tiver que usar, por
exemplo, um multiplexador (e você vai precisar usar alguns), você terá primeiro
que construir este circuito a partir das portas lógicas básicas para depois utilizá-
lo na ULA. No Logisim você faz isso adicionando um novo circuito no menu
Project -> Add Circuit . Depois de implementá-lo, ele aparecerá na lista de
componentes disponíveis para serem adicionados ao seu circuito principal (o
circuito da ULA).

Você também pode gostar