Assignment 1 Serial ALU
Assignment 1 Serial ALU
Background.
An arithmetic and logic unit (ALU) is a circuit that performs various arithmetic and
logic operations on two input operands. Typical ALUs perform binary operations
such as add, subtract, AND, OR, XOR; unary operations such as increment,
decrement, transfer input directly to output; and constant operations such as output
constants 0 or 1.
Most of the ALUs that form the core of the computer’s CPU operate on 8, 16 or 32 bit
parallel data. It is also possible to design serial ALUs for which the two input
operands and the output are stored in shift registers and processed one bit at a time.
The advantage of a serial ALU is that only one copy of the circuitry for one ALU bit
is needed to process n-bit data. The disadvantage is that n clock cycles are required
to process the data.
Assignment.
1. Design a 6 input, 2-output combinatorial ALU circuit that processes two 1-bit
operands. The circuit should have two 1-bit data inputs A and B, a 1-bit carry
input CI, a 3-bit F selector input, a 1-bit data output S, and a 1-bit carry output
CO. The circuit should perform eight functions as shown in table 1. For each
operation the value of S should be computed as shown; for arithmetic
operations (increment, negate, add, subtract ) the value of CO should be
computed as the carry from the indicated addition.
F1 F2 F3 Operation Name
_________________________________________________________________
0 0 0 S <= 0 Clear
0 0 1 S <= not A Complement
0 1 0 S <= A plus CI Increment
0 1 1 S <= (not A) plus CI Negate
1 0 0 S <= B Transfer B
1 0 1 S <= A xor B Exclusive OR
1 1 0 S <= A plus B plus CI Add
1 1 1 S <= A plus (not A) plus CI Subtract
Table 1 ALU functions for assignment 1
2. The ALU circuit from step 1 can be used to serially process operands of any
length. Complete the design of the system shown in figure 1, which uses two
shift registers to hold 4-bit operands A and B. The system should have
following inputs and outputs:
F1, F2, F3 - These three toggle switches are used to set the desired function.
Bin - These four toggle switches determine the value of the B register
set by a parallel load.
LOAD -This push button is used to load the B register and also should set
the carry flip-flop with the proper initial carry for arithmetic
operations as determined by F1, F2 ,F3.
CLOCK -This push button controls the shifting of A and B and loading of the
carry flip-flop for performing operations. The result should be
contained in A, and B should be restored to its loaded value after
four clock cycles.
A-REG - These four LEDs should show the contents of the A register.
B-REG - These four LEDs should show the contents of the B register.
After design, test your circuit on the Multisim by performing each operation
with a number of different operands.