Define the following acronyms as they apply to digital logic circuits:
Followup question: now, comment on what each of these acronyms actually means, going beyond a mere recitation of the definition.
There is a veritable “alphabet soup” of acronyms in the world of programmable digital logic, and these are just a few. Going into the precise meaning of each acronym may not be the best use of time in answering this question, as there is little context in which to understand the meanings. Please do not attempt to do what so many technical courses do, and that is stuff students’ heads with acronym definitions to the neglect of actually understanding the various technologies. This question is intended only as an opening to an indepth discussion of programmable logic, and not an end in itself!
Why would anyone use programmable logic devices (PLD, PAL, PLA, CPLD, FPGA, etc.) in place of traditional “hardwired” logic such as NAND, NOR, AND, and OR gates? Are there any applications where hardwired logic would do a better job than a programmable device?
I’ll let you do the research on this one!
Ask your students to share where they found their information on programmable devices, and how they determined the advantages and disadvantages of this technology compared to hardwired logic.
Perhaps the simplest form of programmable logic is a PROM integrated circuit, programmed with a specific truth table. Take for instance this example of a 256 × 1 PROM:

Suppose we wished to program this memory IC to act as a digital comparator, outputting a logical “high” state only when two fourbit binary numbers are equal:

Describe what the truth table would look like for the data we must program into this memory chip. How many rows would the truth table have? Could you briefly describe the content pattern of the data without having to complete the entire truth table?
Here’s a clue: the truth table would only have sixteen rows with a “1” output. All other rows will be programmed with “0” outputs!
This is an example of a lookup table, whereby arbitrary data programmed into a memory circuit fulfills a logic function. If time permits, discuss with your students what other sorts of useful logic functions might be programmed into a PROM chip such as this.
Microcontrollers are singlechip microcomputers, containing a microprocessor core, memory, I/O control, and other associated components necessary to make the system selfcontained. Simply put, a microcontroller follows sequential instructions that someone enters into its memory.
Programmable logic devices, however, are fundamentally different from microcontrollers both in how they are programmed and how they function after being programmed. Explain what some of these differences are.
Unlike microcontrollers, programmable logic devices are not (necessarily) sequential devices: the latter act as a collection of logic gates and other “primitive” logic elements to directly implement certain logic functions.
Discuss with your students how programmable logic devices are more primitive and direct devices than microcontrollers, which are more abstract by comparison. Perhaps the easiest distinction to understand is in terms of gate connections. In a microcontroller, the connections between its constituent gates are fixed; only the software (bits stored in memory) ever change. In a programmable logic device, it is as though you are directly forging connections between its constituent gates (as many or as few as needed), creating a hardwired circuit by specifying connections in a “hardware description language” (HDL).
The simplest types of programmable logic ICs are called PLDs (Programmable Logic Devices), PALs (Programmable Array Logic), PLAs (Programmable Logic Array), and GALs (Generic Array Logic). While each acronym represents a slightly different internal design architecture, these devices share a common feature of using inverters, AND gates, and OR gates to implement any desired combinational logic function.
Explain how it is possible to generate any arbitrary logic function with just these gate types (inverter, AND, OR), without any others. What principle or convention of Boolean algebra is used by these devices to do this?
With a sufficient number of AND, OR, and inverter gates, any SOP or POS expression may be generated.
This question requires students to review the principles of how SOP and POS expressions relate to truth tables, and in doing so explain how any arbitrary truth table may be fulfilled.
Some programmable logic devices (and PROM memory devices as well) use tiny fuses which are intentionally “blown” in specific patterns to represent the desired program. Programming a device by blowing tiny fuses inside of it carries certain advantages and disadvantages  describe what some of these are.
Certainly, the stored program will be nonvolatile, but it will also be readonly. This is why fuseprogrammed devices are sometimes called ÖTP”. (I’ll let you research what that acronym means.)
It is interesting to mention that some programmable devices (Texas Instruments’ TIBPAL series, for example) are built with a “security fuse” inside which prevents anyone from reverseengineering a programmed chip!
A common term used to describe the internal workings of a programmable logic device is a macrocell. What, exactly, is a macrocell?
A macrocell is a collection of logic gates and a flipflop, lumped together in one unit. PLDs usually have many macrocells, which may be interconnected to form a variety of synchronous logic functions.
Ask your students to show you where they found their information, and if they were able to determine how many macrocells are in a typical PLD.
Most microcomputers can only perform one task (operation) at a time. They achieve the illusion of “multitasking” by alternately devoting time to one of several tasks in a rapid fashion  a sort of multiplexed computation. Most programmable logic devices, on the other hand, are easily able to perform multiple logic operations in a truly simultaneous manner. Explain how this is possible, whereas a microprocessor can only do one thing at a time.
The secret is in the programming: programmable logic devices are literally “wired” by the programs you write for them, with thousands of logic elements available to be connected in almost any way you desire. Microprocessors, on the other hand, have fixed wiring that responds to sequences of steps, the program merely specifying those sequence of those steps.
Understanding the distinction between microcontrollers and programmable logic devices can be difficult, especially if one has limited experience with both (as most students do). The purpose of this question is to shed some more light on this often misunderstood subject, while simultaneously highlighting an important feature of programmable logic: true simultaneity.
The fundamental principle I want students to see from these analogies is that microcontrollers and microprocessors are reprogrammed by changing a sequence of fixed operations, while programmable logic systems are reprogrammed by changing associations between fixed elements.
Verilog and VHDL are two popular examples of a hardware description language, used when working with programmable logic. Explain the purpose of such a “language.” What does it mean for a technician or engineer to “speak” this language, and how is it “spoken” to an actual programmable chip?
A hardware description language (HDL) is a textual convention for specifying the interconnections of a programmable logic device. Text files are written by a human programmer, then “compiled” into a form that the programmable logic device can directly accept and use.
If time permits, you may want to compare and contrast fullyfeatured languages such as Verilog and VHDL with more primitive hardware description languages such as ABEL. In either case, though, files written in an HDL are intended to describe the interconnections of available logic elements inside a programmable logic device.
The similarities and differences between microcontroller (microprocessor) systems and programmable logic devices may be illuminated by analogy. Read the following scenarios where two different solutions are employed to solve common problems. For each scenario, determine which solution is analogous to a microcontroller and which solution is analogous to a programmable logic device:
First scenario: broadlyskilled employees = microcontroller; specialtyskilled employees = programmable logic.
Second scenario: tape reader = microcontroller; relinking keys to hammers = programmable logic.
Understanding the distinction between microcontrollers and programmable logic devices can be difficult, especially if one has limited experience with both (as most students do). Questions such as this, which ask students to examine opposing analogies, teaches some of the distinguishing principles without becoming mired in technical detail.
The fundamental principle I want students to see from these analogies is that microcontrollers and microprocessors are reprogrammed by changing a sequence of fixed operations, while programmable logic systems are reprogrammed by changing associations between fixed elements.
Published under the terms and conditions of the Creative Commons Attribution License
by Robert Keim
In Partnership with STMicroelectronics