Abstract:
A reprogrammable logic device and method of operation. The logic device is divided into a first hemisphere 101 and a second hemisphere 102. The first and second hemispheres of the arrays are internally connected by horizontal 20 and vertical 22 conductors. A global interconnect array 107 is placed between the hemispheres and is used to selectively connect the horizontal conductors of the hemispheres.

Description:
This is a continuation of application Ser. No. 08/028,046, filed Mar. 8, 1993, now abandoned. 
    
    
     CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is related to application Ser. No. 08/088,973 (Attorney Docket No. 15114-373), filed on the same day as the present application, incorporated herein by reference for all purposes. 
     BACKGROUND OF THE INVENTION 
     The present invention relates to the field of programmable logic devices and methods of operation thereof. More specifically, in one embodiment the invention provides an improved architecture for programmable logic devices. 
     Programmable logic devices (PLDs), sometimes referred to as PALs, PLAs, FPLAs, PLDs, EPLDs, EEPLDs, LCAs, and FPGAs, are well know integrated circuits that provide the advantages of fixed integrated circuits with the flexibility of custom integrated circuits. Such devices allow a user to electrically program standard, off-the-shelf logic elements to meet the users specific needs. See, for example, U.S. Pat. No. 4,617,479, incorporated herein by reference for all purposes. Such devices are currently represented by, for example, Altera&#39;s MAX R  series of PLDs and FLEX™ series of PLDs. The former are described in, for example, the Altera Data Book, September 1991, incorporated herein by reference. The latter are described in, for example, U.S. Ser. No. 07/880,942, filed May 8, 1992, and incorporated herein by reference for all purposes. 
     While meeting with substantial success, such devices have also met with some limitations. For example, it is desirable to increase the number of possible and alternative interconnection schemes between logical elements of such devices. Further, as the complexity of the functions becomes greater, it may become necessary to partition multiple logic chips in a single package. 
     From the above it is seen that improved programmable logic devices and methods of operation thereof are desired. 
     SUMMARY OF THE INVENTION 
     An improved programmable logic device and associated method of operating such device are provided by virtue of the present invention. 
     According to one aspect of the invention, a programmable logic device includes a plurality of logic modules (LMs) grouped together to form logic array blocks (LABs). The logic array blocks are arranged in rows. The rows are arranged in separate hemispheres that are interconnected by way of a programmable global interconnect array. The global interconnect array allows horizontal lines between the LABs in one hemisphere of the array to be interconnected to horizontal lines in the other hemisphere of the array. 
     The system herein provides an efficient way of increasing logic device density, and avoids the need to utilize multichip partitioning problems involved with the placement of several logic chips in a single package. 
     Accordingly, the invention herein provides a programmable memory device including a first array of reprogrammable logic units, the first array arranged in rows and columns to form a first hemisphere; a second array of reprogrammable logic units, the second array arranged in rows and columns to form a second hemisphere; a first set of horizontal conductors arranged along the rows of logic units in the first hemisphere, the first set of horizontal conductors selectively connectable to inputs or outputs of the logic units; a second set of horizontal conductors arranged along the rows of logic units in the second hemisphere, the second set of horizontal conductors selectively connectable to inputs or outputs of the logic units; a first set of vertical conductors arranged along the columns of logic units in the first hemisphere, the first set of vertical conductors selectively connectable to the first set of horizontal conductors; a second set of vertical conductors arranged along the columns of logic units in the second hemisphere, the second set of vertical conductors selectively connectable to the second set of horizontal inputs of the logic units; and a plurality of global interconnect conductors between the first and the second hemispheres, said global interconnect conductors selectively connectable to selected the first and the second horizontal conductors, whereby signals in the first hemisphere may be input to selected locations in the second hemisphere. 
     A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is an illustration of a programmable logic device; 
     FIG. 2 illustrates portions of the programmable logic device shown in FIG. 1 in greater detail; 
     FIG. 3 illustrates a programmable logic device with a global interconnect array (GIA); 
     FIG. 4 illustrates the global interconnect array in greater detail; 
     FIG. 5 illustrates portions of a GIA in greater detail; and 
     FIG. 6 illustrates an alternative GIA structure in greater detail. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 illustrates a single hemisphere of programmable logic circuit 10. Not all of the conductors employed in circuit 10 are shown in FIG. 1, but enough is shown in this figure to begin the discussion. Each logic module (LM) 12 is represented by a small square in FIG. 1. Logic modules 12 are grouped together in groups of eight according to one aspect of the invention. Each of these groups is referred to as a logic array block or LAB 14. LABs 14 are preferably arranged in six horizontal rows 15 i  (5 of which are shown) and 22 vertical columns 17 i  on circuit 10. Accordingly, there are a total of 132 LABS 14 and 1056 logic modules 12 on circuit 10. Each logic module 12 is capable of performing a relatively elementry logic function, but extremely complex logic can be performed by selectively interconnecting the logic modules as will now be discussed. 
     The interconnection circuitry shown in FIG. 1 includes groups of so-called global horizontal conductors (G H ) 20 interspersed between the horizontal rows of LABs, and groups of global vertical conductors (G V ) 22 interspersed between the vertical columns of LABS. These conductors are preferably global in the sense that they extend along an entire row or column within a hemisphere of the device. Programmable interconnections can be made between intersecting horizontal and vertical conductors in order to apply signals on the vertical conductors to the horizontal conductors. Each LAB 14 has a group of vertical LAB input conductors 24 for conveying signals from the global horizontal conductors 20 intersected by conductors 24 to the logic modules 12 in that LAB. 
     In addition to the above-described conductors, FIG. 1 shows part of a network of so-called universal fast conductors. The conductors 30 of this network shown in FIG. 1 extend throughout the entire circuit and can be used as will be described in more detail below to convey widely used signals such as clock and/or clear signals to any logic modules 12 on the circuit. 
     Although other numbers of conductors can be used if desired, in the depicted preferred embodiment, there are 176 conductors in each group of global horizontal conductors 20, there are 16 conductors in each group of global vertical conductors 22, there are 24 conductors in each group of LAB input conductors 24, and there are four universal fast conductors 30. 
     FIG. 2 shows part of a typical LAB 14. Four representative logic modules 12 are shown. Each logic module 12 includes a look-up table 40 and a flip-flop-type device 42. Each look-up table 40 is basically a circuit which can be programmed to produce an output signal that is any logical combination of four input signals applied to the look-up table. Each flip-flop 42 is a circuit which can be programmed either to store or to simply pass through the output signal of the associated look-up table. 
     In addition to the above-described representative logic modules, FIG. 2 shows portions of representative G H  conductors 20, G V  conductors 22, LAB input conductors 24, and universal fast conductors 30. Each of the LAB input conductors 24 can be connected to a selected one of conductors 20 and 30 via a programmably controlled switch 50 (only some of which are shown in FIG. 2). Although different sized switches 50 can be used if desired, in the preferred embodiment each switch 50 is a 15-to-1 switch that is controlled by programmable elements 51 (e.g., programmable or reprogrammable memory such as static memory cells) to connect one of its 15 inputs (only some of which are shown in FIG. 2) to its ouptut. Each of the 15 inputs is the signal on a predetermined respective one of conductors 20 or 30. There is one switch 50 for each of the 24 LAB input conductors 24. Each of conductors 20 and 30 is connected to two of switches 50. Accordingly, each of conductors 20 and 30 is connectable to two of conductors 24. The letter P and the associated arrow symbol inside dotted line 49 indicate that the population of connections from conductors 20 and 30 to the inputs of each of switches 50 is preferably a partial population. 
     Each of the four data inputs to each logic module 12 can be connected to any one of LAB input conductors 24 (or any one of local conductors 26) via a switch 52. Because there are 24 LAB input conductors 24 and eight local conductors 26, each of switches 52 is preferably a 32-to-1 switch. Accordingly, the letter F and the associated arrow symbol inside chain-dotted line 53 indicate that the population of connections from conductors 24 and 26 to switches 34 and 52 is a full population. In other respects switches 34 and 52 may be like switches 50 (i.e., each switch is programmably controlled to connect one of its inputs to its output; to avoid over-crowding the drawing, only a few representative inputs to each switch 52 are shown in FIG. 2). 
     The data output of the flip-flop 42 in each logic module 12 can be applied (via driver 54) to a respective one of local conductors 26. These conductors serve only the logic modules in the associated LAB 14. In other words, conductors 26 do not extend beyond the associate LAB. The data output of the flip-flop 42 in each logic model 12 can also be applied to either or both of two global vertical conductors 22 (via tri-state drivers 56), and to one of global horizontal conductors 20 (via a switch 58 and tri-state driver 60). 
     The second input to each switch 58 is the signal from a respective one of global vertical conductors 22. Accordingly, global vertical conductors 22 are selectively Connectable to global horizontal conductors 20 via switches 58 and tri-state drivers 60. The use of tri-state drivers 56 and 60 is advantageous to strengthen signals which may be required to travel relatively long distances throughout circuit 10 and/or which maybe inputs to relatively large numbers of other components. Tri-state drivers 56 and 60 are controlled (i.e, turned on or off) by programmable or reprogrammable elements (e.g., programmable random access memory (&#34;RAM&#34;) such as SRAM elements 57) on circuit 10. Switches 58 are also controlled by programmable or reprogrammable elements (e.g., more RAM or SRAM cells) on the circuit. 
     In addition, to being available as data inputs to logic modules 12, the signals on any of conductors 24 and 26 can also or alternatively be applied to any of local vertical conductors 32 via 32-to-1 switches 34. Although only two such switches 34 are shown in FIG. 2, there is preferably one such switch for each of the four conductors 32. Each of conductors 32 is connectable to any one of universal fast conductors 30 for receiving the signal on the fast conductor. These connections from conductors 30 to conductors 32 are preferably made in the same way that the connections from conductors 24 and 26 to conductors 32 are made, i.e, by switches (not shown but preferably similar to switches 50), each of which can connect any of conductors 30 to an associated one of conductors 32. The letter F and the arrow symbol inside chain-dotted line 31 indicate that the population of possible connections from conductors 30 to each of conductors 32 is preferably a full population. Each of conductors 32 is connectable (via conductors 36) to each of logic modules 12. RAM-controlled switches in each logic module allow the signals to be used for such purposes as flip-flop clock and flip-flop clear in flip-flop 42. Thus local vertical conductors 32 are known as clock and clear lines and can be driven from fast lines 30 for synchronous clocks and clears (i.e., clocks and clears which come from outside of device 10 and are available everywhere throughout device 10), or from LAB input lines 24 or local lines 26. 
     Two other types of logic module interconnections are shown in FIG. 2. The first of these is carry-chain interconnection represented in part by conductors 70a and 70b. These interconnections allow a carry-out output of each logic module 12 to be used as a carry-in input to an adjacent or nearby logic module. For example, carry-chain conductors 70a allow the carry-out output of each logic module 12 shown in FIG. 2 to be the carry-in input to the next higher logic module in that figure. Similarly, carry-chain conductor 70b runs from the top-most logic module 12 in the LAB fragment shown in FIG. 2 to the bottom-most logic module in the horizontally adjacent LAB in the adjacent column of LABs. This allows the carry-chain to continue from LAB to LAB if desired. 
     The other type of logic module interconnection is illustated by representative conductors 72a and 72b in FIG. 2. These conductors are called cascade-connect conductors. They allow the data outputs of adjacent or nearby logic modules 12 to be logically combined, if desired, to perform more complex logic functions without the need to pass intermediate data through the general interconnection network. 
     According to preferred embodiments of the invention, adjacent logic circuits 10 are placed on a single semiconductor substrate as hemispheres 101 and 103, as shown in FIG. 3. For example, hemisphere 101 includes logic circuit rows 15 0L  to 15 5L , while hemisphere 103 includes logic circuit rows 15 0R  to 15  5R . As with the circuit shown in FIGS. 1 and 2, communication 105 between rows within each hemisphere is made possible through selective connection of the various G H  and G V  conductors. In addition, a global interconnect array (GIA) 107 provides communication between the left and right hemispheres of the device. It is to be recognized that a device with two &#34;hemispheres&#34; is illustrated for purposes of simplicity, but a greater number of hemispheres may be utilized without departing from the scope of the invention herein. 
     As shown in FIG. 3, the GIA 107 interfaces the hemispheres through extensions of the G H  conductors. Since each G H  conductor is selectively connectable to G V  conductors and other G H  conductors within each hemisphere through appropriate programming of the various switches and tri-state buffers described above, it becomes apparent that the GIA also provides communication between the various G H  and G V  conductors of each hemisphere. 
     FIG. 4 illustrates one embodiment of the GIA 107 in greater detail. As shown therein, the GIA utilizes horizontal extensions 109 of one or more (preferably all) of the G H  lines from the left hemisphere 101 and horizontal extensions 111 of one or more (preferably all) of the G H  lines from the right hemisphere 103. A single line is shown for simplicity. Intersecting lines 113 N  (referred to herein as G Z  lines) intersect horizontal extensions from both the left and right hemispheres. At the intersection of most or all of the horizontal extensions of the G H  lines, a programmable cross-point switch 115 is provided. By appropriately programming the cross-point switches 115, a user may effectively connect any G H  line in the left hemisphere with any other G H  line in the right hemisphere or, additionally, the various G H  lines within a hemisphere. Accordingly, the device will, effectively, provide the equivalent of two programmable logic devices on a single chip with programmable connections therebetween. As shown therein, in preferred embodiments, the GIA provides interconnection between the two hemispheres, but does not provide connections to input/output blocks on the device, unlike the G H  and G V  lines, which may be selectively coupled to I/O pins. 
     According to some embodiments, each of the cross-points between the extensions of the G H  lines and the G Z  lines provides a selective connection between the G H  lines and the G Z  lines through, for example, an EPROM or EEPROM switch. According to some embodiments of the invention, however, chip size is controlled by making only selected G H  lines available as inputs to the various G Z  lines. Details of such arrangements are discussed in U.S. Ser. No. 691,640, filed Apr. 25, 1991, incorporated above by reference. A simplified illustration of this arrangement is shown in FIG. 5. 
     As shown in FIG. 5, selected G H  lines such as output line 201 are connected to G Z  lines. Conversely, the inputs to multiplexers 203 are taken only from a portion of the G Z  lines. Based on the values stored in memory 205, such as a static latch, the multiplexers 203 select various inputs for the G H  lines from the G Z  lines. Through such arrangements, a proper balance of interconnection flexibility, power consumption, and device size may be achieved. 
     FIG. 6 illustrates another circuit that may be used to transfer selected G z  signals to selected G H  lines. According to this embodiment, selected G Z  lines are connected to the inputs of AND gates 301. Additional inputs to the AND gates are provided via EPROM transistors 303. The outputs of the AND gates are provided as inputs to an OR gate 305, the output of which is provided to a G H  line. 
     If the user desires for a particular G Z  line to be coupled to a G H  line, the EPROM transistor associated with those lines is programmed and, accordingly, the associated AND gate/OR gate will transmit the signal. 
     The above description is illustrative and not restrictive. Many variations of the invention will become apparent to those of skill in the art upon review of this disclosure. Merely by way of example while the invention has been described with reference to various particular techniques for interconnecting the G H  and G Z  lines, other techniques will be apparent based on review of this disclosure. The scope of the invention should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents.