Configuration bit architecture for programmable integrated circuit device

An array of memory cells on an integrated circuit device includes a plurality of memory cells arranged in at least one column. Each of the memory cells includes a plurality of transistors forming two complementary memory nodes. Each of the complementary memory nodes is connected to a respective pair of pull-up or pull-down transistors, which are connected in series and have a shared node between them. For a particular one of the memory cells, one of the shared nodes associated with one of the complementary memory nodes is directly connected to a corresponding respective shared node associated with a corresponding complementary memory node in a second one of the memory cells, and another of the shared nodes associated with another of the complementary memory nodes is directly connected to a corresponding shared node associated with a corresponding complementary memory node in a third one of the memory cells.

FIELD OF THE INVENTION

This invention relates to a configuration bit architecture for a programmable integrated circuit device (e.g., a field-programmable gate array or FPGA), and particularly to such an architecture having reduced leakage.

BACKGROUND OF THE INVENTION

Early programmable devices were one-time configurable. For example, configuration may have been achieved by “blowing”—i.e., opening—fusible links. Alternatively, the configuration may have been stored in a programmable read-only memory. Those devices generally provided the user with the ability to configure the devices for “sum-of-products” (or “P-TERM”) logic operations. Later, such programmable logic devices incorporating erasable programmable read-only memory (EPROM) for configuration became available, allowing the devices to be reconfigured.

Still later, programmable devices incorporating static random access memory (SRAM) elements for configuration became available. These devices, which also can be reconfigured, store their configuration in a nonvolatile memory such as an EPROM, from which the configuration is loaded into the configuration elements when the device is powered up. These devices generally provide the user with the ability to configure the devices for look-up-table-type logic operations.

One characteristic of the configuration elements is leakage, which increases power consumption by the programmable device. Leakage can be reduced by using stacked pull-up or pull-down transistors in the configuration memory. However, as device feature sizes decrease, it becomes increasingly difficult to implement stacked transistors without a large device area penalty, because of difficulty in isolating the nodes between the stacked transistors.

SUMMARY OF THE INVENTION

The inability to isolate the shared node between two pull-up or pull-down transistors is turned to advantage by intentionally interconnecting the shared nodes of adjacent configuration memory cells in an alternating pattern which is described in more detail below. Depending on the particular configuration bit stored in each cell, the interconnected nodes will either leak or not leak. Where the nodes do not leak, the situation is improved over an architecture that does not include interconnected nodes. Where the nodes do leak, the situation is no worse than an architecture that does not include interconnected nodes. As will be seen below, because most programmable device configuration bitstreams contain mostly zeroes, shared nodes that do not leak will normally predominate, and leakage is reduced in most cases.

In accordance with the present invention there is provided an array of memory cells on an integrated circuit device, including a plurality of memory cells arranged in at least one column. Each of the memory cells includes a plurality of transistors forming two complementary memory nodes, with one of the complementary memory nodes storing a value and another of the complementary memory nodes storing a complement of the value. Each respective one of the complementary memory nodes is connected to a respective pair of pull-up or pull-down transistors. The respective pair of pull-up or pull-down transistors is connected in series and has a respective shared node between them. For a particular one of the memory cells, one of the respective shared nodes associated with one of the complementary memory nodes is directly connected to a corresponding respective shared node associated with a corresponding complementary memory node in a second one of the memory cells, and another of the respective shared nodes associated with another of the complementary memory nodes is directly connected to a corresponding respective shared node associated with a corresponding complementary memory node in a third one of the memory cells.

A programmable integrated circuit device incorporating such a memory array, and a method of forming such a memory array, are also provided.

DETAILED DESCRIPTION OF THE INVENTION

As is well known, an FPGA or similar programmable device may include logic elements, each of which contains a look-up table that can be programmed or configured to provide a desired set of outputs for each potential set of inputs by loading the look-up table with a particular set of bit values. Similarly, the logic elements may be interconnected by configurable interconnection conductors that allow inputs and outputs of the logic elements to be routed as desired. In such devices, broadly speaking, the loading of the look-up tables, as well as the configuration of the interconnection conductors, is accomplished by a set of configuration bits (sometimes referred to as the “configuration bitstream”) which, in the case of the look-up tables, represent the values in the look-up tables, and in the case of the interconnection conductors, selectively close switches (e.g., transistors) that connect one conductor to another to implement the desired routing.

The configuration bits may be stored on the programmable device in memory cells provided for that purpose. Although the configuration memory cells may be located near the logic or interconnect components that they program, the configuration memory cells tend to be clustered near each other in one or more arrays on the programmable device.

A typical configuration for a known configuration memory cell100is shown inFIG. 1. In memory cell100, a bit is stored on two complementary nodes mem0101and mem1102, between respective pull-up and pull-down transistors111,121and112,122. Writing is accomplished using write transistors131,132by applying signals to write word line wwl103, write bit line wbl104, and inverse write bit line wblb114. Reading is accomplished at read bit line rbl105using read transistor106, and read transistor107gated by read word line rwl108. Although memory cell100uses eight transistors, other configurations, such as a six-transistor memory cell (not shown), are possible.

