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) 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 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 Assisted Technology released CUPL (
Compiler for
Universal
Programmable
Logic) in September 1983. 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. 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. CUPL was later acquired by Logical Devices and is now owned by
Altium. CUPL is currently available as an integrated development package for Microsoft Windows.
Atmel releases for free WinCUPL (their own design software for all Atmel SPLDs and CPLDs). Atmel was acquired by Microchip in 2016.
ABEL 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 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==