Abstract:
A programmable circuit is provided with a number of current regulating circuits, such as sense amplifiers, by which the user can regulate the amount of current drawn by any of a number of circuit functions within the programmable circuit. Additional current regulating circuits are associated with circuit elements which can be programmably shared between one or more circuit functions. The user can therefore programmably control the current consumption, and thereby the speed, of each circuit function as well as circuit functions interacting via the shared circuit elements.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to the implementation of custom logic functions in an integrated circuit device and more particularly to the allocation of power resources therein. 
     DESCRIPTION OF THE PRIOR ART 
     Programmable Logic Devices (PLD&#39;s), notably those that are based on EPROM or EEPROM-based product terms, typically draw DC current. Some also have large internal drivers that may also draw large AC current during switching. Circuits that can draw substantial DC current include (1) EPROM sense amplifiers (&#34;sense amps&#34;) which act as passive pullup devices on the EPROM bitlines in order to sense the logic state of the bitlines, and (2) gates with passive pullups (or pulldowns). There is a strong tradeoff relationship between the DC current drawn by a sense amp and its speed (performance); in general, the higher the current, the faster the circuit performance. It is also well known in the art that higher current through PLD circuits enables bit line capacitances to discharge faster, thereby increasing the speed of the circuit. 
     FIG. 1a illustrates the relationship between power and speed in a conventional EPROM sense amplifier. When biasing transistor 1 is switched on by voltage V bias , the voltage of input line 2, determined by transistors 3, is sensed by the gate and drain of P-channel pullup transistor 4. (The gates of transistors 3 are each connected to the input signal terminal of the sense amp). Transistor 4 will turn on at a predetermined voltage input of (bit line) line 2 voltage, establishing a particular voltage for output line 5. By increasing voltage VDD On the source of transistor 4, all transistors 1, 3 and 4 draw more current, resulting in higher switching speeds, thereby increasing the speed of the circuit. Also, increasing the channel width of transistors 4, 1, and 3 draws more current and increases switching speed. The charge stored by the capacitance of bitline 2 discharges faster due to the increased current drawn by the circuit, enabling faster signal propagation. 
     FIG. 1b further illustrates the speed-power correlation for a conventional NOR gate circuit. Gate input signals a, b, c, d for respective transistors 7, 8, 9, 10 determine the voltage of line 6 and hence the NOR gate output. The P-channel pullup transistor 11 remains on until line 6 achieves a predetermined voltage. By increasing voltage V DD  at the source of transistor 11, transistors 7, 8, 9, 10 and 11 draw more current, resulting in higher switching speeds, therefore enhancing the speed of the circuit. As described above, a large current enables fast discharge of bitline 6, enhancing signal propagation and thus circuit speed. 
     Higher speed circuits are desirable; however, there are many restrictions on how much current a device can draw. For example, with increasing device integration, the ability of the device package to dissipate heat (thermal resistivity) can limit the total power that can be dissipated without the internal junction temperatures reaching unreliable levels (generally considered to be about 150° C.). Another restriction may be that the circuit board on which the device is used has a limited power budget. 
     The tradeoff between power and speed can be made programmable in order to allow the best compromise to be made by the user. This is especially true for PLDs where the final application cannot be predicted at the time of fabrication. Xilinx, Inc. the assignee of the present invention, manufactures PLDS, a typical architecture of which is shown in FIG. 2. FIG. 2 shows an array of configurable logic blocks 12, 13, 14, 15 interconnected via an interconnect matrix (UIM) 16. The input lines 17 into logic block 12 are programmably combined into a number of AND gates 18 in the AND array 19. The output lines 20 are called product terms. Product terms 20 of each AND gate 18 of the AND array 19 are provided to one or more of a series of macrocells (MC) 21. 
     A typical prior art macrocell 21 architecture is shown in FIG. 3. Macrocell 21 configures the outputs (product terms 20) of AND array 19 of FIG. 2 and may perform additional logic on the output signals of AND array 19. In-line sense amps 20.1 on input lines 20.2 amplify the signals input to the macrocell 21. Macrocell 21 contains an OR gate 22 into which the product terms are gated, and a register (flip flop) 23 for storing the OR gate 22 output signal. Output line 24 of OR gate 22 and the output lines 23a and 23b of register 23 can be configured programmably by setting the multiplexers (MUXs) 25, 26 and 27 with control bits CB1 and CB2 on their control terminals 28, 29, and 30, each specifying the output state of the respective MUX. This prior art macrocell 21 does not feature any power management or speed control. 
     Power management has been proposed for EPLDs with simple macrocells in the literature, whereby a configuration bit is added to each macrocell to determine whether all the sense amps of a given macrocell are in &#34;high-speed mode&#34; (and hence higher power) or &#34;low-power mode&#34; (and hence lower speed). In particular, Altera, Inc. has made references to this capability in descriptions of its MAX 7000 architecture. However, this scheme is only possible in an architecture where the power consuming elements are all localized for each macrocell. 
     FIG. 4 shows an example of a prior art PLD architecture incorporating power management. Input lines 31 to macrocell N each have in-line sense amps 32 amplifying the input signals to the macrocell N. A single configuration bit CB n  regulates the amount of amplification (power) provided for each input line 31. Macrocell N can function in either a high speed mode, corresponding to a high power setting, or a low speed mode, corresponding to a low power setting, as specified by setting the control bit CB n . Each macrocell N is assigned one power management configuration bit CB n  to allocate power only for those lines 31 which are in use by that macrocell, i.e. private resources. A similar structure is shown for macrocell N+1. 
     For more complex PLD architectures with shareable power consuming resources (such as product terms shareable between two or more macrocells), there are shared resources that cannot be assigned to any particular macrocell. Here, the simple single bit power management scheme of FIG. 4 is insufficient. 
     SUMMARY OF THE INVENTION 
     In accordance with the invention, elements of a programmable circuit are each powered by a current regulating circuit (such as a sense amp) by which the user can programmably (using configuration bits) regulate the current drawn by any of a number of the circuit elements within the programmable circuit. Additional current regulating circuits regulate circuit elements (input lines) which can be programmably shared between one or more circuit functions. The user can therefore programmably control the current consumption, and thereby the speed, of tasks performed by each circuit function as well as tasks performed by circuit functions interacting via the shared circuit elements. 
     Thus, in accordance with the invention, one or more power management configuration bits (PMCB) are assigned to the sense amps for shared resources (input lines) of a PLD, in addition to a single configuration bit per macrocell of a PLD for the sense amps associated with the private resources. This is implemented with particular sense amp circuits. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1a is a circuit diagram of a prior art sense amp. 
     FIG. 1b is a circuit diagram of a prior art NOR gate. 
     FIG. 2 is a block diagram of a prior art PLD architecture. 
     FIG. 3 is a circuit diagram of a prior art macrocell. 
     FIG. 4 is a block diagram of a prior art PLD power management circuit. 
     FIG. 5 is schematic of one embodiment of the present invention. 
     FIG. 6(a) is a schematic of another embodiment of the present invention. 
     FIG. 6(b) is a schematic of another embodiment of the present invention. 
     FIG. 7 is a circuit diagram of a sense amp used in one embodiment of the present invention. 
     FIG. 8 is a large driver circuit of the present invention with power management. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 5 shows a PLD architecture wherein power is allocated to resources (input lines) shared between two or more macrocells. Shared resources, lines S1 and S2, have respectively in-line sense amps 33 and 34 with their power supply voltage controlled by configuration bit SCB. Lines S1 and S2 are shareable between macrocells N+1 and N by way of programmable multiplexers 35, 36, 37, 38, controlled respectively by multiplexer configuration bits MCB1, MCB2, MCB3, MCB4. Sense amps 41, 42 are programmably controlled by &#34;private&#34; configuration bit CB N+1  to provide power to respective private resource lines 39, 40 for macrocell N+1. Similarly, sense amps 45, 46 are programmably controlled by &#34;private&#34; configuration bit CB N  to provide power to private resource lines 43, 44 for macrocell N. 
     Resource lines S1 and S2 are shared between macrocells N+1 and N by appropriately setting at least one of multiplexer configuration bits MCB1, MCB2 and at least one of multiplexer configuration bits MCB3, MCB4. If shared resource lines S1 and S2 are to be used for fast logical functions in macrocells N+1 and N, shared configuration bit SCB is set to configure sense amps 33, 34 to the high power state. 
     If shared resource lines S1 and S2 are shared between macrocells N+1 and N for normal speed functions, the shared configuration bit SCB is set to operate sense amps 33 and 34 in the low speed mode to economize power consumption. (It is to be understood that configuration bit SCB and the other configuration bits mentioned herein are conventionally programmably set by connected fuses, anti-fuses, EPROM cells, EEPROM cells, latches, or similar elements) 
     Since multiplexers 35, 36, 37, and 38 selectively configure the use of shared resource lines S1 and S2, high speed power consuming functions are configured among a minimal number of logic elements, thus economizing power usage while maintaining the flexibility of implementing high speed operation with shared resources. 
     It should be noted that the present invention encompasses embodiments having an arbitrary number of shared and private resource lines. 
     One embodiment for a complex EPLD applies to shareable product terms within a macrocell in which there are five product terms private to each macrocell and 12 shareable product terms, each of which may be used in any of 9 macrocells within a logic block. FIG. 6 shows this embodiment with macrocell 71 of the nine macrocells in the logic block. Each of the five private product terms 64, 65, 66, 67, 68 is controlled by a single power management control bit 69, with another power management control bit 70 controlling all the shareable product terms 72 in the macrocell. Multiplexers 73, . . . , 84 select among the 12 shareable product terms 72 as specified by the setting of multiplexer configuration bits 73.1, . . . , 84.1. In this embodiment, if there is at least one macrocell using a shareable product term configured for fast operation, then all shareable product terms are configured for fast operation. 
     A variation of the circuit of FIG. 6(a) above uses a separate PMCB for each private and each shareable resource line, as shown in FIG. 6(b). Configuration bits SCB1 and SCB2 control the sense amplifiers 93 and 94 of the shared resource lines S1.1 and S2.1. For macrocell N+1, configuration bits CB1 N+1  and CB2 N+1  control the sense amps 101 and 102 for private resource lines 99 and 100. For macrocell N, configuration bits CB1 N  and CB2 N  control the sense amps 105 and 106 for private resource lines 103 and 104. Providing a separate configuration bit for each private line and shared line sense amp allows even more precise control of speed and power consumption. 
     FIG. 7 shows a sense amp (as used in the circuits of FIGS. 6(a) and 6(b)) programmable for setting power consumption and hence speed, in accordance with the invention. Voltage V bias  is usually at approximately 3 volts, thereby turning on transistor 50 which has a relatively small active (channel region) area. Configuration bit CB (which is the bit SCB or CB of FIG. 5) controls the gate of transistor 47 and connects to the input of inverter 48. The output of inverter 48 connects to the gate of transistor 49. When the control bit CB is low (typically at ground) current from bit line 85 flows through transistor 50. However, when the configuration bit CB is set (high state) transistor 47 is turned on, enabling voltage V bias  to charge the gate of large transistor 51, thereby allowing more current to flow between node 85 and node A through both of transistors 50 and 51. Large transistor 51 has a relatively large active area. Transistor 49 grounds the gate of the large transistor 51 when configuration bit CB is set low. Pullrup P-type transistor 50-1 is connected to supply voltage V DD . 
     It is to be understood that other programmable sense amps are also usable in accordance with the invention. 
     The above-described power management scheme is extendable to circuits that draw large AC currents as well, such as large internal drivers (such as drivers for the central switching matrix, for example). In a PLD, such large internal drivers (typically standard CMOS inverters) drive the interconnect matrix (UIM) 16 of FIG. 2. Large transient AC power supply currents are created when these internal drivers switch while drawing large current. Providing a current limiting power management control bit for these drivers reduces the transient AC power supply currents if the driver is not involved in high speed operation. Since each UIM driver (see lines 20 in FIG. 2) can drive more than one macrocell, each UIM driver is a shareable resource, and hence a power management configuration bit may be assigned to each UIM driver much like the case of FIG. 6a. The configuration bit modifies the operation of the driver circuit such that the total AC current during switching is reduced, but with a resulting slower switching speed. Power management of the UIM drivers may be handled by the circuit of FIG. 8. 
     FIG. 8 shows an alternative driver circuit with programmable power management. Supply voltage VDD is applied to the source terminal of P-channel transistor 86. Ground voltage is applied to N-channel transistor 87. Thus transistors 86 and 87 are always on and supply drive to inverter INV8. But transistors 86 and 87 are small in channel width, and thus consume only a low current during switching. When current is supplied only by transistors 86 and 87 the driver is in a low-current low-speed mode. In addition, large P-channel transistor 88 is provided in parallel with transistor 86, and large N-channel transistor 89 is provided in parallel with transistor 87. Transistors 88 and 89 are controlled by the CB signal, a high CB signal turning on both transistors 88 and 89 and a low CB signal turning off transistors 88 and 89. Thus a low CB signal causes inverter INV8 to operate in a low-speed low-current mode (with reduced noise) and a high CB signal causes inverter INV8 to operate in a high-speed, high power mode (with higher switching noise). Other embodiments can provide N-channel transistor 89 without P-channel transistor 88. With two control signals such as CB, transistors 88 and 89 can be controlled separately for further choice of power level. 
     This disclosure is illustrative and not limiting; further modifications will be apparent to one skilled in the art and are intended to fall within the scope of the appended claims. For example, the above discussion relates to drivers for a UIM, however the same power management can be used for other purposes which use shared resources.