# Introduction

How to Design a 4-bit Arithmetic Logic Unit (ALU)? 4-bit ALU (Arithmetic Logic Unit) is to perform mathematical operations (such as addition and subtraction) and logical operations (such as AND and OR) on 4-bit binary numbers.

• IC74LS83
• IC74HS04N
• IC 74LS153
• Jumper wires

## Theory

A 4-bit ALU is a digital circuit that performs mathematical and logical operations on 4-bit binary numbers. It is a fundamental building block of a computer’s central processing unit (CPU) and is used to carry out the instructions of a computer program.
The basic functionality of a 4-bit ALU includes:

• Arithmetic operations such as addition, subtraction, increment, and decrement.
• Logical operations such as AND, OR, NOT, and XOR.
• Comparison operations such as equality, greater than, and less than.
• Bit-wise operations such as shifting and rotating the bits.

The 4-bit ALU receives two 4-bit inputs (A and B) and a 2-bit operation code (Opcode) that specifies the operation to be performed. Depending on the opcode, the ALU selects the appropriate operation and performs it on the inputs, producing a 4-bit output (Result).

## Examples of how 4-bit ALU works?

• If the opcode is 00, the ALU performs an AND operation on the inputs A and B, producing a 4-bit result that has a 1 in each bit position where both A and B have 1s.
• If the opcode is 01, the ALU performs an OR operation on the inputs A and B, producing a 4-bit result that has a 1 in each bit position where either A or B has 1s.
• If the opcode is 10, the ALU performs an addition operation on the inputs A and B, producing a 4-bit result that is the sum of A and B.

The functionality of a 4-bit ALU can be expanded by using more opcodes and adding more inputs and outputs.

A 4-bit ALU can be represented as a block diagram with several components:
❖ Two 4-bit inputs (A and B) that feed into the ALU
❖ A 2-bit opcode input that determines the operation to be performed
❖ A 4-bit output (Result) that holds the result of the operation
❖ A control unit that decodes the opcode and generates the control signals that specify the operation to be performed
❖ A set of logic gates or arithmetic circuits that perform the actual operations
❖ A set of multiplexers that select the inputs and outputs for each operation
❖ A zero flag that indicates whether the result is 0.

## The basic flow of the 4-bit ALU is as follows:

1. The two 4-bit inputs A and B are fed into the ALU
2. The 2-bit opcode input is used to determine which operation should be performed
3. The control unit generates the control signals that specify the operation
4. The multiplexers select the inputs and outputs for the chosen operation
5. The logic gates or arithmetic circuits perform the operation
6. The result is outputted as a 4-bit number

## Working Procedure:

This 4-bit ALU will perform the addition, subtraction as well as increment and decrement.
➢ If we use the select S0 =0 and S1 =1, then it will perform addition in A and B.
➢ If we will use select lines S0 =1, S1 =0 it will perform the subtraction in A and B.
➢ If we will use select lines S0 = 0 and S1 =1, then it will perform the increment in A by 1.
➢ If we will use select lines S0 = 1 and S1 =1, then it will perform the decrement in A by 1.

## Applications of ALU

Instruction execution: ALU is also responsible for executing instructions stored in memory. These instructions are used to control the flow of a program, making decisions, and performing repetitive tasks.

Embedded systems: ALU is also used in embedded systems, which are computer systems that are integrated into other devices or products. Examples of embedded systems include cell phones, digital cameras, and car navigation systems.

-Digital Signal Processing: ALU is also used in DSP (digital signal processing) for performing mathematical operations such as filtering, compression, and modulation. This is used in audio, video, and communications applications.

These are just a few examples of the many applications of ALU. Its versatility and wide range of capabilities make it an essential component of modern computing systems.