Page 331 - Engineering Digital Design
P. 331

302                              CHAPTER 7 / PROGRAMMABLE LOGIC DEVICES


                    The comparison here is 48 p-terms and 48 ORing connections for the unprogrammed PLA
                    vs 65,536 minterms and 65,536 ORing connections for the unprogrammed ROM, a vast
                    difference in hardware. Typically, commercial PLAs have inputs ranging in number from
                    8 to 16, with 20 to 60 addressable p-terms and up to 10 outputs that may or may not
                    have controlled polarity by using XOR gates on the output lines (see Subsection 3.9.6).
                    PLA 1C chips of most any n x p x m dimensions can be manufactured to user specifi-
                    cations.
                       PLAs, like ROMs, are constructed of interconnecting arrays of switching elements that
                    perform the AND and OR operations. Members of the PLA family fall generally into two
                    classes:


                       • Programmable logic arrays (PLAs) — Mask programmable AND and OR stages
                       • Field programmable logic arrays (FPLAs) — One-time programmable AND
                        and OR stages

                    Thus, PLAs are programmed during fabrication in a manner similar to ROMs, while FPLAs
                    are write-once programmed by the user.
                       Shown in Fig. 7.6 is the MOS version for an unprogrammed n x p x m FPLA illustrating
                    the programmable bit connections in both the AND and OR array sections. A given p-term
                    row can become active, P/(//) = 1(#), iff all of the NMOS switches on the AND side are
                    either disconnected or turned OFF. If any one of the NMOS in a p-term row is turned ON,
                    then that row is pulled low, 0(H). An active p-term line causes a connected OR bit position
                    in its path to be pulled low, resulting in a 1(H) from the output tri-state inverter. The buffer
                    between the AND and OR stages is necessary to boost and sharpen the signal. Such a buffer
                    could consist of two CMOS inverters. Notice that tri-state drivers provide an active low
                    enable control on the OR stage.
                       The programming of a PLA is best understood by considering the 3-input/2-output FPLA
                    segment in Fig. 7.7. Here, the single p-term line is programmed to generate O\ (H) = !(//)
                    and Oo(H) = 0(//) any time the p-term I\ • IQ becomes active. Notice that both NMOS bit
                    positions for 7 2 are disconnected together with those for the I\(L) and /o(#) lines. Thus, if
                    /i is 0(H) and /o is 1(H), the p-term line Pj(H) is forced active which, in turn, causes output
                    O\(H) to become !(//), but not output Oo(H), whose bit position has been disconnected,
                    causing it to become 0(/f). In effect, disconnection (blowing) of a fusible link in the AND
                    plane actually "makes the connection" of the p-term input (// or 7 ;), and disconnection
                    of a fusible link in the OR plane stores a l(H) = 0(L). These facts may make it easier to
                    understand the symbolic representations illustrated in Subsection 7.3.1.


                    7.3.1  PLA Applications
                    Unlike the programming of ROMs which require canonical data, PLAs require minimum
                    or reduced SOP data. Thus, the most efficient application of an FPLA would be one for
                    which the needed product terms fit within the FPLA's limited p-term capability. A good
                    example is the FPLA implementation of the 4-bit combinational shifter of Fig. 6.37. Shown
                    in Fig. 7.8 is the truth table (reproduced from Fig. 6.37a) and the EV K-maps and minimum
                    cover for this shifter. The minimum output expressions for this shifter are obtained directly
   326   327   328   329   330   331   332   333   334   335   336