Unidade de Logica e Aritimetica
O primeiro trabalho consiste em gerar uma Unidade Lógica e Aritmética (ULA) de 32 bits que possua, no mínimo, as seguintes operações: o o
Aritméticas: o Soma o Subtração o Comparação (igualdade, menor que)
Lógicas:
o AND o OR o XOR
As operações aritméticas devem ter como resultado o cálculo da operação selecionada, com saída do tamanho do barramento solicitado e sinal indicativo de overflow. Idem para as operações lógicas, sendo que a comparação deve ter um sinal específico para a igualdade e, no caso do "menor que", o resultado da operação deve ser igual a 1.
Para facilitar o trabalho e padronizar os resultados, siga a tabela de operações abaixo
(o que um cliente dificilmente trará prontinho assim):
Tabela de operações
Seletor
Função
000
A AND B
001
A OR B
010
A+B
011
vazio
100
A AND B'
101
A OR B'
110
A-B
111
SLT
Lembre-se: para as operações aritméticas, os valores podem ser positivos ou negativos. Além da ULA, deve-se gerar um datasheet (um tipo de relatório/propaganda, há um exemplo no Moodle) contendo a definição da interface (quais são as entradas disponíveis, quais são as saídas esperadas, como é a organização interna da ULA e como pode ser empregada pelo cliente), e esquemático.
O trabalho deve ser feito em um time ou equipe de quatro alunos. Lembrem-se: time é diferente de grupo – não trabalhem completamente isolados. Cada integrante da equipe é responsável pelo sucesso do trabalho.