Programmable logic array


A programmable logic array is a kind of programmable logic device used to implement combinational logic circuits. The PLA has a set of programmable AND gate planes, which link to a set of programmable OR gate planes, which can then be conditionally complemented to produce an output. It has 2N AND gates for N input variables, and for M outputs from the PLA, there should be M OR gates, each with programmable inputs from all of the AND gates. This layout allows for many logic functions to be synthesized in the sum of products canonical forms.
PLAs differ from programmable array logic devices in that both the AND and OR gate planes are programmable. PAL has programmable AND gates but fixed OR gates

History

In 1970, Texas Instruments developed a mask-programmable IC based on the IBM read-only associative memory or ROAM. This device, the TMS2000, was programmed by altering the metal layer during the production of the IC. The TMS2000 had up to 17 inputs and 18 outputs with 8 JK flip-flops for memory. TI coined the term Programmable Logic Array for this device.

Implementation procedure

  1. Preparation in SOP 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 the OR matrix to generate the sum terms.
  5. Decide the connections of the inversion matrix.
  6. Program the PLA.
PLA block diagram:
1st block2nd block3rd block4th block5th block
Input bufferAND matrixOR matrixInvert/non-invert matrixFlip-flop output buffer

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 driven by 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 ; 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.

Applications

One application of a PLA is to implement the control over a datapath. It defines various states in an instruction set, and produces the next state. . Programmable logic arrays should correspond to a state diagram for the system.
The earliest Commodore 64 home computers released in 1982 initially used a programmed Signetics 82S100 PLA, but as the demand increased, MOS Technology / Commodore Semiconductor Group began producing a mask-programmed PLA, which bore part number 906114-01.