Programmable logic array integrated circuit with cascade connections between logic modules

Abstract: A programmable logic array integrated circuit has a number of relatively simple logic modules (12) which can be interconnected in any of a wide variety of ways via a general purpose interconnection network to enable the circuit to perform logic functions which can be quite complex. In addition, at least some of the logic modules are connectable to one another by cascade connections (72a,72b,48) and include additional logic elements for logically combining the outputs of the cascade connected modules so that modules can be concatenated to perform relatively complex logic functions without always having to make use of the general purpose interconnection network.

Description: Background of the Invention This invention relates to programmable logic array integrated circuits, and more particularly to a programmable logic array integrated circuit having improved interconnections between the individual logic modules in the circuit. Commonly assigned, co-pending U.S. patent application Serial No. 754,017, filed September 3, 1991 (US-A-5 260 610, corresponding to EP-A-0 530 985) shows programmable logic array integrated circuits which are highly modular. In the circuits shown in that application, very similar types of interconnection pathways are used for all types of interconnections between the logic modules. This tends to simplify the design of the circuit. It also tends to simplify the software and/or other techniques used to program the circuit to implement particular logic functions. Thus the circuits shown in the above-mentioned application have several important advantages. There is always room for further improvement, however, and there are some situations in which the provision of additional or alternative types of interconnections between the logic modules would have benefits sufficient to justify the additional circuit and programming complexity. Such additional interconnection paths may be desirable for making frequently needed interconnections, for speeding certain kinds of interconnections, for allowing short distance interconnections to be made directly without tying up more general purpose and therefore long distance interconnection resources, etc. There is also a continuing demand for logic devices with larger capacity. This produces a need to implement logic functions more efficiently and to make better use of the portion of the device which is devoted to interconnecting individual logic modules. Wahlstrom U.S. patent 3,473,160 shows cellular logic arrays having programmable logic cells CA1, CA2, CA3, CB1, etc., which are interconnectable in a general way by data buses or lines X 1B , X 1C , Y 12 , and Y 13 , and which are also interconnectable in a more limited way by leads such as Z L , Z U , and Z B . Carter U.S. patent 4,642,487 (corresponding to EP-A-0 177 261) shows the same kind of structure. However, in the Carter device the special interconnection circuits merely duplicate connections which can be made through the general interconnect structure. The Carter special interconnection circuits may be faster than the general interconnect structure, and they may conserve general interconnect structure resources, but they do not add any capabilities to the circuit. For example, they do not facilitate the performance of more complex logic functions than can be performed by putting the same signals through the general interconnect structure rather than through the special interconnection circuits. In view of the foregoing, it is an object of this invention to provide an improved programmable logic array integrated circuit. It is a more particular object of this invention to provide a programmable logic array integrated circuit with additional possibilities for interconnections between the logic modules which are not mere duplications of interconnections which can be made through a general purpose interconnection network. Summary of the Invention According to the invention there is provided a programmable logic array integrated circuit comprising a plurality of substantially more than two programmable logic modules disposed in a two-dimensional array, each of said logic modules having a plurality of input signal leads, connected to means for producing an output signal which is substantially any logical function of the input signals on said input signal leads, and at least one output signal lead; a plurality of first conductors extending along a first dimension of said two-dimensional array; a plurality of second conductors extending along a second dimension of said two-dimensional array; a plurality of switches for making programmable connections between said output signal leads, said first and second conductors, and said input signal leads so that the or each output signal lead of substantially any of said logic modules is connectable to substantially any of said logic module input signal leads, said output signal lead or leads being connectable to at least one of said first and second conductors by said switches, each of said first conductors being connectable to a multiplicity of said second conductors by said switches, and each of said input signal leads being connectable to a multiplicity of said conductors by said switches; and a plurality of auxiliary conductors, each of which is associated with a respective one of said logic modules so that a substantial majority of said logic modules have an associated auxiliary conductor, each of said auxiliary conductors connecting the output signal lead of the associated logic module to another receiving logic module which in a substantial majority of cases has an associated auxiliary conductor connecting its output signal lead to yet another receiving logic module, each of said auxiliary conductors making its connection between the associated logic module and the receiving logic module without making use of said first and second conductors or said input signal leads; wherein each of said logic modules in use produces an intermediate signal which is said any of a plurality of logical functions of said input signals, characterized in that each of said logic modules includes connect means for selectively modifying the output signal on the output signal lead of said logic module in accordance with the signal on its associated auxiliary conductor by logically combining said intermediate output signal of said logic module and the signal received by said logic module via said auxiliary conductor to produce said output signal of said logic module. Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments. Brief Description of the Drawings FIG. 1 is a simplified schematic block diagram of an illustrative programmable logic array integrated circuit which can include the present invention. FIG. 2 is a more detailed schematic block diagram of an illustrative embodiment of a representative portion of the circuit of FIG. 1 showing an illustrative embodiment of the present invention. FIG. 3 is a still more detailed schematic block diagram of an illustrative embodiment of a representative portion of FIG. 2. FIG. 4 is a schematic block diagram of a simpler and somewhat more specific embodiment of what is shown in FIG. 3. FIG. 5 is a schematic block diagram of an illustrative embodiment of a portion of the circuit shown in FIG. 3. Detailed Description of the Preferred Embodiments Although this invention can be practiced in the context of other types of programmable logic array integrated circuits, the invention will be fully understood from the following explanation of its application to programmable logic array integrated circuits of the kind shown in commonly assigned, copending U.S. patent application Serial No. 07/880,942, filed May 8, 1992, corresponding to EP-A-0 569 137. As shown in FIG. 1, a programmable logic array integrated circuit 10 has a large number of programmable logic modules 12. Each of logic modules 12 can perform a relatively simple logic function (e.g., form any logical combination of four inputs). Logic modules 12 are grouped together in groups of eight. Each such group is called a logic array block or LAB 14. LABs 14 are arranged in a two dimensional array in circuit 10. This array comprises six rows of 22 LABs per row. A group of global horizontal conductors 20 is associated with each row of LABs 14. A group of global vertical conductors 22 is associated with each column of LABs 14. A signal on any global horizontal conductor 20 can be applied (via local conductors 24) to one or more logic modules 12 in the LAB row associated with that conductor. The output signal of each logic module 12 can be applied to a global horizontal conductor 20 associated with that module's LAB row, and also to one or two global vertical conductors 22 associated with that module's LAB column. The output of each logic module 12 can also be applied to other logic modules in that LAB via local conductors 26 (see FIG. 2, which is again substantially identical to FIG. 2 in the application mentioned immediately above). Global vertical conductors 22 are connectable to global horizontal conductors 20. The conductors and connections described in the immediately preceding paragraph comprise the general interconnection circuitry of circuit 10. This general interconnection circuitry permits any logic module output to be connected to any logic module input so that circuit 10 can be programmed to perform large numbers of logic functions of almost any desired complexity. A typical logic module 12 suitable for use in above-described circuit 10 and also embodying the present invention is shown in FIG. 3. Universal logic block 40 is programmable to produce on output lead 46 an output signal which is one of several possible logical functions (preferably any possible logical function) of input signals A-D. To facilitate performing addition, subtraction, and/or counting, universal logic block 40 may also be programmable to produce one of several possible logical functions of certain of inputs A-D and inputs Q and/or FAST CARRY. Universal logic block 40 can be implemented in any of several ways, for example, as a look up table or a product-term-based macrocell. Output lead 46 is one input to cascade connect logic element 48. For example, logic element 48 may be a two-input AND gate. The other input to logic element 48 is the cascade connect output 72 from another, preferably adjacent, logic module 12 (see FIG. 2 which shows representative cascade connections 72a (between adjacent logic modules within an LAB) and 72b (between logic modules in adjacent LABs)). Assuming that this other input is active, logic element 48 logically combines it with the signal on lead 46 and applies the resulting output signal via lead 76 to the D input of flip-flop 42. The Q output signal of flip-flop 42 is one input to switch 130. The signal on lead 76 is the other input to switch 130. Switch 130 is controlled by a conventional programmable function control element ("FCE") 131 to connect a desired one of its two inputs to its output. For example, FIG. 5 shows an illustrative embodiment of switch 130 including AND gates 130a and 130b and OR gate 130c. The output of FCE 131 is applied to one input of AND gate 130b, and is also applied in inverted form to one input of AND gate 130a. Accordingly, either input U or input R appears at the output of OR gate 130c, depending on the state of FCE 131. In this way, the output signal of cascade connect logic element 48 is passed by switch 130 either as registered by flip-flop 42 or unregistered by that flip-flop. As is described in the immediately above-mentioned application, FCE 131 can be implemented in any of several different ways, for example, as an SRAM, a DRAM, a cell of a first-in first-out ("FIFO") memory, an EPROM, an EEPROM, a function control register (as in Wahlstrom U.S. patent 3,473,160), a ferro-electric memory cell, a fuse (e.g., a laser fuse), an anti-fuse, or the like. The output of switch 130 is inverted by the depicted inverter and thereby becomes the output signal of the logic module. The signal on lead 76 is also applied (via output lead 72) to the cascade connect input 72 of another, preferably adjacent, logic module 12. Accordingly, any number of logic modules 12 can be connected in series via cascade connect leads 72 to produce a logic function of considerable complexity. No general interconnect circuitry 20, 22, 24, 26, etc., is used, and the cascade connect input does not arrive at a logic module via an ordinary, general purpose input to the logic module. Rather the cascade connect input is preferably a special, dedicated input which is not connectable to the general interconnect circuitry and which is used to directly modify the output of the logic module receiving it. This both conserves general interconnect resources for other uses, and speeds the performance of certain logic functions because the cascade connection circuitry of this invention can be made faster than the general interconnect circuitry. The faster performance of the cascade connection circuitry is possible because this circuitry can be optimized (e.g., in terms of buffering) for one function, whereas the general interconnect circuitry must be able to perform under various loading conditions. For this and other reasons the cascade circuitry of this invention can perform certain logic functions such as large fan-in functions extremely efficiently. For example, with the cascade connections of this invention many eight-input functions can be performed in just two logic modules 12. The other circuitry shown in FIGS. 1-3 (e.g., elements 30, 32, 34, 36, 50-52, 54, 56-58, 60, 70, 110, 112, 114, 120, 122, 124, and 126) is not part of the present invention and therefore need not be described in detail here. These other elements are described in application Serial No. 07/880,942. FIG. 4 shows a somewhat simpler and more specific embodiment of the invention. As shown in FIG. 4, cascade connect input lead 72 is gated by elements 74a-c. Element 74b is an FCE (similar to above-described FCE 131) which is programmed to indicate whether or not the cascade connect input to depicted logic module 12 is desired. If so, FCE 74b is programmed to enable transistor 74a and to disable transistor 74c. This applies the cascade connect input signal to logic element 48, which in this case is a two-input AND gate. The other input to AND gate 48 is the output 46 of universal logic block 40. AND gate 48 applies the logical AND of its two inputs to lead 76. This becomes the cascade connect output signal on output lead 72 to the next logic module 12 in the chain of logic modules interconnected by cascade connections. The signal on lead 76 is also applied to flip-flop 42 and thereby becomes the output of the depicted logic module which can be applied to the general interconnection network. If it is not desired to use cascade connect input 72, then FCE 74b is programmed to disable transistor 74a and to enable transistor 74c. This applies VCC (logical 1) to the second input terminal of AND gate 48, thereby allowing that gate to pass the output of logic block 40 to flip-flop 42 unaltered. Although logic modules can be connected to one another by cascade connections as described above in any desired pattern, in a preferred embodiment adjacent logic modules 12 in each LAB 14 are connected to one another from the bottom to the top of the LAB as viewed in FIG. 1. Leads 72a in FIG. 2 are representative of this type of cascade connection of adjacent logic modules within a representative LAB. The cascade connect output from the topmost logic module in each LAB is then connected as the cascade connect input to the bottommost logic module in the LAB to the right of the first LAB as viewed in FIG. 1. Lead 72b in FIG. 2 is representative of this type of cascade connection between adjacent LABs. It will be understood that the foregoing is merely illustrative of the principles of this invention, and that various modifications can be made by those skilled in the art without departing from the scope of the invention. For example, the type of logic element 48 can be changed if desired, the number of logic modules 12 in the cascade connect chain can be varied if desired, and the number of logic modules connected to each logic element 48 by cascade connections can also be changed if desired.

