07.01.2014 Views

Lec14

Lec14

Lec14

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Lecture 14:<br />

Programmable Logic Devices<br />

Objectives:<br />

• Identify programmable logic devices and understand their usage.<br />

• Understand the structure and size of the ROM, PLA and PAL<br />

• Implement Boolean functions using ROM’s, PLAs and PALs<br />

• Recognize the array logic graphic symbol and appreciate its usage in large<br />

programmable logic devices<br />

Introduction<br />

Integrated circuit categories are: SSI, MSI, LSI, and VLSI. MSI devices have a<br />

complexity of approximately 10 to 1000 ICs in a single package. Several<br />

combinational circuits are available in MSI form, e.g. adders, subtractors, decoders,<br />

encoders, multiplexers,… etc.<br />

Programmable Logic Devices are IC's with internal logic gates (arrays of AND gates<br />

and OR gates) connected through fuses to establish a pattern of connections. A<br />

typical PLD may have hundreds to millions of gates interconnected thru hundreds to<br />

thousands of internal paths.<br />

Three types of PLD's are studied here:<br />

a. Programmable Read Only Memory (PROM)<br />

b. Programmable Logic Array (PLA)<br />

c. Programmable Array Logic<br />

Page 1


Memory<br />

A memory unit is a device to which binary information is transferred for storage and<br />

from which information is retrieved when needed for processing.<br />

(a) RAM → random -access memory with both read & write operations.<br />

Examples are: Static RAM (SRAM), Dynamic RAM (DRAM).<br />

(b) ROM → read-only memory with read operation only. Examples are:<br />

PROM, EPROM, EEPROM.<br />

A memory stores information in groups of bits called words. A memory word is a<br />

group of 1s and 0s. A group of 8 bits is called a byte. Most computer memories use<br />

words that are multiple of byte. The capacity (size) of memory is usually stated as<br />

total number of bytes that the unit can store.<br />

2 10 =1K, 2 20 =1M, 1G=2 30 ……..2 16 =...K; 2 21 =...M; 2 32 =….G.<br />

“the number of address lines k is independent of the number of bits in each word”.<br />

Read Only Memory (ROM)<br />

A ROM is considered a programmable device where binary information can be stored<br />

and kept even when power supply is switched off. A ROM consists of a decoder and<br />

array of fused (programmed) OR gates. This is shown in the following Figure.<br />

Page 2


The required paths in ROM may be programmed in different ways: 1-mask<br />

programming ROM; 2-PROM; 3-EPROM (ultraviolet light); EEPROM (like flash<br />

memory)<br />

Fig. Internal logic of a 32 X 8 ROM<br />

The ROM truth table shows the pattern of the fuses as programmed inside the ROM.<br />

The following truth table is an example for the 32 X 8 ROM.<br />

Page 3


A cross indicates a connection (1), and no cross indicates (0) as shown in the<br />

following diagram.<br />

Example<br />

Design a combinational circuit using ROM that accepts a three bit number and<br />

generates an output equal to the square of the input number.<br />

All what we do is to generate a truth table for the required circuit. Most times this is<br />

all what is needed. On some occasions, we may be able to reduce the number of<br />

outputs required from the ROM.<br />

For this circuit we require six outputs, because the largest output is the binary<br />

equivalent of 7 2 = 49 →110001 2<br />

The Truth Table<br />

Page 4


Fig. PLA with three inputs, four product terms, and two outputs<br />

Combinational Circuit Implementation with PLA<br />

When implementing combinational circuit using PLA, we must reduce the number of<br />

product terms. Number of literals in each product term is not important because all<br />

variables and their complements are available.<br />

In order to reduce the number of product terms, we have to simplify the functions<br />

and their complements in order to find the combination that result in the minimum<br />

number of product terms.<br />

The size of the PLA is determined by the number of inputs, number of product terms<br />

and the number of outputs (Ex. 16x48x8).<br />

Example<br />

Implement the following two Boolean functions using a PLA.<br />

First, we simplify the functions and their complements<br />

Page 6


and<br />

and<br />

( F, F ), ( F′ , F ), ( F, F′ ), ( F′ , F′<br />

)<br />

Considering the four possible pairs 1 2 1 2 1 2 1 2<br />

The minimum number of product terms is (4) and is obtained if we implement F 1 in<br />

complement form and F2 in true form. The following PLA programming table is used.<br />

Programmable Array Logic (PAL)<br />

PAL has a fixed array of OR gates and programmable array of AND gates. It is easier<br />

to program than the PLA but is less flexible. It is suitable to implement a number of<br />

Boolean functions which have no or a few overlapping product terms.<br />

When we implement Boolean functions with PAL, we must simplify the functions to<br />

fit the sections of the PAL. A product term cannot be shared among two or more OR<br />

gates. If the function cannot fit in one section, then we may use two sections to<br />

implement the function.<br />

A typical PAL integrated circuit may have 8 inputs, 8 outputs, and 8 sections, each<br />

consisting of an 8-wide AND-OR array. The output terminals are sometimes driven by<br />

three-state buffers or inverters.<br />

The logic diagram of a typical PAL is shown in the following Figure.<br />

Page 7


3 programmable<br />

AND gates in each<br />

section and 1 OR<br />

gate<br />

Fig: PAL with 4 inputs, 4 outputs, and a 3-wide AND-OR structure.<br />

Example<br />

Implement the following Boolean functions using a PAL that has four sections with<br />

three product terms each.<br />

Page 8


Simplifying the functions results in the following functions:<br />

The PAL programming table is given below:<br />

Page 9


Page 10


FPGA<br />

Field-programmable gate array (FPGA) is a complex PAL that is configured by<br />

downloading a stream of bits into the device to configure transmission gates to<br />

establish the internal connectivity required by specified logic function (combinational<br />

or sequential).<br />

FPGA is a VLSI circuit that can be programmed at the user’s location. A typical FPGA<br />

consists of an array of hundreds or thousands of configurable logic blocks (CLBs)<br />

surrounded by programmable input and output block (IOB).<br />

A typical CLB consists of look-up tables (LUT), multiplexers, gates and flip-flops.<br />

Figure below shows a portion of the structure of an FPGA.<br />

CLB<br />

Logic module<br />

CLB<br />

Logic module<br />

Local<br />

interconnect<br />

Logic module<br />

Logic module<br />

Local<br />

interconnect<br />

Logic module<br />

Logic module<br />

Logic module<br />

Logic module<br />

Global column<br />

interconnect<br />

Global row<br />

interconnect<br />

Conclusion<br />

The design with PLD, CPLD or FPGA requires extensive computer-aided design (CAD)<br />

tools to facilitate the synthesis procedure. Among the tools that are available are<br />

schematic entry packages and HDLs such as ABEL, VHDL and Verilog.<br />

Page 11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!