ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Digital Logic Design
    CSI-306
    Progress0 / 47 topics
    Topics
    1. Overview of Binary Numbers2. Boolean Algebra3. Switching Algebra4. Logic Gates5. Karnaugh Map6. Quin-McCluskey Methods7. Simplification of Boolean Functions8. Combinational Design: Two-Level NAND/NOR Implementation9. Tabular Minimization10. Combinational Logic Design: Adders11. Combinational Logic Design: Subtracters12. Combinational Logic Design: Code Converters13. Combinational Logic Design: Parity Checkers14. Multilevel NAND/NOR/XOR Circuits15. MSI Components16. Design and Use of Encoders17. Design and Use of Decoders18. Design and Use of Multiplexers19. BCD Adders20. Comparators21. Latches and Flip-Flops22. Synchronous Sequential Circuit Design and Analysis23. Registers24. Synchronous and Asynchronous Counters25. Memories26. Control Logic Design27. Wired Logic and Characteristics of Logic Gate Families28. ROMs29. PLDs30. PLAs31. State Reduction and Good State Variable Assignments32. Algorithmic State Machine (ASM) Charts33. Asynchronous Circuits34. Memory Systems35. Functional Organization36. Multiprocessor and Alternative Architectures37. Introduction to SIMD38. Introduction to MIMD39. Introduction to VLIW40. Introduction to EPIC41. Systolic Architecture42. Interconnection Networks43. Shared Memory Systems44. Cache Coherence45. Memory Models and Memory Consistency46. Performance Enhancements47. Contemporary Architectures
    CSI-306›PLAs
    Digital Logic DesignTopic 30 of 47

    PLAs

    7 minread
    1,249words
    Intermediatelevel

    PLAs (Programmable Logic Arrays)

    A Programmable Logic Array (PLA) is a type of Programmable Logic Device (PLD) used to implement combinational logic circuits. Unlike fixed-function logic devices, a PLA allows the user to configure its internal logic to perform any logic function, as long as the function is achievable with the number of inputs and outputs the device provides.

    PLAs were developed as a way to simplify the design of logic circuits, providing a more flexible, customizable alternative to traditional hard-wired logic gates and programmable logic devices like PALs (Programmable Array Logic).

    1. Structure of a PLA

    A PLA consists of two key parts:

    1. AND Plane (AND Array):

      • The AND plane is a set of programmable AND gates that generate all the possible product terms (combinations of input variables).
      • Each input variable is available to each AND gate, and the user can program whether the variable is passed through or inverted before being input into the AND gate. This gives a high level of flexibility in creating complex logic functions.
    2. OR Plane (OR Array):

      • The OR plane is made up of programmable OR gates that combine the product terms from the AND plane.
      • Each OR gate can be programmed to sum (combine) any subset of the product terms. The outputs of these OR gates are the final outputs of the PLA device.

    In essence, the PLA works by first generating a set of product terms (AND terms) from the input variables in the AND plane, then summing those terms in the OR plane to produce the final output.

    2. How PLAs Work

    • Programming the AND Plane:

      • The AND array is configured by setting or clearing connections between inputs (or their inverted versions) and the AND gates. This determines which product terms will be generated. For example, if we have two inputs, A and B, an AND gate can be programmed to produce A⋅BA \cdot BA⋅B, A⋅B‾A \cdot \overline{B}A⋅B, A‾⋅B\overline{A} \cdot BA⋅B, or A‾⋅B‾\overline{A} \cdot \overline{B}A⋅B.
    • Programming the OR Plane:

      • After the product terms are formed in the AND array, the OR array is programmed to sum the relevant product terms to produce the output. Each OR gate can combine any of the available product terms, allowing for highly customizable logic functions.

    3. Advantages of PLAs

    PLAs provide several key advantages:

    • Flexibility: PLAs are very flexible because both the AND and OR planes are programmable. This allows users to implement any logic function that can be described by a sum of products (SOP) expression, which is a common form of Boolean expressions.

    • Customization: PLAs allow for a wide range of custom logic functions to be implemented, including complex Boolean expressions with many terms. Designers can create highly specific logic circuits tailored to their needs.

    • Compactness: Since PLAs can implement multiple logic functions in a single device, they help reduce the number of components needed for a design, leading to smaller and more cost-effective solutions.

    • Reuse: The ability to reprogram a PLA makes it easy to adapt the design as requirements change, saving time and cost in cases where logic needs to be modified after deployment.

    4. Disadvantages of PLAs

    Although PLAs offer significant flexibility, they do have some limitations:

    • Speed: PLAs may be slower compared to other programmable logic devices like PALs or FPGAs for large or highly complex logic designs, primarily because of the complexity of programming both the AND and OR planes.

    • Cost: While PLAs provide flexibility, they can be more expensive than simpler devices like PALs or fixed logic gates, especially in lower volume applications.

    • Limited Logic Resources: PLAs are not as dense as FPGAs in terms of logic capacity, so they may not be suitable for very large designs that require significant logic gates or complex functions.

    • Power Consumption: PLAs can consume more power than simpler devices because they have more programmable elements and larger arrays. This may be a concern in power-sensitive applications.

    5. Types of PLAs

    PLAs can be categorized based on their size and complexity:

    • Small-Scale PLAs: These are typically used for relatively simple combinational logic functions. They might have fewer inputs and outputs and are suitable for small systems or custom logic circuits.

    • Large-Scale PLAs: These PLAs can support more complex designs with more inputs, outputs, and programmable logic resources. They can implement larger, more sophisticated combinational logic circuits.

    PLAs are often contrasted with PALs (Programmable Array Logic), another form of programmable logic device, which typically has a fixed AND array and a programmable OR array. PALs are faster and cheaper than PLAs but offer less flexibility, as the AND array cannot be programmed, only the OR array.

    6. Applications of PLAs

    PLAs are used in a variety of digital systems and applications, especially where custom logic is needed:

    • Control Systems: In embedded control systems, PLAs can be used to implement custom control logic for specific applications, such as signal processing or event-driven control.

    • Custom Logic Functions: PLAs are used in situations where a designer needs to implement a complex combination of logic gates or custom Boolean expressions.

    • Prototyping: PLAs are ideal for prototyping because they allow for the design and testing of custom logic without the need to create an entirely new chip.

    • Communication Systems: PLAs are used in digital communication systems to implement custom protocols, modulations, or error-checking functions.

    • Data Processing: PLAs can be employed in systems where complex data processing operations are required, such as in image processing or signal routing.

    7. Example of a PLA Implementation

    Consider a simple PLA with 3 inputs (A, B, C) and 2 outputs (Y1, Y2). You might want to implement the following logic functions:

    • Y1=A⋅B+CY1 = A \cdot B + CY1=A⋅B+C
    • Y2=A⋅B‾⋅CY2 = A \cdot \overline{B} \cdot CY2=A⋅B⋅C

    The steps to implement this on a PLA would be:

    1. Program the AND plane: Create the necessary product terms:

      • For Y1Y1Y1, the product term is A⋅BA \cdot BA⋅B and CCC.
      • For Y2Y2Y2, the product term is A⋅B‾⋅CA \cdot \overline{B} \cdot CA⋅B⋅C.
    2. Program the OR plane: Combine the product terms in the OR plane:

      • Y1=A⋅B+CY1 = A \cdot B + CY1=A⋅B+C
      • Y2=A⋅B‾⋅CY2 = A \cdot \overline{B} \cdot CY2=A⋅B⋅C

    By programming these terms into the AND and OR planes, the PLA would implement these functions.


    8. Conclusion

    PLAs (Programmable Logic Arrays) are highly flexible and powerful devices used for implementing custom combinational logic functions. With programmable AND and OR planes, they provide a customizable solution for a wide variety of digital logic circuits, making them ideal for prototyping and applications requiring specific logic configurations. Although they have some limitations in terms of speed and complexity, PLAs remain a valuable tool in digital system design.

    Previous topic 29
    PLDs
    Next topic 31
    State Reduction and Good State Variable Assignments

    Past Papers

    Open this section to load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time7 min
      Word count1,249
      Code examples0
      DifficultyIntermediate