Claims: A programmable logic array integrated circuit (10) comprising a plurality of substantially more than two programmable logic modules (12) disposed in a two-dimensional array, each of said logic modules (12) having a plurality of input signal leads (A-D), connected to means for producing an output signal which is substantially any logical function of the input signals on said input signal leads (A-D), and at least one output signal lead (76); a plurality of first conductors (20) extending along a first dimension of said two-dimensional array; a plurality of second conductors (22) extending along a second dimension of said two-dimensional array; a plurality of switches (56, 58, 50, 52) for making programmable connections between said output signal leads (76), said first and second conductors (20, 22), and said input signal leads (A-D) so that the or each output signal lead (76) of substantially any of said logic modules (12) is connectable to substantially any of said logic module input signal leads (A-D), said output signal lead or leads (76) being connectable to at least one of said first and second conductors (20, 22) by said switches (56, 58), each of said first conductors (20) being connectable to a multiplicity of said second conductors (22) by said switches (58), and each of said input signal leads (A-D) being connectable to a multiplicity of said conductors (20, 22) by said switches (50, 52); and a plurality of auxiliary conductors (72), each of which is associated with a respective one of said logic modules (12) so that a substantial majority of said logic modules (12) have an associated auxiliary conductor (72), each of said auxiliary conductors (72, 72a, 72b) connecting the output signal lead (76) of the associated logic module (12) to another receiving logic module (12) which in a substantial majority of cases has an associated auxiliary conductor (72, 72a, 72b) connecting its output signal lead (76) to yet another receiving logic module (12), each of said auxiliary conductors (72, 72a, 72b) making its connection between the associated logic module (12) and the receiving logic module (12) without making use of said first and second conductors (20; 22) or said input signal leads (A-D); wherein each of said logic modules (12) in use produces an intermediate output signal (46) which is said any of a plurality of logical functions of said input signals (A-D), characterized in that each of said logic modules (12) includes connect means (48) for selectively modifying the output signal on the output signal lead (76) of said logic module (12) in accordance with the signal on its associated auxiliary conductor (72, 72a, 72b) by logically combining said intermediate output signal (46) of said logic module (12) and the signal received by said logic module (12) via said auxiliary conductor (72) to produce said output signal (76) of said logic module (12). The circuit defined in claim 1 further characterised by gate means (74a) for selectively preventing the output signal (76) of each logic module (12), which is received via its associated auxiliary conductor (72, 72a, 72b), from being used by the connect means (48) associated with each receiving logic module (12) to modify the output signal (76) of said receiving logic module (12). The circuit defined in claim 2 further characterised by a programmable function control element (74b) for controlling said gate means (74a). The circuit defined in any preceding claim further characterised in that the connect means (48) associated with each receiving logic module comprises a logic gate (48; Fig. 4) for logically combining the signal received by said receiving logic module (12) via said auxiliary conductor (72) and the intermediate output signal (46) of said receiving logic module (12). The circuit defined in claim 4 further characterised in that said logic gate (48) comprises an AND gate (48; FIG. 4). The circuit defined in claim 1 further characterised in that each of said receiving logic modules (12) further comprises flip-flop means (42) for selectively registering the output signal (76) of said receiving logic module (12), and for substituting the resulting registered output signal (78) for the output signal (76) applied to said switches (56, 58).

Inventors: AHANIN BAHRAM, CLIFF RICHARD G, AHANIN, BAHRAM, CLIFF, RICHARD G.
Applicants: ALTERA CORP, ALTERA CORPORATION
Application year: 1993
Main classification: H03K19
IPC codes: H03K19, H01L21