CIS 351 |
Project 3: Build an ALU |
Winter 2021 |
Combine your adder, adder/subtracter, and comparator from previous projects into a single ALU. Notice that you will not be implementing the ALU described in the textbook. Your ALU will have different operations and op codes.
Your ALU must perform the following 16-bit operations:
Unsigned addition | 0 |
Unsigned subtraction | 1 |
And | 2 |
Or | 3 |
Not | 4 |
Xor | 5 |
lui | 6 |
sltu | 7 |
Signed addition | 8 |
Signed subtraction | 9 |
slt | 15 |
ALU_16bit.jls
and don't rename any inputs or outputs.Overflow
output to 0 if overflow doesn't apply to the given operation. Specifically, Overflow
should be 0 for all operations except signed addition and signed subtraction. (Interestingly enough, by
definition, unsigned addition and unsigned subtraction do not overflow.)
not
operator returns the negation of InputA
. Ignore InputB
.lui
stands for load upper immediate. Take the lower 8 bits of InputA
and place
them in the upper 8 bits of the output. Ignore InputB
.
slt
stands for set if less than. The output should be 1 if InputA
is less than InputB
and 0 otherwise. slt
treats the inputs as signed integers,
sltu
treats the numbers as unsigned.
Sample16BitALUTest.java
JLS
and DLUnit
. Commit and push often.
This assignment will be scored out of 30 points.
Category | Rubric | Maximum Score |
---|---|---|
Correctness | ||
Not attempted | 0 | |
Passes some tests | 1 point per op | |
Passes all tests | 17 | |
Date 100% correct | ||
Two days early | 12 | |
One day early | 11 | |
On time | 10 | |
One day late | 8 | |
(-2 per day) | ... | |
Five or more days late | 0 | |
Presentation | ||
Documentation and Neatness | 3 |
Penalties
To submit your project:
.jls
files containing the names of all team members.
[Grade Me]
to the commit message.Updated Monday, 28 December 2020, 6:55 PM