PROM, PLA(Progambale Logic Array), PAL(Programmable Array Logic)

Updated on 2018/01/21 13:08


  • PROM, PLA, PAL: Architectures and applications.

Introduction to PLDs


  • ROM: Programmable OR array
  • PLA:
    • Programmable Logic Array
    • Programmable OR – AND Arrays
  • PAL:
    • Programmable Array Logic
    • Programmable AND array, fixed OR
  • GAL:
    • Generic Array Logic
    • Can be configured to emulate many earlier PLDs including those with internal Flip-Flops
  • CPLD: Complex PLD
  • FPGA: Field Programmable Gate Array


The first PLD is PROM was introduced in 1970. PROMs was introduced for use as computer memories in which to store program instructions and constant data values. PROM have fixed AND plane and programmable OR plane. PROM can be used to program any combinational logic with limited numbers of inputs and outputs. Given n variables, it would necessary to have 2n AND gates, one for each possible minterm. A figure below shows the unprogrammed PROM for 3 inputs and 3 outputs, where AND plane is fixed and OR plane is programmable. The programmable links in OR array can be implemented as a fused link, or an EPROM transistor or E2PROM cells depend on vendors. PROMs are useful for equations requiring a large number of product terms, but they can support few inputs as every input combination is always decoded and used.

Two basic versions of PROM:
1) Mask-Programmable: can be programmed only by the manufacturer. Mask-programmable chip has less delay because connections within the device can be hardwired during manufacture.
2) Field-Programmable: can be programmed by the end-user.Field-programmable chips are less expensive and can be programmed immediately. The Field Programmable PROM developed into two types, the Erasable Programmable Read-Only Memory (EPROM) and the Electrically Erasable Programmable Read-Only Memory (E2PROM). The E2PROM has the advantage of being erasable and reprogrammable many times.

Implementation procedure

  1. Preparation in SOP (sum of products) form.
  2. Obtain the minimum SOP form to reduce the number of product terms to a minimum.
  3. Decide the input connection of the AND matrix for generating the required product term.
  4. Then decide the input connections of OR matrix to generate the sum terms.
  5. Decide the connections of invert matrix.
  6. Program the PLA.

Advantages over read-only memory

The desired outputs for each combination of inputs could be programmed into a read-only memory, with the inputs being loaded onto the address bus and the outputs being read out as data. However, that would require a separate memory location for every possible combination of inputs, including combinations that are never supposed to occur, and also duplicating data for "don't care" conditions (for example, logic like "if input A is 1, then, as far as output X is concerned, we don't care what input B is": in a ROM this would have to be written out twice, once for each possible value of B, and as more "don't care" inputs are added, the duplication grows exponentially); therefore, a programmable logic array can often implement a piece of logic using fewer transistors than the equivalent in read-only memory. This is particularly valuable when it is part of a processing chip where transistors are scarce (for example, the original 6502 chip contained a PLA to direct various operations of the processor).


  1. One application of a PLA is to implement the control over a data path. It defines various states in an instruction set and produces the next state (by conditional branching). [e.g. if the machine is in state 2, and will go to state 4 if the instruction contains an immediate field; then the PLA should define the actions of the control in state 2, will set the next state to be 4 if the instruction contains an immediate field, and will define the actions of the control in state 4]. Programmable logic arrays should correspond to a state diagram for the system.

Other commonly used programmable logic devices are PAL, CPLD, and FPGA.

  1. Note that the use of the word "programmable" does not indicate that all PLAs are field-programmable; in fact, many are mask-programmed during manufacture in the same manner as a mask ROM. This is particularly true of PLAs that are embedded in more complex and numerous integrated circuits such as microprocessors. PLAs that can be programmed after manufacture is called FPGA (Field-programmable gate array), or less frequently FPLA (Field-programmable logic array).


ROM (Read Only Memory) and PLA (Programmable Logic Array) are used to implement logic functions. Both of them use the ‘Sum of Products’ logic configuration, which consists of a primary array of AND gates and a second array of OR gates. The OR function (Sum) is applied to outputs of AND (product) arrays.

What is the difference between PLA and ROM?

  1. In PLA both AND and OR arrays are configurable unlike in ROM, whereas only the OR gates array is configurable.
  2. PLA has the capability to take ‘don’t care terms’ (Boolean overlaps) into account in which ROMs are incapable.
  3. ROM has all the combinations of product terms, and therefore, considered as the most general purpose combinational logic device in contrast to PLA, which doesn’t have all the combinations.

