This invention relates generally to integrated circuits (ICs), and more particularly to interconnect circuits in configurable logic devices.
Many ICs are made up of millions of interconnected devices, such as transistors, resistors, capacitors, and diodes, on a single chip of semiconductor substrate. CMOS circuits and fabrication technology are commonly used in complex ICs. CMOS circuits use PMOS and NMOS devices to implement functions such as logic.
Field-programmable gate arrays (“FPGAs”) are a type of configurable logic device that often incorporate CMOS techniques in some functional blocks of the FPGA, such as logic blocks, and incorporate other techniques, such as NMOS techniques, in other functional blocks, such as interconnect blocks. An interconnect block is basically a matrix of user-selectable switches that connect circuits and nodes of other portions of the FPGA together, or connect circuits and nodes of FPGA to external pins. The interconnect and logic blocks allow the FPGA to be configured into a variety of circuits to perform user-specified operations. NMOS pass gates in interconnect circuits offer high-speed switching operation at the expense of relatively high leakage current (power draw), and draw significant current even in user standby mode.
Interconnect circuits that offer low standby current draw while providing sufficiently high operational switching speed are desirable.
An integrated circuit, such as a field programmable gate array or other configurable logic device, has an interconnect circuit selectively configurable to operate in a high-speed mode or in a low-power mode. The interconnect circuit is operable from a higher voltage supply or a lower voltage supply to change operating modes without reconfiguring data paths.
The present invention is applicable to a variety of integrated circuits (ICs). An appreciation of the present invention is presented by way of specific examples utilizing configurable ICs such as field programmable gate arrays (FPGAs). However, the present invention is not limited by these examples, and can be applied to any appropriate IC that includes configurable interconnect circuits.
In a conventional NMOS interconnect circuit, a high-value input applied to the input is diminished by the Vt drop through the NMOS pass gate. Unfortunately, lowering the Vt generally also increases the leakage current through the NMOS pass gate, even when the NMOS pass gate is not active. Leakage current not only consumes power, it can also cause voltages at other nodes in the interconnect circuit or in the FPGA to rise, or fall if there is too much IR drop. Although increasing the Vt of an NMOS pass gate would reduce leakage current, it would also slow operation of the interconnect circuit and further degrade the voltage level of a high-value data bit passed through the NMOS pass gate.
In a particular embodiment, all of the CMOS pass gates, which include the first tier CMOS pass gates 107, 109, 111, 113, 115, 117 and the second tier CMOS pass gates 112, 114, 116, 118, are high threshold voltage CMOS pairs. Several techniques are known in the art of CMOS fabrication for increasing the threshold voltage of a field-effect transistor or of a CMOS pair, such as by adjusting the doping concentration of the transistor during manufacturing or other technique. In a particular embodiment, CMOS pairs in a logic block of an FPGA (see
NMOS pass gates having higher threshold voltages generally require higher drive voltages to obtain a given operating speed. Similarly, for a fixed threshold voltage, increasing the NMOS gate drive voltage generally increases operating speed at which a data value will be transmitted from an input to the output. An FPGA according to a particular embodiment has two positive on-chip voltage supplies, Vcc, which is the positive voltage supply used for most of the FPGA circuit operation, and Vgg, which is higher than Vcc and is used for programming configuration memory and other critical circuit operations. In a typical conventional FPGA, memory cells associated with interconnect circuits are all driven by Vgg. In particular embodiments, memory cells associated with high-performance portions of CMOS interconnect circuits are selectively switchable to operate off of Vcc or Vgg. Hooking up all memory to Vgg is not desirable, due to the increased stand-by power draw and the increased demands it would create on the Vgg supply.
In a particular embodiment, Vgg is generated from Vcc-aux, which is an external voltage that is higher than Vcc. Vgg is regulated to insure proper operation of the FPGA at the process, voltage, and temperature (“PVT”) extremes of the FPGA. For example, Vgg is regulated to ensure that the FPGA is operational at the lowest specified operating temperature.
In prior FPGAs using NMOS pass gates, the NMOS pass gates in interconnect circuits were controlled by Vgg, which provided high-speed operation and good data fidelity. However, the voltage regulation circuit for Vgg consumes a relatively large amount of power, even when the FPGA, or the portion of the FPGA utilizing the NMOS interconnect, is in standby mode.
In the interconnect circuit of
The first tier of CMOS pairs function as four 3-to-1 multiplexers, and the second tier of CMOS pairs 112, 114, 116, 118 function as a 4-to-1 multiplexer that operates in conjunction with the first tier to provide a 12-to-1 multiplexer function. The multiplexer output node 132 of the 12-to-1 multiplexer circuit is coupled to an output bit circuit 134 that operates as an inverter/latch. The PMOS FET 136 is a weak pull-up transistor that operates as a weak latch and PMOS FET 138 resets the output node 132 when a reset signal turns on FET 138, connecting the multiplexer output node 132 to Vcc and initializing node 132. In low-power operation according to a particular embodiment, the PMOS FET 136, which in a particular embodiment is designed to be a high Vt transistor, is OFF, reducing current through FET 136 to ground through NMOS FET 140. In high-speed operation, FET 136 follows internal node 142 to supply current to multiplexer output node 132. The output bit is asserted at interconnect output node 144. It is desirable to operate high Vt transistors off of the higher voltage supply (e.g., Vgg) at low temperatures, since threshold voltage increases with decreasing temperature.
Two of the five-by-one multiplexers 202, 204 are designed and fabricated with low-Vt transistors, which provide high speed operation, and the other two five-by-one multiplexers 206, 208 are designed and fabricated with higher-Vt (e.g., regular Vt) transistors, which provide lower power consumption. The transistors can be CMOS transistors, as described in reference to
The multiplexer 212 has two low-Vt pass gates and two high-Vt pass gates 218, 220 and two regular, higher-Vt pass gates 222, 224. The low-Vt pass gates 218, 220 are coupled to the low-Vt multiplexers 202, 204, while the higher-Vt pass gates 222, 224 are coupled to the higher-Vt multiplexers 206, 208. In a particular embodiment, the IC in which the interconnect circuit 200 is incorporated allows user selection of either the low-Vt (high speed) multiplexer paths 202, 204 to the output 216 or the higher-Vt (low power) multiplexer paths 206, 208 to the output 216. In an alternative embodiment, all the pass gates in multiplexer 212 are low-Vt pass gates.
Selection can be fixed for a particular application, or switched from one operating condition to the other as desired. For example, an application may select (i.e., route the inputs) to the high-speed multiplexer paths when active (i.e., during data transmission), and then switch to a low power mode (“standby”) after a selected timeout until data transmission resumes using a partial reconfiguration technique. In a particular embodiment, the power (bias voltage, see
In an alternative embodiment, the output bit and/or the four-to-one multiplexer uses regular (higher) Vt NMOS FETs. In a further embodiment, the PMOS FETs in the multiplexers and/or output bit are also low-Vt FETs. In a particular embodiment, the NMOS pass FETs in the low-power interconnect block 254 have a threshold voltage at least 50 mV higher than the NMOS pass FETs in the high-speed interconnect block 252 and in a particular embodiment about 80 mV higher. In a particular embodiment, the IC is an FPGA and is configured to run an application that uses the high-speed interconnect block 252 for some signal paths and concurrently uses the low-power interconnect block 254 for other signal paths. In a particular embodiment, a pull-up FET in the output bit 266 is a regular (higher) Vt FET, and a pull-down FET, which in a further embodiment is a NMOS FET, is a low Vt FET. In a further embodiment, the high-speed interconnect block 252 is driven by a first power supply 253 having a first supply voltage (V1, e.g., Vgg) greater than a second supply voltage (V2, e.g., Vcc) provided by a second power supply 255 that drives the low-power interconnect block 254.
In an alternative embodiment, both interconnect blocks are driven by the same voltage supply. In some applications, the low-power interconnect block 254 remains ON while power (i.e., voltage supply 253, or alternatively a common voltage supply) is disconnected from the high-speed interconnect block 252. Switches between the power supplies 253, 255 and interconnect blocks 252, 254 and associated control lines are omitted for clarity of illustration. Applications that configure data signal paths that remain set throughout the operation of the application are commonly called “static connections”.
The multiplexers 270, 272, 274, 276 in the low-power interconnect block 254 are fabricated with MOS transistors designed to have a higher threshold voltage than the MOS transistors used in the high-speed interconnect block 252, as are the MOS transistors in the four-to-one multiplexer 278 and in the output bit 280. In a further embodiment, the output bit 280 includes a low-Vt pull down FET and a pull-up FET with a regular (i.e., higher) Vt.
In an alternative embodiment, the FPGA is configured to run an application that uses the high-speed interconnect block 252 for selected signal paths during one portion of operation, and uses the low-power interconnect block 254 (i.e., the FPGA is partially reconfigured during the application) for the selected signal paths during another portion of operation. Such operation is commonly referred to as “dynamic connection”.
In yet another embodiment, a user selects which interconnect blocks in an FPGA having both low-power and high-speed interconnect blocks are used in a user-specified application. For example, a user can define applications with interconnect blocks that are all high-speed, all low-power, a mixture of high-speed and low power, or that toggle between low-power and high-speed during operation of the application. In many cases, an FPGA has more interconnect paths available than are required for a user application. Thus, a single FPGA design (IC chip) can be used in a variety of applications. In a particular embodiment, about one-half of the interconnect blocks (i.e., interconnect pins/nodes/paths) are high-speed. In an exemplary net (application configuration), there are about one thousand data paths through interconnect blocks with about half the data paths being speed critical. If an application requires more of one type of interconnect block, for example more than half the data paths are speed critical, embodiments still obtain advantages by providing optimized interconnects (either high-speed or low-power) for a large portion of the signal paths. Hybrid interconnect circuits are also particularly desirable in ICs, including FPGAs, fabricated according to a node geometry less than 180 nm due to the increased leakage currents associated with the smaller geometries. A particular embodiment is incorporated in an FPGA fabricated according to a 90 nm node geometry.
The method 400 optionally includes a step of loading (storing) the first and second bitstreams to memory of the FPGA (step 402). Alternatively, one or both bitstreams are stored in an external PROM or other external memory device and selectively loaded into the FPGA.
An interconnect circuit is configured to operate in a first mode (step 404) to connect a plurality of inputs to one or more outputs (step 406). The interconnect circuit is then configured to operate in a second mode (step 408) to connect the plurality of inputs to the one or more outputs (step 410). In a further embodiment, the interconnect circuit is re-configured to operate in the first mode (step 412).
In a particular embodiment, the first mode is a low-power mode and the second mode is a high-speed mode. In a particular embodiment, NMOS gates of the interconnect circuit are selectively connected to a first voltage supply in the first mode and are selectively connected to a second voltage supply in the second mode where the second voltage supply provides a higher voltage than the second voltage supply. In a particular embodiment, the first voltage supply is a Vcc supply and the second voltage supply is a Vgg supply.
In an alternative embodiment, the first mode is a high-speed mode and the second mode is a low-power mode. In a particular embodiment, NMOS gates of the interconnect circuit are selectively connected to a first voltage supply in the first mode and are selectively connected to a second voltage supply in the second mode where the first voltage supply provides a higher voltage than the second voltage supply. In a particular embodiment, the first voltage supply is a Vgg supply and the second voltage supply is a Vcc supply.
In a particular embodiment, the IC is an FPGA configured to operate in one mode until a condition is met, and then to switch to the second mode. For example, the FPGA operates the interconnect circuit in a high-speed mode during data transmission through the interconnect circuit, and then automatically switches to a low-power standby mode (e.g., after a selected time-out) until data transmission resumes. When data transmission resumes, the interconnect returns to the high-speed mode. Thus, the interconnect can toggle between low-power and high-speed operation without re-routing the data paths.
The method 500 optionally includes a step of loading (storing) the bitstream to memory of the FPGA (step 502). Alternatively, the bitstream is stored in an external PROM or other external memory device and loaded into the FPGA.
The interconnect circuit is configured to provide a first plurality of inputs to a first output through a high-speed portion of the interconnect circuit (step 504), and to operate the IC in a high-speed interconnect configuration (step 506). The interconnect circuit is then configured to provide a second plurality of inputs to a second output through a low-power portion of the interconnect circuit (step 508), and to operate the IC in a low-power interconnect configuration (step 510).
In particular embodiment, the high-speed portion is driven by a first gate voltage (e.g., Vgg) and the low-power portion is driven by a second gate voltage (e.g., Vcc) less than the first voltage. In another embodiment, the high-speed portion is fabricated with transistors designed to have (i.e., fabricated with) a first threshold voltage, and the low-power portion is designed to have a second threshold voltage less than the first threshold voltage. In one embodiment, the higher Vt transistors having a Vt at least 50 mV higher than the low Vt transistors, and in a more particular embodiment are designed (and fabricated) to have a Vt about 80 my higher, which reduces leakage current by a factor of ten.
In some embodiments, the high-speed and low-power portions of the interconnect circuit are CMOS circuits, in other embodiments they are NMOS circuits, and in yet others are mixed CMOS and NMOS circuits. In a further embodiment, the high-speed portion of the interconnect circuit is at least partially fabricated using low Vt transistors and is connected to a first voltage supply (e.g., Vgg) and the low-power portion of the interconnect is fabricated using higher (regular) Vt transistors and is connected to a second, lower voltage supply (e.g., Vcc). In a further embodiment, the transistors are selectively coupled to (i.e., configurable) either the higher voltage supply or the lower voltage supply, or are both coupled to the same power supply.
The FPGA architecture of
In some FPGAs, each programmable tile includes a programmable interconnect element (INT 611) having standardized connections to and from a corresponding interconnect element in each adjacent tile. Therefore, the programmable interconnect elements taken together implement the programmable interconnect structure for the illustrated FPGA. The programmable interconnect element (INT 611) also includes the connections to and from the programmable logic element within the same tile, as shown by the examples included at the top of
For example, a CLB 602 can include a configurable logic element (CLE 612) that can be programmed to implement user logic plus a single programmable interconnect element (INT 611). A BRAM 603 can include a BRAM logic element (BRL 613) in addition to one or more programmable interconnect elements. Typically, the number of interconnect elements included in a tile depends on the height of the tile. In the pictured embodiment, a BRAM tile has the same height as four CLBs, but other numbers (e.g., five) can also be used. A DSP tile 606 can include a DSP logic element (DSPL 614) in addition to an appropriate number of programmable interconnect elements. An 10B 604 can include, for example, two instances of an input/output logic element (IOL 615) in addition to one instance of the programmable interconnect element (INT 611). As will be clear to those of skill in the art, the actual I/O pads connected, for example, to the IOBs 604 are manufactured using metal layers above the various illustrated logic blocks, and typically are not confined to the area of the IOBs 604. In the pictured embodiment, a columnar area near the center of the die is used for configuration, clock, and other control logic.
Some FPGAs utilizing the architecture illustrated in
Note that
While the present invention has been described in connection with specific embodiments, variations of these embodiments will be obvious to those of ordinary skill in the art. For example, alternative layouts of unit cells, array cores, logic gates, and control devices and circuits could be alternatively used. Therefore, the spirit and scope of the appended claims should not be limited to the foregoing description.
Number | Name | Date | Kind |
---|---|---|---|
4204131 | Dozier | May 1980 | A |
4698760 | Lembach et al. | Oct 1987 | A |
5448198 | Toyoshima et al. | Sep 1995 | A |
5461338 | Hirayama et al. | Oct 1995 | A |
5487033 | Keeney et al. | Jan 1996 | A |
5504440 | Sasaki | Apr 1996 | A |
5612636 | Ko | Mar 1997 | A |
5654898 | Roetcisoender et al. | Aug 1997 | A |
5661685 | Lee et al. | Aug 1997 | A |
5703522 | Arimoto et al. | Dec 1997 | A |
5787011 | Ko | Jul 1998 | A |
5808479 | Sasaki et al. | Sep 1998 | A |
5811985 | Trimberger et al. | Sep 1998 | A |
5815004 | Trimberger et al. | Sep 1998 | A |
5825707 | Nozawa et al. | Oct 1998 | A |
5880598 | Duong | Mar 1999 | A |
5880620 | Gitlin et al. | Mar 1999 | A |
5880967 | Jyu et al. | Mar 1999 | A |
5892961 | Trimberger | Apr 1999 | A |
5914616 | Young et al. | Jun 1999 | A |
5929695 | Chan et al. | Jul 1999 | A |
5984510 | Guruswamy et al. | Nov 1999 | A |
6055655 | Momohara | Apr 2000 | A |
6097113 | Teraoka et al. | Aug 2000 | A |
6163168 | Nguyen et al. | Dec 2000 | A |
6178542 | Dave | Jan 2001 | B1 |
6269458 | Jeter et al. | Jul 2001 | B1 |
6272668 | Teene | Aug 2001 | B1 |
6348813 | Agrawal et al. | Feb 2002 | B1 |
6362649 | McGowan | Mar 2002 | B1 |
6369630 | Rockett | Apr 2002 | B1 |
6380764 | Katoh et al. | Apr 2002 | B1 |
6448808 | Young et al. | Sep 2002 | B2 |
6486712 | Landry et al. | Nov 2002 | B1 |
6505322 | Yamashita et al. | Jan 2003 | B2 |
6539536 | Singh et al. | Mar 2003 | B1 |
6583645 | Bennett et al. | Jun 2003 | B1 |
6590419 | Betz et al. | Jul 2003 | B1 |
6604228 | Patel et al. | Aug 2003 | B1 |
6621325 | Hart et al. | Sep 2003 | B2 |
6630838 | Wong | Oct 2003 | B1 |
6721924 | Patra et al. | Apr 2004 | B2 |
6768335 | Young et al. | Jul 2004 | B1 |
6774705 | Miyazaki et al. | Aug 2004 | B2 |
6777978 | Hart et al. | Aug 2004 | B2 |
6930510 | New | Aug 2005 | B2 |
6949951 | Young et al. | Sep 2005 | B1 |
6950998 | Tuan | Sep 2005 | B1 |
6960934 | New | Nov 2005 | B2 |
7089527 | Hart et al. | Aug 2006 | B2 |
7138828 | New | Nov 2006 | B2 |
7225423 | Bhattacharya et al. | May 2007 | B2 |
Number | Date | Country |
---|---|---|
11-122047 | Apr 1999 | JP |
11-195976 | Jul 1999 | JP |
2001-015603 | Jan 2001 | JP |
2001-203325 | Jul 2001 | JP |
2002-538634 | Nov 2002 | JP |
WO 0052826 | Sep 2000 | WO |
WO 0128097 | Apr 2001 | WO |