FPGA

How PAL, PLA, and FPGA work?

Time: 2025-05-23 11:31:29View:

Here's a clear explanation of how PAL, PLA, and FPGA work, focusing on their internal logic and how they implement digital functions:

Figure5 Programming an FPGA.png


 1. PLA (Programmable Logic Array)

How it works:

A PLA consists of:

  • A programmable AND array

  • A programmable OR array

Concept:

  • Implements sum-of-products (SOP) logic:
    F = (A AND B) OR (A' AND C) etc.

  • You program which input combinations go to the AND gates.

  • Then, you program which product terms (AND outputs) go to the OR gates.

Structure:

ngin

Inputs → Inverters → Programmable AND → Programmable OR → Outputs

Features:

  • Fully programmable logic.

  • Flexible and general-purpose.

  • Good for implementing multiple logic functions sharing terms.


 2. PAL (Programmable Array Logic)

How it works:

A PAL is a simplified version of a PLA:

  • A programmable AND array

  • A fixed OR array

Concept:

  • You still implement SOP logic, but with less flexibility:

    • You can only OR together a fixed number of product terms.

    • So, complex functions may not fit directly.

Structure:

scss

Inputs → Inverters → Programmable AND → Fixed OR → Outputs

Features:

  • Faster than PLA due to simpler structure.

  • Less flexible, but more reliable and cheaper.

  • Often used for simple control logic or glue logic.


 3. FPGA (Field-Programmable Gate Array)

How it works:

An FPGA is a large grid of:

  • Configurable Logic Blocks (CLBs) with Look-Up Tables (LUTs)

  • Programmable interconnects

  • I/O blocks

Concept:

  • Each LUT stores the truth table of a logic function (like a tiny ROM).

  • You program which logic goes into each LUT.

  • Then you configure how the logic blocks are wired together using programmable switches.

Structure:

objectivec

Inputs → Routing → CLBs (LUT + FF) → Routing → Outputs

Features:

  • Very flexible: can implement complex digital systems (even CPUs).

  • Supports sequential logic (flip-flops), RAM, DSP, etc.

  • Programmable via HDL (VHDL/Verilog) and tools like Vivado or Quartus.


Comparison Summary

FeaturePLAPALFPGA
AND ArrayProgrammableProgrammableImplemented via LUTs
OR ArrayProgrammableFixedImplemented via LUTs & routing
FlexibilityHighMediumVery High
Complexity LimitMediumLow to MediumVery High
SpeedModerateFastHigh (with pipelining)
Use CaseBasic digital logicSimple control logicComplex systems (e.g. AI, SoC)