Recent from talks
Contribute something
Nothing was collected or created yet.
Programmable Array Logic
View on Wikipedia

Programmable Array Logic (PAL) is a family of programmable logic device semiconductors used to implement logic functions in digital circuits that was introduced by Monolithic Memories, Inc. (MMI) in March 1978.[1] MMI obtained a registered trademark on the term PAL for use in "Programmable Semiconductor Logic Circuits". The trademark is currently held by Lattice Semiconductor.[2]
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.
Using specialized machines, PAL devices were "field-programmable". PALs were available in several variants:
- "One-time programmable" (OTP) devices could not be updated and reused after initial programming. (MMI also offered a similar family called HAL, or "hard array logic", which were like PAL devices except that they were mask-programmed at the factory.)
- UV erasable versions (e.g.: PALCxxxxx e.g.: PALC22V10) had a quartz window over the chip die and could be erased for re-use with an ultraviolet light source just like an EPROM.
- Later versions (PALCExxx e.g.: PALCE22V10) were flash erasable devices.
In most applications, electrically erasable GALs are now deployed as pin-compatible direct replacements for one-time programmable PALs.
History
[edit]Before PALs were introduced, designers of digital logic circuits would use small-scale integration (SSI) components, such as those in the 7400 series TTL (transistor-transistor logic) family; the 7400 family included a variety of logic building blocks, such as gates (NOT, NAND, NOR, AND, OR), multiplexers (MUXes) and demultiplexers (DEMUXes), flip-flops (D-type, JK, etc.) and others. One PAL device would typically replace dozens of such "discrete" logic packages, so the SSI business declined as the PAL business took off. PALs were used advantageously in many products, such as minicomputers, as documented in Tracy Kidder's best-selling book The Soul of a New Machine.
PALs were not the first commercial programmable logic devices; Signetics had been selling its field programmable logic array (FPLA) since 1975. These devices were completely unfamiliar to most circuit designers and were perceived to be too difficult to use. The FPLA had a relatively slow maximum operating speed (due to having both programmable-AND and programmable-OR arrays), was expensive, and had a poor reputation for testability. Another factor limiting the acceptance of the FPLA was the large package, a 600-mil (0.6", or 15.24 mm) wide 28-pin dual in-line package (DIP).
The project to create the PAL device was managed by John Birkner and the actual PAL circuit was designed by H. T. Chua.[3] In a previous job (at mini-computer manufacturer Computer Automation), Birkner had developed a 16-bit processor using 80 standard logic devices. His experience with standard logic led him to believe that user-programmable devices would be more attractive if the devices were designed to replace standard logic. This meant that the package sizes had to be more typical of the existing devices, and the speeds had to be improved. MMI intended PALs to be a relatively low cost (sub $3) part. However, the company initially had severe manufacturing yield problems[citation needed] and had to sell the devices for over $50.[citation needed] This threatened the viability of the PAL as a commercial product, and MMI was forced to license the product line to National Semiconductor.[citation needed] PALs were later "second sourced" by Texas Instruments and Advanced Micro Devices.
Process technologies
[edit]Early PALs were 20-pin DIP components fabricated in silicon using bipolar transistor technology with one-time programmable (OTP) titanium-tungsten programming fuses.[4] Later devices were manufactured by Cypress, Lattice Semiconductor and Advanced Micro Devices using CMOS technology.
The original 20- and 24-pin PALs were denoted by MMI as medium-scale integration (MSI) devices.
PAL architecture
[edit]
The PAL architecture consists of two main components: a logic plane and output logic macrocells.
Programmable logic plane
[edit]The programmable logic plane is a programmable read-only memory (PROM) array that allows the signals present on the device pins, or the logical complements of those signals, to be routed to output logic macrocells.
PAL devices have arrays of transistor cells arranged in a "fixed-OR, programmable-AND" plane used to implement "sum-of-products" binary logic equations for each of the outputs in terms of the inputs and either synchronous or asynchronous feedback from the outputs.
Output logic
[edit]The early 20-pin PALs had 10 inputs and 8 outputs. The outputs were active low and could be registered or combinational. Members of the PAL family were available with various output structures called "output logic macrocells" or OLMCs. Prior to the introduction of the "V" (for "variable") series, the types of OLMCs available in each PAL were fixed at the time of manufacture. (The PAL16L8 had 8 combinational outputs, and the PAL16R8 had 8 registered outputs. The PAL16R6 had 6 registered and 2 combinational outputs, while the PAL16R4 had 4 of each.) Each output could have up to 8 product terms (effectively AND gates); however, the combinational outputs used one of the terms to control a bidirectional output buffer. There were other combinations that had fewer outputs with more product terms per output and were available with active high outputs ("H" series).[5]: 1–14 The "X" series of devices had an XOR gate before the register.[5]: 1–9 There were also similar 24-pin versions of these PALs.
This fixed output structure often frustrated designers attempting to optimize the utility of PAL devices because output structures of different types were often required by their applications. (For example, one could not get 5 registered outputs with 3 active high combinational outputs.) So, in June 1983 AMD introduced the 22V10, a 24-pin device with 10 output logic macrocells.[6] Each macrocell could be configured by the user to be combinational or registered, active high or active low. The number of product terms allocated to an output varied from 8 to 16. This one device could replace all of the 24-pin fixed function PAL devices. Members of the PAL "V" ("variable") series included the PAL16V8, PAL20V8 and PAL22V10.
-
PAL 16R4 block diagram
-
AMD 22V10 block diagram
-
AMD 22V10 output macrocell
Programming PALs
[edit]PALs were programmed electrically using binary patterns (as JEDEC ASCII/hexadecimal files) and a special electronic programming system available from either the manufacturer or a third party, such as DATA I/O. In addition to single-unit device programmers, device feeders and gang programmers were often used when more than just a few PALs needed to be programmed. (For large volumes, electrical programming costs could be eliminated by having the manufacturer fabricate a custom metal mask used to program the customers' patterns at the time of manufacture; MMI used the term "hard array logic" (HAL) to refer to devices programmed in this way.)
Programming languages (by chronological order of appearance)
[edit]
Though some engineers programmed PAL devices by manually editing files containing the binary fuse pattern data, most opted to design their logic using a hardware description language (HDL) such as Data I/O's ABEL, Logical Devices' CUPL, or MMI's PALASM. These were computer-assisted design (CAD) (now referred to as "electronic design automation") programs which translated (or "compiled") the designers' logic equations into binary fuse map files used to program (and often test) each device.
PALASM
[edit]The PALASM (from "PAL assembler") language was developed by John Birkner in the early 1980s and the PALASM compiler was written by MMI in FORTRAN IV on an IBM 370/168. MMI made the source code available to users at no cost. By 1983, MMI customers ran versions on the DEC PDP-11, Data General NOVA, Hewlett-Packard HP 2100, MDS800 and others.
It was used to express Boolean equations for the output pins in a text file, which was then converted to the 'fuse map' file for the programming system using a vendor-supplied program; later the option of translation from schematics became common, and later still, 'fuse maps' could be 'synthesized' from an HDL (hardware description language) such as Verilog.
CUPL
[edit]Assisted Technology released CUPL (Compiler for Universal Programmable Logic) in September 1983.[7] The software was always referred to as CUPL and never the expanded acronym. It was the first commercial design tool that supported multiple PLD families. The initial release was for the IBM PC and MS-DOS, but it was written in the C programming language so it could be ported to additional platforms.[8] Assisted Technology was acquired by Personal CAD Systems (P-CAD) in July 1985. In 1986, PCAD's schematic capture package could be used as a front end for CUPL.[9] CUPL was later acquired by Logical Devices and is now owned by Altium.[10] CUPL is currently available as an integrated development package for Microsoft Windows.[11]
Atmel releases for free WinCUPL (their own design software for all Atmel SPLDs and CPLDs). Atmel was acquired by Microchip in 2016.
ABEL
[edit]Data I/O Corporation released ABEL in April, 1984. The development team was Michael Holley, Mike Mraz, Gerrit Barrere, Walter Bright, Bjorn Freeman-Benson, Kyu Lee, David Pellerin, Mary Bailey, Daniel Burrier and Charles Olivier.
Data I/O spun off the ABEL product line into an electronic design automation company called Synario Design Systems and then sold Synario to MINC Inc in 1997. MINC was focused on developing FPGA development tools. The company closed its doors in 1998 and Xilinx acquired some of MINC's assets including the ABEL language and tool set. ABEL then became part of the Xilinx Webpack tool suite. Now Xilinx owns ABEL.
Device programmers
[edit]Popular device programmers included Data I/O Corporation's Model 60A Logic Programmer and Model 2900.
One of the first PAL programmers was the Structured Design SD20/24. They had the PALASM software built-in and only required a CRT terminal to enter the equations and view the fuse plots. After fusing, the outputs of the PAL could be verified if test vectors were entered in the source file.
Successors
[edit]After MMI succeeded with the 20-pin PAL parts introduced circa 1978, AMD introduced the 24-pin 22V10 PAL with additional features. After buying out MMI (circa 1987), AMD spun off a consolidated operation as Vantis, and that business was acquired by Lattice Semiconductor in 1999.[12]
Altera introduced the EP300 (first CMOS PAL) in 1983 and later moved into the FPGA business.
Lattice Semiconductor introduced the generic array logic (GAL) family in 1985, with functional equivalents of the "V" series PALs that used reprogrammable logic planes based on EEPROM (electrically eraseable programmable read-only memory) technology. National Semiconductor was a second source for GAL parts.

AMD introduced a similar family called PALCE. In general one GAL part is able to function as any of the similar family PAL devices. For example, the 16V8 GAL is able to replace the 16L8, 16H8, 16H6, 16H4, 16H2 and 16R8 PALs (and many others besides).
ICT (International CMOS Technology) introduced the PEEL 18CV8 in 1986. The 20-pin CMOS EEPROM part could be used in place of any of the registered-output bipolar PALs and used much less power.
Larger-scale programmable logic devices were introduced by Atmel, Lattice Semiconductor, and others. These devices extended the PAL architecture by including multiple logic planes and/or burying logic macrocells within the logic plane(s). The term complex programmable logic device (CPLD) was introduced to differentiate these devices from their PAL and GAL predecessors, which were then sometimes referred to as simple programmable logic devices (SPLDs).
Another large programmable logic device is the field-programmable gate array (FPGA). These are devices currently[when?] made by Intel (who acquired Altera) and Xilinx (who was acquired by AMD) and other semiconductor manufacturers.
See also
[edit]References
[edit]- ^ "Monolithic Memories announces: a revolution in logic design". Electronic Design. 26 (6). Rochelle, NJ: Hayden Publishing: 148B, 148C. March 18, 1978. Introductory advertisement on PAL (Programmable Array Logic).
- ^ Monolithic Memories, Inc (MMI) filed for a work mark on the term "PAL" for use in "Programmable Semiconductor Logic Circuits" on April 13, 1978. A registered trademark was granted on April 29, 1980, registration number 1134025. MMI's first use of the term PAL in commerce was on February 21, 1978. The trademark is currently held by Lattice Semiconductor Corporation of Hillsboro, Oregon. Source: United States Patent and Trademark Office online database.
- ^ Birkner, John (August 16, 1978). "Reduce random-logic complexity". Electronic Design. 26 (17). Rochelle, NJ: Hayden Publishing: 98–105.
- ^ TIBPAL 16R8-15C Data Sheet (PDF). Dallas TX: Texas Instruments. April 2000 [February 1984]. "These IMPACT circuits combine the latest Advanced Low-Power Schottky technology with proven titanium-tungsten fuses to provide reliable, high-performance substitutes for conventional TTL logic." TI was a second source vendor for the MMI PALS.
- ^ a b Birkner, John M.; Coli, Vincent J. (1983). PAL Programmable Array Logic Handbook (3rd ed.). Monolithic Memories, Inc.
- ^ AmPAL 22V10 Advanced Information. Sunnyvale CA: Advanced Micro Devices. June 1983. 04126A-PLP. Note: This is the data sheet published by AMD when the AmPAL 22V10 was introduced.
- ^ Alford, Roger C. (1989). Programmable Logic Designer's Guide. Howard W. Sams. pp. 14–15, 166–168. ISBN 0-672-22575-1.
In 1981, [Bob] Osann started Assisted Technology to develop PLD support tools. In September 1983 Assisted Technology released version 1.01a of its CUPL (Universal Compiler for Programmable Logic) PLD compiler, supporting 29 devices.
- ^ "CUPL - The Universal Language For Programmable Logic" (PDF) (Press release). San Jose, CA: Assisted Technology, Inc. 1983. Archived from the original (PDF) on 2013-10-29. Retrieved 2013-08-10. An early 1983 pre-release datasheet for CUPL.
- ^ "Personal CAD Systems". Computer World. 19 (29). Framingham, MA: CW Communications: 97. July 22, 1985. ISSN 0010-4841.
- ^ US Patent and Trademark Office. "CUPL" Computer software, namely, software used to develop and compile designs for programmable logic devices, and related user manuals distributed therewith. First used in 1983, status Active. Serial Number 76357007. Registration Number 2909461. Owner: Altium Limited, Australia 3 Minna Close, Belrose NSW2085, Australia.
- ^ "CUBEL ChipDesigner 5.0". Logical Devices. August 2013. Archived from the original on May 29, 2015.
- ^ "Lattice Semiconductor Acquires Vantis Corp. from AMD". EE Times. 26 April 1999. Retrieved May 13, 2015.
Further reading
[edit]- Books
- Programmable Logic Designer's Guide; Roger Alford; Sams Publishing; 1989; ISBN 0-672-22575-1. (archive)
- PAL Programmable Logic Handbook; 4ed; Monolithic Memories; 1985. (archive)
- Databooks
- Bipolar LSI 1984 Databook; 5ed; Monolithic Memories; 1984. (archive)
- Specifications
- Standard Data Transfer Format Between Data Preparation System and Programmable Logic Device Programmer; JEDEC Standard JESD3-C; JEDEC; June 1994.
Programmable Array Logic
View on GrokipediaOverview
Definition and Core Principles
Programmable Array Logic (PAL) is a family of semiconductor devices classified as programmable logic devices (PLDs) designed to implement user-defined combinational logic functions and limited sequential logic through the selective programming of fusible links within an integrated circuit. These devices enable designers to customize digital circuits by configuring interconnections in a predefined array structure, allowing for the realization of Boolean expressions without the need for full custom fabrication.[4][5] At the core of PAL operation is a two-level AND-OR logic structure, consisting of a programmable AND plane followed by a fixed OR plane, which inherently supports the implementation of logic functions in sum-of-products (SOP) form. In the AND plane, fusible links—typically thin metal fuses—are either left intact or blown open during programming to connect input signals (and their complements) to form product terms, with the programmable AND plane generating multiple such individual product terms that feed into the fixed OR plane; each OR gate sums a fixed number of these product terms (e.g., 2 to 8 per output) to produce each output, ensuring a structured yet flexible realization of combinational logic; for sequential applications, output macrocells may incorporate flip-flops driven by the OR outputs, with feedback paths to the AND plane for state-dependent logic.[4][6][5] This architecture offers key advantages in simplicity, speed, and cost-effectiveness for implementing small to medium-scale logic functions, particularly when compared to custom application-specific integrated circuits (ASICs), as PALs require no mask changes or lengthy fabrication cycles and support rapid prototyping in low- to medium-volume production. The fixed OR plane reduces complexity and silicon area relative to fully programmable alternatives, enhancing propagation delays (often in the nanosecond range) while maintaining predictability in timing analysis.[4][5] A basic block diagram of a PAL illustrates inputs buffered to provide true and complemented signals feeding into the programmable AND array, where fusible links define connections to multiple AND gates; the outputs of these AND gates connect via fixed wiring to OR gates in the OR array, whose results drive output buffers or optional flip-flops in macrocells, forming a compact representation of SOP logic with feedback for sequential elements.[6][4]Comparison to Related Devices
Programmable Array Logic (PAL) devices differ from Programmable Logic Arrays (PLAs) primarily in their internal structure, where PALs feature a programmable AND array followed by a fixed OR array, enabling simpler and faster implementation of sum-of-products logic at the cost of reduced flexibility compared to PLAs' fully programmable AND and OR arrays.[7][8] This fixed OR structure in PALs limits the sharing of product terms across outputs, making them more suitable for irregular or dedicated logic functions rather than the regular, highly optimized sum-of-products expressions that PLAs handle efficiently.[9] In terms of density and complexity, PALs typically support 10 to 20 product terms per output with fan-in limited to around 10-16 inputs, whereas PLAs can accommodate higher term counts and broader fan-in/fan-out due to their dual programmability, though this increases silicon area and propagation delay.[8][10] In contrast to PROMs, which employ a fixed AND array (essentially a decoder) paired with a programmable OR array for memory-like lookup table operations, PALs invert this by programming the AND array to generate specific product terms while using a predefined OR array for output summation, allowing PALs to implement custom combinational logic beyond simple table-based functions.[7][11] PROMs excel in applications requiring exact address-to-data mapping, such as code conversion or state decoding, but lack the AND-plane customization that makes PALs versatile for glue logic in digital systems.[9] Both are one-time programmable via fuse blowing, but PALs offer greater logic density for non-memory tasks, with typical devices handling 6-8 outputs versus PROMs' focus on wider bit storage.[8] PALs also contrast with Generic Array Logic (GAL) devices, which extend the PAL architecture by incorporating EEPROM-based reprogrammability and programmable output macrocells that include flip-flops and XOR gates for sequential logic support, addressing PALs' limitations in reusability and output configuration.[12][13] While PALs use one-time programming via fuses and have fixed output macrocell configurations that support limited sequential logic via flip-flops, GALs enable iterative design prototyping and more flexible registered outputs, though they maintain the fixed OR array for compatibility.[12][13] Functionally, GALs suit evolving designs in prototyping, whereas PALs target fixed-production glue logic with lower cost per unit.[12]| Device | AND Array | OR Array | Programmability | Typical Density (Terms/Output) | Primary Applications |
|---|---|---|---|---|---|
| PROM | Fixed | Programmable | One-time (fuses) | N/A (lookup-based) | Memory, decoding |
| PLA | Programmable | Programmable | One-time (fuses) | 20+ | Flexible SOP logic |
| PAL | Programmable | Fixed | One-time (fuses) | 10-20 | Irregular combinational logic |
| GAL | Programmable | Fixed | Reprogrammable (EEPROM) | 10-20 | Prototyping, sequential glue logic |
History
Invention and Early Development
The invention of Programmable Array Logic (PAL) emerged in the mid-1970s at Monolithic Memories Inc. (MMI), driven by the need to simplify and reduce the cost of programmable logic devices for implementing combinational and sequential functions in digital circuits. Engineers John M. Birkner and Hua-Thye Chua led the development, conceptualizing PAL as a more efficient alternative to existing programmable logic arrays (PLAs) and field programmable logic arrays (FPLAs), which suffered from high complexity due to dual programmable planes (AND and OR arrays) that increased chip size, manufacturing costs, and design overhead.[1][2] Early work began around 1976, focusing on prototypes that retained a single programmable AND array while fixing the connections to a dedicated OR array, thereby enabling user-defined logic with fewer resources and greater predictability for simpler applications like glue logic in systems. These prototypes addressed PLA limitations by prioritizing fixed OR plane wiring, which eliminated the need for programmable interconnections in that section and reduced the risk of routing congestion, while incorporating features like output registers and feedback paths to support state machines and arithmetic operations. Development emphasized compatibility with standard TTL logic levels to facilitate integration into existing bipolar-based designs.[1][14] The foundational concept was formalized in US Patent 4,124,899, titled "Programmable array logic circuit," filed on May 23, 1977, by Birkner and Chua and assigned to MMI. The patent detailed the PAL architecture as an evolution of FPLAs, highlighting its use of fusible links for one-time programming and bidirectional I/O pins for flexible pin assignments, which enhanced usability without compromising performance.[1][15] Initial challenges during prototyping centered on bipolar transistor technology constraints, including higher power dissipation compared to later CMOS approaches and the reliability of titanium-tungsten fusible links for field programming, which required precise control to avoid over-programming or incomplete isolation of unused paths. MMI's efforts also grappled with balancing user programmability—allowing engineers to customize devices on-site using simple programmers—against the era's limitations in testing and verification tools for complex logic verification. These hurdles were overcome through iterative bipolar fabrication processes, paving the way for PAL's viability as a practical tool for rapid prototyping.[1][16]Commercialization and Adoption
The first commercial Programmable Array Logic (PAL) device, the PAL16L8, was introduced by Monolithic Memories Inc. (MMI) in 1978 as a 20-pin bipolar integrated circuit designed for implementing custom combinational logic functions. This device marked a significant advancement over earlier programmable logic arrays by simplifying the architecture with a programmable AND array feeding a fixed OR array, enabling faster design cycles and reduced prototyping costs for engineers. MMI's PAL family quickly became the standard for small-scale custom logic, with the PAL16L8 serving as the foundational model that supported up to 8 outputs and 10 inputs, programmable via fusible links.[17] PAL devices saw rapid adoption throughout the late 1970s and 1980s, particularly in consumer electronics and computing applications where flexible, low-volume custom logic was essential. They were integrated into arcade video games for address decoding and control signal generation, such as in Konami's Scramble system, providing a cost-effective alternative to full custom ASICs. In early microcomputer peripherals and systems like the Memotech MTX series, PALs handled interfacing and timing functions, contributing to the proliferation of personal computing. Their use extended to calculators and other portable devices, where space and power constraints favored programmable solutions over discrete gates. The devices' ease of programming via tools like PALASM further accelerated their uptake, allowing designers to replace hundreds of discrete TTL chips with a single PAL.[18][19][17] The industry's embrace of PAL technology led to key standardization efforts by the Joint Electron Device Engineering Council (JEDEC), which established pinout conventions and the JESD3 fuse map format in the early 1980s to ensure compatibility across manufacturers and programmers. This standardization, detailed in JEDEC publications, promoted widespread interoperability and reduced design risks for users. Following MMI's acquisition by Advanced Micro Devices (AMD) in 1987 amid financial pressures in the semiconductor market, competition expanded as AMD and emerging players like Lattice Semiconductor produced second-source and enhanced PAL-compatible devices, further driving market penetration. A pivotal development in the 1980s was the introduction of CMOS-based PAL variants by MMI and Altera around 1983, which offered significantly lower power dissipation—often below 100 mW—compared to bipolar versions, enabling broader use in battery-operated consumer products and extending the technology's relevance into the mid-1980s.[20][21][22]Architecture
Programmable AND-OR Array
The programmable AND-OR array forms the core logic plane of Programmable Array Logic (PAL) devices, enabling the implementation of combinational logic functions through a structured interconnection of gates. It consists of an array of AND gates whose inputs are derived from the device's primary inputs and their logical complements, with connections established via fusible links that can be selectively opened during programming. These fusible links, typically implemented using bipolar fuse technology such as titanium-tungsten structures, allow each AND gate to form a product term by including or excluding specific input signals. The AND array is followed by a fixed OR array, where each output is the sum of a predetermined number of product terms from the AND gates, usually ranging from 2 to 8 terms per output in early devices.[23] In operation, programming the AND array involves blowing selected fusible links to configure the connections, thereby defining the product terms as minterms or more general products of inputs. For instance, an unblown fuse connects an input to an AND gate, contributing a logic 1 factor, while a blown fuse isolates it, effectively multiplying by 0 and excluding that input from the term. The fixed OR array then performs a logical OR on the enabled product terms to generate each output signal, supporting the standard sum-of-products (SOP) form for Boolean functions. This architecture allows PAL devices to realize any combinational logic function that fits within the array's dimensions, such as decoders or multiplexers, by mapping the desired SOP equations to the available AND and OR resources.[23] A representative example is the implementation of a 4-input XOR function, which computes the parity (odd number of high inputs) in SOP form: , where the minterms correspond to input combinations with an odd number of 1s (e.g., ). This requires 8 product terms, each formed by programming the AND array to select the appropriate literals from the 4 inputs and their complements, with the fixed OR array summing them for the single output; such a function fits within devices like the PAL16 series, which provide up to 7-8 terms per output. The SOP expansion ensures compatibility with the AND-OR structure, though more complex functions may require multiple macrocells if term counts exceed the limit.[23] Key limitations of the programmable AND-OR array include the absence of feedback paths within the logic plane, restricting it to combinational-only implementations without sequential elements, and a fixed number of inputs—typically 16 in the PAL16 family (10 dedicated plus 6 bidirectional)—which bounds the complexity of addressable functions. These constraints prioritize density and speed in custom logic but necessitate careful function partitioning for larger designs.[23]Output Logic and Macrocells
In Programmable Array Logic (PAL) devices, the fixed OR plane serves as the non-programmable component that sums selected product terms from the preceding AND array to generate sum-of-products expressions for each output. This array typically connects a fixed number of inputs—often 6 to 8 per OR gate, depending on the device family—to form the logical OR function, enabling efficient implementation of combinational logic without the complexity of a fully programmable OR structure.[24] For instance, in early devices like the PAL16R4, each of the four outputs receives up to 8 product terms via dedicated OR gates, while more advanced variants such as the PAL22V10 allow variable distribution averaging 12 terms across 10 outputs, with a range of 8 to 16 to optimize resource allocation.[24][25] The core of PAL output functionality resides in the macrocell, a versatile block associated with each output pin that integrates the OR gate output with configurable logic elements for enhanced flexibility. Each macrocell typically includes a D-type flip-flop for sequential operations, multiplexers for mode selection, and control fuses to define behavior, allowing outputs to be configured as combinational (bypassing the register for direct logic), registered (using the flip-flop for state storage), or in some variants latched for edge-triggered applications.[24][26] Polarity control is a key feature, programmable via dedicated fuses (e.g., S0 for active-high or active-low inversion) to accommodate various logic requirements without external inverters.[25] In the PAL22V10, for example, the macrocell's select lines (S1 and S0) enable four primary modes: registered active-low (S1=0, S0=0), registered active-high (S1=0, S0=1), combinational active-low (S1=1, S0=0), or combinational active-high (S1=1, S0=1), with feedback paths routed back to the AND array from either the OR output or the flip-flop Q-bar.[26] Output options in PAL macrocells often incorporate tri-state buffers to support bus-oriented interfacing, where the buffer can be enabled or disabled via a dedicated product term or control pin, placing the output in a high-impedance state when not active. This allows multiple devices to share data lines efficiently, as seen in the PAL16R8 where tri-state control is tied to pin 11 or individual terms, and in the PAL22V10 where each output has programmable enable logic.[24][25] The macrocell block generally comprises the OR gate feeding a multiplexer that selects between registered and combinational paths, followed by a polarity inverter and tri-state driver, with synchronous preset and asynchronous reset options for reliable initialization in sequential designs.[26] As a representative example, configuring a macrocell in a PAL22V10 for a simple counter output involves setting it to registered mode (S1=0) with active-high polarity (S0=1), where the OR gate sums product terms representing the next-state logic (e.g., Q_n+1 = Q_n XOR clock_enable), clocked by the global CLK input, and feedback from the flip-flop Q to the AND array enables state retention across cycles.[24] This setup, common in 4-bit counter implementations, leverages the macrocell's D flip-flop for toggle behavior while the tri-state buffer allows the output to interface with a shared bus when enabled.[25]Fabrication and Variants
Process Technologies
Programmable Array Logic (PAL) devices were initially fabricated using bipolar transistor-transistor logic (TTL) processes with Schottky diode clamping, introduced by Monolithic Memories Inc. (MMI) in 1978. This technology provided operation with propagation delays of 25-45 ns and clock frequencies up to 20 MHz in early variants like the 16L8, but it consumed significant power, with maximum dissipation of 700-1000 mW (140-210 mA at 5 V) due to the inherent characteristics of bipolar junctions.[27] Programming in these bipolar PALs relied on one-time programmable (OTP) fusible links made from nichrome, which were electrically blown using 10.5-11.5 V pulses over 10-50 µs to open specific connections in the AND-OR array. Later bipolar variants used titanium-tungsten links.[27] The industry began transitioning to complementary metal-oxide-semiconductor (CMOS) processes for PAL devices in 1983, starting with Altera's EP300 as the first CMOS PAL, driven by demands for reduced power consumption and increased logic density. Monolithic Memories Inc. (MMI) and Advanced Micro Devices (AMD), which acquired MMI in 1987, developed the PALCE series in the mid-1980s. CMOS PALs achieved power dissipation as low as 55 mA (275 mW) at 15 MHz operation, a substantial improvement over bipolar's higher quiescent currents, while enabling higher integration through more efficient transistor scaling and lower leakage.[28] Variants incorporated electrically erasable programmable read-only memory (EEPROM) cells for reprogrammability or laser etching for permanent links, allowing up to 100 erase/program cycles in EEPROM-based designs before endurance limits. Lattice Semiconductor also contributed with generic array logic (GAL) devices in 1985, offering EEPROM-based reprogrammable CMOS alternatives.[29] Process scaling for PALs evolved from approximately 5-micron feature sizes in early bipolar implementations to sub-micron nodes (e.g., 0.8 µm) by the early 1990s in CMOS variants, facilitated by advances in lithography and isolation techniques like IMOX-III slot isolation. This progression improved device speed to maximum clock frequencies (fMAX) of up to 50 MHz and supported standard pin counts of 20 to 28 pins in DIP and PLCC packages, balancing performance with compatibility for TTL/CMOS logic levels.[28] While OTP configurations remained dominant for cost-sensitive production, early reprogrammable CMOS attempts using UV-erasable or EEPROM methods laid groundwork for flexible prototyping, though limited by cycle counts and security features like design protection bits.[30]Device Families and Specifications
Programmable Array Logic (PAL) devices follow a standardized naming convention that encodes key architectural and performance characteristics. The typical format is PALnXm, where n represents the number of inputs to the AND array (often equal to the total pins minus dedicated outputs and power pins, such as 16 or 20), X indicates the output configuration (e.g., L for combinatorial active-low outputs, R for registered outputs with flip-flops, V for versatile macrocells supporting both combinational and registered modes, or X for XOR-capable outputs), and m denotes the number of outputs (commonly 4, 6, 8, or 10). Suffixes further specify speed (e.g., -10 for 10 ns propagation delay), power variants (e.g., H for half-power), temperature range (C for commercial 0°C to 70°C, M for military -55°C to 125°C), and package type (e.g., PC for plastic DIP). For instance, the PAL16R4 features 16 inputs, 4 registered outputs, and is available in variants like PAL16R4-15PC for 15 ns commercial operation.[31][29] Early PAL families were predominantly bipolar, leveraging TTL-compatible Schottky technology for high-speed applications. Representative bipolar devices include the PAL16L8 (16 inputs, 8 combinatorial outputs) and PAL20L8 (20 inputs, 8 combinatorial outputs), both introduced by Monolithic Memories Inc. in the late 1970s and widely adopted for replacing discrete TTL logic in microcomputer interfaces and decoders. These devices typically feature 20- or 24-pin packages with 8-10 bidirectional I/Os, fixed OR-array product terms per output (e.g., 7-10 terms), and pin-compatible footprints across manufacturers like AMD and TI to facilitate second-sourcing. Bipolar PALs offered propagation delays of 15-25 ns, enabling clock rates up to 20-40 MHz in sequential designs, though at higher power consumption levels. Early 1978 devices had slower 25-45 ns delays.[31][29] CMOS-based PAL families emerged in the 1980s to address power efficiency, with the PALCE (CMOS Electrically Erasable) series from AMD representing a key evolution. Devices like the PALCE22V10 (22 inputs, 10 versatile outputs) became industry standards, supporting in-system reprogrammability via EEPROM cells and maintaining pin compatibility with bipolar predecessors in 24-pin packages. These CMOS variants typically provide 8-12 outputs with programmable product terms (up to 12 per macrocell), propagation delays of 10-25 ns, and significantly lower power dissipation compared to bipolar counterparts. For example, the PALCE16V8 operates at 10-20 ns with standby currents as low as 100 µA in low-power modes.[29]| Family Type | Example Device | Pin Count | Outputs | Propagation Delay (ns) | Power Dissipation (mW, typ. at 5V) | Key Variants |
|---|---|---|---|---|---|---|
| Bipolar | PAL16L8 | 20 | 8 | 15-25 | 250-600 | High-speed (-7/-10), Low-power (-2), Commercial/Military |
| Bipolar | PAL20L8 | 24 | 8 | 15-25 | 300-600 | High-speed (-7), Low-power (L), Commercial/Military |
| CMOS | PALCE16V8 | 20 | 8 | 10-25 | 50-275 | Half-power (H), Low standby (Z), Commercial/Military |
| CMOS | PALCE22V10 | 24 | 10 | 10-25 | 100-300 | Versatile (V), Speed-optimized (-10), Commercial/Military |
Programming
Programming Mechanisms
Programmable Array Logic (PAL) devices primarily employ bipolar fuse technology for configuration, utilizing fusible links made from materials such as titanium-tungsten (Ti-W) or platinum-silicide (PtSi) in a Schottky TTL process.[31] These links are initially intact, representing a logic 1 connection, and are selectively blown to create open circuits (logic 0) by applying high-current pulses through the desired paths.[31] The blowing process involves raising the supply voltage (VCC) to 11.5–12 V and applying pulses of 10–50 µs duration at currents up to 50 mA on output pins, while other inputs are held at approximately 10 mA, ensuring precise targeting of individual fuses without affecting adjacent links.[31] In CMOS variants of PAL devices, such as the PALCE series from AMD and Lattice, traditional fusible links are replaced by electrically erasable (EE) CMOS technology using floating-gate cells. These allow reprogramming by applying a programming voltage (typically 11–15 V) to charge or discharge the floating gates, enabling multiple design iterations without hardware changes.[29] This approach leverages the CMOS process for lower power consumption and higher integration density compared to bipolar fuses, while supporting up to 100 reprogramming cycles with data retention over 20 years.[29] The programming algorithm follows a sequential addressing scheme, where the programmer device scans the AND-OR array cell by cell, applying the appropriate voltage and current pulses to blow specified fuses based on a predefined fuse map derived from the logic design.[31] Verification occurs immediately after programming through readback mechanisms, including fuse-for-fuse comparison against the expected map and functional testing with input vectors to confirm output states at specified voltages (e.g., 4.5 V and 5.5 V).[31] This process ensures 100% functionality testing, with fault coverage often exceeding 95% via stuck-at-zero and stuck-at-one simulations, though error rates are minimized by the proven reliability of the fuse technology, typically achieving yields over 98%.[31][29] Original bipolar PAL programming is inherently one-time and irreversible, as blown fuses cannot be reconnected, preventing reprogramming and enhancing design stability in production environments.[31] To protect proprietary logic, security features such as a dedicated "last fuse" or security bit can be blown post-verification, disabling readback and observability functions to blank the device and obscure the fuse pattern from unauthorized access.[31] This early blanking mechanism, activated by raising specific pins (e.g., pins 1 and 11) to VCC for 10 ms, ensures the programmed configuration remains confidential without affecting operation.[31]Software Tools and Languages
The development of software tools for Programmable Array Logic (PAL) devices began with the introduction of specialized languages that allowed designers to specify logic functions in a structured, text-based format rather than manual fuse mapping. These tools emerged in the late 1970s and 1980s to streamline the design process for combinational and sequential logic, converting high-level descriptions into device-specific programming files. Key languages were developed by major PAL manufacturers and programmer vendors, focusing on Boolean equation entry to generate fuse maps compatible with hardware programmers.[32] PALASM, introduced in 1978 by Monolithic Memories Inc. (MMI), was the first assembler-like language for PAL design, enabling users to define Boolean equations directly for pin assignments and logic implementation. It supported syntax for pin declarations via aCHIP statement (e.g., CHIP <name> <type> <pin list>), where pins were ordered from least significant bit and assigned symbolic names starting with letters. Equations used sum-of-products notation, such as <signal> = <product term> + ... for combinational outputs (e.g., A = /B*/C) or <signal> := <product term> for registered outputs, with operators like * for AND, + for OR, and / for NOT. This language facilitated logic minimization and JEDEC file generation for programming, marking a shift from schematic-based to programmatic design entry.[32]
In the early 1980s, CUPL (Compiler for User Programmable Logic), developed by Logical Devices, Inc. (LDI), expanded on these capabilities by compiling truth tables, Boolean equations, and state machine descriptions into PAL-compatible outputs, with built-in support for simulation. Pin assignments used PIN statements (e.g., PIN pin_n = [!]var), allowing polarity specification, while logic was expressed via equations like var = exp; (e.g., Y = A & B;) or truth tables in TABLE format (e.g., TABLE input => output { 0 => 00; }). State machines employed SEQUENCE blocks with PRESENT and NEXT clauses (e.g., NEXT S {i};), and extensions like .D for D flip-flops or .OE for output enables handled sequential and control logic. CUPL's CSIM simulator verified designs using test vectors, reducing errors before fuse map synthesis.[33]
ABEL (Advanced Boolean Expression Language), released in 1983 by Data I/O Corporation, introduced more advanced features for hierarchical designs and timing specifications, building on earlier languages to support complex PAL architectures. It allowed modular equation sections, macros, and library functions, with syntax for Boolean equations like MUX = A * SELECT + B * /SELECT and state diagrams using conditional flows (e.g., IF /HOLD THEN SECOND ELSE FIRST). Truth tables aided verification, and timing constraints were specified via state diagrams, enabling synthesis and reduction of equations while considering input behaviors—unlike the more restrictive sum-of-products focus in PALASM. ABEL's hierarchical approach facilitated reuse in larger designs, outputting fuse patterns for various logic families.[34]
The typical workflow for PAL design using these tools involved design entry in the chosen language to create a source file (e.g., .PDS for PALASM or .PLD for CUPL), followed by compilation to validate syntax and synthesize a minimized fuse map in JEDEC format. Simulation tools like SIM (in PALASM) or CSIM (in CUPL) then verified functionality against test vectors, integrating optionally with schematic capture for visual entry. The resulting JEDEC file was loaded into a hardware programmer for device configuration, ensuring reliable implementation of logic functions.[4]
