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

operationresult
0000operand_0 bitwise-AND operand_1
0001operand_0 bitwise-XOR operand_1
0010operand_0 minus operand_1
0011operand_1 minus operand_0
0100operand_0 plus operand_1
1100operand_0 bitwise-OR operand_1
1101operand_0
1111bitwise-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, and operation.
  • operand_0 and operand_1 are 32-bits
  • operation 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 when operation is applied to operand_0 and operand_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