Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Aptitude
  • Engineering Mathematics
  • Discrete Mathematics
  • Operating System
  • DBMS
  • Computer Networks
  • Digital Logic and Design
  • C Programming
  • Data Structures
  • Algorithms
  • Theory of Computation
  • Compiler Design
  • Computer Org and Architecture
Open In App
Next Article:
Programmable Logic Array
Next article icon

Programmable Logic Array

Last Updated : 27 Sep, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

A Programmable Logic Array therefore, comprises of a PLA chip having a fixed wiring structure of AND gates followed by OR gates that can be programmed. PLA is a type of programmable logic device to construct a reconfigurable digital circuit on its architecture. It includes memory as well as logical operation which enable the user to instruct the device to perform certain operations of logic. As indicated by many authors, PLAs themselves are not configured with a specific function at the time of manufacturing and are configured before use.

What is Programmable Logic Array?

A Programmable Logic Array (PLA) is the implementation of the combinational logic circuits using a programmable type of a digital logic device. There is a programmable AND gate array with a programmable OR gate inputted thereafter, a feature that enables users to specify the required custom logic. PLAs tend to be more versatile due to their capability of being programmed to operate multiple logic functions and hence can be used in the designing of specific hardware solutions.

Comparison with other Programmable Logic Devices

  • PLA has a programmable AND gate array and programmable OR gate array.
  • PAL has a programmable AND gate array but a fixed OR gate array.
  • ROM has a fixed AND gate array but programmable OR gate array.

PLA is similar to a ROM in concept; however, it does not provide full decoding of variables and does not generate all minterms as in the ROM. Though its name consists of the word "programmable", it does not require any type of programming like in C and C++. 

Features of Programmable Logic Array

  • Programmable AND and OR Gates: PLA has two types of arrays, namely programmable AND gate array and programmable OR gate array so that the logic circuits can be designed in any way.
  • Reconfigurability: As compared with other logic devices, the operation of PLAs is highly flexible and these devices may be easily programmed to perform any of the numerous logical functions.
  • Partial Minterm Generation: It is also to be noted here that PLA does not provide the full decoding of variables like ROM but it functions only the necessary minterms.
  • Combination of Memory and Logic: PLA has both the memory and the logic features hence making it suitable for various applications.

Basic Block Diagram for PLA

Basic Block Diagram for PLA

Following Truth table will be helpful in understanding function on no of inputs: 

A

B

C

F1

F2

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

1

0

1

0

0

0

1

1

0

1

1

1

1

1

0

0

0

1

1

1

1

1

F1 = AB'C' + ABC' + ABC  on simplifying we get : F1 = AB + AC'  F2 = A'BC + AB'C + ABC  on simplifying we get: F2 = BC + AC 

For the realization of the above function following circuit diagram will be used. 

PLA is used for the implementation of various combinational circuits using a buffer, AND gate, and OR gate. In PLA, all the minterms are not realized but only required minterms are implemented. As PLA has a programmable AND gate array and a programmable OR gate array, it provides more flexibility but the disadvantage is, it is not easy to use. 

The Operation of a PLA can be Summarized in Three Steps

1. Programming: The user defines the logic function to be implemented by the PLA by programming the input and output configurations into the device.
2. Product term generation: The inputs are applied to the AND gate array to produce a set of product terms.
3. Sum term generation: The product terms are then applied to the OR gate array to generate the final output.

PLAs are often used in digital systems as they are versatile and allow complex functions to be implemented easily. They are particularly useful for implementing Boolean expressions with many variables as the arrays of AND gates and OR gates can be configured to handle large numbers of inputs.

Applications of Programmable Logic Array

  • PLA is used to provide control over datapath.
  • PLA is used as a counter.
  • PLA is used as a decoder.
  • PLA is used as a BUS interface in programmed I/O.

Advantages of Programmable Logic Array

  • Flexibility: Both the programmable AND gates and also the programmable OR gates offer the beneficial benefits of being used in a number of combinational circuits.
  • Efficient Minterm Usage: It will only implement the necessary minterms thus making the design compact and more efficient.
  • Reconfigurability: The PLAs can be reconfigured to perform different logic functions depending with the requirements of an application.

Disadvantages of Programmable Logic Array

  • Complexity: PLAs are slightly different from other programmable logic devices due to their high flexibility that makes the usage of PLAs a little complicated.
  • Cost: It has higher cost as compared to the least complex logic devices such as PALs but it offers programming and flexible control.

Conclusion

Programmable Logic Arrays (PLAs) are one of the typical categories of programmable devices, offering the possibility to construct variable digital systems. Being equipped with their programmable AND and OR gates, the functionality of PLAs is to implement several types of combinational logic functions are present. These are employed in many incidences like control over datapath, counters, decoder, and BUS interfaces. As it is evident, HDFSs have many advantages over other storage technologies; however, they are more complicated and costly, and are not as convenient as solutions with a relatively lower level of sophistication.


Next Article
Programmable Logic Array

S

SanghpriyaGautam
Improve
Article Tags :
  • Misc
  • Digital Logic
Practice Tags :
  • Misc

Similar Reads

    Programming Array Logic
    Programmable Array Logic (PAL) is a commonly used programmable logic device (PLD). It has programmable AND array and fixed OR array. Because only the AND array is programmable, it is easier to use but not flexible as compared to Programmable Logic Array (PLA). PAL's only limitation is number of AND
    5 min read
    Program to Implement Logic Gates
    In a computer, most of the electronic circuits are made up logic gates. Logic gates are used to create a circuit that performs calculations, data storage or shows off object-oriented programming especially the power of inheritance. Logic gates can also be constructed using vacuum tubes, electromagne
    8 min read
    Difference between Programmable Logic Array and Programming Array Logic
    Programmable Logic Array (PLA) and Programming Array Logic (PAL) are the categories of programming logic devices. In PLA or Programmable Logic Array, there are massive functions can be implemented. Whereas in PAL or Programmable Array Logic, there is finite functions can be implemented. The distinct
    5 min read
    Perl | Arrays
    In Perl, array is a special type of variable. The array is used to store the list of values and each object of the list is termed as an element. Elements can either be a number, string, or any type of scalar data including another variable. Example: @number = (50, 70, 46); @names = ("Geeks", "For",
    6 min read
    Practice questions on Arrays
    In this article, we will discuss some important concepts related to arrays and problems based on that. Before understanding this, you should have basic idea about Arrays.Type 1. Based on array declaration - These are few key points on array declaration: A single dimensional array can be declared as
    6 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences