Programmable Logic Devices (PLDs) in Digital Electronics | All you need To know

Programmable Logic Devices (PLDs) Lesson Objectives: In this lesson you will be introduced to some types of Programmable Logic Devices (PLDs): ¾ PROM, PAL, PLA, CPLDs, FPGAs, etc. ¾ How to implement digital circuits using PLAs and PALs. 

Introduction: An IC that contains large numbers of gates, flip-flops, etc. that can be configured by the user to perform different functions is called a Programmable Logic Device (PLD). The internal logic gates and/or connections of PLDs can be changed/configured by a programming process. One of the simplest programming technologies is to use fuses. In the original state of the device, all the fuses are intact. Programming the device involves blowing those fuses along the paths that must be removed in order to obtain the particular configuration of the desired logic function. PLDs are typically built with an array of AND gates (AND-array) and an array of OR gates (OR-array).

Advantages of PLDs: Problems of using standard ICs: Problems of using standard ICs in logic design are that they require hundreds or thousands of these ICs, considerable amount of circuit board space, a great deal of time and cost in inserting, soldering, and testing. Also require keeping a significant inventory of ICs. Advantages of using PLDs: Advantages of using PLDs are less board space, faster, lower power requirements (i.e., smaller power supplies), less costly assembly processes, higher reliability (fewer ICs and circuit connections means easier troubleshooting), and availability of design software. There are three fundamental types of standard PLDs: PROM, PAL, and PLA. A fourth type of PLD, which is discussed later, is the Complex Programmable Logic Device (CPLD), e.g., Field Programmable Gate Array (FPGA). A typical PLD may have hundreds to millions of gates. In order to show the internal logic diagram for such technologies in a concise form, it is necessary to have special symbols for array logic. Figure shows the conventional and array logic symbols for a multiple input AND and a multiple input OR gate.

Three Fundamental Types of PLDs: The three fundamental types of PLDs differ in the placement of programmable connections in the AND-OR arrays. Figure shows the locations of the programmable connections for the three types.

¾ The PROM (Programmable Read Only Memory) has a fixed AND array (constructed as a decoder) and programmable connections for the output OR gates array. The PROM implements Boolean functions in sum-of-minterms form. ¾ The PAL (Programmable Array Logic) device has a programmable AND array and fixed connections for the OR array. ¾ The PLA (Programmable Logic Array) has programmable connections for both AND and OR arrays. So it is the most flexible type of PLD. 

The ROM (Read Only Memory) or PROM (Programmable Read Only Memory): The input lines to the AND array are hard-wired and the output lines to the OR array are programmable. Each AND gate generates one of the possible AND products (i.e., minterms). In the previous lesson, you have learnt how to implement a digital circuit using ROM. 

The PLA (Programmable Logic Array): In PLAs, instead of using a decoder as in PROMs, a number (k) of AND gates is used where k < 2n , (n is the number of inputs). Each of the AND gates can be programmed to generate a product term of the input variables and does not generate all the minterms as in the ROM. The AND and OR gates inside the PLA are initially fabricated with the links (fuses) among them. 

Programmable Logic Device 

The specific Boolean functions are implemented in sum of products form by opening appropriate links and leaving the desired connections. A block diagram of the PLA is shown in the figure. It consists of n inputs, m outputs, and k product terms.  

The product terms constitute a group of k AND gates each of 2n inputs. Links are inserted between all n inputs and their complement values to each of the AND gates. Links are also provided between the outputs of the AND gates and the inputs of the OR gates. Since PLA has m-outputs, the number of OR gates is m. 

The output of each OR gate goes to an XOR gate, where the other input has two sets of links, one connected to logic 0 and other to logic 1. It allows the output function to be generated either in the true form or in the complement form. The output is inverted when the XOR input is connected to 1 (since X ⊕ 1 = X/ ). The output does not change when the XOR input is connected to 0 (since X ⊕ 0 = X). Thus, the total number of programmable links is 2n x k + k x m + 2m. The size of the PLA is specified by the number of inputs (n), the number of product terms (k), and the number of outputs (m), (the number of sum terms is equal to the number of outputs). 

Field Programmable Gate Arrays (FPGAs): 
The FPGA consists of 3 main structures: 
1. Programmable logic structure, 
2. Programmable routing structure, and 
3. Programmable Input/Output (I/O). 

1. Programmable logic structure The programmable logic structure FPGA consists of a 2-dimensional array of configurable logic blocks (CLBs). Each CLB can be configured (programmed) to implement any Boolean function of its input variables. Typically CLBs have between 4-6 input variables. Functions of larger number of variables are implemented using more than one CLB. In addition, each CLB typically contains 1 or 2 FFs to allow implementation of sequential logic. Large designs are partitioned and mapped to a number of CLBs with each CLB configured (programmed) to perform a particular function. These CLBs are then connected together to fully implement the target design. Connecting the CLBs is done using the FPGA programmable routing structure. 

2. Programmable routing structure To allow for flexible interconnection of CLBs, FPGAs have 3 programmable routing resources: 1. Vertical and horizontal routing channels which consist of different length wires that can be connected together if needed. These channel run vertically and horizontally between columns and rows of CLBs as shown in the Figure. 2. Connection boxes, which are a set of programmable links that can connect input and output pins of the CLBs to wires of the vertical or the horizontal routing channels. 3. Switch boxes, located at the intersection of the vertical and horizontal channels. These are a set of programmable links that can connect wire segments in the horizontal and vertical channels.

3. Programmable I/O These are mainly buffers that can be configured either as input buffers, output buffers or input/output buffers. They allow the pins of the FPGA chip to function either as input pins, output pins or input/output pins. 

Random Access Memory

A memory unit is a collection of storage cells together with associated circuits needed to transfer information in and out of the device. 
Memory cells can be accessed for information transfer to or from any desired random location and hence the name randomaccess memory, abbreviated RAM. 
A memory unit stores binary information in groups of bits calledwords. 1 byte = 8 bits 1 word = 2 bytes. 
The communication between a memory and its environment is achieved data input and output lines, through address selection lines, and control lines that specify the direction of transfer. 

Content of amemory 
 Each word in memory is an identification called assigned number, starting from 0 an address, up to 2 k -1, where k is the number of addresslines. 
 The number of words in a memory with one of the letters K=210, M=220, or G=230. 64K = 2 16 2M = 2 21 4G = 2 32


• Computers almost always contain a small amount of read-only memory that holds instructions for starting up the computer.Unlike RAM, ROM cannot be written to. 
• Because data stored in ROM cannot be modified (at least not very quickly or easily), it is mainly used to distribute firmware (software that is very closely tied to specific hardware, and unlikely to require frequent updates). 
• It is non-volatile which means once you turn off the computerthe information is stillthere. 

Post a Comment



Contact Form


Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget