The ARP32 CPU contains the following main functional units:
- L-Unit: Performs all logical operations (AND/OR/XOR/NOT/shift and minimum/maximum), some bit level operations like bit rotation, signed/unsigned bit extraction, bit reversal, bit clear, bit set operations, left most bit detection, and saturation operation.
- S-Unit: Performs the move operations.
- D-Unit: Performs arithmetic operations that include compare less/greater than instructions, address calculation for load/store instructions, PC calculations for branch instructions, and stack pointer increment/decrement for PUSH/POP and CALL/RETURN instructions.
- M-Unit: Performs multiplication, division, and modulo operations.