Our design project is to build an 8-bit ALU. The ALU will perform addition and subtraction. The chip we design will also include a shift function, separate from the adder. Input will enter during two clock cycles for addition and subtraction. There will be eight single bit inputs which will go to input register one during the first clock cycle. During the second clock cycle the inputs will go to input register two. If the operation is a shift operation, the input will go from input register one to the shift and output register during the second clock cycle. If this is the case, then input register two will not receive any data during the second clock cycle. The output then leaves the shift and output register through eight single bit output lines.
The control receives a two bit input during the first clock cycle. It will interpret the input to be addition, subtraction, or one of two shift operations. The control will then send a signal to the input registers so that on the second clock cycle it will either receive a second input or move the first input to the shift and output register. The control will also tell the adder whether it is an add or subtract operation, or if it will be idle for a shift operation. It will also tell the shift register if it is idle or the type of shift. During addition and subtraction, the inputs will move to the adder, where the operation will occur using carry look-ahead logic. The adder will send the solution to the shift and output register, where it will then wait to be output to the user. The control will also have two outputs handshaking. They will tell the user that the chip is busy, it is ready for input number one, it is ready for input number two, or the result is ready. Last, there will be a clear input which will send a signal to the control to clear all registers.