PLA = Programmable Logic Array.

  • A PLA or PAL (programmable array logic) device is like a baby FPGA which can be programmed to perform basic logic functions.
  • Tens to hundreds of gates on a PAL can be connected to perform simple logic functions.
  • A PAL is often read-only, in that after programming you have to perform a complete erase to update it.

ROM = Read Only Memory.

  • A ROM does not perform logic functions, but stores data. A type of ROM might be EPROM, erasable programmable read-only memory.
  • You can use a ROM as a logic device, by implementing a simple logic table lookup. Like a truth table.
  • However, it is somewhat wasteful and expensive to do this compared to actually using a PAL or even a CPLD/FPGA.

ROM (Read Only Memory)

ROM is made of an AND gates array and OR gates array. AND array provides all the combinations of inputs, and OR array is used to select the necessary combinations. Therefore, AND array is always fixed. For example, in a three input (let say) system, AND array produces all the combinations (product terms) of ABC, ABC’, AB’C, AB’C’, A’BC, A’BC’, A’B’C, A’B’C’ where ’ implies the complement (NOT).

Then an OR gate can be used to select the necessary product terms to implement the given logic function. Any logic function of A, B, C can be implemented using those product terms.


So, these are the characteristics of the ROM:

Input products are hard-wired and include all possible minterms. Output summation circuitry is programmable.

For example

f(A,B,C) = AB + BC = ABC + ABC’ + A’BC

Likewise, an array of OR gates can implement an array of logic functions. Therefore ROM is used to store programs. Programming the ROM means configuring those OR array by selecting the necessary products.

PLA (Programmable Logic Array)

PLA too is made of two OR and AND arrays, but both the arrays are configurable unlike in ROM. This also provides a ‘Sum of Products’ term, but in a different way. Since terms for AND gates are also possible, it can give more product terms like AB, BC’, C etc. Therefore it is much easier to implement logic functions compared to ROM.

For example, AB + BC can be directly implemented by selecting A, B for one AND gate, B,C for another AND gate and making outputs of those AND gates to inputs of an OR gate.



PLD (Programmable Logic Devices)

PLD are chips which contained programmable circuit. These chips contained large digital gates that could be programmed. This offered designers the flexibility to program the chip according to the circuit design requirements.

PLA(Programmable Logic Array)

PLA(Programmable Logic Array) and PAL(Programmable Array Logic) are Programmable Logic Devices which had planes of AND and OR gates interconnected to each other and which could be programmed.

First PLA was discovered. The block diagram of the structure of PLA inside a chip is shown below.


As shown above, the PLA consisted of planes of input buffers and inverters, the plane of AND gates and the plane of OR gates. This structure was developed utilizing the fact that any logic function can be expressed as the sum of the product of minterms. Each of the connection between the planes could be connected or left disconnected and thus implement the desired logic function. Thus this gave a flexibility of realizing digital logic circuit.

A closer look at the internal structure of the connection between the plane is shown below.
A field programmable logic array (FPLA) only those minterms that are needed are generated. Also, each is generated only once, even though it may appear multiple times in the output expressions.


So, these are the characteristics of the FPLA:

Input product circuitry is programmable. Output summation circuitry is programmable.

In technical writing and design, the following schematic drawing is commonly used.

PAL(Programmable Array Logic)

A PAL is also a PLD(Programmable Logic Device) but in case of PAL as opposed to PLA, the OR gate plane is fixed while the AND plane is programmable. This has improved performance and improved fabrication margin. That is because a PLA have both programmable AND and OR planes there was a higher potential that the PLD was corrupted.

An example of PAL circuit is shown below.

A programmable array logic (PAL) has the input circuitry similar to that of the FPLA. However, the output circuitry includes hardwired OR logic and is not programmable.


So, these are the characteristics of the PAL:

Input product circuitry is programmable. Output summation circuitry is hardwired.

PAL Design


Fig: PAL Design

What is Difference between PLA and PAL?

Programmable Logic ArrayProgrammable Array Logic
PLA has both programmable AND and OR planesPAL has only programmable AND planes and OR plane is fixed
PLA has more flexibility in the logic circuit function implementationPAL has less flexibility in the logic circuit function implementation
PAL is quite difficult to manufacturePAL is simpler to manufacture
PLA has  reduced speed performancePLA has  good speed performance
PLA devices are manufactured in a larger size.PAL devices are manufactured in a smaller size.


Created by Sujit Wagh on 2017/08/07 11:04
Translated into en by Sujit Wagh on 2017/08/07 11:04