In order to reduce leakage in memory cell100, a known alternate architecture may be used in memory cell200(FIG. 2), where pull-up transistors111,112may be replaced by stacked pull-up transistors211,221and212,222.

The ability of the stacked pull-up (or pull-down) transistors to reduce leakage in memory cell200is dependent at least in part on the ability to isolate nodes231and232. However, as device feature sizes become smaller, it becomes more difficult to achieve such isolation without a large area penalty. For example, in non-planar multigate field-effect transistors, commonly referred to as finFETs, the area penalty to isolate these nodes may be nearly 100% (i.e., the cell size would nearly double).

Embodiments of the present invention allow for stacking of pull-up or pull-down transistors with little area penalty, taking advantage of the difficulty in isolating the nodes between the stacked transistors (hereinafter referred to as the “stacked pull-up node” or “stacked pull-down node”) by intentionally connecting those nodes in pairs of adjacent transistors. The nodes are connecting in an alternating pattern in which the stacked pull-up or pull-down node associated with one of the two complementary memory nodes in a particular cell is connected the stacked pull-up or pull-down node associated with a corresponding complementary memory node in a neighboring cell on one side of (i.e., “above” or “below”) the particular cell, while the other of the two complementary memory nodes in the particular cell is connected to the stacked pull-up or pull-down node associated with the corresponding other complementary memory node in a neighboring cell on the other side of (i.e., “below” or “above”) the particular cell. In other words, each of the two stacked pull-up or pull-down nodes in a particular cell is connected a corresponding stacked pull-up or pull-down node in a neighboring cell, but the two stacked pull-up or pull-down nodes are connected to stacked pull-up or pull-down nodes in different neighboring cells. Specifically, if the stacked pull-up or pull-down node associated with one of the complementary memory nodes in a “current” cell is connected to the stacked pull-up or pull-down node associated with a corresponding one of the complementary memory nodes in the cell “above” the current cell, then the stacked pull-up or pull-down node associated with the other one of the complementary memory nodes in a “current” cell is connected to the stacked pull-up or pull-down node associated with the corresponding other one of the complementary memory nodes in the cell “below” the current cell.

This arrangement of interconnections is referred to in this description, and in the claims that follow, as an “alternating complementary pattern.” In particular, the term “alternating complementary pattern,” or variants thereof, used in the claims that follow should be interpreted only by reference to this description, and not by reference to any dictionary or other extrinsic source.

FIG. 3shows such an arrangement involving three memory cells301,302,303, each of which is similar to memory cell200. The center cell302in this arrangement corresponds to the “current” cell referred to above, while upper cell303corresponds to the cell “above” the current cell, and lower cell301corresponds to the cell “below” the current cell. As can be seen, stacked pull-up node231associated with mem0node101of center cell302is connected by connection240to stacked pull-up node231associated with mem0node101of lower cell301, while stacked pull-up node232associated with mem1node102of center cell302is connected by connection241to stacked pull-up node232associated with mem1node102of upper cell303.

As can also be seen, the pattern continues to further adjacent cells, with stacked pull-up node232associated with mem1node102of lower cell301having a connection242extending to the unseen stacked pull-up node232associated with mem1node102of another cell below lower cell301, and similarly, with stacked pull-up node231associated with mem0node101of upper cell303having a connection243extending to the unseen stacked pull-up node231associated with mem0node101of another cell above upper cell303. This alternating complementary pattern continues until the last upper and lower rows of the array of configuration memory cells, where unpaired nodes either may be left unshared, or may be connected to other non-contention logic or the existing end cells that are used to protect memory arrays at the edges.

FIG. 4shows an arrangement similar toFIG. 3, but showing only two cells rather than three cells, and illustrating the case where stacked pull-down transistors are used instead of stacked pull-up transistors. Cells401,402are, again, similar to cell100, but with pull-down transistors121,122be replaced by stacked pull-down transistors411,421and412,422. As can be seen, stacked pull-down node431associated with mem0node101of cell401is connected by connection440to stacked pull-down node431associated with mem0node101of cell402. As can also be seen, stacked pull-down node432associated with mem1node102of cell401has a connection441extending to the unseen stacked pull-down node432associated with another unseen cell below cell401, while stacked pull-down node432associated with mem1node102of cell402has a connection442extending to the unseen stacked pull-down node432associated with another unseen cell above cell402.

FIGS. 5 and 6show the effect on leakage of the disclosed alternating complementary pattern, using the stacked pull-down case ofFIG. 4as an example.

InFIG. 5, both cells501and502store the same value, with a ‘1’ on mem0node101of each cell and a ‘0’ on mem1node102of each cell. Considering the stacked pull-down nodes431associated with the two mem0nodes101, which pull-down nodes431are connected by connection440, all of the pull-down transistors411,421are OFF, meaning each mem0node101is two transistors away from Vss, meaning that leakage is prevented or reduced. The same would be true in the pull-up case with a ‘1’ on each mem0node101.

