ECE 3110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices Programmable Logic Devices
Programmable Logic Devices (PLDs) PLDs can implement wide functions efficiently (functions with many input variables). PLDs can implement multiple functions of different variables efficiently. The logic in PLDs is programmable -- it can be defined by the user and programmed on the desktop Most PLDs can be erased and reprogrammed many times.
PLD types There are MANY different types of PLDs. Densities ranges from from 10’s of gates to 100’s of thousands of gates. We will look at PLAs (Programmable Logic Arrays) and PALs (Programmable Array Logic devices).
Programmable Logic Arrays (PLAs) Any combinational logic function can be realized as a sum of products. Idea: Build a large AND-OR array with lots of inputs and product terms, and programmable connections. n variables AND gates have 2n inputs -- true and complement of each variable. m outputs, driven by large OR gates Programmable connection between Each AND gate to any output OR gate. p AND gates (p<<2 n )
Example: 4x3 PLA, 6 product terms
Compact representation Actually, closer to physical layout (“wired logic”).
Some product terms
PLA Electrical Design See Section wired-AND logic
Programmable Array Logic (PALs) PLAs Both AND and OR arrays are programmable Product terms can be shared by OR gates PALs ==> fixed OR array Each AND gate is permanently connected to a certain OR gate. AND arrays are programmable, while OR arrays are not. Product terms cannot be shared by OR gates
10 primary inputs 8 outputs, with 7 ANDs per output 1 AND for 3-state enable 6 outputs available as inputs more inputs, at expense of outputs two-pass logic, helper terms Note inversion on outputs output is complement of sum-of-products newer PALs have selectable inversion
DJ P Understanding the Diagram Horizontal lines indicate a product term. Vertical lines provide True and Complemented forms of external inputs. Even though a product term looks like it has only one input, it actually has 2 * N inputs, where N is the number of external inputs.
Product Term This looks like an AND gate with one input. Is actually: B B’A A’ C C’ D D’I I’ J J’ E E’ F F’ K K’GG’H H’ B B’ A A’ C C’ H’ H Only drawn with a single line to save space.
DJ P Fuse Points A cross over of a Vertical input line and a horizontal product term line is a FUSE LOCATION. When the PAL is in its blank or erased state, all FUSES are connected. This means that each product term implements the equation: ( A A’ B B’ C C’……. KK’) will be ‘0’! This means that the output will be high!
DJ P PAL Programming To program, will want to BLOW most of the fuses (break the vertical/horizontal crossover connection). To indicate a logic function, will use a ‘ X ‘ over a fuse that I want to KEEP INTACT. Will mark Intact fuse location. When a fuse is blown, that product term input acts as a ‘1’ so that the input no longer effects the product term.
DJ P P’ = D + J’ When implementing an equation, sometimes will not want to use all available product terms. If ALL fuses along product term are left intact, then product term value will be ‘0’ and will not affect equation. Mark unused PT’s by placing an X over them. Note that P’ must be implemented!
Example Product Term AC’H’ The connections will be: B B’A A’ C C’ D D’I I’ J J’ E E’ F F’ K K’GG’H H’ 1 1 A 1 1 C’ H’ 1 Fuse blown Fuse intact Fuse blown Fuse intact Fuse blown Fuse intact Actually, fuses are not ‘blown’ in erasable PLDs - the connection is broken in a non-destructive way for erasable PLDs.
Another Example A B C D G H I J P P’ = A’BGH’ + CD’ + HIJ + BG’H
10 primary inputs 8 outputs, with 7 ANDs per output 1 AND for 3-state enable 6 outputs available as inputs more inputs, at expense of outputs two-pass logic, helper terms Note inversion on outputs output is complement of sum-of-products newer PALs have selectable inversion