This invention relates to volatile memory elements for integrated circuits and, more particularly, to volatile memory elements with transistor body biases that are controlled during operation.
Integrated circuits such as programmable logic devices may contain volatile memory elements in the form of static random access memory (SRAM) cells. In programmable logic device integrated circuits, SRAM cells may serve as configuration random access memory (CRAM) cells. Programmable logic devices are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. CRAM cells are used to store configuration data supplied by the user. Once loaded, CRAM cells supply control signals to transistors to configure the transistors to implement the desired logic function.
Volatile memory elements such as SRAM and CRAM cells are typically based on cross-coupled inverters (latches). In each memory element, the cross-coupled inverters may be connected to an address transistor that is turned on when data is being read from or written into the memory element. When no data is being read from or written into the memory element, the address transistor is turned off to isolate the memory element. Cross-coupled inverters and address transistors can be formed from complementary metal-oxide-semiconductor (CMOS) transistors such as n-channel metal-oxide-semiconductor (NMOS) and p-channel metal-oxide-semiconductor (PMOS) transistors.
As semiconductor technology scales towards smaller sizes, lower power supply voltages may be used to power integrated circuits. Lower power supply voltages and smaller devices may lead to decreased read and write margins for volatile memory elements. This can pose challenges for reliable device operation.
It would therefore be desirable to be able to provide volatile memory cells that demonstrate improved read and write margins.
In accordance with embodiments of the present invention, integrated circuits are provided that have body bias control circuitry. The body bias control circuitry may be used to supply body bias voltages to memory element transistors. The body bias voltages can be adjusted to facilitate read and write operations.
Memory elements are provided that are formed from cross-coupled inverters. The cross-coupled inverters may be formed from complementary metal-oxide-semiconductor (CMOS) transistors such as n-channel metal-oxide-semiconductor (NMOS) and p-channel metal-oxide-semiconductor (PMOS) transistors. These NMOS transistors and PMOS transistors may have body terminals that receive body bias voltages. Address transistors may be connected to the cross-coupled inverters. The address transistors may be turned on when data is being written into or read from the memory elements. The address transistors may be NMOS transistors that receive adjustable body bias voltages.
Body bias control circuitry is provided that provides customizable body bias voltages to the body terminals of NMOS and PMOS transistors that form the memory cells. The body bias control circuitry may reverse bias or forward bias select NMOS and PMOS transistors in order to improve read and write margins of memory elements. The body bias control circuitry may dynamically control body bias voltages to provide different body biases to NMOS and PMOS transistors of different memory cells depending on whether the operation being performing is reading or writing, or if writing, whether writing a logic value one or a logic value zero.
Further features of the invention, its nature, and various advantages will be more apparent from the accompanying drawings and the following detailed description.
The present invention relates to integrated circuit memory elements, and to body bias control circuitry for supplying customized body bias voltages to memory elements transistors.
Memory elements containing transistors with adjustable body biases may be used for any suitable integrated circuit. The integrated circuits may be memory chips, digital signal processing circuits with memory arrays, microprocessors, application specific integrated circuits with memory arrays, programmable logic device integrated circuits in which memory elements are used for configuration memory, or any other suitable integrated circuit. For clarity, the present invention will generally be described in the context of programmable logic device integrated circuits.
An illustrative programmable logic device 10 in accordance with an embodiment of the present invention is shown in
Programmable logic device 10 contains volatile memory elements 20 (also known as memory cells 20) that can be loaded with configuration data (also called programming data) using pins 14 and input/output circuitry 12. In the context of programmable logic device integrated circuits, the memory elements store configuration data and are therefore sometimes referred to as configuration random-access memory (CRAM) cells. Once loaded, the memory elements each provide a corresponding static control output signal that controls the state of an associated logic component in programmable logic 18. Typically the memory element output signals are used to control the gates of metal-oxide-semiconductor (MOS) transistors. Most of these transistors are generally n-channel metal-oxide-semiconductor (NMOS) pass transistors in programmable components such as multiplexers. When a memory element output is high, the pass transistor controlled by that memory element is turned on and passes logic signals from its input to its output. When the memory element output is low, the pass transistor is turned off and does not pass logic signals.
An architecture that may be suitable for arranging memory elements 20 in programmable logic device 10 is shown in
Circuitry 24 may control data loading (data writing) operations for array 28. Circuitry 24 may receive data such as configuration data from external sources via input path 30. Configuration data may be loaded into registers in circuitry 24 in series. These registers may then apply the configuration data to array 28 over paths 32. In differential schemes, each column of memory elements 20 has an associated pair of lines 32, which carry a true data signal D and its complement ND. In single-line scenarios, data D is conveyed over a single line 32 in each column.
Address decoder circuits in circuitry 24 may receive external control signals or addressing control signals can be generated internally in circuitry 24. The address decoder circuitry can then systematically assert desired address lines 34. Address lines 34 carry address signals ADD and are typically controlled independently in each row. As an address line 34 is asserted (i.e., as the signal ADD in a given row is taken high), the data on the data lines 32 is loaded into the memory elements 20 in that row. By addressing each row in this way, the entire array 28 may be loaded with configuration data.
Data reading operations for array 28 may be performed by systematically asserting desired address lines and monitoring the resulting data on data lines 32 (e.g., using sense amplifier circuitry in circuitry 24).
During normal operation, when memory cells 20 are neither being written to or read from, the output 38 of each memory element 20 may produce a corresponding static control signal OUT for controlling the gate of a transistor or other component in programmable logic 18 (see, e.g.,
Circuitry 24 may contain power supply circuitry that receives one or more power supply voltages such as Vext and Vss. (Positive power supply voltages such as Vext may be, e.g., 0.9 volts, 1.2 volts, 1.5 volts, 2.5 volts, etc. Ground power supply voltages such as Vss may be 0 volts, etc.) Circuitry 24 may produce one or more internal power supply voltages. Internal power supply voltages may be used to power address decoder and data register circuitry in circuitry 24 or to supply power to body bias control circuitry 50. Internal power supply voltages also may be used to power memory elements 20 in array 28. Paths 40 may be used to convey one or more positive power supply voltages to memory cells 20 and paths 44 may be used to convey a ground power supply voltage to memory cells 20.
If desired, power supply circuitry in circuitry 24 may be used to supply memory cells 20 with power supply signals that have time-varying magnitudes. For example, it may be advantageous to vary the power supply voltage signals to memory cells 20 during write operations to selectively weaken certain memory cell components relative to others, thereby improving write margin.
Other signals may be provided with “overdrive” voltage levels or otherwise adjusted levels that enhance operating margin. As an example of an overdrive scheme that may be used with array 28, consider the situation in which the address signal ADD is selectively provided with an overdrive voltage. With this type of arrangement, the magnitude of a “logic value one” address signal ADD may be varied as a function of time (e.g., from a nominal lower value of 0.9 volts to a higher “overdrive” value of 1.2 volts). Use of an elevated (e.g., 1.2 volt) ADD signal during write operations may help the address transistors to drive data into the memory cells and may therefore improve write margin. Use of a lower (e.g., 0.9 volt) ADD signal during read operations may help ensure that data is driven out of the memory cells successfully.
Circuitry 24 may contain body bias control circuitry 50. Body bias control circuitry 50 may receive internal power supply voltages and may use body bias selection logic to supply appropriate body bias voltages to transistors in memory cells 20. Paths such as paths 36 may be used to provide one or more body bias voltages to the body terminals of n-channel metal-oxide-semiconductor (NMOS) and p-channel metal-oxide-semiconductor (PMOS) transistors in memory cells 20. Forward bias voltages and reverse bias voltages may be applied.
Body bias control circuitry 50 may apply static body bias voltages to select NMOS and PMOS transistors. Body bias control circuitry 50 may also dynamically control body bias voltages to provide time-varying body bias voltages to body terminals of select NMOS and PMOS transistors in memory cells 50. Body bias control circuitry 50 may provide body bias voltages that strengthen or weaken transistors as appropriate to improve read margins during reading operations of memory cells 20. Similarly, body bias control circuitry 50 may provide various body bias voltages to cells 20 to strengthen or weaken transistors as appropriate to improve write margins during data writing operations. If desired, body bias voltages may be adjusted in real time so as to supply different body bias voltages when writing a logic value one or a logic value zero, thereby further improving write margins.
During writing operations, memory cells 20 that correspond to unasserted address lines 34 may be supplied with body bias voltages that help to ensure that these memory cells 20 will remain undisturbed while data is being loaded into memory cells 20 that correspond to an asserted address line 34. Another set of body bias voltages may be supplied during normal operation, when neither reading nor writing operations are being performed.
Memory elements 20 may be based on cross-coupled inverters (latches) or other circuit elements formed from NMOS and PMOS transistors. A pair of cross-coupled inverters (or other circuit elements) forms a bistable element for each memory cell. A schematic diagram of an illustrative NMOS transistor 122 is shown in
A cross-sectional diagram of the NMOS transistor 122 of
The body terminal, which is also sometimes referred to as a well terminal or a bulk terminal, can be biased to alter the effective threshold voltage. In NMOS transistors, the body terminal voltage can be lowered or raised slightly relative to ground voltage Vss. If the body bias voltage VBN is a positive voltage (e.g., if VBN is 0.3 volts), the NMOS transistor is forward biased, lowering the effective threshold voltage of the NMOS transistor. If the body bias voltage VBN is a negative voltage (e.g., if VBN is −0.5 volts), the NMOS transistor is reversed biased, raising the effective threshold voltage of the NMOS transistor.
In PMOS transistors, the body bias voltage can be lowered or elevated slightly with respect to the positive power supply voltage Vcc. If the body bias voltage VBP is smaller than Vcc (e.g., if VBP has a value of Vcc−0.3 volts), the PMOS transistor is forward biased, lowering the effective threshold voltage. If the body bias voltage VBP is greater than Vcc (e.g., if VBP has a value of Vcc+0.5 volts) the PMOS transistor is reverse biased, raising the effective threshold voltage.
When NMOS and PMOS transistors have forward-biased bodies, they are strengthened. This is because a lower threshold voltage leads to a greater source-drain current for given values of Vcc and gate voltage. When NMOS and PMOS transistors have reverse-biased bodies, they are weakened.
An illustrative memory cell 20 that is based on two cross-coupled inverters (latches) formed from CMOS transistors is shown in
During a writing operation for memory cell 20, memory cell 20 is loaded with configuration data. If the loaded value D of the configuration data is a logic one (i.e., if a low voltage is loaded onto node 52), a high voltage is provided at node 58 and is supplied to output terminal 38. If the loaded value D of the configuration data is a logic zero (i.e., if a high voltage is loaded onto node 52), a low voltage is provided at output terminal 38. The complementary value ND is stored on node 52. The signal on output terminal 38 is applied to programmable logic 18 (see, e.g.,
Address signal ADD is provided on line 34. Data signals are conveyed on line 32. In the configuration shown in
Data may be read from memory cell 20 (e.g., for testing). During a read operation, data line 32 may be precharged using precharge circuitry. Following precharge operations, address signal ADD on line 34 is asserted, connecting node 52 to data line 32. The logic value stored on node 52 may then be sensed by sense amplifier circuitry that is connected to data line 32. When the read operation is completed, address line 34 may be deasserted, turning address transistor TN1 off and isolating cell 20.
Address transistor TN1 may have a body terminal B that receives body bias voltage VBTN1 from body bias control circuitry 50 in
Body biasing may be used in conjunction with transistor sizing to improve read and write margins. For example, address transistor TN1 may be designed to be a relatively small and weak transistor in order to improve read margins. To ensure write margins for this type of small address transistor are satisfactory, dynamic body biasing may be used to forward bias and therefore strengthen address transistor TN1 during writing operations.
Body bias voltages may also be used to strengthen or weaken some or all of the latch transistors TN2, TN3, TP2, and TP3, to improve read and write margins. The body bias voltages may have static values or body bias voltages may be dynamically controlled to have different values for reading, writing, and normal operation. Body bias voltages may also be controlled so that they have different values when writing a logic value one than when writing a logic value zero into memory cell 20.
When writing a logic value one into memory cell 20, complementary data signal ND is held low and node 52 is driven low through address transistor TN1 when ADD is asserted. If memory cell 20 was previously storing a logic value zero, node 52 must be pulled low, so that the value on node 58 switches from low to high. The previous “logic value zero” states for the latch transistors in cell 20 would have been “on” for TP2, “off” for TN2, “off” for TP3, and “on” for TN3. The desired states for the latch transistors would be the opposite: “off” for TP2, “on” for TN2, “on” for TP3, and “off” for TN3. The relative strengths of latch transistors TN2, TN3, TP2, and TP3 may be adjusted via body biasing in order to improve the switching performance memory cell 20 from logic value zero to logic value one.
Adjusting the strength of latch transistor TP2 relative to transistor TN1 is helpful when writing a logic one into cell 20. The strength of TP2 may have more of an impact on switching performance than adjusting the relative strengths of the other latch transistors TN3, TP2, and TP3. Transistors TP3 and TN3 have data signal ND applied directly their gates, so TP3 and TN3 are likely to be easily switched from their previous states. Transistor TN2, being in an off state, would not strongly resist a logic value zero on node 52. However, if the previous value of node 52 was a logic value one, PMOS transistor TP2 would have been in an on state, and connecting node 52 directly to Vcc. In order for the switching to a low value on node 52 to be successful, the signal from address transistor TN1 needs to overcome the previous high value stored on node 52 that was being maintained by transistor TP2.
PMOS transistor TP2 may therefore be provided with a reverse body bias voltage VBTP2. Such a reverse body bias voltage VBTP2 weakens PMOS transistor TP2 and helps TN1 drive node 52 low, thereby turning off TP2. If desired, the relative strengths of latch transistors TN3, TN2, and TP3 may also be adjusted. NMOS transistor TN2 and PMOS transistor TP3 may be forward biased to enable them to turn on more readily. NMOS transistor TN3 may be reverse biased to enable it to turn off more readily.
When writing a logic value zero into memory cell 20, complementary data signal ND is held high and node 52 is driven high through address transistor TN1 when ADD is asserted. If memory cell 20 was previously storing a logic value one, node 52 must be pulled high so that the value on node 58 switches from high to low. The relative strengths of the latch transistors in cell 20 may be adjusted to facilitate switching. In particular, it may be beneficial to adjust the strength of transistor TN2, which was previously in an “on” state and was connecting node 52 to ground. Transistor TN2 may be reversed biased and weakened to help TN1 drive node 52 high, thereby turning TN2 off more readily. If desired, the relative strengths of latch transistors TP2, TN3, and TP3 may also be adjusted. Transistor TP3 may be reverse biased to enable it to turn off more readily as node 52 goes high. Transistors TN3 and TP2 may be forward biased to enable them to turn on more readily as node 58 goes low and node 52 goes high.
When a writing operation is complete, the body bias voltages of latch transistors TN2, TN3, TP2, and TP3 may remain at their most recent strength settings, or body bias voltages VBTN2, VBTN3, VBTP2, and VBTP3 may be adjusted so that the strengths of TN2, TN3, TP2, and TP3 are more suitable for normal operation of memory cell 20 (e.g., to minimize power consumption).
When a reading operation is performed on memory cell 20, the body bias voltages of latch transistors TN2, TN3, TP2, and TP3 may be left at their most recent strength settings, or some or all of the latch transistors (e.g., transistors TP2 and TP3) may be forward biased and strengthened.
Body bias voltages that are desirable for address transistor TN1 and latch transistors TN2, TN3, TP2, and TP3 for improving write margins during a writing operation may sometimes be referred to as “write strength settings” for memory cell 20. Likewise, body bias voltages that are desirable for improving read margins for address transistor TN1 and latch transistors TN2, TN3, TP2, and TP3 during a reading operation may sometimes be referred to as “read strength settings.”
When data is being loaded into memory array 28 (see, e.g.,
Body bias control circuitry 50 (
At a given time, different memory elements 20 in array 28 may be provided with different strength settings. This may be desirable in situations such as when configuration data is being loaded and some memory elements 20 are associated with asserted address lines 34 while other memory elements 20 are associated with unasserted (deasserted) address lines 34. During a data loading operation, some memory cells 20 may be loading a logic value one, and other memory cells 20 may be loading a logic value zero. If desired, body bias control circuitry 50 may ensure that transistor strengths appropriate for loading a logic value one may be provided to memory cells 20 during loading of a logic value one, and transistor strengths appropriate for logic value zero may be provided to memory cells 20 during a loading of a logic value zero. This type of data-dependent control of body biases is optional. If desired, other adjustment schemes may be used. For example, cells 20 can be provided with one set of body biases during writes and another set of body biases during reads, etc.
In the configuration of
In memory cell 20 of
The memory cell of
If desired, latch transistors TN2, TN3, TP2, and TP3 may be reverse biased and address transistor TN1 may be forward biased in cell 20 of
Body bias control circuitry 50 suitable for providing body biases VBTN1, VBP, and VBN of
Body bias selection logic 60 may contain hardwired or soft (programmed) logic that determines what body bias voltages to send to memory elements 20. PMOS body bias voltages VBP1 and VBP2 may be a PMOS reverse body bias voltage and a PMOS forward body bias voltage, respectively. One of VBP1 and VBP2 may be equal to positive power supply voltage Vcc. NMOS body bias voltages VBN1 and VBN2 may be an NMOS reverse body bias voltage and an NMOS forward body bias voltage, respectively, or one of VBN1 and VBN2 may be a ground voltage Vss such as 0 volts.
In some cases, it may be desirable for static body bias voltages to be provided to latch transistors TN2, TN3, TP2, and TP3. With this type of approach, the body bias voltages are constant in time and are the same for reading, writing, and normal operations. For example, a fixed body bias voltage of Vcc for PMOS transistors TP2 and TP3 and Vss for NMOS transistors TN2 and TN3 may be used. In another example, fixed reverse body bias voltages may be provided to all latch transistors TN2, TN3, TP2, and TP3. This may improve write margin for memory cell 20 without significantly decreasing read margin. The use of static body bias voltages on latch transistors may help increase switching speed and allow for simplified body bias control circuitry 50. In this type of configuration, address transistor TN1 may be the only transistor in memory cell 20 that is provided with a dynamically controlled body bias voltage. This may allow the address transistor TN1 to be made smaller and weaker than would otherwise be possible in order to increase read margins. A dynamically controlled body bias voltage that applies a forward bias to strengthen address transistor TN1 during write operations may be used to compensate for the inherent weakness of the small TN1. When the write operation is complete, address transistor TN1 may be supplied with a reverse bias or other body voltage to increase read margin.
The body bias voltage settings and transistor strength settings that have been described in connection with
Body bias voltages for transistors in memory cells 20 may then be adjusted to their appropriate write strength settings, as indicated in step 82. In step 82, address transistors TN1 may be strengthened (see, e.g.,
Write strength settings may be adjusted during the data loading process. For example, write strength settings may be different for those memory cells 20 loading a logic value one than for those memory cells loading a logic value zero. After data loading is completed for a set of memory elements 20, address lines 34 are deasserted, as indicated by box 84, and body biases for the set of memory elements 20 may be controlled to have settings appropriate for reading or may be provided with “write disturb” body bias settings. Steps 80, 82, and 84 may be repeated for successive address lines and successive sets of memory elements until all configuration data has been loaded, as indicated by line 85.
Data may be read from memory elements 20, as indicated by box 86. During read operations, transistors in memory elements 20 may be provided with body biases at appropriate read strength settings. The body biases associated with the read strength settings may weaken the address transistor TN1 of
Due to process variations, some transistors that are designed to be uniform on device 10 may actually differ slightly in strength. Body bias control circuitry 50 may used to provide body bias voltages that compensate for these variations. For example, as indicated in box 90 of
Body bias control circuitry may then be configured to provide different body bias voltages to transistors of different speed characterizations, as indicated by box 92 of
Likewise, if a typical PMOS transistor forward bias is Vcc−0.3 volts and a typical PMOS transistor reverse bias is Vcc+0.5 volts, then a slow PMOS transistor might receive a forward bias of Vcc−0.4 volts and a reverse bias of Vcc+0.4 volts. A fast PMOS transistor might receive a forward bias of Vcc−0.2 volts and a reverse bias of Vcc+0.6 volts. These body bias voltages may decrease the strength of the fast PMOS transistor and increase the strength of the slow PMOS transistor so that fast, slow, and typical PMOS transistor run at similar speeds, as indicated by box 94 of
The use of body bias control circuitry to control the strengths of memory element transistors to improve read margins and write margins may used in conjunction with other strategies for improving read margins and write margins. For example, during a writing operation, power supply circuitry in circuitry 24 may be used to selectively weaken certain memory cell components relative to others by supplying a smaller power supply signal to those memory cell components. In another example, address lines 34 in
The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention.
Number | Name | Date | Kind |
---|---|---|---|
6492233 | Forbes et al. | Dec 2002 | B2 |
6943083 | Forbes | Sep 2005 | B2 |
7508697 | Mukhopadhyay et al. | Mar 2009 | B1 |
7596013 | Yamaoka et al. | Sep 2009 | B2 |
7742325 | Voelkel | Jun 2010 | B2 |
20070047364 | Chuang et al. | Mar 2007 | A1 |
20070076467 | Yamaoka et al. | Apr 2007 | A1 |
20070205824 | Perisetty | Sep 2007 | A1 |