Description
Programmable Logic Device with Multiple Shared Logic Arrays
Technical Field
The present invention relates to programmable logic devices (PLDs) characterized by their layout or 10 interconnections within the integrated circuit.
Background Art
In U.S. Pat. No. 4,942,319, Pic ett et al. describe a multiple page programmable logic device that
15 includes a plurality of pages, each page serving as a separate logic array, and suitably fast page control cir¬ cuitry that allows an appropriate page or pages to be selected. For example, there may be a set of N first logic arrays forming AND array pages followed by a set of
20 M second logic arrays forming OR array pages. Some or all of the array pages in one or both of the sets can be user programmable. Page selection may use the same means for selecting the OR array page as for selecting the AND array page so that selections of specific AND and OR ar-
25 ray pages always coincide, thereby essentially providing a plurality of pages each consisting of a specific AND array and a specific OR array. Alternatively, the means for selecting the OR array page may operate independently from a separate means for selecting the AND array page.
30 Embodiments are also described in which there is just a single OR array (M=l) with only AND array page selection being performed, or vice versa (N=l) . Several pages can be selected to operate simultaneously. Input signals may
"V be applied to the AND array pages either by input leads
35 which are shared among all of the AND array pages, by input leads dedicated to specific pages or by a combina¬ tion of shared and dedicated input leads. Connection of the input leads to the AND array pages may be by hard
wiring or by using the page control circuitry to multi¬ plex the appropriate input leads to the selected AND ar¬ ray page or pages. The multiplexer used for this purpose can be either fixed or programmable. Output signals from the OR array pages may be provided to output leads in a similar manner. The described configurations make avail¬ able a large number of product terms and sum terms while providing a smaller array size, higher speed and lower power consumption by the organization of the logic arrays into pages and by turning off those pages which are not needed at the moment.
In U.S.- Pat. No. 4,847,612, Kaplinsky describes a programmable logic device having a plurality of pro¬ grammable functional units, each of which is a complete AND-OR array, that are interconnected by switches in a programmable interconnection matrix. All of the inputs to a functional unit are available to all of the AND gates of the AND array. The product terms produced by the AND array may be available to either all or some of the OR gates in the OR array of that functional unit. In one embodiment, two subchips, each with their own set of inputs, outputs, functional units and interconnection matrices, can be selectively interconnected to one another with a switching matrix so that some signals provided in one subchip can be shared with the other.
In U.S. Pat. No. 4,963,768, Agrawal et al. de¬ scribe a programmable integrated circuit structure having a plurality of programmable logic devices, each providing output signals on their output lines that are a function of input signals on their input lines, and a programmable switch interconnection means for coupling at least one of the output signals from each logic device to selected input lines of any of the logic devices. In one embodi¬ ment, a logic device may have an AND array providing product terms to OR gates for summing the terms together. Some of the product terms can be either shared between adjacent OR gates, routed to just one OR gate or left unconnected, as selected by the user. All of the product
terms within a logic device have a common set of inputs connected to the AND array.
It is an object of the invention to provide programmable logic devices having greater logic flexibil- ity for a given performance level, i.e., without causing a performance degradation or increase in power consumption from the enlarging of AND arrays.
It is another object of the invention to pro¬ vide programmable logic devices having increased perform- ance, including lower power consumption and reduced AND array size, for a given logic capability, i.e. without also lowering the logic flexibility.
Disclosure of the Invention The above objects are met with a programmable logic device characterized by a layout that includes mul¬ tiple first logic arrays, such as AND arrays, all effec¬ tively enabled and operating simultaneously, and that also includes the ability to combine intermediate term outputs from two or more different first logic arrays in a single second logic gate or array, such as an OR gate or array. Each of the first logic arrays has a different set of inputs. This layout thus provides a way to in¬ crease the total number of first logic array inputs that are available to individual second logic gates without having to increase the number of inputs to any single first logic array, since individual second logic gates or arrays can have simultaneous inputs from several first logic arrays. In one embodiment, multiple AND arrays, each with a unique set of inputs, provide product term outputs to the inputs of one or more OR arrays, such that each OR array receives, on its inputs, product terms from every AND array. When there is more than one OR array in the device, product terms from each AND array are shared by the plural OR arrays. Because all of the AND arrays are always in operation, any one OR array will receive inputs simultaneously from all AND arrays at least when any
input signal received by the AND arrays changes logic states.
A second embodiment has multiple AND arrays, all arrays being always enabled, and a plurality of OR gates. While some OR gates may receive product terms from only one of the AND arrays, others of the OR gates receive product terms from two adjacent AND arrays.
Brief Description of the Drawings Fig. 1 is a schematic block diagram of a pro¬ grammable logic device layout of the present invention.
Fig. 2* is a schematic block diagram of an alternative programmable logic device layout of the present invention.
Best Mode for Carrying Out the Invention
The present invention will be described herein by reference to AND/OR logic in which AND arrays provide product terms to OR gates or OR arrays, which in turn provide su -of-products outputs. However, other types of logic arrays may be implemented in accord with the inven¬ tion. In general, first logic arrays provide intermedi¬ ate terms to second logic gates or second logic arrays, which in turn provide final logic term outputs. For example, if OR/AND logic is implemented, the first logic arrays would be OR arrays providing intermediate terms that are sum terms to second logic gates or arrays. These second logic gates or arrays would be AND gates or arrays providing final logic term outputs that are product-of-sums outputs. Other commonly used array logics include NAND/NAND and NOR/NOR logics. All of these provide the same functional flexibility as AND/OR logic configurations.
With reference to Fig. 1, a programmable logic device includes a plurality N of AND arrays ll1 ll2, ••*, HH-ι r HN and a plurality M of OR arrays 21.,, 212, •••, 2lM.1f 21H. Each AND array 11.,, 112, •••, 11 r 11N has inputs connected to corresponding dedicated input
buses 13.,, 132, •••, 13N_1, 13N to receive input signals from distinct sets 15.,, 152, •••, 15N.1, 15N of signal sources, including external contacts of the device and internally generated logic from AND array outputs, OR array outputs and register outputs fed back to the input buses 13,, 132, •••, 13N_,, 13N. Each AND array 11,, 112, • • • , 11N.1, 11N also has outputs connected to a corre¬ sponding output bus 17,, 172, •••, 17N.,, 17N on each of which a set of product terms is provided by the AND array. The product terms provided by any particular AND array 11 are logic products or ANDs of selected input signals on the dedicated input buses 13 corresponding to that particular AND array. Each OR array 21,, 212, •••, 21H.,, 2lH has inputs connected to a corresponding input bus 23,, 232, •••, 23H_,, 23H to receive product terms on output buses 17,, 172, •••, 17N.,, 17N of all of the AND arrays 11,, 112, •••, 11N__,, 11N. Connection is made through a set of nodes 25, ,, 25, 2, ••*, 25N M_,, 25N H. (The first subscript here designates the AND array from which the product term originates, while the second sub¬ script designates the OR array to which the product term is destined.) Each node 25 is actually a plurality of connections between lines of output bus 17 and lines of an input bus 23, since each bus is composed of a plurali- ty of lines. All OR array inputs 23,, 232, •••, 23M_,, 23M are enabled and effective at all times. Each OR array 21,, 212, •••, 21H.,, 21M has a set of outputs connected to a corresponding output bus 27,, 272, •••, 27H.,, 27M on which output terms are provided. All AND arrays 11,, ll2, •••, HN_,, 11N and all
OR gate or OR array inputs 23,, 232, • • • , 23M.,, 23M are enabled and operate simultaneously, so that when any one AND array is operating all of the other AND arrays are also operating and when any one OR array input is ena- bled, all of the other OR array inputs of all OR arrays are likewise enabled. In a preferred embodiment, the AND and OR arrays include circuitry described in U.S. Pat. No. 4,906,870, assigned to the assignee of the present
invention and incorporated herein by reference. This circuitry allows the AND arrays to disable and the OR outputs to latch when no input signals on buses 13,, 132,
•••, 13H.,, 13M are switching logic states. When any in- put signal does change logic state, all of the AND arrays 11,, 112, •••, 11M.,, 11M and OR array inputs 23,, 232, •••, 23u., 23u are simultaneously enabled. Alternatively, every AND array and OR array may be enabled and operating at all times. With reference to Fig. 2, another programmable logic device of the invention also includes a plurality N of AND arrays 41, 412, •••, 41M. Each AND array 41,, 412,
• • •, 41N has inputs connected to corresponding dedicated input buses 43,, 432, •••, 43N to receive input signals from distinct sets 45,, 452, • • • , 45N of signal sources, which may include both external contacts of the device and internally generated logic from AND array outputs, OR array outputs and register inputs fed back to the input buses 43,, 432, •••, 43N. Each AND array 41,, 412, • ••, 41H also has outputs connected to output lines 47,, 472, ••-, 47H and 49,, 492, •••, 49N on which product terms are provided by the corresponding AND array 41,, 412, •••, 41κ. The device also includes an OR array made up of a plurality of OR gates 51,, 512, •••, 51N and 53, 2, 5323, •••, 53N_, N. OR gates 51,, 512, •••, 51N have inputs con¬ nected to the outputs 47,, 472, •••, 47N of just one cor¬ responding AND array 41,, 412, •••, 41N each. The OR gates 53, 2, 5323, •••, 53N_, N have inputs connected to the outputs 49,, 492, • • • , 49N of two adjacent AND arrays 41,, 412, • • • , 41M. That is, OR gate 53, 2 has inputs connected to outputs 49, and 492 of adjacent AND arrays 41, and 412, OR gate 5323 has inputs connected to outputs 492 and 493 of adjacent AND arrays 412 and 413, etc. The OR gates 51 and 53 may be connected to all of the outputs 47 and 49 of any given AND array 41, or just to a subset of outputs 47 and 49. Each output 47 and 49 of an AND array 41 may be connected to just one OR gate or be shared with sever¬ al OR gates. However, each OR gate 51 and 53 generally
has a different set of AND array output connections from all other OR gates.
The outputs of some OR gates may connect to inputs of a second stage of OR gates, not shown, in order to minimize the number of inputs required by any one OR gate. However, since the logic OR operation is associa¬ tive, this alternative hierarchical structure does not fundamentally affect the overall logic being implemented. The second stage of OR gates may be the actual physical gates 53, 2, 5323, •••, 53N_, N combining the logic from two adjacent AND arrays by receiving intermediate terms from first state OR gates connected between individual AND arrays and the second stage of OR gates.
For a programmable logic device of the type shown in Fig. 1 with N AND arrays, receiving L inputs per AND array and providing P product terms per AND array, and with M OR arrays, each OR array can have a total of up to N»P inputs effectively enabled to receive product terms from the AND arrays at all times. Likewise, each OR array can have access through the AND arrays to up to N»L inputs to the AND arrays. A single AND array would require N2«L«P switches to provide the same level of log¬ ic capability as is provided in this multiple AND array layout needing a total of only N«L-P switches in the AND arrays of Fig. 1.
Likewise, for a programmable logic device of the type shown in Fig. 2, again with N AND arrays, receiving L inputs per AND array and providing P product terms per AND array, and with each of N-l OR gates connected to up to P product terms in two adjacent AND arrays, each OR gate can have up to 2•P inputs for receiving product terms and access up to 2«L AND array inputs.