# Programmable Logic Array (PLAs)

In this article, we are going to read about the **Programmable Logic Arrays (PLAs)** which belong to the class of programmable logic devices (PLDs), its basic configuration and how they can be used to implement different combinational circuits.

Submitted by Saurabh Gupta, on February 12, 2021

**Programmable Logic Array (PLA)**: It is a type of device which comes from the class of programmable logic devices (PLDs) and is used to implement combinational circuits. The basic configuration of a PLA consists of a programmable AND gate followed by a programmable OR gate. Although PLA contains the word programmable inside it, it does not have to be programmed explicitly using any programming languages like C, C++, Java, Python, etc.

A schematic diagram of the basic configuration of PLAs can be drawn as:

**Que 1: A combinational circuit is defined by the function F1= ∑ m (3,5,7), F2 = ∑ m (4,5,7). Implement the circuit using a PLA which consists of 3 inputs (A, B and C), 3 product terms and two outputs.**

**Solution: **Since, F1= ∑ m (3,5,7) and F2 = ∑ m (4,5,7). Truth table for Boolean functions F1 and F2 can be drawn as:

Now, for these Boolean functions, using the K-Map we can find the simplified Boolean expressions as:

A PLA program table can be also drawn representing the terms in the Boolean expression as:

The logic diagram of the combinational circuit implemented using PLA can be drawn as:

**Que 2: Design a BCD to Excess-3 code converter and implement it using a suitable PLA.**

**Solution: **Truth table for BCD to Excess-3 converter can be drawn as:

**Note: **Since, BCD numbers are from 0-9, hence other combinations representing (10-15) are considered as don’t cares while solving the K-Map.

Boolean Expressions for all the outputs can be written as:

E_{3} = ∑m (5,6,7,8,9) + ∑d (10,11,12,13,14,15)

E_{2 }= ∑m (1,2,3,4,9) + ∑d (10,11,12,13,14,15)

E_{1} = ∑m (0,3,4,7,8) + ∑d (10,11,12,13,14,15)

E_{0} = ∑m (0,2,4,6,8) + ∑d (10,11,12,13,14,15)

Solving K-Map to get the required Boolean expressions:

A PLA program table can be also drawn representing the terms in the Boolean expression as:

The logic diagram of the combinational circuit implemented using PLA can be drawn as:

TOP Interview Coding Problems/Challenges

- Run-length encoding (find/print frequency of letters in a string)
- Sort an array of 0's, 1's and 2's in linear time complexity
- Checking Anagrams (check whether two string is anagrams or not)
- Relative sorting algorithm
- Finding subarray with given sum
- Find the level in a binary tree with given sum K
- Check whether a Binary Tree is BST (Binary Search Tree) or not
- 1[0]1 Pattern Count
- Capitalize first and last letter of each word in a line
- Print vertical sum of a binary tree
- Print Boundary Sum of a Binary Tree
- Reverse a single linked list
- Greedy Strategy to solve major algorithm problems
- Job sequencing problem
- Root to leaf Path Sum
- Exit Point in a Matrix
- Find length of loop in a linked list
- Toppers of Class
- Print All Nodes that don't have Sibling
- Transform to Sum Tree
- Shortest Source to Destination Path

Comments and Discussions