Consider a ROM with m inputs (the address lines) and noutputs (the data lines). the ROM contains words of n bits each. . making this the most general-purpose combinational logic device available. read-only memory (ROM) chips were used to create arbitrary combinational logic functions of a number of inputs.Before PLDs were invented. When used as a memory. each of which generates a chosen function of the m inputs. there are 2m possible Boolean functions of these m signals. Also. Now imagine that the inputs are driven not by an m-bit address. but by m independent logic signals. but the structure of the ROM allows just of these functions to be produced at the output pins. The ROM therefore becomes equivalent to n separate logic circuits. The advantage of using a ROM in this way is that any conceivable function of the m inputs can be made to appear at any of the n outputs. PROMs (programmable ROMs). Theoretically. EPROMs (ultraviolet-erasable PROMs) and EEPROMs (electrically erasable PROMs) are available that can be programmed using a standard PROM programmer without requiring specialised hardware or software.

or "hard array logic". The trademark is currently held by Lattice Semiconductor. Each PAL device was "one-time programmable" (OTP). Using specialized machines. PAL devices were "fieldprogrammable". PAL devices consisted of a small PROM (programmable read-only memory) core and additional output logic used to implement particular desired logic functions with few components.The term Programmable Array Logic (PAL) is used to describe a family of programmable logic device semiconductors used to implement logic functions in digital circuits introduced by Monolithic Memories. meaning that it could not be updated and reused after its initial programming. (MMI also offered a similar family called HAL. (MMI) in March 1978.) . Inc. which were like PAL devices except that they were mask-programmed at the factory. MMI obtained a registered trademark on the term PAL for use in "Programmable Semiconductor Logic Circuits".

This device has the same logical properties as the PAL but can be erased and reprogrammed. . The GAL is very useful in the prototyping stage of a design .An innovation of PAL was the Generic Array Logic device or GAL. GALs are programmed and reprogrammed using a PAL programmer or by using the circuit programming technique on supporting chips. invented by lattice semiconductor in 1985. when any bugs in the logic can be corrected by reprogramming.

GAL architecture has reprogrammable AND array. which provide more flexibility.GAL offered CMOS electrically erasable PROM (EPROM. GAL is similar to PAL with output logic macrocells (OLMCs). a fixed OR array and reprogrammable output logic. E2PROM) variations on the PAL concept. . GAL can be erased and reprogrammed and usually replace a whole set of different PALs. Output logic macrocell can be configured either for a combinational output of for a registered output.


Each column is connected to the input of an AND gate. Each macrocell contains an edgetriggered D-type flip-flop and a pair of configurable multiplexers.The reprogrammable array is essentially a grid of conductors forming rows and columns with an electrically erasable CMOS (E2CMOS) cell at eaThe rch cross-point. Any combination of input variables or complements can be applied to an AND gate to form any desired product term by programming each E2CMOS cell. The control fuses for the GAL macrocells allow each macrocell to be configured in one of three basic configurations. rather than a fuse as in a PAL. . These configurations correspond to the various types of I/O configurations found in the PAL devices that the GAL is designed to replace. and each row is connected to an input variable or its complement.


The CPLD contains a circuit that decodes the data stream and configures the CPLD to perform its specified logic function. A second method of programming is to solder the device to its printed circuit board. then feed it with a serial data stream from a personal computer. all in one integrated circuit. . complex PLDs or CPLDs can be used. Some CPLDs are programmed using a PAL programmer. or even hundreds of thousands.PALs and GALs are available only in small sizes. of logic gates. These contain the equivalent of several PALs linked by programmable interconnections. equivalent to a few hundred logic gates. but this method becomes inconvenient for devices with hundreds of pins. CPLDs can replace thousands. For bigger logic circuits.

FPGAs use a grid of logic gates. and 82S105 sequencer. The term "field-programmable" means the device is programmed by the customer. The 82S105 also had flip flop functions. not the manufacturer. . introduced in the late 1970s.While PALs were busy developing into GALs and CPLDs (all discussed above). The 82S100 was an array of AND terms. This type of device is based on gate array technology and is called the fieldprogrammable gate array (FPGA). and once stored. by Signetics. a separate stream of development was happening. Early examples of FPGAs are the 82s100 array. the data doesn't change. similar to that of an ordinary gate array.

sum of products).g. The difference between FPGAs and CPLDs is that FPGAs are internally based on Look-up tables (LUTs) whereas CPLDs form the logic functions with sea-ofgates (e. Configuration is typically stored in a configuration PROM or EEPROM. CPLDs are a good choice for wide combinational logic applications. whereas FPGAs are more suitable for large state machines (i. microprocessors). . in a manner similar to that of larger CPLDs. and must be re-loaded into the device whenever power is applied or different functionality is required. In general. EEPROM versions may be in-system programmable (typically via JTAG).e. CPLDs are meant for simpler designs while FPGAs are meant for more complex designs. In most larger FPGAs the configuration is volatile.FPGAs are usually programmed after being soldered down to the circuit board.

Memory devices store random information such as the contents of a spreadsheet or database. and logic. Microprocessors execute software instructions to perform a wide variety of tasks such as running a word processing program or video game. timing and control operations. there are three basic kinds of devices: memory. including device-to-device interfacing. data display.In the world of digital electronic systems. data communication. microprocessors. signal processing. . Logic devices provide specific functions. and almost every other function a system must perform.