On the other hand, inFIG. 6, where the two cells601and602store opposite values, with a ‘0’ on mem1node102of cell602and a ‘1’ on mem1node102of cell601, the pull-down transistors411,421associated with mem0node101of cell602are OFF but the pull-down transistors411,421associated with mem0node101of cell601are ON, meaning that both pull-down nodes431associated with the two mem0nodes101are at Vss. Therefore, mem0node101of cell602is only one transistor away from Vss, and is leaking.

As noted above, in planar transistor technologies, when implementing stacked pull-up or pull-down transistors, the nodes between the stacked transistors could easily be isolated, and therefore leakage could be reduced. But in non-planar technologies, such as non-planar multigate field-effect transistors, leakage could not be reduced without substantial area penalty because of the difficulty in isolating the nodes between the stacked transistors. As described in connection withFIGS. 5 and 6, however, leakage can be reduced, using the disclosed alternating complementary pattern of shared nodes, when adjacent cells store the same value, although not when adjacent cells store opposite values. However, this is still an improvement over previously known arrangements where leakage could not be reduced at all, or only at great area penalty.

For a programmable device such as an FPGA using this arrangement, the actual leakage reduction will depend on the particular configuration bitstream for a given user logic design, which will determine how many cells store ‘0’ and how many cells store ‘1’, and what the pattern is (i.e., whether adjacent cells store identical or differing bits). Empirically, it has been observed that most FPGA configuration bitstreams are mostly zeroes—i.e., about 70% to about 80% zeroes.

It can be shown that for a configuration bitstream that is 80% zeroes, depending on the pattern of ones and zeroes in the bitstream, using the disclosed alternating complementary pattern of shared nodes will reduce leakage by between about 20% and about 26%. For a configuration bitstream that is 70% zeroes, it can be shown that, depending on the pattern of ones and zeroes in the bitstream, using the disclosed alternating complementary pattern of shared nodes will reduce leakage by between about 13% and about 26%. For a configuration bitstream that is 60% zeroes, it can be shown that, depending on the pattern of ones and zeroes in the bitstream, using the disclosed alternating complementary pattern of shared nodes will reduce leakage by between about 6% and about 26%. For a configuration bitstream that is 50% zeroes, it can be shown that, depending on the pattern of ones and zeroes in the bitstream, using the disclosed alternating complementary pattern of shared nodes will reduce leakage by between about 3% and about 26%. Thus, for a configuration bitstream having as few as about 50% zeroes, there is at least some improvement, and as much as about 26% improvement, or perhaps even up to about 30% improvement, when implementing configuration RAM cells with stacked pull-up or pull-down, even in a non-planar multigate field-effect transistor environment, using the disclosed alternating complementary pattern of shared nodes of the stacked pull-up or pull-down transistors.

FIG. 7is a flow diagram of one possible embodiment700of a method according to the present invention for forming a memory structure on an integrated circuit device. At701, a memory having a plurality of memory cells arranged in at least one column is formed from a plurality of transistors having two complementary memory nodes, with each respective one of the complementary memory nodes being connected to a respective pair of pull-up or pull-down transistors.

At702, for each particular one of the memory cells, one of the respective shared nodes associated with one of the complementary memory nodes is directly connected to a corresponding respective shared node associated with a corresponding complementary memory node in a second one of the memory cells. The second one of the memory cells may be above, and may be adjacent to, the particular one of the memory cells.

At703, another of the respective shared nodes associated with another of the complementary memory nodes is directly connected to a corresponding respective shared node associated with a corresponding complementary memory node in a third one of the memory cells. The third one of the memory cells may be below, and may be adjacent to, the particular one of the memory cells.

When the method ends at704, the result is a memory array in which the memory cells in the array are connected by an alternating complementary pattern of shared nodes of the stacked pull-up or pull-down transistors.

Thus it is seen that a memory structure having reduced leakage, and a method for forming that structure, are provided. Although the structure and method have been described in the context of a configuration memory for a programmable integrated circuit device, and in terms of non-planar multigate field-effect transistors, the invention is applicable to any type of memory device using any transistor construction.

A programmable logic device (PLD)104incorporating configuration memory140according to embodiments of the present invention, along with programmable logic141and configurable interconnect142, may be used in many kinds of electronic devices. One possible use is in a data processing system1400shown inFIG. 8. Data processing system1400may include one or more of the following components: a processor1401; memory1402; I/O circuitry1403; and peripheral devices1404. These components are coupled together by a system bus1405and are populated on a circuit board1406which is contained in an end-user system1407.

System1400can be used in a wide variety of applications, such as computer networking, data networking, instrumentation, video processing, digital signal processing, or any other application where the advantage of using programmable or reprogrammable logic is desirable. PLD140can be used to perform a variety of different logic functions. For example, PLD104can be configured as a processor or controller that works in cooperation with processor1401. PLD104may also be used as an arbiter for arbitrating access to a shared resources in system1400. In yet another example, PLD104can be configured as an interface between processor1401and one of the other components in system1400. It should be noted that system1400is only exemplary, and that the true scope and spirit of the invention should be indicated by the following claims.

Various technologies can be used to implement PLDs104as described above and incorporating this invention.

It will be understood that the foregoing is only illustrative of the principles of the invention, and that various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention. For example, the various elements of this invention can be provided on a PLD in any desired number and/or arrangement. One skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims that follow.