Programmable Logic Device (PLD)

Besides memory devices and microprocessors, logic devices make up one of the essential classes of devices utilized in digital computing systems. Memory devices like ROM & RAM are used for information storage such as software instructions of a program, or the contents of a database and microprocessors execute software instructions to perform a variety of operations. Logic devices execute almost every other task that the system must perform, including device-to-device interfacing, data timing, control and display operations and so forth. Programmable logic device is undefined at the time of its fabrication. This device is programmed by the user to perform a range of functions depending upon the logic capacity and other features offered by the device.

Fixed Logic vs. Programmable Logic

There are two categories of logic devices, namely fixed logic devices and programmable logic devices. While a fixed logic device such as a logic gate or a multiplexer or a flip-flop performs a given function that is known at the time of device manufacture, a programmable logic device can be configured by the user to perform a large variety of logic functions.

In terms of the internal schematic structure of the two types of devices, the circuits or building blocks and their interconnections in a fixed logic device are permanent and cannot be altered after the device is manufactured. In case of programmable logic devices, users can change the circuit as often as they want until the design operates to their satisfaction i.e. PLDs offer the users much more flexibility during the design cycle. PLD-based design also require less time from design cycle to production run as compared fixed logic devices.  

Fixed logic devices have an edge for large-volume applications as they can be mass produced more economically. They are also preferred in applications that need the highest performance level.

Features of a Programmable Logic Device

A programmable logic device offers to the user a wide range of logic capacity in terms of digital blocks, which can configured by the user to perform the intended function or set of functions. This configuration can be modified or altered any number of times by the user by reprogramming the device.

Figure below illustrates the logic diagram of a simple programmable device:

Programmable logic circuit
Fig: Programmable logic circuit

The PLD above has an array of four six input AND gates at the input and a four-input OR gate at the output. Each AND gate can handle three variables and hence can produce a product term of three variables. The three variables (A, B and C) or their complements can be programmed to appear at the inputs of any of the four AND gates through fusible links called anti-fuses. This means that each AND gate can produce the desired three-variable product term. The anti-fuse in this case performs a function that is opposite to that performed by a conventional electrical fuse. A fuse normally has a low resistance and permanently breaks an electrically conducting path when current exceeds a certain limiting value. In the case of anti-fuse, the initial resistance is very high and it is designed to create a low-resistance electrically conducting path when voltage across it exceeds a certain level. Thus, this circuit can be programmed to generate any three-variable sum-of-products Boolean function having four minterms by activating the desired fusible links. For instance, the circuit can be programmed to produce the sum output resulting from the addition of three bits (sum output in the case of a full udder) or to produce difference outputs resulting from subtraction of two bits with a borrow-in.

We can picture the logic circuit shown in the figure above has a programmable AND array at the input and a fixed OR gate at the output. This is actually the architecture of programmable logic devices referred to as programmable array logic (PAL). Practical PAL devices have a much larger number of programmable AND gates and fixed OR gates for boosted logic capacity and performance capability. PLDs are used in building reconfigurable digital circuits.

Please follow us and share:

Author: John Mulindi

John Mulindi has a background in a technical field and he writes on topics ranging from automation, computer systems, embedded systems, mechatronics to measurement and control.