CS 202 - Problem Nine: ALU
Due: 04/05/2023
Goals
- Create a critical part of the ARM processor
Objective
For this problem, you will construct an ALU for an ARM32 processor. It will support all the arithmetic and logical operations entailed by the ARM32 instructions we have looked at in class, as well as some other important ones.
Here is the desired behavior of the ALU
operation | result |
---|---|
0000 | operand_0 bitwise-AND operand_1 |
0001 | operand_0 bitwise-XOR operand_1 |
0010 | operand_0 minus operand_1 |
0011 | operand_1 minus operand_0 |
0100 | operand_0 plus operand_1 |
1100 | operand_0 bitwise-OR operand_1 |
1101 | operand_0 |
1111 | bitwise-NOT operand_0 |
Requirements
- your work must be in a file called
alu.circ
- your implementation must be in the
main
circuit (you are welcome to create sub-circuits however) - your circuit must have three inputs:
operand_0
,operand_1
, andoperation
. operand_0
andoperand_1
are 32-bitsoperation
is a 4-bit input- your circuit should have one output called
result
result
should be 32-bits.- the value of
result
should reflection what happens whenoperation
is applied tooperand_0
andoperand_1
. - you are restricted to
- input pins
- output pins
- splitters
- components in the Gates library (i.e., basic logic gates)
- components from the Arithmetic library
- components in the Plexers library
Submission
Upload your .circ file to Canvas.
Last updated 04/19/2023