# Programmable Logic Technology

## Digital Circuits

• #### Question 1

Define the following acronyms as they apply to digital logic circuits:

ASIC
PAL
PLA
PLD
CPLD
FPGA
• #### Question 2

Why would anyone use programmable logic devices (PLD, PAL, PLA, CPLD, FPGA, etc.) in place of traditional “hard-wired” logic such as NAND, NOR, AND, and OR gates? Are there any applications where hard-wired logic would do a better job than a programmable device?

• #### Question 3

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 four-bit 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?

• #### Question 4

Microcontrollers are single-chip microcomputers, containing a microprocessor core, memory, I/O control, and other associated components necessary to make the system self-contained. 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.

• #### Question 5

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?

• #### Question 6

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.

• #### Question 7

A common term used to describe the internal workings of a programmable logic device is a macrocell. What, exactly, is a macrocell?

• #### Question 8

Most microcomputers can only perform one task (operation) at a time. They achieve the illusion of “multi-tasking” 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.

• #### Question 9

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?

• #### Question 10

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:

A business manager must make a hiring decision: either hire several specialty-skilled employees to perform various tasks (one task per person), or hire a few broadly-skilled people who can be given new instructions and/or training to switch between different tasks as needed.
Two tinkerers are modifying pianos to play short songs automatically (with no human operator). The first decides to build a “tape reader” device similar to that of an old mechanical player-piano, where a paper scroll bearing punched holes “tells” the piano keys when to strike and in what order. The second decides to build a much simpler sequencing mechanism, where each key on the piano from left to right is struck in sequence, the proper ordering of notes in the song being arranged by re-connecting the keys to different hammers inside the piano.